@vendasta/conversation 0.61.0 → 0.62.0

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 (70) hide show
  1. package/{esm2020 → esm2022}/lib/_generated/host.service.mjs +4 -4
  2. package/esm2022/lib/_internal/conversation.api.service.mjs +232 -0
  3. package/{esm2020 → esm2022}/lib/_internal/enums/conversation.enum.mjs +2 -1
  4. package/esm2022/lib/_internal/inbox.api.service.mjs +53 -0
  5. package/esm2022/lib/_internal/interfaces/api.interface.mjs +2 -0
  6. package/{esm2020 → esm2022}/lib/_internal/interfaces/configuration.interface.mjs +1 -1
  7. package/{esm2020 → esm2022}/lib/_internal/interfaces/index.mjs +1 -1
  8. package/esm2022/lib/_internal/objects/annotations.mjs +32 -0
  9. package/esm2022/lib/_internal/objects/api.mjs +2764 -0
  10. package/esm2022/lib/_internal/objects/common.mjs +64 -0
  11. package/esm2022/lib/_internal/objects/configuration.mjs +123 -0
  12. package/esm2022/lib/_internal/objects/conversation-view.mjs +35 -0
  13. package/esm2022/lib/_internal/objects/conversation.mjs +173 -0
  14. package/esm2022/lib/_internal/objects/field-mask.mjs +28 -0
  15. package/esm2022/lib/_internal/objects/index.mjs +18 -0
  16. package/esm2022/lib/_internal/objects/message-template.mjs +43 -0
  17. package/esm2022/lib/_internal/objects/message.mjs +169 -0
  18. package/esm2022/lib/_internal/objects/participant.mjs +224 -0
  19. package/esm2022/lib/_internal/objects/widget.mjs +107 -0
  20. package/{fesm2020 → fesm2022}/vendasta-conversation.mjs +408 -32
  21. package/fesm2022/vendasta-conversation.mjs.map +1 -0
  22. package/lib/_internal/conversation.api.service.d.ts +6 -7
  23. package/lib/_internal/enums/conversation.enum.d.ts +2 -1
  24. package/lib/_internal/inbox.api.service.d.ts +2 -5
  25. package/lib/_internal/interfaces/api.interface.d.ts +9 -3
  26. package/lib/_internal/interfaces/configuration.interface.d.ts +2 -0
  27. package/lib/_internal/interfaces/index.d.ts +1 -1
  28. package/lib/_internal/objects/api.d.ts +19 -7
  29. package/lib/_internal/objects/configuration.d.ts +2 -0
  30. package/lib/_internal/objects/index.d.ts +1 -1
  31. package/package.json +7 -13
  32. package/esm2020/lib/_internal/conversation.api.service.mjs +0 -230
  33. package/esm2020/lib/_internal/inbox.api.service.mjs +0 -56
  34. package/esm2020/lib/_internal/interfaces/api.interface.mjs +0 -2
  35. package/esm2020/lib/_internal/objects/annotations.mjs +0 -30
  36. package/esm2020/lib/_internal/objects/api.mjs +0 -2512
  37. package/esm2020/lib/_internal/objects/common.mjs +0 -60
  38. package/esm2020/lib/_internal/objects/configuration.mjs +0 -99
  39. package/esm2020/lib/_internal/objects/conversation-view.mjs +0 -33
  40. package/esm2020/lib/_internal/objects/conversation.mjs +0 -153
  41. package/esm2020/lib/_internal/objects/field-mask.mjs +0 -27
  42. package/esm2020/lib/_internal/objects/index.mjs +0 -18
  43. package/esm2020/lib/_internal/objects/message-template.mjs +0 -39
  44. package/esm2020/lib/_internal/objects/message.mjs +0 -149
  45. package/esm2020/lib/_internal/objects/participant.mjs +0 -192
  46. package/esm2020/lib/_internal/objects/widget.mjs +0 -93
  47. package/fesm2015/vendasta-conversation.mjs +0 -3852
  48. package/fesm2015/vendasta-conversation.mjs.map +0 -1
  49. package/fesm2020/vendasta-conversation.mjs.map +0 -1
  50. /package/{esm2020 → esm2022}/lib/_internal/enums/api.enum.mjs +0 -0
  51. /package/{esm2020 → esm2022}/lib/_internal/enums/common.enum.mjs +0 -0
  52. /package/{esm2020 → esm2022}/lib/_internal/enums/conversation-view.enum.mjs +0 -0
  53. /package/{esm2020 → esm2022}/lib/_internal/enums/evaluation.enum.mjs +0 -0
  54. /package/{esm2020 → esm2022}/lib/_internal/enums/index.mjs +0 -0
  55. /package/{esm2020 → esm2022}/lib/_internal/enums/message.enum.mjs +0 -0
  56. /package/{esm2020 → esm2022}/lib/_internal/enums/participant.enum.mjs +0 -0
  57. /package/{esm2020 → esm2022}/lib/_internal/enums/widget.enum.mjs +0 -0
  58. /package/{esm2020 → esm2022}/lib/_internal/index.mjs +0 -0
  59. /package/{esm2020 → esm2022}/lib/_internal/interfaces/annotations.interface.mjs +0 -0
  60. /package/{esm2020 → esm2022}/lib/_internal/interfaces/common.interface.mjs +0 -0
  61. /package/{esm2020 → esm2022}/lib/_internal/interfaces/conversation-view.interface.mjs +0 -0
  62. /package/{esm2020 → esm2022}/lib/_internal/interfaces/conversation.interface.mjs +0 -0
  63. /package/{esm2020 → esm2022}/lib/_internal/interfaces/field-mask.interface.mjs +0 -0
  64. /package/{esm2020 → esm2022}/lib/_internal/interfaces/message-template.interface.mjs +0 -0
  65. /package/{esm2020 → esm2022}/lib/_internal/interfaces/message.interface.mjs +0 -0
  66. /package/{esm2020 → esm2022}/lib/_internal/interfaces/participant.interface.mjs +0 -0
  67. /package/{esm2020 → esm2022}/lib/_internal/interfaces/widget.interface.mjs +0 -0
  68. /package/{esm2020 → esm2022}/lib/index.mjs +0 -0
  69. /package/{esm2020 → esm2022}/public_api.mjs +0 -0
  70. /package/{esm2020 → esm2022}/vendasta-conversation.mjs +0 -0
