@ondewo/csi-client-angular 2.3.1

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 (200) hide show
  1. package/LICENSE +191 -0
  2. package/README.md +27 -0
  3. package/api/google/api/annotations.pb.d.ts +1 -0
  4. package/api/google/api/http.pb.d.ts +275 -0
  5. package/api/google/rpc/status.pb.d.ts +82 -0
  6. package/api/google/type/latlng.pb.d.ts +76 -0
  7. package/api/ondewo/csi/conversation.pb.d.ts +1312 -0
  8. package/api/ondewo/csi/conversation.pbconf.d.ts +6 -0
  9. package/api/ondewo/csi/conversation.pbsc.d.ts +167 -0
  10. package/api/ondewo/nlu/agent.pb.d.ts +3536 -0
  11. package/api/ondewo/nlu/agent.pbconf.d.ts +6 -0
  12. package/api/ondewo/nlu/agent.pbsc.d.ts +472 -0
  13. package/api/ondewo/nlu/aiservices.pb.d.ts +2472 -0
  14. package/api/ondewo/nlu/aiservices.pbconf.d.ts +6 -0
  15. package/api/ondewo/nlu/aiservices.pbsc.d.ts +150 -0
  16. package/api/ondewo/nlu/common.pb.d.ts +75 -0
  17. package/api/ondewo/nlu/context.pb.d.ts +756 -0
  18. package/api/ondewo/nlu/context.pbconf.d.ts +6 -0
  19. package/api/ondewo/nlu/context.pbsc.d.ts +119 -0
  20. package/api/ondewo/nlu/entity-type.pb.d.ts +2014 -0
  21. package/api/ondewo/nlu/entity-type.pbconf.d.ts +6 -0
  22. package/api/ondewo/nlu/entity-type.pbsc.d.ts +216 -0
  23. package/api/ondewo/nlu/intent.pb.d.ts +6236 -0
  24. package/api/ondewo/nlu/intent.pbconf.d.ts +6 -0
  25. package/api/ondewo/nlu/intent.pbsc.d.ts +456 -0
  26. package/api/ondewo/nlu/operation-metadata.pb.d.ts +166 -0
  27. package/api/ondewo/nlu/operations.pb.d.ts +578 -0
  28. package/api/ondewo/nlu/operations.pbconf.d.ts +6 -0
  29. package/api/ondewo/nlu/operations.pbsc.d.ts +87 -0
  30. package/api/ondewo/nlu/project-role.pb.d.ts +576 -0
  31. package/api/ondewo/nlu/project-role.pbconf.d.ts +6 -0
  32. package/api/ondewo/nlu/project-role.pbsc.d.ts +103 -0
  33. package/api/ondewo/nlu/project-statistics.pb.d.ts +295 -0
  34. package/api/ondewo/nlu/project-statistics.pbconf.d.ts +6 -0
  35. package/api/ondewo/nlu/project-statistics.pbsc.d.ts +151 -0
  36. package/api/ondewo/nlu/server-statistics.pb.d.ts +71 -0
  37. package/api/ondewo/nlu/server-statistics.pbconf.d.ts +6 -0
  38. package/api/ondewo/nlu/server-statistics.pbsc.d.ts +72 -0
  39. package/api/ondewo/nlu/session.pb.d.ts +2892 -0
  40. package/api/ondewo/nlu/session.pbconf.d.ts +6 -0
  41. package/api/ondewo/nlu/session.pbsc.d.ts +247 -0
  42. package/api/ondewo/nlu/user.pb.d.ts +1577 -0
  43. package/api/ondewo/nlu/user.pbconf.d.ts +6 -0
  44. package/api/ondewo/nlu/user.pbsc.d.ts +263 -0
  45. package/api/ondewo/nlu/utility.pb.d.ts +1814 -0
  46. package/api/ondewo/nlu/utility.pbconf.d.ts +6 -0
  47. package/api/ondewo/nlu/utility.pbsc.d.ts +150 -0
  48. package/api/ondewo/nlu/webhook.pb.d.ts +401 -0
  49. package/api/ondewo/nlu/webhook.pbconf.d.ts +6 -0
  50. package/api/ondewo/nlu/webhook.pbsc.d.ts +70 -0
  51. package/api/ondewo/s2t/speech-to-text.pb.d.ts +3710 -0
  52. package/api/ondewo/s2t/speech-to-text.pbconf.d.ts +6 -0
  53. package/api/ondewo/s2t/speech-to-text.pbsc.d.ts +263 -0
  54. package/api/ondewo/t2s/text-to-speech.pb.d.ts +3302 -0
  55. package/api/ondewo/t2s/text-to-speech.pbconf.d.ts +11 -0
  56. package/api/ondewo/t2s/text-to-speech.pbsc.d.ts +296 -0
  57. package/esm2020/api/google/api/annotations.pb.mjs +2 -0
  58. package/esm2020/api/google/api/http.pb.mjs +524 -0
  59. package/esm2020/api/google/rpc/status.pb.mjs +138 -0
  60. package/esm2020/api/google/type/latlng.pb.mjs +119 -0
  61. package/esm2020/api/ondewo/csi/conversation.pb.mjs +2232 -0
  62. package/esm2020/api/ondewo/csi/conversation.pbconf.mjs +13 -0
  63. package/esm2020/api/ondewo/csi/conversation.pbsc.mjs +315 -0
  64. package/esm2020/api/ondewo/nlu/agent.pb.mjs +6077 -0
  65. package/esm2020/api/ondewo/nlu/agent.pbconf.mjs +13 -0
  66. package/esm2020/api/ondewo/nlu/agent.pbsc.mjs +886 -0
  67. package/esm2020/api/ondewo/nlu/aiservices.pb.mjs +4371 -0
  68. package/esm2020/api/ondewo/nlu/aiservices.pbconf.mjs +13 -0
  69. package/esm2020/api/ondewo/nlu/aiservices.pbsc.mjs +284 -0
  70. package/esm2020/api/ondewo/nlu/common.pb.mjs +108 -0
  71. package/esm2020/api/ondewo/nlu/context.pb.mjs +1233 -0
  72. package/esm2020/api/ondewo/nlu/context.pbconf.mjs +13 -0
  73. package/esm2020/api/ondewo/nlu/context.pbsc.mjs +225 -0
  74. package/esm2020/api/ondewo/nlu/entity-type.pb.mjs +3466 -0
  75. package/esm2020/api/ondewo/nlu/entity-type.pbconf.mjs +13 -0
  76. package/esm2020/api/ondewo/nlu/entity-type.pbsc.mjs +406 -0
  77. package/esm2020/api/ondewo/nlu/intent.pb.mjs +10809 -0
  78. package/esm2020/api/ondewo/nlu/intent.pbconf.mjs +13 -0
  79. package/esm2020/api/ondewo/nlu/intent.pbsc.mjs +856 -0
  80. package/esm2020/api/ondewo/nlu/operation-metadata.pb.mjs +382 -0
  81. package/esm2020/api/ondewo/nlu/operations.pb.mjs +1003 -0
  82. package/esm2020/api/ondewo/nlu/operations.pbconf.mjs +13 -0
  83. package/esm2020/api/ondewo/nlu/operations.pbsc.mjs +165 -0
  84. package/esm2020/api/ondewo/nlu/project-role.pb.mjs +988 -0
  85. package/esm2020/api/ondewo/nlu/project-role.pbconf.mjs +13 -0
  86. package/esm2020/api/ondewo/nlu/project-role.pbsc.mjs +195 -0
  87. package/esm2020/api/ondewo/nlu/project-statistics.pb.mjs +460 -0
  88. package/esm2020/api/ondewo/nlu/project-statistics.pbconf.mjs +13 -0
  89. package/esm2020/api/ondewo/nlu/project-statistics.pbsc.mjs +285 -0
  90. package/esm2020/api/ondewo/nlu/server-statistics.pb.mjs +103 -0
  91. package/esm2020/api/ondewo/nlu/server-statistics.pbconf.mjs +13 -0
  92. package/esm2020/api/ondewo/nlu/server-statistics.pbsc.mjs +136 -0
  93. package/esm2020/api/ondewo/nlu/session.pb.mjs +5351 -0
  94. package/esm2020/api/ondewo/nlu/session.pbconf.mjs +13 -0
  95. package/esm2020/api/ondewo/nlu/session.pbsc.mjs +465 -0
  96. package/esm2020/api/ondewo/nlu/user.pb.mjs +2536 -0
  97. package/esm2020/api/ondewo/nlu/user.pbconf.mjs +13 -0
  98. package/esm2020/api/ondewo/nlu/user.pbsc.mjs +495 -0
  99. package/esm2020/api/ondewo/nlu/utility.pb.mjs +3302 -0
  100. package/esm2020/api/ondewo/nlu/utility.pbconf.mjs +13 -0
  101. package/esm2020/api/ondewo/nlu/utility.pbsc.mjs +284 -0
  102. package/esm2020/api/ondewo/nlu/webhook.pb.mjs +705 -0
  103. package/esm2020/api/ondewo/nlu/webhook.pbconf.mjs +13 -0
  104. package/esm2020/api/ondewo/nlu/webhook.pbsc.mjs +134 -0
  105. package/esm2020/api/ondewo/s2t/speech-to-text.pb.mjs +6452 -0
  106. package/esm2020/api/ondewo/s2t/speech-to-text.pbconf.mjs +13 -0
  107. package/esm2020/api/ondewo/s2t/speech-to-text.pbsc.mjs +495 -0
  108. package/esm2020/api/ondewo/t2s/text-to-speech.pb.mjs +5779 -0
  109. package/esm2020/api/ondewo/t2s/text-to-speech.pbconf.mjs +18 -0
  110. package/esm2020/api/ondewo/t2s/text-to-speech.pbsc.mjs +555 -0
  111. package/esm2020/ondewo-csi-client-angular.mjs +5 -0
  112. package/esm2020/public-api.mjs +55 -0
  113. package/fesm2015/ondewo-csi-client-angular.mjs +62142 -0
  114. package/fesm2015/ondewo-csi-client-angular.mjs.map +1 -0
  115. package/fesm2020/ondewo-csi-client-angular.mjs +62135 -0
  116. package/fesm2020/ondewo-csi-client-angular.mjs.map +1 -0
  117. package/index.d.ts +5 -0
  118. package/ondewo-csi-api/README.md +91 -0
  119. package/ondewo-csi-api/google/ads/googleads/README.md +21 -0
  120. package/ondewo-csi-api/google/api/README.md +5 -0
  121. package/ondewo-csi-api/google/api/servicecontrol/README.md +126 -0
  122. package/ondewo-csi-api/google/api/servicemanagement/README.md +102 -0
  123. package/ondewo-csi-api/google/appengine/README.md +12 -0
  124. package/ondewo-csi-api/google/assistant/embedded/README.md +3 -0
  125. package/ondewo-csi-api/google/cloud/functions/README.md +2 -0
  126. package/ondewo-csi-api/google/cloud/language/README.md +0 -0
  127. package/ondewo-csi-api/google/cloud/runtimeconfig/README.md +39 -0
  128. package/ondewo-csi-api/google/cloud/speech/README.md +3 -0
  129. package/ondewo-csi-api/google/container/README.md +0 -0
  130. package/ondewo-csi-api/google/datastore/README.md +0 -0
  131. package/ondewo-csi-api/google/devtools/cloudbuild/README.md +1 -0
  132. package/ondewo-csi-api/google/devtools/clouderrorreporting/README.md +1 -0
  133. package/ondewo-csi-api/google/example/library/README.md +4 -0
  134. package/ondewo-csi-api/google/firestore/README.md +0 -0
  135. package/ondewo-csi-api/google/genomics/README.md +14 -0
  136. package/ondewo-csi-api/google/iam/README.md +14 -0
  137. package/ondewo-csi-api/google/logging/README.md +3 -0
  138. package/ondewo-csi-api/google/longrunning/README.md +5 -0
  139. package/ondewo-csi-api/google/privacy/dlp/README.md +7 -0
  140. package/ondewo-csi-api/google/pubsub/v1beta2/README.md +136 -0
  141. package/ondewo-csi-api/google/rpc/README.md +5 -0
  142. package/ondewo-csi-api/google/streetview/publish/README.md +1 -0
  143. package/ondewo-csi-api/google/type/README.md +16 -0
  144. package/ondewo-csi-api/googleapis/README.md +87 -0
  145. package/ondewo-csi-api/googleapis/google/ads/googleads/README.md +21 -0
  146. package/ondewo-csi-api/googleapis/google/api/README.md +5 -0
  147. package/ondewo-csi-api/googleapis/google/api/servicecontrol/README.md +126 -0
  148. package/ondewo-csi-api/googleapis/google/api/servicemanagement/README.md +102 -0
  149. package/ondewo-csi-api/googleapis/google/appengine/README.md +12 -0
  150. package/ondewo-csi-api/googleapis/google/assistant/embedded/README.md +3 -0
  151. package/ondewo-csi-api/googleapis/google/cloud/functions/README.md +2 -0
  152. package/ondewo-csi-api/googleapis/google/cloud/language/README.md +0 -0
  153. package/ondewo-csi-api/googleapis/google/cloud/runtimeconfig/README.md +39 -0
  154. package/ondewo-csi-api/googleapis/google/cloud/speech/README.md +3 -0
  155. package/ondewo-csi-api/googleapis/google/container/README.md +0 -0
  156. package/ondewo-csi-api/googleapis/google/datastore/README.md +0 -0
  157. package/ondewo-csi-api/googleapis/google/devtools/cloudbuild/README.md +1 -0
  158. package/ondewo-csi-api/googleapis/google/devtools/clouderrorreporting/README.md +1 -0
  159. package/ondewo-csi-api/googleapis/google/example/library/README.md +4 -0
  160. package/ondewo-csi-api/googleapis/google/firestore/README.md +0 -0
  161. package/ondewo-csi-api/googleapis/google/genomics/README.md +14 -0
  162. package/ondewo-csi-api/googleapis/google/iam/README.md +14 -0
  163. package/ondewo-csi-api/googleapis/google/logging/README.md +3 -0
  164. package/ondewo-csi-api/googleapis/google/longrunning/README.md +5 -0
  165. package/ondewo-csi-api/googleapis/google/privacy/dlp/README.md +7 -0
  166. package/ondewo-csi-api/googleapis/google/pubsub/v1beta2/README.md +136 -0
  167. package/ondewo-csi-api/googleapis/google/rpc/README.md +5 -0
  168. package/ondewo-csi-api/googleapis/google/streetview/publish/README.md +1 -0
  169. package/ondewo-csi-api/googleapis/google/type/README.md +16 -0
  170. package/ondewo-csi-api/ondewo-nlu-api/README.md +117 -0
  171. package/ondewo-csi-api/ondewo-nlu-api/googleapis/README.md +87 -0
  172. package/ondewo-csi-api/ondewo-nlu-api/googleapis/google/ads/googleads/README.md +21 -0
  173. package/ondewo-csi-api/ondewo-nlu-api/googleapis/google/api/README.md +5 -0
  174. package/ondewo-csi-api/ondewo-nlu-api/googleapis/google/api/servicecontrol/README.md +126 -0
  175. package/ondewo-csi-api/ondewo-nlu-api/googleapis/google/api/servicemanagement/README.md +102 -0
  176. package/ondewo-csi-api/ondewo-nlu-api/googleapis/google/appengine/README.md +12 -0
  177. package/ondewo-csi-api/ondewo-nlu-api/googleapis/google/assistant/embedded/README.md +3 -0
  178. package/ondewo-csi-api/ondewo-nlu-api/googleapis/google/cloud/functions/README.md +2 -0
  179. package/ondewo-csi-api/ondewo-nlu-api/googleapis/google/cloud/language/README.md +0 -0
  180. package/ondewo-csi-api/ondewo-nlu-api/googleapis/google/cloud/runtimeconfig/README.md +39 -0
  181. package/ondewo-csi-api/ondewo-nlu-api/googleapis/google/cloud/speech/README.md +3 -0
  182. package/ondewo-csi-api/ondewo-nlu-api/googleapis/google/container/README.md +0 -0
  183. package/ondewo-csi-api/ondewo-nlu-api/googleapis/google/datastore/README.md +0 -0
  184. package/ondewo-csi-api/ondewo-nlu-api/googleapis/google/devtools/cloudbuild/README.md +1 -0
  185. package/ondewo-csi-api/ondewo-nlu-api/googleapis/google/devtools/clouderrorreporting/README.md +1 -0
  186. package/ondewo-csi-api/ondewo-nlu-api/googleapis/google/example/library/README.md +4 -0
  187. package/ondewo-csi-api/ondewo-nlu-api/googleapis/google/firestore/README.md +0 -0
  188. package/ondewo-csi-api/ondewo-nlu-api/googleapis/google/genomics/README.md +14 -0
  189. package/ondewo-csi-api/ondewo-nlu-api/googleapis/google/iam/README.md +14 -0
  190. package/ondewo-csi-api/ondewo-nlu-api/googleapis/google/logging/README.md +3 -0
  191. package/ondewo-csi-api/ondewo-nlu-api/googleapis/google/longrunning/README.md +5 -0
  192. package/ondewo-csi-api/ondewo-nlu-api/googleapis/google/privacy/dlp/README.md +7 -0
  193. package/ondewo-csi-api/ondewo-nlu-api/googleapis/google/pubsub/v1beta2/README.md +136 -0
  194. package/ondewo-csi-api/ondewo-nlu-api/googleapis/google/rpc/README.md +5 -0
  195. package/ondewo-csi-api/ondewo-nlu-api/googleapis/google/streetview/publish/README.md +1 -0
  196. package/ondewo-csi-api/ondewo-nlu-api/googleapis/google/type/README.md +16 -0
  197. package/ondewo-csi-api/ondewo-s2t-api/README.md +89 -0
  198. package/ondewo-csi-api/ondewo-t2s-api/README.md +89 -0
  199. package/package.json +49 -0
  200. package/public-api.d.ts +54 -0
