@1money/component-ui 0.0.42-alpha.12 → 0.0.42-alpha.13

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.
@@ -1,4 +1,326 @@
1
- .doc-article,.doc-home,.sb-docs-shell{--sb-doc-accent:#1677ff;--sb-doc-accent-soft:rgba(22,119,255,12%);--sb-doc-border:#e6ebf2;--sb-doc-border-strong:#d7deea;--sb-doc-text:#1f2329;--sb-doc-text-secondary:#5b667a;--sb-doc-surface:#fff;--sb-doc-surface-muted:#f7f9fc;--sb-doc-shadow:0 18px 48px rgba(15,23,42,8%);color:var(--sb-doc-text);font-family:Aeonik,Inter,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}.sb-docs-shell{padding:28px 24px 96px}.sb-docs-layout{max-width:1360px;margin:0 auto}.doc-article,.doc-home,.sb-docs-main{min-width:0}.doc-home-card,.doc-home-chip,.doc-home-hero,.doc-home-info-card,.doc-home-section,.sb-docs-hero,.sb-docs-section{background:var(--sb-doc-surface);border:1px solid var(--sb-doc-border);border-radius:24px;box-shadow:var(--sb-doc-shadow)}.doc-home-hero,.sb-docs-hero{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(280px,.85fr);gap:24px;margin-bottom:24px;padding:36px;background:radial-gradient(circle at top right,rgba(22,119,255,14%),transparent 38%),linear-gradient(180deg,#fff,#fbfcff)}.doc-home-card-kicker,.doc-home-kicker,.sb-docs-kicker,.sb-docs-section-kicker{margin:0 0 12px;color:var(--sb-doc-accent);font-weight:700;font-size:12px;letter-spacing:.14em;text-transform:uppercase}.doc-article h1,.doc-home h1,.sb-docs-title{margin:0 0 16px;color:#111827;font-weight:700;font-size:clamp(34px,4vw,52px);font-family:Aeonik,Inter,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;line-height:1.04;letter-spacing:-.04em}.doc-article-lead,.doc-home-lead,.sb-docs-description :where(p),.sb-docs-lead{max-width:760px;margin:0;color:var(--sb-doc-text-secondary);font-size:18px;line-height:1.72}.sb-docs-hero-panel{display:grid;gap:12px;align-content:start}.doc-home-chip,.doc-home-info-card,.doc-home-panel,.sb-docs-stat{padding:18px 20px;background:rgba(255,255,255,82%);border:1px solid var(--sb-doc-border);border-radius:18px}.sb-docs-stat-label{display:block;margin-bottom:6px;color:var(--sb-doc-text-secondary);font-weight:600;font-size:12px;letter-spacing:.08em;text-transform:uppercase}.doc-home-chip strong,.doc-home-info-card strong,.sb-docs-stat strong{color:var(--sb-doc-text);font-weight:600;font-size:16px}.doc-home-section,.sb-docs-section{margin-bottom:24px;padding:28px}.doc-home-section-header,.sb-docs-section-header{margin-bottom:20px}.doc-article h2,.doc-home-section h2,.sb-docs-section-header h2{margin:0 0 10px;color:#111827;font-weight:700;font-size:30px;line-height:1.15;letter-spacing:-.03em}.doc-article>p,.doc-home-section-header p,.doc-home-section>p,.sb-docs-section-header p{margin:0;color:var(--sb-doc-text-secondary);font-size:15px;line-height:1.7}.doc-home-card-grid,.doc-home-grid,.sb-docs-markdown-grid{display:grid;gap:16px}.sb-docs-use-list{display:grid;gap:12px;margin:0;padding:0;list-style:none}.sb-docs-use-list li{position:relative;padding:16px 18px 16px 48px;color:var(--sb-doc-text-secondary);font-size:15px;line-height:1.72;background:var(--sb-doc-surface-muted);border:1px solid var(--sb-doc-border);border-radius:18px}.sb-docs-use-list li:before{position:absolute;top:23px;left:20px;width:12px;height:12px;background:linear-gradient(180deg,#1677ff,#69a8ff);border-radius:999px;box-shadow:0 0 0 6px rgba(22,119,255,10%);content:""}.doc-home-grid{grid-template-columns:repeat(3,minmax(0,1fr));margin-bottom:24px}.doc-home-card-grid{grid-template-columns:repeat(2,minmax(0,1fr));margin-top:20px}.doc-home-card,.sb-docs-markdown-card{min-width:0;padding:24px;background:var(--sb-doc-surface-muted);border:1px solid var(--sb-doc-border);border-radius:20px}.doc-article h3,.doc-home-card h3,.doc-home-section h3,.sb-docs-markdown-card h3{margin:0 0 12px;color:#111827;font-weight:700;font-size:21px;line-height:1.28}.doc-article li,.doc-home-card li,.doc-home-card p,.doc-home-section li,.sb-docs-markdown-card li,.sb-docs-markdown-card p{color:var(--sb-doc-text-secondary);font-size:14px;line-height:1.72}.doc-article :where(ul,ol),.doc-home-section :where(ul,ol),.sb-docs-markdown-card :where(ul,ol){padding-left:20px}.doc-article :where(pre,code),.doc-home-section :where(pre,code),.sb-docs-markdown-card :where(pre,code),.sb-docs-section :where(pre,code){font-family:SFMono-Regular,ui-monospace,Menlo,Monaco,Consolas,Liberation Mono,monospace}.doc-article :where(pre),.doc-home-section :where(pre),.sb-docs-markdown-card :where(pre),.sb-docs-section :where(pre){padding:16px 18px;overflow-x:auto;color:#dbe7ff;background:#0f172a;border-radius:16px}.doc-article :where(code:not(pre code)),.doc-home-section :where(code:not(pre code)),.sb-docs-markdown-card :where(code:not(pre code)),.sb-docs-section :where(code:not(pre code)){padding:.18em .45em;color:#1456b8;background:rgba(22,119,255,8%);border-radius:8px}.doc-article :where(table),.doc-home-section :where(table),.sb-docs-markdown-card :where(table),.sb-docs-section :where(table){width:100%;border-collapse:collapse}.doc-article :where(th,td),.doc-home-section :where(th,td),.sb-docs-markdown-card :where(th,td),.sb-docs-section :where(th,td){padding:12px 14px;text-align:left;vertical-align:top;border-bottom:1px solid var(--sb-doc-border)}.doc-article :where(th),.doc-home-section :where(th),.sb-docs-markdown-card :where(th),.sb-docs-section :where(th){color:#111827;font-weight:700;font-size:13px;background:rgba(15,23,42,3%)}.doc-article :where(td),.doc-home-section :where(td),.sb-docs-markdown-card :where(td),.sb-docs-section :where(td){color:var(--sb-doc-text-secondary);font-size:14px;line-height:1.6}.doc-home-panel{display:grid;gap:14px;align-content:start}.doc-home-chip-list{display:flex;flex-wrap:wrap;gap:10px}.doc-home-chip{padding:10px 14px;background:var(--sb-doc-surface);border-radius:999px}.doc-home-card-grid .doc-home-card,.doc-home-grid .doc-home-card{margin:0}.doc-home-card p:last-child,.sb-docs-markdown-card p:last-child{margin-bottom:0}@media (width <= 960px){.doc-home-card-grid,.doc-home-grid,.doc-home-hero,.sb-docs-hero{grid-template-columns:minmax(0,1fr)}}@media (width <= 720px){.doc-article,.doc-home,.sb-docs-shell{padding-right:16px;padding-left:16px}.doc-home-card,.doc-home-hero,.doc-home-section,.sb-docs-hero,.sb-docs-markdown-card,.sb-docs-section{padding:20px;border-radius:20px}.doc-article h1,.doc-home h1,.sb-docs-title{font-size:34px}.doc-article h2,.doc-home-section h2,.sb-docs-section-header h2{font-size:26px}}round: rgba(15, 23, 42, 3%);
1
+ .sb-docs-shell,
2
+ .doc-home,
3
+ .doc-article {
4
+ --sb-doc-accent: #1677ff;
5
+ --sb-doc-accent-soft: rgba(22, 119, 255, 12%);
6
+ --sb-doc-border: #e6ebf2;
7
+ --sb-doc-border-strong: #d7deea;
8
+ --sb-doc-text: #1f2329;
9
+ --sb-doc-text-secondary: #5b667a;
10
+ --sb-doc-surface: #fff;
11
+ --sb-doc-surface-muted: #f7f9fc;
12
+ --sb-doc-shadow: 0 18px 48px rgba(15, 23, 42, 8%);
13
+
14
+ color: var(--sb-doc-text);
15
+ font-family:
16
+ Aeonik,
17
+ Inter,
18
+ -apple-system,
19
+ BlinkMacSystemFont,
20
+ 'Segoe UI',
21
+ sans-serif;
22
+ }
23
+
24
+ .sb-docs-shell {
25
+ padding: 28px 24px 96px;
26
+ }
27
+
28
+ .sb-docs-layout {
29
+ max-width: 1360px;
30
+ margin: 0 auto;
31
+ }
32
+
33
+ .sb-docs-main,
34
+ .doc-home,
35
+ .doc-article {
36
+ min-width: 0;
37
+ }
38
+
39
+ .sb-docs-hero,
40
+ .doc-home-hero,
41
+ .doc-home-section,
42
+ .doc-home-card,
43
+ .sb-docs-section,
44
+ .doc-home-chip,
45
+ .doc-home-info-card {
46
+ background: var(--sb-doc-surface);
47
+ border: 1px solid var(--sb-doc-border);
48
+ border-radius: 24px;
49
+ box-shadow: var(--sb-doc-shadow);
50
+ }
51
+
52
+ .sb-docs-hero,
53
+ .doc-home-hero {
54
+ display: grid;
55
+ grid-template-columns: minmax(0, 1.35fr) minmax(280px, 0.85fr);
56
+ gap: 24px;
57
+ margin-bottom: 24px;
58
+ padding: 36px;
59
+ background:
60
+ radial-gradient(circle at top right, rgba(22, 119, 255, 14%), transparent 38%),
61
+ linear-gradient(180deg, #fff 0%, #fbfcff 100%);
62
+ }
63
+
64
+ .sb-docs-kicker,
65
+ .doc-home-kicker,
66
+ .sb-docs-section-kicker,
67
+ .doc-home-card-kicker {
68
+ margin: 0 0 12px;
69
+ color: var(--sb-doc-accent);
70
+ font-weight: 700;
71
+ font-size: 12px;
72
+ letter-spacing: 0.14em;
73
+ text-transform: uppercase;
74
+ }
75
+
76
+ .sb-docs-title,
77
+ .doc-home h1,
78
+ .doc-article h1 {
79
+ margin: 0 0 16px;
80
+ color: #111827;
81
+ font-weight: 700;
82
+ font-size: clamp(34px, 4vw, 52px);
83
+ font-family:
84
+ Aeonik,
85
+ Inter,
86
+ -apple-system,
87
+ BlinkMacSystemFont,
88
+ 'Segoe UI',
89
+ sans-serif;
90
+ line-height: 1.04;
91
+ letter-spacing: -0.04em;
92
+ }
93
+
94
+ .sb-docs-lead,
95
+ .doc-home-lead,
96
+ .doc-article-lead {
97
+ max-width: 760px;
98
+ margin: 0;
99
+ color: var(--sb-doc-text-secondary);
100
+ font-size: 18px;
101
+ line-height: 1.72;
102
+ }
103
+
104
+ .sb-docs-description :where(p) {
105
+ max-width: 760px;
106
+ margin: 0;
107
+ color: var(--sb-doc-text-secondary);
108
+ font-size: 18px;
109
+ line-height: 1.72;
110
+ }
111
+
112
+ .sb-docs-hero-panel {
113
+ display: grid;
114
+ gap: 12px;
115
+ align-content: start;
116
+ }
117
+
118
+ .sb-docs-stat,
119
+ .doc-home-panel,
120
+ .doc-home-chip,
121
+ .doc-home-info-card {
122
+ padding: 18px 20px;
123
+ background: rgba(255, 255, 255, 82%);
124
+ border: 1px solid var(--sb-doc-border);
125
+ border-radius: 18px;
126
+ }
127
+
128
+ .sb-docs-stat-label {
129
+ display: block;
130
+ margin-bottom: 6px;
131
+ color: var(--sb-doc-text-secondary);
132
+ font-weight: 600;
133
+ font-size: 12px;
134
+ letter-spacing: 0.08em;
135
+ text-transform: uppercase;
136
+ }
137
+
138
+ .sb-docs-stat strong,
139
+ .doc-home-chip strong,
140
+ .doc-home-info-card strong {
141
+ color: var(--sb-doc-text);
142
+ font-weight: 600;
143
+ font-size: 16px;
144
+ }
145
+
146
+ .sb-docs-section,
147
+ .doc-home-section {
148
+ margin-bottom: 24px;
149
+ padding: 28px;
150
+ }
151
+
152
+ .sb-docs-section-header,
153
+ .doc-home-section-header {
154
+ margin-bottom: 20px;
155
+ }
156
+
157
+ .sb-docs-section-header h2,
158
+ .doc-home-section h2,
159
+ .doc-article h2 {
160
+ margin: 0 0 10px;
161
+ color: #111827;
162
+ font-weight: 700;
163
+ font-size: 30px;
164
+ line-height: 1.15;
165
+ letter-spacing: -0.03em;
166
+ }
167
+
168
+ .sb-docs-section-header p,
169
+ .doc-home-section-header p,
170
+ .doc-home-section > p,
171
+ .doc-article > p {
172
+ margin: 0;
173
+ color: var(--sb-doc-text-secondary);
174
+ font-size: 15px;
175
+ line-height: 1.7;
176
+ }
177
+
178
+ .sb-docs-markdown-grid,
179
+ .doc-home-grid,
180
+ .doc-home-card-grid {
181
+ display: grid;
182
+ gap: 16px;
183
+ }
184
+
185
+ .sb-docs-use-list {
186
+ display: grid;
187
+ gap: 12px;
188
+ margin: 0;
189
+ padding: 0;
190
+ list-style: none;
191
+ }
192
+
193
+ .sb-docs-use-list li {
194
+ position: relative;
195
+ padding: 16px 18px 16px 48px;
196
+ color: var(--sb-doc-text-secondary);
197
+ font-size: 15px;
198
+ line-height: 1.72;
199
+ background: var(--sb-doc-surface-muted);
200
+ border: 1px solid var(--sb-doc-border);
201
+ border-radius: 18px;
202
+ }
203
+
204
+ .sb-docs-use-list li::before {
205
+ position: absolute;
206
+ top: 23px;
207
+ left: 20px;
208
+ width: 12px;
209
+ height: 12px;
210
+ background: linear-gradient(180deg, #1677ff 0%, #69a8ff 100%);
211
+ border-radius: 999px;
212
+ box-shadow: 0 0 0 6px rgba(22, 119, 255, 10%);
213
+ content: '';
214
+ }
215
+
216
+ .doc-home-grid {
217
+ grid-template-columns: repeat(3, minmax(0, 1fr));
218
+ margin-bottom: 24px;
219
+ }
220
+
221
+ .doc-home-card-grid {
222
+ grid-template-columns: repeat(2, minmax(0, 1fr));
223
+ margin-top: 20px;
224
+ }
225
+
226
+ .doc-home-card,
227
+ .sb-docs-markdown-card {
228
+ min-width: 0;
229
+ padding: 24px;
230
+ background: var(--sb-doc-surface-muted);
231
+ border: 1px solid var(--sb-doc-border);
232
+ border-radius: 20px;
233
+ }
234
+
235
+ .sb-docs-markdown-card h3,
236
+ .doc-home-card h3,
237
+ .doc-home-section h3,
238
+ .doc-article h3 {
239
+ margin: 0 0 12px;
240
+ color: #111827;
241
+ font-weight: 700;
242
+ font-size: 21px;
243
+ line-height: 1.28;
244
+ }
245
+
246
+ .doc-home-card p,
247
+ .doc-home-card li,
248
+ .doc-home-section li,
249
+ .doc-article li,
250
+ .sb-docs-markdown-card p,
251
+ .sb-docs-markdown-card li {
252
+ color: var(--sb-doc-text-secondary);
253
+ font-size: 14px;
254
+ line-height: 1.72;
255
+ }
256
+
257
+ .doc-home-section :where(ul, ol),
258
+ .doc-article :where(ul, ol),
259
+ .sb-docs-markdown-card :where(ul, ol) {
260
+ padding-left: 20px;
261
+ }
262
+
263
+ .doc-home-section :where(pre, code),
264
+ .doc-article :where(pre, code),
265
+ .sb-docs-markdown-card :where(pre, code),
266
+ .sb-docs-section :where(pre, code) {
267
+ font-family:
268
+ SFMono-Regular,
269
+ ui-monospace,
270
+ Menlo,
271
+ Monaco,
272
+ Consolas,
273
+ 'Liberation Mono',
274
+ monospace;
275
+ }
276
+
277
+ .doc-home-section :where(pre),
278
+ .doc-article :where(pre),
279
+ .sb-docs-markdown-card :where(pre),
280
+ .sb-docs-section :where(pre) {
281
+ padding: 16px 18px;
282
+ overflow-x: auto;
283
+ color: #dbe7ff;
284
+ background: #0f172a;
285
+ border-radius: 16px;
286
+ }
287
+
288
+ .doc-home-section :where(code:not(pre code)),
289
+ .doc-article :where(code:not(pre code)),
290
+ .sb-docs-markdown-card :where(code:not(pre code)),
291
+ .sb-docs-section :where(code:not(pre code)) {
292
+ padding: 0.18em 0.45em;
293
+ color: #1456b8;
294
+ background: rgba(22, 119, 255, 8%);
295
+ border-radius: 8px;
296
+ }
297
+
298
+ .doc-home-section :where(table),
299
+ .doc-article :where(table),
300
+ .sb-docs-markdown-card :where(table),
301
+ .sb-docs-section :where(table) {
302
+ width: 100%;
303
+ border-collapse: collapse;
304
+ }
305
+
306
+ .doc-home-section :where(th, td),
307
+ .doc-article :where(th, td),
308
+ .sb-docs-markdown-card :where(th, td),
309
+ .sb-docs-section :where(th, td) {
310
+ padding: 12px 14px;
311
+ text-align: left;
312
+ vertical-align: top;
313
+ border-bottom: 1px solid var(--sb-doc-border);
314
+ }
315
+
316
+ .doc-home-section :where(th),
317
+ .doc-article :where(th),
318
+ .sb-docs-markdown-card :where(th),
319
+ .sb-docs-section :where(th) {
320
+ color: #111827;
321
+ font-weight: 700;
322
+ font-size: 13px;
323
+ background: rgba(15, 23, 42, 3%);
2
324
  }
3
325
 
4
326
  .doc-home-section :where(td),
@@ -94,6 +94,7 @@ var Select = exports.Select = function Select(props) {
94
94
  onBlur = props.onBlur,
95
95
  filterOption = props.filterOption,
96
96
  renderOption = props.renderOption,
97
+ renderOptionContent = props.renderOptionContent,
97
98
  renderValue = props.renderValue,
98
99
  ref = props.ref;
99
100
  var disabled = disabledProp || loading;
@@ -540,7 +541,8 @@ var Select = exports.Select = function Select(props) {
540
541
  children: renderOption ? renderOption(option, optionMeta) : (0, _jsxRuntime.jsx)(_SelectOptionContent["default"], {
541
542
  classes: classes,
542
543
  option: option,
543
- selected: selected
544
+ selected: selected,
545
+ content: renderOptionContent === null || renderOptionContent === void 0 ? void 0 : renderOptionContent(option, optionMeta)
544
546
  })
545
547
  }), "".concat(group.key, "-").concat(option.value));
546
548
  })]