@@ -1,230 +0,0 @@
1
- // *********************************
2
- // Code generated by sdkgen
3
- // DO NOT EDIT!.
4
- //
5
- // API Service.
6
- // *********************************
7
- import { Injectable } from '@angular/core';
8
- import { AddConversationToConversationViewRequest, AddMultiParticipantsRequest, AddMultiParticipantsResponse, CreateConversationRequest, CreateConversationResponse, CreateMessageTemplateRequest, CreateMessageTemplateResponse, CreateMultiMessagesRequest, CreateWidgetConversationRequest, CreateWidgetConversationResponse, CreateWidgetRequest, CreateWidgetResponse, DeleteConversationRequest, DeleteMessageRequest, DeleteMessageTemplateRequest, DeleteWidgetRequest, EvaluateResponseRequest, GetAvailableChannelsForConversationRequest, GetAvailableChannelsForConversationResponse, GetConversationByKeyRequest, GetConversationByKeyResponse, GetConversationSummaryRequest, GetConversationSummaryResponse, GetConversationViewsRequest, GetConversationViewsResponse, GetMessageRequest, GetMessageTemplateRequest, GetMessageTemplateResponse, GetMultiConversationDetailsRequest, GetMultiConversationDetailsResponse, GetMultiConversationMessageCountRequest, GetMultiConversationMessageCountResponse, GetMultiMessagesRequest, GetMultiMessagesResponse, GetMultiParticipantsRequest, GetMultiParticipantsResponse, GetMultiWidgetMessagesRequest, GetMultiWidgetMessagesResponse, GetParticipantsByKeyRequest, GetParticipantsByKeyResponse, GetWidgetConfigRequest, GetWidgetConfigResponse, GetWidgetConversationResponse, GetWidgetRequest, GetWidgetResponse, ListMessagesRequest, ListMessagesResponse, ListMessageTemplateRequest, ListMessageTemplateResponse, ListWidgetsRequest, ListWidgetsResponse, LookupConversationsRequest, LookupConversationsResponse, Message, ReceiveMessageRequest, RemoveConversationFromConversationViewRequest, SearchConversationsRequest, SearchConversationsResponse, SendMessageRequest, SendMessageResponse, SendWidgetMessageRequest, SendWidgetMessageResponse, SetLastSeenRequest, SetLastSeenResponse, UpdateConversationRequest, UpdateConversationResponse, UpdateMessageStatusRequest, UpdateMessageTemplateRequest, UpdateMessageTemplateResponse, UpdateWidgetRequest, UpdateWidgetResponse, } from './objects/';
9
- import { HttpClient, HttpHeaders } from '@angular/common/http';
10
- import { HostService } from '../_generated/host.service';
11
- import { map } from 'rxjs/operators';
12
- import * as i0 from "@angular/core";
13
- import * as i1 from "@angular/common/http";
14
- import * as i2 from "../_generated/host.service";
15
- export class ConversationApiService {
16
- constructor(http, hostService) {
17
- this.http = http;
18
- this.hostService = hostService;
19
- this._host = this.hostService.hostWithScheme;
20
- }
21
- apiOptions() {
22
- return {
23
- headers: new HttpHeaders({
24
- 'Content-Type': 'application/json'
25
- }),
26
- withCredentials: true
27
- };
28
- }
29
- sendMessage(r) {
30
- const request = (r.toApiJson) ? r : new SendMessageRequest(r);
31
- return this.http.post(this._host + "/conversation.v1.ConversationService/SendMessage", request.toApiJson(), this.apiOptions())
32
- .pipe(map(resp => SendMessageResponse.fromProto(resp)));
33
- }
34
- getMessage(r) {
35
- const request = (r.toApiJson) ? r : new GetMessageRequest(r);
36
- return this.http.post(this._host + "/conversation.v1.ConversationService/GetMessage", request.toApiJson(), this.apiOptions())
37
- .pipe(map(resp => Message.fromProto(resp)));
38
- }
39
- listMessages(r) {
40
- const request = (r.toApiJson) ? r : new ListMessagesRequest(r);
41
- return this.http.post(this._host + "/conversation.v1.ConversationService/ListMessages", request.toApiJson(), this.apiOptions())
42
- .pipe(map(resp => ListMessagesResponse.fromProto(resp)));
43
- }
44
- deleteMessage(r) {
45
- const request = (r.toApiJson) ? r : new DeleteMessageRequest(r);
46
- return this.http.post(this._host + "/conversation.v1.ConversationService/DeleteMessage", request.toApiJson(), { ...this.apiOptions(), observe: 'response' });
47
- }
48
- updateMessageStatus(r) {
49
- const request = (r.toApiJson) ? r : new UpdateMessageStatusRequest(r);
50
- return this.http.post(this._host + "/conversation.v1.ConversationService/UpdateMessageStatus", request.toApiJson(), { ...this.apiOptions(), observe: 'response' });
51
- }
52
- lookupConversations(r) {
53
- const request = (r.toApiJson) ? r : new LookupConversationsRequest(r);
54
- return this.http.post(this._host + "/conversation.v1.ConversationService/LookupConversations", request.toApiJson(), this.apiOptions())
55
- .pipe(map(resp => LookupConversationsResponse.fromProto(resp)));
56
- }
57
- getConversationByKey(r) {
58
- const request = (r.toApiJson) ? r : new GetConversationByKeyRequest(r);
59
- return this.http.post(this._host + "/conversation.v1.ConversationService/GetConversationByKey", request.toApiJson(), this.apiOptions())
60
- .pipe(map(resp => GetConversationByKeyResponse.fromProto(resp)));
61
- }
62
- createConversation(r) {
63
- const request = (r.toApiJson) ? r : new CreateConversationRequest(r);
64
- return this.http.post(this._host + "/conversation.v1.ConversationService/CreateConversation", request.toApiJson(), this.apiOptions())
65
- .pipe(map(resp => CreateConversationResponse.fromProto(resp)));
66
- }
67
- updateConversation(r) {
68
- const request = (r.toApiJson) ? r : new UpdateConversationRequest(r);
69
- return this.http.post(this._host + "/conversation.v1.ConversationService/UpdateConversation", request.toApiJson(), this.apiOptions())
70
- .pipe(map(resp => UpdateConversationResponse.fromProto(resp)));
71
- }
72
- deleteConversation(r) {
73
- const request = (r.toApiJson) ? r : new DeleteConversationRequest(r);
74
- return this.http.post(this._host + "/conversation.v1.ConversationService/DeleteConversation", request.toApiJson(), { ...this.apiOptions(), observe: 'response' });
75
- }
76
- receiveMessage(r) {
77
- const request = (r.toApiJson) ? r : new ReceiveMessageRequest(r);
78
- return this.http.post(this._host + "/conversation.v1.ConversationService/ReceiveMessage", request.toApiJson(), { ...this.apiOptions(), observe: 'response' });
79
- }
80
- getMultiMessages(r) {
81
- const request = (r.toApiJson) ? r : new GetMultiMessagesRequest(r);
82
- return this.http.post(this._host + "/conversation.v1.ConversationService/GetMultiMessages", request.toApiJson(), this.apiOptions())
83
- .pipe(map(resp => GetMultiMessagesResponse.fromProto(resp)));
84
- }
85
- createMultiMessages(r) {
86
- const request = (r.toApiJson) ? r : new CreateMultiMessagesRequest(r);
87
- return this.http.post(this._host + "/conversation.v1.ConversationService/CreateMultiMessages", request.toApiJson(), { ...this.apiOptions(), observe: 'response' });
88
- }
89
- getMultiConversationDetails(r) {
90
- const request = (r.toApiJson) ? r : new GetMultiConversationDetailsRequest(r);
91
- return this.http.post(this._host + "/conversation.v1.ConversationService/GetMultiConversationDetails", request.toApiJson(), this.apiOptions())
92
- .pipe(map(resp => GetMultiConversationDetailsResponse.fromProto(resp)));
93
- }
94
- getMultiParticipants(r) {
95
- const request = (r.toApiJson) ? r : new GetMultiParticipantsRequest(r);
96
- return this.http.post(this._host + "/conversation.v1.ConversationService/GetMultiParticipants", request.toApiJson(), this.apiOptions())
97
- .pipe(map(resp => GetMultiParticipantsResponse.fromProto(resp)));
98
- }
99
- searchConversations(r) {
100
- const request = (r.toApiJson) ? r : new SearchConversationsRequest(r);
101
- return this.http.post(this._host + "/conversation.v1.ConversationService/SearchConversations", request.toApiJson(), this.apiOptions())
102
- .pipe(map(resp => SearchConversationsResponse.fromProto(resp)));
103
- }
104
- getMultiConversationMessageCount(r) {
105
- const request = (r.toApiJson) ? r : new GetMultiConversationMessageCountRequest(r);
106
- return this.http.post(this._host + "/conversation.v1.ConversationService/GetMultiConversationMessageCount", request.toApiJson(), this.apiOptions())
107
- .pipe(map(resp => GetMultiConversationMessageCountResponse.fromProto(resp)));
108
- }
109
- addMultiParticipants(r) {
110
- const request = (r.toApiJson) ? r : new AddMultiParticipantsRequest(r);
111
- return this.http.post(this._host + "/conversation.v1.ConversationService/AddMultiParticipants", request.toApiJson(), this.apiOptions())
112
- .pipe(map(resp => AddMultiParticipantsResponse.fromProto(resp)));
113
- }
114
- setLastSeen(r) {
115
- const request = (r.toApiJson) ? r : new SetLastSeenRequest(r);
116
- return this.http.post(this._host + "/conversation.v1.ConversationService/SetLastSeen", request.toApiJson(), this.apiOptions())
117
- .pipe(map(resp => SetLastSeenResponse.fromProto(resp)));
118
- }
119
- getParticipantsByKey(r) {
120
- const request = (r.toApiJson) ? r : new GetParticipantsByKeyRequest(r);
121
- return this.http.post(this._host + "/conversation.v1.ConversationService/GetParticipantsByKey", request.toApiJson(), this.apiOptions())
122
- .pipe(map(resp => GetParticipantsByKeyResponse.fromProto(resp)));
123
- }
124
- getConversationViews(r) {
125
- const request = (r.toApiJson) ? r : new GetConversationViewsRequest(r);
126
- return this.http.post(this._host + "/conversation.v1.ConversationService/GetConversationViews", request.toApiJson(), this.apiOptions())
127
- .pipe(map(resp => GetConversationViewsResponse.fromProto(resp)));
128
- }
129
- addConversationToConversationView(r) {
130
- const request = (r.toApiJson) ? r : new AddConversationToConversationViewRequest(r);
131
- return this.http.post(this._host + "/conversation.v1.ConversationService/AddConversationToConversationView", request.toApiJson(), { ...this.apiOptions(), observe: 'response' });
132
- }
133
- removeConversationFromConversationView(r) {
134
- const request = (r.toApiJson) ? r : new RemoveConversationFromConversationViewRequest(r);
135
- return this.http.post(this._host + "/conversation.v1.ConversationService/RemoveConversationFromConversationView", request.toApiJson(), { ...this.apiOptions(), observe: 'response' });
136
- }
137
- createWidgetConversation(r) {
138
- const request = (r.toApiJson) ? r : new CreateWidgetConversationRequest(r);
139
- return this.http.post(this._host + "/conversation.v1.ConversationService/CreateWidgetConversation", request.toApiJson(), this.apiOptions())
140
- .pipe(map(resp => CreateWidgetConversationResponse.fromProto(resp)));
141
- }
142
- getMultiWidgetMessages(r) {
143
- const request = (r.toApiJson) ? r : new GetMultiWidgetMessagesRequest(r);
144
- return this.http.post(this._host + "/conversation.v1.ConversationService/GetMultiWidgetMessages", request.toApiJson(), this.apiOptions())
145
- .pipe(map(resp => GetMultiWidgetMessagesResponse.fromProto(resp)));
146
- }
147
- sendWidgetMessage(r) {
148
- const request = (r.toApiJson) ? r : new SendWidgetMessageRequest(r);
149
- return this.http.post(this._host + "/conversation.v1.ConversationService/SendWidgetMessage", request.toApiJson(), this.apiOptions())
150
- .pipe(map(resp => SendWidgetMessageResponse.fromProto(resp)));
151
- }
152
- getWidgetConversation() {
153
- return this.http.post(this._host + "/conversation.v1.ConversationService/GetWidgetConversation", {}, this.apiOptions())
154
- .pipe(map(resp => GetWidgetConversationResponse.fromProto(resp)));
155
- }
156
- getAvailableChannelsForConversation(r) {
157
- const request = (r.toApiJson) ? r : new GetAvailableChannelsForConversationRequest(r);
158
- return this.http.post(this._host + "/conversation.v1.ConversationService/GetAvailableChannelsForConversation", request.toApiJson(), this.apiOptions())
159
- .pipe(map(resp => GetAvailableChannelsForConversationResponse.fromProto(resp)));
160
- }
161
- evaluateResponse(r) {
162
- const request = (r.toApiJson) ? r : new EvaluateResponseRequest(r);
163
- return this.http.post(this._host + "/conversation.v1.ConversationService/EvaluateResponse", request.toApiJson(), { ...this.apiOptions(), observe: 'response' });
164
- }
165
- createWidget(r) {
166
- const request = (r.toApiJson) ? r : new CreateWidgetRequest(r);
167
- return this.http.post(this._host + "/conversation.v1.ConversationService/CreateWidget", request.toApiJson(), this.apiOptions())
168
- .pipe(map(resp => CreateWidgetResponse.fromProto(resp)));
169
- }
170
- getWidget(r) {
171
- const request = (r.toApiJson) ? r : new GetWidgetRequest(r);
172
- return this.http.post(this._host + "/conversation.v1.ConversationService/GetWidget", request.toApiJson(), this.apiOptions())
173
- .pipe(map(resp => GetWidgetResponse.fromProto(resp)));
174
- }
175
- updateWidget(r) {
176
- const request = (r.toApiJson) ? r : new UpdateWidgetRequest(r);
177
- return this.http.post(this._host + "/conversation.v1.ConversationService/UpdateWidget", request.toApiJson(), this.apiOptions())
178
- .pipe(map(resp => UpdateWidgetResponse.fromProto(resp)));
179
- }
180
- deleteWidget(r) {
181
- const request = (r.toApiJson) ? r : new DeleteWidgetRequest(r);
182
- return this.http.post(this._host + "/conversation.v1.ConversationService/DeleteWidget", request.toApiJson(), { ...this.apiOptions(), observe: 'response' });
183
- }
184
- listWidgets(r) {
185
- const request = (r.toApiJson) ? r : new ListWidgetsRequest(r);
186
- return this.http.post(this._host + "/conversation.v1.ConversationService/ListWidgets", request.toApiJson(), this.apiOptions())
187
- .pipe(map(resp => ListWidgetsResponse.fromProto(resp)));
188
- }
189
- getWidgetConfig(r) {
190
- const request = (r.toApiJson) ? r : new GetWidgetConfigRequest(r);
191
- return this.http.post(this._host + "/conversation.v1.ConversationService/GetWidgetConfig", request.toApiJson(), this.apiOptions())
192
- .pipe(map(resp => GetWidgetConfigResponse.fromProto(resp)));
193
- }
194
- listMessageTemplate(r) {
195
- const request = (r.toApiJson) ? r : new ListMessageTemplateRequest(r);
196
- return this.http.post(this._host + "/conversation.v1.ConversationService/ListMessageTemplate", request.toApiJson(), this.apiOptions())
197
- .pipe(map(resp => ListMessageTemplateResponse.fromProto(resp)));
198
- }
199
- deleteMessageTemplate(r) {
200
- const request = (r.toApiJson) ? r : new DeleteMessageTemplateRequest(r);
201
- return this.http.post(this._host + "/conversation.v1.ConversationService/DeleteMessageTemplate", request.toApiJson(), { ...this.apiOptions(), observe: 'response' });
202
- }
203
- createMessageTemplate(r) {
204
- const request = (r.toApiJson) ? r : new CreateMessageTemplateRequest(r);
205
- return this.http.post(this._host + "/conversation.v1.ConversationService/CreateMessageTemplate", request.toApiJson(), this.apiOptions())
206
- .pipe(map(resp => CreateMessageTemplateResponse.fromProto(resp)));
207
- }
208
- updateMessageTemplate(r) {
209
- const request = (r.toApiJson) ? r : new UpdateMessageTemplateRequest(r);
210
- return this.http.post(this._host + "/conversation.v1.ConversationService/UpdateMessageTemplate", request.toApiJson(), this.apiOptions())
211
- .pipe(map(resp => UpdateMessageTemplateResponse.fromProto(resp)));
212
- }
213
- getMessageTemplate(r) {
214
- const request = (r.toApiJson) ? r : new GetMessageTemplateRequest(r);
215
- return this.http.post(this._host + "/conversation.v1.ConversationService/GetMessageTemplate", request.toApiJson(), this.apiOptions())
216
- .pipe(map(resp => GetMessageTemplateResponse.fromProto(resp)));
217
- }
218
- getConversationSummary(r) {
219
- const request = (r.toApiJson) ? r : new GetConversationSummaryRequest(r);
220
- return this.http.post(this._host + "/conversation.v1.ConversationService/GetConversationSummary", request.toApiJson(), this.apiOptions())
221
- .pipe(map(resp => GetConversationSummaryResponse.fromProto(resp)));
222
- }
223
- }
224
- ConversationApiService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: ConversationApiService, deps: [{ token: i1.HttpClient }, { token: i2.HostService }], target: i0.ɵɵFactoryTarget.Injectable });
225
- ConversationApiService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: ConversationApiService, providedIn: 'root' });
226
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: ConversationApiService, decorators: [{
227
- type: Injectable,
228
- args: [{ providedIn: 'root' }]
229
- }], ctorParameters: function () { return [{ type: i1.HttpClient }, { type: i2.HostService }]; } });
230
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udmVyc2F0aW9uLmFwaS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vY29udmVyc2F0aW9uX3Nkay9zcmMvbGliL19pbnRlcm5hbC9jb252ZXJzYXRpb24uYXBpLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsb0NBQW9DO0FBQ3BDLDJCQUEyQjtBQUMzQixnQkFBZ0I7QUFDaEIsRUFBRTtBQUNGLGVBQWU7QUFDZixvQ0FBb0M7QUFDcEMsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQ0gsd0NBQXdDLEVBQ3hDLDJCQUEyQixFQUMzQiw0QkFBNEIsRUFDNUIseUJBQXlCLEVBQ3pCLDBCQUEwQixFQUMxQiw0QkFBNEIsRUFDNUIsNkJBQTZCLEVBQzdCLDBCQUEwQixFQUMxQiwrQkFBK0IsRUFDL0IsZ0NBQWdDLEVBQ2hDLG1CQUFtQixFQUNuQixvQkFBb0IsRUFDcEIseUJBQXlCLEVBQ3pCLG9CQUFvQixFQUNwQiw0QkFBNEIsRUFDNUIsbUJBQW1CLEVBQ25CLHVCQUF1QixFQUN2QiwwQ0FBMEMsRUFDMUMsMkNBQTJDLEVBQzNDLDJCQUEyQixFQUMzQiw0QkFBNEIsRUFDNUIsNkJBQTZCLEVBQzdCLDhCQUE4QixFQUM5QiwyQkFBMkIsRUFDM0IsNEJBQTRCLEVBQzVCLGlCQUFpQixFQUNqQix5QkFBeUIsRUFDekIsMEJBQTBCLEVBQzFCLGtDQUFrQyxFQUNsQyxtQ0FBbUMsRUFDbkMsdUNBQXVDLEVBQ3ZDLHdDQUF3QyxFQUN4Qyx1QkFBdUIsRUFDdkIsd0JBQXdCLEVBQ3hCLDJCQUEyQixFQUMzQiw0QkFBNEIsRUFDNUIsNkJBQTZCLEVBQzdCLDhCQUE4QixFQUM5QiwyQkFBMkIsRUFDM0IsNEJBQTRCLEVBQzVCLHNCQUFzQixFQUN0Qix1QkFBdUIsRUFDdkIsNkJBQTZCLEVBQzdCLGdCQUFnQixFQUNoQixpQkFBaUIsRUFDakIsbUJBQW1C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LFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBNkIsQ0FBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLHlCQUF5QixDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQy9ILE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQXNDLElBQUksQ0FBQyxLQUFLLEdBQUcseURBQXlELEVBQUUsT0FBTyxDQUFDLFNBQVMsRUFBRSxFQUFFLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQzthQUNySyxJQUFJLENBQ0QsR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsMEJBQTBCLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQzFELENBQUM7SUFDVixDQUFDO0lBQ0Qsc0JBQXNCLENBQUMsQ0FBeUU7UUFDNUYsTUFBTSxPQUFPLEdBQUcsQ0FBaUMsQ0FBRSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBaUMsQ0FBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLDZCQUE2QixDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQzNJLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQTBDLElBQUksQ0FBQyxLQUFLLEdBQUcsNkRBQTZELEVBQUUsT0FBTyxDQUFDLFNBQVMsRUFBRSxFQUFFLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQzthQUM3SyxJQUFJLENBQ0QsR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsOEJBQThCLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQzlELENBQUM7SUFDVixDQUFDOztvSEE5UVEsc0JBQXNCO3dIQUF0QixzQkFBc0IsY0FEVixNQUFNOzRGQUNsQixzQkFBc0I7a0JBRGxDLFVBQVU7bUJBQUMsRUFBQyxVQUFVLEVBQUUsTUFBTSxFQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4vLyBDb2RlIGdlbmVyYXRlZCBieSBzZGtnZW5cbi8vIERPIE5PVCBFRElUIS5cbi8vXG4vLyBBUEkgU2VydmljZS5cbi8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuaW1wb3J0IHtJbmplY3RhYmxlfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gICAgQWRkQ29udmVyc2F0aW9uVG9Db252ZXJzYXRpb25WaWV3UmVxdWVzdCxcbiAgICBBZGRNdWx0aVBhcnRpY2lwYW50c1JlcXVlc3QsXG4gICAgQWRkTXVsdGlQYXJ0aWNpcGFudHNSZXNwb25zZSxcbiAgICBDcmVhdGVDb252ZXJzYXRpb25SZXF1ZXN0LFxuICAgIENyZWF0ZUNvbnZlcnNhdGlvblJlc3BvbnNlLFxuICAgIENyZWF0ZU1lc3NhZ2VUZW1wbGF0ZVJlcXVlc3QsXG4gICAgQ3JlYXRlTWVzc2FnZVRlbXBsYXRlUmVzcG9uc2UsXG4gICAgQ3JlYXRlTXVsdGlNZXNzYWdlc1JlcXVlc3QsXG4gICAgQ3JlYXRlV2lkZ2V0Q29udmVyc2F0aW9uUmVxdWVzdCxcbiAgICBDcmVhdGVXaWRnZXRDb252ZXJzYXRpb25SZXNwb25zZSxcbiAgICBDcmVhdGVXaWRnZXRSZXF1ZXN0LFxuICAgIENyZWF0ZVdpZGdldFJlc3BvbnNlLFxuICAgIERlbGV0ZUNvbnZlcnNhdGlvblJlcXVlc3QsXG4gICAgRGVsZXRlTWVzc2FnZVJlcXVlc3QsXG4gICAgRGVsZXRlTWVzc2FnZVRlbXBsYXRlUmVxdWVzdCxcbiAgICBEZWxldGVXaWRnZXRSZXF1ZXN0LFxuICAgIEV2YWx1YXRlUmVzcG9uc2VSZXF1ZXN0LFxuICAgIEdldEF2YWlsYWJsZUNoYW5uZWxzRm9yQ29udmVyc2F0aW9uUmVxdWVzdCxcbiAgICBHZXRBdmFpbGFibGVDaGFubmVsc0ZvckNvbnZlcnNhdGlvblJlc3BvbnNlLFxuICAgIEdldENvbnZlcnNhdGlvbkJ5S2V5UmVxdWVzdCxcbiAgICBHZXRDb252ZXJzYXRpb25CeUtleVJlc3BvbnNlLFxuICAgIEdldENvbnZlcnNhdGlvblN1bW1hcnlSZXF1ZXN0LFxuICAgIEdldENvbnZlcnNhdGlvblN1bW1hcnlSZXNwb25zZSxcbiAgICBHZXRDb252ZXJzYXRpb25WaWV3c1JlcXVlc3QsXG4gICAgR2V0Q29udmVyc2F0aW9uVmlld3NSZXNwb25zZSxcbiAgICBHZXRNZXNzYWdlUmVxdWVzdCxcbiAgICBHZXRNZXNzYWdlVGVtcGxhdGVSZXF1ZXN0LFxuICAgIEdldE1lc3NhZ2VUZW1wbGF0ZVJlc3BvbnNlLFxuICAgIEdldE11bHRpQ29udmVyc2F0aW9uRGV0YWlsc1JlcXVlc3QsXG4gICAgR2V0TXVsdGlDb252ZXJzYXRpb25EZXRhaWxzUmVzcG9uc2UsXG4gICAgR2V0TXVsdGlDb252ZXJzYXRpb25NZXNzYWdlQ291bnRSZXF1ZXN0LFxuICAgIEdldE11bHRpQ29udmVyc2F0aW9uTWVzc2FnZUNvdW50UmVzcG9uc2UsXG4gICAgR2V0TXVsdGlNZXNzYWdlc1JlcXVlc3QsXG4gICAgR2V0TXVsdGlNZXNzYWdlc1Jlc3BvbnNlLFxuICAgIEdldE11bHRpUGFydGljaXBhbnRzUmVxdWVzdCxcbiAgICBHZXRNdWx0aVBhcnRpY2lwYW50c1Jlc3BvbnNlLFxuICAgIEdldE11bHRpV2lkZ2V0TWVzc2FnZXNSZXF1ZXN0LFxuICAgIEdldE11bHRpV2lkZ2V0TWVzc2FnZXNSZXNwb25zZSxcbiAgICBHZXRQYXJ0aWNpcGFudHNCeUtleVJlcXVlc3QsXG4gICAgR2V0UGFydGljaXBhbnRzQnlLZXlSZXNwb25zZSxcbiAgICBHZXRXaWRnZXRDb25maWdSZXF1ZXN0LFxuICAgIEdldFdpZGdldENvbmZpZ1Jlc3BvbnNlLFxuICAgIEdldFdpZGdldENvbnZlcnNhdGlvblJlc3BvbnNlLFxuICAgIEdldFdpZGdldFJlcXVlc3QsXG4gICAgR2V0V2lkZ2V0UmVzcG9uc2UsXG4gICAgTGlzdE1lc3NhZ2VzUmVxdWVzdCxcbiAgICBMaXN0TWVzc2FnZXNSZXNwb25zZSxcbiAgICBMaXN0TWVzc2FnZVRlbXBsYXRlUmVxdWVzdCxcbiAgICBMaXN0TWVzc2FnZVRlbXBsYXRlUmVzcG9uc2UsXG4gICAgTGlzdFdpZGdldHNSZXF1ZXN0LFxuICAgIExpc3RXaWRnZXRzUmVzcG9uc2UsXG4gICAgTG9va3VwQ29udmVyc2F0aW9uc1JlcXVlc3QsXG4gICAgTG9va3VwQ29udmVyc2F0aW9uc1Jlc3BvbnNlLFxuICAgIE1lc3NhZ2UsXG4gICAgUmVjZWl2ZU1lc3NhZ2VSZXF1ZXN0LFxuICAgIFJlbW92ZUNvbnZlcnNhdGlvbkZyb21Db252ZXJzYXRpb25WaWV3UmVxdWVzdCxcbiAgICBTZWFyY2hDb252ZXJzYXRpb25zUmVxdWVzdCxcbiAgICBTZWFyY2hDb252ZXJzYXRpb25zUmVzcG9uc2UsXG4gICAgU2VuZE1lc3NhZ2VSZXF1ZXN0LFxuICAgIFNlbmRNZXNzYWdlUmVzcG9uc2UsXG4gICAgU2VuZFdpZGdldE1lc3NhZ2VSZXF1ZXN0LFxuICAgIFNlbmRXaWRnZXRNZXNzYWdlUmVzcG9uc2UsXG4gICAgU2V0TGFzdFNlZW5SZXF1ZXN0LFxuICAgIFNldExhc3RTZWVuUmVzcG9uc2UsXG4gICAgVXBkYXRlQ29udmVyc2F0aW9uUmVxdWVzdCxcbiAgICBVcGRhdGVDb252ZXJzYXRpb25SZXNwb25zZSxcbiAgICBVcGRhdGVNZXNzYWdlU3RhdHVzUmVxdWVzdCxcbiAgICBVcGRhdGVNZXNzYWdlVGVtcGxhdGVSZXF1ZXN0LFxuICAgIFVwZGF0ZU1lc3NhZ2VUZW1wbGF0ZVJlc3BvbnNlLFxuICAgIFVwZGF0ZVdpZGdldFJlcXVlc3QsXG4gICAgVXBkYXRlV2lkZ2V0UmVzcG9uc2UsXG59IGZyb20gJy4vb2JqZWN0cy8nO1xuaW1wb3J0IHtcbiAgICBBZGRDb252ZXJzYXRpb25Ub0NvbnZlcnNhdGlvblZpZXdSZXF1ZXN0SW50ZXJmYWNlLFxuICAgIEFkZE11bHRpUGFydGljaXBhbnRzUmVxdWVzdEludGVyZmFjZSxcbiAgICBBZGRNdWx0aVBhcnRpY2lwYW50c1Jlc3BvbnNlSW50ZXJmYWNlLFxuICAgIENyZWF0ZUNvbnZlcnNhdGlvblJlcXVlc3RJbnRlcmZhY2UsXG4gICAgQ3JlYXRlQ29udmVyc2F0aW9uUmVzcG9uc2VJbnRlcmZhY2UsXG4gICAgQ3JlYXRlTWVzc2FnZVRlbXBsYXRlUmVxdWVzdEludGVyZmFjZSxcbiAgICBDcmVhdGVNZXNzYWdlVGVtcGxhdGVSZXNwb25zZUludGVyZmFjZSxcbiAgICBDcmVhdGVNdWx0aU1lc3NhZ2VzUmVxdWVzdEludGVyZmFjZSxcbiAgICBDcmVhdGVXaWRnZXRDb252ZXJzYXRpb25SZXF1ZXN0SW50ZXJmYWNlLFxuICAgIENyZWF0ZVdpZGdldENvbnZlcnNhdGlvblJlc3BvbnNlSW50ZXJmYWNlLFxuICAgIENyZWF0ZVdpZGdldFJlcXVlc3RJbnRlcmZhY2UsXG4gICAgQ3JlYXRlV2lkZ2V0UmVzcG9uc2VJbnRlcmZhY2UsXG4gICAgRGVsZXRlQ29udmVyc2F0aW9uUmVxdWVzdEludGVyZmFjZSxcbiAgICBEZWxldGVNZXNzYWdlUmVxdWVzdEludGVyZmFjZSxcbiAgICBEZWxldGVNZXNzYWdlVGVtcGxhdGVSZXF1ZXN0SW50ZXJmYWNlLFxuICAgIERlbGV0ZVdpZGdldFJlcXVlc3RJbnRlcmZhY2UsXG4gICAgRXZhbHVhdGVSZXNwb25zZVJlcXVlc3RJbnRlcmZhY2UsXG4gICAgR2V0QXZhaWxhYmxlQ2hhbm5lbHNGb3JDb252ZXJzYXRpb25SZXF1ZXN0SW50ZXJmYWNlLFxuICAgIEdldEF2YWlsYWJsZUNoYW5uZWxzRm9yQ29udmVyc2F0aW9uUmVzcG9uc2VJbnRlcmZhY2UsXG4gICAgR2V0Q29udmVyc2F0aW9uQnlLZXlSZXF1ZXN0SW50ZXJmYWNlLFxuICAgIEdldENvbnZlcnNhdGlvbkJ5S2V5UmVzcG9uc2VJbnRlcmZhY2UsXG4gICAgR2V0Q29udmVyc2F0aW9uU3VtbWFyeVJlcXVlc3RJbnRlcmZhY2UsXG4gICAgR2V0Q29udmVyc2F0aW9uU3VtbWFyeVJlc3BvbnNlSW50ZXJmYWNlLFxuICAgIEdldENvbnZlcnNhdGlvblZpZXdzUmVxdWVzdEludGVyZmFjZSxcbiAgICBHZXRDb252ZXJzYXRpb25WaWV3c1Jlc3BvbnNlSW50ZXJmYWNlLFxuICAgIEdldE1lc3NhZ2VSZXF1ZXN0SW50ZXJmYWNlLFxuICAgIEdldE1lc3NhZ2VUZW1wbGF0ZVJlcXVlc3RJbnRlcmZhY2UsXG4gICAgR2V0TWVzc2FnZVRlbXBsYXRlUmVzcG9uc2VJbnRlcmZhY2UsXG4gICAgR2V0TXVsdGlDb252ZXJzYXRpb25EZXRhaWxzUmVxdWVzdEludGVyZmFjZSxcbiAgICBHZXRNdWx0aUNvbnZlcnNhdGlvbkRldGFpbHNSZXNwb25zZUludGVyZmFjZSxcbiAgICBHZXRNdWx0aUNvbnZlcnNhdGlvbk1lc3NhZ2VDb3VudFJlcXVlc3RJbnRlcmZhY2UsXG4gICAgR2V0TXVsdGlDb252ZXJzYXRpb25NZXNzYWdlQ291bnRSZXNwb25zZUludGVyZmFjZSxcbiAgICBHZXRNdWx0aU1lc3NhZ2VzUmVxdWVzdEludGVyZmFjZSxcbiAgICBHZXRNdWx0aU1lc3NhZ2VzUmVzcG9uc2VJbnRlcmZhY2UsXG4gICAgR2V0TXVsdGlQYXJ0aWNpcGFudHNSZXF1ZXN0SW50ZXJmYWNlLFxuICAgIEdldE11bHRpUGFydGljaXBhbnRzUmVzcG9uc2VJbnRlcmZhY2UsXG4gICAgR2V0TXVsdGlXaWRnZXRNZXNzYWdlc1JlcXVlc3RJbnRlcmZhY2UsXG4gICAgR2V0TXVsdGlXaWRnZXRNZXNzYWdlc1Jlc3BvbnNlSW50ZXJmYWNlLFxuICAgIEdldFBhcnRpY2lwYW50c0J5S2V5UmVxdWVzdEludGVyZmFjZSxcbiAgICBHZXRQYXJ0aWNpcGFudHNCeUtleVJlc3BvbnNlSW50ZXJmYWNlLFxuICAgIEdldFdpZGdldENvbmZpZ1JlcXVlc3RJbnRlcmZhY2UsXG4gICAgR2V0V2lkZ2V0Q29uZmlnUmVzcG9uc2VJbnRlcmZhY2UsXG4gICAgR2V0V2lkZ2V0Q29udmVyc2F0aW9uUmVzcG9uc2VJbnRlcmZhY2UsXG4gICAgR2V0V2lkZ2V0UmVxdWVzdEludGVyZmFjZSxcbiAgICBHZXRXaWRnZXRSZXNwb25zZUludGVyZmFjZSxcbiAgICBMaXN0TWVzc2FnZXNSZXF1ZXN0SW50ZXJmYWNlLFxuICAgIExpc3RNZXNzYWdlc1Jlc3BvbnNlSW50ZXJmYWNlLFxuICAgIExpc3RNZXNzYWdlVGVtcGxhdGVSZXF1ZXN0SW50ZXJmYWNlLFxuICAgIExpc3RNZXNzYWdlVGVtcGxhdGVSZXNwb25zZUludGVyZmFjZSxcbiAgICBMaXN0V2lkZ2V0c1JlcXVlc3RJbnRlcmZhY2UsXG4gICAgTGlzdFdpZGdldHNSZXNwb25zZUludGVyZmFjZSxcbiAgICBMb29rdXBDb252ZXJzYXRpb25zUmVxdWVzdEludGVyZmFjZSxcbiAgICBMb29rdXBDb252ZXJzYXRpb25zUmVzcG9uc2VJbnRlcmZhY2UsXG4gICAgTWVzc2FnZUludGVyZmFjZSxcbiAgICBSZWNlaXZlTWVzc2FnZVJlcXVlc3RJbnRlcmZhY2UsXG4gICAgUmVtb3ZlQ29udmVyc2F0aW9uRnJvbUNvbnZlcnNhdGlvblZpZXdSZXF1ZXN0SW50ZXJmYWNlLFxuICAgIFNlYXJjaENvbnZlcnNhdGlvbnNSZXF1ZXN0SW50ZXJmYWNlLFxuICAgIFNlYXJjaENvbnZlcnNhdGlvbnNSZXNwb25zZUludGVyZmFjZSxcbiAgICBTZW5kTWVzc2FnZVJlcXVlc3RJbnRlcmZhY2UsXG4gICAgU2VuZE1lc3NhZ2VSZXNwb25zZUludGVyZmFjZSxcbiAgICBTZW5kV2lkZ2V0TWVzc2FnZVJlcXVlc3RJbnRlcmZhY2UsXG4gICAgU2VuZFdpZGdldE1lc3NhZ2VSZXNwb25zZUludGVyZmFjZSxcbiAgICBTZXRMYXN0U2VlblJlcXVlc3RJbnRlcmZhY2UsXG4gICAgU2V0TGFzdFNlZW5SZXNwb25zZUludGVyZmFjZSxcbiAgICBVcGRhdGVDb252ZXJzYXRpb25SZXF1ZXN0SW50ZXJmYWNlLFxuICAgIFVwZGF0ZUNvbnZlcnNhdGlvblJlc3BvbnNlSW50ZXJmYWNlLFxuICAgIFVwZGF0ZU1lc3NhZ2VTdGF0dXNSZXF1ZXN0SW50ZXJmYWNlLFxuICAgIFVwZGF0ZU1lc3NhZ2VUZW1wbGF0ZVJlcXVlc3RJbnRlcmZhY2UsXG4gICAgVXBkYXRlTWVzc2FnZVRlbXBsYXRlUmVzcG9uc2VJbnRlcmZhY2UsXG4gICAgVXBkYXRlV2lkZ2V0UmVxdWVzdEludGVyZmFjZSxcbiAgICBVcGRhdGVXaWRnZXRSZXNwb25zZUludGVyZmFjZSxcbn0gZnJvbSAnLi9pbnRlcmZhY2VzLyc7XG5pbXBvcnQge0h0dHBDbGllbnQsIEh0dHBIZWFkZXJzLCBIdHRwUmVzcG9uc2V9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7SG9zdFNlcnZpY2V9IGZyb20gJy4uL19nZW5lcmF0ZWQvaG9zdC5zZXJ2aWNlJztcbmltcG9ydCB7T2JzZXJ2YWJsZX0gZnJvbSAncnhqcyc7XG5pbXBvcnQge21hcH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5ASW5qZWN0YWJsZSh7cHJvdmlkZWRJbjogJ3Jvb3QnfSlcbmV4cG9ydCBjbGFzcyBDb252ZXJzYXRpb25BcGlTZXJ2aWNlIHtcbiAgICBwcml2YXRlIF9ob3N0ID0gdGhpcy5ob3N0U2VydmljZS5ob3N0V2l0aFNjaGVtZTtcblxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgaHR0cDogSHR0cENsaWVudCwgcHJpdmF0ZSBob3N0U2VydmljZTogSG9zdFNlcnZpY2UpIHtcbiAgICB9XG5cbiAgICBwcml2YXRlIGFwaU9wdGlvbnMoKToge2hlYWRlcnM6IEh0dHBIZWFkZXJzLCB3aXRoQ3JlZGVudGlhbHM6IGJvb2xlYW59IHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIGhlYWRlcnM6IG5ldyBIdHRwSGVhZGVycyh7XG4gICAgICAgICAgICAgICAgJ0NvbnRlbnQtVHlwZSc6ICdhcHBsaWNhdGlvbi9qc29uJ1xuICAgICAgICAgICAgfSksXG4gICAgICAgICAgICB3aXRoQ3JlZGVudGlhbHM6IHRydWVcbiAgICAgICAgfTtcbiAgICB9XG5cbiAgICBzZW5kTWVzc2FnZShyOiBTZW5kTWVzc2FnZVJlcXVlc3QgfCBTZW5kTWVzc2FnZVJlcXVlc3RJbnRlcmZhY2UpOiBPYnNlcnZhYmxlPFNlbmRNZXNzYWdlUmVzcG9uc2U+IHtcbiAgICAgICAgY29uc3QgcmVxdWVzdCA9ICgoPFNlbmRNZXNzYWdlUmVxdWVzdD5yKS50b0FwaUpzb24pID8gKDxTZW5kTWVzc2FnZVJlcXVlc3Q+cikgOiBuZXcgU2VuZE1lc3NhZ2VSZXF1ZXN0KHIpO1xuICAgICAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8U2VuZE1lc3NhZ2VSZXNwb25zZUludGVyZmFjZT4odGhpcy5faG9zdCArIFwiL2NvbnZlcnNhdGlvbi52MS5Db252ZXJzYXRpb25TZXJ2aWNlL1NlbmRNZXNzYWdlXCIsIHJlcXVlc3QudG9BcGlKc29uKCksIHRoaXMuYXBpT3B0aW9ucygpKVxuICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgICAgbWFwKHJlc3AgPT4gU2VuZE1lc3NhZ2VSZXNwb25zZS5mcm9tUHJvdG8ocmVzcCkpXG4gICAgICAgICAgICApO1xuICAgIH1cbiAgICBnZXRNZXNzYWdlKHI6IEdldE1lc3NhZ2VSZXF1ZXN0IHwgR2V0TWVzc2FnZVJlcXVlc3RJbnRlcmZhY2UpOiBPYnNlcnZhYmxlPE1lc3NhZ2U+IHtcbiAgICAgICAgY29uc3QgcmVxdWVzdCA9ICgoPEdldE1lc3NhZ2VSZXF1ZXN0PnIpLnRvQXBpSnNvbikgPyAoPEdldE1lc3NhZ2VSZXF1ZXN0PnIpIDogbmV3IEdldE1lc3NhZ2VSZXF1ZXN0KHIpO1xuICAgICAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8TWVzc2FnZUludGVyZmFjZT4odGhpcy5faG9zdCArIFwiL2NvbnZlcnNhdGlvbi52MS5Db252ZXJzYXRpb25TZXJ2aWNlL0dldE1lc3NhZ2VcIiwgcmVxdWVzdC50b0FwaUpzb24oKSwgdGhpcy5hcGlPcHRpb25zKCkpXG4gICAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgICAgICBtYXAocmVzcCA9PiBNZXNzYWdlLmZyb21Qcm90byhyZXNwKSlcbiAgICAgICAgICAgICk7XG4gICAgfVxuICAgIGxpc3RNZXNzYWdlcyhyOiBMaXN0TWVzc2FnZXNSZXF1ZXN0IHwgTGlzdE1lc3NhZ2VzUmVxdWVzdEludGVyZmFjZSk6IE9ic2VydmFibGU8TGlzdE1lc3NhZ2VzUmVzcG9uc2U+IHtcbiAgICAgICAgY29uc3QgcmVxdWVzdCA9ICgoPExpc3RNZXNzYWdlc1JlcXVlc3Q+cikudG9BcGlKc29uKSA/ICg8TGlzdE1lc3NhZ2VzUmVxdWVzdD5yKSA6IG5ldyBMaXN0TWVzc2FnZXNSZXF1ZXN0KHIpO1xuICAgICAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8TGlzdE1lc3NhZ2VzUmVzcG9uc2VJbnRlcmZhY2U+KHRoaXMuX2hvc3QgKyBcIi9jb252ZXJzYXRpb24udjEuQ29udmVyc2F0aW9uU2VydmljZS9MaXN0TWVzc2FnZXNcIiwgcmVxdWVzdC50b0FwaUpzb24oKSwgdGhpcy5hcGlPcHRpb25zKCkpXG4gICAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgICAgICBtYXAocmVzcCA9PiBMaXN0TWVzc2FnZXNSZXNwb25zZS5mcm9tUHJvdG8ocmVzcCkpXG4gICAgICAgICAgICApO1xuICAgIH1cbiAgICBkZWxldGVNZXNzYWdlKHI6IERlbGV0ZU1lc3NhZ2VSZXF1ZXN0IHwgRGVsZXRlTWVzc2FnZVJlcXVlc3RJbnRlcmZhY2UpOiBPYnNlcnZhYmxlPEh0dHBSZXNwb25zZTxudWxsPj4ge1xuICAgICAgICBjb25zdCByZXF1ZXN0ID0gKCg8RGVsZXRlTWVzc2FnZVJlcXVlc3Q+cikudG9BcGlKc29uKSA/ICg8RGVsZXRlTWVzc2FnZVJlcXVlc3Q+cikgOiBuZXcgRGVsZXRlTWVzc2FnZVJlcXVlc3Qocik7XG4gICAgICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxudWxsPih0aGlzLl9ob3N0ICsgXCIvY29udmVyc2F0aW9uLnYxLkNvbnZlcnNhdGlvblNlcnZpY2UvRGVsZXRlTWVzc2FnZVwiLCByZXF1ZXN0LnRvQXBpSnNvbigpLCB7Li4udGhpcy5hcGlPcHRpb25zKCksIG9ic2VydmU6ICdyZXNwb25zZSd9KTtcbiAgICB9XG4gICAgdXBkYXRlTWVzc2FnZVN0YXR1cyhyOiBVcGRhdGVNZXNzYWdlU3RhdHVzUmVxdWVzdCB8IFVwZGF0ZU1lc3NhZ2VTdGF0dXNSZXF1ZXN0SW50ZXJmYWNlKTogT2JzZXJ2YWJsZTxIdHRwUmVzcG9uc2U8bnVsbD4+IHtcbiAgICAgICAgY29uc3QgcmVxdWVzdCA9ICgoPFVwZGF0ZU1lc3NhZ2VTdGF0dXNSZXF1ZXN0PnIpLnRvQXBpSnNvbikgPyAoPFVwZGF0ZU1lc3NhZ2VTdGF0dXNSZXF1ZXN0PnIpIDogbmV3IFVwZGF0ZU1lc3NhZ2VTdGF0dXNSZXF1ZXN0KHIpO1xuICAgICAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8bnVsbD4odGhpcy5faG9zdCArIFwiL2NvbnZlcnNhdGlvbi52MS5Db252ZXJzYXRpb25TZXJ2aWNlL1VwZGF0ZU1lc3NhZ2VTdGF0dXNcIiwgcmVxdWVzdC50b0FwaUpzb24oKSwgey4uLnRoaXMuYXBpT3B0aW9ucygpLCBvYnNlcnZlOiAncmVzcG9uc2UnfSk7XG4gICAgfVxuICAgIGxvb2t1cENvbnZlcnNhdGlvbnMocjogTG9va3VwQ29udmVyc2F0aW9uc1JlcXVlc3QgfCBMb29rdXBDb252ZXJzYXRpb25zUmVxdWVzdEludGVyZmFjZSk6IE9ic2VydmFibGU8TG9va3VwQ29udmVyc2F0aW9uc1Jlc3BvbnNlPiB7XG4gICAgICAgIGNvbnN0IHJlcXVlc3QgPSAoKDxMb29rdXBDb252ZXJzYXRpb25zUmVxdWVzdD5yKS50b0FwaUpzb24pID8gKDxMb29rdXBDb252ZXJzYXRpb25zUmVxdWVzdD5yKSA6IG5ldyBMb29rdXBDb252ZXJzYXRpb25zUmVxdWVzdChyKTtcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PExvb2t1cENvbnZlcnNhdGlvbnNSZXNwb25zZUludGVyZmFjZT4odGhpcy5faG9zdCArIFwiL2NvbnZlcnNhdGlvbi52MS5Db252ZXJzYXRpb25TZXJ2aWNlL0xvb2t1cENvbnZlcnNhdGlvbnNcIiwgcmVxdWVzdC50b0FwaUpzb24oKSwgdGhpcy5hcGlPcHRpb25zKCkpXG4gICAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgICAgICBtYXAocmVzcCA9PiBMb29rdXBDb252ZXJzYXRpb25zUmVzcG9uc2UuZnJvbVByb3RvKHJlc3ApKVxuICAgICAgICAgICAgKTtcbiAgICB9XG4gICAgZ2V0Q29udmVyc2F0aW9uQnlLZXkocjogR2V0Q29udmVyc2F0aW9uQnlLZXlSZXF1ZXN0IHwgR2V0Q29udmVyc2F0aW9uQnlLZXlSZXF1ZXN0SW50ZXJmYWNlKTogT2JzZXJ2YWJsZTxHZXRDb252ZXJzYXRpb25CeUtleVJlc3BvbnNlPiB7XG4gICAgICAgIGNvbnN0IHJlcXVlc3QgPSAoKDxHZXRDb252ZXJzYXRpb25CeUtleVJlcXVlc3Q+cikudG9BcGlKc29uKSA/ICg8R2V0Q29udmVyc2F0aW9uQnlLZXlSZXF1ZXN0PnIpIDogbmV3IEdldENvbnZlcnNhdGlvbkJ5S2V5UmVxdWVzdChyKTtcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PEdldENvbnZlcnNhdGlvbkJ5S2V5UmVzcG9uc2VJbnRlcmZhY2U+KHRoaXMuX2hvc3QgKyBcIi9jb252ZXJzYXRpb24udjEuQ29udmVyc2F0aW9uU2VydmljZS9HZXRDb252ZXJzYXRpb25CeUtleVwiLCByZXF1ZXN0LnRvQXBpSnNvbigpLCB0aGlzLmFwaU9wdGlvbnMoKSlcbiAgICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgICAgIG1hcChyZXNwID0+IEdldENvbnZlcnNhdGlvbkJ5S2V5UmVzcG9uc2UuZnJvbVByb3RvKHJlc3ApKVxuICAgICAgICAgICAgKTtcbiAgICB9XG4gICAgY3JlYXRlQ29udmVyc2F0aW9uKHI6IENyZWF0ZUNvbnZlcnNhdGlvblJlcXVlc3QgfCBDcmVhdGVDb252ZXJzYXRpb25SZXF1ZXN0SW50ZXJmYWNlKTogT2JzZXJ2YWJsZTxDcmVhdGVDb252ZXJzYXRpb25SZXNwb25zZT4ge1xuICAgICAgICBjb25zdCByZXF1ZXN0ID0gKCg8Q3JlYXRlQ29udmVyc2F0aW9uUmVxdWVzdD5yKS50b0FwaUpzb24pID8gKDxDcmVhdGVDb252ZXJzYXRpb25SZXF1ZXN0PnIpIDogbmV3IENyZWF0ZUNvbnZlcnNhdGlvblJlcXVlc3Qocik7XG4gICAgICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxDcmVhdGVDb252ZXJzYXRpb25SZXNwb25zZUludGVyZmFjZT4odGhpcy5faG9zdCArIFwiL2NvbnZlcnNhdGlvbi52MS5Db252ZXJzYXRpb25TZXJ2aWNlL0NyZWF0ZUNvbnZlcnNhdGlvblwiLCByZXF1ZXN0LnRvQXBpSnNvbigpLCB0aGlzLmFwaU9wdGlvbnMoKSlcbiAgICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgICAgIG1hcChyZXNwID0+IENyZWF0ZUNvbnZlcnNhdGlvblJlc3BvbnNlLmZyb21Qcm90byhyZXNwKSlcbiAgICAgICAgICAgICk7XG4gICAgfVxuICAgIHVwZGF0ZUNvbnZlcnNhdGlvbihyOiBVcGRhdGVDb252ZXJzYXRpb25SZXF1ZXN0IHwgVXBkYXRlQ29udmVyc2F0aW9uUmVxdWVzdEludGVyZmFjZSk6IE9ic2VydmFibGU8VXBkYXRlQ29udmVyc2F0aW9uUmVzcG9uc2U+IHtcbiAgICAgICAgY29uc3QgcmVxdWVzdCA9ICgoPFVwZGF0ZUNvbnZlcnNhdGlvblJlcXVlc3Q+cikudG9BcGlKc29uKSA/ICg8VXBkYXRlQ29udmVyc2F0aW9uUmVxdWVzdD5yKSA6IG5ldyBVcGRhdGVDb252ZXJzYXRpb25SZXF1ZXN0KHIpO1xuICAgICAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8VXBkYXRlQ29udmVyc2F0aW9uUmVzcG9uc2VJbnRlcmZhY2U+KHRoaXMuX2hvc3QgKyBcIi9jb252ZXJzYXRpb24udjEuQ29udmVyc2F0aW9uU2VydmljZS9VcGRhdGVDb252ZXJzYXRpb25cIiwgcmVxdWVzdC50b0FwaUpzb24oKSwgdGhpcy5hcGlPcHRpb25zKCkpXG4gICAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgICAgICBtYXAocmVzcCA9PiBVcGRhdGVDb252ZXJzYXRpb25SZXNwb25zZS5mcm9tUHJvdG8ocmVzcCkpXG4gICAgICAgICAgICApO1xuICAgIH1cbiAgICBkZWxldGVDb252ZXJzYXRpb24ocjogRGVsZXRlQ29udmVyc2F0aW9uUmVxdWVzdCB8IERlbGV0ZUNvbnZlcnNhdGlvblJlcXVlc3RJbnRlcmZhY2UpOiBPYnNlcnZhYmxlPEh0dHBSZXNwb25zZTxudWxsPj4ge1xuICAgICAgICBjb25zdCByZXF1ZXN0ID0gKCg8RGVsZXRlQ29udmVyc2F0aW9uUmVxdWVzdD5yKS50b0FwaUpzb24pID8gKDxEZWxldGVDb252ZXJzYXRpb25SZXF1ZXN0PnIpIDogbmV3IERlbGV0ZUNvbnZlcnNhdGlvblJlcXVlc3Qocik7XG4gICAgICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxudWxsPih0aGlzLl9ob3N0ICsgXCIvY29udmVyc2F0aW9uLnYxLkNvbnZlcnNhdGlvblNlcnZpY2UvRGVsZXRlQ29udmVyc2F0aW9uXCIsIHJlcXVlc3QudG9BcGlKc29uKCksIHsuLi50aGlzLmFwaU9wdGlvbnMoKSwgb2JzZXJ2ZTogJ3Jlc3BvbnNlJ30pO1xuICAgIH1cbiAgICByZWNlaXZlTWVzc2FnZShyOiBSZWNlaXZlTWVzc2FnZVJlcXVlc3QgfCBSZWNlaXZlTWVzc2FnZVJlcXVlc3RJbnRlcmZhY2UpOiBPYnNlcnZhYmxlPEh0dHBSZXNwb25zZTxudWxsPj4ge1xuICAgICAgICBjb25zdCByZXF1ZXN0ID0gKCg8UmVjZWl2ZU1lc3NhZ2VSZXF1ZXN0PnIpLnRvQXBpSnNvbikgPyAoPFJlY2VpdmVNZXNzYWdlUmVxdWVzdD5yKSA6IG5ldyBSZWNlaXZlTWVzc2FnZVJlcXVlc3Qocik7XG4gICAgICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxudWxsPih0aGlzLl9ob3N0ICsgXCIvY29udmVyc2F0aW9uLnYxLkNvbnZlcnNhdGlvblNlcnZpY2UvUmVjZWl2ZU1lc3NhZ2VcIiwgcmVxdWVzdC50b0FwaUpzb24oKSwgey4uLnRoaXMuYXBpT3B0aW9ucygpLCBvYnNlcnZlOiAncmVzcG9uc2UnfSk7XG4gICAgfVxuICAgIGdldE11bHRpTWVzc2FnZXMocjogR2V0TXVsdGlNZXNzYWdlc1JlcXVlc3QgfCBHZXRNdWx0aU1lc3NhZ2VzUmVxdWVzdEludGVyZmFjZSk6IE9ic2VydmFibGU8R2V0TXVsdGlNZXNzYWdlc1Jlc3BvbnNlPiB7XG4gICAgICAgIGNvbnN0IHJlcXVlc3QgPSAoKDxHZXRNdWx0aU1lc3NhZ2VzUmVxdWVzdD5yKS50b0FwaUpzb24pID8gKDxHZXRNdWx0aU1lc3NhZ2VzUmVxdWVzdD5yKSA6IG5ldyBHZXRNdWx0aU1lc3NhZ2VzUmVxdWVzdChyKTtcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PEdldE11bHRpTWVzc2FnZXNSZXNwb25zZUludGVyZmFjZT4odGhpcy5faG9zdCArIFwiL2NvbnZlcnNhdGlvbi52MS5Db252ZXJzYXRpb25TZXJ2aWNlL0dldE11bHRpTWVzc2FnZXNcIiwgcmVxdWVzdC50b0FwaUpzb24oKSwgdGhpcy5hcGlPcHRpb25zKCkpXG4gICAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgICAgICBtYXAocmVzcCA9PiBHZXRNdWx0aU1lc3NhZ2VzUmVzcG9uc2UuZnJvbVByb3RvKHJlc3ApKVxuICAgICAgICAgICAgKTtcbiAgICB9XG4gICAgY3JlYXRlTXVsdGlNZXNzYWdlcyhyOiBDcmVhdGVNdWx0aU1lc3NhZ2VzUmVxdWVzdCB8IENyZWF0ZU11bHRpTWVzc2FnZXNSZXF1ZXN0SW50ZXJmYWNlKTogT2JzZXJ2YWJsZTxIdHRwUmVzcG9uc2U8bnVsbD4+IHtcbiAgICAgICAgY29uc3QgcmVxdWVzdCA9ICgoPENyZWF0ZU11bHRpTWVzc2FnZXNSZXF1ZXN0PnIpLnRvQXBpSnNvbikgPyAoPENyZWF0ZU11bHRpTWVzc2FnZXNSZXF1ZXN0PnIpIDogbmV3IENyZWF0ZU11bHRpTWVzc2FnZXNSZXF1ZXN0KHIpO1xuICAgICAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8bnVsbD4odGhpcy5faG9zdCArIFwiL2NvbnZlcnNhdGlvbi52MS5Db252ZXJzYXRpb25TZXJ2aWNlL0NyZWF0ZU11bHRpTWVzc2FnZXNcIiwgcmVxdWVzdC50b0FwaUpzb24oKSwgey4uLnRoaXMuYXBpT3B0aW9ucygpLCBvYnNlcnZlOiAncmVzcG9uc2UnfSk7XG4gICAgfVxuICAgIGdldE11bHRpQ29udmVyc2F0aW9uRGV0YWlscyhyOiBHZXRNdWx0aUNvbnZlcnNhdGlvbkRldGFpbHNSZXF1ZXN0IHwgR2V0TXVsdGlDb252ZXJzYXRpb25EZXRhaWxzUmVxdWVzdEludGVyZmFjZSk6IE9ic2VydmFibGU8R2V0TXVsdGlDb252ZXJzYXRpb25EZXRhaWxzUmVzcG9uc2U+IHtcbiAgICAgICAgY29uc3QgcmVxdWVzdCA9ICgoPEdldE11bHRpQ29udmVyc2F0aW9uRGV0YWlsc1JlcXVlc3Q+cikudG9BcGlKc29uKSA/ICg8R2V0TXVsdGlDb252ZXJzYXRpb25EZXRhaWxzUmVxdWVzdD5yKSA6IG5ldyBHZXRNdWx0aUNvbnZlcnNhdGlvbkRldGFpbHNSZXF1ZXN0KHIpO1xuICAgICAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8R2V0TXVsdGlDb252ZXJzYXRpb25EZXRhaWxzUmVzcG9uc2VJbnRlcmZhY2U+KHRoaXMuX2hvc3QgKyBcIi9jb252ZXJzYXRpb24udjEuQ29udmVyc2F0aW9uU2VydmljZS9HZXRNdWx0aUNvbnZlcnNhdGlvbkRldGFpbHNcIiwgcmVxdWVzdC50b0FwaUpzb24oKSwgdGhpcy5hcGlPcHRpb25zKCkpXG4gICAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgICAgICBtYXAocmVzcCA9PiBHZXRNdWx0aUNvbnZlcnNhdGlvbkRldGFpbHNSZXNwb25zZS5mcm9tUHJvdG8ocmVzcCkpXG4gICAgICAgICAgICApO1xuICAgIH1cbiAgICBnZXRNdWx0aVBhcnRpY2lwYW50cyhyOiBHZXRNdWx0aVBhcnRpY2lwYW50c1JlcXVlc3QgfCBHZXRNdWx0aVBhcnRpY2lwYW50c1JlcXVlc3RJbnRlcmZhY2UpOiBPYnNlcnZhYmxlPEdldE11bHRpUGFydGljaXBhbnRzUmVzcG9uc2U+IHtcbiAgICAgICAgY29uc3QgcmVxdWVzdCA9ICgoPEdldE11bHRpUGFydGljaXBhbnRzUmVxdWVzdD5yKS50b0FwaUpzb24pID8gKDxHZXRNdWx0aVBhcnRpY2lwYW50c1JlcXVlc3Q+cikgOiBuZXcgR2V0TXVsdGlQYXJ0aWNpcGFudHNSZXF1ZXN0KHIpO1xuICAgICAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8R2V0TXVsdGlQYXJ0aWNpcGFudHNSZXNwb25zZUludGVyZmFjZT4odGhpcy5faG9zdCArIFwiL2NvbnZlcnNhdGlvbi52MS5Db252ZXJzYXRpb25TZXJ2aWNlL0dldE11bHRpUGFydGljaXBhbnRzXCIsIHJlcXVlc3QudG9BcGlKc29uKCksIHRoaXMuYXBpT3B0aW9ucygpKVxuICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgICAgbWFwKHJlc3AgPT4gR2V0TXVsdGlQYXJ0aWNpcGFudHNSZXNwb25zZS5mcm9tUHJvdG8ocmVzcCkpXG4gICAgICAgICAgICApO1xuICAgIH1cbiAgICBzZWFyY2hDb252ZXJzYXRpb25zKHI6IFNlYXJjaENvbnZlcnNhdGlvbnNSZXF1ZXN0IHwgU2VhcmNoQ29udmVyc2F0aW9uc1JlcXVlc3RJbnRlcmZhY2UpOiBPYnNlcnZhYmxlPFNlYXJjaENvbnZlcnNhdGlvbnNSZXNwb25zZT4ge1xuICAgICAgICBjb25zdCByZXF1ZXN0ID0gKCg8U2VhcmNoQ29udmVyc2F0aW9uc1JlcXVlc3Q+cikudG9BcGlKc29uKSA/ICg8U2VhcmNoQ29udmVyc2F0aW9uc1JlcXVlc3Q+cikgOiBuZXcgU2VhcmNoQ29udmVyc2F0aW9uc1JlcXVlc3Qocik7XG4gICAgICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxTZWFyY2hDb252ZXJzYXRpb25zUmVzcG9uc2VJbnRlcmZhY2U+KHRoaXMuX2hvc3QgKyBcIi9jb252ZXJzYXRpb24udjEuQ29udmVyc2F0aW9uU2VydmljZS9TZWFyY2hDb252ZXJzYXRpb25zXCIsIHJlcXVlc3QudG9BcGlKc29uKCksIHRoaXMuYXBpT3B0aW9ucygpKVxuICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgICAgbWFwKHJlc3AgPT4gU2VhcmNoQ29udmVyc2F0aW9uc1Jlc3BvbnNlLmZyb21Qcm90byhyZXNwKSlcbiAgICAgICAgICAgICk7XG4gICAgfVxuICAgIGdldE11bHRpQ29udmVyc2F0aW9uTWVzc2FnZUNvdW50KHI6IEdldE11bHRpQ29udmVyc2F0aW9uTWVzc2FnZUNvdW50UmVxdWVzdCB8IEdldE11bHRpQ29udmVyc2F0aW9uTWVzc2FnZUNvdW50UmVxdWVzdEludGVyZmFjZSk6IE9ic2VydmFibGU8R2V0TXVsdGlDb252ZXJzYXRpb25NZXNzYWdlQ291bnRSZXNwb25zZT4ge1xuICAgICAgICBjb25zdCByZXF1ZXN0ID0gKCg8R2V0TXVsdGlDb252ZXJzYXRpb25NZXNzYWdlQ291bnRSZXF1ZXN0PnIpLnRvQXBpSnNvbikgPyAoPEdldE11bHRpQ29udmVyc2F0aW9uTWVzc2FnZUNvdW50UmVxdWVzdD5yKSA6IG5ldyBHZXRNdWx0aUNvbnZlcnNhdGlvbk1lc3NhZ2VDb3VudFJlcXVlc3Qocik7XG4gICAgICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxHZXRNdWx0aUNvbnZlcnNhdGlvbk1lc3NhZ2VDb3VudFJlc3BvbnNlSW50ZXJmYWNlPih0aGlzLl9ob3N0ICsgXCIvY29udmVyc2F0aW9uLnYxLkNvbnZlcnNhdGlvblNlcnZpY2UvR2V0TXVsdGlDb252ZXJzYXRpb25NZXNzYWdlQ291bnRcIiwgcmVxdWVzdC50b0FwaUpzb24oKSwgdGhpcy5hcGlPcHRpb25zKCkpXG4gICAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgICAgICBtYXAocmVzcCA9PiBHZXRNdWx0aUNvbnZlcnNhdGlvbk1lc3NhZ2VDb3VudFJlc3BvbnNlLmZyb21Qcm90byhyZXNwKSlcbiAgICAgICAgICAgICk7XG4gICAgfVxuICAgIGFkZE11bHRpUGFydGljaXBhbnRzKHI6IEFkZE11bHRpUGFydGljaXBhbnRzUmVxdWVzdCB8IEFkZE11bHRpUGFydGljaXBhbnRzUmVxdWVzdEludGVyZmFjZSk6IE9ic2VydmFibGU8QWRkTXVsdGlQYXJ0aWNpcGFudHNSZXNwb25zZT4ge1xuICAgICAgICBjb25zdCByZXF1ZXN0ID0gKCg8QWRkTXVsdGlQYXJ0aWNpcGFudHNSZXF1ZXN0PnIpLnRvQXBpSnNvbikgPyAoPEFkZE11bHRpUGFydGljaXBhbnRzUmVxdWVzdD5yKSA6IG5ldyBBZGRNdWx0aVBhcnRpY2lwYW50c1JlcXVlc3Qocik7XG4gICAgICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxBZGRNdWx0aVBhcnRpY2lwYW50c1Jlc3BvbnNlSW50ZXJmYWNlPih0aGlzLl9ob3N0ICsgXCIvY29udmVyc2F0aW9uLnYxLkNvbnZlcnNhdGlvblNlcnZpY2UvQWRkTXVsdGlQYXJ0aWNpcGFudHNcIiwgcmVxdWVzdC50b0FwaUpzb24oKSwgdGhpcy5hcGlPcHRpb25zKCkpXG4gICAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgICAgICBtYXAocmVzcCA9PiBBZGRNdWx0aVBhcnRpY2lwYW50c1Jlc3BvbnNlLmZyb21Qcm90byhyZXNwKSlcbiAgICAgICAgICAgICk7XG4gICAgfVxuICAgIHNldExhc3RTZWVuKHI6IFNldExhc3RTZWVuUmVxdWVzdCB8IFNldExhc3RTZWVuUmVxdWVzdEludGVyZmFjZSk6IE9ic2VydmFibGU8U2V0TGFzdFNlZW5SZXNwb25zZT4ge1xuICAgICAgICBjb25zdCByZXF1ZXN0ID0gKCg8U2V0TGFzdFNlZW5SZXF1ZXN0PnIpLnRvQXBpSnNvbikgPyAoPFNldExhc3RTZWVuUmVxdWVzdD5yKSA6IG5ldyBTZXRMYXN0U2VlblJlcXVlc3Qocik7XG4gICAgICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxTZXRMYXN0U2VlblJlc3BvbnNlSW50ZXJmYWNlPih0aGlzLl9ob3N0ICsgXCIvY29udmVyc2F0aW9uLnYxLkNvbnZlcnNhdGlvblNlcnZpY2UvU2V0TGFzdFNlZW5cIiwgcmVxdWVzdC50b0FwaUpzb24oKSwgdGhpcy5hcGlPcHRpb25zKCkpXG4gICAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgICAgICBtYXAocmVzcCA9PiBTZXRMYXN0U2VlblJlc3BvbnNlLmZyb21Qcm90byhyZXNwKSlcbiAgICAgICAgICAgICk7XG4gICAgfVxuICAgIGdldFBhcnRpY2lwYW50c0J5S2V5KHI6IEdldFBhcnRpY2lwYW50c0J5S2V5UmVxdWVzdCB8IEdldFBhcnRpY2lwYW50c0J5S2V5UmVxdWVzdEludGVyZmFjZSk6IE9ic2VydmFibGU8R2V0UGFydGljaXBhbnRzQnlLZXlSZXNwb25zZT4ge1xuICAgICAgICBjb25zdCByZXF1ZXN0ID0gKCg8R2V0UGFydGljaXBhbnRzQnlLZXlSZXF1ZXN0PnIpLnRvQXBpSnNvbikgPyAoPEdldFBhcnRpY2lwYW50c0J5S2V5UmVxdWVzdD5yKSA6IG5ldyBHZXRQYXJ0aWNpcGFudHNCeUtleVJlcXVlc3Qocik7XG4gICAgICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxHZXRQYXJ0aWNpcGFudHNCeUtleVJlc3BvbnNlSW50ZXJmYWNlPih0aGlzLl9ob3N0ICsgXCIvY29udmVyc2F0aW9uLnYxLkNvbnZlcnNhdGlvblNlcnZpY2UvR2V0UGFydGljaXBhbnRzQnlLZXlcIiwgcmVxdWVzdC50b0FwaUpzb24oKSwgdGhpcy5hcGlPcHRpb25zKCkpXG4gICAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgICAgICBtYXAocmVzcCA9PiBHZXRQYXJ0aWNpcGFudHNCeUtleVJlc3BvbnNlLmZyb21Qcm90byhyZXNwKSlcbiAgICAgICAgICAgICk7XG4gICAgfVxuICAgIGdldENvbnZlcnNhdGlvblZpZXdzKHI6IEdldENvbnZlcnNhdGlvblZpZXdzUmVxdWVzdCB8IEdldENvbnZlcnNhdGlvblZpZXdzUmVxdWVzdEludGVyZmFjZSk6IE9ic2VydmFibGU8R2V0Q29udmVyc2F0aW9uVmlld3NSZXNwb25zZT4ge1xuICAgICAgICBjb25zdCByZXF1ZXN0ID0gKCg8R2V0Q29udmVyc2F0aW9uVmlld3NSZXF1ZXN0PnIpLnRvQXBpSnNvbikgPyAoPEdldENvbnZlcnNhdGlvblZpZXdzUmVxdWVzdD5yKSA6IG5ldyBHZXRDb252ZXJzYXRpb25WaWV3c1JlcXVlc3Qocik7XG4gICAgICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxHZXRDb252ZXJzYXRpb25WaWV3c1Jlc3BvbnNlSW50ZXJmYWNlPih0aGlzLl9ob3N0ICsgXCIvY29udmVyc2F0aW9uLnYxLkNvbnZlcnNhdGlvblNlcnZpY2UvR2V0Q29udmVyc2F0aW9uVmlld3NcIiwgcmVxdWVzdC50b0FwaUpzb24oKSwgdGhpcy5hcGlPcHRpb25zKCkpXG4gICAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgICAgICBtYXAocmVzcCA9PiBHZXRDb252ZXJzYXRpb25WaWV3c1Jlc3BvbnNlLmZyb21Qcm90byhyZXNwKSlcbiAgICAgICAgICAgICk7XG4gICAgfVxuICAgIGFkZENvbnZlcnNhdGlvblRvQ29udmVyc2F0aW9uVmlldyhyOiBBZGRDb252ZXJzYXRpb25Ub0NvbnZlcnNhdGlvblZpZXdSZXF1ZXN0IHwgQWRkQ29udmVyc2F0aW9uVG9Db252ZXJzYXRpb25WaWV3UmVxdWVzdEludGVyZmFjZSk6IE9ic2VydmFibGU8SHR0cFJlc3BvbnNlPG51bGw+PiB7XG4gICAgICAgIGNvbnN0IHJlcXVlc3QgPSAoKDxBZGRDb252ZXJzYXRpb25Ub0NvbnZlcnNhdGlvblZpZXdSZXF1ZXN0PnIpLnRvQXBpSnNvbikgPyAoPEFkZENvbnZlcnNhdGlvblRvQ29udmVyc2F0aW9uVmlld1JlcXVlc3Q+cikgOiBuZXcgQWRkQ29udmVyc2F0aW9uVG9Db252ZXJzYXRpb25WaWV3UmVxdWVzdChyKTtcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PG51bGw+KHRoaXMuX2hvc3QgKyBcIi9jb252ZXJzYXRpb24udjEuQ29udmVyc2F0aW9uU2VydmljZS9BZGRDb252ZXJzYXRpb25Ub0NvbnZlcnNhdGlvblZpZXdcIiwgcmVxdWVzdC50b0FwaUpzb24oKSwgey4uLnRoaXMuYXBpT3B0aW9ucygpLCBvYnNlcnZlOiAncmVzcG9uc2UnfSk7XG4gICAgfVxuICAgIHJlbW92ZUNvbnZlcnNhdGlvbkZyb21Db252ZXJzYXRpb25WaWV3KHI6IFJlbW92ZUNvbnZlcnNhdGlvbkZyb21Db252ZXJzYXRpb25WaWV3UmVxdWVzdCB8IFJlbW92ZUNvbnZlcnNhdGlvbkZyb21Db252ZXJzYXRpb25WaWV3UmVxdWVzdEludGVyZmFjZSk6IE9ic2VydmFibGU8SHR0cFJlc3BvbnNlPG51bGw+PiB7XG4gICAgICAgIGNvbnN0IHJlcXVlc3QgPSAoKDxSZW1vdmVDb252ZXJzYXRpb25Gcm9tQ29udmVyc2F0aW9uVmlld1JlcXVlc3Q+cikudG9BcGlKc29uKSA/ICg8UmVtb3ZlQ29udmVyc2F0aW9uRnJvbUNvbnZlcnNhdGlvblZpZXdSZXF1ZXN0PnIpIDogbmV3IFJlbW92ZUNvbnZlcnNhdGlvbkZyb21Db252ZXJzYXRpb25WaWV3UmVxdWVzdChyKTtcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PG51bGw+KHRoaXMuX2hvc3QgKyBcIi9jb252ZXJzYXRpb24udjEuQ29udmVyc2F0aW9uU2VydmljZS9SZW1vdmVDb252ZXJzYXRpb25Gcm9tQ29udmVyc2F0aW9uVmlld1wiLCByZXF1ZXN0LnRvQXBpSnNvbigpLCB7Li4udGhpcy5hcGlPcHRpb25zKCksIG9ic2VydmU6ICdyZXNwb25zZSd9KTtcbiAgICB9XG4gICAgY3JlYXRlV2lkZ2V0Q29udmVyc2F0aW9uKHI6IENyZWF0ZVdpZGdldENvbnZlcnNhdGlvblJlcXVlc3QgfCBDcmVhdGVXaWRnZXRDb252ZXJzYXRpb25SZXF1ZXN0SW50ZXJmYWNlKTogT2JzZXJ2YWJsZTxDcmVhdGVXaWRnZXRDb252ZXJzYXRpb25SZXNwb25zZT4ge1xuICAgICAgICBjb25zdCByZXF1ZXN0ID0gKCg8Q3JlYXRlV2lkZ2V0Q29udmVyc2F0aW9uUmVxdWVzdD5yKS50b0FwaUpzb24pID8gKDxDcmVhdGVXaWRnZXRDb252ZXJzYXRpb25SZXF1ZXN0PnIpIDogbmV3IENyZWF0ZVdpZGdldENvbnZlcnNhdGlvblJlcXVlc3Qocik7XG4gICAgICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxDcmVhdGVXaWRnZXRDb252ZXJzYXRpb25SZXNwb25zZUludGVyZmFjZT4odGhpcy5faG9zdCArIFwiL2NvbnZlcnNhdGlvbi52MS5Db252ZXJzYXRpb25TZXJ2aWNlL0NyZWF0ZVdpZGdldENvbnZlcnNhdGlvblwiLCByZXF1ZXN0LnRvQXBpSnNvbigpLCB0aGlzLmFwaU9wdGlvbnMoKSlcbiAgICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgICAgIG1hcChyZXNwID0+IENyZWF0ZVdpZGdldENvbnZlcnNhdGlvblJlc3BvbnNlLmZyb21Qcm90byhyZXNwKSlcbiAgICAgICAgICAgICk7XG4gICAgfVxuICAgIGdldE11bHRpV2lkZ2V0TWVzc2FnZXMocjogR2V0TXVsdGlXaWRnZXRNZXNzYWdlc1JlcXVlc3QgfCBHZXRNdWx0aVdpZGdldE1lc3NhZ2VzUmVxdWVzdEludGVyZmFjZSk6IE9ic2VydmFibGU8R2V0TXVsdGlXaWRnZXRNZXNzYWdlc1Jlc3BvbnNlPiB7XG4gICAgICAgIGNvbnN0IHJlcXVlc3QgPSAoKDxHZXRNdWx0aVdpZGdldE1lc3NhZ2VzUmVxdWVzdD5yKS50b0FwaUpzb24pID8gKDxHZXRNdWx0aVdpZGdldE1lc3NhZ2VzUmVxdWVzdD5yKSA6IG5ldyBHZXRNdWx0aVdpZGdldE1lc3NhZ2VzUmVxdWVzdChyKTtcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PEdldE11bHRpV2lkZ2V0TWVzc2FnZXNSZXNwb25zZUludGVyZmFjZT4odGhpcy5faG9zdCArIFwiL2NvbnZlcnNhdGlvbi52MS5Db252ZXJzYXRpb25TZXJ2aWNlL0dldE11bHRpV2lkZ2V0TWVzc2FnZXNcIiwgcmVxdWVzdC50b0FwaUpzb24oKSwgdGhpcy5hcGlPcHRpb25zKCkpXG4gICAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgICAgICBtYXAocmVzcCA9PiBHZXRNdWx0aVdpZGdldE1lc3NhZ2VzUmVzcG9uc2UuZnJvbVByb3RvKHJlc3ApKVxuICAgICAgICAgICAgKTtcbiAgICB9XG4gICAgc2VuZFdpZGdldE1lc3NhZ2UocjogU2VuZFdpZGdldE1lc3NhZ2VSZXF1ZXN0IHwgU2VuZFdpZGdldE1lc3NhZ2VSZXF1ZXN0SW50ZXJmYWNlKTogT2JzZXJ2YWJsZTxTZW5kV2lkZ2V0TWVzc2FnZVJlc3BvbnNlPiB7XG4gICAgICAgIGNvbnN0IHJlcXVlc3QgPSAoKDxTZW5kV2lkZ2V0TWVzc2FnZVJlcXVlc3Q+cikudG9BcGlKc29uKSA/ICg8U2VuZFdpZGdldE1lc3NhZ2VSZXF1ZXN0PnIpIDogbmV3IFNlbmRXaWRnZXRNZXNzYWdlUmVxdWVzdChyKTtcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PFNlbmRXaWRnZXRNZXNzYWdlUmVzcG9uc2VJbnRlcmZhY2U+KHRoaXMuX2hvc3QgKyBcIi9jb252ZXJzYXRpb24udjEuQ29udmVyc2F0aW9uU2VydmljZS9TZW5kV2lkZ2V0TWVzc2FnZVwiLCByZXF1ZXN0LnRvQXBpSnNvbigpLCB0aGlzLmFwaU9wdGlvbnMoKSlcbiAgICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgICAgIG1hcChyZXNwID0+IFNlbmRXaWRnZXRNZXNzYWdlUmVzcG9uc2UuZnJvbVByb3RvKHJlc3ApKVxuICAgICAgICAgICAgKTtcbiAgICB9XG4gICAgZ2V0V2lkZ2V0Q29udmVyc2F0aW9uKCk6IE9ic2VydmFibGU8R2V0V2lkZ2V0Q29udmVyc2F0aW9uUmVzcG9uc2U+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PEdldFdpZGdldENvbnZlcnNhdGlvblJlc3BvbnNlSW50ZXJmYWNlPih0aGlzLl9ob3N0ICsgXCIvY29udmVyc2F0aW9uLnYxLkNvbnZlcnNhdGlvblNlcnZpY2UvR2V0V2lkZ2V0Q29udmVyc2F0aW9uXCIsIHt9LCB0aGlzLmFwaU9wdGlvbnMoKSlcbiAgICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgICAgIG1hcChyZXNwID0+IEdldFdpZGdldENvbnZlcnNhdGlvblJlc3BvbnNlLmZyb21Qcm90byhyZXNwKSlcbiAgICAgICAgICAgICk7XG4gICAgfVxuICAgIGdldEF2YWlsYWJsZUNoYW5uZWxzRm9yQ29udmVyc2F0aW9uKHI6IEdldEF2YWlsYWJsZUNoYW5uZWxzRm9yQ29udmVyc2F0aW9uUmVxdWVzdCB8IEdldEF2YWlsYWJsZUNoYW5uZWxzRm9yQ29udmVyc2F0aW9uUmVxdWVzdEludGVyZmFjZSk6IE9ic2VydmFibGU8R2V0QXZhaWxhYmxlQ2hhbm5lbHNGb3JDb252ZXJzYXRpb25SZXNwb25zZT4ge1xuICAgICAgICBjb25zdCByZXF1ZXN0ID0gKCg8R2V0QXZhaWxhYmxlQ2hhbm5lbHNGb3JDb252ZXJzYXRpb25SZXF1ZXN0PnIpLnRvQXBpSnNvbikgPyAoPEdldEF2YWlsYWJsZUNoYW5uZWxzRm9yQ29udmVyc2F0aW9uUmVxdWVzdD5yKSA6IG5ldyBHZXRBdmFpbGFibGVDaGFubmVsc0ZvckNvbnZlcnNhdGlvblJlcXVlc3Qocik7XG4gICAgICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxHZXRBdmFpbGFibGVDaGFubmVsc0ZvckNvbnZlcnNhdGlvblJlc3BvbnNlSW50ZXJmYWNlPih0aGlzLl9ob3N0ICsgXCIvY29udmVyc2F0aW9uLnYxLkNvbnZlcnNhdGlvblNlcnZpY2UvR2V0QXZhaWxhYmxlQ2hhbm5lbHNGb3JDb252ZXJzYXRpb25cIiwgcmVxdWVzdC50b0FwaUpzb24oKSwgdGhpcy5hcGlPcHRpb25zKCkpXG4gICAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgICAgICBtYXAocmVzcCA9PiBHZXRBdmFpbGFibGVDaGFubmVsc0ZvckNvbnZlcnNhdGlvblJlc3BvbnNlLmZyb21Qcm90byhyZXNwKSlcbiAgICAgICAgICAgICk7XG4gICAgfVxuICAgIGV2YWx1YXRlUmVzcG9uc2UocjogRXZhbHVhdGVSZXNwb25zZVJlcXVlc3QgfCBFdmFsdWF0ZVJlc3BvbnNlUmVxdWVzdEludGVyZmFjZSk6IE9ic2VydmFibGU8SHR0cFJlc3BvbnNlPG51bGw+PiB7XG4gICAgICAgIGNvbnN0IHJlcXVlc3QgPSAoKDxFdmFsdWF0ZVJlc3BvbnNlUmVxdWVzdD5yKS50b0FwaUpzb24pID8gKDxFdmFsdWF0ZVJlc3BvbnNlUmVxdWVzdD5yKSA6IG5ldyBFdmFsdWF0ZVJlc3BvbnNlUmVxdWVzdChyKTtcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PG51bGw+KHRoaXMuX2hvc3QgKyBcIi9jb252ZXJzYXRpb24udjEuQ29udmVyc2F0aW9uU2VydmljZS9FdmFsdWF0ZVJlc3BvbnNlXCIsIHJlcXVlc3QudG9BcGlKc29uKCksIHsuLi50aGlzLmFwaU9wdGlvbnMoKSwgb2JzZXJ2ZTogJ3Jlc3BvbnNlJ30pO1xuICAgIH1cbiAgICBjcmVhdGVXaWRnZXQocjogQ3JlYXRlV2lkZ2V0UmVxdWVzdCB8IENyZWF0ZVdpZGdldFJlcXVlc3RJbnRlcmZhY2UpOiBPYnNlcnZhYmxlPENyZWF0ZVdpZGdldFJlc3BvbnNlPiB7XG4gICAgICAgIGNvbnN0IHJlcXVlc3QgPSAoKDxDcmVhdGVXaWRnZXRSZXF1ZXN0PnIpLnRvQXBpSnNvbikgPyAoPENyZWF0ZVdpZGdldFJlcXVlc3Q+cikgOiBuZXcgQ3JlYXRlV2lkZ2V0UmVxdWVzdChyKTtcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PENyZWF0ZVdpZGdldFJlc3BvbnNlSW50ZXJmYWNlPih0aGlzLl9ob3N0ICsgXCIvY29udmVyc2F0aW9uLnYxLkNvbnZlcnNhdGlvblNlcnZpY2UvQ3JlYXRlV2lkZ2V0XCIsIHJlcXVlc3QudG9BcGlKc29uKCksIHRoaXMuYXBpT3B0aW9ucygpKVxuICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgICAgbWFwKHJlc3AgPT4gQ3JlYXRlV2lkZ2V0UmVzcG9uc2UuZnJvbVByb3RvKHJlc3ApKVxuICAgICAgICAgICAgKTtcbiAgICB9XG4gICAgZ2V0V2lkZ2V0KHI6IEdldFdpZGdldFJlcXVlc3QgfCBHZXRXaWRnZXRSZXF1ZXN0SW50ZXJmYWNlKTogT2JzZXJ2YWJsZTxHZXRXaWRnZXRSZXNwb25zZT4ge1xuICAgICAgICBjb25zdCByZXF1ZXN0ID0gKCg8R2V0V2lkZ2V0UmVxdWVzdD5yKS50b0FwaUpzb24pID8gKDxHZXRXaWRnZXRSZXF1ZXN0PnIpIDogbmV3IEdldFdpZGdldFJlcXVlc3Qocik7XG4gICAgICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxHZXRXaWRnZXRSZXNwb25zZUludGVyZmFjZT4odGhpcy5faG9zdCArIFwiL2NvbnZlcnNhdGlvbi52MS5Db252ZXJzYXRpb25TZXJ2aWNlL0dldFdpZGdldFwiLCByZXF1ZXN0LnRvQXBpSnNvbigpLCB0aGlzLmFwaU9wdGlvbnMoKSlcbiAgICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgICAgIG1hcChyZXNwID0+IEdldFdpZGdldFJlc3BvbnNlLmZyb21Qcm90byhyZXNwKSlcbiAgICAgICAgICAgICk7XG4gICAgfVxuICAgIHVwZGF0ZVdpZGdldChyOiBVcGRhdGVXaWRnZXRSZXF1ZXN0IHwgVXBkYXRlV2lkZ2V0UmVxdWVzdEludGVyZmFjZSk6IE9ic2VydmFibGU8VXBkYXRlV2lkZ2V0UmVzcG9uc2U+IHtcbiAgICAgICAgY29uc3QgcmVxdWVzdCA9ICgoPFVwZGF0ZVdpZGdldFJlcXVlc3Q+cikudG9BcGlKc29uKSA/ICg8VXBkYXRlV2lkZ2V0UmVxdWVzdD5yKSA6IG5ldyBVcGRhdGVXaWRnZXRSZXF1ZXN0KHIpO1xuICAgICAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8VXBkYXRlV2lkZ2V0UmVzcG9uc2VJbnRlcmZhY2U+KHRoaXMuX2hvc3QgKyBcIi9jb252ZXJzYXRpb24udjEuQ29udmVyc2F0aW9uU2VydmljZS9VcGRhdGVXaWRnZXRcIiwgcmVxdWVzdC50b0FwaUpzb24oKSwgdGhpcy5hcGlPcHRpb25zKCkpXG4gICAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgICAgICBtYXAocmVzcCA9PiBVcGRhdGVXaWRnZXRSZXNwb25zZS5mcm9tUHJvdG8ocmVzcCkpXG4gICAgICAgICAgICApO1xuICAgIH1cbiAgICBkZWxldGVXaWRnZXQocjogRGVsZXRlV2lkZ2V0UmVxdWVzdCB8IERlbGV0ZVdpZGdldFJlcXVlc3RJbnRlcmZhY2UpOiBPYnNlcnZhYmxlPEh0dHBSZXNwb25zZTxudWxsPj4ge1xuICAgICAgICBjb25zdCByZXF1ZXN0ID0gKCg8RGVsZXRlV2lkZ2V0UmVxdWVzdD5yKS50b0FwaUpzb24pID8gKDxEZWxldGVXaWRnZXRSZXF1ZXN0PnIpIDogbmV3IERlbGV0ZVdpZGdldFJlcXVlc3Qocik7XG4gICAgICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxudWxsPih0aGlzLl9ob3N0ICsgXCIvY29udmVyc2F0aW9uLnYxLkNvbnZlcnNhdGlvblNlcnZpY2UvRGVsZXRlV2lkZ2V0XCIsIHJlcXVlc3QudG9BcGlKc29uKCksIHsuLi50aGlzLmFwaU9wdGlvbnMoKSwgb2JzZXJ2ZTogJ3Jlc3BvbnNlJ30pO1xuICAgIH1cbiAgICBsaXN0V2lkZ2V0cyhyOiBMaXN0V2lkZ2V0c1JlcXVlc3QgfCBMaXN0V2lkZ2V0c1JlcXVlc3RJbnRlcmZhY2UpOiBPYnNlcnZhYmxlPExpc3RXaWRnZXRzUmVzcG9uc2U+IHtcbiAgICAgICAgY29uc3QgcmVxdWVzdCA9ICgoPExpc3RXaWRnZXRzUmVxdWVzdD5yKS50b0FwaUpzb24pID8gKDxMaXN0V2lkZ2V0c1JlcXVlc3Q+cikgOiBuZXcgTGlzdFdpZGdldHNSZXF1ZXN0KHIpO1xuICAgICAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8TGlzdFdpZGdldHNSZXNwb25zZUludGVyZmFjZT4odGhpcy5faG9zdCArIFwiL2NvbnZlcnNhdGlvbi52MS5Db252ZXJzYXRpb25TZXJ2aWNlL0xpc3RXaWRnZXRzXCIsIHJlcXVlc3QudG9BcGlKc29uKCksIHRoaXMuYXBpT3B0aW9ucygpKVxuICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgICAgbWFwKHJlc3AgPT4gTGlzdFdpZGdldHNSZXNwb25zZS5mcm9tUHJvdG8ocmVzcCkpXG4gICAgICAgICAgICApO1xuICAgIH1cbiAgICBnZXRXaWRnZXRDb25maWcocjogR2V0V2lkZ2V0Q29uZmlnUmVxdWVzdCB8IEdldFdpZGdldENvbmZpZ1JlcXVlc3RJbnRlcmZhY2UpOiBPYnNlcnZhYmxlPEdldFdpZGdldENvbmZpZ1Jlc3BvbnNlPiB7XG4gICAgICAgIGNvbnN0IHJlcXVlc3QgPSAoKDxHZXRXaWRnZXRDb25maWdSZXF1ZXN0PnIpLnRvQXBpSnNvbikgPyAoPEdldFdpZGdldENvbmZpZ1JlcXVlc3Q+cikgOiBuZXcgR2V0V2lkZ2V0Q29uZmlnUmVxdWVzdChyKTtcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PEdldFdpZGdldENvbmZpZ1Jlc3BvbnNlSW50ZXJmYWNlPih0aGlzLl9ob3N0ICsgXCIvY29udmVyc2F0aW9uLnYxLkNvbnZlcnNhdGlvblNlcnZpY2UvR2V0V2lkZ2V0Q29uZmlnXCIsIHJlcXVlc3QudG9BcGlKc29uKCksIHRoaXMuYXBpT3B0aW9ucygpKVxuICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgICAgbWFwKHJlc3AgPT4gR2V0V2lkZ2V0Q29uZmlnUmVzcG9uc2UuZnJvbVByb3RvKHJlc3ApKVxuICAgICAgICAgICAgKTtcbiAgICB9XG4gICAgbGlzdE1lc3NhZ2VUZW1wbGF0ZShyOiBMaXN0TWVzc2FnZVRlbXBsYXRlUmVxdWVzdCB8IExpc3RNZXNzYWdlVGVtcGxhdGVSZXF1ZXN0SW50ZXJmYWNlKTogT2JzZXJ2YWJsZTxMaXN0TWVzc2FnZVRlbXBsYXRlUmVzcG9uc2U+IHtcbiAgICAgICAgY29uc3QgcmVxdWVzdCA9ICgoPExpc3RNZXNzYWdlVGVtcGxhdGVSZXF1ZXN0PnIpLnRvQXBpSnNvbikgPyAoPExpc3RNZXNzYWdlVGVtcGxhdGVSZXF1ZXN0PnIpIDogbmV3IExpc3RNZXNzYWdlVGVtcGxhdGVSZXF1ZXN0KHIpO1xuICAgICAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8TGlzdE1lc3NhZ2VUZW1wbGF0ZVJlc3BvbnNlSW50ZXJmYWNlPih0aGlzLl9ob3N0ICsgXCIvY29udmVyc2F0aW9uLnYxLkNvbnZlcnNhdGlvblNlcnZpY2UvTGlzdE1lc3NhZ2VUZW1wbGF0ZVwiLCByZXF1ZXN0LnRvQXBpSnNvbigpLCB0aGlzLmFwaU9wdGlvbnMoKSlcbiAgICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgICAgIG1hcChyZXNwID0+IExpc3RNZXNzYWdlVGVtcGxhdGVSZXNwb25zZS5mcm9tUHJvdG8ocmVzcCkpXG4gICAgICAgICAgICApO1xuICAgIH1cbiAgICBkZWxldGVNZXNzYWdlVGVtcGxhdGUocjogRGVsZXRlTWVzc2FnZVRlbXBsYXRlUmVxdWVzdCB8IERlbGV0ZU1lc3NhZ2VUZW1wbGF0ZVJlcXVlc3RJbnRlcmZhY2UpOiBPYnNlcnZhYmxlPEh0dHBSZXNwb25zZTxudWxsPj4ge1xuICAgICAgICBjb25zdCByZXF1ZXN0ID0gKCg8RGVsZXRlTWVzc2FnZVRlbXBsYXRlUmVxdWVzdD5yKS50b0FwaUpzb24pID8gKDxEZWxldGVNZXNzYWdlVGVtcGxhdGVSZXF1ZXN0PnIpIDogbmV3IERlbGV0ZU1lc3NhZ2VUZW1wbGF0ZVJlcXVlc3Qocik7XG4gICAgICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxudWxsPih0aGlzLl9ob3N0ICsgXCIvY29udmVyc2F0aW9uLnYxLkNvbnZlcnNhdGlvblNlcnZpY2UvRGVsZXRlTWVzc2FnZVRlbXBsYXRlXCIsIHJlcXVlc3QudG9BcGlKc29uKCksIHsuLi50aGlzLmFwaU9wdGlvbnMoKSwgb2JzZXJ2ZTogJ3Jlc3BvbnNlJ30pO1xuICAgIH1cbiAgICBjcmVhdGVNZXNzYWdlVGVtcGxhdGUocjogQ3JlYXRlTWVzc2FnZVRlbXBsYXRlUmVxdWVzdCB8IENyZWF0ZU1lc3NhZ2VUZW1wbGF0ZVJlcXVlc3RJbnRlcmZhY2UpOiBPYnNlcnZhYmxlPENyZWF0ZU1lc3NhZ2VUZW1wbGF0ZVJlc3BvbnNlPiB7XG4gICAgICAgIGNvbnN0IHJlcXVlc3QgPSAoKDxDcmVhdGVNZXNzYWdlVGVtcGxhdGVSZXF1ZXN0PnIpLnRvQXBpSnNvbikgPyAoPENyZWF0ZU1lc3NhZ2VUZW1wbGF0ZVJlcXVlc3Q+cikgOiBuZXcgQ3JlYXRlTWVzc2FnZVRlbXBsYXRlUmVxdWVzdChyKTtcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PENyZWF0ZU1lc3NhZ2VUZW1wbGF0ZVJlc3BvbnNlSW50ZXJmYWNlPih0aGlzLl9ob3N0ICsgXCIvY29udmVyc2F0aW9uLnYxLkNvbnZlcnNhdGlvblNlcnZpY2UvQ3JlYXRlTWVzc2FnZVRlbXBsYXRlXCIsIHJlcXVlc3QudG9BcGlKc29uKCksIHRoaXMuYXBpT3B0aW9ucygpKVxuICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgICAgbWFwKHJlc3AgPT4gQ3JlYXRlTWVzc2FnZVRlbXBsYXRlUmVzcG9uc2UuZnJvbVByb3RvKHJlc3ApKVxuICAgICAgICAgICAgKTtcbiAgICB9XG4gICAgdXBkYXRlTWVzc2FnZVRlbXBsYXRlKHI6IFVwZGF0ZU1lc3NhZ2VUZW1wbGF0ZVJlcXVlc3QgfCBVcGRhdGVNZXNzYWdlVGVtcGxhdGVSZXF1ZXN0SW50ZXJmYWNlKTogT2JzZXJ2YWJsZTxVcGRhdGVNZXNzYWdlVGVtcGxhdGVSZXNwb25zZT4ge1xuICAgICAgICBjb25zdCByZXF1ZXN0ID0gKCg8VXBkYXRlTWVzc2FnZVRlbXBsYXRlUmVxdWVzdD5yKS50b0FwaUpzb24pID8gKDxVcGRhdGVNZXNzYWdlVGVtcGxhdGVSZXF1ZXN0PnIpIDogbmV3IFVwZGF0ZU1lc3NhZ2VUZW1wbGF0ZVJlcXVlc3Qocik7XG4gICAgICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxVcGRhdGVNZXNzYWdlVGVtcGxhdGVSZXNwb25zZUludGVyZmFjZT4odGhpcy5faG9zdCArIFwiL2NvbnZlcnNhdGlvbi52MS5Db252ZXJzYXRpb25TZXJ2aWNlL1VwZGF0ZU1lc3NhZ2VUZW1wbGF0ZVwiLCByZXF1ZXN0LnRvQXBpSnNvbigpLCB0aGlzLmFwaU9wdGlvbnMoKSlcbiAgICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgICAgIG1hcChyZXNwID0+IFVwZGF0ZU1lc3NhZ2VUZW1wbGF0ZVJlc3BvbnNlLmZyb21Qcm90byhyZXNwKSlcbiAgICAgICAgICAgICk7XG4gICAgfVxuICAgIGdldE1lc3NhZ2VUZW1wbGF0ZShyOiBHZXRNZXNzYWdlVGVtcGxhdGVSZXF1ZXN0IHwgR2V0TWVzc2FnZVRlbXBsYXRlUmVxdWVzdEludGVyZmFjZSk6IE9ic2VydmFibGU8R2V0TWVzc2FnZVRlbXBsYXRlUmVzcG9uc2U+IHtcbiAgICAgICAgY29uc3QgcmVxdWVzdCA9ICgoPEdldE1lc3NhZ2VUZW1wbGF0ZVJlcXVlc3Q+cikudG9BcGlKc29uKSA/ICg8R2V0TWVzc2FnZVRlbXBsYXRlUmVxdWVzdD5yKSA6IG5ldyBHZXRNZXNzYWdlVGVtcGxhdGVSZXF1ZXN0KHIpO1xuICAgICAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8R2V0TWVzc2FnZVRlbXBsYXRlUmVzcG9uc2VJbnRlcmZhY2U+KHRoaXMuX2hvc3QgKyBcIi9jb252ZXJzYXRpb24udjEuQ29udmVyc2F0aW9uU2VydmljZS9HZXRNZXNzYWdlVGVtcGxhdGVcIiwgcmVxdWVzdC50b0FwaUpzb24oKSwgdGhpcy5hcGlPcHRpb25zKCkpXG4gICAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgICAgICBtYXAocmVzcCA9PiBHZXRNZXNzYWdlVGVtcGxhdGVSZXNwb25zZS5mcm9tUHJvdG8ocmVzcCkpXG4gICAgICAgICAgICApO1xuICAgIH1cbiAgICBnZXRDb252ZXJzYXRpb25TdW1tYXJ5KHI6IEdldENvbnZlcnNhdGlvblN1bW1hcnlSZXF1ZXN0IHwgR2V0Q29udmVyc2F0aW9uU3VtbWFyeVJlcXVlc3RJbnRlcmZhY2UpOiBPYnNlcnZhYmxlPEdldENvbnZlcnNhdGlvblN1bW1hcnlSZXNwb25zZT4ge1xuICAgICAgICBjb25zdCByZXF1ZXN0ID0gKCg8R2V0Q29udmVyc2F0aW9uU3VtbWFyeVJlcXVlc3Q+cikudG9BcGlKc29uKSA/ICg8R2V0Q29udmVyc2F0aW9uU3VtbWFyeVJlcXVlc3Q+cikgOiBuZXcgR2V0Q29udmVyc2F0aW9uU3VtbWFyeVJlcXVlc3Qocik7XG4gICAgICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxHZXRDb252ZXJzYXRpb25TdW1tYXJ5UmVzcG9uc2VJbnRlcmZhY2U+KHRoaXMuX2hvc3QgKyBcIi9jb252ZXJzYXRpb24udjEuQ29udmVyc2F0aW9uU2VydmljZS9HZXRDb252ZXJzYXRpb25TdW1tYXJ5XCIsIHJlcXVlc3QudG9BcGlKc29uKCksIHRoaXMuYXBpT3B0aW9ucygpKVxuICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgICAgbWFwKHJlc3AgPT4gR2V0Q29udmVyc2F0aW9uU3VtbWFyeVJlc3BvbnNlLmZyb21Qcm90byhyZXNwKSlcbiAgICAgICAgICAgICk7XG4gICAgfVxuICAgIFxufVxuIl19
@@ -1,56 +0,0 @@
1
- // *********************************
2
- // Code generated by sdkgen
3
- // DO NOT EDIT!.
4
- //
5
- // API Service.
6
- // *********************************
7
- import { Injectable } from '@angular/core';
8
- import { GetConfigurationRequest, GetConfigurationResponse, GetMultiConfigurationRequest, GetMultiConfigurationResponse, UpsertConfigurationRequest, UpsertConfigurationResponse, UpsertProductFeatureRequest, UpsertProductFeatureResponse, } from './objects/';
9
- import { HttpHeaders, HttpClient } from '@angular/common/http';
10
- import { HostService } from '../_generated/host.service';
11
- import { map } from 'rxjs/operators';
12
- import * as i0 from "@angular/core";
13
- import * as i1 from "@angular/common/http";
14
- import * as i2 from "../_generated/host.service";
15
- export class InboxApiService {
16
- constructor(http, hostService) {
17
- this.http = http;
18
- this.hostService = hostService;
19
- this._host = this.hostService.hostWithScheme;
20
- }
21
- apiOptions() {
22
- return {
23
- headers: new HttpHeaders({
24
- 'Content-Type': 'application/json'
25
- }),
26
- withCredentials: true
27
- };
28
- }
29
- getConfiguration(r) {
30
- const request = (r.toApiJson) ? r : new GetConfigurationRequest(r);
31
- return this.http.post(this._host + "/conversation.v1.InboxService/GetConfiguration", request.toApiJson(), this.apiOptions())
32
- .pipe(map(resp => GetConfigurationResponse.fromProto(resp)));
33
- }
34
- getMultiConfiguration(r) {
35
- const request = (r.toApiJson) ? r : new GetMultiConfigurationRequest(r);
36
- return this.http.post(this._host + "/conversation.v1.InboxService/GetMultiConfiguration", request.toApiJson(), this.apiOptions())
37
- .pipe(map(resp => GetMultiConfigurationResponse.fromProto(resp)));
38
- }
39
- upsertConfiguration(r) {
40
- const request = (r.toApiJson) ? r : new UpsertConfigurationRequest(r);
41
- return this.http.post(this._host + "/conversation.v1.InboxService/UpsertConfiguration", request.toApiJson(), this.apiOptions())
42
- .pipe(map(resp => UpsertConfigurationResponse.fromProto(resp)));
43
- }
44
- upsertProductFeature(r) {
45
- const request = (r.toApiJson) ? r : new UpsertProductFeatureRequest(r);
46
- return this.http.post(this._host + "/conversation.v1.InboxService/UpsertProductFeature", request.toApiJson(), this.apiOptions())
47
- .pipe(map(resp => UpsertProductFeatureResponse.fromProto(resp)));
48
- }
49
- }
50
- InboxApiService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: InboxApiService, deps: [{ token: i1.HttpClient }, { token: i2.HostService }], target: i0.ɵɵFactoryTarget.Injectable });
51
- InboxApiService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: InboxApiService, providedIn: 'root' });
52
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: InboxApiService, decorators: [{
53
- type: Injectable,
54
- args: [{ providedIn: 'root' }]
55
- }], ctorParameters: function () { return [{ type: i1.HttpClient }, { type: i2.HostService }]; } });
56
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5ib3guYXBpLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9jb252ZXJzYXRpb25fc2RrL3NyYy9saWIvX2ludGVybmFsL2luYm94LmFwaS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLG9DQUFvQztBQUNwQywyQkFBMkI7QUFDM0IsZ0JBQWdCO0FBQ2hCLEVBQUU7QUFDRixlQUFlO0FBQ2Ysb0NBQW9DO0FBQ3BDLE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUNDLHVCQUF1QixFQUN2Qix3QkFBd0IsRUFDeEIsNEJBQTRCLEVBQzVCLDZCQUE2QixFQUM3QiwwQkFBMEIsRUFDMUIsMkJBQTJCLEVBQzNCLDJCQUEyQixFQUMzQiw0QkFBNEIsR0FDbkMsTUFBTSxZQUFZLENBQUM7QUFXcEIsT0FBTyxFQUFDLFdBQVcsRUFBRSxVQUFVLEVBQWUsTUFBTSxzQkFBc0IsQ0FBQztBQUMzRSxPQUFPLEVBQUMsV0FBVyxFQUFDLE1BQU0sNEJBQTRCLENBQUM7QUFFdkQsT0FBTyxFQUFDLEdBQUcsRUFBQyxNQUFNLGdCQUFnQixDQUFDOzs7O0FBR25DLE1BQU0sT0FBTyxlQUFlO0lBR3hCLFlBQW9CLElBQWdCLEVBQVUsV0FBd0I7UUFBbEQsU0FBSSxHQUFKLElBQUksQ0FBWTtRQUFVLGdCQUFXLEdBQVgsV0FBVyxDQUFhO1FBRjlELFVBQUssR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLGNBQWMsQ0FBQztJQUdoRCxDQUFDO0lBRU8sVUFBVTtRQUNkLE9BQU87WUFDSCxPQUFPLEVBQUUsSUFBSSxXQUFXLENBQUM7Z0JBQ3JCLGNBQWMsRUFBRSxrQkFBa0I7YUFDckMsQ0FBQztZQUNGLGVBQWUsRUFBRSxJQUFJO1NBQ3hCLENBQUM7SUFDTixDQUFDO0lBRUQsZ0JBQWdCLENBQUMsQ0FBNkQ7UUFDMUUsTUFBTSxPQUFPLEdBQUcsQ0FBMkIsQ0FBRSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBMkIsQ0FBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLHVCQUF1QixDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3pILE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQW9DLElBQUksQ0FBQyxLQUFLLEdBQUcsZ0RBQWdELEVBQUUsT0FBTyxDQUFDLFNBQVMsRUFBRSxFQUFFLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQzthQUMxSixJQUFJLENBQ0QsR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsd0JBQXdCLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQ3hELENBQUM7SUFDVixDQUFDO0lBQ0QscUJBQXFCLENBQUMsQ0FBdUU7UUFDekYsTUFBTSxPQUFPLEdBQUcsQ0FBZ0MsQ0FBRSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBZ0MsQ0FBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLDRCQUE0QixDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3hJLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQXlDLElBQUksQ0FBQyxLQUFLLEdBQUcscURBQXFELEVBQUUsT0FBTyxDQUFDLFNBQVMsRUFBRSxFQUFFLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQzthQUNwSyxJQUFJLENBQ0QsR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsNkJBQTZCLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQzdELENBQUM7SUFDVixDQUFDO0lBQ0QsbUJBQW1CLENBQUMsQ0FBbUU7UUFDbkYsTUFBTSxPQUFPLEdBQUcsQ0FBOEIsQ0FBRSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBOEIsQ0FBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLDBCQUEwQixDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ2xJLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQXVDLElBQUksQ0FBQyxLQUFLLEdBQUcsbURBQW1ELEVBQUUsT0FBTyxDQUFDLFNBQVMsRUFBRSxFQUFFLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQzthQUNoSyxJQUFJLENBQ0QsR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsMkJBQTJCLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQzNELENBQUM7SUFDVixDQUFDO0lBQ0Qsb0JBQW9CLENBQUMsQ0FBcUU7UUFDdEYsTUFBTSxPQUFPLEdBQUcsQ0FBK0IsQ0FBRSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBK0IsQ0FBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLDJCQUEyQixDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3JJLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQXdDLElBQUksQ0FBQyxLQUFLLEdBQUcsb0RBQW9ELEVBQUUsT0FBTyxDQUFDLFNBQVMsRUFBRSxFQUFFLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQzthQUNsSyxJQUFJLENBQ0QsR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsNEJBQTRCLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQzVELENBQUM7SUFDVixDQUFDOzs2R0ExQ1EsZUFBZTtpSEFBZixlQUFlLGNBREgsTUFBTTs0RkFDbEIsZUFBZTtrQkFEM0IsVUFBVTttQkFBQyxFQUFDLFVBQVUsRUFBRSxNQUFNLEVBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbi8vIENvZGUgZ2VuZXJhdGVkIGJ5IHNka2dlblxuLy8gRE8gTk9UIEVESVQhLlxuLy9cbi8vIEFQSSBTZXJ2aWNlLlxuLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG5pbXBvcnQge0luamVjdGFibGV9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgICAgICAgR2V0Q29uZmlndXJhdGlvblJlcXVlc3QsXG4gICAgICAgIEdldENvbmZpZ3VyYXRpb25SZXNwb25zZSxcbiAgICAgICAgR2V0TXVsdGlDb25maWd1cmF0aW9uUmVxdWVzdCxcbiAgICAgICAgR2V0TXVsdGlDb25maWd1cmF0aW9uUmVzcG9uc2UsXG4gICAgICAgIFVwc2VydENvbmZpZ3VyYXRpb25SZXF1ZXN0LFxuICAgICAgICBVcHNlcnRDb25maWd1cmF0aW9uUmVzcG9uc2UsXG4gICAgICAgIFVwc2VydFByb2R1Y3RGZWF0dXJlUmVxdWVzdCxcbiAgICAgICAgVXBzZXJ0UHJvZHVjdEZlYXR1cmVSZXNwb25zZSxcbn0gZnJvbSAnLi9vYmplY3RzLyc7XG5pbXBvcnQge1xuICAgICAgICBHZXRDb25maWd1cmF0aW9uUmVxdWVzdEludGVyZmFjZSxcbiAgICAgICAgR2V0Q29uZmlndXJhdGlvblJlc3BvbnNlSW50ZXJmYWNlLFxuICAgICAgICBHZXRNdWx0aUNvbmZpZ3VyYXRpb25SZXF1ZXN0SW50ZXJmYWNlLFxuICAgICAgICBHZXRNdWx0aUNvbmZpZ3VyYXRpb25SZXNwb25zZUludGVyZmFjZSxcbiAgICAgICAgVXBzZXJ0Q29uZmlndXJhdGlvblJlcXVlc3RJbnRlcmZhY2UsXG4gICAgICAgIFVwc2VydENvbmZpZ3VyYXRpb25SZXNwb25zZUludGVyZmFjZSxcbiAgICAgICAgVXBzZXJ0UHJvZHVjdEZlYXR1cmVSZXF1ZXN0SW50ZXJmYWNlLFxuICAgICAgICBVcHNlcnRQcm9kdWN0RmVhdHVyZVJlc3BvbnNlSW50ZXJmYWNlLFxufSBmcm9tICcuL2ludGVyZmFjZXMvJztcbmltcG9ydCB7SHR0cEhlYWRlcnMsIEh0dHBDbGllbnQsIEh0dHBSZXNwb25zZX0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHtIb3N0U2VydmljZX0gZnJvbSAnLi4vX2dlbmVyYXRlZC9ob3N0LnNlcnZpY2UnO1xuaW1wb3J0IHtPYnNlcnZhYmxlfSBmcm9tICdyeGpzJztcbmltcG9ydCB7bWFwfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbkBJbmplY3RhYmxlKHtwcm92aWRlZEluOiAncm9vdCd9KVxuZXhwb3J0IGNsYXNzIEluYm94QXBpU2VydmljZSB7XG4gICAgcHJpdmF0ZSBfaG9zdCA9IHRoaXMuaG9zdFNlcnZpY2UuaG9zdFdpdGhTY2hlbWU7XG5cbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIGh0dHA6IEh0dHBDbGllbnQsIHByaXZhdGUgaG9zdFNlcnZpY2U6IEhvc3RTZXJ2aWNlKSB7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBhcGlPcHRpb25zKCk6IHtoZWFkZXJzOiBIdHRwSGVhZGVycywgd2l0aENyZWRlbnRpYWxzOiBib29sZWFufSB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBoZWFkZXJzOiBuZXcgSHR0cEhlYWRlcnMoe1xuICAgICAgICAgICAgICAgICdDb250ZW50LVR5cGUnOiAnYXBwbGljYXRpb24vanNvbidcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgd2l0aENyZWRlbnRpYWxzOiB0cnVlXG4gICAgICAgIH07XG4gICAgfVxuXG4gICAgZ2V0Q29uZmlndXJhdGlvbihyOiBHZXRDb25maWd1cmF0aW9uUmVxdWVzdCB8IEdldENvbmZpZ3VyYXRpb25SZXF1ZXN0SW50ZXJmYWNlKTogT2JzZXJ2YWJsZTxHZXRDb25maWd1cmF0aW9uUmVzcG9uc2U+IHtcbiAgICAgICAgY29uc3QgcmVxdWVzdCA9ICgoPEdldENvbmZpZ3VyYXRpb25SZXF1ZXN0PnIpLnRvQXBpSnNvbikgPyAoPEdldENvbmZpZ3VyYXRpb25SZXF1ZXN0PnIpIDogbmV3IEdldENvbmZpZ3VyYXRpb25SZXF1ZXN0KHIpO1xuICAgICAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8R2V0Q29uZmlndXJhdGlvblJlc3BvbnNlSW50ZXJmYWNlPih0aGlzLl9ob3N0ICsgXCIvY29udmVyc2F0aW9uLnYxLkluYm94U2VydmljZS9HZXRDb25maWd1cmF0aW9uXCIsIHJlcXVlc3QudG9BcGlKc29uKCksIHRoaXMuYXBpT3B0aW9ucygpKVxuICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgICAgbWFwKHJlc3AgPT4gR2V0Q29uZmlndXJhdGlvblJlc3BvbnNlLmZyb21Qcm90byhyZXNwKSlcbiAgICAgICAgICAgICk7XG4gICAgfVxuICAgIGdldE11bHRpQ29uZmlndXJhdGlvbihyOiBHZXRNdWx0aUNvbmZpZ3VyYXRpb25SZXF1ZXN0IHwgR2V0TXVsdGlDb25maWd1cmF0aW9uUmVxdWVzdEludGVyZmFjZSk6IE9ic2VydmFibGU8R2V0TXVsdGlDb25maWd1cmF0aW9uUmVzcG9uc2U+IHtcbiAgICAgICAgY29uc3QgcmVxdWVzdCA9ICgoPEdldE11bHRpQ29uZmlndXJhdGlvblJlcXVlc3Q+cikudG9BcGlKc29uKSA/ICg8R2V0TXVsdGlDb25maWd1cmF0aW9uUmVxdWVzdD5yKSA6IG5ldyBHZXRNdWx0aUNvbmZpZ3VyYXRpb25SZXF1ZXN0KHIpO1xuICAgICAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8R2V0TXVsdGlDb25maWd1cmF0aW9uUmVzcG9uc2VJbnRlcmZhY2U+KHRoaXMuX2hvc3QgKyBcIi9jb252ZXJzYXRpb24udjEuSW5ib3hTZXJ2aWNlL0dldE11bHRpQ29uZmlndXJhdGlvblwiLCByZXF1ZXN0LnRvQXBpSnNvbigpLCB0aGlzLmFwaU9wdGlvbnMoKSlcbiAgICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgICAgIG1hcChyZXNwID0+IEdldE11bHRpQ29uZmlndXJhdGlvblJlc3BvbnNlLmZyb21Qcm90byhyZXNwKSlcbiAgICAgICAgICAgICk7XG4gICAgfVxuICAgIHVwc2VydENvbmZpZ3VyYXRpb24ocjogVXBzZXJ0Q29uZmlndXJhdGlvblJlcXVlc3QgfCBVcHNlcnRDb25maWd1cmF0aW9uUmVxdWVzdEludGVyZmFjZSk6IE9ic2VydmFibGU8VXBzZXJ0Q29uZmlndXJhdGlvblJlc3BvbnNlPiB7XG4gICAgICAgIGNvbnN0IHJlcXVlc3QgPSAoKDxVcHNlcnRDb25maWd1cmF0aW9uUmVxdWVzdD5yKS50b0FwaUpzb24pID8gKDxVcHNlcnRDb25maWd1cmF0aW9uUmVxdWVzdD5yKSA6IG5ldyBVcHNlcnRDb25maWd1cmF0aW9uUmVxdWVzdChyKTtcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PFVwc2VydENvbmZpZ3VyYXRpb25SZXNwb25zZUludGVyZmFjZT4odGhpcy5faG9zdCArIFwiL2NvbnZlcnNhdGlvbi52MS5JbmJveFNlcnZpY2UvVXBzZXJ0Q29uZmlndXJhdGlvblwiLCByZXF1ZXN0LnRvQXBpSnNvbigpLCB0aGlzLmFwaU9wdGlvbnMoKSlcbiAgICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgICAgIG1hcChyZXNwID0+IFVwc2VydENvbmZpZ3VyYXRpb25SZXNwb25zZS5mcm9tUHJvdG8ocmVzcCkpXG4gICAgICAgICAgICApO1xuICAgIH1cbiAgICB1cHNlcnRQcm9kdWN0RmVhdHVyZShyOiBVcHNlcnRQcm9kdWN0RmVhdHVyZVJlcXVlc3QgfCBVcHNlcnRQcm9kdWN0RmVhdHVyZVJlcXVlc3RJbnRlcmZhY2UpOiBPYnNlcnZhYmxlPFVwc2VydFByb2R1Y3RGZWF0dXJlUmVzcG9uc2U+IHtcbiAgICAgICAgY29uc3QgcmVxdWVzdCA9ICgoPFVwc2VydFByb2R1Y3RGZWF0dXJlUmVxdWVzdD5yKS50b0FwaUpzb24pID8gKDxVcHNlcnRQcm9kdWN0RmVhdHVyZVJlcXVlc3Q+cikgOiBuZXcgVXBzZXJ0UHJvZHVjdEZlYXR1cmVSZXF1ZXN0KHIpO1xuICAgICAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8VXBzZXJ0UHJvZHVjdEZlYXR1cmVSZXNwb25zZUludGVyZmFjZT4odGhpcy5faG9zdCArIFwiL2NvbnZlcnNhdGlvbi52MS5JbmJveFNlcnZpY2UvVXBzZXJ0UHJvZHVjdEZlYXR1cmVcIiwgcmVxdWVzdC50b0FwaUpzb24oKSwgdGhpcy5hcGlPcHRpb25zKCkpXG4gICAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgICAgICBtYXAocmVzcCA9PiBVcHNlcnRQcm9kdWN0RmVhdHVyZVJlc3BvbnNlLmZyb21Qcm90byhyZXNwKSlcbiAgICAgICAgICAgICk7XG4gICAgfVxuICAgIFxufVxuIl19
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBpLmludGVyZmFjZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2NvbnZlcnNhdGlvbl9zZGsvc3JjL2xpYi9faW50ZXJuYWwvaW50ZXJmYWNlcy9hcGkuaW50ZXJmYWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyIvLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbi8vIENvZGUgZ2VuZXJhdGVkIGJ5IHNka2dlblxuLy8gRE8gTk9UIEVESVQhLlxuLy9cbi8vIEludGVyZmFjZXMuXG4vLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbmltcG9ydCB7Q29uZmlndXJhdGlvbkludGVyZmFjZSwgUHJvZHVjdEZlYXR1cmVJbnRlcmZhY2V9IGZyb20gJy4vY29uZmlndXJhdGlvbi5pbnRlcmZhY2UnO1xuaW1wb3J0IHtDb252ZXJzYXRpb25JbnRlcmZhY2UsIENvbnZlcnNhdGlvbktleUludGVyZmFjZX0gZnJvbSAnLi9jb252ZXJzYXRpb24uaW50ZXJmYWNlJztcbmltcG9ydCB7RGF0YVNvdXJjZXNJbnRlcmZhY2UsIFdpZGdldEludGVyZmFjZX0gZnJvbSAnLi93aWRnZXQuaW50ZXJmYWNlJztcbmltcG9ydCB7RmllbGRNYXNrSW50ZXJmYWNlfSBmcm9tICcuL2ZpZWxkLW1hc2suaW50ZXJmYWNlJztcbmltcG9ydCB7TWVzc2FnZUludGVyZmFjZX0gZnJvbSAnLi9tZXNzYWdlLmludGVyZmFjZSc7XG5pbXBvcnQge01lc3NhZ2VUZW1wbGF0ZUludGVyZmFjZX0gZnJvbSAnLi9tZXNzYWdlLXRlbXBsYXRlLmludGVyZmFjZSc7XG5pbXBvcnQge1BhcnRpY2lwYW50SW50ZXJmYWNlLCBQYXJ0aWNpcGFudEtleUludGVyZmFjZX0gZnJvbSAnLi9wYXJ0aWNpcGFudC5pbnRlcmZhY2UnO1xuaW1wb3J0IHtTdWJqZWN0UGFydGljaXBhbnRJbnRlcmZhY2V9IGZyb20gJy4vY29tbW9uLmludGVyZmFjZSc7XG5pbXBvcnQge1ZpZXdJbnRlcmZhY2V9IGZyb20gJy4vY29udmVyc2F0aW9uLXZpZXcuaW50ZXJmYWNlJztcbmltcG9ydCAqIGFzIGUgZnJvbSAnLi4vZW51bXMnO1xuXG5leHBvcnQgaW50ZXJmYWNlIEFkZENvbnZlcnNhdGlvblRvQ29udmVyc2F0aW9uVmlld1JlcXVlc3RJbnRlcmZhY2Uge1xuICAgIHZpZXdJZD86IHN0cmluZztcbiAgICBjb252ZXJzYXRpb25JZD86IHN0cmluZztcbiAgICBwYXJ0aWNpcGFudElkPzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEFkZE11bHRpUGFydGljaXBhbnRzUmVxdWVzdEludGVyZmFjZSB7XG4gICAgY29udmVyc2F0aW9uSWQ/OiBzdHJpbmc7XG4gICAgcGFydGljaXBhbnRzPzogUGFydGljaXBhbnRJbnRlcmZhY2VbXTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBBZGRNdWx0aVBhcnRpY2lwYW50c1Jlc3BvbnNlSW50ZXJmYWNlIHtcbiAgICBwYXJ0aWNpcGFudHM/OiBQYXJ0aWNpcGFudEludGVyZmFjZVtdO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIENvbnZlcnNhdGlvbk1lc3NhZ2VDb3VudEludGVyZmFjZSB7XG4gICAgY29udmVyc2F0aW9uSWQ/OiBzdHJpbmc7XG4gICAgY291bnQ/OiBudW1iZXI7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgTG9va3VwQ29udmVyc2F0aW9uc1Jlc3BvbnNlQ29udmVyc2F0aW9uc0ludGVyZmFjZSB7XG4gICAgY29udmVyc2F0aW9uPzogQ29udmVyc2F0aW9uSW50ZXJmYWNlO1xuICAgIHBhcnRpY2lwYW50cz86IFBhcnRpY2lwYW50SW50ZXJmYWNlW107XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgR2V0TXVsdGlDb252ZXJzYXRpb25NZXNzYWdlQ291bnRSZXNwb25zZUNvdW50c0VudHJ5SW50ZXJmYWNlIHtcbiAgICBrZXk/OiBzdHJpbmc7XG4gICAgdmFsdWU/OiBudW1iZXI7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ3JlYXRlQ29udmVyc2F0aW9uUmVxdWVzdEludGVyZmFjZSB7XG4gICAgcGFydGljaXBhbnRzPzogUGFydGljaXBhbnRJbnRlcmZhY2VbXTtcbiAgICBjaGFubmVsPzogZS5Db252ZXJzYXRpb25DaGFubmVsO1xuICAgIGV4dGVybmFsQ29udmVyc2F0aW9uSWQ/OiBzdHJpbmc7XG4gICAgY3JlYXRlZD86IERhdGU7XG4gICAgdXBkYXRlZD86IERhdGU7XG4gICAgb3JpZ2luTG9jYXRpb24/OiBlLlBsYXRmb3JtTG9jYXRpb247XG4gICAgb3JpZ2luTG9jYXRpb25FeHRlcm5hbElkPzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIENyZWF0ZUNvbnZlcnNhdGlvblJlc3BvbnNlSW50ZXJmYWNlIHtcbiAgICBjb252ZXJzYXRpb24/OiBDb252ZXJzYXRpb25JbnRlcmZhY2U7XG4gICAgcGFydGljaXBhbnRzPzogUGFydGljaXBhbnRJbnRlcmZhY2VbXTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDcmVhdGVNZXNzYWdlVGVtcGxhdGVSZXF1ZXN0SW50ZXJmYWNlIHtcbiAgICB0ZW1wbGF0ZT86IE1lc3NhZ2VUZW1wbGF0ZUludGVyZmFjZTtcbiAgICBzdWJqZWN0UGFydGljaXBhbnQ/OiBTdWJqZWN0UGFydGljaXBhbnRJbnRlcmZhY2U7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ3JlYXRlTWVzc2FnZVRlbXBsYXRlUmVzcG9uc2VJbnRlcmZhY2Uge1xuICAgIHRlbXBsYXRlPzogTWVzc2FnZVRlbXBsYXRlSW50ZXJmYWNlO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIENyZWF0ZU11bHRpTWVzc2FnZXNSZXF1ZXN0SW50ZXJmYWNlIHtcbiAgICBtZXNzYWdlcz86IE1lc3NhZ2VJbnRlcmZhY2VbXTtcbiAgICBsYXN0U2Vlbj86IERhdGU7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ3JlYXRlV2lkZ2V0Q29udmVyc2F0aW9uUmVxdWVzdEludGVyZmFjZSB7XG4gICAgd2lkZ2V0SWQ/OiBzdHJpbmc7XG4gICAgY2hhdFNvdXJjZVVybD86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDcmVhdGVXaWRnZXRDb252ZXJzYXRpb25SZXNwb25zZUludGVyZmFjZSB7XG4gICAgd2lkZ2V0UGFydGljaXBhbnRUb2tlbj86IHN0cmluZztcbiAgICBjb252ZXJzYXRpb24/OiBDb252ZXJzYXRpb25JbnRlcmZhY2U7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ3JlYXRlV2lkZ2V0UmVxdWVzdEludGVyZmFjZSB7XG4gICAgbmFtZT86IHN0cmluZztcbiAgICBuYW1lc3BhY2U/OiBzdHJpbmc7XG4gICAgY29sb3I/OiBzdHJpbmc7XG4gICAgYWxsb3dlZFVybHM/OiBzdHJpbmdbXTtcbiAgICB3ZWxjb21lTWVzc2FnZT86IHN0cmluZztcbiAgICBkYXRhU291cmNlcz86IERhdGFTb3VyY2VzSW50ZXJmYWNlO1xuICAgIHRleHRDb2xvcj86IHN0cmluZztcbiAgICBhY2NlbnRDb2xvcj86IHN0cmluZztcbiAgICBhY2NlbnRUZXh0Q29sb3I/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ3JlYXRlV2lkZ2V0UmVzcG9uc2VJbnRlcmZhY2Uge1xuICAgIHdpZGdldD86IFdpZGdldEludGVyZmFjZTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBNZXRhZGF0YURhdGFFbnRyeUludGVyZmFjZSB7XG4gICAga2V5Pzogc3RyaW5nO1xuICAgIHZhbHVlPzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIERlbGV0ZUNvbnZlcnNhdGlvblJlcXVlc3RJbnRlcmZhY2Uge1xuICAgIGNvbnZlcnNhdGlvbklkPzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIERlbGV0ZU1lc3NhZ2VSZXF1ZXN0SW50ZXJmYWNlIHtcbiAgICBtZXNzYWdlSWQ/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRGVsZXRlTWVzc2FnZVRlbXBsYXRlUmVxdWVzdEludGVyZmFjZSB7XG4gICAgdGVtcGxhdGVJZD86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBEZWxldGVXaWRnZXRSZXF1ZXN0SW50ZXJmYWNlIHtcbiAgICB3aWRnZXRJZD86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBTZWFyY2hDb252ZXJzYXRpb25zUmVzcG9uc2VEZXRhaWxlZENvbnZlcnNhdGlvbkludGVyZmFjZSB7XG4gICAgY29udmVyc2F0aW9uPzogQ29udmVyc2F0aW9uSW50ZXJmYWNlO1xuICAgIGxhdGVzdE1lc3NhZ2U/OiBNZXNzYWdlSW50ZXJmYWNlO1xuICAgIHBhcnRpY2lwYW50cz86IFBhcnRpY2lwYW50SW50ZXJmYWNlW107XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgR2V0TXVsdGlDb252ZXJzYXRpb25EZXRhaWxzUmVzcG9uc2VEZXRhaWxlZENvbnZlcnNhdGlvbkludGVyZmFjZSB7XG4gICAgY29udmVyc2F0aW9uPzogQ29udmVyc2F0aW9uSW50ZXJmYWNlO1xuICAgIGxhdGVzdE1lc3NhZ2U/OiBNZXNzYWdlSW50ZXJmYWNlO1xuICAgIHBhcnRpY2lwYW50cz86IFBhcnRpY2lwYW50SW50ZXJmYWNlW107XG4gICAgc3VtbWFyeT86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBFdmFsdWF0ZVJlc3BvbnNlUmVxdWVzdEludGVyZmFjZSB7XG4gICAgbWVzc2FnZUlkPzogc3RyaW5nO1xuICAgIHNlbnRpbWVudD86IGUuRXZhbHVhdGlvblNlbnRpbWVudDtcbiAgICBjb21tZW50Pzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEdldEF2YWlsYWJsZUNoYW5uZWxzRm9yQ29udmVyc2F0aW9uUmVxdWVzdEludGVyZmFjZSB7XG4gICAgY29udmVyc2F0aW9uSWQ/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgR2V0QXZhaWxhYmxlQ2hhbm5lbHNGb3JDb252ZXJzYXRpb25SZXNwb25zZUludGVyZmFjZSB7XG4gICAgY2hhbm5lbHM/OiBlLkNvbnZlcnNhdGlvbkNoYW5uZWxbXTtcbiAgICBwcmVmZXJyZWRDaGFubmVsPzogZS5Db252ZXJzYXRpb25DaGFubmVsO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEdldENvbmZpZ3VyYXRpb25SZXF1ZXN0SW50ZXJmYWNlIHtcbiAgICBzdWJqZWN0UGFydGljaXBhbnQ/OiBTdWJqZWN0UGFydGljaXBhbnRJbnRlcmZhY2U7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgR2V0Q29uZmlndXJhdGlvblJlc3BvbnNlSW50ZXJmYWNlIHtcbiAgICBjb25maWd1cmF0aW9uPzogQ29uZmlndXJhdGlvbkludGVyZmFjZTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBHZXRDb252ZXJzYXRpb25CeUtleVJlcXVlc3RJbnRlcmZhY2Uge1xuICAgIGNvbnZlcnNhdGlvbktleT86IENvbnZlcnNhdGlvbktleUludGVyZmFjZTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBHZXRDb252ZXJzYXRpb25CeUtleVJlc3BvbnNlSW50ZXJmYWNlIHtcbiAgICBjb252ZXJzYXRpb24/OiBDb252ZXJzYXRpb25JbnRlcmZhY2U7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgR2V0Q29udmVyc2F0aW9uU3VtbWFyeVJlcXVlc3RJbnRlcmZhY2Uge1xuICAgIGNvbnZlcnNhdGlvbklkPzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEdldENvbnZlcnNhdGlvblN1bW1hcnlSZXNwb25zZUludGVyZmFjZSB7XG4gICAgc3VtbWFyeT86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBHZXRDb252ZXJzYXRpb25WaWV3c1JlcXVlc3RJbnRlcmZhY2Uge1xuICAgIHBhcnRpY2lwYW50SWQ/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgR2V0Q29udmVyc2F0aW9uVmlld3NSZXNwb25zZUludGVyZmFjZSB7XG4gICAgdmlld3M/OiBWaWV3SW50ZXJmYWNlW107XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgR2V0TWVzc2FnZVJlcXVlc3RJbnRlcmZhY2Uge1xuICAgIG1lc3NhZ2VJZD86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBHZXRNZXNzYWdlVGVtcGxhdGVSZXF1ZXN0SW50ZXJmYWNlIHtcbiAgICB0ZW1wbGF0ZUlkPzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEdldE1lc3NhZ2VUZW1wbGF0ZVJlc3BvbnNlSW50ZXJmYWNlIHtcbiAgICB0ZW1wbGF0ZT86IE1lc3NhZ2VUZW1wbGF0ZUludGVyZmFjZTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBHZXRNdWx0aUNvbmZpZ3VyYXRpb25SZXF1ZXN0SW50ZXJmYWNlIHtcbiAgICBzdWJqZWN0UGFydGljaXBhbnRzPzogU3ViamVjdFBhcnRpY2lwYW50SW50ZXJmYWNlW107XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgR2V0TXVsdGlDb25maWd1cmF0aW9uUmVzcG9uc2VJbnRlcmZhY2Uge1xuICAgIGNvbmZpZ3VyYXRpb25zPzogQ29uZmlndXJhdGlvbkludGVyZmFjZVtdO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEdldE11bHRpQ29udmVyc2F0aW9uRGV0YWlsc1JlcXVlc3RJbnRlcmZhY2Uge1xuICAgIGNvbnZlcnNhdGlvbklkcz86IHN0cmluZ1tdO1xuICAgIG9wdGlvbnM/OiBGaWVsZE1hc2tJbnRlcmZhY2U7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgR2V0TXVsdGlDb252ZXJzYXRpb25EZXRhaWxzUmVzcG9uc2VJbnRlcmZhY2Uge1xuICAgIGNvbnZlcnNhdGlvbnM/OiBHZXRNdWx0aUNvbnZlcnNhdGlvbkRldGFpbHNSZXNwb25zZURldGFpbGVkQ29udmVyc2F0aW9uSW50ZXJmYWNlW107XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgR2V0TXVsdGlDb252ZXJzYXRpb25NZXNzYWdlQ291bnRSZXF1ZXN0SW50ZXJmYWNlIHtcbiAgICBjb252ZXJzYXRpb25JZHM/OiBzdHJpbmdbXTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBHZXRNdWx0aUNvbnZlcnNhdGlvbk1lc3NhZ2VDb3VudFJlc3BvbnNlSW50ZXJmYWNlIHtcbiAgICBtZXNzYWdlQ291bnRzPzogQ29udmVyc2F0aW9uTWVzc2FnZUNvdW50SW50ZXJmYWNlW107XG4gICAgY291bnRzPzoge1trZXk6IHN0cmluZ106IG51bWJlcn07XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgR2V0TXVsdGlNZXNzYWdlc1JlcXVlc3RJbnRlcmZhY2Uge1xuICAgIG1lc3NhZ2VJZHM/OiBzdHJpbmdbXTtcbiAgICBjb252ZXJzYXRpb25JZD86IHN0cmluZztcbiAgICBsYW5ndWFnZUNvZGU/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgR2V0TXVsdGlNZXNzYWdlc1Jlc3BvbnNlSW50ZXJmYWNlIHtcbiAgICBtZXNzYWdlcz86IE1lc3NhZ2VJbnRlcmZhY2VbXTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBHZXRNdWx0aVBhcnRpY2lwYW50c1JlcXVlc3RJbnRlcmZhY2Uge1xuICAgIHBhcnRpY2lwYW50SWRzPzogc3RyaW5nW107XG4gICAgY29udmVyc2F0aW9uSWQ/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgR2V0TXVsdGlQYXJ0aWNpcGFudHNSZXNwb25zZUludGVyZmFjZSB7XG4gICAgcGFydGljaXBhbnRzPzogUGFydGljaXBhbnRJbnRlcmZhY2VbXTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBHZXRNdWx0aVdpZGdldE1lc3NhZ2VzUmVxdWVzdEludGVyZmFjZSB7XG4gICAgbWVzc2FnZUlkcz86IHN0cmluZ1tdO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEdldE11bHRpV2lkZ2V0TWVzc2FnZXNSZXNwb25zZUludGVyZmFjZSB7XG4gICAgbWVzc2FnZXM/OiBNZXNzYWdlSW50ZXJmYWNlW107XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgR2V0UGFydGljaXBhbnRzQnlLZXlSZXF1ZXN0SW50ZXJmYWNlIHtcbiAgICBwYXJ0aWNpcGFudEtleT86IFBhcnRpY2lwYW50S2V5SW50ZXJmYWNlO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEdldFBhcnRpY2lwYW50c0J5S2V5UmVzcG9uc2VJbnRlcmZhY2Uge1xuICAgIHBhcnRpY2lwYW50cz86IFBhcnRpY2lwYW50SW50ZXJmYWNlW107XG4gICAgcGFydGljaXBhbnQ/OiBQYXJ0aWNpcGFudEludGVyZmFjZTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBHZXRXaWRnZXRDb25maWdSZXF1ZXN0SW50ZXJmYWNlIHtcbiAgICB3aWRnZXRJZD86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBHZXRXaWRnZXRDb25maWdSZXNwb25zZUludGVyZmFjZSB7XG4gICAgbmFtZT86IHN0cmluZztcbiAgICBjb2xvcj86IHN0cmluZztcbiAgICBpc0VuYWJsZWQ/OiBib29sZWFuO1xuICAgIHdlbGNvbWVNZXNzYWdlPzogc3RyaW5nO1xuICAgIHRleHRDb2xvcj86IHN0cmluZztcbiAgICBhY2NlbnRDb2xvcj86IHN0cmluZztcbiAgICBhY2NlbnRUZXh0Q29sb3I/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgR2V0V2lkZ2V0Q29udmVyc2F0aW9uUmVzcG9uc2VJbnRlcmZhY2Uge1xuICAgIGNvbnZlcnNhdGlvbj86IENvbnZlcnNhdGlvbkludGVyZmFjZTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBHZXRXaWRnZXRSZXF1ZXN0SW50ZXJmYWNlIHtcbiAgICB3aWRnZXRJZD86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBHZXRXaWRnZXRSZXNwb25zZUludGVyZmFjZSB7XG4gICAgd2lkZ2V0PzogV2lkZ2V0SW50ZXJmYWNlO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIExpc3RNZXNzYWdlVGVtcGxhdGVSZXF1ZXN0SW50ZXJmYWNlIHtcbiAgICBzdWJqZWN0UGFydGljaXBhbnQ/OiBTdWJqZWN0UGFydGljaXBhbnRJbnRlcmZhY2U7XG4gICAgcGFnaW5nT3B0aW9ucz86IFBhZ2VkUmVxdWVzdE9wdGlvbnNJbnRlcmZhY2U7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgTGlzdE1lc3NhZ2VUZW1wbGF0ZVJlc3BvbnNlSW50ZXJmYWNlIHtcbiAgICB0ZW1wbGF0ZXM/OiBNZXNzYWdlVGVtcGxhdGVJbnRlcmZhY2VbXTtcbiAgICBwYWdpbmdNZXRhZGF0YT86IFBhZ2VkUmVzcG9uc2VNZXRhZGF0YUludGVyZmFjZTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBMaXN0TWVzc2FnZXNSZXF1ZXN0TGlzdE1lc3NhZ2VzRmlsdGVyc0ludGVyZmFjZSB7XG4gICAgY29udmVyc2F0aW9uSWQ/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgTGlzdE1lc3NhZ2VzUmVxdWVzdEludGVyZmFjZSB7XG4gICAgZmlsdGVycz86IExpc3RNZXNzYWdlc1JlcXVlc3RMaXN0TWVzc2FnZXNGaWx0ZXJzSW50ZXJmYWNlO1xuICAgIHBhZ2luZ09wdGlvbnM/OiBQYWdlZFJlcXVlc3RPcHRpb25zSW50ZXJmYWNlO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIExpc3RNZXNzYWdlc1Jlc3BvbnNlSW50ZXJmYWNlIHtcbiAgICBtZXNzYWdlcz86IE1lc3NhZ2VJbnRlcmZhY2VbXTtcbiAgICBwYWdpbmdNZXRhZGF0YT86IFBhZ2VkUmVzcG9uc2VNZXRhZGF0YUludGVyZmFjZTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBMaXN0V2lkZ2V0c1JlcXVlc3RJbnRlcmZhY2Uge1xuICAgIG5hbWVzcGFjZT86IHN0cmluZztcbiAgICBwYWdpbmdPcHRpb25zPzogUGFnZWRSZXF1ZXN0T3B0aW9uc0ludGVyZmFjZTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBMaXN0V2lkZ2V0c1Jlc3BvbnNlSW50ZXJmYWNlIHtcbiAgICB3aWRnZXRzPzogV2lkZ2V0SW50ZXJmYWNlW107XG4gICAgcGFnaW5nTWV0YWRhdGE/OiBQYWdlZFJlc3BvbnNlTWV0YWRhdGFJbnRlcmZhY2U7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgTG9va3VwQ29udmVyc2F0aW9uc1JlcXVlc3RMb29rdXBDb252ZXJzYXRpb25zRmlsdGVyc0ludGVyZmFjZSB7XG4gICAgaW50ZXJuYWxQYXJ0aWNpcGFudElkPzogc3RyaW5nW107XG4gICAgbG9jYXRpb24/OiBlLlBsYXRmb3JtTG9jYXRpb247XG4gICAgY2hhbm5lbD86IGUuQ29udmVyc2F0aW9uQ2hhbm5lbDtcbiAgICBhY2NvdW50R3JvdXBJZD86IHN0cmluZztcbiAgICBleHRlcm5hbENvbnZlcnNhdGlvbklkPzogc3RyaW5nO1xuICAgIG9yaWdpbkxvY2F0aW9uPzogZS5QbGF0Zm9ybUxvY2F0aW9uO1xuICAgIG9yaWdpbkxvY2F0aW9uRXh0ZXJuYWxJZD86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBMb29rdXBDb252ZXJzYXRpb25zUmVxdWVzdEludGVyZmFjZSB7XG4gICAgZmlsdGVycz86IExvb2t1cENvbnZlcnNhdGlvbnNSZXF1ZXN0TG9va3VwQ29udmVyc2F0aW9uc0ZpbHRlcnNJbnRlcmZhY2U7XG4gICAgcGFnaW5nT3B0aW9ucz86IFBhZ2VkUmVxdWVzdE9wdGlvbnNJbnRlcmZhY2U7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgTG9va3VwQ29udmVyc2F0aW9uc1Jlc3BvbnNlSW50ZXJmYWNlIHtcbiAgICBjb252ZXJzYXRpb25zPzogTG9va3VwQ29udmVyc2F0aW9uc1Jlc3BvbnNlQ29udmVyc2F0aW9uc0ludGVyZmFjZVtdO1xuICAgIHBhZ2luZ01ldGFkYXRhPzogUGFnZWRSZXNwb25zZU1ldGFkYXRhSW50ZXJmYWNlO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIE1lZGlhSW50ZXJmYWNlIHtcbiAgICBtZWRpYUNvbnRlbnRUeXBlPzogc3RyaW5nO1xuICAgIG1lZGlhTG9jYXRpb25QYXRoPzogc3RyaW5nO1xuICAgIG1lZGlhRmlsZU5hbWU/OiBzdHJpbmc7XG4gICAgZmlsZVNpemU/OiBudW1iZXI7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgTWV0YWRhdGFJbnRlcmZhY2Uge1xuICAgIGlkZW50aWZpZXI/OiBlLk1ldGFkYXRhSWRlbnRpZmllcjtcbiAgICBkYXRhPzoge1trZXk6IHN0cmluZ106IHN0cmluZ307XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUmVjZWl2ZU1lc3NhZ2VSZXF1ZXN0TWV0YWRhdGFFbnRyeUludGVyZmFjZSB7XG4gICAga2V5Pzogc3RyaW5nO1xuICAgIHZhbHVlPzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFBhZ2VkUmVxdWVzdE9wdGlvbnNJbnRlcmZhY2Uge1xuICAgIGN1cnNvcj86IHN0cmluZztcbiAgICBwYWdlU2l6ZT86IG51bWJlcjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBQYWdlZFJlc3BvbnNlTWV0YWRhdGFJbnRlcmZhY2Uge1xuICAgIG5leHRDdXJzb3I/OiBzdHJpbmc7XG4gICAgaGFzTW9yZT86IGJvb2xlYW47XG4gICAgdG90YWxSZXN1bHRzPzogbnVtYmVyO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFJlY2VpdmVNZXNzYWdlUmVxdWVzdEludGVyZmFjZSB7XG4gICAgc2VuZGVySWQ/OiBzdHJpbmc7XG4gICAgcmVjaXBpZW50SWQ/OiBzdHJpbmc7XG4gICAgY29udmVyc2F0aW9uSWQ/OiBzdHJpbmc7XG4gICAgbWVzc2FnZUlkPzogc3RyaW5nO1xuICAgIGJvZHk/OiBzdHJpbmc7XG4gICAgY2hhbm5lbD86IGUuQ29udmVyc2F0aW9uQ2hhbm5lbDtcbiAgICB0eXBlPzogZS5NZXNzYWdlVHlwZTtcbiAgICBsb2NhdGlvbj86IGUuUGxhdGZvcm1Mb2NhdGlvbjtcbiAgICBwYXJ0bmVySWQ/OiBzdHJpbmc7XG4gICAgYWNjb3VudEdyb3VwSWQ/OiBzdHJpbmc7XG4gICAgbWV0YWRhdGE/OiB7W2tleTogc3RyaW5nXTogc3RyaW5nfTtcbiAgICBtZWRpYT86IHN0cmluZ1tdO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFJlbW92ZUNvbnZlcnNhdGlvbkZyb21Db252ZXJzYXRpb25WaWV3UmVxdWVzdEludGVyZmFjZSB7XG4gICAgdmlld0lkPzogc3RyaW5nO1xuICAgIGNvbnZlcnNhdGlvbklkPzogc3RyaW5nO1xuICAgIHBhcnRpY2lwYW50SWQ/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU2VhcmNoQ29udmVyc2F0aW9uc1JlcXVlc3RJbnRlcmZhY2Uge1xuICAgIHBhcnRuZXJJZD86IHN0cmluZztcbiAgICBhY2NvdW50R3JvdXBJZD86IHN0cmluZztcbiAgICBsb2NhdGlvbj86IGUuUGxhdGZvcm1Mb2NhdGlvbjtcbiAgICBzZWFyY2hUZXJtPzogc3RyaW5nO1xuICAgIHBhZ2luZ09wdGlvbnM/OiBQYWdlZFJlcXVlc3RPcHRpb25zSW50ZXJmYWNlO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFNlYXJjaENvbnZlcnNhdGlvbnNSZXNwb25zZUludGVyZmFjZSB7XG4gICAgY29udmVyc2F0aW9ucz86IFNlYXJjaENvbnZlcnNhdGlvbnNSZXNwb25zZURldGFpbGVkQ29udmVyc2F0aW9uSW50ZXJmYWNlW107XG4gICAgcGFnaW5nTWV0YWRhdGE/OiBQYWdlZFJlc3BvbnNlTWV0YWRhdGFJbnRlcmZhY2U7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU2VuZE1lc3NhZ2VSZXF1ZXN0SW50ZXJmYWNlIHtcbiAgICBzZW5kZXI/OiBQYXJ0aWNpcGFudEludGVyZmFjZTtcbiAgICByZWNpcGllbnQ/OiBQYXJ0aWNpcGFudEludGVyZmFjZTtcbiAgICBjb252ZXJzYXRpb25JZD86IHN0cmluZztcbiAgICB0eXBlPzogZS5NZXNzYWdlVHlwZTtcbiAgICBib2R5Pzogc3RyaW5nO1xuICAgIG1ldGFkYXRhPzogTWV0YWRhdGFJbnRlcmZhY2VbXTtcbiAgICBvcmlnaW5Mb2NhdGlvbj86IGUuUGxhdGZvcm1Mb2NhdGlvbjtcbiAgICBtZWRpYT86IE1lZGlhSW50ZXJmYWNlW107XG4gICAgY2hhbm5lbD86IGUuQ29udmVyc2F0aW9uQ2hhbm5lbDtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBTZW5kTWVzc2FnZVJlc3BvbnNlSW50ZXJmYWNlIHtcbiAgICB3b3JrZmxvd0lkPzogc3RyaW5nO1xuICAgIG1lc3NhZ2VJZD86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBTZW5kV2lkZ2V0TWVzc2FnZVJlcXVlc3RJbnRlcmZhY2Uge1xuICAgIHR5cGU/OiBlLk1lc3NhZ2VUeXBlO1xuICAgIGJvZHk/OiBzdHJpbmc7XG4gICAgbWV0YWRhdGE/OiBNZXRhZGF0YUludGVyZmFjZVtdO1xuICAgIGxvY2F0aW9uPzogZS5QbGF0Zm9ybUxvY2F0aW9uO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFNlbmRXaWRnZXRNZXNzYWdlUmVzcG9uc2VJbnRlcmZhY2Uge1xuICAgIG1lc3NhZ2VJZD86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBTZXRMYXN0U2VlblJlcXVlc3RJbnRlcmZhY2Uge1xuICAgIGNvbnZlcnNhdGlvbklkPzogc3RyaW5nO1xuICAgIHBhcnRpY2lwYW50PzogUGFydGljaXBhbnRJbnRlcmZhY2U7XG4gICAgc3RhdHVzPzogZS5TZXRMYXN0U2VlblJlcXVlc3RTdGF0dXM7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU2V0TGFzdFNlZW5SZXNwb25zZUludGVyZmFjZSB7XG4gICAgcGFydGljaXBhbnQ/OiBQYXJ0aWNpcGFudEludGVyZmFjZTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBVcGRhdGVDb252ZXJzYXRpb25SZXF1ZXN0SW50ZXJmYWNlIHtcbiAgICBjb252ZXJzYXRpb24/OiBDb252ZXJzYXRpb25JbnRlcmZhY2U7XG4gICAgZmllbGRNYXNrPzogRmllbGRNYXNrSW50ZXJmYWNlO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFVwZGF0ZUNvbnZlcnNhdGlvblJlc3BvbnNlSW50ZXJmYWNlIHtcbiAgICBjb252ZXJzYXRpb24/OiBDb252ZXJzYXRpb25JbnRlcmZhY2U7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVXBkYXRlTWVzc2FnZVN0YXR1c1JlcXVlc3RJbnRlcmZhY2Uge1xuICAgIG1lc3NhZ2VJZD86IHN0cmluZztcbiAgICBwYXJ0aWNpcGFudElkPzogc3RyaW5nO1xuICAgIHN0YXR1cz86IGUuTWVzc2FnZVN0YXR1cztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBVcGRhdGVNZXNzYWdlVGVtcGxhdGVSZXF1ZXN0SW50ZXJmYWNlIHtcbiAgICB0ZW1wbGF0ZT86IE1lc3NhZ2VUZW1wbGF0ZUludGVyZmFjZTtcbiAgICBmaWVsZE1hc2s/OiBGaWVsZE1hc2tJbnRlcmZhY2U7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVXBkYXRlTWVzc2FnZVRlbXBsYXRlUmVzcG9uc2VJbnRlcmZhY2Uge1xuICAgIHRlbXBsYXRlPzogTWVzc2FnZVRlbXBsYXRlSW50ZXJmYWNlO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFVwZGF0ZVdpZGdldFJlcXVlc3RJbnRlcmZhY2Uge1xuICAgIHdpZGdldElkPzogc3RyaW5nO1xuICAgIG5hbWU/OiBzdHJpbmc7XG4gICAgY29sb3I/OiBzdHJpbmc7XG4gICAgYWxsb3dlZFVybHM/OiBzdHJpbmdbXTtcbiAgICB3ZWxjb21lTWVzc2FnZT86IHN0cmluZztcbiAgICBpc0VuYWJsZWQ/OiBib29sZWFuO1xuICAgIGZpZWxkTWFzaz86IEZpZWxkTWFza0ludGVyZmFjZTtcbiAgICB0ZXh0Q29sb3I/OiBzdHJpbmc7XG4gICAgYWNjZW50Q29sb3I/OiBzdHJpbmc7XG4gICAgYWNjZW50VGV4dENvbG9yPzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFVwZGF0ZVdpZGdldFJlc3BvbnNlSW50ZXJmYWNlIHtcbiAgICB3aWRnZXQ/OiBXaWRnZXRJbnRlcmZhY2U7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVXBzZXJ0Q29uZmlndXJhdGlvblJlcXVlc3RJbnRlcmZhY2Uge1xuICAgIGNvbmZpZ3VyYXRpb24/OiBDb25maWd1cmF0aW9uSW50ZXJmYWNlO1xuICAgIGZpZWxkTWFzaz86IEZpZWxkTWFza0ludGVyZmFjZTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBVcHNlcnRDb25maWd1cmF0aW9uUmVzcG9uc2VJbnRlcmZhY2Uge1xuICAgIGNvbmZpZ3VyYXRpb24/OiBDb25maWd1cmF0aW9uSW50ZXJmYWNlO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFVwc2VydFByb2R1Y3RGZWF0dXJlUmVxdWVzdEludGVyZmFjZSB7XG4gICAgcHJvZHVjdEZlYXR1cmU/OiBQcm9kdWN0RmVhdHVyZUludGVyZmFjZTtcbiAgICBmaWVsZE1hc2s/OiBGaWVsZE1hc2tJbnRlcmZhY2U7XG4gICAgc3ViamVjdFBhcnRpY2lwYW50PzogU3ViamVjdFBhcnRpY2lwYW50SW50ZXJmYWNlO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFVwc2VydFByb2R1Y3RGZWF0dXJlUmVzcG9uc2VJbnRlcmZhY2Uge1xuICAgIHByb2R1Y3RGZWF0dXJlPzogUHJvZHVjdEZlYXR1cmVJbnRlcmZhY2U7XG59XG5cbiJdfQ==
@@ -1,30 +0,0 @@
1
- export function enumStringToValue(enumRef, value) {
2
- if (typeof value === 'number') {
3
- return value;
4
- }
5
- return enumRef[value];
6
- }
7
- export class Access {
8
- static fromProto(proto) {
9
- let m = new Access();
10
- m = Object.assign(m, proto);
11
- return m;
12
- }
13
- constructor(kwargs) {
14
- if (!kwargs) {
15
- return;
16
- }
17
- Object.assign(this, kwargs);
18
- }
19
- toApiJson() {
20
- const toReturn = {};
21
- if (typeof this.scope !== 'undefined') {
22
- toReturn['scope'] = this.scope;
23
- }
24
- if (typeof this.public !== 'undefined') {
25
- toReturn['public'] = this.public;
26
- }
27
- return toReturn;
28
- }
29
- }
30
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5ub3RhdGlvbnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9jb252ZXJzYXRpb25fc2RrL3NyYy9saWIvX2ludGVybmFsL29iamVjdHMvYW5ub3RhdGlvbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBVUEsTUFBTSxVQUFVLGlCQUFpQixDQUFJLE9BQVksRUFBRSxLQUFhO0lBQzlELElBQUksT0FBTyxLQUFLLEtBQUssUUFBUSxFQUFFO1FBQzdCLE9BQU8sS0FBSyxDQUFDO0tBQ2Q7SUFDRCxPQUFPLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQztBQUN4QixDQUFDO0FBRUQsTUFBTSxPQUFPLE1BQU07SUFJZixNQUFNLENBQUMsU0FBUyxDQUFDLEtBQVU7UUFDdkIsSUFBSSxDQUFDLEdBQUcsSUFBSSxNQUFNLEVBQUUsQ0FBQztRQUNyQixDQUFDLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFDNUIsT0FBTyxDQUFDLENBQUM7SUFDYixDQUFDO0lBRUQsWUFBWSxNQUEwQjtRQUNsQyxJQUFJLENBQUMsTUFBTSxFQUFFO1lBQ1QsT0FBTztTQUNWO1FBQ0QsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsTUFBTSxDQUFDLENBQUM7SUFDaEMsQ0FBQztJQUVELFNBQVM7UUFDTCxNQUFNLFFBQVEsR0FFVixFQUFFLENBQUM7UUFFUCxJQUFJLE9BQU8sSUFBSSxDQUFDLEtBQUssS0FBSyxXQUFXLEVBQUU7WUFBQyxRQUFRLENBQUMsT0FBTyxDQUFDLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQztTQUFDO1FBQ3hFLElBQUksT0FBTyxJQUFJLENBQUMsTUFBTSxLQUFLLFdBQVcsRUFBRTtZQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDO1NBQUM7UUFDM0UsT0FBTyxRQUFRLENBQUM7SUFDcEIsQ0FBQztDQUNKIiwic291cmNlc0NvbnRlbnQiOlsiLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4vLyBDb2RlIGdlbmVyYXRlZCBieSBzZGtnZW5cbi8vIERPIE5PVCBFRElUIS5cbi8vXG4vLyBPYmplY3RzLlxuLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG5pbXBvcnQgKiBhcyBpIGZyb20gJy4uL2ludGVyZmFjZXMnO1xuXG5pbXBvcnQgKiBhcyBlIGZyb20gJy4uL2VudW1zJztcblxuZXhwb3J0IGZ1bmN0aW9uIGVudW1TdHJpbmdUb1ZhbHVlPEU+KGVudW1SZWY6IGFueSwgdmFsdWU6IHN0cmluZyk6IEUge1xuICBpZiAodHlwZW9mIHZhbHVlID09PSAnbnVtYmVyJykge1xuICAgIHJldHVybiB2YWx1ZTtcbiAgfVxuICByZXR1cm4gZW51bVJlZlt2YWx1ZV07XG59XG5cbmV4cG9ydCBjbGFzcyBBY2Nlc3MgaW1wbGVtZW50cyBpLkFjY2Vzc0ludGVyZmFjZSB7XG4gICAgc2NvcGU6IHN0cmluZ1tdO1xuICAgIHB1YmxpYzogYm9vbGVhbjtcblxuICAgIHN0YXRpYyBmcm9tUHJvdG8ocHJvdG86IGFueSk6IEFjY2VzcyB7XG4gICAgICAgIGxldCBtID0gbmV3IEFjY2VzcygpO1xuICAgICAgICBtID0gT2JqZWN0LmFzc2lnbihtLCBwcm90byk7XG4gICAgICAgIHJldHVybiBtO1xuICAgIH1cblxuICAgIGNvbnN0cnVjdG9yKGt3YXJncz86IGkuQWNjZXNzSW50ZXJmYWNlKSB7XG4gICAgICAgIGlmICgha3dhcmdzKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgT2JqZWN0LmFzc2lnbih0aGlzLCBrd2FyZ3MpO1xuICAgIH1cblxuICAgIHRvQXBpSnNvbigpOiBvYmplY3Qge1xuICAgICAgICBjb25zdCB0b1JldHVybjoge1xuICAgICAgICAgICAgW2tleTogc3RyaW5nXTogYW55O1xuICAgICAgICB9ID0ge307XG4gICAgICAgIFxuICAgICAgICBpZiAodHlwZW9mIHRoaXMuc2NvcGUgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ3Njb3BlJ10gPSB0aGlzLnNjb3BlO31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLnB1YmxpYyAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsncHVibGljJ10gPSB0aGlzLnB1YmxpYzt9XG4gICAgICAgIHJldHVybiB0b1JldHVybjtcbiAgICB9XG59XG5cbiJdfQ==