@alauda-fe/common 1.4.30-beta.1 → 1.4.31-beta.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -10,22 +10,35 @@ export const BUILT_IN_YAML_EXAMPLES = {
10
10
  yaml: `apiVersion: apps/v1
11
11
  kind: Deployment
12
12
  metadata:
13
- name: example
13
+ labels:
14
+ app: nginx
15
+ name: nginx-deployment
14
16
  spec:
15
17
  selector:
16
18
  matchLabels:
17
- app: httpd
18
- replicas: 3
19
+ app: nginx
19
20
  template:
20
21
  metadata:
21
22
  labels:
22
- app: httpd
23
+ app: nginx
23
24
  spec:
24
25
  containers:
25
- - name: httpd
26
- image: nginx:1.7.9
27
- ports:
28
- - containerPort: 8080`,
26
+ - image: nginx:1.7.9
27
+ name: nginx
28
+ ports:
29
+ - containerPort: 80
30
+ securityContext:
31
+ allowPrivilegeEscalation: false
32
+ capabilities:
33
+ drop:
34
+ - ALL
35
+ runAsNonRoot: true
36
+ seccompProfile:
37
+ type: RuntimeDefault
38
+ securityContext:
39
+ runAsNonRoot: true
40
+ seccompProfile:
41
+ type: RuntimeDefault`,
29
42
  },
30
43
  ],
31
44
  'v1.ConfigMap': [
@@ -36,6 +49,7 @@ spec:
36
49
  kind: ConfigMap
37
50
  metadata:
38
51
  name: example
52
+ namespace: default
39
53
  data:
40
54
  example.property.1: hello
41
55
  example.property.2: world
@@ -52,21 +66,39 @@ data:
52
66
  yaml: `apiVersion: batch/v1
53
67
  kind: CronJob
54
68
  metadata:
55
- name: example
69
+ name: hello
56
70
  spec:
57
- schedule: "@daily"
58
71
  jobTemplate:
72
+ metadata:
73
+ labels:
74
+ cronjob.cpaas.io/name: hello
59
75
  spec:
60
76
  template:
77
+ metadata:
78
+ labels:
79
+ cronjob.cpaas.io/name: hello
61
80
  spec:
62
81
  containers:
63
- - name: hello
64
- image: busybox
65
- args:
66
- - /bin/sh
67
- - -c
68
- - date; echo Hello from the Kubernetes cluster
69
- restartPolicy: OnFailure`,
82
+ - args:
83
+ - /bin/sh
84
+ - -c
85
+ - date; echo Hello from the Kubernetes cluster
86
+ image: busybox
87
+ name: hello
88
+ securityContext:
89
+ allowPrivilegeEscalation: false
90
+ capabilities:
91
+ drop:
92
+ - ALL
93
+ runAsNonRoot: true
94
+ seccompProfile:
95
+ type: RuntimeDefault
96
+ securityContext:
97
+ runAsNonRoot: true
98
+ seccompProfile:
99
+ type: RuntimeDefault
100
+ restartPolicy: Never
101
+ schedule: "*/1 * * * *"`,
70
102
  },
71
103
  ],