@@ -561,4 +563,4 @@ var Select = exports.Select = function Select(props) {
561
563
  };
562
564
  Select.displayName = 'Select';
563
565
  var _default = exports["default"] = /*#__PURE__*/(0, _react2.memo)(Select);
564
- //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvU2VsZWN0L1NlbGVjdC5qcyIsImNvbXBvbmVudHMvc3JjL2NvbXBvbmVudHMvU2VsZWN0L1NlbGVjdC50c3giXSwibmFtZXMiOlsiX2pzeFJ1bnRpbWUiLCJyZXF1aXJlIiwiX3JlYWN0IiwiX3JlYWN0MiIsIl9ob29rcyIsIl9JY29ucyIsIl9TcGlubmVyIiwiX1R5cG9ncmFwaHkiLCJfY2xhc3NuYW1lcyIsIl9pbnRlcm9wUmVxdWlyZVdpbGRjYXJkIiwiX1NlbGVjdEZpZWxkU2hlbGwiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwiX1NlbGVjdE9wdGlvbkNvbnRlbnQiLCJfU2VsZWN0U2VhcmNoQ29udHJvbCIsIl9TZWxlY3RWYWx1ZUNvbnRlbnQiLCJfdXNlU2VsZWN0U2hlbGwyIiwiX2NvbnN0YW50cyIsIl91dGlscyIsIl9nZXRSZXF1aXJlV2lsZGNhcmRDYWNoZSIsImUiLCJXZWFrTWFwIiwiciIsInQiLCJfX2VzTW9kdWxlIiwiX3R5cGVvZiIsImhhcyIsImdldCIsIm4iLCJfX3Byb3RvX18iLCJhIiwiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCJ1IiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIiwiaSIsInNldCIsIkRFRkFVTFRfTUFYX0hFSUdIVCIsIlNlbGVjdCIsImV4cG9ydHMiLCJwcm9wcyIsIl9wcm9wcyRjbGFzc05hbWUiLCJjbGFzc05hbWUiLCJfcHJvcHMkcHJlZml4Q2xzIiwicHJlZml4Q2xzIiwic3R5bGUiLCJpZCIsIm5hbWUiLCJhcmlhTGFiZWwiLCJhcmlhTGFiZWxsZWRCeSIsIl9wcm9wcyRwbGFjZWhvbGRlciIsInBsYWNlaG9sZGVyIiwiX3Byb3BzJG9wdGlvbnMiLCJvcHRpb25zIiwidmFsdWUiLCJkZWZhdWx0VmFsdWUiLCJfcHJvcHMkc2l6ZSIsInNpemUiLCJfcHJvcHMkc3RhdHVzIiwic3RhdHVzIiwiX3Byb3BzJHZhcmlhbnQiLCJ2YXJpYW50IiwiX3Byb3BzJGRpc2FibGVkIiwiZGlzYWJsZWQiLCJkaXNhYmxlZFByb3AiLCJfcHJvcHMkbG9hZGluZyIsImxvYWRpbmciLCJfcHJvcHMkbXVsdGlwbGUiLCJtdWx0aXBsZSIsIm1heFZpc2libGVWYWx1ZXMiLCJfcHJvcHMkc2VhcmNoYWJsZSIsInNlYXJjaGFibGUiLCJfcHJvcHMkc2VhcmNoUGxhY2Vob2wiLCJzZWFyY2hQbGFjZWhvbGRlciIsInNlYXJjaFZhbHVlIiwiX3Byb3BzJGRlZmF1bHRTZWFyY2hWIiwiZGVmYXVsdFNlYXJjaFZhbHVlIiwiX3Byb3BzJGZpbHRlcklucHV0QXV0IiwiZmlsdGVySW5wdXRBdXRvRm9jdXMiLCJsYWJlbCIsImluZm8iLCJkZXNjcmlwdGlvbiIsImZlZWRiYWNrIiwiX3Byb3BzJHJlcXVpcmVkIiwicmVxdWlyZWQiLCJwcmVmaXgiLCJfcHJvcHMkZW1wdHlDb250ZW50IiwiZW1wdHlDb250ZW50IiwicGFuZWxGb290ZXIiLCJvcGVuIiwiX3Byb3BzJGRlZmF1bHRPcGVuIiwiZGVmYXVsdE9wZW4iLCJfcHJvcHMkcG9ydGFsIiwicG9ydGFsIiwiX3Byb3BzJGFsbG93RGVzZWxlY3QiLCJhbGxvd0Rlc2VsZWN0IiwicGFuZWxDbGFzc05hbWUiLCJvcHRpb25DbGFzc05hbWUiLCJfcHJvcHMkbGlzdE1heEhlaWdodCIsImxpc3RNYXhIZWlnaHQiLCJvZmZzZXQiLCJhbmltYXRpb24iLCJvbkNoYW5nZSIsIm9uT3BlbkNoYW5nZSIsIm9uU2VhcmNoQ2hhbmdlIiwib25CbHVyIiwiZmlsdGVyT3B0aW9uIiwicmVuZGVyT3B0aW9uIiwicmVuZGVyVmFsdWUiLCJyZWYiLCJjbGFzc2VzIiwicm9vdENsYXNzbmFtZXMiLCJhdXRvSWQiLCJ1c2VJZCIsInRyaWdnZXJJZCIsImxhYmVsSWQiLCJkZXNjcmlwdGlvbklkIiwiZmVlZGJhY2tJZCIsIm9wdGlvbklkUHJlZml4IiwiX3VzZUNvbnRyb2xsZWRTdGF0ZSIsInVzZUNvbnRyb2xsZWRTdGF0ZSIsInVuZGVmaW5lZCIsIl91c2VDb250cm9sbGVkU3RhdGUyIiwiX3NsaWNlZFRvQXJyYXkyIiwiaW5uZXJWYWx1ZSIsInNldElubmVyVmFsdWUiLCJfdXNlQ29udHJvbGxlZFN0YXRlMyIsIl91c2VDb250cm9sbGVkU3RhdGU0IiwiaW5uZXJTZWFyY2hWYWx1ZSIsInNldElubmVyU2VhcmNoVmFsdWUiLCJfdXNlU3RhdGUiLCJ1c2VTdGF0ZSIsIl91c2VTdGF0ZTIiLCJhY3RpdmVJbmRleCIsInNldEFjdGl2ZUluZGV4Iiwibm9ybWFsaXplZFNpemUiLCJub3JtYWxpemVTaXplIiwiYWxsT3B0aW9uR3JvdXBzIiwidXNlTWVtbyIsIm5vcm1hbGl6ZU9wdGlvbkdyb3VwcyIsImFsbEZsYXRPcHRpb25zIiwiZmxhdHRlbk9wdGlvbkdyb3VwcyIsInZpc2libGVPcHRpb25Hcm91cHMiLCJmaWx0ZXJPcHRpb25Hcm91cHMiLCJ2aXNpYmxlRmxhdE9wdGlvbnMiLCJzZWxlY3RlZE9wdGlvbnMiLCJnZXRTZWxlY3RlZE9wdGlvbnMiLCJzZWxlY3RlZEluZGV4IiwibGVuZ3RoIiwibWF0Y2hlZEluZGV4IiwiZmluZEluZGV4Iiwib3B0aW9uIiwiaGFzU2VsZWN0aW9uIiwibGlzdFJlZiIsInVzZVJlZiIsImxpc3RDb250ZW50UmVmIiwiZmxvYXRpbmdSZWYiLCJ0cmlnZ2VyUmVmIiwic2VhcmNoSW5wdXRSZWYiLCJoYW5kbGVUcmlnZ2VyUmVmIiwidXNlRXZlbnRDYWxsYmFjayIsIm5vZGUiLCJjdXJyZW50IiwiX3VzZVNlbGVjdFNoZWxsIiwidXNlU2VsZWN0U2hlbGwiLCJpbm5lck9wZW4iLCJpc09wZW4iLCJoYW5kbGVPcGVuQ2hhbmdlIiwic2V0T3BlbiIsInJlZnMiLCJjb250ZXh0IiwiZmxvYXRpbmdTdHlsZXMiLCJ0cmFuc2l0aW9uU3R5bGVzIiwiaXNNb3VudGVkIiwiYmFzZUludGVyYWN0aW9ucyIsInNldFJlZmVyZW5jZSIsInNldEZsb2F0aW5nIiwibGlzdE5hdmlnYXRpb24iLCJ1c2VMaXN0TmF2aWdhdGlvbiIsIm9uTmF2aWdhdGUiLCJlbmFibGVkIiwibG9vcCIsInZpcnR1YWwiLCJ0eXBlYWhlYWQiLCJ1c2VUeXBlYWhlYWQiLCJvbk1hdGNoIiwiX3VzZUludGVyYWN0aW9ucyIsInVzZUludGVyYWN0aW9ucyIsImNvbmNhdCIsIl90b0NvbnN1bWFibGVBcnJheTIiLCJnZXRSZWZlcmVuY2VQcm9wcyIsImdldEZsb2F0aW5nUHJvcHMiLCJnZXRJdGVtUHJvcHMiLCJmaXJzdEVuYWJsZWRJbmRleCIsInVzZUVmZmVjdCIsInByZXYiLCJfYSIsImZvY3VzIiwicHJldmVudFNjcm9sbCIsInNsaWNlIiwic2V0U2VhcmNoSW5wdXRSZWYiLCJub3RpZnlCbHVySWZPdXRzaWRlIiwicmVsYXRlZFRhcmdldCIsImV2ZW50IiwiX2IiLCJuZXh0VGFyZ2V0Iiwid2l0aGluVHJpZ2dlciIsImNvbnRhaW5zIiwid2l0aGluRmxvYXRpbmciLCJoYW5kbGVUcmlnZ2VyQmx1ciIsImhhbmRsZU9wdGlvbkJsdXIiLCJjb21taXRDaGFuZ2UiLCJuZXh0VmFsdWUiLCJuZXh0T3B0aW9uIiwiaGFuZGxlU2VsZWN0T3B0aW9uIiwidG9nZ2xlTXVsdGlwbGVWYWx1ZSIsIm5leHRPcHRpb25zIiwiZ2V0T3B0aW9uc0J5VmFsdWVzIiwiaGFuZGxlUmVtb3ZlU2VsZWN0ZWRWYWx1ZSIsIm9wdGlvblZhbHVlIiwiZ2V0TXVsdGlwbGVWYWx1ZSIsImluY2x1ZGVzIiwicmVtb3ZlTXVsdGlwbGVWYWx1ZSIsImhhbmRsZVRyaWdnZXJLZXlEb3duIiwia2V5IiwiS0VZQk9BUkQiLCJFTlRFUiIsIlNQQUNFIiwicHJldmVudERlZmF1bHQiLCJBUlJPV19ET1dOIiwiQVJST1dfVVAiLCJoYW5kbGVJdGVtTW91c2VFbnRlciIsImluZGV4IiwiaGFuZGxlVGFnUmVtb3ZlTW91c2VEb3duIiwic3RvcFByb3BhZ2F0aW9uIiwiaGFuZGxlVGFnUmVtb3ZlQ2xpY2siLCJoYW5kbGVTZWFyY2hCbHVyIiwiaGFuZGxlU2VhcmNoQ2hhbmdlIiwiX2V2ZW50IiwiZmluZEVuYWJsZWRJbmRleCIsImRpcmVjdGlvbiIsInN0YXJ0Iiwic3RlcCIsImNhbmRpZGF0ZSIsImhhbmRsZVNlYXJjaEtleURvd24iLCJuZXh0IiwiRVNDQVBFIiwicmVuZGVyVmFsdWVNZXRhIiwidmFsdWVMYWJlbENsYXNzIiwiaXNNdWx0aXBsZVZhbHVlRmlsbGVkIiwidHJpZ2dlckNsYXNzTmFtZSIsImpvaW5DbHMiLCJpY29uU2l6ZSIsImFjdGl2ZU9wdGlvbklkIiwiZmxvYXRpbmdBcmlhTGFiZWxsZWRCeSIsImRlc2NyaWJlZEJ5SWRzIiwiZmlsdGVyIiwiQm9vbGVhbiIsImpvaW4iLCJfanN4cyIsIlNlbGVjdEZpZWxkU2hlbGwiLCJjaGlsZHJlbiIsImFzc2lnbiIsInR5cGUiLCJvbktleURvd24iLCJfanN4IiwiU2VsZWN0VmFsdWVDb250ZW50Iiwib25SZW1vdmUiLCJvblJlbW92ZUNsaWNrIiwib25SZW1vdmVNb3VzZURvd24iLCJTcGlubmVyIiwic3Ryb2tlV2lkdGgiLCJJY29ucyIsImNvbG9yIiwicGFuZWxOb2RlIiwiRmxvYXRpbmdGb2N1c01hbmFnZXIiLCJtb2RhbCIsImluaXRpYWxGb2N1cyIsInJldHVybkZvY3VzIiwiU2VsZWN0U2VhcmNoQ29udHJvbCIsImFjdGl2ZURlc2NlbmRhbnQiLCJUeXBvZ3JhcGh5Qm9keSIsIlNFTEVDVF9UWVBPR1JBUEhZIiwiZW1wdHkiLCJmbGF0SW5kZXgiLCJtYXAiLCJncm91cCIsIlR5cG9ncmFwaHlMYWJlbCIsImdyb3VwTGFiZWwiLCJzdHJvbmciLCJvcHRpb25GbGF0SW5kZXgiLCJzZWxlY3RlZCIsImlzT3B0aW9uU2VsZWN0ZWQiLCJhY3RpdmUiLCJvcHRpb25NZXRhIiwiZXh0cmFjdE9wdGlvblRleHQiLCJyb2xlIiwib25DbGljayIsIm9uTW91c2VFbnRlciIsIlNlbGVjdE9wdGlvbkNvbnRlbnQiLCJGbG9hdGluZ1BvcnRhbCIsImRpc3BsYXlOYW1lIiwiX2RlZmF1bHQiLCJtZW1vIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7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R0FBQXZRLE9BQUEsMkJBRWYsSUFBQXdRLFlBQUksRUFBQ3pRLE1BQU0sQ0FBQyIsImZpbGUiOiJjb21wb25lbnRzL1NlbGVjdC9TZWxlY3QuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBqc3ggYXMgX2pzeCwganN4cyBhcyBfanN4cyB9IGZyb20gXCJyZWFjdC9qc3gtcnVudGltZVwiO1xuaW1wb3J0IHsgRmxvYXRpbmdGb2N1c01hbmFnZXIsIEZsb2F0aW5nUG9ydGFsLCB1c2VJbnRlcmFjdGlvbnMsIHVzZUxpc3ROYXZpZ2F0aW9uLCB1c2VUeXBlYWhlYWQsIH0gZnJvbSAnQGZsb2F0aW5nLXVpL3JlYWN0JztcbmltcG9ydCB7IG1lbW8sIHVzZUVmZmVjdCwgdXNlSWQsIHVzZU1lbW8sIHVzZVJlZiwgdXNlU3RhdGUgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyB1c2VDb250cm9sbGVkU3RhdGUsIHVzZUV2ZW50Q2FsbGJhY2sgfSBmcm9tICdAMW1vbmV5L2hvb2tzJztcbmltcG9ydCB7IEljb25zIH0gZnJvbSAnLi4vSWNvbnMnO1xuaW1wb3J0IHsgU3Bpbm5lciB9IGZyb20gJy4uL1NwaW5uZXInO1xuaW1wb3J0IHsgVHlwb2dyYXBoeUJvZHksIFR5cG9ncmFwaHlMYWJlbCB9IGZyb20gJy4uL1R5cG9ncmFwaHknO1xuaW1wb3J0IHsgam9pbkNscywgZGVmYXVsdCBhcyByb290Q2xhc3NuYW1lcyB9IGZyb20gJy4uLy4uL3V0aWxzL2NsYXNzbmFtZXMnO1xuaW1wb3J0IFNlbGVjdEZpZWxkU2hlbGwgZnJvbSAnLi9TZWxlY3RGaWVsZFNoZWxsJztcbmltcG9ydCBTZWxlY3RPcHRpb25Db250ZW50IGZyb20gJy4vU2VsZWN0T3B0aW9uQ29udGVudCc7XG5pbXBvcnQgU2VsZWN0U2VhcmNoQ29udHJvbCBmcm9tICcuL1NlbGVjdFNlYXJjaENvbnRyb2wnO1xuaW1wb3J0IFNlbGVjdFZhbHVlQ29udGVudCBmcm9tICcuL1NlbGVjdFZhbHVlQ29udGVudCc7XG5pbXBvcnQgeyB1c2VTZWxlY3RTaGVsbCB9IGZyb20gJy4vdXNlU2VsZWN0U2hlbGwnO1xuaW1wb3J0IHsgS0VZQk9BUkQsIFNFTEVDVF9UWVBPR1JBUEhZIH0gZnJvbSAnLi9jb25zdGFudHMnO1xuaW1wb3J0IHsgZXh0cmFjdE9wdGlvblRleHQsIGZpbHRlck9wdGlvbkdyb3VwcywgZmxhdHRlbk9wdGlvbkdyb3VwcywgZ2V0TXVsdGlwbGVWYWx1ZSwgZ2V0T3B0aW9uc0J5VmFsdWVzLCBnZXRTZWxlY3RlZE9wdGlvbnMsIGlzT3B0aW9uU2VsZWN0ZWQsIG5vcm1hbGl6ZVNpemUsIG5vcm1hbGl6ZU9wdGlvbkdyb3VwcywgcmVtb3ZlTXVsdGlwbGVWYWx1ZSwgdG9nZ2xlTXVsdGlwbGVWYWx1ZSwgfSBmcm9tICcuL3V0aWxzJztcbmltcG9ydCAnLi9zdHlsZSc7XG5jb25zdCBERUZBVUxUX01BWF9IRUlHSFQgPSAzMjA7XG5leHBvcnQgY29uc3QgU2VsZWN0ID0gKHByb3BzKSA9PiB7XG4gICAgY29uc3QgeyBjbGFzc05hbWUgPSAnJywgcHJlZml4Q2xzID0gJ3NlbGVjdCcsIHN0eWxlLCBpZCwgbmFtZSwgJ2FyaWEtbGFiZWwnOiBhcmlhTGFiZWwsICdhcmlhLWxhYmVsbGVkYnknOiBhcmlhTGFiZWxsZWRCeSwgcGxhY2Vob2xkZXIgPSAnVmFsdWUnLCBvcHRpb25zID0gW10sIHZhbHVlLCBkZWZhdWx0VmFsdWUsIHNpemUgPSAnbGFyZ2UnLCBzdGF0dXMgPSAnZGVmYXVsdCcsIHZhcmlhbnQgPSAnZmlsbCcsIGRpc2FibGVkOiBkaXNhYmxlZFByb3AgPSBmYWxzZSwgbG9hZGluZyA9IGZhbHNlLCBtdWx0aXBsZSA9IGZhbHNlLCBtYXhWaXNpYmxlVmFsdWVzLCBzZWFyY2hhYmxlID0gZmFsc2UsIHNlYXJjaFBsYWNlaG9sZGVyID0gJ1NlYXJjaCcsIHNlYXJjaFZhbHVlLCBkZWZhdWx0U2VhcmNoVmFsdWUgPSAnJywgZmlsdGVySW5wdXRBdXRvRm9jdXMgPSB0cnVlLCBsYWJlbCwgaW5mbywgZGVzY3JpcHRpb24sIGZlZWRiYWNrLCByZXF1aXJlZCA9IGZhbHNlLCBwcmVmaXgsIGVtcHR5Q29udGVudCA9ICdObyBvcHRpb25zJywgcGFuZWxGb290ZXIsIG9wZW4sIGRlZmF1bHRPcGVuID0gZmFsc2UsIHBvcnRhbCA9IHRydWUsIGFsbG93RGVzZWxlY3QgPSBmYWxzZSwgcGFuZWxDbGFzc05hbWUsIG9wdGlvbkNsYXNzTmFtZSwgbGlzdE1heEhlaWdodCA9IERFRkFVTFRfTUFYX0hFSUdIVCwgb2Zmc2V0LCBhbmltYXRpb24sIG9uQ2hhbmdlLCBvbk9wZW5DaGFuZ2UsIG9uU2VhcmNoQ2hhbmdlLCBvbkJsdXIsIGZpbHRlck9wdGlvbiwgcmVuZGVyT3B0aW9uLCByZW5kZXJWYWx1ZSwgcmVmLCB9ID0gcHJvcHM7XG4gICAgY29uc3QgZGlzYWJsZWQgPSBkaXNhYmxlZFByb3AgfHwgbG9hZGluZztcbiAgICBjb25zdCBjbGFzc2VzID0gcm9vdENsYXNzbmFtZXMocHJlZml4Q2xzKTtcbiAgICBjb25zdCBhdXRvSWQgPSB1c2VJZCgpO1xuICAgIGNvbnN0IHRyaWdnZXJJZCA9IGlkICE9PSBudWxsICYmIGlkICE9PSB2b2lkIDAgPyBpZCA6IGF1dG9JZDtcbiAgICBjb25zdCBsYWJlbElkID0gdXNlSWQoKTtcbiAgICBjb25zdCBkZXNjcmlwdGlvbklkID0gdXNlSWQoKTtcbiAgICBjb25zdCBmZWVkYmFja0lkID0gdXNlSWQoKTtcbiAgICBjb25zdCBvcHRpb25JZFByZWZpeCA9IHVzZUlkKCk7XG4gICAgY29uc3QgW2lubmVyVmFsdWUsIHNldElubmVyVmFsdWVdID0gdXNlQ29udHJvbGxlZFN0YXRlKGRlZmF1bHRWYWx1ZSAhPT0gbnVsbCAmJiBkZWZhdWx0VmFsdWUgIT09IHZvaWQgMCA/IGRlZmF1bHRWYWx1ZSA6IChtdWx0aXBsZSA/IFtdIDogdW5kZWZpbmVkKSwgdmFsdWUpO1xuICAgIGNvbnN0IFtpbm5lclNlYXJjaFZhbHVlLCBzZXRJbm5lclNlYXJjaFZhbHVlXSA9IHVzZUNvbnRyb2xsZWRTdGF0ZShkZWZhdWx0U2VhcmNoVmFsdWUsIHNlYXJjaFZhbHVlKTtcbiAgICBjb25zdCBbYWN0aXZlSW5kZXgsIHNldEFjdGl2ZUluZGV4XSA9IHVzZVN0YXRlKG51bGwpO1xuICAgIGNvbnN0IG5vcm1hbGl6ZWRTaXplID0gbm9ybWFsaXplU2l6ZShzaXplKTtcbiAgICBjb25zdCBhbGxPcHRpb25Hcm91cHMgPSB1c2VNZW1vKCgpID0+IG5vcm1hbGl6ZU9wdGlvbkdyb3VwcyhvcHRpb25zKSwgW29wdGlvbnNdKTtcbiAgICBjb25zdCBhbGxGbGF0T3B0aW9ucyA9IHVzZU1lbW8oKCkgPT4gZmxhdHRlbk9wdGlvbkdyb3VwcyhhbGxPcHRpb25Hcm91cHMpLCBbYWxsT3B0aW9uR3JvdXBzXSk7XG4gICAgY29uc3QgdmlzaWJsZU9wdGlvbkdyb3VwcyA9IHVzZU1lbW8oKCkgPT4gKHNlYXJjaGFibGVcbiAgICAgICAgPyBmaWx0ZXJPcHRpb25Hcm91cHMoYWxsT3B0aW9uR3JvdXBzLCBpbm5lclNlYXJjaFZhbHVlLCBmaWx0ZXJPcHRpb24pXG4gICAgICAgIDogYWxsT3B0aW9uR3JvdXBzKSwgW2FsbE9wdGlvbkdyb3VwcywgZmlsdGVyT3B0aW9uLCBpbm5lclNlYXJjaFZhbHVlLCBzZWFyY2hhYmxlXSk7XG4gICAgY29uc3QgdmlzaWJsZUZsYXRPcHRpb25zID0gdXNlTWVtbygoKSA9PiBmbGF0dGVuT3B0aW9uR3JvdXBzKHZpc2libGVPcHRpb25Hcm91cHMpLCBbdmlzaWJsZU9wdGlvbkdyb3Vwc10pO1xuICAgIGNvbnN0IHNlbGVjdGVkT3B0aW9ucyA9IHVzZU1lbW8oKCkgPT4gZ2V0U2VsZWN0ZWRPcHRpb25zKGFsbEZsYXRPcHRpb25zLCBpbm5lclZhbHVlLCBtdWx0aXBsZSksIFthbGxGbGF0T3B0aW9ucywgaW5uZXJWYWx1ZSwgbXVsdGlwbGVdKTtcbiAgICBjb25zdCBzZWxlY3RlZEluZGV4ID0gdXNlTWVtbygoKSA9PiB7XG4gICAgICAgIGlmIChzZWxlY3RlZE9wdGlvbnMubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBtYXRjaGVkSW5kZXggPSB2aXNpYmxlRmxhdE9wdGlvbnMuZmluZEluZGV4KChvcHRpb24pID0+IG9wdGlvbi52YWx1ZSA9PT0gc2VsZWN0ZWRPcHRpb25zWzBdLnZhbHVlKTtcbiAgICAgICAgcmV0dXJuIG1hdGNoZWRJbmRleCA+PSAwID8gbWF0Y2hlZEluZGV4IDogbnVsbDtcbiAgICB9LCBbc2VsZWN0ZWRPcHRpb25zLCB2aXNpYmxlRmxhdE9wdGlvbnNdKTtcbiAgICBjb25zdCBoYXNTZWxlY3Rpb24gPSBzZWxlY3RlZE9wdGlvbnMubGVuZ3RoID4gMDtcbiAgICBjb25zdCBsaXN0UmVmID0gdXNlUmVmKFtdKTtcbiAgICBjb25zdCBsaXN0Q29udGVudFJlZiA9IHVzZVJlZihbXSk7XG4gICAgY29uc3QgZmxvYXRpbmdSZWYgPSB1c2VSZWYobnVsbCk7XG4gICAgY29uc3QgdHJpZ2dlclJlZiA9IHVzZVJlZihudWxsKTtcbiAgICBjb25zdCBzZWFyY2hJbnB1dFJlZiA9IHVzZVJlZihudWxsKTtcbiAgICBjb25zdCBoYW5kbGVUcmlnZ2VyUmVmID0gdXNlRXZlbnRDYWxsYmFjaygobm9kZSkgPT4ge1xuICAgICAgICB0cmlnZ2VyUmVmLmN1cnJlbnQgPSBub2RlO1xuICAgICAgICBpZiAocmVmKSB7XG4gICAgICAgICAgICByZWYuY3VycmVudCA9IG5vZGU7XG4gICAgICAgIH1cbiAgICB9KTtcbiAgICBjb25zdCB7IGlzT3BlbjogaW5uZXJPcGVuLCBzZXRPcGVuOiBoYW5kbGVPcGVuQ2hhbmdlLCByZWZzLCBjb250ZXh0LCBmbG9hdGluZ1N0eWxlcywgdHJhbnNpdGlvblN0eWxlcywgaXNNb3VudGVkLCBiYXNlSW50ZXJhY3Rpb25zLCB9ID0gdXNlU2VsZWN0U2hlbGwoe1xuICAgICAgICBvcGVuLFxuICAgICAgICBkZWZhdWx0T3BlbixcbiAgICAgICAgb25PcGVuQ2hhbmdlLFxuICAgICAgICBkaXNhYmxlZCxcbiAgICAgICAgbGlzdE1heEhlaWdodCxcbiAgICAgICAgYW5pbWF0aW9uLFxuICAgICAgICBvZmZzZXQsXG4gICAgfSk7XG4gICAgY29uc3Qgc2V0UmVmZXJlbmNlID0gdXNlRXZlbnRDYWxsYmFjaygobm9kZSkgPT4ge1xuICAgICAgICByZWZzLnNldFJlZmVyZW5jZShub2RlKTtcbiAgICAgICAgaGFuZGxlVHJpZ2dlclJlZihub2RlKTtcbiAgICB9KTtcbiAgICBjb25zdCBzZXRGbG9hdGluZyA9IHVzZUV2ZW50Q2FsbGJhY2soKG5vZGUpID0+IHtcbiAgICAgICAgcmVmcy5zZXRGbG9hdGluZyhub2RlKTtcbiAgICAgICAgZmxvYXRpbmdSZWYuY3VycmVudCA9IG5vZGU7XG4gICAgfSk7XG4gICAgY29uc3QgbGlzdE5hdmlnYXRpb24gPSB1c2VMaXN0TmF2aWdhdGlvbihjb250ZXh0LCB7XG4gICAgICAgIGxpc3RSZWYsXG4gICAgICAgIGFjdGl2ZUluZGV4LFxuICAgICAgICBzZWxlY3RlZEluZGV4LFxuICAgICAgICBvbk5hdmlnYXRlOiBzZXRBY3RpdmVJbmRleCxcbiAgICAgICAgZW5hYmxlZDogaW5uZXJPcGVuLFxuICAgICAgICBsb29wOiB0cnVlLFxuICAgICAgICB2aXJ0dWFsOiBzZWFyY2hhYmxlLFxuICAgIH0pO1xuICAgIGNvbnN0IHR5cGVhaGVhZCA9IHVzZVR5cGVhaGVhZChjb250ZXh0LCB7XG4gICAgICAgIGxpc3RSZWY6IGxpc3RDb250ZW50UmVmLFxuICAgICAgICBhY3RpdmVJbmRleCxcbiAgICAgICAgc2VsZWN0ZWRJbmRleCxcbiAgICAgICAgZW5hYmxlZDogaW5uZXJPcGVuICYmICFzZWFyY2hhYmxlLFxuICAgICAgICBvbk1hdGNoOiBzZXRBY3RpdmVJbmRleCxcbiAgICB9KTtcbiAgICBjb25zdCB7IGdldFJlZmVyZW5jZVByb3BzLCBnZXRGbG9hdGluZ1Byb3BzLCBnZXRJdGVtUHJvcHMgfSA9IHVzZUludGVyYWN0aW9ucyhbXG4gICAgICAgIC4uLmJhc2VJbnRlcmFjdGlvbnMsXG4gICAgICAgIGxpc3ROYXZpZ2F0aW9uLFxuICAgICAgICB0eXBlYWhlYWQsXG4gICAgXSk7XG4gICAgY29uc3QgZmlyc3RFbmFibGVkSW5kZXggPSB1c2VNZW1vKCgpID0+IHZpc2libGVGbGF0T3B0aW9ucy5maW5kSW5kZXgoKG9wdGlvbikgPT4gIW9wdGlvbi5kaXNhYmxlZCksIFt2aXNpYmxlRmxhdE9wdGlvbnNdKTtcbiAgICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgICBpZiAoIWlubmVyT3Blbikge1xuICAgICAgICAgICAgc2V0QWN0aXZlSW5kZXgoc2VsZWN0ZWRJbmRleCk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgc2V0QWN0aXZlSW5kZXgoKHByZXYpID0+IHtcbiAgICAgICAgICAgIGlmIChwcmV2ICE9PSBudWxsICYmIHZpc2libGVGbGF0T3B0aW9uc1twcmV2XSAmJiAhdmlzaWJsZUZsYXRPcHRpb25zW3ByZXZdLmRpc2FibGVkKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHByZXY7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoc2VsZWN0ZWRJbmRleCAhPT0gbnVsbCAmJlxuICAgICAgICAgICAgICAgIHZpc2libGVGbGF0T3B0aW9uc1tzZWxlY3RlZEluZGV4XSAmJlxuICAgICAgICAgICAgICAgICF2aXNpYmxlRmxhdE9wdGlvbnNbc2VsZWN0ZWRJbmRleF0uZGlzYWJsZWQpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gc2VsZWN0ZWRJbmRleDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBmaXJzdEVuYWJsZWRJbmRleCA+PSAwID8gZmlyc3RFbmFibGVkSW5kZXggOiBudWxsO1xuICAgICAgICB9KTtcbiAgICB9LCBbZmlyc3RFbmFibGVkSW5kZXgsIGlubmVyT3Blbiwgc2VsZWN0ZWRJbmRleCwgdmlzaWJsZUZsYXRPcHRpb25zXSk7XG4gICAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICAgICAgdmFyIF9hO1xuICAgICAgICBpZiAoIWlubmVyT3BlbiB8fCBhY3RpdmVJbmRleCA9PT0gbnVsbCB8fCBzZWFyY2hhYmxlKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgKF9hID0gbGlzdFJlZi5jdXJyZW50W2FjdGl2ZUluZGV4XSkgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLmZvY3VzKHsgcHJldmVudFNjcm9sbDogdHJ1ZSB9KTtcbiAgICB9LCBbYWN0aXZlSW5kZXgsIGlubmVyT3Blbiwgc2VhcmNoYWJsZV0pO1xuICAgIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICAgIGxpc3RSZWYuY3VycmVudCA9IGxpc3RSZWYuY3VycmVudC5zbGljZSgwLCB2aXNpYmxlRmxhdE9wdGlvbnMubGVuZ3RoKTtcbiAgICAgICAgbGlzdENvbnRlbnRSZWYuY3VycmVudCA9IGxpc3RDb250ZW50UmVmLmN1cnJlbnQuc2xpY2UoMCwgdmlzaWJsZUZsYXRPcHRpb25zLmxlbmd0aCk7XG4gICAgfSwgW3Zpc2libGVGbGF0T3B0aW9ucy5sZW5ndGhdKTtcbiAgICBjb25zdCBzZXRTZWFyY2hJbnB1dFJlZiA9IHVzZUV2ZW50Q2FsbGJhY2soKG5vZGUpID0+IHtcbiAgICAgICAgc2VhcmNoSW5wdXRSZWYuY3VycmVudCA9IG5vZGU7XG4gICAgICAgIGlmIChub2RlICYmIGlubmVyT3BlbiAmJiBmaWx0ZXJJbnB1dEF1dG9Gb2N1cykge1xuICAgICAgICAgICAgbm9kZS5mb2N1cyh7IHByZXZlbnRTY3JvbGw6IHRydWUgfSk7XG4gICAgICAgIH1cbiAgICB9KTtcbiAgICBjb25zdCBub3RpZnlCbHVySWZPdXRzaWRlID0gdXNlRXZlbnRDYWxsYmFjaygocmVsYXRlZFRhcmdldCwgZXZlbnQpID0+IHtcbiAgICAgICAgdmFyIF9hLCBfYjtcbiAgICAgICAgY29uc3QgbmV4dFRhcmdldCA9IHJlbGF0ZWRUYXJnZXQ7XG4gICAgICAgIGNvbnN0IHdpdGhpblRyaWdnZXIgPSAhIShuZXh0VGFyZ2V0ICYmICgoX2EgPSB0cmlnZ2VyUmVmLmN1cnJlbnQpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5jb250YWlucyhuZXh0VGFyZ2V0KSkpO1xuICAgICAgICBjb25zdCB3aXRoaW5GbG9hdGluZyA9ICEhKG5leHRUYXJnZXQgJiYgKChfYiA9IGZsb2F0aW5nUmVmLmN1cnJlbnQpID09PSBudWxsIHx8IF9iID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYi5jb250YWlucyhuZXh0VGFyZ2V0KSkpO1xuICAgICAgICBpZiAoIXdpdGhpblRyaWdnZXIgJiYgIXdpdGhpbkZsb2F0aW5nKSB7XG4gICAgICAgICAgICBvbkJsdXIgPT09IG51bGwgfHwgb25CbHVyID09PSB2b2lkIDAgPyB2b2lkIDAgOiBvbkJsdXIoZXZlbnQpO1xuICAgICAgICB9XG4gICAgfSk7XG4gICAgY29uc3QgaGFuZGxlVHJpZ2dlckJsdXIgPSB1c2VFdmVudENhbGxiYWNrKChldmVudCkgPT4ge1xuICAgICAgICBub3RpZnlCbHVySWZPdXRzaWRlKGV2ZW50LnJlbGF0ZWRUYXJnZXQsIGV2ZW50KTtcbiAgICB9KTtcbiAgICBjb25zdCBoYW5kbGVPcHRpb25CbHVyID0gdXNlRXZlbnRDYWxsYmFjaygoZXZlbnQpID0+IHtcbiAgICAgICAgbm90aWZ5Qmx1cklmT3V0c2lkZShldmVudC5yZWxhdGVkVGFyZ2V0LCBldmVudCk7XG4gICAgfSk7XG4gICAgY29uc3QgY29tbWl0Q2hhbmdlID0gdXNlRXZlbnRDYWxsYmFjaygobmV4dFZhbHVlLCBuZXh0T3B0aW9uKSA9PiB7XG4gICAgICAgIHNldElubmVyVmFsdWUobmV4dFZhbHVlKTtcbiAgICAgICAgb25DaGFuZ2UgPT09IG51bGwgfHwgb25DaGFuZ2UgPT09IHZvaWQgMCA/IHZvaWQgMCA6IG9uQ2hhbmdlKG5leHRWYWx1ZSwgbmV4dE9wdGlvbiwgbmFtZSk7XG4gICAgfSk7XG4gICAgY29uc3QgaGFuZGxlU2VsZWN0T3B0aW9uID0gdXNlRXZlbnRDYWxsYmFjaygob3B0aW9uKSA9PiB7XG4gICAgICAgIHZhciBfYSwgX2I7XG4gICAgICAgIGlmIChvcHRpb24uZGlzYWJsZWQpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBpZiAobXVsdGlwbGUpIHtcbiAgICAgICAgICAgIGNvbnN0IG5leHRWYWx1ZSA9IHRvZ2dsZU11bHRpcGxlVmFsdWUoaW5uZXJWYWx1ZSwgb3B0aW9uLnZhbHVlKTtcbiAgICAgICAgICAgIGNvbnN0IG5leHRPcHRpb25zID0gZ2V0T3B0aW9uc0J5VmFsdWVzKGFsbEZsYXRPcHRpb25zLCBuZXh0VmFsdWUpO1xuICAgICAgICAgICAgY29tbWl0Q2hhbmdlKG5leHRWYWx1ZSwgbmV4dE9wdGlvbnMpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGlmIChhbGxvd0Rlc2VsZWN0ICYmIGlubmVyVmFsdWUgPT09IG9wdGlvbi52YWx1ZSkge1xuICAgICAgICAgICAgY29tbWl0Q2hhbmdlKHVuZGVmaW5lZCwgdW5kZWZpbmVkKTtcbiAgICAgICAgICAgIGhhbmRsZU9wZW5DaGFuZ2UoZmFsc2UpO1xuICAgICAgICAgICAgb25CbHVyID09PSBudWxsIHx8IG9uQmx1ciA9PT0gdm9pZCAwID8gdm9pZCAwIDogb25CbHVyKCk7XG4gICAgICAgICAgICAoX2EgPSB0cmlnZ2VyUmVmLmN1cnJlbnQpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5mb2N1cyh7IHByZXZlbnRTY3JvbGw6IHRydWUgfSk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgY29tbWl0Q2hhbmdlKG9wdGlvbi52YWx1ZSwgb3B0aW9uKTtcbiAgICAgICAgaGFuZGxlT3BlbkNoYW5nZShmYWxzZSk7XG4gICAgICAgIG9uQmx1ciA9PT0gbnVsbCB8fCBvbkJsdXIgPT09IHZvaWQgMCA/IHZvaWQgMCA6IG9uQmx1cigpO1xuICAgICAgICAoX2IgPSB0cmlnZ2VyUmVmLmN1cnJlbnQpID09PSBudWxsIHx8IF9iID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYi5mb2N1cyh7IHByZXZlbnRTY3JvbGw6IHRydWUgfSk7XG4gICAgfSk7XG4gICAgY29uc3QgaGFuZGxlUmVtb3ZlU2VsZWN0ZWRWYWx1ZSA9IHVzZUV2ZW50Q2FsbGJhY2soKG9wdGlvblZhbHVlKSA9PiB7XG4gICAgICAgIGlmICghbXVsdGlwbGUpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBpZiAoIWdldE11bHRpcGxlVmFsdWUoaW5uZXJWYWx1ZSkuaW5jbHVkZXMob3B0aW9uVmFsdWUpKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgbmV4dFZhbHVlID0gcmVtb3ZlTXVsdGlwbGVWYWx1ZShpbm5lclZhbHVlLCBvcHRpb25WYWx1ZSk7XG4gICAgICAgIGNvbnN0IG5leHRPcHRpb25zID0gZ2V0T3B0aW9uc0J5VmFsdWVzKGFsbEZsYXRPcHRpb25zLCBuZXh0VmFsdWUpO1xuICAgICAgICBjb21taXRDaGFuZ2UobmV4dFZhbHVlLCBuZXh0T3B0aW9ucyk7XG4gICAgfSk7XG4gICAgY29uc3QgaGFuZGxlVHJpZ2dlcktleURvd24gPSB1c2VFdmVudENhbGxiYWNrKChldmVudCkgPT4ge1xuICAgICAgICBpZiAoZGlzYWJsZWQpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBpZiAoZXZlbnQua2V5ID09PSBLRVlCT0FSRC5FTlRFUiB8fCBldmVudC5rZXkgPT09IEtFWUJPQVJELlNQQUNFKSB7XG4gICAgICAgICAgICBpZiAoaW5uZXJPcGVuICYmXG4gICAgICAgICAgICAgICAgYWN0aXZlSW5kZXggIT09IG51bGwgJiZcbiAgICAgICAgICAgICAgICB2aXNpYmxlRmxhdE9wdGlvbnNbYWN0aXZlSW5kZXhdICYmXG4gICAgICAgICAgICAgICAgIXZpc2libGVGbGF0T3B0aW9uc1thY3RpdmVJbmRleF0uZGlzYWJsZWQpIHtcbiAgICAgICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgICAgIGhhbmRsZVNlbGVjdE9wdGlvbih2aXNpYmxlRmxhdE9wdGlvbnNbYWN0aXZlSW5kZXhdKTtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgaGFuZGxlT3BlbkNoYW5nZSghaW5uZXJPcGVuKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBpZiAoZXZlbnQua2V5ID09PSBLRVlCT0FSRC5BUlJPV19ET1dOIHx8IGV2ZW50LmtleSA9PT0gS0VZQk9BUkQuQVJST1dfVVApIHtcbiAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICBpZiAoIWlubmVyT3Blbikge1xuICAgICAgICAgICAgICAgIGhhbmRsZU9wZW5DaGFuZ2UodHJ1ZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9KTtcbiAgICBjb25zdCBoYW5kbGVJdGVtTW91c2VFbnRlciA9IHVzZUV2ZW50Q2FsbGJhY2soKGluZGV4KSA9PiB7XG4gICAgICAgIHZhciBfYTtcbiAgICAgICAgaWYgKCEoKF9hID0gdmlzaWJsZUZsYXRPcHRpb25zW2luZGV4XSkgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLmRpc2FibGVkKSkge1xuICAgICAgICAgICAgc2V0QWN0aXZlSW5kZXgoaW5kZXgpO1xuICAgICAgICB9XG4gICAgfSk7XG4gICAgY29uc3QgaGFuZGxlVGFnUmVtb3ZlTW91c2VEb3duID0gdXNlRXZlbnRDYWxsYmFjaygoZXZlbnQpID0+IHtcbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgfSk7XG4gICAgY29uc3QgaGFuZGxlVGFnUmVtb3ZlQ2xpY2sgPSB1c2VFdmVudENhbGxiYWNrKChldmVudCkgPT4ge1xuICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICB9KTtcbiAgICBjb25zdCBoYW5kbGVTZWFyY2hCbHVyID0gdXNlRXZlbnRDYWxsYmFjaygoZXZlbnQpID0+IHtcbiAgICAgICAgbm90aWZ5Qmx1cklmT3V0c2lkZShldmVudC5yZWxhdGVkVGFyZ2V0LCBldmVudCk7XG4gICAgfSk7XG4gICAgY29uc3QgaGFuZGxlU2VhcmNoQ2hhbmdlID0gdXNlRXZlbnRDYWxsYmFjaygobmV4dFZhbHVlLCBfZXZlbnQpID0+IHtcbiAgICAgICAgc2V0SW5uZXJTZWFyY2hWYWx1ZShuZXh0VmFsdWUpO1xuICAgICAgICBvblNlYXJjaENoYW5nZSA9PT0gbnVsbCB8fCBvblNlYXJjaENoYW5nZSA9PT0gdm9pZCAwID8gdm9pZCAwIDogb25TZWFyY2hDaGFuZ2UobmV4dFZhbHVlKTtcbiAgICB9KTtcbiAgICBjb25zdCBmaW5kRW5hYmxlZEluZGV4ID0gdXNlRXZlbnRDYWxsYmFjaygoY3VycmVudCwgZGlyZWN0aW9uKSA9PiB7XG4gICAgICAgIHZhciBfYTtcbiAgICAgICAgY29uc3QgbGVuZ3RoID0gdmlzaWJsZUZsYXRPcHRpb25zLmxlbmd0aDtcbiAgICAgICAgaWYgKGxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3Qgc3RhcnQgPSBjdXJyZW50ICE9PSBudWxsICYmIGN1cnJlbnQgIT09IHZvaWQgMCA/IGN1cnJlbnQgOiAoZGlyZWN0aW9uID09PSAxID8gLTEgOiBsZW5ndGgpO1xuICAgICAgICBmb3IgKGxldCBzdGVwID0gMTsgc3RlcCA8PSBsZW5ndGg7IHN0ZXAgKz0gMSkge1xuICAgICAgICAgICAgY29uc3QgY2FuZGlkYXRlID0gKChzdGFydCArIGRpcmVjdGlvbiAqIHN0ZXApICUgbGVuZ3RoICsgbGVuZ3RoKSAlIGxlbmd0aDtcbiAgICAgICAgICAgIGlmICghKChfYSA9IHZpc2libGVGbGF0T3B0aW9uc1tjYW5kaWRhdGVdKSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EuZGlzYWJsZWQpKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGNhbmRpZGF0ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICB9KTtcbiAgICBjb25zdCBoYW5kbGVTZWFyY2hLZXlEb3duID0gdXNlRXZlbnRDYWxsYmFjaygoZXZlbnQpID0+IHtcbiAgICAgICAgdmFyIF9hO1xuICAgICAgICBpZiAoZXZlbnQua2V5ID09PSBLRVlCT0FSRC5BUlJPV19ET1dOKSB7XG4gICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgY29uc3QgbmV4dCA9IGZpbmRFbmFibGVkSW5kZXgoYWN0aXZlSW5kZXgsIDEpO1xuICAgICAgICAgICAgaWYgKG5leHQgIT09IG51bGwpIHtcbiAgICAgICAgICAgICAgICBzZXRBY3RpdmVJbmRleChuZXh0KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBpZiAoZXZlbnQua2V5ID09PSBLRVlCT0FSRC5BUlJPV19VUCkge1xuICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgIGNvbnN0IHByZXYgPSBmaW5kRW5hYmxlZEluZGV4KGFjdGl2ZUluZGV4LCAtMSk7XG4gICAgICAgICAgICBpZiAocHJldiAhPT0gbnVsbCkge1xuICAgICAgICAgICAgICAgIHNldEFjdGl2ZUluZGV4KHByZXYpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGlmIChldmVudC5rZXkgPT09IEtFWUJPQVJELkVOVEVSKSB7XG4gICAgICAgICAgICBpZiAoYWN0aXZlSW5kZXggIT09IG51bGwgJiZcbiAgICAgICAgICAgICAgICB2aXNpYmxlRmxhdE9wdGlvbnNbYWN0aXZlSW5kZXhdICYmXG4gICAgICAgICAgICAgICAgIXZpc2libGVGbGF0T3B0aW9uc1thY3RpdmVJbmRleF0uZGlzYWJsZWQpIHtcbiAgICAgICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgICAgIGhhbmRsZVNlbGVjdE9wdGlvbih2aXNpYmxlRmxhdE9wdGlvbnNbYWN0aXZlSW5kZXhdKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBpZiAoZXZlbnQua2V5ID09PSBLRVlCT0FSRC5FU0NBUEUpIHtcbiAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICBoYW5kbGVPcGVuQ2hhbmdlKGZhbHNlKTtcbiAgICAgICAgICAgIChfYSA9IHRyaWdnZXJSZWYuY3VycmVudCkgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLmZvY3VzKHsgcHJldmVudFNjcm9sbDogdHJ1ZSB9KTtcbiAgICAgICAgfVxuICAgIH0pO1xuICAgIGNvbnN0IHJlbmRlclZhbHVlTWV0YSA9IHtcbiAgICAgICAgZGlzYWJsZWQsXG4gICAgICAgIG11bHRpcGxlLFxuICAgICAgICBtYXhWaXNpYmxlVmFsdWVzLFxuICAgICAgICBvcGVuOiBpbm5lck9wZW4sXG4gICAgICAgIHBsYWNlaG9sZGVyOiAhaGFzU2VsZWN0aW9uLFxuICAgICAgICBzZWxlY3RlZE9wdGlvbnMsXG4gICAgfTtcbiAgICBjb25zdCB2YWx1ZUxhYmVsQ2xhc3MgPSBoYXNTZWxlY3Rpb24gPyAndmFsdWUnIDogJ3BsYWNlaG9sZGVyJztcbiAgICBjb25zdCBpc011bHRpcGxlVmFsdWVGaWxsZWQgPSAobXVsdGlwbGUgJiZcbiAgICAgICAgaGFzU2VsZWN0aW9uICYmXG4gICAgICAgIG1heFZpc2libGVWYWx1ZXMgPT09IHVuZGVmaW5lZCk7XG4gICAgY29uc3QgdHJpZ2dlckNsYXNzTmFtZSA9IGNsYXNzZXMoJ3RyaWdnZXInLCBqb2luQ2xzKGNsYXNzZXMoYHRyaWdnZXItJHtub3JtYWxpemVkU2l6ZX1gKSwgY2xhc3NlcyhgdHJpZ2dlci0ke3ZhcmlhbnR9YCksIGlubmVyT3BlbiAmJiBjbGFzc2VzKCd0cmlnZ2VyLW9wZW4nKSwgaXNNdWx0aXBsZVZhbHVlRmlsbGVkICYmIGNsYXNzZXMoJ3RyaWdnZXItbXVsdGlwbGUtZmlsbGVkJyksIGhhc1NlbGVjdGlvbiA/IGNsYXNzZXMoJ3RyaWdnZXItZmlsbGVkJykgOiBjbGFzc2VzKCd0cmlnZ2VyLXBsYWNlaG9sZGVyJyksIHN0YXR1cyAhPT0gJ2RlZmF1bHQnICYmIGNsYXNzZXMoYHRyaWdnZXItJHtzdGF0dXN9YCksIGRpc2FibGVkICYmIGNsYXNzZXMoJ3RyaWdnZXItZGlzYWJsZWQnKSkpO1xuICAgIGNvbnN0IGljb25TaXplID0gbm9ybWFsaXplZFNpemUgPT09ICdzbWFsbCcgPyAxNiA6IDIwO1xuICAgIGNvbnN0IGFjdGl2ZU9wdGlvbklkID0gc2VhcmNoYWJsZSAmJiBpbm5lck9wZW4gJiYgYWN0aXZlSW5kZXggIT09IG51bGxcbiAgICAgICAgPyBgJHtvcHRpb25JZFByZWZpeH0tJHthY3RpdmVJbmRleH1gXG4gICAgICAgIDogdW5kZWZpbmVkO1xuICAgIGNvbnN0IGZsb2F0aW5nQXJpYUxhYmVsbGVkQnkgPSBhcmlhTGFiZWxsZWRCeSAhPT0gbnVsbCAmJiBhcmlhTGFiZWxsZWRCeSAhPT0gdm9pZCAwID8gYXJpYUxhYmVsbGVkQnkgOiAobGFiZWwgPyBsYWJlbElkIDogdW5kZWZpbmVkKTtcbiAgICBjb25zdCBkZXNjcmliZWRCeUlkcyA9IFtcbiAgICAgICAgZGVzY3JpcHRpb24gPyBkZXNjcmlwdGlvbklkIDogbnVsbCxcbiAgICAgICAgZmVlZGJhY2sgPyBmZWVkYmFja0lkIDogbnVsbCxcbiAgICBdLmZpbHRlcihCb29sZWFuKS5qb2luKCcgJykgfHwgdW5kZWZpbmVkO1xuICAgIHJldHVybiAoX2pzeHMoU2VsZWN0RmllbGRTaGVsbCwgeyBjbGFzc2VzOiBjbGFzc2VzLCBjbGFzc05hbWU6IGNsYXNzTmFtZSwgc2l6ZTogbm9ybWFsaXplZFNpemUsIHZhcmlhbnQ6IHZhcmlhbnQsIHN0YXR1czogc3RhdHVzLCBkaXNhYmxlZDogZGlzYWJsZWQsIGxvYWRpbmc6IGxvYWRpbmcsIGxhYmVsOiBsYWJlbCwgaW5mbzogaW5mbywgZGVzY3JpcHRpb246IGRlc2NyaXB0aW9uLCBmZWVkYmFjazogZmVlZGJhY2ssIHJlcXVpcmVkOiByZXF1aXJlZCwgbGFiZWxJZDogbGFiZWxJZCwgZGVzY3JpcHRpb25JZDogZGVzY3JpcHRpb25JZCwgZmVlZGJhY2tJZDogZmVlZGJhY2tJZCwgY2hpbGRyZW46IFtfanN4cyhcImJ1dHRvblwiLCBPYmplY3QuYXNzaWduKHt9LCBnZXRSZWZlcmVuY2VQcm9wcyh7XG4gICAgICAgICAgICAgICAgcmVmOiBzZXRSZWZlcmVuY2UsXG4gICAgICAgICAgICAgICAgaWQ6IHRyaWdnZXJJZCxcbiAgICAgICAgICAgICAgICB0eXBlOiAnYnV0dG9uJyxcbiAgICAgICAgICAgICAgICBuYW1lLFxuICAgICAgICAgICAgICAgIGRpc2FibGVkLFxuICAgICAgICAgICAgICAgIGNsYXNzTmFtZTogdHJpZ2dlckNsYXNzTmFtZSxcbiAgICAgICAgICAgICAgICBvbktleURvd246IGhhbmRsZVRyaWdnZXJLZXlEb3duLFxuICAgICAgICAgICAgICAgIG9uQmx1cjogaGFuZGxlVHJpZ2dlckJsdXIsXG4gICAgICAgICAgICAgICAgJ2FyaWEtbGFiZWwnOiBhcmlhTGFiZWwsXG4gICAgICAgICAgICAgICAgJ2FyaWEtbGFiZWxsZWRieSc6IGZsb2F0aW5nQXJpYUxhYmVsbGVkQnksXG4gICAgICAgICAgICAgICAgJ2FyaWEtZGVzY3JpYmVkYnknOiBkZXNjcmliZWRCeUlkcyxcbiAgICAgICAgICAgIH0pLCB7IGNoaWxkcmVuOiBbX2pzeHMoXCJzcGFuXCIsIHsgY2xhc3NOYW1lOiBjbGFzc2VzKCdjb250ZW50JyksIGNoaWxkcmVuOiBbcHJlZml4ICYmIF9qc3goXCJzcGFuXCIsIHsgY2xhc3NOYW1lOiBjbGFzc2VzKCdwcmVmaXgnKSwgY2hpbGRyZW46IHByZWZpeCB9KSwgX2pzeChcInNwYW5cIiwgeyBjbGFzc05hbWU6IGNsYXNzZXModmFsdWVMYWJlbENsYXNzLCBqb2luQ2xzKGNsYXNzZXMoYCR7dmFsdWVMYWJlbENsYXNzfS0ke25vcm1hbGl6ZWRTaXplfWApLCBpc011bHRpcGxlVmFsdWVGaWxsZWQgJiYgY2xhc3NlcyhgJHt2YWx1ZUxhYmVsQ2xhc3N9LW11bHRpcGxlYCksIGRpc2FibGVkICYmIGNsYXNzZXMoYCR7dmFsdWVMYWJlbENsYXNzfS1kaXNhYmxlZGApKSksIGNoaWxkcmVuOiBfanN4KFNlbGVjdFZhbHVlQ29udGVudCwgeyBjbGFzc2VzOiBjbGFzc2VzLCBoYXNTZWxlY3Rpb246IGhhc1NlbGVjdGlvbiwgbXVsdGlwbGU6IG11bHRpcGxlLCBwbGFjZWhvbGRlcjogcGxhY2Vob2xkZXIsIHJlbmRlclZhbHVlOiByZW5kZXJWYWx1ZSwgcmVuZGVyVmFsdWVNZXRhOiByZW5kZXJWYWx1ZU1ldGEsIHNlbGVjdGVkT3B0aW9uczogc2VsZWN0ZWRPcHRpb25zLCBtYXhWaXNpYmxlVmFsdWVzOiBtYXhWaXNpYmxlVmFsdWVzLCBvblJlbW92ZTogaGFuZGxlUmVtb3ZlU2VsZWN0ZWRWYWx1ZSwgb25SZW1vdmVDbGljazogaGFuZGxlVGFnUmVtb3ZlQ2xpY2ssIG9uUmVtb3ZlTW91c2VEb3duOiBoYW5kbGVUYWdSZW1vdmVNb3VzZURvd24gfSkgfSldIH0pLCBfanN4KFwic3BhblwiLCB7IGNsYXNzTmFtZTogY2xhc3NlcygnaWNvbicpLCBjaGlsZHJlbjogbG9hZGluZyA/IChfanN4KFNwaW5uZXIsIHsgc2l6ZTogaWNvblNpemUsIHN0cm9rZVdpZHRoOiAyIH0pKSA6IChfanN4KEljb25zLCB7IG5hbWU6IGlubmVyT3BlbiA/ICdjaGV2cm9uVXAnIDogJ2NoZXZyb25Eb3duJywgc2l6ZTogaWNvblNpemUsIGNvbG9yOiBcImN1cnJlbnRDb2xvclwiIH0pKSB9KV0gfSkpLCBpc01vdW50ZWQgJiYgIWRpc2FibGVkICYmICgoKSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgcGFuZWxOb2RlID0gKF9qc3goRmxvYXRpbmdGb2N1c01hbmFnZXIsIHsgY29udGV4dDogY29udGV4dCwgbW9kYWw6IGZhbHNlLCBpbml0aWFsRm9jdXM6IC0xLCByZXR1cm5Gb2N1czogZmFsc2UsIGNoaWxkcmVuOiBfanN4cyhcImRpdlwiLCBPYmplY3QuYXNzaWduKHt9LCBnZXRGbG9hdGluZ1Byb3BzKHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlZjogc2V0RmxvYXRpbmcsXG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU6IGpvaW5DbHMoY2xhc3NlcygncGFuZWwnKSwgcGFuZWxDbGFzc05hbWUpLFxuICAgICAgICAgICAgICAgICAgICAgICAgc3R5bGU6IE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSwgZmxvYXRpbmdTdHlsZXMpLCB0cmFuc2l0aW9uU3R5bGVzKSxcbiAgICAgICAgICAgICAgICAgICAgfSksIHsgY2hpbGRyZW46IFtzZWFyY2hhYmxlICYmIChfanN4KFNlbGVjdFNlYXJjaENvbnRyb2wsIHsgcmVmOiBzZXRTZWFyY2hJbnB1dFJlZiwgY2xhc3NlczogY2xhc3Nlcywgc2l6ZTogbm9ybWFsaXplZFNpemUsIHBsYWNlaG9sZGVyOiBzZWFyY2hQbGFjZWhvbGRlciwgdmFsdWU6IGlubmVyU2VhcmNoVmFsdWUsIGFjdGl2ZURlc2NlbmRhbnQ6IGFjdGl2ZU9wdGlvbklkLCBvbkJsdXI6IGhhbmRsZVNlYXJjaEJsdXIsIG9uQ2hhbmdlOiBoYW5kbGVTZWFyY2hDaGFuZ2UsIG9uS2V5RG93bjogaGFuZGxlU2VhcmNoS2V5RG93biB9KSksIF9qc3goXCJkaXZcIiwgeyBjbGFzc05hbWU6IGNsYXNzZXMoJ3BhbmVsLWJvZHknKSwgY2hpbGRyZW46IHZpc2libGVGbGF0T3B0aW9ucy5sZW5ndGggPT09IDAgPyAoX2pzeChcImRpdlwiLCB7IGNsYXNzTmFtZTogY2xhc3NlcygnZW1wdHknKSwgY2hpbGRyZW46IF9qc3goVHlwb2dyYXBoeUJvZHksIHsgc2l6ZTogU0VMRUNUX1RZUE9HUkFQSFkuZW1wdHkuc2l6ZSwgY29sb3I6IFNFTEVDVF9UWVBPR1JBUEhZLmVtcHR5LmNvbG9yLCBjaGlsZHJlbjogZW1wdHlDb250ZW50IH0pIH0pKSA6ICgoKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGZsYXRJbmRleCA9IDA7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gdmlzaWJsZU9wdGlvbkdyb3Vwcy5tYXAoKGdyb3VwKSA9PiAoX2pzeHMoXCJkaXZcIiwgeyBjbGFzc05hbWU6IGNsYXNzZXMoJ2dyb3VwJyksIGNoaWxkcmVuOiBbZ3JvdXAubGFiZWwgJiYgKF9qc3goXCJkaXZcIiwgeyBjbGFzc05hbWU6IGNsYXNzZXMoJ2dyb3VwLWxhYmVsJyksIGNoaWxkcmVuOiBfanN4KFR5cG9ncmFwaHlMYWJlbCwgeyBzaXplOiBTRUxFQ1RfVFlQT0dSQVBIWS5ncm91cExhYmVsLnNpemUsIHN0cm9uZzogdHJ1ZSwgY2hpbGRyZW46IGdyb3VwLmxhYmVsIH0pIH0pKSwgZ3JvdXAub3B0aW9ucy5tYXAoKG9wdGlvbikgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgb3B0aW9uRmxhdEluZGV4ID0gZmxhdEluZGV4O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmxhdEluZGV4ICs9IDE7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBzZWxlY3RlZCA9IGlzT3B0aW9uU2VsZWN0ZWQoaW5uZXJWYWx1ZSwgbXVsdGlwbGUsIG9wdGlvbi52YWx1ZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBhY3RpdmUgPSBhY3RpdmVJbmRleCA9PT0gb3B0aW9uRmxhdEluZGV4O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgb3B0aW9uTWV0YSA9IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhY3RpdmUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ6ICEhb3B0aW9uLmRpc2FibGVkLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluZGV4OiBvcHRpb25GbGF0SW5kZXgsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbXVsdGlwbGUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3BlbjogaW5uZXJPcGVuLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGVjdGVkLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpc3RDb250ZW50UmVmLmN1cnJlbnRbb3B0aW9uRmxhdEluZGV4XSA9IGV4dHJhY3RPcHRpb25UZXh0KG9wdGlvbik7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gKF9qc3goXCJidXR0b25cIiwgT2JqZWN0LmFzc2lnbih7fSwgZ2V0SXRlbVByb3BzKHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWYobm9kZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaXN0UmVmLmN1cnJlbnRbb3B0aW9uRmxhdEluZGV4XSA9IG5vZGU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZDogYCR7b3B0aW9uSWRQcmVmaXh9LSR7b3B0aW9uRmxhdEluZGV4fWAsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZTogJ2J1dHRvbicsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcm9sZTogJ29wdGlvbicsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lOiBjbGFzc2VzKCdvcHRpb24nLCBqb2luQ2xzKGFjdGl2ZSAmJiBjbGFzc2VzKCdvcHRpb24tYWN0aXZlJyksIHNlbGVjdGVkICYmIGNsYXNzZXMoJ29wdGlvbi1zZWxlY3RlZCcpLCBvcHRpb24uZGlzYWJsZWQgJiYgY2xhc3Nlcygnb3B0aW9uLWRpc2FibGVkJyksIG9wdGlvbkNsYXNzTmFtZSkpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpc2FibGVkOiBvcHRpb24uZGlzYWJsZWQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2FyaWEtc2VsZWN0ZWQnOiBzZWxlY3RlZCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrOiAoZXZlbnQpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlU2VsZWN0T3B0aW9uKG9wdGlvbik7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbk1vdXNlRW50ZXI6ICgpID0+IGhhbmRsZUl0ZW1Nb3VzZUVudGVyKG9wdGlvbkZsYXRJbmRleCksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25CbHVyOiBoYW5kbGVPcHRpb25CbHVyLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSksIHsgY2hpbGRyZW46IHJlbmRlck9wdGlvbiA/IChyZW5kZXJPcHRpb24ob3B0aW9uLCBvcHRpb25NZXRhKSkgOiAoX2pzeChTZWxlY3RPcHRpb25Db250ZW50LCB7IGNsYXNzZXM6IGNsYXNzZXMsIG9wdGlvbjogb3B0aW9uLCBzZWxlY3RlZDogc2VsZWN0ZWQgfSkpIH0pLCBgJHtncm91cC5rZXl9LSR7b3B0aW9uLnZhbHVlfWApKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSldIH0sIGdyb3VwLmtleSkpKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSkoKSkgfSksIHBhbmVsRm9vdGVyICE9IG51bGwgJiYgKF9qc3goXCJkaXZcIiwgeyBjbGFzc05hbWU6IGNsYXNzZXMoJ3BhbmVsLWZvb3RlcicpLCBjaGlsZHJlbjogcGFuZWxGb290ZXIgfSkpXSB9KSkgfSkpO1xuICAgICAgICAgICAgICAgIHJldHVybiBwb3J0YWwgPyBfanN4KEZsb2F0aW5nUG9ydGFsLCB7IGNoaWxkcmVuOiBwYW5lbE5vZGUgfSkgOiBwYW5lbE5vZGU7XG4gICAgICAgICAgICB9KSgpXSB9KSk7XG59O1xuU2VsZWN0LmRpc3BsYXlOYW1lID0gJ1NlbGVjdCc7XG5leHBvcnQgZGVmYXVsdCBtZW1vKFNlbGVjdCk7IixudWxsXSwic291cmNlUm9vdCI6Ii4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYyJ9
566
+ //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvU2VsZWN0L1NlbGVjdC5qcyIsImNvbXBvbmVudHMvc3JjL2NvbXBvbmVudHMvU2VsZWN0L1NlbGVjdC50c3giXSwibmFtZXMiOlsiX2pzeFJ1bnRpbWUiLCJyZXF1aXJlIiwiX3JlYWN0IiwiX3JlYWN0MiIsIl9ob29rcyIsIl9JY29ucyIsIl9TcGlubmVyIiwiX1R5cG9ncmFwaHkiLCJfY2xhc3NuYW1lcyIsIl9pbnRlcm9wUmVxdWlyZVdpbGRjYXJkIiwiX1NlbGVjdEZpZWxkU2hlbGwiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwiX1NlbGVjdE9wdGlvbkNvbnRlbnQiLCJfU2VsZWN0U2VhcmNoQ29udHJvbCIsIl9TZWxlY3RWYWx1ZUNvbnRlbnQiLCJfdXNlU2VsZWN0U2hlbGwyIiwiX2NvbnN0YW50cyIsIl91dGlscyIsIl9nZXRSZXF1aXJlV2lsZGNhcmRDYWNoZSIsImUiLCJXZWFrTWFwIiwiciIsInQiLCJfX2VzTW9kdWxlIiwiX3R5cGVvZiIsImhhcyIsImdldCIsIm4iLCJfX3Byb3RvX18iLCJhIiwiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCJ1IiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIiwiaSIsInNldCIsIkRFRkFVTFRfTUFYX0hFSUdIVCIsIlNlbGVjdCIsImV4cG9ydHMiLCJwcm9wcyIsIl9wcm9wcyRjbGFzc05hbWUiLCJjbGFzc05hbWUiLCJfcHJvcHMkcHJlZml4Q2xzIiwicHJlZml4Q2xzIiwic3R5bGUiLCJpZCIsIm5hbWUiLCJhcmlhTGFiZWwiLCJhcmlhTGFiZWxsZWRCeSIsIl9wcm9wcyRwbGFjZWhvbGRlciIsInBsYWNlaG9sZGVyIiwiX3Byb3BzJG9wdGlvbnMiLCJvcHRpb25zIiwidmFsdWUiLCJkZWZhdWx0VmFsdWUiLCJfcHJvcHMkc2l6ZSIsInNpemUiLCJfcHJvcHMkc3RhdHVzIiwic3RhdHVzIiwiX3Byb3BzJHZhcmlhbnQiLCJ2YXJpYW50IiwiX3Byb3BzJGRpc2FibGVkIiwiZGlzYWJsZWQiLCJkaXNhYmxlZFByb3AiLCJfcHJvcHMkbG9hZGluZyIsImxvYWRpbmciLCJfcHJvcHMkbXVsdGlwbGUiLCJtdWx0aXBsZSIsIm1heFZpc2libGVWYWx1ZXMiLCJfcHJvcHMkc2VhcmNoYWJsZSIsInNlYXJjaGFibGUiLCJfcHJvcHMkc2VhcmNoUGxhY2Vob2wiLCJzZWFyY2hQbGFjZWhvbGRlciIsInNlYXJjaFZhbHVlIiwiX3Byb3BzJGRlZmF1bHRTZWFyY2hWIiwiZGVmYXVsdFNlYXJjaFZhbHVlIiwiX3Byb3BzJGZpbHRlcklucHV0QXV0IiwiZmlsdGVySW5wdXRBdXRvRm9jdXMiLCJsYWJlbCIsImluZm8iLCJkZXNjcmlwdGlvbiIsImZlZWRiYWNrIiwiX3Byb3BzJHJlcXVpcmVkIiwicmVxdWlyZWQiLCJwcmVmaXgiLCJfcHJvcHMkZW1wdHlDb250ZW50IiwiZW1wdHlDb250ZW50IiwicGFuZWxGb290ZXIiLCJvcGVuIiwiX3Byb3BzJGRlZmF1bHRPcGVuIiwiZGVmYXVsdE9wZW4iLCJfcHJvcHMkcG9ydGFsIiwicG9ydGFsIiwiX3Byb3BzJGFsbG93RGVzZWxlY3QiLCJhbGxvd0Rlc2VsZWN0IiwicGFuZWxDbGFzc05hbWUiLCJvcHRpb25DbGFzc05hbWUiLCJfcHJvcHMkbGlzdE1heEhlaWdodCIsImxpc3RNYXhIZWlnaHQiLCJvZmZzZXQiLCJhbmltYXRpb24iLCJvbkNoYW5nZSIsIm9uT3BlbkNoYW5nZSIsIm9uU2VhcmNoQ2hhbmdlIiwib25CbHVyIiwiZmlsdGVyT3B0aW9uIiwicmVuZGVyT3B0aW9uIiwicmVuZGVyT3B0aW9uQ29udGVudCIsInJlbmRlclZhbHVlIiwicmVmIiwiY2xhc3NlcyIsInJvb3RDbGFzc25hbWVzIiwiYXV0b0lkIiwidXNlSWQiLCJ0cmlnZ2VySWQiLCJsYWJlbElkIiwiZGVzY3JpcHRpb25JZCIsImZlZWRiYWNrSWQiLCJvcHRpb25JZFByZWZpeCIsIl91c2VDb250cm9sbGVkU3RhdGUiLCJ1c2VDb250cm9sbGVkU3RhdGUiLCJ1bmRlZmluZWQiLCJfdXNlQ29udHJvbGxlZFN0YXRlMiIsIl9zbGljZWRUb0FycmF5MiIsImlubmVyVmFsdWUiLCJzZXRJbm5lclZhbHVlIiwiX3VzZUNvbnRyb2xsZWRTdGF0ZTMiLCJfdXNlQ29udHJvbGxlZFN0YXRlNCIsImlubmVyU2VhcmNoVmFsdWUiLCJzZXRJbm5lclNlYXJjaFZhbHVlIiwiX3VzZVN0YXRlIiwidXNlU3RhdGUiLCJfdXNlU3RhdGUyIiwiYWN0aXZlSW5kZXgiLCJzZXRBY3RpdmVJbmRleCIsIm5vcm1hbGl6ZWRTaXplIiwibm9ybWFsaXplU2l6ZSIsImFsbE9wdGlvbkdyb3VwcyIsInVzZU1lbW8iLCJub3JtYWxpemVPcHRpb25Hcm91cHMiLCJhbGxGbGF0T3B0aW9ucyIsImZsYXR0ZW5PcHRpb25Hcm91cHMiLCJ2aXNpYmxlT3B0aW9uR3JvdXBzIiwiZmlsdGVyT3B0aW9uR3JvdXBzIiwidmlzaWJsZUZsYXRPcHRpb25zIiwic2VsZWN0ZWRPcHRpb25zIiwiZ2V0U2VsZWN0ZWRPcHRpb25zIiwic2VsZWN0ZWRJbmRleCIsImxlbmd0aCIsIm1hdGNoZWRJbmRleCIsImZpbmRJbmRleCIsIm9wdGlvbiIsImhhc1NlbGVjdGlvbiIsImxpc3RSZWYiLCJ1c2VSZWYiLCJsaXN0Q29udGVudFJlZiIsImZsb2F0aW5nUmVmIiwidHJpZ2dlclJlZiIsInNlYXJjaElucHV0UmVmIiwiaGFuZGxlVHJpZ2dlclJlZiIsInVzZUV2ZW50Q2FsbGJhY2siLCJub2RlIiwiY3VycmVudCIsIl91c2VTZWxlY3RTaGVsbCIsInVzZVNlbGVjdFNoZWxsIiwiaW5uZXJPcGVuIiwiaXNPcGVuIiwiaGFuZGxlT3BlbkNoYW5nZSIsInNldE9wZW4iLCJyZWZzIiwiY29udGV4dCIsImZsb2F0aW5nU3R5bGVzIiwidHJhbnNpdGlvblN0eWxlcyIsImlzTW91bnRlZCIsImJhc2VJbnRlcmFjdGlvbnMiLCJzZXRSZWZlcmVuY2UiLCJzZXRGbG9hdGluZyIsImxpc3ROYXZpZ2F0aW9uIiwidXNlTGlzdE5hdmlnYXRpb24iLCJvbk5hdmlnYXRlIiwiZW5hYmxlZCIsImxvb3AiLCJ2aXJ0dWFsIiwidHlwZWFoZWFkIiwidXNlVHlwZWFoZWFkIiwib25NYXRjaCIsIl91c2VJbnRlcmFjdGlvbnMiLCJ1c2VJbnRlcmFjdGlvbnMiLCJjb25jYXQiLCJfdG9Db25zdW1hYmxlQXJyYXkyIiwiZ2V0UmVmZXJlbmNlUHJvcHMiLCJnZXRGbG9hdGluZ1Byb3BzIiwiZ2V0SXRlbVByb3BzIiwiZmlyc3RFbmFibGVkSW5kZXgiLCJ1c2VFZmZlY3QiLCJwcmV2IiwiX2EiLCJmb2N1cyIsInByZXZlbnRTY3JvbGwiLCJzbGljZSIsInNldFNlYXJjaElucHV0UmVmIiwibm90aWZ5Qmx1cklmT3V0c2lkZSIsInJlbGF0ZWRUYXJnZXQiLCJldmVudCIsIl9iIiwibmV4dFRhcmdldCIsIndpdGhpblRyaWdnZXIiLCJjb250YWlucyIsIndpdGhpbkZsb2F0aW5nIiwiaGFuZGxlVHJpZ2dlckJsdXIiLCJoYW5kbGVPcHRpb25CbHVyIiwiY29tbWl0Q2hhbmdlIiwibmV4dFZhbHVlIiwibmV4dE9wdGlvbiIsImhhbmRsZVNlbGVjdE9wdGlvbiIsInRvZ2dsZU11bHRpcGxlVmFsdWUiLCJuZXh0T3B0aW9ucyIsImdldE9wdGlvbnNCeVZhbHVlcyIsImhhbmRsZVJlbW92ZVNlbGVjdGVkVmFsdWUiLCJvcHRpb25WYWx1ZSIsImdldE11bHRpcGxlVmFsdWUiLCJpbmNsdWRlcyIsInJlbW92ZU11bHRpcGxlVmFsdWUiLCJoYW5kbGVUcmlnZ2VyS2V5RG93biIsImtleSIsIktFWUJPQVJEIiwiRU5URVIiLCJTUEFDRSIsInByZXZlbnREZWZhdWx0IiwiQVJST1dfRE9XTiIsIkFSUk9XX1VQIiwiaGFuZGxlSXRlbU1vdXNlRW50ZXIiLCJpbmRleCIsImhhbmRsZVRhZ1JlbW92ZU1vdXNlRG93biIsInN0b3BQcm9wYWdhdGlvbiIsImhhbmRsZVRhZ1JlbW92ZUNsaWNrIiwiaGFuZGxlU2VhcmNoQmx1ciIsImhhbmRsZVNlYXJjaENoYW5nZSIsIl9ldmVudCIsImZpbmRFbmFibGVkSW5kZXgiLCJkaXJlY3Rpb24iLCJzdGFydCIsInN0ZXAiLCJjYW5kaWRhdGUiLCJoYW5kbGVTZWFyY2hLZXlEb3duIiwibmV4dCIsIkVTQ0FQRSIsInJlbmRlclZhbHVlTWV0YSIsInZhbHVlTGFiZWxDbGFzcyIsImlzTXVsdGlwbGVWYWx1ZUZpbGxlZCIsInRyaWdnZXJDbGFzc05hbWUiLCJqb2luQ2xzIiwiaWNvblNpemUiLCJhY3RpdmVPcHRpb25JZCIsImZsb2F0aW5nQXJpYUxhYmVsbGVkQnkiLCJkZXNjcmliZWRCeUlkcyIsImZpbHRlciIsIkJvb2xlYW4iLCJqb2luIiwiX2pzeHMiLCJTZWxlY3RGaWVsZFNoZWxsIiwiY2hpbGRyZW4iLCJhc3NpZ24iLCJ0eXBlIiwib25LZXlEb3duIiwiX2pzeCIsIlNlbGVjdFZhbHVlQ29udGVudCIsIm9uUmVtb3ZlIiwib25SZW1vdmVDbGljayIsIm9uUmVtb3ZlTW91c2VEb3duIiwiU3Bpbm5lciIsInN0cm9rZVdpZHRoIiwiSWNvbnMiLCJjb2xvciIsInBhbmVsTm9kZSIsIkZsb2F0aW5nRm9jdXNNYW5hZ2VyIiwibW9kYWwiLCJpbml0aWFsRm9jdXMiLCJyZXR1cm5Gb2N1cyIsIlNlbGVjdFNlYXJjaENvbnRyb2wiLCJhY3RpdmVEZXNjZW5kYW50IiwiVHlwb2dyYXBoeUJvZHkiLCJTRUxFQ1RfVFlQT0dSQVBIWSIsImVtcHR5IiwiZmxhdEluZGV4IiwibWFwIiwiZ3JvdXAiLCJUeXBvZ3JhcGh5TGFiZWwiLCJncm91cExhYmVsIiwic3Ryb25nIiwib3B0aW9uRmxhdEluZGV4Iiwic2VsZWN0ZWQiLCJpc09wdGlvblNlbGVjdGVkIiwiYWN0aXZlIiwib3B0aW9uTWV0YSIsImV4dHJhY3RPcHRpb25UZXh0Iiwicm9sZSIsIm9uQ2xpY2siLCJvbk1vdXNlRW50ZXIiLCJTZWxlY3RPcHRpb25Db250ZW50IiwiY29udGVudCIsIkZsb2F0aW5nUG9ydGFsIiwiZGlzcGxheU5hbWUiLCJfZGVmYXVs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LENBRVQ7TUFFRCxPQUFPSyxNQUFNLEdBQUcsSUFBQTZLLGVBQUEsRUFBQ29DLHFCQUFjLEVBQUE7UUFBQXhDLFFBQUEsRUFBRWE7TUFBUyxDQUFBLENBQWtCLEdBQUdBLFNBQVM7SUFDMUUsQ0FBQyxDQUFDLENBQUU7RUFBQSxDQUFBLENBQ2E7QUFFdkIsQ0FBQztBQUVEN08sTUFBTSxDQUFDeVEsV0FBVyxHQUFHLFFBQVE7QUFBQyxJQUFBQyxRQUFBLEdBQUF6USxPQUFBLDJCQUVmLElBQUEwUSxZQUFJLEVBQUMzUSxNQUFNLENBQUMiLCJmaWxlIjoiY29tcG9uZW50cy9TZWxlY3QvU2VsZWN0LmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsganN4IGFzIF9qc3gsIGpzeHMgYXMgX2pzeHMgfSBmcm9tIFwicmVhY3QvanN4LXJ1bnRpbWVcIjtcbmltcG9ydCB7IEZsb2F0aW5nRm9jdXNNYW5hZ2VyLCBGbG9hdGluZ1BvcnRhbCwgdXNlSW50ZXJhY3Rpb25zLCB1c2VMaXN0TmF2aWdhdGlvbiwgdXNlVHlwZWFoZWFkLCB9IGZyb20gJ0BmbG9hdGluZy11aS9yZWFjdCc7XG5pbXBvcnQgeyBtZW1vLCB1c2VFZmZlY3QsIHVzZUlkLCB1c2VNZW1vLCB1c2VSZWYsIHVzZVN0YXRlIH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgdXNlQ29udHJvbGxlZFN0YXRlLCB1c2VFdmVudENhbGxiYWNrIH0gZnJvbSAnQDFtb25leS9ob29rcyc7XG5pbXBvcnQgeyBJY29ucyB9IGZyb20gJy4uL0ljb25zJztcbmltcG9ydCB7IFNwaW5uZXIgfSBmcm9tICcuLi9TcGlubmVyJztcbmltcG9ydCB7IFR5cG9ncmFwaHlCb2R5LCBUeXBvZ3JhcGh5TGFiZWwgfSBmcm9tICcuLi9UeXBvZ3JhcGh5JztcbmltcG9ydCB7IGpvaW5DbHMsIGRlZmF1bHQgYXMgcm9vdENsYXNzbmFtZXMgfSBmcm9tICcuLi8uLi91dGlscy9jbGFzc25hbWVzJztcbmltcG9ydCBTZWxlY3RGaWVsZFNoZWxsIGZyb20gJy4vU2VsZWN0RmllbGRTaGVsbCc7XG5pbXBvcnQgU2VsZWN0T3B0aW9uQ29udGVudCBmcm9tICcuL1NlbGVjdE9wdGlvbkNvbnRlbnQnO1xuaW1wb3J0IFNlbGVjdFNlYXJjaENvbnRyb2wgZnJvbSAnLi9TZWxlY3RTZWFyY2hDb250cm9sJztcbmltcG9ydCBTZWxlY3RWYWx1ZUNvbnRlbnQgZnJvbSAnLi9TZWxlY3RWYWx1ZUNvbnRlbnQnO1xuaW1wb3J0IHsgdXNlU2VsZWN0U2hlbGwgfSBmcm9tICcuL3VzZVNlbGVjdFNoZWxsJztcbmltcG9ydCB7IEtFWUJPQVJELCBTRUxFQ1RfVFlQT0dSQVBIWSB9IGZyb20gJy4vY29uc3RhbnRzJztcbmltcG9ydCB7IGV4dHJhY3RPcHRpb25UZXh0LCBmaWx0ZXJPcHRpb25Hcm91cHMsIGZsYXR0ZW5PcHRpb25Hcm91cHMsIGdldE11bHRpcGxlVmFsdWUsIGdldE9wdGlvbnNCeVZhbHVlcywgZ2V0U2VsZWN0ZWRPcHRpb25zLCBpc09wdGlvblNlbGVjdGVkLCBub3JtYWxpemVTaXplLCBub3JtYWxpemVPcHRpb25Hcm91cHMsIHJlbW92ZU11bHRpcGxlVmFsdWUsIHRvZ2dsZU11bHRpcGxlVmFsdWUsIH0gZnJvbSAnLi91dGlscyc7XG5pbXBvcnQgJy4vc3R5bGUnO1xuY29uc3QgREVGQVVMVF9NQVhfSEVJR0hUID0gMzIwO1xuZXhwb3J0IGNvbnN0IFNlbGVjdCA9IChwcm9wcykgPT4ge1xuICAgIGNvbnN0IHsgY2xhc3NOYW1lID0gJycsIHByZWZpeENscyA9ICdzZWxlY3QnLCBzdHlsZSwgaWQsIG5hbWUsICdhcmlhLWxhYmVsJzogYXJpYUxhYmVsLCAnYXJpYS1sYWJlbGxlZGJ5JzogYXJpYUxhYmVsbGVkQnksIHBsYWNlaG9sZGVyID0gJ1ZhbHVlJywgb3B0aW9ucyA9IFtdLCB2YWx1ZSwgZGVmYXVsdFZhbHVlLCBzaXplID0gJ2xhcmdlJywgc3RhdHVzID0gJ2RlZmF1bHQnLCB2YXJpYW50ID0gJ2ZpbGwnLCBkaXNhYmxlZDogZGlzYWJsZWRQcm9wID0gZmFsc2UsIGxvYWRpbmcgPSBmYWxzZSwgbXVsdGlwbGUgPSBmYWxzZSwgbWF4VmlzaWJsZVZhbHVlcywgc2VhcmNoYWJsZSA9IGZhbHNlLCBzZWFyY2hQbGFjZWhvbGRlciA9ICdTZWFyY2gnLCBzZWFyY2hWYWx1ZSwgZGVmYXVsdFNlYXJjaFZhbHVlID0gJycsIGZpbHRlcklucHV0QXV0b0ZvY3VzID0gdHJ1ZSwgbGFiZWwsIGluZm8sIGRlc2NyaXB0aW9uLCBmZWVkYmFjaywgcmVxdWlyZWQgPSBmYWxzZSwgcHJlZml4LCBlbXB0eUNvbnRlbnQgPSAnTm8gb3B0aW9ucycsIHBhbmVsRm9vdGVyLCBvcGVuLCBkZWZhdWx0T3BlbiA9IGZhbHNlLCBwb3J0YWwgPSB0cnVlLCBhbGxvd0Rlc2VsZWN0ID0gZmFsc2UsIHBhbmVsQ2xhc3NOYW1lLCBvcHRpb25DbGFzc05hbWUsIGxpc3RNYXhIZWlnaHQgPSBERUZBVUxUX01BWF9IRUlHSFQsIG9mZnNldCwgYW5pbWF0aW9uLCBvbkNoYW5nZSwgb25PcGVuQ2hhbmdlLCBvblNlYXJjaENoYW5nZSwgb25CbHVyLCBmaWx0ZXJPcHRpb24sIHJlbmRlck9wdGlvbiwgcmVuZGVyT3B0aW9uQ29udGVudCwgcmVuZGVyVmFsdWUsIHJlZiwgfSA9IHByb3BzO1xuICAgIGNvbnN0IGRpc2FibGVkID0gZGlzYWJsZWRQcm9wIHx8IGxvYWRpbmc7XG4gICAgY29uc3QgY2xhc3NlcyA9IHJvb3RDbGFzc25hbWVzKHByZWZpeENscyk7XG4gICAgY29uc3QgYXV0b0lkID0gdXNlSWQoKTtcbiAgICBjb25zdCB0cmlnZ2VySWQgPSBpZCAhPT0gbnVsbCAmJiBpZCAhPT0gdm9pZCAwID8gaWQgOiBhdXRvSWQ7XG4gICAgY29uc3QgbGFiZWxJZCA9IHVzZUlkKCk7XG4gICAgY29uc3QgZGVzY3JpcHRpb25JZCA9IHVzZUlkKCk7XG4gICAgY29uc3QgZmVlZGJhY2tJZCA9IHVzZUlkKCk7XG4gICAgY29uc3Qgb3B0aW9uSWRQcmVmaXggPSB1c2VJZCgpO1xuICAgIGNvbnN0IFtpbm5lclZhbHVlLCBzZXRJbm5lclZhbHVlXSA9IHVzZUNvbnRyb2xsZWRTdGF0ZShkZWZhdWx0VmFsdWUgIT09IG51bGwgJiYgZGVmYXVsdFZhbHVlICE9PSB2b2lkIDAgPyBkZWZhdWx0VmFsdWUgOiAobXVsdGlwbGUgPyBbXSA6IHVuZGVmaW5lZCksIHZhbHVlKTtcbiAgICBjb25zdCBbaW5uZXJTZWFyY2hWYWx1ZSwgc2V0SW5uZXJTZWFyY2hWYWx1ZV0gPSB1c2VDb250cm9sbGVkU3RhdGUoZGVmYXVsdFNlYXJjaFZhbHVlLCBzZWFyY2hWYWx1ZSk7XG4gICAgY29uc3QgW2FjdGl2ZUluZGV4LCBzZXRBY3RpdmVJbmRleF0gPSB1c2VTdGF0ZShudWxsKTtcbiAgICBjb25zdCBub3JtYWxpemVkU2l6ZSA9IG5vcm1hbGl6ZVNpemUoc2l6ZSk7XG4gICAgY29uc3QgYWxsT3B0aW9uR3JvdXBzID0gdXNlTWVtbygoKSA9PiBub3JtYWxpemVPcHRpb25Hcm91cHMob3B0aW9ucyksIFtvcHRpb25zXSk7XG4gICAgY29uc3QgYWxsRmxhdE9wdGlvbnMgPSB1c2VNZW1vKCgpID0+IGZsYXR0ZW5PcHRpb25Hcm91cHMoYWxsT3B0aW9uR3JvdXBzKSwgW2FsbE9wdGlvbkdyb3Vwc10pO1xuICAgIGNvbnN0IHZpc2libGVPcHRpb25Hcm91cHMgPSB1c2VNZW1vKCgpID0+IChzZWFyY2hhYmxlXG4gICAgICAgID8gZmlsdGVyT3B0aW9uR3JvdXBzKGFsbE9wdGlvbkdyb3VwcywgaW5uZXJTZWFyY2hWYWx1ZSwgZmlsdGVyT3B0aW9uKVxuICAgICAgICA6IGFsbE9wdGlvbkdyb3VwcyksIFthbGxPcHRpb25Hcm91cHMsIGZpbHRlck9wdGlvbiwgaW5uZXJTZWFyY2hWYWx1ZSwgc2VhcmNoYWJsZV0pO1xuICAgIGNvbnN0IHZpc2libGVGbGF0T3B0aW9ucyA9IHVzZU1lbW8oKCkgPT4gZmxhdHRlbk9wdGlvbkdyb3Vwcyh2aXNpYmxlT3B0aW9uR3JvdXBzKSwgW3Zpc2libGVPcHRpb25Hcm91cHNdKTtcbiAgICBjb25zdCBzZWxlY3RlZE9wdGlvbnMgPSB1c2VNZW1vKCgpID0+IGdldFNlbGVjdGVkT3B0aW9ucyhhbGxGbGF0T3B0aW9ucywgaW5uZXJWYWx1ZSwgbXVsdGlwbGUpLCBbYWxsRmxhdE9wdGlvbnMsIGlubmVyVmFsdWUsIG11bHRpcGxlXSk7XG4gICAgY29uc3Qgc2VsZWN0ZWRJbmRleCA9IHVzZU1lbW8oKCkgPT4ge1xuICAgICAgICBpZiAoc2VsZWN0ZWRPcHRpb25zLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgbWF0Y2hlZEluZGV4ID0gdmlzaWJsZUZsYXRPcHRpb25zLmZpbmRJbmRleCgob3B0aW9uKSA9PiBvcHRpb24udmFsdWUgPT09IHNlbGVjdGVkT3B0aW9uc1swXS52YWx1ZSk7XG4gICAgICAgIHJldHVybiBtYXRjaGVkSW5kZXggPj0gMCA/IG1hdGNoZWRJbmRleCA6IG51bGw7XG4gICAgfSwgW3NlbGVjdGVkT3B0aW9ucywgdmlzaWJsZUZsYXRPcHRpb25zXSk7XG4gICAgY29uc3QgaGFzU2VsZWN0aW9uID0gc2VsZWN0ZWRPcHRpb25zLmxlbmd0aCA+IDA7XG4gICAgY29uc3QgbGlzdFJlZiA9IHVzZVJlZihbXSk7XG4gICAgY29uc3QgbGlzdENvbnRlbnRSZWYgPSB1c2VSZWYoW10pO1xuICAgIGNvbnN0IGZsb2F0aW5nUmVmID0gdXNlUmVmKG51bGwpO1xuICAgIGNvbnN0IHRyaWdnZXJSZWYgPSB1c2VSZWYobnVsbCk7XG4gICAgY29uc3Qgc2VhcmNoSW5wdXRSZWYgPSB1c2VSZWYobnVsbCk7XG4gICAgY29uc3QgaGFuZGxlVHJpZ2dlclJlZiA9IHVzZUV2ZW50Q2FsbGJhY2soKG5vZGUpID0+IHtcbiAgICAgICAgdHJpZ2dlclJlZi5jdXJyZW50ID0gbm9kZTtcbiAgICAgICAgaWYgKHJlZikge1xuICAgICAgICAgICAgcmVmLmN1cnJlbnQgPSBub2RlO1xuICAgICAgICB9XG4gICAgfSk7XG4gICAgY29uc3QgeyBpc09wZW46IGlubmVyT3Blbiwgc2V0T3BlbjogaGFuZGxlT3BlbkNoYW5nZSwgcmVmcywgY29udGV4dCwgZmxvYXRpbmdTdHlsZXMsIHRyYW5zaXRpb25TdHlsZXMsIGlzTW91bnRlZCwgYmFzZUludGVyYWN0aW9ucywgfSA9IHVzZVNlbGVjdFNoZWxsKHtcbiAgICAgICAgb3BlbixcbiAgICAgICAgZGVmYXVsdE9wZW4sXG4gICAgICAgIG9uT3BlbkNoYW5nZSxcbiAgICAgICAgZGlzYWJsZWQsXG4gICAgICAgIGxpc3RNYXhIZWlnaHQsXG4gICAgICAgIGFuaW1hdGlvbixcbiAgICAgICAgb2Zmc2V0LFxuICAgIH0pO1xuICAgIGNvbnN0IHNldFJlZmVyZW5jZSA9IHVzZUV2ZW50Q2FsbGJhY2soKG5vZGUpID0+IHtcbiAgICAgICAgcmVmcy5zZXRSZWZlcmVuY2Uobm9kZSk7XG4gICAgICAgIGhhbmRsZVRyaWdnZXJSZWYobm9kZSk7XG4gICAgfSk7XG4gICAgY29uc3Qgc2V0RmxvYXRpbmcgPSB1c2VFdmVudENhbGxiYWNrKChub2RlKSA9PiB7XG4gICAgICAgIHJlZnMuc2V0RmxvYXRpbmcobm9kZSk7XG4gICAgICAgIGZsb2F0aW5nUmVmLmN1cnJlbnQgPSBub2RlO1xuICAgIH0pO1xuICAgIGNvbnN0IGxpc3ROYXZpZ2F0aW9uID0gdXNlTGlzdE5hdmlnYXRpb24oY29udGV4dCwge1xuICAgICAgICBsaXN0UmVmLFxuICAgICAgICBhY3RpdmVJbmRleCxcbiAgICAgICAgc2VsZWN0ZWRJbmRleCxcbiAgICAgICAgb25OYXZpZ2F0ZTogc2V0QWN0aXZlSW5kZXgsXG4gICAgICAgIGVuYWJsZWQ6IGlubmVyT3BlbixcbiAgICAgICAgbG9vcDogdHJ1ZSxcbiAgICAgICAgdmlydHVhbDogc2VhcmNoYWJsZSxcbiAgICB9KTtcbiAgICBjb25zdCB0eXBlYWhlYWQgPSB1c2VUeXBlYWhlYWQoY29udGV4dCwge1xuICAgICAgICBsaXN0UmVmOiBsaXN0Q29udGVudFJlZixcbiAgICAgICAgYWN0aXZlSW5kZXgsXG4gICAgICAgIHNlbGVjdGVkSW5kZXgsXG4gICAgICAgIGVuYWJsZWQ6IGlubmVyT3BlbiAmJiAhc2VhcmNoYWJsZSxcbiAgICAgICAgb25NYXRjaDogc2V0QWN0aXZlSW5kZXgsXG4gICAgfSk7XG4gICAgY29uc3QgeyBnZXRSZWZlcmVuY2VQcm9wcywgZ2V0RmxvYXRpbmdQcm9wcywgZ2V0SXRlbVByb3BzIH0gPSB1c2VJbnRlcmFjdGlvbnMoW1xuICAgICAgICAuLi5iYXNlSW50ZXJhY3Rpb25zLFxuICAgICAgICBsaXN0TmF2aWdhdGlvbixcbiAgICAgICAgdHlwZWFoZWFkLFxuICAgIF0pO1xuICAgIGNvbnN0IGZpcnN0RW5hYmxlZEluZGV4ID0gdXNlTWVtbygoKSA9PiB2aXNpYmxlRmxhdE9wdGlvbnMuZmluZEluZGV4KChvcHRpb24pID0+ICFvcHRpb24uZGlzYWJsZWQpLCBbdmlzaWJsZUZsYXRPcHRpb25zXSk7XG4gICAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICAgICAgaWYgKCFpbm5lck9wZW4pIHtcbiAgICAgICAgICAgIHNldEFjdGl2ZUluZGV4KHNlbGVjdGVkSW5kZXgpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHNldEFjdGl2ZUluZGV4KChwcmV2KSA9PiB7XG4gICAgICAgICAgICBpZiAocHJldiAhPT0gbnVsbCAmJiB2aXNpYmxlRmxhdE9wdGlvbnNbcHJldl0gJiYgIXZpc2libGVGbGF0T3B0aW9uc1twcmV2XS5kaXNhYmxlZCkge1xuICAgICAgICAgICAgICAgIHJldHVybiBwcmV2O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKHNlbGVjdGVkSW5kZXggIT09IG51bGwgJiZcbiAgICAgICAgICAgICAgICB2aXNpYmxlRmxhdE9wdGlvbnNbc2VsZWN0ZWRJbmRleF0gJiZcbiAgICAgICAgICAgICAgICAhdmlzaWJsZUZsYXRPcHRpb25zW3NlbGVjdGVkSW5kZXhdLmRpc2FibGVkKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHNlbGVjdGVkSW5kZXg7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gZmlyc3RFbmFibGVkSW5kZXggPj0gMCA/IGZpcnN0RW5hYmxlZEluZGV4IDogbnVsbDtcbiAgICAgICAgfSk7XG4gICAgfSwgW2ZpcnN0RW5hYmxlZEluZGV4LCBpbm5lck9wZW4sIHNlbGVjdGVkSW5kZXgsIHZpc2libGVGbGF0T3B0aW9uc10pO1xuICAgIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICAgIHZhciBfYTtcbiAgICAgICAgaWYgKCFpbm5lck9wZW4gfHwgYWN0aXZlSW5kZXggPT09IG51bGwgfHwgc2VhcmNoYWJsZSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIChfYSA9IGxpc3RSZWYuY3VycmVudFthY3RpdmVJbmRleF0pID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5mb2N1cyh7IHByZXZlbnRTY3JvbGw6IHRydWUgfSk7XG4gICAgfSwgW2FjdGl2ZUluZGV4LCBpbm5lck9wZW4sIHNlYXJjaGFibGVdKTtcbiAgICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgICBsaXN0UmVmLmN1cnJlbnQgPSBsaXN0UmVmLmN1cnJlbnQuc2xpY2UoMCwgdmlzaWJsZUZsYXRPcHRpb25zLmxlbmd0aCk7XG4gICAgICAgIGxpc3RDb250ZW50UmVmLmN1cnJlbnQgPSBsaXN0Q29udGVudFJlZi5jdXJyZW50LnNsaWNlKDAsIHZpc2libGVGbGF0T3B0aW9ucy5sZW5ndGgpO1xuICAgIH0sIFt2aXNpYmxlRmxhdE9wdGlvbnMubGVuZ3RoXSk7XG4gICAgY29uc3Qgc2V0U2VhcmNoSW5wdXRSZWYgPSB1c2VFdmVudENhbGxiYWNrKChub2RlKSA9PiB7XG4gICAgICAgIHNlYXJjaElucHV0UmVmLmN1cnJlbnQgPSBub2RlO1xuICAgICAgICBpZiAobm9kZSAmJiBpbm5lck9wZW4gJiYgZmlsdGVySW5wdXRBdXRvRm9jdXMpIHtcbiAgICAgICAgICAgIG5vZGUuZm9jdXMoeyBwcmV2ZW50U2Nyb2xsOiB0cnVlIH0pO1xuICAgICAgICB9XG4gICAgfSk7XG4gICAgY29uc3Qgbm90aWZ5Qmx1cklmT3V0c2lkZSA9IHVzZUV2ZW50Q2FsbGJhY2soKHJlbGF0ZWRUYXJnZXQsIGV2ZW50KSA9PiB7XG4gICAgICAgIHZhciBfYSwgX2I7XG4gICAgICAgIGNvbnN0IG5leHRUYXJnZXQgPSByZWxhdGVkVGFyZ2V0O1xuICAgICAgICBjb25zdCB3aXRoaW5UcmlnZ2VyID0gISEobmV4dFRhcmdldCAmJiAoKF9hID0gdHJpZ2dlclJlZi5jdXJyZW50KSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EuY29udGFpbnMobmV4dFRhcmdldCkpKTtcbiAgICAgICAgY29uc3Qgd2l0aGluRmxvYXRpbmcgPSAhIShuZXh0VGFyZ2V0ICYmICgoX2IgPSBmbG9hdGluZ1JlZi5jdXJyZW50KSA9PT0gbnVsbCB8fCBfYiA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2IuY29udGFpbnMobmV4dFRhcmdldCkpKTtcbiAgICAgICAgaWYgKCF3aXRoaW5UcmlnZ2VyICYmICF3aXRoaW5GbG9hdGluZykge1xuICAgICAgICAgICAgb25CbHVyID09PSBudWxsIHx8IG9uQmx1ciA9PT0gdm9pZCAwID8gdm9pZCAwIDogb25CbHVyKGV2ZW50KTtcbiAgICAgICAgfVxuICAgIH0pO1xuICAgIGNvbnN0IGhhbmRsZVRyaWdnZXJCbHVyID0gdXNlRXZlbnRDYWxsYmFjaygoZXZlbnQpID0+IHtcbiAgICAgICAgbm90aWZ5Qmx1cklmT3V0c2lkZShldmVudC5yZWxhdGVkVGFyZ2V0LCBldmVudCk7XG4gICAgfSk7XG4gICAgY29uc3QgaGFuZGxlT3B0aW9uQmx1ciA9IHVzZUV2ZW50Q2FsbGJhY2soKGV2ZW50KSA9PiB7XG4gICAgICAgIG5vdGlmeUJsdXJJZk91dHNpZGUoZXZlbnQucmVsYXRlZFRhcmdldCwgZXZlbnQpO1xuICAgIH0pO1xuICAgIGNvbnN0IGNvbW1pdENoYW5nZSA9IHVzZUV2ZW50Q2FsbGJhY2soKG5leHRWYWx1ZSwgbmV4dE9wdGlvbikgPT4ge1xuICAgICAgICBzZXRJbm5lclZhbHVlKG5leHRWYWx1ZSk7XG4gICAgICAgIG9uQ2hhbmdlID09PSBudWxsIHx8IG9uQ2hhbmdlID09PSB2b2lkIDAgPyB2b2lkIDAgOiBvbkNoYW5nZShuZXh0VmFsdWUsIG5leHRPcHRpb24sIG5hbWUpO1xuICAgIH0pO1xuICAgIGNvbnN0IGhhbmRsZVNlbGVjdE9wdGlvbiA9IHVzZUV2ZW50Q2FsbGJhY2soKG9wdGlvbikgPT4ge1xuICAgICAgICB2YXIgX2EsIF9iO1xuICAgICAgICBpZiAob3B0aW9uLmRpc2FibGVkKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgaWYgKG11bHRpcGxlKSB7XG4gICAgICAgICAgICBjb25zdCBuZXh0VmFsdWUgPSB0b2dnbGVNdWx0aXBsZVZhbHVlKGlubmVyVmFsdWUsIG9wdGlvbi52YWx1ZSk7XG4gICAgICAgICAgICBjb25zdCBuZXh0T3B0aW9ucyA9IGdldE9wdGlvbnNCeVZhbHVlcyhhbGxGbGF0T3B0aW9ucywgbmV4dFZhbHVlKTtcbiAgICAgICAgICAgIGNvbW1pdENoYW5nZShuZXh0VmFsdWUsIG5leHRPcHRpb25zKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBpZiAoYWxsb3dEZXNlbGVjdCAmJiBpbm5lclZhbHVlID09PSBvcHRpb24udmFsdWUpIHtcbiAgICAgICAgICAgIGNvbW1pdENoYW5nZSh1bmRlZmluZWQsIHVuZGVmaW5lZCk7XG4gICAgICAgICAgICBoYW5kbGVPcGVuQ2hhbmdlKGZhbHNlKTtcbiAgICAgICAgICAgIG9uQmx1ciA9PT0gbnVsbCB8fCBvbkJsdXIgPT09IHZvaWQgMCA/IHZvaWQgMCA6IG9uQmx1cigpO1xuICAgICAgICAgICAgKF9hID0gdHJpZ2dlclJlZi5jdXJyZW50KSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EuZm9jdXMoeyBwcmV2ZW50U2Nyb2xsOiB0cnVlIH0pO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGNvbW1pdENoYW5nZShvcHRpb24udmFsdWUsIG9wdGlvbik7XG4gICAgICAgIGhhbmRsZU9wZW5DaGFuZ2UoZmFsc2UpO1xuICAgICAgICBvbkJsdXIgPT09IG51bGwgfHwgb25CbHVyID09PSB2b2lkIDAgPyB2b2lkIDAgOiBvbkJsdXIoKTtcbiAgICAgICAgKF9iID0gdHJpZ2dlclJlZi5jdXJyZW50KSA9PT0gbnVsbCB8fCBfYiA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2IuZm9jdXMoeyBwcmV2ZW50U2Nyb2xsOiB0cnVlIH0pO1xuICAgIH0pO1xuICAgIGNvbnN0IGhhbmRsZVJlbW92ZVNlbGVjdGVkVmFsdWUgPSB1c2VFdmVudENhbGxiYWNrKChvcHRpb25WYWx1ZSkgPT4ge1xuICAgICAgICBpZiAoIW11bHRpcGxlKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCFnZXRNdWx0aXBsZVZhbHVlKGlubmVyVmFsdWUpLmluY2x1ZGVzKG9wdGlvblZhbHVlKSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IG5leHRWYWx1ZSA9IHJlbW92ZU11bHRpcGxlVmFsdWUoaW5uZXJWYWx1ZSwgb3B0aW9uVmFsdWUpO1xuICAgICAgICBjb25zdCBuZXh0T3B0aW9ucyA9IGdldE9wdGlvbnNCeVZhbHVlcyhhbGxGbGF0T3B0aW9ucywgbmV4dFZhbHVlKTtcbiAgICAgICAgY29tbWl0Q2hhbmdlKG5leHRWYWx1ZSwgbmV4dE9wdGlvbnMpO1xuICAgIH0pO1xuICAgIGNvbnN0IGhhbmRsZVRyaWdnZXJLZXlEb3duID0gdXNlRXZlbnRDYWxsYmFjaygoZXZlbnQpID0+IHtcbiAgICAgICAgaWYgKGRpc2FibGVkKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGV2ZW50LmtleSA9PT0gS0VZQk9BUkQuRU5URVIgfHwgZXZlbnQua2V5ID09PSBLRVlCT0FSRC5TUEFDRSkge1xuICAgICAgICAgICAgaWYgKGlubmVyT3BlbiAmJlxuICAgICAgICAgICAgICAgIGFjdGl2ZUluZGV4ICE9PSBudWxsICYmXG4gICAgICAgICAgICAgICAgdmlzaWJsZUZsYXRPcHRpb25zW2FjdGl2ZUluZGV4XSAmJlxuICAgICAgICAgICAgICAgICF2aXNpYmxlRmxhdE9wdGlvbnNbYWN0aXZlSW5kZXhdLmRpc2FibGVkKSB7XG4gICAgICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgICAgICBoYW5kbGVTZWxlY3RPcHRpb24odmlzaWJsZUZsYXRPcHRpb25zW2FjdGl2ZUluZGV4XSk7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgIGhhbmRsZU9wZW5DaGFuZ2UoIWlubmVyT3Blbik7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGV2ZW50LmtleSA9PT0gS0VZQk9BUkQuQVJST1dfRE9XTiB8fCBldmVudC5rZXkgPT09IEtFWUJPQVJELkFSUk9XX1VQKSB7XG4gICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgaWYgKCFpbm5lck9wZW4pIHtcbiAgICAgICAgICAgICAgICBoYW5kbGVPcGVuQ2hhbmdlKHRydWUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfSk7XG4gICAgY29uc3QgaGFuZGxlSXRlbU1vdXNlRW50ZXIgPSB1c2VFdmVudENhbGxiYWNrKChpbmRleCkgPT4ge1xuICAgICAgICB2YXIgX2E7XG4gICAgICAgIGlmICghKChfYSA9IHZpc2libGVGbGF0T3B0aW9uc1tpbmRleF0pID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5kaXNhYmxlZCkpIHtcbiAgICAgICAgICAgIHNldEFjdGl2ZUluZGV4KGluZGV4KTtcbiAgICAgICAgfVxuICAgIH0pO1xuICAgIGNvbnN0IGhhbmRsZVRhZ1JlbW92ZU1vdXNlRG93biA9IHVzZUV2ZW50Q2FsbGJhY2soKGV2ZW50KSA9PiB7XG4gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgIH0pO1xuICAgIGNvbnN0IGhhbmRsZVRhZ1JlbW92ZUNsaWNrID0gdXNlRXZlbnRDYWxsYmFjaygoZXZlbnQpID0+IHtcbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgfSk7XG4gICAgY29uc3QgaGFuZGxlU2VhcmNoQmx1ciA9IHVzZUV2ZW50Q2FsbGJhY2soKGV2ZW50KSA9PiB7XG4gICAgICAgIG5vdGlmeUJsdXJJZk91dHNpZGUoZXZlbnQucmVsYXRlZFRhcmdldCwgZXZlbnQpO1xuICAgIH0pO1xuICAgIGNvbnN0IGhhbmRsZVNlYXJjaENoYW5nZSA9IHVzZUV2ZW50Q2FsbGJhY2soKG5leHRWYWx1ZSwgX2V2ZW50KSA9PiB7XG4gICAgICAgIHNldElubmVyU2VhcmNoVmFsdWUobmV4dFZhbHVlKTtcbiAgICAgICAgb25TZWFyY2hDaGFuZ2UgPT09IG51bGwgfHwgb25TZWFyY2hDaGFuZ2UgPT09IHZvaWQgMCA/IHZvaWQgMCA6IG9uU2VhcmNoQ2hhbmdlKG5leHRWYWx1ZSk7XG4gICAgfSk7XG4gICAgY29uc3QgZmluZEVuYWJsZWRJbmRleCA9IHVzZUV2ZW50Q2FsbGJhY2soKGN1cnJlbnQsIGRpcmVjdGlvbikgPT4ge1xuICAgICAgICB2YXIgX2E7XG4gICAgICAgIGNvbnN0IGxlbmd0aCA9IHZpc2libGVGbGF0T3B0aW9ucy5sZW5ndGg7XG4gICAgICAgIGlmIChsZW5ndGggPT09IDApIHtcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHN0YXJ0ID0gY3VycmVudCAhPT0gbnVsbCAmJiBjdXJyZW50ICE9PSB2b2lkIDAgPyBjdXJyZW50IDogKGRpcmVjdGlvbiA9PT0gMSA/IC0xIDogbGVuZ3RoKTtcbiAgICAgICAgZm9yIChsZXQgc3RlcCA9IDE7IHN0ZXAgPD0gbGVuZ3RoOyBzdGVwICs9IDEpIHtcbiAgICAgICAgICAgIGNvbnN0IGNhbmRpZGF0ZSA9ICgoc3RhcnQgKyBkaXJlY3Rpb24gKiBzdGVwKSAlIGxlbmd0aCArIGxlbmd0aCkgJSBsZW5ndGg7XG4gICAgICAgICAgICBpZiAoISgoX2EgPSB2aXNpYmxlRmxhdE9wdGlvbnNbY2FuZGlkYXRlXSkgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLmRpc2FibGVkKSkge1xuICAgICAgICAgICAgICAgIHJldHVybiBjYW5kaWRhdGU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgfSk7XG4gICAgY29uc3QgaGFuZGxlU2VhcmNoS2V5RG93biA9IHVzZUV2ZW50Q2FsbGJhY2soKGV2ZW50KSA9PiB7XG4gICAgICAgIHZhciBfYTtcbiAgICAgICAgaWYgKGV2ZW50LmtleSA9PT0gS0VZQk9BUkQuQVJST1dfRE9XTikge1xuICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgIGNvbnN0IG5leHQgPSBmaW5kRW5hYmxlZEluZGV4KGFjdGl2ZUluZGV4LCAxKTtcbiAgICAgICAgICAgIGlmIChuZXh0ICE9PSBudWxsKSB7XG4gICAgICAgICAgICAgICAgc2V0QWN0aXZlSW5kZXgobmV4dCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGV2ZW50LmtleSA9PT0gS0VZQk9BUkQuQVJST1dfVVApIHtcbiAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICBjb25zdCBwcmV2ID0gZmluZEVuYWJsZWRJbmRleChhY3RpdmVJbmRleCwgLTEpO1xuICAgICAgICAgICAgaWYgKHByZXYgIT09IG51bGwpIHtcbiAgICAgICAgICAgICAgICBzZXRBY3RpdmVJbmRleChwcmV2KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBpZiAoZXZlbnQua2V5ID09PSBLRVlCT0FSRC5FTlRFUikge1xuICAgICAgICAgICAgaWYgKGFjdGl2ZUluZGV4ICE9PSBudWxsICYmXG4gICAgICAgICAgICAgICAgdmlzaWJsZUZsYXRPcHRpb25zW2FjdGl2ZUluZGV4XSAmJlxuICAgICAgICAgICAgICAgICF2aXNpYmxlRmxhdE9wdGlvbnNbYWN0aXZlSW5kZXhdLmRpc2FibGVkKSB7XG4gICAgICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgICAgICBoYW5kbGVTZWxlY3RPcHRpb24odmlzaWJsZUZsYXRPcHRpb25zW2FjdGl2ZUluZGV4XSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGV2ZW50LmtleSA9PT0gS0VZQk9BUkQuRVNDQVBFKSB7XG4gICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgaGFuZGxlT3BlbkNoYW5nZShmYWxzZSk7XG4gICAgICAgICAgICAoX2EgPSB0cmlnZ2VyUmVmLmN1cnJlbnQpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5mb2N1cyh7IHByZXZlbnRTY3JvbGw6IHRydWUgfSk7XG4gICAgICAgIH1cbiAgICB9KTtcbiAgICBjb25zdCByZW5kZXJWYWx1ZU1ldGEgPSB7XG4gICAgICAgIGRpc2FibGVkLFxuICAgICAgICBtdWx0aXBsZSxcbiAgICAgICAgbWF4VmlzaWJsZVZhbHVlcyxcbiAgICAgICAgb3BlbjogaW5uZXJPcGVuLFxuICAgICAgICBwbGFjZWhvbGRlcjogIWhhc1NlbGVjdGlvbixcbiAgICAgICAgc2VsZWN0ZWRPcHRpb25zLFxuICAgIH07XG4gICAgY29uc3QgdmFsdWVMYWJlbENsYXNzID0gaGFzU2VsZWN0aW9uID8gJ3ZhbHVlJyA6ICdwbGFjZWhvbGRlcic7XG4gICAgY29uc3QgaXNNdWx0aXBsZVZhbHVlRmlsbGVkID0gKG11bHRpcGxlICYmXG4gICAgICAgIGhhc1NlbGVjdGlvbiAmJlxuICAgICAgICBtYXhWaXNpYmxlVmFsdWVzID09PSB1bmRlZmluZWQpO1xuICAgIGNvbnN0IHRyaWdnZXJDbGFzc05hbWUgPSBjbGFzc2VzKCd0cmlnZ2VyJywgam9pbkNscyhjbGFzc2VzKGB0cmlnZ2VyLSR7bm9ybWFsaXplZFNpemV9YCksIGNsYXNzZXMoYHRyaWdnZXItJHt2YXJpYW50fWApLCBpbm5lck9wZW4gJiYgY2xhc3NlcygndHJpZ2dlci1vcGVuJyksIGlzTXVsdGlwbGVWYWx1ZUZpbGxlZCAmJiBjbGFzc2VzKCd0cmlnZ2VyLW11bHRpcGxlLWZpbGxlZCcpLCBoYXNTZWxlY3Rpb24gPyBjbGFzc2VzKCd0cmlnZ2VyLWZpbGxlZCcpIDogY2xhc3NlcygndHJpZ2dlci1wbGFjZWhvbGRlcicpLCBzdGF0dXMgIT09ICdkZWZhdWx0JyAmJiBjbGFzc2VzKGB0cmlnZ2VyLSR7c3RhdHVzfWApLCBkaXNhYmxlZCAmJiBjbGFzc2VzKCd0cmlnZ2VyLWRpc2FibGVkJykpKTtcbiAgICBjb25zdCBpY29uU2l6ZSA9IG5vcm1hbGl6ZWRTaXplID09PSAnc21hbGwnID8gMTYgOiAyMDtcbiAgICBjb25zdCBhY3RpdmVPcHRpb25JZCA9IHNlYXJjaGFibGUgJiYgaW5uZXJPcGVuICYmIGFjdGl2ZUluZGV4ICE9PSBudWxsXG4gICAgICAgID8gYCR7b3B0aW9uSWRQcmVmaXh9LSR7YWN0aXZlSW5kZXh9YFxuICAgICAgICA6IHVuZGVmaW5lZDtcbiAgICBjb25zdCBmbG9hdGluZ0FyaWFMYWJlbGxlZEJ5ID0gYXJpYUxhYmVsbGVkQnkgIT09IG51bGwgJiYgYXJpYUxhYmVsbGVkQnkgIT09IHZvaWQgMCA/IGFyaWFMYWJlbGxlZEJ5IDogKGxhYmVsID8gbGFiZWxJZCA6IHVuZGVmaW5lZCk7XG4gICAgY29uc3QgZGVzY3JpYmVkQnlJZHMgPSBbXG4gICAgICAgIGRlc2NyaXB0aW9uID8gZGVzY3JpcHRpb25JZCA6IG51bGwsXG4gICAgICAgIGZlZWRiYWNrID8gZmVlZGJhY2tJZCA6IG51bGwsXG4gICAgXS5maWx0ZXIoQm9vbGVhbikuam9pbignICcpIHx8IHVuZGVmaW5lZDtcbiAgICByZXR1cm4gKF9qc3hzKFNlbGVjdEZpZWxkU2hlbGwsIHsgY2xhc3NlczogY2xhc3NlcywgY2xhc3NOYW1lOiBjbGFzc05hbWUsIHNpemU6IG5vcm1hbGl6ZWRTaXplLCB2YXJpYW50OiB2YXJpYW50LCBzdGF0dXM6IHN0YXR1cywgZGlzYWJsZWQ6IGRpc2FibGVkLCBsb2FkaW5nOiBsb2FkaW5nLCBsYWJlbDogbGFiZWwsIGluZm86IGluZm8sIGRlc2NyaXB0aW9uOiBkZXNjcmlwdGlvbiwgZmVlZGJhY2s6IGZlZWRiYWNrLCByZXF1aXJlZDogcmVxdWlyZWQsIGxhYmVsSWQ6IGxhYmVsSWQsIGRlc2NyaXB0aW9uSWQ6IGRlc2NyaXB0aW9uSWQsIGZlZWRiYWNrSWQ6IGZlZWRiYWNrSWQsIGNoaWxkcmVuOiBbX2pzeHMoXCJidXR0b25cIiwgT2JqZWN0LmFzc2lnbih7fSwgZ2V0UmVmZXJlbmNlUHJvcHMoe1xuICAgICAgICAgICAgICAgIHJlZjogc2V0UmVmZXJlbmNlLFxuICAgICAgICAgICAgICAgIGlkOiB0cmlnZ2VySWQsXG4gICAgICAgICAgICAgICAgdHlwZTogJ2J1dHRvbicsXG4gICAgICAgICAgICAgICAgbmFtZSxcbiAgICAgICAgICAgICAgICBkaXNhYmxlZCxcbiAgICAgICAgICAgICAgICBjbGFzc05hbWU6IHRyaWdnZXJDbGFzc05hbWUsXG4gICAgICAgICAgICAgICAgb25LZXlEb3duOiBoYW5kbGVUcmlnZ2VyS2V5RG93bixcbiAgICAgICAgICAgICAgICBvbkJsdXI6IGhhbmRsZVRyaWdnZXJCbHVyLFxuICAgICAgICAgICAgICAgICdhcmlhLWxhYmVsJzogYXJpYUxhYmVsLFxuICAgICAgICAgICAgICAgICdhcmlhLWxhYmVsbGVkYnknOiBmbG9hdGluZ0FyaWFMYWJlbGxlZEJ5LFxuICAgICAgICAgICAgICAgICdhcmlhLWRlc2NyaWJlZGJ5JzogZGVzY3JpYmVkQnlJZHMsXG4gICAgICAgICAgICB9KSwgeyBjaGlsZHJlbjogW19qc3hzKFwic3BhblwiLCB7IGNsYXNzTmFtZTogY2xhc3NlcygnY29udGVudCcpLCBjaGlsZHJlbjogW3ByZWZpeCAmJiBfanN4KFwic3BhblwiLCB7IGNsYXNzTmFtZTogY2xhc3NlcygncHJlZml4JyksIGNoaWxkcmVuOiBwcmVmaXggfSksIF9qc3goXCJzcGFuXCIsIHsgY2xhc3NOYW1lOiBjbGFzc2VzKHZhbHVlTGFiZWxDbGFzcywgam9pbkNscyhjbGFzc2VzKGAke3ZhbHVlTGFiZWxDbGFzc30tJHtub3JtYWxpemVkU2l6ZX1gKSwgaXNNdWx0aXBsZVZhbHVlRmlsbGVkICYmIGNsYXNzZXMoYCR7dmFsdWVMYWJlbENsYXNzfS1tdWx0aXBsZWApLCBkaXNhYmxlZCAmJiBjbGFzc2VzKGAke3ZhbHVlTGFiZWxDbGFzc30tZGlzYWJsZWRgKSkpLCBjaGlsZHJlbjogX2pzeChTZWxlY3RWYWx1ZUNvbnRlbnQsIHsgY2xhc3NlczogY2xhc3NlcywgaGFzU2VsZWN0aW9uOiBoYXNTZWxlY3Rpb24sIG11bHRpcGxlOiBtdWx0aXBsZSwgcGxhY2Vob2xkZXI6IHBsYWNlaG9sZGVyLCByZW5kZXJWYWx1ZTogcmVuZGVyVmFsdWUsIHJlbmRlclZhbHVlTWV0YTogcmVuZGVyVmFsdWVNZXRhLCBzZWxlY3RlZE9wdGlvbnM6IHNlbGVjdGVkT3B0aW9ucywgbWF4VmlzaWJsZVZhbHVlczogbWF4VmlzaWJsZVZhbHVlcywgb25SZW1vdmU6IGhhbmRsZVJlbW92ZVNlbGVjdGVkVmFsdWUsIG9uUmVtb3ZlQ2xpY2s6IGhhbmRsZVRhZ1JlbW92ZUNsaWNrLCBvblJlbW92ZU1vdXNlRG93bjogaGFuZGxlVGFnUmVtb3ZlTW91c2VEb3duIH0pIH0pXSB9KSwgX2pzeChcInNwYW5cIiwgeyBjbGFzc05hbWU6IGNsYXNzZXMoJ2ljb24nKSwgY2hpbGRyZW46IGxvYWRpbmcgPyAoX2pzeChTcGlubmVyLCB7IHNpemU6IGljb25TaXplLCBzdHJva2VXaWR0aDogMiB9KSkgOiAoX2pzeChJY29ucywgeyBuYW1lOiBpbm5lck9wZW4gPyAnY2hldnJvblVwJyA6ICdjaGV2cm9uRG93bicsIHNpemU6IGljb25TaXplLCBjb2xvcjogXCJjdXJyZW50Q29sb3JcIiB9KSkgfSldIH0pKSwgaXNNb3VudGVkICYmICFkaXNhYmxlZCAmJiAoKCkgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IHBhbmVsTm9kZSA9IChfanN4KEZsb2F0aW5nRm9jdXNNYW5hZ2VyLCB7IGNvbnRleHQ6IGNvbnRleHQsIG1vZGFsOiBmYWxzZSwgaW5pdGlhbEZvY3VzOiAtMSwgcmV0dXJuRm9jdXM6IGZhbHNlLCBjaGlsZHJlbjogX2pzeHMoXCJkaXZcIiwgT2JqZWN0LmFzc2lnbih7fSwgZ2V0RmxvYXRpbmdQcm9wcyh7XG4gICAgICAgICAgICAgICAgICAgICAgICByZWY6IHNldEZsb2F0aW5nLFxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lOiBqb2luQ2xzKGNsYXNzZXMoJ3BhbmVsJyksIHBhbmVsQ2xhc3NOYW1lKSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHN0eWxlOiBPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sIGZsb2F0aW5nU3R5bGVzKSwgdHJhbnNpdGlvblN0eWxlcyksXG4gICAgICAgICAgICAgICAgICAgIH0pLCB7IGNoaWxkcmVuOiBbc2VhcmNoYWJsZSAmJiAoX2pzeChTZWxlY3RTZWFyY2hDb250cm9sLCB7IHJlZjogc2V0U2VhcmNoSW5wdXRSZWYsIGNsYXNzZXM6IGNsYXNzZXMsIHNpemU6IG5vcm1hbGl6ZWRTaXplLCBwbGFjZWhvbGRlcjogc2VhcmNoUGxhY2Vob2xkZXIsIHZhbHVlOiBpbm5lclNlYXJjaFZhbHVlLCBhY3RpdmVEZXNjZW5kYW50OiBhY3RpdmVPcHRpb25JZCwgb25CbHVyOiBoYW5kbGVTZWFyY2hCbHVyLCBvbkNoYW5nZTogaGFuZGxlU2VhcmNoQ2hhbmdlLCBvbktleURvd246IGhhbmRsZVNlYXJjaEtleURvd24gfSkpLCBfanN4KFwiZGl2XCIsIHsgY2xhc3NOYW1lOiBjbGFzc2VzKCdwYW5lbC1ib2R5JyksIGNoaWxkcmVuOiB2aXNpYmxlRmxhdE9wdGlvbnMubGVuZ3RoID09PSAwID8gKF9qc3goXCJkaXZcIiwgeyBjbGFzc05hbWU6IGNsYXNzZXMoJ2VtcHR5JyksIGNoaWxkcmVuOiBfanN4KFR5cG9ncmFwaHlCb2R5LCB7IHNpemU6IFNFTEVDVF9UWVBPR1JBUEhZLmVtcHR5LnNpemUsIGNvbG9yOiBTRUxFQ1RfVFlQT0dSQVBIWS5lbXB0eS5jb2xvciwgY2hpbGRyZW46IGVtcHR5Q29udGVudCB9KSB9KSkgOiAoKCgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBmbGF0SW5kZXggPSAwO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHZpc2libGVPcHRpb25Hcm91cHMubWFwKChncm91cCkgPT4gKF9qc3hzKFwiZGl2XCIsIHsgY2xhc3NOYW1lOiBjbGFzc2VzKCdncm91cCcpLCBjaGlsZHJlbjogW2dyb3VwLmxhYmVsICYmIChfanN4KFwiZGl2XCIsIHsgY2xhc3NOYW1lOiBjbGFzc2VzKCdncm91cC1sYWJlbCcpLCBjaGlsZHJlbjogX2pzeChUeXBvZ3JhcGh5TGFiZWwsIHsgc2l6ZTogU0VMRUNUX1RZUE9HUkFQSFkuZ3JvdXBMYWJlbC5zaXplLCBzdHJvbmc6IHRydWUsIGNoaWxkcmVuOiBncm91cC5sYWJlbCB9KSB9KSksIGdyb3VwLm9wdGlvbnMubWFwKChvcHRpb24pID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IG9wdGlvbkZsYXRJbmRleCA9IGZsYXRJbmRleDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZsYXRJbmRleCArPSAxO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgc2VsZWN0ZWQgPSBpc09wdGlvblNlbGVjdGVkKGlubmVyVmFsdWUsIG11bHRpcGxlLCBvcHRpb24udmFsdWUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgYWN0aXZlID0gYWN0aXZlSW5kZXggPT09IG9wdGlvbkZsYXRJbmRleDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IG9wdGlvbk1ldGEgPSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWN0aXZlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpc2FibGVkOiAhIW9wdGlvbi5kaXNhYmxlZCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbmRleDogb3B0aW9uRmxhdEluZGV4LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG11bHRpcGxlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9wZW46IGlubmVyT3BlbixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxlY3RlZCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaXN0Q29udGVudFJlZi5jdXJyZW50W29wdGlvbkZsYXRJbmRleF0gPSBleHRyYWN0T3B0aW9uVGV4dChvcHRpb24pO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIChfanN4KFwiYnV0dG9uXCIsIE9iamVjdC5hc3NpZ24oe30sIGdldEl0ZW1Qcm9wcyh7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVmKG5vZGUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlzdFJlZi5jdXJyZW50W29wdGlvbkZsYXRJbmRleF0gPSBub2RlO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWQ6IGAke29wdGlvbklkUHJlZml4fS0ke29wdGlvbkZsYXRJbmRleH1gLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU6ICdidXR0b24nLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJvbGU6ICdvcHRpb24nLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZTogY2xhc3Nlcygnb3B0aW9uJywgam9pbkNscyhhY3RpdmUgJiYgY2xhc3Nlcygnb3B0aW9uLWFjdGl2ZScpLCBzZWxlY3RlZCAmJiBjbGFzc2VzKCdvcHRpb24tc2VsZWN0ZWQnKSwgb3B0aW9uLmRpc2FibGVkICYmIGNsYXNzZXMoJ29wdGlvbi1kaXNhYmxlZCcpLCBvcHRpb25DbGFzc05hbWUpKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXNhYmxlZDogb3B0aW9uLmRpc2FibGVkLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdhcmlhLXNlbGVjdGVkJzogc2VsZWN0ZWQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25DbGljazogKGV2ZW50KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZVNlbGVjdE9wdGlvbihvcHRpb24pO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25Nb3VzZUVudGVyOiAoKSA9PiBoYW5kbGVJdGVtTW91c2VFbnRlcihvcHRpb25GbGF0SW5kZXgpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uQmx1cjogaGFuZGxlT3B0aW9uQmx1cixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pLCB7IGNoaWxkcmVuOiByZW5kZXJPcHRpb24gPyAocmVuZGVyT3B0aW9uKG9wdGlvbiwgb3B0aW9uTWV0YSkpIDogKF9qc3goU2VsZWN0T3B0aW9uQ29udGVudCwgeyBjbGFzc2VzOiBjbGFzc2VzLCBvcHRpb246IG9wdGlvbiwgc2VsZWN0ZWQ6IHNlbGVjdGVkLCBjb250ZW50OiByZW5kZXJPcHRpb25Db250ZW50ID09PSBudWxsIHx8IHJlbmRlck9wdGlvbkNvbnRlbnQgPT09IHZvaWQgMCA/IHZvaWQgMCA6IHJlbmRlck9wdGlvbkNvbnRlbnQob3B0aW9uLCBvcHRpb25NZXRhKSB9KSkgfSksIGAke2dyb3VwLmtleX0tJHtvcHRpb24udmFsdWV9YCkpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KV0gfSwgZ3JvdXAua2V5KSkpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KSgpKSB9KSwgcGFuZWxGb290ZXIgIT0gbnVsbCAmJiAoX2pzeChcImRpdlwiLCB7IGNsYXNzTmFtZTogY2xhc3NlcygncGFuZWwtZm9vdGVyJyksIGNoaWxkcmVuOiBwYW5lbEZvb3RlciB9KSldIH0pKSB9KSk7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHBvcnRhbCA/IF9qc3goRmxvYXRpbmdQb3J0YWwsIHsgY2hpbGRyZW46IHBhbmVsTm9kZSB9KSA6IHBhbmVsTm9kZTtcbiAgICAgICAgICAgIH0pKCldIH0pKTtcbn07XG5TZWxlY3QuZGlzcGxheU5hbWUgPSAnU2VsZWN0JztcbmV4cG9ydCBkZWZhdWx0IG1lbW8oU2VsZWN0KTsiLG51bGxdLCJzb3VyY2VSb290IjoiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjIn0=