@@ -0,0 +1,886 @@
1
+ /* tslint:disable */
2
+ /* eslint-disable */
3
+ // @ts-nocheck
4
+ //
5
+ // THIS IS A GENERATED FILE
6
+ // DO NOT MODIFY IT! YOUR CHANGES WILL BE LOST
7
+ import { Inject, Injectable, Optional } from '@angular/core';
8
+ import { GrpcCallType, GrpcMetadata } from '@ngx-grpc/common';
9
+ import { GRPC_CLIENT_FACTORY, takeMessages, throwStatusErrors } from '@ngx-grpc/core';
10
+ import * as thisProto from './agent.pb';
11
+ import * as ondewoNlu005 from '../../ondewo/nlu/operations.pb';
12
+ import * as googleProtobuf006 from '@ngx-grpc/well-known-types';
13
+ import { GRPC_AGENTS_CLIENT_SETTINGS } from './agent.pbconf';
14
+ import * as i0 from "@angular/core";
15
+ import * as i1 from "@ngx-grpc/core";
16
+ /**
17
+ * Service client implementation for ondewo.nlu.Agents
18
+ */
19
+ export class AgentsClient {
20
+ constructor(settings, clientFactory, handler) {
21
+ this.handler = handler;
22
+ /**
23
+ * Raw RPC implementation for each service client method.
24
+ * The raw methods provide more control on the incoming data and events. E.g. they can be useful to read status `OK` metadata.
25
+ * Attention: these methods do not throw errors when non-zero status codes are received.
26
+ */
27
+ this.$raw = {
28
+ /**
29
+ * Unary call: /ondewo.nlu.Agents/CreateAgent
30
+ *
31
+ * @param requestMessage Request message
32
+ * @param requestMetadata Request metadata
33
+ * @returns Observable<GrpcEvent<thisProto.Agent>>
34
+ */
35
+ createAgent: (requestData, requestMetadata = new GrpcMetadata()) => {
36
+ return this.handler.handle({
37
+ type: GrpcCallType.unary,
38
+ client: this.client,
39
+ path: '/ondewo.nlu.Agents/CreateAgent',
40
+ requestData,
41
+ requestMetadata,
42
+ requestClass: thisProto.CreateAgentRequest,
43
+ responseClass: thisProto.Agent
44
+ });
45
+ },
46
+ /**
47
+ * Unary call: /ondewo.nlu.Agents/UpdateAgent
48
+ *
49
+ * @param requestMessage Request message
50
+ * @param requestMetadata Request metadata
51
+ * @returns Observable<GrpcEvent<thisProto.Agent>>
52
+ */
53
+ updateAgent: (requestData, requestMetadata = new GrpcMetadata()) => {
54
+ return this.handler.handle({
55
+ type: GrpcCallType.unary,
56
+ client: this.client,
57
+ path: '/ondewo.nlu.Agents/UpdateAgent',
58
+ requestData,
59
+ requestMetadata,
60
+ requestClass: thisProto.UpdateAgentRequest,
61
+ responseClass: thisProto.Agent
62
+ });
63
+ },
64
+ /**
65
+ * Unary call: /ondewo.nlu.Agents/GetAgent
66
+ *
67
+ * @param requestMessage Request message
68
+ * @param requestMetadata Request metadata
69
+ * @returns Observable<GrpcEvent<thisProto.Agent>>
70
+ */
71
+ getAgent: (requestData, requestMetadata = new GrpcMetadata()) => {
72
+ return this.handler.handle({
73
+ type: GrpcCallType.unary,
74
+ client: this.client,
75
+ path: '/ondewo.nlu.Agents/GetAgent',
76
+ requestData,
77
+ requestMetadata,
78
+ requestClass: thisProto.GetAgentRequest,
79
+ responseClass: thisProto.Agent
80
+ });
81
+ },
82
+ /**
83
+ * Unary call: /ondewo.nlu.Agents/DeleteAgent
84
+ *
85
+ * @param requestMessage Request message
86
+ * @param requestMetadata Request metadata
87
+ * @returns Observable<GrpcEvent<googleProtobuf006.Empty>>
88
+ */
89
+ deleteAgent: (requestData, requestMetadata = new GrpcMetadata()) => {
90
+ return this.handler.handle({
91
+ type: GrpcCallType.unary,
92
+ client: this.client,
93
+ path: '/ondewo.nlu.Agents/DeleteAgent',
94
+ requestData,
95
+ requestMetadata,
96
+ requestClass: thisProto.DeleteAgentRequest,
97
+ responseClass: googleProtobuf006.Empty
98
+ });
99
+ },
100
+ /**
101
+ * Unary call: /ondewo.nlu.Agents/DeleteAllAgents
102
+ *
103
+ * @param requestMessage Request message
104
+ * @param requestMetadata Request metadata
105
+ * @returns Observable<GrpcEvent<googleProtobuf006.Empty>>
106
+ */
107
+ deleteAllAgents: (requestData, requestMetadata = new GrpcMetadata()) => {
108
+ return this.handler.handle({
109
+ type: GrpcCallType.unary,
110
+ client: this.client,
111
+ path: '/ondewo.nlu.Agents/DeleteAllAgents',
112
+ requestData,
113
+ requestMetadata,
114
+ requestClass: googleProtobuf006.Empty,
115
+ responseClass: googleProtobuf006.Empty
116
+ });
117
+ },
118
+ /**
119
+ * Unary call: /ondewo.nlu.Agents/ListAgents
120
+ *
121
+ * @param requestMessage Request message
122
+ * @param requestMetadata Request metadata
123
+ * @returns Observable<GrpcEvent<thisProto.ListAgentsResponse>>
124
+ */
125
+ listAgents: (requestData, requestMetadata = new GrpcMetadata()) => {
126
+ return this.handler.handle({
127
+ type: GrpcCallType.unary,
128
+ client: this.client,
129
+ path: '/ondewo.nlu.Agents/ListAgents',
130
+ requestData,
131
+ requestMetadata,
132
+ requestClass: thisProto.ListAgentsRequest,
133
+ responseClass: thisProto.ListAgentsResponse
134
+ });
135
+ },
136
+ /**
137
+ * Unary call: /ondewo.nlu.Agents/ListAgentsOfUser
138
+ *
139
+ * @param requestMessage Request message
140
+ * @param requestMetadata Request metadata
141
+ * @returns Observable<GrpcEvent<thisProto.ListAgentsOfUserResponse>>
142
+ */
143
+ listAgentsOfUser: (requestData, requestMetadata = new GrpcMetadata()) => {
144
+ return this.handler.handle({
145
+ type: GrpcCallType.unary,
146
+ client: this.client,
147
+ path: '/ondewo.nlu.Agents/ListAgentsOfUser',
148
+ requestData,
149
+ requestMetadata,
150
+ requestClass: thisProto.ListAgentsRequest,
151
+ responseClass: thisProto.ListAgentsOfUserResponse
152
+ });
153
+ },
154
+ /**
155
+ * Unary call: /ondewo.nlu.Agents/ListAllAgents
156
+ *
157
+ * @param requestMessage Request message
158
+ * @param requestMetadata Request metadata
159
+ * @returns Observable<GrpcEvent<thisProto.ListAgentsResponse>>
160
+ */
161
+ listAllAgents: (requestData, requestMetadata = new GrpcMetadata()) => {
162
+ return this.handler.handle({
163
+ type: GrpcCallType.unary,
164
+ client: this.client,
165
+ path: '/ondewo.nlu.Agents/ListAllAgents',
166
+ requestData,
167
+ requestMetadata,
168
+ requestClass: thisProto.ListAgentsRequest,
169
+ responseClass: thisProto.ListAgentsResponse
170
+ });
171
+ },
172
+ /**
173
+ * Unary call: /ondewo.nlu.Agents/AddUserToProject
174
+ *
175
+ * @param requestMessage Request message
176
+ * @param requestMetadata Request metadata
177
+ * @returns Observable<GrpcEvent<googleProtobuf006.Empty>>
178
+ */
179
+ addUserToProject: (requestData, requestMetadata = new GrpcMetadata()) => {
180
+ return this.handler.handle({
181
+ type: GrpcCallType.unary,
182
+ client: this.client,
183
+ path: '/ondewo.nlu.Agents/AddUserToProject',
184
+ requestData,
185
+ requestMetadata,
186
+ requestClass: thisProto.AddUserToProjectRequest,
187
+ responseClass: googleProtobuf006.Empty
188
+ });
189
+ },
190
+ /**
191
+ * Unary call: /ondewo.nlu.Agents/RemoveUserFromProject
192
+ *
193
+ * @param requestMessage Request message
194
+ * @param requestMetadata Request metadata
195
+ * @returns Observable<GrpcEvent<googleProtobuf006.Empty>>
196
+ */
197
+ removeUserFromProject: (requestData, requestMetadata = new GrpcMetadata()) => {
198
+ return this.handler.handle({
199
+ type: GrpcCallType.unary,
200
+ client: this.client,
201
+ path: '/ondewo.nlu.Agents/RemoveUserFromProject',
202
+ requestData,
203
+ requestMetadata,
204
+ requestClass: thisProto.RemoveUserFromProjectRequest,
205
+ responseClass: googleProtobuf006.Empty
206
+ });
207
+ },
208
+ /**
209
+ * Unary call: /ondewo.nlu.Agents/ListUsersInProject
210
+ *
211
+ * @param requestMessage Request message
212
+ * @param requestMetadata Request metadata
213
+ * @returns Observable<GrpcEvent<thisProto.ListUsersInProjectResponse>>
214
+ */
215
+ listUsersInProject: (requestData, requestMetadata = new GrpcMetadata()) => {
216
+ return this.handler.handle({
217
+ type: GrpcCallType.unary,
218
+ client: this.client,
219
+ path: '/ondewo.nlu.Agents/ListUsersInProject',
220
+ requestData,
221
+ requestMetadata,
222
+ requestClass: thisProto.ListUsersInProjectRequest,
223
+ responseClass: thisProto.ListUsersInProjectResponse
224
+ });
225
+ },
226
+ /**
227
+ * Unary call: /ondewo.nlu.Agents/GetPlatformInfo
228
+ *
229
+ * @param requestMessage Request message
230
+ * @param requestMetadata Request metadata
231
+ * @returns Observable<GrpcEvent<thisProto.GetPlatformInfoResponse>>
232
+ */
233
+ getPlatformInfo: (requestData, requestMetadata = new GrpcMetadata()) => {
234
+ return this.handler.handle({
235
+ type: GrpcCallType.unary,
236
+ client: this.client,
237
+ path: '/ondewo.nlu.Agents/GetPlatformInfo',
238
+ requestData,
239
+ requestMetadata,
240
+ requestClass: googleProtobuf006.Empty,
241
+ responseClass: thisProto.GetPlatformInfoResponse
242
+ });
243
+ },
244
+ /**
245
+ * Unary call: /ondewo.nlu.Agents/ListProjectPermissions
246
+ *
247
+ * @param requestMessage Request message
248
+ * @param requestMetadata Request metadata
249
+ * @returns Observable<GrpcEvent<thisProto.ListProjectPermissionsResponse>>
250
+ */
251
+ listProjectPermissions: (requestData, requestMetadata = new GrpcMetadata()) => {
252
+ return this.handler.handle({
253
+ type: GrpcCallType.unary,
254
+ client: this.client,
255
+ path: '/ondewo.nlu.Agents/ListProjectPermissions',
256
+ requestData,
257
+ requestMetadata,
258
+ requestClass: thisProto.ListProjectPermissionsRequest,
259
+ responseClass: thisProto.ListProjectPermissionsResponse
260
+ });
261
+ },
262
+ /**
263
+ * Unary call: /ondewo.nlu.Agents/TrainAgent
264
+ *
265
+ * @param requestMessage Request message
266
+ * @param requestMetadata Request metadata
267
+ * @returns Observable<GrpcEvent<ondewoNlu005.Operation>>
268
+ */
269
+ trainAgent: (requestData, requestMetadata = new GrpcMetadata()) => {
270
+ return this.handler.handle({
271
+ type: GrpcCallType.unary,
272
+ client: this.client,
273
+ path: '/ondewo.nlu.Agents/TrainAgent',
274
+ requestData,
275
+ requestMetadata,
276
+ requestClass: thisProto.TrainAgentRequest,
277
+ responseClass: ondewoNlu005.Operation
278
+ });
279
+ },
280
+ /**
281
+ * Unary call: /ondewo.nlu.Agents/BuildCache
282
+ *
283
+ * @param requestMessage Request message
284
+ * @param requestMetadata Request metadata
285
+ * @returns Observable<GrpcEvent<ondewoNlu005.Operation>>
286
+ */
287
+ buildCache: (requestData, requestMetadata = new GrpcMetadata()) => {
288
+ return this.handler.handle({
289
+ type: GrpcCallType.unary,
290
+ client: this.client,
291
+ path: '/ondewo.nlu.Agents/BuildCache',
292
+ requestData,
293
+ requestMetadata,
294
+ requestClass: thisProto.BuildCacheRequest,
295
+ responseClass: ondewoNlu005.Operation
296
+ });
297
+ },
298
+ /**
299
+ * Unary call: /ondewo.nlu.Agents/ExportAgent
300
+ *
301
+ * @param requestMessage Request message
302
+ * @param requestMetadata Request metadata
303
+ * @returns Observable<GrpcEvent<ondewoNlu005.Operation>>
304
+ */
305
+ exportAgent: (requestData, requestMetadata = new GrpcMetadata()) => {
306
+ return this.handler.handle({
307
+ type: GrpcCallType.unary,
308
+ client: this.client,
309
+ path: '/ondewo.nlu.Agents/ExportAgent',
310
+ requestData,
311
+ requestMetadata,
312
+ requestClass: thisProto.ExportAgentRequest,
313
+ responseClass: ondewoNlu005.Operation
314
+ });
315
+ },
316
+ /**
317
+ * Unary call: /ondewo.nlu.Agents/ExportBenchmarkAgent
318
+ *
319
+ * @param requestMessage Request message
320
+ * @param requestMetadata Request metadata
321
+ * @returns Observable<GrpcEvent<ondewoNlu005.Operation>>
322
+ */
323
+ exportBenchmarkAgent: (requestData, requestMetadata = new GrpcMetadata()) => {
324
+ return this.handler.handle({
325
+ type: GrpcCallType.unary,
326
+ client: this.client,
327
+ path: '/ondewo.nlu.Agents/ExportBenchmarkAgent',
328
+ requestData,
329
+ requestMetadata,
330
+ requestClass: thisProto.ExportBenchmarkAgentRequest,
331
+ responseClass: ondewoNlu005.Operation
332
+ });
333
+ },
334
+ /**
335
+ * Unary call: /ondewo.nlu.Agents/ImportAgent
336
+ *
337
+ * @param requestMessage Request message
338
+ * @param requestMetadata Request metadata
339
+ * @returns Observable<GrpcEvent<ondewoNlu005.Operation>>
340
+ */
341
+ importAgent: (requestData, requestMetadata = new GrpcMetadata()) => {
342
+ return this.handler.handle({
343
+ type: GrpcCallType.unary,
344
+ client: this.client,
345
+ path: '/ondewo.nlu.Agents/ImportAgent',
346
+ requestData,
347
+ requestMetadata,
348
+ requestClass: thisProto.ImportAgentRequest,
349
+ responseClass: ondewoNlu005.Operation
350
+ });
351
+ },
352
+ /**
353
+ * Unary call: /ondewo.nlu.Agents/OptimizeRankingMatch
354
+ *
355
+ * @param requestMessage Request message
356
+ * @param requestMetadata Request metadata
357
+ * @returns Observable<GrpcEvent<ondewoNlu005.Operation>>
358
+ */
359
+ optimizeRankingMatch: (requestData, requestMetadata = new GrpcMetadata()) => {
360
+ return this.handler.handle({
361
+ type: GrpcCallType.unary,
362
+ client: this.client,
363
+ path: '/ondewo.nlu.Agents/OptimizeRankingMatch',
364
+ requestData,
365
+ requestMetadata,
366
+ requestClass: thisProto.OptimizeRankingMatchRequest,
367
+ responseClass: ondewoNlu005.Operation
368
+ });
369
+ },
370
+ /**
371
+ * Unary call: /ondewo.nlu.Agents/RestoreAgent
372
+ *
373
+ * @param requestMessage Request message
374
+ * @param requestMetadata Request metadata
375
+ * @returns Observable<GrpcEvent<ondewoNlu005.Operation>>
376
+ */
377
+ restoreAgent: (requestData, requestMetadata = new GrpcMetadata()) => {
378
+ return this.handler.handle({
379
+ type: GrpcCallType.unary,
380
+ client: this.client,
381
+ path: '/ondewo.nlu.Agents/RestoreAgent',
382
+ requestData,
383
+ requestMetadata,
384
+ requestClass: thisProto.RestoreAgentRequest,
385
+ responseClass: ondewoNlu005.Operation
386
+ });
387
+ },
388
+ /**
389
+ * Unary call: /ondewo.nlu.Agents/GetAgentStatistics
390
+ *
391
+ * @param requestMessage Request message
392
+ * @param requestMetadata Request metadata
393
+ * @returns Observable<GrpcEvent<thisProto.GetAgentStatisticsResponse>>
394
+ */
395
+ getAgentStatistics: (requestData, requestMetadata = new GrpcMetadata()) => {
396
+ return this.handler.handle({
397
+ type: GrpcCallType.unary,
398
+ client: this.client,
399
+ path: '/ondewo.nlu.Agents/GetAgentStatistics',
400
+ requestData,
401
+ requestMetadata,
402
+ requestClass: thisProto.GetAgentStatisticsRequest,
403
+ responseClass: thisProto.GetAgentStatisticsResponse
404
+ });
405
+ },
406
+ /**
407
+ * Unary call: /ondewo.nlu.Agents/SetAgentStatus
408
+ *
409
+ * @param requestMessage Request message
410
+ * @param requestMetadata Request metadata
411
+ * @returns Observable<GrpcEvent<thisProto.Agent>>
412
+ */
413
+ setAgentStatus: (requestData, requestMetadata = new GrpcMetadata()) => {
414
+ return this.handler.handle({
415
+ type: GrpcCallType.unary,
416
+ client: this.client,
417
+ path: '/ondewo.nlu.Agents/SetAgentStatus',
418
+ requestData,
419
+ requestMetadata,
420
+ requestClass: thisProto.SetAgentStatusRequest,
421
+ responseClass: thisProto.Agent
422
+ });
423
+ },
424
+ /**
425
+ * Unary call: /ondewo.nlu.Agents/SetResources
426
+ *
427
+ * @param requestMessage Request message
428
+ * @param requestMetadata Request metadata
429
+ * @returns Observable<GrpcEvent<googleProtobuf006.Empty>>
430
+ */
431
+ setResources: (requestData, requestMetadata = new GrpcMetadata()) => {
432
+ return this.handler.handle({
433
+ type: GrpcCallType.unary,
434
+ client: this.client,
435
+ path: '/ondewo.nlu.Agents/SetResources',
436
+ requestData,
437
+ requestMetadata,
438
+ requestClass: thisProto.SetResourcesRequest,
439
+ responseClass: googleProtobuf006.Empty
440
+ });
441
+ },
442
+ /**
443
+ * Unary call: /ondewo.nlu.Agents/DeleteResources
444
+ *
445
+ * @param requestMessage Request message
446
+ * @param requestMetadata Request metadata
447
+ * @returns Observable<GrpcEvent<googleProtobuf006.Empty>>
448
+ */
449
+ deleteResources: (requestData, requestMetadata = new GrpcMetadata()) => {
450
+ return this.handler.handle({
451
+ type: GrpcCallType.unary,
452
+ client: this.client,
453
+ path: '/ondewo.nlu.Agents/DeleteResources',
454
+ requestData,
455
+ requestMetadata,
456
+ requestClass: thisProto.DeleteResourcesRequest,
457
+ responseClass: googleProtobuf006.Empty
458
+ });
459
+ },
460
+ /**
461
+ * Unary call: /ondewo.nlu.Agents/ExportResources
462
+ *
463
+ * @param requestMessage Request message
464
+ * @param requestMetadata Request metadata
465
+ * @returns Observable<GrpcEvent<thisProto.ExportResourcesResponse>>
466
+ */
467
+ exportResources: (requestData, requestMetadata = new GrpcMetadata()) => {
468
+ return this.handler.handle({
469
+ type: GrpcCallType.unary,
470
+ client: this.client,
471
+ path: '/ondewo.nlu.Agents/ExportResources',
472
+ requestData,
473
+ requestMetadata,
474
+ requestClass: thisProto.ExportResourcesRequest,
475
+ responseClass: thisProto.ExportResourcesResponse
476
+ });
477
+ },
478
+ /**
479
+ * Unary call: /ondewo.nlu.Agents/GetModelStatuses
480
+ *
481
+ * @param requestMessage Request message
482
+ * @param requestMetadata Request metadata
483
+ * @returns Observable<GrpcEvent<thisProto.GetModelStatusesResponse>>
484
+ */
485
+ getModelStatuses: (requestData, requestMetadata = new GrpcMetadata()) => {
486
+ return this.handler.handle({
487
+ type: GrpcCallType.unary,
488
+ client: this.client,
489
+ path: '/ondewo.nlu.Agents/GetModelStatuses',
490
+ requestData,
491
+ requestMetadata,
492
+ requestClass: thisProto.GetModelStatusesRequest,
493
+ responseClass: thisProto.GetModelStatusesResponse
494
+ });
495
+ },
496
+ /**
497
+ * Unary call: /ondewo.nlu.Agents/GetPlatformMapping
498
+ *
499
+ * @param requestMessage Request message
500
+ * @param requestMetadata Request metadata
501
+ * @returns Observable<GrpcEvent<thisProto.PlatformMapping>>
502
+ */
503
+ getPlatformMapping: (requestData, requestMetadata = new GrpcMetadata()) => {
504
+ return this.handler.handle({
505
+ type: GrpcCallType.unary,
506
+ client: this.client,
507
+ path: '/ondewo.nlu.Agents/GetPlatformMapping',
508
+ requestData,
509
+ requestMetadata,
510
+ requestClass: thisProto.GetPlatformMappingRequest,
511
+ responseClass: thisProto.PlatformMapping
512
+ });
513
+ },
514
+ /**
515
+ * Unary call: /ondewo.nlu.Agents/SetPlatformMapping
516
+ *
517
+ * @param requestMessage Request message
518
+ * @param requestMetadata Request metadata
519
+ * @returns Observable<GrpcEvent<thisProto.PlatformMapping>>
520
+ */
521
+ setPlatformMapping: (requestData, requestMetadata = new GrpcMetadata()) => {
522
+ return this.handler.handle({
523
+ type: GrpcCallType.unary,
524
+ client: this.client,
525
+ path: '/ondewo.nlu.Agents/SetPlatformMapping',
526
+ requestData,
527
+ requestMetadata,
528
+ requestClass: thisProto.PlatformMapping,
529
+ responseClass: thisProto.PlatformMapping
530
+ });
531
+ }
532
+ };
533
+ this.client = clientFactory.createClient('ondewo.nlu.Agents', settings);
534
+ }
535
+ /**
536
+ * Unary call @/ondewo.nlu.Agents/CreateAgent
537
+ *
538
+ * @param requestMessage Request message
539
+ * @param requestMetadata Request metadata
540
+ * @returns Observable<thisProto.Agent>
541
+ */
542
+ createAgent(requestData, requestMetadata = new GrpcMetadata()) {
543
+ return this.$raw
544
+ .createAgent(requestData, requestMetadata)
545
+ .pipe(throwStatusErrors(), takeMessages());
546
+ }
547
+ /**
548
+ * Unary call @/ondewo.nlu.Agents/UpdateAgent
549
+ *
550
+ * @param requestMessage Request message
551
+ * @param requestMetadata Request metadata
552
+ * @returns Observable<thisProto.Agent>
553
+ */
554
+ updateAgent(requestData, requestMetadata = new GrpcMetadata()) {
555
+ return this.$raw
556
+ .updateAgent(requestData, requestMetadata)
557
+ .pipe(throwStatusErrors(), takeMessages());
558
+ }
559
+ /**
560
+ * Unary call @/ondewo.nlu.Agents/GetAgent
561
+ *
562
+ * @param requestMessage Request message
563
+ * @param requestMetadata Request metadata
564
+ * @returns Observable<thisProto.Agent>
565
+ */
566
+ getAgent(requestData, requestMetadata = new GrpcMetadata()) {
567
+ return this.$raw
568
+ .getAgent(requestData, requestMetadata)
569
+ .pipe(throwStatusErrors(), takeMessages());
570
+ }
571
+ /**
572
+ * Unary call @/ondewo.nlu.Agents/DeleteAgent
573
+ *
574
+ * @param requestMessage Request message
575
+ * @param requestMetadata Request metadata
576
+ * @returns Observable<googleProtobuf006.Empty>
577
+ */
578
+ deleteAgent(requestData, requestMetadata = new GrpcMetadata()) {
579
+ return this.$raw
580
+ .deleteAgent(requestData, requestMetadata)
581
+ .pipe(throwStatusErrors(), takeMessages());
582
+ }
583
+ /**
584
+ * Unary call @/ondewo.nlu.Agents/DeleteAllAgents
585
+ *
586
+ * @param requestMessage Request message
587
+ * @param requestMetadata Request metadata
588
+ * @returns Observable<googleProtobuf006.Empty>
589
+ */
590
+ deleteAllAgents(requestData, requestMetadata = new GrpcMetadata()) {
591
+ return this.$raw
592
+ .deleteAllAgents(requestData, requestMetadata)
593
+ .pipe(throwStatusErrors(), takeMessages());
594
+ }
595
+ /**
596
+ * Unary call @/ondewo.nlu.Agents/ListAgents
597
+ *
598
+ * @param requestMessage Request message
599
+ * @param requestMetadata Request metadata
600
+ * @returns Observable<thisProto.ListAgentsResponse>
601
+ */
602
+ listAgents(requestData, requestMetadata = new GrpcMetadata()) {
603
+ return this.$raw
604
+ .listAgents(requestData, requestMetadata)
605
+ .pipe(throwStatusErrors(), takeMessages());
606
+ }
607
+ /**
608
+ * Unary call @/ondewo.nlu.Agents/ListAgentsOfUser
609
+ *
610
+ * @param requestMessage Request message
611
+ * @param requestMetadata Request metadata
612
+ * @returns Observable<thisProto.ListAgentsOfUserResponse>
613
+ */
614
+ listAgentsOfUser(requestData, requestMetadata = new GrpcMetadata()) {
615
+ return this.$raw
616
+ .listAgentsOfUser(requestData, requestMetadata)
617
+ .pipe(throwStatusErrors(), takeMessages());
618
+ }
619
+ /**
620
+ * Unary call @/ondewo.nlu.Agents/ListAllAgents
621
+ *
622
+ * @param requestMessage Request message
623
+ * @param requestMetadata Request metadata
624
+ * @returns Observable<thisProto.ListAgentsResponse>
625
+ */
626
+ listAllAgents(requestData, requestMetadata = new GrpcMetadata()) {
627
+ return this.$raw
628
+ .listAllAgents(requestData, requestMetadata)
629
+ .pipe(throwStatusErrors(), takeMessages());
630
+ }
631
+ /**
632
+ * Unary call @/ondewo.nlu.Agents/AddUserToProject
633
+ *
634
+ * @param requestMessage Request message
635
+ * @param requestMetadata Request metadata
636
+ * @returns Observable<googleProtobuf006.Empty>
637
+ */
638
+ addUserToProject(requestData, requestMetadata = new GrpcMetadata()) {
639
+ return this.$raw
640
+ .addUserToProject(requestData, requestMetadata)
641
+ .pipe(throwStatusErrors(), takeMessages());
642
+ }
643
+ /**
644
+ * Unary call @/ondewo.nlu.Agents/RemoveUserFromProject
645
+ *
646
+ * @param requestMessage Request message
647
+ * @param requestMetadata Request metadata
648
+ * @returns Observable<googleProtobuf006.Empty>
649
+ */
650
+ removeUserFromProject(requestData, requestMetadata = new GrpcMetadata()) {
651
+ return this.$raw
652
+ .removeUserFromProject(requestData, requestMetadata)
653
+ .pipe(throwStatusErrors(), takeMessages());
654
+ }
655
+ /**
656
+ * Unary call @/ondewo.nlu.Agents/ListUsersInProject
657
+ *
658
+ * @param requestMessage Request message
659
+ * @param requestMetadata Request metadata
660
+ * @returns Observable<thisProto.ListUsersInProjectResponse>
661
+ */
662
+ listUsersInProject(requestData, requestMetadata = new GrpcMetadata()) {
663
+ return this.$raw
664
+ .listUsersInProject(requestData, requestMetadata)
665
+ .pipe(throwStatusErrors(), takeMessages());
666
+ }
667
+ /**
668
+ * Unary call @/ondewo.nlu.Agents/GetPlatformInfo
669
+ *
670
+ * @param requestMessage Request message
671
+ * @param requestMetadata Request metadata
672
+ * @returns Observable<thisProto.GetPlatformInfoResponse>
673
+ */
674
+ getPlatformInfo(requestData, requestMetadata = new GrpcMetadata()) {
675
+ return this.$raw
676
+ .getPlatformInfo(requestData, requestMetadata)
677
+ .pipe(throwStatusErrors(), takeMessages());
678
+ }
679
+ /**
680
+ * Unary call @/ondewo.nlu.Agents/ListProjectPermissions
681
+ *
682
+ * @param requestMessage Request message
683
+ * @param requestMetadata Request metadata
684
+ * @returns Observable<thisProto.ListProjectPermissionsResponse>
685
+ */
686
+ listProjectPermissions(requestData, requestMetadata = new GrpcMetadata()) {
687
+ return this.$raw
688
+ .listProjectPermissions(requestData, requestMetadata)
689
+ .pipe(throwStatusErrors(), takeMessages());
690
+ }
691
+ /**
692
+ * Unary call @/ondewo.nlu.Agents/TrainAgent
693
+ *
694
+ * @param requestMessage Request message
695
+ * @param requestMetadata Request metadata
696
+ * @returns Observable<ondewoNlu005.Operation>
697
+ */
698
+ trainAgent(requestData, requestMetadata = new GrpcMetadata()) {
699
+ return this.$raw
700
+ .trainAgent(requestData, requestMetadata)
701
+ .pipe(throwStatusErrors(), takeMessages());
702
+ }
703
+ /**
704
+ * Unary call @/ondewo.nlu.Agents/BuildCache
705
+ *
706
+ * @param requestMessage Request message
707
+ * @param requestMetadata Request metadata
708
+ * @returns Observable<ondewoNlu005.Operation>
709
+ */
710
+ buildCache(requestData, requestMetadata = new GrpcMetadata()) {
711
+ return this.$raw
712
+ .buildCache(requestData, requestMetadata)
713
+ .pipe(throwStatusErrors(), takeMessages());
714
+ }
715
+ /**
716
+ * Unary call @/ondewo.nlu.Agents/ExportAgent
717
+ *
718
+ * @param requestMessage Request message
719
+ * @param requestMetadata Request metadata
720
+ * @returns Observable<ondewoNlu005.Operation>
721
+ */
722
+ exportAgent(requestData, requestMetadata = new GrpcMetadata()) {
723
+ return this.$raw
724
+ .exportAgent(requestData, requestMetadata)
725
+ .pipe(throwStatusErrors(), takeMessages());
726
+ }
727
+ /**
728
+ * Unary call @/ondewo.nlu.Agents/ExportBenchmarkAgent
729
+ *
730
+ * @param requestMessage Request message
731
+ * @param requestMetadata Request metadata
732
+ * @returns Observable<ondewoNlu005.Operation>
733
+ */
734
+ exportBenchmarkAgent(requestData, requestMetadata = new GrpcMetadata()) {
735
+ return this.$raw
736
+ .exportBenchmarkAgent(requestData, requestMetadata)
737
+ .pipe(throwStatusErrors(), takeMessages());
738
+ }
739
+ /**
740
+ * Unary call @/ondewo.nlu.Agents/ImportAgent
741
+ *
742
+ * @param requestMessage Request message
743
+ * @param requestMetadata Request metadata
744
+ * @returns Observable<ondewoNlu005.Operation>
745
+ */
746
+ importAgent(requestData, requestMetadata = new GrpcMetadata()) {
747
+ return this.$raw
748
+ .importAgent(requestData, requestMetadata)
749
+ .pipe(throwStatusErrors(), takeMessages());
750
+ }
751
+ /**
752
+ * Unary call @/ondewo.nlu.Agents/OptimizeRankingMatch
753
+ *
754
+ * @param requestMessage Request message
755
+ * @param requestMetadata Request metadata
756
+ * @returns Observable<ondewoNlu005.Operation>
757
+ */
758
+ optimizeRankingMatch(requestData, requestMetadata = new GrpcMetadata()) {
759
+ return this.$raw
760
+ .optimizeRankingMatch(requestData, requestMetadata)
761
+ .pipe(throwStatusErrors(), takeMessages());
762
+ }
763
+ /**
764
+ * Unary call @/ondewo.nlu.Agents/RestoreAgent
765
+ *
766
+ * @param requestMessage Request message
767
+ * @param requestMetadata Request metadata
768
+ * @returns Observable<ondewoNlu005.Operation>
769
+ */
770
+ restoreAgent(requestData, requestMetadata = new GrpcMetadata()) {
771
+ return this.$raw
772
+ .restoreAgent(requestData, requestMetadata)
773
+ .pipe(throwStatusErrors(), takeMessages());
774
+ }
775
+ /**
776
+ * Unary call @/ondewo.nlu.Agents/GetAgentStatistics
777
+ *
778
+ * @param requestMessage Request message
779
+ * @param requestMetadata Request metadata
780
+ * @returns Observable<thisProto.GetAgentStatisticsResponse>
781
+ */
782
+ getAgentStatistics(requestData, requestMetadata = new GrpcMetadata()) {
783
+ return this.$raw
784
+ .getAgentStatistics(requestData, requestMetadata)
785
+ .pipe(throwStatusErrors(), takeMessages());
786
+ }
787
+ /**
788
+ * Unary call @/ondewo.nlu.Agents/SetAgentStatus
789
+ *
790
+ * @param requestMessage Request message
791
+ * @param requestMetadata Request metadata
792
+ * @returns Observable<thisProto.Agent>
793
+ */
794
+ setAgentStatus(requestData, requestMetadata = new GrpcMetadata()) {
795
+ return this.$raw
796
+ .setAgentStatus(requestData, requestMetadata)
797
+ .pipe(throwStatusErrors(), takeMessages());
798
+ }
799
+ /**
800
+ * Unary call @/ondewo.nlu.Agents/SetResources
801
+ *
802
+ * @param requestMessage Request message
803
+ * @param requestMetadata Request metadata
804
+ * @returns Observable<googleProtobuf006.Empty>
805
+ */
806
+ setResources(requestData, requestMetadata = new GrpcMetadata()) {
807
+ return this.$raw
808
+ .setResources(requestData, requestMetadata)
809
+ .pipe(throwStatusErrors(), takeMessages());
810
+ }
811
+ /**
812
+ * Unary call @/ondewo.nlu.Agents/DeleteResources
813
+ *
814
+ * @param requestMessage Request message
815
+ * @param requestMetadata Request metadata
816
+ * @returns Observable<googleProtobuf006.Empty>
817
+ */
818
+ deleteResources(requestData, requestMetadata = new GrpcMetadata()) {
819
+ return this.$raw
820
+ .deleteResources(requestData, requestMetadata)
821
+ .pipe(throwStatusErrors(), takeMessages());
822
+ }
823
+ /**
824
+ * Unary call @/ondewo.nlu.Agents/ExportResources
825
+ *
826
+ * @param requestMessage Request message
827
+ * @param requestMetadata Request metadata
828
+ * @returns Observable<thisProto.ExportResourcesResponse>
829
+ */
830
+ exportResources(requestData, requestMetadata = new GrpcMetadata()) {
831
+ return this.$raw
832
+ .exportResources(requestData, requestMetadata)
833
+ .pipe(throwStatusErrors(), takeMessages());
834
+ }
835
+ /**
836
+ * Unary call @/ondewo.nlu.Agents/GetModelStatuses
837
+ *
838
+ * @param requestMessage Request message
839
+ * @param requestMetadata Request metadata
840
+ * @returns Observable<thisProto.GetModelStatusesResponse>
841
+ */
842
+ getModelStatuses(requestData, requestMetadata = new GrpcMetadata()) {
843
+ return this.$raw
844
+ .getModelStatuses(requestData, requestMetadata)
845
+ .pipe(throwStatusErrors(), takeMessages());
846
+ }
847
+ /**
848
+ * Unary call @/ondewo.nlu.Agents/GetPlatformMapping
849
+ *
850
+ * @param requestMessage Request message
851
+ * @param requestMetadata Request metadata
852
+ * @returns Observable<thisProto.PlatformMapping>
853
+ */
854
+ getPlatformMapping(requestData, requestMetadata = new GrpcMetadata()) {
855
+ return this.$raw
856
+ .getPlatformMapping(requestData, requestMetadata)
857
+ .pipe(throwStatusErrors(), takeMessages());
858
+ }
859
+ /**
860
+ * Unary call @/ondewo.nlu.Agents/SetPlatformMapping
861
+ *
862
+ * @param requestMessage Request message
863
+ * @param requestMetadata Request metadata
864
+ * @returns Observable<thisProto.PlatformMapping>
865
+ */
866
+ setPlatformMapping(requestData, requestMetadata = new GrpcMetadata()) {
867
+ return this.$raw
868
+ .setPlatformMapping(requestData, requestMetadata)
869
+ .pipe(throwStatusErrors(), takeMessages());
870
+ }
871
+ }
872
+ AgentsClient.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.3", ngImport: i0, type: AgentsClient, deps: [{ token: GRPC_AGENTS_CLIENT_SETTINGS, optional: true }, { token: GRPC_CLIENT_FACTORY }, { token: i1.GrpcHandler }], target: i0.ɵɵFactoryTarget.Injectable });
873
+ AgentsClient.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.1.3", ngImport: i0, type: AgentsClient, providedIn: 'any' });
874
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.3", ngImport: i0, type: AgentsClient, decorators: [{
875
+ type: Injectable,
876
+ args: [{ providedIn: 'any' }]
877
+ }], ctorParameters: function () { return [{ type: undefined, decorators: [{
878
+ type: Optional
879
+ }, {
880
+ type: Inject,
881
+ args: [GRPC_AGENTS_CLIENT_SETTINGS]
882
+ }] }, { type: undefined, decorators: [{
883
+ type: Inject,
884
+ args: [GRPC_CLIENT_FACTORY]
885
+ }] }, { type: i1.GrpcHandler }]; } });
886
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWdlbnQucGJzYy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2FwaS9vbmRld28vbmx1L2FnZW50LnBic2MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsb0JBQW9CO0FBQ3BCLG9CQUFvQjtBQUNwQixjQUFjO0FBQ2QsRUFBRTtBQUNGLDJCQUEyQjtBQUMzQiw4Q0FBOEM7QUFDOUMsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzdELE9BQU8sRUFDTCxZQUFZLEVBSVosWUFBWSxFQUNiLE1BQU0sa0JBQWtCLENBQUM7QUFDMUIsT0FBTyxFQUNMLG1CQUFtQixFQUVuQixZQUFZLEVBQ1osaUJBQWlCLEVBQ2xCLE1BQU0sZ0JBQWdCLENBQUM7QUFFeEIsT0FBTyxLQUFLLFNBQVMsTUFBTSxZQUFZLENBQUM7QUFNeEMsT0FBTyxLQUFLLFlBQVksTUFBTSxnQ0FBZ0MsQ0FBQztBQUMvRCxPQUFPLEtBQUssaUJBQWlCLE1BQU0sNEJBQTRCLENBQUM7QUFVaEUsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7OztBQUM3RDs7R0FFRztBQUVILE1BQU0sT0FBTyxZQUFZO0lBdWxCdkIsWUFDbUQsUUFBYSxFQUNqQyxhQUFxQyxFQUMxRCxPQUFvQjtRQUFwQixZQUFPLEdBQVAsT0FBTyxDQUFhO1FBdmxCOUI7Ozs7V0FJRztRQUNILFNBQUksR0FBRztZQUNMOzs7Ozs7ZUFNRztZQUNILFdBQVcsRUFBRSxDQUNYLFdBQXlDLEVBQ3pDLGVBQWUsR0FBRyxJQUFJLFlBQVksRUFBRSxFQUNJLEVBQUU7Z0JBQzFDLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUM7b0JBQ3pCLElBQUksRUFBRSxZQUFZLENBQUMsS0FBSztvQkFDeEIsTUFBTSxFQUFFLElBQUksQ0FBQyxNQUFNO29CQUNuQixJQUFJLEVBQUUsZ0NBQWdDO29CQUN0QyxX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RXBDLE9BQU8sSUFBSSxDQUFDLElBQUk7YUFDYixrQkFBa0IsQ0FBQyxXQUFXLEVBQUUsZUFBZSxDQUFDO2FBQ2hELElBQUksQ0FBQyxpQkFBaUIsRUFBRSxFQUFFLFlBQVksRUFBRSxDQUFDLENBQUM7SUFDL0MsQ0FBQzs7eUdBN2hDVSxZQUFZLGtCQXdsQkQsMkJBQTJCLDZCQUN2QyxtQkFBbUI7NkdBemxCbEIsWUFBWSxjQURDLEtBQUs7MkZBQ2xCLFlBQVk7a0JBRHhCLFVBQVU7bUJBQUMsRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFFOzswQkF5bEI1QixRQUFROzswQkFBSSxNQUFNOzJCQUFDLDJCQUEyQjs7MEJBQzlDLE1BQU07MkJBQUMsbUJBQW1CIiwic291cmNlc0NvbnRlbnQiOlsiLyogdHNsaW50OmRpc2FibGUgKi9cbi8qIGVzbGludC1kaXNhYmxlICovXG4vLyBAdHMtbm9jaGVja1xuLy9cbi8vIFRISVMgSVMgQSBHRU5FUkFURUQgRklMRVxuLy8gRE8gTk9UIE1PRElGWSBJVCEgWU9VUiBDSEFOR0VTIFdJTEwgQkUgTE9TVFxuaW1wb3J0IHsgSW5qZWN0LCBJbmplY3RhYmxlLCBPcHRpb25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgR3JwY0NhbGxUeXBlLFxuICBHcnBjQ2xpZW50LFxuICBHcnBjQ2xpZW50RmFjdG9yeSxcbiAgR3JwY0V2ZW50LFxuICBHcnBjTWV0YWRhdGFcbn0gZnJvbSAnQG5neC1ncnBjL2NvbW1vbic7XG5pbXBvcnQge1xuICBHUlBDX0NMSUVOVF9GQUNUT1JZLFxuICBHcnBjSGFuZGxlcixcbiAgdGFrZU1lc3NhZ2VzLFxuICB0aHJvd1N0YXR1c0Vycm9yc1xufSBmcm9tICdAbmd4LWdycGMvY29yZSc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgKiBhcyB0aGlzUHJvdG8gZnJvbSAnLi9hZ2VudC5wYic7XG5pbXBvcnQgKiBhcyBnb29nbGVBcGkwMDAgZnJvbSAnLi4vLi4vZ29vZ2xlL2FwaS9odHRwLnBiJztcbmltcG9ydCAqIGFzIGdvb2dsZVByb3RvYnVmMDAxIGZyb20gJ0BuZ3gtZ3JwYy93ZWxsLWtub3duLXR5cGVzJztcbmltcG9ydCAqIGFzIGdvb2dsZUFwaTAwMiBmcm9tICcuLi8uLi9nb29nbGUvYXBpL2Fubm90YXRpb25zLnBiJztcbmltcG9ydCAqIGFzIG9uZGV3b05sdTAwMyBmcm9tICcuLi8uLi9vbmRld28vbmx1L2NvbnRleHQucGInO1xuaW1wb3J0ICogYXMgb25kZXdvTmx1MDA0IGZyb20gJy4uLy4uL29uZGV3by9ubHUvY29tbW9uLnBiJztcbmltcG9ydCAqIGFzIG9uZGV3b05sdTAwNSBmcm9tICcuLi8uLi9vbmRld28vbmx1L29wZXJhdGlvbnMucGInO1xuaW1wb3J0ICogYXMgZ29vZ2xlUHJvdG9idWYwMDYgZnJvbSAnQG5neC1ncnBjL3dlbGwta25vd24tdHlwZXMnO1xuaW1wb3J0ICogYXMgZ29vZ2xlUHJvdG9idWYwMDcgZnJvbSAnQG5neC1ncnBjL3dlbGwta25vd24tdHlwZXMnO1xuaW1wb3J0ICogYXMgZ29vZ2xlUHJvdG9idWYwMDggZnJvbSAnQG5neC1ncnBjL3dlbGwta25vd24tdHlwZXMnO1xuaW1wb3J0ICogYXMgZ29vZ2xlUHJvdG9idWYwMDkgZnJvbSAnQG5neC1ncnBjL3dlbGwta25vd24tdHlwZXMnO1xuaW1wb3J0ICogYXMgb25kZXdvTmx1MDEwIGZyb20gJy4uLy4uL29uZGV3by9ubHUvcHJvamVjdC1yb2xlLnBiJztcbmltcG9ydCAqIGFzIGdvb2dsZVByb3RvYnVmMDExIGZyb20gJ0BuZ3gtZ3JwYy93ZWxsLWtub3duLXR5cGVzJztcbmltcG9ydCAqIGFzIGdvb2dsZVJwYzAxMiBmcm9tICcuLi8uLi9nb29nbGUvcnBjL3N0YXR1cy5wYic7XG5pbXBvcnQgKiBhcyBvbmRld29ObHUwMTMgZnJvbSAnLi4vLi4vb25kZXdvL25sdS9vcGVyYXRpb24tbWV0YWRhdGEucGInO1xuaW1wb3J0ICogYXMgb25kZXdvTmx1MDE0IGZyb20gJy4uLy4uL29uZGV3by9ubHUvaW50ZW50LnBiJztcbmltcG9ydCAqIGFzIG9uZGV3b05sdTAxNSBmcm9tICcuLi8uLi9vbmRld28vbmx1L3VzZXIucGInO1xuaW1wb3J0IHsgR1JQQ19BR0VOVFNfQ0xJRU5UX1NFVFRJTkdTIH0gZnJvbSAnLi9hZ2VudC5wYmNvbmYnO1xuLyoqXG4gKiBTZXJ2aWNlIGNsaWVudCBpbXBsZW1lbnRhdGlvbiBmb3Igb25kZXdvLm5sdS5BZ2VudHNcbiAqL1xuQEluamVjdGFibGUoeyBwcm92aWRlZEluOiAnYW55JyB9KVxuZXhwb3J0IGNsYXNzIEFnZW50c0NsaWVudCB7XG4gIHByaXZhdGUgY2xpZW50OiBHcnBjQ2xpZW50PGFueT47XG5cbiAgLyoqXG4gICAqIFJhdyBSUEMgaW1wbGVtZW50YXRpb24gZm9yIGVhY2ggc2VydmljZSBjbGllbnQgbWV0aG9kLlxuICAgKiBUaGUgcmF3IG1ldGhvZHMgcHJvdmlkZSBtb3JlIGNvbnRyb2wgb24gdGhlIGluY29taW5nIGRhdGEgYW5kIGV2ZW50cy4gRS5nLiB0aGV5IGNhbiBiZSB1c2VmdWwgdG8gcmVhZCBzdGF0dXMgYE9LYCBtZXRhZGF0YS5cbiAgICogQXR0ZW50aW9uOiB0aGVzZSBtZXRob2RzIGRvIG5vdCB0aHJvdyBlcnJvcnMgd2hlbiBub24temVybyBzdGF0dXMgY29kZXMgYXJlIHJlY2VpdmVkLlxuICAgKi9cbiAgJHJhdyA9IHtcbiAgICAvKipcbiAgICAgKiBVbmFyeSBjYWxsOiAvb25kZXdvLm5sdS5BZ2VudHMvQ3JlYXRlQWdlbnRcbiAgICAgKlxuICAgICAqIEBwYXJhbSByZXF1ZXN0TWVzc2FnZSBSZXF1ZXN0IG1lc3NhZ2VcbiAgICAgKiBAcGFyYW0gcmVxdWVzdE1ldGFkYXRhIFJlcXVlc3QgbWV0YWRhdGFcbiAgICAgKiBAcmV0dXJucyBPYnNlcnZhYmxlPEdycGNFdmVudDx0aGlzUHJvdG8uQWdlbnQ+PlxuICAgICAqL1xuICAgIGNyZWF0ZUFnZW50OiAoXG4gICAgICByZXF1ZXN0RGF0YTogdGhpc1Byb3RvLkNyZWF0ZUFnZW50UmVxdWVzdCxcbiAgICAgIHJlcXVlc3RNZXRhZGF0YSA9IG5ldyBHcnBjTWV0YWRhdGEoKVxuICAgICk6IE9ic2VydmFibGU8R3JwY0V2ZW50PHRoaXNQcm90by5BZ2VudD4+ID0+IHtcbiAgICAgIHJldHVybiB0aGlzLmhhbmRsZXIuaGFuZGxlKHtcbiAgICAgICAgdHlwZTogR3JwY0NhbGxUeXBlLnVuYXJ5LFxuICAgICAgICBjbGllbnQ6IHRoaXMuY2xpZW50LFxuICAgICAgICBwYXRoOiAnL29uZGV3by5ubHUuQWdlbnRzL0NyZWF0ZUFnZW50JyxcbiAgICAgICAgcmVxdWVzdERhdGEsXG4gICAgICAgIHJlcXVlc3RNZXRhZGF0YSxcbiAgICAgICAgcmVxdWVzdENsYXNzOiB0aGlzUHJvdG8uQ3JlYXRlQWdlbnRSZXF1ZXN0LFxuICAgICAgICByZXNwb25zZUNsYXNzOiB0aGlzUHJvdG8uQWdlbnRcbiAgICAgIH0pO1xuICAgIH0sXG4gICAgLyoqXG4gICAgICogVW5hcnkgY2FsbDogL29uZGV3by5ubHUuQWdlbnRzL1VwZGF0ZUFnZW50XG4gICAgICpcbiAgICAgKiBAcGFyYW0gcmVxdWVzdE1lc3NhZ2UgUmVxdWVzdCBtZXNzYWdlXG4gICAgICogQHBhcmFtIHJlcXVlc3RNZXRhZGF0YSBSZXF1ZXN0IG1ldGFkYXRhXG4gICAgICogQHJldHVybnMgT2JzZXJ2YWJsZTxHcnBjRXZlbnQ8dGhpc1Byb3RvLkFnZW50Pj5cbiAgICAgKi9cbiAgICB1cGRhdGVBZ2VudDogKFxuICAgICAgcmVxdWVzdERhdGE6IHRoaXNQcm90by5VcGRhdGVBZ2VudFJlcXVlc3QsXG4gICAgICByZXF1ZXN0TWV0YWRhdGEgPSBuZXcgR3JwY01ldGFkYXRhKClcbiAgICApOiBPYnNlcnZhYmxlPEdycGNFdmVudDx0aGlzUHJvdG8uQWdlbnQ+PiA9PiB7XG4gICAgICByZXR1cm4gdGhpcy5oYW5kbGVyLmhhbmRsZSh7XG4gICAgICAgIHR5cGU6IEdycGNDYWxsVHlwZS51bmFyeSxcbiAgICAgICAgY2xpZW50OiB0aGlzLmNsaWVudCxcbiAgICAgICAgcGF0aDogJy9vbmRld28ubmx1LkFnZW50cy9VcGRhdGVBZ2VudCcsXG4gICAgICAgIHJlcXVlc3REYXRhLFxuICAgICAgICByZXF1ZXN0TWV0YWRhdGEsXG4gICAgICAgIHJlcXVlc3RDbGFzczogdGhpc1Byb3RvLlVwZGF0ZUFnZW50UmVxdWVzdCxcbiAgICAgICAgcmVzcG9uc2VDbGFzczogdGhpc1Byb3RvLkFnZW50XG4gICAgICB9KTtcbiAgICB9LFxuICAgIC8qKlxuICAgICAqIFVuYXJ5IGNhbGw6IC9vbmRld28ubmx1LkFnZW50cy9HZXRBZ2VudFxuICAgICAqXG4gICAgICogQHBhcmFtIHJlcXVlc3RNZXNzYWdlIFJlcXVlc3QgbWVzc2FnZVxuICAgICAqIEBwYXJhbSByZXF1ZXN0TWV0YWRhdGEgUmVxdWVzdCBtZXRhZGF0YVxuICAgICAqIEByZXR1cm5zIE9ic2VydmFibGU8R3JwY0V2ZW50PHRoaXNQcm90by5BZ2VudD4+XG4gICAgICovXG4gICAgZ2V0QWdlbnQ6IChcbiAgICAgIHJlcXVlc3REYXRhOiB0aGlzUHJvdG8uR2V0QWdlbnRSZXF1ZXN0LFxuICAgICAgcmVxdWVzdE1ldGFkYXRhID0gbmV3IEdycGNNZXRhZGF0YSgpXG4gICAgKTogT2JzZXJ2YWJsZTxHcnBjRXZlbnQ8dGhpc1Byb3RvLkFnZW50Pj4gPT4ge1xuICAgICAgcmV0dXJuIHRoaXMuaGFuZGxlci5oYW5kbGUoe1xuICAgICAgICB0eXBlOiBHcnBjQ2FsbFR5cGUudW5hcnksXG4gICAgICAgIGNsaWVudDogdGhpcy5jbGllbnQsXG4gICAgICAgIHBhdGg6ICcvb25kZXdvLm5sdS5BZ2VudHMvR2V0QWdlbnQnLFxuICAgICAgICByZXF1ZXN0RGF0YSxcbiAgICAgICAgcmVxdWVzdE1ldGFkYXRhLFxuICAgICAgICByZXF1ZXN0Q2xhc3M6IHRoaXNQcm90by5HZXRBZ2VudFJlcXVlc3QsXG4gICAgICAgIHJlc3BvbnNlQ2xhc3M6IHRoaXNQcm90by5BZ2VudFxuICAgICAgfSk7XG4gICAgfSxcbiAgICAvKipcbiAgICAgKiBVbmFyeSBjYWxsOiAvb25kZXdvLm5sdS5BZ2VudHMvRGVsZXRlQWdlbnRcbiAgICAgKlxuICAgICAqIEBwYXJhbSByZXF1ZXN0TWVzc2FnZSBSZXF1ZXN0IG1lc3NhZ2VcbiAgICAgKiBAcGFyYW0gcmVxdWVzdE1ldGFkYXRhIFJlcXVlc3QgbWV0YWRhdGFcbiAgICAgKiBAcmV0dXJucyBPYnNlcnZhYmxlPEdycGNFdmVudDxnb29nbGVQcm90b2J1ZjAwNi5FbXB0eT4+XG4gICAgICovXG4gICAgZGVsZXRlQWdlbnQ6IChcbiAgICAgIHJlcXVlc3REYXRhOiB0aGlzUHJvdG8uRGVsZXRlQWdlbnRSZXF1ZXN0LFxuICAgICAgcmVxdWVzdE1ldGFkYXRhID0gbmV3IEdycGNNZXRhZGF0YSgpXG4gICAgKTogT2JzZXJ2YWJsZTxHcnBjRXZlbnQ8Z29vZ2xlUHJvdG9idWYwMDYuRW1wdHk+PiA9PiB7XG4gICAgICByZXR1cm4gdGhpcy5oYW5kbGVyLmhhbmRsZSh7XG4gICAgICAgIHR5cGU6IEdycGNDYWxsVHlwZS51bmFyeSxcbiAgICAgICAgY2xpZW50OiB0aGlzLmNsaWVudCxcbiAgICAgICAgcGF0aDogJy9vbmRld28ubmx1LkFnZW50cy9EZWxldGVBZ2VudCcsXG4gICAgICAgIHJlcXVlc3REYXRhLFxuICAgICAgICByZXF1ZXN0TWV0YWRhdGEsXG4gICAgICAgIHJlcXVlc3RDbGFzczogdGhpc1Byb3RvLkRlbGV0ZUFnZW50UmVxdWVzdCxcbiAgICAgICAgcmVzcG9uc2VDbGFzczogZ29vZ2xlUHJvdG9idWYwMDYuRW1wdHlcbiAgICAgIH0pO1xuICAgIH0sXG4gICAgLyoqXG4gICAgICogVW5hcnkgY2FsbDogL29uZGV3by5ubHUuQWdlbnRzL0RlbGV0ZUFsbEFnZW50c1xuICAgICAqXG4gICAgICogQHBhcmFtIHJlcXVlc3RNZXNzYWdlIFJlcXVlc3QgbWVzc2FnZVxuICAgICAqIEBwYXJhbSByZXF1ZXN0TWV0YWRhdGEgUmVxdWVzdCBtZXRhZGF0YVxuICAgICAqIEByZXR1cm5zIE9ic2VydmFibGU8R3JwY0V2ZW50PGdvb2dsZVByb3RvYnVmMDA2LkVtcHR5Pj5cbiAgICAgKi9cbiAgICBkZWxldGVBbGxBZ2VudHM6IChcbiAgICAgIHJlcXVlc3REYXRhOiBnb29nbGVQcm90b2J1ZjAwNi5FbXB0eSxcbiAgICAgIHJlcXVlc3RNZXRhZGF0YSA9IG5ldyBHcnBjTWV0YWRhdGEoKVxuICAgICk6IE9ic2VydmFibGU8R3JwY0V2ZW50PGdvb2dsZVByb3RvYnVmMDA2LkVtcHR5Pj4gPT4ge1xuICAgICAgcmV0dXJuIHRoaXMuaGFuZGxlci5oYW5kbGUoe1xuICAgICAgICB0eXBlOiBHcnBjQ2FsbFR5cGUudW5hcnksXG4gICAgICAgIGNsaWVudDogdGhpcy5jbGllbnQsXG4gICAgICAgIHBhdGg6ICcvb25kZXdvLm5sdS5BZ2VudHMvRGVsZXRlQWxsQWdlbnRzJyxcbiAgICAgICAgcmVxdWVzdERhdGEsXG4gICAgICAgIHJlcXVlc3RNZXRhZGF0YSxcbiAgICAgICAgcmVxdWVzdENsYXNzOiBnb29nbGVQcm90b2J1ZjAwNi5FbXB0eSxcbiAgICAgICAgcmVzcG9uc2VDbGFzczogZ29vZ2xlUHJvdG9idWYwMDYuRW1wdHlcbiAgICAgIH0pO1xuICAgIH0sXG4gICAgLyoqXG4gICAgICogVW5hcnkgY2FsbDogL29uZGV3by5ubHUuQWdlbnRzL0xpc3RBZ2VudHNcbiAgICAgKlxuICAgICAqIEBwYXJhbSByZXF1ZXN0TWVzc2FnZSBSZXF1ZXN0IG1lc3NhZ2VcbiAgICAgKiBAcGFyYW0gcmVxdWVzdE1ldGFkYXRhIFJlcXVlc3QgbWV0YWRhdGFcbiAgICAgKiBAcmV0dXJucyBPYnNlcnZhYmxlPEdycGNFdmVudDx0aGlzUHJvdG8uTGlzdEFnZW50c1Jlc3BvbnNlPj5cbiAgICAgKi9cbiAgICBsaXN0QWdlbnRzOiAoXG4gICAgICByZXF1ZXN0RGF0YTogdGhpc1Byb3RvLkxpc3RBZ2VudHNSZXF1ZXN0LFxuICAgICAgcmVxdWVzdE1ldGFkYXRhID0gbmV3IEdycGNNZXRhZGF0YSgpXG4gICAgKTogT2JzZXJ2YWJsZTxHcnBjRXZlbnQ8dGhpc1Byb3RvLkxpc3RBZ2VudHNSZXNwb25zZT4+ID0+IHtcbiAgICAgIHJldHVybiB0aGlzLmhhbmRsZXIuaGFuZGxlKHtcbiAgICAgICAgdHlwZTogR3JwY0NhbGxUeXBlLnVuYXJ5LFxuICAgICAgICBjbGllbnQ6IHRoaXMuY2xpZW50LFxuICAgICAgICBwYXRoOiAnL29uZGV3by5ubHUuQWdlbnRzL0xpc3RBZ2VudHMnLFxuICAgICAgICByZXF1ZXN0RGF0YSxcbiAgICAgICAgcmVxdWVzdE1ldGFkYXRhLFxuICAgICAgICByZXF1ZXN0Q2xhc3M6IHRoaXNQcm90by5MaXN0QWdlbnRzUmVxdWVzdCxcbiAgICAgICAgcmVzcG9uc2VDbGFzczogdGhpc1Byb3RvLkxpc3RBZ2VudHNSZXNwb25zZVxuICAgICAgfSk7XG4gICAgfSxcbiAgICAvKipcbiAgICAgKiBVbmFyeSBjYWxsOiAvb25kZXdvLm5sdS5BZ2VudHMvTGlzdEFnZW50c09mVXNlclxuICAgICAqXG4gICAgICogQHBhcmFtIHJlcXVlc3RNZXNzYWdlIFJlcXVlc3QgbWVzc2FnZVxuICAgICAqIEBwYXJhbSByZXF1ZXN0TWV0YWRhdGEgUmVxdWVzdCBtZXRhZGF0YVxuICAgICAqIEByZXR1cm5zIE9ic2VydmFibGU8R3JwY0V2ZW50PHRoaXNQcm90by5MaXN0QWdlbnRzT2ZVc2VyUmVzcG9uc2U+PlxuICAgICAqL1xuICAgIGxpc3RBZ2VudHNPZlVzZXI6IChcbiAgICAgIHJlcXVlc3REYXRhOiB0aGlzUHJvdG8uTGlzdEFnZW50c1JlcXVlc3QsXG4gICAgICByZXF1ZXN0TWV0YWRhdGEgPSBuZXcgR3JwY01ldGFkYXRhKClcbiAgICApOiBPYnNlcnZhYmxlPEdycGNFdmVudDx0aGlzUHJvdG8uTGlzdEFnZW50c09mVXNlclJlc3BvbnNlPj4gPT4ge1xuICAgICAgcmV0dXJuIHRoaXMuaGFuZGxlci5oYW5kbGUoe1xuICAgICAgICB0eXBlOiBHcnBjQ2FsbFR5cGUudW5hcnksXG4gICAgICAgIGNsaWVudDogdGhpcy5jbGllbnQsXG4gICAgICAgIHBhdGg6ICcvb25kZXdvLm5sdS5BZ2VudHMvTGlzdEFnZW50c09mVXNlcicsXG4gICAgICAgIHJlcXVlc3REYXRhLFxuICAgICAgICByZXF1ZXN0TWV0YWRhdGEsXG4gICAgICAgIHJlcXVlc3RDbGFzczogdGhpc1Byb3RvLkxpc3RBZ2VudHNSZXF1ZXN0LFxuICAgICAgICByZXNwb25zZUNsYXNzOiB0aGlzUHJvdG8uTGlzdEFnZW50c09mVXNlclJlc3BvbnNlXG4gICAgICB9KTtcbiAgICB9LFxuICAgIC8qKlxuICAgICAqIFVuYXJ5IGNhbGw6IC9vbmRld28ubmx1LkFnZW50cy9MaXN0QWxsQWdlbnRzXG4gICAgICpcbiAgICAgKiBAcGFyYW0gcmVxdWVzdE1lc3NhZ2UgUmVxdWVzdCBtZXNzYWdlXG4gICAgICogQHBhcmFtIHJlcXVlc3RNZXRhZGF0YSBSZXF1ZXN0IG1ldGFkYXRhXG4gICAgICogQHJldHVybnMgT2JzZXJ2YWJsZTxHcnBjRXZlbnQ8dGhpc1Byb3RvLkxpc3RBZ2VudHNSZXNwb25zZT4+XG4gICAgICovXG4gICAgbGlzdEFsbEFnZW50czogKFxuICAgICAgcmVxdWVzdERhdGE6IHRoaXNQcm90by5MaXN0QWdlbnRzUmVxdWVzdCxcbiAgICAgIHJlcXVlc3RNZXRhZGF0YSA9IG5ldyBHcnBjTWV0YWRhdGEoKVxuICAgICk6IE9ic2VydmFibGU8R3JwY0V2ZW50PHRoaXNQcm90by5MaXN0QWdlbnRzUmVzcG9uc2U+PiA9PiB7XG4gICAgICByZXR1cm4gdGhpcy5oYW5kbGVyLmhhbmRsZSh7XG4gICAgICAgIHR5cGU6IEdycGNDYWxsVHlwZS51bmFyeSxcbiAgICAgICAgY2xpZW50OiB0aGlzLmNsaWVudCxcbiAgICAgICAgcGF0aDogJy9vbmRld28ubmx1LkFnZW50cy9MaXN0QWxsQWdlbnRzJyxcbiAgICAgICAgcmVxdWVzdERhdGEsXG4gICAgICAgIHJlcXVlc3RNZXRhZGF0YSxcbiAgICAgICAgcmVxdWVzdENsYXNzOiB0aGlzUHJvdG8uTGlzdEFnZW50c1JlcXVlc3QsXG4gICAgICAgIHJlc3BvbnNlQ2xhc3M6IHRoaXNQcm90by5MaXN0QWdlbnRzUmVzcG9uc2VcbiAgICAgIH0pO1xuICAgIH0sXG4gICAgLyoqXG4gICAgICogVW5hcnkgY2FsbDogL29uZGV3by5ubHUuQWdlbnRzL0FkZFVzZXJUb1Byb2plY3RcbiAgICAgKlxuICAgICAqIEBwYXJhbSByZXF1ZXN0TWVzc2FnZSBSZXF1ZXN0IG1lc3NhZ2VcbiAgICAgKiBAcGFyYW0gcmVxdWVzdE1ldGFkYXRhIFJlcXVlc3QgbWV0YWRhdGFcbiAgICAgKiBAcmV0dXJucyBPYnNlcnZhYmxlPEdycGNFdmVudDxnb29nbGVQcm90b2J1ZjAwNi5FbXB0eT4+XG4gICAgICovXG4gICAgYWRkVXNlclRvUHJvamVjdDogKFxuICAgICAgcmVxdWVzdERhdGE6IHRoaXNQcm90by5BZGRVc2VyVG9Qcm9qZWN0UmVxdWVzdCxcbiAgICAgIHJlcXVlc3RNZXRhZGF0YSA9IG5ldyBHcnBjTWV0YWRhdGEoKVxuICAgICk6IE9ic2VydmFibGU8R3JwY0V2ZW50PGdvb2dsZVByb3RvYnVmMDA2LkVtcHR5Pj4gPT4ge1xuICAgICAgcmV0dXJuIHRoaXMuaGFuZGxlci5oYW5kbGUoe1xuICAgICAgICB0eXBlOiBHcnBjQ2FsbFR5cGUudW5hcnksXG4gICAgICAgIGNsaWVudDogdGhpcy5jbGllbnQsXG4gICAgICAgIHBhdGg6ICcvb25kZXdvLm5sdS5BZ2VudHMvQWRkVXNlclRvUHJvamVjdCcsXG4gICAgICAgIHJlcXVlc3REYXRhLFxuICAgICAgICByZXF1ZXN0TWV0YWRhdGEsXG4gICAgICAgIHJlcXVlc3RDbGFzczogdGhpc1Byb3RvLkFkZFVzZXJUb1Byb2plY3RSZXF1ZXN0LFxuICAgICAgICByZXNwb25zZUNsYXNzOiBnb29nbGVQcm90b2J1ZjAwNi5FbXB0eVxuICAgICAgfSk7XG4gICAgfSxcbiAgICAvKipcbiAgICAgKiBVbmFyeSBjYWxsOiAvb25kZXdvLm5sdS5BZ2VudHMvUmVtb3ZlVXNlckZyb21Qcm9qZWN0XG4gICAgICpcbiAgICAgKiBAcGFyYW0gcmVxdWVzdE1lc3NhZ2UgUmVxdWVzdCBtZXNzYWdlXG4gICAgICogQHBhcmFtIHJlcXVlc3RNZXRhZGF0YSBSZXF1ZXN0IG1ldGFkYXRhXG4gICAgICogQHJldHVybnMgT2JzZXJ2YWJsZTxHcnBjRXZlbnQ8Z29vZ2xlUHJvdG9idWYwMDYuRW1wdHk+PlxuICAgICAqL1xuICAgIHJlbW92ZVVzZXJGcm9tUHJvamVjdDogKFxuICAgICAgcmVxdWVzdERhdGE6IHRoaXNQcm90by5SZW1vdmVVc2VyRnJvbVByb2plY3RSZXF1ZXN0LFxuICAgICAgcmVxdWVzdE1ldGFkYXRhID0gbmV3IEdycGNNZXRhZGF0YSgpXG4gICAgKTogT2JzZXJ2YWJsZTxHcnBjRXZlbnQ8Z29vZ2xlUHJvdG9idWYwMDYuRW1wdHk+PiA9PiB7XG4gICAgICByZXR1cm4gdGhpcy5oYW5kbGVyLmhhbmRsZSh7XG4gICAgICAgIHR5cGU6IEdycGNDYWxsVHlwZS51bmFyeSxcbiAgICAgICAgY2xpZW50OiB0aGlzLmNsaWVudCxcbiAgICAgICAgcGF0aDogJy9vbmRld28ubmx1LkFnZW50cy9SZW1vdmVVc2VyRnJvbVByb2plY3QnLFxuICAgICAgICByZXF1ZXN0RGF0YSxcbiAgICAgICAgcmVxdWVzdE1ldGFkYXRhLFxuICAgICAgICByZXF1ZXN0Q2xhc3M6IHRoaXNQcm90by5SZW1vdmVVc2VyRnJvbVByb2plY3RSZXF1ZXN0LFxuICAgICAgICByZXNwb25zZUNsYXNzOiBnb29nbGVQcm90b2J1ZjAwNi5FbXB0eVxuICAgICAgfSk7XG4gICAgfSxcbiAgICAvKipcbiAgICAgKiBVbmFyeSBjYWxsOiAvb25kZXdvLm5sdS5BZ2VudHMvTGlzdFVzZXJzSW5Qcm9qZWN0XG4gICAgICpcbiAgICAgKiBAcGFyYW0gcmVxdWVzdE1lc3NhZ2UgUmVxdWVzdCBtZXNzYWdlXG4gICAgICogQHBhcmFtIHJlcXVlc3RNZXRhZGF0YSBSZXF1ZXN0IG1ldGFkYXRhXG4gICAgICogQHJldHVybnMgT2JzZXJ2YWJsZTxHcnBjRXZlbnQ8dGhpc1Byb3RvLkxpc3RVc2Vyc0luUHJvamVjdFJlc3BvbnNlPj5cbiAgICAgKi9cbiAgICBsaXN0VXNlcnNJblByb2plY3Q6IChcbiAgICAgIHJlcXVlc3REYXRhOiB0aGlzUHJvdG8uTGlzdFVzZXJzSW5Qcm9qZWN0UmVxdWVzdCxcbiAgICAgIHJlcXVlc3RNZXRhZGF0YSA9IG5ldyBHcnBjTWV0YWRhdGEoKVxuICAgICk6IE9ic2VydmFibGU8R3JwY0V2ZW50PHRoaXNQcm90by5MaXN0VXNlcnNJblByb2plY3RSZXNwb25zZT4+ID0+IHtcbiAgICAgIHJldHVybiB0aGlzLmhhbmRsZXIuaGFuZGxlKHtcbiAgICAgICAgdHlwZTogR3JwY0NhbGxUeXBlLnVuYXJ5LFxuICAgICAgICBjbGllbnQ6IHRoaXMuY2xpZW50LFxuICAgICAgICBwYXRoOiAnL29uZGV3by5ubHUuQWdlbnRzL0xpc3RVc2Vyc0luUHJvamVjdCcsXG4gICAgICAgIHJlcXVlc3REYXRhLFxuICAgICAgICByZXF1ZXN0TWV0YWRhdGEsXG4gICAgICAgIHJlcXVlc3RDbGFzczogdGhpc1Byb3RvLkxpc3RVc2Vyc0luUHJvamVjdFJlcXVlc3QsXG4gICAgICAgIHJlc3BvbnNlQ2xhc3M6IHRoaXNQcm90by5MaXN0VXNlcnNJblByb2plY3RSZXNwb25zZVxuICAgICAgfSk7XG4gICAgfSxcbiAgICAvKipcbiAgICAgKiBVbmFyeSBjYWxsOiAvb25kZXdvLm5sdS5BZ2VudHMvR2V0UGxhdGZvcm1JbmZvXG4gICAgICpcbiAgICAgKiBAcGFyYW0gcmVxdWVzdE1lc3NhZ2UgUmVxdWVzdCBtZXNzYWdlXG4gICAgICogQHBhcmFtIHJlcXVlc3RNZXRhZGF0YSBSZXF1ZXN0IG1ldGFkYXRhXG4gICAgICogQHJldHVybnMgT2JzZXJ2YWJsZTxHcnBjRXZlbnQ8dGhpc1Byb3RvLkdldFBsYXRmb3JtSW5mb1Jlc3BvbnNlPj5cbiAgICAgKi9cbiAgICBnZXRQbGF0Zm9ybUluZm86IChcbiAgICAgIHJlcXVlc3REYXRhOiBnb29nbGVQcm90b2J1ZjAwNi5FbXB0eSxcbiAgICAgIHJlcXVlc3RNZXRhZGF0YSA9IG5ldyBHcnBjTWV0YWRhdGEoKVxuICAgICk6IE9ic2VydmFibGU8R3JwY0V2ZW50PHRoaXNQcm90by5HZXRQbGF0Zm9ybUluZm9SZXNwb25zZT4+ID0+IHtcbiAgICAgIHJldHVybiB0aGlzLmhhbmRsZXIuaGFuZGxlKHtcbiAgICAgICAgdHlwZTogR3JwY0NhbGxUeXBlLnVuYXJ5LFxuICAgICAgICBjbGllbnQ6IHRoaXMuY2xpZW50LFxuICAgICAgICBwYXRoOiAnL29uZGV3by5ubHUuQWdlbnRzL0dldFBsYXRmb3JtSW5mbycsXG4gICAgICAgIHJlcXVlc3REYXRhLFxuICAgICAgICByZXF1ZXN0TWV0YWRhdGEsXG4gICAgICAgIHJlcXVlc3RDbGFzczogZ29vZ2xlUHJvdG9idWYwMDYuRW1wdHksXG4gICAgICAgIHJlc3BvbnNlQ2xhc3M6IHRoaXNQcm90by5HZXRQbGF0Zm9ybUluZm9SZXNwb25zZVxuICAgICAgfSk7XG4gICAgfSxcbiAgICAvKipcbiAgICAgKiBVbmFyeSBjYWxsOiAvb25kZXdvLm5sdS5BZ2VudHMvTGlzdFByb2plY3RQZXJtaXNzaW9uc1xuICAgICAqXG4gICAgICogQHBhcmFtIHJlcXVlc3RNZXNzYWdlIFJlcXVlc3QgbWVzc2FnZVxuICAgICAqIEBwYXJhbSByZXF1ZXN0TWV0YWRhdGEgUmVxdWVzdCBtZXRhZGF0YVxuICAgICAqIEByZXR1cm5zIE9ic2VydmFibGU8R3JwY0V2ZW50PHRoaXNQcm90by5MaXN0UHJvamVjdFBlcm1pc3Npb25zUmVzcG9uc2U+PlxuICAgICAqL1xuICAgIGxpc3RQcm9qZWN0UGVybWlzc2lvbnM6IChcbiAgICAgIHJlcXVlc3REYXRhOiB0aGlzUHJvdG8uTGlzdFByb2plY3RQZXJtaXNzaW9uc1JlcXVlc3QsXG4gICAgICByZXF1ZXN0TWV0YWRhdGEgPSBuZXcgR3JwY01ldGFkYXRhKClcbiAgICApOiBPYnNlcnZhYmxlPEdycGNFdmVudDx0aGlzUHJvdG8uTGlzdFByb2plY3RQZXJtaXNzaW9uc1Jlc3BvbnNlPj4gPT4ge1xuICAgICAgcmV0dXJuIHRoaXMuaGFuZGxlci5oYW5kbGUoe1xuICAgICAgICB0eXBlOiBHcnBjQ2FsbFR5cGUudW5hcnksXG4gICAgICAgIGNsaWVudDogdGhpcy5jbGllbnQsXG4gICAgICAgIHBhdGg6ICcvb25kZXdvLm5sdS5BZ2VudHMvTGlzdFByb2plY3RQZXJtaXNzaW9ucycsXG4gICAgICAgIHJlcXVlc3REYXRhLFxuICAgICAgICByZXF1ZXN0TWV0YWRhdGEsXG4gICAgICAgIHJlcXVlc3RDbGFzczogdGhpc1Byb3RvLkxpc3RQcm9qZWN0UGVybWlzc2lvbnNSZXF1ZXN0LFxuICAgICAgICByZXNwb25zZUNsYXNzOiB0aGlzUHJvdG8uTGlzdFByb2plY3RQZXJtaXNzaW9uc1Jlc3BvbnNlXG4gICAgICB9KTtcbiAgICB9LFxuICAgIC8qKlxuICAgICAqIFVuYXJ5IGNhbGw6IC9vbmRld28ubmx1LkFnZW50cy9UcmFpbkFnZW50XG4gICAgICpcbiAgICAgKiBAcGFyYW0gcmVxdWVzdE1lc3NhZ2UgUmVxdWVzdCBtZXNzYWdlXG4gICAgICogQHBhcmFtIHJlcXVlc3RNZXRhZGF0YSBSZXF1ZXN0IG1ldGFkYXRhXG4gICAgICogQHJldHVybnMgT2JzZXJ2YWJsZTxHcnBjRXZlbnQ8b25kZXdvTmx1MDA1Lk9wZXJhdGlvbj4+XG4gICAgICovXG4gICAgdHJhaW5BZ2VudDogKFxuICAgICAgcmVxdWVzdERhdGE6IHRoaXNQcm90by5UcmFpbkFnZW50UmVxdWVzdCxcbiAgICAgIHJlcXVlc3RNZXRhZGF0YSA9IG5ldyBHcnBjTWV0YWRhdGEoKVxuICAgICk6IE9ic2VydmFibGU8R3JwY0V2ZW50PG9uZGV3b05sdTAwNS5PcGVyYXRpb24+PiA9PiB7XG4gICAgICByZXR1cm4gdGhpcy5oYW5kbGVyLmhhbmRsZSh7XG4gICAgICAgIHR5cGU6IEdycGNDYWxsVHlwZS51bmFyeSxcbiAgICAgICAgY2xpZW50OiB0aGlzLmNsaWVudCxcbiAgICAgICAgcGF0aDogJy9vbmRld28ubmx1LkFnZW50cy9UcmFpbkFnZW50JyxcbiAgICAgICAgcmVxdWVzdERhdGEsXG4gICAgICAgIHJlcXVlc3RNZXRhZGF0YSxcbiAgICAgICAgcmVxdWVzdENsYXNzOiB0aGlzUHJvdG8uVHJhaW5BZ2VudFJlcXVlc3QsXG4gICAgICAgIHJlc3BvbnNlQ2xhc3M6IG9uZGV3b05sdTAwNS5PcGVyYXRpb25cbiAgICAgIH0pO1xuICAgIH0sXG4gICAgLyoqXG4gICAgICogVW5hcnkgY2FsbDogL29uZGV3by5ubHUuQWdlbnRzL0J1aWxkQ2FjaGVcbiAgICAgKlxuICAgICAqIEBwYXJhbSByZXF1ZXN0TWVzc2FnZSBSZXF1ZXN0IG1lc3NhZ2VcbiAgICAgKiBAcGFyYW0gcmVxdWVzdE1ldGFkYXRhIFJlcXVlc3QgbWV0YWRhdGFcbiAgICAgKiBAcmV0dXJucyBPYnNlcnZhYmxlPEdycGNFdmVudDxvbmRld29ObHUwMDUuT3BlcmF0aW9uPj5cbiAgICAgKi9cbiAgICBidWlsZENhY2hlOiAoXG4gICAgICByZXF1ZXN0RGF0YTogdGhpc1Byb3RvLkJ1aWxkQ2FjaGVSZXF1ZXN0LFxuICAgICAgcmVxdWVzdE1ldGFkYXRhID0gbmV3IEdycGNNZXRhZGF0YSgpXG4gICAgKTogT2JzZXJ2YWJsZTxHcnBjRXZlbnQ8b25kZXdvTmx1MDA1Lk9wZXJhdGlvbj4+ID0+IHtcbiAgICAgIHJldHVybiB0aGlzLmhhbmRsZXIuaGFuZGxlKHtcbiAgICAgICAgdHlwZTogR3JwY0NhbGxUeXBlLnVuYXJ5LFxuICAgICAgICBjbGllbnQ6IHRoaXMuY2xpZW50LFxuICAgICAgICBwYXRoOiAnL29uZGV3by5ubHUuQWdlbnRzL0J1aWxkQ2FjaGUnLFxuICAgICAgICByZXF1ZXN0RGF0YSxcbiAgICAgICAgcmVxdWVzdE1ldGFkYXRhLFxuICAgICAgICByZXF1ZXN0Q2xhc3M6IHRoaXNQcm90by5CdWlsZENhY2hlUmVxdWVzdCxcbiAgICAgICAgcmVzcG9uc2VDbGFzczogb25kZXdvTmx1MDA1Lk9wZXJhdGlvblxuICAgICAgfSk7XG4gICAgfSxcbiAgICAvKipcbiAgICAgKiBVbmFyeSBjYWxsOiAvb25kZXdvLm5sdS5BZ2VudHMvRXhwb3J0QWdlbnRcbiAgICAgKlxuICAgICAqIEBwYXJhbSByZXF1ZXN0TWVzc2FnZSBSZXF1ZXN0IG1lc3NhZ2VcbiAgICAgKiBAcGFyYW0gcmVxdWVzdE1ldGFkYXRhIFJlcXVlc3QgbWV0YWRhdGFcbiAgICAgKiBAcmV0dXJucyBPYnNlcnZhYmxlPEdycGNFdmVudDxvbmRld29ObHUwMDUuT3BlcmF0aW9uPj5cbiAgICAgKi9cbiAgICBleHBvcnRBZ2VudDogKFxuICAgICAgcmVxdWVzdERhdGE6IHRoaXNQcm90by5FeHBvcnRBZ2VudFJlcXVlc3QsXG4gICAgICByZXF1ZXN0TWV0YWRhdGEgPSBuZXcgR3JwY01ldGFkYXRhKClcbiAgICApOiBPYnNlcnZhYmxlPEdycGNFdmVudDxvbmRld29ObHUwMDUuT3BlcmF0aW9uPj4gPT4ge1xuICAgICAgcmV0dXJuIHRoaXMuaGFuZGxlci5oYW5kbGUoe1xuICAgICAgICB0eXBlOiBHcnBjQ2FsbFR5cGUudW5hcnksXG4gICAgICAgIGNsaWVudDogdGhpcy5jbGllbnQsXG4gICAgICAgIHBhdGg6ICcvb25kZXdvLm5sdS5BZ2VudHMvRXhwb3J0QWdlbnQnLFxuICAgICAgICByZXF1ZXN0RGF0YSxcbiAgICAgICAgcmVxdWVzdE1ldGFkYXRhLFxuICAgICAgICByZXF1ZXN0Q2xhc3M6IHRoaXNQcm90by5FeHBvcnRBZ2VudFJlcXVlc3QsXG4gICAgICAgIHJlc3BvbnNlQ2xhc3M6IG9uZGV3b05sdTAwNS5PcGVyYXRpb25cbiAgICAgIH0pO1xuICAgIH0sXG4gICAgLyoqXG4gICAgICogVW5hcnkgY2FsbDogL29uZGV3by5ubHUuQWdlbnRzL0V4cG9ydEJlbmNobWFya0FnZW50XG4gICAgICpcbiAgICAgKiBAcGFyYW0gcmVxdWVzdE1lc3NhZ2UgUmVxdWVzdCBtZXNzYWdlXG4gICAgICogQHBhcmFtIHJlcXVlc3RNZXRhZGF0YSBSZXF1ZXN0IG1ldGFkYXRhXG4gICAgICogQHJldHVybnMgT2JzZXJ2YWJsZTxHcnBjRXZlbnQ8b25kZXdvTmx1MDA1Lk9wZXJhdGlvbj4+XG4gICAgICovXG4gICAgZXhwb3J0QmVuY2htYXJrQWdlbnQ6IChcbiAgICAgIHJlcXVlc3REYXRhOiB0aGlzUHJvdG8uRXhwb3J0QmVuY2htYXJrQWdlbnRSZXF1ZXN0LFxuICAgICAgcmVxdWVzdE1ldGFkYXRhID0gbmV3IEdycGNNZXRhZGF0YSgpXG4gICAgKTogT2JzZXJ2YWJsZTxHcnBjRXZlbnQ8b25kZXdvTmx1MDA1Lk9wZXJhdGlvbj4+ID0+IHtcbiAgICAgIHJldHVybiB0aGlzLmhhbmRsZXIuaGFuZGxlKHtcbiAgICAgICAgdHlwZTogR3JwY0NhbGxUeXBlLnVuYXJ5LFxuICAgICAgICBjbGllbnQ6IHRoaXMuY2xpZW50LFxuICAgICAgICBwYXRoOiAnL29uZGV3by5ubHUuQWdlbnRzL0V4cG9ydEJlbmNobWFya0FnZW50JyxcbiAgICAgICAgcmVxdWVzdERhdGEsXG4gICAgICAgIHJlcXVlc3RNZXRhZGF0YSxcbiAgICAgICAgcmVxdWVzdENsYXNzOiB0aGlzUHJvdG8uRXhwb3J0QmVuY2htYXJrQWdlbnRSZXF1ZXN0LFxuICAgICAgICByZXNwb25zZUNsYXNzOiBvbmRld29ObHUwMDUuT3BlcmF0aW9uXG4gICAgICB9KTtcbiAgICB9LFxuICAgIC8qKlxuICAgICAqIFVuYXJ5IGNhbGw6IC9vbmRld28ubmx1LkFnZW50cy9JbXBvcnRBZ2VudFxuICAgICAqXG4gICAgICogQHBhcmFtIHJlcXVlc3RNZXNzYWdlIFJlcXVlc3QgbWVzc2FnZVxuICAgICAqIEBwYXJhbSByZXF1ZXN0TWV0YWRhdGEgUmVxdWVzdCBtZXRhZGF0YVxuICAgICAqIEByZXR1cm5zIE9ic2VydmFibGU8R3JwY0V2ZW50PG9uZGV3b05sdTAwNS5PcGVyYXRpb24+PlxuICAgICAqL1xuICAgIGltcG9ydEFnZW50OiAoXG4gICAgICByZXF1ZXN0RGF0YTogdGhpc1Byb3RvLkltcG9ydEFnZW50UmVxdWVzdCxcbiAgICAgIHJlcXVlc3RNZXRhZGF0YSA9IG5ldyBHcnBjTWV0YWRhdGEoKVxuICAgICk6IE9ic2VydmFibGU8R3JwY0V2ZW50PG9uZGV3b05sdTAwNS5PcGVyYXRpb24+PiA9PiB7XG4gICAgICByZXR1cm4gdGhpcy5oYW5kbGVyLmhhbmRsZSh7XG4gICAgICAgIHR5cGU6IEdycGNDYWxsVHlwZS51bmFyeSxcbiAgICAgICAgY2xpZW50OiB0aGlzLmNsaWVudCxcbiAgICAgICAgcGF0aDogJy9vbmRld28ubmx1LkFnZW50cy9JbXBvcnRBZ2VudCcsXG4gICAgICAgIHJlcXVlc3REYXRhLFxuICAgICAgICByZXF1ZXN0TWV0YWRhdGEsXG4gICAgICAgIHJlcXVlc3RDbGFzczogdGhpc1Byb3RvLkltcG9ydEFnZW50UmVxdWVzdCxcbiAgICAgICAgcmVzcG9uc2VDbGFzczogb25kZXdvTmx1MDA1Lk9wZXJhdGlvblxuICAgICAgfSk7XG4gICAgfSxcbiAgICAvKipcbiAgICAgKiBVbmFyeSBjYWxsOiAvb25kZXdvLm5sdS5BZ2VudHMvT3B0aW1pemVSYW5raW5nTWF0Y2hcbiAgICAgKlxuICAgICAqIEBwYXJhbSByZXF1ZXN0TWVzc2FnZSBSZXF1ZXN0IG1lc3NhZ2VcbiAgICAgKiBAcGFyYW0gcmVxdWVzdE1ldGFkYXRhIFJlcXVlc3QgbWV0YWRhdGFcbiAgICAgKiBAcmV0dXJucyBPYnNlcnZhYmxlPEdycGNFdmVudDxvbmRld29ObHUwMDUuT3BlcmF0aW9uPj5cbiAgICAgKi9cbiAgICBvcHRpbWl6ZVJhbmtpbmdNYXRjaDogKFxuICAgICAgcmVxdWVzdERhdGE6IHRoaXNQcm90by5PcHRpbWl6ZVJhbmtpbmdNYXRjaFJlcXVlc3QsXG4gICAgICByZXF1ZXN0TWV0YWRhdGEgPSBuZXcgR3JwY01ldGFkYXRhKClcbiAgICApOiBPYnNlcnZhYmxlPEdycGNFdmVudDxvbmRld29ObHUwMDUuT3BlcmF0aW9uPj4gPT4ge1xuICAgICAgcmV0dXJuIHRoaXMuaGFuZGxlci5oYW5kbGUoe1xuICAgICAgICB0eXBlOiBHcnBjQ2FsbFR5cGUudW5hcnksXG4gICAgICAgIGNsaWVudDogdGhpcy5jbGllbnQsXG4gICAgICAgIHBhdGg6ICcvb25kZXdvLm5sdS5BZ2VudHMvT3B0aW1pemVSYW5raW5nTWF0Y2gnLFxuICAgICAgICByZXF1ZXN0RGF0YSxcbiAgICAgICAgcmVxdWVzdE1ldGFkYXRhLFxuICAgICAgICByZXF1ZXN0Q2xhc3M6IHRoaXNQcm90by5PcHRpbWl6ZVJhbmtpbmdNYXRjaFJlcXVlc3QsXG4gICAgICAgIHJlc3BvbnNlQ2xhc3M6IG9uZGV3b05sdTAwNS5PcGVyYXRpb25cbiAgICAgIH0pO1xuICAgIH0sXG4gICAgLyoqXG4gICAgICogVW5hcnkgY2FsbDogL29uZGV3by5ubHUuQWdlbnRzL1Jlc3RvcmVBZ2VudFxuICAgICAqXG4gICAgICogQHBhcmFtIHJlcXVlc3RNZXNzYWdlIFJlcXVlc3QgbWVzc2FnZVxuICAgICAqIEBwYXJhbSByZXF1ZXN0TWV0YWRhdGEgUmVxdWVzdCBtZXRhZGF0YVxuICAgICAqIEByZXR1cm5zIE9ic2VydmFibGU8R3JwY0V2ZW50PG9uZGV3b05sdTAwNS5PcGVyYXRpb24+PlxuICAgICAqL1xuICAgIHJlc3RvcmVBZ2VudDogKFxuICAgICAgcmVxdWVzdERhdGE6IHRoaXNQcm90by5SZXN0b3JlQWdlbnRSZXF1ZXN0LFxuICAgICAgcmVxdWVzdE1ldGFkYXRhID0gbmV3IEdycGNNZXRhZGF0YSgpXG4gICAgKTogT2JzZXJ2YWJsZTxHcnBjRXZlbnQ8b25kZXdvTmx1MDA1Lk9wZXJhdGlvbj4+ID0+IHtcbiAgICAgIHJldHVybiB0aGlzLmhhbmRsZXIuaGFuZGxlKHtcbiAgICAgICAgdHlwZTogR3JwY0NhbGxUeXBlLnVuYXJ5LFxuICAgICAgICBjbGllbnQ6IHRoaXMuY2xpZW50LFxuICAgICAgICBwYXRoOiAnL29uZGV3by5ubHUuQWdlbnRzL1Jlc3RvcmVBZ2VudCcsXG4gICAgICAgIHJlcXVlc3REYXRhLFxuICAgICAgICByZXF1ZXN0TWV0YWRhdGEsXG4gICAgICAgIHJlcXVlc3RDbGFzczogdGhpc1Byb3RvLlJlc3RvcmVBZ2VudFJlcXVlc3QsXG4gICAgICAgIHJlc3BvbnNlQ2xhc3M6IG9uZGV3b05sdTAwNS5PcGVyYXRpb25cbiAgICAgIH0pO1xuICAgIH0sXG4gICAgLyoqXG4gICAgICogVW5hcnkgY2FsbDogL29uZGV3by5ubHUuQWdlbnRzL0dldEFnZW50U3RhdGlzdGljc1xuICAgICAqXG4gICAgICogQHBhcmFtIHJlcXVlc3RNZXNzYWdlIFJlcXVlc3QgbWVzc2FnZVxuICAgICAqIEBwYXJhbSByZXF1ZXN0TWV0YWRhdGEgUmVxdWVzdCBtZXRhZGF0YVxuICAgICAqIEByZXR1cm5zIE9ic2VydmFibGU8R3JwY0V2ZW50PHRoaXNQcm90by5HZXRBZ2VudFN0YXRpc3RpY3NSZXNwb25zZT4+XG4gICAgICovXG4gICAgZ2V0QWdlbnRTdGF0aXN0aWNzOiAoXG4gICAgICByZXF1ZXN0RGF0YTogdGhpc1Byb3RvLkdldEFnZW50U3RhdGlzdGljc1JlcXVlc3QsXG4gICAgICByZXF1ZXN0TWV0YWRhdGEgPSBuZXcgR3JwY01ldGFkYXRhKClcbiAgICApOiBPYnNlcnZhYmxlPEdycGNFdmVudDx0aGlzUHJvdG8uR2V0QWdlbnRTdGF0aXN0aWNzUmVzcG9uc2U+PiA9PiB7XG4gICAgICByZXR1cm4gdGhpcy5oYW5kbGVyLmhhbmRsZSh7XG4gICAgICAgIHR5cGU6IEdycGNDYWxsVHlwZS51bmFyeSxcbiAgICAgICAgY2xpZW50OiB0aGlzLmNsaWVudCxcbiAgICAgICAgcGF0aDogJy9vbmRld28ubmx1LkFnZW50cy9HZXRBZ2VudFN0YXRpc3RpY3MnLFxuICAgICAgICByZXF1ZXN0RGF0YSxcbiAgICAgICAgcmVxdWVzdE1ldGFkYXRhLFxuICAgICAgICByZXF1ZXN0Q2xhc3M6IHRoaXNQcm90by5HZXRBZ2VudFN0YXRpc3RpY3NSZXF1ZXN0LFxuICAgICAgICByZXNwb25zZUNsYXNzOiB0aGlzUHJvdG8uR2V0QWdlbnRTdGF0aXN0aWNzUmVzcG9uc2VcbiAgICAgIH0pO1xuICAgIH0sXG4gICAgLyoqXG4gICAgICogVW5hcnkgY2FsbDogL29uZGV3by5ubHUuQWdlbnRzL1NldEFnZW50U3RhdHVzXG4gICAgICpcbiAgICAgKiBAcGFyYW0gcmVxdWVzdE1lc3NhZ2UgUmVxdWVzdCBtZXNzYWdlXG4gICAgICogQHBhcmFtIHJlcXVlc3RNZXRhZGF0YSBSZXF1ZXN0IG1ldGFkYXRhXG4gICAgICogQHJldHVybnMgT2JzZXJ2YWJsZTxHcnBjRXZlbnQ8dGhpc1Byb3RvLkFnZW50Pj5cbiAgICAgKi9cbiAgICBzZXRBZ2VudFN0YXR1czogKFxuICAgICAgcmVxdWVzdERhdGE6IHRoaXNQcm90by5TZXRBZ2VudFN0YXR1c1JlcXVlc3QsXG4gICAgICByZXF1ZXN0TWV0YWRhdGEgPSBuZXcgR3JwY01ldGFkYXRhKClcbiAgICApOiBPYnNlcnZhYmxlPEdycGNFdmVudDx0aGlzUHJvdG8uQWdlbnQ+PiA9PiB7XG4gICAgICByZXR1cm4gdGhpcy5oYW5kbGVyLmhhbmRsZSh7XG4gICAgICAgIHR5cGU6IEdycGNDYWxsVHlwZS51bmFyeSxcbiAgICAgICAgY2xpZW50OiB0aGlzLmNsaWVudCxcbiAgICAgICAgcGF0aDogJy9vbmRld28ubmx1LkFnZW50cy9TZXRBZ2VudFN0YXR1cycsXG4gICAgICAgIHJlcXVlc3REYXRhLFxuICAgICAgICByZXF1ZXN0TWV0YWRhdGEsXG4gICAgICAgIHJlcXVlc3RDbGFzczogdGhpc1Byb3RvLlNldEFnZW50U3RhdHVzUmVxdWVzdCxcbiAgICAgICAgcmVzcG9uc2VDbGFzczogdGhpc1Byb3RvLkFnZW50XG4gICAgICB9KTtcbiAgICB9LFxuICAgIC8qKlxuICAgICAqIFVuYXJ5IGNhbGw6IC9vbmRld28ubmx1LkFnZW50cy9TZXRSZXNvdXJjZXNcbiAgICAgKlxuICAgICAqIEBwYXJhbSByZXF1ZXN0TWVzc2FnZSBSZXF1ZXN0IG1lc3NhZ2VcbiAgICAgKiBAcGFyYW0gcmVxdWVzdE1ldGFkYXRhIFJlcXVlc3QgbWV0YWRhdGFcbiAgICAgKiBAcmV0dXJucyBPYnNlcnZhYmxlPEdycGNFdmVudDxnb29nbGVQcm90b2J1ZjAwNi5FbXB0eT4+XG4gICAgICovXG4gICAgc2V0UmVzb3VyY2VzOiAoXG4gICAgICByZXF1ZXN0RGF0YTogdGhpc1Byb3RvLlNldFJlc291cmNlc1JlcXVlc3QsXG4gICAgICByZXF1ZXN0TWV0YWRhdGEgPSBuZXcgR3JwY01ldGFkYXRhKClcbiAgICApOiBPYnNlcnZhYmxlPEdycGNFdmVudDxnb29nbGVQcm90b2J1ZjAwNi5FbXB0eT4+ID0+IHtcbiAgICAgIHJldHVybiB0aGlzLmhhbmRsZXIuaGFuZGxlKHtcbiAgICAgICAgdHlwZTogR3JwY0NhbGxUeXBlLnVuYXJ5LFxuICAgICAgICBjbGllbnQ6IHRoaXMuY2xpZW50LFxuICAgICAgICBwYXRoOiAnL29uZGV3by5ubHUuQWdlbnRzL1NldFJlc291cmNlcycsXG4gICAgICAgIHJlcXVlc3REYXRhLFxuICAgICAgICByZXF1ZXN0TWV0YWRhdGEsXG4gICAgICAgIHJlcXVlc3RDbGFzczogdGhpc1Byb3RvLlNldFJlc291cmNlc1JlcXVlc3QsXG4gICAgICAgIHJlc3BvbnNlQ2xhc3M6IGdvb2dsZVByb3RvYnVmMDA2LkVtcHR5XG4gICAgICB9KTtcbiAgICB9LFxuICAgIC8qKlxuICAgICAqIFVuYXJ5IGNhbGw6IC9vbmRld28ubmx1LkFnZW50cy9EZWxldGVSZXNvdXJjZXNcbiAgICAgKlxuICAgICAqIEBwYXJhbSByZXF1ZXN0TWVzc2FnZSBSZXF1ZXN0IG1lc3NhZ2VcbiAgICAgKiBAcGFyYW0gcmVxdWVzdE1ldGFkYXRhIFJlcXVlc3QgbWV0YWRhdGFcbiAgICAgKiBAcmV0dXJucyBPYnNlcnZhYmxlPEdycGNFdmVudDxnb29nbGVQcm90b2J1ZjAwNi5FbXB0eT4+XG4gICAgICovXG4gICAgZGVsZXRlUmVzb3VyY2VzOiAoXG4gICAgICByZXF1ZXN0RGF0YTogdGhpc1Byb3RvLkRlbGV0ZVJlc291cmNlc1JlcXVlc3QsXG4gICAgICByZXF1ZXN0TWV0YWRhdGEgPSBuZXcgR3JwY01ldGFkYXRhKClcbiAgICApOiBPYnNlcnZhYmxlPEdycGNFdmVudDxnb29nbGVQcm90b2J1ZjAwNi5FbXB0eT4+ID0+IHtcbiAgICAgIHJldHVybiB0aGlzLmhhbmRsZXIuaGFuZGxlKHtcbiAgICAgICAgdHlwZTogR3JwY0NhbGxUeXBlLnVuYXJ5LFxuICAgICAgICBjbGllbnQ6IHRoaXMuY2xpZW50LFxuICAgICAgICBwYXRoOiAnL29uZGV3by5ubHUuQWdlbnRzL0RlbGV0ZVJlc291cmNlcycsXG4gICAgICAgIHJlcXVlc3REYXRhLFxuICAgICAgICByZXF1ZXN0TWV0YWRhdGEsXG4gICAgICAgIHJlcXVlc3RDbGFzczogdGhpc1Byb3RvLkRlbGV0ZVJlc291cmNlc1JlcXVlc3QsXG4gICAgICAgIHJlc3BvbnNlQ2xhc3M6IGdvb2dsZVByb3RvYnVmMDA2LkVtcHR5XG4gICAgICB9KTtcbiAgICB9LFxuICAgIC8qKlxuICAgICAqIFVuYXJ5IGNhbGw6IC9vbmRld28ubmx1LkFnZW50cy9FeHBvcnRSZXNvdXJjZXNcbiAgICAgKlxuICAgICAqIEBwYXJhbSByZXF1ZXN0TWVzc2FnZSBSZXF1ZXN0IG1lc3NhZ2VcbiAgICAgKiBAcGFyYW0gcmVxdWVzdE1ldGFkYXRhIFJlcXVlc3QgbWV0YWRhdGFcbiAgICAgKiBAcmV0dXJucyBPYnNlcnZhYmxlPEdycGNFdmVudDx0aGlzUHJvdG8uRXhwb3J0UmVzb3VyY2VzUmVzcG9uc2U+PlxuICAgICAqL1xuICAgIGV4cG9ydFJlc291cmNlczogKFxuICAgICAgcmVxdWVzdERhdGE6IHRoaXNQcm90by5FeHBvcnRSZXNvdXJjZXNSZXF1ZXN0LFxuICAgICAgcmVxdWVzdE1ldGFkYXRhID0gbmV3IEdycGNNZXRhZGF0YSgpXG4gICAgKTogT2JzZXJ2YWJsZTxHcnBjRXZlbnQ8dGhpc1Byb3RvLkV4cG9ydFJlc291cmNlc1Jlc3BvbnNlPj4gPT4ge1xuICAgICAgcmV0dXJuIHRoaXMuaGFuZGxlci5oYW5kbGUoe1xuICAgICAgICB0eXBlOiBHcnBjQ2FsbFR5cGUudW5hcnksXG4gICAgICAgIGNsaWVudDogdGhpcy5jbGllbnQsXG4gICAgICAgIHBhdGg6ICcvb25kZXdvLm5sdS5BZ2VudHMvRXhwb3J0UmVzb3VyY2VzJyxcbiAgICAgICAgcmVxdWVzdERhdGEsXG4gICAgICAgIHJlcXVlc3RNZXRhZGF0YSxcbiAgICAgICAgcmVxdWVzdENsYXNzOiB0aGlzUHJvdG8uRXhwb3J0UmVzb3VyY2VzUmVxdWVzdCxcbiAgICAgICAgcmVzcG9uc2VDbGFzczogdGhpc1Byb3RvLkV4cG9ydFJlc291cmNlc1Jlc3BvbnNlXG4gICAgICB9KTtcbiAgICB9LFxuICAgIC8qKlxuICAgICAqIFVuYXJ5IGNhbGw6IC9vbmRld28ubmx1LkFnZW50cy9HZXRNb2RlbFN0YXR1c2VzXG4gICAgICpcbiAgICAgKiBAcGFyYW0gcmVxdWVzdE1lc3NhZ2UgUmVxdWVzdCBtZXNzYWdlXG4gICAgICogQHBhcmFtIHJlcXVlc3RNZXRhZGF0YSBSZXF1ZXN0IG1ldGFkYXRhXG4gICAgICogQHJldHVybnMgT2JzZXJ2YWJsZTxHcnBjRXZlbnQ8dGhpc1Byb3RvLkdldE1vZGVsU3RhdHVzZXNSZXNwb25zZT4+XG4gICAgICovXG4gICAgZ2V0TW9kZWxTdGF0dXNlczogKFxuICAgICAgcmVxdWVzdERhdGE6IHRoaXNQcm90by5HZXRNb2RlbFN0YXR1c2VzUmVxdWVzdCxcbiAgICAgIHJlcXVlc3RNZXRhZGF0YSA9IG5ldyBHcnBjTWV0YWRhdGEoKVxuICAgICk6IE9ic2VydmFibGU8R3JwY0V2ZW50PHRoaXNQcm90by5HZXRNb2RlbFN0YXR1c2VzUmVzcG9uc2U+PiA9PiB7XG4gICAgICByZXR1cm4gdGhpcy5oYW5kbGVyLmhhbmRsZSh7XG4gICAgICAgIHR5cGU6IEdycGNDYWxsVHlwZS51bmFyeSxcbiAgICAgICAgY2xpZW50OiB0aGlzLmNsaWVudCxcbiAgICAgICAgcGF0aDogJy9vbmRld28ubmx1LkFnZW50cy9HZXRNb2RlbFN0YXR1c2VzJyxcbiAgICAgICAgcmVxdWVzdERhdGEsXG4gICAgICAgIHJlcXVlc3RNZXRhZGF0YSxcbiAgICAgICAgcmVxdWVzdENsYXNzOiB0aGlzUHJvdG8uR2V0TW9kZWxTdGF0dXNlc1JlcXVlc3QsXG4gICAgICAgIHJlc3BvbnNlQ2xhc3M6IHRoaXNQcm90by5HZXRNb2RlbFN0YXR1c2VzUmVzcG9uc2VcbiAgICAgIH0pO1xuICAgIH0sXG4gICAgLyoqXG4gICAgICogVW5hcnkgY2FsbDogL29uZGV3by5ubHUuQWdlbnRzL0dldFBsYXRmb3JtTWFwcGluZ1xuICAgICAqXG4gICAgICogQHBhcmFtIHJlcXVlc3RNZXNzYWdlIFJlcXVlc3QgbWVzc2FnZVxuICAgICAqIEBwYXJhbSByZXF1ZXN0TWV0YWRhdGEgUmVxdWVzdCBtZXRhZGF0YVxuICAgICAqIEByZXR1cm5zIE9ic2VydmFibGU8R3JwY0V2ZW50PHRoaXNQcm90by5QbGF0Zm9ybU1hcHBpbmc+PlxuICAgICAqL1xuICAgIGdldFBsYXRmb3JtTWFwcGluZzogKFxuICAgICAgcmVxdWVzdERhdGE6IHRoaXNQcm90by5HZXRQbGF0Zm9ybU1hcHBpbmdSZXF1ZXN0LFxuICAgICAgcmVxdWVzdE1ldGFkYXRhID0gbmV3IEdycGNNZXRhZGF0YSgpXG4gICAgKTogT2JzZXJ2YWJsZTxHcnBjRXZlbnQ8dGhpc1Byb3RvLlBsYXRmb3JtTWFwcGluZz4+ID0+IHtcbiAgICAgIHJldHVybiB0aGlzLmhhbmRsZXIuaGFuZGxlKHtcbiAgICAgICAgdHlwZTogR3JwY0NhbGxUeXBlLnVuYXJ5LFxuICAgICAgICBjbGllbnQ6IHRoaXMuY2xpZW50LFxuICAgICAgICBwYXRoOiAnL29uZGV3by5ubHUuQWdlbnRzL0dldFBsYXRmb3JtTWFwcGluZycsXG4gICAgICAgIHJlcXVlc3REYXRhLFxuICAgICAgICByZXF1ZXN0TWV0YWRhdGEsXG4gICAgICAgIHJlcXVlc3RDbGFzczogdGhpc1Byb3RvLkdldFBsYXRmb3JtTWFwcGluZ1JlcXVlc3QsXG4gICAgICAgIHJlc3BvbnNlQ2xhc3M6IHRoaXNQcm90by5QbGF0Zm9ybU1hcHBpbmdcbiAgICAgIH0pO1xuICAgIH0sXG4gICAgLyoqXG4gICAgICogVW5hcnkgY2FsbDogL29uZGV3by5ubHUuQWdlbnRzL1NldFBsYXRmb3JtTWFwcGluZ1xuICAgICAqXG4gICAgICogQHBhcmFtIHJlcXVlc3RNZXNzYWdlIFJlcXVlc3QgbWVzc2FnZVxuICAgICAqIEBwYXJhbSByZXF1ZXN0TWV0YWRhdGEgUmVxdWVzdCBtZXRhZGF0YVxuICAgICAqIEByZXR1cm5zIE9ic2VydmFibGU8R3JwY0V2ZW50PHRoaXNQcm90by5QbGF0Zm9ybU1hcHBpbmc+PlxuICAgICAqL1xuICAgIHNldFBsYXRmb3JtTWFwcGluZzogKFxuICAgICAgcmVxdWVzdERhdGE6IHRoaXNQcm90by5QbGF0Zm9ybU1hcHBpbmcsXG4gICAgICByZXF1ZXN0TWV0YWRhdGEgPSBuZXcgR3JwY01ldGFkYXRhKClcbiAgICApOiBPYnNlcnZhYmxlPEdycGNFdmVudDx0aGlzUHJvdG8uUGxhdGZvcm1NYXBwaW5nPj4gPT4ge1xuICAgICAgcmV0dXJuIHRoaXMuaGFuZGxlci5oYW5kbGUoe1xuICAgICAgICB0eXBlOiBHcnBjQ2FsbFR5cGUudW5hcnksXG4gICAgICAgIGNsaWVudDogdGhpcy5jbGllbnQsXG4gICAgICAgIHBhdGg6ICcvb25kZXdvLm5sdS5BZ2VudHMvU2V0UGxhdGZvcm1NYXBwaW5nJyxcbiAgICAgICAgcmVxdWVzdERhdGEsXG4gICAgICAgIHJlcXVlc3RNZXRhZGF0YSxcbiAgICAgICAgcmVxdWVzdENsYXNzOiB0aGlzUHJvdG8uUGxhdGZvcm1NYXBwaW5nLFxuICAgICAgICByZXNwb25zZUNsYXNzOiB0aGlzUHJvdG8uUGxhdGZvcm1NYXBwaW5nXG4gICAgICB9KTtcbiAgICB9XG4gIH07XG5cbiAgY29uc3RydWN0b3IoXG4gICAgQE9wdGlvbmFsKCkgQEluamVjdChHUlBDX0FHRU5UU19DTElFTlRfU0VUVElOR1MpIHNldHRpbmdzOiBhbnksXG4gICAgQEluamVjdChHUlBDX0NMSUVOVF9GQUNUT1JZKSBjbGllbnRGYWN0b3J5OiBHcnBjQ2xpZW50RmFjdG9yeTxhbnk+LFxuICAgIHByaXZhdGUgaGFuZGxlcjogR3JwY0hhbmRsZXJcbiAgKSB7XG4gICAgdGhpcy5jbGllbnQgPSBjbGllbnRGYWN0b3J5LmNyZWF0ZUNsaWVudCgnb25kZXdvLm5sdS5BZ2VudHMnLCBzZXR0aW5ncyk7XG4gIH1cblxuICAvKipcbiAgICogVW5hcnkgY2FsbCBAL29uZGV3by5ubHUuQWdlbnRzL0NyZWF0ZUFnZW50XG4gICAqXG4gICAqIEBwYXJhbSByZXF1ZXN0TWVzc2FnZSBSZXF1ZXN0IG1lc3NhZ2VcbiAgICogQHBhcmFtIHJlcXVlc3RNZXRhZGF0YSBSZXF1ZXN0IG1ldGFkYXRhXG4gICAqIEByZXR1cm5zIE9ic2VydmFibGU8dGhpc1Byb3RvLkFnZW50PlxuICAgKi9cbiAgY3JlYXRlQWdlbnQoXG4gICAgcmVxdWVzdERhdGE6IHRoaXNQcm90by5DcmVhdGVBZ2VudFJlcXVlc3QsXG4gICAgcmVxdWVzdE1ldGFkYXRhID0gbmV3IEdycGNNZXRhZGF0YSgpXG4gICk6IE9ic2VydmFibGU8dGhpc1Byb3RvLkFnZW50PiB7XG4gICAgcmV0dXJuIHRoaXMuJHJhd1xuICAgICAgLmNyZWF0ZUFnZW50KHJlcXVlc3REYXRhLCByZXF1ZXN0TWV0YWRhdGEpXG4gICAgICAucGlwZSh0aHJvd1N0YXR1c0Vycm9ycygpLCB0YWtlTWVzc2FnZXMoKSk7XG4gIH1cblxuICAvKipcbiAgICogVW5hcnkgY2FsbCBAL29uZGV3by5ubHUuQWdlbnRzL1VwZGF0ZUFnZW50XG4gICAqXG4gICAqIEBwYXJhbSByZXF1ZXN0TWVzc2FnZSBSZXF1ZXN0IG1lc3NhZ2VcbiAgICogQHBhcmFtIHJlcXVlc3RNZXRhZGF0YSBSZXF1ZXN0IG1ldGFkYXRhXG4gICAqIEByZXR1cm5zIE9ic2VydmFibGU8dGhpc1Byb3RvLkFnZW50PlxuICAgKi9cbiAgdXBkYXRlQWdlbnQoXG4gICAgcmVxdWVzdERhdGE6IHRoaXNQcm90by5VcGRhdGVBZ2VudFJlcXVlc3QsXG4gICAgcmVxdWVzdE1ldGFkYXRhID0gbmV3IEdycGNNZXRhZGF0YSgpXG4gICk6IE9ic2VydmFibGU8dGhpc1Byb3RvLkFnZW50PiB7XG4gICAgcmV0dXJuIHRoaXMuJHJhd1xuICAgICAgLnVwZGF0ZUFnZW50KHJlcXVlc3REYXRhLCByZXF1ZXN0TWV0YWRhdGEpXG4gICAgICAucGlwZSh0aHJvd1N0YXR1c0Vycm9ycygpLCB0YWtlTWVzc2FnZXMoKSk7XG4gIH1cblxuICAvKipcbiAgICogVW5hcnkgY2FsbCBAL29uZGV3by5ubHUuQWdlbnRzL0dldEFnZW50XG4gICAqXG4gICAqIEBwYXJhbSByZXF1ZXN0TWVzc2FnZSBSZXF1ZXN0IG1lc3NhZ2VcbiAgICogQHBhcmFtIHJlcXVlc3RNZXRhZGF0YSBSZXF1ZXN0IG1ldGFkYXRhXG4gICAqIEByZXR1cm5zIE9ic2VydmFibGU8dGhpc1Byb3RvLkFnZW50PlxuICAgKi9cbiAgZ2V0QWdlbnQoXG4gICAgcmVxdWVzdERhdGE6IHRoaXNQcm90by5HZXRBZ2VudFJlcXVlc3QsXG4gICAgcmVxdWVzdE1ldGFkYXRhID0gbmV3IEdycGNNZXRhZGF0YSgpXG4gICk6IE9ic2VydmFibGU8dGhpc1Byb3RvLkFnZW50PiB7XG4gICAgcmV0dXJuIHRoaXMuJHJhd1xuICAgICAgLmdldEFnZW50KHJlcXVlc3REYXRhLCByZXF1ZXN0TWV0YWRhdGEpXG4gICAgICAucGlwZSh0aHJvd1N0YXR1c0Vycm9ycygpLCB0YWtlTWVzc2FnZXMoKSk7XG4gIH1cblxuICAvKipcbiAgICogVW5hcnkgY2FsbCBAL29uZGV3by5ubHUuQWdlbnRzL0RlbGV0ZUFnZW50XG4gICAqXG4gICAqIEBwYXJhbSByZXF1ZXN0TWVzc2FnZSBSZXF1ZXN0IG1lc3NhZ2VcbiAgICogQHBhcmFtIHJlcXVlc3RNZXRhZGF0YSBSZXF1ZXN0IG1ldGFkYXRhXG4gICAqIEByZXR1cm5zIE9ic2VydmFibGU8Z29vZ2xlUHJvdG9idWYwMDYuRW1wdHk+XG4gICAqL1xuICBkZWxldGVBZ2VudChcbiAgICByZXF1ZXN0RGF0YTogdGhpc1Byb3RvLkRlbGV0ZUFnZW50UmVxdWVzdCxcbiAgICByZXF1ZXN0TWV0YWRhdGEgPSBuZXcgR3JwY01ldGFkYXRhKClcbiAgKTogT2JzZXJ2YWJsZTxnb29nbGVQcm90b2J1ZjAwNi5FbXB0eT4ge1xuICAgIHJldHVybiB0aGlzLiRyYXdcbiAgICAgIC5kZWxldGVBZ2VudChyZXF1ZXN0RGF0YSwgcmVxdWVzdE1ldGFkYXRhKVxuICAgICAgLnBpcGUodGhyb3dTdGF0dXNFcnJvcnMoKSwgdGFrZU1lc3NhZ2VzKCkpO1xuICB9XG5cbiAgLyoqXG4gICAqIFVuYXJ5IGNhbGwgQC9vbmRld28ubmx1LkFnZW50cy9EZWxldGVBbGxBZ2VudHNcbiAgICpcbiAgICogQHBhcmFtIHJlcXVlc3RNZXNzYWdlIFJlcXVlc3QgbWVzc2FnZVxuICAgKiBAcGFyYW0gcmVxdWVzdE1ldGFkYXRhIFJlcXVlc3QgbWV0YWRhdGFcbiAgICogQHJldHVybnMgT2JzZXJ2YWJsZTxnb29nbGVQcm90b2J1ZjAwNi5FbXB0eT5cbiAgICovXG4gIGRlbGV0ZUFsbEFnZW50cyhcbiAgICByZXF1ZXN0RGF0YTogZ29vZ2xlUHJvdG9idWYwMDYuRW1wdHksXG4gICAgcmVxdWVzdE1ldGFkYXRhID0gbmV3IEdycGNNZXRhZGF0YSgpXG4gICk6IE9ic2VydmFibGU8Z29vZ2xlUHJvdG9idWYwMDYuRW1wdHk+IHtcbiAgICByZXR1cm4gdGhpcy4kcmF3XG4gICAgICAuZGVsZXRlQWxsQWdlbnRzKHJlcXVlc3REYXRhLCByZXF1ZXN0TWV0YWRhdGEpXG4gICAgICAucGlwZSh0aHJvd1N0YXR1c0Vycm9ycygpLCB0YWtlTWVzc2FnZXMoKSk7XG4gIH1cblxuICAvKipcbiAgICogVW5hcnkgY2FsbCBAL29uZGV3by5ubHUuQWdlbnRzL0xpc3RBZ2VudHNcbiAgICpcbiAgICogQHBhcmFtIHJlcXVlc3RNZXNzYWdlIFJlcXVlc3QgbWVzc2FnZVxuICAgKiBAcGFyYW0gcmVxdWVzdE1ldGFkYXRhIFJlcXVlc3QgbWV0YWRhdGFcbiAgICogQHJldHVybnMgT2JzZXJ2YWJsZTx0aGlzUHJvdG8uTGlzdEFnZW50c1Jlc3BvbnNlPlxuICAgKi9cbiAgbGlzdEFnZW50cyhcbiAgICByZXF1ZXN0RGF0YTogdGhpc1Byb3RvLkxpc3RBZ2VudHNSZXF1ZXN0LFxuICAgIHJlcXVlc3RNZXRhZGF0YSA9IG5ldyBHcnBjTWV0YWRhdGEoKVxuICApOiBPYnNlcnZhYmxlPHRoaXNQcm90by5MaXN0QWdlbnRzUmVzcG9uc2U+IHtcbiAgICByZXR1cm4gdGhpcy4kcmF3XG4gICAgICAubGlzdEFnZW50cyhyZXF1ZXN0RGF0YSwgcmVxdWVzdE1ldGFkYXRhKVxuICAgICAgLnBpcGUodGhyb3dTdGF0dXNFcnJvcnMoKSwgdGFrZU1lc3NhZ2VzKCkpO1xuICB9XG5cbiAgLyoqXG4gICAqIFVuYXJ5IGNhbGwgQC9vbmRld28ubmx1LkFnZW50cy9MaXN0QWdlbnRzT2ZVc2VyXG4gICAqXG4gICAqIEBwYXJhbSByZXF1ZXN0TWVzc2FnZSBSZXF1ZXN0IG1lc3NhZ2VcbiAgICogQHBhcmFtIHJlcXVlc3RNZXRhZGF0YSBSZXF1ZXN0IG1ldGFkYXRhXG4gICAqIEByZXR1cm5zIE9ic2VydmFibGU8dGhpc1Byb3RvLkxpc3RBZ2VudHNPZlVzZXJSZXNwb25zZT5cbiAgICovXG4gIGxpc3RBZ2VudHNPZlVzZXIoXG4gICAgcmVxdWVzdERhdGE6IHRoaXNQcm90by5MaXN0QWdlbnRzUmVxdWVzdCxcbiAgICByZXF1ZXN0TWV0YWRhdGEgPSBuZXcgR3JwY01ldGFkYXRhKClcbiAgKTogT2JzZXJ2YWJsZTx0aGlzUHJvdG8uTGlzdEFnZW50c09mVXNlclJlc3BvbnNlPiB7XG4gICAgcmV0dXJuIHRoaXMuJHJhd1xuICAgICAgLmxpc3RBZ2VudHNPZlVzZXIocmVxdWVzdERhdGEsIHJlcXVlc3RNZXRhZGF0YSlcbiAgICAgIC5waXBlKHRocm93U3RhdHVzRXJyb3JzKCksIHRha2VNZXNzYWdlcygpKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBVbmFyeSBjYWxsIEAvb25kZXdvLm5sdS5BZ2VudHMvTGlzdEFsbEFnZW50c1xuICAgKlxuICAgKiBAcGFyYW0gcmVxdWVzdE1lc3NhZ2UgUmVxdWVzdCBtZXNzYWdlXG4gICAqIEBwYXJhbSByZXF1ZXN0TWV0YWRhdGEgUmVxdWVzdCBtZXRhZGF0YVxuICAgKiBAcmV0dXJucyBPYnNlcnZhYmxlPHRoaXNQcm90by5MaXN0QWdlbnRzUmVzcG9uc2U+XG4gICAqL1xuICBsaXN0QWxsQWdlbnRzKFxuICAgIHJlcXVlc3REYXRhOiB0aGlzUHJvdG8uTGlzdEFnZW50c1JlcXVlc3QsXG4gICAgcmVxdWVzdE1ldGFkYXRhID0gbmV3IEdycGNNZXRhZGF0YSgpXG4gICk6IE9ic2VydmFibGU8dGhpc1Byb3RvLkxpc3RBZ2VudHNSZXNwb25zZT4ge1xuICAgIHJldHVybiB0aGlzLiRyYXdcbiAgICAgIC5saXN0QWxsQWdlbnRzKHJlcXVlc3REYXRhLCByZXF1ZXN0TWV0YWRhdGEpXG4gICAgICAucGlwZSh0aHJvd1N0YXR1c0Vycm9ycygpLCB0YWtlTWVzc2FnZXMoKSk7XG4gIH1cblxuICAvKipcbiAgICogVW5hcnkgY2FsbCBAL29uZGV3by5ubHUuQWdlbnRzL0FkZFVzZXJUb1Byb2plY3RcbiAgICpcbiAgICogQHBhcmFtIHJlcXVlc3RNZXNzYWdlIFJlcXVlc3QgbWVzc2FnZVxuICAgKiBAcGFyYW0gcmVxdWVzdE1ldGFkYXRhIFJlcXVlc3QgbWV0YWRhdGFcbiAgICogQHJldHVybnMgT2JzZXJ2YWJsZTxnb29nbGVQcm90b2J1ZjAwNi5FbXB0eT5cbiAgICovXG4gIGFkZFVzZXJUb1Byb2plY3QoXG4gICAgcmVxdWVzdERhdGE6IHRoaXNQcm90by5BZGRVc2VyVG9Qcm9qZWN0UmVxdWVzdCxcbiAgICByZXF1ZXN0TWV0YWRhdGEgPSBuZXcgR3JwY01ldGFkYXRhKClcbiAgKTogT2JzZXJ2YWJsZTxnb29nbGVQcm90b2J1ZjAwNi5FbXB0eT4ge1xuICAgIHJldHVybiB0aGlzLiRyYXdcbiAgICAgIC5hZGRVc2VyVG9Qcm9qZWN0KHJlcXVlc3REYXRhLCByZXF1ZXN0TWV0YWRhdGEpXG4gICAgICAucGlwZSh0aHJvd1N0YXR1c0Vycm9ycygpLCB0YWtlTWVzc2FnZXMoKSk7XG4gIH1cblxuICAvKipcbiAgICogVW5hcnkgY2FsbCBAL29uZGV3by5ubHUuQWdlbnRzL1JlbW92ZVVzZXJGcm9tUHJvamVjdFxuICAgKlxuICAgKiBAcGFyYW0gcmVxdWVzdE1lc3NhZ2UgUmVxdWVzdCBtZXNzYWdlXG4gICAqIEBwYXJhbSByZXF1ZXN0TWV0YWRhdGEgUmVxdWVzdCBtZXRhZGF0YVxuICAgKiBAcmV0dXJucyBPYnNlcnZhYmxlPGdvb2dsZVByb3RvYnVmMDA2LkVtcHR5PlxuICAgKi9cbiAgcmVtb3ZlVXNlckZyb21Qcm9qZWN0KFxuICAgIHJlcXVlc3REYXRhOiB0aGlzUHJvdG8uUmVtb3ZlVXNlckZyb21Qcm9qZWN0UmVxdWVzdCxcbiAgICByZXF1ZXN0TWV0YWRhdGEgPSBuZXcgR3JwY01ldGFkYXRhKClcbiAgKTogT2JzZXJ2YWJsZTxnb29nbGVQcm90b2J1ZjAwNi5FbXB0eT4ge1xuICAgIHJldHVybiB0aGlzLiRyYXdcbiAgICAgIC5yZW1vdmVVc2VyRnJvbVByb2plY3QocmVxdWVzdERhdGEsIHJlcXVlc3RNZXRhZGF0YSlcbiAgICAgIC5waXBlKHRocm93U3RhdHVzRXJyb3JzKCksIHRha2VNZXNzYWdlcygpKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBVbmFyeSBjYWxsIEAvb25kZXdvLm5sdS5BZ2VudHMvTGlzdFVzZXJzSW5Qcm9qZWN0XG4gICAqXG4gICAqIEBwYXJhbSByZXF1ZXN0TWVzc2FnZSBSZXF1ZXN0IG1lc3NhZ2VcbiAgICogQHBhcmFtIHJlcXVlc3RNZXRhZGF0YSBSZXF1ZXN0IG1ldGFkYXRhXG4gICAqIEByZXR1cm5zIE9ic2VydmFibGU8dGhpc1Byb3RvLkxpc3RVc2Vyc0luUHJvamVjdFJlc3BvbnNlPlxuICAgKi9cbiAgbGlzdFVzZXJzSW5Qcm9qZWN0KFxuICAgIHJlcXVlc3REYXRhOiB0aGlzUHJvdG8uTGlzdFVzZXJzSW5Qcm9qZWN0UmVxdWVzdCxcbiAgICByZXF1ZXN0TWV0YWRhdGEgPSBuZXcgR3JwY01ldGFkYXRhKClcbiAgKTogT2JzZXJ2YWJsZTx0aGlzUHJvdG8uTGlzdFVzZXJzSW5Qcm9qZWN0UmVzcG9uc2U+IHtcbiAgICByZXR1cm4gdGhpcy4kcmF3XG4gICAgICAubGlzdFVzZXJzSW5Qcm9qZWN0KHJlcXVlc3REYXRhLCByZXF1ZXN0TWV0YWRhdGEpXG4gICAgICAucGlwZSh0aHJvd1N0YXR1c0Vycm9ycygpLCB0YWtlTWVzc2FnZXMoKSk7XG4gIH1cblxuICAvKipcbiAgICogVW5hcnkgY2FsbCBAL29uZGV3by5ubHUuQWdlbnRzL0dldFBsYXRmb3JtSW5mb1xuICAgKlxuICAgKiBAcGFyYW0gcmVxdWVzdE1lc3NhZ2UgUmVxdWVzdCBtZXNzYWdlXG4gICAqIEBwYXJhbSByZXF1ZXN0TWV0YWRhdGEgUmVxdWVzdCBtZXRhZGF0YVxuICAgKiBAcmV0dXJucyBPYnNlcnZhYmxlPHRoaXNQcm90by5HZXRQbGF0Zm9ybUluZm9SZXNwb25zZT5cbiAgICovXG4gIGdldFBsYXRmb3JtSW5mbyhcbiAgICByZXF1ZXN0RGF0YTogZ29vZ2xlUHJvdG9idWYwMDYuRW1wdHksXG4gICAgcmVxdWVzdE1ldGFkYXRhID0gbmV3IEdycGNNZXRhZGF0YSgpXG4gICk6IE9ic2VydmFibGU8dGhpc1Byb3RvLkdldFBsYXRmb3JtSW5mb1Jlc3BvbnNlPiB7XG4gICAgcmV0dXJuIHRoaXMuJHJhd1xuICAgICAgLmdldFBsYXRmb3JtSW5mbyhyZXF1ZXN0RGF0YSwgcmVxdWVzdE1ldGFkYXRhKVxuICAgICAgLnBpcGUodGhyb3dTdGF0dXNFcnJvcnMoKSwgdGFrZU1lc3NhZ2VzKCkpO1xuICB9XG5cbiAgLyoqXG4gICAqIFVuYXJ5IGNhbGwgQC9vbmRld28ubmx1LkFnZW50cy9MaXN0UHJvamVjdFBlcm1pc3Npb25zXG4gICAqXG4gICAqIEBwYXJhbSByZXF1ZXN0TWVzc2FnZSBSZXF1ZXN0IG1lc3NhZ2VcbiAgICogQHBhcmFtIHJlcXVlc3RNZXRhZGF0YSBSZXF1ZXN0IG1ldGFkYXRhXG4gICAqIEByZXR1cm5zIE9ic2VydmFibGU8dGhpc1Byb3RvLkxpc3RQcm9qZWN0UGVybWlzc2lvbnNSZXNwb25zZT5cbiAgICovXG4gIGxpc3RQcm9qZWN0UGVybWlzc2lvbnMoXG4gICAgcmVxdWVzdERhdGE6IHRoaXNQcm90by5MaXN0UHJvamVjdFBlcm1pc3Npb25zUmVxdWVzdCxcbiAgICByZXF1ZXN0TWV0YWRhdGEgPSBuZXcgR3JwY01ldGFkYXRhKClcbiAgKTogT2JzZXJ2YWJsZTx0aGlzUHJvdG8uTGlzdFByb2plY3RQZXJtaXNzaW9uc1Jlc3BvbnNlPiB7XG4gICAgcmV0dXJuIHRoaXMuJHJhd1xuICAgICAgLmxpc3RQcm9qZWN0UGVybWlzc2lvbnMocmVxdWVzdERhdGEsIHJlcXVlc3RNZXRhZGF0YSlcbiAgICAgIC5waXBlKHRocm93U3RhdHVzRXJyb3JzKCksIHRha2VNZXNzYWdlcygpKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBVbmFyeSBjYWxsIEAvb25kZXdvLm5sdS5BZ2VudHMvVHJhaW5BZ2VudFxuICAgKlxuICAgKiBAcGFyYW0gcmVxdWVzdE1lc3NhZ2UgUmVxdWVzdCBtZXNzYWdlXG4gICAqIEBwYXJhbSByZXF1ZXN0TWV0YWRhdGEgUmVxdWVzdCBtZXRhZGF0YVxuICAgKiBAcmV0dXJucyBPYnNlcnZhYmxlPG9uZGV3b05sdTAwNS5PcGVyYXRpb24+XG4gICAqL1xuICB0cmFpbkFnZW50KFxuICAgIHJlcXVlc3REYXRhOiB0aGlzUHJvdG8uVHJhaW5BZ2VudFJlcXVlc3QsXG4gICAgcmVxdWVzdE1ldGFkYXRhID0gbmV3IEdycGNNZXRhZGF0YSgpXG4gICk6IE9ic2VydmFibGU8b25kZXdvTmx1MDA1Lk9wZXJhdGlvbj4ge1xuICAgIHJldHVybiB0aGlzLiRyYXdcbiAgICAgIC50cmFpbkFnZW50KHJlcXVlc3REYXRhLCByZXF1ZXN0TWV0YWRhdGEpXG4gICAgICAucGlwZSh0aHJvd1N0YXR1c0Vycm9ycygpLCB0YWtlTWVzc2FnZXMoKSk7XG4gIH1cblxuICAvKipcbiAgICogVW5hcnkgY2FsbCBAL29uZGV3by5ubHUuQWdlbnRzL0J1aWxkQ2FjaGVcbiAgICpcbiAgICogQHBhcmFtIHJlcXVlc3RNZXNzYWdlIFJlcXVlc3QgbWVzc2FnZVxuICAgKiBAcGFyYW0gcmVxdWVzdE1ldGFkYXRhIFJlcXVlc3QgbWV0YWRhdGFcbiAgICogQHJldHVybnMgT2JzZXJ2YWJsZTxvbmRld29ObHUwMDUuT3BlcmF0aW9uPlxuICAgKi9cbiAgYnVpbGRDYWNoZShcbiAgICByZXF1ZXN0RGF0YTogdGhpc1Byb3RvLkJ1aWxkQ2FjaGVSZXF1ZXN0LFxuICAgIHJlcXVlc3RNZXRhZGF0YSA9IG5ldyBHcnBjTWV0YWRhdGEoKVxuICApOiBPYnNlcnZhYmxlPG9uZGV3b05sdTAwNS5PcGVyYXRpb24+IHtcbiAgICByZXR1cm4gdGhpcy4kcmF3XG4gICAgICAuYnVpbGRDYWNoZShyZXF1ZXN0RGF0YSwgcmVxdWVzdE1ldGFkYXRhKVxuICAgICAgLnBpcGUodGhyb3dTdGF0dXNFcnJvcnMoKSwgdGFrZU1lc3NhZ2VzKCkpO1xuICB9XG5cbiAgLyoqXG4gICAqIFVuYXJ5IGNhbGwgQC9vbmRld28ubmx1LkFnZW50cy9FeHBvcnRBZ2VudFxuICAgKlxuICAgKiBAcGFyYW0gcmVxdWVzdE1lc3NhZ2UgUmVxdWVzdCBtZXNzYWdlXG4gICAqIEBwYXJhbSByZXF1ZXN0TWV0YWRhdGEgUmVxdWVzdCBtZXRhZGF0YVxuICAgKiBAcmV0dXJucyBPYnNlcnZhYmxlPG9uZGV3b05sdTAwNS5PcGVyYXRpb24+XG4gICAqL1xuICBleHBvcnRBZ2VudChcbiAgICByZXF1ZXN0RGF0YTogdGhpc1Byb3RvLkV4cG9ydEFnZW50UmVxdWVzdCxcbiAgICByZXF1ZXN0TWV0YWRhdGEgPSBuZXcgR3JwY01ldGFkYXRhKClcbiAgKTogT2JzZXJ2YWJsZTxvbmRld29ObHUwMDUuT3BlcmF0aW9uPiB7XG4gICAgcmV0dXJuIHRoaXMuJHJhd1xuICAgICAgLmV4cG9ydEFnZW50KHJlcXVlc3REYXRhLCByZXF1ZXN0TWV0YWRhdGEpXG4gICAgICAucGlwZSh0aHJvd1N0YXR1c0Vycm9ycygpLCB0YWtlTWVzc2FnZXMoKSk7XG4gIH1cblxuICAvKipcbiAgICogVW5hcnkgY2FsbCBAL29uZGV3by5ubHUuQWdlbnRzL0V4cG9ydEJlbmNobWFya0FnZW50XG4gICAqXG4gICAqIEBwYXJhbSByZXF1ZXN0TWVzc2FnZSBSZXF1ZXN0IG1lc3NhZ2VcbiAgICogQHBhcmFtIHJlcXVlc3RNZXRhZGF0YSBSZXF1ZXN0IG1ldGFkYXRhXG4gICAqIEByZXR1cm5zIE9ic2VydmFibGU8b25kZXdvTmx1MDA1Lk9wZXJhdGlvbj5cbiAgICovXG4gIGV4cG9ydEJlbmNobWFya0FnZW50KFxuICAgIHJlcXVlc3REYXRhOiB0aGlzUHJvdG8uRXhwb3J0QmVuY2htYXJrQWdlbnRSZXF1ZXN0LFxuICAgIHJlcXVlc3RNZXRhZGF0YSA9IG5ldyBHcnBjTWV0YWRhdGEoKVxuICApOiBPYnNlcnZhYmxlPG9uZGV3b05sdTAwNS5PcGVyYXRpb24+IHtcbiAgICByZXR1cm4gdGhpcy4kcmF3XG4gICAgICAuZXhwb3J0QmVuY2htYXJrQWdlbnQocmVxdWVzdERhdGEsIHJlcXVlc3RNZXRhZGF0YSlcbiAgICAgIC5waXBlKHRocm93U3RhdHVzRXJyb3JzKCksIHRha2VNZXNzYWdlcygpKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBVbmFyeSBjYWxsIEAvb25kZXdvLm5sdS5BZ2VudHMvSW1wb3J0QWdlbnRcbiAgICpcbiAgICogQHBhcmFtIHJlcXVlc3RNZXNzYWdlIFJlcXVlc3QgbWVzc2FnZVxuICAgKiBAcGFyYW0gcmVxdWVzdE1ldGFkYXRhIFJlcXVlc3QgbWV0YWRhdGFcbiAgICogQHJldHVybnMgT2JzZXJ2YWJsZTxvbmRld29ObHUwMDUuT3BlcmF0aW9uPlxuICAgKi9cbiAgaW1wb3J0QWdlbnQoXG4gICAgcmVxdWVzdERhdGE6IHRoaXNQcm90by5JbXBvcnRBZ2VudFJlcXVlc3QsXG4gICAgcmVxdWVzdE1ldGFkYXRhID0gbmV3IEdycGNNZXRhZGF0YSgpXG4gICk6IE9ic2VydmFibGU8b25kZXdvTmx1MDA1Lk9wZXJhdGlvbj4ge1xuICAgIHJldHVybiB0aGlzLiRyYXdcbiAgICAgIC5pbXBvcnRBZ2VudChyZXF1ZXN0RGF0YSwgcmVxdWVzdE1ldGFkYXRhKVxuICAgICAgLnBpcGUodGhyb3dTdGF0dXNFcnJvcnMoKSwgdGFrZU1lc3NhZ2VzKCkpO1xuICB9XG5cbiAgLyoqXG4gICAqIFVuYXJ5IGNhbGwgQC9vbmRld28ubmx1LkFnZW50cy9PcHRpbWl6ZVJhbmtpbmdNYXRjaFxuICAgKlxuICAgKiBAcGFyYW0gcmVxdWVzdE1lc3NhZ2UgUmVxdWVzdCBtZXNzYWdlXG4gICAqIEBwYXJhbSByZXF1ZXN0TWV0YWRhdGEgUmVxdWVzdCBtZXRhZGF0YVxuICAgKiBAcmV0dXJucyBPYnNlcnZhYmxlPG9uZGV3b05sdTAwNS5PcGVyYXRpb24+XG4gICAqL1xuICBvcHRpbWl6ZVJhbmtpbmdNYXRjaChcbiAgICByZXF1ZXN0RGF0YTogdGhpc1Byb3RvLk9wdGltaXplUmFua2luZ01hdGNoUmVxdWVzdCxcbiAgICByZXF1ZXN0TWV0YWRhdGEgPSBuZXcgR3JwY01ldGFkYXRhKClcbiAgKTogT2JzZXJ2YWJsZTxvbmRld29ObHUwMDUuT3BlcmF0aW9uPiB7XG4gICAgcmV0dXJuIHRoaXMuJHJhd1xuICAgICAgLm9wdGltaXplUmFua2luZ01hdGNoKHJlcXVlc3REYXRhLCByZXF1ZXN0TWV0YWRhdGEpXG4gICAgICAucGlwZSh0aHJvd1N0YXR1c0Vycm9ycygpLCB0YWtlTWVzc2FnZXMoKSk7XG4gIH1cblxuICAvKipcbiAgICogVW5hcnkgY2FsbCBAL29uZGV3by5ubHUuQWdlbnRzL1Jlc3RvcmVBZ2VudFxuICAgKlxuICAgKiBAcGFyYW0gcmVxdWVzdE1lc3NhZ2UgUmVxdWVzdCBtZXNzYWdlXG4gICAqIEBwYXJhbSByZXF1ZXN0TWV0YWRhdGEgUmVxdWVzdCBtZXRhZGF0YVxuICAgKiBAcmV0dXJucyBPYnNlcnZhYmxlPG9uZGV3b05sdTAwNS5PcGVyYXRpb24+XG4gICAqL1xuICByZXN0b3JlQWdlbnQoXG4gICAgcmVxdWVzdERhdGE6IHRoaXNQcm90by5SZXN0b3JlQWdlbnRSZXF1ZXN0LFxuICAgIHJlcXVlc3RNZXRhZGF0YSA9IG5ldyBHcnBjTWV0YWRhdGEoKVxuICApOiBPYnNlcnZhYmxlPG9uZGV3b05sdTAwNS5PcGVyYXRpb24+IHtcbiAgICByZXR1cm4gdGhpcy4kcmF3XG4gICAgICAucmVzdG9yZUFnZW50KHJlcXVlc3REYXRhLCByZXF1ZXN0TWV0YWRhdGEpXG4gICAgICAucGlwZSh0aHJvd1N0YXR1c0Vycm9ycygpLCB0YWtlTWVzc2FnZXMoKSk7XG4gIH1cblxuICAvKipcbiAgICogVW5hcnkgY2FsbCBAL29uZGV3by5ubHUuQWdlbnRzL0dldEFnZW50U3RhdGlzdGljc1xuICAgKlxuICAgKiBAcGFyYW0gcmVxdWVzdE1lc3NhZ2UgUmVxdWVzdCBtZXNzYWdlXG4gICAqIEBwYXJhbSByZXF1ZXN0TWV0YWRhdGEgUmVxdWVzdCBtZXRhZGF0YVxuICAgKiBAcmV0dXJucyBPYnNlcnZhYmxlPHRoaXNQcm90by5HZXRBZ2VudFN0YXRpc3RpY3NSZXNwb25zZT5cbiAgICovXG4gIGdldEFnZW50U3RhdGlzdGljcyhcbiAgICByZXF1ZXN0RGF0YTogdGhpc1Byb3RvLkdldEFnZW50U3RhdGlzdGljc1JlcXVlc3QsXG4gICAgcmVxdWVzdE1ldGFkYXRhID0gbmV3IEdycGNNZXRhZGF0YSgpXG4gICk6IE9ic2VydmFibGU8dGhpc1Byb3RvLkdldEFnZW50U3RhdGlzdGljc1Jlc3BvbnNlPiB7XG4gICAgcmV0dXJuIHRoaXMuJHJhd1xuICAgICAgLmdldEFnZW50U3RhdGlzdGljcyhyZXF1ZXN0RGF0YSwgcmVxdWVzdE1ldGFkYXRhKVxuICAgICAgLnBpcGUodGhyb3dTdGF0dXNFcnJvcnMoKSwgdGFrZU1lc3NhZ2VzKCkpO1xuICB9XG5cbiAgLyoqXG4gICAqIFVuYXJ5IGNhbGwgQC9vbmRld28ubmx1LkFnZW50cy9TZXRBZ2VudFN0YXR1c1xuICAgKlxuICAgKiBAcGFyYW0gcmVxdWVzdE1lc3NhZ2UgUmVxdWVzdCBtZXNzYWdlXG4gICAqIEBwYXJhbSByZXF1ZXN0TWV0YWRhdGEgUmVxdWVzdCBtZXRhZGF0YVxuICAgKiBAcmV0dXJucyBPYnNlcnZhYmxlPHRoaXNQcm90by5BZ2VudD5cbiAgICovXG4gIHNldEFnZW50U3RhdHVzKFxuICAgIHJlcXVlc3REYXRhOiB0aGlzUHJvdG8uU2V0QWdlbnRTdGF0dXNSZXF1ZXN0LFxuICAgIHJlcXVlc3RNZXRhZGF0YSA9IG5ldyBHcnBjTWV0YWRhdGEoKVxuICApOiBPYnNlcnZhYmxlPHRoaXNQcm90by5BZ2VudD4ge1xuICAgIHJldHVybiB0aGlzLiRyYXdcbiAgICAgIC5zZXRBZ2VudFN0YXR1cyhyZXF1ZXN0RGF0YSwgcmVxdWVzdE1ldGFkYXRhKVxuICAgICAgLnBpcGUodGhyb3dTdGF0dXNFcnJvcnMoKSwgdGFrZU1lc3NhZ2VzKCkpO1xuICB9XG5cbiAgLyoqXG4gICAqIFVuYXJ5IGNhbGwgQC9vbmRld28ubmx1LkFnZW50cy9TZXRSZXNvdXJjZXNcbiAgICpcbiAgICogQHBhcmFtIHJlcXVlc3RNZXNzYWdlIFJlcXVlc3QgbWVzc2FnZVxuICAgKiBAcGFyYW0gcmVxdWVzdE1ldGFkYXRhIFJlcXVlc3QgbWV0YWRhdGFcbiAgICogQHJldHVybnMgT2JzZXJ2YWJsZTxnb29nbGVQcm90b2J1ZjAwNi5FbXB0eT5cbiAgICovXG4gIHNldFJlc291cmNlcyhcbiAgICByZXF1ZXN0RGF0YTogdGhpc1Byb3RvLlNldFJlc291cmNlc1JlcXVlc3QsXG4gICAgcmVxdWVzdE1ldGFkYXRhID0gbmV3IEdycGNNZXRhZGF0YSgpXG4gICk6IE9ic2VydmFibGU8Z29vZ2xlUHJvdG9idWYwMDYuRW1wdHk+IHtcbiAgICByZXR1cm4gdGhpcy4kcmF3XG4gICAgICAuc2V0UmVzb3VyY2VzKHJlcXVlc3REYXRhLCByZXF1ZXN0TWV0YWRhdGEpXG4gICAgICAucGlwZSh0aHJvd1N0YXR1c0Vycm9ycygpLCB0YWtlTWVzc2FnZXMoKSk7XG4gIH1cblxuICAvKipcbiAgICogVW5hcnkgY2FsbCBAL29uZGV3by5ubHUuQWdlbnRzL0RlbGV0ZVJlc291cmNlc1xuICAgKlxuICAgKiBAcGFyYW0gcmVxdWVzdE1lc3NhZ2UgUmVxdWVzdCBtZXNzYWdlXG4gICAqIEBwYXJhbSByZXF1ZXN0TWV0YWRhdGEgUmVxdWVzdCBtZXRhZGF0YVxuICAgKiBAcmV0dXJucyBPYnNlcnZhYmxlPGdvb2dsZVByb3RvYnVmMDA2LkVtcHR5PlxuICAgKi9cbiAgZGVsZXRlUmVzb3VyY2VzKFxuICAgIHJlcXVlc3REYXRhOiB0aGlzUHJvdG8uRGVsZXRlUmVzb3VyY2VzUmVxdWVzdCxcbiAgICByZXF1ZXN0TWV0YWRhdGEgPSBuZXcgR3JwY01ldGFkYXRhKClcbiAgKTogT2JzZXJ2YWJsZTxnb29nbGVQcm90b2J1ZjAwNi5FbXB0eT4ge1xuICAgIHJldHVybiB0aGlzLiRyYXdcbiAgICAgIC5kZWxldGVSZXNvdXJjZXMocmVxdWVzdERhdGEsIHJlcXVlc3RNZXRhZGF0YSlcbiAgICAgIC5waXBlKHRocm93U3RhdHVzRXJyb3JzKCksIHRha2VNZXNzYWdlcygpKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBVbmFyeSBjYWxsIEAvb25kZXdvLm5sdS5BZ2VudHMvRXhwb3J0UmVzb3VyY2VzXG4gICAqXG4gICAqIEBwYXJhbSByZXF1ZXN0TWVzc2FnZSBSZXF1ZXN0IG1lc3NhZ2VcbiAgICogQHBhcmFtIHJlcXVlc3RNZXRhZGF0YSBSZXF1ZXN0IG1ldGFkYXRhXG4gICAqIEByZXR1cm5zIE9ic2VydmFibGU8dGhpc1Byb3RvLkV4cG9ydFJlc291cmNlc1Jlc3BvbnNlPlxuICAgKi9cbiAgZXhwb3J0UmVzb3VyY2VzKFxuICAgIHJlcXVlc3REYXRhOiB0aGlzUHJvdG8uRXhwb3J0UmVzb3VyY2VzUmVxdWVzdCxcbiAgICByZXF1ZXN0TWV0YWRhdGEgPSBuZXcgR3JwY01ldGFkYXRhKClcbiAgKTogT2JzZXJ2YWJsZTx0aGlzUHJvdG8uRXhwb3J0UmVzb3VyY2VzUmVzcG9uc2U+IHtcbiAgICByZXR1cm4gdGhpcy4kcmF3XG4gICAgICAuZXhwb3J0UmVzb3VyY2VzKHJlcXVlc3REYXRhLCByZXF1ZXN0TWV0YWRhdGEpXG4gICAgICAucGlwZSh0aHJvd1N0YXR1c0Vycm9ycygpLCB0YWtlTWVzc2FnZXMoKSk7XG4gIH1cblxuICAvKipcbiAgICogVW5hcnkgY2FsbCBAL29uZGV3by5ubHUuQWdlbnRzL0dldE1vZGVsU3RhdHVzZXNcbiAgICpcbiAgICogQHBhcmFtIHJlcXVlc3RNZXNzYWdlIFJlcXVlc3QgbWVzc2FnZVxuICAgKiBAcGFyYW0gcmVxdWVzdE1ldGFkYXRhIFJlcXVlc3QgbWV0YWRhdGFcbiAgICogQHJldHVybnMgT2JzZXJ2YWJsZTx0aGlzUHJvdG8uR2V0TW9kZWxTdGF0dXNlc1Jlc3BvbnNlPlxuICAgKi9cbiAgZ2V0TW9kZWxTdGF0dXNlcyhcbiAgICByZXF1ZXN0RGF0YTogdGhpc1Byb3RvLkdldE1vZGVsU3RhdHVzZXNSZXF1ZXN0LFxuICAgIHJlcXVlc3RNZXRhZGF0YSA9IG5ldyBHcnBjTWV0YWRhdGEoKVxuICApOiBPYnNlcnZhYmxlPHRoaXNQcm90by5HZXRNb2RlbFN0YXR1c2VzUmVzcG9uc2U+IHtcbiAgICByZXR1cm4gdGhpcy4kcmF3XG4gICAgICAuZ2V0TW9kZWxTdGF0dXNlcyhyZXF1ZXN0RGF0YSwgcmVxdWVzdE1ldGFkYXRhKVxuICAgICAgLnBpcGUodGhyb3dTdGF0dXNFcnJvcnMoKSwgdGFrZU1lc3NhZ2VzKCkpO1xuICB9XG5cbiAgLyoqXG4gICAqIFVuYXJ5IGNhbGwgQC9vbmRld28ubmx1LkFnZW50cy9HZXRQbGF0Zm9ybU1hcHBpbmdcbiAgICpcbiAgICogQHBhcmFtIHJlcXVlc3RNZXNzYWdlIFJlcXVlc3QgbWVzc2FnZVxuICAgKiBAcGFyYW0gcmVxdWVzdE1ldGFkYXRhIFJlcXVlc3QgbWV0YWRhdGFcbiAgICogQHJldHVybnMgT2JzZXJ2YWJsZTx0aGlzUHJvdG8uUGxhdGZvcm1NYXBwaW5nPlxuICAgKi9cbiAgZ2V0UGxhdGZvcm1NYXBwaW5nKFxuICAgIHJlcXVlc3REYXRhOiB0aGlzUHJvdG8uR2V0UGxhdGZvcm1NYXBwaW5nUmVxdWVzdCxcbiAgICByZXF1ZXN0TWV0YWRhdGEgPSBuZXcgR3JwY01ldGFkYXRhKClcbiAgKTogT2JzZXJ2YWJsZTx0aGlzUHJvdG8uUGxhdGZvcm1NYXBwaW5nPiB7XG4gICAgcmV0dXJuIHRoaXMuJHJhd1xuICAgICAgLmdldFBsYXRmb3JtTWFwcGluZyhyZXF1ZXN0RGF0YSwgcmVxdWVzdE1ldGFkYXRhKVxuICAgICAgLnBpcGUodGhyb3dTdGF0dXNFcnJvcnMoKSwgdGFrZU1lc3NhZ2VzKCkpO1xuICB9XG5cbiAgLyoqXG4gICAqIFVuYXJ5IGNhbGwgQC9vbmRld28ubmx1LkFnZW50cy9TZXRQbGF0Zm9ybU1hcHBpbmdcbiAgICpcbiAgICogQHBhcmFtIHJlcXVlc3RNZXNzYWdlIFJlcXVlc3QgbWVzc2FnZVxuICAgKiBAcGFyYW0gcmVxdWVzdE1ldGFkYXRhIFJlcXVlc3QgbWV0YWRhdGFcbiAgICogQHJldHVybnMgT2JzZXJ2YWJsZTx0aGlzUHJvdG8uUGxhdGZvcm1NYXBwaW5nPlxuICAgKi9cbiAgc2V0UGxhdGZvcm1NYXBwaW5nKFxuICAgIHJlcXVlc3REYXRhOiB0aGlzUHJvdG8uUGxhdGZvcm1NYXBwaW5nLFxuICAgIHJlcXVlc3RNZXRhZGF0YSA9IG5ldyBHcnBjTWV0YWRhdGEoKVxuICApOiBPYnNlcnZhYmxlPHRoaXNQcm90by5QbGF0Zm9ybU1hcHBpbmc+IHtcbiAgICByZXR1cm4gdGhpcy4kcmF3XG4gICAgICAuc2V0UGxhdGZvcm1NYXBwaW5nKHJlcXVlc3REYXRhLCByZXF1ZXN0TWV0YWRhdGEpXG4gICAgICAucGlwZSh0aHJvd1N0YXR1c0Vycm9ycygpLCB0YWtlTWVzc2FnZXMoKSk7XG4gIH1cbn1cbiJdfQ==