72
104
  'v1.PersistentVolume': [
@@ -120,21 +152,55 @@ spec:
120
152
  yaml: `apiVersion: apps/v1
121
153
  kind: DaemonSet
122
154
  metadata:
123
- name: example
155
+ name: fluentd-elasticsearch
156
+ labels:
157
+ k8s-app: fluentd-logging
124
158
  spec:
125
159
  selector:
126
160
  matchLabels:
127
- app: httpd
161
+ name: fluentd-elasticsearch
128
162
  template:
129
163
  metadata:
130
164
  labels:
131
- app: httpd
165
+ name: fluentd-elasticsearch
132
166
  spec:
167
+ tolerations:
168
+ - key: node-role.kubernetes.io/control-plane
169
+ operator: Exists
170
+ effect: NoSchedule
171
+ - key: node-role.kubernetes.io/master
172
+ operator: Exists
173
+ effect: NoSchedule
133
174
  containers:
134
- - name: httpd
135
- image: nginx:1.7.9
136
- ports:
137
- - containerPort: 8080`,
175
+ - name: fluentd-elasticsearch
176
+ image: quay.io/fluentd_elasticsearch/fluentd:v2.5.2
177
+ resources:
178
+ limits:
179
+ memory: 200Mi
180
+ requests:
181
+ cpu: 100m
182
+ memory: 200Mi
183
+ volumeMounts:
184
+ - name: varlog
185
+ mountPath: /var/log
186
+ securityContext:
187
+ allowPrivilegeEscalation: false
188
+ capabilities:
189
+ drop:
190
+ - ALL
191
+ runAsNonRoot: true
192
+ runAsUser: 1000
193
+ runAsGroup: 1000
194
+ seccompProfile:
195
+ type: RuntimeDefault
196
+ securityContext:
197
+ runAsNonRoot: true
198
+ seccompProfile:
199
+ type: RuntimeDefault
200
+ terminationGracePeriodSeconds: 30
201
+ volumes:
202
+ - name: varlog
203
+ emptyDir: {}`,
138
204
  },
139
205
  ],
140
206
  'v1.PersistentVolumeClaim': [
@@ -162,7 +228,7 @@ spec:
162
228
  kind: ResourceQuota
163
229
  metadata:
164
230
  name: compute-quota
165
- namespace: default
231
+ namespace:
166
232
  spec:
167
233
  hard:
168
234
  requests.cpu: '1'
@@ -177,7 +243,7 @@ spec:
177
243
  kind: ResourceQuota
178
244
  metadata:
179
245
  name: storage-class-quota
180
- namespace: default
246
+ namespace:
181
247
  spec:
182
248
  hard:
183
249
  requests.storage: 100Gi
@@ -197,7 +263,7 @@ spec:
197
263
  kind: ResourceQuota
198
264
  metadata:
199
265
  name: object-counts
200
- namespace: default
266
+ namespace:
201
267
  spec:
202
268
  hard:
203
269
  configmaps: "10"
@@ -233,36 +299,49 @@ spec:
233
299
  kind: StatefulSet
234
300
  metadata:
235
301
  name: example
302
+ namespace: consolesamples-ns1
236
303
  spec:
237
- serviceName: "httpd"
238
304
  replicas: 3
239
305
  selector:
240
306
  matchLabels:
241
307
  app: httpd
308
+ serviceName: httpd
242
309
  template:
243
310
  metadata:
244
311
  labels:
245
312
  app: httpd
246
313
  spec:
247
- terminationGracePeriodSeconds: 10
248
314
  containers:
249
- - name: httpd
250
- image: nginx:1.7.9
251
- ports:
252
- - containerPort: 8080
253
- name: web
254
- volumeMounts:
255
- - name: www
256
- mountPath: /var/www/html
315
+ - image: nginx:1.7.9
316
+ name: httpd
317
+ ports:
318
+ - containerPort: 8080
319
+ name: web
320
+ volumeMounts:
321
+ - mountPath: /var/www/html
322
+ name: www
323
+ securityContext:
324
+ allowPrivilegeEscalation: false
325
+ capabilities:
326
+ drop:
327
+ - ALL
328
+ runAsNonRoot: true
329
+ seccompProfile:
330
+ type: RuntimeDefault
331
+ securityContext:
332
+ runAsNonRoot: true
333
+ seccompProfile:
334
+ type: RuntimeDefault
335
+ terminationGracePeriodSeconds: 10
257
336
  volumeClaimTemplates:
258
- - metadata:
259
- name: www
260
- spec:
261
- accessModes: [ "ReadWriteOnce" ]
262
- storageClassName: my-storage-class
263
- resources:
264
- requests:
265
- storage: 1Gi`,
337
+ - metadata:
338
+ name: www
339
+ spec:
340
+ accessModes:
341
+ - ReadWriteOnce
342
+ resources:
343
+ requests:
344
+ storage: 1Gi`,
266
345
  },
267
346
  ],
268
347
  'storage.k8s.io/v1.StorageClass': [
@@ -272,16 +351,9 @@ spec:
272
351
  yaml: `apiVersion: storage.k8s.io/v1
273
352
  kind: StorageClass
274
353
  metadata:
275
- name: fast
276
- provisioner: kubernetes.io/rbd
277
- parameters:
278
- monitors: 10.16.153.105:6789
279
- adminId: kube
280
- adminSecretName: ceph-secret
281
- adminSecretNamespace: kube-system
282
- pool: kube
283
- userId: kube
284
- userSecretName: ceph-secret-user
354
+ name: example
355
+ provisioner: my-provisioner
356
+ reclaimPolicy: Delete
285
357
  `,
286
358
  },
287
359
  ],
@@ -296,7 +368,7 @@ metadata:
296
368
  type: Opaque
297
369
  stringData:
298
370
  username: admin
299
- password: opensesame`,
371
+ password: opensec`,
300
372
  },
301
373
  ],
302
374
  'app.k8s.io/v1beta1.Application': [
@@ -324,6 +396,18 @@ spec:
324
396
  name: nginx
325
397
  ports:
326
398
  - containerPort: 80
399
+ securityContext:
400
+ allowPrivilegeEscalation: false
401
+ capabilities:
402
+ drop:
403
+ - ALL
404
+ runAsNonRoot: true
405
+ seccompProfile:
406
+ type: RuntimeDefault
407
+ securityContext:
408
+ runAsNonRoot: true
409
+ seccompProfile:
410
+ type: RuntimeDefault
327
411
  ---
328
412
  apiVersion: v1
329
413
  kind: Service
@@ -342,4 +426,4 @@ spec:
342
426
  },
343
427
  ],
344
428
  };
345
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoieWFtbC1leGFtcGxlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYnMvY29tbW9uL3NyYy9jb2RlL3lhbWwtZXhhbXBsZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUE7OztHQUdHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sc0JBQXNCLEdBQXFDO0lBQ3RFLG9CQUFvQixFQUFFO1FBQ3BCO1lBQ0UsS0FBSyxFQUFFLGtCQUFrQjtZQUN6QixXQUFXLEVBQUUsaURBQWlEO1lBQzlELElBQUksRUFBRTs7Ozs7Ozs7Ozs7Ozs7Ozs7OzhCQWtCa0I7U0FDekI7S0FDRjtJQUVELGNBQWMsRUFBRTtRQUNkO1lBQ0UsS0FBSyxFQUFFLGlCQUFpQjtZQUN4QixXQUFXLEVBQUUseURBQXlEO1lBQ3RFLElBQUksRUFBRTs7Ozs7Ozs7Ozt1QkFVVztTQUNsQjtLQUNGO0lBRUQsa0JBQWtCLEVBQUU7UUFDbEI7WUFDRSxLQUFLLEVBQUUsZUFBZTtZQUN0QixXQUFXLEVBQUUseUNBQXlDO1lBQ3RELElBQUksRUFBRTs7Ozs7Ozs7Ozs7Ozs7Ozs7bUNBaUJ1QjtTQUM5QjtLQUNGO0lBRUQscUJBQXFCLEVBQUU7UUFDckI7WUFDRSxLQUFLLEVBQUUsd0JBQXdCO1lBQy9CLFdBQVcsRUFBRSxtREFBbUQ7WUFDaEUsSUFBSSxFQUFFOzs7Ozs7Ozs7Ozs7O3VCQWFXO1NBQ2xCO0tBQ0Y7SUFFRCx3Q0FBd0MsRUFBRTtRQUN4QztZQUNFLEtBQUssRUFBRSwrQkFBK0I7WUFDdEMsV0FBVyxFQUFFLGlEQUFpRDtZQUM5RCxJQUFJLEVBQUU7Ozs7Ozs7Ozs7Ozs7Ozs7OzBCQWlCYztTQUNyQjtLQUNGO0lBRUQsbUJBQW1CLEVBQUU7UUFDbkI7WUFDRSxLQUFLLEVBQUUsaUJBQWlCO1lBQ3hCLFdBQVcsRUFBRSxnREFBZ0Q7WUFDN0QsSUFBSSxFQUFFOzs7Ozs7Ozs7Ozs7Ozs7Ozs4QkFpQmtCO1NBQ3pCO0tBQ0Y7SUFFRCwwQkFBMEIsRUFBRTtRQUMxQjtZQUNFLEtBQUssRUFBRSw2QkFBNkI7WUFDcEMsV0FBVyxFQUFFLDRDQUE0QztZQUN6RCxJQUFJLEVBQUU7Ozs7Ozs7Ozs7bUJBVU87U0FDZDtLQUNGO0lBRUQsa0JBQWtCLEVBQUU7UUFDbEI7WUFDRSxLQUFLLEVBQUUsdUJBQXVCO1lBQzlCLFdBQVcsRUFBRSwrQ0FBK0M7WUFDNUQsSUFBSSxFQUFFOzs7Ozs7Ozs7O3VCQVVXO1NBQ2xCO1FBQ0Q7WUFDRSxLQUFLLEVBQUUsNkJBQTZCO1lBQ3BDLFdBQVcsRUFBRSwyREFBMkQ7WUFDeEUsSUFBSSxFQUFFOzs7Ozs7Ozs7Ozs7Ozs7bUVBZXVEO1NBQzlEO1FBQ0Q7WUFDRSxLQUFLLEVBQUUsNkJBQTZCO1lBQ3BDLFdBQVcsRUFBRSxpREFBaUQ7WUFDOUQsSUFBSSxFQUFFOzs7Ozs7Ozs7Ozs7Z0NBWW9CO1NBQzNCO0tBQ0Y7SUFFRCxlQUFlLEVBQUU7UUFDZjtZQUNFLEtBQUssRUFBRSxtQkFBbUI7WUFDMUIsV0FBVyxFQUFFLGtEQUFrRDtZQUMvRCxJQUFJLEVBQUU7Ozs7Ozs7Ozs7b0JBVVE7U0FDZjtLQUNGO0lBRUQscUJBQXFCLEVBQUU7UUFDckI7WUFDRSxLQUFLLEVBQUUsbUJBQW1CO1lBQzFCLFdBQVcsRUFBRSxxREFBcUQ7WUFDbEUsSUFBSSxFQUFFOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7dUJBaUNXO1NBQ2xCO0tBQ0Y7SUFFRCxnQ0FBZ0MsRUFBRTtRQUNoQztZQUNFLEtBQUssRUFBRSxtQkFBbUI7WUFDMUIsV0FBVyxFQUFFLGlDQUFpQztZQUM5QyxJQUFJLEVBQUU7Ozs7Ozs7Ozs7Ozs7Q0FhWDtTQUNJO0tBQ0Y7SUFFRCxXQUFXLEVBQUU7UUFDWDtZQUNFLEtBQUssRUFBRSxjQUFjO1lBQ3JCLFdBQVcsRUFBRSxtREFBbUQ7WUFDaEUsSUFBSSxFQUFFOzs7Ozs7O3VCQU9XO1NBQ2xCO0tBQ0Y7SUFFRCxnQ0FBZ0MsRUFBRTtRQUNoQztZQUNFLEtBQUssRUFBRSxtQkFBbUI7WUFDMUIsV0FBVyxFQUFFLHlEQUF5RDtZQUN0RSxJQUFJLEVBQUU7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O2tCQW1DTTtTQUNiO0tBQ0Y7Q0FDRixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgWWFtbEV4YW1wbGUgfSBmcm9tICcuL3lhbWwtc2lkZWJhci90eXBlcyc7XG5cbi8qKlxuICogS3ViZXJuZXRlcyDotYTmupDnmoTlhoXnva4gWUFNTCDnpLrkvotcbiAqIOaMieeFpyBhcGlWZXJzaW9uLmtpbmQg55qE5qC85byP57uE57uHXG4gKi9cbmV4cG9ydCBjb25zdCBCVUlMVF9JTl9ZQU1MX0VYQU1QTEVTOiB7IFtrZXk6IHN0cmluZ106IFlhbWxFeGFtcGxlW10gfSA9IHtcbiAgJ2FwcHMvdjEuRGVwbG95bWVudCc6IFtcbiAgICB7XG4gICAgICB0aXRsZTogJ0Jhc2ljIERlcGxveW1lbnQnLFxuICAgICAgZGVzY3JpcHRpb246ICdBIGJhc2ljIGRlcGxveW1lbnQgZXhhbXBsZSB3aXRoIG5naW54IGNvbnRhaW5lcicsXG4gICAgICB5YW1sOiBgYXBpVmVyc2lvbjogYXBwcy92MVxua2luZDogRGVwbG95bWVudFxubWV0YWRhdGE6XG4gIG5hbWU6IGV4YW1wbGVcbnNwZWM6XG4gIHNlbGVjdG9yOlxuICAgIG1hdGNoTGFiZWxzOlxuICAgICAgYXBwOiBodHRwZFxuICByZXBsaWNhczogM1xuICB0ZW1wbGF0ZTpcbiAgICBtZXRhZGF0YTpcbiAgICAgIGxhYmVsczpcbiAgICAgICAgYXBwOiBodHRwZFxuICAgIHNwZWM6XG4gICAgICBjb250YWluZXJzOlxuICAgICAgLSBuYW1lOiBodHRwZFxuICAgICAgICBpbWFnZTogbmdpbng6MS43LjlcbiAgICAgICAgcG9ydHM6XG4gICAgICAgIC0gY29udGFpbmVyUG9ydDogODA4MGAsXG4gICAgfSxcbiAgXSxcblxuICAndjEuQ29uZmlnTWFwJzogW1xuICAgIHtcbiAgICAgIHRpdGxlOiAnQmFzaWMgQ29uZmlnTWFwJyxcbiAgICAgIGRlc2NyaXB0aW9uOiAnQSBiYXNpYyBDb25maWdNYXAgZXhhbXBsZSB3aXRoIHByb3BlcnRpZXMgYW5kIGZpbGUgZGF0YScsXG4gICAgICB5YW1sOiBgYXBpVmVyc2lvbjogdjFcbmtpbmQ6IENvbmZpZ01hcFxubWV0YWRhdGE6XG4gIG5hbWU6IGV4YW1wbGVcbmRhdGE6XG4gIGV4YW1wbGUucHJvcGVydHkuMTogaGVsbG9cbiAgZXhhbXBsZS5wcm9wZXJ0eS4yOiB3b3JsZFxuICBleGFtcGxlLnByb3BlcnR5LmZpbGU6IHwtXG4gICAgcHJvcGVydHkuMT12YWx1ZS0xXG4gICAgcHJvcGVydHkuMj12YWx1ZS0yXG4gICAgcHJvcGVydHkuMz12YWx1ZS0zYCxcbiAgICB9LFxuICBdLFxuXG4gICdiYXRjaC92MS5Dcm9uSm9iJzogW1xuICAgIHtcbiAgICAgIHRpdGxlOiAnQmFzaWMgQ3JvbkpvYicsXG4gICAgICBkZXNjcmlwdGlvbjogJ0EgYmFzaWMgQ3JvbkpvYiBleGFtcGxlIHRoYXQgcnVucyBkYWlseScsXG4gICAgICB5YW1sOiBgYXBpVmVyc2lvbjogYmF0Y2gvdjFcbmtpbmQ6IENyb25Kb2Jcbm1ldGFkYXRhOlxuICBuYW1lOiBleGFtcGxlXG5zcGVjOlxuICBzY2hlZHVsZTogXCJAZGFpbHlcIlxuICBqb2JUZW1wbGF0ZTpcbiAgICBzcGVjOlxuICAgICAgdGVtcGxhdGU6XG4gICAgICAgIHNwZWM6XG4gICAgICAgICAgY29udGFpbmVyczpcbiAgICAgICAgICAtIG5hbWU6IGhlbGxvXG4gICAgICAgICAgICBpbWFnZTogYnVzeWJveFxuICAgICAgICAgICAgYXJnczpcbiAgICAgICAgICAgIC0gL2Jpbi9zaFxuICAgICAgICAgICAgLSAtY1xuICAgICAgICAgICAgLSBkYXRlOyBlY2hvIEhlbGxvIGZyb20gdGhlIEt1YmVybmV0ZXMgY2x1c3RlclxuICAgICAgICAgIHJlc3RhcnRQb2xpY3k6IE9uRmFpbHVyZWAsXG4gICAgfSxcbiAgXSxcblxuICAndjEuUGVyc2lzdGVudFZvbHVtZSc6IFtcbiAgICB7XG4gICAgICB0aXRsZTogJ0Jhc2ljIFBlcnNpc3RlbnRWb2x1bWUnLFxuICAgICAgZGVzY3JpcHRpb246ICdBIGJhc2ljIFBlcnNpc3RlbnRWb2x1bWUgZXhhbXBsZSB3aXRoIE5GUyBzdG9yYWdlJyxcbiAgICAgIHlhbWw6IGBhcGlWZXJzaW9uOiB2MVxua2luZDogUGVyc2lzdGVudFZvbHVtZVxubWV0YWRhdGE6XG4gIG5hbWU6IGV4YW1wbGVcbnNwZWM6XG4gIGNhcGFjaXR5OlxuICAgIHN0b3JhZ2U6IDVHaVxuICBhY2Nlc3NNb2RlczpcbiAgICAtIFJlYWRXcml0ZU9uY2VcbiAgcGVyc2lzdGVudFZvbHVtZVJlY2xhaW1Qb2xpY3k6IFJldGFpblxuICBzdG9yYWdlQ2xhc3NOYW1lOiBzbG93XG4gIG5mczpcbiAgICBwYXRoOiAvdG1wXG4gICAgc2VydmVyOiAxNzIuMTcuMC4yYCxcbiAgICB9LFxuICBdLFxuXG4gICdhdXRvc2NhbGluZy92Mi5Ib3Jpem9udGFsUG9kQXV0b3NjYWxlcic6IFtcbiAgICB7XG4gICAgICB0aXRsZTogJ0Jhc2ljIEhvcml6b250YWxQb2RBdXRvc2NhbGVyJyxcbiAgICAgIGRlc2NyaXB0aW9uOiAnQSBiYXNpYyBIUEEgZXhhbXBsZSB3aXRoIENQVSB1dGlsaXphdGlvbiB0YXJnZXQnLFxuICAgICAgeWFtbDogYGFwaVZlcnNpb246IGF1dG9zY2FsaW5nL3YyXG5raW5kOiBIb3Jpem9udGFsUG9kQXV0b3NjYWxlclxubWV0YWRhdGE6XG4gIG5hbWU6IGV4YW1wbGVcbnNwZWM6XG4gIHNjYWxlVGFyZ2V0UmVmOlxuICAgIGFwaVZlcnNpb246IGFwcHMvdjFcbiAgICBraW5kOiBEZXBsb3ltZW50XG4gICAgbmFtZTogZXhhbXBsZVxuICBtaW5SZXBsaWNhczogMVxuICBtYXhSZXBsaWNhczogM1xuICBtZXRyaWNzOlxuICAtIHR5cGU6IFJlc291cmNlXG4gICAgcmVzb3VyY2U6XG4gICAgICBuYW1lOiBjcHVcbiAgICAgIHRhcmdldDpcbiAgICAgICAgYXZlcmFnZVV0aWxpemF0aW9uOiA1MFxuICAgICAgICB0eXBlOiBVdGlsaXphdGlvbmAsXG4gICAgfSxcbiAgXSxcblxuICAnYXBwcy92MS5EYWVtb25TZXQnOiBbXG4gICAge1xuICAgICAgdGl0bGU6ICdCYXNpYyBEYWVtb25TZXQnLFxuICAgICAgZGVzY3JpcHRpb246ICdBIGJhc2ljIERhZW1vblNldCBleGFtcGxlIHdpdGggbmdpbnggY29udGFpbmVyJyxcbiAgICAgIHlhbWw6IGBhcGlWZXJzaW9uOiBhcHBzL3YxXG5raW5kOiBEYWVtb25TZXRcbm1ldGFkYXRhOlxuICBuYW1lOiBleGFtcGxlXG5zcGVjOlxuICBzZWxlY3RvcjpcbiAgICBtYXRjaExhYmVsczpcbiAgICAgIGFwcDogaHR0cGRcbiAgdGVtcGxhdGU6XG4gICAgbWV0YWRhdGE6XG4gICAgICBsYWJlbHM6XG4gICAgICAgIGFwcDogaHR0cGRcbiAgICBzcGVjOlxuICAgICAgY29udGFpbmVyczpcbiAgICAgIC0gbmFtZTogaHR0cGRcbiAgICAgICAgaW1hZ2U6IG5naW54OjEuNy45XG4gICAgICAgIHBvcnRzOlxuICAgICAgICAtIGNvbnRhaW5lclBvcnQ6IDgwODBgLFxuICAgIH0sXG4gIF0sXG5cbiAgJ3YxLlBlcnNpc3RlbnRWb2x1bWVDbGFpbSc6IFtcbiAgICB7XG4gICAgICB0aXRsZTogJ0Jhc2ljIFBlcnNpc3RlbnRWb2x1bWVDbGFpbScsXG4gICAgICBkZXNjcmlwdGlvbjogJ0EgYmFzaWMgUFZDIGV4YW1wbGUgcmVxdWVzdGluZyAxR2kgc3RvcmFnZScsXG4gICAgICB5YW1sOiBgYXBpVmVyc2lvbjogdjFcbmtpbmQ6IFBlcnNpc3RlbnRWb2x1bWVDbGFpbVxubWV0YWRhdGE6XG4gIG5hbWU6IGV4YW1wbGVcbnNwZWM6XG4gIGFjY2Vzc01vZGVzOlxuICAgIC0gUmVhZFdyaXRlT25jZVxuICB2b2x1bWVNb2RlOiBGaWxlc3lzdGVtXG4gIHJlc291cmNlczpcbiAgICByZXF1ZXN0czpcbiAgICAgIHN0b3JhZ2U6IDFHaWAsXG4gICAgfSxcbiAgXSxcblxuICAndjEuUmVzb3VyY2VRdW90YSc6IFtcbiAgICB7XG4gICAgICB0aXRsZTogJ0NvbXB1dGUgUmVzb3VyY2VRdW90YScsXG4gICAgICBkZXNjcmlwdGlvbjogJ0EgUmVzb3VyY2VRdW90YSBleGFtcGxlIGZvciBjb21wdXRlIHJlc291cmNlcycsXG4gICAgICB5YW1sOiBgYXBpVmVyc2lvbjogdjFcbmtpbmQ6IFJlc291cmNlUXVvdGFcbm1ldGFkYXRhOlxuICBuYW1lOiBjb21wdXRlLXF1b3RhXG4gIG5hbWVzcGFjZTogZGVmYXVsdFxuc3BlYzpcbiAgaGFyZDpcbiAgICByZXF1ZXN0cy5jcHU6ICcxJ1xuICAgIHJlcXVlc3RzLm1lbW9yeTogMUdpXG4gICAgbGltaXRzLmNwdTogJzInXG4gICAgbGltaXRzLm1lbW9yeTogMkdpYCxcbiAgICB9LFxuICAgIHtcbiAgICAgIHRpdGxlOiAnU3RvcmFnZSBDbGFzcyBSZXNvdXJjZVF1b3RhJyxcbiAgICAgIGRlc2NyaXB0aW9uOiAnQSBSZXNvdXJjZVF1b3RhIGV4YW1wbGUgZm9yIHN0b3JhZ2UgY2xhc3Mgc3BlY2lmaWMgcXVvdGFzJyxcbiAgICAgIHlhbWw6IGBhcGlWZXJzaW9uOiB2MVxua2luZDogUmVzb3VyY2VRdW90YVxubWV0YWRhdGE6XG4gIG5hbWU6IHN0b3JhZ2UtY2xhc3MtcXVvdGFcbiAgbmFtZXNwYWNlOiBkZWZhdWx0XG5zcGVjOlxuICBoYXJkOlxuICAgIHJlcXVlc3RzLnN0b3JhZ2U6IDEwMEdpXG4gICAgcGVyc2lzdGVudHZvbHVtZWNsYWltczogJzEwMCdcbiAgICAjIEZvciBxdW90YSBzcGVjaWZpYyB0byBhIHN0b3JhZ2UgY2xhc3MsIHRoZSBzdG9yYWdlIGNsYXNzIG11c3QgaGF2ZSB0aGUgc2FtZSBuYW1lXG4gICAgZ29sZC5zdG9yYWdlLWNsYXNzLmt1YmVybmV0ZXMuaW8vcmVxdWVzdHMuc3RvcmFnZTogM0dpXG4gICAgZ29sZC5zdG9yYWdlLWNsYXNzLmt1YmVybmV0ZXMuaW8vcGVyc2lzdGVudHZvbHVtZWNsYWltczogJzUnXG4gICAgc2lsdmVyLnN0b3JhZ2UtY2xhc3Mua3ViZXJuZXRlcy5pby9yZXF1ZXN0cy5zdG9yYWdlOiAyR2lcbiAgICBzaWx2ZXIuc3RvcmFnZS1jbGFzcy5rdWJlcm5ldGVzLmlvL3BlcnNpc3RlbnR2b2x1bWVjbGFpbXM6ICczJ1xuICAgIGJyb256ZS5zdG9yYWdlLWNsYXNzLmt1YmVybmV0ZXMuaW8vcmVxdWVzdHMuc3RvcmFnZTogMUdpXG4gICAgYnJvbnplLnN0b3JhZ2UtY2xhc3Mua3ViZXJuZXRlcy5pby9wZXJzaXN0ZW50dm9sdW1lY2xhaW1zOiAnMSdgLFxuICAgIH0sXG4gICAge1xuICAgICAgdGl0bGU6ICdPYmplY3QgQ291bnRzIFJlc291cmNlUXVvdGEnLFxuICAgICAgZGVzY3JpcHRpb246ICdBIFJlc291cmNlUXVvdGEgZXhhbXBsZSBmb3Igb2JqZWN0IGNvdW50IGxpbWl0cycsXG4gICAgICB5YW1sOiBgYXBpVmVyc2lvbjogdjFcbmtpbmQ6IFJlc291cmNlUXVvdGFcbm1ldGFkYXRhOlxuICBuYW1lOiBvYmplY3QtY291bnRzXG4gIG5hbWVzcGFjZTogZGVmYXVsdFxuc3BlYzpcbiAgaGFyZDpcbiAgICBjb25maWdtYXBzOiBcIjEwXCJcbiAgICBwZXJzaXN0ZW50dm9sdW1lY2xhaW1zOiBcIjRcIlxuICAgIHJlcGxpY2F0aW9uY29udHJvbGxlcnM6IFwiMjBcIlxuICAgIHNlY3JldHM6IFwiMTBcIlxuICAgIHNlcnZpY2VzOiBcIjEwXCJcbiAgICBzZXJ2aWNlcy5sb2FkYmFsYW5jZXJzOiBcIjJcImAsXG4gICAgfSxcbiAgXSxcblxuICAndjEuTGltaXRSYW5nZSc6IFtcbiAgICB7XG4gICAgICB0aXRsZTogJ01lbW9yeSBMaW1pdFJhbmdlJyxcbiAgICAgIGRlc2NyaXB0aW9uOiAnQSBMaW1pdFJhbmdlIGV4YW1wbGUgZm9yIGNvbnRhaW5lciBtZW1vcnkgbGltaXRzJyxcbiAgICAgIHlhbWw6IGBhcGlWZXJzaW9uOiB2MVxua2luZDogTGltaXRSYW5nZVxubWV0YWRhdGE6XG4gIG5hbWU6IG1lbS1saW1pdC1yYW5nZVxuc3BlYzpcbiAgbGltaXRzOlxuICAtIGRlZmF1bHQ6XG4gICAgICBtZW1vcnk6IDUxMk1pXG4gICAgZGVmYXVsdFJlcXVlc3Q6XG4gICAgICBtZW1vcnk6IDI1Nk1pXG4gICAgdHlwZTogQ29udGFpbmVyYCxcbiAgICB9LFxuICBdLFxuXG4gICdhcHBzL3YxLlN0YXRlZnVsU2V0JzogW1xuICAgIHtcbiAgICAgIHRpdGxlOiAnQmFzaWMgU3RhdGVmdWxTZXQnLFxuICAgICAgZGVzY3JpcHRpb246ICdBIGJhc2ljIFN0YXRlZnVsU2V0IGV4YW1wbGUgd2l0aCBwZXJzaXN0ZW50IHN0b3JhZ2UnLFxuICAgICAgeWFtbDogYGFwaVZlcnNpb246IGFwcHMvdjFcbmtpbmQ6IFN0YXRlZnVsU2V0XG5tZXRhZGF0YTpcbiAgbmFtZTogZXhhbXBsZVxuc3BlYzpcbiAgc2VydmljZU5hbWU6IFwiaHR0cGRcIlxuICByZXBsaWNhczogM1xuICBzZWxlY3RvcjpcbiAgICBtYXRjaExhYmVsczpcbiAgICAgIGFwcDogaHR0cGRcbiAgdGVtcGxhdGU6XG4gICAgbWV0YWRhdGE6XG4gICAgICBsYWJlbHM6XG4gICAgICAgIGFwcDogaHR0cGRcbiAgICBzcGVjOlxuICAgICAgdGVybWluYXRpb25HcmFjZVBlcmlvZFNlY29uZHM6IDEwXG4gICAgICBjb250YWluZXJzOlxuICAgICAgLSBuYW1lOiBodHRwZFxuICAgICAgICBpbWFnZTogbmdpbng6MS43LjlcbiAgICAgICAgcG9ydHM6XG4gICAgICAgIC0gY29udGFpbmVyUG9ydDogODA4MFxuICAgICAgICAgIG5hbWU6IHdlYlxuICAgICAgICB2b2x1bWVNb3VudHM6XG4gICAgICAgIC0gbmFtZTogd3d3XG4gICAgICAgICAgbW91bnRQYXRoOiAvdmFyL3d3dy9odG1sXG4gIHZvbHVtZUNsYWltVGVtcGxhdGVzOlxuICAtIG1ldGFkYXRhOlxuICAgICAgbmFtZTogd3d3XG4gICAgc3BlYzpcbiAgICAgIGFjY2Vzc01vZGVzOiBbIFwiUmVhZFdyaXRlT25jZVwiIF1cbiAgICAgIHN0b3JhZ2VDbGFzc05hbWU6IG15LXN0b3JhZ2UtY2xhc3NcbiAgICAgIHJlc291cmNlczpcbiAgICAgICAgcmVxdWVzdHM6XG4gICAgICAgICAgc3RvcmFnZTogMUdpYCxcbiAgICB9LFxuICBdLFxuXG4gICdzdG9yYWdlLms4cy5pby92MS5TdG9yYWdlQ2xhc3MnOiBbXG4gICAge1xuICAgICAgdGl0bGU6ICdGYXN0IFN0b3JhZ2VDbGFzcycsXG4gICAgICBkZXNjcmlwdGlvbjogJ0NlcGggZmFzdCBzdG9yYWdlIGNsYXNzIGV4YW1wbGUnLFxuICAgICAgeWFtbDogYGFwaVZlcnNpb246IHN0b3JhZ2UuazhzLmlvL3YxXG5raW5kOiBTdG9yYWdlQ2xhc3Ncbm1ldGFkYXRhOlxuICBuYW1lOiBmYXN0XG5wcm92aXNpb25lcjoga3ViZXJuZXRlcy5pby9yYmRcbnBhcmFtZXRlcnM6XG4gIG1vbml0b3JzOiAxMC4xNi4xNTMuMTA1OjY3ODlcbiAgYWRtaW5JZDoga3ViZVxuICBhZG1pblNlY3JldE5hbWU6IGNlcGgtc2VjcmV0XG4gIGFkbWluU2VjcmV0TmFtZXNwYWNlOiBrdWJlLXN5c3RlbVxuICBwb29sOiBrdWJlXG4gIHVzZXJJZDoga3ViZVxuICB1c2VyU2VjcmV0TmFtZTogY2VwaC1zZWNyZXQtdXNlclxuYCxcbiAgICB9LFxuICBdLFxuXG4gICd2MS5TZWNyZXQnOiBbXG4gICAge1xuICAgICAgdGl0bGU6ICdCYXNpYyBTZWNyZXQnLFxuICAgICAgZGVzY3JpcHRpb246ICdBIGJhc2ljIFNlY3JldCBleGFtcGxlIHdpdGggdXNlcm5hbWUgYW5kIHBhc3N3b3JkJyxcbiAgICAgIHlhbWw6IGBhcGlWZXJzaW9uOiB2MVxua2luZDogU2VjcmV0XG5tZXRhZGF0YTpcbiAgbmFtZTogZXhhbXBsZVxudHlwZTogT3BhcXVlXG5zdHJpbmdEYXRhOlxuICB1c2VybmFtZTogYWRtaW5cbiAgcGFzc3dvcmQ6IG9wZW5zZXNhbWVgLFxuICAgIH0sXG4gIF0sXG5cbiAgJ2FwcC5rOHMuaW8vdjFiZXRhMS5BcHBsaWNhdGlvbic6IFtcbiAgICB7XG4gICAgICB0aXRsZTogJ0Jhc2ljIEFwcGxpY2F0aW9uJyxcbiAgICAgIGRlc2NyaXB0aW9uOiAnQSBiYXNpYyBBcHBsaWNhdGlvbiBleGFtcGxlIHdpdGggRGVwbG95bWVudCBhbmQgU2VydmljZScsXG4gICAgICB5YW1sOiBgYXBpVmVyc2lvbjogYXBwcy92MVxua2luZDogRGVwbG95bWVudFxubWV0YWRhdGE6XG4gIGxhYmVsczpcbiAgICBhcHA6IG5naW54XG4gIG5hbWU6IG5naW54LWRlcGxveW1lbnRcbnNwZWM6XG4gIHJlcGxpY2FzOiAxXG4gIHNlbGVjdG9yOlxuICAgIG1hdGNoTGFiZWxzOlxuICAgICAgYXBwOiBuZ2lueFxuICB0ZW1wbGF0ZTpcbiAgICBtZXRhZGF0YTpcbiAgICAgIGxhYmVsczpcbiAgICAgICAgYXBwOiBuZ2lueFxuICAgIHNwZWM6XG4gICAgICBjb250YWluZXJzOlxuICAgICAgICAtIGltYWdlOiBuZ2lueDoxLjcuOVxuICAgICAgICAgIG5hbWU6IG5naW54XG4gICAgICAgICAgcG9ydHM6XG4gICAgICAgICAgICAtIGNvbnRhaW5lclBvcnQ6IDgwXG4tLS1cbmFwaVZlcnNpb246IHYxXG5raW5kOiBTZXJ2aWNlXG5tZXRhZGF0YTpcbiAgbGFiZWxzOlxuICAgIGFwcDogbmdpbnhcbiAgbmFtZTogbmdpbnhcbnNwZWM6XG4gIHBvcnRzOlxuICAgIC0gcG9ydDogODBcbiAgICAgIHByb3RvY29sOiBUQ1BcbiAgICAgIHRhcmdldFBvcnQ6IDgwXG4gIHNlbGVjdG9yOlxuICAgIGFwcDogbmdpbnhcbiAgdHlwZTogQ2x1c3RlcklQYCxcbiAgICB9LFxuICBdLFxufTtcbiJdfQ==
429
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoieWFtbC1leGFtcGxlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYnMvY29tbW9uL3NyYy9jb2RlL3lhbWwtZXhhbXBsZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUE7OztHQUdHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sc0JBQXNCLEdBQXFDO0lBQ3RFLG9CQUFvQixFQUFFO1FBQ3BCO1lBQ0UsS0FBSyxFQUFFLGtCQUFrQjtZQUN6QixXQUFXLEVBQUUsaURBQWlEO1lBQzlELElBQUksRUFBRTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OzsrQkErQm1CO1NBQzFCO0tBQ0Y7SUFFRCxjQUFjLEVBQUU7UUFDZDtZQUNFLEtBQUssRUFBRSxpQkFBaUI7WUFDeEIsV0FBVyxFQUFFLHlEQUF5RDtZQUN0RSxJQUFJLEVBQUU7Ozs7Ozs7Ozs7O3VCQVdXO1NBQ2xCO0tBQ0Y7SUFFRCxrQkFBa0IsRUFBRTtRQUNsQjtZQUNFLEtBQUssRUFBRSxlQUFlO1lBQ3RCLFdBQVcsRUFBRSx5Q0FBeUM7WUFDdEQsSUFBSSxFQUFFOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OzswQkFtQ2M7U0FDckI7S0FDRjtJQUVELHFCQUFxQixFQUFFO1FBQ3JCO1lBQ0UsS0FBSyxFQUFFLHdCQUF3QjtZQUMvQixXQUFXLEVBQUUsbURBQW1EO1lBQ2hFLElBQUksRUFBRTs7Ozs7Ozs7Ozs7Ozt1QkFhVztTQUNsQjtLQUNGO0lBRUQsd0NBQXdDLEVBQUU7UUFDeEM7WUFDRSxLQUFLLEVBQUUsK0JBQStCO1lBQ3RDLFdBQVcsRUFBRSxpREFBaUQ7WUFDOUQsSUFBSSxFQUFFOzs7Ozs7Ozs7Ozs7Ozs7OzswQkFpQmM7U0FDckI7S0FDRjtJQUVELG1CQUFtQixFQUFFO1FBQ25CO1lBQ0UsS0FBSyxFQUFFLGlCQUFpQjtZQUN4QixXQUFXLEVBQUUsZ0RBQWdEO1lBQzdELElBQUksRUFBRTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O3FCQW1EUztTQUNoQjtLQUNGO0lBRUQsMEJBQTBCLEVBQUU7UUFDMUI7WUFDRSxLQUFLLEVBQUUsNkJBQTZCO1lBQ3BDLFdBQVcsRUFBRSw0Q0FBNEM7WUFDekQsSUFBSSxFQUFFOzs7Ozs7Ozs7O21CQVVPO1NBQ2Q7S0FDRjtJQUVELGtCQUFrQixFQUFFO1FBQ2xCO1lBQ0UsS0FBSyxFQUFFLHVCQUF1QjtZQUM5QixXQUFXLEVBQUUsK0NBQStDO1lBQzVELElBQUksRUFBRTs7Ozs7Ozs7Ozt1QkFVVztTQUNsQjtRQUNEO1lBQ0UsS0FBSyxFQUFFLDZCQUE2QjtZQUNwQyxXQUFXLEVBQUUsMkRBQTJEO1lBQ3hFLElBQUksRUFBRTs7Ozs7Ozs7Ozs7Ozs7O21FQWV1RDtTQUM5RDtRQUNEO1lBQ0UsS0FBSyxFQUFFLDZCQUE2QjtZQUNwQyxXQUFXLEVBQUUsaURBQWlEO1lBQzlELElBQUksRUFBRTs7Ozs7Ozs7Ozs7O2dDQVlvQjtTQUMzQjtLQUNGO0lBRUQsZUFBZSxFQUFFO1FBQ2Y7WUFDRSxLQUFLLEVBQUUsbUJBQW1CO1lBQzFCLFdBQVcsRUFBRSxrREFBa0Q7WUFDL0QsSUFBSSxFQUFFOzs7Ozs7Ozs7O29CQVVRO1NBQ2Y7S0FDRjtJQUVELHFCQUFxQixFQUFFO1FBQ3JCO1lBQ0UsS0FBSyxFQUFFLG1CQUFtQjtZQUMxQixXQUFXLEVBQUUscURBQXFEO1lBQ2xFLElBQUksRUFBRTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozt5QkE4Q2E7U0FDcEI7S0FDRjtJQUVELGdDQUFnQyxFQUFFO1FBQ2hDO1lBQ0UsS0FBSyxFQUFFLG1CQUFtQjtZQUMxQixXQUFXLEVBQUUsaUNBQWlDO1lBQzlDLElBQUksRUFBRTs7Ozs7O0NBTVg7U0FDSTtLQUNGO0lBRUQsV0FBVyxFQUFFO1FBQ1g7WUFDRSxLQUFLLEVBQUUsY0FBYztZQUNyQixXQUFXLEVBQUUsbURBQW1EO1lBQ2hFLElBQUksRUFBRTs7Ozs7OztvQkFPUTtTQUNmO0tBQ0Y7SUFFRCxnQ0FBZ0MsRUFBRTtRQUNoQztZQUNFLEtBQUssRUFBRSxtQkFBbUI7WUFDMUIsV0FBVyxFQUFFLHlEQUF5RDtZQUN0RSxJQUFJLEVBQUU7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O2tCQStDTTtTQUNiO0tBQ0Y7Q0FDRixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgWWFtbEV4YW1wbGUgfSBmcm9tICcuL3lhbWwtc2lkZWJhci90eXBlcyc7XG5cbi8qKlxuICogS3ViZXJuZXRlcyDotYTmupDnmoTlhoXnva4gWUFNTCDnpLrkvotcbiAqIOaMieeFpyBhcGlWZXJzaW9uLmtpbmQg55qE5qC85byP57uE57uHXG4gKi9cbmV4cG9ydCBjb25zdCBCVUlMVF9JTl9ZQU1MX0VYQU1QTEVTOiB7IFtrZXk6IHN0cmluZ106IFlhbWxFeGFtcGxlW10gfSA9IHtcbiAgJ2FwcHMvdjEuRGVwbG95bWVudCc6IFtcbiAgICB7XG4gICAgICB0aXRsZTogJ0Jhc2ljIERlcGxveW1lbnQnLFxuICAgICAgZGVzY3JpcHRpb246ICdBIGJhc2ljIGRlcGxveW1lbnQgZXhhbXBsZSB3aXRoIG5naW54IGNvbnRhaW5lcicsXG4gICAgICB5YW1sOiBgYXBpVmVyc2lvbjogYXBwcy92MVxua2luZDogRGVwbG95bWVudFxubWV0YWRhdGE6XG4gIGxhYmVsczpcbiAgICBhcHA6IG5naW54XG4gIG5hbWU6IG5naW54LWRlcGxveW1lbnRcbnNwZWM6XG4gIHNlbGVjdG9yOlxuICAgIG1hdGNoTGFiZWxzOlxuICAgICAgYXBwOiBuZ2lueFxuICB0ZW1wbGF0ZTpcbiAgICBtZXRhZGF0YTpcbiAgICAgIGxhYmVsczpcbiAgICAgICAgYXBwOiBuZ2lueFxuICAgIHNwZWM6XG4gICAgICBjb250YWluZXJzOlxuICAgICAgICAtIGltYWdlOiBuZ2lueDoxLjcuOVxuICAgICAgICAgIG5hbWU6IG5naW54XG4gICAgICAgICAgcG9ydHM6XG4gICAgICAgICAgICAtIGNvbnRhaW5lclBvcnQ6IDgwXG4gICAgICAgICAgc2VjdXJpdHlDb250ZXh0OlxuICAgICAgICAgICAgYWxsb3dQcml2aWxlZ2VFc2NhbGF0aW9uOiBmYWxzZVxuICAgICAgICAgICAgY2FwYWJpbGl0aWVzOlxuICAgICAgICAgICAgICBkcm9wOlxuICAgICAgICAgICAgICAgIC0gQUxMXG4gICAgICAgICAgICBydW5Bc05vblJvb3Q6IHRydWVcbiAgICAgICAgICAgIHNlY2NvbXBQcm9maWxlOlxuICAgICAgICAgICAgICB0eXBlOiBSdW50aW1lRGVmYXVsdFxuICAgICAgc2VjdXJpdHlDb250ZXh0OlxuICAgICAgICBydW5Bc05vblJvb3Q6IHRydWVcbiAgICAgICAgc2VjY29tcFByb2ZpbGU6XG4gICAgICAgICAgdHlwZTogUnVudGltZURlZmF1bHRgLFxuICAgIH0sXG4gIF0sXG5cbiAgJ3YxLkNvbmZpZ01hcCc6IFtcbiAgICB7XG4gICAgICB0aXRsZTogJ0Jhc2ljIENvbmZpZ01hcCcsXG4gICAgICBkZXNjcmlwdGlvbjogJ0EgYmFzaWMgQ29uZmlnTWFwIGV4YW1wbGUgd2l0aCBwcm9wZXJ0aWVzIGFuZCBmaWxlIGRhdGEnLFxuICAgICAgeWFtbDogYGFwaVZlcnNpb246IHYxXG5raW5kOiBDb25maWdNYXBcbm1ldGFkYXRhOlxuICBuYW1lOiBleGFtcGxlXG4gIG5hbWVzcGFjZTogZGVmYXVsdFxuZGF0YTpcbiAgZXhhbXBsZS5wcm9wZXJ0eS4xOiBoZWxsb1xuICBleGFtcGxlLnByb3BlcnR5LjI6IHdvcmxkXG4gIGV4YW1wbGUucHJvcGVydHkuZmlsZTogfC1cbiAgICBwcm9wZXJ0eS4xPXZhbHVlLTFcbiAgICBwcm9wZXJ0eS4yPXZhbHVlLTJcbiAgICBwcm9wZXJ0eS4zPXZhbHVlLTNgLFxuICAgIH0sXG4gIF0sXG5cbiAgJ2JhdGNoL3YxLkNyb25Kb2InOiBbXG4gICAge1xuICAgICAgdGl0bGU6ICdCYXNpYyBDcm9uSm9iJyxcbiAgICAgIGRlc2NyaXB0aW9uOiAnQSBiYXNpYyBDcm9uSm9iIGV4YW1wbGUgdGhhdCBydW5zIGRhaWx5JyxcbiAgICAgIHlhbWw6IGBhcGlWZXJzaW9uOiBiYXRjaC92MVxua2luZDogQ3JvbkpvYlxubWV0YWRhdGE6XG4gIG5hbWU6IGhlbGxvXG5zcGVjOlxuICBqb2JUZW1wbGF0ZTpcbiAgICBtZXRhZGF0YTpcbiAgICAgIGxhYmVsczpcbiAgICAgICAgY3JvbmpvYi5jcGFhcy5pby9uYW1lOiBoZWxsb1xuICAgIHNwZWM6XG4gICAgICB0ZW1wbGF0ZTpcbiAgICAgICAgbWV0YWRhdGE6XG4gICAgICAgICAgbGFiZWxzOlxuICAgICAgICAgICAgY3JvbmpvYi5jcGFhcy5pby9uYW1lOiBoZWxsb1xuICAgICAgICBzcGVjOlxuICAgICAgICAgIGNvbnRhaW5lcnM6XG4gICAgICAgICAgICAtIGFyZ3M6XG4gICAgICAgICAgICAgICAgLSAvYmluL3NoXG4gICAgICAgICAgICAgICAgLSAtY1xuICAgICAgICAgICAgICAgIC0gZGF0ZTsgZWNobyBIZWxsbyBmcm9tIHRoZSBLdWJlcm5ldGVzIGNsdXN0ZXJcbiAgICAgICAgICAgICAgaW1hZ2U6IGJ1c3lib3hcbiAgICAgICAgICAgICAgbmFtZTogaGVsbG9cbiAgICAgICAgICAgICAgc2VjdXJpdHlDb250ZXh0OlxuICAgICAgICAgICAgICAgIGFsbG93UHJpdmlsZWdlRXNjYWxhdGlvbjogZmFsc2VcbiAgICAgICAgICAgICAgICBjYXBhYmlsaXRpZXM6XG4gICAgICAgICAgICAgICAgICBkcm9wOlxuICAgICAgICAgICAgICAgICAgICAtIEFMTFxuICAgICAgICAgICAgICAgIHJ1bkFzTm9uUm9vdDogdHJ1ZVxuICAgICAgICAgICAgICAgIHNlY2NvbXBQcm9maWxlOlxuICAgICAgICAgICAgICAgICAgdHlwZTogUnVudGltZURlZmF1bHRcbiAgICAgICAgICBzZWN1cml0eUNvbnRleHQ6XG4gICAgICAgICAgICBydW5Bc05vblJvb3Q6IHRydWVcbiAgICAgICAgICAgIHNlY2NvbXBQcm9maWxlOlxuICAgICAgICAgICAgICB0eXBlOiBSdW50aW1lRGVmYXVsdFxuICAgICAgICAgIHJlc3RhcnRQb2xpY3k6IE5ldmVyXG4gIHNjaGVkdWxlOiBcIiovMSAqICogKiAqXCJgLFxuICAgIH0sXG4gIF0sXG5cbiAgJ3YxLlBlcnNpc3RlbnRWb2x1bWUnOiBbXG4gICAge1xuICAgICAgdGl0bGU6ICdCYXNpYyBQZXJzaXN0ZW50Vm9sdW1lJyxcbiAgICAgIGRlc2NyaXB0aW9uOiAnQSBiYXNpYyBQZXJzaXN0ZW50Vm9sdW1lIGV4YW1wbGUgd2l0aCBORlMgc3RvcmFnZScsXG4gICAgICB5YW1sOiBgYXBpVmVyc2lvbjogdjFcbmtpbmQ6IFBlcnNpc3RlbnRWb2x1bWVcbm1ldGFkYXRhOlxuICBuYW1lOiBleGFtcGxlXG5zcGVjOlxuICBjYXBhY2l0eTpcbiAgICBzdG9yYWdlOiA1R2lcbiAgYWNjZXNzTW9kZXM6XG4gICAgLSBSZWFkV3JpdGVPbmNlXG4gIHBlcnNpc3RlbnRWb2x1bWVSZWNsYWltUG9saWN5OiBSZXRhaW5cbiAgc3RvcmFnZUNsYXNzTmFtZTogc2xvd1xuICBuZnM6XG4gICAgcGF0aDogL3RtcFxuICAgIHNlcnZlcjogMTcyLjE3LjAuMmAsXG4gICAgfSxcbiAgXSxcblxuICAnYXV0b3NjYWxpbmcvdjIuSG9yaXpvbnRhbFBvZEF1dG9zY2FsZXInOiBbXG4gICAge1xuICAgICAgdGl0bGU6ICdCYXNpYyBIb3Jpem9udGFsUG9kQXV0b3NjYWxlcicsXG4gICAgICBkZXNjcmlwdGlvbjogJ0EgYmFzaWMgSFBBIGV4YW1wbGUgd2l0aCBDUFUgdXRpbGl6YXRpb24gdGFyZ2V0JyxcbiAgICAgIHlhbWw6IGBhcGlWZXJzaW9uOiBhdXRvc2NhbGluZy92Mlxua2luZDogSG9yaXpvbnRhbFBvZEF1dG9zY2FsZXJcbm1ldGFkYXRhOlxuICBuYW1lOiBleGFtcGxlXG5zcGVjOlxuICBzY2FsZVRhcmdldFJlZjpcbiAgICBhcGlWZXJzaW9uOiBhcHBzL3YxXG4gICAga2luZDogRGVwbG95bWVudFxuICAgIG5hbWU6IGV4YW1wbGVcbiAgbWluUmVwbGljYXM6IDFcbiAgbWF4UmVwbGljYXM6IDNcbiAgbWV0cmljczpcbiAgLSB0eXBlOiBSZXNvdXJjZVxuICAgIHJlc291cmNlOlxuICAgICAgbmFtZTogY3B1XG4gICAgICB0YXJnZXQ6XG4gICAgICAgIGF2ZXJhZ2VVdGlsaXphdGlvbjogNTBcbiAgICAgICAgdHlwZTogVXRpbGl6YXRpb25gLFxuICAgIH0sXG4gIF0sXG5cbiAgJ2FwcHMvdjEuRGFlbW9uU2V0JzogW1xuICAgIHtcbiAgICAgIHRpdGxlOiAnQmFzaWMgRGFlbW9uU2V0JyxcbiAgICAgIGRlc2NyaXB0aW9uOiAnQSBiYXNpYyBEYWVtb25TZXQgZXhhbXBsZSB3aXRoIG5naW54IGNvbnRhaW5lcicsXG4gICAgICB5YW1sOiBgYXBpVmVyc2lvbjogYXBwcy92MVxua2luZDogRGFlbW9uU2V0XG5tZXRhZGF0YTpcbiAgbmFtZTogZmx1ZW50ZC1lbGFzdGljc2VhcmNoXG4gIGxhYmVsczpcbiAgICBrOHMtYXBwOiBmbHVlbnRkLWxvZ2dpbmdcbnNwZWM6XG4gIHNlbGVjdG9yOlxuICAgIG1hdGNoTGFiZWxzOlxuICAgICAgbmFtZTogZmx1ZW50ZC1lbGFzdGljc2VhcmNoXG4gIHRlbXBsYXRlOlxuICAgIG1ldGFkYXRhOlxuICAgICAgbGFiZWxzOlxuICAgICAgICBuYW1lOiBmbHVlbnRkLWVsYXN0aWNzZWFyY2hcbiAgICBzcGVjOlxuICAgICAgdG9sZXJhdGlvbnM6XG4gICAgICAtIGtleTogbm9kZS1yb2xlLmt1YmVybmV0ZXMuaW8vY29udHJvbC1wbGFuZVxuICAgICAgICBvcGVyYXRvcjogRXhpc3RzXG4gICAgICAgIGVmZmVjdDogTm9TY2hlZHVsZVxuICAgICAgLSBrZXk6IG5vZGUtcm9sZS5rdWJlcm5ldGVzLmlvL21hc3RlclxuICAgICAgICBvcGVyYXRvcjogRXhpc3RzXG4gICAgICAgIGVmZmVjdDogTm9TY2hlZHVsZVxuICAgICAgY29udGFpbmVyczpcbiAgICAgIC0gbmFtZTogZmx1ZW50ZC1lbGFzdGljc2VhcmNoXG4gICAgICAgIGltYWdlOiBxdWF5LmlvL2ZsdWVudGRfZWxhc3RpY3NlYXJjaC9mbHVlbnRkOnYyLjUuMlxuICAgICAgICByZXNvdXJjZXM6XG4gICAgICAgICAgbGltaXRzOlxuICAgICAgICAgICAgbWVtb3J5OiAyMDBNaVxuICAgICAgICAgIHJlcXVlc3RzOlxuICAgICAgICAgICAgY3B1OiAxMDBtXG4gICAgICAgICAgICBtZW1vcnk6IDIwME1pXG4gICAgICAgIHZvbHVtZU1vdW50czpcbiAgICAgICAgLSBuYW1lOiB2YXJsb2dcbiAgICAgICAgICBtb3VudFBhdGg6IC92YXIvbG9nXG4gICAgICAgIHNlY3VyaXR5Q29udGV4dDpcbiAgICAgICAgICBhbGxvd1ByaXZpbGVnZUVzY2FsYXRpb246IGZhbHNlXG4gICAgICAgICAgY2FwYWJpbGl0aWVzOlxuICAgICAgICAgICAgZHJvcDpcbiAgICAgICAgICAgICAgLSBBTExcbiAgICAgICAgICBydW5Bc05vblJvb3Q6IHRydWVcbiAgICAgICAgICBydW5Bc1VzZXI6IDEwMDBcbiAgICAgICAgICBydW5Bc0dyb3VwOiAxMDAwXG4gICAgICAgICAgc2VjY29tcFByb2ZpbGU6XG4gICAgICAgICAgICB0eXBlOiBSdW50aW1lRGVmYXVsdFxuICAgICAgc2VjdXJpdHlDb250ZXh0OlxuICAgICAgICBydW5Bc05vblJvb3Q6IHRydWVcbiAgICAgICAgc2VjY29tcFByb2ZpbGU6XG4gICAgICAgICAgdHlwZTogUnVudGltZURlZmF1bHRcbiAgICAgIHRlcm1pbmF0aW9uR3JhY2VQZXJpb2RTZWNvbmRzOiAzMFxuICAgICAgdm9sdW1lczpcbiAgICAgIC0gbmFtZTogdmFybG9nXG4gICAgICAgIGVtcHR5RGlyOiB7fWAsXG4gICAgfSxcbiAgXSxcblxuICAndjEuUGVyc2lzdGVudFZvbHVtZUNsYWltJzogW1xuICAgIHtcbiAgICAgIHRpdGxlOiAnQmFzaWMgUGVyc2lzdGVudFZvbHVtZUNsYWltJyxcbiAgICAgIGRlc2NyaXB0aW9uOiAnQSBiYXNpYyBQVkMgZXhhbXBsZSByZXF1ZXN0aW5nIDFHaSBzdG9yYWdlJyxcbiAgICAgIHlhbWw6IGBhcGlWZXJzaW9uOiB2MVxua2luZDogUGVyc2lzdGVudFZvbHVtZUNsYWltXG5tZXRhZGF0YTpcbiAgbmFtZTogZXhhbXBsZVxuc3BlYzpcbiAgYWNjZXNzTW9kZXM6XG4gICAgLSBSZWFkV3JpdGVPbmNlXG4gIHZvbHVtZU1vZGU6IEZpbGVzeXN0ZW1cbiAgcmVzb3VyY2VzOlxuICAgIHJlcXVlc3RzOlxuICAgICAgc3RvcmFnZTogMUdpYCxcbiAgICB9LFxuICBdLFxuXG4gICd2MS5SZXNvdXJjZVF1b3RhJzogW1xuICAgIHtcbiAgICAgIHRpdGxlOiAnQ29tcHV0ZSBSZXNvdXJjZVF1b3RhJyxcbiAgICAgIGRlc2NyaXB0aW9uOiAnQSBSZXNvdXJjZVF1b3RhIGV4YW1wbGUgZm9yIGNvbXB1dGUgcmVzb3VyY2VzJyxcbiAgICAgIHlhbWw6IGBhcGlWZXJzaW9uOiB2MVxua2luZDogUmVzb3VyY2VRdW90YVxubWV0YWRhdGE6XG4gIG5hbWU6IGNvbXB1dGUtcXVvdGFcbiAgbmFtZXNwYWNlOlxuc3BlYzpcbiAgaGFyZDpcbiAgICByZXF1ZXN0cy5jcHU6ICcxJ1xuICAgIHJlcXVlc3RzLm1lbW9yeTogMUdpXG4gICAgbGltaXRzLmNwdTogJzInXG4gICAgbGltaXRzLm1lbW9yeTogMkdpYCxcbiAgICB9LFxuICAgIHtcbiAgICAgIHRpdGxlOiAnU3RvcmFnZSBDbGFzcyBSZXNvdXJjZVF1b3RhJyxcbiAgICAgIGRlc2NyaXB0aW9uOiAnQSBSZXNvdXJjZVF1b3RhIGV4YW1wbGUgZm9yIHN0b3JhZ2UgY2xhc3Mgc3BlY2lmaWMgcXVvdGFzJyxcbiAgICAgIHlhbWw6IGBhcGlWZXJzaW9uOiB2MVxua2luZDogUmVzb3VyY2VRdW90YVxubWV0YWRhdGE6XG4gIG5hbWU6IHN0b3JhZ2UtY2xhc3MtcXVvdGFcbiAgbmFtZXNwYWNlOlxuc3BlYzpcbiAgaGFyZDpcbiAgICByZXF1ZXN0cy5zdG9yYWdlOiAxMDBHaVxuICAgIHBlcnNpc3RlbnR2b2x1bWVjbGFpbXM6ICcxMDAnXG4gICAgIyBGb3IgcXVvdGEgc3BlY2lmaWMgdG8gYSBzdG9yYWdlIGNsYXNzLCB0aGUgc3RvcmFnZSBjbGFzcyBtdXN0IGhhdmUgdGhlIHNhbWUgbmFtZVxuICAgIGdvbGQuc3RvcmFnZS1jbGFzcy5rdWJlcm5ldGVzLmlvL3JlcXVlc3RzLnN0b3JhZ2U6IDNHaVxuICAgIGdvbGQuc3RvcmFnZS1jbGFzcy5rdWJlcm5ldGVzLmlvL3BlcnNpc3RlbnR2b2x1bWVjbGFpbXM6ICc1J1xuICAgIHNpbHZlci5zdG9yYWdlLWNsYXNzLmt1YmVybmV0ZXMuaW8vcmVxdWVzdHMuc3RvcmFnZTogMkdpXG4gICAgc2lsdmVyLnN0b3JhZ2UtY2xhc3Mua3ViZXJuZXRlcy5pby9wZXJzaXN0ZW50dm9sdW1lY2xhaW1zOiAnMydcbiAgICBicm9uemUuc3RvcmFnZS1jbGFzcy5rdWJlcm5ldGVzLmlvL3JlcXVlc3RzLnN0b3JhZ2U6IDFHaVxuICAgIGJyb256ZS5zdG9yYWdlLWNsYXNzLmt1YmVybmV0ZXMuaW8vcGVyc2lzdGVudHZvbHVtZWNsYWltczogJzEnYCxcbiAgICB9LFxuICAgIHtcbiAgICAgIHRpdGxlOiAnT2JqZWN0IENvdW50cyBSZXNvdXJjZVF1b3RhJyxcbiAgICAgIGRlc2NyaXB0aW9uOiAnQSBSZXNvdXJjZVF1b3RhIGV4YW1wbGUgZm9yIG9iamVjdCBjb3VudCBsaW1pdHMnLFxuICAgICAgeWFtbDogYGFwaVZlcnNpb246IHYxXG5raW5kOiBSZXNvdXJjZVF1b3RhXG5tZXRhZGF0YTpcbiAgbmFtZTogb2JqZWN0LWNvdW50c1xuICBuYW1lc3BhY2U6XG5zcGVjOlxuICBoYXJkOlxuICAgIGNvbmZpZ21hcHM6IFwiMTBcIlxuICAgIHBlcnNpc3RlbnR2b2x1bWVjbGFpbXM6IFwiNFwiXG4gICAgcmVwbGljYXRpb25jb250cm9sbGVyczogXCIyMFwiXG4gICAgc2VjcmV0czogXCIxMFwiXG4gICAgc2VydmljZXM6IFwiMTBcIlxuICAgIHNlcnZpY2VzLmxvYWRiYWxhbmNlcnM6IFwiMlwiYCxcbiAgICB9LFxuICBdLFxuXG4gICd2MS5MaW1pdFJhbmdlJzogW1xuICAgIHtcbiAgICAgIHRpdGxlOiAnTWVtb3J5IExpbWl0UmFuZ2UnLFxuICAgICAgZGVzY3JpcHRpb246ICdBIExpbWl0UmFuZ2UgZXhhbXBsZSBmb3IgY29udGFpbmVyIG1lbW9yeSBsaW1pdHMnLFxuICAgICAgeWFtbDogYGFwaVZlcnNpb246IHYxXG5raW5kOiBMaW1pdFJhbmdlXG5tZXRhZGF0YTpcbiAgbmFtZTogbWVtLWxpbWl0LXJhbmdlXG5zcGVjOlxuICBsaW1pdHM6XG4gIC0gZGVmYXVsdDpcbiAgICAgIG1lbW9yeTogNTEyTWlcbiAgICBkZWZhdWx0UmVxdWVzdDpcbiAgICAgIG1lbW9yeTogMjU2TWlcbiAgICB0eXBlOiBDb250YWluZXJgLFxuICAgIH0sXG4gIF0sXG5cbiAgJ2FwcHMvdjEuU3RhdGVmdWxTZXQnOiBbXG4gICAge1xuICAgICAgdGl0bGU6ICdCYXNpYyBTdGF0ZWZ1bFNldCcsXG4gICAgICBkZXNjcmlwdGlvbjogJ0EgYmFzaWMgU3RhdGVmdWxTZXQgZXhhbXBsZSB3aXRoIHBlcnNpc3RlbnQgc3RvcmFnZScsXG4gICAgICB5YW1sOiBgYXBpVmVyc2lvbjogYXBwcy92MVxua2luZDogU3RhdGVmdWxTZXRcbm1ldGFkYXRhOlxuICBuYW1lOiBleGFtcGxlXG4gIG5hbWVzcGFjZTogY29uc29sZXNhbXBsZXMtbnMxXG5zcGVjOlxuICByZXBsaWNhczogM1xuICBzZWxlY3RvcjpcbiAgICBtYXRjaExhYmVsczpcbiAgICAgIGFwcDogaHR0cGRcbiAgc2VydmljZU5hbWU6IGh0dHBkXG4gIHRlbXBsYXRlOlxuICAgIG1ldGFkYXRhOlxuICAgICAgbGFiZWxzOlxuICAgICAgICBhcHA6IGh0dHBkXG4gICAgc3BlYzpcbiAgICAgIGNvbnRhaW5lcnM6XG4gICAgICAgIC0gaW1hZ2U6IG5naW54OjEuNy45XG4gICAgICAgICAgbmFtZTogaHR0cGRcbiAgICAgICAgICBwb3J0czpcbiAgICAgICAgICAgIC0gY29udGFpbmVyUG9ydDogODA4MFxuICAgICAgICAgICAgICBuYW1lOiB3ZWJcbiAgICAgICAgICB2b2x1bWVNb3VudHM6XG4gICAgICAgICAgICAtIG1vdW50UGF0aDogL3Zhci93d3cvaHRtbFxuICAgICAgICAgICAgICBuYW1lOiB3d3dcbiAgICAgICAgICBzZWN1cml0eUNvbnRleHQ6XG4gICAgICAgICAgICBhbGxvd1ByaXZpbGVnZUVzY2FsYXRpb246IGZhbHNlXG4gICAgICAgICAgICBjYXBhYmlsaXRpZXM6XG4gICAgICAgICAgICAgIGRyb3A6XG4gICAgICAgICAgICAgICAgLSBBTExcbiAgICAgICAgICAgIHJ1bkFzTm9uUm9vdDogdHJ1ZVxuICAgICAgICAgICAgc2VjY29tcFByb2ZpbGU6XG4gICAgICAgICAgICAgIHR5cGU6IFJ1bnRpbWVEZWZhdWx0XG4gICAgICBzZWN1cml0eUNvbnRleHQ6XG4gICAgICAgIHJ1bkFzTm9uUm9vdDogdHJ1ZVxuICAgICAgICBzZWNjb21wUHJvZmlsZTpcbiAgICAgICAgICB0eXBlOiBSdW50aW1lRGVmYXVsdFxuICAgICAgdGVybWluYXRpb25HcmFjZVBlcmlvZFNlY29uZHM6IDEwXG4gIHZvbHVtZUNsYWltVGVtcGxhdGVzOlxuICAgIC0gbWV0YWRhdGE6XG4gICAgICAgIG5hbWU6IHd3d1xuICAgICAgc3BlYzpcbiAgICAgICAgYWNjZXNzTW9kZXM6XG4gICAgICAgICAgLSBSZWFkV3JpdGVPbmNlXG4gICAgICAgIHJlc291cmNlczpcbiAgICAgICAgICByZXF1ZXN0czpcbiAgICAgICAgICAgIHN0b3JhZ2U6IDFHaWAsXG4gICAgfSxcbiAgXSxcblxuICAnc3RvcmFnZS5rOHMuaW8vdjEuU3RvcmFnZUNsYXNzJzogW1xuICAgIHtcbiAgICAgIHRpdGxlOiAnRmFzdCBTdG9yYWdlQ2xhc3MnLFxuICAgICAgZGVzY3JpcHRpb246ICdDZXBoIGZhc3Qgc3RvcmFnZSBjbGFzcyBleGFtcGxlJyxcbiAgICAgIHlhbWw6IGBhcGlWZXJzaW9uOiBzdG9yYWdlLms4cy5pby92MVxua2luZDogU3RvcmFnZUNsYXNzXG5tZXRhZGF0YTpcbiAgbmFtZTogZXhhbXBsZVxucHJvdmlzaW9uZXI6IG15LXByb3Zpc2lvbmVyXG5yZWNsYWltUG9saWN5OiBEZWxldGVcbmAsXG4gICAgfSxcbiAgXSxcblxuICAndjEuU2VjcmV0JzogW1xuICAgIHtcbiAgICAgIHRpdGxlOiAnQmFzaWMgU2VjcmV0JyxcbiAgICAgIGRlc2NyaXB0aW9uOiAnQSBiYXNpYyBTZWNyZXQgZXhhbXBsZSB3aXRoIHVzZXJuYW1lIGFuZCBwYXNzd29yZCcsXG4gICAgICB5YW1sOiBgYXBpVmVyc2lvbjogdjFcbmtpbmQ6IFNlY3JldFxubWV0YWRhdGE6XG4gIG5hbWU6IGV4YW1wbGVcbnR5cGU6IE9wYXF1ZVxuc3RyaW5nRGF0YTpcbiAgdXNlcm5hbWU6IGFkbWluXG4gIHBhc3N3b3JkOiBvcGVuc2VjYCxcbiAgICB9LFxuICBdLFxuXG4gICdhcHAuazhzLmlvL3YxYmV0YTEuQXBwbGljYXRpb24nOiBbXG4gICAge1xuICAgICAgdGl0bGU6ICdCYXNpYyBBcHBsaWNhdGlvbicsXG4gICAgICBkZXNjcmlwdGlvbjogJ0EgYmFzaWMgQXBwbGljYXRpb24gZXhhbXBsZSB3aXRoIERlcGxveW1lbnQgYW5kIFNlcnZpY2UnLFxuICAgICAgeWFtbDogYGFwaVZlcnNpb246IGFwcHMvdjFcbmtpbmQ6IERlcGxveW1lbnRcbm1ldGFkYXRhOlxuICBsYWJlbHM6XG4gICAgYXBwOiBuZ2lueFxuICBuYW1lOiBuZ2lueC1kZXBsb3ltZW50XG5zcGVjOlxuICByZXBsaWNhczogMVxuICBzZWxlY3RvcjpcbiAgICBtYXRjaExhYmVsczpcbiAgICAgIGFwcDogbmdpbnhcbiAgdGVtcGxhdGU6XG4gICAgbWV0YWRhdGE6XG4gICAgICBsYWJlbHM6XG4gICAgICAgIGFwcDogbmdpbnhcbiAgICBzcGVjOlxuICAgICAgY29udGFpbmVyczpcbiAgICAgICAgLSBpbWFnZTogbmdpbng6MS43LjlcbiAgICAgICAgICBuYW1lOiBuZ2lueFxuICAgICAgICAgIHBvcnRzOlxuICAgICAgICAgICAgLSBjb250YWluZXJQb3J0OiA4MFxuICAgICAgICAgIHNlY3VyaXR5Q29udGV4dDpcbiAgICAgICAgICAgIGFsbG93UHJpdmlsZWdlRXNjYWxhdGlvbjogZmFsc2VcbiAgICAgICAgICAgIGNhcGFiaWxpdGllczpcbiAgICAgICAgICAgICAgZHJvcDpcbiAgICAgICAgICAgICAgICAtIEFMTFxuICAgICAgICAgICAgcnVuQXNOb25Sb290OiB0cnVlXG4gICAgICAgICAgICBzZWNjb21wUHJvZmlsZTpcbiAgICAgICAgICAgICAgdHlwZTogUnVudGltZURlZmF1bHRcbiAgICAgIHNlY3VyaXR5Q29udGV4dDpcbiAgICAgICAgcnVuQXNOb25Sb290OiB0cnVlXG4gICAgICAgIHNlY2NvbXBQcm9maWxlOlxuICAgICAgICAgIHR5cGU6IFJ1bnRpbWVEZWZhdWx0XG4tLS1cbmFwaVZlcnNpb246IHYxXG5raW5kOiBTZXJ2aWNlXG5tZXRhZGF0YTpcbiAgbGFiZWxzOlxuICAgIGFwcDogbmdpbnhcbiAgbmFtZTogbmdpbnhcbnNwZWM6XG4gIHBvcnRzOlxuICAgIC0gcG9ydDogODBcbiAgICAgIHByb3RvY29sOiBUQ1BcbiAgICAgIHRhcmdldFBvcnQ6IDgwXG4gIHNlbGVjdG9yOlxuICAgIGFwcDogbmdpbnhcbiAgdHlwZTogQ2x1c3RlcklQYCxcbiAgICB9LFxuICBdLFxufTtcbiJdfQ==
@@ -150,7 +150,7 @@ function ResourceYamlSidebarComponent_aui_tab_5_Template(rf, ctx) { if (rf & 1)
150
150
  } }
151
151
  function ResourceYamlSidebarComponent_aui_tab_6_ng_container_1_Template(rf, ctx) { if (rf & 1) {
152
152
  i0.ɵɵelementContainerStart(0);
153
- i0.ɵɵtext(1, " Examples ");
153
+ i0.ɵɵtext(1, " Samples ");
154
154
  i0.ɵɵelementContainerEnd();
155
155
  } }
156
156
  function ResourceYamlSidebarComponent_aui_tab_6_ng_container_2_div_2_Template(rf, ctx) { if (rf & 1) {
@@ -275,7 +275,7 @@ export class ResourceYamlSidebarComponent {
275
275
  return of([]);
276
276
  }
277
277
  // 构建查询 ConsoleYAMLSample 的 API 路径
278
- const apiPath = '{{API_GATEWAY}}/kubernetes/business-1/apis/console.alauda.io/v1/consoleyamlsamples';
278
+ const apiPath = `{{API_GATEWAY}}/kubernetes/${this.schemaService.workspaceHelper?.baseParamsSnapshot.cluster || 'global'}/apis/console.alauda.io/v1/consoleyamlsamples`;
279
279
  return this.http.get(apiPath).pipe(map(response => {
280
280
  return response.items
281
281
  .filter(sample => {
@@ -434,7 +434,7 @@ export class ResourceYamlSidebarComponent {
434
434
  TabsModule,
435
435
  ButtonModule,
436
436
  PurePipe,
437
- ], template: "<div class=\"schema-header\">\n <span>{{ resourceKind }}</span>\n <aui-icon\n icon=\"xmark\"\n (click)=\"close.next()\"\n ></aui-icon>\n</div>\n<aui-tab-group type=\"card\">\n <aui-tab *ngIf=\"schemaEnable && hasSchema\">\n <ng-container *auiTabLabel> Schema </ng-container>\n <ng-container *auiTabContent>\n <div\n *ngIf=\"schema\"\n class=\"schema-content\"\n >\n <div class=\"schema-path\">\n <ng-container *ngIf=\"path.length\">\n <a\n href=\"javascript:\"\n (click)=\"refresh()\"\n >{{ resourceKind }}</a\n >\n </ng-container>\n\n <ng-container *ngFor=\"let p of path; index as i; last as isLast\">\n <ng-container *ngIf=\"!isLast\">\n <span class=\"path-mark\">></span>\n <a\n href=\"javascript:\"\n (click)=\"navigateToPath(i)\"\n >{{ p }}</a\n >\n </ng-container>\n <ng-container *ngIf=\"isLast\">\n <span class=\"path-mark\">></span>\n <span>{{ p }}</span>\n </ng-container>\n </ng-container>\n </div>\n <div\n *ngIf=\"currentSchemaDescription\"\n class=\"schema-desc\"\n [innerHTML]=\"\n currentSchemaDescription\n | aclParseJsonTranslate\n | pure: processDescription\n \"\n ></div>\n <div class=\"schema-list\">\n <div\n *ngFor=\"let item of properties | keyvalue\"\n class=\"schema-item\"\n >\n <h3>\n <span>{{ item.key }}</span>\n <span class=\"obj-type\">{{ item.value.type }}</span>\n </h3>\n <p\n [innerHTML]=\"item.value.description | pure: processDescription\"\n ></p>\n <p *ngIf=\"item.value | pure: hasViewableContent\">\n <a\n href=\"javascript:\"\n (click)=\"drillDownToProperty(item.key)\"\n >\n {{ 'view_detail' | translate }}\n </a>\n </p>\n </div>\n </div>\n </div>\n </ng-container>\n </aui-tab>\n <aui-tab *ngIf=\"exampleEnable && hasExamples\">\n <ng-container *auiTabLabel> Examples </ng-container>\n <ng-container *auiTabContent>\n <div class=\"example-list\">\n <div\n *ngFor=\"let example of examples; let i = index\"\n class=\"example-item\"\n >\n <h3>\n {{ i + 1 }}. <span>{{ example.title }}</span>\n </h3>\n <p [innerHTML]=\"example.description | pure: processDescription\"></p>\n <p class=\"tw-flex tw-justify-between\">\n <a\n href=\"javascript:\"\n (click)=\"tryExample(example)\"\n >\n <aui-icon\n icon=\"arrow_turn_up\"\n size=\"14\"\n margin=\"right\"\n ></aui-icon>\n <span>Try it</span>\n </a>\n <a\n href=\"javascript:\"\n (click)=\"downloadYaml(example)\"\n >\n <aui-icon\n icon=\"download\"\n size=\"14\"\n margin=\"right\"\n ></aui-icon>\n <span>Download YAML</span>\n </a>\n </p>\n </div>\n </div>\n </ng-container>\n </aui-tab>\n</aui-tab-group>\n", styles: [":host{display:block;box-sizing:border-box;min-width:360px;padding:16px;background-color:rgb(var(--aui-color-n-10));box-shadow:0 0 4px rgba(var(--aui-color-n-1),.16);margin-left:12px;overflow-y:scroll}:host::-webkit-scrollbar{width:8px;height:4px}:host::-webkit-scrollbar-thumb{border-radius:4px;background-color:rgb(var(--aui-color-n-7))}:host::-webkit-scrollbar-thumb:hover{background-color:rgb(var(--aui-color-n-5))}:host::-webkit-scrollbar-corner{background-color:transparent}aui-tab-group{display:block;margin-top:5px}.schema-header{height:40px;display:flex;justify-content:space-between;align-items:center;font-size:18px}.schema-header aui-icon{font-size:16px;color:rgb(var(--aui-color-n-6));cursor:pointer}.schema-header aui-icon:hover{color:rgb(var(--aui-color-primary))}.schema-content{line-height:20px;overflow-y:auto;height:calc(100% - 40px)}.schema-content::-webkit-scrollbar{width:8px;height:4px}.schema-content::-webkit-scrollbar-thumb{border-radius:4px;background-color:rgb(var(--aui-color-n-7))}.schema-content::-webkit-scrollbar-thumb:hover{background-color:rgb(var(--aui-color-n-5))}.schema-content::-webkit-scrollbar-corner{background-color:transparent}.schema-desc{margin-bottom:12px}.schema-desc a{color:#007bff;text-decoration:none}.schema-desc a:hover{text-decoration:underline}.schema-path{display:flex;flex-wrap:wrap;margin-bottom:12px}.schema-path *{margin-left:2px;word-break:break-all}.schema-path span:first-child{margin-right:2px}.schema-path .path-mark{margin:0 4px;color:rgb(var(--aui-color-n-6))}.schema-list .schema-item,.schema-list .example-item,.example-list .schema-item,.example-list .example-item{padding-left:16px}.schema-list .schema-item:not(:last-of-type),.schema-list .example-item:not(:last-of-type),.example-list .schema-item:not(:last-of-type),.example-list .example-item:not(:last-of-type){border-bottom:1px solid rgb(var(--aui-color-border));margin-bottom:12px}.schema-list .schema-item h3:before,.example-list .schema-item h3:before{content:\"\";display:block;width:6px;height:6px;border-radius:50%;background-color:rgb(var(--aui-color-n-6));position:absolute;left:-12px;top:8px}.schema-list h3,.example-list h3{position:relative;font-weight:500;margin-bottom:12px;word-break:break-word}.schema-list h3 span,.example-list h3 span{margin-right:4px}.schema-list h3 .obj-type,.example-list h3 .obj-type{color:rgb(var(--aui-color-n-4))}.schema-list p,.example-list p{margin-bottom:12px;word-break:break-word}.schema-list p a,.example-list p a{color:#007bff;text-decoration:none}.schema-list p a:hover,.example-list p a:hover{text-decoration:underline}.schema-examples{padding:16px}.examples-header{margin-bottom:16px}.examples-header h3{margin:0;font-size:18px;font-weight:600;color:#333}.examples-content .examples-list .example-item{margin-bottom:24px;border:1px solid #e1e5e9;border-radius:6px;overflow:hidden}.examples-content .examples-list .example-item:last-child{margin-bottom:0}.examples-content .examples-list .example-item .example-header{display:flex;justify-content:space-between;align-items:center;padding:12px 16px;background-color:#f8f9fa;border-bottom:1px solid #e1e5e9}.examples-content .examples-list .example-item .example-header .example-title{margin:0;font-size:16px;font-weight:600;color:#333}.examples-content .examples-list .example-item .example-header .example-actions{display:flex;gap:8px}.examples-content .examples-list .example-item .example-header .example-actions .btn{padding:4px 12px;font-size:12px;border-radius:4px;cursor:pointer;transition:all .2s ease}.examples-content .examples-list .example-item .example-header .example-actions .btn.btn-outline-primary{color:#007bff;border:1px solid #007bff;background-color:transparent}.examples-content .examples-list .example-item .example-header .example-actions .btn.btn-outline-primary:hover{color:#fff;background-color:#007bff}.examples-content .examples-list .example-item .example-header .example-actions .btn.btn-outline-secondary{color:#6c757d;border:1px solid #6c757d;background-color:transparent}.examples-content .examples-list .example-item .example-header .example-actions .btn.btn-outline-secondary:hover{color:#fff;background-color:#6c757d}.examples-content .examples-list .example-item .example-description{padding:12px 16px;color:#666;font-size:14px;line-height:1.5;border-bottom:1px solid #e1e5e9}.examples-content .examples-list .example-item .example-description a{color:#007bff;text-decoration:none}.examples-content .examples-list .example-item .example-description a:hover{text-decoration:underline}.examples-content .examples-list .example-item .example-yaml{background-color:#f8f9fa}.examples-content .examples-list .example-item .example-yaml pre{margin:0;padding:16px;background-color:transparent;border:none;font-family:Monaco,Menlo,Ubuntu Mono,monospace;font-size:13px;line-height:1.4;color:#333;overflow-x:auto}.examples-content .examples-list .example-item .example-yaml pre code{background-color:transparent;padding:0;color:inherit}\n"] }]
437
+ ], template: "<div class=\"schema-header\">\n <span>{{ resourceKind }}</span>\n <aui-icon\n icon=\"xmark\"\n (click)=\"close.next()\"\n ></aui-icon>\n</div>\n<aui-tab-group type=\"card\">\n <aui-tab *ngIf=\"schemaEnable && hasSchema\">\n <ng-container *auiTabLabel> Schema </ng-container>\n <ng-container *auiTabContent>\n <div\n *ngIf=\"schema\"\n class=\"schema-content\"\n >\n <div class=\"schema-path\">\n <ng-container *ngIf=\"path.length\">\n <a\n href=\"javascript:\"\n (click)=\"refresh()\"\n >{{ resourceKind }}</a\n >\n </ng-container>\n\n <ng-container *ngFor=\"let p of path; index as i; last as isLast\">\n <ng-container *ngIf=\"!isLast\">\n <span class=\"path-mark\">></span>\n <a\n href=\"javascript:\"\n (click)=\"navigateToPath(i)\"\n >{{ p }}</a\n >\n </ng-container>\n <ng-container *ngIf=\"isLast\">\n <span class=\"path-mark\">></span>\n <span>{{ p }}</span>\n </ng-container>\n </ng-container>\n </div>\n <div\n *ngIf=\"currentSchemaDescription\"\n class=\"schema-desc\"\n [innerHTML]=\"\n currentSchemaDescription\n | aclParseJsonTranslate\n | pure: processDescription\n \"\n ></div>\n <div class=\"schema-list\">\n <div\n *ngFor=\"let item of properties | keyvalue\"\n class=\"schema-item\"\n >\n <h3>\n <span>{{ item.key }}</span>\n <span class=\"obj-type\">{{ item.value.type }}</span>\n </h3>\n <p\n [innerHTML]=\"item.value.description | pure: processDescription\"\n ></p>\n <p *ngIf=\"item.value | pure: hasViewableContent\">\n <a\n href=\"javascript:\"\n (click)=\"drillDownToProperty(item.key)\"\n >\n {{ 'view_detail' | translate }}\n </a>\n </p>\n </div>\n </div>\n </div>\n </ng-container>\n </aui-tab>\n <aui-tab *ngIf=\"exampleEnable && hasExamples\">\n <ng-container *auiTabLabel> Samples </ng-container>\n <ng-container *auiTabContent>\n <div class=\"example-list\">\n <div\n *ngFor=\"let example of examples; let i = index\"\n class=\"example-item\"\n >\n <h3>\n {{ i + 1 }}. <span>{{ example.title }}</span>\n </h3>\n <p [innerHTML]=\"example.description | pure: processDescription\"></p>\n <p class=\"tw-flex tw-justify-between\">\n <a\n href=\"javascript:\"\n (click)=\"tryExample(example)\"\n >\n <aui-icon\n icon=\"arrow_turn_up\"\n size=\"14\"\n margin=\"right\"\n ></aui-icon>\n <span>Try it</span>\n </a>\n <a\n href=\"javascript:\"\n (click)=\"downloadYaml(example)\"\n >\n <aui-icon\n icon=\"download\"\n size=\"14\"\n margin=\"right\"\n ></aui-icon>\n <span>Download YAML</span>\n </a>\n </p>\n </div>\n </div>\n </ng-container>\n </aui-tab>\n</aui-tab-group>\n", styles: [":host{display:block;box-sizing:border-box;min-width:360px;padding:16px;background-color:rgb(var(--aui-color-n-10));box-shadow:0 0 4px rgba(var(--aui-color-n-1),.16);margin-left:12px;overflow-y:scroll}:host::-webkit-scrollbar{width:8px;height:4px}:host::-webkit-scrollbar-thumb{border-radius:4px;background-color:rgb(var(--aui-color-n-7))}:host::-webkit-scrollbar-thumb:hover{background-color:rgb(var(--aui-color-n-5))}:host::-webkit-scrollbar-corner{background-color:transparent}aui-tab-group{display:block;margin-top:5px}.schema-header{height:40px;display:flex;justify-content:space-between;align-items:center;font-size:18px}.schema-header aui-icon{font-size:16px;color:rgb(var(--aui-color-n-6));cursor:pointer}.schema-header aui-icon:hover{color:rgb(var(--aui-color-primary))}.schema-content{line-height:20px;overflow-y:auto;height:calc(100% - 40px)}.schema-content::-webkit-scrollbar{width:8px;height:4px}.schema-content::-webkit-scrollbar-thumb{border-radius:4px;background-color:rgb(var(--aui-color-n-7))}.schema-content::-webkit-scrollbar-thumb:hover{background-color:rgb(var(--aui-color-n-5))}.schema-content::-webkit-scrollbar-corner{background-color:transparent}.schema-desc{margin-bottom:12px}.schema-desc a{color:#007bff;text-decoration:none}.schema-desc a:hover{text-decoration:underline}.schema-path{display:flex;flex-wrap:wrap;margin-bottom:12px}.schema-path *{margin-left:2px;word-break:break-all}.schema-path span:first-child{margin-right:2px}.schema-path .path-mark{margin:0 4px;color:rgb(var(--aui-color-n-6))}.schema-list .schema-item,.schema-list .example-item,.example-list .schema-item,.example-list .example-item{padding-left:16px}.schema-list .schema-item:not(:last-of-type),.schema-list .example-item:not(:last-of-type),.example-list .schema-item:not(:last-of-type),.example-list .example-item:not(:last-of-type){border-bottom:1px solid rgb(var(--aui-color-border));margin-bottom:12px}.schema-list .schema-item h3:before,.example-list .schema-item h3:before{content:\"\";display:block;width:6px;height:6px;border-radius:50%;background-color:rgb(var(--aui-color-n-6));position:absolute;left:-12px;top:8px}.schema-list h3,.example-list h3{position:relative;font-weight:500;margin-bottom:12px;word-break:break-word}.schema-list h3 span,.example-list h3 span{margin-right:4px}.schema-list h3 .obj-type,.example-list h3 .obj-type{color:rgb(var(--aui-color-n-4))}.schema-list p,.example-list p{margin-bottom:12px;word-break:break-word}.schema-list p a,.example-list p a{color:#007bff;text-decoration:none}.schema-list p a:hover,.example-list p a:hover{text-decoration:underline}.schema-examples{padding:16px}.examples-header{margin-bottom:16px}.examples-header h3{margin:0;font-size:18px;font-weight:600;color:#333}.examples-content .examples-list .example-item{margin-bottom:24px;border:1px solid #e1e5e9;border-radius:6px;overflow:hidden}.examples-content .examples-list .example-item:last-child{margin-bottom:0}.examples-content .examples-list .example-item .example-header{display:flex;justify-content:space-between;align-items:center;padding:12px 16px;background-color:#f8f9fa;border-bottom:1px solid #e1e5e9}.examples-content .examples-list .example-item .example-header .example-title{margin:0;font-size:16px;font-weight:600;color:#333}.examples-content .examples-list .example-item .example-header .example-actions{display:flex;gap:8px}.examples-content .examples-list .example-item .example-header .example-actions .btn{padding:4px 12px;font-size:12px;border-radius:4px;cursor:pointer;transition:all .2s ease}.examples-content .examples-list .example-item .example-header .example-actions .btn.btn-outline-primary{color:#007bff;border:1px solid #007bff;background-color:transparent}.examples-content .examples-list .example-item .example-header .example-actions .btn.btn-outline-primary:hover{color:#fff;background-color:#007bff}.examples-content .examples-list .example-item .example-header .example-actions .btn.btn-outline-secondary{color:#6c757d;border:1px solid #6c757d;background-color:transparent}.examples-content .examples-list .example-item .example-header .example-actions .btn.btn-outline-secondary:hover{color:#fff;background-color:#6c757d}.examples-content .examples-list .example-item .example-description{padding:12px 16px;color:#666;font-size:14px;line-height:1.5;border-bottom:1px solid #e1e5e9}.examples-content .examples-list .example-item .example-description a{color:#007bff;text-decoration:none}.examples-content .examples-list .example-item .example-description a:hover{text-decoration:underline}.examples-content .examples-list .example-item .example-yaml{background-color:#f8f9fa}.examples-content .examples-list .example-item .example-yaml pre{margin:0;padding:16px;background-color:transparent;border:none;font-family:Monaco,Menlo,Ubuntu Mono,monospace;font-size:13px;line-height:1.4;color:#333;overflow-x:auto}.examples-content .examples-list .example-item .example-yaml pre code{background-color:transparent;padding:0;color:inherit}\n"] }]
438
438
  }], () => [{ type: i1.KubernetesSchemaService }, { type: i2.HttpClient }, { type: i0.ChangeDetectorRef }, { type: i0.ElementRef }], { resource: [{
439
439
  type: Input
440
440
  }], schema: [{
@@ -453,4 +453,4 @@ export class ResourceYamlSidebarComponent {
453
453
  type: Input
454
454
  }] }); })();
455
455
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(ResourceYamlSidebarComponent, { className: "ResourceYamlSidebarComponent" }); })();
456
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21tb24vc3JjL2NvZGUveWFtbC1zaWRlYmFyL2NvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tbW9uL3NyYy9jb2RlL3lhbWwtc2lkZWJhci90ZW1wbGF0ZS5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsVUFBVSxFQUFFLFlBQVksRUFBRSxNQUFNLFlBQVksQ0FBQztBQUNsRSxPQUFPLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUM5RCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDbEQsT0FBTyxFQUNMLFNBQVMsRUFDVCxLQUFLLEVBSUwsdUJBQXVCLEVBQ3ZCLE1BQU0sRUFDTixZQUFZLEVBQ1osaUJBQWlCLEVBQ2pCLFVBQVUsR0FDWCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQWMsRUFBRSxFQUFFLEdBQUcsRUFBRSxVQUFVLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFdkQsT0FBTyxFQUFFLFFBQVEsRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQy9FLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLCtDQUErQyxDQUFDO0FBS3hGLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQ3BFLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLGtCQUFrQixDQUFDOzs7Ozs7O0lDZnRELDZCQUEyQjtJQUFDLHdCQUFPOzs7OztJQU83Qiw2QkFBa0M7SUFDaEMsNkJBR0c7SUFERCw0TkFBUyxnQkFBUyxLQUFDO0lBQ2xCLFlBQWtCO0lBQUEsaUJBQ3BCOzs7O0lBREUsZUFBa0I7SUFBbEIseUNBQWtCOzs7O0lBS3JCLDZCQUE4QjtJQUM1Qixn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Q0wsQ0FBQzs2RkEzUFUsNEJBQTRCO29FQUE1Qiw0QkFBNEI7WUM3Q3ZDLEFBREYsOEJBQTJCLFdBQ25CO1lBQUEsWUFBa0I7WUFBQSxpQkFBTztZQUMvQixtQ0FHQztZQURDLDJHQUFTLGdCQUFZLElBQUM7WUFFMUIsQUFERyxpQkFBVyxFQUNSO1lBQ04sd0NBQTJCO1lBa0V6QixBQWpFQSxxRkFBMkMsd0VBaUVHO1lBd0NoRCxpQkFBZ0I7O1lBaEhSLGVBQWtCO1lBQWxCLHNDQUFrQjtZQU9kLGVBQStCO1lBQS9CLHdEQUErQjtZQWlFL0IsY0FBa0M7WUFBbEMsMkRBQWtDOzRCRHRDMUMsSUFBSTtZQUNKLE9BQU87WUFDUCxZQUFZLG9CQUVaLHNCQUFzQjtZQUN0QixVQUFVLG9CQUNWLFVBQVUsdUZBQ1YsWUFBWTtZQUNaLFFBQVE7O2lGQUdDLDRCQUE0QjtjQWxCeEMsU0FBUzsyQkFDRSwyQkFBMkIsbUJBR3BCLHVCQUF1QixDQUFDLE1BQU0sY0FDbkMsSUFBSSxXQUNQO29CQUNQLElBQUk7b0JBQ0osT0FBTztvQkFDUCxZQUFZO29CQUNaLGdCQUFnQjtvQkFDaEIsc0JBQXNCO29CQUN0QixVQUFVO29CQUNWLFVBQVU7b0JBQ1YsWUFBWTtvQkFDWixRQUFRO2lCQUNUOzBJQUlELFFBQVE7a0JBRFAsS0FBSztZQUlOLE1BQU07a0JBREwsS0FBSzs7SUFJTiw0REFBNEQ7SUFDNUQsS0FBSztrQkFGSixNQUFNO1lBS1AsT0FBTztrQkFETixNQUFNO1lBSVAsWUFBWTtrQkFEWCxLQUFLO1lBSU4sYUFBYTtrQkFEWixLQUFLO1lBSU4sYUFBYTtrQkFEWixLQUFLOztrRkFwQkssNEJBQTRCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSWNvbk1vZHVsZSwgVGFic01vZHVsZSwgQnV0dG9uTW9kdWxlIH0gZnJvbSAnQGFsYXVkYS91aSc7XG5pbXBvcnQgeyBOZ0lmLCBOZ0Zvck9mLCBLZXlWYWx1ZVBpcGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgSHR0cENsaWVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7XG4gIENvbXBvbmVudCxcbiAgSW5wdXQsXG4gIE9uSW5pdCxcbiAgT25DaGFuZ2VzLFxuICBTaW1wbGVDaGFuZ2VzLFxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgT3V0cHV0LFxuICBFdmVudEVtaXR0ZXIsXG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBFbGVtZW50UmVmLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE9ic2VydmFibGUsIG9mLCBtYXAsIGNhdGNoRXJyb3IgfSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHsgUHVyZVBpcGUsIFBhcnNlSnNvblRyYW5zbGF0ZVBpcGUgfSBmcm9tICcuLi8uLi9jb3JlL3BpcGVzL3B1YmxpYy1hcGknO1xuaW1wb3J0IHsgS3ViZXJuZXRlc1NjaGVtYVNlcnZpY2UgfSBmcm9tICcuLi8uLi9jb3JlL3NlcnZpY2VzL2t1YmVybmV0ZXMtc2NoZW1hLnNlcnZpY2UnO1xuaW1wb3J0IHtcbiAgS3ViZXJuZXRlc1Jlc291cmNlLFxuICBPcGVuQVBJVjNTY2hlbWFPYmplY3QsXG59IGZyb20gJy4uLy4uL2NvcmUvdHlwZXMvcHVibGljLWFwaSc7XG5pbXBvcnQgeyBUUkFOU0xBVEVfTU9EVUxFIH0gZnJvbSAnLi4vLi4vdHJhbnNsYXRlL3RyYW5zbGF0ZS5tb2R1bGUnO1xuaW1wb3J0IHsgQlVJTFRfSU5fWUFNTF9FWEFNUExFUyB9IGZyb20gJy4uL3lhbWwtZXhhbXBsZXMnO1xuXG5pbXBvcnQgeyBZYW1sRXhhbXBsZSwgQ29uc29sZVlBTUxTYW1wbGUgfSBmcm9tICcuL3R5cGVzJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYWNsLXJlc291cmNlLXlhbWwtc2lkZWJhcicsXG4gIHRlbXBsYXRlVXJsOiAndGVtcGxhdGUuaHRtbCcsXG4gIHN0eWxlVXJsczogWydzdHlsZXMuc2NzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW1xuICAgIE5nSWYsXG4gICAgTmdGb3JPZixcbiAgICBLZXlWYWx1ZVBpcGUsXG4gICAgVFJBTlNMQVRFX01PRFVMRSxcbiAgICBQYXJzZUpzb25UcmFuc2xhdGVQaXBlLFxuICAgIEljb25Nb2R1bGUsXG4gICAgVGFic01vZHVsZSxcbiAgICBCdXR0b25Nb2R1bGUsXG4gICAgUHVyZVBpcGUsXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIFJlc291cmNlWWFtbFNpZGViYXJDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uQ2hhbmdlcyB7XG4gIEBJbnB1dCgpXG4gIHJlc291cmNlOiBLdWJlcm5ldGVzUmVzb3VyY2U7XG5cbiAgQElucHV0KClcbiAgc2NoZW1hOiBPcGVuQVBJVjNTY2hlbWFPYmplY3Q7XG5cbiAgQE91dHB1dCgpXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8tb3V0cHV0LW5hdGl2ZVxuICBjbG9zZSA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcblxuICBAT3V0cHV0KClcbiAgdHJ5WWFtbCA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpO1xuXG4gIEBJbnB1dCgpXG4gIHNjaGVtYUVuYWJsZSA9IHRydWU7XG5cbiAgQElucHV0KClcbiAgZXhhbXBsZUVuYWJsZSA9IHRydWU7XG5cbiAgQElucHV0KClcbiAgZXh0cmFFeGFtcGxlczogWWFtbEV4YW1wbGVbXTtcblxuICBwcml2YXRlIHJlYWRvbmx5IERFRklOSVRJT05TX1BSRUZJWCA9ICcjL2RlZmluaXRpb25zLyc7XG5cbiAgY3VycmVudFNjaGVtYTogT3BlbkFQSVYzU2NoZW1hT2JqZWN0O1xuICBjdXJyZW50U2NoZW1hRGVzY3JpcHRpb246IHN0cmluZztcbiAgcHJvcGVydGllczogeyBba2V5OiBzdHJpbmddOiBPcGVuQVBJVjNTY2hlbWFPYmplY3QgfTtcbiAgcGF0aDogc3RyaW5nW10gPSBbXTtcbiAgcmVzb3VyY2VLaW5kOiBzdHJpbmc7XG4gIGV4YW1wbGVzOiBZYW1sRXhhbXBsZVtdID0gW107XG4gIGhhc1NjaGVtYSA9IGZhbHNlO1xuICBoYXNFeGFtcGxlcyA9IGZhbHNlO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgc2NoZW1hU2VydmljZTogS3ViZXJuZXRlc1NjaGVtYVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBodHRwOiBIdHRwQ2xpZW50LFxuICAgIHByaXZhdGUgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBwcml2YXRlIGhvc3Q6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+LFxuICApIHt9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgdGhpcy5yZWZyZXNoKCk7XG4gICAgdGhpcy5sb2FkRXhhbXBsZXMoKTtcbiAgfVxuXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpIHtcbiAgICBpZiAoY2hhbmdlcy5zY2hlbWEgfHwgY2hhbmdlcy5yZXNvdXJjZSkge1xuICAgICAgdGhpcy5yZWZyZXNoKCk7XG4gICAgICB0aGlzLmxvYWRFeGFtcGxlcygpO1xuICAgIH1cbiAgfVxuXG4gIHJlZnJlc2goKSB7XG4gICAgaWYgKHRoaXMuc2NoZW1hKSB7XG4gICAgICB0aGlzLmN1cnJlbnRTY2hlbWEgPSB0aGlzLnNjaGVtYTtcbiAgICAgIHRoaXMuY3VycmVudFNjaGVtYURlc2NyaXB0aW9uID0gdGhpcy5zY2hlbWEuZGVzY3JpcHRpb247XG4gICAgICB0aGlzLnByb3BlcnRpZXMgPSB0aGlzLnNjaGVtYS5wcm9wZXJ0aWVzIHx8IHt9O1xuICAgICAgdGhpcy5wYXRoID0gW107XG4gICAgICB0aGlzLmhhc1NjaGVtYSA9IHRydWU7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuaGFzU2NoZW1hID0gZmFsc2U7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMucmVzb3VyY2UpIHtcbiAgICAgIHRoaXMucmVzb3VyY2VLaW5kID0gdGhpcy5yZXNvdXJjZS5raW5kIHx8ICdSZXNvdXJjZSc7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBsb2FkRXhhbXBsZXMoKSB7XG4gICAgaWYgKCF0aGlzLnJlc291cmNlKSB7XG4gICAgICB0aGlzLmV4YW1wbGVzID0gW107XG4gICAgICB0aGlzLmhhc0V4YW1wbGVzID0gZmFsc2U7XG4gICAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCByZXNvdXJjZUtleSA9IGAke3RoaXMucmVzb3VyY2UuYXBpVmVyc2lvbn0uJHt0aGlzLnJlc291cmNlLmtpbmR9YDtcbiAgICBjb25zdCBidWlsdEluRXhhbXBsZXMgPSBCVUlMVF9JTl9ZQU1MX0VYQU1QTEVTW3Jlc291cmNlS2V5XSB8fCBbXTtcblxuICAgIC8vIOWKoOi9vSBDb25zb2xlWUFNTFNhbXBsZSBDUkQg5Lit55qE56S65L6LXG4gICAgdGhpcy5sb2FkQ29uc29sZVlBTUxTYW1wbGVzKCkuc3Vic2NyaWJlKHtcbiAgICAgIG5leHQ6IGNyZEV4YW1wbGVzID0+IHtcbiAgICAgICAgdGhpcy5leGFtcGxlcyA9IFtcbiAgICAgICAgICAuLi5idWlsdEluRXhhbXBsZXMsXG4gICAgICAgICAgLi4uKHRoaXMuZXh0cmFFeGFtcGxlcyB8fCBbXSksXG4gICAgICAgICAgLi4uY3JkRXhhbXBsZXMsXG4gICAgICAgIF07XG4gICAgICAgIHRoaXMuaGFzRXhhbXBsZXMgPSB0aGlzLmV4YW1wbGVzLmxlbmd0aCA+IDA7XG4gICAgICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xuICAgICAgfSxcbiAgICAgIGVycm9yOiAoKSA9PiB7XG4gICAgICAgIC8vIOWmguaenOWKoOi9vSBDUkQg56S65L6L5aSx6LSl77yM5Y+q5L2/55So5YaF572u56S65L6LXG4gICAgICAgIHRoaXMuZXhhbXBsZXMgPSBidWlsdEluRXhhbXBsZXM7XG4gICAgICAgIHRoaXMuaGFzRXhhbXBsZXMgPSB0aGlzLmV4YW1wbGVzLmxlbmd0aCA+IDA7XG4gICAgICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xuICAgICAgfSxcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgbG9hZENvbnNvbGVZQU1MU2FtcGxlcygpOiBPYnNlcnZhYmxlPFlhbWxFeGFtcGxlW10+IHtcbiAgICBpZiAoIXRoaXMucmVzb3VyY2UpIHtcbiAgICAgIHJldHVybiBvZihbXSk7XG4gICAgfVxuXG4gICAgLy8g5p6E5bu65p+l6K+iIENvbnNvbGVZQU1MU2FtcGxlIOeahCBBUEkg6Lev5b6EXG4gICAgY29uc3QgYXBpUGF0aCA9XG4gICAgICAne3tBUElfR0FURVdBWX19L2t1YmVybmV0ZXMvYnVzaW5lc3MtMS9hcGlzL2NvbnNvbGUuYWxhdWRhLmlvL3YxL2NvbnNvbGV5YW1sc2FtcGxlcyc7XG5cbiAgICByZXR1cm4gdGhpcy5odHRwLmdldDx7IGl0ZW1zOiBDb25zb2xlWUFNTFNhbXBsZVtdIH0+KGFwaVBhdGgpLnBpcGUoXG4gICAgICBtYXAocmVzcG9uc2UgPT4ge1xuICAgICAgICByZXR1cm4gcmVzcG9uc2UuaXRlbXNcbiAgICAgICAgICAuZmlsdGVyKHNhbXBsZSA9PiB7XG4gICAgICAgICAgICBjb25zdCB0YXJnZXQgPSBzYW1wbGUuc3BlYy50YXJnZXRSZXNvdXJjZTtcbiAgICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAgIHRhcmdldC5hcGlWZXJzaW9uID09PSB0aGlzLnJlc291cmNlLmFwaVZlcnNpb24gJiZcbiAgICAgICAgICAgICAgdGFyZ2V0LmtpbmQgPT09IHRoaXMucmVzb3VyY2Uua2luZFxuICAgICAgICAgICAgKTtcbiAgICAgICAgICB9KVxuICAgICAgICAgIC5tYXAoc2FtcGxlID0+ICh7XG4gICAgICAgICAgICB0aXRsZTogc2FtcGxlLnNwZWMudGl0bGUsXG4gICAgICAgICAgICBkZXNjcmlwdGlvbjogc2FtcGxlLnNwZWMuZGVzY3JpcHRpb24sXG4gICAgICAgICAgICB5YW1sOiBzYW1wbGUuc3BlYy55YW1sLFxuICAgICAgICAgICAgc25pcHBldDogc2FtcGxlLnNwZWMuc25pcHBldCxcbiAgICAgICAgICB9KSk7XG4gICAgICB9KSxcbiAgICAgIGNhdGNoRXJyb3IoKCkgPT4gb2YoW10pKSxcbiAgICApO1xuICB9XG5cbiAgZHJpbGxEb3duVG9Qcm9wZXJ0eShuYW1lOiBzdHJpbmcpIHtcbiAgICBjb25zdCBwcm9wZXJ0eSA9IHRoaXMuY3VycmVudFNjaGVtYS5wcm9wZXJ0aWVzPy5bbmFtZV07XG4gICAgaWYgKHByb3BlcnR5KSB7XG4gICAgICB0aGlzLmN1cnJlbnRTY2hlbWFEZXNjcmlwdGlvbiA9IHByb3BlcnR5LmRlc2NyaXB0aW9uO1xuICAgICAgbGV0IHRhcmdldFNjaGVtYTogT3BlbkFQSVYzU2NoZW1hT2JqZWN0IHwgbnVsbCA9IG51bGw7XG4gICAgICAvLyDlpITnkIYgJHJlZiDlvJXnlKhcbiAgICAgIGlmIChwcm9wZXJ0eS4kcmVmIHx8IHByb3BlcnR5Lml0ZW1zPy4kcmVmKSB7XG4gICAgICAgIGNvbnN0IHJlZiA9IHByb3BlcnR5LiRyZWYgfHwgcHJvcGVydHkuaXRlbXM/LiRyZWY7XG5cbiAgICAgICAgaWYgKHJlZi5zdGFydHNXaXRoKHRoaXMuREVGSU5JVElPTlNfUFJFRklYKSkge1xuICAgICAgICAgIGNvbnN0IGRlZmluaXRpb25OYW1lID0gcmVmLnJlcGxhY2UodGhpcy5ERUZJTklUSU9OU19QUkVGSVgsICcnKTtcbiAgICAgICAgICAvLyDku47moLkgc2NoZW1hIOeahCBkZWZpbml0aW9ucyDkuK3ojrflj5blrprkuYlcbiAgICAgICAgICBjb25zdCByb290RGVmaW5pdGlvbnMgPSB0aGlzLnNjaGVtYVNlcnZpY2UuZGVmaW5pdGlvbnM7XG4gICAgICAgICAgdGFyZ2V0U2NoZW1hID0gcm9vdERlZmluaXRpb25zPy5bZGVmaW5pdGlvbk5hbWVdIHx8IG51bGw7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIC8vIOWkhOeQhuaZrumAmueahOW1jOWll+WxnuaAp1xuICAgICAgZWxzZSBpZiAocHJvcGVydHkucHJvcGVydGllcyB8fCBwcm9wZXJ0eS5pdGVtcz8ucHJvcGVydGllcykge1xuICAgICAgICB0YXJnZXRTY2hlbWEgPSBwcm9wZXJ0eS5pdGVtcz8ucHJvcGVydGllcyA/IHByb3BlcnR5Lml0ZW1zIDogcHJvcGVydHk7XG4gICAgICB9XG5cbiAgICAgIGlmICh0YXJnZXRTY2hlbWEpIHtcbiAgICAgICAgdGhpcy5jdXJyZW50U2NoZW1hID0gdGFyZ2V0U2NoZW1hO1xuICAgICAgICB0aGlzLnBhdGgucHVzaChuYW1lKTtcbiAgICAgICAgdGhpcy5wcm9wZXJ0aWVzID0gdGFyZ2V0U2NoZW1hLnByb3BlcnRpZXMgfHwge307XG5cbiAgICAgICAgdGhpcy5zY3JvbGxUb3AoKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBuYXZpZ2F0ZVRvUGF0aChpbmRleDogbnVtYmVyKSB7XG4gICAgY29uc3QgdGFyZ2V0UGF0aCA9IHRoaXMucGF0aC5zbGljZSgwLCBpbmRleCArIDEpO1xuICAgIHRoaXMucGF0aCA9IFsuLi50YXJnZXRQYXRoXTtcblxuICAgIGxldCBjdXJyZW50T2JqID0gdGhpcy5zY2hlbWE7XG4gICAgZm9yIChjb25zdCBwYXRoU2VnbWVudCBvZiB0YXJnZXRQYXRoKSB7XG4gICAgICBjb25zdCBwcm9wZXJ0eSA9IGN1cnJlbnRPYmoucHJvcGVydGllcz8uW3BhdGhTZWdtZW50XTtcbiAgICAgIGlmIChwcm9wZXJ0eSkge1xuICAgICAgICB0aGlzLmN1cnJlbnRTY2hlbWFEZXNjcmlwdGlvbiA9IHByb3BlcnR5LmRlc2NyaXB0aW9uO1xuICAgICAgICAvLyDlpITnkIYgJHJlZiDlvJXnlKhcbiAgICAgICAgaWYgKHByb3BlcnR5LiRyZWYgfHwgcHJvcGVydHkuaXRlbXM/LiRyZWYpIHtcbiAgICAgICAgICBjb25zdCByZWYgPSBwcm9wZXJ0eS4kcmVmIHx8IHByb3BlcnR5Lml0ZW1zPy4kcmVmO1xuICAgICAgICAgIGlmIChyZWYuc3RhcnRzV2l0aCh0aGlzLkRFRklOSVRJT05TX1BSRUZJWCkpIHtcbiAgICAgICAgICAgIGNvbnN0IGRlZmluaXRpb25OYW1lID0gcmVmLnJlcGxhY2UodGhpcy5ERUZJTklUSU9OU19QUkVGSVgsICcnKTtcbiAgICAgICAgICAgIGNvbnN0IHJvb3REZWZpbml0aW9ucyA9IHRoaXMuc2NoZW1hU2VydmljZS5kZWZpbml0aW9ucztcbiAgICAgICAgICAgIGNvbnN0IGRlZmluaXRpb24gPSByb290RGVmaW5pdGlvbnM/LltkZWZpbml0aW9uTmFtZV07XG4gICAgICAgICAgICBpZiAoZGVmaW5pdGlvbikge1xuICAgICAgICAgICAgICBjdXJyZW50T2JqID0gZGVmaW5pdGlvbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgLy8g5aSE55CG5pmu6YCa55qE5bWM5aWX5bGe5oCnXG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgIGN1cnJlbnRPYmogPSBwcm9wZXJ0eS5pdGVtcz8ucHJvcGVydGllcyA/IHByb3BlcnR5Lml0ZW1zIDogcHJvcGVydHk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICB0aGlzLmN1cnJlbnRTY2hlbWEgPSBjdXJyZW50T2JqO1xuICAgIHRoaXMucHJvcGVydGllcyA9IGN1cnJlbnRPYmoucHJvcGVydGllcyB8fCB7fTtcbiAgfVxuXG4gIC8qKlxuICAgKiDmo4Dmn6XlsZ7mgKfmmK/lkKbmnIkgJHJlZiDlvJXnlKjmiJbltYzlpZflsZ7mgKdcbiAgICovXG4gIGhhc1ZpZXdhYmxlQ29udGVudChwcm9wZXJ0eTogT3BlbkFQSVYzU2NoZW1hT2JqZWN0KTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIChcbiAgICAgIC8vIOaciSBwcm9wZXJ0aWVzIOeahOWvueixoVxuICAgICAgKHByb3BlcnR5LnR5cGUgPT09ICdvYmplY3QnICYmXG4gICAgICAgIHByb3BlcnR5LnByb3BlcnRpZXMgJiZcbiAgICAgICAgT2JqZWN0LmtleXMocHJvcGVydHkucHJvcGVydGllcykubGVuZ3RoID4gMCkgfHxcbiAgICAgIC8vIOaciSBwcm9wZXJ0aWVzIOeahOaVsOe7hOmhuVxuICAgICAgKHByb3BlcnR5LnR5cGUgPT09ICdhcnJheScgJiZcbiAgICAgICAgcHJvcGVydHkuaXRlbXMgJiZcbiAgICAgICAgdHlwZW9mIHByb3BlcnR5Lml0ZW1zID09PSAnb2JqZWN0JyAmJlxuICAgICAgICAocHJvcGVydHkuaXRlbXMgYXMgT3BlbkFQSVYzU2NoZW1hT2JqZWN0KS5wcm9wZXJ0aWVzICYmXG4gICAgICAgIE9iamVjdC5rZXlzKChwcm9wZXJ0eS5pdGVtcyBhcyBPcGVuQVBJVjNTY2hlbWFPYmplY3QpLnByb3BlcnRpZXMgfHwge30pXG4gICAgICAgICAgLmxlbmd0aCA+IDApIHx8XG4gICAgICAvLyDmnIkgJHJlZiDlvJXnlKhcbiAgICAgICEhcHJvcGVydHkuJHJlZiB8fFxuICAgICAgISFwcm9wZXJ0eT8uaXRlbXM/LiRyZWZcbiAgICApO1xuICB9XG5cbiAgLy8gRXhhbXBsZXMg55u45YWz5pa55rOVXG4gIHRyeUV4YW1wbGUoZXhhbXBsZTogWWFtbEV4YW1wbGUpIHtcbiAgICAvLyDop6blj5Hkuovku7bvvIzorqnniLbnu4Tku7blpITnkIYgdHJ5IGl0IOWKn+iDve+8jOWwhiBZQU1MIOWGheWuueWPkemAgee7meeItue7hOS7tlxuICAgIHRoaXMudHJ5WWFtbC5lbWl0KGV4YW1wbGUueWFtbCk7XG4gIH1cblxuICBkb3dubG9hZFlhbWwoZXhhbXBsZTogWWFtbEV4YW1wbGUpIHtcbiAgICBjb25zdCBibG9iID0gbmV3IEJsb2IoW2V4YW1wbGUueWFtbF0sIHsgdHlwZTogJ3RleHQveWFtbCcgfSk7XG4gICAgY29uc3QgdXJsID0gd2luZG93LlVSTC5jcmVhdGVPYmplY3RVUkwoYmxvYik7XG4gICAgY29uc3QgbGluayA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2EnKTtcbiAgICBsaW5rLmhyZWYgPSB1cmw7XG4gICAgbGluay5kb3dubG9hZCA9IGAke2V4YW1wbGUudGl0bGUudG9Mb3dlckNhc2UoKS5yZXBsYWNlKC9cXHMrL2csICctJyl9LnlhbWxgO1xuICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQobGluayk7XG4gICAgbGluay5jbGljaygpO1xuICAgIGRvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQobGluayk7XG4gICAgd2luZG93LlVSTC5yZXZva2VPYmplY3RVUkwodXJsKTtcbiAgfVxuXG4gIC8vIOWkhOeQhuaPj+i/sOS4reeahOmTvuaOpVxuICBwcm9jZXNzRGVzY3JpcHRpb24oZGVzY3JpcHRpb246IHN0cmluZyk6IHN0cmluZyB7XG4gICAgaWYgKCFkZXNjcmlwdGlvbikgcmV0dXJuICcnO1xuXG4gICAgLy8g5bCGIFVSTCDovazmjaLkuLrlj6/ngrnlh7vnmoTpk77mjqVcbiAgICBjb25zdCB1cmxSZWdleCA9IC8oaHR0cHM/OlxcL1xcL1teXFxzXSspL2c7XG4gICAgcmV0dXJuIGRlc2NyaXB0aW9uXG4gICAgICAucmVwbGFjZShcbiAgICAgICAgdXJsUmVnZXgsXG4gICAgICAgICc8YSBocmVmPVwiJDFcIiB0YXJnZXQ9XCJfYmxhbmtcIiByZWw9XCJub29wZW5lciBub3JlZmVycmVyXCI+JDE8L2E+JyxcbiAgICAgIClcbiAgICAgIC5yZXBsYWNlKC9cXG4vZywgJzxicj4nKTsgLy8g5L+d55WZ5o2i6KGM56ymXG4gIH1cblxuICBwcml2YXRlIHNjcm9sbFRvcCgpIHtcbiAgICB0aGlzLmhvc3QubmF0aXZlRWxlbWVudC5zY3JvbGxUbyh7XG4gICAgICB0b3A6IDAsXG4gICAgfSk7XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJzY2hlbWEtaGVhZGVyXCI+XG4gIDxzcGFuPnt7IHJlc291cmNlS2luZCB9fTwvc3Bhbj5cbiAgPGF1aS1pY29uXG4gICAgaWNvbj1cInhtYXJrXCJcbiAgICAoY2xpY2spPVwiY2xvc2UubmV4dCgpXCJcbiAgPjwvYXVpLWljb24+XG48L2Rpdj5cbjxhdWktdGFiLWdyb3VwIHR5cGU9XCJjYXJkXCI+XG4gIDxhdWktdGFiICpuZ0lmPVwic2NoZW1hRW5hYmxlICYmIGhhc1NjaGVtYVwiPlxuICAgIDxuZy1jb250YWluZXIgKmF1aVRhYkxhYmVsPiBTY2hlbWEgPC9uZy1jb250YWluZXI+XG4gICAgPG5nLWNvbnRhaW5lciAqYXVpVGFiQ29udGVudD5cbiAgICAgIDxkaXZcbiAgICAgICAgKm5nSWY9XCJzY2hlbWFcIlxuICAgICAgICBjbGFzcz1cInNjaGVtYS1jb250ZW50XCJcbiAgICAgID5cbiAgICAgICAgPGRpdiBjbGFzcz1cInNjaGVtYS1wYXRoXCI+XG4gICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInBhdGgubGVuZ3RoXCI+XG4gICAgICAgICAgICA8YVxuICAgICAgICAgICAgICBocmVmPVwiamF2YXNjcmlwdDpcIlxuICAgICAgICAgICAgICAoY2xpY2spPVwicmVmcmVzaCgpXCJcbiAgICAgICAgICAgICAgPnt7IHJlc291cmNlS2luZCB9fTwvYVxuICAgICAgICAgICAgPlxuICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgcCBvZiBwYXRoOyBpbmRleCBhcyBpOyBsYXN0IGFzIGlzTGFzdFwiPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFpc0xhc3RcIj5cbiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJwYXRoLW1hcmtcIj4+PC9zcGFuPlxuICAgICAgICAgICAgICA8YVxuICAgICAgICAgICAgICAgIGhyZWY9XCJqYXZhc2NyaXB0OlwiXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cIm5hdmlnYXRlVG9QYXRoKGkpXCJcbiAgICAgICAgICAgICAgICA+e3sgcCB9fTwvYVxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJpc0xhc3RcIj5cbiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJwYXRoLW1hcmtcIj4+PC9zcGFuPlxuICAgICAgICAgICAgICA8c3Bhbj57eyBwIH19PC9zcGFuPlxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2XG4gICAgICAgICAgKm5nSWY9XCJjdXJyZW50U2NoZW1hRGVzY3JpcHRpb25cIlxuICAgICAgICAgIGNsYXNzPVwic2NoZW1hLWRlc2NcIlxuICAgICAgICAgIFtpbm5lckhUTUxdPVwiXG4gICAgICAgICAgICBjdXJyZW50U2NoZW1hRGVzY3JpcHRpb25cbiAgICAgICAgICAgICAgfCBhY2xQYXJzZUpzb25UcmFuc2xhdGVcbiAgICAgICAgICAgICAgfCBwdXJlOiBwcm9jZXNzRGVzY3JpcHRpb25cbiAgICAgICAgICBcIlxuICAgICAgICA+PC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJzY2hlbWEtbGlzdFwiPlxuICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICpuZ0Zvcj1cImxldCBpdGVtIG9mIHByb3BlcnRpZXMgfCBrZXl2YWx1ZVwiXG4gICAgICAgICAgICBjbGFzcz1cInNjaGVtYS1pdGVtXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICA8aDM+XG4gICAgICAgICAgICAgIDxzcGFuPnt7IGl0ZW0ua2V5IH19PC9zcGFuPlxuICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm9iai10eXBlXCI+e3sgaXRlbS52YWx1ZS50eXBlIH19PC9zcGFuPlxuICAgICAgICAgICAgPC9oMz5cbiAgICAgICAgICAgIDxwXG4gICAgICAgICAgICAgIFtpbm5lckhUTUxdPVwiaXRlbS52YWx1ZS5kZXNjcmlwdGlvbiB8IHB1cmU6IHByb2Nlc3NEZXNjcmlwdGlvblwiXG4gICAgICAgICAgICA+PC9wPlxuICAgICAgICAgICAgPHAgKm5nSWY9XCJpdGVtLnZhbHVlIHwgcHVyZTogaGFzVmlld2FibGVDb250ZW50XCI+XG4gICAgICAgICAgICAgIDxhXG4gICAgICAgICAgICAgICAgaHJlZj1cImphdmFzY3JpcHQ6XCJcbiAgICAgICAgICAgICAgICAoY2xpY2spPVwiZHJpbGxEb3duVG9Qcm9wZXJ0eShpdGVtLmtleSlcIlxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAge3sgJ3ZpZXdfZGV0YWlsJyB8IHRyYW5zbGF0ZSB9fVxuICAgICAgICAgICAgICA8L2E+XG4gICAgICAgICAgICA8L3A+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgPC9uZy1jb250YWluZXI+XG4gIDwvYXVpLXRhYj5cbiAgPGF1aS10YWIgKm5nSWY9XCJleGFtcGxlRW5hYmxlICYmIGhhc0V4YW1wbGVzXCI+XG4gICAgPG5nLWNvbnRhaW5lciAqYXVpVGFiTGFiZWw+IEV4YW1wbGVzIDwvbmctY29udGFpbmVyPlxuICAgIDxuZy1jb250YWluZXIgKmF1aVRhYkNvbnRlbnQ+XG4gICAgICA8ZGl2IGNsYXNzPVwiZXhhbXBsZS1saXN0XCI+XG4gICAgICAgIDxkaXZcbiAgICAgICAgICAqbmdGb3I9XCJsZXQgZXhhbXBsZSBvZiBleGFtcGxlczsgbGV0IGkgPSBpbmRleFwiXG4gICAgICAgICAgY2xhc3M9XCJleGFtcGxlLWl0ZW1cIlxuICAgICAgICA+XG4gICAgICAgICAgPGgzPlxuICAgICAgICAgICAge3sgaSArIDEgfX0uIDxzcGFuPnt7IGV4YW1wbGUudGl0bGUgfX08L3NwYW4+XG4gICAgICAgICAgPC9oMz5cbiAgICAgICAgICA8cCBbaW5uZXJIVE1MXT1cImV4YW1wbGUuZGVzY3JpcHRpb24gfCBwdXJlOiBwcm9jZXNzRGVzY3JpcHRpb25cIj48L3A+XG4gICAgICAgICAgPHAgY2xhc3M9XCJ0dy1mbGV4IHR3LWp1c3RpZnktYmV0d2VlblwiPlxuICAgICAgICAgICAgPGFcbiAgICAgICAgICAgICAgaHJlZj1cImphdmFzY3JpcHQ6XCJcbiAgICAgICAgICAgICAgKGNsaWNrKT1cInRyeUV4YW1wbGUoZXhhbXBsZSlcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICA8YXVpLWljb25cbiAgICAgICAgICAgICAgICBpY29uPVwiYXJyb3dfdHVybl91cFwiXG4gICAgICAgICAgICAgICAgc2l6ZT1cIjE0XCJcbiAgICAgICAgICAgICAgICBtYXJnaW49XCJyaWdodFwiXG4gICAgICAgICAgICAgID48L2F1aS1pY29uPlxuICAgICAgICAgICAgICA8c3Bhbj5UcnkgaXQ8L3NwYW4+XG4gICAgICAgICAgICA8L2E+XG4gICAgICAgICAgICA8YVxuICAgICAgICAgICAgICBocmVmPVwiamF2YXNjcmlwdDpcIlxuICAgICAgICAgICAgICAoY2xpY2spPVwiZG93bmxvYWRZYW1sKGV4YW1wbGUpXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPGF1aS1pY29uXG4gICAgICAgICAgICAgICAgaWNvbj1cImRvd25sb2FkXCJcbiAgICAgICAgICAgICAgICBzaXplPVwiMTRcIlxuICAgICAgICAgICAgICAgIG1hcmdpbj1cInJpZ2h0XCJcbiAgICAgICAgICAgICAgPjwvYXVpLWljb24+XG4gICAgICAgICAgICAgIDxzcGFuPkRvd25sb2FkIFlBTUw8L3NwYW4+XG4gICAgICAgICAgICA8L2E+XG4gICAgICAgICAgPC9wPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIDwvbmctY29udGFpbmVyPlxuICA8L2F1aS10YWI+XG48L2F1aS10YWItZ3JvdXA+XG4iXX0=
456
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21tb24vc3JjL2NvZGUveWFtbC1zaWRlYmFyL2NvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tbW9uL3NyYy9jb2RlL3lhbWwtc2lkZWJhci90ZW1wbGF0ZS5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsVUFBVSxFQUFFLFlBQVksRUFBRSxNQUFNLFlBQVksQ0FBQztBQUNsRSxPQUFPLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUM5RCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDbEQsT0FBTyxFQUNMLFNBQVMsRUFDVCxLQUFLLEVBSUwsdUJBQXVCLEVBQ3ZCLE1BQU0sRUFDTixZQUFZLEVBQ1osaUJBQWlCLEVBQ2pCLFVBQVUsR0FDWCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQWMsRUFBRSxFQUFFLEdBQUcsRUFBRSxVQUFVLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFdkQsT0FBTyxFQUFFLFFBQVEsRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQy9FLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLCtDQUErQyxDQUFDO0FBS3hGLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQ3BFLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLGtCQUFrQixDQUFDOzs7Ozs7O0lDZnRELDZCQUEyQjtJQUFDLHdCQUFPOzs7OztJQU83Qiw2QkFBa0M7SUFDaEMsNkJBR0c7SUFERCw0TkFBUyxnQkFBUyxLQUFDO0lBQ2xCLFlBQWtCO0lBQUEsaUJBQ3BCOzs7O0lBREUsZUFBa0I7SUFBbEIseUNBQWtCOzs7O0lBS3JCLDZCQUE4QjtJQUM1Qixn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LENBQUMsYUFBYSxDQUFDLFFBQVEsQ0FBQztZQUMvQixHQUFHLEVBQUUsQ0FBQztTQUNQLENBQUMsQ0FBQztJQUNMLENBQUM7NkZBMVBVLDRCQUE0QjtvRUFBNUIsNEJBQTRCO1lDN0N2QyxBQURGLDhCQUEyQixXQUNuQjtZQUFBLFlBQWtCO1lBQUEsaUJBQU87WUFDL0IsbUNBR0M7WUFEQywyR0FBUyxnQkFBWSxJQUFDO1lBRTFCLEFBREcsaUJBQVcsRUFDUjtZQUNOLHdDQUEyQjtZQWtFekIsQUFqRUEscUZBQTJDLHdFQWlFRztZQXdDaEQsaUJBQWdCOztZQWhIUixlQUFrQjtZQUFsQixzQ0FBa0I7WUFPZCxlQUErQjtZQUEvQix3REFBK0I7WUFpRS9CLGNBQWtDO1lBQWxDLDJEQUFrQzs0QkR0QzFDLElBQUk7WUFDSixPQUFPO1lBQ1AsWUFBWSxvQkFFWixzQkFBc0I7WUFDdEIsVUFBVSxvQkFDVixVQUFVLHVGQUNWLFlBQVk7WUFDWixRQUFROztpRkFHQyw0QkFBNEI7Y0FsQnhDLFNBQVM7MkJBQ0UsMkJBQTJCLG1CQUdwQix1QkFBdUIsQ0FBQyxNQUFNLGNBQ25DLElBQUksV0FDUDtvQkFDUCxJQUFJO29CQUNKLE9BQU87b0JBQ1AsWUFBWTtvQkFDWixnQkFBZ0I7b0JBQ2hCLHNCQUFzQjtvQkFDdEIsVUFBVTtvQkFDVixVQUFVO29CQUNWLFlBQVk7b0JBQ1osUUFBUTtpQkFDVDswSUFJRCxRQUFRO2tCQURQLEtBQUs7WUFJTixNQUFNO2tCQURMLEtBQUs7O0lBSU4sNERBQTREO0lBQzVELEtBQUs7a0JBRkosTUFBTTtZQUtQLE9BQU87a0JBRE4sTUFBTTtZQUlQLFlBQVk7a0JBRFgsS0FBSztZQUlOLGFBQWE7a0JBRFosS0FBSztZQUlOLGFBQWE7a0JBRFosS0FBSzs7a0ZBcEJLLDRCQUE0QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEljb25Nb2R1bGUsIFRhYnNNb2R1bGUsIEJ1dHRvbk1vZHVsZSB9IGZyb20gJ0BhbGF1ZGEvdWknO1xuaW1wb3J0IHsgTmdJZiwgTmdGb3JPZiwgS2V5VmFsdWVQaXBlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IEh0dHBDbGllbnQgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQge1xuICBDb21wb25lbnQsXG4gIElucHV0LFxuICBPbkluaXQsXG4gIE9uQ2hhbmdlcyxcbiAgU2ltcGxlQ2hhbmdlcyxcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIE91dHB1dCxcbiAgRXZlbnRFbWl0dGVyLFxuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgRWxlbWVudFJlZixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBvZiwgbWFwLCBjYXRjaEVycm9yIH0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7IFB1cmVQaXBlLCBQYXJzZUpzb25UcmFuc2xhdGVQaXBlIH0gZnJvbSAnLi4vLi4vY29yZS9waXBlcy9wdWJsaWMtYXBpJztcbmltcG9ydCB7IEt1YmVybmV0ZXNTY2hlbWFTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vY29yZS9zZXJ2aWNlcy9rdWJlcm5ldGVzLXNjaGVtYS5zZXJ2aWNlJztcbmltcG9ydCB7XG4gIEt1YmVybmV0ZXNSZXNvdXJjZSxcbiAgT3BlbkFQSVYzU2NoZW1hT2JqZWN0LFxufSBmcm9tICcuLi8uLi9jb3JlL3R5cGVzL3B1YmxpYy1hcGknO1xuaW1wb3J0IHsgVFJBTlNMQVRFX01PRFVMRSB9IGZyb20gJy4uLy4uL3RyYW5zbGF0ZS90cmFuc2xhdGUubW9kdWxlJztcbmltcG9ydCB7IEJVSUxUX0lOX1lBTUxfRVhBTVBMRVMgfSBmcm9tICcuLi95YW1sLWV4YW1wbGVzJztcblxuaW1wb3J0IHsgWWFtbEV4YW1wbGUsIENvbnNvbGVZQU1MU2FtcGxlIH0gZnJvbSAnLi90eXBlcyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2FjbC1yZXNvdXJjZS15YW1sLXNpZGViYXInLFxuICB0ZW1wbGF0ZVVybDogJ3RlbXBsYXRlLmh0bWwnLFxuICBzdHlsZVVybHM6IFsnc3R5bGVzLnNjc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtcbiAgICBOZ0lmLFxuICAgIE5nRm9yT2YsXG4gICAgS2V5VmFsdWVQaXBlLFxuICAgIFRSQU5TTEFURV9NT0RVTEUsXG4gICAgUGFyc2VKc29uVHJhbnNsYXRlUGlwZSxcbiAgICBJY29uTW9kdWxlLFxuICAgIFRhYnNNb2R1bGUsXG4gICAgQnV0dG9uTW9kdWxlLFxuICAgIFB1cmVQaXBlLFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBSZXNvdXJjZVlhbWxTaWRlYmFyQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkNoYW5nZXMge1xuICBASW5wdXQoKVxuICByZXNvdXJjZTogS3ViZXJuZXRlc1Jlc291cmNlO1xuXG4gIEBJbnB1dCgpXG4gIHNjaGVtYTogT3BlbkFQSVYzU2NoZW1hT2JqZWN0O1xuXG4gIEBPdXRwdXQoKVxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLW91dHB1dC1uYXRpdmVcbiAgY2xvc2UgPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG5cbiAgQE91dHB1dCgpXG4gIHRyeVlhbWwgPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZz4oKTtcblxuICBASW5wdXQoKVxuICBzY2hlbWFFbmFibGUgPSB0cnVlO1xuXG4gIEBJbnB1dCgpXG4gIGV4YW1wbGVFbmFibGUgPSB0cnVlO1xuXG4gIEBJbnB1dCgpXG4gIGV4dHJhRXhhbXBsZXM6IFlhbWxFeGFtcGxlW107XG5cbiAgcHJpdmF0ZSByZWFkb25seSBERUZJTklUSU9OU19QUkVGSVggPSAnIy9kZWZpbml0aW9ucy8nO1xuXG4gIGN1cnJlbnRTY2hlbWE6IE9wZW5BUElWM1NjaGVtYU9iamVjdDtcbiAgY3VycmVudFNjaGVtYURlc2NyaXB0aW9uOiBzdHJpbmc7XG4gIHByb3BlcnRpZXM6IHsgW2tleTogc3RyaW5nXTogT3BlbkFQSVYzU2NoZW1hT2JqZWN0IH07XG4gIHBhdGg6IHN0cmluZ1tdID0gW107XG4gIHJlc291cmNlS2luZDogc3RyaW5nO1xuICBleGFtcGxlczogWWFtbEV4YW1wbGVbXSA9IFtdO1xuICBoYXNTY2hlbWEgPSBmYWxzZTtcbiAgaGFzRXhhbXBsZXMgPSBmYWxzZTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHNjaGVtYVNlcnZpY2U6IEt1YmVybmV0ZXNTY2hlbWFTZXJ2aWNlLFxuICAgIHByaXZhdGUgaHR0cDogSHR0cENsaWVudCxcbiAgICBwcml2YXRlIGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgcHJpdmF0ZSBob3N0OiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PixcbiAgKSB7fVxuXG4gIG5nT25Jbml0KCkge1xuICAgIHRoaXMucmVmcmVzaCgpO1xuICAgIHRoaXMubG9hZEV4YW1wbGVzKCk7XG4gIH1cblxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKSB7XG4gICAgaWYgKGNoYW5nZXMuc2NoZW1hIHx8IGNoYW5nZXMucmVzb3VyY2UpIHtcbiAgICAgIHRoaXMucmVmcmVzaCgpO1xuICAgICAgdGhpcy5sb2FkRXhhbXBsZXMoKTtcbiAgICB9XG4gIH1cblxuICByZWZyZXNoKCkge1xuICAgIGlmICh0aGlzLnNjaGVtYSkge1xuICAgICAgdGhpcy5jdXJyZW50U2NoZW1hID0gdGhpcy5zY2hlbWE7XG4gICAgICB0aGlzLmN1cnJlbnRTY2hlbWFEZXNjcmlwdGlvbiA9IHRoaXMuc2NoZW1hLmRlc2NyaXB0aW9uO1xuICAgICAgdGhpcy5wcm9wZXJ0aWVzID0gdGhpcy5zY2hlbWEucHJvcGVydGllcyB8fCB7fTtcbiAgICAgIHRoaXMucGF0aCA9IFtdO1xuICAgICAgdGhpcy5oYXNTY2hlbWEgPSB0cnVlO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmhhc1NjaGVtYSA9IGZhbHNlO1xuICAgIH1cblxuICAgIGlmICh0aGlzLnJlc291cmNlKSB7XG4gICAgICB0aGlzLnJlc291cmNlS2luZCA9IHRoaXMucmVzb3VyY2Uua2luZCB8fCAnUmVzb3VyY2UnO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgbG9hZEV4YW1wbGVzKCkge1xuICAgIGlmICghdGhpcy5yZXNvdXJjZSkge1xuICAgICAgdGhpcy5leGFtcGxlcyA9IFtdO1xuICAgICAgdGhpcy5oYXNFeGFtcGxlcyA9IGZhbHNlO1xuICAgICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgcmVzb3VyY2VLZXkgPSBgJHt0aGlzLnJlc291cmNlLmFwaVZlcnNpb259LiR7dGhpcy5yZXNvdXJjZS5raW5kfWA7XG4gICAgY29uc3QgYnVpbHRJbkV4YW1wbGVzID0gQlVJTFRfSU5fWUFNTF9FWEFNUExFU1tyZXNvdXJjZUtleV0gfHwgW107XG5cbiAgICAvLyDliqDovb0gQ29uc29sZVlBTUxTYW1wbGUgQ1JEIOS4reeahOekuuS+i1xuICAgIHRoaXMubG9hZENvbnNvbGVZQU1MU2FtcGxlcygpLnN1YnNjcmliZSh7XG4gICAgICBuZXh0OiBjcmRFeGFtcGxlcyA9PiB7XG4gICAgICAgIHRoaXMuZXhhbXBsZXMgPSBbXG4gICAgICAgICAgLi4uYnVpbHRJbkV4YW1wbGVzLFxuICAgICAgICAgIC4uLih0aGlzLmV4dHJhRXhhbXBsZXMgfHwgW10pLFxuICAgICAgICAgIC4uLmNyZEV4YW1wbGVzLFxuICAgICAgICBdO1xuICAgICAgICB0aGlzLmhhc0V4YW1wbGVzID0gdGhpcy5leGFtcGxlcy5sZW5ndGggPiAwO1xuICAgICAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcbiAgICAgIH0sXG4gICAgICBlcnJvcjogKCkgPT4ge1xuICAgICAgICAvLyDlpoLmnpzliqDovb0gQ1JEIOekuuS+i+Wksei0pe+8jOWPquS9v+eUqOWGhee9ruekuuS+i1xuICAgICAgICB0aGlzLmV4YW1wbGVzID0gYnVpbHRJbkV4YW1wbGVzO1xuICAgICAgICB0aGlzLmhhc0V4YW1wbGVzID0gdGhpcy5leGFtcGxlcy5sZW5ndGggPiAwO1xuICAgICAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcbiAgICAgIH0sXG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGxvYWRDb25zb2xlWUFNTFNhbXBsZXMoKTogT2JzZXJ2YWJsZTxZYW1sRXhhbXBsZVtdPiB7XG4gICAgaWYgKCF0aGlzLnJlc291cmNlKSB7XG4gICAgICByZXR1cm4gb2YoW10pO1xuICAgIH1cblxuICAgIC8vIOaehOW7uuafpeivoiBDb25zb2xlWUFNTFNhbXBsZSDnmoQgQVBJIOi3r+W+hFxuICAgIGNvbnN0IGFwaVBhdGggPSBge3tBUElfR0FURVdBWX19L2t1YmVybmV0ZXMvJHt0aGlzLnNjaGVtYVNlcnZpY2Uud29ya3NwYWNlSGVscGVyPy5iYXNlUGFyYW1zU25hcHNob3QuY2x1c3RlciB8fCAnZ2xvYmFsJ30vYXBpcy9jb25zb2xlLmFsYXVkYS5pby92MS9jb25zb2xleWFtbHNhbXBsZXNgO1xuXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8eyBpdGVtczogQ29uc29sZVlBTUxTYW1wbGVbXSB9PihhcGlQYXRoKS5waXBlKFxuICAgICAgbWFwKHJlc3BvbnNlID0+IHtcbiAgICAgICAgcmV0dXJuIHJlc3BvbnNlLml0ZW1zXG4gICAgICAgICAgLmZpbHRlcihzYW1wbGUgPT4ge1xuICAgICAgICAgICAgY29uc3QgdGFyZ2V0ID0gc2FtcGxlLnNwZWMudGFyZ2V0UmVzb3VyY2U7XG4gICAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgICB0YXJnZXQuYXBpVmVyc2lvbiA9PT0gdGhpcy5yZXNvdXJjZS5hcGlWZXJzaW9uICYmXG4gICAgICAgICAgICAgIHRhcmdldC5raW5kID09PSB0aGlzLnJlc291cmNlLmtpbmRcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgfSlcbiAgICAgICAgICAubWFwKHNhbXBsZSA9PiAoe1xuICAgICAgICAgICAgdGl0bGU6IHNhbXBsZS5zcGVjLnRpdGxlLFxuICAgICAgICAgICAgZGVzY3JpcHRpb246IHNhbXBsZS5zcGVjLmRlc2NyaXB0aW9uLFxuICAgICAgICAgICAgeWFtbDogc2FtcGxlLnNwZWMueWFtbCxcbiAgICAgICAgICAgIHNuaXBwZXQ6IHNhbXBsZS5zcGVjLnNuaXBwZXQsXG4gICAgICAgICAgfSkpO1xuICAgICAgfSksXG4gICAgICBjYXRjaEVycm9yKCgpID0+IG9mKFtdKSksXG4gICAgKTtcbiAgfVxuXG4gIGRyaWxsRG93blRvUHJvcGVydHkobmFtZTogc3RyaW5nKSB7XG4gICAgY29uc3QgcHJvcGVydHkgPSB0aGlzLmN1cnJlbnRTY2hlbWEucHJvcGVydGllcz8uW25hbWVdO1xuICAgIGlmIChwcm9wZXJ0eSkge1xuICAgICAgdGhpcy5jdXJyZW50U2NoZW1hRGVzY3JpcHRpb24gPSBwcm9wZXJ0eS5kZXNjcmlwdGlvbjtcbiAgICAgIGxldCB0YXJnZXRTY2hlbWE6IE9wZW5BUElWM1NjaGVtYU9iamVjdCB8IG51bGwgPSBudWxsO1xuICAgICAgLy8g5aSE55CGICRyZWYg5byV55SoXG4gICAgICBpZiAocHJvcGVydHkuJHJlZiB8fCBwcm9wZXJ0eS5pdGVtcz8uJHJlZikge1xuICAgICAgICBjb25zdCByZWYgPSBwcm9wZXJ0eS4kcmVmIHx8IHByb3BlcnR5Lml0ZW1zPy4kcmVmO1xuXG4gICAgICAgIGlmIChyZWYuc3RhcnRzV2l0aCh0aGlzLkRFRklOSVRJT05TX1BSRUZJWCkpIHtcbiAgICAgICAgICBjb25zdCBkZWZpbml0aW9uTmFtZSA9IHJlZi5yZXBsYWNlKHRoaXMuREVGSU5JVElPTlNfUFJFRklYLCAnJyk7XG4gICAgICAgICAgLy8g5LuO5qC5IHNjaGVtYSDnmoQgZGVmaW5pdGlvbnMg5Lit6I635Y+W5a6a5LmJXG4gICAgICAgICAgY29uc3Qgcm9vdERlZmluaXRpb25zID0gdGhpcy5zY2hlbWFTZXJ2aWNlLmRlZmluaXRpb25zO1xuICAgICAgICAgIHRhcmdldFNjaGVtYSA9IHJvb3REZWZpbml0aW9ucz8uW2RlZmluaXRpb25OYW1lXSB8fCBudWxsO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICAvLyDlpITnkIbmma7pgJrnmoTltYzlpZflsZ7mgKdcbiAgICAgIGVsc2UgaWYgKHByb3BlcnR5LnByb3BlcnRpZXMgfHwgcHJvcGVydHkuaXRlbXM/LnByb3BlcnRpZXMpIHtcbiAgICAgICAgdGFyZ2V0U2NoZW1hID0gcHJvcGVydHkuaXRlbXM/LnByb3BlcnRpZXMgPyBwcm9wZXJ0eS5pdGVtcyA6IHByb3BlcnR5O1xuICAgICAgfVxuXG4gICAgICBpZiAodGFyZ2V0U2NoZW1hKSB7XG4gICAgICAgIHRoaXMuY3VycmVudFNjaGVtYSA9IHRhcmdldFNjaGVtYTtcbiAgICAgICAgdGhpcy5wYXRoLnB1c2gobmFtZSk7XG4gICAgICAgIHRoaXMucHJvcGVydGllcyA9IHRhcmdldFNjaGVtYS5wcm9wZXJ0aWVzIHx8IHt9O1xuXG4gICAgICAgIHRoaXMuc2Nyb2xsVG9wKCk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgbmF2aWdhdGVUb1BhdGgoaW5kZXg6IG51bWJlcikge1xuICAgIGNvbnN0IHRhcmdldFBhdGggPSB0aGlzLnBhdGguc2xpY2UoMCwgaW5kZXggKyAxKTtcbiAgICB0aGlzLnBhdGggPSBbLi4udGFyZ2V0UGF0aF07XG5cbiAgICBsZXQgY3VycmVudE9iaiA9IHRoaXMuc2NoZW1hO1xuICAgIGZvciAoY29uc3QgcGF0aFNlZ21lbnQgb2YgdGFyZ2V0UGF0aCkge1xuICAgICAgY29uc3QgcHJvcGVydHkgPSBjdXJyZW50T2JqLnByb3BlcnRpZXM/LltwYXRoU2VnbWVudF07XG4gICAgICBpZiAocHJvcGVydHkpIHtcbiAgICAgICAgdGhpcy5jdXJyZW50U2NoZW1hRGVzY3JpcHRpb24gPSBwcm9wZXJ0eS5kZXNjcmlwdGlvbjtcbiAgICAgICAgLy8g5aSE55CGICRyZWYg5byV55SoXG4gICAgICAgIGlmIChwcm9wZXJ0eS4kcmVmIHx8IHByb3BlcnR5Lml0ZW1zPy4kcmVmKSB7XG4gICAgICAgICAgY29uc3QgcmVmID0gcHJvcGVydHkuJHJlZiB8fCBwcm9wZXJ0eS5pdGVtcz8uJHJlZjtcbiAgICAgICAgICBpZiAocmVmLnN0YXJ0c1dpdGgodGhpcy5ERUZJTklUSU9OU19QUkVGSVgpKSB7XG4gICAgICAgICAgICBjb25zdCBkZWZpbml0aW9uTmFtZSA9IHJlZi5yZXBsYWNlKHRoaXMuREVGSU5JVElPTlNfUFJFRklYLCAnJyk7XG4gICAgICAgICAgICBjb25zdCByb290RGVmaW5pdGlvbnMgPSB0aGlzLnNjaGVtYVNlcnZpY2UuZGVmaW5pdGlvbnM7XG4gICAgICAgICAgICBjb25zdCBkZWZpbml0aW9uID0gcm9vdERlZmluaXRpb25zPy5bZGVmaW5pdGlvbk5hbWVdO1xuICAgICAgICAgICAgaWYgKGRlZmluaXRpb24pIHtcbiAgICAgICAgICAgICAgY3VycmVudE9iaiA9IGRlZmluaXRpb247XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIC8vIOWkhOeQhuaZrumAmueahOW1jOWll+WxnuaAp1xuICAgICAgICBlbHNlIHtcbiAgICAgICAgICBjdXJyZW50T2JqID0gcHJvcGVydHkuaXRlbXM/LnByb3BlcnRpZXMgPyBwcm9wZXJ0eS5pdGVtcyA6IHByb3BlcnR5O1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgdGhpcy5jdXJyZW50U2NoZW1hID0gY3VycmVudE9iajtcbiAgICB0aGlzLnByb3BlcnRpZXMgPSBjdXJyZW50T2JqLnByb3BlcnRpZXMgfHwge307XG4gIH1cblxuICAvKipcbiAgICog5qOA5p+l5bGe5oCn5piv5ZCm5pyJICRyZWYg5byV55So5oiW5bWM5aWX5bGe5oCnXG4gICAqL1xuICBoYXNWaWV3YWJsZUNvbnRlbnQocHJvcGVydHk6IE9wZW5BUElWM1NjaGVtYU9iamVjdCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAoXG4gICAgICAvLyDmnIkgcHJvcGVydGllcyDnmoTlr7nosaFcbiAgICAgIChwcm9wZXJ0eS50eXBlID09PSAnb2JqZWN0JyAmJlxuICAgICAgICBwcm9wZXJ0eS5wcm9wZXJ0aWVzICYmXG4gICAgICAgIE9iamVjdC5rZXlzKHByb3BlcnR5LnByb3BlcnRpZXMpLmxlbmd0aCA+IDApIHx8XG4gICAgICAvLyDmnIkgcHJvcGVydGllcyDnmoTmlbDnu4TpoblcbiAgICAgIChwcm9wZXJ0eS50eXBlID09PSAnYXJyYXknICYmXG4gICAgICAgIHByb3BlcnR5Lml0ZW1zICYmXG4gICAgICAgIHR5cGVvZiBwcm9wZXJ0eS5pdGVtcyA9PT0gJ29iamVjdCcgJiZcbiAgICAgICAgKHByb3BlcnR5Lml0ZW1zIGFzIE9wZW5BUElWM1NjaGVtYU9iamVjdCkucHJvcGVydGllcyAmJlxuICAgICAgICBPYmplY3Qua2V5cygocHJvcGVydHkuaXRlbXMgYXMgT3BlbkFQSVYzU2NoZW1hT2JqZWN0KS5wcm9wZXJ0aWVzIHx8IHt9KVxuICAgICAgICAgIC5sZW5ndGggPiAwKSB8fFxuICAgICAgLy8g5pyJICRyZWYg5byV55SoXG4gICAgICAhIXByb3BlcnR5LiRyZWYgfHxcbiAgICAgICEhcHJvcGVydHk/Lml0ZW1zPy4kcmVmXG4gICAgKTtcbiAgfVxuXG4gIC8vIEV4YW1wbGVzIOebuOWFs+aWueazlVxuICB0cnlFeGFtcGxlKGV4YW1wbGU6IFlhbWxFeGFtcGxlKSB7XG4gICAgLy8g6Kem5Y+R5LqL5Lu277yM6K6p54i257uE5Lu25aSE55CGIHRyeSBpdCDlip/og73vvIzlsIYgWUFNTCDlhoXlrrnlj5HpgIHnu5nniLbnu4Tku7ZcbiAgICB0aGlzLnRyeVlhbWwuZW1pdChleGFtcGxlLnlhbWwpO1xuICB9XG5cbiAgZG93bmxvYWRZYW1sKGV4YW1wbGU6IFlhbWxFeGFtcGxlKSB7XG4gICAgY29uc3QgYmxvYiA9IG5ldyBCbG9iKFtleGFtcGxlLnlhbWxdLCB7IHR5cGU6ICd0ZXh0L3lhbWwnIH0pO1xuICAgIGNvbnN0IHVybCA9IHdpbmRvdy5VUkwuY3JlYXRlT2JqZWN0VVJMKGJsb2IpO1xuICAgIGNvbnN0IGxpbmsgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdhJyk7XG4gICAgbGluay5ocmVmID0gdXJsO1xuICAgIGxpbmsuZG93bmxvYWQgPSBgJHtleGFtcGxlLnRpdGxlLnRvTG93ZXJDYXNlKCkucmVwbGFjZSgvXFxzKy9nLCAnLScpfS55YW1sYDtcbiAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGxpbmspO1xuICAgIGxpbmsuY2xpY2soKTtcbiAgICBkb2N1bWVudC5ib2R5LnJlbW92ZUNoaWxkKGxpbmspO1xuICAgIHdpbmRvdy5VUkwucmV2b2tlT2JqZWN0VVJMKHVybCk7XG4gIH1cblxuICAvLyDlpITnkIbmj4/ov7DkuK3nmoTpk77mjqVcbiAgcHJvY2Vzc0Rlc2NyaXB0aW9uKGRlc2NyaXB0aW9uOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIGlmICghZGVzY3JpcHRpb24pIHJldHVybiAnJztcblxuICAgIC8vIOWwhiBVUkwg6L2s5o2i5Li65Y+v54K55Ye755qE6ZO+5o6lXG4gICAgY29uc3QgdXJsUmVnZXggPSAvKGh0dHBzPzpcXC9cXC9bXlxcc10rKS9nO1xuICAgIHJldHVybiBkZXNjcmlwdGlvblxuICAgICAgLnJlcGxhY2UoXG4gICAgICAgIHVybFJlZ2V4LFxuICAgICAgICAnPGEgaHJlZj1cIiQxXCIgdGFyZ2V0PVwiX2JsYW5rXCIgcmVsPVwibm9vcGVuZXIgbm9yZWZlcnJlclwiPiQxPC9hPicsXG4gICAgICApXG4gICAgICAucmVwbGFjZSgvXFxuL2csICc8YnI+Jyk7IC8vIOS/neeVmeaNouihjOesplxuICB9XG5cbiAgcHJpdmF0ZSBzY3JvbGxUb3AoKSB7XG4gICAgdGhpcy5ob3N0Lm5hdGl2ZUVsZW1lbnQuc2Nyb2xsVG8oe1xuICAgICAgdG9wOiAwLFxuICAgIH0pO1xuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwic2NoZW1hLWhlYWRlclwiPlxuICA8c3Bhbj57eyByZXNvdXJjZUtpbmQgfX08L3NwYW4+XG4gIDxhdWktaWNvblxuICAgIGljb249XCJ4bWFya1wiXG4gICAgKGNsaWNrKT1cImNsb3NlLm5leHQoKVwiXG4gID48L2F1aS1pY29uPlxuPC9kaXY+XG48YXVpLXRhYi1ncm91cCB0eXBlPVwiY2FyZFwiPlxuICA8YXVpLXRhYiAqbmdJZj1cInNjaGVtYUVuYWJsZSAmJiBoYXNTY2hlbWFcIj5cbiAgICA8bmctY29udGFpbmVyICphdWlUYWJMYWJlbD4gU2NoZW1hIDwvbmctY29udGFpbmVyPlxuICAgIDxuZy1jb250YWluZXIgKmF1aVRhYkNvbnRlbnQ+XG4gICAgICA8ZGl2XG4gICAgICAgICpuZ0lmPVwic2NoZW1hXCJcbiAgICAgICAgY2xhc3M9XCJzY2hlbWEtY29udGVudFwiXG4gICAgICA+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJzY2hlbWEtcGF0aFwiPlxuICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJwYXRoLmxlbmd0aFwiPlxuICAgICAgICAgICAgPGFcbiAgICAgICAgICAgICAgaHJlZj1cImphdmFzY3JpcHQ6XCJcbiAgICAgICAgICAgICAgKGNsaWNrKT1cInJlZnJlc2goKVwiXG4gICAgICAgICAgICAgID57eyByZXNvdXJjZUtpbmQgfX08L2FcbiAgICAgICAgICAgID5cbiAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IHAgb2YgcGF0aDsgaW5kZXggYXMgaTsgbGFzdCBhcyBpc0xhc3RcIj5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhaXNMYXN0XCI+XG4gICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwicGF0aC1tYXJrXCI+Pjwvc3Bhbj5cbiAgICAgICAgICAgICAgPGFcbiAgICAgICAgICAgICAgICBocmVmPVwiamF2YXNjcmlwdDpcIlxuICAgICAgICAgICAgICAgIChjbGljayk9XCJuYXZpZ2F0ZVRvUGF0aChpKVwiXG4gICAgICAgICAgICAgICAgPnt7IHAgfX08L2FcbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiaXNMYXN0XCI+XG4gICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwicGF0aC1tYXJrXCI+Pjwvc3Bhbj5cbiAgICAgICAgICAgICAgPHNwYW4+e3sgcCB9fTwvc3Bhbj5cbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdlxuICAgICAgICAgICpuZ0lmPVwiY3VycmVudFNjaGVtYURlc2NyaXB0aW9uXCJcbiAgICAgICAgICBjbGFzcz1cInNjaGVtYS1kZXNjXCJcbiAgICAgICAgICBbaW5uZXJIVE1MXT1cIlxuICAgICAgICAgICAgY3VycmVudFNjaGVtYURlc2NyaXB0aW9uXG4gICAgICAgICAgICAgIHwgYWNsUGFyc2VKc29uVHJhbnNsYXRlXG4gICAgICAgICAgICAgIHwgcHVyZTogcHJvY2Vzc0Rlc2NyaXB0aW9uXG4gICAgICAgICAgXCJcbiAgICAgICAgPjwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwic2NoZW1hLWxpc3RcIj5cbiAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAqbmdGb3I9XCJsZXQgaXRlbSBvZiBwcm9wZXJ0aWVzIHwga2V5dmFsdWVcIlxuICAgICAgICAgICAgY2xhc3M9XCJzY2hlbWEtaXRlbVwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgPGgzPlxuICAgICAgICAgICAgICA8c3Bhbj57eyBpdGVtLmtleSB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJvYmotdHlwZVwiPnt7IGl0ZW0udmFsdWUudHlwZSB9fTwvc3Bhbj5cbiAgICAgICAgICAgIDwvaDM+XG4gICAgICAgICAgICA8cFxuICAgICAgICAgICAgICBbaW5uZXJIVE1MXT1cIml0ZW0udmFsdWUuZGVzY3JpcHRpb24gfCBwdXJlOiBwcm9jZXNzRGVzY3JpcHRpb25cIlxuICAgICAgICAgICAgPjwvcD5cbiAgICAgICAgICAgIDxwICpuZ0lmPVwiaXRlbS52YWx1ZSB8IHB1cmU6IGhhc1ZpZXdhYmxlQ29udGVudFwiPlxuICAgICAgICAgICAgICA8YVxuICAgICAgICAgICAgICAgIGhyZWY9XCJqYXZhc2NyaXB0OlwiXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cImRyaWxsRG93blRvUHJvcGVydHkoaXRlbS5rZXkpXCJcbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIHt7ICd2aWV3X2RldGFpbCcgfCB0cmFuc2xhdGUgfX1cbiAgICAgICAgICAgICAgPC9hPlxuICAgICAgICAgICAgPC9wPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIDwvbmctY29udGFpbmVyPlxuICA8L2F1aS10YWI+XG4gIDxhdWktdGFiICpuZ0lmPVwiZXhhbXBsZUVuYWJsZSAmJiBoYXNFeGFtcGxlc1wiPlxuICAgIDxuZy1jb250YWluZXIgKmF1aVRhYkxhYmVsPiBTYW1wbGVzIDwvbmctY29udGFpbmVyPlxuICAgIDxuZy1jb250YWluZXIgKmF1aVRhYkNvbnRlbnQ+XG4gICAgICA8ZGl2IGNsYXNzPVwiZXhhbXBsZS1saXN0XCI+XG4gICAgICAgIDxkaXZcbiAgICAgICAgICAqbmdGb3I9XCJsZXQgZXhhbXBsZSBvZiBleGFtcGxlczsgbGV0IGkgPSBpbmRleFwiXG4gICAgICAgICAgY2xhc3M9XCJleGFtcGxlLWl0ZW1cIlxuICAgICAgICA+XG4gICAgICAgICAgPGgzPlxuICAgICAgICAgICAge3sgaSArIDEgfX0uIDxzcGFuPnt7IGV4YW1wbGUudGl0bGUgfX08L3NwYW4+XG4gICAgICAgICAgPC9oMz5cbiAgICAgICAgICA8cCBbaW5uZXJIVE1MXT1cImV4YW1wbGUuZGVzY3JpcHRpb24gfCBwdXJlOiBwcm9jZXNzRGVzY3JpcHRpb25cIj48L3A+XG4gICAgICAgICAgPHAgY2xhc3M9XCJ0dy1mbGV4IHR3LWp1c3RpZnktYmV0d2VlblwiPlxuICAgICAgICAgICAgPGFcbiAgICAgICAgICAgICAgaHJlZj1cImphdmFzY3JpcHQ6XCJcbiAgICAgICAgICAgICAgKGNsaWNrKT1cInRyeUV4YW1wbGUoZXhhbXBsZSlcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICA8YXVpLWljb25cbiAgICAgICAgICAgICAgICBpY29uPVwiYXJyb3dfdHVybl91cFwiXG4gICAgICAgICAgICAgICAgc2l6ZT1cIjE0XCJcbiAgICAgICAgICAgICAgICBtYXJnaW49XCJyaWdodFwiXG4gICAgICAgICAgICAgID48L2F1aS1pY29uPlxuICAgICAgICAgICAgICA8c3Bhbj5UcnkgaXQ8L3NwYW4+XG4gICAgICAgICAgICA8L2E+XG4gICAgICAgICAgICA8YVxuICAgICAgICAgICAgICBocmVmPVwiamF2YXNjcmlwdDpcIlxuICAgICAgICAgICAgICAoY2xpY2spPVwiZG93bmxvYWRZYW1sKGV4YW1wbGUpXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPGF1aS1pY29uXG4gICAgICAgICAgICAgICAgaWNvbj1cImRvd25sb2FkXCJcbiAgICAgICAgICAgICAgICBzaXplPVwiMTRcIlxuICAgICAgICAgICAgICAgIG1hcmdpbj1cInJpZ2h0XCJcbiAgICAgICAgICAgICAgPjwvYXVpLWljb24+XG4gICAgICAgICAgICAgIDxzcGFuPkRvd25sb2FkIFlBTUw8L3NwYW4+XG4gICAgICAgICAgICA8L2E+XG4gICAgICAgICAgPC9wPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIDwvbmctY29udGFpbmVyPlxuICA8L2F1aS10YWI+XG48L2F1aS10YWItZ3JvdXA+XG4iXX0=