Completed
Push — master ( f2008e...da65df )
by cam
02:08
created
ecrire/tests/Filtre/AntispamTest.php 1 patch
Indentation   +7 added lines, -7 removed lines patch added patch discarded remove patch
@@ -12,12 +12,12 @@
 block discarded – undo
12 12
 
13 13
 class AntispamTest extends TestCase
14 14
 {
15
-	public static function setUpBeforeClass(): void {
16
-		find_in_path('inc/filtres.php', '', true);
17
-	}
15
+    public static function setUpBeforeClass(): void {
16
+        find_in_path('inc/filtres.php', '', true);
17
+    }
18 18
 
19
-	public function testFiltresAntispam(): void {
20
-		$actual = antispam('[email protected]');
21
-		$this->assertStringNotContainsString('@', $actual);
22
-	}
19
+    public function testFiltresAntispam(): void {
20
+        $actual = antispam('[email protected]');
21
+        $this->assertStringNotContainsString('@', $actual);
22
+    }
23 23
 }
Please login to merge, or discard this patch.
ecrire/tests/Filtre/ChercherFiltreTest.php 1 patch
Indentation   +458 added lines, -458 removed lines patch added patch discarded remove patch
@@ -13,464 +13,464 @@
 block discarded – undo
13 13
 
14 14
 class ChercherFiltreTest extends TestCase
15 15
 {
16
-	public static function setUpBeforeClass(): void {
17
-		find_in_path('inc/filtres.php', '', true);
18
-	}
16
+    public static function setUpBeforeClass(): void {
17
+        find_in_path('inc/filtres.php', '', true);
18
+    }
19 19
 
20
-	#[DataProvider('providerFiltresChercherFiltre')]
21
-	public function testFiltresChercherFiltre($expected, ...$args): void {
22
-		$actual = chercher_filtre(...$args);
23
-		$this->assertSame($expected, $actual);
24
-	}
20
+    #[DataProvider('providerFiltresChercherFiltre')]
21
+    public function testFiltresChercherFiltre($expected, ...$args): void {
22
+        $actual = chercher_filtre(...$args);
23
+        $this->assertSame($expected, $actual);
24
+    }
25 25
 
26
-	public static function providerFiltresChercherFiltre(): array {
27
-		return [
28
-			0 => [
29
-				0 => 'filtre_identite_dist',
30
-				1 => 'identite',
31
-			],
32
-			1 => [
33
-				0 => 'identite',
34
-				1 => 'zzhkezhkf',
35
-				2 => 'identite',
36
-			],
37
-			3 => [
38
-				0 => 'identite',
39
-				1 => null,
40
-				2 => 'identite',
41
-			],
42
-			4 => [
43
-				0 => 'filtre_text_dist',
44
-				1 => 'text',
45
-			],
46
-			5 => [
47
-				0 => 'filtre_implode_dist',
48
-				1 => 'implode',
49
-			],
50
-			6 => [
51
-				0 => 'filtre_image_dist',
52
-				1 => 'image/jpeg',
53
-			],
54
-			7 => [
55
-				0 => 'filtre_image_dist',
56
-				1 => 'image/png',
57
-			],
58
-			8 => [
59
-				0 => 'filtre_image_dist',
60
-				1 => 'image/gif',
61
-			],
62
-			9 => [
63
-				0 => 'filtre_image_dist',
64
-				1 => 'image/x-ms-bmp',
65
-			],
66
-			10 => [
67
-				0 => 'filtre_image_dist',
68
-				1 => 'image/tiff',
69
-			],
70
-			11 => [
71
-				0 => 'filtre_audio_dist',
72
-				1 => 'audio/x-aiff',
73
-			],
74
-			12 => [
75
-				0 => 'filtre_video_dist',
76
-				1 => 'video/x-ms-asf',
77
-			],
78
-			13 => [
79
-				0 => 'filtre_video_dist',
80
-				1 => 'video/x-msvideo',
81
-			],
82
-			14 => [
83
-				0 => 'filtre_application_dist',
84
-				1 => 'application/annodex',
85
-			],
86
-			15 => [
87
-				0 => 'filtre_audio_dist',
88
-				1 => 'audio/annodex',
89
-			],
90
-			16 => [
91
-				0 => 'filtre_video_dist',
92
-				1 => 'video/annodex',
93
-			],
94
-			17 => [
95
-				0 => 'filtre_video_dist',
96
-				1 => 'video/x-dv',
97
-			],
98
-			18 => [
99
-				0 => 'filtre_audio_dist',
100
-				1 => 'audio/x-flac',
101
-			],
102
-			19 => [
103
-				0 => 'filtre_video_dist',
104
-				1 => 'video/x-flv',
105
-			],
106
-			20 => [
107
-				0 => 'filtre_audio_dist',
108
-				1 => 'audio/mp4a-latm',
109
-			],
110
-			23 => [
111
-				0 => 'filtre_video_dist',
112
-				1 => 'video/vnd.mpegurl',
113
-			],
114
-			24 => [
115
-				0 => 'filtre_video_dist',
116
-				1 => 'video/x-m4v',
117
-			],
118
-			25 => [
119
-				0 => 'filtre_audio_dist',
120
-				1 => 'audio/midi',
121
-			],
122
-			26 => [
123
-				0 => 'filtre_audio_dist',
124
-				1 => 'audio/mka',
125
-			],
126
-			27 => [
127
-				0 => 'filtre_video_dist',
128
-				1 => 'video/mkv',
129
-			],
130
-			28 => [
131
-				0 => 'filtre_video_dist',
132
-				1 => 'video/x-mng',
133
-			],
134
-			29 => [
135
-				0 => 'filtre_video_dist',
136
-				1 => 'video/quicktime',
137
-			],
138
-			30 => [
139
-				0 => 'filtre_audio_dist',
140
-				1 => 'audio/mpeg',
141
-			],
142
-			31 => [
143
-				0 => 'filtre_application_dist',
144
-				1 => 'application/mp4',
145
-			],
146
-			32 => [
147
-				0 => 'filtre_video_dist',
148
-				1 => 'video/mpeg',
149
-			],
150
-			33 => [
151
-				0 => 'filtre_audio_dist',
152
-				1 => 'audio/ogg',
153
-			],
154
-			34 => [
155
-				0 => 'filtre_audio_dist',
156
-				1 => 'audio/ogg ',
157
-			],
158
-			35 => [
159
-				0 => 'filtre_video_dist',
160
-				1 => 'video/ogg ',
161
-			],
162
-			36 => [
163
-				0 => 'filtre_application_dist',
164
-				1 => 'application/ogg ',
165
-			],
166
-			38 => [
167
-				0 => 'filtre_audio_x_pn_realaudio',
168
-				1 => 'audio/x-pn-realaudio',
169
-			],
170
-			42 => [
171
-				0 => 'filtre_image_dist',
172
-				1 => 'image/svg+xml',
173
-			],
174
-			43 => [
175
-				0 => 'filtre_application_dist',
176
-				1 => 'application/x-shockwave-flash',
177
-			],
178
-			44 => [
179
-				0 => 'filtre_audio_dist',
180
-				1 => 'audio/x-wav',
181
-			],
182
-			45 => [
183
-				0 => 'filtre_video_dist',
184
-				1 => 'video/x-ms-wmv',
185
-			],
186
-			46 => [
187
-				0 => 'filtre_video_dist',
188
-				1 => 'video/3gpp',
189
-			],
190
-			47 => [
191
-				0 => 'filtre_application_dist',
192
-				1 => 'application/illustrator',
193
-			],
194
-			48 => [
195
-				0 => 'filtre_application_dist',
196
-				1 => 'application/abiword',
197
-			],
198
-			49 => [
199
-				0 => 'filtre_application_dist',
200
-				1 => 'application/octet-stream',
201
-			],
202
-			50 => [
203
-				0 => 'filtre_application_dist',
204
-				1 => 'application/x-blender',
205
-			],
206
-			51 => [
207
-				0 => 'filtre_application_dist',
208
-				1 => 'application/x-bzip2',
209
-			],
210
-			52 => [
211
-				0 => 'filtre_text_dist',
212
-				1 => 'text/x-csrc',
213
-			],
214
-			53 => [
215
-				0 => 'filtre_text_dist',
216
-				1 => 'text/css',
217
-			],
218
-			54 => [
219
-				0 => 'filtre_text_csv_dist',
220
-				1 => 'text/csv',
221
-			],
222
-			55 => [
223
-				0 => 'filtre_application_dist',
224
-				1 => 'application/x-debian-package',
225
-			],
226
-			56 => [
227
-				0 => 'filtre_application_dist',
228
-				1 => 'application/msword',
229
-			],
230
-			57 => [
231
-				0 => 'filtre_image_dist',
232
-				1 => 'image/vnd.djvu',
233
-			],
234
-			58 => [
235
-				0 => 'filtre_application_dist',
236
-				1 => 'application/x-dvi',
237
-			],
238
-			59 => [
239
-				0 => 'filtre_application_dist',
240
-				1 => 'application/postscript',
241
-			],
242
-			60 => [
243
-				0 => 'filtre_application_dist',
244
-				1 => 'application/x-gzip',
245
-			],
246
-			61 => [
247
-				0 => 'filtre_text_dist',
248
-				1 => 'text/x-chdr',
249
-			],
250
-			62 => [
251
-				0 => 'filtre_text_html_dist',
252
-				1 => 'text/html',
253
-			],
254
-			63 => [
255
-				0 => 'filtre_application_dist',
256
-				1 => 'application/vnd.google-earth.kml+xml',
257
-			],
258
-			64 => [
259
-				0 => 'filtre_application_dist',
260
-				1 => 'application/vnd.google-earth.kmz',
261
-			],
262
-			65 => [
263
-				0 => 'filtre_text_dist',
264
-				1 => 'text/x-pascal',
265
-			],
266
-			66 => [
267
-				0 => 'filtre_application_dist',
268
-				1 => 'application/pdf',
269
-			],
270
-			67 => [
271
-				0 => 'filtre_application_dist',
272
-				1 => 'application/x-chess-pgn',
273
-			],
274
-			68 => [
275
-				0 => 'filtre_application_dist',
276
-				1 => 'application/vnd.ms-powerpoint',
277
-			],
278
-			70 => [
279
-				0 => 'filtre_image_dist',
280
-				1 => 'image/x-photoshop',
281
-			],
282
-			71 => [
283
-				0 => 'filtre_application_dist',
284
-				1 => 'application/x-redhat-package-manager',
285
-			],
286
-			72 => [
287
-				0 => 'filtre_application_dist',
288
-				1 => 'application/rtf',
289
-			],
290
-			73 => [
291
-				0 => 'filtre_application_dist',
292
-				1 => 'application/vnd.stardivision.impress',
293
-			],
294
-			74 => [
295
-				0 => 'filtre_application_dist',
296
-				1 => 'application/vnd.stardivision.writer',
297
-			],
298
-			75 => [
299
-				0 => 'filtre_application_dist',
300
-				1 => 'application/x-stuffit',
301
-			],
302
-			76 => [
303
-				0 => 'filtre_application_dist',
304
-				1 => 'application/vnd.sun.xml.calc',
305
-			],
306
-			77 => [
307
-				0 => 'filtre_application_dist',
308
-				1 => 'application/vnd.sun.xml.impress',
309
-			],
310
-			78 => [
311
-				0 => 'filtre_application_dist',
312
-				1 => 'application/vnd.sun.xml.writer',
313
-			],
314
-			79 => [
315
-				0 => 'filtre_text_dist',
316
-				1 => 'text/x-tex',
317
-			],
318
-			80 => [
319
-				0 => 'filtre_application_dist',
320
-				1 => 'application/x-gtar',
321
-			],
322
-			81 => [
323
-				0 => 'filtre_application_dist',
324
-				1 => 'application/x-bittorrent',
325
-			],
326
-			82 => [
327
-				0 => 'filtre_application_dist',
328
-				1 => 'application/x-font-ttf',
329
-			],
330
-			83 => [
331
-				0 => 'filtre_text_dist',
332
-				1 => 'text/plain',
333
-			],
334
-			84 => [
335
-				0 => 'filtre_application_dist',
336
-				1 => 'application/x-xcf',
337
-			],
338
-			85 => [
339
-				0 => 'filtre_application_dist',
340
-				1 => 'application/vnd.ms-excel',
341
-			],
342
-			86 => [
343
-				0 => 'filtre_application_dist',
344
-				1 => 'application/xspf+xml',
345
-			],
346
-			87 => [
347
-				0 => 'filtre_application_dist',
348
-				1 => 'application/xml',
349
-			],
350
-			88 => [
351
-				0 => 'filtre_application_dist',
352
-				1 => 'application/zip',
353
-			],
354
-			89 => [
355
-				0 => 'filtre_application_dist',
356
-				1 => 'application/vnd.oasis.opendocument.text',
357
-			],
358
-			90 => [
359
-				0 => 'filtre_application_dist',
360
-				1 => 'application/vnd.oasis.opendocument.spreadsheet',
361
-			],
362
-			91 => [
363
-				0 => 'filtre_application_dist',
364
-				1 => 'application/vnd.oasis.opendocument.presentation',
365
-			],
366
-			92 => [
367
-				0 => 'filtre_application_dist',
368
-				1 => 'application/vnd.oasis.opendocument.graphics',
369
-			],
370
-			93 => [
371
-				0 => 'filtre_application_dist',
372
-				1 => 'application/vnd.oasis.opendocument.chart',
373
-			],
374
-			94 => [
375
-				0 => 'filtre_application_dist',
376
-				1 => 'application/vnd.oasis.opendocument.formula',
377
-			],
378
-			95 => [
379
-				0 => 'filtre_application_dist',
380
-				1 => 'application/vnd.oasis.opendocument.database',
381
-			],
382
-			96 => [
383
-				0 => 'filtre_application_dist',
384
-				1 => 'application/vnd.oasis.opendocument.image',
385
-			],
386
-			97 => [
387
-				0 => 'filtre_application_dist',
388
-				1 => 'application/vnd.oasis.opendocument.text-master',
389
-			],
390
-			98 => [
391
-				0 => 'filtre_application_dist',
392
-				1 => 'application/vnd.oasis.opendocument.text-template',
393
-			],
394
-			99 => [
395
-				0 => 'filtre_application_dist',
396
-				1 => 'application/vnd.oasis.opendocument.spreadsheet-template',
397
-			],
398
-			100 => [
399
-				0 => 'filtre_application_dist',
400
-				1 => 'application/vnd.oasis.opendocument.presentation-template',
401
-			],
402
-			101 => [
403
-				0 => 'filtre_application_dist',
404
-				1 => 'application/vnd.oasis.opendocument.graphics-template',
405
-			],
406
-			104 => [
407
-				0 => 'filtre_application_dist',
408
-				1 => 'application/vnd.ms-word.document.macroEnabled.12',
409
-			],
410
-			105 => [
411
-				0 => 'filtre_application_dist',
412
-				1 => 'application/vnd.openxmlformats-officedocument.wordprocessingml.document',
413
-			],
414
-			106 => [
415
-				0 => 'filtre_application_dist',
416
-				1 => 'application/vnd.ms-word.template.macroEnabled.12',
417
-			],
418
-			107 => [
419
-				0 => 'filtre_application_dist',
420
-				1 => 'application/vnd.openxmlformats-officedocument.wordprocessingml.template',
421
-			],
422
-			108 => [
423
-				0 => 'filtre_application_dist',
424
-				1 => 'application/vnd.ms-powerpoint.template.macroEnabled.12',
425
-			],
426
-			109 => [
427
-				0 => 'filtre_application_dist',
428
-				1 => 'application/vnd.openxmlformats-officedocument.presentationml.template',
429
-			],
430
-			110 => [
431
-				0 => 'filtre_application_dist',
432
-				1 => 'application/vnd.ms-powerpoint.addin.macroEnabled.12',
433
-			],
434
-			111 => [
435
-				0 => 'filtre_application_dist',
436
-				1 => 'application/vnd.ms-powerpoint.slideshow.macroEnabled.12',
437
-			],
438
-			112 => [
439
-				0 => 'filtre_application_dist',
440
-				1 => 'application/vnd.openxmlformats-officedocument.presentationml.slideshow',
441
-			],
442
-			113 => [
443
-				0 => 'filtre_application_dist',
444
-				1 => 'application/vnd.ms-powerpoint.presentation.macroEnabled.12',
445
-			],
446
-			114 => [
447
-				0 => 'filtre_application_dist',
448
-				1 => 'application/vnd.openxmlformats-officedocument.presentationml.presentation',
449
-			],
450
-			115 => [
451
-				0 => 'filtre_application_dist',
452
-				1 => 'application/vnd.ms-excel.addin.macroEnabled.12',
453
-			],
454
-			116 => [
455
-				0 => 'filtre_application_dist',
456
-				1 => 'application/vnd.ms-excel.sheet.binary.macroEnabled.12',
457
-			],
458
-			117 => [
459
-				0 => 'filtre_application_dist',
460
-				1 => 'application/vnd.ms-excel.sheet.macroEnabled.12',
461
-			],
462
-			118 => [
463
-				0 => 'filtre_application_dist',
464
-				1 => 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet',
465
-			],
466
-			119 => [
467
-				0 => 'filtre_application_dist',
468
-				1 => 'application/vnd.ms-excel.template.macroEnabled.12',
469
-			],
470
-			120 => [
471
-				0 => 'filtre_application_dist',
472
-				1 => 'application/vnd.openxmlformats-officedocument.spreadsheetml.template',
473
-			],
474
-		];
475
-	}
26
+    public static function providerFiltresChercherFiltre(): array {
27
+        return [
28
+            0 => [
29
+                0 => 'filtre_identite_dist',
30
+                1 => 'identite',
31
+            ],
32
+            1 => [
33
+                0 => 'identite',
34
+                1 => 'zzhkezhkf',
35
+                2 => 'identite',
36
+            ],
37
+            3 => [
38
+                0 => 'identite',
39
+                1 => null,
40
+                2 => 'identite',
41
+            ],
42
+            4 => [
43
+                0 => 'filtre_text_dist',
44
+                1 => 'text',
45
+            ],
46
+            5 => [
47
+                0 => 'filtre_implode_dist',
48
+                1 => 'implode',
49
+            ],
50
+            6 => [
51
+                0 => 'filtre_image_dist',
52
+                1 => 'image/jpeg',
53
+            ],
54
+            7 => [
55
+                0 => 'filtre_image_dist',
56
+                1 => 'image/png',
57
+            ],
58
+            8 => [
59
+                0 => 'filtre_image_dist',
60
+                1 => 'image/gif',
61
+            ],
62
+            9 => [
63
+                0 => 'filtre_image_dist',
64
+                1 => 'image/x-ms-bmp',
65
+            ],
66
+            10 => [
67
+                0 => 'filtre_image_dist',
68
+                1 => 'image/tiff',
69
+            ],
70
+            11 => [
71
+                0 => 'filtre_audio_dist',
72
+                1 => 'audio/x-aiff',
73
+            ],
74
+            12 => [
75
+                0 => 'filtre_video_dist',
76
+                1 => 'video/x-ms-asf',
77
+            ],
78
+            13 => [
79
+                0 => 'filtre_video_dist',
80
+                1 => 'video/x-msvideo',
81
+            ],
82
+            14 => [
83
+                0 => 'filtre_application_dist',
84
+                1 => 'application/annodex',
85
+            ],
86
+            15 => [
87
+                0 => 'filtre_audio_dist',
88
+                1 => 'audio/annodex',
89
+            ],
90
+            16 => [
91
+                0 => 'filtre_video_dist',
92
+                1 => 'video/annodex',
93
+            ],
94
+            17 => [
95
+                0 => 'filtre_video_dist',
96
+                1 => 'video/x-dv',
97
+            ],
98
+            18 => [
99
+                0 => 'filtre_audio_dist',
100
+                1 => 'audio/x-flac',
101
+            ],
102
+            19 => [
103
+                0 => 'filtre_video_dist',
104
+                1 => 'video/x-flv',
105
+            ],
106
+            20 => [
107
+                0 => 'filtre_audio_dist',
108
+                1 => 'audio/mp4a-latm',
109
+            ],
110
+            23 => [
111
+                0 => 'filtre_video_dist',
112
+                1 => 'video/vnd.mpegurl',
113
+            ],
114
+            24 => [
115
+                0 => 'filtre_video_dist',
116
+                1 => 'video/x-m4v',
117
+            ],
118
+            25 => [
119
+                0 => 'filtre_audio_dist',
120
+                1 => 'audio/midi',
121
+            ],
122
+            26 => [
123
+                0 => 'filtre_audio_dist',
124
+                1 => 'audio/mka',
125
+            ],
126
+            27 => [
127
+                0 => 'filtre_video_dist',
128
+                1 => 'video/mkv',
129
+            ],
130
+            28 => [
131
+                0 => 'filtre_video_dist',
132
+                1 => 'video/x-mng',
133
+            ],
134
+            29 => [
135
+                0 => 'filtre_video_dist',
136
+                1 => 'video/quicktime',
137
+            ],
138
+            30 => [
139
+                0 => 'filtre_audio_dist',
140
+                1 => 'audio/mpeg',
141
+            ],
142
+            31 => [
143
+                0 => 'filtre_application_dist',
144
+                1 => 'application/mp4',
145
+            ],
146
+            32 => [
147
+                0 => 'filtre_video_dist',
148
+                1 => 'video/mpeg',
149
+            ],
150
+            33 => [
151
+                0 => 'filtre_audio_dist',
152
+                1 => 'audio/ogg',
153
+            ],
154
+            34 => [
155
+                0 => 'filtre_audio_dist',
156
+                1 => 'audio/ogg ',
157
+            ],
158
+            35 => [
159
+                0 => 'filtre_video_dist',
160
+                1 => 'video/ogg ',
161
+            ],
162
+            36 => [
163
+                0 => 'filtre_application_dist',
164
+                1 => 'application/ogg ',
165
+            ],
166
+            38 => [
167
+                0 => 'filtre_audio_x_pn_realaudio',
168
+                1 => 'audio/x-pn-realaudio',
169
+            ],
170
+            42 => [
171
+                0 => 'filtre_image_dist',
172
+                1 => 'image/svg+xml',
173
+            ],
174
+            43 => [
175
+                0 => 'filtre_application_dist',
176
+                1 => 'application/x-shockwave-flash',
177
+            ],
178
+            44 => [
179
+                0 => 'filtre_audio_dist',
180
+                1 => 'audio/x-wav',
181
+            ],
182
+            45 => [
183
+                0 => 'filtre_video_dist',
184
+                1 => 'video/x-ms-wmv',
185
+            ],
186
+            46 => [
187
+                0 => 'filtre_video_dist',
188
+                1 => 'video/3gpp',
189
+            ],
190
+            47 => [
191
+                0 => 'filtre_application_dist',
192
+                1 => 'application/illustrator',
193
+            ],
194
+            48 => [
195
+                0 => 'filtre_application_dist',
196
+                1 => 'application/abiword',
197
+            ],
198
+            49 => [
199
+                0 => 'filtre_application_dist',
200
+                1 => 'application/octet-stream',
201
+            ],
202
+            50 => [
203
+                0 => 'filtre_application_dist',
204
+                1 => 'application/x-blender',
205
+            ],
206
+            51 => [
207
+                0 => 'filtre_application_dist',
208
+                1 => 'application/x-bzip2',
209
+            ],
210
+            52 => [
211
+                0 => 'filtre_text_dist',
212
+                1 => 'text/x-csrc',
213
+            ],
214
+            53 => [
215
+                0 => 'filtre_text_dist',
216
+                1 => 'text/css',
217
+            ],
218
+            54 => [
219
+                0 => 'filtre_text_csv_dist',
220
+                1 => 'text/csv',
221
+            ],
222
+            55 => [
223
+                0 => 'filtre_application_dist',
224
+                1 => 'application/x-debian-package',
225
+            ],
226
+            56 => [
227
+                0 => 'filtre_application_dist',
228
+                1 => 'application/msword',
229
+            ],
230
+            57 => [
231
+                0 => 'filtre_image_dist',
232
+                1 => 'image/vnd.djvu',
233
+            ],
234
+            58 => [
235
+                0 => 'filtre_application_dist',
236
+                1 => 'application/x-dvi',
237
+            ],
238
+            59 => [
239
+                0 => 'filtre_application_dist',
240
+                1 => 'application/postscript',
241
+            ],
242
+            60 => [
243
+                0 => 'filtre_application_dist',
244
+                1 => 'application/x-gzip',
245
+            ],
246
+            61 => [
247
+                0 => 'filtre_text_dist',
248
+                1 => 'text/x-chdr',
249
+            ],
250
+            62 => [
251
+                0 => 'filtre_text_html_dist',
252
+                1 => 'text/html',
253
+            ],
254
+            63 => [
255
+                0 => 'filtre_application_dist',
256
+                1 => 'application/vnd.google-earth.kml+xml',
257
+            ],
258
+            64 => [
259
+                0 => 'filtre_application_dist',
260
+                1 => 'application/vnd.google-earth.kmz',
261
+            ],
262
+            65 => [
263
+                0 => 'filtre_text_dist',
264
+                1 => 'text/x-pascal',
265
+            ],
266
+            66 => [
267
+                0 => 'filtre_application_dist',
268
+                1 => 'application/pdf',
269
+            ],
270
+            67 => [
271
+                0 => 'filtre_application_dist',
272
+                1 => 'application/x-chess-pgn',
273
+            ],
274
+            68 => [
275
+                0 => 'filtre_application_dist',
276
+                1 => 'application/vnd.ms-powerpoint',
277
+            ],
278
+            70 => [
279
+                0 => 'filtre_image_dist',
280
+                1 => 'image/x-photoshop',
281
+            ],
282
+            71 => [
283
+                0 => 'filtre_application_dist',
284
+                1 => 'application/x-redhat-package-manager',
285
+            ],
286
+            72 => [
287
+                0 => 'filtre_application_dist',
288
+                1 => 'application/rtf',
289
+            ],
290
+            73 => [
291
+                0 => 'filtre_application_dist',
292
+                1 => 'application/vnd.stardivision.impress',
293
+            ],
294
+            74 => [
295
+                0 => 'filtre_application_dist',
296
+                1 => 'application/vnd.stardivision.writer',
297
+            ],
298
+            75 => [
299
+                0 => 'filtre_application_dist',
300
+                1 => 'application/x-stuffit',
301
+            ],
302
+            76 => [
303
+                0 => 'filtre_application_dist',
304
+                1 => 'application/vnd.sun.xml.calc',
305
+            ],
306
+            77 => [
307
+                0 => 'filtre_application_dist',
308
+                1 => 'application/vnd.sun.xml.impress',
309
+            ],
310
+            78 => [
311
+                0 => 'filtre_application_dist',
312
+                1 => 'application/vnd.sun.xml.writer',
313
+            ],
314
+            79 => [
315
+                0 => 'filtre_text_dist',
316
+                1 => 'text/x-tex',
317
+            ],
318
+            80 => [
319
+                0 => 'filtre_application_dist',
320
+                1 => 'application/x-gtar',
321
+            ],
322
+            81 => [
323
+                0 => 'filtre_application_dist',
324
+                1 => 'application/x-bittorrent',
325
+            ],
326
+            82 => [
327
+                0 => 'filtre_application_dist',
328
+                1 => 'application/x-font-ttf',
329
+            ],
330
+            83 => [
331
+                0 => 'filtre_text_dist',
332
+                1 => 'text/plain',
333
+            ],
334
+            84 => [
335
+                0 => 'filtre_application_dist',
336
+                1 => 'application/x-xcf',
337
+            ],
338
+            85 => [
339
+                0 => 'filtre_application_dist',
340
+                1 => 'application/vnd.ms-excel',
341
+            ],
342
+            86 => [
343
+                0 => 'filtre_application_dist',
344
+                1 => 'application/xspf+xml',
345
+            ],
346
+            87 => [
347
+                0 => 'filtre_application_dist',
348
+                1 => 'application/xml',
349
+            ],
350
+            88 => [
351
+                0 => 'filtre_application_dist',
352
+                1 => 'application/zip',
353
+            ],
354
+            89 => [
355
+                0 => 'filtre_application_dist',
356
+                1 => 'application/vnd.oasis.opendocument.text',
357
+            ],
358
+            90 => [
359
+                0 => 'filtre_application_dist',
360
+                1 => 'application/vnd.oasis.opendocument.spreadsheet',
361
+            ],
362
+            91 => [
363
+                0 => 'filtre_application_dist',
364
+                1 => 'application/vnd.oasis.opendocument.presentation',
365
+            ],
366
+            92 => [
367
+                0 => 'filtre_application_dist',
368
+                1 => 'application/vnd.oasis.opendocument.graphics',
369
+            ],
370
+            93 => [
371
+                0 => 'filtre_application_dist',
372
+                1 => 'application/vnd.oasis.opendocument.chart',
373
+            ],
374
+            94 => [
375
+                0 => 'filtre_application_dist',
376
+                1 => 'application/vnd.oasis.opendocument.formula',
377
+            ],
378
+            95 => [
379
+                0 => 'filtre_application_dist',
380
+                1 => 'application/vnd.oasis.opendocument.database',
381
+            ],
382
+            96 => [
383
+                0 => 'filtre_application_dist',
384
+                1 => 'application/vnd.oasis.opendocument.image',
385
+            ],
386
+            97 => [
387
+                0 => 'filtre_application_dist',
388
+                1 => 'application/vnd.oasis.opendocument.text-master',
389
+            ],
390
+            98 => [
391
+                0 => 'filtre_application_dist',
392
+                1 => 'application/vnd.oasis.opendocument.text-template',
393
+            ],
394
+            99 => [
395
+                0 => 'filtre_application_dist',
396
+                1 => 'application/vnd.oasis.opendocument.spreadsheet-template',
397
+            ],
398
+            100 => [
399
+                0 => 'filtre_application_dist',
400
+                1 => 'application/vnd.oasis.opendocument.presentation-template',
401
+            ],
402
+            101 => [
403
+                0 => 'filtre_application_dist',
404
+                1 => 'application/vnd.oasis.opendocument.graphics-template',
405
+            ],
406
+            104 => [
407
+                0 => 'filtre_application_dist',
408
+                1 => 'application/vnd.ms-word.document.macroEnabled.12',
409
+            ],
410
+            105 => [
411
+                0 => 'filtre_application_dist',
412
+                1 => 'application/vnd.openxmlformats-officedocument.wordprocessingml.document',
413
+            ],
414
+            106 => [
415
+                0 => 'filtre_application_dist',
416
+                1 => 'application/vnd.ms-word.template.macroEnabled.12',
417
+            ],
418
+            107 => [
419
+                0 => 'filtre_application_dist',
420
+                1 => 'application/vnd.openxmlformats-officedocument.wordprocessingml.template',
421
+            ],
422
+            108 => [
423
+                0 => 'filtre_application_dist',
424
+                1 => 'application/vnd.ms-powerpoint.template.macroEnabled.12',
425
+            ],
426
+            109 => [
427
+                0 => 'filtre_application_dist',
428
+                1 => 'application/vnd.openxmlformats-officedocument.presentationml.template',
429
+            ],
430
+            110 => [
431
+                0 => 'filtre_application_dist',
432
+                1 => 'application/vnd.ms-powerpoint.addin.macroEnabled.12',
433
+            ],
434
+            111 => [
435
+                0 => 'filtre_application_dist',
436
+                1 => 'application/vnd.ms-powerpoint.slideshow.macroEnabled.12',
437
+            ],
438
+            112 => [
439
+                0 => 'filtre_application_dist',
440
+                1 => 'application/vnd.openxmlformats-officedocument.presentationml.slideshow',
441
+            ],
442
+            113 => [
443
+                0 => 'filtre_application_dist',
444
+                1 => 'application/vnd.ms-powerpoint.presentation.macroEnabled.12',
445
+            ],
446
+            114 => [
447
+                0 => 'filtre_application_dist',
448
+                1 => 'application/vnd.openxmlformats-officedocument.presentationml.presentation',
449
+            ],
450
+            115 => [
451
+                0 => 'filtre_application_dist',
452
+                1 => 'application/vnd.ms-excel.addin.macroEnabled.12',
453
+            ],
454
+            116 => [
455
+                0 => 'filtre_application_dist',
456
+                1 => 'application/vnd.ms-excel.sheet.binary.macroEnabled.12',
457
+            ],
458
+            117 => [
459
+                0 => 'filtre_application_dist',
460
+                1 => 'application/vnd.ms-excel.sheet.macroEnabled.12',
461
+            ],
462
+            118 => [
463
+                0 => 'filtre_application_dist',
464
+                1 => 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet',
465
+            ],
466
+            119 => [
467
+                0 => 'filtre_application_dist',
468
+                1 => 'application/vnd.ms-excel.template.macroEnabled.12',
469
+            ],
470
+            120 => [
471
+                0 => 'filtre_application_dist',
472
+                1 => 'application/vnd.openxmlformats-officedocument.spreadsheetml.template',
473
+            ],
474
+        ];
475
+    }
476 476
 }
Please login to merge, or discard this patch.
ecrire/tests/Filtre/ExtraireBalisesTest.php 2 patches
Indentation   +141 added lines, -141 removed lines patch added patch discarded remove patch
@@ -13,150 +13,150 @@
 block discarded – undo
13 13
 
14 14
 class ExtraireBalisesTest extends TestCase
15 15
 {
16
-	public static function setUpBeforeClass(): void {
17
-		find_in_path('./inc/filtres.php', '', true);
18
-		find_in_path('./inc/lang.php', '', true);
19
-	}
16
+    public static function setUpBeforeClass(): void {
17
+        find_in_path('./inc/filtres.php', '', true);
18
+        find_in_path('./inc/lang.php', '', true);
19
+    }
20 20
 
21
-	#[DataProvider('providerFiltresExtraireBalises')]
22
-	public function testFiltresExtraireBalises($expected, ...$args): void {
23
-		$actual = extraire_balises(...$args);
24
-		$this->assertSame($expected, $actual);
25
-	}
21
+    #[DataProvider('providerFiltresExtraireBalises')]
22
+    public function testFiltresExtraireBalises($expected, ...$args): void {
23
+        $actual = extraire_balises(...$args);
24
+        $this->assertSame($expected, $actual);
25
+    }
26 26
 
27
-	#[DataProvider('providerFiltresExtraireBalises')]
28
-	public function testFiltresExtraireBalise($expected, ...$args): void {
29
-		// extraire_balise doit renvoyer le premier résultat de extraire_balises
30
-		// sauf si on fournit un tableau de chaine en entree, ce doit être alors le premier résultat de chaque sous-tableau
31
-		if (count($args) === 3) {
32
-			$options = array_pop($args);
33
-			$profondeur = ($options['profondeur'] ?? 1);
34
-			$args[] = $profondeur;
35
-		}
36
-		$first_result = reset($expected);
37
-		if (is_array($first_result)) {
38
-			$first_result = [];
39
-			foreach ($expected as $e) {
40
-				$first_result[] = (empty($e) ? '' : reset($e));
41
-			}
42
-			$expected = $first_result;
43
-		} else {
44
-			$expected = (empty($expected) ? '' : $first_result);
45
-		}
46
-		$actual = extraire_balise(...$args);
47
-		$this->assertSame($expected, $actual);
48
-	}
27
+    #[DataProvider('providerFiltresExtraireBalises')]
28
+    public function testFiltresExtraireBalise($expected, ...$args): void {
29
+        // extraire_balise doit renvoyer le premier résultat de extraire_balises
30
+        // sauf si on fournit un tableau de chaine en entree, ce doit être alors le premier résultat de chaque sous-tableau
31
+        if (count($args) === 3) {
32
+            $options = array_pop($args);
33
+            $profondeur = ($options['profondeur'] ?? 1);
34
+            $args[] = $profondeur;
35
+        }
36
+        $first_result = reset($expected);
37
+        if (is_array($first_result)) {
38
+            $first_result = [];
39
+            foreach ($expected as $e) {
40
+                $first_result[] = (empty($e) ? '' : reset($e));
41
+            }
42
+            $expected = $first_result;
43
+        } else {
44
+            $expected = (empty($expected) ? '' : $first_result);
45
+        }
46
+        $actual = extraire_balise(...$args);
47
+        $this->assertSame($expected, $actual);
48
+    }
49 49
 
50
-	public function testFiltresExtraireBalisesMediaRss(): void {
51
-		$rss = file_get_contents(dirname(__DIR__) . '/Fixtures/data/dailymotion.rss');
52
-		if (empty($rss)) {
53
-			$this->markTestSkipped();
54
-		}
50
+    public function testFiltresExtraireBalisesMediaRss(): void {
51
+        $rss = file_get_contents(dirname(__DIR__) . '/Fixtures/data/dailymotion.rss');
52
+        if (empty($rss)) {
53
+            $this->markTestSkipped();
54
+        }
55 55
 
56
-		$balises_media = extraire_balises($rss, 'media:content');
57
-		$this->assertIsArray($balises_media);
58
-		$this->assertEquals(count($balises_media), 40);
59
-	}
56
+        $balises_media = extraire_balises($rss, 'media:content');
57
+        $this->assertIsArray($balises_media);
58
+        $this->assertEquals(count($balises_media), 40);
59
+    }
60 60
 
61
-	public static function providerFiltresExtraireBalises(): array {
62
-		return [
63
-			[['<a href="truc">chose</a>'], 'allo <a href="truc">chose</a>'],
64
-			[['<a href="truc" />'], 'allo <a href="truc" />'],
65
-			[["<a\nhref='truc' />"], 'allo' . "\n" . " <a\nhref='truc' />"],
66
-			[[['<a href="1">'], ['<a href="2">']], ['allo <a href="1">', 'allo <a href="2">']],
67
-			[['<a href="truc">chose</a>'], 'bonjour <a href="truc">chose</a> machin'],
68
-			[
69
-				['<a href="truc">chose</a>', '<A href="truc">machin</a>'],
70
-				'bonjour <a href="truc">chose</a> machin <A href="truc">machin</a>',
71
-			],
72
-			[['<a href="truc">'], 'bonjour <a href="truc">chose'],
73
-			[['<a href="truc"/>'], '<a href="truc"/>chose</a>'],
74
-			[['<a>chose</a>'], '<a>chose</a>'],
75
-			[['<a href="truc">chose</a>'], 'allo <a href="truc">chose</a>', 'a'],
76
-			[['<a href="truc" />'], 'allo <a href="truc" />', 'a'],
77
-			[["<a\nhref='truc' />"], 'allo' . "\n" . " <a\nhref='truc' />", 'a'],
78
-			[[['<a href="1">'], ['<a href="2">']], ['allo <a href="1">', 'allo <a href="2">'], 'a'],
79
-			[['<a href="truc">chose</a>'], 'bonjour <a href="truc">chose</a> machin', 'a'],
80
-			[
81
-				['<a href="truc">chose</a>', '<A href="truc">machin</a>'],
82
-				'bonjour <a href="truc">chose</a> machin <A href="truc">machin</a>',
83
-				'a',
84
-			],
85
-			[['<a href="truc">'], 'bonjour <a href="truc">chose', 'a'],
86
-			[['<a href="truc"/>'], '<a href="truc"/>chose</a>', 'a'],
87
-			[['<a>chose</a>'], '<a>chose</a>', 'a'],
88
-			[[], 'allo <a href="truc">chose</a>', 'b'],
89
-			[[], 'allo <a href="truc" />', 'b'],
90
-			[[], 'allo' . "\n" . " <a\nhref='truc' />", 'b'],
91
-			[[[], []], ['allo <a href="1">', 'allo <a href="2">'], 'b'],
92
-			[[], 'bonjour <a href="truc">chose</a> machin', 'b'],
93
-			[[], 'bonjour <a href="truc">chose</a> machin <A href="truc">machin</a>', 'b'],
94
-			[[], 'bonjour <a href="truc">chose', 'b'],
95
-			[[], '<a href="truc"/>chose</a>', 'b'],
96
-			[[], '<a>chose</a>', 'b'],
97
-			'div_2' => [
98
-				['<div class="message">Hello <div class="inside">World!</div></div>'],
99
-				'<div class="message">Hello <div class="inside">World!</div></div>',
100
-				'div',
101
-			],
102
-			'div_3' => [
103
-				['<div class="message">Hello <div class="inside">World<div>!</div></div></div>'],
104
-				'<div class="message">Hello <div class="inside">World<div>!</div></div></div>',
105
-				'div',
106
-			],
107
-			'div_3_et_autofermante_1' => [
108
-				['<div class="message">Hello <div class="inside">World<div>! <div/> </div></div></div>'],
109
-				'<div class="message">Hello <div class="inside">World<div>! <div/> </div></div></div>',
110
-				'div',
111
-			],
112
-			'div_3_et_autofermante_2' => [
113
-				['<div class="message">Hello <div class="inside">World<div>!<div/></div><div/></div></div>'],
114
-				'<div class="message">Hello <div class="inside">World<div>!<div/></div><div/></div></div>',
115
-				'div',
116
-			],
117
-			'div_3_et_autofermante_3' => [
118
-				['<div class="message">Hello <div class="inside">World<div>!<div/></div><div/></div><div/></div>'],
119
-				'<div class="message">Hello <div class="inside">World<div>!<div/></div><div/></div><div/></div>',
120
-				'div',
121
-			],
122
-			'div_3_et_autofermante_4' => [
123
-				['<div class="message">Hello <div class="inside">World<div>!<div/></div><div/></div><div/></div>', '<div/>'],
124
-				'<div class="message">Hello <div class="inside">World<div>!<div/></div><div/></div><div/></div><div/>',
125
-				'div',
126
-			],
127
-			'div_3_et_autofermante_5' => [
128
-				[
129
-					'<div/>',
130
-					'<div class="message">Hello <div class="inside">World<div>!<div/></div><div/></div><div/></div>',
131
-					'<div/>',
132
-				],
133
-				'<div/><div class="message">Hello <div class="inside">World<div>!<div/></div><div/></div><div/></div><div/>',
134
-				'div',
135
-			],
136
-			'div_3_et_autofermante_5_nbmax' => [
137
-				['<div/>'],
138
-				'<div/><div class="message">Hello <div class="inside">World<div>!<div/></div><div/></div><div/></div><div/>',
139
-				'div',
140
-				['nb_max' => 1],
141
-			],
142
-			'div_3_et_autofermante_5_profondeur_2' => [
143
-				['<div class="hello">Hello</div>', '<div class="world">World</div>', '<div>!</div>', '<div/>'],
144
-				'<div class="message"><div class="hello">Hello</div> <div class="world">World</div><div>!</div> <div/></div>',
145
-				'div',
146
-				['profondeur' => '2'],
147
-			],
148
-			'div_3_et_autofermante_5_profondeur_3' => [
149
-				[],
150
-				'<div class="message"><div class="hello">Hello</div> <div class="world">World</div><div>!</div> <div/></div>',
151
-				'div',
152
-				['profondeur' => '3'],
153
-			],
154
-			'div_3_et_autofermante_5_profondeur_3_2' => [
155
-				['<div>lo</div>'],
156
-				'<div class="message"><div class="hello">Hel<div>lo</div></div> <div class="world">World</div><div>!</div> <div/></div>',
157
-				'div',
158
-				['profondeur' => '3'],
159
-			],
160
-		];
161
-	}
61
+    public static function providerFiltresExtraireBalises(): array {
62
+        return [
63
+            [['<a href="truc">chose</a>'], 'allo <a href="truc">chose</a>'],
64
+            [['<a href="truc" />'], 'allo <a href="truc" />'],
65
+            [["<a\nhref='truc' />"], 'allo' . "\n" . " <a\nhref='truc' />"],
66
+            [[['<a href="1">'], ['<a href="2">']], ['allo <a href="1">', 'allo <a href="2">']],
67
+            [['<a href="truc">chose</a>'], 'bonjour <a href="truc">chose</a> machin'],
68
+            [
69
+                ['<a href="truc">chose</a>', '<A href="truc">machin</a>'],
70
+                'bonjour <a href="truc">chose</a> machin <A href="truc">machin</a>',
71
+            ],
72
+            [['<a href="truc">'], 'bonjour <a href="truc">chose'],
73
+            [['<a href="truc"/>'], '<a href="truc"/>chose</a>'],
74
+            [['<a>chose</a>'], '<a>chose</a>'],
75
+            [['<a href="truc">chose</a>'], 'allo <a href="truc">chose</a>', 'a'],
76
+            [['<a href="truc" />'], 'allo <a href="truc" />', 'a'],
77
+            [["<a\nhref='truc' />"], 'allo' . "\n" . " <a\nhref='truc' />", 'a'],
78
+            [[['<a href="1">'], ['<a href="2">']], ['allo <a href="1">', 'allo <a href="2">'], 'a'],
79
+            [['<a href="truc">chose</a>'], 'bonjour <a href="truc">chose</a> machin', 'a'],
80
+            [
81
+                ['<a href="truc">chose</a>', '<A href="truc">machin</a>'],
82
+                'bonjour <a href="truc">chose</a> machin <A href="truc">machin</a>',
83
+                'a',
84
+            ],
85
+            [['<a href="truc">'], 'bonjour <a href="truc">chose', 'a'],
86
+            [['<a href="truc"/>'], '<a href="truc"/>chose</a>', 'a'],
87
+            [['<a>chose</a>'], '<a>chose</a>', 'a'],
88
+            [[], 'allo <a href="truc">chose</a>', 'b'],
89
+            [[], 'allo <a href="truc" />', 'b'],
90
+            [[], 'allo' . "\n" . " <a\nhref='truc' />", 'b'],
91
+            [[[], []], ['allo <a href="1">', 'allo <a href="2">'], 'b'],
92
+            [[], 'bonjour <a href="truc">chose</a> machin', 'b'],
93
+            [[], 'bonjour <a href="truc">chose</a> machin <A href="truc">machin</a>', 'b'],
94
+            [[], 'bonjour <a href="truc">chose', 'b'],
95
+            [[], '<a href="truc"/>chose</a>', 'b'],
96
+            [[], '<a>chose</a>', 'b'],
97
+            'div_2' => [
98
+                ['<div class="message">Hello <div class="inside">World!</div></div>'],
99
+                '<div class="message">Hello <div class="inside">World!</div></div>',
100
+                'div',
101
+            ],
102
+            'div_3' => [
103
+                ['<div class="message">Hello <div class="inside">World<div>!</div></div></div>'],
104
+                '<div class="message">Hello <div class="inside">World<div>!</div></div></div>',
105
+                'div',
106
+            ],
107
+            'div_3_et_autofermante_1' => [
108
+                ['<div class="message">Hello <div class="inside">World<div>! <div/> </div></div></div>'],
109
+                '<div class="message">Hello <div class="inside">World<div>! <div/> </div></div></div>',
110
+                'div',
111
+            ],
112
+            'div_3_et_autofermante_2' => [
113
+                ['<div class="message">Hello <div class="inside">World<div>!<div/></div><div/></div></div>'],
114
+                '<div class="message">Hello <div class="inside">World<div>!<div/></div><div/></div></div>',
115
+                'div',
116
+            ],
117
+            'div_3_et_autofermante_3' => [
118
+                ['<div class="message">Hello <div class="inside">World<div>!<div/></div><div/></div><div/></div>'],
119
+                '<div class="message">Hello <div class="inside">World<div>!<div/></div><div/></div><div/></div>',
120
+                'div',
121
+            ],
122
+            'div_3_et_autofermante_4' => [
123
+                ['<div class="message">Hello <div class="inside">World<div>!<div/></div><div/></div><div/></div>', '<div/>'],
124
+                '<div class="message">Hello <div class="inside">World<div>!<div/></div><div/></div><div/></div><div/>',
125
+                'div',
126
+            ],
127
+            'div_3_et_autofermante_5' => [
128
+                [
129
+                    '<div/>',
130
+                    '<div class="message">Hello <div class="inside">World<div>!<div/></div><div/></div><div/></div>',
131
+                    '<div/>',
132
+                ],
133
+                '<div/><div class="message">Hello <div class="inside">World<div>!<div/></div><div/></div><div/></div><div/>',
134
+                'div',
135
+            ],
136
+            'div_3_et_autofermante_5_nbmax' => [
137
+                ['<div/>'],
138
+                '<div/><div class="message">Hello <div class="inside">World<div>!<div/></div><div/></div><div/></div><div/>',
139
+                'div',
140
+                ['nb_max' => 1],
141
+            ],
142
+            'div_3_et_autofermante_5_profondeur_2' => [
143
+                ['<div class="hello">Hello</div>', '<div class="world">World</div>', '<div>!</div>', '<div/>'],
144
+                '<div class="message"><div class="hello">Hello</div> <div class="world">World</div><div>!</div> <div/></div>',
145
+                'div',
146
+                ['profondeur' => '2'],
147
+            ],
148
+            'div_3_et_autofermante_5_profondeur_3' => [
149
+                [],
150
+                '<div class="message"><div class="hello">Hello</div> <div class="world">World</div><div>!</div> <div/></div>',
151
+                'div',
152
+                ['profondeur' => '3'],
153
+            ],
154
+            'div_3_et_autofermante_5_profondeur_3_2' => [
155
+                ['<div>lo</div>'],
156
+                '<div class="message"><div class="hello">Hel<div>lo</div></div> <div class="world">World</div><div>!</div> <div/></div>',
157
+                'div',
158
+                ['profondeur' => '3'],
159
+            ],
160
+        ];
161
+    }
162 162
 }
Please login to merge, or discard this patch.
Spacing   +4 added lines, -4 removed lines patch added patch discarded remove patch
@@ -48,7 +48,7 @@  discard block
 block discarded – undo
48 48
 	}
49 49
 
50 50
 	public function testFiltresExtraireBalisesMediaRss(): void {
51
-		$rss = file_get_contents(dirname(__DIR__) . '/Fixtures/data/dailymotion.rss');
51
+		$rss = file_get_contents(dirname(__DIR__).'/Fixtures/data/dailymotion.rss');
52 52
 		if (empty($rss)) {
53 53
 			$this->markTestSkipped();
54 54
 		}
@@ -62,7 +62,7 @@  discard block
 block discarded – undo
62 62
 		return [
63 63
 			[['<a href="truc">chose</a>'], 'allo <a href="truc">chose</a>'],
64 64
 			[['<a href="truc" />'], 'allo <a href="truc" />'],
65
-			[["<a\nhref='truc' />"], 'allo' . "\n" . " <a\nhref='truc' />"],
65
+			[["<a\nhref='truc' />"], 'allo'."\n"." <a\nhref='truc' />"],
66 66
 			[[['<a href="1">'], ['<a href="2">']], ['allo <a href="1">', 'allo <a href="2">']],
67 67
 			[['<a href="truc">chose</a>'], 'bonjour <a href="truc">chose</a> machin'],
68 68
 			[
@@ -74,7 +74,7 @@  discard block
 block discarded – undo
74 74
 			[['<a>chose</a>'], '<a>chose</a>'],
75 75
 			[['<a href="truc">chose</a>'], 'allo <a href="truc">chose</a>', 'a'],
76 76
 			[['<a href="truc" />'], 'allo <a href="truc" />', 'a'],
77
-			[["<a\nhref='truc' />"], 'allo' . "\n" . " <a\nhref='truc' />", 'a'],
77
+			[["<a\nhref='truc' />"], 'allo'."\n"." <a\nhref='truc' />", 'a'],
78 78
 			[[['<a href="1">'], ['<a href="2">']], ['allo <a href="1">', 'allo <a href="2">'], 'a'],
79 79
 			[['<a href="truc">chose</a>'], 'bonjour <a href="truc">chose</a> machin', 'a'],
80 80
 			[
@@ -87,7 +87,7 @@  discard block
 block discarded – undo
87 87
 			[['<a>chose</a>'], '<a>chose</a>', 'a'],
88 88
 			[[], 'allo <a href="truc">chose</a>', 'b'],
89 89
 			[[], 'allo <a href="truc" />', 'b'],
90
-			[[], 'allo' . "\n" . " <a\nhref='truc' />", 'b'],
90
+			[[], 'allo'."\n"." <a\nhref='truc' />", 'b'],
91 91
 			[[[], []], ['allo <a href="1">', 'allo <a href="2">'], 'b'],
92 92
 			[[], 'bonjour <a href="truc">chose</a> machin', 'b'],
93 93
 			[[], 'bonjour <a href="truc">chose</a> machin <A href="truc">machin</a>', 'b'],
Please login to merge, or discard this patch.
ecrire/tests/Filtre/IdentifiantSlugTest.php 1 patch
Indentation   +668 added lines, -668 removed lines patch added patch discarded remove patch
@@ -13,683 +13,683 @@
 block discarded – undo
13 13
 
14 14
 class IdentifiantSlugTest extends TestCase
15 15
 {
16
-	public static function setUpBeforeClass(): void {
17
-		find_in_path('./inc/filtres.php', '', true);
18
-	}
16
+    public static function setUpBeforeClass(): void {
17
+        find_in_path('./inc/filtres.php', '', true);
18
+    }
19 19
 
20
-	#[DataProvider('providerFiltresIdentifiantSlug')]
21
-	public function testFiltresIdentifiantSlug($expected, ...$args): void {
22
-		$actual = identifiant_slug(...$args);
23
-		$this->assertSame($expected, $actual);
24
-	}
20
+    #[DataProvider('providerFiltresIdentifiantSlug')]
21
+    public function testFiltresIdentifiantSlug($expected, ...$args): void {
22
+        $actual = identifiant_slug(...$args);
23
+        $this->assertSame($expected, $actual);
24
+    }
25 25
 
26
-	public static function providerFiltresIdentifiantSlug(): array {
27
-		return [
28
-			0 => [
29
-				0 => '1',
30
-				1 => true,
31
-			],
32
-			1 => [
33
-				0 => '',
34
-				1 => false,
35
-			],
36
-			2 => [
37
-				0 => '0',
38
-				1 => 0,
39
-			],
40
-			3 => [
41
-				0 => '1',
42
-				1 => -1,
43
-			],
44
-			4 => [
45
-				0 => '1',
46
-				1 => 1,
47
-			],
48
-			5 => [
49
-				0 => '2',
50
-				1 => 2,
51
-			],
52
-			6 => [
53
-				0 => '3',
54
-				1 => 3,
55
-			],
56
-			7 => [
57
-				0 => '4',
58
-				1 => 4,
59
-			],
60
-			8 => [
61
-				0 => '5',
62
-				1 => 5,
63
-			],
64
-			9 => [
65
-				0 => '6',
66
-				1 => 6,
67
-			],
68
-			10 => [
69
-				0 => '7',
70
-				1 => 7,
71
-			],
72
-			11 => [
73
-				0 => '10',
74
-				1 => 10,
75
-			],
76
-			12 => [
77
-				0 => '20',
78
-				1 => 20,
79
-			],
80
-			13 => [
81
-				0 => '30',
82
-				1 => 30,
83
-			],
84
-			14 => [
85
-				0 => '50',
86
-				1 => 50,
87
-			],
88
-			15 => [
89
-				0 => '100',
90
-				1 => 100,
91
-			],
92
-			16 => [
93
-				0 => '1000',
94
-				1 => 1000,
95
-			],
96
-			17 => [
97
-				0 => '10000',
98
-				1 => 10000,
99
-			],
100
-			18 => [
101
-				0 => '0',
102
-				1 => 0.0,
103
-			],
104
-			19 => [
105
-				0 => '0_25',
106
-				1 => 0.25,
107
-			],
108
-			20 => [
109
-				0 => '0_5',
110
-				1 => 0.5,
111
-			],
112
-			21 => [
113
-				0 => '0_75',
114
-				1 => 0.75,
115
-			],
116
-			22 => [
117
-				0 => '1',
118
-				1 => 1.0,
119
-			],
120
-			23 => [
121
-				0 => '',
122
-				1 => '',
123
-			],
124
-			24 => [
125
-				0 => '0',
126
-				1 => '0',
127
-			],
128
-			25 => [
129
-				0 => 'un_texte_avec_des_liens_article_1_art1_spip_https_www_spip_n',
130
-				1 => 'Un texte avec des <a href="http://spip.net">liens</a> [Article 1->art1] [spip->https://www.spip.net] https://www.spip.net',
131
-			],
132
-			26 => [
133
-				0 => 'un_texte_avec_des_entites',
134
-				1 => 'Un texte avec des entit&eacute;s &amp;&lt;&gt;&quot;',
135
-			],
136
-			27 => [
137
-				0 => 'un_texte_avec_des_entit_eacute_s_echap_eacute_amp',
138
-				1 => 'Un texte avec des entit&amp;eacute;s echap&amp;eacute; &amp;amp;&amp;lt;&amp;gt;&amp;quot;',
139
-			],
140
-			28 => [
141
-				0 => 'un_texte_avec_des_entites_numeriques_38_60_62',
142
-				1 => 'Un texte avec des entit&#233;s num&#233;riques &#38;&#60;&#62;&quot;',
143
-			],
144
-			29 => [
145
-				0 => 'un_texte_avec_des_entites_numeriques_echapees_38_60_62',
146
-				1 => 'Un texte avec des entit&amp;#233;s num&amp;#233;riques echap&amp;#233;es &amp;#38;&amp;#60;&amp;#62;&amp;quot;',
147
-			],
148
-			30 => [
149
-				0 => 'un_texte_sans_entites',
150
-				1 => 'Un texte sans entites &<>"\'',
151
-			],
152
-			31 => [
153
-				0 => 'des_raccourcis_italique_gras_du_code',
154
-				1 => '{{{Des raccourcis}}} {italique} {{gras}} <code>du code</code>',
155
-			],
156
-			32 => [
157
-				0 => 'un_modele_https_www_spip_net',
158
-				1 => 'Un modele <modeleinexistant|lien=[->https://www.spip.net]>',
159
-			],
160
-			33 => [
161
-				0 => 'un_texte_avec_des_retour_a_la_ligne_et_meme_des_paragraphes',
162
-				1 => 'Un texte avec des retour
26
+    public static function providerFiltresIdentifiantSlug(): array {
27
+        return [
28
+            0 => [
29
+                0 => '1',
30
+                1 => true,
31
+            ],
32
+            1 => [
33
+                0 => '',
34
+                1 => false,
35
+            ],
36
+            2 => [
37
+                0 => '0',
38
+                1 => 0,
39
+            ],
40
+            3 => [
41
+                0 => '1',
42
+                1 => -1,
43
+            ],
44
+            4 => [
45
+                0 => '1',
46
+                1 => 1,
47
+            ],
48
+            5 => [
49
+                0 => '2',
50
+                1 => 2,
51
+            ],
52
+            6 => [
53
+                0 => '3',
54
+                1 => 3,
55
+            ],
56
+            7 => [
57
+                0 => '4',
58
+                1 => 4,
59
+            ],
60
+            8 => [
61
+                0 => '5',
62
+                1 => 5,
63
+            ],
64
+            9 => [
65
+                0 => '6',
66
+                1 => 6,
67
+            ],
68
+            10 => [
69
+                0 => '7',
70
+                1 => 7,
71
+            ],
72
+            11 => [
73
+                0 => '10',
74
+                1 => 10,
75
+            ],
76
+            12 => [
77
+                0 => '20',
78
+                1 => 20,
79
+            ],
80
+            13 => [
81
+                0 => '30',
82
+                1 => 30,
83
+            ],
84
+            14 => [
85
+                0 => '50',
86
+                1 => 50,
87
+            ],
88
+            15 => [
89
+                0 => '100',
90
+                1 => 100,
91
+            ],
92
+            16 => [
93
+                0 => '1000',
94
+                1 => 1000,
95
+            ],
96
+            17 => [
97
+                0 => '10000',
98
+                1 => 10000,
99
+            ],
100
+            18 => [
101
+                0 => '0',
102
+                1 => 0.0,
103
+            ],
104
+            19 => [
105
+                0 => '0_25',
106
+                1 => 0.25,
107
+            ],
108
+            20 => [
109
+                0 => '0_5',
110
+                1 => 0.5,
111
+            ],
112
+            21 => [
113
+                0 => '0_75',
114
+                1 => 0.75,
115
+            ],
116
+            22 => [
117
+                0 => '1',
118
+                1 => 1.0,
119
+            ],
120
+            23 => [
121
+                0 => '',
122
+                1 => '',
123
+            ],
124
+            24 => [
125
+                0 => '0',
126
+                1 => '0',
127
+            ],
128
+            25 => [
129
+                0 => 'un_texte_avec_des_liens_article_1_art1_spip_https_www_spip_n',
130
+                1 => 'Un texte avec des <a href="http://spip.net">liens</a> [Article 1->art1] [spip->https://www.spip.net] https://www.spip.net',
131
+            ],
132
+            26 => [
133
+                0 => 'un_texte_avec_des_entites',
134
+                1 => 'Un texte avec des entit&eacute;s &amp;&lt;&gt;&quot;',
135
+            ],
136
+            27 => [
137
+                0 => 'un_texte_avec_des_entit_eacute_s_echap_eacute_amp',
138
+                1 => 'Un texte avec des entit&amp;eacute;s echap&amp;eacute; &amp;amp;&amp;lt;&amp;gt;&amp;quot;',
139
+            ],
140
+            28 => [
141
+                0 => 'un_texte_avec_des_entites_numeriques_38_60_62',
142
+                1 => 'Un texte avec des entit&#233;s num&#233;riques &#38;&#60;&#62;&quot;',
143
+            ],
144
+            29 => [
145
+                0 => 'un_texte_avec_des_entites_numeriques_echapees_38_60_62',
146
+                1 => 'Un texte avec des entit&amp;#233;s num&amp;#233;riques echap&amp;#233;es &amp;#38;&amp;#60;&amp;#62;&amp;quot;',
147
+            ],
148
+            30 => [
149
+                0 => 'un_texte_sans_entites',
150
+                1 => 'Un texte sans entites &<>"\'',
151
+            ],
152
+            31 => [
153
+                0 => 'des_raccourcis_italique_gras_du_code',
154
+                1 => '{{{Des raccourcis}}} {italique} {{gras}} <code>du code</code>',
155
+            ],
156
+            32 => [
157
+                0 => 'un_modele_https_www_spip_net',
158
+                1 => 'Un modele <modeleinexistant|lien=[->https://www.spip.net]>',
159
+            ],
160
+            33 => [
161
+                0 => 'un_texte_avec_des_retour_a_la_ligne_et_meme_des_paragraphes',
162
+                1 => 'Un texte avec des retour
163 163
 a la ligne et meme des
164 164
 
165 165
 paragraphes',
166
-			],
167
-			34 => [
168
-				0 => 'un_texte_avec_des_liens_avec_des_accents_iso_a_e_i_o_u_artic',
169
-				1 => "Un texte avec des <a href=\"http://spip.net\">liens avec des accents ISO a\xE0\xE2\xE4 e\xE9\xE8\xEA\xEB i\xEE\xEF o\xF4 u\xF9\xFC</a> [Article 1 avec des accents ISO a\xE0\xE2\xE4 e\xE9\xE8\xEA\xEB i\xEE\xEF o\xF4 u\xF9\xFC->art1] [spip avec des accents ISO a\xE0\xE2\xE4 e\xE9\xE8\xEA\xEB i\xEE\xEF o\xF4 u\xF9\xFC->https://www.spip.net] https://www.spip.net",
170
-			],
171
-			35 => [
172
-				0 => 'un_texte_avec_des_entites_et_avec_des_accents_iso_a_e_i_o_u',
173
-				1 => "Un texte avec des entit&eacute;s &amp;&lt;&gt;&quot; et avec des accents ISO a\xE0\xE2\xE4 e\xE9\xE8\xEA\xEB i\xEE\xEF o\xF4 u\xF9\xFC",
174
-			],
175
-			36 => [
176
-				0 => 'un_texte_avec_des_entit_eacute_s_echap_eacute_amp_et_avec_de',
177
-				1 => "Un texte avec des entit&amp;eacute;s echap&amp;eacute; &amp;amp;&amp;lt;&amp;gt;&amp;quot; et avec des accents ISO a\xE0\xE2\xE4 e\xE9\xE8\xEA\xEB i\xEE\xEF o\xF4 u\xF9\xFC",
178
-			],
179
-			37 => [
180
-				0 => 'un_texte_avec_des_entites_numeriques_38_60_62_et_avec_des_ac',
181
-				1 => "Un texte avec des entit&#233;s num&#233;riques &#38;&#60;&#62;&quot; et avec des accents ISO a\xE0\xE2\xE4 e\xE9\xE8\xEA\xEB i\xEE\xEF o\xF4 u\xF9\xFC",
182
-			],
183
-			38 => [
184
-				0 => 'un_texte_avec_des_entites_numeriques_echapees_38_60_62_et_av',
185
-				1 => "Un texte avec des entit&amp;#233;s num&amp;#233;riques echap&amp;#233;es &amp;#38;&amp;#60;&amp;#62;&amp;quot; et avec des accents ISO a\xE0\xE2\xE4 e\xE9\xE8\xEA\xEB i\xEE\xEF o\xF4 u\xF9\xFC",
186
-			],
187
-			39 => [
188
-				0 => 'un_texte_sans_entites_et_avec_des_accents_iso_a_e_i_o_u',
189
-				1 => "Un texte sans entites &<>\"' et avec des accents ISO a\xE0\xE2\xE4 e\xE9\xE8\xEA\xEB i\xEE\xEF o\xF4 u\xF9\xFC",
190
-			],
191
-			40 => [
192
-				0 => 'des_raccourcis_avec_des_accents_iso_a_e_i_o_u_italique_avec_',
193
-				1 => "{{{Des raccourcis avec des accents ISO a\xE0\xE2\xE4 e\xE9\xE8\xEA\xEB i\xEE\xEF o\xF4 u\xF9\xFC}}} {italique avec des accents ISO a\xE0\xE2\xE4 e\xE9\xE8\xEA\xEB i\xEE\xEF o\xF4 u\xF9\xFC} {{gras avec des accents ISO a\xE0\xE2\xE4 e\xE9\xE8\xEA\xEB i\xEE\xEF o\xF4 u\xF9\xFC}} <code>du code avec des accents ISO a\xE0\xE2\xE4 e\xE9\xE8\xEA\xEB i\xEE\xEF o\xF4 u\xF9\xFC</code>",
194
-			],
195
-			41 => [
196
-				0 => 'un_modele_avec_des_accents_iso_a_e_i_o_u_https_www_spip_net',
197
-				1 => "Un modele avec des accents ISO a\xE0\xE2\xE4 e\xE9\xE8\xEA\xEB i\xEE\xEF o\xF4 u\xF9\xFC <modeleinexistant|lien=[avec des accents ISO a\xE0\xE2\xE4 e\xE9\xE8\xEA\xEB i\xEE\xEF o\xF4 u\xF9\xFC->https://www.spip.net]>",
198
-			],
199
-			42 => [
200
-				0 => 'un_texte_avec_des_retour_a_la_ligne_et_meme_des_paragraphes_',
201
-				1 => 'Un texte avec des retour
166
+            ],
167
+            34 => [
168
+                0 => 'un_texte_avec_des_liens_avec_des_accents_iso_a_e_i_o_u_artic',
169
+                1 => "Un texte avec des <a href=\"http://spip.net\">liens avec des accents ISO a\xE0\xE2\xE4 e\xE9\xE8\xEA\xEB i\xEE\xEF o\xF4 u\xF9\xFC</a> [Article 1 avec des accents ISO a\xE0\xE2\xE4 e\xE9\xE8\xEA\xEB i\xEE\xEF o\xF4 u\xF9\xFC->art1] [spip avec des accents ISO a\xE0\xE2\xE4 e\xE9\xE8\xEA\xEB i\xEE\xEF o\xF4 u\xF9\xFC->https://www.spip.net] https://www.spip.net",
170
+            ],
171
+            35 => [
172
+                0 => 'un_texte_avec_des_entites_et_avec_des_accents_iso_a_e_i_o_u',
173
+                1 => "Un texte avec des entit&eacute;s &amp;&lt;&gt;&quot; et avec des accents ISO a\xE0\xE2\xE4 e\xE9\xE8\xEA\xEB i\xEE\xEF o\xF4 u\xF9\xFC",
174
+            ],
175
+            36 => [
176
+                0 => 'un_texte_avec_des_entit_eacute_s_echap_eacute_amp_et_avec_de',
177
+                1 => "Un texte avec des entit&amp;eacute;s echap&amp;eacute; &amp;amp;&amp;lt;&amp;gt;&amp;quot; et avec des accents ISO a\xE0\xE2\xE4 e\xE9\xE8\xEA\xEB i\xEE\xEF o\xF4 u\xF9\xFC",
178
+            ],
179
+            37 => [
180
+                0 => 'un_texte_avec_des_entites_numeriques_38_60_62_et_avec_des_ac',
181
+                1 => "Un texte avec des entit&#233;s num&#233;riques &#38;&#60;&#62;&quot; et avec des accents ISO a\xE0\xE2\xE4 e\xE9\xE8\xEA\xEB i\xEE\xEF o\xF4 u\xF9\xFC",
182
+            ],
183
+            38 => [
184
+                0 => 'un_texte_avec_des_entites_numeriques_echapees_38_60_62_et_av',
185
+                1 => "Un texte avec des entit&amp;#233;s num&amp;#233;riques echap&amp;#233;es &amp;#38;&amp;#60;&amp;#62;&amp;quot; et avec des accents ISO a\xE0\xE2\xE4 e\xE9\xE8\xEA\xEB i\xEE\xEF o\xF4 u\xF9\xFC",
186
+            ],
187
+            39 => [
188
+                0 => 'un_texte_sans_entites_et_avec_des_accents_iso_a_e_i_o_u',
189
+                1 => "Un texte sans entites &<>\"' et avec des accents ISO a\xE0\xE2\xE4 e\xE9\xE8\xEA\xEB i\xEE\xEF o\xF4 u\xF9\xFC",
190
+            ],
191
+            40 => [
192
+                0 => 'des_raccourcis_avec_des_accents_iso_a_e_i_o_u_italique_avec_',
193
+                1 => "{{{Des raccourcis avec des accents ISO a\xE0\xE2\xE4 e\xE9\xE8\xEA\xEB i\xEE\xEF o\xF4 u\xF9\xFC}}} {italique avec des accents ISO a\xE0\xE2\xE4 e\xE9\xE8\xEA\xEB i\xEE\xEF o\xF4 u\xF9\xFC} {{gras avec des accents ISO a\xE0\xE2\xE4 e\xE9\xE8\xEA\xEB i\xEE\xEF o\xF4 u\xF9\xFC}} <code>du code avec des accents ISO a\xE0\xE2\xE4 e\xE9\xE8\xEA\xEB i\xEE\xEF o\xF4 u\xF9\xFC</code>",
194
+            ],
195
+            41 => [
196
+                0 => 'un_modele_avec_des_accents_iso_a_e_i_o_u_https_www_spip_net',
197
+                1 => "Un modele avec des accents ISO a\xE0\xE2\xE4 e\xE9\xE8\xEA\xEB i\xEE\xEF o\xF4 u\xF9\xFC <modeleinexistant|lien=[avec des accents ISO a\xE0\xE2\xE4 e\xE9\xE8\xEA\xEB i\xEE\xEF o\xF4 u\xF9\xFC->https://www.spip.net]>",
198
+            ],
199
+            42 => [
200
+                0 => 'un_texte_avec_des_retour_a_la_ligne_et_meme_des_paragraphes_',
201
+                1 => 'Un texte avec des retour
202 202
 a la ligne et meme des
203 203
 
204 204
 paragraphes avec des accents ISO a\xE0\xE2\xE4 e\xE9\xE8\xEA\xEB i\xEE\xEF o\xF4 u\xF9\xFC',
205
-			],
206
-			43 => [
207
-				0 => 'un_texte_avec_des_liens_avec_des_accents_utf_8_aaaa_eeeee_ii',
208
-				1 => 'Un texte avec des <a href="http://spip.net">liens avec des accents UTF-8 aàâä eéèêë iîï oô uùü</a> [Article 1 avec des accents UTF-8 aàâä eéèêë iîï oô uùü->art1] [spip avec des accents UTF-8 aàâä eéèêë iîï oô uùü->https://www.spip.net] https://www.spip.net',
209
-			],
210
-			44 => [
211
-				0 => 'un_texte_avec_des_entites_et_avec_des_accents_utf_8_aaaa_eee',
212
-				1 => 'Un texte avec des entit&eacute;s &amp;&lt;&gt;&quot; et avec des accents UTF-8 aàâä eéèêë iîï oô uùü',
213
-			],
214
-			45 => [
215
-				0 => 'un_texte_avec_des_entit_eacute_s_echap_eacute_amp_et_avec_de',
216
-				1 => 'Un texte avec des entit&amp;eacute;s echap&amp;eacute; &amp;amp;&amp;lt;&amp;gt;&amp;quot; et avec des accents UTF-8 aàâä eéèêë iîï oô uùü',
217
-			],
218
-			46 => [
219
-				0 => 'un_texte_avec_des_entites_numeriques_38_60_62_et_avec_des_ac',
220
-				1 => 'Un texte avec des entit&#233;s num&#233;riques &#38;&#60;&#62;&quot; et avec des accents UTF-8 aàâä eéèêë iîï oô uùü',
221
-			],
222
-			47 => [
223
-				0 => 'un_texte_avec_des_entites_numeriques_echapees_38_60_62_et_av',
224
-				1 => 'Un texte avec des entit&amp;#233;s num&amp;#233;riques echap&amp;#233;es &amp;#38;&amp;#60;&amp;#62;&amp;quot; et avec des accents UTF-8 aàâä eéèêë iîï oô uùü',
225
-			],
226
-			48 => [
227
-				0 => 'un_texte_sans_entites_et_avec_des_accents_utf_8_aaaa_eeeee_i',
228
-				1 => 'Un texte sans entites &<>"\' et avec des accents UTF-8 aàâä eéèêë iîï oô uùü',
229
-			],
230
-			49 => [
231
-				0 => 'des_raccourcis_avec_des_accents_utf_8_aaaa_eeeee_iii_oo_uuu_',
232
-				1 => '{{{Des raccourcis avec des accents UTF-8 aàâä eéèêë iîï oô uùü}}} {italique avec des accents UTF-8 aàâä eéèêë iîï oô uùü} {{gras avec des accents UTF-8 aàâä eéèêë iîï oô uùü}} <code>du code avec des accents UTF-8 aàâä eéèêë iîï oô uùü</code>',
233
-			],
234
-			50 => [
235
-				0 => 'un_modele_avec_des_accents_utf_8_aaaa_eeeee_iii_oo_uuu_https',
236
-				1 => 'Un modele avec des accents UTF-8 aàâä eéèêë iîï oô uùü <modeleinexistant|lien=[avec des accents UTF-8 aàâä eéèêë iîï oô uùü->https://www.spip.net]>',
237
-			],
238
-			51 => [
239
-				0 => 'un_texte_avec_des_retour_a_la_ligne_et_meme_des_paragraphes_',
240
-				1 => 'Un texte avec des retour
205
+            ],
206
+            43 => [
207
+                0 => 'un_texte_avec_des_liens_avec_des_accents_utf_8_aaaa_eeeee_ii',
208
+                1 => 'Un texte avec des <a href="http://spip.net">liens avec des accents UTF-8 aàâä eéèêë iîï oô uùü</a> [Article 1 avec des accents UTF-8 aàâä eéèêë iîï oô uùü->art1] [spip avec des accents UTF-8 aàâä eéèêë iîï oô uùü->https://www.spip.net] https://www.spip.net',
209
+            ],
210
+            44 => [
211
+                0 => 'un_texte_avec_des_entites_et_avec_des_accents_utf_8_aaaa_eee',
212
+                1 => 'Un texte avec des entit&eacute;s &amp;&lt;&gt;&quot; et avec des accents UTF-8 aàâä eéèêë iîï oô uùü',
213
+            ],
214
+            45 => [
215
+                0 => 'un_texte_avec_des_entit_eacute_s_echap_eacute_amp_et_avec_de',
216
+                1 => 'Un texte avec des entit&amp;eacute;s echap&amp;eacute; &amp;amp;&amp;lt;&amp;gt;&amp;quot; et avec des accents UTF-8 aàâä eéèêë iîï oô uùü',
217
+            ],
218
+            46 => [
219
+                0 => 'un_texte_avec_des_entites_numeriques_38_60_62_et_avec_des_ac',
220
+                1 => 'Un texte avec des entit&#233;s num&#233;riques &#38;&#60;&#62;&quot; et avec des accents UTF-8 aàâä eéèêë iîï oô uùü',
221
+            ],
222
+            47 => [
223
+                0 => 'un_texte_avec_des_entites_numeriques_echapees_38_60_62_et_av',
224
+                1 => 'Un texte avec des entit&amp;#233;s num&amp;#233;riques echap&amp;#233;es &amp;#38;&amp;#60;&amp;#62;&amp;quot; et avec des accents UTF-8 aàâä eéèêë iîï oô uùü',
225
+            ],
226
+            48 => [
227
+                0 => 'un_texte_sans_entites_et_avec_des_accents_utf_8_aaaa_eeeee_i',
228
+                1 => 'Un texte sans entites &<>"\' et avec des accents UTF-8 aàâä eéèêë iîï oô uùü',
229
+            ],
230
+            49 => [
231
+                0 => 'des_raccourcis_avec_des_accents_utf_8_aaaa_eeeee_iii_oo_uuu_',
232
+                1 => '{{{Des raccourcis avec des accents UTF-8 aàâä eéèêë iîï oô uùü}}} {italique avec des accents UTF-8 aàâä eéèêë iîï oô uùü} {{gras avec des accents UTF-8 aàâä eéèêë iîï oô uùü}} <code>du code avec des accents UTF-8 aàâä eéèêë iîï oô uùü</code>',
233
+            ],
234
+            50 => [
235
+                0 => 'un_modele_avec_des_accents_utf_8_aaaa_eeeee_iii_oo_uuu_https',
236
+                1 => 'Un modele avec des accents UTF-8 aàâä eéèêë iîï oô uùü <modeleinexistant|lien=[avec des accents UTF-8 aàâä eéèêë iîï oô uùü->https://www.spip.net]>',
237
+            ],
238
+            51 => [
239
+                0 => 'un_texte_avec_des_retour_a_la_ligne_et_meme_des_paragraphes_',
240
+                1 => 'Un texte avec des retour
241 241
 a la ligne et meme des
242 242
 
243 243
 paragraphes avec des accents UTF-8 aàâä eéèêë iîï oô uùü',
244
-			],
245
-			52 => [
246
-				0 => 'c0',
247
-				1 => 0,
248
-				2 => 'class',
249
-			],
250
-			53 => [
251
-				0 => 'c1',
252
-				1 => -1,
253
-				2 => 'class',
254
-			],
255
-			54 => [
256
-				0 => 'c1',
257
-				1 => 1,
258
-				2 => 'class',
259
-			],
260
-			55 => [
261
-				0 => 'c2',
262
-				1 => 2,
263
-				2 => 'class',
264
-			],
265
-			56 => [
266
-				0 => 'c3',
267
-				1 => 3,
268
-				2 => 'class',
269
-			],
270
-			57 => [
271
-				0 => 'c4',
272
-				1 => 4,
273
-				2 => 'class',
274
-			],
275
-			58 => [
276
-				0 => 'c5',
277
-				1 => 5,
278
-				2 => 'class',
279
-			],
280
-			59 => [
281
-				0 => 'c6',
282
-				1 => 6,
283
-				2 => 'class',
284
-			],
285
-			60 => [
286
-				0 => 'c7',
287
-				1 => 7,
288
-				2 => 'class',
289
-			],
290
-			61 => [
291
-				0 => 'c10',
292
-				1 => 10,
293
-				2 => 'class',
294
-			],
295
-			62 => [
296
-				0 => 'c20',
297
-				1 => 20,
298
-				2 => 'class',
299
-			],
300
-			63 => [
301
-				0 => 'c30',
302
-				1 => 30,
303
-				2 => 'class',
304
-			],
305
-			64 => [
306
-				0 => 'c50',
307
-				1 => 50,
308
-				2 => 'class',
309
-			],
310
-			65 => [
311
-				0 => 'c100',
312
-				1 => 100,
313
-				2 => 'class',
314
-			],
315
-			66 => [
316
-				0 => 'c1000',
317
-				1 => 1000,
318
-				2 => 'class',
319
-			],
320
-			67 => [
321
-				0 => 'c10000',
322
-				1 => 10000,
323
-				2 => 'class',
324
-			],
325
-			68 => [
326
-				0 => 'i0',
327
-				1 => 0,
328
-				2 => 'id',
329
-			],
330
-			69 => [
331
-				0 => 'i1',
332
-				1 => -1,
333
-				2 => 'id',
334
-			],
335
-			70 => [
336
-				0 => 'i1',
337
-				1 => 1,
338
-				2 => 'id',
339
-			],
340
-			71 => [
341
-				0 => 'i2',
342
-				1 => 2,
343
-				2 => 'id',
344
-			],
345
-			72 => [
346
-				0 => 'i3',
347
-				1 => 3,
348
-				2 => 'id',
349
-			],
350
-			73 => [
351
-				0 => 'i4',
352
-				1 => 4,
353
-				2 => 'id',
354
-			],
355
-			74 => [
356
-				0 => 'i5',
357
-				1 => 5,
358
-				2 => 'id',
359
-			],
360
-			75 => [
361
-				0 => 'i6',
362
-				1 => 6,
363
-				2 => 'id',
364
-			],
365
-			76 => [
366
-				0 => 'i7',
367
-				1 => 7,
368
-				2 => 'id',
369
-			],
370
-			77 => [
371
-				0 => 'i10',
372
-				1 => 10,
373
-				2 => 'id',
374
-			],
375
-			78 => [
376
-				0 => 'i20',
377
-				1 => 20,
378
-				2 => 'id',
379
-			],
380
-			79 => [
381
-				0 => 'i30',
382
-				1 => 30,
383
-				2 => 'id',
384
-			],
385
-			80 => [
386
-				0 => 'i50',
387
-				1 => 50,
388
-				2 => 'id',
389
-			],
390
-			81 => [
391
-				0 => 'i100',
392
-				1 => 100,
393
-				2 => 'id',
394
-			],
395
-			82 => [
396
-				0 => 'i1000',
397
-				1 => 1000,
398
-				2 => 'id',
399
-			],
400
-			83 => [
401
-				0 => 'i10000',
402
-				1 => 10000,
403
-				2 => 'id',
404
-			],
405
-			84 => [
406
-				0 => 'a0',
407
-				1 => 0,
408
-				2 => 'anchor',
409
-			],
410
-			85 => [
411
-				0 => 'a1',
412
-				1 => -1,
413
-				2 => 'anchor',
414
-			],
415
-			86 => [
416
-				0 => 'a1',
417
-				1 => 1,
418
-				2 => 'anchor',
419
-			],
420
-			87 => [
421
-				0 => 'a2',
422
-				1 => 2,
423
-				2 => 'anchor',
424
-			],
425
-			88 => [
426
-				0 => 'a3',
427
-				1 => 3,
428
-				2 => 'anchor',
429
-			],
430
-			89 => [
431
-				0 => 'a4',
432
-				1 => 4,
433
-				2 => 'anchor',
434
-			],
435
-			90 => [
436
-				0 => 'a5',
437
-				1 => 5,
438
-				2 => 'anchor',
439
-			],
440
-			91 => [
441
-				0 => 'a6',
442
-				1 => 6,
443
-				2 => 'anchor',
444
-			],
445
-			92 => [
446
-				0 => 'a7',
447
-				1 => 7,
448
-				2 => 'anchor',
449
-			],
450
-			93 => [
451
-				0 => 'a10',
452
-				1 => 10,
453
-				2 => 'anchor',
454
-			],
455
-			94 => [
456
-				0 => 'a20',
457
-				1 => 20,
458
-				2 => 'anchor',
459
-			],
460
-			95 => [
461
-				0 => 'a30',
462
-				1 => 30,
463
-				2 => 'anchor',
464
-			],
465
-			96 => [
466
-				0 => 'a50',
467
-				1 => 50,
468
-				2 => 'anchor',
469
-			],
470
-			97 => [
471
-				0 => 'a100',
472
-				1 => 100,
473
-				2 => 'anchor',
474
-			],
475
-			98 => [
476
-				0 => 'a1000',
477
-				1 => 1000,
478
-				2 => 'anchor',
479
-			],
480
-			99 => [
481
-				0 => 'a10000',
482
-				1 => 10000,
483
-				2 => 'anchor',
484
-			],
485
-			100 => [
486
-				0 => '0',
487
-				1 => 0,
488
-				2 => 'name',
489
-			],
490
-			101 => [
491
-				0 => '1',
492
-				1 => -1,
493
-				2 => 'name',
494
-			],
495
-			102 => [
496
-				0 => '1',
497
-				1 => 1,
498
-				2 => 'name',
499
-			],
500
-			103 => [
501
-				0 => '2',
502
-				1 => 2,
503
-				2 => 'name',
504
-			],
505
-			104 => [
506
-				0 => '3',
507
-				1 => 3,
508
-				2 => 'name',
509
-			],
510
-			105 => [
511
-				0 => '4',
512
-				1 => 4,
513
-				2 => 'name',
514
-			],
515
-			106 => [
516
-				0 => '5',
517
-				1 => 5,
518
-				2 => 'name',
519
-			],
520
-			107 => [
521
-				0 => '6',
522
-				1 => 6,
523
-				2 => 'name',
524
-			],
525
-			108 => [
526
-				0 => '7',
527
-				1 => 7,
528
-				2 => 'name',
529
-			],
530
-			109 => [
531
-				0 => '10',
532
-				1 => 10,
533
-				2 => 'name',
534
-			],
535
-			110 => [
536
-				0 => '20',
537
-				1 => 20,
538
-				2 => 'name',
539
-			],
540
-			111 => [
541
-				0 => '30',
542
-				1 => 30,
543
-				2 => 'name',
544
-			],
545
-			112 => [
546
-				0 => '50',
547
-				1 => 50,
548
-				2 => 'name',
549
-			],
550
-			113 => [
551
-				0 => '100',
552
-				1 => 100,
553
-				2 => 'name',
554
-			],
555
-			114 => [
556
-				0 => '1000',
557
-				1 => 1000,
558
-				2 => 'name',
559
-			],
560
-			115 => [
561
-				0 => '10000',
562
-				1 => 10000,
563
-				2 => 'name',
564
-			],
565
-			116 => [
566
-				0 => 's0_cfcd208',
567
-				1 => 0,
568
-				2 => '',
569
-				3 => [
570
-					'longueur_mini' => 10,
571
-				],
572
-			],
573
-			117 => [
574
-				0 => 's1_6bb61e3',
575
-				1 => -1,
576
-				2 => '',
577
-				3 => [
578
-					'longueur_mini' => 10,
579
-				],
580
-			],
581
-			118 => [
582
-				0 => 's1_c4ca423',
583
-				1 => 1,
584
-				2 => '',
585
-				3 => [
586
-					'longueur_mini' => 10,
587
-				],
588
-			],
589
-			119 => [
590
-				0 => 's2_c81e728',
591
-				1 => 2,
592
-				2 => '',
593
-				3 => [
594
-					'longueur_mini' => 10,
595
-				],
596
-			],
597
-			120 => [
598
-				0 => 's3_eccbc87',
599
-				1 => 3,
600
-				2 => '',
601
-				3 => [
602
-					'longueur_mini' => 10,
603
-				],
604
-			],
605
-			121 => [
606
-				0 => 's4_a87ff67',
607
-				1 => 4,
608
-				2 => '',
609
-				3 => [
610
-					'longueur_mini' => 10,
611
-				],
612
-			],
613
-			122 => [
614
-				0 => 's5_e4da3b7',
615
-				1 => 5,
616
-				2 => '',
617
-				3 => [
618
-					'longueur_mini' => 10,
619
-				],
620
-			],
621
-			123 => [
622
-				0 => 's6_1679091',
623
-				1 => 6,
624
-				2 => '',
625
-				3 => [
626
-					'longueur_mini' => 10,
627
-				],
628
-			],
629
-			124 => [
630
-				0 => 's7_8f14e45',
631
-				1 => 7,
632
-				2 => '',
633
-				3 => [
634
-					'longueur_mini' => 10,
635
-				],
636
-			],
637
-			125 => [
638
-				0 => 's10_d3d944',
639
-				1 => 10,
640
-				2 => '',
641
-				3 => [
642
-					'longueur_mini' => 10,
643
-				],
644
-			],
645
-			126 => [
646
-				0 => 's20_98f137',
647
-				1 => 20,
648
-				2 => '',
649
-				3 => [
650
-					'longueur_mini' => 10,
651
-				],
652
-			],
653
-			127 => [
654
-				0 => 's30_34173c',
655
-				1 => 30,
656
-				2 => '',
657
-				3 => [
658
-					'longueur_mini' => 10,
659
-				],
660
-			],
661
-			128 => [
662
-				0 => 's50_c0c7c7',
663
-				1 => 50,
664
-				2 => '',
665
-				3 => [
666
-					'longueur_mini' => 10,
667
-				],
668
-			],
669
-			129 => [
670
-				0 => 's100_f8991',
671
-				1 => 100,
672
-				2 => '',
673
-				3 => [
674
-					'longueur_mini' => 10,
675
-				],
676
-			],
677
-			130 => [
678
-				0 => 's1000_a9b7',
679
-				1 => 1000,
680
-				2 => '',
681
-				3 => [
682
-					'longueur_mini' => 10,
683
-				],
684
-			],
685
-			131 => [
686
-				0 => 's10000_b7a',
687
-				1 => 10000,
688
-				2 => '',
689
-				3 => [
690
-					'longueur_mini' => 10,
691
-				],
692
-			],
693
-		];
694
-	}
244
+            ],
245
+            52 => [
246
+                0 => 'c0',
247
+                1 => 0,
248
+                2 => 'class',
249
+            ],
250
+            53 => [
251
+                0 => 'c1',
252
+                1 => -1,
253
+                2 => 'class',
254
+            ],
255
+            54 => [
256
+                0 => 'c1',
257
+                1 => 1,
258
+                2 => 'class',
259
+            ],
260
+            55 => [
261
+                0 => 'c2',
262
+                1 => 2,
263
+                2 => 'class',
264
+            ],
265
+            56 => [
266
+                0 => 'c3',
267
+                1 => 3,
268
+                2 => 'class',
269
+            ],
270
+            57 => [
271
+                0 => 'c4',
272
+                1 => 4,
273
+                2 => 'class',
274
+            ],
275
+            58 => [
276
+                0 => 'c5',
277
+                1 => 5,
278
+                2 => 'class',
279
+            ],
280
+            59 => [
281
+                0 => 'c6',
282
+                1 => 6,
283
+                2 => 'class',
284
+            ],
285
+            60 => [
286
+                0 => 'c7',
287
+                1 => 7,
288
+                2 => 'class',
289
+            ],
290
+            61 => [
291
+                0 => 'c10',
292
+                1 => 10,
293
+                2 => 'class',
294
+            ],
295
+            62 => [
296
+                0 => 'c20',
297
+                1 => 20,
298
+                2 => 'class',
299
+            ],
300
+            63 => [
301
+                0 => 'c30',
302
+                1 => 30,
303
+                2 => 'class',
304
+            ],
305
+            64 => [
306
+                0 => 'c50',
307
+                1 => 50,
308
+                2 => 'class',
309
+            ],
310
+            65 => [
311
+                0 => 'c100',
312
+                1 => 100,
313
+                2 => 'class',
314
+            ],
315
+            66 => [
316
+                0 => 'c1000',
317
+                1 => 1000,
318
+                2 => 'class',
319
+            ],
320
+            67 => [
321
+                0 => 'c10000',
322
+                1 => 10000,
323
+                2 => 'class',
324
+            ],
325
+            68 => [
326
+                0 => 'i0',
327
+                1 => 0,
328
+                2 => 'id',
329
+            ],
330
+            69 => [
331
+                0 => 'i1',
332
+                1 => -1,
333
+                2 => 'id',
334
+            ],
335
+            70 => [
336
+                0 => 'i1',
337
+                1 => 1,
338
+                2 => 'id',
339
+            ],
340
+            71 => [
341
+                0 => 'i2',
342
+                1 => 2,
343
+                2 => 'id',
344
+            ],
345
+            72 => [
346
+                0 => 'i3',
347
+                1 => 3,
348
+                2 => 'id',
349
+            ],
350
+            73 => [
351
+                0 => 'i4',
352
+                1 => 4,
353
+                2 => 'id',
354
+            ],
355
+            74 => [
356
+                0 => 'i5',
357
+                1 => 5,
358
+                2 => 'id',
359
+            ],
360
+            75 => [
361
+                0 => 'i6',
362
+                1 => 6,
363
+                2 => 'id',
364
+            ],
365
+            76 => [
366
+                0 => 'i7',
367
+                1 => 7,
368
+                2 => 'id',
369
+            ],
370
+            77 => [
371
+                0 => 'i10',
372
+                1 => 10,
373
+                2 => 'id',
374
+            ],
375
+            78 => [
376
+                0 => 'i20',
377
+                1 => 20,
378
+                2 => 'id',
379
+            ],
380
+            79 => [
381
+                0 => 'i30',
382
+                1 => 30,
383
+                2 => 'id',
384
+            ],
385
+            80 => [
386
+                0 => 'i50',
387
+                1 => 50,
388
+                2 => 'id',
389
+            ],
390
+            81 => [
391
+                0 => 'i100',
392
+                1 => 100,
393
+                2 => 'id',
394
+            ],
395
+            82 => [
396
+                0 => 'i1000',
397
+                1 => 1000,
398
+                2 => 'id',
399
+            ],
400
+            83 => [
401
+                0 => 'i10000',
402
+                1 => 10000,
403
+                2 => 'id',
404
+            ],
405
+            84 => [
406
+                0 => 'a0',
407
+                1 => 0,
408
+                2 => 'anchor',
409
+            ],
410
+            85 => [
411
+                0 => 'a1',
412
+                1 => -1,
413
+                2 => 'anchor',
414
+            ],
415
+            86 => [
416
+                0 => 'a1',
417
+                1 => 1,
418
+                2 => 'anchor',
419
+            ],
420
+            87 => [
421
+                0 => 'a2',
422
+                1 => 2,
423
+                2 => 'anchor',
424
+            ],
425
+            88 => [
426
+                0 => 'a3',
427
+                1 => 3,
428
+                2 => 'anchor',
429
+            ],
430
+            89 => [
431
+                0 => 'a4',
432
+                1 => 4,
433
+                2 => 'anchor',
434
+            ],
435
+            90 => [
436
+                0 => 'a5',
437
+                1 => 5,
438
+                2 => 'anchor',
439
+            ],
440
+            91 => [
441
+                0 => 'a6',
442
+                1 => 6,
443
+                2 => 'anchor',
444
+            ],
445
+            92 => [
446
+                0 => 'a7',
447
+                1 => 7,
448
+                2 => 'anchor',
449
+            ],
450
+            93 => [
451
+                0 => 'a10',
452
+                1 => 10,
453
+                2 => 'anchor',
454
+            ],
455
+            94 => [
456
+                0 => 'a20',
457
+                1 => 20,
458
+                2 => 'anchor',
459
+            ],
460
+            95 => [
461
+                0 => 'a30',
462
+                1 => 30,
463
+                2 => 'anchor',
464
+            ],
465
+            96 => [
466
+                0 => 'a50',
467
+                1 => 50,
468
+                2 => 'anchor',
469
+            ],
470
+            97 => [
471
+                0 => 'a100',
472
+                1 => 100,
473
+                2 => 'anchor',
474
+            ],
475
+            98 => [
476
+                0 => 'a1000',
477
+                1 => 1000,
478
+                2 => 'anchor',
479
+            ],
480
+            99 => [
481
+                0 => 'a10000',
482
+                1 => 10000,
483
+                2 => 'anchor',
484
+            ],
485
+            100 => [
486
+                0 => '0',
487
+                1 => 0,
488
+                2 => 'name',
489
+            ],
490
+            101 => [
491
+                0 => '1',
492
+                1 => -1,
493
+                2 => 'name',
494
+            ],
495
+            102 => [
496
+                0 => '1',
497
+                1 => 1,
498
+                2 => 'name',
499
+            ],
500
+            103 => [
501
+                0 => '2',
502
+                1 => 2,
503
+                2 => 'name',
504
+            ],
505
+            104 => [
506
+                0 => '3',
507
+                1 => 3,
508
+                2 => 'name',
509
+            ],
510
+            105 => [
511
+                0 => '4',
512
+                1 => 4,
513
+                2 => 'name',
514
+            ],
515
+            106 => [
516
+                0 => '5',
517
+                1 => 5,
518
+                2 => 'name',
519
+            ],
520
+            107 => [
521
+                0 => '6',
522
+                1 => 6,
523
+                2 => 'name',
524
+            ],
525
+            108 => [
526
+                0 => '7',
527
+                1 => 7,
528
+                2 => 'name',
529
+            ],
530
+            109 => [
531
+                0 => '10',
532
+                1 => 10,
533
+                2 => 'name',
534
+            ],
535
+            110 => [
536
+                0 => '20',
537
+                1 => 20,
538
+                2 => 'name',
539
+            ],
540
+            111 => [
541
+                0 => '30',
542
+                1 => 30,
543
+                2 => 'name',
544
+            ],
545
+            112 => [
546
+                0 => '50',
547
+                1 => 50,
548
+                2 => 'name',
549
+            ],
550
+            113 => [
551
+                0 => '100',
552
+                1 => 100,
553
+                2 => 'name',
554
+            ],
555
+            114 => [
556
+                0 => '1000',
557
+                1 => 1000,
558
+                2 => 'name',
559
+            ],
560
+            115 => [
561
+                0 => '10000',
562
+                1 => 10000,
563
+                2 => 'name',
564
+            ],
565
+            116 => [
566
+                0 => 's0_cfcd208',
567
+                1 => 0,
568
+                2 => '',
569
+                3 => [
570
+                    'longueur_mini' => 10,
571
+                ],
572
+            ],
573
+            117 => [
574
+                0 => 's1_6bb61e3',
575
+                1 => -1,
576
+                2 => '',
577
+                3 => [
578
+                    'longueur_mini' => 10,
579
+                ],
580
+            ],
581
+            118 => [
582
+                0 => 's1_c4ca423',
583
+                1 => 1,
584
+                2 => '',
585
+                3 => [
586
+                    'longueur_mini' => 10,
587
+                ],
588
+            ],
589
+            119 => [
590
+                0 => 's2_c81e728',
591
+                1 => 2,
592
+                2 => '',
593
+                3 => [
594
+                    'longueur_mini' => 10,
595
+                ],
596
+            ],
597
+            120 => [
598
+                0 => 's3_eccbc87',
599
+                1 => 3,
600
+                2 => '',
601
+                3 => [
602
+                    'longueur_mini' => 10,
603
+                ],
604
+            ],
605
+            121 => [
606
+                0 => 's4_a87ff67',
607
+                1 => 4,
608
+                2 => '',
609
+                3 => [
610
+                    'longueur_mini' => 10,
611
+                ],
612
+            ],
613
+            122 => [
614
+                0 => 's5_e4da3b7',
615
+                1 => 5,
616
+                2 => '',
617
+                3 => [
618
+                    'longueur_mini' => 10,
619
+                ],
620
+            ],
621
+            123 => [
622
+                0 => 's6_1679091',
623
+                1 => 6,
624
+                2 => '',
625
+                3 => [
626
+                    'longueur_mini' => 10,
627
+                ],
628
+            ],
629
+            124 => [
630
+                0 => 's7_8f14e45',
631
+                1 => 7,
632
+                2 => '',
633
+                3 => [
634
+                    'longueur_mini' => 10,
635
+                ],
636
+            ],
637
+            125 => [
638
+                0 => 's10_d3d944',
639
+                1 => 10,
640
+                2 => '',
641
+                3 => [
642
+                    'longueur_mini' => 10,
643
+                ],
644
+            ],
645
+            126 => [
646
+                0 => 's20_98f137',
647
+                1 => 20,
648
+                2 => '',
649
+                3 => [
650
+                    'longueur_mini' => 10,
651
+                ],
652
+            ],
653
+            127 => [
654
+                0 => 's30_34173c',
655
+                1 => 30,
656
+                2 => '',
657
+                3 => [
658
+                    'longueur_mini' => 10,
659
+                ],
660
+            ],
661
+            128 => [
662
+                0 => 's50_c0c7c7',
663
+                1 => 50,
664
+                2 => '',
665
+                3 => [
666
+                    'longueur_mini' => 10,
667
+                ],
668
+            ],
669
+            129 => [
670
+                0 => 's100_f8991',
671
+                1 => 100,
672
+                2 => '',
673
+                3 => [
674
+                    'longueur_mini' => 10,
675
+                ],
676
+            ],
677
+            130 => [
678
+                0 => 's1000_a9b7',
679
+                1 => 1000,
680
+                2 => '',
681
+                3 => [
682
+                    'longueur_mini' => 10,
683
+                ],
684
+            ],
685
+            131 => [
686
+                0 => 's10000_b7a',
687
+                1 => 10000,
688
+                2 => '',
689
+                3 => [
690
+                    'longueur_mini' => 10,
691
+                ],
692
+            ],
693
+        ];
694
+    }
695 695
 }
Please login to merge, or discard this patch.
ecrire/tests/Filtre/LabelTest.php 1 patch
Indentation   +73 added lines, -73 removed lines patch added patch discarded remove patch
@@ -20,87 +20,87 @@
 block discarded – undo
20 20
 
21 21
 class LabelTest extends TestCase
22 22
 {
23
-	public static function setUpBeforeClass(): void {
24
-		include_spip('inc/filtres');
25
-		changer_langue('fr');
26
-	}
23
+    public static function setUpBeforeClass(): void {
24
+        include_spip('inc/filtres');
25
+        changer_langue('fr');
26
+    }
27 27
 
28
-	public static function providerlabelNettoyer(): array {
29
-		$list = [
30
-			'bonjour' => 'bonjour',
31
-			'bonjour ' => 'bonjour',
32
-			'bonjour : ' => 'bonjour',
33
-			"bonjour\t:\t" => 'bonjour',
34
-			"bonjour\n:\n" => 'bonjour',
35
-			"boujour\v:\v" => 'boujour',
36
-			"bonjour\u{a0}:\u{a0}" => 'bonjour',
37
-			'bonjour&nbsp;:&nbsp;' => 'bonjour',
38
-			'Ah là là' => 'Ah là là',
39
-		];
40
-		return array_map(null, array_keys($list), array_values($list));
41
-	}
28
+    public static function providerlabelNettoyer(): array {
29
+        $list = [
30
+            'bonjour' => 'bonjour',
31
+            'bonjour ' => 'bonjour',
32
+            'bonjour : ' => 'bonjour',
33
+            "bonjour\t:\t" => 'bonjour',
34
+            "bonjour\n:\n" => 'bonjour',
35
+            "boujour\v:\v" => 'boujour',
36
+            "bonjour\u{a0}:\u{a0}" => 'bonjour',
37
+            'bonjour&nbsp;:&nbsp;' => 'bonjour',
38
+            'Ah là là' => 'Ah là là',
39
+        ];
40
+        return array_map(null, array_keys($list), array_values($list));
41
+    }
42 42
 
43
-	public static function providerlabelNettoyerInitialeMajuscule(): array {
44
-		$list = [
45
-			'bonjour' => 'Bonjour',
46
-			'à l’arrivée : ' => 'À l’arrivée',
47
-			'Êtes-vous prêt·es ? ' => 'Êtes-vous prêt·es ?',
48
-		];
49
-		return array_map(null, array_keys($list), array_values($list));
50
-	}
43
+    public static function providerlabelNettoyerInitialeMajuscule(): array {
44
+        $list = [
45
+            'bonjour' => 'Bonjour',
46
+            'à l’arrivée : ' => 'À l’arrivée',
47
+            'Êtes-vous prêt·es ? ' => 'Êtes-vous prêt·es ?',
48
+        ];
49
+        return array_map(null, array_keys($list), array_values($list));
50
+    }
51 51
 
52
-	public static function providerlabelPonctuer(): array {
53
-		$list = [
54
-			'bonjour' => 'bonjour :',
55
-			'bonjour :' => 'bonjour :',
56
-			'bonjour : ' => 'bonjour :',
57
-			'à la bonne heure : ' => 'à la bonne heure :',
58
-		];
59
-		return array_map(null, array_keys($list), array_values($list));
60
-	}
52
+    public static function providerlabelPonctuer(): array {
53
+        $list = [
54
+            'bonjour' => 'bonjour :',
55
+            'bonjour :' => 'bonjour :',
56
+            'bonjour : ' => 'bonjour :',
57
+            'à la bonne heure : ' => 'à la bonne heure :',
58
+        ];
59
+        return array_map(null, array_keys($list), array_values($list));
60
+    }
61 61
 
62
-	public static function providerlabelPonctuerInitialeMajuscule(): array {
63
-		$list = [
64
-			'bonjour' => 'Bonjour :',
65
-			'à la bonne heure : ' => 'À la bonne heure :',
66
-		];
67
-		return array_map(null, array_keys($list), array_values($list));
68
-	}
62
+    public static function providerlabelPonctuerInitialeMajuscule(): array {
63
+        $list = [
64
+            'bonjour' => 'Bonjour :',
65
+            'à la bonne heure : ' => 'À la bonne heure :',
66
+        ];
67
+        return array_map(null, array_keys($list), array_values($list));
68
+    }
69 69
 
70
-	#[DataProvider('providerLabelNettoyer')]
71
-	public function testLabelNettoyer($source, $expected): void {
72
-		$this->assertEquals($expected, label_nettoyer($source, false));
73
-	}
70
+    #[DataProvider('providerLabelNettoyer')]
71
+    public function testLabelNettoyer($source, $expected): void {
72
+        $this->assertEquals($expected, label_nettoyer($source, false));
73
+    }
74 74
 
75
-	#[Depends('testLabelNettoyer')]
76
-	#[DataProvider('providerLabelNettoyerInitialeMajuscule')]
77
-	public function testLabelNettoyerInitialeMajuscule($source, $expected): void {
78
-		$this->assertEquals($expected, label_nettoyer($source, true));
79
-	}
75
+    #[Depends('testLabelNettoyer')]
76
+    #[DataProvider('providerLabelNettoyerInitialeMajuscule')]
77
+    public function testLabelNettoyerInitialeMajuscule($source, $expected): void {
78
+        $this->assertEquals($expected, label_nettoyer($source, true));
79
+    }
80 80
 
81
-	#[Depends('testLabelNettoyer')]
82
-	#[DataProvider('providerLabelNettoyerInitialeMajuscule')]
83
-	public function testLabelNettoyerInitialeMajusculeParDefaut($source, $expected): void {
84
-		$this->assertEquals($expected, label_nettoyer($source));
85
-	}
81
+    #[Depends('testLabelNettoyer')]
82
+    #[DataProvider('providerLabelNettoyerInitialeMajuscule')]
83
+    public function testLabelNettoyerInitialeMajusculeParDefaut($source, $expected): void {
84
+        $this->assertEquals($expected, label_nettoyer($source));
85
+    }
86 86
 
87
-	#[Depends('testLabelNettoyer')]
88
-	#[DataProvider('providerLabelPonctuer')]
89
-	public function testLabelPonctuer($source, $expected): never {
90
-		// TODO
91
-		$this->markTestSkipped('NIY');
92
-		$this->assertEquals($expected, label_ponctuer($source, false));
93
-	}
87
+    #[Depends('testLabelNettoyer')]
88
+    #[DataProvider('providerLabelPonctuer')]
89
+    public function testLabelPonctuer($source, $expected): never {
90
+        // TODO
91
+        $this->markTestSkipped('NIY');
92
+        $this->assertEquals($expected, label_ponctuer($source, false));
93
+    }
94 94
 
95
-	#[Depends('testLabelNettoyer')]
96
-	#[DataProvider('providerLabelPonctuerInitialeMajuscule')]
97
-	public function testLabelPonctuerInitialeMajuscule($source, $expected): void {
98
-		$this->assertEquals($expected, label_ponctuer($source, true));
99
-	}
95
+    #[Depends('testLabelNettoyer')]
96
+    #[DataProvider('providerLabelPonctuerInitialeMajuscule')]
97
+    public function testLabelPonctuerInitialeMajuscule($source, $expected): void {
98
+        $this->assertEquals($expected, label_ponctuer($source, true));
99
+    }
100 100
 
101
-	#[Depends('testLabelNettoyer')]
102
-	#[DataProvider('providerLabelPonctuerInitialeMajuscule')]
103
-	public function testLabelPonctuerInitialeMajusculeParDefaut($source, $expected): void {
104
-		$this->assertEquals($expected, label_ponctuer($source));
105
-	}
101
+    #[Depends('testLabelNettoyer')]
102
+    #[DataProvider('providerLabelPonctuerInitialeMajuscule')]
103
+    public function testLabelPonctuerInitialeMajusculeParDefaut($source, $expected): void {
104
+        $this->assertEquals($expected, label_ponctuer($source));
105
+    }
106 106
 }
Please login to merge, or discard this patch.
ecrire/tests/Filtre/ProtegerAmpTest.php 1 patch
Indentation   +40 added lines, -40 removed lines patch added patch discarded remove patch
@@ -13,46 +13,46 @@
 block discarded – undo
13 13
 
14 14
 class ProtegerAmpTest extends TestCase
15 15
 {
16
-	public static function setUpBeforeClass(): void {
17
-		find_in_path('inc/filtres.php', '', true);
18
-	}
16
+    public static function setUpBeforeClass(): void {
17
+        find_in_path('inc/filtres.php', '', true);
18
+    }
19 19
 
20
-	#[DataProvider('providerFiltresProtegerAmp')]
21
-	public function testFiltresProtegerAmp($expected, ...$args): void {
22
-		$actual = proteger_amp(...$args);
23
-		$this->assertSame($expected, $actual);
24
-	}
20
+    #[DataProvider('providerFiltresProtegerAmp')]
21
+    public function testFiltresProtegerAmp($expected, ...$args): void {
22
+        $actual = proteger_amp(...$args);
23
+        $this->assertSame($expected, $actual);
24
+    }
25 25
 
26
-	public static function providerFiltresProtegerAmp(): array {
27
-		return [
28
-			0 => [
29
-				0 => '',
30
-				1 => '',
31
-			],
32
-			1 => [
33
-				0 => '0',
34
-				1 => '0',
35
-			],
36
-			2 => [
37
-				0 => 'Un texte avec des <a href="http://spip.net">liens</a> [Article 1->art1] [spip->http://www.spip.net] http://www.spip.net',
38
-				1 => 'Un texte avec des <a href="http://spip.net">liens</a> [Article 1->art1] [spip->http://www.spip.net] http://www.spip.net',
39
-			],
40
-			3 => [
41
-				0 => 'Un texte avec des entit&amp;eacute;s &amp;amp;&amp;lt;&amp;gt;&amp;quot;',
42
-				1 => 'Un texte avec des entit&eacute;s &amp;&lt;&gt;&quot;',
43
-			],
44
-			4 => [
45
-				0 => 'Un texte sans entites &amp;<>"\'',
46
-				1 => 'Un texte sans entites &<>"\'',
47
-			],
48
-			5 => [
49
-				0 => '{{{Des raccourcis}}} {italique} {{gras}} <code>du code</code>',
50
-				1 => '{{{Des raccourcis}}} {italique} {{gras}} <code>du code</code>',
51
-			],
52
-			6 => [
53
-				0 => 'Un modele <modeleinexistant|lien=[->http://www.spip.net]>',
54
-				1 => 'Un modele <modeleinexistant|lien=[->http://www.spip.net]>',
55
-			],
56
-		];
57
-	}
26
+    public static function providerFiltresProtegerAmp(): array {
27
+        return [
28
+            0 => [
29
+                0 => '',
30
+                1 => '',
31
+            ],
32
+            1 => [
33
+                0 => '0',
34
+                1 => '0',
35
+            ],
36
+            2 => [
37
+                0 => 'Un texte avec des <a href="http://spip.net">liens</a> [Article 1->art1] [spip->http://www.spip.net] http://www.spip.net',
38
+                1 => 'Un texte avec des <a href="http://spip.net">liens</a> [Article 1->art1] [spip->http://www.spip.net] http://www.spip.net',
39
+            ],
40
+            3 => [
41
+                0 => 'Un texte avec des entit&amp;eacute;s &amp;amp;&amp;lt;&amp;gt;&amp;quot;',
42
+                1 => 'Un texte avec des entit&eacute;s &amp;&lt;&gt;&quot;',
43
+            ],
44
+            4 => [
45
+                0 => 'Un texte sans entites &amp;<>"\'',
46
+                1 => 'Un texte sans entites &<>"\'',
47
+            ],
48
+            5 => [
49
+                0 => '{{{Des raccourcis}}} {italique} {{gras}} <code>du code</code>',
50
+                1 => '{{{Des raccourcis}}} {italique} {{gras}} <code>du code</code>',
51
+            ],
52
+            6 => [
53
+                0 => 'Un modele <modeleinexistant|lien=[->http://www.spip.net]>',
54
+                1 => 'Un modele <modeleinexistant|lien=[->http://www.spip.net]>',
55
+            ],
56
+        ];
57
+    }
58 58
 }
Please login to merge, or discard this patch.
ecrire/tests/Filtre/AttributHtmlTest.php 2 patches
Indentation   +24 added lines, -24 removed lines patch added patch discarded remove patch
@@ -13,30 +13,30 @@
 block discarded – undo
13 13
 
14 14
 class AttributHtmlTest extends TestCase
15 15
 {
16
-	public static function setUpBeforeClass(): void {
17
-		find_in_path('./inc/filtres.php', '', true);
18
-	}
16
+    public static function setUpBeforeClass(): void {
17
+        find_in_path('./inc/filtres.php', '', true);
18
+    }
19 19
 
20
-	#[DataProvider('providerAttributHtml')]
21
-	public function testAttributHtml($expected, $texte): void {
22
-		$actual = attribut_html($texte);
23
-		$this->assertSame($expected, $actual);
24
-	}
20
+    #[DataProvider('providerAttributHtml')]
21
+    public function testAttributHtml($expected, $texte): void {
22
+        $actual = attribut_html($texte);
23
+        $this->assertSame($expected, $actual);
24
+    }
25 25
 
26
-	public static function providerAttributHtml(): array {
27
-		return [
28
-			0 => [
29
-				'expected' => 'aujourd&#039;hui &gt; &#034;30&#034; &rarr; 50',
30
-				'texte' => 'aujourd\'hui > "30" &rarr; <a href=\'http://www.spip.net\'>50</a>',
31
-			],
32
-			1 => [
33
-				'expected' => 'L&#039;histoire &#039;tr&#232;s&#039; &#034;folle&#034; des m&#233;tas en iitalik',
34
-				'texte' => 'L\'histoire \'tr&egrave;s\' "folle" <strong>des</strong>&nbsp;m&eacute;tas<p>en <em>ii</em>talik</p>',
35
-			],
36
-			2 => [
37
-				'expected' => 'allons &#224; la mer',
38
-				'texte' => 'allons ' . chr(195) . chr(160) . ' la mer', // le a` risque de matcher \s
39
-			],
40
-		];
41
-	}
26
+    public static function providerAttributHtml(): array {
27
+        return [
28
+            0 => [
29
+                'expected' => 'aujourd&#039;hui &gt; &#034;30&#034; &rarr; 50',
30
+                'texte' => 'aujourd\'hui > "30" &rarr; <a href=\'http://www.spip.net\'>50</a>',
31
+            ],
32
+            1 => [
33
+                'expected' => 'L&#039;histoire &#039;tr&#232;s&#039; &#034;folle&#034; des m&#233;tas en iitalik',
34
+                'texte' => 'L\'histoire \'tr&egrave;s\' "folle" <strong>des</strong>&nbsp;m&eacute;tas<p>en <em>ii</em>talik</p>',
35
+            ],
36
+            2 => [
37
+                'expected' => 'allons &#224; la mer',
38
+                'texte' => 'allons ' . chr(195) . chr(160) . ' la mer', // le a` risque de matcher \s
39
+            ],
40
+        ];
41
+    }
42 42
 }
Please login to merge, or discard this patch.
Spacing   +1 added lines, -1 removed lines patch added patch discarded remove patch
@@ -35,7 +35,7 @@
 block discarded – undo
35 35
 			],
36 36
 			2 => [
37 37
 				'expected' => 'allons &#224; la mer',
38
-				'texte' => 'allons ' . chr(195) . chr(160) . ' la mer', // le a` risque de matcher \s
38
+				'texte' => 'allons '.chr(195).chr(160).' la mer', // le a` risque de matcher \s
39 39
 			],
40 40
 		];
41 41
 	}
Please login to merge, or discard this patch.
ecrire/tests/Filtre/CorrigerEntitesHtmlTest.php 1 patch
Indentation   +56 added lines, -56 removed lines patch added patch discarded remove patch
@@ -13,68 +13,68 @@
 block discarded – undo
13 13
 
14 14
 class CorrigerEntitesHtmlTest extends TestCase
15 15
 {
16
-	public static function setUpBeforeClass(): void {
17
-		find_in_path('./inc/filtres.php', '', true);
18
-	}
16
+    public static function setUpBeforeClass(): void {
17
+        find_in_path('./inc/filtres.php', '', true);
18
+    }
19 19
 
20
-	#[DataProvider('providerFiltresCorrigerEntitesHtml')]
21
-	public function testFiltresCorrigerEntitesHtml($expected, ...$args): void {
22
-		$actual = corriger_entites_html(...$args);
23
-		$this->assertSame($expected, $actual);
24
-	}
20
+    #[DataProvider('providerFiltresCorrigerEntitesHtml')]
21
+    public function testFiltresCorrigerEntitesHtml($expected, ...$args): void {
22
+        $actual = corriger_entites_html(...$args);
23
+        $this->assertSame($expected, $actual);
24
+    }
25 25
 
26
-	public static function providerFiltresCorrigerEntitesHtml(): array {
27
-		return [
28
-			0 => [
29
-				0 => '',
30
-				1 => '',
31
-			],
32
-			1 => [
33
-				0 => '0',
34
-				1 => '0',
35
-			],
36
-			2 => [
37
-				0 => 'Un texte avec des <a href="http://spip.net">liens</a> [Article 1->art1] [spip->http://www.spip.net] http://www.spip.net',
38
-				1 => 'Un texte avec des <a href="http://spip.net">liens</a> [Article 1->art1] [spip->http://www.spip.net] http://www.spip.net',
39
-			],
40
-			3 => [
41
-				0 => 'Un texte avec des entit&eacute;s &amp;&lt;&gt;&quot;',
42
-				1 => 'Un texte avec des entit&eacute;s &amp;&lt;&gt;&quot;',
43
-			],
44
-			4 => [
45
-				0 => 'Un texte avec des entit&amp;eacute;s echap&amp;eacute; &amp;&amp;lt;&amp;gt;&amp;quot;',
46
-				1 => 'Un texte avec des entit&amp;eacute;s echap&amp;eacute; &amp;amp;&amp;lt;&amp;gt;&amp;quot;',
47
-			],
48
-			5 => [
49
-				0 => 'Un texte avec des entit&#233;s num&#233;riques &#38;&#60;&#62;&quot;',
50
-				1 => 'Un texte avec des entit&#233;s num&#233;riques &#38;&#60;&#62;&quot;',
51
-			],
52
-			6 => [
53
-				0 => 'Un texte avec des entit&#233;s num&#233;riques echap&#233;es &amp;#38;&amp;#60;&amp;#62;&amp;quot;',
54
-				1 => 'Un texte avec des entit&amp;#233;s num&amp;#233;riques echap&amp;#233;es &amp;#38;&amp;#60;&amp;#62;&amp;quot;',
55
-			],
56
-			7 => [
57
-				0 => 'Un texte sans entites &<>"\'',
58
-				1 => 'Un texte sans entites &<>"\'',
59
-			],
60
-			8 => [
61
-				0 => '{{{Des raccourcis}}} {italique} {{gras}} <code>du code</code>',
62
-				1 => '{{{Des raccourcis}}} {italique} {{gras}} <code>du code</code>',
63
-			],
64
-			9 => [
65
-				0 => 'Un modele <modeleinexistant|lien=[->http://www.spip.net]>',
66
-				1 => 'Un modele <modeleinexistant|lien=[->http://www.spip.net]>',
67
-			],
68
-			10 => [
69
-				0 => 'Un texte avec des retour
26
+    public static function providerFiltresCorrigerEntitesHtml(): array {
27
+        return [
28
+            0 => [
29
+                0 => '',
30
+                1 => '',
31
+            ],
32
+            1 => [
33
+                0 => '0',
34
+                1 => '0',
35
+            ],
36
+            2 => [
37
+                0 => 'Un texte avec des <a href="http://spip.net">liens</a> [Article 1->art1] [spip->http://www.spip.net] http://www.spip.net',
38
+                1 => 'Un texte avec des <a href="http://spip.net">liens</a> [Article 1->art1] [spip->http://www.spip.net] http://www.spip.net',
39
+            ],
40
+            3 => [
41
+                0 => 'Un texte avec des entit&eacute;s &amp;&lt;&gt;&quot;',
42
+                1 => 'Un texte avec des entit&eacute;s &amp;&lt;&gt;&quot;',
43
+            ],
44
+            4 => [
45
+                0 => 'Un texte avec des entit&amp;eacute;s echap&amp;eacute; &amp;&amp;lt;&amp;gt;&amp;quot;',
46
+                1 => 'Un texte avec des entit&amp;eacute;s echap&amp;eacute; &amp;amp;&amp;lt;&amp;gt;&amp;quot;',
47
+            ],
48
+            5 => [
49
+                0 => 'Un texte avec des entit&#233;s num&#233;riques &#38;&#60;&#62;&quot;',
50
+                1 => 'Un texte avec des entit&#233;s num&#233;riques &#38;&#60;&#62;&quot;',
51
+            ],
52
+            6 => [
53
+                0 => 'Un texte avec des entit&#233;s num&#233;riques echap&#233;es &amp;#38;&amp;#60;&amp;#62;&amp;quot;',
54
+                1 => 'Un texte avec des entit&amp;#233;s num&amp;#233;riques echap&amp;#233;es &amp;#38;&amp;#60;&amp;#62;&amp;quot;',
55
+            ],
56
+            7 => [
57
+                0 => 'Un texte sans entites &<>"\'',
58
+                1 => 'Un texte sans entites &<>"\'',
59
+            ],
60
+            8 => [
61
+                0 => '{{{Des raccourcis}}} {italique} {{gras}} <code>du code</code>',
62
+                1 => '{{{Des raccourcis}}} {italique} {{gras}} <code>du code</code>',
63
+            ],
64
+            9 => [
65
+                0 => 'Un modele <modeleinexistant|lien=[->http://www.spip.net]>',
66
+                1 => 'Un modele <modeleinexistant|lien=[->http://www.spip.net]>',
67
+            ],
68
+            10 => [
69
+                0 => 'Un texte avec des retour
70 70
 a la ligne et meme des
71 71
 
72 72
 paragraphes',
73
-				1 => 'Un texte avec des retour
73
+                1 => 'Un texte avec des retour
74 74
 a la ligne et meme des
75 75
 
76 76
 paragraphes',
77
-			],
78
-		];
79
-	}
77
+            ],
78
+        ];
79
+    }
80 80
 }
Please login to merge, or discard this patch.
ecrire/tests/Filtre/ExtraireAttributTest.php 1 patch
Indentation   +197 added lines, -197 removed lines patch added patch discarded remove patch
@@ -9,214 +9,214 @@
 block discarded – undo
9 9
 
10 10
 class ExtraireAttributTest extends TestCase
11 11
 {
12
-	public static function setUpBeforeClass(): void {
13
-		find_in_path('inc/filtres.php', '', true);
14
-	}
12
+    public static function setUpBeforeClass(): void {
13
+        find_in_path('inc/filtres.php', '', true);
14
+    }
15 15
 
16
-	#[DataProvider('providerExtraireAttribut')]
17
-	public function testExtraireAttribut($expected, ...$args): void {
18
-		$actual = extraire_attribut(...$args);
19
-		$this->assertSame($expected, $actual);
20
-	}
16
+    #[DataProvider('providerExtraireAttribut')]
17
+    public function testExtraireAttribut($expected, ...$args): void {
18
+        $actual = extraire_attribut(...$args);
19
+        $this->assertSame($expected, $actual);
20
+    }
21 21
 
22
-	public static function providerExtraireAttribut(): array {
23
-		find_in_path('inc/filtres.php', '', true);
24
-		return [
25
-			'img-src' => [
26
-				'expected' => 'sha\'dok',
27
-				'balise' => '<img src="sha\'dok" width="10" height=100 />',
28
-				'attribut' => 'src',
29
-			],
30
-			'img-width' => [
31
-				'expected' => '10',
32
-				'balise' => '<img src="sha\'dok" width="10" height=100 />',
33
-				'attribut' => 'width',
34
-			],
35
-			'img-height' => [
36
-				'expected' => '100',
37
-				'balise' => '<img src="sha\'dok" width="10" height=100 />',
38
-				'attribut' => 'height',
39
-			],
40
-			'img-entites' => [
41
-				'expected' => '"&#38;\'',
42
-				'balise' => inserer_attribut('<img width=10>', 'src', '"&\''),
43
-				'attribut' => 'src',
44
-			],
45
-			'img-entites-width' => [
46
-				'expected' => '10',
47
-				'balise' => inserer_attribut('<img width=10>', 'src', '"&\''),
48
-				'attribut' => 'width',
49
-			],
50
-			// Dans les crayons on s'etait fait avoir par un titre
51
-			// qui valait "<span class="color:xxx;">Titre</span>
52
-			// et que inserer_attribut detruisait en inserant a tort
53
-			// le style='width:560px' dans l'attribut value="" du <input/>
54
-			// (bon je sais c'est pas clair)
55
-			'attribut imbrique' => [
56
-				'expected' => '<span style="color:red;">ho</span>',
57
-				'balise' => inserer_attribut(
58
-					inserer_attribut('<input />', 'value', '<span style="color:red;">ho</span>'),
59
-					'style',
60
-					'width: 120px;'
61
-				),
62
-				'attribut' => 'value',
63
-			],
64
-			// attribut autodefini
65
-			'attribut autodefini #1' => [
66
-				'expected' => 'checked',
67
-				'balise' => '<input checked />',
68
-				'attribut' => 'checked',
69
-			],
70
-			'attribut autodefini #2' => [
71
-				'expected' => 'checked',
72
-				'balise' => '<input checked/>',
73
-				'attribut' => 'checked',
74
-			],
75
-			'attribut autodefini #3' => [
76
-				'expected' => 'checked',
77
-				'balise' => '<input checked>',
78
-				'attribut' => 'checked',
79
-			],
80
-			// inserer un attribut deja existant
81
-			'remplacement attribut' => [
82
-				'expected' => 'b',
83
-				'balise' => inserer_attribut('<img src="a" width=12>', 'src', 'b'),
84
-				'attribut' => 'src',
85
-			],
86
-			// Ne pas confondre "", "0" et attribut autodefini
87
-			'title=\'\'' => [
88
-				'expected' => '',
89
-				'balise' => '<a title=\'\'>',
90
-				'attribut' => 'title',
91
-			],
92
-			'title=""' => [
93
-				'expected' => '',
94
-				'balise' => '<a title="">',
95
-				'attribut' => 'title',
96
-			],
97
-			'width=0' => [
98
-				'expected' => '0',
99
-				'balise' => '<img width=0>',
100
-				'attribut' => 'width',
101
-			],
102
-			'width=\'0\'' => [
103
-				'expected' => '0',
104
-				'balise' => '<img width=\'0\'>',
105
-				'attribut' => 'width',
106
-			],
107
-			'width="0"' => [
108
-				'expected' => '0',
109
-				'balise' => '<img width="0">',
110
-				'attribut' => 'width',
111
-			],
112
-			// extraire un attribut d'une balise xml:truc :
113
-			'xml:deuxpoints' => [
114
-				'expected' => 'a',
115
-				'balise' => '<chose:truc machin=\'a\'/>',
116
-				'attribut' => 'machin',
117
-			],
118
-			// manipuler des listes de balises
119
-			'liste' => [
120
-				'expected' => ['a', 'b'],
121
-				'balise' => ['<chose machin="a"/>', '<chose machin="b"/>'],
122
-				'attribut' => 'machin',
123
-			],
124
-			// ne pas confondre d’attribut
125
-			'nom attribut partiel #1' => [
126
-				'expected' => null,
127
-				'balise' => '<img mysrc="test">',
128
-				'attribut' => 'src',
129
-			],
130
-			'nom attribut partiel #2' => [
131
-				'expected' => null,
132
-				'balise' => '<img src-alt="test">',
133
-				'attribut' => 'src',
134
-			],
135
-			'nom attribut partiel #3' => [
136
-				'expected' => null,
137
-				'balise' => '<img data-src="test">',
138
-				'attribut' => 'src',
139
-			],
140
-			// Attrapper un attribut d'un tag interne (oui oui)...
141
-			'extraction tag interne' => [
142
-				'expected' => 'image',
143
-				'balise' => '<a href="url"><img src="image" /></a>',
144
-				'attribut' => 'src',
145
-			],
146
-			// autoriser les points et tirets dans les attributs
147
-			'points et tirets #1' => [
148
-				'expected' => '1',
149
-				'balise' => '<bidule chose.truc="yo" machin-lol="ouais" toto="1" />',
150
-				'attribut' => 'toto',
151
-			],
152
-			'points et tirets #2' => [
153
-				'expected' => 'yo',
154
-				'balise' => '<bidule chose.truc="yo" machin-lol="ouais" toto="1" />',
155
-				'attribut' => 'chose.truc',
156
-			],
157
-			'points et tirets #3' => [
158
-				'expected' => 'ouais',
159
-				'balise' => '<bidule chose.truc="yo" machin-lol="ouais" toto="1" />',
160
-				'attribut' => 'machin-lol',
161
-			],
162
-			'tirets et pas tirets #1' => [
163
-				'expected' => 'a',
164
-				'balise' => '<bidule toto-a="a" toto="1" toto-b="b" />',
165
-				'attribut' => 'toto-a',
166
-			],
167
-			'tirets et pas tirets #2' => [
168
-				'expected' => 'b',
169
-				'balise' => '<bidule toto-a="a" toto="1" toto-b="b" />',
170
-				'attribut' => 'toto-b',
171
-			],
172
-			'tirets et pas tirets #3' => [
173
-				'expected' => '1',
174
-				'balise' => '<bidule toto-a="a" toto="1" toto-b="b" />',
175
-				'attribut' => 'toto',
176
-			],
177
-		];
178
-	}
22
+    public static function providerExtraireAttribut(): array {
23
+        find_in_path('inc/filtres.php', '', true);
24
+        return [
25
+            'img-src' => [
26
+                'expected' => 'sha\'dok',
27
+                'balise' => '<img src="sha\'dok" width="10" height=100 />',
28
+                'attribut' => 'src',
29
+            ],
30
+            'img-width' => [
31
+                'expected' => '10',
32
+                'balise' => '<img src="sha\'dok" width="10" height=100 />',
33
+                'attribut' => 'width',
34
+            ],
35
+            'img-height' => [
36
+                'expected' => '100',
37
+                'balise' => '<img src="sha\'dok" width="10" height=100 />',
38
+                'attribut' => 'height',
39
+            ],
40
+            'img-entites' => [
41
+                'expected' => '"&#38;\'',
42
+                'balise' => inserer_attribut('<img width=10>', 'src', '"&\''),
43
+                'attribut' => 'src',
44
+            ],
45
+            'img-entites-width' => [
46
+                'expected' => '10',
47
+                'balise' => inserer_attribut('<img width=10>', 'src', '"&\''),
48
+                'attribut' => 'width',
49
+            ],
50
+            // Dans les crayons on s'etait fait avoir par un titre
51
+            // qui valait "<span class="color:xxx;">Titre</span>
52
+            // et que inserer_attribut detruisait en inserant a tort
53
+            // le style='width:560px' dans l'attribut value="" du <input/>
54
+            // (bon je sais c'est pas clair)
55
+            'attribut imbrique' => [
56
+                'expected' => '<span style="color:red;">ho</span>',
57
+                'balise' => inserer_attribut(
58
+                    inserer_attribut('<input />', 'value', '<span style="color:red;">ho</span>'),
59
+                    'style',
60
+                    'width: 120px;'
61
+                ),
62
+                'attribut' => 'value',
63
+            ],
64
+            // attribut autodefini
65
+            'attribut autodefini #1' => [
66
+                'expected' => 'checked',
67
+                'balise' => '<input checked />',
68
+                'attribut' => 'checked',
69
+            ],
70
+            'attribut autodefini #2' => [
71
+                'expected' => 'checked',
72
+                'balise' => '<input checked/>',
73
+                'attribut' => 'checked',
74
+            ],
75
+            'attribut autodefini #3' => [
76
+                'expected' => 'checked',
77
+                'balise' => '<input checked>',
78
+                'attribut' => 'checked',
79
+            ],
80
+            // inserer un attribut deja existant
81
+            'remplacement attribut' => [
82
+                'expected' => 'b',
83
+                'balise' => inserer_attribut('<img src="a" width=12>', 'src', 'b'),
84
+                'attribut' => 'src',
85
+            ],
86
+            // Ne pas confondre "", "0" et attribut autodefini
87
+            'title=\'\'' => [
88
+                'expected' => '',
89
+                'balise' => '<a title=\'\'>',
90
+                'attribut' => 'title',
91
+            ],
92
+            'title=""' => [
93
+                'expected' => '',
94
+                'balise' => '<a title="">',
95
+                'attribut' => 'title',
96
+            ],
97
+            'width=0' => [
98
+                'expected' => '0',
99
+                'balise' => '<img width=0>',
100
+                'attribut' => 'width',
101
+            ],
102
+            'width=\'0\'' => [
103
+                'expected' => '0',
104
+                'balise' => '<img width=\'0\'>',
105
+                'attribut' => 'width',
106
+            ],
107
+            'width="0"' => [
108
+                'expected' => '0',
109
+                'balise' => '<img width="0">',
110
+                'attribut' => 'width',
111
+            ],
112
+            // extraire un attribut d'une balise xml:truc :
113
+            'xml:deuxpoints' => [
114
+                'expected' => 'a',
115
+                'balise' => '<chose:truc machin=\'a\'/>',
116
+                'attribut' => 'machin',
117
+            ],
118
+            // manipuler des listes de balises
119
+            'liste' => [
120
+                'expected' => ['a', 'b'],
121
+                'balise' => ['<chose machin="a"/>', '<chose machin="b"/>'],
122
+                'attribut' => 'machin',
123
+            ],
124
+            // ne pas confondre d’attribut
125
+            'nom attribut partiel #1' => [
126
+                'expected' => null,
127
+                'balise' => '<img mysrc="test">',
128
+                'attribut' => 'src',
129
+            ],
130
+            'nom attribut partiel #2' => [
131
+                'expected' => null,
132
+                'balise' => '<img src-alt="test">',
133
+                'attribut' => 'src',
134
+            ],
135
+            'nom attribut partiel #3' => [
136
+                'expected' => null,
137
+                'balise' => '<img data-src="test">',
138
+                'attribut' => 'src',
139
+            ],
140
+            // Attrapper un attribut d'un tag interne (oui oui)...
141
+            'extraction tag interne' => [
142
+                'expected' => 'image',
143
+                'balise' => '<a href="url"><img src="image" /></a>',
144
+                'attribut' => 'src',
145
+            ],
146
+            // autoriser les points et tirets dans les attributs
147
+            'points et tirets #1' => [
148
+                'expected' => '1',
149
+                'balise' => '<bidule chose.truc="yo" machin-lol="ouais" toto="1" />',
150
+                'attribut' => 'toto',
151
+            ],
152
+            'points et tirets #2' => [
153
+                'expected' => 'yo',
154
+                'balise' => '<bidule chose.truc="yo" machin-lol="ouais" toto="1" />',
155
+                'attribut' => 'chose.truc',
156
+            ],
157
+            'points et tirets #3' => [
158
+                'expected' => 'ouais',
159
+                'balise' => '<bidule chose.truc="yo" machin-lol="ouais" toto="1" />',
160
+                'attribut' => 'machin-lol',
161
+            ],
162
+            'tirets et pas tirets #1' => [
163
+                'expected' => 'a',
164
+                'balise' => '<bidule toto-a="a" toto="1" toto-b="b" />',
165
+                'attribut' => 'toto-a',
166
+            ],
167
+            'tirets et pas tirets #2' => [
168
+                'expected' => 'b',
169
+                'balise' => '<bidule toto-a="a" toto="1" toto-b="b" />',
170
+                'attribut' => 'toto-b',
171
+            ],
172
+            'tirets et pas tirets #3' => [
173
+                'expected' => '1',
174
+                'balise' => '<bidule toto-a="a" toto="1" toto-b="b" />',
175
+                'attribut' => 'toto',
176
+            ],
177
+        ];
178
+    }
179 179
 
180
-	public function testExtraireAttributSpecial() {
181
-		$this->assertStringNotContainsString(
182
-			'x',
183
-			inserer_attribut('<a><img src="x"/></a>', 'src', 'y'),
184
-			'erreur remplacement tag interne'
185
-		);
180
+    public function testExtraireAttributSpecial() {
181
+        $this->assertStringNotContainsString(
182
+            'x',
183
+            inserer_attribut('<a><img src="x"/></a>', 'src', 'y'),
184
+            'erreur remplacement tag interne'
185
+        );
186 186
 
187
-		$balise = <<<HTML
187
+        $balise = <<<HTML
188 188
 			<img
189 189
 				src='sites/sunny/local/cache-gd2/648a4f8c1b5f8885415bc80228800d87.png'
190 190
 				width='96' height='96' style='height:96px;width:96px;'
191 191
 				class='format_png' />
192 192
 			HTML;
193
-		$this->assertSame(
194
-			'sites/sunny/local/cache-gd2/648a4f8c1b5f8885415bc80228800d87.png',
195
-			extraire_attribut($balise, 'src'),
196
-			'Une image + src parfois ca casse, va comprendre'
197
-		);
198
-	}
193
+        $this->assertSame(
194
+            'sites/sunny/local/cache-gd2/648a4f8c1b5f8885415bc80228800d87.png',
195
+            extraire_attribut($balise, 'src'),
196
+            'Une image + src parfois ca casse, va comprendre'
197
+        );
198
+    }
199 199
 
200 200
 
201
-	#[DataProvider('providerBase64')]
202
-	public function testBase64($expected, ...$args): void {
203
-		$actual = extraire_attribut(...$args);
204
-		$this->assertSame($expected, $actual);
205
-	}
201
+    #[DataProvider('providerBase64')]
202
+    public function testBase64($expected, ...$args): void {
203
+        $actual = extraire_attribut(...$args);
204
+        $this->assertSame($expected, $actual);
205
+    }
206 206
 
207
-	public static function providerBase64(): array {
208
-		return [
209
-			'base64 #1' => [
210
-				'expected' => 'PGEgbmFtZT0nZm9ybTEnPjwvYT4KPGRpdiBjbGFzcz0nc3BpcF9mb3Jtcyc+Cgo8ZGl2IGNsYXNzPSdzcGlwX2Rlc2NyaXB0aWYnPjwvZGl2PgoKCgoKIAoJIAoJPGZvcm0gbWV0aG9kPSdwb3N0JyBhY3Rpb249J0NvbnRhY3QuaHRtbCNmb3JtMScKCQllbmN0eXBlPSdtdWx0aXBhcnQvZm9ybS1kYXRhJz4KCQkKCQk8ZGl2PgoJCQoJCTxpbnB1dCB0eXBlPSdoaWRkZW4nIG5hbWU9J2Fqb3V0X3JlcG9uc2UnIHZhbHVlPScxJyAvPgoJCTxpbnB1dCB0eXBlPSdoaWRkZW4nIG5hbWU9J2lkX2Rvbm5lZScgdmFsdWU9Jy0xMCcgLz4KCQkKCQk8aW5wdXQgdHlwZT0naGlkZGVuJyBuYW1lPSdyZXRvdXJfZm9ybScgdmFsdWU9JycgLz4KCQkKCQk8L2Rpdj4KCQkJCgoKIAoJIAoJCQoJCSA8ZmllbGRzZXQ+PGxlZ2VuZD5Ob3VzIGNvbnRhY3RlcjwvbGVnZW5kPiAKCQoJIAoJCTxkaXYgY2xhc3M9J3NwaXBfZm9ybV9jaGFtcCBsaWduZV8xJz4KCQkJCgkJCSAKCQkJCTxzcGFuIGNsYXNzPSdzcGlwX2Zvcm1fbGFiZWwnPgoJCQkJCSA8bGFiZWwgZm9yPSJpbnB1dC0xLWxpZ25lXzEiPlZvdHJlIE5vbTwvbGFiZWw+CgkJCQkJCgkJCQkJPHNwYW4gY2xhc3M9J3NwaXBfZm9ybV9sYWJlbF9vYmxpZ2F0b2lyZSc+CgkJCQkJCVtPYmxpZ2F0b2lyZV08L3NwYW4+CgkJCQkJOgoJCQkJPC9zcGFuPgoJCQkJCgkJCQkKCQkJCQoJCQkJCgkJCQkKCQkJCQoJCQkJCgkJCQkKCQkJCQoJCQkJCgkJCQkKCQkJCSAKCQkJCQoJCQkJPGlucHV0IHR5cGU9InRleHRlIiBuYW1lPSdsaWduZV8xJyBpZD0naW5wdXQtMS1saWduZV8xJyB2YWx1ZT0iIiAKCQkJCQkJY2xhc3M9JyAgbGlnbmUgZm9ybWwnIAoJCQkJCQlzaXplPSc0MCcgLz4KCQkJCQoJCQkJCgkJCQkKCQkJCTxzcGFuIGNsYXNzPSduZXR0b3lldXInPiA8L3NwYW4+CgkJCQoJCTwvZGl2PgoJCgoKCiAKCSAKCQkKCQkKCQoJIAoJCTxkaXYgY2xhc3M9J3NwaXBfZm9ybV9jaGFtcCBsaWduZV8yJz4KCQkJCgkJCSAKCQkJCTxzcGFuIGNsYXNzPSdzcGlwX2Zvcm1fbGFiZWwnPgoJCQkJCSA8bGFiZWwgZm9yPSJpbnB1dC0xLWxpZ25lXzIiPlZvdHJlIFByw6lub208L2xhYmVsPgoJCQkJCQoJCQkJCTxzcGFuIGNsYXNzPSdzcGlwX2Zvcm1fbGFiZWxfb2JsaWdhdG9pcmUnPgoJCQkJCQlbT2JsaWdhdG9pcmVdPC9zcGFuPgoJCQkJCToKCQkJCTwvc3Bhbj4KCQkJCQoJCQkJCgkJCQkKCQkJCQoJCQkJCgkJCQkKCQkJCQoJCQkJCgkJCQkKCQkJCQoJCQkJCgkJCQkgCgkJCQkKCQkJCTxpbnB1dCB0eXBlPSJ0ZXh0ZSIgbmFtZT0nbGlnbmVfMicgaWQ9J2lucHV0LTEtbGlnbmVfMicgdmFsdWU9IiIgCgkJCQkJCWNsYXNzPScgIGxpZ25lIGZvcm1sJyAKCQkJCQkJc2l6ZT0nNDAnIC8+CgkJCQkKCQkJCQoJCQkJCgkJCQk8c3BhbiBjbGFzcz0nbmV0dG95ZXVyJz4gPC9zcGFuPgoJCQkKCQk8L2Rpdj4KCQoKCgogCgkgCgkJCgkJCgkKCSAKCQk8ZGl2IGNsYXNzPSdzcGlwX2Zvcm1fY2hhbXAgZW1haWxfMSc+CgkJCQoJCQkgCgkJCQk8c3BhbiBjbGFzcz0nc3BpcF9mb3JtX2xhYmVsJz4KCQkJCQkgPGxhYmVsIGZvcj0iaW5wdXQtMS1lbWFpbF8xIj5Wb3RyZSBlbWFpbDwvbGFiZWw+CgkJCQkJCgkJCQkJPHNwYW4gY2xhc3M9J3NwaXBfZm9ybV9sYWJlbF9vYmxpZ2F0b2lyZSc+CgkJCQkJCVtPYmxpZ2F0b2lyZV08L3NwYW4+CgkJCQkJOgoJCQkJPC9zcGFuPgoJCQkJCgkJCQk8c3BhbiBjbGFzcz0nc3BpcF9mb3JtX2xhYmVsX2RldGFpbHMnPlZldWlsbGV6IGVudHJlciB1bmUgYWRyZXNzZSBlLW1haWwgdmFsaWRlIChkZSB0eXBlIHZvdXNAZm91cm5pc3NldXIuY29tKS48L3NwYW4+CgkJCQkKCQkJCQoJCQkJCgkJCQkKCQkJCQoJCQkJCgkJCQkKCQkJCQoJCQkJCgkJCQkgCgkJCQkKCQkJCTxpbnB1dCB0eXBlPSJ0ZXh0ZSIgbmFtZT0nZW1haWxfMScgaWQ9J2lucHV0LTEtZW1haWxfMScgdmFsdWU9IiIgCgkJCQkJCWNsYXNzPScgIGVtYWlsIGZvcm1sJyAKCQkJCQkJc2l6ZT0nNDAnIC8+CgkJCQkKCQkJCQoJCQkJCgkJCQk8c3BhbiBjbGFzcz0nbmV0dG95ZXVyJz4gPC9zcGFuPgoJCQkKCQk8L2Rpdj4KCQoKCgogCgkgCgkJCgkJCgkKCSAKCQk8ZGl2IGNsYXNzPSdzcGlwX2Zvcm1fY2hhbXAgdGV4dGVfMSc+CgkJCQoJCQkgCgkJCQk8c3BhbiBjbGFzcz0nc3BpcF9mb3JtX2xhYmVsJz4KCQkJCQkgPGxhYmVsIGZvcj0iaW5wdXQtMS10ZXh0ZV8xIj5Wb3RyZSBBZHJlc3NlPC9sYWJlbD4KCQkJCQkKCQkJCQkKCQkJCQk6CgkJCQk8L3NwYW4+CgkJCQkKCQkJCQoJCQkJCgkJCQkKCQkJCSAgPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0icGx1Z2lucy9hZG1pbi8talF1ZXJ5L2ltZ19wYWNrL2xheWVyLmpzIj48L3NjcmlwdD48c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJwbHVnaW5zL2ZvbmN0aW9ubmFsaXRlcy9iYXJyZV90eXBvX2Vjb2xvZ2lxdWUvanMvc3BpcF9iYXJyZS5qcyI+PC9zY3JpcHQ+PHRhYmxlIGNsYXNzPSdzcGlwX2JhcnJlJyBzdHlsZT0nd2lkdGg6YXV0bzsnIGNlbGxwYWRkaW5nPScwJyBjZWxsc3BhY2luZz0nMCcgYm9yZGVyPScwJyBzdW1tYXJ5PScnPgo8dHIgc3R5bGU9J3dpZHRoOiBhdXRvOycgY2xhc3M9J3NwaXBfYmFycmUnPgo8dGQgc3R5bGU9J3RleHQtYWxpZ246IGxlZnQ7JyB2YWxpZ249J21pZGRsZSc+PGEgaHJlZj0iamF2YXNjcmlwdDpiYXJyZV9yYWNjb3VyY2koJ3snLCd9Jyxkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaW5wdXQtMS10ZXh0ZV8xJykpIgogY2xhc3M9J3NwaXBfYmFycmUnIHRhYmluZGV4PScxMDAwJyB0aXRsZT0iTWV0dHJlIGVuIHtpdGFsaXF1ZX0iIG9ubW91c2VvdmVyPSJoZWxwbGluZSgnTWV0dHJlIGVuIHtpdGFsaXF1ZX0nLGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdiYXJyZV8xJykpIiBvbm1vdXNlb3V0PSJoZWxwbGluZSgnVXRpbGlzZXogbGVzIHJhY2NvdXJjaXMgdHlwb2dyYXBoaXF1ZXMgcG91ciBlbnJpY2hpciB2b3RyZSBtaXNlIGVuIHBhZ2UnLCBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYmFycmVfMScpKSI+PGltZyBzcmM9J2VjcmlyZS9pbWdfcGFjay9pY29uZXNfYmFycmUvaXRhbGlxdWUucG5nJyBoZWlnaHQ9JzE2JyB3aWR0aD0nMTYnIGFsdD0iTWV0dHJlIGVuIHtpdGFsaXF1ZX0iIC8+PC9hPjxhIGhyZWY9ImphdmFzY3JpcHQ6YmFycmVfcmFjY291cmNpKCd7eycsJ319Jyxkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaW5wdXQtMS10ZXh0ZV8xJykpIgogY2xhc3M9J3NwaXBfYmFycmUnIHRhYmluZGV4PScxMDAwJyB0aXRsZT0iTWV0dHJlIGVuIHt7Z3Jhc319IiBvbm1vdXNlb3Zlcj0iaGVscGxpbmUoJ01ldHRyZSBlbiB7e2dyYXN9fScsZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2JhcnJlXzEnKSkiIG9ubW91c2VvdXQ9ImhlbHBsaW5lKCdVdGlsaXNleiBsZXMgcmFjY291cmNpcyB0eXBvZ3JhcGhpcXVlcyBwb3VyIGVucmljaGlyIHZvdHJlIG1pc2UgZW4gcGFnZScsIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdiYXJyZV8xJykpIj48aW1nIHNyYz0nZWNyaXJlL2ltZ19wYWNrL2ljb25lc19iYXJyZS9ncmFzLnBuZycgaGVpZ2h0PScxNicgd2lkdGg9JzE2JyBhbHQ9Ik1ldHRyZSBlbiB7e2dyYXN9fSIgLz48L2E+Jm5ic3A7PC90ZD4KPHRkPjxhIGhyZWY9ImphdmFzY3JpcHQ6c3dhcF9jb3VjaGUoJzInLCcnKTsiCiBjbGFzcz0nc3BpcF9iYXJyZScgdGFiaW5kZXg9JzEwMDAnIHRpdGxlPSJUcmFuc2Zvcm1lciBlbiBbbGllbiBoeXBlcnRleHRlLT5odHRwOi8vLi4uXSIgb25tb3VzZW92ZXI9ImhlbHBsaW5lKCdUcmFuc2Zvcm1lciBlbiBbbGllbiBoeXBlcnRleHRlLT5odHRwOi8vLi4uXScsZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2JhcnJlXzEnKSkiIG9ubW91c2VvdXQ9ImhlbHBsaW5lKCdVdGlsaXNleiBsZXMgcmFjY291cmNpcyB0eXBvZ3JhcGhpcXVlcyBwb3VyIGVucmljaGlyIHZvdHJlIG1pc2UgZW4gcGFnZScsIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdiYXJyZV8xJykpIj48aW1nIHNyYz0nZWNyaXJlL2ltZ19wYWNrL2ljb25lc19iYXJyZS9saWVuLnBuZycgaGVpZ2h0PScxNicgd2lkdGg9JzE2JyBhbHQ9IlRyYW5zZm9ybWVyIGVuIFtsaWVuIGh5cGVydGV4dGUtPmh0dHA6Ly8uLi5dIiAvPjwvYT4mbmJzcDs8L3RkPgo8dGQ+PGEgaHJlZj0iamF2YXNjcmlwdDpiYXJyZV9yYWNjb3VyY2koJyU1Q24lNUNuJTNDcXVvdGUlM0UnLCclM0MvcXVvdGUlM0UlNUNuJTVDbicsZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2lucHV0LTEtdGV4dGVfMScpKSIKIGNsYXNzPSdzcGlwX2JhcnJlJyB0YWJpbmRleD0nMTAwMCcgdGl0bGU9IkNpdGVyIHVuIG1lc3NhZ2UiIG9ubW91c2VvdmVyPSJoZWxwbGluZSgnQ2l0ZXIgdW4gbWVzc2FnZScsZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2JhcnJlXzEnKSkiIG9ubW91c2VvdXQ9ImhlbHBsaW5lKCdVdGlsaXNleiBsZXMgcmFjY291cmNpcyB0eXBvZ3JhcGhpcXVlcyBwb3VyIGVucmljaGlyIHZvdHJlIG1pc2UgZW4gcGFnZScsIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdiYXJyZV8xJykpIj48aW1nIHNyYz0nZWNyaXJlL2ltZ19wYWNrL2ljb25lc19iYXJyZS9xdW90ZS5wbmcnIGhlaWdodD0nMTYnIHdpZHRoPScxNicgYWx0PSJDaXRlciB1biBtZXNzYWdlIiAvPjwvYT4mbmJzcDs8L3RkPgo8dGQgc3R5bGU9J3RleHQtYWxpZ246bGVmdDsnIHZhbGlnbj0nbWlkZGxlJz48YSBocmVmPSJqYXZhc2NyaXB0OnN3YXBfY291Y2hlKCc0JywnJyk7IgogY2xhc3M9J3NwaXBfYmFycmUnIHRhYmluZGV4PScxMDAwJyB0aXRsZT0iQ2FyYWN0JmVncmF2ZTtyZXMgc3AmZWFjdXRlO2NpYXV4IiBvbm1vdXNlb3Zlcj0iaGVscGxpbmUoJ0NhcmFjdCZlZ3JhdmU7cmVzIHNwJmVhY3V0ZTtjaWF1eCcsZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2JhcnJlXzEnKSkiIG9ubW91c2VvdXQ9ImhlbHBsaW5lKCdVdGlsaXNleiBsZXMgcmFjY291cmNpcyB0eXBvZ3JhcGhpcXVlcyBwb3VyIGVucmljaGlyIHZvdHJlIG1pc2UgZW4gcGFnZScsIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdiYXJyZV8xJykpIj48aW1nIHNyYz0ncGx1Z2lucy9mb25jdGlvbm5hbGl0ZXMvYmFycmVfdHlwb19lY29sb2dpcXVlL2ltZ19wYWNrL2ljb25lc19iYXJyZS9jbGF2aWVyLnBuZycgaGVpZ2h0PScxNicgd2lkdGg9JzE2JyBhbHQ9IkNhcmFjdCZlZ3JhdmU7cmVzIHNwJmVhY3V0ZTtjaWF1eCIgLz48L2E+Jm5ic3A7PC90ZD48L3RyPgo8dHI+Cjx0ZCBjb2xzcGFuPSc2Jz48aW5wdXQgZGlzYWJsZWQ9J2Rpc2FibGVkJyB0eXBlPSd0ZXh0JyBpZD0nYmFycmVfMScgc2l6ZT0nNDUnIG1heGxlbmd0aD0nMTAwJyBzdHlsZT0nd2lkdGg6YXV0bzsgZm9udC1zaXplOjExcHg7IGNvbG9yOiBibGFjazsgYmFja2dyb3VuZC1jb2xvcjogI2U0ZTRlNDsgYm9yZGVyOiAwcHggc29saWQgI2RlZGVkZTsnCnZhbHVlPSJVdGlsaXNleiBsZXMgcmFjY291cmNpcyB0eXBvZ3JhcGhpcXVlcyBwb3VyIGVucmljaGlyIHZvdHJlIG1pc2UgZW4gcGFnZSIgLz48L3RkPjwvdHI+PC90YWJsZT48ZGl2IGlkPSdMYXllcjEnIHN0eWxlPSdkaXNwbGF5Om5vbmU7JyA+PHRhYmxlIGNsYXNzPSJzcGlwX2JhcnJlIiBzdHlsZT0id2lkdGg6IGF1dG87IHBhZGRpbmc6IDFweCFpbXBvcnRhbnQ7IGJvcmRlci10b3A6IDBweDsiIHN1bW1hcnk9IiI+DQo8dHI+PHRkPg0KTmIgY29sb25uZXM6IDxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJiYXJyZV9uYmNvbG9uZXMiIHN0eWxlPSJ3aWR0aDogMzBweDsiIHZhbHVlPSIyIiBzaXplPSIyIiBtYXhsZW5ndGg9IjIiICAgLz48L3RkPjx0ZD4NCk5iIGxpZ25lczogPGlucHV0IHR5cGU9InRleHQiIG5hbWU9ImJhcnJlX25icmFuZ3MiIHN0eWxlPSJ3aWR0aDogMzBweDsiIHZhbHVlPSIyIiBzaXplPSIyIiBtYXhsZW5ndGg9IjIiIC8+PC90ZD48dGQ+DQo8aW5wdXQgdHlwZT0iY2hlY2tib3giIG5hbWU9ImJhcnJlX2RvZW50ZXRlIiB2YWx1ZT0iLTEiIGNoZWNrZWQ9ImNoZWNrZWQiIC8+IEVudGV0ZTwvdGQ+PHRkPg0KPGlucHV0IHR5cGU9ImNoZWNrYm94IiBuYW1lPSJiYXJyZV9kb2NhcHRpb24iIHZhbHVlPSItMSIgY2hlY2tlZD0iY2hlY2tlZCIgLz4gQ2FwdGlvbiBldCBSJmVhY3V0ZTtzdW0mZWFjdXRlOzwvdGQ+PHRkPg0KICA8aW5wdXQgdHlwZT0iYnV0dG9uIiB2YWx1ZT0iT0siIGNsYXNzPSJmb25kbyIgb25jbGljaz0iamF2YXNjcmlwdDoNCiAgICBiYXJyZV9uYmNvbG9uZXMudmFsdWUgPSBNYXRoLmFicyhiYXJyZV9uYmNvbG9uZXMudmFsdWUpOyBiYXJyZV9uYnJhbmdzLnZhbHVlDQogICAgPSBNYXRoLmFicyhiYXJyZV9uYnJhbmdzLnZhbHVlKTsNCiAgICBpZiAoIShiYXJyZV9uYmNvbG9uZXMudmFsdWUgPT0gMCB8fCBiYXJyZV9uYnJhbmdzLnZhbHVlID09IDApKSB7DQogICAgYmFycmVfdGFibGVhdShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaW5wdXQtMS10ZXh0ZV8xJyksIGJhcnJlX25iY29sb25lcy52YWx1ZSwgYmFycmVfbmJyYW5ncy52YWx1ZSwNCiAgICBiYXJyZV9kb2VudGV0ZS5jaGVja2VkLCBiYXJyZV9kb2NhcHRpb24uY2hlY2tlZCk7IH0gIiAvPiANCjwvdGQ+PC90cj48L3RhYmxlPg0KPGRpdiBzdHlsZT0nY2xlYXI6IGJvdGg7Jz48L2Rpdj48L2Rpdj48ZGl2IGlkPSdMYXllcjInIHN0eWxlPSdkaXNwbGF5Om5vbmU7JyA+DQogPHRhYmxlIGNsYXNzPSJzcGlwX2JhcnJlIiBzdHlsZT0id2lkdGg6IGF1dG87IHBhZGRpbmc6IDFweCFpbXBvcnRhbnQ7IGJvcmRlci10b3A6IDBweDsiIHN1bW1hcnk9IiI+DQo8dHI+PHRkPiANCkFkcmVzc2UmbmJzcDs6IDxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJsaWVuX25vbSIgdmFsdWU9Imh0dHA6Ly8iIHNpemU9IjIxIiBtYXhsZW5ndGg9IjI1NSIgLz48YnIgLz4NCkJ1bGxlIGQnYWlkZSZuYnNwOzogPGlucHV0IHR5cGU9InRleHQiIG5hbWU9ImxpZW5fYnVsbGUiIHZhbHVlPSIiIHNpemU9IjIxIiBtYXhsZW5ndGg9IjI1NSIgLz4NCjwvdGQ+PHRkPg0KTGFuZ3VlIGFiciZlYWN1dGU7ZyZlYWN1dGU7ZSZuYnNwOzogPGlucHV0IHR5cGU9InRleHQiIG5hbWU9ImxpZW5fbGFuZ3VlIiB2YWx1ZT0iIiBzaXplPSIxMCIgbWF4bGVuZ3RoPSIxMCIgLz4NCjwvdGQ+PHRkPg0KICA8aW5wdXQgdHlwZT0iYnV0dG9uIiB2YWx1ZT0iT0siIGNsYXNzPSJmb25kbyIgb25jbGljaz0iamF2YXNjcmlwdDpiYXJyZV9kZW1hbmRlX2xpZW4oJ1snLCAnLT4nLCAnXScsIGxpZW5fbm9tLnZhbHVlLCBsaWVuX2J1bGxlLnZhbHVlLCBsaWVuX2xhbmd1ZS52YWx1ZSxkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaW5wdXQtMS10ZXh0ZV8xJykpOyIgLz4gDQo8L3RkPjwvdHI+PC90YWJsZT4NCjxkaXYgc3R5bGU9J2NsZWFyOiBib3RoOyc+PC9kaXY+PC9kaXY+PGRpdiBpZD0nTGF5ZXIzJyBzdHlsZT0nZGlzcGxheTpub25lOycgPg0KPHRhYmxlIGNsYXNzPSJzcGlwX2JhcnJlIiBzdHlsZT0id2lkdGg6IGF1dG87IHBhZGRpbmc6IDFweCFpbXBvcnRhbnQ7IGJvcmRlci10b3A6IDBweDsiIHN1bW1hcnk9IiI+DQogIDx0cj4NCiAgICA8dGQgc3R5bGU9IndpZHRoOmF1dG87IHRleHQtYWxpZ246Y2VudGVyOyI+PHN0cm9uZz5HZXN0aW9uIGRlcyBhbmNyZXM8L3N0cm9uZz48L3RkPg0KICAgIDx0ZCBzdHlsZT0id2lkdGg6YXV0bzsiPjxzdHJvbmc+VHJhbnNmb3JtZXIgZW4gYW5jcmU8L3N0cm9uZz48YnIgLz4NCiAgICA8bGFiZWwgZm9yPSJhbmNyZV9ub20iPjxpPk5vbSBkZSBsJ2FuY3JlPC9pPjwvbGFiZWw+IDxiciAvPg0KICAgICAgPGlucHV0IHR5cGU9InRleHQiIG5hbWU9ImFuY3JlX25vbSIgaWQ9ImFuY3JlX25vbSIgLz4NCgkgIA0KCTxpbnB1dCB0eXBlPSJidXR0b24iIHZhbHVlPSJPSyIgY2xhc3M9ImZvbmRvIiBvbmNsaWNrPSJqYXZhc2NyaXB0OmJhcnJlX2FuY3JlKCdbJywgJzwtJywgJ10nLCBhbmNyZV9ub20udmFsdWUsIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdpbnB1dC0xLXRleHRlXzEnKSk7IiAvPg0KICAgIDwvdGQ+DQoJPHRkIHN0eWxlPSJ3aWR0aDphdXRvOyI+PHN0cm9uZz5Qb2ludGVyIHZlcnMgdW5lIGFuY3JlPC9zdHJvbmc+PGJyIC8+DQogICAgPGxhYmVsIGZvcj0iYW5jcmVfY2libGUiPjxpPkFuY3JlIGNpYmxlPC9pPjwvbGFiZWw+IDxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJhbmNyZV9jaWJsZSIgaWQ9ImFuY3JlX2NpYmxlIiAvPjxiciAvPg0KCTxsYWJlbCBmb3I9ImFuY3JlX2J1bGxlIj48aT5CdWxsZSBkJ2FpZGUgYW5jcmU8L2k+PC9sYWJlbD4gPGlucHV0IHR5cGU9InRleHQiIG5hbWU9ImFuY3JlX2J1bGxlIiBpZD0iYW5jcmVfYnVsbGUiIC8+DQoJPGlucHV0IHR5cGU9ImJ1dHRvbiIgdmFsdWU9Ik9LIiBjbGFzcz0iZm9uZG8iIG9uY2xpY2s9ImphdmFzY3JpcHQ6YmFycmVfZGVtYW5kZSgnWycsICctPiMnLCAnXScsIGFuY3JlX2NpYmxlLnZhbHVlLCBhbmNyZV9idWxsZS52YWx1ZSwgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2lucHV0LTEtdGV4dGVfMScpKTsiIC8+IA0KPC90ZD4NCiAgPC90cj4gDQo8L3RhYmxlPjxkaXYgc3R5bGU9J2NsZWFyOiBib3RoOyc+PC9kaXY+PC9kaXY+PGRpdiBpZD0nTGF5ZXI0JyBzdHlsZT0nZGlzcGxheTpub25lOycgPg0KPHRhYmxlIGNsYXNzPSJzcGlwX2JhcnJlIiBzdHlsZT0id2lkdGg6IGF1dG87IHBhZGRpbmc6IDFweCFpbXBvcnRhbnQ7IGJvcmRlci10b3A6IDBweDsiIHN1bW1hcnk9IiI+DQogIDx0ciBjbGFzcz0ic3BpcF9iYXJyZSI+DQogICAgPHRkIHN0eWxlPSJ3aWR0aDozMCU7Ij5DYXJhY3QmZWdyYXZlO3JlcyBzcCZlYWN1dGU7Y2lhdXg8L3RkPg0KICAgIDx0ZD48YSBocmVmPSJqYXZhc2NyaXB0OmJhcnJlX3JhY2NvdXJjaSgnXHUwMGFificsJ35cdTAwYmInLGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdpbnB1dC0xLXRleHRlXzEnKSkiCiBjbGFzcz0nc3BpcF9iYXJyZScgdGFiaW5kZXg9JzEwMDAnIHRpdGxlPSJFbnRvdXJlciBkZSAmbGFxdW87IGd1aWxsZW1ldHMgJnJhcXVvOyIgb25tb3VzZW92ZXI9ImhlbHBsaW5lKCdFbnRvdXJlciBkZSAmbGFxdW87IGd1aWxsZW1ldHMgJnJhcXVvOycsZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2JhcnJlXzEnKSkiIG9ubW91c2VvdXQ9ImhlbHBsaW5lKCdVdGlsaXNleiBsZXMgcmFjY291cmNpcyB0eXBvZ3JhcGhpcXVlcyBwb3VyIGVucmljaGlyIHZvdHJlIG1pc2UgZW4gcGFnZScsIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdiYXJyZV8xJykpIj48aW1nIHNyYz0nZWNyaXJlL2ltZ19wYWNrL2ljb25lc19iYXJyZS9ndWlsbGVtZXRzLnBuZycgaGVpZ2h0PScxNicgd2lkdGg9JzE2JyBhbHQ9IkVudG91cmVyIGRlICZsYXF1bzsgZ3VpbGxlbWV0cyAmcmFxdW87IiAvPjwvYT48YSBocmVmPSJqYXZhc2NyaXB0OmJhcnJlX3JhY2NvdXJjaSgnXHUwMDkzJywnXHUwMDk0Jyxkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaW5wdXQtMS10ZXh0ZV8xJykpIgogY2xhc3M9J3NwaXBfYmFycmUnIHRhYmluZGV4PScxMDAwJyB0aXRsZT0iRW50b3VyZXIgZGUgJmxkcXVvO2d1aWxsZW1ldHMgZGUgc2Vjb25kIG5pdmVhdSZyZHF1bzsiIG9ubW91c2VvdmVyPSJoZWxwbGluZSgnRW50b3VyZXIgZGUgJmxkcXVvO2d1aWxsZW1ldHMgZGUgc2Vjb25kIG5pdmVhdSZyZHF1bzsnLGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdiYXJyZV8xJykpIiBvbm1vdXNlb3V0PSJoZWxwbGluZSgnVXRpbGlzZXogbGVzIHJhY2NvdXJjaXMgdHlwb2dyYXBoaXF1ZXMgcG91ciBlbnJpY2hpciB2b3RyZSBtaXNlIGVuIHBhZ2UnLCBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYmFycmVfMScpKSI+PGltZyBzcmM9J2VjcmlyZS9pbWdfcGFjay9pY29uZXNfYmFycmUvZ3VpbGxlbWV0cy1zaW1wbGVzLnBuZycgaGVpZ2h0PScxNicgd2lkdGg9JzE2JyBhbHQ9IkVudG91cmVyIGRlICZsZHF1bztndWlsbGVtZXRzIGRlIHNlY29uZCBuaXZlYXUmcmRxdW87IiAvPjwvYT48YSBocmVmPSJqYXZhc2NyaXB0OmJhcnJlX2luc2VyZXIoJ1x1MDBjMCcsZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2lucHV0LTEtdGV4dGVfMScpKSIKIGNsYXNzPSdzcGlwX2JhcnJlJyB0YWJpbmRleD0nMTAwMCcgdGl0bGU9IklucyZlYWN1dGU7cmVyIHVuIEEgYWNjZW50IGdyYXZlIG1hanVzY3VsZSIgb25tb3VzZW92ZXI9ImhlbHBsaW5lKCdJbnMmZWFjdXRlO3JlciB1biBBIGFjY2VudCBncmF2ZSBtYWp1c2N1bGUnLGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdiYXJyZV8xJykpIiBvbm1vdXNlb3V0PSJoZWxwbGluZSgnVXRpbGlzZXogbGVzIHJhY2NvdXJjaXMgdHlwb2dyYXBoaXF1ZXMgcG91ciBlbnJpY2hpciB2b3RyZSBtaXNlIGVuIHBhZ2UnLCBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYmFycmVfMScpKSI+PGltZyBzcmM9J2VjcmlyZS9pbWdfcGFjay9pY29uZXNfYmFycmUvYWdyYXZlLW1hai5wbmcnIGhlaWdodD0nMTYnIHdpZHRoPScxNicgYWx0PSJJbnMmZWFjdXRlO3JlciB1biBBIGFjY2VudCBncmF2ZSBtYWp1c2N1bGUiIC8+PC9hPjxhIGhyZWY9ImphdmFzY3JpcHQ6YmFycmVfaW5zZXJlcignXHUwMGM5Jyxkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaW5wdXQtMS10ZXh0ZV8xJykpIgogY2xhc3M9J3NwaXBfYmFycmUnIHRhYmluZGV4PScxMDAwJyB0aXRsZT0iSW5zJmVhY3V0ZTtyZXIgdW4gRSBhY2NlbnQgYWlndSBtYWp1c2N1bGUiIG9ubW91c2VvdmVyPSJoZWxwbGluZSgnSW5zJmVhY3V0ZTtyZXIgdW4gRSBhY2NlbnQgYWlndSBtYWp1c2N1bGUnLGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdiYXJyZV8xJykpIiBvbm1vdXNlb3V0PSJoZWxwbGluZSgnVXRpbGlzZXogbGVzIHJhY2NvdXJjaXMgdHlwb2dyYXBoaXF1ZXMgcG91ciBlbnJpY2hpciB2b3RyZSBtaXNlIGVuIHBhZ2UnLCBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYmFycmVfMScpKSI+PGltZyBzcmM9J2VjcmlyZS9pbWdfcGFjay9pY29uZXNfYmFycmUvZWFjdXRlLW1hai5wbmcnIGhlaWdodD0nMTYnIHdpZHRoPScxNicgYWx0PSJJbnMmZWFjdXRlO3JlciB1biBFIGFjY2VudCBhaWd1IG1hanVzY3VsZSIgLz48L2E+PGEgaHJlZj0iamF2YXNjcmlwdDpiYXJyZV9pbnNlcmVyKCdcdTAwYzgnLGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdpbnB1dC0xLXRleHRlXzEnKSkiCiBjbGFzcz0nc3BpcF9iYXJyZScgdGFiaW5kZXg9JzEwMDAnIHRpdGxlPSJJbnMmZWFjdXRlO3JlciB1biBFIG1hanVzY3VsZSBhY2NlbnQgZ3JhdmUiIG9ubW91c2VvdmVyPSJoZWxwbGluZSgnSW5zJmVhY3V0ZTtyZXIgdW4gRSBtYWp1c2N1bGUgYWNjZW50IGdyYXZlJyxkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYmFycmVfMScpKSIgb25tb3VzZW91dD0iaGVscGxpbmUoJ1V0aWxpc2V6IGxlcyByYWNjb3VyY2lzIHR5cG9ncmFwaGlxdWVzIHBvdXIgZW5yaWNoaXIgdm90cmUgbWlzZSBlbiBwYWdlJywgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2JhcnJlXzEnKSkiPjxpbWcgc3JjPSdwbHVnaW5zL2ZvbmN0aW9ubmFsaXRlcy9iYXJyZV90eXBvX2Vjb2xvZ2lxdWUvaW1nX3BhY2svaWNvbmVzX2JhcnJlL2VhZ3JhdmUtbWFqLnBuZycgaGVpZ2h0PScxNicgd2lkdGg9JzE2JyBhbHQ9IklucyZlYWN1dGU7cmVyIHVuIEUgbWFqdXNjdWxlIGFjY2VudCBncmF2ZSIgLz48L2E+PGEgaHJlZj0iamF2YXNjcmlwdDpiYXJyZV9pbnNlcmVyKCdcdTAwZTYnLGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdpbnB1dC0xLXRleHRlXzEnKSkiCiBjbGFzcz0nc3BpcF9iYXJyZScgdGFiaW5kZXg9JzEwMDAnIHRpdGxlPSJJbnMmZWFjdXRlO3JlciB1biBFIGRhbnMgbCdBIiBvbm1vdXNlb3Zlcj0iaGVscGxpbmUoJ0lucyZlYWN1dGU7cmVyIHVuIEUgZGFucyBsXCdBJyxkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYmFycmVfMScpKSIgb25tb3VzZW91dD0iaGVscGxpbmUoJ1V0aWxpc2V6IGxlcyByYWNjb3VyY2lzIHR5cG9ncmFwaGlxdWVzIHBvdXIgZW5yaWNoaXIgdm90cmUgbWlzZSBlbiBwYWdlJywgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2JhcnJlXzEnKSkiPjxpbWcgc3JjPSdwbHVnaW5zL2ZvbmN0aW9ubmFsaXRlcy9iYXJyZV90eXBvX2Vjb2xvZ2lxdWUvaW1nX3BhY2svaWNvbmVzX2JhcnJlL2FlbGlnLnBuZycgaGVpZ2h0PScxNicgd2lkdGg9JzE2JyBhbHQ9IklucyZlYWN1dGU7cmVyIHVuIEUgZGFucyBsJ0EiIC8+PC9hPjxhIGhyZWY9ImphdmFzY3JpcHQ6YmFycmVfaW5zZXJlcignXHUwMGM2Jyxkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaW5wdXQtMS10ZXh0ZV8xJykpIgogY2xhc3M9J3NwaXBfYmFycmUnIHRhYmluZGV4PScxMDAwJyB0aXRsZT0iSW5zJmVhY3V0ZTtyZXIgdW4gRSBkYW5zIGwnQSBtYWp1c2N1bGUiIG9ubW91c2VvdmVyPSJoZWxwbGluZSgnSW5zJmVhY3V0ZTtyZXIgdW4gRSBkYW5zIGxcJ0EgbWFqdXNjdWxlJyxkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYmFycmVfMScpKSIgb25tb3VzZW91dD0iaGVscGxpbmUoJ1V0aWxpc2V6IGxlcyByYWNjb3VyY2lzIHR5cG9ncmFwaGlxdWVzIHBvdXIgZW5yaWNoaXIgdm90cmUgbWlzZSBlbiBwYWdlJywgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2JhcnJlXzEnKSkiPjxpbWcgc3JjPSdwbHVnaW5zL2ZvbmN0aW9ubmFsaXRlcy9iYXJyZV90eXBvX2Vjb2xvZ2lxdWUvaW1nX3BhY2svaWNvbmVzX2JhcnJlL2FlbGlnLW1hai5wbmcnIGhlaWdodD0nMTYnIHdpZHRoPScxNicgYWx0PSJJbnMmZWFjdXRlO3JlciB1biBFIGRhbnMgbCdBIG1hanVzY3VsZSIgLz48L2E+PGEgaHJlZj0iamF2YXNjcmlwdDpiYXJyZV9pbnNlcmVyKCcmb2VsaWc7Jyxkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaW5wdXQtMS10ZXh0ZV8xJykpIgogY2xhc3M9J3NwaXBfYmFycmUnIHRhYmluZGV4PScxMDAwJyB0aXRsZT0iSW5zJmVhY3V0ZTtyZXIgdW4gRSBkYW5zIGwnTyIgb25tb3VzZW92ZXI9ImhlbHBsaW5lKCdJbnMmZWFjdXRlO3JlciB1biBFIGRhbnMgbFwnTycsZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2JhcnJlXzEnKSkiIG9ubW91c2VvdXQ9ImhlbHBsaW5lKCdVdGlsaXNleiBsZXMgcmFjY291cmNpcyB0eXBvZ3JhcGhpcXVlcyBwb3VyIGVucmljaGlyIHZvdHJlIG1pc2UgZW4gcGFnZScsIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdiYXJyZV8xJykpIj48aW1nIHNyYz0nZWNyaXJlL2ltZ19wYWNrL2ljb25lc19iYXJyZS9vZWxpZy5wbmcnIGhlaWdodD0nMTYnIHdpZHRoPScxNicgYWx0PSJJbnMmZWFjdXRlO3JlciB1biBFIGRhbnMgbCdPIiAvPjwvYT48YSBocmVmPSJqYXZhc2NyaXB0OmJhcnJlX2luc2VyZXIoJyZPRWxpZzsnLGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdpbnB1dC0xLXRleHRlXzEnKSkiCiBjbGFzcz0nc3BpcF9iYXJyZScgdGFiaW5kZXg9JzEwMDAnIHRpdGxlPSJJbnMmZWFjdXRlO3JlciB1biBFIGRhbnMgbCdPIG1hanVzY3VsZSIgb25tb3VzZW92ZXI9ImhlbHBsaW5lKCdJbnMmZWFjdXRlO3JlciB1biBFIGRhbnMgbFwnTyBtYWp1c2N1bGUnLGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdiYXJyZV8xJykpIiBvbm1vdXNlb3V0PSJoZWxwbGluZSgnVXRpbGlzZXogbGVzIHJhY2NvdXJjaXMgdHlwb2dyYXBoaXF1ZXMgcG91ciBlbnJpY2hpciB2b3RyZSBtaXNlIGVuIHBhZ2UnLCBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYmFycmVfMScpKSI+PGltZyBzcmM9J2VjcmlyZS9pbWdfcGFjay9pY29uZXNfYmFycmUvb2VsaWctbWFqLnBuZycgaGVpZ2h0PScxNicgd2lkdGg9JzE2JyBhbHQ9IklucyZlYWN1dGU7cmVyIHVuIEUgZGFucyBsJ08gbWFqdXNjdWxlIiAvPjwvYT48YSBocmVmPSJqYXZhc2NyaXB0OmJhcnJlX2luc2VyZXIoJ1x1MDBjNycsZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2lucHV0LTEtdGV4dGVfMScpKSIKIGNsYXNzPSdzcGlwX2JhcnJlJyB0YWJpbmRleD0nMTAwMCcgdGl0bGU9IklucyZlYWN1dGU7cmVyIHVuIEMgYyZlYWN1dGU7ZGlsbGUgbWFqdXNjdWxlIiBvbm1vdXNlb3Zlcj0iaGVscGxpbmUoJ0lucyZlYWN1dGU7cmVyIHVuIEMgYyZlYWN1dGU7ZGlsbGUgbWFqdXNjdWxlJyxkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYmFycmVfMScpKSIgb25tb3VzZW91dD0iaGVscGxpbmUoJ1V0aWxpc2V6IGxlcyByYWNjb3VyY2lzIHR5cG9ncmFwaGlxdWVzIHBvdXIgZW5yaWNoaXIgdm90cmUgbWlzZSBlbiBwYWdlJywgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2JhcnJlXzEnKSkiPjxpbWcgc3JjPSdwbHVnaW5zL2ZvbmN0aW9ubmFsaXRlcy9iYXJyZV90eXBvX2Vjb2xvZ2lxdWUvaW1nX3BhY2svaWNvbmVzX2JhcnJlL2NjZWRpbC1tYWoucG5nJyBoZWlnaHQ9JzE2JyB3aWR0aD0nMTYnIGFsdD0iSW5zJmVhY3V0ZTtyZXIgdW4gQyBjJmVhY3V0ZTtkaWxsZSBtYWp1c2N1bGUiIC8+PC9hPjxhIGhyZWY9ImphdmFzY3JpcHQ6YmFycmVfaW5zZXJlcignJmV1cm87Jyxkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaW5wdXQtMS10ZXh0ZV8xJykpIgogY2xhc3M9J3NwaXBfYmFycmUnIHRhYmluZGV4PScxMDAwJyB0aXRsZT0iSW5zJmVhY3V0ZTtyZXIgbGUgc3ltYm9sZSAmZXVybzsiIG9ubW91c2VvdmVyPSJoZWxwbGluZSgnSW5zJmVhY3V0ZTtyZXIgbGUgc3ltYm9sZSAmZXVybzsnLGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdiYXJyZV8xJykpIiBvbm1vdXNlb3V0PSJoZWxwbGluZSgnVXRpbGlzZXogbGVzIHJhY2NvdXJjaXMgdHlwb2dyYXBoaXF1ZXMgcG91ciBlbnJpY2hpciB2b3RyZSBtaXNlIGVuIHBhZ2UnLCBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYmFycmVfMScpKSI+PGltZyBzcmM9J2VjcmlyZS9pbWdfcGFjay9pY29uZXNfYmFycmUvZXVyby5wbmcnIGhlaWdodD0nMTYnIHdpZHRoPScxNicgYWx0PSJJbnMmZWFjdXRlO3JlciBsZSBzeW1ib2xlICZldXJvOyIgLz48L2E+Jm5ic3A7DQogICAgPC90ZD4NCiAgPC90cj4gDQo8L3RhYmxlPg0KPGRpdiBzdHlsZT0nY2xlYXI6IGJvdGg7Jz48L2Rpdj48L2Rpdj48ZGl2IGlkPSdMYXllcjUnIHN0eWxlPSdkaXNwbGF5Om5vbmU7JyA+DQo8dGFibGUgY2xhc3M9InNwaXBfYmFycmUiIHN0eWxlPSJ3aWR0aDogYXV0bzsgcGFkZGluZzogMXB4IWltcG9ydGFudDsgYm9yZGVyLXRvcDogMHB4OyIgc3VtbWFyeT0iIj4NCjx0cj48dGQgc3R5bGU9IndpZHRoOiAyNSU7Ij5DaGVyY2hlcjxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJiYXJyZV9jaGVyY2hlciIgdmFsdWU9IiIgc2l6ZT0iMTIiIG1heGxlbmd0aD0iMjU1IiAvPjwvdGQ+PHRkIHN0eWxlPSJ3aWR0aDogMjAlOyI+DQo8aW5wdXQgdHlwZT0iY2hlY2tib3giIG5hbWU9InJlY19jYXNlIiB2YWx1ZT0ieWVzIiAvPlJlc3BlY3RlciBsYSBjYXNzZTxiciAvPjxpbnB1dCB0eXBlPSJjaGVja2JveCIgbmFtZT0icmVjX2VudGllciIgdmFsdWU9InllcyIgLz4NCk1vdCBlbnRpZXINCjwvdGQ+PHRkICBzdHlsZT0id2lkdGg6IDI1JTsiPlJlbXBsYWNlcjxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJiYXJyZV9yZW1wbGFjZXIiIHZhbHVlPSIiIHNpemU9IjEyIiBtYXhsZW5ndGg9IjI1NSIgLz4gDQo8L3RkPjx0ZCBzdHlsZT0id2lkdGg6IDIwJTsiPg0KPGlucHV0IHR5cGU9ImNoZWNrYm94IiBuYW1lPSJyZWNfdG91dCIgdmFsdWU9InllcyIgLz5Ub3V0IHJlbXBsYWNlcjwvdGQ+PHRkIHN0eWxlPSJ3aWR0aDogMTAlOyI+DQogICA8aW5wdXQgdHlwZT0iYnV0dG9uIiB2YWx1ZT0iT0siIGNsYXNzPSJmb25kbyINCiAgb25jbGljaz0iamF2YXNjcmlwdDpiYXJyZV9zZWFyY2hyZXBsYWNlKGRvY3VtZW50LmZvcm11bGFpcmUuYmFycmVfY2hlcmNoZXIudmFsdWUsIGRvY3VtZW50LmZvcm11bGFpcmUuYmFycmVfcmVtcGxhY2VyLnZhbHVlLCBkb2N1bWVudC5mb3JtdWxhaXJlLnJlY190b3V0LmNoZWNrZWQsIGRvY3VtZW50LmZvcm11bGFpcmUucmVjX2Nhc2UuY2hlY2tlZCwgZG9jdW1lbnQuZm9ybXVsYWlyZS5yZWNfZW50aWVyLmNoZWNrZWQsZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2lucHV0LTEtdGV4dGVfMScpKTsiIC8+IA0KPC90ZD48L3RyPjwvdGFibGU+PGRpdiBzdHlsZT0nY2xlYXI6IGJvdGg7Jz48L2Rpdj48L2Rpdj4KCTx0ZXh0YXJlYSBuYW1lPSd0ZXh0ZV8xJyByb3dzPScxMCcgY2xhc3M9J2Zvcm1vICAgJyBjb2xzPSc4MCcKCWlkPSdpbnB1dC0xLXRleHRlXzEnCglvbnNlbGVjdD0nc3RvcmVDYXJldCh0aGlzKTsnCglvbmNsaWNrPSdzdG9yZUNhcmV0KHRoaXMpOycKCW9ua2V5dXA9J3N0b3JlQ2FyZXQodGhpcyk7JwoJb25kYmxjbGljaz0nc3RvcmVDYXJldCh0aGlzKTsnPjwvdGV4dGFyZWE+CgkJCQkKCQkJCQoJCQkJCgkJCQkKCQkJCQoJCQkJCgkJCQkKCQkJCQoJCQkJCgkJCQk8c3BhbiBjbGFzcz0nbmV0dG95ZXVyJz4gPC9zcGFuPgoJCQkKCQk8L2Rpdj4KCQoKCgogCgkgCgkJCgkJCgkKCSAKCQk8ZGl2IGNsYXNzPSdzcGlwX2Zvcm1fY2hhbXAgdGV4dGVfMic+CgkJCQoJCQkgCgkJCQk8c3BhbiBjbGFzcz0nc3BpcF9mb3JtX2xhYmVsJz4KCQkJCQkgPGxhYmVsIGZvcj0iaW5wdXQtMS10ZXh0ZV8yIj5Wb3RyZSBRdWVzdGlvbjwvbGFiZWw+CgkJCQkJCgkJCQkJPHNwYW4gY2xhc3M9J3NwaXBfZm9ybV9sYWJlbF9vYmxpZ2F0b2lyZSc+CgkJCQkJCVtPYmxpZ2F0b2lyZV08L3NwYW4+CgkJCQkJOgoJCQkJPC9zcGFuPgoJCQkJCgkJCQkKCQkJCQoJCQkJCgkJCQkgIDx0YWJsZSBjbGFzcz0nc3BpcF9iYXJyZScgc3R5bGU9J3dpZHRoOmF1dG87JyBjZWxscGFkZGluZz0nMCcgY2VsbHNwYWNpbmc9JzAnIGJvcmRlcj0nMCcgc3VtbWFyeT0nJz4KPHRyIHN0eWxlPSd3aWR0aDogYXV0bzsnIGNsYXNzPSdzcGlwX2JhcnJlJz4KPHRkIHN0eWxlPSd0ZXh0LWFsaWduOiBsZWZ0OycgdmFsaWduPSdtaWRkbGUnPjxhIGhyZWY9ImphdmFzY3JpcHQ6YmFycmVfcmFjY291cmNpKCd7JywnfScsZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2lucHV0LTEtdGV4dGVfMicpKSIKIGNsYXNzPSdzcGlwX2JhcnJlJyB0YWJpbmRleD0nMTAwMCcgdGl0bGU9Ik1ldHRyZSBlbiB7aXRhbGlxdWV9IiBvbm1vdXNlb3Zlcj0iaGVscGxpbmUoJ01ldHRyZSBlbiB7aXRhbGlxdWV9Jyxkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYmFycmVfMicpKSIgb25tb3VzZW91dD0iaGVscGxpbmUoJ1V0aWxpc2V6IGxlcyByYWNjb3VyY2lzIHR5cG9ncmFwaGlxdWVzIHBvdXIgZW5yaWNoaXIgdm90cmUgbWlzZSBlbiBwYWdlJywgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2JhcnJlXzInKSkiPjxpbWcgc3JjPSdlY3JpcmUvaW1nX3BhY2svaWNvbmVzX2JhcnJlL2l0YWxpcXVlLnBuZycgaGVpZ2h0PScxNicgd2lkdGg9JzE2JyBhbHQ9Ik1ldHRyZSBlbiB7aXRhbGlxdWV9IiAvPjwvYT48YSBocmVmPSJqYXZhc2NyaXB0OmJhcnJlX3JhY2NvdXJjaSgne3snLCd9fScsZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2lucHV0LTEtdGV4dGVfMicpKSIKIGNsYXNzPSdzcGlwX2JhcnJlJyB0YWJpbmRleD0nMTAwMCcgdGl0bGU9Ik1ldHRyZSBlbiB7e2dyYXN9fSIgb25tb3VzZW92ZXI9ImhlbHBsaW5lKCdNZXR0cmUgZW4ge3tncmFzfX0nLGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdiYXJyZV8yJykpIiBvbm1vdXNlb3V0PSJoZWxwbGluZSgnVXRpbGlzZXogbGVzIHJhY2NvdXJjaXMgdHlwb2dyYXBoaXF1ZXMgcG91ciBlbnJpY2hpciB2b3RyZSBtaXNlIGVuIHBhZ2UnLCBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYmFycmVfMicpKSI+PGltZyBzcmM9J2VjcmlyZS9pbWdfcGFjay9pY29uZXNfYmFycmUvZ3Jhcy5wbmcnIGhlaWdodD0nMTYnIHdpZHRoPScxNicgYWx0PSJNZXR0cmUgZW4ge3tncmFzfX0iIC8+PC9hPiZuYnNwOzwvdGQ+Cjx0ZD48YSBocmVmPSJqYXZhc2NyaXB0OnN3YXBfY291Y2hlKCc3JywnJyk7IgogY2xhc3M9J3NwaXBfYmFycmUnIHRhYmluZGV4PScxMDAwJyB0aXRsZT0iVHJhbnNmb3JtZXIgZW4gW2xpZW4gaHlwZXJ0ZXh0ZS0+aHR0cDovLy4uLl0iIG9ubW91c2VvdmVyPSJoZWxwbGluZSgnVHJhbnNmb3JtZXIgZW4gW2xpZW4gaHlwZXJ0ZXh0ZS0+aHR0cDovLy4uLl0nLGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdiYXJyZV8yJykpIiBvbm1vdXNlb3V0PSJoZWxwbGluZSgnVXRpbGlzZXogbGVzIHJhY2NvdXJjaXMgdHlwb2dyYXBoaXF1ZXMgcG91ciBlbnJpY2hpciB2b3RyZSBtaXNlIGVuIHBhZ2UnLCBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYmFycmVfMicpKSI+PGltZyBzcmM9J2VjcmlyZS9pbWdfcGFjay9pY29uZXNfYmFycmUvbGllbi5wbmcnIGhlaWdodD0nMTYnIHdpZHRoPScxNicgYWx0PSJUcmFuc2Zvcm1lciBlbiBbbGllbiBoeXBlcnRleHRlLT5odHRwOi8vLi4uXSIgLz48L2E+Jm5ic3A7PC90ZD4KPHRkPjxhIGhyZWY9ImphdmFzY3JpcHQ6YmFycmVfcmFjY291cmNpKCclNUNuJTVDbiUzQ3F1b3RlJTNFJywnJTNDL3F1b3RlJTNFJTVDbiU1Q24nLGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdpbnB1dC0xLXRleHRlXzInKSkiCiBjbGFzcz0nc3BpcF9iYXJyZScgdGFiaW5kZXg9JzEwMDAnIHRpdGxlPSJDaXRlciB1biBtZXNzYWdlIiBvbm1vdXNlb3Zlcj0iaGVscGxpbmUoJ0NpdGVyIHVuIG1lc3NhZ2UnLGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdiYXJyZV8yJykpIiBvbm1vdXNlb3V0PSJoZWxwbGluZSgnVXRpbGlzZXogbGVzIHJhY2NvdXJjaXMgdHlwb2dyYXBoaXF1ZXMgcG91ciBlbnJpY2hpciB2b3RyZSBtaXNlIGVuIHBhZ2UnLCBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYmFycmVfMicpKSI+PGltZyBzcmM9J2VjcmlyZS9pbWdfcGFjay9pY29uZXNfYmFycmUvcXVvdGUucG5nJyBoZWlnaHQ9JzE2JyB3aWR0aD0nMTYnIGFsdD0iQ2l0ZXIgdW4gbWVzc2FnZSIgLz48L2E+Jm5ic3A7PC90ZD4KPHRkIHN0eWxlPSd0ZXh0LWFsaWduOmxlZnQ7JyB2YWxpZ249J21pZGRsZSc+PGEgaHJlZj0iamF2YXNjcmlwdDpzd2FwX2NvdWNoZSgnOScsJycpOyIKIGNsYXNzPSdzcGlwX2JhcnJlJyB0YWJpbmRleD0nMTAwMCcgdGl0bGU9IkNhcmFjdCZlZ3JhdmU7cmVzIHNwJmVhY3V0ZTtjaWF1eCIgb25tb3VzZW92ZXI9ImhlbHBsaW5lKCdDYXJhY3QmZWdyYXZlO3JlcyBzcCZlYWN1dGU7Y2lhdXgnLGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdiYXJyZV8yJykpIiBvbm1vdXNlb3V0PSJoZWxwbGluZSgnVXRpbGlzZXogbGVzIHJhY2NvdXJjaXMgdHlwb2dyYXBoaXF1ZXMgcG91ciBlbnJpY2hpciB2b3RyZSBtaXNlIGVuIHBhZ2UnLCBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYmFycmVfMicpKSI+PGltZyBzcmM9J3BsdWdpbnMvZm9uY3Rpb25uYWxpdGVzL2JhcnJlX3R5cG9fZWNvbG9naXF1ZS9pbWdfcGFjay9pY29uZXNfYmFycmUvY2xhdmllci5wbmcnIGhlaWdodD0nMTYnIHdpZHRoPScxNicgYWx0PSJDYXJhY3QmZWdyYXZlO3JlcyBzcCZlYWN1dGU7Y2lhdXgiIC8+PC9hPiZuYnNwOzwvdGQ+PC90cj4KPHRyPgo8dGQgY29sc3Bhbj0nNic+PGlucHV0IGRpc2FibGVkPSdkaXNhYmxlZCcgdHlwZT0ndGV4dCcgaWQ9J2JhcnJlXzInIHNpemU9JzQ1JyBtYXhsZW5ndGg9JzEwMCcgc3R5bGU9J3dpZHRoOmF1dG87IGZvbnQtc2l6ZToxMXB4OyBjb2xvcjogYmxhY2s7IGJhY2tncm91bmQtY29sb3I6ICNlNGU0ZTQ7IGJvcmRlcjogMHB4IHNvbGlkICNkZWRlZGU7Jwp2YWx1ZT0iVXRpbGlzZXogbGVzIHJhY2NvdXJjaXMgdHlwb2dyYXBoaXF1ZXMgcG91ciBlbnJpY2hpciB2b3RyZSBtaXNlIGVuIHBhZ2UiIC8+PC90ZD48L3RyPjwvdGFibGU+PGRpdiBpZD0nTGF5ZXI2JyBzdHlsZT0nZGlzcGxheTpub25lOycgPjx0YWJsZSBjbGFzcz0ic3BpcF9iYXJyZSIgc3R5bGU9IndpZHRoOiBhdXRvOyBwYWRkaW5nOiAxcHghaW1wb3J0YW50OyBib3JkZXItdG9wOiAwcHg7IiBzdW1tYXJ5PSIiPg0KPHRyPjx0ZD4NCk5iIGNvbG9ubmVzOiA8aW5wdXQgdHlwZT0idGV4dCIgbmFtZT0iYmFycmVfbmJjb2xvbmVzIiBzdHlsZT0id2lkdGg6IDMwcHg7IiB2YWx1ZT0iMiIgc2l6ZT0iMiIgbWF4bGVuZ3RoPSIyIiAgIC8+PC90ZD48dGQ+DQpOYiBsaWduZXM6IDxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJiYXJyZV9uYnJhbmdzIiBzdHlsZT0id2lkdGg6IDMwcHg7IiB2YWx1ZT0iMiIgc2l6ZT0iMiIgbWF4bGVuZ3RoPSIyIiAvPjwvdGQ+PHRkPg0KPGlucHV0IHR5cGU9ImNoZWNrYm94IiBuYW1lPSJiYXJyZV9kb2VudGV0ZSIgdmFsdWU9Ii0xIiBjaGVja2VkPSJjaGVja2VkIiAvPiBFbnRldGU8L3RkPjx0ZD4NCjxpbnB1dCB0eXBlPSJjaGVja2JveCIgbmFtZT0iYmFycmVfZG9jYXB0aW9uIiB2YWx1ZT0iLTEiIGNoZWNrZWQ9ImNoZWNrZWQiIC8+IENhcHRpb24gZXQgUiZlYWN1dGU7c3VtJmVhY3V0ZTs8L3RkPjx0ZD4NCiAgPGlucHV0IHR5cGU9ImJ1dHRvbiIgdmFsdWU9Ik9LIiBjbGFzcz0iZm9uZG8iIG9uY2xpY2s9ImphdmFzY3JpcHQ6DQogICAgYmFycmVfbmJjb2xvbmVzLnZhbHVlID0gTWF0aC5hYnMoYmFycmVfbmJjb2xvbmVzLnZhbHVlKTsgYmFycmVfbmJyYW5ncy52YWx1ZQ0KICAgID0gTWF0aC5hYnMoYmFycmVfbmJyYW5ncy52YWx1ZSk7DQogICAgaWYgKCEoYmFycmVfbmJjb2xvbmVzLnZhbHVlID09IDAgfHwgYmFycmVfbmJyYW5ncy52YWx1ZSA9PSAwKSkgew0KICAgIGJhcnJlX3RhYmxlYXUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2lucHV0LTEtdGV4dGVfMicpLCBiYXJyZV9uYmNvbG9uZXMudmFsdWUsIGJhcnJlX25icmFuZ3MudmFsdWUsDQogICAgYmFycmVfZG9lbnRldGUuY2hlY2tlZCwgYmFycmVfZG9jYXB0aW9uLmNoZWNrZWQpOyB9ICIgLz4gDQo8L3RkPjwvdHI+PC90YWJsZT4NCjxkaXYgc3R5bGU9J2NsZWFyOiBib3RoOyc+PC9kaXY+PC9kaXY+PGRpdiBpZD0nTGF5ZXI3JyBzdHlsZT0nZGlzcGxheTpub25lOycgPg0KIDx0YWJsZSBjbGFzcz0ic3BpcF9iYXJyZSIgc3R5bGU9IndpZHRoOiBhdXRvOyBwYWRkaW5nOiAxcHghaW1wb3J0YW50OyBib3JkZXItdG9wOiAwcHg7IiBzdW1tYXJ5PSIiPg0KPHRyPjx0ZD4gDQpBZHJlc3NlJm5ic3A7OiA8aW5wdXQgdHlwZT0idGV4dCIgbmFtZT0ibGllbl9ub20iIHZhbHVlPSJodHRwOi8vIiBzaXplPSIyMSIgbWF4bGVuZ3RoPSIyNTUiIC8+PGJyIC8+DQpCdWxsZSBkJ2FpZGUmbmJzcDs6IDxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJsaWVuX2J1bGxlIiB2YWx1ZT0iIiBzaXplPSIyMSIgbWF4bGVuZ3RoPSIyNTUiIC8+DQo8L3RkPjx0ZD4NCkxhbmd1ZSBhYnImZWFjdXRlO2cmZWFjdXRlO2UmbmJzcDs6IDxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJsaWVuX2xhbmd1ZSIgdmFsdWU9IiIgc2l6ZT0iMTAiIG1heGxlbmd0aD0iMTAiIC8+DQo8L3RkPjx0ZD4NCiAgPGlucHV0IHR5cGU9ImJ1dHRvbiIgdmFsdWU9Ik9LIiBjbGFzcz0iZm9uZG8iIG9uY2xpY2s9ImphdmFzY3JpcHQ6YmFycmVfZGVtYW5kZV9saWVuKCdbJywgJy0+JywgJ10nLCBsaWVuX25vbS52YWx1ZSwgbGllbl9idWxsZS52YWx1ZSwgbGllbl9sYW5ndWUudmFsdWUsZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2lucHV0LTEtdGV4dGVfMicpKTsiIC8+IA0KPC90ZD48L3RyPjwvdGFibGU+DQo8ZGl2IHN0eWxlPSdjbGVhcjogYm90aDsnPjwvZGl2PjwvZGl2PjxkaXYgaWQ9J0xheWVyOCcgc3R5bGU9J2Rpc3BsYXk6bm9uZTsnID4NCjx0YWJsZSBjbGFzcz0ic3BpcF9iYXJyZSIgc3R5bGU9IndpZHRoOiBhdXRvOyBwYWRkaW5nOiAxcHghaW1wb3J0YW50OyBib3JkZXItdG9wOiAwcHg7IiBzdW1tYXJ5PSIiPg0KICA8dHI+DQogICAgPHRkIHN0eWxlPSJ3aWR0aDphdXRvOyB0ZXh0LWFsaWduOmNlbnRlcjsiPjxzdHJvbmc+R2VzdGlvbiBkZXMgYW5jcmVzPC9zdHJvbmc+PC90ZD4NCiAgICA8dGQgc3R5bGU9IndpZHRoOmF1dG87Ij48c3Ryb25nPlRyYW5zZm9ybWVyIGVuIGFuY3JlPC9zdHJvbmc+PGJyIC8+DQogICAgPGxhYmVsIGZvcj0iYW5jcmVfbm9tIj48aT5Ob20gZGUgbCdhbmNyZTwvaT48L2xhYmVsPiA8YnIgLz4NCiAgICAgIDxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJhbmNyZV9ub20iIGlkPSJhbmNyZV9ub20iIC8+DQoJICANCgk8aW5wdXQgdHlwZT0iYnV0dG9uIiB2YWx1ZT0iT0siIGNsYXNzPSJmb25kbyIgb25jbGljaz0iamF2YXNjcmlwdDpiYXJyZV9hbmNyZSgnWycsICc8LScsICddJywgYW5jcmVfbm9tLnZhbHVlLCBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaW5wdXQtMS10ZXh0ZV8yJykpOyIgLz4NCiAgICA8L3RkPg0KCTx0ZCBzdHlsZT0id2lkdGg6YXV0bzsiPjxzdHJvbmc+UG9pbnRlciB2ZXJzIHVuZSBhbmNyZTwvc3Ryb25nPjxiciAvPg0KICAgIDxsYWJlbCBmb3I9ImFuY3JlX2NpYmxlIj48aT5BbmNyZSBjaWJsZTwvaT48L2xhYmVsPiA8aW5wdXQgdHlwZT0idGV4dCIgbmFtZT0iYW5jcmVfY2libGUiIGlkPSJhbmNyZV9jaWJsZSIgLz48YnIgLz4NCgk8bGFiZWwgZm9yPSJhbmNyZV9idWxsZSI+PGk+QnVsbGUgZCdhaWRlIGFuY3JlPC9pPjwvbGFiZWw+IDxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJhbmNyZV9idWxsZSIgaWQ9ImFuY3JlX2J1bGxlIiAvPg0KCTxpbnB1dCB0eXBlPSJidXR0b24iIHZhbHVlPSJPSyIgY2xhc3M9ImZvbmRvIiBvbmNsaWNrPSJqYXZhc2NyaXB0OmJhcnJlX2RlbWFuZGUoJ1snLCAnLT4jJywgJ10nLCBhbmNyZV9jaWJsZS52YWx1ZSwgYW5jcmVfYnVsbGUudmFsdWUsIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdpbnB1dC0xLXRleHRlXzInKSk7IiAvPiANCjwvdGQ+DQogIDwvdHI+IA0KPC90YWJsZT48ZGl2IHN0eWxlPSdjbGVhcjogYm90aDsnPjwvZGl2PjwvZGl2PjxkaXYgaWQ9J0xheWVyOScgc3R5bGU9J2Rpc3BsYXk6bm9uZTsnID4NCjx0YWJsZSBjbGFzcz0ic3BpcF9iYXJyZSIgc3R5bGU9IndpZHRoOiBhdXRvOyBwYWRkaW5nOiAxcHghaW1wb3J0YW50OyBib3JkZXItdG9wOiAwcHg7IiBzdW1tYXJ5PSIiPg0KICA8dHIgY2xhc3M9InNwaXBfYmFycmUiPg0KICAgIDx0ZCBzdHlsZT0id2lkdGg6MzAlOyI+Q2FyYWN0JmVncmF2ZTtyZXMgc3AmZWFjdXRlO2NpYXV4PC90ZD4NCiAgICA8dGQ+PGEgaHJlZj0iamF2YXNjcmlwdDpiYXJyZV9yYWNjb3VyY2koJ1x1MDBhYn4nLCd+XHUwMGJiJyxkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaW5wdXQtMS10ZXh0ZV8yJykpIgogY2xhc3M9J3NwaXBfYmFycmUnIHRhYmluZGV4PScxMDAwJyB0aXRsZT0iRW50b3VyZXIgZGUgJmxhcXVvOyBndWlsbGVtZXRzICZyYXF1bzsiIG9ubW91c2VvdmVyPSJoZWxwbGluZSgnRW50b3VyZXIgZGUgJmxhcXVvOyBndWlsbGVtZXRzICZyYXF1bzsnLGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdiYXJyZV8yJykpIiBvbm1vdXNlb3V0PSJoZWxwbGluZSgnVXRpbGlzZXogbGVzIHJhY2NvdXJjaXMgdHlwb2dyYXBoaXF1ZXMgcG91ciBlbnJpY2hpciB2b3RyZSBtaXNlIGVuIHBhZ2UnLCBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYmFycmVfMicpKSI+PGltZyBzcmM9J2VjcmlyZS9pbWdfcGFjay9pY29uZXNfYmFycmUvZ3VpbGxlbWV0cy5wbmcnIGhlaWdodD0nMTYnIHdpZHRoPScxNicgYWx0PSJFbnRvdXJlciBkZSAmbGFxdW87IGd1aWxsZW1ldHMgJnJhcXVvOyIgLz48L2E+PGEgaHJlZj0iamF2YXNjcmlwdDpiYXJyZV9yYWNjb3VyY2koJ1x1MDA5MycsJ1x1MDA5NCcsZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2lucHV0LTEtdGV4dGVfMicpKSIKIGNsYXNzPSdzcGlwX2JhcnJlJyB0YWJpbmRleD0nMTAwMCcgdGl0bGU9IkVudG91cmVyIGRlICZsZHF1bztndWlsbGVtZXRzIGRlIHNlY29uZCBuaXZlYXUmcmRxdW87IiBvbm1vdXNlb3Zlcj0iaGVscGxpbmUoJ0VudG91cmVyIGRlICZsZHF1bztndWlsbGVtZXRzIGRlIHNlY29uZCBuaXZlYXUmcmRxdW87Jyxkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYmFycmVfMicpKSIgb25tb3VzZW91dD0iaGVscGxpbmUoJ1V0aWxpc2V6IGxlcyByYWNjb3VyY2lzIHR5cG9ncmFwaGlxdWVzIHBvdXIgZW5yaWNoaXIgdm90cmUgbWlzZSBlbiBwYWdlJywgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2JhcnJlXzInKSkiPjxpbWcgc3JjPSdlY3JpcmUvaW1nX3BhY2svaWNvbmVzX2JhcnJlL2d1aWxsZW1ldHMtc2ltcGxlcy5wbmcnIGhlaWdodD0nMTYnIHdpZHRoPScxNicgYWx0PSJFbnRvdXJlciBkZSAmbGRxdW87Z3VpbGxlbWV0cyBkZSBzZWNvbmQgbml2ZWF1JnJkcXVvOyIgLz48L2E+PGEgaHJlZj0iamF2YXNjcmlwdDpiYXJyZV9pbnNlcmVyKCdcdTAwYzAnLGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdpbnB1dC0xLXRleHRlXzInKSkiCiBjbGFzcz0nc3BpcF9iYXJyZScgdGFiaW5kZXg9JzEwMDAnIHRpdGxlPSJJbnMmZWFjdXRlO3JlciB1biBBIGFjY2VudCBncmF2ZSBtYWp1c2N1bGUiIG9ubW91c2VvdmVyPSJoZWxwbGluZSgnSW5zJmVhY3V0ZTtyZXIgdW4gQSBhY2NlbnQgZ3JhdmUgbWFqdXNjdWxlJyxkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYmFycmVfMicpKSIgb25tb3VzZW91dD0iaGVscGxpbmUoJ1V0aWxpc2V6IGxlcyByYWNjb3VyY2lzIHR5cG9ncmFwaGlxdWVzIHBvdXIgZW5yaWNoaXIgdm90cmUgbWlzZSBlbiBwYWdlJywgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2JhcnJlXzInKSkiPjxpbWcgc3JjPSdlY3JpcmUvaW1nX3BhY2svaWNvbmVzX2JhcnJlL2FncmF2ZS1tYWoucG5nJyBoZWlnaHQ9JzE2JyB3aWR0aD0nMTYnIGFsdD0iSW5zJmVhY3V0ZTtyZXIgdW4gQSBhY2NlbnQgZ3JhdmUgbWFqdXNjdWxlIiAvPjwvYT48YSBocmVmPSJqYXZhc2NyaXB0OmJhcnJlX2luc2VyZXIoJ1x1MDBjOScsZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2lucHV0LTEtdGV4dGVfMicpKSIKIGNsYXNzPSdzcGlwX2JhcnJlJyB0YWJpbmRleD0nMTAwMCcgdGl0bGU9IklucyZlYWN1dGU7cmVyIHVuIEUgYWNjZW50IGFpZ3UgbWFqdXNjdWxlIiBvbm1vdXNlb3Zlcj0iaGVscGxpbmUoJ0lucyZlYWN1dGU7cmVyIHVuIEUgYWNjZW50IGFpZ3UgbWFqdXNjdWxlJyxkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYmFycmVfMicpKSIgb25tb3VzZW91dD0iaGVscGxpbmUoJ1V0aWxpc2V6IGxlcyByYWNjb3VyY2lzIHR5cG9ncmFwaGlxdWVzIHBvdXIgZW5yaWNoaXIgdm90cmUgbWlzZSBlbiBwYWdlJywgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2JhcnJlXzInKSkiPjxpbWcgc3JjPSdlY3JpcmUvaW1nX3BhY2svaWNvbmVzX2JhcnJlL2VhY3V0ZS1tYWoucG5nJyBoZWlnaHQ9JzE2JyB3aWR0aD0nMTYnIGFsdD0iSW5zJmVhY3V0ZTtyZXIgdW4gRSBhY2NlbnQgYWlndSBtYWp1c2N1bGUiIC8+PC9hPjxhIGhyZWY9ImphdmFzY3JpcHQ6YmFycmVfaW5zZXJlcignXHUwMGM4Jyxkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaW5wdXQtMS10ZXh0ZV8yJykpIgogY2xhc3M9J3NwaXBfYmFycmUnIHRhYmluZGV4PScxMDAwJyB0aXRsZT0iSW5zJmVhY3V0ZTtyZXIgdW4gRSBtYWp1c2N1bGUgYWNjZW50IGdyYXZlIiBvbm1vdXNlb3Zlcj0iaGVscGxpbmUoJ0lucyZlYWN1dGU7cmVyIHVuIEUgbWFqdXNjdWxlIGFjY2VudCBncmF2ZScsZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2JhcnJlXzInKSkiIG9ubW91c2VvdXQ9ImhlbHBsaW5lKCdVdGlsaXNleiBsZXMgcmFjY291cmNpcyB0eXBvZ3JhcGhpcXVlcyBwb3VyIGVucmljaGlyIHZvdHJlIG1pc2UgZW4gcGFnZScsIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdiYXJyZV8yJykpIj48aW1nIHNyYz0ncGx1Z2lucy9mb25jdGlvbm5hbGl0ZXMvYmFycmVfdHlwb19lY29sb2dpcXVlL2ltZ19wYWNrL2ljb25lc19iYXJyZS9lYWdyYXZlLW1hai5wbmcnIGhlaWdodD0nMTYnIHdpZHRoPScxNicgYWx0PSJJbnMmZWFjdXRlO3JlciB1biBFIG1hanVzY3VsZSBhY2NlbnQgZ3JhdmUiIC8+PC9hPjxhIGhyZWY9ImphdmFzY3JpcHQ6YmFycmVfaW5zZXJlcignXHUwMGU2Jyxkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaW5wdXQtMS10ZXh0ZV8yJykpIgogY2xhc3M9J3NwaXBfYmFycmUnIHRhYmluZGV4PScxMDAwJyB0aXRsZT0iSW5zJmVhY3V0ZTtyZXIgdW4gRSBkYW5zIGwnQSIgb25tb3VzZW92ZXI9ImhlbHBsaW5lKCdJbnMmZWFjdXRlO3JlciB1biBFIGRhbnMgbFwnQScsZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2JhcnJlXzInKSkiIG9ubW91c2VvdXQ9ImhlbHBsaW5lKCdVdGlsaXNleiBsZXMgcmFjY291cmNpcyB0eXBvZ3JhcGhpcXVlcyBwb3VyIGVucmljaGlyIHZvdHJlIG1pc2UgZW4gcGFnZScsIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdiYXJyZV8yJykpIj48aW1nIHNyYz0ncGx1Z2lucy9mb25jdGlvbm5hbGl0ZXMvYmFycmVfdHlwb19lY29sb2dpcXVlL2ltZ19wYWNrL2ljb25lc19iYXJyZS9hZWxpZy5wbmcnIGhlaWdodD0nMTYnIHdpZHRoPScxNicgYWx0PSJJbnMmZWFjdXRlO3JlciB1biBFIGRhbnMgbCdBIiAvPjwvYT48YSBocmVmPSJqYXZhc2NyaXB0OmJhcnJlX2luc2VyZXIoJ1x1MDBjNicsZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2lucHV0LTEtdGV4dGVfMicpKSIKIGNsYXNzPSdzcGlwX2JhcnJlJyB0YWJpbmRleD0nMTAwMCcgdGl0bGU9IklucyZlYWN1dGU7cmVyIHVuIEUgZGFucyBsJ0EgbWFqdXNjdWxlIiBvbm1vdXNlb3Zlcj0iaGVscGxpbmUoJ0lucyZlYWN1dGU7cmVyIHVuIEUgZGFucyBsXCdBIG1hanVzY3VsZScsZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2JhcnJlXzInKSkiIG9ubW91c2VvdXQ9ImhlbHBsaW5lKCdVdGlsaXNleiBsZXMgcmFjY291cmNpcyB0eXBvZ3JhcGhpcXVlcyBwb3VyIGVucmljaGlyIHZvdHJlIG1pc2UgZW4gcGFnZScsIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdiYXJyZV8yJykpIj48aW1nIHNyYz0ncGx1Z2lucy9mb25jdGlvbm5hbGl0ZXMvYmFycmVfdHlwb19lY29sb2dpcXVlL2ltZ19wYWNrL2ljb25lc19iYXJyZS9hZWxpZy1tYWoucG5nJyBoZWlnaHQ9JzE2JyB3aWR0aD0nMTYnIGFsdD0iSW5zJmVhY3V0ZTtyZXIgdW4gRSBkYW5zIGwnQSBtYWp1c2N1bGUiIC8+PC9hPjxhIGhyZWY9ImphdmFzY3JpcHQ6YmFycmVfaW5zZXJlcignJm9lbGlnOycsZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2lucHV0LTEtdGV4dGVfMicpKSIKIGNsYXNzPSdzcGlwX2JhcnJlJyB0YWJpbmRleD0nMTAwMCcgdGl0bGU9IklucyZlYWN1dGU7cmVyIHVuIEUgZGFucyBsJ08iIG9ubW91c2VvdmVyPSJoZWxwbGluZSgnSW5zJmVhY3V0ZTtyZXIgdW4gRSBkYW5zIGxcJ08nLGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdiYXJyZV8yJykpIiBvbm1vdXNlb3V0PSJoZWxwbGluZSgnVXRpbGlzZXogbGVzIHJhY2NvdXJjaXMgdHlwb2dyYXBoaXF1ZXMgcG91ciBlbnJpY2hpciB2b3RyZSBtaXNlIGVuIHBhZ2UnLCBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYmFycmVfMicpKSI+PGltZyBzcmM9J2VjcmlyZS9pbWdfcGFjay9pY29uZXNfYmFycmUvb2VsaWcucG5nJyBoZWlnaHQ9JzE2JyB3aWR0aD0nMTYnIGFsdD0iSW5zJmVhY3V0ZTtyZXIgdW4gRSBkYW5zIGwnTyIgLz48L2E+PGEgaHJlZj0iamF2YXNjcmlwdDpiYXJyZV9pbnNlcmVyKCcmT0VsaWc7Jyxkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaW5wdXQtMS10ZXh0ZV8yJykpIgogY2xhc3M9J3NwaXBfYmFycmUnIHRhYmluZGV4PScxMDAwJyB0aXRsZT0iSW5zJmVhY3V0ZTtyZXIgdW4gRSBkYW5zIGwnTyBtYWp1c2N1bGUiIG9ubW91c2VvdmVyPSJoZWxwbGluZSgnSW5zJmVhY3V0ZTtyZXIgdW4gRSBkYW5zIGxcJ08gbWFqdXNjdWxlJyxkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYmFycmVfMicpKSIgb25tb3VzZW91dD0iaGVscGxpbmUoJ1V0aWxpc2V6IGxlcyByYWNjb3VyY2lzIHR5cG9ncmFwaGlxdWVzIHBvdXIgZW5yaWNoaXIgdm90cmUgbWlzZSBlbiBwYWdlJywgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2JhcnJlXzInKSkiPjxpbWcgc3JjPSdlY3JpcmUvaW1nX3BhY2svaWNvbmVzX2JhcnJlL29lbGlnLW1hai5wbmcnIGhlaWdodD0nMTYnIHdpZHRoPScxNicgYWx0PSJJbnMmZWFjdXRlO3JlciB1biBFIGRhbnMgbCdPIG1hanVzY3VsZSIgLz48L2E+PGEgaHJlZj0iamF2YXNjcmlwdDpiYXJyZV9pbnNlcmVyKCdcdTAwYzcnLGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdpbnB1dC0xLXRleHRlXzInKSkiCiBjbGFzcz0nc3BpcF9iYXJyZScgdGFiaW5kZXg9JzEwMDAnIHRpdGxlPSJJbnMmZWFjdXRlO3JlciB1biBDIGMmZWFjdXRlO2RpbGxlIG1hanVzY3VsZSIgb25tb3VzZW92ZXI9ImhlbHBsaW5lKCdJbnMmZWFjdXRlO3JlciB1biBDIGMmZWFjdXRlO2RpbGxlIG1hanVzY3VsZScsZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2JhcnJlXzInKSkiIG9ubW91c2VvdXQ9ImhlbHBsaW5lKCdVdGlsaXNleiBsZXMgcmFjY291cmNpcyB0eXBvZ3JhcGhpcXVlcyBwb3VyIGVucmljaGlyIHZvdHJlIG1pc2UgZW4gcGFnZScsIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdiYXJyZV8yJykpIj48aW1nIHNyYz0ncGx1Z2lucy9mb25jdGlvbm5hbGl0ZXMvYmFycmVfdHlwb19lY29sb2dpcXVlL2ltZ19wYWNrL2ljb25lc19iYXJyZS9jY2VkaWwtbWFqLnBuZycgaGVpZ2h0PScxNicgd2lkdGg9JzE2JyBhbHQ9IklucyZlYWN1dGU7cmVyIHVuIEMgYyZlYWN1dGU7ZGlsbGUgbWFqdXNjdWxlIiAvPjwvYT48YSBocmVmPSJqYXZhc2NyaXB0OmJhcnJlX2luc2VyZXIoJyZldXJvOycsZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2lucHV0LTEtdGV4dGVfMicpKSIKIGNsYXNzPSdzcGlwX2JhcnJlJyB0YWJpbmRleD0nMTAwMCcgdGl0bGU9IklucyZlYWN1dGU7cmVyIGxlIHN5bWJvbGUgJmV1cm87IiBvbm1vdXNlb3Zlcj0iaGVscGxpbmUoJ0lucyZlYWN1dGU7cmVyIGxlIHN5bWJvbGUgJmV1cm87Jyxkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYmFycmVfMicpKSIgb25tb3VzZW91dD0iaGVscGxpbmUoJ1V0aWxpc2V6IGxlcyByYWNjb3VyY2lzIHR5cG9ncmFwaGlxdWVzIHBvdXIgZW5yaWNoaXIgdm90cmUgbWlzZSBlbiBwYWdlJywgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2JhcnJlXzInKSkiPjxpbWcgc3JjPSdlY3JpcmUvaW1nX3BhY2svaWNvbmVzX2JhcnJlL2V1cm8ucG5nJyBoZWlnaHQ9JzE2JyB3aWR0aD0nMTYnIGFsdD0iSW5zJmVhY3V0ZTtyZXIgbGUgc3ltYm9sZSAmZXVybzsiIC8+PC9hPiZuYnNwOw0KICAgIDwvdGQ+DQogIDwvdHI+IA0KPC90YWJsZT4NCjxkaXYgc3R5bGU9J2NsZWFyOiBib3RoOyc+PC9kaXY+PC9kaXY+PGRpdiBpZD0nTGF5ZXIxMCcgc3R5bGU9J2Rpc3BsYXk6bm9uZTsnID4NCjx0YWJsZSBjbGFzcz0ic3BpcF9iYXJyZSIgc3R5bGU9IndpZHRoOiBhdXRvOyBwYWRkaW5nOiAxcHghaW1wb3J0YW50OyBib3JkZXItdG9wOiAwcHg7IiBzdW1tYXJ5PSIiPg0KPHRyPjx0ZCBzdHlsZT0id2lkdGg6IDI1JTsiPkNoZXJjaGVyPGlucHV0IHR5cGU9InRleHQiIG5hbWU9ImJhcnJlX2NoZXJjaGVyIiB2YWx1ZT0iIiBzaXplPSIxMiIgbWF4bGVuZ3RoPSIyNTUiIC8+PC90ZD48dGQgc3R5bGU9IndpZHRoOiAyMCU7Ij4NCjxpbnB1dCB0eXBlPSJjaGVja2JveCIgbmFtZT0icmVjX2Nhc2UiIHZhbHVlPSJ5ZXMiIC8+UmVzcGVjdGVyIGxhIGNhc3NlPGJyIC8+PGlucHV0IHR5cGU9ImNoZWNrYm94IiBuYW1lPSJyZWNfZW50aWVyIiB2YWx1ZT0ieWVzIiAvPg0KTW90IGVudGllcg0KPC90ZD48dGQgIHN0eWxlPSJ3aWR0aDogMjUlOyI+UmVtcGxhY2VyPGlucHV0IHR5cGU9InRleHQiIG5hbWU9ImJhcnJlX3JlbXBsYWNlciIgdmFsdWU9IiIgc2l6ZT0iMTIiIG1heGxlbmd0aD0iMjU1IiAvPiANCjwvdGQ+PHRkIHN0eWxlPSJ3aWR0aDogMjAlOyI+DQo8aW5wdXQgdHlwZT0iY2hlY2tib3giIG5hbWU9InJlY190b3V0IiB2YWx1ZT0ieWVzIiAvPlRvdXQgcmVtcGxhY2VyPC90ZD48dGQgc3R5bGU9IndpZHRoOiAxMCU7Ij4NCiAgIDxpbnB1dCB0eXBlPSJidXR0b24iIHZhbHVlPSJPSyIgY2xhc3M9ImZvbmRvIg0KICBvbmNsaWNrPSJqYXZhc2NyaXB0OmJhcnJlX3NlYXJjaHJlcGxhY2UoZG9jdW1lbnQuZm9ybXVsYWlyZS5iYXJyZV9jaGVyY2hlci52YWx1ZSwgZG9jdW1lbnQuZm9ybXVsYWlyZS5iYXJyZV9yZW1wbGFjZXIudmFsdWUsIGRvY3VtZW50LmZvcm11bGFpcmUucmVjX3RvdXQuY2hlY2tlZCwgZG9jdW1lbnQuZm9ybXVsYWlyZS5yZWNfY2FzZS5jaGVja2VkLCBkb2N1bWVudC5mb3JtdWxhaXJlLnJlY19lbnRpZXIuY2hlY2tlZCxkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaW5wdXQtMS10ZXh0ZV8yJykpOyIgLz4gDQo8L3RkPjwvdHI+PC90YWJsZT48ZGl2IHN0eWxlPSdjbGVhcjogYm90aDsnPjwvZGl2PjwvZGl2PgoJPHRleHRhcmVhIG5hbWU9J3RleHRlXzInIHJvd3M9JzEwJyBjbGFzcz0nZm9ybWwgICAnIGNvbHM9JzgwJwoJaWQ9J2lucHV0LTEtdGV4dGVfMicKCW9uc2VsZWN0PSdzdG9yZUNhcmV0KHRoaXMpOycKCW9uY2xpY2s9J3N0b3JlQ2FyZXQodGhpcyk7JwoJb25rZXl1cD0nc3RvcmVDYXJldCh0aGlzKTsnCglvbmRibGNsaWNrPSdzdG9yZUNhcmV0KHRoaXMpOyc+PC90ZXh0YXJlYT4KCQkJCQoJCQkJCgkJCQkKCQkJCQoJCQkJCgkJCQkKCQkJCQoJCQkJCgkJCQkKCQkJCTxzcGFuIGNsYXNzPSduZXR0b3lldXInPiA8L3NwYW4+CgkJCQoJCTwvZGl2PgoJCgoKIAoJPC9maWVsZHNldD4KCiAKIAoJCgk8cCBzdHlsZT0nZGlzcGxheTpub25lOyc+PGxhYmVsIGZvcj0ibm9ib3Rub2JvdC0xIj5WZXVpbGxleiBsYWlzc2VyIGNlIGNoYW1wIHZpZGUmbmJzcDs6PC9sYWJlbD4KCTxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJub2JvdG5vYm90IiBpZD0ibm9ib3Rub2JvdC0xIiB2YWx1ZT0iIiBzaXplPSIxMCIgLz48L3A+CgkKCTxkaXYgc3R5bGU9J3RleHQtYWxpZ246cmlnaHQnIGNsYXNzPSdzcGlwX2JvdXRvbic+PGlucHV0IHR5cGU9InN1Ym1pdCIgbmFtZT0nVmFsaWRlcicgdmFsdWU9IlZhbGlkZXIiIC8+PC9kaXY+CgoKPHNjcmlwdCBzcmM9Imh0dHA6Ly9wcmVwcm9kLm5vdHJlLXZpbGxlLm5ldC9+c3RzZWIvcGx1Z2lucy9mb25jdGlvbm5hbGl0ZXMvZm9ybXMvamF2YXNjcmlwdC9qdGlwLmpzIiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPjwvc2NyaXB0PgoKPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPjwhLS0KJCgnaW5wdXQuZm9ybW8nKS5iaW5kKCdmb2N1cycsZnVuY3Rpb24oKXskKHRoaXMpLnJlbW92ZUNsYXNzKCdmb3JtbycpLmFkZENsYXNzKCdmb3Jtby1mb2N1cycpO30pOwokKCdpbnB1dC5mb3JtbycpLmJpbmQoJ2JsdXInLGZ1bmN0aW9uKCl7JCh0aGlzKS5yZW1vdmVDbGFzcygnZm9ybW8tZm9jdXMnKS5hZGRDbGFzcygnZm9ybW8nKTt9KTsKJCgnaW5wdXQuZm9ybWwnKS5iaW5kKCdmb2N1cycsZnVuY3Rpb24oKXskKHRoaXMpLnJlbW92ZUNsYXNzKCdmb3JtbCcpLmFkZENsYXNzKCdmb3JtbC1mb2N1cycpO30pOwokKCdpbnB1dC5mb3JtbCcpLmJpbmQoJ2JsdXInLGZ1bmN0aW9uKCl7JCh0aGlzKS5yZW1vdmVDbGFzcygnZm9ybWwtZm9jdXMnKS5hZGRDbGFzcygnZm9ybWwnKTt9KTsKCi8vLS0+PC9zY3JpcHQ+CgoJIAoJPC9mb3JtPgoJCgkKCQoKCjwvZGl2Pg==',
211
-				'balise' => '<div class="base64" title="PGEgbmFtZT0nZm9ybTEnPjwvYT4KPGRpdiBjbGFzcz0nc3BpcF9mb3Jtcyc+Cgo8ZGl2IGNsYXNzPSdzcGlwX2Rlc2NyaXB0aWYnPjwvZGl2PgoKCgoKIAoJIAoJPGZvcm0gbWV0aG9kPSdwb3N0JyBhY3Rpb249J0NvbnRhY3QuaHRtbCNmb3JtMScKCQllbmN0eXBlPSdtdWx0aXBhcnQvZm9ybS1kYXRhJz4KCQkKCQk8ZGl2PgoJCQoJCTxpbnB1dCB0eXBlPSdoaWRkZW4nIG5hbWU9J2Fqb3V0X3JlcG9uc2UnIHZhbHVlPScxJyAvPgoJCTxpbnB1dCB0eXBlPSdoaWRkZW4nIG5hbWU9J2lkX2Rvbm5lZScgdmFsdWU9Jy0xMCcgLz4KCQkKCQk8aW5wdXQgdHlwZT0naGlkZGVuJyBuYW1lPSdyZXRvdXJfZm9ybScgdmFsdWU9JycgLz4KCQkKCQk8L2Rpdj4KCQkJCgoKIAoJIAoJCQoJCSA8ZmllbGRzZXQ+PGxlZ2VuZD5Ob3VzIGNvbnRhY3RlcjwvbGVnZW5kPiAKCQoJIAoJCTxkaXYgY2xhc3M9J3NwaXBfZm9ybV9jaGFtcCBsaWduZV8xJz4KCQkJCgkJCSAKCQkJCTxzcGFuIGNsYXNzPSdzcGlwX2Zvcm1fbGFiZWwnPgoJCQkJCSA8bGFiZWwgZm9yPSJpbnB1dC0xLWxpZ25lXzEiPlZvdHJlIE5vbTwvbGFiZWw+CgkJCQkJCgkJCQkJPHNwYW4gY2xhc3M9J3NwaXBfZm9ybV9sYWJlbF9vYmxpZ2F0b2lyZSc+CgkJCQkJCVtPYmxpZ2F0b2lyZV08L3NwYW4+CgkJCQkJOgoJCQkJPC9zcGFuPgoJCQkJCgkJCQkKCQkJCQoJCQkJCgkJCQkKCQkJCQoJCQkJCgkJCQkKCQkJCQoJCQkJCgkJCQkKCQkJCSAKCQkJCQoJCQkJPGlucHV0IHR5cGU9InRleHRlIiBuYW1lPSdsaWduZV8xJyBpZD0naW5wdXQtMS1saWduZV8xJyB2YWx1ZT0iIiAKCQkJCQkJY2xhc3M9JyAgbGlnbmUgZm9ybWwnIAoJCQkJCQlzaXplPSc0MCcgLz4KCQkJCQoJCQkJCgkJCQkKCQkJCTxzcGFuIGNsYXNzPSduZXR0b3lldXInPiA8L3NwYW4+CgkJCQoJCTwvZGl2PgoJCgoKCiAKCSAKCQkKCQkKCQoJIAoJCTxkaXYgY2xhc3M9J3NwaXBfZm9ybV9jaGFtcCBsaWduZV8yJz4KCQkJCgkJCSAKCQkJCTxzcGFuIGNsYXNzPSdzcGlwX2Zvcm1fbGFiZWwnPgoJCQkJCSA8bGFiZWwgZm9yPSJpbnB1dC0xLWxpZ25lXzIiPlZvdHJlIFByw6lub208L2xhYmVsPgoJCQkJCQoJCQkJCTxzcGFuIGNsYXNzPSdzcGlwX2Zvcm1fbGFiZWxfb2JsaWdhdG9pcmUnPgoJCQkJCQlbT2JsaWdhdG9pcmVdPC9zcGFuPgoJCQkJCToKCQkJCTwvc3Bhbj4KCQkJCQoJCQkJCgkJCQkKCQkJCQoJCQkJCgkJCQkKCQkJCQoJCQkJCgkJCQkKCQkJCQoJCQkJCgkJCQkgCgkJCQkKCQkJCTxpbnB1dCB0eXBlPSJ0ZXh0ZSIgbmFtZT0nbGlnbmVfMicgaWQ9J2lucHV0LTEtbGlnbmVfMicgdmFsdWU9IiIgCgkJCQkJCWNsYXNzPScgIGxpZ25lIGZvcm1sJyAKCQkJCQkJc2l6ZT0nNDAnIC8+CgkJCQkKCQkJCQoJCQkJCgkJCQk8c3BhbiBjbGFzcz0nbmV0dG95ZXVyJz4gPC9zcGFuPgoJCQkKCQk8L2Rpdj4KCQoKCgogCgkgCgkJCgkJCgkKCSAKCQk8ZGl2IGNsYXNzPSdzcGlwX2Zvcm1fY2hhbXAgZW1haWxfMSc+CgkJCQoJCQkgCgkJCQk8c3BhbiBjbGFzcz0nc3BpcF9mb3JtX2xhYmVsJz4KCQkJCQkgPGxhYmVsIGZvcj0iaW5wdXQtMS1lbWFpbF8xIj5Wb3RyZSBlbWFpbDwvbGFiZWw+CgkJCQkJCgkJCQkJPHNwYW4gY2xhc3M9J3NwaXBfZm9ybV9sYWJlbF9vYmxpZ2F0b2lyZSc+CgkJCQkJCVtPYmxpZ2F0b2lyZV08L3NwYW4+CgkJCQkJOgoJCQkJPC9zcGFuPgoJCQkJCgkJCQk8c3BhbiBjbGFzcz0nc3BpcF9mb3JtX2xhYmVsX2RldGFpbHMnPlZldWlsbGV6IGVudHJlciB1bmUgYWRyZXNzZSBlLW1haWwgdmFsaWRlIChkZSB0eXBlIHZvdXNAZm91cm5pc3NldXIuY29tKS48L3NwYW4+CgkJCQkKCQkJCQoJCQkJCgkJCQkKCQkJCQoJCQkJCgkJCQkKCQkJCQoJCQkJCgkJCQkgCgkJCQkKCQkJCTxpbnB1dCB0eXBlPSJ0ZXh0ZSIgbmFtZT0nZW1haWxfMScgaWQ9J2lucHV0LTEtZW1haWxfMScgdmFsdWU9IiIgCgkJCQkJCWNsYXNzPScgIGVtYWlsIGZvcm1sJyAKCQkJCQkJc2l6ZT0nNDAnIC8+CgkJCQkKCQkJCQoJCQkJCgkJCQk8c3BhbiBjbGFzcz0nbmV0dG95ZXVyJz4gPC9zcGFuPgoJCQkKCQk8L2Rpdj4KCQoKCgogCgkgCgkJCgkJCgkKCSAKCQk8ZGl2IGNsYXNzPSdzcGlwX2Zvcm1fY2hhbXAgdGV4dGVfMSc+CgkJCQoJCQkgCgkJCQk8c3BhbiBjbGFzcz0nc3BpcF9mb3JtX2xhYmVsJz4KCQkJCQkgPGxhYmVsIGZvcj0iaW5wdXQtMS10ZXh0ZV8xIj5Wb3RyZSBBZHJlc3NlPC9sYWJlbD4KCQkJCQkKCQkJCQkKCQkJCQk6CgkJCQk8L3NwYW4+CgkJCQkKCQkJCQoJCQkJCgkJCQkKCQkJCSAgPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0icGx1Z2lucy9hZG1pbi8talF1ZXJ5L2ltZ19wYWNrL2xheWVyLmpzIj48L3NjcmlwdD48c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJwbHVnaW5zL2ZvbmN0aW9ubmFsaXRlcy9iYXJyZV90eXBvX2Vjb2xvZ2lxdWUvanMvc3BpcF9iYXJyZS5qcyI+PC9zY3JpcHQ+PHRhYmxlIGNsYXNzPSdzcGlwX2JhcnJlJyBzdHlsZT0nd2lkdGg6YXV0bzsnIGNlbGxwYWRkaW5nPScwJyBjZWxsc3BhY2luZz0nMCcgYm9yZGVyPScwJyBzdW1tYXJ5PScnPgo8dHIgc3R5bGU9J3dpZHRoOiBhdXRvOycgY2xhc3M9J3NwaXBfYmFycmUnPgo8dGQgc3R5bGU9J3RleHQtYWxpZ246IGxlZnQ7JyB2YWxpZ249J21pZGRsZSc+PGEgaHJlZj0iamF2YXNjcmlwdDpiYXJyZV9yYWNjb3VyY2koJ3snLCd9Jyxkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaW5wdXQtMS10ZXh0ZV8xJykpIgogY2xhc3M9J3NwaXBfYmFycmUnIHRhYmluZGV4PScxMDAwJyB0aXRsZT0iTWV0dHJlIGVuIHtpdGFsaXF1ZX0iIG9ubW91c2VvdmVyPSJoZWxwbGluZSgnTWV0dHJlIGVuIHtpdGFsaXF1ZX0nLGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdiYXJyZV8xJykpIiBvbm1vdXNlb3V0PSJoZWxwbGluZSgnVXRpbGlzZXogbGVzIHJhY2NvdXJjaXMgdHlwb2dyYXBoaXF1ZXMgcG91ciBlbnJpY2hpciB2b3RyZSBtaXNlIGVuIHBhZ2UnLCBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYmFycmVfMScpKSI+PGltZyBzcmM9J2VjcmlyZS9pbWdfcGFjay9pY29uZXNfYmFycmUvaXRhbGlxdWUucG5nJyBoZWlnaHQ9JzE2JyB3aWR0aD0nMTYnIGFsdD0iTWV0dHJlIGVuIHtpdGFsaXF1ZX0iIC8+PC9hPjxhIGhyZWY9ImphdmFzY3JpcHQ6YmFycmVfcmFjY291cmNpKCd7eycsJ319Jyxkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaW5wdXQtMS10ZXh0ZV8xJykpIgogY2xhc3M9J3NwaXBfYmFycmUnIHRhYmluZGV4PScxMDAwJyB0aXRsZT0iTWV0dHJlIGVuIHt7Z3Jhc319IiBvbm1vdXNlb3Zlcj0iaGVscGxpbmUoJ01ldHRyZSBlbiB7e2dyYXN9fScsZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2JhcnJlXzEnKSkiIG9ubW91c2VvdXQ9ImhlbHBsaW5lKCdVdGlsaXNleiBsZXMgcmFjY291cmNpcyB0eXBvZ3JhcGhpcXVlcyBwb3VyIGVucmljaGlyIHZvdHJlIG1pc2UgZW4gcGFnZScsIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdiYXJyZV8xJykpIj48aW1nIHNyYz0nZWNyaXJlL2ltZ19wYWNrL2ljb25lc19iYXJyZS9ncmFzLnBuZycgaGVpZ2h0PScxNicgd2lkdGg9JzE2JyBhbHQ9Ik1ldHRyZSBlbiB7e2dyYXN9fSIgLz48L2E+Jm5ic3A7PC90ZD4KPHRkPjxhIGhyZWY9ImphdmFzY3JpcHQ6c3dhcF9jb3VjaGUoJzInLCcnKTsiCiBjbGFzcz0nc3BpcF9iYXJyZScgdGFiaW5kZXg9JzEwMDAnIHRpdGxlPSJUcmFuc2Zvcm1lciBlbiBbbGllbiBoeXBlcnRleHRlLT5odHRwOi8vLi4uXSIgb25tb3VzZW92ZXI9ImhlbHBsaW5lKCdUcmFuc2Zvcm1lciBlbiBbbGllbiBoeXBlcnRleHRlLT5odHRwOi8vLi4uXScsZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2JhcnJlXzEnKSkiIG9ubW91c2VvdXQ9ImhlbHBsaW5lKCdVdGlsaXNleiBsZXMgcmFjY291cmNpcyB0eXBvZ3JhcGhpcXVlcyBwb3VyIGVucmljaGlyIHZvdHJlIG1pc2UgZW4gcGFnZScsIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdiYXJyZV8xJykpIj48aW1nIHNyYz0nZWNyaXJlL2ltZ19wYWNrL2ljb25lc19iYXJyZS9saWVuLnBuZycgaGVpZ2h0PScxNicgd2lkdGg9JzE2JyBhbHQ9IlRyYW5zZm9ybWVyIGVuIFtsaWVuIGh5cGVydGV4dGUtPmh0dHA6Ly8uLi5dIiAvPjwvYT4mbmJzcDs8L3RkPgo8dGQ+PGEgaHJlZj0iamF2YXNjcmlwdDpiYXJyZV9yYWNjb3VyY2koJyU1Q24lNUNuJTNDcXVvdGUlM0UnLCclM0MvcXVvdGUlM0UlNUNuJTVDbicsZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2lucHV0LTEtdGV4dGVfMScpKSIKIGNsYXNzPSdzcGlwX2JhcnJlJyB0YWJpbmRleD0nMTAwMCcgdGl0bGU9IkNpdGVyIHVuIG1lc3NhZ2UiIG9ubW91c2VvdmVyPSJoZWxwbGluZSgnQ2l0ZXIgdW4gbWVzc2FnZScsZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2JhcnJlXzEnKSkiIG9ubW91c2VvdXQ9ImhlbHBsaW5lKCdVdGlsaXNleiBsZXMgcmFjY291cmNpcyB0eXBvZ3JhcGhpcXVlcyBwb3VyIGVucmljaGlyIHZvdHJlIG1pc2UgZW4gcGFnZScsIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdiYXJyZV8xJykpIj48aW1nIHNyYz0nZWNyaXJlL2ltZ19wYWNrL2ljb25lc19iYXJyZS9xdW90ZS5wbmcnIGhlaWdodD0nMTYnIHdpZHRoPScxNicgYWx0PSJDaXRlciB1biBtZXNzYWdlIiAvPjwvYT4mbmJzcDs8L3RkPgo8dGQgc3R5bGU9J3RleHQtYWxpZ246bGVmdDsnIHZhbGlnbj0nbWlkZGxlJz48YSBocmVmPSJqYXZhc2NyaXB0OnN3YXBfY291Y2hlKCc0JywnJyk7IgogY2xhc3M9J3NwaXBfYmFycmUnIHRhYmluZGV4PScxMDAwJyB0aXRsZT0iQ2FyYWN0JmVncmF2ZTtyZXMgc3AmZWFjdXRlO2NpYXV4IiBvbm1vdXNlb3Zlcj0iaGVscGxpbmUoJ0NhcmFjdCZlZ3JhdmU7cmVzIHNwJmVhY3V0ZTtjaWF1eCcsZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2JhcnJlXzEnKSkiIG9ubW91c2VvdXQ9ImhlbHBsaW5lKCdVdGlsaXNleiBsZXMgcmFjY291cmNpcyB0eXBvZ3JhcGhpcXVlcyBwb3VyIGVucmljaGlyIHZvdHJlIG1pc2UgZW4gcGFnZScsIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdiYXJyZV8xJykpIj48aW1nIHNyYz0ncGx1Z2lucy9mb25jdGlvbm5hbGl0ZXMvYmFycmVfdHlwb19lY29sb2dpcXVlL2ltZ19wYWNrL2ljb25lc19iYXJyZS9jbGF2aWVyLnBuZycgaGVpZ2h0PScxNicgd2lkdGg9JzE2JyBhbHQ9IkNhcmFjdCZlZ3JhdmU7cmVzIHNwJmVhY3V0ZTtjaWF1eCIgLz48L2E+Jm5ic3A7PC90ZD48L3RyPgo8dHI+Cjx0ZCBjb2xzcGFuPSc2Jz48aW5wdXQgZGlzYWJsZWQ9J2Rpc2FibGVkJyB0eXBlPSd0ZXh0JyBpZD0nYmFycmVfMScgc2l6ZT0nNDUnIG1heGxlbmd0aD0nMTAwJyBzdHlsZT0nd2lkdGg6YXV0bzsgZm9udC1zaXplOjExcHg7IGNvbG9yOiBibGFjazsgYmFja2dyb3VuZC1jb2xvcjogI2U0ZTRlNDsgYm9yZGVyOiAwcHggc29saWQgI2RlZGVkZTsnCnZhbHVlPSJVdGlsaXNleiBsZXMgcmFjY291cmNpcyB0eXBvZ3JhcGhpcXVlcyBwb3VyIGVucmljaGlyIHZvdHJlIG1pc2UgZW4gcGFnZSIgLz48L3RkPjwvdHI+PC90YWJsZT48ZGl2IGlkPSdMYXllcjEnIHN0eWxlPSdkaXNwbGF5Om5vbmU7JyA+PHRhYmxlIGNsYXNzPSJzcGlwX2JhcnJlIiBzdHlsZT0id2lkdGg6IGF1dG87IHBhZGRpbmc6IDFweCFpbXBvcnRhbnQ7IGJvcmRlci10b3A6IDBweDsiIHN1bW1hcnk9IiI+DQo8dHI+PHRkPg0KTmIgY29sb25uZXM6IDxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJiYXJyZV9uYmNvbG9uZXMiIHN0eWxlPSJ3aWR0aDogMzBweDsiIHZhbHVlPSIyIiBzaXplPSIyIiBtYXhsZW5ndGg9IjIiICAgLz48L3RkPjx0ZD4NCk5iIGxpZ25lczogPGlucHV0IHR5cGU9InRleHQiIG5hbWU9ImJhcnJlX25icmFuZ3MiIHN0eWxlPSJ3aWR0aDogMzBweDsiIHZhbHVlPSIyIiBzaXplPSIyIiBtYXhsZW5ndGg9IjIiIC8+PC90ZD48dGQ+DQo8aW5wdXQgdHlwZT0iY2hlY2tib3giIG5hbWU9ImJhcnJlX2RvZW50ZXRlIiB2YWx1ZT0iLTEiIGNoZWNrZWQ9ImNoZWNrZWQiIC8+IEVudGV0ZTwvdGQ+PHRkPg0KPGlucHV0IHR5cGU9ImNoZWNrYm94IiBuYW1lPSJiYXJyZV9kb2NhcHRpb24iIHZhbHVlPSItMSIgY2hlY2tlZD0iY2hlY2tlZCIgLz4gQ2FwdGlvbiBldCBSJmVhY3V0ZTtzdW0mZWFjdXRlOzwvdGQ+PHRkPg0KICA8aW5wdXQgdHlwZT0iYnV0dG9uIiB2YWx1ZT0iT0siIGNsYXNzPSJmb25kbyIgb25jbGljaz0iamF2YXNjcmlwdDoNCiAgICBiYXJyZV9uYmNvbG9uZXMudmFsdWUgPSBNYXRoLmFicyhiYXJyZV9uYmNvbG9uZXMudmFsdWUpOyBiYXJyZV9uYnJhbmdzLnZhbHVlDQogICAgPSBNYXRoLmFicyhiYXJyZV9uYnJhbmdzLnZhbHVlKTsNCiAgICBpZiAoIShiYXJyZV9uYmNvbG9uZXMudmFsdWUgPT0gMCB8fCBiYXJyZV9uYnJhbmdzLnZhbHVlID09IDApKSB7DQogICAgYmFycmVfdGFibGVhdShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaW5wdXQtMS10ZXh0ZV8xJyksIGJhcnJlX25iY29sb25lcy52YWx1ZSwgYmFycmVfbmJyYW5ncy52YWx1ZSwNCiAgICBiYXJyZV9kb2VudGV0ZS5jaGVja2VkLCBiYXJyZV9kb2NhcHRpb24uY2hlY2tlZCk7IH0gIiAvPiANCjwvdGQ+PC90cj48L3RhYmxlPg0KPGRpdiBzdHlsZT0nY2xlYXI6IGJvdGg7Jz48L2Rpdj48L2Rpdj48ZGl2IGlkPSdMYXllcjInIHN0eWxlPSdkaXNwbGF5Om5vbmU7JyA+DQogPHRhYmxlIGNsYXNzPSJzcGlwX2JhcnJlIiBzdHlsZT0id2lkdGg6IGF1dG87IHBhZGRpbmc6IDFweCFpbXBvcnRhbnQ7IGJvcmRlci10b3A6IDBweDsiIHN1bW1hcnk9IiI+DQo8dHI+PHRkPiANCkFkcmVzc2UmbmJzcDs6IDxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJsaWVuX25vbSIgdmFsdWU9Imh0dHA6Ly8iIHNpemU9IjIxIiBtYXhsZW5ndGg9IjI1NSIgLz48YnIgLz4NCkJ1bGxlIGQnYWlkZSZuYnNwOzogPGlucHV0IHR5cGU9InRleHQiIG5hbWU9ImxpZW5fYnVsbGUiIHZhbHVlPSIiIHNpemU9IjIxIiBtYXhsZW5ndGg9IjI1NSIgLz4NCjwvdGQ+PHRkPg0KTGFuZ3VlIGFiciZlYWN1dGU7ZyZlYWN1dGU7ZSZuYnNwOzogPGlucHV0IHR5cGU9InRleHQiIG5hbWU9ImxpZW5fbGFuZ3VlIiB2YWx1ZT0iIiBzaXplPSIxMCIgbWF4bGVuZ3RoPSIxMCIgLz4NCjwvdGQ+PHRkPg0KICA8aW5wdXQgdHlwZT0iYnV0dG9uIiB2YWx1ZT0iT0siIGNsYXNzPSJmb25kbyIgb25jbGljaz0iamF2YXNjcmlwdDpiYXJyZV9kZW1hbmRlX2xpZW4oJ1snLCAnLT4nLCAnXScsIGxpZW5fbm9tLnZhbHVlLCBsaWVuX2J1bGxlLnZhbHVlLCBsaWVuX2xhbmd1ZS52YWx1ZSxkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaW5wdXQtMS10ZXh0ZV8xJykpOyIgLz4gDQo8L3RkPjwvdHI+PC90YWJsZT4NCjxkaXYgc3R5bGU9J2NsZWFyOiBib3RoOyc+PC9kaXY+PC9kaXY+PGRpdiBpZD0nTGF5ZXIzJyBzdHlsZT0nZGlzcGxheTpub25lOycgPg0KPHRhYmxlIGNsYXNzPSJzcGlwX2JhcnJlIiBzdHlsZT0id2lkdGg6IGF1dG87IHBhZGRpbmc6IDFweCFpbXBvcnRhbnQ7IGJvcmRlci10b3A6IDBweDsiIHN1bW1hcnk9IiI+DQogIDx0cj4NCiAgICA8dGQgc3R5bGU9IndpZHRoOmF1dG87IHRleHQtYWxpZ246Y2VudGVyOyI+PHN0cm9uZz5HZXN0aW9uIGRlcyBhbmNyZXM8L3N0cm9uZz48L3RkPg0KICAgIDx0ZCBzdHlsZT0id2lkdGg6YXV0bzsiPjxzdHJvbmc+VHJhbnNmb3JtZXIgZW4gYW5jcmU8L3N0cm9uZz48YnIgLz4NCiAgICA8bGFiZWwgZm9yPSJhbmNyZV9ub20iPjxpPk5vbSBkZSBsJ2FuY3JlPC9pPjwvbGFiZWw+IDxiciAvPg0KICAgICAgPGlucHV0IHR5cGU9InRleHQiIG5hbWU9ImFuY3JlX25vbSIgaWQ9ImFuY3JlX25vbSIgLz4NCgkgIA0KCTxpbnB1dCB0eXBlPSJidXR0b24iIHZhbHVlPSJPSyIgY2xhc3M9ImZvbmRvIiBvbmNsaWNrPSJqYXZhc2NyaXB0OmJhcnJlX2FuY3JlKCdbJywgJzwtJywgJ10nLCBhbmNyZV9ub20udmFsdWUsIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdpbnB1dC0xLXRleHRlXzEnKSk7IiAvPg0KICAgIDwvdGQ+DQoJPHRkIHN0eWxlPSJ3aWR0aDphdXRvOyI+PHN0cm9uZz5Qb2ludGVyIHZlcnMgdW5lIGFuY3JlPC9zdHJvbmc+PGJyIC8+DQogICAgPGxhYmVsIGZvcj0iYW5jcmVfY2libGUiPjxpPkFuY3JlIGNpYmxlPC9pPjwvbGFiZWw+IDxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJhbmNyZV9jaWJsZSIgaWQ9ImFuY3JlX2NpYmxlIiAvPjxiciAvPg0KCTxsYWJlbCBmb3I9ImFuY3JlX2J1bGxlIj48aT5CdWxsZSBkJ2FpZGUgYW5jcmU8L2k+PC9sYWJlbD4gPGlucHV0IHR5cGU9InRleHQiIG5hbWU9ImFuY3JlX2J1bGxlIiBpZD0iYW5jcmVfYnVsbGUiIC8+DQoJPGlucHV0IHR5cGU9ImJ1dHRvbiIgdmFsdWU9Ik9LIiBjbGFzcz0iZm9uZG8iIG9uY2xpY2s9ImphdmFzY3JpcHQ6YmFycmVfZGVtYW5kZSgnWycsICctPiMnLCAnXScsIGFuY3JlX2NpYmxlLnZhbHVlLCBhbmNyZV9idWxsZS52YWx1ZSwgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2lucHV0LTEtdGV4dGVfMScpKTsiIC8+IA0KPC90ZD4NCiAgPC90cj4gDQo8L3RhYmxlPjxkaXYgc3R5bGU9J2NsZWFyOiBib3RoOyc+PC9kaXY+PC9kaXY+PGRpdiBpZD0nTGF5ZXI0JyBzdHlsZT0nZGlzcGxheTpub25lOycgPg0KPHRhYmxlIGNsYXNzPSJzcGlwX2JhcnJlIiBzdHlsZT0id2lkdGg6IGF1dG87IHBhZGRpbmc6IDFweCFpbXBvcnRhbnQ7IGJvcmRlci10b3A6IDBweDsiIHN1bW1hcnk9IiI+DQogIDx0ciBjbGFzcz0ic3BpcF9iYXJyZSI+DQogICAgPHRkIHN0eWxlPSJ3aWR0aDozMCU7Ij5DYXJhY3QmZWdyYXZlO3JlcyBzcCZlYWN1dGU7Y2lhdXg8L3RkPg0KICAgIDx0ZD48YSBocmVmPSJqYXZhc2NyaXB0OmJhcnJlX3JhY2NvdXJjaSgnXHUwMGFificsJ35cdTAwYmInLGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdpbnB1dC0xLXRleHRlXzEnKSkiCiBjbGFzcz0nc3BpcF9iYXJyZScgdGFiaW5kZXg9JzEwMDAnIHRpdGxlPSJFbnRvdXJlciBkZSAmbGFxdW87IGd1aWxsZW1ldHMgJnJhcXVvOyIgb25tb3VzZW92ZXI9ImhlbHBsaW5lKCdFbnRvdXJlciBkZSAmbGFxdW87IGd1aWxsZW1ldHMgJnJhcXVvOycsZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2JhcnJlXzEnKSkiIG9ubW91c2VvdXQ9ImhlbHBsaW5lKCdVdGlsaXNleiBsZXMgcmFjY291cmNpcyB0eXBvZ3JhcGhpcXVlcyBwb3VyIGVucmljaGlyIHZvdHJlIG1pc2UgZW4gcGFnZScsIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdiYXJyZV8xJykpIj48aW1nIHNyYz0nZWNyaXJlL2ltZ19wYWNrL2ljb25lc19iYXJyZS9ndWlsbGVtZXRzLnBuZycgaGVpZ2h0PScxNicgd2lkdGg9JzE2JyBhbHQ9IkVudG91cmVyIGRlICZsYXF1bzsgZ3VpbGxlbWV0cyAmcmFxdW87IiAvPjwvYT48YSBocmVmPSJqYXZhc2NyaXB0OmJhcnJlX3JhY2NvdXJjaSgnXHUwMDkzJywnXHUwMDk0Jyxkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaW5wdXQtMS10ZXh0ZV8xJykpIgogY2xhc3M9J3NwaXBfYmFycmUnIHRhYmluZGV4PScxMDAwJyB0aXRsZT0iRW50b3VyZXIgZGUgJmxkcXVvO2d1aWxsZW1ldHMgZGUgc2Vjb25kIG5pdmVhdSZyZHF1bzsiIG9ubW91c2VvdmVyPSJoZWxwbGluZSgnRW50b3VyZXIgZGUgJmxkcXVvO2d1aWxsZW1ldHMgZGUgc2Vjb25kIG5pdmVhdSZyZHF1bzsnLGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdiYXJyZV8xJykpIiBvbm1vdXNlb3V0PSJoZWxwbGluZSgnVXRpbGlzZXogbGVzIHJhY2NvdXJjaXMgdHlwb2dyYXBoaXF1ZXMgcG91ciBlbnJpY2hpciB2b3RyZSBtaXNlIGVuIHBhZ2UnLCBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYmFycmVfMScpKSI+PGltZyBzcmM9J2VjcmlyZS9pbWdfcGFjay9pY29uZXNfYmFycmUvZ3VpbGxlbWV0cy1zaW1wbGVzLnBuZycgaGVpZ2h0PScxNicgd2lkdGg9JzE2JyBhbHQ9IkVudG91cmVyIGRlICZsZHF1bztndWlsbGVtZXRzIGRlIHNlY29uZCBuaXZlYXUmcmRxdW87IiAvPjwvYT48YSBocmVmPSJqYXZhc2NyaXB0OmJhcnJlX2luc2VyZXIoJ1x1MDBjMCcsZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2lucHV0LTEtdGV4dGVfMScpKSIKIGNsYXNzPSdzcGlwX2JhcnJlJyB0YWJpbmRleD0nMTAwMCcgdGl0bGU9IklucyZlYWN1dGU7cmVyIHVuIEEgYWNjZW50IGdyYXZlIG1hanVzY3VsZSIgb25tb3VzZW92ZXI9ImhlbHBsaW5lKCdJbnMmZWFjdXRlO3JlciB1biBBIGFjY2VudCBncmF2ZSBtYWp1c2N1bGUnLGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdiYXJyZV8xJykpIiBvbm1vdXNlb3V0PSJoZWxwbGluZSgnVXRpbGlzZXogbGVzIHJhY2NvdXJjaXMgdHlwb2dyYXBoaXF1ZXMgcG91ciBlbnJpY2hpciB2b3RyZSBtaXNlIGVuIHBhZ2UnLCBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYmFycmVfMScpKSI+PGltZyBzcmM9J2VjcmlyZS9pbWdfcGFjay9pY29uZXNfYmFycmUvYWdyYXZlLW1hai5wbmcnIGhlaWdodD0nMTYnIHdpZHRoPScxNicgYWx0PSJJbnMmZWFjdXRlO3JlciB1biBBIGFjY2VudCBncmF2ZSBtYWp1c2N1bGUiIC8+PC9hPjxhIGhyZWY9ImphdmFzY3JpcHQ6YmFycmVfaW5zZXJlcignXHUwMGM5Jyxkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaW5wdXQtMS10ZXh0ZV8xJykpIgogY2xhc3M9J3NwaXBfYmFycmUnIHRhYmluZGV4PScxMDAwJyB0aXRsZT0iSW5zJmVhY3V0ZTtyZXIgdW4gRSBhY2NlbnQgYWlndSBtYWp1c2N1bGUiIG9ubW91c2VvdmVyPSJoZWxwbGluZSgnSW5zJmVhY3V0ZTtyZXIgdW4gRSBhY2NlbnQgYWlndSBtYWp1c2N1bGUnLGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdiYXJyZV8xJykpIiBvbm1vdXNlb3V0PSJoZWxwbGluZSgnVXRpbGlzZXogbGVzIHJhY2NvdXJjaXMgdHlwb2dyYXBoaXF1ZXMgcG91ciBlbnJpY2hpciB2b3RyZSBtaXNlIGVuIHBhZ2UnLCBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYmFycmVfMScpKSI+PGltZyBzcmM9J2VjcmlyZS9pbWdfcGFjay9pY29uZXNfYmFycmUvZWFjdXRlLW1hai5wbmcnIGhlaWdodD0nMTYnIHdpZHRoPScxNicgYWx0PSJJbnMmZWFjdXRlO3JlciB1biBFIGFjY2VudCBhaWd1IG1hanVzY3VsZSIgLz48L2E+PGEgaHJlZj0iamF2YXNjcmlwdDpiYXJyZV9pbnNlcmVyKCdcdTAwYzgnLGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdpbnB1dC0xLXRleHRlXzEnKSkiCiBjbGFzcz0nc3BpcF9iYXJyZScgdGFiaW5kZXg9JzEwMDAnIHRpdGxlPSJJbnMmZWFjdXRlO3JlciB1biBFIG1hanVzY3VsZSBhY2NlbnQgZ3JhdmUiIG9ubW91c2VvdmVyPSJoZWxwbGluZSgnSW5zJmVhY3V0ZTtyZXIgdW4gRSBtYWp1c2N1bGUgYWNjZW50IGdyYXZlJyxkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYmFycmVfMScpKSIgb25tb3VzZW91dD0iaGVscGxpbmUoJ1V0aWxpc2V6IGxlcyByYWNjb3VyY2lzIHR5cG9ncmFwaGlxdWVzIHBvdXIgZW5yaWNoaXIgdm90cmUgbWlzZSBlbiBwYWdlJywgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2JhcnJlXzEnKSkiPjxpbWcgc3JjPSdwbHVnaW5zL2ZvbmN0aW9ubmFsaXRlcy9iYXJyZV90eXBvX2Vjb2xvZ2lxdWUvaW1nX3BhY2svaWNvbmVzX2JhcnJlL2VhZ3JhdmUtbWFqLnBuZycgaGVpZ2h0PScxNicgd2lkdGg9JzE2JyBhbHQ9IklucyZlYWN1dGU7cmVyIHVuIEUgbWFqdXNjdWxlIGFjY2VudCBncmF2ZSIgLz48L2E+PGEgaHJlZj0iamF2YXNjcmlwdDpiYXJyZV9pbnNlcmVyKCdcdTAwZTYnLGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdpbnB1dC0xLXRleHRlXzEnKSkiCiBjbGFzcz0nc3BpcF9iYXJyZScgdGFiaW5kZXg9JzEwMDAnIHRpdGxlPSJJbnMmZWFjdXRlO3JlciB1biBFIGRhbnMgbCdBIiBvbm1vdXNlb3Zlcj0iaGVscGxpbmUoJ0lucyZlYWN1dGU7cmVyIHVuIEUgZGFucyBsXCdBJyxkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYmFycmVfMScpKSIgb25tb3VzZW91dD0iaGVscGxpbmUoJ1V0aWxpc2V6IGxlcyByYWNjb3VyY2lzIHR5cG9ncmFwaGlxdWVzIHBvdXIgZW5yaWNoaXIgdm90cmUgbWlzZSBlbiBwYWdlJywgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2JhcnJlXzEnKSkiPjxpbWcgc3JjPSdwbHVnaW5zL2ZvbmN0aW9ubmFsaXRlcy9iYXJyZV90eXBvX2Vjb2xvZ2lxdWUvaW1nX3BhY2svaWNvbmVzX2JhcnJlL2FlbGlnLnBuZycgaGVpZ2h0PScxNicgd2lkdGg9JzE2JyBhbHQ9IklucyZlYWN1dGU7cmVyIHVuIEUgZGFucyBsJ0EiIC8+PC9hPjxhIGhyZWY9ImphdmFzY3JpcHQ6YmFycmVfaW5zZXJlcignXHUwMGM2Jyxkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaW5wdXQtMS10ZXh0ZV8xJykpIgogY2xhc3M9J3NwaXBfYmFycmUnIHRhYmluZGV4PScxMDAwJyB0aXRsZT0iSW5zJmVhY3V0ZTtyZXIgdW4gRSBkYW5zIGwnQSBtYWp1c2N1bGUiIG9ubW91c2VvdmVyPSJoZWxwbGluZSgnSW5zJmVhY3V0ZTtyZXIgdW4gRSBkYW5zIGxcJ0EgbWFqdXNjdWxlJyxkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYmFycmVfMScpKSIgb25tb3VzZW91dD0iaGVscGxpbmUoJ1V0aWxpc2V6IGxlcyByYWNjb3VyY2lzIHR5cG9ncmFwaGlxdWVzIHBvdXIgZW5yaWNoaXIgdm90cmUgbWlzZSBlbiBwYWdlJywgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2JhcnJlXzEnKSkiPjxpbWcgc3JjPSdwbHVnaW5zL2ZvbmN0aW9ubmFsaXRlcy9iYXJyZV90eXBvX2Vjb2xvZ2lxdWUvaW1nX3BhY2svaWNvbmVzX2JhcnJlL2FlbGlnLW1hai5wbmcnIGhlaWdodD0nMTYnIHdpZHRoPScxNicgYWx0PSJJbnMmZWFjdXRlO3JlciB1biBFIGRhbnMgbCdBIG1hanVzY3VsZSIgLz48L2E+PGEgaHJlZj0iamF2YXNjcmlwdDpiYXJyZV9pbnNlcmVyKCcmb2VsaWc7Jyxkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaW5wdXQtMS10ZXh0ZV8xJykpIgogY2xhc3M9J3NwaXBfYmFycmUnIHRhYmluZGV4PScxMDAwJyB0aXRsZT0iSW5zJmVhY3V0ZTtyZXIgdW4gRSBkYW5zIGwnTyIgb25tb3VzZW92ZXI9ImhlbHBsaW5lKCdJbnMmZWFjdXRlO3JlciB1biBFIGRhbnMgbFwnTycsZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2JhcnJlXzEnKSkiIG9ubW91c2VvdXQ9ImhlbHBsaW5lKCdVdGlsaXNleiBsZXMgcmFjY291cmNpcyB0eXBvZ3JhcGhpcXVlcyBwb3VyIGVucmljaGlyIHZvdHJlIG1pc2UgZW4gcGFnZScsIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdiYXJyZV8xJykpIj48aW1nIHNyYz0nZWNyaXJlL2ltZ19wYWNrL2ljb25lc19iYXJyZS9vZWxpZy5wbmcnIGhlaWdodD0nMTYnIHdpZHRoPScxNicgYWx0PSJJbnMmZWFjdXRlO3JlciB1biBFIGRhbnMgbCdPIiAvPjwvYT48YSBocmVmPSJqYXZhc2NyaXB0OmJhcnJlX2luc2VyZXIoJyZPRWxpZzsnLGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdpbnB1dC0xLXRleHRlXzEnKSkiCiBjbGFzcz0nc3BpcF9iYXJyZScgdGFiaW5kZXg9JzEwMDAnIHRpdGxlPSJJbnMmZWFjdXRlO3JlciB1biBFIGRhbnMgbCdPIG1hanVzY3VsZSIgb25tb3VzZW92ZXI9ImhlbHBsaW5lKCdJbnMmZWFjdXRlO3JlciB1biBFIGRhbnMgbFwnTyBtYWp1c2N1bGUnLGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdiYXJyZV8xJykpIiBvbm1vdXNlb3V0PSJoZWxwbGluZSgnVXRpbGlzZXogbGVzIHJhY2NvdXJjaXMgdHlwb2dyYXBoaXF1ZXMgcG91ciBlbnJpY2hpciB2b3RyZSBtaXNlIGVuIHBhZ2UnLCBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYmFycmVfMScpKSI+PGltZyBzcmM9J2VjcmlyZS9pbWdfcGFjay9pY29uZXNfYmFycmUvb2VsaWctbWFqLnBuZycgaGVpZ2h0PScxNicgd2lkdGg9JzE2JyBhbHQ9IklucyZlYWN1dGU7cmVyIHVuIEUgZGFucyBsJ08gbWFqdXNjdWxlIiAvPjwvYT48YSBocmVmPSJqYXZhc2NyaXB0OmJhcnJlX2luc2VyZXIoJ1x1MDBjNycsZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2lucHV0LTEtdGV4dGVfMScpKSIKIGNsYXNzPSdzcGlwX2JhcnJlJyB0YWJpbmRleD0nMTAwMCcgdGl0bGU9IklucyZlYWN1dGU7cmVyIHVuIEMgYyZlYWN1dGU7ZGlsbGUgbWFqdXNjdWxlIiBvbm1vdXNlb3Zlcj0iaGVscGxpbmUoJ0lucyZlYWN1dGU7cmVyIHVuIEMgYyZlYWN1dGU7ZGlsbGUgbWFqdXNjdWxlJyxkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYmFycmVfMScpKSIgb25tb3VzZW91dD0iaGVscGxpbmUoJ1V0aWxpc2V6IGxlcyByYWNjb3VyY2lzIHR5cG9ncmFwaGlxdWVzIHBvdXIgZW5yaWNoaXIgdm90cmUgbWlzZSBlbiBwYWdlJywgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2JhcnJlXzEnKSkiPjxpbWcgc3JjPSdwbHVnaW5zL2ZvbmN0aW9ubmFsaXRlcy9iYXJyZV90eXBvX2Vjb2xvZ2lxdWUvaW1nX3BhY2svaWNvbmVzX2JhcnJlL2NjZWRpbC1tYWoucG5nJyBoZWlnaHQ9JzE2JyB3aWR0aD0nMTYnIGFsdD0iSW5zJmVhY3V0ZTtyZXIgdW4gQyBjJmVhY3V0ZTtkaWxsZSBtYWp1c2N1bGUiIC8+PC9hPjxhIGhyZWY9ImphdmFzY3JpcHQ6YmFycmVfaW5zZXJlcignJmV1cm87Jyxkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaW5wdXQtMS10ZXh0ZV8xJykpIgogY2xhc3M9J3NwaXBfYmFycmUnIHRhYmluZGV4PScxMDAwJyB0aXRsZT0iSW5zJmVhY3V0ZTtyZXIgbGUgc3ltYm9sZSAmZXVybzsiIG9ubW91c2VvdmVyPSJoZWxwbGluZSgnSW5zJmVhY3V0ZTtyZXIgbGUgc3ltYm9sZSAmZXVybzsnLGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdiYXJyZV8xJykpIiBvbm1vdXNlb3V0PSJoZWxwbGluZSgnVXRpbGlzZXogbGVzIHJhY2NvdXJjaXMgdHlwb2dyYXBoaXF1ZXMgcG91ciBlbnJpY2hpciB2b3RyZSBtaXNlIGVuIHBhZ2UnLCBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYmFycmVfMScpKSI+PGltZyBzcmM9J2VjcmlyZS9pbWdfcGFjay9pY29uZXNfYmFycmUvZXVyby5wbmcnIGhlaWdodD0nMTYnIHdpZHRoPScxNicgYWx0PSJJbnMmZWFjdXRlO3JlciBsZSBzeW1ib2xlICZldXJvOyIgLz48L2E+Jm5ic3A7DQogICAgPC90ZD4NCiAgPC90cj4gDQo8L3RhYmxlPg0KPGRpdiBzdHlsZT0nY2xlYXI6IGJvdGg7Jz48L2Rpdj48L2Rpdj48ZGl2IGlkPSdMYXllcjUnIHN0eWxlPSdkaXNwbGF5Om5vbmU7JyA+DQo8dGFibGUgY2xhc3M9InNwaXBfYmFycmUiIHN0eWxlPSJ3aWR0aDogYXV0bzsgcGFkZGluZzogMXB4IWltcG9ydGFudDsgYm9yZGVyLXRvcDogMHB4OyIgc3VtbWFyeT0iIj4NCjx0cj48dGQgc3R5bGU9IndpZHRoOiAyNSU7Ij5DaGVyY2hlcjxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJiYXJyZV9jaGVyY2hlciIgdmFsdWU9IiIgc2l6ZT0iMTIiIG1heGxlbmd0aD0iMjU1IiAvPjwvdGQ+PHRkIHN0eWxlPSJ3aWR0aDogMjAlOyI+DQo8aW5wdXQgdHlwZT0iY2hlY2tib3giIG5hbWU9InJlY19jYXNlIiB2YWx1ZT0ieWVzIiAvPlJlc3BlY3RlciBsYSBjYXNzZTxiciAvPjxpbnB1dCB0eXBlPSJjaGVja2JveCIgbmFtZT0icmVjX2VudGllciIgdmFsdWU9InllcyIgLz4NCk1vdCBlbnRpZXINCjwvdGQ+PHRkICBzdHlsZT0id2lkdGg6IDI1JTsiPlJlbXBsYWNlcjxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJiYXJyZV9yZW1wbGFjZXIiIHZhbHVlPSIiIHNpemU9IjEyIiBtYXhsZW5ndGg9IjI1NSIgLz4gDQo8L3RkPjx0ZCBzdHlsZT0id2lkdGg6IDIwJTsiPg0KPGlucHV0IHR5cGU9ImNoZWNrYm94IiBuYW1lPSJyZWNfdG91dCIgdmFsdWU9InllcyIgLz5Ub3V0IHJlbXBsYWNlcjwvdGQ+PHRkIHN0eWxlPSJ3aWR0aDogMTAlOyI+DQogICA8aW5wdXQgdHlwZT0iYnV0dG9uIiB2YWx1ZT0iT0siIGNsYXNzPSJmb25kbyINCiAgb25jbGljaz0iamF2YXNjcmlwdDpiYXJyZV9zZWFyY2hyZXBsYWNlKGRvY3VtZW50LmZvcm11bGFpcmUuYmFycmVfY2hlcmNoZXIudmFsdWUsIGRvY3VtZW50LmZvcm11bGFpcmUuYmFycmVfcmVtcGxhY2VyLnZhbHVlLCBkb2N1bWVudC5mb3JtdWxhaXJlLnJlY190b3V0LmNoZWNrZWQsIGRvY3VtZW50LmZvcm11bGFpcmUucmVjX2Nhc2UuY2hlY2tlZCwgZG9jdW1lbnQuZm9ybXVsYWlyZS5yZWNfZW50aWVyLmNoZWNrZWQsZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2lucHV0LTEtdGV4dGVfMScpKTsiIC8+IA0KPC90ZD48L3RyPjwvdGFibGU+PGRpdiBzdHlsZT0nY2xlYXI6IGJvdGg7Jz48L2Rpdj48L2Rpdj4KCTx0ZXh0YXJlYSBuYW1lPSd0ZXh0ZV8xJyByb3dzPScxMCcgY2xhc3M9J2Zvcm1vICAgJyBjb2xzPSc4MCcKCWlkPSdpbnB1dC0xLXRleHRlXzEnCglvbnNlbGVjdD0nc3RvcmVDYXJldCh0aGlzKTsnCglvbmNsaWNrPSdzdG9yZUNhcmV0KHRoaXMpOycKCW9ua2V5dXA9J3N0b3JlQ2FyZXQodGhpcyk7JwoJb25kYmxjbGljaz0nc3RvcmVDYXJldCh0aGlzKTsnPjwvdGV4dGFyZWE+CgkJCQkKCQkJCQoJCQkJCgkJCQkKCQkJCQoJCQkJCgkJCQkKCQkJCQoJCQkJCgkJCQk8c3BhbiBjbGFzcz0nbmV0dG95ZXVyJz4gPC9zcGFuPgoJCQkKCQk8L2Rpdj4KCQoKCgogCgkgCgkJCgkJCgkKCSAKCQk8ZGl2IGNsYXNzPSdzcGlwX2Zvcm1fY2hhbXAgdGV4dGVfMic+CgkJCQoJCQkgCgkJCQk8c3BhbiBjbGFzcz0nc3BpcF9mb3JtX2xhYmVsJz4KCQkJCQkgPGxhYmVsIGZvcj0iaW5wdXQtMS10ZXh0ZV8yIj5Wb3RyZSBRdWVzdGlvbjwvbGFiZWw+CgkJCQkJCgkJCQkJPHNwYW4gY2xhc3M9J3NwaXBfZm9ybV9sYWJlbF9vYmxpZ2F0b2lyZSc+CgkJCQkJCVtPYmxpZ2F0b2lyZV08L3NwYW4+CgkJCQkJOgoJCQkJPC9zcGFuPgoJCQkJCgkJCQkKCQkJCQoJCQkJCgkJCQkgIDx0YWJsZSBjbGFzcz0nc3BpcF9iYXJyZScgc3R5bGU9J3dpZHRoOmF1dG87JyBjZWxscGFkZGluZz0nMCcgY2VsbHNwYWNpbmc9JzAnIGJvcmRlcj0nMCcgc3VtbWFyeT0nJz4KPHRyIHN0eWxlPSd3aWR0aDogYXV0bzsnIGNsYXNzPSdzcGlwX2JhcnJlJz4KPHRkIHN0eWxlPSd0ZXh0LWFsaWduOiBsZWZ0OycgdmFsaWduPSdtaWRkbGUnPjxhIGhyZWY9ImphdmFzY3JpcHQ6YmFycmVfcmFjY291cmNpKCd7JywnfScsZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2lucHV0LTEtdGV4dGVfMicpKSIKIGNsYXNzPSdzcGlwX2JhcnJlJyB0YWJpbmRleD0nMTAwMCcgdGl0bGU9Ik1ldHRyZSBlbiB7aXRhbGlxdWV9IiBvbm1vdXNlb3Zlcj0iaGVscGxpbmUoJ01ldHRyZSBlbiB7aXRhbGlxdWV9Jyxkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYmFycmVfMicpKSIgb25tb3VzZW91dD0iaGVscGxpbmUoJ1V0aWxpc2V6IGxlcyByYWNjb3VyY2lzIHR5cG9ncmFwaGlxdWVzIHBvdXIgZW5yaWNoaXIgdm90cmUgbWlzZSBlbiBwYWdlJywgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2JhcnJlXzInKSkiPjxpbWcgc3JjPSdlY3JpcmUvaW1nX3BhY2svaWNvbmVzX2JhcnJlL2l0YWxpcXVlLnBuZycgaGVpZ2h0PScxNicgd2lkdGg9JzE2JyBhbHQ9Ik1ldHRyZSBlbiB7aXRhbGlxdWV9IiAvPjwvYT48YSBocmVmPSJqYXZhc2NyaXB0OmJhcnJlX3JhY2NvdXJjaSgne3snLCd9fScsZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2lucHV0LTEtdGV4dGVfMicpKSIKIGNsYXNzPSdzcGlwX2JhcnJlJyB0YWJpbmRleD0nMTAwMCcgdGl0bGU9Ik1ldHRyZSBlbiB7e2dyYXN9fSIgb25tb3VzZW92ZXI9ImhlbHBsaW5lKCdNZXR0cmUgZW4ge3tncmFzfX0nLGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdiYXJyZV8yJykpIiBvbm1vdXNlb3V0PSJoZWxwbGluZSgnVXRpbGlzZXogbGVzIHJhY2NvdXJjaXMgdHlwb2dyYXBoaXF1ZXMgcG91ciBlbnJpY2hpciB2b3RyZSBtaXNlIGVuIHBhZ2UnLCBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYmFycmVfMicpKSI+PGltZyBzcmM9J2VjcmlyZS9pbWdfcGFjay9pY29uZXNfYmFycmUvZ3Jhcy5wbmcnIGhlaWdodD0nMTYnIHdpZHRoPScxNicgYWx0PSJNZXR0cmUgZW4ge3tncmFzfX0iIC8+PC9hPiZuYnNwOzwvdGQ+Cjx0ZD48YSBocmVmPSJqYXZhc2NyaXB0OnN3YXBfY291Y2hlKCc3JywnJyk7IgogY2xhc3M9J3NwaXBfYmFycmUnIHRhYmluZGV4PScxMDAwJyB0aXRsZT0iVHJhbnNmb3JtZXIgZW4gW2xpZW4gaHlwZXJ0ZXh0ZS0+aHR0cDovLy4uLl0iIG9ubW91c2VvdmVyPSJoZWxwbGluZSgnVHJhbnNmb3JtZXIgZW4gW2xpZW4gaHlwZXJ0ZXh0ZS0+aHR0cDovLy4uLl0nLGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdiYXJyZV8yJykpIiBvbm1vdXNlb3V0PSJoZWxwbGluZSgnVXRpbGlzZXogbGVzIHJhY2NvdXJjaXMgdHlwb2dyYXBoaXF1ZXMgcG91ciBlbnJpY2hpciB2b3RyZSBtaXNlIGVuIHBhZ2UnLCBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYmFycmVfMicpKSI+PGltZyBzcmM9J2VjcmlyZS9pbWdfcGFjay9pY29uZXNfYmFycmUvbGllbi5wbmcnIGhlaWdodD0nMTYnIHdpZHRoPScxNicgYWx0PSJUcmFuc2Zvcm1lciBlbiBbbGllbiBoeXBlcnRleHRlLT5odHRwOi8vLi4uXSIgLz48L2E+Jm5ic3A7PC90ZD4KPHRkPjxhIGhyZWY9ImphdmFzY3JpcHQ6YmFycmVfcmFjY291cmNpKCclNUNuJTVDbiUzQ3F1b3RlJTNFJywnJTNDL3F1b3RlJTNFJTVDbiU1Q24nLGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdpbnB1dC0xLXRleHRlXzInKSkiCiBjbGFzcz0nc3BpcF9iYXJyZScgdGFiaW5kZXg9JzEwMDAnIHRpdGxlPSJDaXRlciB1biBtZXNzYWdlIiBvbm1vdXNlb3Zlcj0iaGVscGxpbmUoJ0NpdGVyIHVuIG1lc3NhZ2UnLGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdiYXJyZV8yJykpIiBvbm1vdXNlb3V0PSJoZWxwbGluZSgnVXRpbGlzZXogbGVzIHJhY2NvdXJjaXMgdHlwb2dyYXBoaXF1ZXMgcG91ciBlbnJpY2hpciB2b3RyZSBtaXNlIGVuIHBhZ2UnLCBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYmFycmVfMicpKSI+PGltZyBzcmM9J2VjcmlyZS9pbWdfcGFjay9pY29uZXNfYmFycmUvcXVvdGUucG5nJyBoZWlnaHQ9JzE2JyB3aWR0aD0nMTYnIGFsdD0iQ2l0ZXIgdW4gbWVzc2FnZSIgLz48L2E+Jm5ic3A7PC90ZD4KPHRkIHN0eWxlPSd0ZXh0LWFsaWduOmxlZnQ7JyB2YWxpZ249J21pZGRsZSc+PGEgaHJlZj0iamF2YXNjcmlwdDpzd2FwX2NvdWNoZSgnOScsJycpOyIKIGNsYXNzPSdzcGlwX2JhcnJlJyB0YWJpbmRleD0nMTAwMCcgdGl0bGU9IkNhcmFjdCZlZ3JhdmU7cmVzIHNwJmVhY3V0ZTtjaWF1eCIgb25tb3VzZW92ZXI9ImhlbHBsaW5lKCdDYXJhY3QmZWdyYXZlO3JlcyBzcCZlYWN1dGU7Y2lhdXgnLGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdiYXJyZV8yJykpIiBvbm1vdXNlb3V0PSJoZWxwbGluZSgnVXRpbGlzZXogbGVzIHJhY2NvdXJjaXMgdHlwb2dyYXBoaXF1ZXMgcG91ciBlbnJpY2hpciB2b3RyZSBtaXNlIGVuIHBhZ2UnLCBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYmFycmVfMicpKSI+PGltZyBzcmM9J3BsdWdpbnMvZm9uY3Rpb25uYWxpdGVzL2JhcnJlX3R5cG9fZWNvbG9naXF1ZS9pbWdfcGFjay9pY29uZXNfYmFycmUvY2xhdmllci5wbmcnIGhlaWdodD0nMTYnIHdpZHRoPScxNicgYWx0PSJDYXJhY3QmZWdyYXZlO3JlcyBzcCZlYWN1dGU7Y2lhdXgiIC8+PC9hPiZuYnNwOzwvdGQ+PC90cj4KPHRyPgo8dGQgY29sc3Bhbj0nNic+PGlucHV0IGRpc2FibGVkPSdkaXNhYmxlZCcgdHlwZT0ndGV4dCcgaWQ9J2JhcnJlXzInIHNpemU9JzQ1JyBtYXhsZW5ndGg9JzEwMCcgc3R5bGU9J3dpZHRoOmF1dG87IGZvbnQtc2l6ZToxMXB4OyBjb2xvcjogYmxhY2s7IGJhY2tncm91bmQtY29sb3I6ICNlNGU0ZTQ7IGJvcmRlcjogMHB4IHNvbGlkICNkZWRlZGU7Jwp2YWx1ZT0iVXRpbGlzZXogbGVzIHJhY2NvdXJjaXMgdHlwb2dyYXBoaXF1ZXMgcG91ciBlbnJpY2hpciB2b3RyZSBtaXNlIGVuIHBhZ2UiIC8+PC90ZD48L3RyPjwvdGFibGU+PGRpdiBpZD0nTGF5ZXI2JyBzdHlsZT0nZGlzcGxheTpub25lOycgPjx0YWJsZSBjbGFzcz0ic3BpcF9iYXJyZSIgc3R5bGU9IndpZHRoOiBhdXRvOyBwYWRkaW5nOiAxcHghaW1wb3J0YW50OyBib3JkZXItdG9wOiAwcHg7IiBzdW1tYXJ5PSIiPg0KPHRyPjx0ZD4NCk5iIGNvbG9ubmVzOiA8aW5wdXQgdHlwZT0idGV4dCIgbmFtZT0iYmFycmVfbmJjb2xvbmVzIiBzdHlsZT0id2lkdGg6IDMwcHg7IiB2YWx1ZT0iMiIgc2l6ZT0iMiIgbWF4bGVuZ3RoPSIyIiAgIC8+PC90ZD48dGQ+DQpOYiBsaWduZXM6IDxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJiYXJyZV9uYnJhbmdzIiBzdHlsZT0id2lkdGg6IDMwcHg7IiB2YWx1ZT0iMiIgc2l6ZT0iMiIgbWF4bGVuZ3RoPSIyIiAvPjwvdGQ+PHRkPg0KPGlucHV0IHR5cGU9ImNoZWNrYm94IiBuYW1lPSJiYXJyZV9kb2VudGV0ZSIgdmFsdWU9Ii0xIiBjaGVja2VkPSJjaGVja2VkIiAvPiBFbnRldGU8L3RkPjx0ZD4NCjxpbnB1dCB0eXBlPSJjaGVja2JveCIgbmFtZT0iYmFycmVfZG9jYXB0aW9uIiB2YWx1ZT0iLTEiIGNoZWNrZWQ9ImNoZWNrZWQiIC8+IENhcHRpb24gZXQgUiZlYWN1dGU7c3VtJmVhY3V0ZTs8L3RkPjx0ZD4NCiAgPGlucHV0IHR5cGU9ImJ1dHRvbiIgdmFsdWU9Ik9LIiBjbGFzcz0iZm9uZG8iIG9uY2xpY2s9ImphdmFzY3JpcHQ6DQogICAgYmFycmVfbmJjb2xvbmVzLnZhbHVlID0gTWF0aC5hYnMoYmFycmVfbmJjb2xvbmVzLnZhbHVlKTsgYmFycmVfbmJyYW5ncy52YWx1ZQ0KICAgID0gTWF0aC5hYnMoYmFycmVfbmJyYW5ncy52YWx1ZSk7DQogICAgaWYgKCEoYmFycmVfbmJjb2xvbmVzLnZhbHVlID09IDAgfHwgYmFycmVfbmJyYW5ncy52YWx1ZSA9PSAwKSkgew0KICAgIGJhcnJlX3RhYmxlYXUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2lucHV0LTEtdGV4dGVfMicpLCBiYXJyZV9uYmNvbG9uZXMudmFsdWUsIGJhcnJlX25icmFuZ3MudmFsdWUsDQogICAgYmFycmVfZG9lbnRldGUuY2hlY2tlZCwgYmFycmVfZG9jYXB0aW9uLmNoZWNrZWQpOyB9ICIgLz4gDQo8L3RkPjwvdHI+PC90YWJsZT4NCjxkaXYgc3R5bGU9J2NsZWFyOiBib3RoOyc+PC9kaXY+PC9kaXY+PGRpdiBpZD0nTGF5ZXI3JyBzdHlsZT0nZGlzcGxheTpub25lOycgPg0KIDx0YWJsZSBjbGFzcz0ic3BpcF9iYXJyZSIgc3R5bGU9IndpZHRoOiBhdXRvOyBwYWRkaW5nOiAxcHghaW1wb3J0YW50OyBib3JkZXItdG9wOiAwcHg7IiBzdW1tYXJ5PSIiPg0KPHRyPjx0ZD4gDQpBZHJlc3NlJm5ic3A7OiA8aW5wdXQgdHlwZT0idGV4dCIgbmFtZT0ibGllbl9ub20iIHZhbHVlPSJodHRwOi8vIiBzaXplPSIyMSIgbWF4bGVuZ3RoPSIyNTUiIC8+PGJyIC8+DQpCdWxsZSBkJ2FpZGUmbmJzcDs6IDxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJsaWVuX2J1bGxlIiB2YWx1ZT0iIiBzaXplPSIyMSIgbWF4bGVuZ3RoPSIyNTUiIC8+DQo8L3RkPjx0ZD4NCkxhbmd1ZSBhYnImZWFjdXRlO2cmZWFjdXRlO2UmbmJzcDs6IDxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJsaWVuX2xhbmd1ZSIgdmFsdWU9IiIgc2l6ZT0iMTAiIG1heGxlbmd0aD0iMTAiIC8+DQo8L3RkPjx0ZD4NCiAgPGlucHV0IHR5cGU9ImJ1dHRvbiIgdmFsdWU9Ik9LIiBjbGFzcz0iZm9uZG8iIG9uY2xpY2s9ImphdmFzY3JpcHQ6YmFycmVfZGVtYW5kZV9saWVuKCdbJywgJy0+JywgJ10nLCBsaWVuX25vbS52YWx1ZSwgbGllbl9idWxsZS52YWx1ZSwgbGllbl9sYW5ndWUudmFsdWUsZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2lucHV0LTEtdGV4dGVfMicpKTsiIC8+IA0KPC90ZD48L3RyPjwvdGFibGU+DQo8ZGl2IHN0eWxlPSdjbGVhcjogYm90aDsnPjwvZGl2PjwvZGl2PjxkaXYgaWQ9J0xheWVyOCcgc3R5bGU9J2Rpc3BsYXk6bm9uZTsnID4NCjx0YWJsZSBjbGFzcz0ic3BpcF9iYXJyZSIgc3R5bGU9IndpZHRoOiBhdXRvOyBwYWRkaW5nOiAxcHghaW1wb3J0YW50OyBib3JkZXItdG9wOiAwcHg7IiBzdW1tYXJ5PSIiPg0KICA8dHI+DQogICAgPHRkIHN0eWxlPSJ3aWR0aDphdXRvOyB0ZXh0LWFsaWduOmNlbnRlcjsiPjxzdHJvbmc+R2VzdGlvbiBkZXMgYW5jcmVzPC9zdHJvbmc+PC90ZD4NCiAgICA8dGQgc3R5bGU9IndpZHRoOmF1dG87Ij48c3Ryb25nPlRyYW5zZm9ybWVyIGVuIGFuY3JlPC9zdHJvbmc+PGJyIC8+DQogICAgPGxhYmVsIGZvcj0iYW5jcmVfbm9tIj48aT5Ob20gZGUgbCdhbmNyZTwvaT48L2xhYmVsPiA8YnIgLz4NCiAgICAgIDxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJhbmNyZV9ub20iIGlkPSJhbmNyZV9ub20iIC8+DQoJICANCgk8aW5wdXQgdHlwZT0iYnV0dG9uIiB2YWx1ZT0iT0siIGNsYXNzPSJmb25kbyIgb25jbGljaz0iamF2YXNjcmlwdDpiYXJyZV9hbmNyZSgnWycsICc8LScsICddJywgYW5jcmVfbm9tLnZhbHVlLCBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaW5wdXQtMS10ZXh0ZV8yJykpOyIgLz4NCiAgICA8L3RkPg0KCTx0ZCBzdHlsZT0id2lkdGg6YXV0bzsiPjxzdHJvbmc+UG9pbnRlciB2ZXJzIHVuZSBhbmNyZTwvc3Ryb25nPjxiciAvPg0KICAgIDxsYWJlbCBmb3I9ImFuY3JlX2NpYmxlIj48aT5BbmNyZSBjaWJsZTwvaT48L2xhYmVsPiA8aW5wdXQgdHlwZT0idGV4dCIgbmFtZT0iYW5jcmVfY2libGUiIGlkPSJhbmNyZV9jaWJsZSIgLz48YnIgLz4NCgk8bGFiZWwgZm9yPSJhbmNyZV9idWxsZSI+PGk+QnVsbGUgZCdhaWRlIGFuY3JlPC9pPjwvbGFiZWw+IDxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJhbmNyZV9idWxsZSIgaWQ9ImFuY3JlX2J1bGxlIiAvPg0KCTxpbnB1dCB0eXBlPSJidXR0b24iIHZhbHVlPSJPSyIgY2xhc3M9ImZvbmRvIiBvbmNsaWNrPSJqYXZhc2NyaXB0OmJhcnJlX2RlbWFuZGUoJ1snLCAnLT4jJywgJ10nLCBhbmNyZV9jaWJsZS52YWx1ZSwgYW5jcmVfYnVsbGUudmFsdWUsIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdpbnB1dC0xLXRleHRlXzInKSk7IiAvPiANCjwvdGQ+DQogIDwvdHI+IA0KPC90YWJsZT48ZGl2IHN0eWxlPSdjbGVhcjogYm90aDsnPjwvZGl2PjwvZGl2PjxkaXYgaWQ9J0xheWVyOScgc3R5bGU9J2Rpc3BsYXk6bm9uZTsnID4NCjx0YWJsZSBjbGFzcz0ic3BpcF9iYXJyZSIgc3R5bGU9IndpZHRoOiBhdXRvOyBwYWRkaW5nOiAxcHghaW1wb3J0YW50OyBib3JkZXItdG9wOiAwcHg7IiBzdW1tYXJ5PSIiPg0KICA8dHIgY2xhc3M9InNwaXBfYmFycmUiPg0KICAgIDx0ZCBzdHlsZT0id2lkdGg6MzAlOyI+Q2FyYWN0JmVncmF2ZTtyZXMgc3AmZWFjdXRlO2NpYXV4PC90ZD4NCiAgICA8dGQ+PGEgaHJlZj0iamF2YXNjcmlwdDpiYXJyZV9yYWNjb3VyY2koJ1x1MDBhYn4nLCd+XHUwMGJiJyxkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaW5wdXQtMS10ZXh0ZV8yJykpIgogY2xhc3M9J3NwaXBfYmFycmUnIHRhYmluZGV4PScxMDAwJyB0aXRsZT0iRW50b3VyZXIgZGUgJmxhcXVvOyBndWlsbGVtZXRzICZyYXF1bzsiIG9ubW91c2VvdmVyPSJoZWxwbGluZSgnRW50b3VyZXIgZGUgJmxhcXVvOyBndWlsbGVtZXRzICZyYXF1bzsnLGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdiYXJyZV8yJykpIiBvbm1vdXNlb3V0PSJoZWxwbGluZSgnVXRpbGlzZXogbGVzIHJhY2NvdXJjaXMgdHlwb2dyYXBoaXF1ZXMgcG91ciBlbnJpY2hpciB2b3RyZSBtaXNlIGVuIHBhZ2UnLCBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYmFycmVfMicpKSI+PGltZyBzcmM9J2VjcmlyZS9pbWdfcGFjay9pY29uZXNfYmFycmUvZ3VpbGxlbWV0cy5wbmcnIGhlaWdodD0nMTYnIHdpZHRoPScxNicgYWx0PSJFbnRvdXJlciBkZSAmbGFxdW87IGd1aWxsZW1ldHMgJnJhcXVvOyIgLz48L2E+PGEgaHJlZj0iamF2YXNjcmlwdDpiYXJyZV9yYWNjb3VyY2koJ1x1MDA5MycsJ1x1MDA5NCcsZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2lucHV0LTEtdGV4dGVfMicpKSIKIGNsYXNzPSdzcGlwX2JhcnJlJyB0YWJpbmRleD0nMTAwMCcgdGl0bGU9IkVudG91cmVyIGRlICZsZHF1bztndWlsbGVtZXRzIGRlIHNlY29uZCBuaXZlYXUmcmRxdW87IiBvbm1vdXNlb3Zlcj0iaGVscGxpbmUoJ0VudG91cmVyIGRlICZsZHF1bztndWlsbGVtZXRzIGRlIHNlY29uZCBuaXZlYXUmcmRxdW87Jyxkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYmFycmVfMicpKSIgb25tb3VzZW91dD0iaGVscGxpbmUoJ1V0aWxpc2V6IGxlcyByYWNjb3VyY2lzIHR5cG9ncmFwaGlxdWVzIHBvdXIgZW5yaWNoaXIgdm90cmUgbWlzZSBlbiBwYWdlJywgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2JhcnJlXzInKSkiPjxpbWcgc3JjPSdlY3JpcmUvaW1nX3BhY2svaWNvbmVzX2JhcnJlL2d1aWxsZW1ldHMtc2ltcGxlcy5wbmcnIGhlaWdodD0nMTYnIHdpZHRoPScxNicgYWx0PSJFbnRvdXJlciBkZSAmbGRxdW87Z3VpbGxlbWV0cyBkZSBzZWNvbmQgbml2ZWF1JnJkcXVvOyIgLz48L2E+PGEgaHJlZj0iamF2YXNjcmlwdDpiYXJyZV9pbnNlcmVyKCdcdTAwYzAnLGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdpbnB1dC0xLXRleHRlXzInKSkiCiBjbGFzcz0nc3BpcF9iYXJyZScgdGFiaW5kZXg9JzEwMDAnIHRpdGxlPSJJbnMmZWFjdXRlO3JlciB1biBBIGFjY2VudCBncmF2ZSBtYWp1c2N1bGUiIG9ubW91c2VvdmVyPSJoZWxwbGluZSgnSW5zJmVhY3V0ZTtyZXIgdW4gQSBhY2NlbnQgZ3JhdmUgbWFqdXNjdWxlJyxkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYmFycmVfMicpKSIgb25tb3VzZW91dD0iaGVscGxpbmUoJ1V0aWxpc2V6IGxlcyByYWNjb3VyY2lzIHR5cG9ncmFwaGlxdWVzIHBvdXIgZW5yaWNoaXIgdm90cmUgbWlzZSBlbiBwYWdlJywgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2JhcnJlXzInKSkiPjxpbWcgc3JjPSdlY3JpcmUvaW1nX3BhY2svaWNvbmVzX2JhcnJlL2FncmF2ZS1tYWoucG5nJyBoZWlnaHQ9JzE2JyB3aWR0aD0nMTYnIGFsdD0iSW5zJmVhY3V0ZTtyZXIgdW4gQSBhY2NlbnQgZ3JhdmUgbWFqdXNjdWxlIiAvPjwvYT48YSBocmVmPSJqYXZhc2NyaXB0OmJhcnJlX2luc2VyZXIoJ1x1MDBjOScsZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2lucHV0LTEtdGV4dGVfMicpKSIKIGNsYXNzPSdzcGlwX2JhcnJlJyB0YWJpbmRleD0nMTAwMCcgdGl0bGU9IklucyZlYWN1dGU7cmVyIHVuIEUgYWNjZW50IGFpZ3UgbWFqdXNjdWxlIiBvbm1vdXNlb3Zlcj0iaGVscGxpbmUoJ0lucyZlYWN1dGU7cmVyIHVuIEUgYWNjZW50IGFpZ3UgbWFqdXNjdWxlJyxkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYmFycmVfMicpKSIgb25tb3VzZW91dD0iaGVscGxpbmUoJ1V0aWxpc2V6IGxlcyByYWNjb3VyY2lzIHR5cG9ncmFwaGlxdWVzIHBvdXIgZW5yaWNoaXIgdm90cmUgbWlzZSBlbiBwYWdlJywgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2JhcnJlXzInKSkiPjxpbWcgc3JjPSdlY3JpcmUvaW1nX3BhY2svaWNvbmVzX2JhcnJlL2VhY3V0ZS1tYWoucG5nJyBoZWlnaHQ9JzE2JyB3aWR0aD0nMTYnIGFsdD0iSW5zJmVhY3V0ZTtyZXIgdW4gRSBhY2NlbnQgYWlndSBtYWp1c2N1bGUiIC8+PC9hPjxhIGhyZWY9ImphdmFzY3JpcHQ6YmFycmVfaW5zZXJlcignXHUwMGM4Jyxkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaW5wdXQtMS10ZXh0ZV8yJykpIgogY2xhc3M9J3NwaXBfYmFycmUnIHRhYmluZGV4PScxMDAwJyB0aXRsZT0iSW5zJmVhY3V0ZTtyZXIgdW4gRSBtYWp1c2N1bGUgYWNjZW50IGdyYXZlIiBvbm1vdXNlb3Zlcj0iaGVscGxpbmUoJ0lucyZlYWN1dGU7cmVyIHVuIEUgbWFqdXNjdWxlIGFjY2VudCBncmF2ZScsZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2JhcnJlXzInKSkiIG9ubW91c2VvdXQ9ImhlbHBsaW5lKCdVdGlsaXNleiBsZXMgcmFjY291cmNpcyB0eXBvZ3JhcGhpcXVlcyBwb3VyIGVucmljaGlyIHZvdHJlIG1pc2UgZW4gcGFnZScsIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdiYXJyZV8yJykpIj48aW1nIHNyYz0ncGx1Z2lucy9mb25jdGlvbm5hbGl0ZXMvYmFycmVfdHlwb19lY29sb2dpcXVlL2ltZ19wYWNrL2ljb25lc19iYXJyZS9lYWdyYXZlLW1hai5wbmcnIGhlaWdodD0nMTYnIHdpZHRoPScxNicgYWx0PSJJbnMmZWFjdXRlO3JlciB1biBFIG1hanVzY3VsZSBhY2NlbnQgZ3JhdmUiIC8+PC9hPjxhIGhyZWY9ImphdmFzY3JpcHQ6YmFycmVfaW5zZXJlcignXHUwMGU2Jyxkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaW5wdXQtMS10ZXh0ZV8yJykpIgogY2xhc3M9J3NwaXBfYmFycmUnIHRhYmluZGV4PScxMDAwJyB0aXRsZT0iSW5zJmVhY3V0ZTtyZXIgdW4gRSBkYW5zIGwnQSIgb25tb3VzZW92ZXI9ImhlbHBsaW5lKCdJbnMmZWFjdXRlO3JlciB1biBFIGRhbnMgbFwnQScsZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2JhcnJlXzInKSkiIG9ubW91c2VvdXQ9ImhlbHBsaW5lKCdVdGlsaXNleiBsZXMgcmFjY291cmNpcyB0eXBvZ3JhcGhpcXVlcyBwb3VyIGVucmljaGlyIHZvdHJlIG1pc2UgZW4gcGFnZScsIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdiYXJyZV8yJykpIj48aW1nIHNyYz0ncGx1Z2lucy9mb25jdGlvbm5hbGl0ZXMvYmFycmVfdHlwb19lY29sb2dpcXVlL2ltZ19wYWNrL2ljb25lc19iYXJyZS9hZWxpZy5wbmcnIGhlaWdodD0nMTYnIHdpZHRoPScxNicgYWx0PSJJbnMmZWFjdXRlO3JlciB1biBFIGRhbnMgbCdBIiAvPjwvYT48YSBocmVmPSJqYXZhc2NyaXB0OmJhcnJlX2luc2VyZXIoJ1x1MDBjNicsZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2lucHV0LTEtdGV4dGVfMicpKSIKIGNsYXNzPSdzcGlwX2JhcnJlJyB0YWJpbmRleD0nMTAwMCcgdGl0bGU9IklucyZlYWN1dGU7cmVyIHVuIEUgZGFucyBsJ0EgbWFqdXNjdWxlIiBvbm1vdXNlb3Zlcj0iaGVscGxpbmUoJ0lucyZlYWN1dGU7cmVyIHVuIEUgZGFucyBsXCdBIG1hanVzY3VsZScsZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2JhcnJlXzInKSkiIG9ubW91c2VvdXQ9ImhlbHBsaW5lKCdVdGlsaXNleiBsZXMgcmFjY291cmNpcyB0eXBvZ3JhcGhpcXVlcyBwb3VyIGVucmljaGlyIHZvdHJlIG1pc2UgZW4gcGFnZScsIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdiYXJyZV8yJykpIj48aW1nIHNyYz0ncGx1Z2lucy9mb25jdGlvbm5hbGl0ZXMvYmFycmVfdHlwb19lY29sb2dpcXVlL2ltZ19wYWNrL2ljb25lc19iYXJyZS9hZWxpZy1tYWoucG5nJyBoZWlnaHQ9JzE2JyB3aWR0aD0nMTYnIGFsdD0iSW5zJmVhY3V0ZTtyZXIgdW4gRSBkYW5zIGwnQSBtYWp1c2N1bGUiIC8+PC9hPjxhIGhyZWY9ImphdmFzY3JpcHQ6YmFycmVfaW5zZXJlcignJm9lbGlnOycsZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2lucHV0LTEtdGV4dGVfMicpKSIKIGNsYXNzPSdzcGlwX2JhcnJlJyB0YWJpbmRleD0nMTAwMCcgdGl0bGU9IklucyZlYWN1dGU7cmVyIHVuIEUgZGFucyBsJ08iIG9ubW91c2VvdmVyPSJoZWxwbGluZSgnSW5zJmVhY3V0ZTtyZXIgdW4gRSBkYW5zIGxcJ08nLGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdiYXJyZV8yJykpIiBvbm1vdXNlb3V0PSJoZWxwbGluZSgnVXRpbGlzZXogbGVzIHJhY2NvdXJjaXMgdHlwb2dyYXBoaXF1ZXMgcG91ciBlbnJpY2hpciB2b3RyZSBtaXNlIGVuIHBhZ2UnLCBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYmFycmVfMicpKSI+PGltZyBzcmM9J2VjcmlyZS9pbWdfcGFjay9pY29uZXNfYmFycmUvb2VsaWcucG5nJyBoZWlnaHQ9JzE2JyB3aWR0aD0nMTYnIGFsdD0iSW5zJmVhY3V0ZTtyZXIgdW4gRSBkYW5zIGwnTyIgLz48L2E+PGEgaHJlZj0iamF2YXNjcmlwdDpiYXJyZV9pbnNlcmVyKCcmT0VsaWc7Jyxkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaW5wdXQtMS10ZXh0ZV8yJykpIgogY2xhc3M9J3NwaXBfYmFycmUnIHRhYmluZGV4PScxMDAwJyB0aXRsZT0iSW5zJmVhY3V0ZTtyZXIgdW4gRSBkYW5zIGwnTyBtYWp1c2N1bGUiIG9ubW91c2VvdmVyPSJoZWxwbGluZSgnSW5zJmVhY3V0ZTtyZXIgdW4gRSBkYW5zIGxcJ08gbWFqdXNjdWxlJyxkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYmFycmVfMicpKSIgb25tb3VzZW91dD0iaGVscGxpbmUoJ1V0aWxpc2V6IGxlcyByYWNjb3VyY2lzIHR5cG9ncmFwaGlxdWVzIHBvdXIgZW5yaWNoaXIgdm90cmUgbWlzZSBlbiBwYWdlJywgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2JhcnJlXzInKSkiPjxpbWcgc3JjPSdlY3JpcmUvaW1nX3BhY2svaWNvbmVzX2JhcnJlL29lbGlnLW1hai5wbmcnIGhlaWdodD0nMTYnIHdpZHRoPScxNicgYWx0PSJJbnMmZWFjdXRlO3JlciB1biBFIGRhbnMgbCdPIG1hanVzY3VsZSIgLz48L2E+PGEgaHJlZj0iamF2YXNjcmlwdDpiYXJyZV9pbnNlcmVyKCdcdTAwYzcnLGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdpbnB1dC0xLXRleHRlXzInKSkiCiBjbGFzcz0nc3BpcF9iYXJyZScgdGFiaW5kZXg9JzEwMDAnIHRpdGxlPSJJbnMmZWFjdXRlO3JlciB1biBDIGMmZWFjdXRlO2RpbGxlIG1hanVzY3VsZSIgb25tb3VzZW92ZXI9ImhlbHBsaW5lKCdJbnMmZWFjdXRlO3JlciB1biBDIGMmZWFjdXRlO2RpbGxlIG1hanVzY3VsZScsZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2JhcnJlXzInKSkiIG9ubW91c2VvdXQ9ImhlbHBsaW5lKCdVdGlsaXNleiBsZXMgcmFjY291cmNpcyB0eXBvZ3JhcGhpcXVlcyBwb3VyIGVucmljaGlyIHZvdHJlIG1pc2UgZW4gcGFnZScsIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdiYXJyZV8yJykpIj48aW1nIHNyYz0ncGx1Z2lucy9mb25jdGlvbm5hbGl0ZXMvYmFycmVfdHlwb19lY29sb2dpcXVlL2ltZ19wYWNrL2ljb25lc19iYXJyZS9jY2VkaWwtbWFqLnBuZycgaGVpZ2h0PScxNicgd2lkdGg9JzE2JyBhbHQ9IklucyZlYWN1dGU7cmVyIHVuIEMgYyZlYWN1dGU7ZGlsbGUgbWFqdXNjdWxlIiAvPjwvYT48YSBocmVmPSJqYXZhc2NyaXB0OmJhcnJlX2luc2VyZXIoJyZldXJvOycsZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2lucHV0LTEtdGV4dGVfMicpKSIKIGNsYXNzPSdzcGlwX2JhcnJlJyB0YWJpbmRleD0nMTAwMCcgdGl0bGU9IklucyZlYWN1dGU7cmVyIGxlIHN5bWJvbGUgJmV1cm87IiBvbm1vdXNlb3Zlcj0iaGVscGxpbmUoJ0lucyZlYWN1dGU7cmVyIGxlIHN5bWJvbGUgJmV1cm87Jyxkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYmFycmVfMicpKSIgb25tb3VzZW91dD0iaGVscGxpbmUoJ1V0aWxpc2V6IGxlcyByYWNjb3VyY2lzIHR5cG9ncmFwaGlxdWVzIHBvdXIgZW5yaWNoaXIgdm90cmUgbWlzZSBlbiBwYWdlJywgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2JhcnJlXzInKSkiPjxpbWcgc3JjPSdlY3JpcmUvaW1nX3BhY2svaWNvbmVzX2JhcnJlL2V1cm8ucG5nJyBoZWlnaHQ9JzE2JyB3aWR0aD0nMTYnIGFsdD0iSW5zJmVhY3V0ZTtyZXIgbGUgc3ltYm9sZSAmZXVybzsiIC8+PC9hPiZuYnNwOw0KICAgIDwvdGQ+DQogIDwvdHI+IA0KPC90YWJsZT4NCjxkaXYgc3R5bGU9J2NsZWFyOiBib3RoOyc+PC9kaXY+PC9kaXY+PGRpdiBpZD0nTGF5ZXIxMCcgc3R5bGU9J2Rpc3BsYXk6bm9uZTsnID4NCjx0YWJsZSBjbGFzcz0ic3BpcF9iYXJyZSIgc3R5bGU9IndpZHRoOiBhdXRvOyBwYWRkaW5nOiAxcHghaW1wb3J0YW50OyBib3JkZXItdG9wOiAwcHg7IiBzdW1tYXJ5PSIiPg0KPHRyPjx0ZCBzdHlsZT0id2lkdGg6IDI1JTsiPkNoZXJjaGVyPGlucHV0IHR5cGU9InRleHQiIG5hbWU9ImJhcnJlX2NoZXJjaGVyIiB2YWx1ZT0iIiBzaXplPSIxMiIgbWF4bGVuZ3RoPSIyNTUiIC8+PC90ZD48dGQgc3R5bGU9IndpZHRoOiAyMCU7Ij4NCjxpbnB1dCB0eXBlPSJjaGVja2JveCIgbmFtZT0icmVjX2Nhc2UiIHZhbHVlPSJ5ZXMiIC8+UmVzcGVjdGVyIGxhIGNhc3NlPGJyIC8+PGlucHV0IHR5cGU9ImNoZWNrYm94IiBuYW1lPSJyZWNfZW50aWVyIiB2YWx1ZT0ieWVzIiAvPg0KTW90IGVudGllcg0KPC90ZD48dGQgIHN0eWxlPSJ3aWR0aDogMjUlOyI+UmVtcGxhY2VyPGlucHV0IHR5cGU9InRleHQiIG5hbWU9ImJhcnJlX3JlbXBsYWNlciIgdmFsdWU9IiIgc2l6ZT0iMTIiIG1heGxlbmd0aD0iMjU1IiAvPiANCjwvdGQ+PHRkIHN0eWxlPSJ3aWR0aDogMjAlOyI+DQo8aW5wdXQgdHlwZT0iY2hlY2tib3giIG5hbWU9InJlY190b3V0IiB2YWx1ZT0ieWVzIiAvPlRvdXQgcmVtcGxhY2VyPC90ZD48dGQgc3R5bGU9IndpZHRoOiAxMCU7Ij4NCiAgIDxpbnB1dCB0eXBlPSJidXR0b24iIHZhbHVlPSJPSyIgY2xhc3M9ImZvbmRvIg0KICBvbmNsaWNrPSJqYXZhc2NyaXB0OmJhcnJlX3NlYXJjaHJlcGxhY2UoZG9jdW1lbnQuZm9ybXVsYWlyZS5iYXJyZV9jaGVyY2hlci52YWx1ZSwgZG9jdW1lbnQuZm9ybXVsYWlyZS5iYXJyZV9yZW1wbGFjZXIudmFsdWUsIGRvY3VtZW50LmZvcm11bGFpcmUucmVjX3RvdXQuY2hlY2tlZCwgZG9jdW1lbnQuZm9ybXVsYWlyZS5yZWNfY2FzZS5jaGVja2VkLCBkb2N1bWVudC5mb3JtdWxhaXJlLnJlY19lbnRpZXIuY2hlY2tlZCxkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaW5wdXQtMS10ZXh0ZV8yJykpOyIgLz4gDQo8L3RkPjwvdHI+PC90YWJsZT48ZGl2IHN0eWxlPSdjbGVhcjogYm90aDsnPjwvZGl2PjwvZGl2PgoJPHRleHRhcmVhIG5hbWU9J3RleHRlXzInIHJvd3M9JzEwJyBjbGFzcz0nZm9ybWwgICAnIGNvbHM9JzgwJwoJaWQ9J2lucHV0LTEtdGV4dGVfMicKCW9uc2VsZWN0PSdzdG9yZUNhcmV0KHRoaXMpOycKCW9uY2xpY2s9J3N0b3JlQ2FyZXQodGhpcyk7JwoJb25rZXl1cD0nc3RvcmVDYXJldCh0aGlzKTsnCglvbmRibGNsaWNrPSdzdG9yZUNhcmV0KHRoaXMpOyc+PC90ZXh0YXJlYT4KCQkJCQoJCQkJCgkJCQkKCQkJCQoJCQkJCgkJCQkKCQkJCQoJCQkJCgkJCQkKCQkJCTxzcGFuIGNsYXNzPSduZXR0b3lldXInPiA8L3NwYW4+CgkJCQoJCTwvZGl2PgoJCgoKIAoJPC9maWVsZHNldD4KCiAKIAoJCgk8cCBzdHlsZT0nZGlzcGxheTpub25lOyc+PGxhYmVsIGZvcj0ibm9ib3Rub2JvdC0xIj5WZXVpbGxleiBsYWlzc2VyIGNlIGNoYW1wIHZpZGUmbmJzcDs6PC9sYWJlbD4KCTxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJub2JvdG5vYm90IiBpZD0ibm9ib3Rub2JvdC0xIiB2YWx1ZT0iIiBzaXplPSIxMCIgLz48L3A+CgkKCTxkaXYgc3R5bGU9J3RleHQtYWxpZ246cmlnaHQnIGNsYXNzPSdzcGlwX2JvdXRvbic+PGlucHV0IHR5cGU9InN1Ym1pdCIgbmFtZT0nVmFsaWRlcicgdmFsdWU9IlZhbGlkZXIiIC8+PC9kaXY+CgoKPHNjcmlwdCBzcmM9Imh0dHA6Ly9wcmVwcm9kLm5vdHJlLXZpbGxlLm5ldC9+c3RzZWIvcGx1Z2lucy9mb25jdGlvbm5hbGl0ZXMvZm9ybXMvamF2YXNjcmlwdC9qdGlwLmpzIiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPjwvc2NyaXB0PgoKPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPjwhLS0KJCgnaW5wdXQuZm9ybW8nKS5iaW5kKCdmb2N1cycsZnVuY3Rpb24oKXskKHRoaXMpLnJlbW92ZUNsYXNzKCdmb3JtbycpLmFkZENsYXNzKCdmb3Jtby1mb2N1cycpO30pOwokKCdpbnB1dC5mb3JtbycpLmJpbmQoJ2JsdXInLGZ1bmN0aW9uKCl7JCh0aGlzKS5yZW1vdmVDbGFzcygnZm9ybW8tZm9jdXMnKS5hZGRDbGFzcygnZm9ybW8nKTt9KTsKJCgnaW5wdXQuZm9ybWwnKS5iaW5kKCdmb2N1cycsZnVuY3Rpb24oKXskKHRoaXMpLnJlbW92ZUNsYXNzKCdmb3JtbCcpLmFkZENsYXNzKCdmb3JtbC1mb2N1cycpO30pOwokKCdpbnB1dC5mb3JtbCcpLmJpbmQoJ2JsdXInLGZ1bmN0aW9uKCl7JCh0aGlzKS5yZW1vdmVDbGFzcygnZm9ybWwtZm9jdXMnKS5hZGRDbGFzcygnZm9ybWwnKTt9KTsKCi8vLS0+PC9zY3JpcHQ+CgoJIAoJPC9mb3JtPgoJCgkKCQoKCjwvZGl2Pg==" ></div>',
212
-				'attribut' => 'title',
213
-			],
214
-			'base64 #2' => [
215
-				'expected' => 'bW9kZWxlIDogYTo3OntzOjQ6JnF1b3Q7bGFuZyZxdW90OztzOjI6JnF1b3Q7ZnImcXVvdDs7czo0OiZxdW90O2ZvbmQmcXVvdDs7czoxMjomcXVvdDttb2RlbGVzL2Zvcm0mcXVvdDs7czoxMDomcXVvdDtkaXJfcmFjaW5lJnF1b3Q7O3M6MzomcXVvdDsuLi8mcXVvdDs7czoyOiZxdW90O2lkJnF1b3Q7O3M6MTomcXVvdDsxJnF1b3Q7O3M6NzomcXVvdDtpZF9mb3JtJnF1b3Q7O3M6MTomcXVvdDsxJnF1b3Q7O3M6NDomcXVvdDtkYXRlJnF1b3Q7O3M6MTk6JnF1b3Q7MjAwNy0wNS0xMSAxMTo0MjoxOSZxdW90OztzOjEwOiZxdW90O2RhdGVfcmVkYWMmcXVvdDs7czoxOTomcXVvdDsyMDA3LTA1LTExIDExOjQyOjE5JnF1b3Q7O30KCmljaXRvdG8KCjxhIG5hbWU9J2Zvcm0xJz48L2E+CjxkaXYgY2xhc3M9J3NwaXBfZm9ybXMnPgoKPGRpdiBjbGFzcz0nc3BpcF9kZXNjcmlwdGlmJz48L2Rpdj4KCgoKCiAKCQkKCQk8ZGl2PgoJCQo8aW5wdXQgbmFtZT0nZXhlYycgdmFsdWU9J2FydGljbGVzJyB0eXBlPSdoaWRkZW4nIC8+CjxpbnB1dCBuYW1lPSdpZF9hcnRpY2xlJyB2YWx1ZT0nOCcgdHlwZT0naGlkZGVuJyAvPgoJCTxpbnB1dCB0eXBlPSdoaWRkZW4nIG5hbWU9J2Fqb3V0X3JlcG9uc2UnIHZhbHVlPScxJyAvPgoJCTxpbnB1dCB0eXBlPSdoaWRkZW4nIG5hbWU9J2lkX2Rvbm5lZScgdmFsdWU9Jy0xMCcgLz4KCQkKCQk8aW5wdXQgdHlwZT0naGlkZGVuJyBuYW1lPSdyZXRvdXJfZm9ybScgdmFsdWU9JycgLz4KCQkKCQk8L2Rpdj4KCQkJCgoKIAoJIAoJCQoJCSA8ZmllbGRzZXQ+PGxlZ2VuZD5Ob3VzIGNvbnRhY3RlcjwvbGVnZW5kPiAKCQoJIAoJCTxkaXYgY2xhc3M9J3NwaXBfZm9ybV9jaGFtcCBsaWduZV8xJz4KCQkJCgkJCSAKCQkJCTxzcGFuIGNsYXNzPSdzcGlwX2Zvcm1fbGFiZWwnPgoJCQkJCSA8bGFiZWwgZm9yPSJpbnB1dC0xLWxpZ25lXzEiPlZvdHJlIE5vbTwvbGFiZWw+CgkJCQkJCgkJCQkJPHNwYW4gY2xhc3M9J3NwaXBfZm9ybV9sYWJlbF9vYmxpZ2F0b2lyZSc+CgkJCQkJCVtPYmxpZ2F0b2lyZV08L3NwYW4+CgkJCQkJOgoJCQkJPC9zcGFuPgoJCQkJCgkJCQkKCQkJCQoJCQkJCgkJCQkKCQkJCQoJCQkJCgkJCQkKCQkJCQoJCQkJCgkJCQkKCQkJCSAKCQkJCQoJCQkJPGlucHV0IHR5cGU9InRleHRlIiBuYW1lPSdsaWduZV8xJyBpZD0naW5wdXQtMS1saWduZV8xJyB2YWx1ZT0iIiAKCQkJCQkJY2xhc3M9JyAgbGlnbmUgZm9ybWwnIAoJCQkJCQlzaXplPSc0MCcgLz4KCQkJCQoJCQkJCgkJCQkKCQkJCTxzcGFuIGNsYXNzPSduZXR0b3lldXInPiA8L3NwYW4+CgkJCQoJCTwvZGl2PgoJCgoKCiAKCSAKCQkKCQkKCQoJIAoJCTxkaXYgY2xhc3M9J3NwaXBfZm9ybV9jaGFtcCBsaWduZV8yJz4KCQkJCgkJCSAKCQkJCTxzcGFuIGNsYXNzPSdzcGlwX2Zvcm1fbGFiZWwnPgoJCQkJCSA8bGFiZWwgZm9yPSJpbnB1dC0xLWxpZ25lXzIiPlZvdHJlIFByw6lub208L2xhYmVsPgoJCQkJCQoJCQkJCTxzcGFuIGNsYXNzPSdzcGlwX2Zvcm1fbGFiZWxfb2JsaWdhdG9pcmUnPgoJCQkJCQlbT2JsaWdhdG9pcmVdPC9zcGFuPgoJCQkJCToKCQkJCTwvc3Bhbj4KCQkJCQoJCQkJCgkJCQkKCQkJCQoJCQkJCgkJCQkKCQkJCQoJCQkJCgkJCQkKCQkJCQoJCQkJCgkJCQkgCgkJCQkKCQkJCTxpbnB1dCB0eXBlPSJ0ZXh0ZSIgbmFtZT0nbGlnbmVfMicgaWQ9J2lucHV0LTEtbGlnbmVfMicgdmFsdWU9IiIgCgkJCQkJCWNsYXNzPScgIGxpZ25lIGZvcm1sJyAKCQkJCQkJc2l6ZT0nNDAnIC8+CgkJCQkKCQkJCQoJCQkJCgkJCQk8c3BhbiBjbGFzcz0nbmV0dG95ZXVyJz4gPC9zcGFuPgoJCQkKCQk8L2Rpdj4KCQoKCgogCgkgCgkJCgkJCgkKCSAKCQk8ZGl2IGNsYXNzPSdzcGlwX2Zvcm1fY2hhbXAgZW1haWxfMSc+CgkJCQoJCQkgCgkJCQk8c3BhbiBjbGFzcz0nc3BpcF9mb3JtX2xhYmVsJz4KCQkJCQkgPGxhYmVsIGZvcj0iaW5wdXQtMS1lbWFpbF8xIj5Wb3RyZSBlbWFpbDwvbGFiZWw+CgkJCQkJCgkJCQkJPHNwYW4gY2xhc3M9J3NwaXBfZm9ybV9sYWJlbF9vYmxpZ2F0b2lyZSc+CgkJCQkJCVtPYmxpZ2F0b2lyZV08L3NwYW4+CgkJCQkJOgoJCQkJPC9zcGFuPgoJCQkJCgkJCQk8c3BhbiBjbGFzcz0nc3BpcF9mb3JtX2xhYmVsX2RldGFpbHMnPlZldWlsbGV6IGVudHJlciB1bmUgYWRyZXNzZSBlLW1haWwgdmFsaWRlIChkZSB0eXBlIHZvdXNAZm91cm5pc3NldXIuY29tKS48L3NwYW4+CgkJCQkKCQkJCQoJCQkJCgkJCQkKCQkJCQoJCQkJCgkJCQkKCQkJCQoJCQkJCgkJCQkgCgkJCQkKCQkJCTxpbnB1dCB0eXBlPSJ0ZXh0ZSIgbmFtZT0nZW1haWxfMScgaWQ9J2lucHV0LTEtZW1haWxfMScgdmFsdWU9IiIgCgkJCQkJCWNsYXNzPScgIGVtYWlsIGZvcm1sJyAKCQkJCQkJc2l6ZT0nNDAnIC8+CgkJCQkKCQkJCQoJCQkJCgkJCQk8c3BhbiBjbGFzcz0nbmV0dG95ZXVyJz4gPC9zcGFuPgoJCQkKCQk8L2Rpdj4KCQoKCgogCgkgCgkJCgkJCgkKCSAKCQk8ZGl2IGNsYXNzPSdzcGlwX2Zvcm1fY2hhbXAgdGV4dGVfMSc+CgkJCQoJCQkgCgkJCQk8c3BhbiBjbGFzcz0nc3BpcF9mb3JtX2xhYmVsJz4KCQkJCQkgPGxhYmVsIGZvcj0iaW5wdXQtMS10ZXh0ZV8xIj5Wb3RyZSBBZHJlc3NlPC9sYWJlbD4KCQkJCQkKCQkJCQkKCQkJCQk6CgkJCQk8L3NwYW4+CgkJCQkKCQkJCQoJCQkJCgkJCQkKCQkJCSAgPGRpdiBjbGFzcz0iYmFzZTY0amF2YXNjcmlwdDYxNjYyMzIzMDQ2NDQzNDk4YmRmMDE5LjMxMDkxNjM1IiB0aXRsZT0nUEhOamNtbHdkQ0IwZVhCbFBTSjBaWGgwTDJwaGRtRnpZM0pwY0hRaUlITnlZejBpTGk0dmNHeDFaMmx1Y3k5aFpHMXBiaTh0YWxGMVpYSjVMMmx0WjE5d1lXTnJMMnhoZVdWeUxtcHpJajQ4TDNOamNtbHdkRDQ9JyA+PC9kaXY+Cgo8ZGl2IGNsYXNzPSJiYXNlNjRqYXZhc2NyaXB0NjE2NjIzMjMwNDY0NDM0OThiZGYwMTkuMzEwOTE2MzUiIHRpdGxlPSdQSE5qY21sd2RDQjBlWEJsUFNKMFpYaDBMMnBoZG1GelkzSnBjSFFpSUhOeVl6MGlMaTR2Y0d4MVoybHVjeTltYjI1amRHbHZibTVoYkdsMFpYTXZZbUZ5Y21WZmRIbHdiMTlsWTI5c2IyZHBjWFZsTDJwekwzTndhWEJmWW1GeWNtVXVhbk1pUGp3dmMyTnlhWEIwUGc9PScgPjwvZGl2PgoKPHRhYmxlIGNsYXNzPSdzcGlwX2JhcnJlJyBzdHlsZT0nd2lkdGg6YXV0bzsnIGNlbGxwYWRkaW5nPScwJyBjZWxsc3BhY2luZz0nMCcgYm9yZGVyPScwJyBzdW1tYXJ5PScnPgo8dHIgc3R5bGU9J3dpZHRoOiBhdXRvOycgY2xhc3M9J3NwaXBfYmFycmUnPgo8dGQgc3R5bGU9J3RleHQtYWxpZ246IGxlZnQ7JyB2YWxpZ249J21pZGRsZSc+PGEgaHJlZj0iamF2YXNjcmlwdDpiYXJyZV9yYWNjb3VyY2koJ3snLCd9Jyxkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaW5wdXQtMS10ZXh0ZV8xJykpIgogY2xhc3M9J3NwaXBfYmFycmUnIHRhYmluZGV4PScxMDAwJyB0aXRsZT0iTWV0dHJlIGVuIHtpdGFsaXF1ZX0iPjxpbWcgc3JjPSdpbWdfcGFjay9pY29uZXNfYmFycmUvaXRhbGlxdWUucG5nJyBoZWlnaHQ9JzE2JyB3aWR0aD0nMTYnIGFsdD0iTWV0dHJlIGVuIHtpdGFsaXF1ZX0iIC8+PC9hPjxhIGhyZWY9ImphdmFzY3JpcHQ6YmFycmVfcmFjY291cmNpKCd7eycsJ319Jyxkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaW5wdXQtMS10ZXh0ZV8xJykpIgogY2xhc3M9J3NwaXBfYmFycmUnIHRhYmluZGV4PScxMDAwJyB0aXRsZT0iTWV0dHJlIGVuIHt7Z3Jhc319Ij48aW1nIHNyYz0naW1nX3BhY2svaWNvbmVzX2JhcnJlL2dyYXMucG5nJyBoZWlnaHQ9JzE2JyB3aWR0aD0nMTYnIGFsdD0iTWV0dHJlIGVuIHt7Z3Jhc319IiAvPjwvYT48YSBocmVmPSJqYXZhc2NyaXB0OmJhcnJlX3JhY2NvdXJjaSgnWyonLCcqXScsZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2lucHV0LTEtdGV4dGVfMScpKSIKIGNsYXNzPSdzcGlwX2JhcnJlJyB0YWJpbmRleD0nMTAwMCcgdGl0bGU9Ik1ldHRyZSBsZSB0ZXh0ZSBlbiBbKiZlYWN1dGU7dmlkZW5jZSpdIj48aW1nIHNyYz0nLi4vcGx1Z2lucy9mb25jdGlvbm5hbGl0ZXMvYmFycmVfdHlwb19lY29sb2dpcXVlL2ltZ19wYWNrL2ljb25lc19iYXJyZS9taXNlZW5ldmlkZW5jZS5wbmcnIGhlaWdodD0nMTYnIHdpZHRoPScxNicgYWx0PSJNZXR0cmUgbGUgdGV4dGUgZW4gWyomZWFjdXRlO3ZpZGVuY2UqXSIgLz48L2E+PGEgaHJlZj0iamF2YXNjcmlwdDpiYXJyZV9yYWNjb3VyY2koJyUzQ3N1cCUzRScsJyUzQy9zdXAlM0UnLGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdpbnB1dC0xLXRleHRlXzEnKSkiCiBjbGFzcz0nc3BpcF9iYXJyZScgdGFiaW5kZXg9JzEwMDAnIHRpdGxlPSJNZXR0cmUgbGUgdGV4dGUgZW4gJmx0O3N1cCZndDtleHBvc2FudCZsdDsvc3VwJmd0OyI+PGltZyBzcmM9Jy4uL3BsdWdpbnMvZm9uY3Rpb25uYWxpdGVzL2JhcnJlX3R5cG9fZWNvbG9naXF1ZS9pbWdfcGFjay9pY29uZXNfYmFycmUvZXhwb3NhbnQucG5nJyBoZWlnaHQ9JzE2JyB3aWR0aD0nMTYnIGFsdD0iTWV0dHJlIGxlIHRleHRlIGVuICZsdDtzdXAmZ3Q7ZXhwb3NhbnQmbHQ7L3N1cCZndDsiIC8+PC9hPjxhIGhyZWY9ImphdmFzY3JpcHQ6YmFycmVfcmFjY291cmNpKCclM0NzYyUzRScsJyUzQy9zYyUzRScsZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2lucHV0LTEtdGV4dGVfMScpKSIKIGNsYXNzPSdzcGlwX2JhcnJlJyB0YWJpbmRleD0nMTAwMCcgdGl0bGU9Ik1ldHRyZSBsZSB0ZXh0ZSBlbiAmbHQ7c2MmZ3Q7cGV0aXRlcyBjYXBpdGFsZXMmbHQ7L3NjJmd0OyI+PGltZyBzcmM9Jy4uL3BsdWdpbnMvZm9uY3Rpb25uYWxpdGVzL2JhcnJlX3R5cG9fZWNvbG9naXF1ZS9pbWdfcGFjay9pY29uZXNfYmFycmUvcGV0aXRlc2NhcGl0YWxlcy5wbmcnIGhlaWdodD0nMTYnIHdpZHRoPScxNicgYWx0PSJNZXR0cmUgbGUgdGV4dGUgZW4gJmx0O3NjJmd0O3BldGl0ZXMgY2FwaXRhbGVzJmx0Oy9zYyZndDsiIC8+PC9hPiZuYnNwOzwvdGQ+Cjx0ZD48YSBocmVmPSJqYXZhc2NyaXB0OnN3YXBfY291Y2hlKCcxMScsJycpOyIKIGNsYXNzPSdzcGlwX2JhcnJlJyB0YWJpbmRleD0nMTAwMCcgdGl0bGU9IlRyYW5zZm9ybWVyIGVuIFtsaWVuIGh5cGVydGV4dGUtPmh0dHA6Ly8uLi5dIj48aW1nIHNyYz0naW1nX3BhY2svaWNvbmVzX2JhcnJlL2xpZW4ucG5nJyBoZWlnaHQ9JzE2JyB3aWR0aD0nMTYnIGFsdD0iVHJhbnNmb3JtZXIgZW4gW2xpZW4gaHlwZXJ0ZXh0ZS0+aHR0cDovLy4uLl0iIC8+PC9hPiZuYnNwOzwvdGQ+Cjx0ZD48YSBocmVmPSJqYXZhc2NyaXB0OmJhcnJlX3JhY2NvdXJjaSgnJTVDbiU1Q24lM0NxdW90ZSUzRScsJyUzQy9xdW90ZSUzRSU1Q24lNUNuJyxkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaW5wdXQtMS10ZXh0ZV8xJykpIgogY2xhc3M9J3NwaXBfYmFycmUnIHRhYmluZGV4PScxMDAwJyB0aXRsZT0iQ2l0ZXIgdW4gbWVzc2FnZSI+PGltZyBzcmM9J2ltZ19wYWNrL2ljb25lc19iYXJyZS9xdW90ZS5wbmcnIGhlaWdodD0nMTYnIHdpZHRoPScxNicgYWx0PSJDaXRlciB1biBtZXNzYWdlIiAvPjwvYT48YSBocmVmPSJqYXZhc2NyaXB0OmJhcnJlX3JhY2NvdXJjaSgnWz8nLCddJyxkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaW5wdXQtMS10ZXh0ZV8xJykpIgogY2xhc3M9J3NwaXBfYmFycmUnIHRhYmluZGV4PScxMDAwJyB0aXRsZT0iRW50ciZlYWN1dGU7ZSBkdSBbP2dsb3NzYWlyZV0gKFdpa2lwZWRpYSkiPjxpbWcgc3JjPScuLi9wbHVnaW5zL2ZvbmN0aW9ubmFsaXRlcy9iYXJyZV90eXBvX2Vjb2xvZ2lxdWUvaW1nX3BhY2svaWNvbmVzX2JhcnJlL2JhcnJlLXdpa2kucG5nJyBoZWlnaHQ9JzE2JyB3aWR0aD0nMTYnIGFsdD0iRW50ciZlYWN1dGU7ZSBkdSBbP2dsb3NzYWlyZV0gKFdpa2lwZWRpYSkiIC8+PC9hPjxhIGhyZWY9ImphdmFzY3JpcHQ6c3dhcF9jb3VjaGUoJzEwJywnJyk7IgogY2xhc3M9J3NwaXBfYmFycmUnIHRhYmluZGV4PScxMDAwJyB0aXRsZT0iSW5zJmVhY3V0ZTtyZXIgdW4gdGFibGVhdSI+PGltZyBzcmM9Jy4uL3BsdWdpbnMvZm9uY3Rpb25uYWxpdGVzL2JhcnJlX3R5cG9fZWNvbG9naXF1ZS9pbWdfcGFjay9pY29uZXNfYmFycmUvYmFycmUtdGFibGVhdS5wbmcnIGhlaWdodD0nMTYnIHdpZHRoPScxNicgYWx0PSJJbnMmZWFjdXRlO3JlciB1biB0YWJsZWF1IiAvPjwvYT4mbmJzcDwvdGQ+Cjx0ZD48YSBocmVmPSJqYXZhc2NyaXB0OnN3YXBfY291Y2hlKCcxNCcsJycpOyIKIGNsYXNzPSdzcGlwX2JhcnJlJyB0YWJpbmRleD0nMTAwMCcgdGl0bGU9IkNoZXJjaGVyIFJlbXBsYWNlciI+PGltZyBzcmM9Jy4uL3BsdWdpbnMvZm9uY3Rpb25uYWxpdGVzL2JhcnJlX3R5cG9fZWNvbG9naXF1ZS9pbWdfcGFjay9pY29uZXNfYmFycmUvY2hlcmNoZXJfcmVtcGxhY2VyLnBuZycgaGVpZ2h0PScxNicgd2lkdGg9JzE2JyBhbHQ9IkNoZXJjaGVyIFJlbXBsYWNlciIgLz48L2E+PGEgaHJlZj0iamF2YXNjcmlwdDpzd2FwX2NvdWNoZSgnMTInLCcnKTsiCiBjbGFzcz0nc3BpcF9iYXJyZScgdGFiaW5kZXg9JzEwMDAnIHRpdGxlPSJHZXN0aW9uIGRlcyBhbmNyZXMiPjxpbWcgc3JjPScuLi9wbHVnaW5zL2ZvbmN0aW9ubmFsaXRlcy9iYXJyZV90eXBvX2Vjb2xvZ2lxdWUvaW1nX3BhY2svaWNvbmVzX2JhcnJlL2FuY3JlLnBuZycgaGVpZ2h0PScxNicgd2lkdGg9JzE2JyBhbHQ9Ikdlc3Rpb24gZGVzIGFuY3JlcyIgLz48L2E+Jm5ic3A7PC90ZD4KPHRkIHN0eWxlPSd0ZXh0LWFsaWduOmxlZnQ7JyB2YWxpZ249J21pZGRsZSc+PGEgaHJlZj0iamF2YXNjcmlwdDpzd2FwX2NvdWNoZSgnMTMnLCcnKTsiCiBjbGFzcz0nc3BpcF9iYXJyZScgdGFiaW5kZXg9JzEwMDAnIHRpdGxlPSJDYXJhY3QmZWdyYXZlO3JlcyBzcCZlYWN1dGU7Y2lhdXgiPjxpbWcgc3JjPScuLi9wbHVnaW5zL2ZvbmN0aW9ubmFsaXRlcy9iYXJyZV90eXBvX2Vjb2xvZ2lxdWUvaW1nX3BhY2svaWNvbmVzX2JhcnJlL2NsYXZpZXIucG5nJyBoZWlnaHQ9JzE2JyB3aWR0aD0nMTYnIGFsdD0iQ2FyYWN0JmVncmF2ZTtyZXMgc3AmZWFjdXRlO2NpYXV4IiAvPjwvYT4mbmJzcDs8L3RkPgo8dGQgc3R5bGU9J3RleHQtYWxpZ246cmlnaHQ7JyB2YWxpZ249J21pZGRsZSc+Jm5ic3A7Jm5ic3A7PGEgY2xhc3M9J2FpZGUnIGhyZWY9J2h0dHA6Ly9wcmVwcm9kLm5vdHJlLXZpbGxlLm5ldC9+c3RzZWIvZWNyaXJlLz9leGVjPWFpZGVfaW5kZXgmYW1wO2FpZGU9cmFjY291cmNpcyZhbXA7dmFyX2xhbmc9ZnInIHRhcmdldD0ic3BpcF9haWRlIiBvbmNsaWNrPSJqYXZhc2NyaXB0OndpbmRvdy5vcGVuKHRoaXMuaHJlZiwnc3BpcF9haWRlJywgJ3Njcm9sbGJhcnM9eWVzLCByZXNpemFibGU9eWVzLCB3aWR0aD03NDAsIGhlaWdodD01ODAnKTsgcmV0dXJuIGZhbHNlOyI+PGltZyBzcmM9J2ltZ19wYWNrL2FpZGUuZ2lmJwphbHQ9IkFJREUiIHRpdGxlPSJEZSBsJ2FpZGUgc3VyIGNldCAmZWFjdXRlO2wmZWFjdXRlO21lbnQiIHdpZHRoPSIxMiIgaGVpZ2h0PSIxMiIgYWxpZ249Im1pZGRsZSIgLz48L2E+Jm5ic3A7PC90ZD48L3RyPjwvdGFibGU+PGRpdiBpZD0nTGF5ZXIxMCcgc3R5bGU9J2Rpc3BsYXk6bm9uZTsnID48dGFibGUgY2xhc3M9InNwaXBfYmFycmUiIHN0eWxlPSJ3aWR0aDogYXV0bzsgcGFkZGluZzogMXB4IWltcG9ydGFudDsgYm9yZGVyLXRvcDogMHB4OyIgc3VtbWFyeT0iIj4NCjx0cj48dGQ+DQpOYiBjb2xvbm5lczogPGlucHV0IHR5cGU9InRleHQiIG5hbWU9ImJhcnJlX25iY29sb25lcyIgc3R5bGU9IndpZHRoOiAzMHB4OyIgdmFsdWU9IjIiIHNpemU9IjIiIG1heGxlbmd0aD0iMiIgICAvPjwvdGQ+PHRkPg0KTmIgbGlnbmVzOiA8aW5wdXQgdHlwZT0idGV4dCIgbmFtZT0iYmFycmVfbmJyYW5ncyIgc3R5bGU9IndpZHRoOiAzMHB4OyIgdmFsdWU9IjIiIHNpemU9IjIiIG1heGxlbmd0aD0iMiIgLz48L3RkPjx0ZD4NCjxpbnB1dCB0eXBlPSJjaGVja2JveCIgbmFtZT0iYmFycmVfZG9lbnRldGUiIHZhbHVlPSItMSIgY2hlY2tlZD0iY2hlY2tlZCIgLz4gRW50ZXRlPC90ZD48dGQ+DQo8aW5wdXQgdHlwZT0iY2hlY2tib3giIG5hbWU9ImJhcnJlX2RvY2FwdGlvbiIgdmFsdWU9Ii0xIiBjaGVja2VkPSJjaGVja2VkIiAvPiBDYXB0aW9uIGV0IFImZWFjdXRlO3N1bSZlYWN1dGU7PC90ZD48dGQ+DQogIDxpbnB1dCB0eXBlPSJidXR0b24iIHZhbHVlPSJPSyIgY2xhc3M9ImZvbmRvIiBvbmNsaWNrPSJqYXZhc2NyaXB0Og0KICAgIGJhcnJlX25iY29sb25lcy52YWx1ZSA9IE1hdGguYWJzKGJhcnJlX25iY29sb25lcy52YWx1ZSk7IGJhcnJlX25icmFuZ3MudmFsdWUNCiAgICA9IE1hdGguYWJzKGJhcnJlX25icmFuZ3MudmFsdWUpOw0KICAgIGlmICghKGJhcnJlX25iY29sb25lcy52YWx1ZSA9PSAwIHx8IGJhcnJlX25icmFuZ3MudmFsdWUgPT0gMCkpIHsNCiAgICBiYXJyZV90YWJsZWF1KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdpbnB1dC0xLXRleHRlXzEnKSwgYmFycmVfbmJjb2xvbmVzLnZhbHVlLCBiYXJyZV9uYnJhbmdzLnZhbHVlLA0KICAgIGJhcnJlX2RvZW50ZXRlLmNoZWNrZWQsIGJhcnJlX2RvY2FwdGlvbi5jaGVja2VkKTsgfSAiIC8+IA0KPC90ZD48L3RyPjwvdGFibGU+DQo8ZGl2IHN0eWxlPSdjbGVhcjogYm90aDsnPjwvZGl2PjwvZGl2PjxkaXYgaWQ9J0xheWVyMTEnIHN0eWxlPSdkaXNwbGF5Om5vbmU7JyA+DQogPHRhYmxlIGNsYXNzPSJzcGlwX2JhcnJlIiBzdHlsZT0id2lkdGg6IGF1dG87IHBhZGRpbmc6IDFweCFpbXBvcnRhbnQ7IGJvcmRlci10b3A6IDBweDsiIHN1bW1hcnk9IiI+DQo8dHI+PHRkPiANCkFkcmVzc2UmbmJzcDs6IDxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJsaWVuX25vbSIgdmFsdWU9Imh0dHA6Ly8iIHNpemU9IjIxIiBtYXhsZW5ndGg9IjI1NSIgLz48YnIgLz4NCkJ1bGxlIGQnYWlkZSZuYnNwOzogPGlucHV0IHR5cGU9InRleHQiIG5hbWU9ImxpZW5fYnVsbGUiIHZhbHVlPSIiIHNpemU9IjIxIiBtYXhsZW5ndGg9IjI1NSIgLz4NCjwvdGQ+PHRkPg0KTGFuZ3VlIGFiciZlYWN1dGU7ZyZlYWN1dGU7ZSZuYnNwOzogPGlucHV0IHR5cGU9InRleHQiIG5hbWU9ImxpZW5fbGFuZ3VlIiB2YWx1ZT0iIiBzaXplPSIxMCIgbWF4bGVuZ3RoPSIxMCIgLz4NCjwvdGQ+PHRkPg0KICA8aW5wdXQgdHlwZT0iYnV0dG9uIiB2YWx1ZT0iT0siIGNsYXNzPSJmb25kbyIgb25jbGljaz0iamF2YXNjcmlwdDpiYXJyZV9kZW1hbmRlX2xpZW4oJ1snLCAnLT4nLCAnXScsIGxpZW5fbm9tLnZhbHVlLCBsaWVuX2J1bGxlLnZhbHVlLCBsaWVuX2xhbmd1ZS52YWx1ZSxkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaW5wdXQtMS10ZXh0ZV8xJykpOyIgLz4gDQo8L3RkPjwvdHI+PC90YWJsZT4NCjxkaXYgc3R5bGU9J2NsZWFyOiBib3RoOyc+PC9kaXY+PC9kaXY+PGRpdiBpZD0nTGF5ZXIxMicgc3R5bGU9J2Rpc3BsYXk6bm9uZTsnID4NCjx0YWJsZSBjbGFzcz0ic3BpcF9iYXJyZSIgc3R5bGU9IndpZHRoOiBhdXRvOyBwYWRkaW5nOiAxcHghaW1wb3J0YW50OyBib3JkZXItdG9wOiAwcHg7IiBzdW1tYXJ5PSIiPg0KICA8dHI+DQogICAgPHRkIHN0eWxlPSJ3aWR0aDphdXRvOyB0ZXh0LWFsaWduOmNlbnRlcjsiPjxzdHJvbmc+R2VzdGlvbiBkZXMgYW5jcmVzPC9zdHJvbmc+PC90ZD4NCiAgICA8dGQgc3R5bGU9IndpZHRoOmF1dG87Ij48c3Ryb25nPlRyYW5zZm9ybWVyIGVuIGFuY3JlPC9zdHJvbmc+PGJyIC8+DQogICAgPGxhYmVsIGZvcj0iYW5jcmVfbm9tIj48aT5Ob20gZGUgbCdhbmNyZTwvaT48L2xhYmVsPiA8YnIgLz4NCiAgICAgIDxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJhbmNyZV9ub20iIGlkPSJhbmNyZV9ub20iIC8+DQoJICANCgk8aW5wdXQgdHlwZT0iYnV0dG9uIiB2YWx1ZT0iT0siIGNsYXNzPSJmb25kbyIgb25jbGljaz0iamF2YXNjcmlwdDpiYXJyZV9hbmNyZSgnWycsICc8LScsICddJywgYW5jcmVfbm9tLnZhbHVlLCBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaW5wdXQtMS10ZXh0ZV8xJykpOyIgLz4NCiAgICA8L3RkPg0KCTx0ZCBzdHlsZT0id2lkdGg6YXV0bzsiPjxzdHJvbmc+UG9pbnRlciB2ZXJzIHVuZSBhbmNyZTwvc3Ryb25nPjxiciAvPg0KICAgIDxsYWJlbCBmb3I9ImFuY3JlX2NpYmxlIj48aT5BbmNyZSBjaWJsZTwvaT48L2xhYmVsPiA8aW5wdXQgdHlwZT0idGV4dCIgbmFtZT0iYW5jcmVfY2libGUiIGlkPSJhbmNyZV9jaWJsZSIgLz48YnIgLz4NCgk8bGFiZWwgZm9yPSJhbmNyZV9idWxsZSI+PGk+QnVsbGUgZCdhaWRlIGFuY3JlPC9pPjwvbGFiZWw+IDxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJhbmNyZV9idWxsZSIgaWQ9ImFuY3JlX2J1bGxlIiAvPg0KCTxpbnB1dCB0eXBlPSJidXR0b24iIHZhbHVlPSJPSyIgY2xhc3M9ImZvbmRvIiBvbmNsaWNrPSJqYXZhc2NyaXB0OmJhcnJlX2RlbWFuZGUoJ1snLCAnLT4jJywgJ10nLCBhbmNyZV9jaWJsZS52YWx1ZSwgYW5jcmVfYnVsbGUudmFsdWUsIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdpbnB1dC0xLXRleHRlXzEnKSk7IiAvPiANCjwvdGQ+DQogIDwvdHI+IA0KPC90YWJsZT48ZGl2IHN0eWxlPSdjbGVhcjogYm90aDsnPjwvZGl2PjwvZGl2PjxkaXYgaWQ9J0xheWVyMTMnIHN0eWxlPSdkaXNwbGF5Om5vbmU7JyA+DQo8dGFibGUgY2xhc3M9InNwaXBfYmFycmUiIHN0eWxlPSJ3aWR0aDogYXV0bzsgcGFkZGluZzogMXB4IWltcG9ydGFudDsgYm9yZGVyLXRvcDogMHB4OyIgc3VtbWFyeT0iIj4NCiAgPHRyIGNsYXNzPSJzcGlwX2JhcnJlIj4NCiAgICA8dGQgc3R5bGU9IndpZHRoOjMwJTsiPkNhcmFjdCZlZ3JhdmU7cmVzIHNwJmVhY3V0ZTtjaWF1eDwvdGQ+DQogICAgPHRkPjxhIGhyZWY9ImphdmFzY3JpcHQ6YmFycmVfcmFjY291cmNpKCdcdTAwYWJ+Jywnflx1MDBiYicsZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2lucHV0LTEtdGV4dGVfMScpKSIKIGNsYXNzPSdzcGlwX2JhcnJlJyB0YWJpbmRleD0nMTAwMCcgdGl0bGU9IkVudG91cmVyIGRlICZsYXF1bzsgZ3VpbGxlbWV0cyAmcmFxdW87Ij48aW1nIHNyYz0naW1nX3BhY2svaWNvbmVzX2JhcnJlL2d1aWxsZW1ldHMucG5nJyBoZWlnaHQ9JzE2JyB3aWR0aD0nMTYnIGFsdD0iRW50b3VyZXIgZGUgJmxhcXVvOyBndWlsbGVtZXRzICZyYXF1bzsiIC8+PC9hPjxhIGhyZWY9ImphdmFzY3JpcHQ6YmFycmVfcmFjY291cmNpKCdcdTAwOTMnLCdcdTAwOTQnLGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdpbnB1dC0xLXRleHRlXzEnKSkiCiBjbGFzcz0nc3BpcF9iYXJyZScgdGFiaW5kZXg9JzEwMDAnIHRpdGxlPSJFbnRvdXJlciBkZSAmbGRxdW87Z3VpbGxlbWV0cyBkZSBzZWNvbmQgbml2ZWF1JnJkcXVvOyI+PGltZyBzcmM9J2ltZ19wYWNrL2ljb25lc19iYXJyZS9ndWlsbGVtZXRzLXNpbXBsZXMucG5nJyBoZWlnaHQ9JzE2JyB3aWR0aD0nMTYnIGFsdD0iRW50b3VyZXIgZGUgJmxkcXVvO2d1aWxsZW1ldHMgZGUgc2Vjb25kIG5pdmVhdSZyZHF1bzsiIC8+PC9hPjxhIGhyZWY9ImphdmFzY3JpcHQ6YmFycmVfaW5zZXJlcignXHUwMGMwJyxkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaW5wdXQtMS10ZXh0ZV8xJykpIgogY2xhc3M9J3NwaXBfYmFycmUnIHRhYmluZGV4PScxMDAwJyB0aXRsZT0iSW5zJmVhY3V0ZTtyZXIgdW4gQSBhY2NlbnQgZ3JhdmUgbWFqdXNjdWxlIj48aW1nIHNyYz0naW1nX3BhY2svaWNvbmVzX2JhcnJlL2FncmF2ZS1tYWoucG5nJyBoZWlnaHQ9JzE2JyB3aWR0aD0nMTYnIGFsdD0iSW5zJmVhY3V0ZTtyZXIgdW4gQSBhY2NlbnQgZ3JhdmUgbWFqdXNjdWxlIiAvPjwvYT48YSBocmVmPSJqYXZhc2NyaXB0OmJhcnJlX2luc2VyZXIoJ1x1MDBjOScsZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2lucHV0LTEtdGV4dGVfMScpKSIKIGNsYXNzPSdzcGlwX2JhcnJlJyB0YWJpbmRleD0nMTAwMCcgdGl0bGU9IklucyZlYWN1dGU7cmVyIHVuIEUgYWNjZW50IGFpZ3UgbWFqdXNjdWxlIj48aW1nIHNyYz0naW1nX3BhY2svaWNvbmVzX2JhcnJlL2VhY3V0ZS1tYWoucG5nJyBoZWlnaHQ9JzE2JyB3aWR0aD0nMTYnIGFsdD0iSW5zJmVhY3V0ZTtyZXIgdW4gRSBhY2NlbnQgYWlndSBtYWp1c2N1bGUiIC8+PC9hPjxhIGhyZWY9ImphdmFzY3JpcHQ6YmFycmVfaW5zZXJlcignXHUwMGM4Jyxkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaW5wdXQtMS10ZXh0ZV8xJykpIgogY2xhc3M9J3NwaXBfYmFycmUnIHRhYmluZGV4PScxMDAwJyB0aXRsZT0iSW5zJmVhY3V0ZTtyZXIgdW4gRSBtYWp1c2N1bGUgYWNjZW50IGdyYXZlIj48aW1nIHNyYz0nLi4vcGx1Z2lucy9mb25jdGlvbm5hbGl0ZXMvYmFycmVfdHlwb19lY29sb2dpcXVlL2ltZ19wYWNrL2ljb25lc19iYXJyZS9lYWdyYXZlLW1hai5wbmcnIGhlaWdodD0nMTYnIHdpZHRoPScxNicgYWx0PSJJbnMmZWFjdXRlO3JlciB1biBFIG1hanVzY3VsZSBhY2NlbnQgZ3JhdmUiIC8+PC9hPjxhIGhyZWY9ImphdmFzY3JpcHQ6YmFycmVfaW5zZXJlcignXHUwMGU2Jyxkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaW5wdXQtMS10ZXh0ZV8xJykpIgogY2xhc3M9J3NwaXBfYmFycmUnIHRhYmluZGV4PScxMDAwJyB0aXRsZT0iSW5zJmVhY3V0ZTtyZXIgdW4gRSBkYW5zIGwnQSI+PGltZyBzcmM9Jy4uL3BsdWdpbnMvZm9uY3Rpb25uYWxpdGVzL2JhcnJlX3R5cG9fZWNvbG9naXF1ZS9pbWdfcGFjay9pY29uZXNfYmFycmUvYWVsaWcucG5nJyBoZWlnaHQ9JzE2JyB3aWR0aD0nMTYnIGFsdD0iSW5zJmVhY3V0ZTtyZXIgdW4gRSBkYW5zIGwnQSIgLz48L2E+PGEgaHJlZj0iamF2YXNjcmlwdDpiYXJyZV9pbnNlcmVyKCdcdTAwYzYnLGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdpbnB1dC0xLXRleHRlXzEnKSkiCiBjbGFzcz0nc3BpcF9iYXJyZScgdGFiaW5kZXg9JzEwMDAnIHRpdGxlPSJJbnMmZWFjdXRlO3JlciB1biBFIGRhbnMgbCdBIG1hanVzY3VsZSI+PGltZyBzcmM9Jy4uL3BsdWdpbnMvZm9uY3Rpb25uYWxpdGVzL2JhcnJlX3R5cG9fZWNvbG9naXF1ZS9pbWdfcGFjay9pY29uZXNfYmFycmUvYWVsaWctbWFqLnBuZycgaGVpZ2h0PScxNicgd2lkdGg9JzE2JyBhbHQ9IklucyZlYWN1dGU7cmVyIHVuIEUgZGFucyBsJ0EgbWFqdXNjdWxlIiAvPjwvYT48YSBocmVmPSJqYXZhc2NyaXB0OmJhcnJlX2luc2VyZXIoJyZvZWxpZzsnLGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdpbnB1dC0xLXRleHRlXzEnKSkiCiBjbGFzcz0nc3BpcF9iYXJyZScgdGFiaW5kZXg9JzEwMDAnIHRpdGxlPSJJbnMmZWFjdXRlO3JlciB1biBFIGRhbnMgbCdPIj48aW1nIHNyYz0naW1nX3BhY2svaWNvbmVzX2JhcnJlL29lbGlnLnBuZycgaGVpZ2h0PScxNicgd2lkdGg9JzE2JyBhbHQ9IklucyZlYWN1dGU7cmVyIHVuIEUgZGFucyBsJ08iIC8+PC9hPjxhIGhyZWY9ImphdmFzY3JpcHQ6YmFycmVfaW5zZXJlcignJk9FbGlnOycsZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2lucHV0LTEtdGV4dGVfMScpKSIKIGNsYXNzPSdzcGlwX2JhcnJlJyB0YWJpbmRleD0nMTAwMCcgdGl0bGU9IklucyZlYWN1dGU7cmVyIHVuIEUgZGFucyBsJ08gbWFqdXNjdWxlIj48aW1nIHNyYz0naW1nX3BhY2svaWNvbmVzX2JhcnJlL29lbGlnLW1hai5wbmcnIGhlaWdodD0nMTYnIHdpZHRoPScxNicgYWx0PSJJbnMmZWFjdXRlO3JlciB1biBFIGRhbnMgbCdPIG1hanVzY3VsZSIgLz48L2E+PGEgaHJlZj0iamF2YXNjcmlwdDpiYXJyZV9pbnNlcmVyKCdcdTAwYzcnLGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdpbnB1dC0xLXRleHRlXzEnKSkiCiBjbGFzcz0nc3BpcF9iYXJyZScgdGFiaW5kZXg9JzEwMDAnIHRpdGxlPSJJbnMmZWFjdXRlO3JlciB1biBDIGMmZWFjdXRlO2RpbGxlIG1hanVzY3VsZSI+PGltZyBzcmM9Jy4uL3BsdWdpbnMvZm9uY3Rpb25uYWxpdGVzL2JhcnJlX3R5cG9fZWNvbG9naXF1ZS9pbWdfcGFjay9pY29uZXNfYmFycmUvY2NlZGlsLW1hai5wbmcnIGhlaWdodD0nMTYnIHdpZHRoPScxNicgYWx0PSJJbnMmZWFjdXRlO3JlciB1biBDIGMmZWFjdXRlO2RpbGxlIG1hanVzY3VsZSIgLz48L2E+PGEgaHJlZj0iamF2YXNjcmlwdDpiYXJyZV9pbnNlcmVyKCcmZXVybzsnLGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdpbnB1dC0xLXRleHRlXzEnKSkiCiBjbGFzcz0nc3BpcF9iYXJyZScgdGFiaW5kZXg9JzEwMDAnIHRpdGxlPSJJbnMmZWFjdXRlO3JlciBsZSBzeW1ib2xlICZldXJvOyI+PGltZyBzcmM9J2ltZ19wYWNrL2ljb25lc19iYXJyZS9ldXJvLnBuZycgaGVpZ2h0PScxNicgd2lkdGg9JzE2JyBhbHQ9IklucyZlYWN1dGU7cmVyIGxlIHN5bWJvbGUgJmV1cm87IiAvPjwvYT4mbmJzcDsNCiAgICA8L3RkPg0KICA8L3RyPiANCjwvdGFibGU+DQo8ZGl2IHN0eWxlPSdjbGVhcjogYm90aDsnPjwvZGl2PjwvZGl2PjxkaXYgaWQ9J0xheWVyMTQnIHN0eWxlPSdkaXNwbGF5Om5vbmU7JyA+DQo8dGFibGUgY2xhc3M9InNwaXBfYmFycmUiIHN0eWxlPSJ3aWR0aDogYXV0bzsgcGFkZGluZzogMXB4IWltcG9ydGFudDsgYm9yZGVyLXRvcDogMHB4OyIgc3VtbWFyeT0iIj4NCjx0cj48dGQgc3R5bGU9IndpZHRoOiAyNSU7Ij5DaGVyY2hlcjxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJiYXJyZV9jaGVyY2hlciIgdmFsdWU9IiIgc2l6ZT0iMTIiIG1heGxlbmd0aD0iMjU1IiAvPjwvdGQ+PHRkIHN0eWxlPSJ3aWR0aDogMjAlOyI+DQo8aW5wdXQgdHlwZT0iY2hlY2tib3giIG5hbWU9InJlY19jYXNlIiB2YWx1ZT0ieWVzIiAvPlJlc3BlY3RlciBsYSBjYXNzZTxiciAvPjxpbnB1dCB0eXBlPSJjaGVja2JveCIgbmFtZT0icmVjX2VudGllciIgdmFsdWU9InllcyIgLz4NCk1vdCBlbnRpZXINCjwvdGQ+PHRkICBzdHlsZT0id2lkdGg6IDI1JTsiPlJlbXBsYWNlcjxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJiYXJyZV9yZW1wbGFjZXIiIHZhbHVlPSIiIHNpemU9IjEyIiBtYXhsZW5ndGg9IjI1NSIgLz4gDQo8L3RkPjx0ZCBzdHlsZT0id2lkdGg6IDIwJTsiPg0KPGlucHV0IHR5cGU9ImNoZWNrYm94IiBuYW1lPSJyZWNfdG91dCIgdmFsdWU9InllcyIgLz5Ub3V0IHJlbXBsYWNlcjwvdGQ+PHRkIHN0eWxlPSJ3aWR0aDogMTAlOyI+DQogICA8aW5wdXQgdHlwZT0iYnV0dG9uIiB2YWx1ZT0iT0siIGNsYXNzPSJmb25kbyINCiAgb25jbGljaz0iamF2YXNjcmlwdDpiYXJyZV9zZWFyY2hyZXBsYWNlKGRvY3VtZW50LmZvcm11bGFpcmUuYmFycmVfY2hlcmNoZXIudmFsdWUsIGRvY3VtZW50LmZvcm11bGFpcmUuYmFycmVfcmVtcGxhY2VyLnZhbHVlLCBkb2N1bWVudC5mb3JtdWxhaXJlLnJlY190b3V0LmNoZWNrZWQsIGRvY3VtZW50LmZvcm11bGFpcmUucmVjX2Nhc2UuY2hlY2tlZCwgZG9jdW1lbnQuZm9ybXVsYWlyZS5yZWNfZW50aWVyLmNoZWNrZWQsZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2lucHV0LTEtdGV4dGVfMScpKTsiIC8+IA0KPC90ZD48L3RyPjwvdGFibGU+PGRpdiBzdHlsZT0nY2xlYXI6IGJvdGg7Jz48L2Rpdj48L2Rpdj4KCTx0ZXh0YXJlYSBuYW1lPSd0ZXh0ZV8xJyByb3dzPScxMCcgY2xhc3M9J2Zvcm1vICAgJyBjb2xzPSc4MCcKCWlkPSdpbnB1dC0xLXRleHRlXzEnCglvbnNlbGVjdD0nc3RvcmVDYXJldCh0aGlzKTsnCglvbmNsaWNrPSdzdG9yZUNhcmV0KHRoaXMpOycKCW9ua2V5dXA9J3N0b3JlQ2FyZXQodGhpcyk7JwoJb25kYmxjbGljaz0nc3RvcmVDYXJldCh0aGlzKTsnPjwvdGV4dGFyZWE+CgkJCQkKCQkJCQoJCQkJCgkJCQkKCQkJCQoJCQkJCgkJCQkKCQkJCQoJCQkJCgkJCQk8c3BhbiBjbGFzcz0nbmV0dG95ZXVyJz4gPC9zcGFuPgoJCQkKCQk8L2Rpdj4KCQoKCgogCgkgCgkJCgkJCgkKCSAKCQk8ZGl2IGNsYXNzPSdzcGlwX2Zvcm1fY2hhbXAgdGV4dGVfMic+CgkJCQoJCQkgCgkJCQk8c3BhbiBjbGFzcz0nc3BpcF9mb3JtX2xhYmVsJz4KCQkJCQkgPGxhYmVsIGZvcj0iaW5wdXQtMS10ZXh0ZV8yIj5Wb3RyZSBRdWVzdGlvbjwvbGFiZWw+CgkJCQkJCgkJCQkJPHNwYW4gY2xhc3M9J3NwaXBfZm9ybV9sYWJlbF9vYmxpZ2F0b2lyZSc+CgkJCQkJCVtPYmxpZ2F0b2lyZV08L3NwYW4+CgkJCQkJOgoJCQkJPC9zcGFuPgoJCQkJCgkJCQkKCQkJCQoJCQkJCgkJCQkgIDx0YWJsZSBjbGFzcz0nc3BpcF9iYXJyZScgc3R5bGU9J3dpZHRoOmF1dG87JyBjZWxscGFkZGluZz0nMCcgY2VsbHNwYWNpbmc9JzAnIGJvcmRlcj0nMCcgc3VtbWFyeT0nJz4KPHRyIHN0eWxlPSd3aWR0aDogYXV0bzsnIGNsYXNzPSdzcGlwX2JhcnJlJz4KPHRkIHN0eWxlPSd0ZXh0LWFsaWduOiBsZWZ0OycgdmFsaWduPSdtaWRkbGUnPjxhIGhyZWY9ImphdmFzY3JpcHQ6YmFycmVfcmFjY291cmNpKCd7JywnfScsZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2lucHV0LTEtdGV4dGVfMicpKSIKIGNsYXNzPSdzcGlwX2JhcnJlJyB0YWJpbmRleD0nMTAwMCcgdGl0bGU9Ik1ldHRyZSBlbiB7aXRhbGlxdWV9Ij48aW1nIHNyYz0naW1nX3BhY2svaWNvbmVzX2JhcnJlL2l0YWxpcXVlLnBuZycgaGVpZ2h0PScxNicgd2lkdGg9JzE2JyBhbHQ9Ik1ldHRyZSBlbiB7aXRhbGlxdWV9IiAvPjwvYT48YSBocmVmPSJqYXZhc2NyaXB0OmJhcnJlX3JhY2NvdXJjaSgne3snLCd9fScsZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2lucHV0LTEtdGV4dGVfMicpKSIKIGNsYXNzPSdzcGlwX2JhcnJlJyB0YWJpbmRleD0nMTAwMCcgdGl0bGU9Ik1ldHRyZSBlbiB7e2dyYXN9fSI+PGltZyBzcmM9J2ltZ19wYWNrL2ljb25lc19iYXJyZS9ncmFzLnBuZycgaGVpZ2h0PScxNicgd2lkdGg9JzE2JyBhbHQ9Ik1ldHRyZSBlbiB7e2dyYXN9fSIgLz48L2E+PGEgaHJlZj0iamF2YXNjcmlwdDpiYXJyZV9yYWNjb3VyY2koJ1sqJywnKl0nLGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdpbnB1dC0xLXRleHRlXzInKSkiCiBjbGFzcz0nc3BpcF9iYXJyZScgdGFiaW5kZXg9JzEwMDAnIHRpdGxlPSJNZXR0cmUgbGUgdGV4dGUgZW4gWyomZWFjdXRlO3ZpZGVuY2UqXSI+PGltZyBzcmM9Jy4uL3BsdWdpbnMvZm9uY3Rpb25uYWxpdGVzL2JhcnJlX3R5cG9fZWNvbG9naXF1ZS9pbWdfcGFjay9pY29uZXNfYmFycmUvbWlzZWVuZXZpZGVuY2UucG5nJyBoZWlnaHQ9JzE2JyB3aWR0aD0nMTYnIGFsdD0iTWV0dHJlIGxlIHRleHRlIGVuIFsqJmVhY3V0ZTt2aWRlbmNlKl0iIC8+PC9hPjxhIGhyZWY9ImphdmFzY3JpcHQ6YmFycmVfcmFjY291cmNpKCclM0NzdXAlM0UnLCclM0Mvc3VwJTNFJyxkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaW5wdXQtMS10ZXh0ZV8yJykpIgogY2xhc3M9J3NwaXBfYmFycmUnIHRhYmluZGV4PScxMDAwJyB0aXRsZT0iTWV0dHJlIGxlIHRleHRlIGVuICZsdDtzdXAmZ3Q7ZXhwb3NhbnQmbHQ7L3N1cCZndDsiPjxpbWcgc3JjPScuLi9wbHVnaW5zL2ZvbmN0aW9ubmFsaXRlcy9iYXJyZV90eXBvX2Vjb2xvZ2lxdWUvaW1nX3BhY2svaWNvbmVzX2JhcnJlL2V4cG9zYW50LnBuZycgaGVpZ2h0PScxNicgd2lkdGg9JzE2JyBhbHQ9Ik1ldHRyZSBsZSB0ZXh0ZSBlbiAmbHQ7c3VwJmd0O2V4cG9zYW50Jmx0Oy9zdXAmZ3Q7IiAvPjwvYT48YSBocmVmPSJqYXZhc2NyaXB0OmJhcnJlX3JhY2NvdXJjaSgnJTNDc2MlM0UnLCclM0Mvc2MlM0UnLGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdpbnB1dC0xLXRleHRlXzInKSkiCiBjbGFzcz0nc3BpcF9iYXJyZScgdGFiaW5kZXg9JzEwMDAnIHRpdGxlPSJNZXR0cmUgbGUgdGV4dGUgZW4gJmx0O3NjJmd0O3BldGl0ZXMgY2FwaXRhbGVzJmx0Oy9zYyZndDsiPjxpbWcgc3JjPScuLi9wbHVnaW5zL2ZvbmN0aW9ubmFsaXRlcy9iYXJyZV90eXBvX2Vjb2xvZ2lxdWUvaW1nX3BhY2svaWNvbmVzX2JhcnJlL3BldGl0ZXNjYXBpdGFsZXMucG5nJyBoZWlnaHQ9JzE2JyB3aWR0aD0nMTYnIGFsdD0iTWV0dHJlIGxlIHRleHRlIGVuICZsdDtzYyZndDtwZXRpdGVzIGNhcGl0YWxlcyZsdDsvc2MmZ3Q7IiAvPjwvYT4mbmJzcDs8L3RkPgo8dGQ+PGEgaHJlZj0iamF2YXNjcmlwdDpzd2FwX2NvdWNoZSgnMTYnLCcnKTsiCiBjbGFzcz0nc3BpcF9iYXJyZScgdGFiaW5kZXg9JzEwMDAnIHRpdGxlPSJUcmFuc2Zvcm1lciBlbiBbbGllbiBoeXBlcnRleHRlLT5odHRwOi8vLi4uXSI+PGltZyBzcmM9J2ltZ19wYWNrL2ljb25lc19iYXJyZS9saWVuLnBuZycgaGVpZ2h0PScxNicgd2lkdGg9JzE2JyBhbHQ9IlRyYW5zZm9ybWVyIGVuIFtsaWVuIGh5cGVydGV4dGUtPmh0dHA6Ly8uLi5dIiAvPjwvYT4mbmJzcDs8L3RkPgo8dGQ+PGEgaHJlZj0iamF2YXNjcmlwdDpiYXJyZV9yYWNjb3VyY2koJyU1Q24lNUNuJTNDcXVvdGUlM0UnLCclM0MvcXVvdGUlM0UlNUNuJTVDbicsZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2lucHV0LTEtdGV4dGVfMicpKSIKIGNsYXNzPSdzcGlwX2JhcnJlJyB0YWJpbmRleD0nMTAwMCcgdGl0bGU9IkNpdGVyIHVuIG1lc3NhZ2UiPjxpbWcgc3JjPSdpbWdfcGFjay9pY29uZXNfYmFycmUvcXVvdGUucG5nJyBoZWlnaHQ9JzE2JyB3aWR0aD0nMTYnIGFsdD0iQ2l0ZXIgdW4gbWVzc2FnZSIgLz48L2E+PGEgaHJlZj0iamF2YXNjcmlwdDpiYXJyZV9yYWNjb3VyY2koJ1s/JywnXScsZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2lucHV0LTEtdGV4dGVfMicpKSIKIGNsYXNzPSdzcGlwX2JhcnJlJyB0YWJpbmRleD0nMTAwMCcgdGl0bGU9IkVudHImZWFjdXRlO2UgZHUgWz9nbG9zc2FpcmVdIChXaWtpcGVkaWEpIj48aW1nIHNyYz0nLi4vcGx1Z2lucy9mb25jdGlvbm5hbGl0ZXMvYmFycmVfdHlwb19lY29sb2dpcXVlL2ltZ19wYWNrL2ljb25lc19iYXJyZS9iYXJyZS13aWtpLnBuZycgaGVpZ2h0PScxNicgd2lkdGg9JzE2JyBhbHQ9IkVudHImZWFjdXRlO2UgZHUgWz9nbG9zc2FpcmVdIChXaWtpcGVkaWEpIiAvPjwvYT48YSBocmVmPSJqYXZhc2NyaXB0OnN3YXBfY291Y2hlKCcxNScsJycpOyIKIGNsYXNzPSdzcGlwX2JhcnJlJyB0YWJpbmRleD0nMTAwMCcgdGl0bGU9IklucyZlYWN1dGU7cmVyIHVuIHRhYmxlYXUiPjxpbWcgc3JjPScuLi9wbHVnaW5zL2ZvbmN0aW9ubmFsaXRlcy9iYXJyZV90eXBvX2Vjb2xvZ2lxdWUvaW1nX3BhY2svaWNvbmVzX2JhcnJlL2JhcnJlLXRhYmxlYXUucG5nJyBoZWlnaHQ9JzE2JyB3aWR0aD0nMTYnIGFsdD0iSW5zJmVhY3V0ZTtyZXIgdW4gdGFibGVhdSIgLz48L2E+Jm5ic3A8L3RkPgo8dGQ+PGEgaHJlZj0iamF2YXNjcmlwdDpzd2FwX2NvdWNoZSgnMTknLCcnKTsiCiBjbGFzcz0nc3BpcF9iYXJyZScgdGFiaW5kZXg9JzEwMDAnIHRpdGxlPSJDaGVyY2hlciBSZW1wbGFjZXIiPjxpbWcgc3JjPScuLi9wbHVnaW5zL2ZvbmN0aW9ubmFsaXRlcy9iYXJyZV90eXBvX2Vjb2xvZ2lxdWUvaW1nX3BhY2svaWNvbmVzX2JhcnJlL2NoZXJjaGVyX3JlbXBsYWNlci5wbmcnIGhlaWdodD0nMTYnIHdpZHRoPScxNicgYWx0PSJDaGVyY2hlciBSZW1wbGFjZXIiIC8+PC9hPjxhIGhyZWY9ImphdmFzY3JpcHQ6c3dhcF9jb3VjaGUoJzE3JywnJyk7IgogY2xhc3M9J3NwaXBfYmFycmUnIHRhYmluZGV4PScxMDAwJyB0aXRsZT0iR2VzdGlvbiBkZXMgYW5jcmVzIj48aW1nIHNyYz0nLi4vcGx1Z2lucy9mb25jdGlvbm5hbGl0ZXMvYmFycmVfdHlwb19lY29sb2dpcXVlL2ltZ19wYWNrL2ljb25lc19iYXJyZS9hbmNyZS5wbmcnIGhlaWdodD0nMTYnIHdpZHRoPScxNicgYWx0PSJHZXN0aW9uIGRlcyBhbmNyZXMiIC8+PC9hPiZuYnNwOzwvdGQ+Cjx0ZCBzdHlsZT0ndGV4dC1hbGlnbjpsZWZ0OycgdmFsaWduPSdtaWRkbGUnPjxhIGhyZWY9ImphdmFzY3JpcHQ6c3dhcF9jb3VjaGUoJzE4JywnJyk7IgogY2xhc3M9J3NwaXBfYmFycmUnIHRhYmluZGV4PScxMDAwJyB0aXRsZT0iQ2FyYWN0JmVncmF2ZTtyZXMgc3AmZWFjdXRlO2NpYXV4Ij48aW1nIHNyYz0nLi4vcGx1Z2lucy9mb25jdGlvbm5hbGl0ZXMvYmFycmVfdHlwb19lY29sb2dpcXVlL2ltZ19wYWNrL2ljb25lc19iYXJyZS9jbGF2aWVyLnBuZycgaGVpZ2h0PScxNicgd2lkdGg9JzE2JyBhbHQ9IkNhcmFjdCZlZ3JhdmU7cmVzIHNwJmVhY3V0ZTtjaWF1eCIgLz48L2E+Jm5ic3A7PC90ZD4KPHRkIHN0eWxlPSd0ZXh0LWFsaWduOnJpZ2h0OycgdmFsaWduPSdtaWRkbGUnPiZuYnNwOyZuYnNwOzxhIGNsYXNzPSdhaWRlJyBocmVmPSdodHRwOi8vcHJlcHJvZC5ub3RyZS12aWxsZS5uZXQvfnN0c2ViL2VjcmlyZS8/ZXhlYz1haWRlX2luZGV4JmFtcDthaWRlPXJhY2NvdXJjaXMmYW1wO3Zhcl9sYW5nPWZyJyB0YXJnZXQ9InNwaXBfYWlkZSIgb25jbGljaz0iamF2YXNjcmlwdDp3aW5kb3cub3Blbih0aGlzLmhyZWYsJ3NwaXBfYWlkZScsICdzY3JvbGxiYXJzPXllcywgcmVzaXphYmxlPXllcywgd2lkdGg9NzQwLCBoZWlnaHQ9NTgwJyk7IHJldHVybiBmYWxzZTsiPjxpbWcgc3JjPSdpbWdfcGFjay9haWRlLmdpZicKYWx0PSJBSURFIiB0aXRsZT0iRGUgbCdhaWRlIHN1ciBjZXQgJmVhY3V0ZTtsJmVhY3V0ZTttZW50IiB3aWR0aD0iMTIiIGhlaWdodD0iMTIiIGFsaWduPSJtaWRkbGUiIC8+PC9hPiZuYnNwOzwvdGQ+PC90cj48L3RhYmxlPjxkaXYgaWQ9J0xheWVyMTUnIHN0eWxlPSdkaXNwbGF5Om5vbmU7JyA+PHRhYmxlIGNsYXNzPSJzcGlwX2JhcnJlIiBzdHlsZT0id2lkdGg6IGF1dG87IHBhZGRpbmc6IDFweCFpbXBvcnRhbnQ7IGJvcmRlci10b3A6IDBweDsiIHN1bW1hcnk9IiI+DQo8dHI+PHRkPg0KTmIgY29sb25uZXM6IDxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJiYXJyZV9uYmNvbG9uZXMiIHN0eWxlPSJ3aWR0aDogMzBweDsiIHZhbHVlPSIyIiBzaXplPSIyIiBtYXhsZW5ndGg9IjIiICAgLz48L3RkPjx0ZD4NCk5iIGxpZ25lczogPGlucHV0IHR5cGU9InRleHQiIG5hbWU9ImJhcnJlX25icmFuZ3MiIHN0eWxlPSJ3aWR0aDogMzBweDsiIHZhbHVlPSIyIiBzaXplPSIyIiBtYXhsZW5ndGg9IjIiIC8+PC90ZD48dGQ+DQo8aW5wdXQgdHlwZT0iY2hlY2tib3giIG5hbWU9ImJhcnJlX2RvZW50ZXRlIiB2YWx1ZT0iLTEiIGNoZWNrZWQ9ImNoZWNrZWQiIC8+IEVudGV0ZTwvdGQ+PHRkPg0KPGlucHV0IHR5cGU9ImNoZWNrYm94IiBuYW1lPSJiYXJyZV9kb2NhcHRpb24iIHZhbHVlPSItMSIgY2hlY2tlZD0iY2hlY2tlZCIgLz4gQ2FwdGlvbiBldCBSJmVhY3V0ZTtzdW0mZWFjdXRlOzwvdGQ+PHRkPg0KICA8aW5wdXQgdHlwZT0iYnV0dG9uIiB2YWx1ZT0iT0siIGNsYXNzPSJmb25kbyIgb25jbGljaz0iamF2YXNjcmlwdDoNCiAgICBiYXJyZV9uYmNvbG9uZXMudmFsdWUgPSBNYXRoLmFicyhiYXJyZV9uYmNvbG9uZXMudmFsdWUpOyBiYXJyZV9uYnJhbmdzLnZhbHVlDQogICAgPSBNYXRoLmFicyhiYXJyZV9uYnJhbmdzLnZhbHVlKTsNCiAgICBpZiAoIShiYXJyZV9uYmNvbG9uZXMudmFsdWUgPT0gMCB8fCBiYXJyZV9uYnJhbmdzLnZhbHVlID09IDApKSB7DQogICAgYmFycmVfdGFibGVhdShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaW5wdXQtMS10ZXh0ZV8yJyksIGJhcnJlX25iY29sb25lcy52YWx1ZSwgYmFycmVfbmJyYW5ncy52YWx1ZSwNCiAgICBiYXJyZV9kb2VudGV0ZS5jaGVja2VkLCBiYXJyZV9kb2NhcHRpb24uY2hlY2tlZCk7IH0gIiAvPiANCjwvdGQ+PC90cj48L3RhYmxlPg0KPGRpdiBzdHlsZT0nY2xlYXI6IGJvdGg7Jz48L2Rpdj48L2Rpdj48ZGl2IGlkPSdMYXllcjE2JyBzdHlsZT0nZGlzcGxheTpub25lOycgPg0KIDx0YWJsZSBjbGFzcz0ic3BpcF9iYXJyZSIgc3R5bGU9IndpZHRoOiBhdXRvOyBwYWRkaW5nOiAxcHghaW1wb3J0YW50OyBib3JkZXItdG9wOiAwcHg7IiBzdW1tYXJ5PSIiPg0KPHRyPjx0ZD4gDQpBZHJlc3NlJm5ic3A7OiA8aW5wdXQgdHlwZT0idGV4dCIgbmFtZT0ibGllbl9ub20iIHZhbHVlPSJodHRwOi8vIiBzaXplPSIyMSIgbWF4bGVuZ3RoPSIyNTUiIC8+PGJyIC8+DQpCdWxsZSBkJ2FpZGUmbmJzcDs6IDxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJsaWVuX2J1bGxlIiB2YWx1ZT0iIiBzaXplPSIyMSIgbWF4bGVuZ3RoPSIyNTUiIC8+DQo8L3RkPjx0ZD4NCkxhbmd1ZSBhYnImZWFjdXRlO2cmZWFjdXRlO2UmbmJzcDs6IDxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJsaWVuX2xhbmd1ZSIgdmFsdWU9IiIgc2l6ZT0iMTAiIG1heGxlbmd0aD0iMTAiIC8+DQo8L3RkPjx0ZD4NCiAgPGlucHV0IHR5cGU9ImJ1dHRvbiIgdmFsdWU9Ik9LIiBjbGFzcz0iZm9uZG8iIG9uY2xpY2s9ImphdmFzY3JpcHQ6YmFycmVfZGVtYW5kZV9saWVuKCdbJywgJy0+JywgJ10nLCBsaWVuX25vbS52YWx1ZSwgbGllbl9idWxsZS52YWx1ZSwgbGllbl9sYW5ndWUudmFsdWUsZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2lucHV0LTEtdGV4dGVfMicpKTsiIC8+IA0KPC90ZD48L3RyPjwvdGFibGU+DQo8ZGl2IHN0eWxlPSdjbGVhcjogYm90aDsnPjwvZGl2PjwvZGl2PjxkaXYgaWQ9J0xheWVyMTcnIHN0eWxlPSdkaXNwbGF5Om5vbmU7JyA+DQo8dGFibGUgY2xhc3M9InNwaXBfYmFycmUiIHN0eWxlPSJ3aWR0aDogYXV0bzsgcGFkZGluZzogMXB4IWltcG9ydGFudDsgYm9yZGVyLXRvcDogMHB4OyIgc3VtbWFyeT0iIj4NCiAgPHRyPg0KICAgIDx0ZCBzdHlsZT0id2lkdGg6YXV0bzsgdGV4dC1hbGlnbjpjZW50ZXI7Ij48c3Ryb25nPkdlc3Rpb24gZGVzIGFuY3Jlczwvc3Ryb25nPjwvdGQ+DQogICAgPHRkIHN0eWxlPSJ3aWR0aDphdXRvOyI+PHN0cm9uZz5UcmFuc2Zvcm1lciBlbiBhbmNyZTwvc3Ryb25nPjxiciAvPg0KICAgIDxsYWJlbCBmb3I9ImFuY3JlX25vbSI+PGk+Tm9tIGRlIGwnYW5jcmU8L2k+PC9sYWJlbD4gPGJyIC8+DQogICAgICA8aW5wdXQgdHlwZT0idGV4dCIgbmFtZT0iYW5jcmVfbm9tIiBpZD0iYW5jcmVfbm9tIiAvPg0KCSAgDQoJPGlucHV0IHR5cGU9ImJ1dHRvbiIgdmFsdWU9Ik9LIiBjbGFzcz0iZm9uZG8iIG9uY2xpY2s9ImphdmFzY3JpcHQ6YmFycmVfYW5jcmUoJ1snLCAnPC0nLCAnXScsIGFuY3JlX25vbS52YWx1ZSwgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2lucHV0LTEtdGV4dGVfMicpKTsiIC8+DQogICAgPC90ZD4NCgk8dGQgc3R5bGU9IndpZHRoOmF1dG87Ij48c3Ryb25nPlBvaW50ZXIgdmVycyB1bmUgYW5jcmU8L3N0cm9uZz48YnIgLz4NCiAgICA8bGFiZWwgZm9yPSJhbmNyZV9jaWJsZSI+PGk+QW5jcmUgY2libGU8L2k+PC9sYWJlbD4gPGlucHV0IHR5cGU9InRleHQiIG5hbWU9ImFuY3JlX2NpYmxlIiBpZD0iYW5jcmVfY2libGUiIC8+PGJyIC8+DQoJPGxhYmVsIGZvcj0iYW5jcmVfYnVsbGUiPjxpPkJ1bGxlIGQnYWlkZSBhbmNyZTwvaT48L2xhYmVsPiA8aW5wdXQgdHlwZT0idGV4dCIgbmFtZT0iYW5jcmVfYnVsbGUiIGlkPSJhbmNyZV9idWxsZSIgLz4NCgk8aW5wdXQgdHlwZT0iYnV0dG9uIiB2YWx1ZT0iT0siIGNsYXNzPSJmb25kbyIgb25jbGljaz0iamF2YXNjcmlwdDpiYXJyZV9kZW1hbmRlKCdbJywgJy0+IycsICddJywgYW5jcmVfY2libGUudmFsdWUsIGFuY3JlX2J1bGxlLnZhbHVlLCBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaW5wdXQtMS10ZXh0ZV8yJykpOyIgLz4gDQo8L3RkPg0KICA8L3RyPiANCjwvdGFibGU+PGRpdiBzdHlsZT0nY2xlYXI6IGJvdGg7Jz48L2Rpdj48L2Rpdj48ZGl2IGlkPSdMYXllcjE4JyBzdHlsZT0nZGlzcGxheTpub25lOycgPg0KPHRhYmxlIGNsYXNzPSJzcGlwX2JhcnJlIiBzdHlsZT0id2lkdGg6IGF1dG87IHBhZGRpbmc6IDFweCFpbXBvcnRhbnQ7IGJvcmRlci10b3A6IDBweDsiIHN1bW1hcnk9IiI+DQogIDx0ciBjbGFzcz0ic3BpcF9iYXJyZSI+DQogICAgPHRkIHN0eWxlPSJ3aWR0aDozMCU7Ij5DYXJhY3QmZWdyYXZlO3JlcyBzcCZlYWN1dGU7Y2lhdXg8L3RkPg0KICAgIDx0ZD48YSBocmVmPSJqYXZhc2NyaXB0OmJhcnJlX3JhY2NvdXJjaSgnXHUwMGFificsJ35cdTAwYmInLGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdpbnB1dC0xLXRleHRlXzInKSkiCiBjbGFzcz0nc3BpcF9iYXJyZScgdGFiaW5kZXg9JzEwMDAnIHRpdGxlPSJFbnRvdXJlciBkZSAmbGFxdW87IGd1aWxsZW1ldHMgJnJhcXVvOyI+PGltZyBzcmM9J2ltZ19wYWNrL2ljb25lc19iYXJyZS9ndWlsbGVtZXRzLnBuZycgaGVpZ2h0PScxNicgd2lkdGg9JzE2JyBhbHQ9IkVudG91cmVyIGRlICZsYXF1bzsgZ3VpbGxlbWV0cyAmcmFxdW87IiAvPjwvYT48YSBocmVmPSJqYXZhc2NyaXB0OmJhcnJlX3JhY2NvdXJjaSgnXHUwMDkzJywnXHUwMDk0Jyxkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaW5wdXQtMS10ZXh0ZV8yJykpIgogY2xhc3M9J3NwaXBfYmFycmUnIHRhYmluZGV4PScxMDAwJyB0aXRsZT0iRW50b3VyZXIgZGUgJmxkcXVvO2d1aWxsZW1ldHMgZGUgc2Vjb25kIG5pdmVhdSZyZHF1bzsiPjxpbWcgc3JjPSdpbWdfcGFjay9pY29uZXNfYmFycmUvZ3VpbGxlbWV0cy1zaW1wbGVzLnBuZycgaGVpZ2h0PScxNicgd2lkdGg9JzE2JyBhbHQ9IkVudG91cmVyIGRlICZsZHF1bztndWlsbGVtZXRzIGRlIHNlY29uZCBuaXZlYXUmcmRxdW87IiAvPjwvYT48YSBocmVmPSJqYXZhc2NyaXB0OmJhcnJlX2luc2VyZXIoJ1x1MDBjMCcsZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2lucHV0LTEtdGV4dGVfMicpKSIKIGNsYXNzPSdzcGlwX2JhcnJlJyB0YWJpbmRleD0nMTAwMCcgdGl0bGU9IklucyZlYWN1dGU7cmVyIHVuIEEgYWNjZW50IGdyYXZlIG1hanVzY3VsZSI+PGltZyBzcmM9J2ltZ19wYWNrL2ljb25lc19iYXJyZS9hZ3JhdmUtbWFqLnBuZycgaGVpZ2h0PScxNicgd2lkdGg9JzE2JyBhbHQ9IklucyZlYWN1dGU7cmVyIHVuIEEgYWNjZW50IGdyYXZlIG1hanVzY3VsZSIgLz48L2E+PGEgaHJlZj0iamF2YXNjcmlwdDpiYXJyZV9pbnNlcmVyKCdcdTAwYzknLGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdpbnB1dC0xLXRleHRlXzInKSkiCiBjbGFzcz0nc3BpcF9iYXJyZScgdGFiaW5kZXg9JzEwMDAnIHRpdGxlPSJJbnMmZWFjdXRlO3JlciB1biBFIGFjY2VudCBhaWd1IG1hanVzY3VsZSI+PGltZyBzcmM9J2ltZ19wYWNrL2ljb25lc19iYXJyZS9lYWN1dGUtbWFqLnBuZycgaGVpZ2h0PScxNicgd2lkdGg9JzE2JyBhbHQ9IklucyZlYWN1dGU7cmVyIHVuIEUgYWNjZW50IGFpZ3UgbWFqdXNjdWxlIiAvPjwvYT48YSBocmVmPSJqYXZhc2NyaXB0OmJhcnJlX2luc2VyZXIoJ1x1MDBjOCcsZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2lucHV0LTEtdGV4dGVfMicpKSIKIGNsYXNzPSdzcGlwX2JhcnJlJyB0YWJpbmRleD0nMTAwMCcgdGl0bGU9IklucyZlYWN1dGU7cmVyIHVuIEUgbWFqdXNjdWxlIGFjY2VudCBncmF2ZSI+PGltZyBzcmM9Jy4uL3BsdWdpbnMvZm9uY3Rpb25uYWxpdGVzL2JhcnJlX3R5cG9fZWNvbG9naXF1ZS9pbWdfcGFjay9pY29uZXNfYmFycmUvZWFncmF2ZS1tYWoucG5nJyBoZWlnaHQ9JzE2JyB3aWR0aD0nMTYnIGFsdD0iSW5zJmVhY3V0ZTtyZXIgdW4gRSBtYWp1c2N1bGUgYWNjZW50IGdyYXZlIiAvPjwvYT48YSBocmVmPSJqYXZhc2NyaXB0OmJhcnJlX2luc2VyZXIoJ1x1MDBlNicsZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2lucHV0LTEtdGV4dGVfMicpKSIKIGNsYXNzPSdzcGlwX2JhcnJlJyB0YWJpbmRleD0nMTAwMCcgdGl0bGU9IklucyZlYWN1dGU7cmVyIHVuIEUgZGFucyBsJ0EiPjxpbWcgc3JjPScuLi9wbHVnaW5zL2ZvbmN0aW9ubmFsaXRlcy9iYXJyZV90eXBvX2Vjb2xvZ2lxdWUvaW1nX3BhY2svaWNvbmVzX2JhcnJlL2FlbGlnLnBuZycgaGVpZ2h0PScxNicgd2lkdGg9JzE2JyBhbHQ9IklucyZlYWN1dGU7cmVyIHVuIEUgZGFucyBsJ0EiIC8+PC9hPjxhIGhyZWY9ImphdmFzY3JpcHQ6YmFycmVfaW5zZXJlcignXHUwMGM2Jyxkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaW5wdXQtMS10ZXh0ZV8yJykpIgogY2xhc3M9J3NwaXBfYmFycmUnIHRhYmluZGV4PScxMDAwJyB0aXRsZT0iSW5zJmVhY3V0ZTtyZXIgdW4gRSBkYW5zIGwnQSBtYWp1c2N1bGUiPjxpbWcgc3JjPScuLi9wbHVnaW5zL2ZvbmN0aW9ubmFsaXRlcy9iYXJyZV90eXBvX2Vjb2xvZ2lxdWUvaW1nX3BhY2svaWNvbmVzX2JhcnJlL2FlbGlnLW1hai5wbmcnIGhlaWdodD0nMTYnIHdpZHRoPScxNicgYWx0PSJJbnMmZWFjdXRlO3JlciB1biBFIGRhbnMgbCdBIG1hanVzY3VsZSIgLz48L2E+PGEgaHJlZj0iamF2YXNjcmlwdDpiYXJyZV9pbnNlcmVyKCcmb2VsaWc7Jyxkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaW5wdXQtMS10ZXh0ZV8yJykpIgogY2xhc3M9J3NwaXBfYmFycmUnIHRhYmluZGV4PScxMDAwJyB0aXRsZT0iSW5zJmVhY3V0ZTtyZXIgdW4gRSBkYW5zIGwnTyI+PGltZyBzcmM9J2ltZ19wYWNrL2ljb25lc19iYXJyZS9vZWxpZy5wbmcnIGhlaWdodD0nMTYnIHdpZHRoPScxNicgYWx0PSJJbnMmZWFjdXRlO3JlciB1biBFIGRhbnMgbCdPIiAvPjwvYT48YSBocmVmPSJqYXZhc2NyaXB0OmJhcnJlX2luc2VyZXIoJyZPRWxpZzsnLGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdpbnB1dC0xLXRleHRlXzInKSkiCiBjbGFzcz0nc3BpcF9iYXJyZScgdGFiaW5kZXg9JzEwMDAnIHRpdGxlPSJJbnMmZWFjdXRlO3JlciB1biBFIGRhbnMgbCdPIG1hanVzY3VsZSI+PGltZyBzcmM9J2ltZ19wYWNrL2ljb25lc19iYXJyZS9vZWxpZy1tYWoucG5nJyBoZWlnaHQ9JzE2JyB3aWR0aD0nMTYnIGFsdD0iSW5zJmVhY3V0ZTtyZXIgdW4gRSBkYW5zIGwnTyBtYWp1c2N1bGUiIC8+PC9hPjxhIGhyZWY9ImphdmFzY3JpcHQ6YmFycmVfaW5zZXJlcignXHUwMGM3Jyxkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaW5wdXQtMS10ZXh0ZV8yJykpIgogY2xhc3M9J3NwaXBfYmFycmUnIHRhYmluZGV4PScxMDAwJyB0aXRsZT0iSW5zJmVhY3V0ZTtyZXIgdW4gQyBjJmVhY3V0ZTtkaWxsZSBtYWp1c2N1bGUiPjxpbWcgc3JjPScuLi9wbHVnaW5zL2ZvbmN0aW9ubmFsaXRlcy9iYXJyZV90eXBvX2Vjb2xvZ2lxdWUvaW1nX3BhY2svaWNvbmVzX2JhcnJlL2NjZWRpbC1tYWoucG5nJyBoZWlnaHQ9JzE2JyB3aWR0aD0nMTYnIGFsdD0iSW5zJmVhY3V0ZTtyZXIgdW4gQyBjJmVhY3V0ZTtkaWxsZSBtYWp1c2N1bGUiIC8+PC9hPjxhIGhyZWY9ImphdmFzY3JpcHQ6YmFycmVfaW5zZXJlcignJmV1cm87Jyxkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaW5wdXQtMS10ZXh0ZV8yJykpIgogY2xhc3M9J3NwaXBfYmFycmUnIHRhYmluZGV4PScxMDAwJyB0aXRsZT0iSW5zJmVhY3V0ZTtyZXIgbGUgc3ltYm9sZSAmZXVybzsiPjxpbWcgc3JjPSdpbWdfcGFjay9pY29uZXNfYmFycmUvZXVyby5wbmcnIGhlaWdodD0nMTYnIHdpZHRoPScxNicgYWx0PSJJbnMmZWFjdXRlO3JlciBsZSBzeW1ib2xlICZldXJvOyIgLz48L2E+Jm5ic3A7DQogICAgPC90ZD4NCiAgPC90cj4gDQo8L3RhYmxlPg0KPGRpdiBzdHlsZT0nY2xlYXI6IGJvdGg7Jz48L2Rpdj48L2Rpdj48ZGl2IGlkPSdMYXllcjE5JyBzdHlsZT0nZGlzcGxheTpub25lOycgPg0KPHRhYmxlIGNsYXNzPSJzcGlwX2JhcnJlIiBzdHlsZT0id2lkdGg6IGF1dG87IHBhZGRpbmc6IDFweCFpbXBvcnRhbnQ7IGJvcmRlci10b3A6IDBweDsiIHN1bW1hcnk9IiI+DQo8dHI+PHRkIHN0eWxlPSJ3aWR0aDogMjUlOyI+Q2hlcmNoZXI8aW5wdXQgdHlwZT0idGV4dCIgbmFtZT0iYmFycmVfY2hlcmNoZXIiIHZhbHVlPSIiIHNpemU9IjEyIiBtYXhsZW5ndGg9IjI1NSIgLz48L3RkPjx0ZCBzdHlsZT0id2lkdGg6IDIwJTsiPg0KPGlucHV0IHR5cGU9ImNoZWNrYm94IiBuYW1lPSJyZWNfY2FzZSIgdmFsdWU9InllcyIgLz5SZXNwZWN0ZXIgbGEgY2Fzc2U8YnIgLz48aW5wdXQgdHlwZT0iY2hlY2tib3giIG5hbWU9InJlY19lbnRpZXIiIHZhbHVlPSJ5ZXMiIC8+DQpNb3QgZW50aWVyDQo8L3RkPjx0ZCAgc3R5bGU9IndpZHRoOiAyNSU7Ij5SZW1wbGFjZXI8aW5wdXQgdHlwZT0idGV4dCIgbmFtZT0iYmFycmVfcmVtcGxhY2VyIiB2YWx1ZT0iIiBzaXplPSIxMiIgbWF4bGVuZ3RoPSIyNTUiIC8+IA0KPC90ZD48dGQgc3R5bGU9IndpZHRoOiAyMCU7Ij4NCjxpbnB1dCB0eXBlPSJjaGVja2JveCIgbmFtZT0icmVjX3RvdXQiIHZhbHVlPSJ5ZXMiIC8+VG91dCByZW1wbGFjZXI8L3RkPjx0ZCBzdHlsZT0id2lkdGg6IDEwJTsiPg0KICAgPGlucHV0IHR5cGU9ImJ1dHRvbiIgdmFsdWU9Ik9LIiBjbGFzcz0iZm9uZG8iDQogIG9uY2xpY2s9ImphdmFzY3JpcHQ6YmFycmVfc2VhcmNocmVwbGFjZShkb2N1bWVudC5mb3JtdWxhaXJlLmJhcnJlX2NoZXJjaGVyLnZhbHVlLCBkb2N1bWVudC5mb3JtdWxhaXJlLmJhcnJlX3JlbXBsYWNlci52YWx1ZSwgZG9jdW1lbnQuZm9ybXVsYWlyZS5yZWNfdG91dC5jaGVja2VkLCBkb2N1bWVudC5mb3JtdWxhaXJlLnJlY19jYXNlLmNoZWNrZWQsIGRvY3VtZW50LmZvcm11bGFpcmUucmVjX2VudGllci5jaGVja2VkLGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdpbnB1dC0xLXRleHRlXzInKSk7IiAvPiANCjwvdGQ+PC90cj48L3RhYmxlPjxkaXYgc3R5bGU9J2NsZWFyOiBib3RoOyc+PC9kaXY+PC9kaXY+Cgk8dGV4dGFyZWEgbmFtZT0ndGV4dGVfMicgcm93cz0nMTAnIGNsYXNzPSdmb3JtbCAgICcgY29scz0nODAnCglpZD0naW5wdXQtMS10ZXh0ZV8yJwoJb25zZWxlY3Q9J3N0b3JlQ2FyZXQodGhpcyk7JwoJb25jbGljaz0nc3RvcmVDYXJldCh0aGlzKTsnCglvbmtleXVwPSdzdG9yZUNhcmV0KHRoaXMpOycKCW9uZGJsY2xpY2s9J3N0b3JlQ2FyZXQodGhpcyk7Jz48L3RleHRhcmVhPgoJCQkJCgkJCQkKCQkJCQoJCQkJCgkJCQkKCQkJCQoJCQkJCgkJCQkKCQkJCQoJCQkJPHNwYW4gY2xhc3M9J25ldHRveWV1cic+IDwvc3Bhbj4KCQkJCgkJPC9kaXY+CgkKCgogCgk8L2ZpZWxkc2V0PgoKIAogCgkKCTxwIHN0eWxlPSdkaXNwbGF5Om5vbmU7Jz48bGFiZWwgZm9yPSJub2JvdG5vYm90LTEiPlZldWlsbGV6IGxhaXNzZXIgY2UgY2hhbXAgdmlkZSZuYnNwOzo8L2xhYmVsPgoJPGlucHV0IHR5cGU9InRleHQiIG5hbWU9Im5vYm90bm9ib3QiIGlkPSJub2JvdG5vYm90LTEiIHZhbHVlPSIiIHNpemU9IjEwIiAvPjwvcD4KCQoJPGRpdiBzdHlsZT0ndGV4dC1hbGlnbjpyaWdodCcgY2xhc3M9J3NwaXBfYm91dG9uJz48aW5wdXQgdHlwZT0ic3VibWl0IiBuYW1lPSdWYWxpZGVyJyB2YWx1ZT0iVmFsaWRlciIgLz48L2Rpdj4KCgo8ZGl2IGNsYXNzPSJiYXNlNjRqYXZhc2NyaXB0NjE2NjIzMjMwNDY0NDM0OThiZGYwMTkuMzEwOTE2MzUiIHRpdGxlPSdQSE5qY21sd2RDQnpjbU05SW1oMGRIQTZMeTl3Y21Wd2NtOWtMbTV2ZEhKbExYWnBiR3hsTG01bGRDOStjM1J6WldJdmNHeDFaMmx1Y3k5bWIyNWpkR2x2Ym01aGJHbDBaWE12Wm05eWJYTXZhbUYyWVhOamNtbHdkQzlxZEdsd0xtcHpJaUIwZVhCbFBTSjBaWGgwTDJwaGRtRnpZM0pwY0hRaVBqd3ZjMk55YVhCMFBnPT0nID48L2Rpdj4KCgoKPGRpdiBjbGFzcz0iYmFzZTY0amF2YXNjcmlwdDYxNjYyMzIzMDQ2NDQzNDk4YmRmMDE5LjMxMDkxNjM1IiB0aXRsZT0nUEhOamNtbHdkQ0IwZVhCbFBTSjBaWGgwTDJwaGRtRnpZM0pwY0hRaVBqd2hMUzBLSkNnbmFXNXdkWFF1Wm05eWJXOG5LUzVpYVc1a0tDZG1iMk4xY3ljc1puVnVZM1JwYjI0b0tYc2tLSFJvYVhNcExuSmxiVzkyWlVOc1lYTnpLQ2RtYjNKdGJ5Y3BMbUZrWkVOc1lYTnpLQ2RtYjNKdGJ5MW1iMk4xY3ljcE8zMHBPd29rS0NkcGJuQjFkQzVtYjNKdGJ5Y3BMbUpwYm1Rb0oySnNkWEluTEdaMWJtTjBhVzl1S0NsN0pDaDBhR2x6S1M1eVpXMXZkbVZEYkdGemN5Z25abTl5Ylc4dFptOWpkWE1uS1M1aFpHUkRiR0Z6Y3lnblptOXliVzhuS1R0OUtUc0tKQ2duYVc1d2RYUXVabTl5Yld3bktTNWlhVzVrS0NkbWIyTjFjeWNzWm5WdVkzUnBiMjRvS1hza0tIUm9hWE1wTG5KbGJXOTJaVU5zWVhOektDZG1iM0p0YkNjcExtRmtaRU5zWVhOektDZG1iM0p0YkMxbWIyTjFjeWNwTzMwcE93b2tLQ2RwYm5CMWRDNW1iM0p0YkNjcExtSnBibVFvSjJKc2RYSW5MR1oxYm1OMGFXOXVLQ2w3SkNoMGFHbHpLUzV5WlcxdmRtVkRiR0Z6Y3lnblptOXliV3d0Wm05amRYTW5LUzVoWkdSRGJHRnpjeWduWm05eWJXd25LVHQ5S1RzS0NpOHZMUzArUEM5elkzSnBjSFErJyA+PC9kaXY+CgoKCgkKCQoJCgoKPC9kaXY+',
216
-				'balise' => '<div class="base64" title="bW9kZWxlIDogYTo3OntzOjQ6JnF1b3Q7bGFuZyZxdW90OztzOjI6JnF1b3Q7ZnImcXVvdDs7czo0OiZxdW90O2ZvbmQmcXVvdDs7czoxMjomcXVvdDttb2RlbGVzL2Zvcm0mcXVvdDs7czoxMDomcXVvdDtkaXJfcmFjaW5lJnF1b3Q7O3M6MzomcXVvdDsuLi8mcXVvdDs7czoyOiZxdW90O2lkJnF1b3Q7O3M6MTomcXVvdDsxJnF1b3Q7O3M6NzomcXVvdDtpZF9mb3JtJnF1b3Q7O3M6MTomcXVvdDsxJnF1b3Q7O3M6NDomcXVvdDtkYXRlJnF1b3Q7O3M6MTk6JnF1b3Q7MjAwNy0wNS0xMSAxMTo0MjoxOSZxdW90OztzOjEwOiZxdW90O2RhdGVfcmVkYWMmcXVvdDs7czoxOTomcXVvdDsyMDA3LTA1LTExIDExOjQyOjE5JnF1b3Q7O30KCmljaXRvdG8KCjxhIG5hbWU9J2Zvcm0xJz48L2E+CjxkaXYgY2xhc3M9J3NwaXBfZm9ybXMnPgoKPGRpdiBjbGFzcz0nc3BpcF9kZXNjcmlwdGlmJz48L2Rpdj4KCgoKCiAKCQkKCQk8ZGl2PgoJCQo8aW5wdXQgbmFtZT0nZXhlYycgdmFsdWU9J2FydGljbGVzJyB0eXBlPSdoaWRkZW4nIC8+CjxpbnB1dCBuYW1lPSdpZF9hcnRpY2xlJyB2YWx1ZT0nOCcgdHlwZT0naGlkZGVuJyAvPgoJCTxpbnB1dCB0eXBlPSdoaWRkZW4nIG5hbWU9J2Fqb3V0X3JlcG9uc2UnIHZhbHVlPScxJyAvPgoJCTxpbnB1dCB0eXBlPSdoaWRkZW4nIG5hbWU9J2lkX2Rvbm5lZScgdmFsdWU9Jy0xMCcgLz4KCQkKCQk8aW5wdXQgdHlwZT0naGlkZGVuJyBuYW1lPSdyZXRvdXJfZm9ybScgdmFsdWU9JycgLz4KCQkKCQk8L2Rpdj4KCQkJCgoKIAoJIAoJCQoJCSA8ZmllbGRzZXQ+PGxlZ2VuZD5Ob3VzIGNvbnRhY3RlcjwvbGVnZW5kPiAKCQoJIAoJCTxkaXYgY2xhc3M9J3NwaXBfZm9ybV9jaGFtcCBsaWduZV8xJz4KCQkJCgkJCSAKCQkJCTxzcGFuIGNsYXNzPSdzcGlwX2Zvcm1fbGFiZWwnPgoJCQkJCSA8bGFiZWwgZm9yPSJpbnB1dC0xLWxpZ25lXzEiPlZvdHJlIE5vbTwvbGFiZWw+CgkJCQkJCgkJCQkJPHNwYW4gY2xhc3M9J3NwaXBfZm9ybV9sYWJlbF9vYmxpZ2F0b2lyZSc+CgkJCQkJCVtPYmxpZ2F0b2lyZV08L3NwYW4+CgkJCQkJOgoJCQkJPC9zcGFuPgoJCQkJCgkJCQkKCQkJCQoJCQkJCgkJCQkKCQkJCQoJCQkJCgkJCQkKCQkJCQoJCQkJCgkJCQkKCQkJCSAKCQkJCQoJCQkJPGlucHV0IHR5cGU9InRleHRlIiBuYW1lPSdsaWduZV8xJyBpZD0naW5wdXQtMS1saWduZV8xJyB2YWx1ZT0iIiAKCQkJCQkJY2xhc3M9JyAgbGlnbmUgZm9ybWwnIAoJCQkJCQlzaXplPSc0MCcgLz4KCQkJCQoJCQkJCgkJCQkKCQkJCTxzcGFuIGNsYXNzPSduZXR0b3lldXInPiA8L3NwYW4+CgkJCQoJCTwvZGl2PgoJCgoKCiAKCSAKCQkKCQkKCQoJIAoJCTxkaXYgY2xhc3M9J3NwaXBfZm9ybV9jaGFtcCBsaWduZV8yJz4KCQkJCgkJCSAKCQkJCTxzcGFuIGNsYXNzPSdzcGlwX2Zvcm1fbGFiZWwnPgoJCQkJCSA8bGFiZWwgZm9yPSJpbnB1dC0xLWxpZ25lXzIiPlZvdHJlIFByw6lub208L2xhYmVsPgoJCQkJCQoJCQkJCTxzcGFuIGNsYXNzPSdzcGlwX2Zvcm1fbGFiZWxfb2JsaWdhdG9pcmUnPgoJCQkJCQlbT2JsaWdhdG9pcmVdPC9zcGFuPgoJCQkJCToKCQkJCTwvc3Bhbj4KCQkJCQoJCQkJCgkJCQkKCQkJCQoJCQkJCgkJCQkKCQkJCQoJCQkJCgkJCQkKCQkJCQoJCQkJCgkJCQkgCgkJCQkKCQkJCTxpbnB1dCB0eXBlPSJ0ZXh0ZSIgbmFtZT0nbGlnbmVfMicgaWQ9J2lucHV0LTEtbGlnbmVfMicgdmFsdWU9IiIgCgkJCQkJCWNsYXNzPScgIGxpZ25lIGZvcm1sJyAKCQkJCQkJc2l6ZT0nNDAnIC8+CgkJCQkKCQkJCQoJCQkJCgkJCQk8c3BhbiBjbGFzcz0nbmV0dG95ZXVyJz4gPC9zcGFuPgoJCQkKCQk8L2Rpdj4KCQoKCgogCgkgCgkJCgkJCgkKCSAKCQk8ZGl2IGNsYXNzPSdzcGlwX2Zvcm1fY2hhbXAgZW1haWxfMSc+CgkJCQoJCQkgCgkJCQk8c3BhbiBjbGFzcz0nc3BpcF9mb3JtX2xhYmVsJz4KCQkJCQkgPGxhYmVsIGZvcj0iaW5wdXQtMS1lbWFpbF8xIj5Wb3RyZSBlbWFpbDwvbGFiZWw+CgkJCQkJCgkJCQkJPHNwYW4gY2xhc3M9J3NwaXBfZm9ybV9sYWJlbF9vYmxpZ2F0b2lyZSc+CgkJCQkJCVtPYmxpZ2F0b2lyZV08L3NwYW4+CgkJCQkJOgoJCQkJPC9zcGFuPgoJCQkJCgkJCQk8c3BhbiBjbGFzcz0nc3BpcF9mb3JtX2xhYmVsX2RldGFpbHMnPlZldWlsbGV6IGVudHJlciB1bmUgYWRyZXNzZSBlLW1haWwgdmFsaWRlIChkZSB0eXBlIHZvdXNAZm91cm5pc3NldXIuY29tKS48L3NwYW4+CgkJCQkKCQkJCQoJCQkJCgkJCQkKCQkJCQoJCQkJCgkJCQkKCQkJCQoJCQkJCgkJCQkgCgkJCQkKCQkJCTxpbnB1dCB0eXBlPSJ0ZXh0ZSIgbmFtZT0nZW1haWxfMScgaWQ9J2lucHV0LTEtZW1haWxfMScgdmFsdWU9IiIgCgkJCQkJCWNsYXNzPScgIGVtYWlsIGZvcm1sJyAKCQkJCQkJc2l6ZT0nNDAnIC8+CgkJCQkKCQkJCQoJCQkJCgkJCQk8c3BhbiBjbGFzcz0nbmV0dG95ZXVyJz4gPC9zcGFuPgoJCQkKCQk8L2Rpdj4KCQoKCgogCgkgCgkJCgkJCgkKCSAKCQk8ZGl2IGNsYXNzPSdzcGlwX2Zvcm1fY2hhbXAgdGV4dGVfMSc+CgkJCQoJCQkgCgkJCQk8c3BhbiBjbGFzcz0nc3BpcF9mb3JtX2xhYmVsJz4KCQkJCQkgPGxhYmVsIGZvcj0iaW5wdXQtMS10ZXh0ZV8xIj5Wb3RyZSBBZHJlc3NlPC9sYWJlbD4KCQkJCQkKCQkJCQkKCQkJCQk6CgkJCQk8L3NwYW4+CgkJCQkKCQkJCQoJCQkJCgkJCQkKCQkJCSAgPGRpdiBjbGFzcz0iYmFzZTY0amF2YXNjcmlwdDYxNjYyMzIzMDQ2NDQzNDk4YmRmMDE5LjMxMDkxNjM1IiB0aXRsZT0nUEhOamNtbHdkQ0IwZVhCbFBTSjBaWGgwTDJwaGRtRnpZM0pwY0hRaUlITnlZejBpTGk0dmNHeDFaMmx1Y3k5aFpHMXBiaTh0YWxGMVpYSjVMMmx0WjE5d1lXTnJMMnhoZVdWeUxtcHpJajQ4TDNOamNtbHdkRDQ9JyA+PC9kaXY+Cgo8ZGl2IGNsYXNzPSJiYXNlNjRqYXZhc2NyaXB0NjE2NjIzMjMwNDY0NDM0OThiZGYwMTkuMzEwOTE2MzUiIHRpdGxlPSdQSE5qY21sd2RDQjBlWEJsUFNKMFpYaDBMMnBoZG1GelkzSnBjSFFpSUhOeVl6MGlMaTR2Y0d4MVoybHVjeTltYjI1amRHbHZibTVoYkdsMFpYTXZZbUZ5Y21WZmRIbHdiMTlsWTI5c2IyZHBjWFZsTDJwekwzTndhWEJmWW1GeWNtVXVhbk1pUGp3dmMyTnlhWEIwUGc9PScgPjwvZGl2PgoKPHRhYmxlIGNsYXNzPSdzcGlwX2JhcnJlJyBzdHlsZT0nd2lkdGg6YXV0bzsnIGNlbGxwYWRkaW5nPScwJyBjZWxsc3BhY2luZz0nMCcgYm9yZGVyPScwJyBzdW1tYXJ5PScnPgo8dHIgc3R5bGU9J3dpZHRoOiBhdXRvOycgY2xhc3M9J3NwaXBfYmFycmUnPgo8dGQgc3R5bGU9J3RleHQtYWxpZ246IGxlZnQ7JyB2YWxpZ249J21pZGRsZSc+PGEgaHJlZj0iamF2YXNjcmlwdDpiYXJyZV9yYWNjb3VyY2koJ3snLCd9Jyxkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaW5wdXQtMS10ZXh0ZV8xJykpIgogY2xhc3M9J3NwaXBfYmFycmUnIHRhYmluZGV4PScxMDAwJyB0aXRsZT0iTWV0dHJlIGVuIHtpdGFsaXF1ZX0iPjxpbWcgc3JjPSdpbWdfcGFjay9pY29uZXNfYmFycmUvaXRhbGlxdWUucG5nJyBoZWlnaHQ9JzE2JyB3aWR0aD0nMTYnIGFsdD0iTWV0dHJlIGVuIHtpdGFsaXF1ZX0iIC8+PC9hPjxhIGhyZWY9ImphdmFzY3JpcHQ6YmFycmVfcmFjY291cmNpKCd7eycsJ319Jyxkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaW5wdXQtMS10ZXh0ZV8xJykpIgogY2xhc3M9J3NwaXBfYmFycmUnIHRhYmluZGV4PScxMDAwJyB0aXRsZT0iTWV0dHJlIGVuIHt7Z3Jhc319Ij48aW1nIHNyYz0naW1nX3BhY2svaWNvbmVzX2JhcnJlL2dyYXMucG5nJyBoZWlnaHQ9JzE2JyB3aWR0aD0nMTYnIGFsdD0iTWV0dHJlIGVuIHt7Z3Jhc319IiAvPjwvYT48YSBocmVmPSJqYXZhc2NyaXB0OmJhcnJlX3JhY2NvdXJjaSgnWyonLCcqXScsZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2lucHV0LTEtdGV4dGVfMScpKSIKIGNsYXNzPSdzcGlwX2JhcnJlJyB0YWJpbmRleD0nMTAwMCcgdGl0bGU9Ik1ldHRyZSBsZSB0ZXh0ZSBlbiBbKiZlYWN1dGU7dmlkZW5jZSpdIj48aW1nIHNyYz0nLi4vcGx1Z2lucy9mb25jdGlvbm5hbGl0ZXMvYmFycmVfdHlwb19lY29sb2dpcXVlL2ltZ19wYWNrL2ljb25lc19iYXJyZS9taXNlZW5ldmlkZW5jZS5wbmcnIGhlaWdodD0nMTYnIHdpZHRoPScxNicgYWx0PSJNZXR0cmUgbGUgdGV4dGUgZW4gWyomZWFjdXRlO3ZpZGVuY2UqXSIgLz48L2E+PGEgaHJlZj0iamF2YXNjcmlwdDpiYXJyZV9yYWNjb3VyY2koJyUzQ3N1cCUzRScsJyUzQy9zdXAlM0UnLGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdpbnB1dC0xLXRleHRlXzEnKSkiCiBjbGFzcz0nc3BpcF9iYXJyZScgdGFiaW5kZXg9JzEwMDAnIHRpdGxlPSJNZXR0cmUgbGUgdGV4dGUgZW4gJmx0O3N1cCZndDtleHBvc2FudCZsdDsvc3VwJmd0OyI+PGltZyBzcmM9Jy4uL3BsdWdpbnMvZm9uY3Rpb25uYWxpdGVzL2JhcnJlX3R5cG9fZWNvbG9naXF1ZS9pbWdfcGFjay9pY29uZXNfYmFycmUvZXhwb3NhbnQucG5nJyBoZWlnaHQ9JzE2JyB3aWR0aD0nMTYnIGFsdD0iTWV0dHJlIGxlIHRleHRlIGVuICZsdDtzdXAmZ3Q7ZXhwb3NhbnQmbHQ7L3N1cCZndDsiIC8+PC9hPjxhIGhyZWY9ImphdmFzY3JpcHQ6YmFycmVfcmFjY291cmNpKCclM0NzYyUzRScsJyUzQy9zYyUzRScsZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2lucHV0LTEtdGV4dGVfMScpKSIKIGNsYXNzPSdzcGlwX2JhcnJlJyB0YWJpbmRleD0nMTAwMCcgdGl0bGU9Ik1ldHRyZSBsZSB0ZXh0ZSBlbiAmbHQ7c2MmZ3Q7cGV0aXRlcyBjYXBpdGFsZXMmbHQ7L3NjJmd0OyI+PGltZyBzcmM9Jy4uL3BsdWdpbnMvZm9uY3Rpb25uYWxpdGVzL2JhcnJlX3R5cG9fZWNvbG9naXF1ZS9pbWdfcGFjay9pY29uZXNfYmFycmUvcGV0aXRlc2NhcGl0YWxlcy5wbmcnIGhlaWdodD0nMTYnIHdpZHRoPScxNicgYWx0PSJNZXR0cmUgbGUgdGV4dGUgZW4gJmx0O3NjJmd0O3BldGl0ZXMgY2FwaXRhbGVzJmx0Oy9zYyZndDsiIC8+PC9hPiZuYnNwOzwvdGQ+Cjx0ZD48YSBocmVmPSJqYXZhc2NyaXB0OnN3YXBfY291Y2hlKCcxMScsJycpOyIKIGNsYXNzPSdzcGlwX2JhcnJlJyB0YWJpbmRleD0nMTAwMCcgdGl0bGU9IlRyYW5zZm9ybWVyIGVuIFtsaWVuIGh5cGVydGV4dGUtPmh0dHA6Ly8uLi5dIj48aW1nIHNyYz0naW1nX3BhY2svaWNvbmVzX2JhcnJlL2xpZW4ucG5nJyBoZWlnaHQ9JzE2JyB3aWR0aD0nMTYnIGFsdD0iVHJhbnNmb3JtZXIgZW4gW2xpZW4gaHlwZXJ0ZXh0ZS0+aHR0cDovLy4uLl0iIC8+PC9hPiZuYnNwOzwvdGQ+Cjx0ZD48YSBocmVmPSJqYXZhc2NyaXB0OmJhcnJlX3JhY2NvdXJjaSgnJTVDbiU1Q24lM0NxdW90ZSUzRScsJyUzQy9xdW90ZSUzRSU1Q24lNUNuJyxkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaW5wdXQtMS10ZXh0ZV8xJykpIgogY2xhc3M9J3NwaXBfYmFycmUnIHRhYmluZGV4PScxMDAwJyB0aXRsZT0iQ2l0ZXIgdW4gbWVzc2FnZSI+PGltZyBzcmM9J2ltZ19wYWNrL2ljb25lc19iYXJyZS9xdW90ZS5wbmcnIGhlaWdodD0nMTYnIHdpZHRoPScxNicgYWx0PSJDaXRlciB1biBtZXNzYWdlIiAvPjwvYT48YSBocmVmPSJqYXZhc2NyaXB0OmJhcnJlX3JhY2NvdXJjaSgnWz8nLCddJyxkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaW5wdXQtMS10ZXh0ZV8xJykpIgogY2xhc3M9J3NwaXBfYmFycmUnIHRhYmluZGV4PScxMDAwJyB0aXRsZT0iRW50ciZlYWN1dGU7ZSBkdSBbP2dsb3NzYWlyZV0gKFdpa2lwZWRpYSkiPjxpbWcgc3JjPScuLi9wbHVnaW5zL2ZvbmN0aW9ubmFsaXRlcy9iYXJyZV90eXBvX2Vjb2xvZ2lxdWUvaW1nX3BhY2svaWNvbmVzX2JhcnJlL2JhcnJlLXdpa2kucG5nJyBoZWlnaHQ9JzE2JyB3aWR0aD0nMTYnIGFsdD0iRW50ciZlYWN1dGU7ZSBkdSBbP2dsb3NzYWlyZV0gKFdpa2lwZWRpYSkiIC8+PC9hPjxhIGhyZWY9ImphdmFzY3JpcHQ6c3dhcF9jb3VjaGUoJzEwJywnJyk7IgogY2xhc3M9J3NwaXBfYmFycmUnIHRhYmluZGV4PScxMDAwJyB0aXRsZT0iSW5zJmVhY3V0ZTtyZXIgdW4gdGFibGVhdSI+PGltZyBzcmM9Jy4uL3BsdWdpbnMvZm9uY3Rpb25uYWxpdGVzL2JhcnJlX3R5cG9fZWNvbG9naXF1ZS9pbWdfcGFjay9pY29uZXNfYmFycmUvYmFycmUtdGFibGVhdS5wbmcnIGhlaWdodD0nMTYnIHdpZHRoPScxNicgYWx0PSJJbnMmZWFjdXRlO3JlciB1biB0YWJsZWF1IiAvPjwvYT4mbmJzcDwvdGQ+Cjx0ZD48YSBocmVmPSJqYXZhc2NyaXB0OnN3YXBfY291Y2hlKCcxNCcsJycpOyIKIGNsYXNzPSdzcGlwX2JhcnJlJyB0YWJpbmRleD0nMTAwMCcgdGl0bGU9IkNoZXJjaGVyIFJlbXBsYWNlciI+PGltZyBzcmM9Jy4uL3BsdWdpbnMvZm9uY3Rpb25uYWxpdGVzL2JhcnJlX3R5cG9fZWNvbG9naXF1ZS9pbWdfcGFjay9pY29uZXNfYmFycmUvY2hlcmNoZXJfcmVtcGxhY2VyLnBuZycgaGVpZ2h0PScxNicgd2lkdGg9JzE2JyBhbHQ9IkNoZXJjaGVyIFJlbXBsYWNlciIgLz48L2E+PGEgaHJlZj0iamF2YXNjcmlwdDpzd2FwX2NvdWNoZSgnMTInLCcnKTsiCiBjbGFzcz0nc3BpcF9iYXJyZScgdGFiaW5kZXg9JzEwMDAnIHRpdGxlPSJHZXN0aW9uIGRlcyBhbmNyZXMiPjxpbWcgc3JjPScuLi9wbHVnaW5zL2ZvbmN0aW9ubmFsaXRlcy9iYXJyZV90eXBvX2Vjb2xvZ2lxdWUvaW1nX3BhY2svaWNvbmVzX2JhcnJlL2FuY3JlLnBuZycgaGVpZ2h0PScxNicgd2lkdGg9JzE2JyBhbHQ9Ikdlc3Rpb24gZGVzIGFuY3JlcyIgLz48L2E+Jm5ic3A7PC90ZD4KPHRkIHN0eWxlPSd0ZXh0LWFsaWduOmxlZnQ7JyB2YWxpZ249J21pZGRsZSc+PGEgaHJlZj0iamF2YXNjcmlwdDpzd2FwX2NvdWNoZSgnMTMnLCcnKTsiCiBjbGFzcz0nc3BpcF9iYXJyZScgdGFiaW5kZXg9JzEwMDAnIHRpdGxlPSJDYXJhY3QmZWdyYXZlO3JlcyBzcCZlYWN1dGU7Y2lhdXgiPjxpbWcgc3JjPScuLi9wbHVnaW5zL2ZvbmN0aW9ubmFsaXRlcy9iYXJyZV90eXBvX2Vjb2xvZ2lxdWUvaW1nX3BhY2svaWNvbmVzX2JhcnJlL2NsYXZpZXIucG5nJyBoZWlnaHQ9JzE2JyB3aWR0aD0nMTYnIGFsdD0iQ2FyYWN0JmVncmF2ZTtyZXMgc3AmZWFjdXRlO2NpYXV4IiAvPjwvYT4mbmJzcDs8L3RkPgo8dGQgc3R5bGU9J3RleHQtYWxpZ246cmlnaHQ7JyB2YWxpZ249J21pZGRsZSc+Jm5ic3A7Jm5ic3A7PGEgY2xhc3M9J2FpZGUnIGhyZWY9J2h0dHA6Ly9wcmVwcm9kLm5vdHJlLXZpbGxlLm5ldC9+c3RzZWIvZWNyaXJlLz9leGVjPWFpZGVfaW5kZXgmYW1wO2FpZGU9cmFjY291cmNpcyZhbXA7dmFyX2xhbmc9ZnInIHRhcmdldD0ic3BpcF9haWRlIiBvbmNsaWNrPSJqYXZhc2NyaXB0OndpbmRvdy5vcGVuKHRoaXMuaHJlZiwnc3BpcF9haWRlJywgJ3Njcm9sbGJhcnM9eWVzLCByZXNpemFibGU9eWVzLCB3aWR0aD03NDAsIGhlaWdodD01ODAnKTsgcmV0dXJuIGZhbHNlOyI+PGltZyBzcmM9J2ltZ19wYWNrL2FpZGUuZ2lmJwphbHQ9IkFJREUiIHRpdGxlPSJEZSBsJ2FpZGUgc3VyIGNldCAmZWFjdXRlO2wmZWFjdXRlO21lbnQiIHdpZHRoPSIxMiIgaGVpZ2h0PSIxMiIgYWxpZ249Im1pZGRsZSIgLz48L2E+Jm5ic3A7PC90ZD48L3RyPjwvdGFibGU+PGRpdiBpZD0nTGF5ZXIxMCcgc3R5bGU9J2Rpc3BsYXk6bm9uZTsnID48dGFibGUgY2xhc3M9InNwaXBfYmFycmUiIHN0eWxlPSJ3aWR0aDogYXV0bzsgcGFkZGluZzogMXB4IWltcG9ydGFudDsgYm9yZGVyLXRvcDogMHB4OyIgc3VtbWFyeT0iIj4NCjx0cj48dGQ+DQpOYiBjb2xvbm5lczogPGlucHV0IHR5cGU9InRleHQiIG5hbWU9ImJhcnJlX25iY29sb25lcyIgc3R5bGU9IndpZHRoOiAzMHB4OyIgdmFsdWU9IjIiIHNpemU9IjIiIG1heGxlbmd0aD0iMiIgICAvPjwvdGQ+PHRkPg0KTmIgbGlnbmVzOiA8aW5wdXQgdHlwZT0idGV4dCIgbmFtZT0iYmFycmVfbmJyYW5ncyIgc3R5bGU9IndpZHRoOiAzMHB4OyIgdmFsdWU9IjIiIHNpemU9IjIiIG1heGxlbmd0aD0iMiIgLz48L3RkPjx0ZD4NCjxpbnB1dCB0eXBlPSJjaGVja2JveCIgbmFtZT0iYmFycmVfZG9lbnRldGUiIHZhbHVlPSItMSIgY2hlY2tlZD0iY2hlY2tlZCIgLz4gRW50ZXRlPC90ZD48dGQ+DQo8aW5wdXQgdHlwZT0iY2hlY2tib3giIG5hbWU9ImJhcnJlX2RvY2FwdGlvbiIgdmFsdWU9Ii0xIiBjaGVja2VkPSJjaGVja2VkIiAvPiBDYXB0aW9uIGV0IFImZWFjdXRlO3N1bSZlYWN1dGU7PC90ZD48dGQ+DQogIDxpbnB1dCB0eXBlPSJidXR0b24iIHZhbHVlPSJPSyIgY2xhc3M9ImZvbmRvIiBvbmNsaWNrPSJqYXZhc2NyaXB0Og0KICAgIGJhcnJlX25iY29sb25lcy52YWx1ZSA9IE1hdGguYWJzKGJhcnJlX25iY29sb25lcy52YWx1ZSk7IGJhcnJlX25icmFuZ3MudmFsdWUNCiAgICA9IE1hdGguYWJzKGJhcnJlX25icmFuZ3MudmFsdWUpOw0KICAgIGlmICghKGJhcnJlX25iY29sb25lcy52YWx1ZSA9PSAwIHx8IGJhcnJlX25icmFuZ3MudmFsdWUgPT0gMCkpIHsNCiAgICBiYXJyZV90YWJsZWF1KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdpbnB1dC0xLXRleHRlXzEnKSwgYmFycmVfbmJjb2xvbmVzLnZhbHVlLCBiYXJyZV9uYnJhbmdzLnZhbHVlLA0KICAgIGJhcnJlX2RvZW50ZXRlLmNoZWNrZWQsIGJhcnJlX2RvY2FwdGlvbi5jaGVja2VkKTsgfSAiIC8+IA0KPC90ZD48L3RyPjwvdGFibGU+DQo8ZGl2IHN0eWxlPSdjbGVhcjogYm90aDsnPjwvZGl2PjwvZGl2PjxkaXYgaWQ9J0xheWVyMTEnIHN0eWxlPSdkaXNwbGF5Om5vbmU7JyA+DQogPHRhYmxlIGNsYXNzPSJzcGlwX2JhcnJlIiBzdHlsZT0id2lkdGg6IGF1dG87IHBhZGRpbmc6IDFweCFpbXBvcnRhbnQ7IGJvcmRlci10b3A6IDBweDsiIHN1bW1hcnk9IiI+DQo8dHI+PHRkPiANCkFkcmVzc2UmbmJzcDs6IDxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJsaWVuX25vbSIgdmFsdWU9Imh0dHA6Ly8iIHNpemU9IjIxIiBtYXhsZW5ndGg9IjI1NSIgLz48YnIgLz4NCkJ1bGxlIGQnYWlkZSZuYnNwOzogPGlucHV0IHR5cGU9InRleHQiIG5hbWU9ImxpZW5fYnVsbGUiIHZhbHVlPSIiIHNpemU9IjIxIiBtYXhsZW5ndGg9IjI1NSIgLz4NCjwvdGQ+PHRkPg0KTGFuZ3VlIGFiciZlYWN1dGU7ZyZlYWN1dGU7ZSZuYnNwOzogPGlucHV0IHR5cGU9InRleHQiIG5hbWU9ImxpZW5fbGFuZ3VlIiB2YWx1ZT0iIiBzaXplPSIxMCIgbWF4bGVuZ3RoPSIxMCIgLz4NCjwvdGQ+PHRkPg0KICA8aW5wdXQgdHlwZT0iYnV0dG9uIiB2YWx1ZT0iT0siIGNsYXNzPSJmb25kbyIgb25jbGljaz0iamF2YXNjcmlwdDpiYXJyZV9kZW1hbmRlX2xpZW4oJ1snLCAnLT4nLCAnXScsIGxpZW5fbm9tLnZhbHVlLCBsaWVuX2J1bGxlLnZhbHVlLCBsaWVuX2xhbmd1ZS52YWx1ZSxkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaW5wdXQtMS10ZXh0ZV8xJykpOyIgLz4gDQo8L3RkPjwvdHI+PC90YWJsZT4NCjxkaXYgc3R5bGU9J2NsZWFyOiBib3RoOyc+PC9kaXY+PC9kaXY+PGRpdiBpZD0nTGF5ZXIxMicgc3R5bGU9J2Rpc3BsYXk6bm9uZTsnID4NCjx0YWJsZSBjbGFzcz0ic3BpcF9iYXJyZSIgc3R5bGU9IndpZHRoOiBhdXRvOyBwYWRkaW5nOiAxcHghaW1wb3J0YW50OyBib3JkZXItdG9wOiAwcHg7IiBzdW1tYXJ5PSIiPg0KICA8dHI+DQogICAgPHRkIHN0eWxlPSJ3aWR0aDphdXRvOyB0ZXh0LWFsaWduOmNlbnRlcjsiPjxzdHJvbmc+R2VzdGlvbiBkZXMgYW5jcmVzPC9zdHJvbmc+PC90ZD4NCiAgICA8dGQgc3R5bGU9IndpZHRoOmF1dG87Ij48c3Ryb25nPlRyYW5zZm9ybWVyIGVuIGFuY3JlPC9zdHJvbmc+PGJyIC8+DQogICAgPGxhYmVsIGZvcj0iYW5jcmVfbm9tIj48aT5Ob20gZGUgbCdhbmNyZTwvaT48L2xhYmVsPiA8YnIgLz4NCiAgICAgIDxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJhbmNyZV9ub20iIGlkPSJhbmNyZV9ub20iIC8+DQoJICANCgk8aW5wdXQgdHlwZT0iYnV0dG9uIiB2YWx1ZT0iT0siIGNsYXNzPSJmb25kbyIgb25jbGljaz0iamF2YXNjcmlwdDpiYXJyZV9hbmNyZSgnWycsICc8LScsICddJywgYW5jcmVfbm9tLnZhbHVlLCBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaW5wdXQtMS10ZXh0ZV8xJykpOyIgLz4NCiAgICA8L3RkPg0KCTx0ZCBzdHlsZT0id2lkdGg6YXV0bzsiPjxzdHJvbmc+UG9pbnRlciB2ZXJzIHVuZSBhbmNyZTwvc3Ryb25nPjxiciAvPg0KICAgIDxsYWJlbCBmb3I9ImFuY3JlX2NpYmxlIj48aT5BbmNyZSBjaWJsZTwvaT48L2xhYmVsPiA8aW5wdXQgdHlwZT0idGV4dCIgbmFtZT0iYW5jcmVfY2libGUiIGlkPSJhbmNyZV9jaWJsZSIgLz48YnIgLz4NCgk8bGFiZWwgZm9yPSJhbmNyZV9idWxsZSI+PGk+QnVsbGUgZCdhaWRlIGFuY3JlPC9pPjwvbGFiZWw+IDxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJhbmNyZV9idWxsZSIgaWQ9ImFuY3JlX2J1bGxlIiAvPg0KCTxpbnB1dCB0eXBlPSJidXR0b24iIHZhbHVlPSJPSyIgY2xhc3M9ImZvbmRvIiBvbmNsaWNrPSJqYXZhc2NyaXB0OmJhcnJlX2RlbWFuZGUoJ1snLCAnLT4jJywgJ10nLCBhbmNyZV9jaWJsZS52YWx1ZSwgYW5jcmVfYnVsbGUudmFsdWUsIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdpbnB1dC0xLXRleHRlXzEnKSk7IiAvPiANCjwvdGQ+DQogIDwvdHI+IA0KPC90YWJsZT48ZGl2IHN0eWxlPSdjbGVhcjogYm90aDsnPjwvZGl2PjwvZGl2PjxkaXYgaWQ9J0xheWVyMTMnIHN0eWxlPSdkaXNwbGF5Om5vbmU7JyA+DQo8dGFibGUgY2xhc3M9InNwaXBfYmFycmUiIHN0eWxlPSJ3aWR0aDogYXV0bzsgcGFkZGluZzogMXB4IWltcG9ydGFudDsgYm9yZGVyLXRvcDogMHB4OyIgc3VtbWFyeT0iIj4NCiAgPHRyIGNsYXNzPSJzcGlwX2JhcnJlIj4NCiAgICA8dGQgc3R5bGU9IndpZHRoOjMwJTsiPkNhcmFjdCZlZ3JhdmU7cmVzIHNwJmVhY3V0ZTtjaWF1eDwvdGQ+DQogICAgPHRkPjxhIGhyZWY9ImphdmFzY3JpcHQ6YmFycmVfcmFjY291cmNpKCdcdTAwYWJ+Jywnflx1MDBiYicsZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2lucHV0LTEtdGV4dGVfMScpKSIKIGNsYXNzPSdzcGlwX2JhcnJlJyB0YWJpbmRleD0nMTAwMCcgdGl0bGU9IkVudG91cmVyIGRlICZsYXF1bzsgZ3VpbGxlbWV0cyAmcmFxdW87Ij48aW1nIHNyYz0naW1nX3BhY2svaWNvbmVzX2JhcnJlL2d1aWxsZW1ldHMucG5nJyBoZWlnaHQ9JzE2JyB3aWR0aD0nMTYnIGFsdD0iRW50b3VyZXIgZGUgJmxhcXVvOyBndWlsbGVtZXRzICZyYXF1bzsiIC8+PC9hPjxhIGhyZWY9ImphdmFzY3JpcHQ6YmFycmVfcmFjY291cmNpKCdcdTAwOTMnLCdcdTAwOTQnLGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdpbnB1dC0xLXRleHRlXzEnKSkiCiBjbGFzcz0nc3BpcF9iYXJyZScgdGFiaW5kZXg9JzEwMDAnIHRpdGxlPSJFbnRvdXJlciBkZSAmbGRxdW87Z3VpbGxlbWV0cyBkZSBzZWNvbmQgbml2ZWF1JnJkcXVvOyI+PGltZyBzcmM9J2ltZ19wYWNrL2ljb25lc19iYXJyZS9ndWlsbGVtZXRzLXNpbXBsZXMucG5nJyBoZWlnaHQ9JzE2JyB3aWR0aD0nMTYnIGFsdD0iRW50b3VyZXIgZGUgJmxkcXVvO2d1aWxsZW1ldHMgZGUgc2Vjb25kIG5pdmVhdSZyZHF1bzsiIC8+PC9hPjxhIGhyZWY9ImphdmFzY3JpcHQ6YmFycmVfaW5zZXJlcignXHUwMGMwJyxkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaW5wdXQtMS10ZXh0ZV8xJykpIgogY2xhc3M9J3NwaXBfYmFycmUnIHRhYmluZGV4PScxMDAwJyB0aXRsZT0iSW5zJmVhY3V0ZTtyZXIgdW4gQSBhY2NlbnQgZ3JhdmUgbWFqdXNjdWxlIj48aW1nIHNyYz0naW1nX3BhY2svaWNvbmVzX2JhcnJlL2FncmF2ZS1tYWoucG5nJyBoZWlnaHQ9JzE2JyB3aWR0aD0nMTYnIGFsdD0iSW5zJmVhY3V0ZTtyZXIgdW4gQSBhY2NlbnQgZ3JhdmUgbWFqdXNjdWxlIiAvPjwvYT48YSBocmVmPSJqYXZhc2NyaXB0OmJhcnJlX2luc2VyZXIoJ1x1MDBjOScsZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2lucHV0LTEtdGV4dGVfMScpKSIKIGNsYXNzPSdzcGlwX2JhcnJlJyB0YWJpbmRleD0nMTAwMCcgdGl0bGU9IklucyZlYWN1dGU7cmVyIHVuIEUgYWNjZW50IGFpZ3UgbWFqdXNjdWxlIj48aW1nIHNyYz0naW1nX3BhY2svaWNvbmVzX2JhcnJlL2VhY3V0ZS1tYWoucG5nJyBoZWlnaHQ9JzE2JyB3aWR0aD0nMTYnIGFsdD0iSW5zJmVhY3V0ZTtyZXIgdW4gRSBhY2NlbnQgYWlndSBtYWp1c2N1bGUiIC8+PC9hPjxhIGhyZWY9ImphdmFzY3JpcHQ6YmFycmVfaW5zZXJlcignXHUwMGM4Jyxkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaW5wdXQtMS10ZXh0ZV8xJykpIgogY2xhc3M9J3NwaXBfYmFycmUnIHRhYmluZGV4PScxMDAwJyB0aXRsZT0iSW5zJmVhY3V0ZTtyZXIgdW4gRSBtYWp1c2N1bGUgYWNjZW50IGdyYXZlIj48aW1nIHNyYz0nLi4vcGx1Z2lucy9mb25jdGlvbm5hbGl0ZXMvYmFycmVfdHlwb19lY29sb2dpcXVlL2ltZ19wYWNrL2ljb25lc19iYXJyZS9lYWdyYXZlLW1hai5wbmcnIGhlaWdodD0nMTYnIHdpZHRoPScxNicgYWx0PSJJbnMmZWFjdXRlO3JlciB1biBFIG1hanVzY3VsZSBhY2NlbnQgZ3JhdmUiIC8+PC9hPjxhIGhyZWY9ImphdmFzY3JpcHQ6YmFycmVfaW5zZXJlcignXHUwMGU2Jyxkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaW5wdXQtMS10ZXh0ZV8xJykpIgogY2xhc3M9J3NwaXBfYmFycmUnIHRhYmluZGV4PScxMDAwJyB0aXRsZT0iSW5zJmVhY3V0ZTtyZXIgdW4gRSBkYW5zIGwnQSI+PGltZyBzcmM9Jy4uL3BsdWdpbnMvZm9uY3Rpb25uYWxpdGVzL2JhcnJlX3R5cG9fZWNvbG9naXF1ZS9pbWdfcGFjay9pY29uZXNfYmFycmUvYWVsaWcucG5nJyBoZWlnaHQ9JzE2JyB3aWR0aD0nMTYnIGFsdD0iSW5zJmVhY3V0ZTtyZXIgdW4gRSBkYW5zIGwnQSIgLz48L2E+PGEgaHJlZj0iamF2YXNjcmlwdDpiYXJyZV9pbnNlcmVyKCdcdTAwYzYnLGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdpbnB1dC0xLXRleHRlXzEnKSkiCiBjbGFzcz0nc3BpcF9iYXJyZScgdGFiaW5kZXg9JzEwMDAnIHRpdGxlPSJJbnMmZWFjdXRlO3JlciB1biBFIGRhbnMgbCdBIG1hanVzY3VsZSI+PGltZyBzcmM9Jy4uL3BsdWdpbnMvZm9uY3Rpb25uYWxpdGVzL2JhcnJlX3R5cG9fZWNvbG9naXF1ZS9pbWdfcGFjay9pY29uZXNfYmFycmUvYWVsaWctbWFqLnBuZycgaGVpZ2h0PScxNicgd2lkdGg9JzE2JyBhbHQ9IklucyZlYWN1dGU7cmVyIHVuIEUgZGFucyBsJ0EgbWFqdXNjdWxlIiAvPjwvYT48YSBocmVmPSJqYXZhc2NyaXB0OmJhcnJlX2luc2VyZXIoJyZvZWxpZzsnLGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdpbnB1dC0xLXRleHRlXzEnKSkiCiBjbGFzcz0nc3BpcF9iYXJyZScgdGFiaW5kZXg9JzEwMDAnIHRpdGxlPSJJbnMmZWFjdXRlO3JlciB1biBFIGRhbnMgbCdPIj48aW1nIHNyYz0naW1nX3BhY2svaWNvbmVzX2JhcnJlL29lbGlnLnBuZycgaGVpZ2h0PScxNicgd2lkdGg9JzE2JyBhbHQ9IklucyZlYWN1dGU7cmVyIHVuIEUgZGFucyBsJ08iIC8+PC9hPjxhIGhyZWY9ImphdmFzY3JpcHQ6YmFycmVfaW5zZXJlcignJk9FbGlnOycsZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2lucHV0LTEtdGV4dGVfMScpKSIKIGNsYXNzPSdzcGlwX2JhcnJlJyB0YWJpbmRleD0nMTAwMCcgdGl0bGU9IklucyZlYWN1dGU7cmVyIHVuIEUgZGFucyBsJ08gbWFqdXNjdWxlIj48aW1nIHNyYz0naW1nX3BhY2svaWNvbmVzX2JhcnJlL29lbGlnLW1hai5wbmcnIGhlaWdodD0nMTYnIHdpZHRoPScxNicgYWx0PSJJbnMmZWFjdXRlO3JlciB1biBFIGRhbnMgbCdPIG1hanVzY3VsZSIgLz48L2E+PGEgaHJlZj0iamF2YXNjcmlwdDpiYXJyZV9pbnNlcmVyKCdcdTAwYzcnLGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdpbnB1dC0xLXRleHRlXzEnKSkiCiBjbGFzcz0nc3BpcF9iYXJyZScgdGFiaW5kZXg9JzEwMDAnIHRpdGxlPSJJbnMmZWFjdXRlO3JlciB1biBDIGMmZWFjdXRlO2RpbGxlIG1hanVzY3VsZSI+PGltZyBzcmM9Jy4uL3BsdWdpbnMvZm9uY3Rpb25uYWxpdGVzL2JhcnJlX3R5cG9fZWNvbG9naXF1ZS9pbWdfcGFjay9pY29uZXNfYmFycmUvY2NlZGlsLW1hai5wbmcnIGhlaWdodD0nMTYnIHdpZHRoPScxNicgYWx0PSJJbnMmZWFjdXRlO3JlciB1biBDIGMmZWFjdXRlO2RpbGxlIG1hanVzY3VsZSIgLz48L2E+PGEgaHJlZj0iamF2YXNjcmlwdDpiYXJyZV9pbnNlcmVyKCcmZXVybzsnLGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdpbnB1dC0xLXRleHRlXzEnKSkiCiBjbGFzcz0nc3BpcF9iYXJyZScgdGFiaW5kZXg9JzEwMDAnIHRpdGxlPSJJbnMmZWFjdXRlO3JlciBsZSBzeW1ib2xlICZldXJvOyI+PGltZyBzcmM9J2ltZ19wYWNrL2ljb25lc19iYXJyZS9ldXJvLnBuZycgaGVpZ2h0PScxNicgd2lkdGg9JzE2JyBhbHQ9IklucyZlYWN1dGU7cmVyIGxlIHN5bWJvbGUgJmV1cm87IiAvPjwvYT4mbmJzcDsNCiAgICA8L3RkPg0KICA8L3RyPiANCjwvdGFibGU+DQo8ZGl2IHN0eWxlPSdjbGVhcjogYm90aDsnPjwvZGl2PjwvZGl2PjxkaXYgaWQ9J0xheWVyMTQnIHN0eWxlPSdkaXNwbGF5Om5vbmU7JyA+DQo8dGFibGUgY2xhc3M9InNwaXBfYmFycmUiIHN0eWxlPSJ3aWR0aDogYXV0bzsgcGFkZGluZzogMXB4IWltcG9ydGFudDsgYm9yZGVyLXRvcDogMHB4OyIgc3VtbWFyeT0iIj4NCjx0cj48dGQgc3R5bGU9IndpZHRoOiAyNSU7Ij5DaGVyY2hlcjxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJiYXJyZV9jaGVyY2hlciIgdmFsdWU9IiIgc2l6ZT0iMTIiIG1heGxlbmd0aD0iMjU1IiAvPjwvdGQ+PHRkIHN0eWxlPSJ3aWR0aDogMjAlOyI+DQo8aW5wdXQgdHlwZT0iY2hlY2tib3giIG5hbWU9InJlY19jYXNlIiB2YWx1ZT0ieWVzIiAvPlJlc3BlY3RlciBsYSBjYXNzZTxiciAvPjxpbnB1dCB0eXBlPSJjaGVja2JveCIgbmFtZT0icmVjX2VudGllciIgdmFsdWU9InllcyIgLz4NCk1vdCBlbnRpZXINCjwvdGQ+PHRkICBzdHlsZT0id2lkdGg6IDI1JTsiPlJlbXBsYWNlcjxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJiYXJyZV9yZW1wbGFjZXIiIHZhbHVlPSIiIHNpemU9IjEyIiBtYXhsZW5ndGg9IjI1NSIgLz4gDQo8L3RkPjx0ZCBzdHlsZT0id2lkdGg6IDIwJTsiPg0KPGlucHV0IHR5cGU9ImNoZWNrYm94IiBuYW1lPSJyZWNfdG91dCIgdmFsdWU9InllcyIgLz5Ub3V0IHJlbXBsYWNlcjwvdGQ+PHRkIHN0eWxlPSJ3aWR0aDogMTAlOyI+DQogICA8aW5wdXQgdHlwZT0iYnV0dG9uIiB2YWx1ZT0iT0siIGNsYXNzPSJmb25kbyINCiAgb25jbGljaz0iamF2YXNjcmlwdDpiYXJyZV9zZWFyY2hyZXBsYWNlKGRvY3VtZW50LmZvcm11bGFpcmUuYmFycmVfY2hlcmNoZXIudmFsdWUsIGRvY3VtZW50LmZvcm11bGFpcmUuYmFycmVfcmVtcGxhY2VyLnZhbHVlLCBkb2N1bWVudC5mb3JtdWxhaXJlLnJlY190b3V0LmNoZWNrZWQsIGRvY3VtZW50LmZvcm11bGFpcmUucmVjX2Nhc2UuY2hlY2tlZCwgZG9jdW1lbnQuZm9ybXVsYWlyZS5yZWNfZW50aWVyLmNoZWNrZWQsZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2lucHV0LTEtdGV4dGVfMScpKTsiIC8+IA0KPC90ZD48L3RyPjwvdGFibGU+PGRpdiBzdHlsZT0nY2xlYXI6IGJvdGg7Jz48L2Rpdj48L2Rpdj4KCTx0ZXh0YXJlYSBuYW1lPSd0ZXh0ZV8xJyByb3dzPScxMCcgY2xhc3M9J2Zvcm1vICAgJyBjb2xzPSc4MCcKCWlkPSdpbnB1dC0xLXRleHRlXzEnCglvbnNlbGVjdD0nc3RvcmVDYXJldCh0aGlzKTsnCglvbmNsaWNrPSdzdG9yZUNhcmV0KHRoaXMpOycKCW9ua2V5dXA9J3N0b3JlQ2FyZXQodGhpcyk7JwoJb25kYmxjbGljaz0nc3RvcmVDYXJldCh0aGlzKTsnPjwvdGV4dGFyZWE+CgkJCQkKCQkJCQoJCQkJCgkJCQkKCQkJCQoJCQkJCgkJCQkKCQkJCQoJCQkJCgkJCQk8c3BhbiBjbGFzcz0nbmV0dG95ZXVyJz4gPC9zcGFuPgoJCQkKCQk8L2Rpdj4KCQoKCgogCgkgCgkJCgkJCgkKCSAKCQk8ZGl2IGNsYXNzPSdzcGlwX2Zvcm1fY2hhbXAgdGV4dGVfMic+CgkJCQoJCQkgCgkJCQk8c3BhbiBjbGFzcz0nc3BpcF9mb3JtX2xhYmVsJz4KCQkJCQkgPGxhYmVsIGZvcj0iaW5wdXQtMS10ZXh0ZV8yIj5Wb3RyZSBRdWVzdGlvbjwvbGFiZWw+CgkJCQkJCgkJCQkJPHNwYW4gY2xhc3M9J3NwaXBfZm9ybV9sYWJlbF9vYmxpZ2F0b2lyZSc+CgkJCQkJCVtPYmxpZ2F0b2lyZV08L3NwYW4+CgkJCQkJOgoJCQkJPC9zcGFuPgoJCQkJCgkJCQkKCQkJCQoJCQkJCgkJCQkgIDx0YWJsZSBjbGFzcz0nc3BpcF9iYXJyZScgc3R5bGU9J3dpZHRoOmF1dG87JyBjZWxscGFkZGluZz0nMCcgY2VsbHNwYWNpbmc9JzAnIGJvcmRlcj0nMCcgc3VtbWFyeT0nJz4KPHRyIHN0eWxlPSd3aWR0aDogYXV0bzsnIGNsYXNzPSdzcGlwX2JhcnJlJz4KPHRkIHN0eWxlPSd0ZXh0LWFsaWduOiBsZWZ0OycgdmFsaWduPSdtaWRkbGUnPjxhIGhyZWY9ImphdmFzY3JpcHQ6YmFycmVfcmFjY291cmNpKCd7JywnfScsZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2lucHV0LTEtdGV4dGVfMicpKSIKIGNsYXNzPSdzcGlwX2JhcnJlJyB0YWJpbmRleD0nMTAwMCcgdGl0bGU9Ik1ldHRyZSBlbiB7aXRhbGlxdWV9Ij48aW1nIHNyYz0naW1nX3BhY2svaWNvbmVzX2JhcnJlL2l0YWxpcXVlLnBuZycgaGVpZ2h0PScxNicgd2lkdGg9JzE2JyBhbHQ9Ik1ldHRyZSBlbiB7aXRhbGlxdWV9IiAvPjwvYT48YSBocmVmPSJqYXZhc2NyaXB0OmJhcnJlX3JhY2NvdXJjaSgne3snLCd9fScsZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2lucHV0LTEtdGV4dGVfMicpKSIKIGNsYXNzPSdzcGlwX2JhcnJlJyB0YWJpbmRleD0nMTAwMCcgdGl0bGU9Ik1ldHRyZSBlbiB7e2dyYXN9fSI+PGltZyBzcmM9J2ltZ19wYWNrL2ljb25lc19iYXJyZS9ncmFzLnBuZycgaGVpZ2h0PScxNicgd2lkdGg9JzE2JyBhbHQ9Ik1ldHRyZSBlbiB7e2dyYXN9fSIgLz48L2E+PGEgaHJlZj0iamF2YXNjcmlwdDpiYXJyZV9yYWNjb3VyY2koJ1sqJywnKl0nLGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdpbnB1dC0xLXRleHRlXzInKSkiCiBjbGFzcz0nc3BpcF9iYXJyZScgdGFiaW5kZXg9JzEwMDAnIHRpdGxlPSJNZXR0cmUgbGUgdGV4dGUgZW4gWyomZWFjdXRlO3ZpZGVuY2UqXSI+PGltZyBzcmM9Jy4uL3BsdWdpbnMvZm9uY3Rpb25uYWxpdGVzL2JhcnJlX3R5cG9fZWNvbG9naXF1ZS9pbWdfcGFjay9pY29uZXNfYmFycmUvbWlzZWVuZXZpZGVuY2UucG5nJyBoZWlnaHQ9JzE2JyB3aWR0aD0nMTYnIGFsdD0iTWV0dHJlIGxlIHRleHRlIGVuIFsqJmVhY3V0ZTt2aWRlbmNlKl0iIC8+PC9hPjxhIGhyZWY9ImphdmFzY3JpcHQ6YmFycmVfcmFjY291cmNpKCclM0NzdXAlM0UnLCclM0Mvc3VwJTNFJyxkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaW5wdXQtMS10ZXh0ZV8yJykpIgogY2xhc3M9J3NwaXBfYmFycmUnIHRhYmluZGV4PScxMDAwJyB0aXRsZT0iTWV0dHJlIGxlIHRleHRlIGVuICZsdDtzdXAmZ3Q7ZXhwb3NhbnQmbHQ7L3N1cCZndDsiPjxpbWcgc3JjPScuLi9wbHVnaW5zL2ZvbmN0aW9ubmFsaXRlcy9iYXJyZV90eXBvX2Vjb2xvZ2lxdWUvaW1nX3BhY2svaWNvbmVzX2JhcnJlL2V4cG9zYW50LnBuZycgaGVpZ2h0PScxNicgd2lkdGg9JzE2JyBhbHQ9Ik1ldHRyZSBsZSB0ZXh0ZSBlbiAmbHQ7c3VwJmd0O2V4cG9zYW50Jmx0Oy9zdXAmZ3Q7IiAvPjwvYT48YSBocmVmPSJqYXZhc2NyaXB0OmJhcnJlX3JhY2NvdXJjaSgnJTNDc2MlM0UnLCclM0Mvc2MlM0UnLGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdpbnB1dC0xLXRleHRlXzInKSkiCiBjbGFzcz0nc3BpcF9iYXJyZScgdGFiaW5kZXg9JzEwMDAnIHRpdGxlPSJNZXR0cmUgbGUgdGV4dGUgZW4gJmx0O3NjJmd0O3BldGl0ZXMgY2FwaXRhbGVzJmx0Oy9zYyZndDsiPjxpbWcgc3JjPScuLi9wbHVnaW5zL2ZvbmN0aW9ubmFsaXRlcy9iYXJyZV90eXBvX2Vjb2xvZ2lxdWUvaW1nX3BhY2svaWNvbmVzX2JhcnJlL3BldGl0ZXNjYXBpdGFsZXMucG5nJyBoZWlnaHQ9JzE2JyB3aWR0aD0nMTYnIGFsdD0iTWV0dHJlIGxlIHRleHRlIGVuICZsdDtzYyZndDtwZXRpdGVzIGNhcGl0YWxlcyZsdDsvc2MmZ3Q7IiAvPjwvYT4mbmJzcDs8L3RkPgo8dGQ+PGEgaHJlZj0iamF2YXNjcmlwdDpzd2FwX2NvdWNoZSgnMTYnLCcnKTsiCiBjbGFzcz0nc3BpcF9iYXJyZScgdGFiaW5kZXg9JzEwMDAnIHRpdGxlPSJUcmFuc2Zvcm1lciBlbiBbbGllbiBoeXBlcnRleHRlLT5odHRwOi8vLi4uXSI+PGltZyBzcmM9J2ltZ19wYWNrL2ljb25lc19iYXJyZS9saWVuLnBuZycgaGVpZ2h0PScxNicgd2lkdGg9JzE2JyBhbHQ9IlRyYW5zZm9ybWVyIGVuIFtsaWVuIGh5cGVydGV4dGUtPmh0dHA6Ly8uLi5dIiAvPjwvYT4mbmJzcDs8L3RkPgo8dGQ+PGEgaHJlZj0iamF2YXNjcmlwdDpiYXJyZV9yYWNjb3VyY2koJyU1Q24lNUNuJTNDcXVvdGUlM0UnLCclM0MvcXVvdGUlM0UlNUNuJTVDbicsZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2lucHV0LTEtdGV4dGVfMicpKSIKIGNsYXNzPSdzcGlwX2JhcnJlJyB0YWJpbmRleD0nMTAwMCcgdGl0bGU9IkNpdGVyIHVuIG1lc3NhZ2UiPjxpbWcgc3JjPSdpbWdfcGFjay9pY29uZXNfYmFycmUvcXVvdGUucG5nJyBoZWlnaHQ9JzE2JyB3aWR0aD0nMTYnIGFsdD0iQ2l0ZXIgdW4gbWVzc2FnZSIgLz48L2E+PGEgaHJlZj0iamF2YXNjcmlwdDpiYXJyZV9yYWNjb3VyY2koJ1s/JywnXScsZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2lucHV0LTEtdGV4dGVfMicpKSIKIGNsYXNzPSdzcGlwX2JhcnJlJyB0YWJpbmRleD0nMTAwMCcgdGl0bGU9IkVudHImZWFjdXRlO2UgZHUgWz9nbG9zc2FpcmVdIChXaWtpcGVkaWEpIj48aW1nIHNyYz0nLi4vcGx1Z2lucy9mb25jdGlvbm5hbGl0ZXMvYmFycmVfdHlwb19lY29sb2dpcXVlL2ltZ19wYWNrL2ljb25lc19iYXJyZS9iYXJyZS13aWtpLnBuZycgaGVpZ2h0PScxNicgd2lkdGg9JzE2JyBhbHQ9IkVudHImZWFjdXRlO2UgZHUgWz9nbG9zc2FpcmVdIChXaWtpcGVkaWEpIiAvPjwvYT48YSBocmVmPSJqYXZhc2NyaXB0OnN3YXBfY291Y2hlKCcxNScsJycpOyIKIGNsYXNzPSdzcGlwX2JhcnJlJyB0YWJpbmRleD0nMTAwMCcgdGl0bGU9IklucyZlYWN1dGU7cmVyIHVuIHRhYmxlYXUiPjxpbWcgc3JjPScuLi9wbHVnaW5zL2ZvbmN0aW9ubmFsaXRlcy9iYXJyZV90eXBvX2Vjb2xvZ2lxdWUvaW1nX3BhY2svaWNvbmVzX2JhcnJlL2JhcnJlLXRhYmxlYXUucG5nJyBoZWlnaHQ9JzE2JyB3aWR0aD0nMTYnIGFsdD0iSW5zJmVhY3V0ZTtyZXIgdW4gdGFibGVhdSIgLz48L2E+Jm5ic3A8L3RkPgo8dGQ+PGEgaHJlZj0iamF2YXNjcmlwdDpzd2FwX2NvdWNoZSgnMTknLCcnKTsiCiBjbGFzcz0nc3BpcF9iYXJyZScgdGFiaW5kZXg9JzEwMDAnIHRpdGxlPSJDaGVyY2hlciBSZW1wbGFjZXIiPjxpbWcgc3JjPScuLi9wbHVnaW5zL2ZvbmN0aW9ubmFsaXRlcy9iYXJyZV90eXBvX2Vjb2xvZ2lxdWUvaW1nX3BhY2svaWNvbmVzX2JhcnJlL2NoZXJjaGVyX3JlbXBsYWNlci5wbmcnIGhlaWdodD0nMTYnIHdpZHRoPScxNicgYWx0PSJDaGVyY2hlciBSZW1wbGFjZXIiIC8+PC9hPjxhIGhyZWY9ImphdmFzY3JpcHQ6c3dhcF9jb3VjaGUoJzE3JywnJyk7IgogY2xhc3M9J3NwaXBfYmFycmUnIHRhYmluZGV4PScxMDAwJyB0aXRsZT0iR2VzdGlvbiBkZXMgYW5jcmVzIj48aW1nIHNyYz0nLi4vcGx1Z2lucy9mb25jdGlvbm5hbGl0ZXMvYmFycmVfdHlwb19lY29sb2dpcXVlL2ltZ19wYWNrL2ljb25lc19iYXJyZS9hbmNyZS5wbmcnIGhlaWdodD0nMTYnIHdpZHRoPScxNicgYWx0PSJHZXN0aW9uIGRlcyBhbmNyZXMiIC8+PC9hPiZuYnNwOzwvdGQ+Cjx0ZCBzdHlsZT0ndGV4dC1hbGlnbjpsZWZ0OycgdmFsaWduPSdtaWRkbGUnPjxhIGhyZWY9ImphdmFzY3JpcHQ6c3dhcF9jb3VjaGUoJzE4JywnJyk7IgogY2xhc3M9J3NwaXBfYmFycmUnIHRhYmluZGV4PScxMDAwJyB0aXRsZT0iQ2FyYWN0JmVncmF2ZTtyZXMgc3AmZWFjdXRlO2NpYXV4Ij48aW1nIHNyYz0nLi4vcGx1Z2lucy9mb25jdGlvbm5hbGl0ZXMvYmFycmVfdHlwb19lY29sb2dpcXVlL2ltZ19wYWNrL2ljb25lc19iYXJyZS9jbGF2aWVyLnBuZycgaGVpZ2h0PScxNicgd2lkdGg9JzE2JyBhbHQ9IkNhcmFjdCZlZ3JhdmU7cmVzIHNwJmVhY3V0ZTtjaWF1eCIgLz48L2E+Jm5ic3A7PC90ZD4KPHRkIHN0eWxlPSd0ZXh0LWFsaWduOnJpZ2h0OycgdmFsaWduPSdtaWRkbGUnPiZuYnNwOyZuYnNwOzxhIGNsYXNzPSdhaWRlJyBocmVmPSdodHRwOi8vcHJlcHJvZC5ub3RyZS12aWxsZS5uZXQvfnN0c2ViL2VjcmlyZS8/ZXhlYz1haWRlX2luZGV4JmFtcDthaWRlPXJhY2NvdXJjaXMmYW1wO3Zhcl9sYW5nPWZyJyB0YXJnZXQ9InNwaXBfYWlkZSIgb25jbGljaz0iamF2YXNjcmlwdDp3aW5kb3cub3Blbih0aGlzLmhyZWYsJ3NwaXBfYWlkZScsICdzY3JvbGxiYXJzPXllcywgcmVzaXphYmxlPXllcywgd2lkdGg9NzQwLCBoZWlnaHQ9NTgwJyk7IHJldHVybiBmYWxzZTsiPjxpbWcgc3JjPSdpbWdfcGFjay9haWRlLmdpZicKYWx0PSJBSURFIiB0aXRsZT0iRGUgbCdhaWRlIHN1ciBjZXQgJmVhY3V0ZTtsJmVhY3V0ZTttZW50IiB3aWR0aD0iMTIiIGhlaWdodD0iMTIiIGFsaWduPSJtaWRkbGUiIC8+PC9hPiZuYnNwOzwvdGQ+PC90cj48L3RhYmxlPjxkaXYgaWQ9J0xheWVyMTUnIHN0eWxlPSdkaXNwbGF5Om5vbmU7JyA+PHRhYmxlIGNsYXNzPSJzcGlwX2JhcnJlIiBzdHlsZT0id2lkdGg6IGF1dG87IHBhZGRpbmc6IDFweCFpbXBvcnRhbnQ7IGJvcmRlci10b3A6IDBweDsiIHN1bW1hcnk9IiI+DQo8dHI+PHRkPg0KTmIgY29sb25uZXM6IDxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJiYXJyZV9uYmNvbG9uZXMiIHN0eWxlPSJ3aWR0aDogMzBweDsiIHZhbHVlPSIyIiBzaXplPSIyIiBtYXhsZW5ndGg9IjIiICAgLz48L3RkPjx0ZD4NCk5iIGxpZ25lczogPGlucHV0IHR5cGU9InRleHQiIG5hbWU9ImJhcnJlX25icmFuZ3MiIHN0eWxlPSJ3aWR0aDogMzBweDsiIHZhbHVlPSIyIiBzaXplPSIyIiBtYXhsZW5ndGg9IjIiIC8+PC90ZD48dGQ+DQo8aW5wdXQgdHlwZT0iY2hlY2tib3giIG5hbWU9ImJhcnJlX2RvZW50ZXRlIiB2YWx1ZT0iLTEiIGNoZWNrZWQ9ImNoZWNrZWQiIC8+IEVudGV0ZTwvdGQ+PHRkPg0KPGlucHV0IHR5cGU9ImNoZWNrYm94IiBuYW1lPSJiYXJyZV9kb2NhcHRpb24iIHZhbHVlPSItMSIgY2hlY2tlZD0iY2hlY2tlZCIgLz4gQ2FwdGlvbiBldCBSJmVhY3V0ZTtzdW0mZWFjdXRlOzwvdGQ+PHRkPg0KICA8aW5wdXQgdHlwZT0iYnV0dG9uIiB2YWx1ZT0iT0siIGNsYXNzPSJmb25kbyIgb25jbGljaz0iamF2YXNjcmlwdDoNCiAgICBiYXJyZV9uYmNvbG9uZXMudmFsdWUgPSBNYXRoLmFicyhiYXJyZV9uYmNvbG9uZXMudmFsdWUpOyBiYXJyZV9uYnJhbmdzLnZhbHVlDQogICAgPSBNYXRoLmFicyhiYXJyZV9uYnJhbmdzLnZhbHVlKTsNCiAgICBpZiAoIShiYXJyZV9uYmNvbG9uZXMudmFsdWUgPT0gMCB8fCBiYXJyZV9uYnJhbmdzLnZhbHVlID09IDApKSB7DQogICAgYmFycmVfdGFibGVhdShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaW5wdXQtMS10ZXh0ZV8yJyksIGJhcnJlX25iY29sb25lcy52YWx1ZSwgYmFycmVfbmJyYW5ncy52YWx1ZSwNCiAgICBiYXJyZV9kb2VudGV0ZS5jaGVja2VkLCBiYXJyZV9kb2NhcHRpb24uY2hlY2tlZCk7IH0gIiAvPiANCjwvdGQ+PC90cj48L3RhYmxlPg0KPGRpdiBzdHlsZT0nY2xlYXI6IGJvdGg7Jz48L2Rpdj48L2Rpdj48ZGl2IGlkPSdMYXllcjE2JyBzdHlsZT0nZGlzcGxheTpub25lOycgPg0KIDx0YWJsZSBjbGFzcz0ic3BpcF9iYXJyZSIgc3R5bGU9IndpZHRoOiBhdXRvOyBwYWRkaW5nOiAxcHghaW1wb3J0YW50OyBib3JkZXItdG9wOiAwcHg7IiBzdW1tYXJ5PSIiPg0KPHRyPjx0ZD4gDQpBZHJlc3NlJm5ic3A7OiA8aW5wdXQgdHlwZT0idGV4dCIgbmFtZT0ibGllbl9ub20iIHZhbHVlPSJodHRwOi8vIiBzaXplPSIyMSIgbWF4bGVuZ3RoPSIyNTUiIC8+PGJyIC8+DQpCdWxsZSBkJ2FpZGUmbmJzcDs6IDxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJsaWVuX2J1bGxlIiB2YWx1ZT0iIiBzaXplPSIyMSIgbWF4bGVuZ3RoPSIyNTUiIC8+DQo8L3RkPjx0ZD4NCkxhbmd1ZSBhYnImZWFjdXRlO2cmZWFjdXRlO2UmbmJzcDs6IDxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJsaWVuX2xhbmd1ZSIgdmFsdWU9IiIgc2l6ZT0iMTAiIG1heGxlbmd0aD0iMTAiIC8+DQo8L3RkPjx0ZD4NCiAgPGlucHV0IHR5cGU9ImJ1dHRvbiIgdmFsdWU9Ik9LIiBjbGFzcz0iZm9uZG8iIG9uY2xpY2s9ImphdmFzY3JpcHQ6YmFycmVfZGVtYW5kZV9saWVuKCdbJywgJy0+JywgJ10nLCBsaWVuX25vbS52YWx1ZSwgbGllbl9idWxsZS52YWx1ZSwgbGllbl9sYW5ndWUudmFsdWUsZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2lucHV0LTEtdGV4dGVfMicpKTsiIC8+IA0KPC90ZD48L3RyPjwvdGFibGU+DQo8ZGl2IHN0eWxlPSdjbGVhcjogYm90aDsnPjwvZGl2PjwvZGl2PjxkaXYgaWQ9J0xheWVyMTcnIHN0eWxlPSdkaXNwbGF5Om5vbmU7JyA+DQo8dGFibGUgY2xhc3M9InNwaXBfYmFycmUiIHN0eWxlPSJ3aWR0aDogYXV0bzsgcGFkZGluZzogMXB4IWltcG9ydGFudDsgYm9yZGVyLXRvcDogMHB4OyIgc3VtbWFyeT0iIj4NCiAgPHRyPg0KICAgIDx0ZCBzdHlsZT0id2lkdGg6YXV0bzsgdGV4dC1hbGlnbjpjZW50ZXI7Ij48c3Ryb25nPkdlc3Rpb24gZGVzIGFuY3Jlczwvc3Ryb25nPjwvdGQ+DQogICAgPHRkIHN0eWxlPSJ3aWR0aDphdXRvOyI+PHN0cm9uZz5UcmFuc2Zvcm1lciBlbiBhbmNyZTwvc3Ryb25nPjxiciAvPg0KICAgIDxsYWJlbCBmb3I9ImFuY3JlX25vbSI+PGk+Tm9tIGRlIGwnYW5jcmU8L2k+PC9sYWJlbD4gPGJyIC8+DQogICAgICA8aW5wdXQgdHlwZT0idGV4dCIgbmFtZT0iYW5jcmVfbm9tIiBpZD0iYW5jcmVfbm9tIiAvPg0KCSAgDQoJPGlucHV0IHR5cGU9ImJ1dHRvbiIgdmFsdWU9Ik9LIiBjbGFzcz0iZm9uZG8iIG9uY2xpY2s9ImphdmFzY3JpcHQ6YmFycmVfYW5jcmUoJ1snLCAnPC0nLCAnXScsIGFuY3JlX25vbS52YWx1ZSwgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2lucHV0LTEtdGV4dGVfMicpKTsiIC8+DQogICAgPC90ZD4NCgk8dGQgc3R5bGU9IndpZHRoOmF1dG87Ij48c3Ryb25nPlBvaW50ZXIgdmVycyB1bmUgYW5jcmU8L3N0cm9uZz48YnIgLz4NCiAgICA8bGFiZWwgZm9yPSJhbmNyZV9jaWJsZSI+PGk+QW5jcmUgY2libGU8L2k+PC9sYWJlbD4gPGlucHV0IHR5cGU9InRleHQiIG5hbWU9ImFuY3JlX2NpYmxlIiBpZD0iYW5jcmVfY2libGUiIC8+PGJyIC8+DQoJPGxhYmVsIGZvcj0iYW5jcmVfYnVsbGUiPjxpPkJ1bGxlIGQnYWlkZSBhbmNyZTwvaT48L2xhYmVsPiA8aW5wdXQgdHlwZT0idGV4dCIgbmFtZT0iYW5jcmVfYnVsbGUiIGlkPSJhbmNyZV9idWxsZSIgLz4NCgk8aW5wdXQgdHlwZT0iYnV0dG9uIiB2YWx1ZT0iT0siIGNsYXNzPSJmb25kbyIgb25jbGljaz0iamF2YXNjcmlwdDpiYXJyZV9kZW1hbmRlKCdbJywgJy0+IycsICddJywgYW5jcmVfY2libGUudmFsdWUsIGFuY3JlX2J1bGxlLnZhbHVlLCBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaW5wdXQtMS10ZXh0ZV8yJykpOyIgLz4gDQo8L3RkPg0KICA8L3RyPiANCjwvdGFibGU+PGRpdiBzdHlsZT0nY2xlYXI6IGJvdGg7Jz48L2Rpdj48L2Rpdj48ZGl2IGlkPSdMYXllcjE4JyBzdHlsZT0nZGlzcGxheTpub25lOycgPg0KPHRhYmxlIGNsYXNzPSJzcGlwX2JhcnJlIiBzdHlsZT0id2lkdGg6IGF1dG87IHBhZGRpbmc6IDFweCFpbXBvcnRhbnQ7IGJvcmRlci10b3A6IDBweDsiIHN1bW1hcnk9IiI+DQogIDx0ciBjbGFzcz0ic3BpcF9iYXJyZSI+DQogICAgPHRkIHN0eWxlPSJ3aWR0aDozMCU7Ij5DYXJhY3QmZWdyYXZlO3JlcyBzcCZlYWN1dGU7Y2lhdXg8L3RkPg0KICAgIDx0ZD48YSBocmVmPSJqYXZhc2NyaXB0OmJhcnJlX3JhY2NvdXJjaSgnXHUwMGFificsJ35cdTAwYmInLGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdpbnB1dC0xLXRleHRlXzInKSkiCiBjbGFzcz0nc3BpcF9iYXJyZScgdGFiaW5kZXg9JzEwMDAnIHRpdGxlPSJFbnRvdXJlciBkZSAmbGFxdW87IGd1aWxsZW1ldHMgJnJhcXVvOyI+PGltZyBzcmM9J2ltZ19wYWNrL2ljb25lc19iYXJyZS9ndWlsbGVtZXRzLnBuZycgaGVpZ2h0PScxNicgd2lkdGg9JzE2JyBhbHQ9IkVudG91cmVyIGRlICZsYXF1bzsgZ3VpbGxlbWV0cyAmcmFxdW87IiAvPjwvYT48YSBocmVmPSJqYXZhc2NyaXB0OmJhcnJlX3JhY2NvdXJjaSgnXHUwMDkzJywnXHUwMDk0Jyxkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaW5wdXQtMS10ZXh0ZV8yJykpIgogY2xhc3M9J3NwaXBfYmFycmUnIHRhYmluZGV4PScxMDAwJyB0aXRsZT0iRW50b3VyZXIgZGUgJmxkcXVvO2d1aWxsZW1ldHMgZGUgc2Vjb25kIG5pdmVhdSZyZHF1bzsiPjxpbWcgc3JjPSdpbWdfcGFjay9pY29uZXNfYmFycmUvZ3VpbGxlbWV0cy1zaW1wbGVzLnBuZycgaGVpZ2h0PScxNicgd2lkdGg9JzE2JyBhbHQ9IkVudG91cmVyIGRlICZsZHF1bztndWlsbGVtZXRzIGRlIHNlY29uZCBuaXZlYXUmcmRxdW87IiAvPjwvYT48YSBocmVmPSJqYXZhc2NyaXB0OmJhcnJlX2luc2VyZXIoJ1x1MDBjMCcsZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2lucHV0LTEtdGV4dGVfMicpKSIKIGNsYXNzPSdzcGlwX2JhcnJlJyB0YWJpbmRleD0nMTAwMCcgdGl0bGU9IklucyZlYWN1dGU7cmVyIHVuIEEgYWNjZW50IGdyYXZlIG1hanVzY3VsZSI+PGltZyBzcmM9J2ltZ19wYWNrL2ljb25lc19iYXJyZS9hZ3JhdmUtbWFqLnBuZycgaGVpZ2h0PScxNicgd2lkdGg9JzE2JyBhbHQ9IklucyZlYWN1dGU7cmVyIHVuIEEgYWNjZW50IGdyYXZlIG1hanVzY3VsZSIgLz48L2E+PGEgaHJlZj0iamF2YXNjcmlwdDpiYXJyZV9pbnNlcmVyKCdcdTAwYzknLGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdpbnB1dC0xLXRleHRlXzInKSkiCiBjbGFzcz0nc3BpcF9iYXJyZScgdGFiaW5kZXg9JzEwMDAnIHRpdGxlPSJJbnMmZWFjdXRlO3JlciB1biBFIGFjY2VudCBhaWd1IG1hanVzY3VsZSI+PGltZyBzcmM9J2ltZ19wYWNrL2ljb25lc19iYXJyZS9lYWN1dGUtbWFqLnBuZycgaGVpZ2h0PScxNicgd2lkdGg9JzE2JyBhbHQ9IklucyZlYWN1dGU7cmVyIHVuIEUgYWNjZW50IGFpZ3UgbWFqdXNjdWxlIiAvPjwvYT48YSBocmVmPSJqYXZhc2NyaXB0OmJhcnJlX2luc2VyZXIoJ1x1MDBjOCcsZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2lucHV0LTEtdGV4dGVfMicpKSIKIGNsYXNzPSdzcGlwX2JhcnJlJyB0YWJpbmRleD0nMTAwMCcgdGl0bGU9IklucyZlYWN1dGU7cmVyIHVuIEUgbWFqdXNjdWxlIGFjY2VudCBncmF2ZSI+PGltZyBzcmM9Jy4uL3BsdWdpbnMvZm9uY3Rpb25uYWxpdGVzL2JhcnJlX3R5cG9fZWNvbG9naXF1ZS9pbWdfcGFjay9pY29uZXNfYmFycmUvZWFncmF2ZS1tYWoucG5nJyBoZWlnaHQ9JzE2JyB3aWR0aD0nMTYnIGFsdD0iSW5zJmVhY3V0ZTtyZXIgdW4gRSBtYWp1c2N1bGUgYWNjZW50IGdyYXZlIiAvPjwvYT48YSBocmVmPSJqYXZhc2NyaXB0OmJhcnJlX2luc2VyZXIoJ1x1MDBlNicsZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2lucHV0LTEtdGV4dGVfMicpKSIKIGNsYXNzPSdzcGlwX2JhcnJlJyB0YWJpbmRleD0nMTAwMCcgdGl0bGU9IklucyZlYWN1dGU7cmVyIHVuIEUgZGFucyBsJ0EiPjxpbWcgc3JjPScuLi9wbHVnaW5zL2ZvbmN0aW9ubmFsaXRlcy9iYXJyZV90eXBvX2Vjb2xvZ2lxdWUvaW1nX3BhY2svaWNvbmVzX2JhcnJlL2FlbGlnLnBuZycgaGVpZ2h0PScxNicgd2lkdGg9JzE2JyBhbHQ9IklucyZlYWN1dGU7cmVyIHVuIEUgZGFucyBsJ0EiIC8+PC9hPjxhIGhyZWY9ImphdmFzY3JpcHQ6YmFycmVfaW5zZXJlcignXHUwMGM2Jyxkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaW5wdXQtMS10ZXh0ZV8yJykpIgogY2xhc3M9J3NwaXBfYmFycmUnIHRhYmluZGV4PScxMDAwJyB0aXRsZT0iSW5zJmVhY3V0ZTtyZXIgdW4gRSBkYW5zIGwnQSBtYWp1c2N1bGUiPjxpbWcgc3JjPScuLi9wbHVnaW5zL2ZvbmN0aW9ubmFsaXRlcy9iYXJyZV90eXBvX2Vjb2xvZ2lxdWUvaW1nX3BhY2svaWNvbmVzX2JhcnJlL2FlbGlnLW1hai5wbmcnIGhlaWdodD0nMTYnIHdpZHRoPScxNicgYWx0PSJJbnMmZWFjdXRlO3JlciB1biBFIGRhbnMgbCdBIG1hanVzY3VsZSIgLz48L2E+PGEgaHJlZj0iamF2YXNjcmlwdDpiYXJyZV9pbnNlcmVyKCcmb2VsaWc7Jyxkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaW5wdXQtMS10ZXh0ZV8yJykpIgogY2xhc3M9J3NwaXBfYmFycmUnIHRhYmluZGV4PScxMDAwJyB0aXRsZT0iSW5zJmVhY3V0ZTtyZXIgdW4gRSBkYW5zIGwnTyI+PGltZyBzcmM9J2ltZ19wYWNrL2ljb25lc19iYXJyZS9vZWxpZy5wbmcnIGhlaWdodD0nMTYnIHdpZHRoPScxNicgYWx0PSJJbnMmZWFjdXRlO3JlciB1biBFIGRhbnMgbCdPIiAvPjwvYT48YSBocmVmPSJqYXZhc2NyaXB0OmJhcnJlX2luc2VyZXIoJyZPRWxpZzsnLGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdpbnB1dC0xLXRleHRlXzInKSkiCiBjbGFzcz0nc3BpcF9iYXJyZScgdGFiaW5kZXg9JzEwMDAnIHRpdGxlPSJJbnMmZWFjdXRlO3JlciB1biBFIGRhbnMgbCdPIG1hanVzY3VsZSI+PGltZyBzcmM9J2ltZ19wYWNrL2ljb25lc19iYXJyZS9vZWxpZy1tYWoucG5nJyBoZWlnaHQ9JzE2JyB3aWR0aD0nMTYnIGFsdD0iSW5zJmVhY3V0ZTtyZXIgdW4gRSBkYW5zIGwnTyBtYWp1c2N1bGUiIC8+PC9hPjxhIGhyZWY9ImphdmFzY3JpcHQ6YmFycmVfaW5zZXJlcignXHUwMGM3Jyxkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaW5wdXQtMS10ZXh0ZV8yJykpIgogY2xhc3M9J3NwaXBfYmFycmUnIHRhYmluZGV4PScxMDAwJyB0aXRsZT0iSW5zJmVhY3V0ZTtyZXIgdW4gQyBjJmVhY3V0ZTtkaWxsZSBtYWp1c2N1bGUiPjxpbWcgc3JjPScuLi9wbHVnaW5zL2ZvbmN0aW9ubmFsaXRlcy9iYXJyZV90eXBvX2Vjb2xvZ2lxdWUvaW1nX3BhY2svaWNvbmVzX2JhcnJlL2NjZWRpbC1tYWoucG5nJyBoZWlnaHQ9JzE2JyB3aWR0aD0nMTYnIGFsdD0iSW5zJmVhY3V0ZTtyZXIgdW4gQyBjJmVhY3V0ZTtkaWxsZSBtYWp1c2N1bGUiIC8+PC9hPjxhIGhyZWY9ImphdmFzY3JpcHQ6YmFycmVfaW5zZXJlcignJmV1cm87Jyxkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaW5wdXQtMS10ZXh0ZV8yJykpIgogY2xhc3M9J3NwaXBfYmFycmUnIHRhYmluZGV4PScxMDAwJyB0aXRsZT0iSW5zJmVhY3V0ZTtyZXIgbGUgc3ltYm9sZSAmZXVybzsiPjxpbWcgc3JjPSdpbWdfcGFjay9pY29uZXNfYmFycmUvZXVyby5wbmcnIGhlaWdodD0nMTYnIHdpZHRoPScxNicgYWx0PSJJbnMmZWFjdXRlO3JlciBsZSBzeW1ib2xlICZldXJvOyIgLz48L2E+Jm5ic3A7DQogICAgPC90ZD4NCiAgPC90cj4gDQo8L3RhYmxlPg0KPGRpdiBzdHlsZT0nY2xlYXI6IGJvdGg7Jz48L2Rpdj48L2Rpdj48ZGl2IGlkPSdMYXllcjE5JyBzdHlsZT0nZGlzcGxheTpub25lOycgPg0KPHRhYmxlIGNsYXNzPSJzcGlwX2JhcnJlIiBzdHlsZT0id2lkdGg6IGF1dG87IHBhZGRpbmc6IDFweCFpbXBvcnRhbnQ7IGJvcmRlci10b3A6IDBweDsiIHN1bW1hcnk9IiI+DQo8dHI+PHRkIHN0eWxlPSJ3aWR0aDogMjUlOyI+Q2hlcmNoZXI8aW5wdXQgdHlwZT0idGV4dCIgbmFtZT0iYmFycmVfY2hlcmNoZXIiIHZhbHVlPSIiIHNpemU9IjEyIiBtYXhsZW5ndGg9IjI1NSIgLz48L3RkPjx0ZCBzdHlsZT0id2lkdGg6IDIwJTsiPg0KPGlucHV0IHR5cGU9ImNoZWNrYm94IiBuYW1lPSJyZWNfY2FzZSIgdmFsdWU9InllcyIgLz5SZXNwZWN0ZXIgbGEgY2Fzc2U8YnIgLz48aW5wdXQgdHlwZT0iY2hlY2tib3giIG5hbWU9InJlY19lbnRpZXIiIHZhbHVlPSJ5ZXMiIC8+DQpNb3QgZW50aWVyDQo8L3RkPjx0ZCAgc3R5bGU9IndpZHRoOiAyNSU7Ij5SZW1wbGFjZXI8aW5wdXQgdHlwZT0idGV4dCIgbmFtZT0iYmFycmVfcmVtcGxhY2VyIiB2YWx1ZT0iIiBzaXplPSIxMiIgbWF4bGVuZ3RoPSIyNTUiIC8+IA0KPC90ZD48dGQgc3R5bGU9IndpZHRoOiAyMCU7Ij4NCjxpbnB1dCB0eXBlPSJjaGVja2JveCIgbmFtZT0icmVjX3RvdXQiIHZhbHVlPSJ5ZXMiIC8+VG91dCByZW1wbGFjZXI8L3RkPjx0ZCBzdHlsZT0id2lkdGg6IDEwJTsiPg0KICAgPGlucHV0IHR5cGU9ImJ1dHRvbiIgdmFsdWU9Ik9LIiBjbGFzcz0iZm9uZG8iDQogIG9uY2xpY2s9ImphdmFzY3JpcHQ6YmFycmVfc2VhcmNocmVwbGFjZShkb2N1bWVudC5mb3JtdWxhaXJlLmJhcnJlX2NoZXJjaGVyLnZhbHVlLCBkb2N1bWVudC5mb3JtdWxhaXJlLmJhcnJlX3JlbXBsYWNlci52YWx1ZSwgZG9jdW1lbnQuZm9ybXVsYWlyZS5yZWNfdG91dC5jaGVja2VkLCBkb2N1bWVudC5mb3JtdWxhaXJlLnJlY19jYXNlLmNoZWNrZWQsIGRvY3VtZW50LmZvcm11bGFpcmUucmVjX2VudGllci5jaGVja2VkLGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdpbnB1dC0xLXRleHRlXzInKSk7IiAvPiANCjwvdGQ+PC90cj48L3RhYmxlPjxkaXYgc3R5bGU9J2NsZWFyOiBib3RoOyc+PC9kaXY+PC9kaXY+Cgk8dGV4dGFyZWEgbmFtZT0ndGV4dGVfMicgcm93cz0nMTAnIGNsYXNzPSdmb3JtbCAgICcgY29scz0nODAnCglpZD0naW5wdXQtMS10ZXh0ZV8yJwoJb25zZWxlY3Q9J3N0b3JlQ2FyZXQodGhpcyk7JwoJb25jbGljaz0nc3RvcmVDYXJldCh0aGlzKTsnCglvbmtleXVwPSdzdG9yZUNhcmV0KHRoaXMpOycKCW9uZGJsY2xpY2s9J3N0b3JlQ2FyZXQodGhpcyk7Jz48L3RleHRhcmVhPgoJCQkJCgkJCQkKCQkJCQoJCQkJCgkJCQkKCQkJCQoJCQkJCgkJCQkKCQkJCQoJCQkJPHNwYW4gY2xhc3M9J25ldHRveWV1cic+IDwvc3Bhbj4KCQkJCgkJPC9kaXY+CgkKCgogCgk8L2ZpZWxkc2V0PgoKIAogCgkKCTxwIHN0eWxlPSdkaXNwbGF5Om5vbmU7Jz48bGFiZWwgZm9yPSJub2JvdG5vYm90LTEiPlZldWlsbGV6IGxhaXNzZXIgY2UgY2hhbXAgdmlkZSZuYnNwOzo8L2xhYmVsPgoJPGlucHV0IHR5cGU9InRleHQiIG5hbWU9Im5vYm90bm9ib3QiIGlkPSJub2JvdG5vYm90LTEiIHZhbHVlPSIiIHNpemU9IjEwIiAvPjwvcD4KCQoJPGRpdiBzdHlsZT0ndGV4dC1hbGlnbjpyaWdodCcgY2xhc3M9J3NwaXBfYm91dG9uJz48aW5wdXQgdHlwZT0ic3VibWl0IiBuYW1lPSdWYWxpZGVyJyB2YWx1ZT0iVmFsaWRlciIgLz48L2Rpdj4KCgo8ZGl2IGNsYXNzPSJiYXNlNjRqYXZhc2NyaXB0NjE2NjIzMjMwNDY0NDM0OThiZGYwMTkuMzEwOTE2MzUiIHRpdGxlPSdQSE5qY21sd2RDQnpjbU05SW1oMGRIQTZMeTl3Y21Wd2NtOWtMbTV2ZEhKbExYWnBiR3hsTG01bGRDOStjM1J6WldJdmNHeDFaMmx1Y3k5bWIyNWpkR2x2Ym01aGJHbDBaWE12Wm05eWJYTXZhbUYyWVhOamNtbHdkQzlxZEdsd0xtcHpJaUIwZVhCbFBTSjBaWGgwTDJwaGRtRnpZM0pwY0hRaVBqd3ZjMk55YVhCMFBnPT0nID48L2Rpdj4KCgoKPGRpdiBjbGFzcz0iYmFzZTY0amF2YXNjcmlwdDYxNjYyMzIzMDQ2NDQzNDk4YmRmMDE5LjMxMDkxNjM1IiB0aXRsZT0nUEhOamNtbHdkQ0IwZVhCbFBTSjBaWGgwTDJwaGRtRnpZM0pwY0hRaVBqd2hMUzBLSkNnbmFXNXdkWFF1Wm05eWJXOG5LUzVpYVc1a0tDZG1iMk4xY3ljc1puVnVZM1JwYjI0b0tYc2tLSFJvYVhNcExuSmxiVzkyWlVOc1lYTnpLQ2RtYjNKdGJ5Y3BMbUZrWkVOc1lYTnpLQ2RtYjNKdGJ5MW1iMk4xY3ljcE8zMHBPd29rS0NkcGJuQjFkQzVtYjNKdGJ5Y3BMbUpwYm1Rb0oySnNkWEluTEdaMWJtTjBhVzl1S0NsN0pDaDBhR2x6S1M1eVpXMXZkbVZEYkdGemN5Z25abTl5Ylc4dFptOWpkWE1uS1M1aFpHUkRiR0Z6Y3lnblptOXliVzhuS1R0OUtUc0tKQ2duYVc1d2RYUXVabTl5Yld3bktTNWlhVzVrS0NkbWIyTjFjeWNzWm5WdVkzUnBiMjRvS1hza0tIUm9hWE1wTG5KbGJXOTJaVU5zWVhOektDZG1iM0p0YkNjcExtRmtaRU5zWVhOektDZG1iM0p0YkMxbWIyTjFjeWNwTzMwcE93b2tLQ2RwYm5CMWRDNW1iM0p0YkNjcExtSnBibVFvSjJKc2RYSW5MR1oxYm1OMGFXOXVLQ2w3SkNoMGFHbHpLUzV5WlcxdmRtVkRiR0Z6Y3lnblptOXliV3d0Wm05amRYTW5LUzVoWkdSRGJHRnpjeWduWm05eWJXd25LVHQ5S1RzS0NpOHZMUzArUEM5elkzSnBjSFErJyA+PC9kaXY+CgoKCgkKCQoJCgoKPC9kaXY+" ></div>',
217
-				'attribut' => 'title',
218
-			],
207
+    public static function providerBase64(): array {
208
+        return [
209
+            'base64 #1' => [
210
+                'expected' => 'PGEgbmFtZT0nZm9ybTEnPjwvYT4KPGRpdiBjbGFzcz0nc3BpcF9mb3Jtcyc+Cgo8ZGl2IGNsYXNzPSdzcGlwX2Rlc2NyaXB0aWYnPjwvZGl2PgoKCgoKIAoJIAoJPGZvcm0gbWV0aG9kPSdwb3N0JyBhY3Rpb249J0NvbnRhY3QuaHRtbCNmb3JtMScKCQllbmN0eXBlPSdtdWx0aXBhcnQvZm9ybS1kYXRhJz4KCQkKCQk8ZGl2PgoJCQoJCTxpbnB1dCB0eXBlPSdoaWRkZW4nIG5hbWU9J2Fqb3V0X3JlcG9uc2UnIHZhbHVlPScxJyAvPgoJCTxpbnB1dCB0eXBlPSdoaWRkZW4nIG5hbWU9J2lkX2Rvbm5lZScgdmFsdWU9Jy0xMCcgLz4KCQkKCQk8aW5wdXQgdHlwZT0naGlkZGVuJyBuYW1lPSdyZXRvdXJfZm9ybScgdmFsdWU9JycgLz4KCQkKCQk8L2Rpdj4KCQkJCgoKIAoJIAoJCQoJCSA8ZmllbGRzZXQ+PGxlZ2VuZD5Ob3VzIGNvbnRhY3RlcjwvbGVnZW5kPiAKCQoJIAoJCTxkaXYgY2xhc3M9J3NwaXBfZm9ybV9jaGFtcCBsaWduZV8xJz4KCQkJCgkJCSAKCQkJCTxzcGFuIGNsYXNzPSdzcGlwX2Zvcm1fbGFiZWwnPgoJCQkJCSA8bGFiZWwgZm9yPSJpbnB1dC0xLWxpZ25lXzEiPlZvdHJlIE5vbTwvbGFiZWw+CgkJCQkJCgkJCQkJPHNwYW4gY2xhc3M9J3NwaXBfZm9ybV9sYWJlbF9vYmxpZ2F0b2lyZSc+CgkJCQkJCVtPYmxpZ2F0b2lyZV08L3NwYW4+CgkJCQkJOgoJCQkJPC9zcGFuPgoJCQkJCgkJCQkKCQkJCQoJCQkJCgkJCQkKCQkJCQoJCQkJCgkJCQkKCQkJCQoJCQkJCgkJCQkKCQkJCSAKCQkJCQoJCQkJPGlucHV0IHR5cGU9InRleHRlIiBuYW1lPSdsaWduZV8xJyBpZD0naW5wdXQtMS1saWduZV8xJyB2YWx1ZT0iIiAKCQkJCQkJY2xhc3M9JyAgbGlnbmUgZm9ybWwnIAoJCQkJCQlzaXplPSc0MCcgLz4KCQkJCQoJCQkJCgkJCQkKCQkJCTxzcGFuIGNsYXNzPSduZXR0b3lldXInPiA8L3NwYW4+CgkJCQoJCTwvZGl2PgoJCgoKCiAKCSAKCQkKCQkKCQoJIAoJCTxkaXYgY2xhc3M9J3NwaXBfZm9ybV9jaGFtcCBsaWduZV8yJz4KCQkJCgkJCSAKCQkJCTxzcGFuIGNsYXNzPSdzcGlwX2Zvcm1fbGFiZWwnPgoJCQkJCSA8bGFiZWwgZm9yPSJpbnB1dC0xLWxpZ25lXzIiPlZvdHJlIFByw6lub208L2xhYmVsPgoJCQkJCQoJCQkJCTxzcGFuIGNsYXNzPSdzcGlwX2Zvcm1fbGFiZWxfb2JsaWdhdG9pcmUnPgoJCQkJCQlbT2JsaWdhdG9pcmVdPC9zcGFuPgoJCQkJCToKCQkJCTwvc3Bhbj4KCQkJCQoJCQkJCgkJCQkKCQkJCQoJCQkJCgkJCQkKCQkJCQoJCQkJCgkJCQkKCQkJCQoJCQkJCgkJCQkgCgkJCQkKCQkJCTxpbnB1dCB0eXBlPSJ0ZXh0ZSIgbmFtZT0nbGlnbmVfMicgaWQ9J2lucHV0LTEtbGlnbmVfMicgdmFsdWU9IiIgCgkJCQkJCWNsYXNzPScgIGxpZ25lIGZvcm1sJyAKCQkJCQkJc2l6ZT0nNDAnIC8+CgkJCQkKCQkJCQoJCQkJCgkJCQk8c3BhbiBjbGFzcz0nbmV0dG95ZXVyJz4gPC9zcGFuPgoJCQkKCQk8L2Rpdj4KCQoKCgogCgkgCgkJCgkJCgkKCSAKCQk8ZGl2IGNsYXNzPSdzcGlwX2Zvcm1fY2hhbXAgZW1haWxfMSc+CgkJCQoJCQkgCgkJCQk8c3BhbiBjbGFzcz0nc3BpcF9mb3JtX2xhYmVsJz4KCQkJCQkgPGxhYmVsIGZvcj0iaW5wdXQtMS1lbWFpbF8xIj5Wb3RyZSBlbWFpbDwvbGFiZWw+CgkJCQkJCgkJCQkJPHNwYW4gY2xhc3M9J3NwaXBfZm9ybV9sYWJlbF9vYmxpZ2F0b2lyZSc+CgkJCQkJCVtPYmxpZ2F0b2lyZV08L3NwYW4+CgkJCQkJOgoJCQkJPC9zcGFuPgoJCQkJCgkJCQk8c3BhbiBjbGFzcz0nc3BpcF9mb3JtX2xhYmVsX2RldGFpbHMnPlZldWlsbGV6IGVudHJlciB1bmUgYWRyZXNzZSBlLW1haWwgdmFsaWRlIChkZSB0eXBlIHZvdXNAZm91cm5pc3NldXIuY29tKS48L3NwYW4+CgkJCQkKCQkJCQoJCQkJCgkJCQkKCQkJCQoJCQkJCgkJCQkKCQkJCQoJCQkJCgkJCQkgCgkJCQkKCQkJCTxpbnB1dCB0eXBlPSJ0ZXh0ZSIgbmFtZT0nZW1haWxfMScgaWQ9J2lucHV0LTEtZW1haWxfMScgdmFsdWU9IiIgCgkJCQkJCWNsYXNzPScgIGVtYWlsIGZvcm1sJyAKCQkJCQkJc2l6ZT0nNDAnIC8+CgkJCQkKCQkJCQoJCQkJCgkJCQk8c3BhbiBjbGFzcz0nbmV0dG95ZXVyJz4gPC9zcGFuPgoJCQkKCQk8L2Rpdj4KCQoKCgogCgkgCgkJCgkJCgkKCSAKCQk8ZGl2IGNsYXNzPSdzcGlwX2Zvcm1fY2hhbXAgdGV4dGVfMSc+CgkJCQoJCQkgCgkJCQk8c3BhbiBjbGFzcz0nc3BpcF9mb3JtX2xhYmVsJz4KCQkJCQkgPGxhYmVsIGZvcj0iaW5wdXQtMS10ZXh0ZV8xIj5Wb3RyZSBBZHJlc3NlPC9sYWJlbD4KCQkJCQkKCQkJCQkKCQkJCQk6CgkJCQk8L3NwYW4+CgkJCQkKCQkJCQoJCQkJCgkJCQkKCQkJCSAgPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0icGx1Z2lucy9hZG1pbi8talF1ZXJ5L2ltZ19wYWNrL2xheWVyLmpzIj48L3NjcmlwdD48c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJwbHVnaW5zL2ZvbmN0aW9ubmFsaXRlcy9iYXJyZV90eXBvX2Vjb2xvZ2lxdWUvanMvc3BpcF9iYXJyZS5qcyI+PC9zY3JpcHQ+PHRhYmxlIGNsYXNzPSdzcGlwX2JhcnJlJyBzdHlsZT0nd2lkdGg6YXV0bzsnIGNlbGxwYWRkaW5nPScwJyBjZWxsc3BhY2luZz0nMCcgYm9yZGVyPScwJyBzdW1tYXJ5PScnPgo8dHIgc3R5bGU9J3dpZHRoOiBhdXRvOycgY2xhc3M9J3NwaXBfYmFycmUnPgo8dGQgc3R5bGU9J3RleHQtYWxpZ246IGxlZnQ7JyB2YWxpZ249J21pZGRsZSc+PGEgaHJlZj0iamF2YXNjcmlwdDpiYXJyZV9yYWNjb3VyY2koJ3snLCd9Jyxkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaW5wdXQtMS10ZXh0ZV8xJykpIgogY2xhc3M9J3NwaXBfYmFycmUnIHRhYmluZGV4PScxMDAwJyB0aXRsZT0iTWV0dHJlIGVuIHtpdGFsaXF1ZX0iIG9ubW91c2VvdmVyPSJoZWxwbGluZSgnTWV0dHJlIGVuIHtpdGFsaXF1ZX0nLGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdiYXJyZV8xJykpIiBvbm1vdXNlb3V0PSJoZWxwbGluZSgnVXRpbGlzZXogbGVzIHJhY2NvdXJjaXMgdHlwb2dyYXBoaXF1ZXMgcG91ciBlbnJpY2hpciB2b3RyZSBtaXNlIGVuIHBhZ2UnLCBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYmFycmVfMScpKSI+PGltZyBzcmM9J2VjcmlyZS9pbWdfcGFjay9pY29uZXNfYmFycmUvaXRhbGlxdWUucG5nJyBoZWlnaHQ9JzE2JyB3aWR0aD0nMTYnIGFsdD0iTWV0dHJlIGVuIHtpdGFsaXF1ZX0iIC8+PC9hPjxhIGhyZWY9ImphdmFzY3JpcHQ6YmFycmVfcmFjY291cmNpKCd7eycsJ319Jyxkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaW5wdXQtMS10ZXh0ZV8xJykpIgogY2xhc3M9J3NwaXBfYmFycmUnIHRhYmluZGV4PScxMDAwJyB0aXRsZT0iTWV0dHJlIGVuIHt7Z3Jhc319IiBvbm1vdXNlb3Zlcj0iaGVscGxpbmUoJ01ldHRyZSBlbiB7e2dyYXN9fScsZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2JhcnJlXzEnKSkiIG9ubW91c2VvdXQ9ImhlbHBsaW5lKCdVdGlsaXNleiBsZXMgcmFjY291cmNpcyB0eXBvZ3JhcGhpcXVlcyBwb3VyIGVucmljaGlyIHZvdHJlIG1pc2UgZW4gcGFnZScsIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdiYXJyZV8xJykpIj48aW1nIHNyYz0nZWNyaXJlL2ltZ19wYWNrL2ljb25lc19iYXJyZS9ncmFzLnBuZycgaGVpZ2h0PScxNicgd2lkdGg9JzE2JyBhbHQ9Ik1ldHRyZSBlbiB7e2dyYXN9fSIgLz48L2E+Jm5ic3A7PC90ZD4KPHRkPjxhIGhyZWY9ImphdmFzY3JpcHQ6c3dhcF9jb3VjaGUoJzInLCcnKTsiCiBjbGFzcz0nc3BpcF9iYXJyZScgdGFiaW5kZXg9JzEwMDAnIHRpdGxlPSJUcmFuc2Zvcm1lciBlbiBbbGllbiBoeXBlcnRleHRlLT5odHRwOi8vLi4uXSIgb25tb3VzZW92ZXI9ImhlbHBsaW5lKCdUcmFuc2Zvcm1lciBlbiBbbGllbiBoeXBlcnRleHRlLT5odHRwOi8vLi4uXScsZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2JhcnJlXzEnKSkiIG9ubW91c2VvdXQ9ImhlbHBsaW5lKCdVdGlsaXNleiBsZXMgcmFjY291cmNpcyB0eXBvZ3JhcGhpcXVlcyBwb3VyIGVucmljaGlyIHZvdHJlIG1pc2UgZW4gcGFnZScsIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdiYXJyZV8xJykpIj48aW1nIHNyYz0nZWNyaXJlL2ltZ19wYWNrL2ljb25lc19iYXJyZS9saWVuLnBuZycgaGVpZ2h0PScxNicgd2lkdGg9JzE2JyBhbHQ9IlRyYW5zZm9ybWVyIGVuIFtsaWVuIGh5cGVydGV4dGUtPmh0dHA6Ly8uLi5dIiAvPjwvYT4mbmJzcDs8L3RkPgo8dGQ+PGEgaHJlZj0iamF2YXNjcmlwdDpiYXJyZV9yYWNjb3VyY2koJyU1Q24lNUNuJTNDcXVvdGUlM0UnLCclM0MvcXVvdGUlM0UlNUNuJTVDbicsZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2lucHV0LTEtdGV4dGVfMScpKSIKIGNsYXNzPSdzcGlwX2JhcnJlJyB0YWJpbmRleD0nMTAwMCcgdGl0bGU9IkNpdGVyIHVuIG1lc3NhZ2UiIG9ubW91c2VvdmVyPSJoZWxwbGluZSgnQ2l0ZXIgdW4gbWVzc2FnZScsZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2JhcnJlXzEnKSkiIG9ubW91c2VvdXQ9ImhlbHBsaW5lKCdVdGlsaXNleiBsZXMgcmFjY291cmNpcyB0eXBvZ3JhcGhpcXVlcyBwb3VyIGVucmljaGlyIHZvdHJlIG1pc2UgZW4gcGFnZScsIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdiYXJyZV8xJykpIj48aW1nIHNyYz0nZWNyaXJlL2ltZ19wYWNrL2ljb25lc19iYXJyZS9xdW90ZS5wbmcnIGhlaWdodD0nMTYnIHdpZHRoPScxNicgYWx0PSJDaXRlciB1biBtZXNzYWdlIiAvPjwvYT4mbmJzcDs8L3RkPgo8dGQgc3R5bGU9J3RleHQtYWxpZ246bGVmdDsnIHZhbGlnbj0nbWlkZGxlJz48YSBocmVmPSJqYXZhc2NyaXB0OnN3YXBfY291Y2hlKCc0JywnJyk7IgogY2xhc3M9J3NwaXBfYmFycmUnIHRhYmluZGV4PScxMDAwJyB0aXRsZT0iQ2FyYWN0JmVncmF2ZTtyZXMgc3AmZWFjdXRlO2NpYXV4IiBvbm1vdXNlb3Zlcj0iaGVscGxpbmUoJ0NhcmFjdCZlZ3JhdmU7cmVzIHNwJmVhY3V0ZTtjaWF1eCcsZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2JhcnJlXzEnKSkiIG9ubW91c2VvdXQ9ImhlbHBsaW5lKCdVdGlsaXNleiBsZXMgcmFjY291cmNpcyB0eXBvZ3JhcGhpcXVlcyBwb3VyIGVucmljaGlyIHZvdHJlIG1pc2UgZW4gcGFnZScsIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdiYXJyZV8xJykpIj48aW1nIHNyYz0ncGx1Z2lucy9mb25jdGlvbm5hbGl0ZXMvYmFycmVfdHlwb19lY29sb2dpcXVlL2ltZ19wYWNrL2ljb25lc19iYXJyZS9jbGF2aWVyLnBuZycgaGVpZ2h0PScxNicgd2lkdGg9JzE2JyBhbHQ9IkNhcmFjdCZlZ3JhdmU7cmVzIHNwJmVhY3V0ZTtjaWF1eCIgLz48L2E+Jm5ic3A7PC90ZD48L3RyPgo8dHI+Cjx0ZCBjb2xzcGFuPSc2Jz48aW5wdXQgZGlzYWJsZWQ9J2Rpc2FibGVkJyB0eXBlPSd0ZXh0JyBpZD0nYmFycmVfMScgc2l6ZT0nNDUnIG1heGxlbmd0aD0nMTAwJyBzdHlsZT0nd2lkdGg6YXV0bzsgZm9udC1zaXplOjExcHg7IGNvbG9yOiBibGFjazsgYmFja2dyb3VuZC1jb2xvcjogI2U0ZTRlNDsgYm9yZGVyOiAwcHggc29saWQgI2RlZGVkZTsnCnZhbHVlPSJVdGlsaXNleiBsZXMgcmFjY291cmNpcyB0eXBvZ3JhcGhpcXVlcyBwb3VyIGVucmljaGlyIHZvdHJlIG1pc2UgZW4gcGFnZSIgLz48L3RkPjwvdHI+PC90YWJsZT48ZGl2IGlkPSdMYXllcjEnIHN0eWxlPSdkaXNwbGF5Om5vbmU7JyA+PHRhYmxlIGNsYXNzPSJzcGlwX2JhcnJlIiBzdHlsZT0id2lkdGg6IGF1dG87IHBhZGRpbmc6IDFweCFpbXBvcnRhbnQ7IGJvcmRlci10b3A6IDBweDsiIHN1bW1hcnk9IiI+DQo8dHI+PHRkPg0KTmIgY29sb25uZXM6IDxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJiYXJyZV9uYmNvbG9uZXMiIHN0eWxlPSJ3aWR0aDogMzBweDsiIHZhbHVlPSIyIiBzaXplPSIyIiBtYXhsZW5ndGg9IjIiICAgLz48L3RkPjx0ZD4NCk5iIGxpZ25lczogPGlucHV0IHR5cGU9InRleHQiIG5hbWU9ImJhcnJlX25icmFuZ3MiIHN0eWxlPSJ3aWR0aDogMzBweDsiIHZhbHVlPSIyIiBzaXplPSIyIiBtYXhsZW5ndGg9IjIiIC8+PC90ZD48dGQ+DQo8aW5wdXQgdHlwZT0iY2hlY2tib3giIG5hbWU9ImJhcnJlX2RvZW50ZXRlIiB2YWx1ZT0iLTEiIGNoZWNrZWQ9ImNoZWNrZWQiIC8+IEVudGV0ZTwvdGQ+PHRkPg0KPGlucHV0IHR5cGU9ImNoZWNrYm94IiBuYW1lPSJiYXJyZV9kb2NhcHRpb24iIHZhbHVlPSItMSIgY2hlY2tlZD0iY2hlY2tlZCIgLz4gQ2FwdGlvbiBldCBSJmVhY3V0ZTtzdW0mZWFjdXRlOzwvdGQ+PHRkPg0KICA8aW5wdXQgdHlwZT0iYnV0dG9uIiB2YWx1ZT0iT0siIGNsYXNzPSJmb25kbyIgb25jbGljaz0iamF2YXNjcmlwdDoNCiAgICBiYXJyZV9uYmNvbG9uZXMudmFsdWUgPSBNYXRoLmFicyhiYXJyZV9uYmNvbG9uZXMudmFsdWUpOyBiYXJyZV9uYnJhbmdzLnZhbHVlDQogICAgPSBNYXRoLmFicyhiYXJyZV9uYnJhbmdzLnZhbHVlKTsNCiAgICBpZiAoIShiYXJyZV9uYmNvbG9uZXMudmFsdWUgPT0gMCB8fCBiYXJyZV9uYnJhbmdzLnZhbHVlID09IDApKSB7DQogICAgYmFycmVfdGFibGVhdShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaW5wdXQtMS10ZXh0ZV8xJyksIGJhcnJlX25iY29sb25lcy52YWx1ZSwgYmFycmVfbmJyYW5ncy52YWx1ZSwNCiAgICBiYXJyZV9kb2VudGV0ZS5jaGVja2VkLCBiYXJyZV9kb2NhcHRpb24uY2hlY2tlZCk7IH0gIiAvPiANCjwvdGQ+PC90cj48L3RhYmxlPg0KPGRpdiBzdHlsZT0nY2xlYXI6IGJvdGg7Jz48L2Rpdj48L2Rpdj48ZGl2IGlkPSdMYXllcjInIHN0eWxlPSdkaXNwbGF5Om5vbmU7JyA+DQogPHRhYmxlIGNsYXNzPSJzcGlwX2JhcnJlIiBzdHlsZT0id2lkdGg6IGF1dG87IHBhZGRpbmc6IDFweCFpbXBvcnRhbnQ7IGJvcmRlci10b3A6IDBweDsiIHN1bW1hcnk9IiI+DQo8dHI+PHRkPiANCkFkcmVzc2UmbmJzcDs6IDxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJsaWVuX25vbSIgdmFsdWU9Imh0dHA6Ly8iIHNpemU9IjIxIiBtYXhsZW5ndGg9IjI1NSIgLz48YnIgLz4NCkJ1bGxlIGQnYWlkZSZuYnNwOzogPGlucHV0IHR5cGU9InRleHQiIG5hbWU9ImxpZW5fYnVsbGUiIHZhbHVlPSIiIHNpemU9IjIxIiBtYXhsZW5ndGg9IjI1NSIgLz4NCjwvdGQ+PHRkPg0KTGFuZ3VlIGFiciZlYWN1dGU7ZyZlYWN1dGU7ZSZuYnNwOzogPGlucHV0IHR5cGU9InRleHQiIG5hbWU9ImxpZW5fbGFuZ3VlIiB2YWx1ZT0iIiBzaXplPSIxMCIgbWF4bGVuZ3RoPSIxMCIgLz4NCjwvdGQ+PHRkPg0KICA8aW5wdXQgdHlwZT0iYnV0dG9uIiB2YWx1ZT0iT0siIGNsYXNzPSJmb25kbyIgb25jbGljaz0iamF2YXNjcmlwdDpiYXJyZV9kZW1hbmRlX2xpZW4oJ1snLCAnLT4nLCAnXScsIGxpZW5fbm9tLnZhbHVlLCBsaWVuX2J1bGxlLnZhbHVlLCBsaWVuX2xhbmd1ZS52YWx1ZSxkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaW5wdXQtMS10ZXh0ZV8xJykpOyIgLz4gDQo8L3RkPjwvdHI+PC90YWJsZT4NCjxkaXYgc3R5bGU9J2NsZWFyOiBib3RoOyc+PC9kaXY+PC9kaXY+PGRpdiBpZD0nTGF5ZXIzJyBzdHlsZT0nZGlzcGxheTpub25lOycgPg0KPHRhYmxlIGNsYXNzPSJzcGlwX2JhcnJlIiBzdHlsZT0id2lkdGg6IGF1dG87IHBhZGRpbmc6IDFweCFpbXBvcnRhbnQ7IGJvcmRlci10b3A6IDBweDsiIHN1bW1hcnk9IiI+DQogIDx0cj4NCiAgICA8dGQgc3R5bGU9IndpZHRoOmF1dG87IHRleHQtYWxpZ246Y2VudGVyOyI+PHN0cm9uZz5HZXN0aW9uIGRlcyBhbmNyZXM8L3N0cm9uZz48L3RkPg0KICAgIDx0ZCBzdHlsZT0id2lkdGg6YXV0bzsiPjxzdHJvbmc+VHJhbnNmb3JtZXIgZW4gYW5jcmU8L3N0cm9uZz48YnIgLz4NCiAgICA8bGFiZWwgZm9yPSJhbmNyZV9ub20iPjxpPk5vbSBkZSBsJ2FuY3JlPC9pPjwvbGFiZWw+IDxiciAvPg0KICAgICAgPGlucHV0IHR5cGU9InRleHQiIG5hbWU9ImFuY3JlX25vbSIgaWQ9ImFuY3JlX25vbSIgLz4NCgkgIA0KCTxpbnB1dCB0eXBlPSJidXR0b24iIHZhbHVlPSJPSyIgY2xhc3M9ImZvbmRvIiBvbmNsaWNrPSJqYXZhc2NyaXB0OmJhcnJlX2FuY3JlKCdbJywgJzwtJywgJ10nLCBhbmNyZV9ub20udmFsdWUsIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdpbnB1dC0xLXRleHRlXzEnKSk7IiAvPg0KICAgIDwvdGQ+DQoJPHRkIHN0eWxlPSJ3aWR0aDphdXRvOyI+PHN0cm9uZz5Qb2ludGVyIHZlcnMgdW5lIGFuY3JlPC9zdHJvbmc+PGJyIC8+DQogICAgPGxhYmVsIGZvcj0iYW5jcmVfY2libGUiPjxpPkFuY3JlIGNpYmxlPC9pPjwvbGFiZWw+IDxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJhbmNyZV9jaWJsZSIgaWQ9ImFuY3JlX2NpYmxlIiAvPjxiciAvPg0KCTxsYWJlbCBmb3I9ImFuY3JlX2J1bGxlIj48aT5CdWxsZSBkJ2FpZGUgYW5jcmU8L2k+PC9sYWJlbD4gPGlucHV0IHR5cGU9InRleHQiIG5hbWU9ImFuY3JlX2J1bGxlIiBpZD0iYW5jcmVfYnVsbGUiIC8+DQoJPGlucHV0IHR5cGU9ImJ1dHRvbiIgdmFsdWU9Ik9LIiBjbGFzcz0iZm9uZG8iIG9uY2xpY2s9ImphdmFzY3JpcHQ6YmFycmVfZGVtYW5kZSgnWycsICctPiMnLCAnXScsIGFuY3JlX2NpYmxlLnZhbHVlLCBhbmNyZV9idWxsZS52YWx1ZSwgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2lucHV0LTEtdGV4dGVfMScpKTsiIC8+IA0KPC90ZD4NCiAgPC90cj4gDQo8L3RhYmxlPjxkaXYgc3R5bGU9J2NsZWFyOiBib3RoOyc+PC9kaXY+PC9kaXY+PGRpdiBpZD0nTGF5ZXI0JyBzdHlsZT0nZGlzcGxheTpub25lOycgPg0KPHRhYmxlIGNsYXNzPSJzcGlwX2JhcnJlIiBzdHlsZT0id2lkdGg6IGF1dG87IHBhZGRpbmc6IDFweCFpbXBvcnRhbnQ7IGJvcmRlci10b3A6IDBweDsiIHN1bW1hcnk9IiI+DQogIDx0ciBjbGFzcz0ic3BpcF9iYXJyZSI+DQogICAgPHRkIHN0eWxlPSJ3aWR0aDozMCU7Ij5DYXJhY3QmZWdyYXZlO3JlcyBzcCZlYWN1dGU7Y2lhdXg8L3RkPg0KICAgIDx0ZD48YSBocmVmPSJqYXZhc2NyaXB0OmJhcnJlX3JhY2NvdXJjaSgnXHUwMGFificsJ35cdTAwYmInLGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdpbnB1dC0xLXRleHRlXzEnKSkiCiBjbGFzcz0nc3BpcF9iYXJyZScgdGFiaW5kZXg9JzEwMDAnIHRpdGxlPSJFbnRvdXJlciBkZSAmbGFxdW87IGd1aWxsZW1ldHMgJnJhcXVvOyIgb25tb3VzZW92ZXI9ImhlbHBsaW5lKCdFbnRvdXJlciBkZSAmbGFxdW87IGd1aWxsZW1ldHMgJnJhcXVvOycsZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2JhcnJlXzEnKSkiIG9ubW91c2VvdXQ9ImhlbHBsaW5lKCdVdGlsaXNleiBsZXMgcmFjY291cmNpcyB0eXBvZ3JhcGhpcXVlcyBwb3VyIGVucmljaGlyIHZvdHJlIG1pc2UgZW4gcGFnZScsIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdiYXJyZV8xJykpIj48aW1nIHNyYz0nZWNyaXJlL2ltZ19wYWNrL2ljb25lc19iYXJyZS9ndWlsbGVtZXRzLnBuZycgaGVpZ2h0PScxNicgd2lkdGg9JzE2JyBhbHQ9IkVudG91cmVyIGRlICZsYXF1bzsgZ3VpbGxlbWV0cyAmcmFxdW87IiAvPjwvYT48YSBocmVmPSJqYXZhc2NyaXB0OmJhcnJlX3JhY2NvdXJjaSgnXHUwMDkzJywnXHUwMDk0Jyxkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaW5wdXQtMS10ZXh0ZV8xJykpIgogY2xhc3M9J3NwaXBfYmFycmUnIHRhYmluZGV4PScxMDAwJyB0aXRsZT0iRW50b3VyZXIgZGUgJmxkcXVvO2d1aWxsZW1ldHMgZGUgc2Vjb25kIG5pdmVhdSZyZHF1bzsiIG9ubW91c2VvdmVyPSJoZWxwbGluZSgnRW50b3VyZXIgZGUgJmxkcXVvO2d1aWxsZW1ldHMgZGUgc2Vjb25kIG5pdmVhdSZyZHF1bzsnLGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdiYXJyZV8xJykpIiBvbm1vdXNlb3V0PSJoZWxwbGluZSgnVXRpbGlzZXogbGVzIHJhY2NvdXJjaXMgdHlwb2dyYXBoaXF1ZXMgcG91ciBlbnJpY2hpciB2b3RyZSBtaXNlIGVuIHBhZ2UnLCBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYmFycmVfMScpKSI+PGltZyBzcmM9J2VjcmlyZS9pbWdfcGFjay9pY29uZXNfYmFycmUvZ3VpbGxlbWV0cy1zaW1wbGVzLnBuZycgaGVpZ2h0PScxNicgd2lkdGg9JzE2JyBhbHQ9IkVudG91cmVyIGRlICZsZHF1bztndWlsbGVtZXRzIGRlIHNlY29uZCBuaXZlYXUmcmRxdW87IiAvPjwvYT48YSBocmVmPSJqYXZhc2NyaXB0OmJhcnJlX2luc2VyZXIoJ1x1MDBjMCcsZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2lucHV0LTEtdGV4dGVfMScpKSIKIGNsYXNzPSdzcGlwX2JhcnJlJyB0YWJpbmRleD0nMTAwMCcgdGl0bGU9IklucyZlYWN1dGU7cmVyIHVuIEEgYWNjZW50IGdyYXZlIG1hanVzY3VsZSIgb25tb3VzZW92ZXI9ImhlbHBsaW5lKCdJbnMmZWFjdXRlO3JlciB1biBBIGFjY2VudCBncmF2ZSBtYWp1c2N1bGUnLGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdiYXJyZV8xJykpIiBvbm1vdXNlb3V0PSJoZWxwbGluZSgnVXRpbGlzZXogbGVzIHJhY2NvdXJjaXMgdHlwb2dyYXBoaXF1ZXMgcG91ciBlbnJpY2hpciB2b3RyZSBtaXNlIGVuIHBhZ2UnLCBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYmFycmVfMScpKSI+PGltZyBzcmM9J2VjcmlyZS9pbWdfcGFjay9pY29uZXNfYmFycmUvYWdyYXZlLW1hai5wbmcnIGhlaWdodD0nMTYnIHdpZHRoPScxNicgYWx0PSJJbnMmZWFjdXRlO3JlciB1biBBIGFjY2VudCBncmF2ZSBtYWp1c2N1bGUiIC8+PC9hPjxhIGhyZWY9ImphdmFzY3JpcHQ6YmFycmVfaW5zZXJlcignXHUwMGM5Jyxkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaW5wdXQtMS10ZXh0ZV8xJykpIgogY2xhc3M9J3NwaXBfYmFycmUnIHRhYmluZGV4PScxMDAwJyB0aXRsZT0iSW5zJmVhY3V0ZTtyZXIgdW4gRSBhY2NlbnQgYWlndSBtYWp1c2N1bGUiIG9ubW91c2VvdmVyPSJoZWxwbGluZSgnSW5zJmVhY3V0ZTtyZXIgdW4gRSBhY2NlbnQgYWlndSBtYWp1c2N1bGUnLGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdiYXJyZV8xJykpIiBvbm1vdXNlb3V0PSJoZWxwbGluZSgnVXRpbGlzZXogbGVzIHJhY2NvdXJjaXMgdHlwb2dyYXBoaXF1ZXMgcG91ciBlbnJpY2hpciB2b3RyZSBtaXNlIGVuIHBhZ2UnLCBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYmFycmVfMScpKSI+PGltZyBzcmM9J2VjcmlyZS9pbWdfcGFjay9pY29uZXNfYmFycmUvZWFjdXRlLW1hai5wbmcnIGhlaWdodD0nMTYnIHdpZHRoPScxNicgYWx0PSJJbnMmZWFjdXRlO3JlciB1biBFIGFjY2VudCBhaWd1IG1hanVzY3VsZSIgLz48L2E+PGEgaHJlZj0iamF2YXNjcmlwdDpiYXJyZV9pbnNlcmVyKCdcdTAwYzgnLGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdpbnB1dC0xLXRleHRlXzEnKSkiCiBjbGFzcz0nc3BpcF9iYXJyZScgdGFiaW5kZXg9JzEwMDAnIHRpdGxlPSJJbnMmZWFjdXRlO3JlciB1biBFIG1hanVzY3VsZSBhY2NlbnQgZ3JhdmUiIG9ubW91c2VvdmVyPSJoZWxwbGluZSgnSW5zJmVhY3V0ZTtyZXIgdW4gRSBtYWp1c2N1bGUgYWNjZW50IGdyYXZlJyxkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYmFycmVfMScpKSIgb25tb3VzZW91dD0iaGVscGxpbmUoJ1V0aWxpc2V6IGxlcyByYWNjb3VyY2lzIHR5cG9ncmFwaGlxdWVzIHBvdXIgZW5yaWNoaXIgdm90cmUgbWlzZSBlbiBwYWdlJywgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2JhcnJlXzEnKSkiPjxpbWcgc3JjPSdwbHVnaW5zL2ZvbmN0aW9ubmFsaXRlcy9iYXJyZV90eXBvX2Vjb2xvZ2lxdWUvaW1nX3BhY2svaWNvbmVzX2JhcnJlL2VhZ3JhdmUtbWFqLnBuZycgaGVpZ2h0PScxNicgd2lkdGg9JzE2JyBhbHQ9IklucyZlYWN1dGU7cmVyIHVuIEUgbWFqdXNjdWxlIGFjY2VudCBncmF2ZSIgLz48L2E+PGEgaHJlZj0iamF2YXNjcmlwdDpiYXJyZV9pbnNlcmVyKCdcdTAwZTYnLGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdpbnB1dC0xLXRleHRlXzEnKSkiCiBjbGFzcz0nc3BpcF9iYXJyZScgdGFiaW5kZXg9JzEwMDAnIHRpdGxlPSJJbnMmZWFjdXRlO3JlciB1biBFIGRhbnMgbCdBIiBvbm1vdXNlb3Zlcj0iaGVscGxpbmUoJ0lucyZlYWN1dGU7cmVyIHVuIEUgZGFucyBsXCdBJyxkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYmFycmVfMScpKSIgb25tb3VzZW91dD0iaGVscGxpbmUoJ1V0aWxpc2V6IGxlcyByYWNjb3VyY2lzIHR5cG9ncmFwaGlxdWVzIHBvdXIgZW5yaWNoaXIgdm90cmUgbWlzZSBlbiBwYWdlJywgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2JhcnJlXzEnKSkiPjxpbWcgc3JjPSdwbHVnaW5zL2ZvbmN0aW9ubmFsaXRlcy9iYXJyZV90eXBvX2Vjb2xvZ2lxdWUvaW1nX3BhY2svaWNvbmVzX2JhcnJlL2FlbGlnLnBuZycgaGVpZ2h0PScxNicgd2lkdGg9JzE2JyBhbHQ9IklucyZlYWN1dGU7cmVyIHVuIEUgZGFucyBsJ0EiIC8+PC9hPjxhIGhyZWY9ImphdmFzY3JpcHQ6YmFycmVfaW5zZXJlcignXHUwMGM2Jyxkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaW5wdXQtMS10ZXh0ZV8xJykpIgogY2xhc3M9J3NwaXBfYmFycmUnIHRhYmluZGV4PScxMDAwJyB0aXRsZT0iSW5zJmVhY3V0ZTtyZXIgdW4gRSBkYW5zIGwnQSBtYWp1c2N1bGUiIG9ubW91c2VvdmVyPSJoZWxwbGluZSgnSW5zJmVhY3V0ZTtyZXIgdW4gRSBkYW5zIGxcJ0EgbWFqdXNjdWxlJyxkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYmFycmVfMScpKSIgb25tb3VzZW91dD0iaGVscGxpbmUoJ1V0aWxpc2V6IGxlcyByYWNjb3VyY2lzIHR5cG9ncmFwaGlxdWVzIHBvdXIgZW5yaWNoaXIgdm90cmUgbWlzZSBlbiBwYWdlJywgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2JhcnJlXzEnKSkiPjxpbWcgc3JjPSdwbHVnaW5zL2ZvbmN0aW9ubmFsaXRlcy9iYXJyZV90eXBvX2Vjb2xvZ2lxdWUvaW1nX3BhY2svaWNvbmVzX2JhcnJlL2FlbGlnLW1hai5wbmcnIGhlaWdodD0nMTYnIHdpZHRoPScxNicgYWx0PSJJbnMmZWFjdXRlO3JlciB1biBFIGRhbnMgbCdBIG1hanVzY3VsZSIgLz48L2E+PGEgaHJlZj0iamF2YXNjcmlwdDpiYXJyZV9pbnNlcmVyKCcmb2VsaWc7Jyxkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaW5wdXQtMS10ZXh0ZV8xJykpIgogY2xhc3M9J3NwaXBfYmFycmUnIHRhYmluZGV4PScxMDAwJyB0aXRsZT0iSW5zJmVhY3V0ZTtyZXIgdW4gRSBkYW5zIGwnTyIgb25tb3VzZW92ZXI9ImhlbHBsaW5lKCdJbnMmZWFjdXRlO3JlciB1biBFIGRhbnMgbFwnTycsZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2JhcnJlXzEnKSkiIG9ubW91c2VvdXQ9ImhlbHBsaW5lKCdVdGlsaXNleiBsZXMgcmFjY291cmNpcyB0eXBvZ3JhcGhpcXVlcyBwb3VyIGVucmljaGlyIHZvdHJlIG1pc2UgZW4gcGFnZScsIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdiYXJyZV8xJykpIj48aW1nIHNyYz0nZWNyaXJlL2ltZ19wYWNrL2ljb25lc19iYXJyZS9vZWxpZy5wbmcnIGhlaWdodD0nMTYnIHdpZHRoPScxNicgYWx0PSJJbnMmZWFjdXRlO3JlciB1biBFIGRhbnMgbCdPIiAvPjwvYT48YSBocmVmPSJqYXZhc2NyaXB0OmJhcnJlX2luc2VyZXIoJyZPRWxpZzsnLGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdpbnB1dC0xLXRleHRlXzEnKSkiCiBjbGFzcz0nc3BpcF9iYXJyZScgdGFiaW5kZXg9JzEwMDAnIHRpdGxlPSJJbnMmZWFjdXRlO3JlciB1biBFIGRhbnMgbCdPIG1hanVzY3VsZSIgb25tb3VzZW92ZXI9ImhlbHBsaW5lKCdJbnMmZWFjdXRlO3JlciB1biBFIGRhbnMgbFwnTyBtYWp1c2N1bGUnLGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdiYXJyZV8xJykpIiBvbm1vdXNlb3V0PSJoZWxwbGluZSgnVXRpbGlzZXogbGVzIHJhY2NvdXJjaXMgdHlwb2dyYXBoaXF1ZXMgcG91ciBlbnJpY2hpciB2b3RyZSBtaXNlIGVuIHBhZ2UnLCBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYmFycmVfMScpKSI+PGltZyBzcmM9J2VjcmlyZS9pbWdfcGFjay9pY29uZXNfYmFycmUvb2VsaWctbWFqLnBuZycgaGVpZ2h0PScxNicgd2lkdGg9JzE2JyBhbHQ9IklucyZlYWN1dGU7cmVyIHVuIEUgZGFucyBsJ08gbWFqdXNjdWxlIiAvPjwvYT48YSBocmVmPSJqYXZhc2NyaXB0OmJhcnJlX2luc2VyZXIoJ1x1MDBjNycsZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2lucHV0LTEtdGV4dGVfMScpKSIKIGNsYXNzPSdzcGlwX2JhcnJlJyB0YWJpbmRleD0nMTAwMCcgdGl0bGU9IklucyZlYWN1dGU7cmVyIHVuIEMgYyZlYWN1dGU7ZGlsbGUgbWFqdXNjdWxlIiBvbm1vdXNlb3Zlcj0iaGVscGxpbmUoJ0lucyZlYWN1dGU7cmVyIHVuIEMgYyZlYWN1dGU7ZGlsbGUgbWFqdXNjdWxlJyxkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYmFycmVfMScpKSIgb25tb3VzZW91dD0iaGVscGxpbmUoJ1V0aWxpc2V6IGxlcyByYWNjb3VyY2lzIHR5cG9ncmFwaGlxdWVzIHBvdXIgZW5yaWNoaXIgdm90cmUgbWlzZSBlbiBwYWdlJywgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2JhcnJlXzEnKSkiPjxpbWcgc3JjPSdwbHVnaW5zL2ZvbmN0aW9ubmFsaXRlcy9iYXJyZV90eXBvX2Vjb2xvZ2lxdWUvaW1nX3BhY2svaWNvbmVzX2JhcnJlL2NjZWRpbC1tYWoucG5nJyBoZWlnaHQ9JzE2JyB3aWR0aD0nMTYnIGFsdD0iSW5zJmVhY3V0ZTtyZXIgdW4gQyBjJmVhY3V0ZTtkaWxsZSBtYWp1c2N1bGUiIC8+PC9hPjxhIGhyZWY9ImphdmFzY3JpcHQ6YmFycmVfaW5zZXJlcignJmV1cm87Jyxkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaW5wdXQtMS10ZXh0ZV8xJykpIgogY2xhc3M9J3NwaXBfYmFycmUnIHRhYmluZGV4PScxMDAwJyB0aXRsZT0iSW5zJmVhY3V0ZTtyZXIgbGUgc3ltYm9sZSAmZXVybzsiIG9ubW91c2VvdmVyPSJoZWxwbGluZSgnSW5zJmVhY3V0ZTtyZXIgbGUgc3ltYm9sZSAmZXVybzsnLGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdiYXJyZV8xJykpIiBvbm1vdXNlb3V0PSJoZWxwbGluZSgnVXRpbGlzZXogbGVzIHJhY2NvdXJjaXMgdHlwb2dyYXBoaXF1ZXMgcG91ciBlbnJpY2hpciB2b3RyZSBtaXNlIGVuIHBhZ2UnLCBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYmFycmVfMScpKSI+PGltZyBzcmM9J2VjcmlyZS9pbWdfcGFjay9pY29uZXNfYmFycmUvZXVyby5wbmcnIGhlaWdodD0nMTYnIHdpZHRoPScxNicgYWx0PSJJbnMmZWFjdXRlO3JlciBsZSBzeW1ib2xlICZldXJvOyIgLz48L2E+Jm5ic3A7DQogICAgPC90ZD4NCiAgPC90cj4gDQo8L3RhYmxlPg0KPGRpdiBzdHlsZT0nY2xlYXI6IGJvdGg7Jz48L2Rpdj48L2Rpdj48ZGl2IGlkPSdMYXllcjUnIHN0eWxlPSdkaXNwbGF5Om5vbmU7JyA+DQo8dGFibGUgY2xhc3M9InNwaXBfYmFycmUiIHN0eWxlPSJ3aWR0aDogYXV0bzsgcGFkZGluZzogMXB4IWltcG9ydGFudDsgYm9yZGVyLXRvcDogMHB4OyIgc3VtbWFyeT0iIj4NCjx0cj48dGQgc3R5bGU9IndpZHRoOiAyNSU7Ij5DaGVyY2hlcjxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJiYXJyZV9jaGVyY2hlciIgdmFsdWU9IiIgc2l6ZT0iMTIiIG1heGxlbmd0aD0iMjU1IiAvPjwvdGQ+PHRkIHN0eWxlPSJ3aWR0aDogMjAlOyI+DQo8aW5wdXQgdHlwZT0iY2hlY2tib3giIG5hbWU9InJlY19jYXNlIiB2YWx1ZT0ieWVzIiAvPlJlc3BlY3RlciBsYSBjYXNzZTxiciAvPjxpbnB1dCB0eXBlPSJjaGVja2JveCIgbmFtZT0icmVjX2VudGllciIgdmFsdWU9InllcyIgLz4NCk1vdCBlbnRpZXINCjwvdGQ+PHRkICBzdHlsZT0id2lkdGg6IDI1JTsiPlJlbXBsYWNlcjxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJiYXJyZV9yZW1wbGFjZXIiIHZhbHVlPSIiIHNpemU9IjEyIiBtYXhsZW5ndGg9IjI1NSIgLz4gDQo8L3RkPjx0ZCBzdHlsZT0id2lkdGg6IDIwJTsiPg0KPGlucHV0IHR5cGU9ImNoZWNrYm94IiBuYW1lPSJyZWNfdG91dCIgdmFsdWU9InllcyIgLz5Ub3V0IHJlbXBsYWNlcjwvdGQ+PHRkIHN0eWxlPSJ3aWR0aDogMTAlOyI+DQogICA8aW5wdXQgdHlwZT0iYnV0dG9uIiB2YWx1ZT0iT0siIGNsYXNzPSJmb25kbyINCiAgb25jbGljaz0iamF2YXNjcmlwdDpiYXJyZV9zZWFyY2hyZXBsYWNlKGRvY3VtZW50LmZvcm11bGFpcmUuYmFycmVfY2hlcmNoZXIudmFsdWUsIGRvY3VtZW50LmZvcm11bGFpcmUuYmFycmVfcmVtcGxhY2VyLnZhbHVlLCBkb2N1bWVudC5mb3JtdWxhaXJlLnJlY190b3V0LmNoZWNrZWQsIGRvY3VtZW50LmZvcm11bGFpcmUucmVjX2Nhc2UuY2hlY2tlZCwgZG9jdW1lbnQuZm9ybXVsYWlyZS5yZWNfZW50aWVyLmNoZWNrZWQsZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2lucHV0LTEtdGV4dGVfMScpKTsiIC8+IA0KPC90ZD48L3RyPjwvdGFibGU+PGRpdiBzdHlsZT0nY2xlYXI6IGJvdGg7Jz48L2Rpdj48L2Rpdj4KCTx0ZXh0YXJlYSBuYW1lPSd0ZXh0ZV8xJyByb3dzPScxMCcgY2xhc3M9J2Zvcm1vICAgJyBjb2xzPSc4MCcKCWlkPSdpbnB1dC0xLXRleHRlXzEnCglvbnNlbGVjdD0nc3RvcmVDYXJldCh0aGlzKTsnCglvbmNsaWNrPSdzdG9yZUNhcmV0KHRoaXMpOycKCW9ua2V5dXA9J3N0b3JlQ2FyZXQodGhpcyk7JwoJb25kYmxjbGljaz0nc3RvcmVDYXJldCh0aGlzKTsnPjwvdGV4dGFyZWE+CgkJCQkKCQkJCQoJCQkJCgkJCQkKCQkJCQoJCQkJCgkJCQkKCQkJCQoJCQkJCgkJCQk8c3BhbiBjbGFzcz0nbmV0dG95ZXVyJz4gPC9zcGFuPgoJCQkKCQk8L2Rpdj4KCQoKCgogCgkgCgkJCgkJCgkKCSAKCQk8ZGl2IGNsYXNzPSdzcGlwX2Zvcm1fY2hhbXAgdGV4dGVfMic+CgkJCQoJCQkgCgkJCQk8c3BhbiBjbGFzcz0nc3BpcF9mb3JtX2xhYmVsJz4KCQkJCQkgPGxhYmVsIGZvcj0iaW5wdXQtMS10ZXh0ZV8yIj5Wb3RyZSBRdWVzdGlvbjwvbGFiZWw+CgkJCQkJCgkJCQkJPHNwYW4gY2xhc3M9J3NwaXBfZm9ybV9sYWJlbF9vYmxpZ2F0b2lyZSc+CgkJCQkJCVtPYmxpZ2F0b2lyZV08L3NwYW4+CgkJCQkJOgoJCQkJPC9zcGFuPgoJCQkJCgkJCQkKCQkJCQoJCQkJCgkJCQkgIDx0YWJsZSBjbGFzcz0nc3BpcF9iYXJyZScgc3R5bGU9J3dpZHRoOmF1dG87JyBjZWxscGFkZGluZz0nMCcgY2VsbHNwYWNpbmc9JzAnIGJvcmRlcj0nMCcgc3VtbWFyeT0nJz4KPHRyIHN0eWxlPSd3aWR0aDogYXV0bzsnIGNsYXNzPSdzcGlwX2JhcnJlJz4KPHRkIHN0eWxlPSd0ZXh0LWFsaWduOiBsZWZ0OycgdmFsaWduPSdtaWRkbGUnPjxhIGhyZWY9ImphdmFzY3JpcHQ6YmFycmVfcmFjY291cmNpKCd7JywnfScsZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2lucHV0LTEtdGV4dGVfMicpKSIKIGNsYXNzPSdzcGlwX2JhcnJlJyB0YWJpbmRleD0nMTAwMCcgdGl0bGU9Ik1ldHRyZSBlbiB7aXRhbGlxdWV9IiBvbm1vdXNlb3Zlcj0iaGVscGxpbmUoJ01ldHRyZSBlbiB7aXRhbGlxdWV9Jyxkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYmFycmVfMicpKSIgb25tb3VzZW91dD0iaGVscGxpbmUoJ1V0aWxpc2V6IGxlcyByYWNjb3VyY2lzIHR5cG9ncmFwaGlxdWVzIHBvdXIgZW5yaWNoaXIgdm90cmUgbWlzZSBlbiBwYWdlJywgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2JhcnJlXzInKSkiPjxpbWcgc3JjPSdlY3JpcmUvaW1nX3BhY2svaWNvbmVzX2JhcnJlL2l0YWxpcXVlLnBuZycgaGVpZ2h0PScxNicgd2lkdGg9JzE2JyBhbHQ9Ik1ldHRyZSBlbiB7aXRhbGlxdWV9IiAvPjwvYT48YSBocmVmPSJqYXZhc2NyaXB0OmJhcnJlX3JhY2NvdXJjaSgne3snLCd9fScsZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2lucHV0LTEtdGV4dGVfMicpKSIKIGNsYXNzPSdzcGlwX2JhcnJlJyB0YWJpbmRleD0nMTAwMCcgdGl0bGU9Ik1ldHRyZSBlbiB7e2dyYXN9fSIgb25tb3VzZW92ZXI9ImhlbHBsaW5lKCdNZXR0cmUgZW4ge3tncmFzfX0nLGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdiYXJyZV8yJykpIiBvbm1vdXNlb3V0PSJoZWxwbGluZSgnVXRpbGlzZXogbGVzIHJhY2NvdXJjaXMgdHlwb2dyYXBoaXF1ZXMgcG91ciBlbnJpY2hpciB2b3RyZSBtaXNlIGVuIHBhZ2UnLCBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYmFycmVfMicpKSI+PGltZyBzcmM9J2VjcmlyZS9pbWdfcGFjay9pY29uZXNfYmFycmUvZ3Jhcy5wbmcnIGhlaWdodD0nMTYnIHdpZHRoPScxNicgYWx0PSJNZXR0cmUgZW4ge3tncmFzfX0iIC8+PC9hPiZuYnNwOzwvdGQ+Cjx0ZD48YSBocmVmPSJqYXZhc2NyaXB0OnN3YXBfY291Y2hlKCc3JywnJyk7IgogY2xhc3M9J3NwaXBfYmFycmUnIHRhYmluZGV4PScxMDAwJyB0aXRsZT0iVHJhbnNmb3JtZXIgZW4gW2xpZW4gaHlwZXJ0ZXh0ZS0+aHR0cDovLy4uLl0iIG9ubW91c2VvdmVyPSJoZWxwbGluZSgnVHJhbnNmb3JtZXIgZW4gW2xpZW4gaHlwZXJ0ZXh0ZS0+aHR0cDovLy4uLl0nLGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdiYXJyZV8yJykpIiBvbm1vdXNlb3V0PSJoZWxwbGluZSgnVXRpbGlzZXogbGVzIHJhY2NvdXJjaXMgdHlwb2dyYXBoaXF1ZXMgcG91ciBlbnJpY2hpciB2b3RyZSBtaXNlIGVuIHBhZ2UnLCBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYmFycmVfMicpKSI+PGltZyBzcmM9J2VjcmlyZS9pbWdfcGFjay9pY29uZXNfYmFycmUvbGllbi5wbmcnIGhlaWdodD0nMTYnIHdpZHRoPScxNicgYWx0PSJUcmFuc2Zvcm1lciBlbiBbbGllbiBoeXBlcnRleHRlLT5odHRwOi8vLi4uXSIgLz48L2E+Jm5ic3A7PC90ZD4KPHRkPjxhIGhyZWY9ImphdmFzY3JpcHQ6YmFycmVfcmFjY291cmNpKCclNUNuJTVDbiUzQ3F1b3RlJTNFJywnJTNDL3F1b3RlJTNFJTVDbiU1Q24nLGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdpbnB1dC0xLXRleHRlXzInKSkiCiBjbGFzcz0nc3BpcF9iYXJyZScgdGFiaW5kZXg9JzEwMDAnIHRpdGxlPSJDaXRlciB1biBtZXNzYWdlIiBvbm1vdXNlb3Zlcj0iaGVscGxpbmUoJ0NpdGVyIHVuIG1lc3NhZ2UnLGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdiYXJyZV8yJykpIiBvbm1vdXNlb3V0PSJoZWxwbGluZSgnVXRpbGlzZXogbGVzIHJhY2NvdXJjaXMgdHlwb2dyYXBoaXF1ZXMgcG91ciBlbnJpY2hpciB2b3RyZSBtaXNlIGVuIHBhZ2UnLCBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYmFycmVfMicpKSI+PGltZyBzcmM9J2VjcmlyZS9pbWdfcGFjay9pY29uZXNfYmFycmUvcXVvdGUucG5nJyBoZWlnaHQ9JzE2JyB3aWR0aD0nMTYnIGFsdD0iQ2l0ZXIgdW4gbWVzc2FnZSIgLz48L2E+Jm5ic3A7PC90ZD4KPHRkIHN0eWxlPSd0ZXh0LWFsaWduOmxlZnQ7JyB2YWxpZ249J21pZGRsZSc+PGEgaHJlZj0iamF2YXNjcmlwdDpzd2FwX2NvdWNoZSgnOScsJycpOyIKIGNsYXNzPSdzcGlwX2JhcnJlJyB0YWJpbmRleD0nMTAwMCcgdGl0bGU9IkNhcmFjdCZlZ3JhdmU7cmVzIHNwJmVhY3V0ZTtjaWF1eCIgb25tb3VzZW92ZXI9ImhlbHBsaW5lKCdDYXJhY3QmZWdyYXZlO3JlcyBzcCZlYWN1dGU7Y2lhdXgnLGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdiYXJyZV8yJykpIiBvbm1vdXNlb3V0PSJoZWxwbGluZSgnVXRpbGlzZXogbGVzIHJhY2NvdXJjaXMgdHlwb2dyYXBoaXF1ZXMgcG91ciBlbnJpY2hpciB2b3RyZSBtaXNlIGVuIHBhZ2UnLCBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYmFycmVfMicpKSI+PGltZyBzcmM9J3BsdWdpbnMvZm9uY3Rpb25uYWxpdGVzL2JhcnJlX3R5cG9fZWNvbG9naXF1ZS9pbWdfcGFjay9pY29uZXNfYmFycmUvY2xhdmllci5wbmcnIGhlaWdodD0nMTYnIHdpZHRoPScxNicgYWx0PSJDYXJhY3QmZWdyYXZlO3JlcyBzcCZlYWN1dGU7Y2lhdXgiIC8+PC9hPiZuYnNwOzwvdGQ+PC90cj4KPHRyPgo8dGQgY29sc3Bhbj0nNic+PGlucHV0IGRpc2FibGVkPSdkaXNhYmxlZCcgdHlwZT0ndGV4dCcgaWQ9J2JhcnJlXzInIHNpemU9JzQ1JyBtYXhsZW5ndGg9JzEwMCcgc3R5bGU9J3dpZHRoOmF1dG87IGZvbnQtc2l6ZToxMXB4OyBjb2xvcjogYmxhY2s7IGJhY2tncm91bmQtY29sb3I6ICNlNGU0ZTQ7IGJvcmRlcjogMHB4IHNvbGlkICNkZWRlZGU7Jwp2YWx1ZT0iVXRpbGlzZXogbGVzIHJhY2NvdXJjaXMgdHlwb2dyYXBoaXF1ZXMgcG91ciBlbnJpY2hpciB2b3RyZSBtaXNlIGVuIHBhZ2UiIC8+PC90ZD48L3RyPjwvdGFibGU+PGRpdiBpZD0nTGF5ZXI2JyBzdHlsZT0nZGlzcGxheTpub25lOycgPjx0YWJsZSBjbGFzcz0ic3BpcF9iYXJyZSIgc3R5bGU9IndpZHRoOiBhdXRvOyBwYWRkaW5nOiAxcHghaW1wb3J0YW50OyBib3JkZXItdG9wOiAwcHg7IiBzdW1tYXJ5PSIiPg0KPHRyPjx0ZD4NCk5iIGNvbG9ubmVzOiA8aW5wdXQgdHlwZT0idGV4dCIgbmFtZT0iYmFycmVfbmJjb2xvbmVzIiBzdHlsZT0id2lkdGg6IDMwcHg7IiB2YWx1ZT0iMiIgc2l6ZT0iMiIgbWF4bGVuZ3RoPSIyIiAgIC8+PC90ZD48dGQ+DQpOYiBsaWduZXM6IDxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJiYXJyZV9uYnJhbmdzIiBzdHlsZT0id2lkdGg6IDMwcHg7IiB2YWx1ZT0iMiIgc2l6ZT0iMiIgbWF4bGVuZ3RoPSIyIiAvPjwvdGQ+PHRkPg0KPGlucHV0IHR5cGU9ImNoZWNrYm94IiBuYW1lPSJiYXJyZV9kb2VudGV0ZSIgdmFsdWU9Ii0xIiBjaGVja2VkPSJjaGVja2VkIiAvPiBFbnRldGU8L3RkPjx0ZD4NCjxpbnB1dCB0eXBlPSJjaGVja2JveCIgbmFtZT0iYmFycmVfZG9jYXB0aW9uIiB2YWx1ZT0iLTEiIGNoZWNrZWQ9ImNoZWNrZWQiIC8+IENhcHRpb24gZXQgUiZlYWN1dGU7c3VtJmVhY3V0ZTs8L3RkPjx0ZD4NCiAgPGlucHV0IHR5cGU9ImJ1dHRvbiIgdmFsdWU9Ik9LIiBjbGFzcz0iZm9uZG8iIG9uY2xpY2s9ImphdmFzY3JpcHQ6DQogICAgYmFycmVfbmJjb2xvbmVzLnZhbHVlID0gTWF0aC5hYnMoYmFycmVfbmJjb2xvbmVzLnZhbHVlKTsgYmFycmVfbmJyYW5ncy52YWx1ZQ0KICAgID0gTWF0aC5hYnMoYmFycmVfbmJyYW5ncy52YWx1ZSk7DQogICAgaWYgKCEoYmFycmVfbmJjb2xvbmVzLnZhbHVlID09IDAgfHwgYmFycmVfbmJyYW5ncy52YWx1ZSA9PSAwKSkgew0KICAgIGJhcnJlX3RhYmxlYXUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2lucHV0LTEtdGV4dGVfMicpLCBiYXJyZV9uYmNvbG9uZXMudmFsdWUsIGJhcnJlX25icmFuZ3MudmFsdWUsDQogICAgYmFycmVfZG9lbnRldGUuY2hlY2tlZCwgYmFycmVfZG9jYXB0aW9uLmNoZWNrZWQpOyB9ICIgLz4gDQo8L3RkPjwvdHI+PC90YWJsZT4NCjxkaXYgc3R5bGU9J2NsZWFyOiBib3RoOyc+PC9kaXY+PC9kaXY+PGRpdiBpZD0nTGF5ZXI3JyBzdHlsZT0nZGlzcGxheTpub25lOycgPg0KIDx0YWJsZSBjbGFzcz0ic3BpcF9iYXJyZSIgc3R5bGU9IndpZHRoOiBhdXRvOyBwYWRkaW5nOiAxcHghaW1wb3J0YW50OyBib3JkZXItdG9wOiAwcHg7IiBzdW1tYXJ5PSIiPg0KPHRyPjx0ZD4gDQpBZHJlc3NlJm5ic3A7OiA8aW5wdXQgdHlwZT0idGV4dCIgbmFtZT0ibGllbl9ub20iIHZhbHVlPSJodHRwOi8vIiBzaXplPSIyMSIgbWF4bGVuZ3RoPSIyNTUiIC8+PGJyIC8+DQpCdWxsZSBkJ2FpZGUmbmJzcDs6IDxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJsaWVuX2J1bGxlIiB2YWx1ZT0iIiBzaXplPSIyMSIgbWF4bGVuZ3RoPSIyNTUiIC8+DQo8L3RkPjx0ZD4NCkxhbmd1ZSBhYnImZWFjdXRlO2cmZWFjdXRlO2UmbmJzcDs6IDxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJsaWVuX2xhbmd1ZSIgdmFsdWU9IiIgc2l6ZT0iMTAiIG1heGxlbmd0aD0iMTAiIC8+DQo8L3RkPjx0ZD4NCiAgPGlucHV0IHR5cGU9ImJ1dHRvbiIgdmFsdWU9Ik9LIiBjbGFzcz0iZm9uZG8iIG9uY2xpY2s9ImphdmFzY3JpcHQ6YmFycmVfZGVtYW5kZV9saWVuKCdbJywgJy0+JywgJ10nLCBsaWVuX25vbS52YWx1ZSwgbGllbl9idWxsZS52YWx1ZSwgbGllbl9sYW5ndWUudmFsdWUsZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2lucHV0LTEtdGV4dGVfMicpKTsiIC8+IA0KPC90ZD48L3RyPjwvdGFibGU+DQo8ZGl2IHN0eWxlPSdjbGVhcjogYm90aDsnPjwvZGl2PjwvZGl2PjxkaXYgaWQ9J0xheWVyOCcgc3R5bGU9J2Rpc3BsYXk6bm9uZTsnID4NCjx0YWJsZSBjbGFzcz0ic3BpcF9iYXJyZSIgc3R5bGU9IndpZHRoOiBhdXRvOyBwYWRkaW5nOiAxcHghaW1wb3J0YW50OyBib3JkZXItdG9wOiAwcHg7IiBzdW1tYXJ5PSIiPg0KICA8dHI+DQogICAgPHRkIHN0eWxlPSJ3aWR0aDphdXRvOyB0ZXh0LWFsaWduOmNlbnRlcjsiPjxzdHJvbmc+R2VzdGlvbiBkZXMgYW5jcmVzPC9zdHJvbmc+PC90ZD4NCiAgICA8dGQgc3R5bGU9IndpZHRoOmF1dG87Ij48c3Ryb25nPlRyYW5zZm9ybWVyIGVuIGFuY3JlPC9zdHJvbmc+PGJyIC8+DQogICAgPGxhYmVsIGZvcj0iYW5jcmVfbm9tIj48aT5Ob20gZGUgbCdhbmNyZTwvaT48L2xhYmVsPiA8YnIgLz4NCiAgICAgIDxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJhbmNyZV9ub20iIGlkPSJhbmNyZV9ub20iIC8+DQoJICANCgk8aW5wdXQgdHlwZT0iYnV0dG9uIiB2YWx1ZT0iT0siIGNsYXNzPSJmb25kbyIgb25jbGljaz0iamF2YXNjcmlwdDpiYXJyZV9hbmNyZSgnWycsICc8LScsICddJywgYW5jcmVfbm9tLnZhbHVlLCBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaW5wdXQtMS10ZXh0ZV8yJykpOyIgLz4NCiAgICA8L3RkPg0KCTx0ZCBzdHlsZT0id2lkdGg6YXV0bzsiPjxzdHJvbmc+UG9pbnRlciB2ZXJzIHVuZSBhbmNyZTwvc3Ryb25nPjxiciAvPg0KICAgIDxsYWJlbCBmb3I9ImFuY3JlX2NpYmxlIj48aT5BbmNyZSBjaWJsZTwvaT48L2xhYmVsPiA8aW5wdXQgdHlwZT0idGV4dCIgbmFtZT0iYW5jcmVfY2libGUiIGlkPSJhbmNyZV9jaWJsZSIgLz48YnIgLz4NCgk8bGFiZWwgZm9yPSJhbmNyZV9idWxsZSI+PGk+QnVsbGUgZCdhaWRlIGFuY3JlPC9pPjwvbGFiZWw+IDxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJhbmNyZV9idWxsZSIgaWQ9ImFuY3JlX2J1bGxlIiAvPg0KCTxpbnB1dCB0eXBlPSJidXR0b24iIHZhbHVlPSJPSyIgY2xhc3M9ImZvbmRvIiBvbmNsaWNrPSJqYXZhc2NyaXB0OmJhcnJlX2RlbWFuZGUoJ1snLCAnLT4jJywgJ10nLCBhbmNyZV9jaWJsZS52YWx1ZSwgYW5jcmVfYnVsbGUudmFsdWUsIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdpbnB1dC0xLXRleHRlXzInKSk7IiAvPiANCjwvdGQ+DQogIDwvdHI+IA0KPC90YWJsZT48ZGl2IHN0eWxlPSdjbGVhcjogYm90aDsnPjwvZGl2PjwvZGl2PjxkaXYgaWQ9J0xheWVyOScgc3R5bGU9J2Rpc3BsYXk6bm9uZTsnID4NCjx0YWJsZSBjbGFzcz0ic3BpcF9iYXJyZSIgc3R5bGU9IndpZHRoOiBhdXRvOyBwYWRkaW5nOiAxcHghaW1wb3J0YW50OyBib3JkZXItdG9wOiAwcHg7IiBzdW1tYXJ5PSIiPg0KICA8dHIgY2xhc3M9InNwaXBfYmFycmUiPg0KICAgIDx0ZCBzdHlsZT0id2lkdGg6MzAlOyI+Q2FyYWN0JmVncmF2ZTtyZXMgc3AmZWFjdXRlO2NpYXV4PC90ZD4NCiAgICA8dGQ+PGEgaHJlZj0iamF2YXNjcmlwdDpiYXJyZV9yYWNjb3VyY2koJ1x1MDBhYn4nLCd+XHUwMGJiJyxkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaW5wdXQtMS10ZXh0ZV8yJykpIgogY2xhc3M9J3NwaXBfYmFycmUnIHRhYmluZGV4PScxMDAwJyB0aXRsZT0iRW50b3VyZXIgZGUgJmxhcXVvOyBndWlsbGVtZXRzICZyYXF1bzsiIG9ubW91c2VvdmVyPSJoZWxwbGluZSgnRW50b3VyZXIgZGUgJmxhcXVvOyBndWlsbGVtZXRzICZyYXF1bzsnLGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdiYXJyZV8yJykpIiBvbm1vdXNlb3V0PSJoZWxwbGluZSgnVXRpbGlzZXogbGVzIHJhY2NvdXJjaXMgdHlwb2dyYXBoaXF1ZXMgcG91ciBlbnJpY2hpciB2b3RyZSBtaXNlIGVuIHBhZ2UnLCBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYmFycmVfMicpKSI+PGltZyBzcmM9J2VjcmlyZS9pbWdfcGFjay9pY29uZXNfYmFycmUvZ3VpbGxlbWV0cy5wbmcnIGhlaWdodD0nMTYnIHdpZHRoPScxNicgYWx0PSJFbnRvdXJlciBkZSAmbGFxdW87IGd1aWxsZW1ldHMgJnJhcXVvOyIgLz48L2E+PGEgaHJlZj0iamF2YXNjcmlwdDpiYXJyZV9yYWNjb3VyY2koJ1x1MDA5MycsJ1x1MDA5NCcsZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2lucHV0LTEtdGV4dGVfMicpKSIKIGNsYXNzPSdzcGlwX2JhcnJlJyB0YWJpbmRleD0nMTAwMCcgdGl0bGU9IkVudG91cmVyIGRlICZsZHF1bztndWlsbGVtZXRzIGRlIHNlY29uZCBuaXZlYXUmcmRxdW87IiBvbm1vdXNlb3Zlcj0iaGVscGxpbmUoJ0VudG91cmVyIGRlICZsZHF1bztndWlsbGVtZXRzIGRlIHNlY29uZCBuaXZlYXUmcmRxdW87Jyxkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYmFycmVfMicpKSIgb25tb3VzZW91dD0iaGVscGxpbmUoJ1V0aWxpc2V6IGxlcyByYWNjb3VyY2lzIHR5cG9ncmFwaGlxdWVzIHBvdXIgZW5yaWNoaXIgdm90cmUgbWlzZSBlbiBwYWdlJywgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2JhcnJlXzInKSkiPjxpbWcgc3JjPSdlY3JpcmUvaW1nX3BhY2svaWNvbmVzX2JhcnJlL2d1aWxsZW1ldHMtc2ltcGxlcy5wbmcnIGhlaWdodD0nMTYnIHdpZHRoPScxNicgYWx0PSJFbnRvdXJlciBkZSAmbGRxdW87Z3VpbGxlbWV0cyBkZSBzZWNvbmQgbml2ZWF1JnJkcXVvOyIgLz48L2E+PGEgaHJlZj0iamF2YXNjcmlwdDpiYXJyZV9pbnNlcmVyKCdcdTAwYzAnLGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdpbnB1dC0xLXRleHRlXzInKSkiCiBjbGFzcz0nc3BpcF9iYXJyZScgdGFiaW5kZXg9JzEwMDAnIHRpdGxlPSJJbnMmZWFjdXRlO3JlciB1biBBIGFjY2VudCBncmF2ZSBtYWp1c2N1bGUiIG9ubW91c2VvdmVyPSJoZWxwbGluZSgnSW5zJmVhY3V0ZTtyZXIgdW4gQSBhY2NlbnQgZ3JhdmUgbWFqdXNjdWxlJyxkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYmFycmVfMicpKSIgb25tb3VzZW91dD0iaGVscGxpbmUoJ1V0aWxpc2V6IGxlcyByYWNjb3VyY2lzIHR5cG9ncmFwaGlxdWVzIHBvdXIgZW5yaWNoaXIgdm90cmUgbWlzZSBlbiBwYWdlJywgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2JhcnJlXzInKSkiPjxpbWcgc3JjPSdlY3JpcmUvaW1nX3BhY2svaWNvbmVzX2JhcnJlL2FncmF2ZS1tYWoucG5nJyBoZWlnaHQ9JzE2JyB3aWR0aD0nMTYnIGFsdD0iSW5zJmVhY3V0ZTtyZXIgdW4gQSBhY2NlbnQgZ3JhdmUgbWFqdXNjdWxlIiAvPjwvYT48YSBocmVmPSJqYXZhc2NyaXB0OmJhcnJlX2luc2VyZXIoJ1x1MDBjOScsZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2lucHV0LTEtdGV4dGVfMicpKSIKIGNsYXNzPSdzcGlwX2JhcnJlJyB0YWJpbmRleD0nMTAwMCcgdGl0bGU9IklucyZlYWN1dGU7cmVyIHVuIEUgYWNjZW50IGFpZ3UgbWFqdXNjdWxlIiBvbm1vdXNlb3Zlcj0iaGVscGxpbmUoJ0lucyZlYWN1dGU7cmVyIHVuIEUgYWNjZW50IGFpZ3UgbWFqdXNjdWxlJyxkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYmFycmVfMicpKSIgb25tb3VzZW91dD0iaGVscGxpbmUoJ1V0aWxpc2V6IGxlcyByYWNjb3VyY2lzIHR5cG9ncmFwaGlxdWVzIHBvdXIgZW5yaWNoaXIgdm90cmUgbWlzZSBlbiBwYWdlJywgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2JhcnJlXzInKSkiPjxpbWcgc3JjPSdlY3JpcmUvaW1nX3BhY2svaWNvbmVzX2JhcnJlL2VhY3V0ZS1tYWoucG5nJyBoZWlnaHQ9JzE2JyB3aWR0aD0nMTYnIGFsdD0iSW5zJmVhY3V0ZTtyZXIgdW4gRSBhY2NlbnQgYWlndSBtYWp1c2N1bGUiIC8+PC9hPjxhIGhyZWY9ImphdmFzY3JpcHQ6YmFycmVfaW5zZXJlcignXHUwMGM4Jyxkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaW5wdXQtMS10ZXh0ZV8yJykpIgogY2xhc3M9J3NwaXBfYmFycmUnIHRhYmluZGV4PScxMDAwJyB0aXRsZT0iSW5zJmVhY3V0ZTtyZXIgdW4gRSBtYWp1c2N1bGUgYWNjZW50IGdyYXZlIiBvbm1vdXNlb3Zlcj0iaGVscGxpbmUoJ0lucyZlYWN1dGU7cmVyIHVuIEUgbWFqdXNjdWxlIGFjY2VudCBncmF2ZScsZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2JhcnJlXzInKSkiIG9ubW91c2VvdXQ9ImhlbHBsaW5lKCdVdGlsaXNleiBsZXMgcmFjY291cmNpcyB0eXBvZ3JhcGhpcXVlcyBwb3VyIGVucmljaGlyIHZvdHJlIG1pc2UgZW4gcGFnZScsIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdiYXJyZV8yJykpIj48aW1nIHNyYz0ncGx1Z2lucy9mb25jdGlvbm5hbGl0ZXMvYmFycmVfdHlwb19lY29sb2dpcXVlL2ltZ19wYWNrL2ljb25lc19iYXJyZS9lYWdyYXZlLW1hai5wbmcnIGhlaWdodD0nMTYnIHdpZHRoPScxNicgYWx0PSJJbnMmZWFjdXRlO3JlciB1biBFIG1hanVzY3VsZSBhY2NlbnQgZ3JhdmUiIC8+PC9hPjxhIGhyZWY9ImphdmFzY3JpcHQ6YmFycmVfaW5zZXJlcignXHUwMGU2Jyxkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaW5wdXQtMS10ZXh0ZV8yJykpIgogY2xhc3M9J3NwaXBfYmFycmUnIHRhYmluZGV4PScxMDAwJyB0aXRsZT0iSW5zJmVhY3V0ZTtyZXIgdW4gRSBkYW5zIGwnQSIgb25tb3VzZW92ZXI9ImhlbHBsaW5lKCdJbnMmZWFjdXRlO3JlciB1biBFIGRhbnMgbFwnQScsZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2JhcnJlXzInKSkiIG9ubW91c2VvdXQ9ImhlbHBsaW5lKCdVdGlsaXNleiBsZXMgcmFjY291cmNpcyB0eXBvZ3JhcGhpcXVlcyBwb3VyIGVucmljaGlyIHZvdHJlIG1pc2UgZW4gcGFnZScsIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdiYXJyZV8yJykpIj48aW1nIHNyYz0ncGx1Z2lucy9mb25jdGlvbm5hbGl0ZXMvYmFycmVfdHlwb19lY29sb2dpcXVlL2ltZ19wYWNrL2ljb25lc19iYXJyZS9hZWxpZy5wbmcnIGhlaWdodD0nMTYnIHdpZHRoPScxNicgYWx0PSJJbnMmZWFjdXRlO3JlciB1biBFIGRhbnMgbCdBIiAvPjwvYT48YSBocmVmPSJqYXZhc2NyaXB0OmJhcnJlX2luc2VyZXIoJ1x1MDBjNicsZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2lucHV0LTEtdGV4dGVfMicpKSIKIGNsYXNzPSdzcGlwX2JhcnJlJyB0YWJpbmRleD0nMTAwMCcgdGl0bGU9IklucyZlYWN1dGU7cmVyIHVuIEUgZGFucyBsJ0EgbWFqdXNjdWxlIiBvbm1vdXNlb3Zlcj0iaGVscGxpbmUoJ0lucyZlYWN1dGU7cmVyIHVuIEUgZGFucyBsXCdBIG1hanVzY3VsZScsZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2JhcnJlXzInKSkiIG9ubW91c2VvdXQ9ImhlbHBsaW5lKCdVdGlsaXNleiBsZXMgcmFjY291cmNpcyB0eXBvZ3JhcGhpcXVlcyBwb3VyIGVucmljaGlyIHZvdHJlIG1pc2UgZW4gcGFnZScsIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdiYXJyZV8yJykpIj48aW1nIHNyYz0ncGx1Z2lucy9mb25jdGlvbm5hbGl0ZXMvYmFycmVfdHlwb19lY29sb2dpcXVlL2ltZ19wYWNrL2ljb25lc19iYXJyZS9hZWxpZy1tYWoucG5nJyBoZWlnaHQ9JzE2JyB3aWR0aD0nMTYnIGFsdD0iSW5zJmVhY3V0ZTtyZXIgdW4gRSBkYW5zIGwnQSBtYWp1c2N1bGUiIC8+PC9hPjxhIGhyZWY9ImphdmFzY3JpcHQ6YmFycmVfaW5zZXJlcignJm9lbGlnOycsZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2lucHV0LTEtdGV4dGVfMicpKSIKIGNsYXNzPSdzcGlwX2JhcnJlJyB0YWJpbmRleD0nMTAwMCcgdGl0bGU9IklucyZlYWN1dGU7cmVyIHVuIEUgZGFucyBsJ08iIG9ubW91c2VvdmVyPSJoZWxwbGluZSgnSW5zJmVhY3V0ZTtyZXIgdW4gRSBkYW5zIGxcJ08nLGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdiYXJyZV8yJykpIiBvbm1vdXNlb3V0PSJoZWxwbGluZSgnVXRpbGlzZXogbGVzIHJhY2NvdXJjaXMgdHlwb2dyYXBoaXF1ZXMgcG91ciBlbnJpY2hpciB2b3RyZSBtaXNlIGVuIHBhZ2UnLCBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYmFycmVfMicpKSI+PGltZyBzcmM9J2VjcmlyZS9pbWdfcGFjay9pY29uZXNfYmFycmUvb2VsaWcucG5nJyBoZWlnaHQ9JzE2JyB3aWR0aD0nMTYnIGFsdD0iSW5zJmVhY3V0ZTtyZXIgdW4gRSBkYW5zIGwnTyIgLz48L2E+PGEgaHJlZj0iamF2YXNjcmlwdDpiYXJyZV9pbnNlcmVyKCcmT0VsaWc7Jyxkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaW5wdXQtMS10ZXh0ZV8yJykpIgogY2xhc3M9J3NwaXBfYmFycmUnIHRhYmluZGV4PScxMDAwJyB0aXRsZT0iSW5zJmVhY3V0ZTtyZXIgdW4gRSBkYW5zIGwnTyBtYWp1c2N1bGUiIG9ubW91c2VvdmVyPSJoZWxwbGluZSgnSW5zJmVhY3V0ZTtyZXIgdW4gRSBkYW5zIGxcJ08gbWFqdXNjdWxlJyxkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYmFycmVfMicpKSIgb25tb3VzZW91dD0iaGVscGxpbmUoJ1V0aWxpc2V6IGxlcyByYWNjb3VyY2lzIHR5cG9ncmFwaGlxdWVzIHBvdXIgZW5yaWNoaXIgdm90cmUgbWlzZSBlbiBwYWdlJywgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2JhcnJlXzInKSkiPjxpbWcgc3JjPSdlY3JpcmUvaW1nX3BhY2svaWNvbmVzX2JhcnJlL29lbGlnLW1hai5wbmcnIGhlaWdodD0nMTYnIHdpZHRoPScxNicgYWx0PSJJbnMmZWFjdXRlO3JlciB1biBFIGRhbnMgbCdPIG1hanVzY3VsZSIgLz48L2E+PGEgaHJlZj0iamF2YXNjcmlwdDpiYXJyZV9pbnNlcmVyKCdcdTAwYzcnLGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdpbnB1dC0xLXRleHRlXzInKSkiCiBjbGFzcz0nc3BpcF9iYXJyZScgdGFiaW5kZXg9JzEwMDAnIHRpdGxlPSJJbnMmZWFjdXRlO3JlciB1biBDIGMmZWFjdXRlO2RpbGxlIG1hanVzY3VsZSIgb25tb3VzZW92ZXI9ImhlbHBsaW5lKCdJbnMmZWFjdXRlO3JlciB1biBDIGMmZWFjdXRlO2RpbGxlIG1hanVzY3VsZScsZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2JhcnJlXzInKSkiIG9ubW91c2VvdXQ9ImhlbHBsaW5lKCdVdGlsaXNleiBsZXMgcmFjY291cmNpcyB0eXBvZ3JhcGhpcXVlcyBwb3VyIGVucmljaGlyIHZvdHJlIG1pc2UgZW4gcGFnZScsIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdiYXJyZV8yJykpIj48aW1nIHNyYz0ncGx1Z2lucy9mb25jdGlvbm5hbGl0ZXMvYmFycmVfdHlwb19lY29sb2dpcXVlL2ltZ19wYWNrL2ljb25lc19iYXJyZS9jY2VkaWwtbWFqLnBuZycgaGVpZ2h0PScxNicgd2lkdGg9JzE2JyBhbHQ9IklucyZlYWN1dGU7cmVyIHVuIEMgYyZlYWN1dGU7ZGlsbGUgbWFqdXNjdWxlIiAvPjwvYT48YSBocmVmPSJqYXZhc2NyaXB0OmJhcnJlX2luc2VyZXIoJyZldXJvOycsZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2lucHV0LTEtdGV4dGVfMicpKSIKIGNsYXNzPSdzcGlwX2JhcnJlJyB0YWJpbmRleD0nMTAwMCcgdGl0bGU9IklucyZlYWN1dGU7cmVyIGxlIHN5bWJvbGUgJmV1cm87IiBvbm1vdXNlb3Zlcj0iaGVscGxpbmUoJ0lucyZlYWN1dGU7cmVyIGxlIHN5bWJvbGUgJmV1cm87Jyxkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYmFycmVfMicpKSIgb25tb3VzZW91dD0iaGVscGxpbmUoJ1V0aWxpc2V6IGxlcyByYWNjb3VyY2lzIHR5cG9ncmFwaGlxdWVzIHBvdXIgZW5yaWNoaXIgdm90cmUgbWlzZSBlbiBwYWdlJywgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2JhcnJlXzInKSkiPjxpbWcgc3JjPSdlY3JpcmUvaW1nX3BhY2svaWNvbmVzX2JhcnJlL2V1cm8ucG5nJyBoZWlnaHQ9JzE2JyB3aWR0aD0nMTYnIGFsdD0iSW5zJmVhY3V0ZTtyZXIgbGUgc3ltYm9sZSAmZXVybzsiIC8+PC9hPiZuYnNwOw0KICAgIDwvdGQ+DQogIDwvdHI+IA0KPC90YWJsZT4NCjxkaXYgc3R5bGU9J2NsZWFyOiBib3RoOyc+PC9kaXY+PC9kaXY+PGRpdiBpZD0nTGF5ZXIxMCcgc3R5bGU9J2Rpc3BsYXk6bm9uZTsnID4NCjx0YWJsZSBjbGFzcz0ic3BpcF9iYXJyZSIgc3R5bGU9IndpZHRoOiBhdXRvOyBwYWRkaW5nOiAxcHghaW1wb3J0YW50OyBib3JkZXItdG9wOiAwcHg7IiBzdW1tYXJ5PSIiPg0KPHRyPjx0ZCBzdHlsZT0id2lkdGg6IDI1JTsiPkNoZXJjaGVyPGlucHV0IHR5cGU9InRleHQiIG5hbWU9ImJhcnJlX2NoZXJjaGVyIiB2YWx1ZT0iIiBzaXplPSIxMiIgbWF4bGVuZ3RoPSIyNTUiIC8+PC90ZD48dGQgc3R5bGU9IndpZHRoOiAyMCU7Ij4NCjxpbnB1dCB0eXBlPSJjaGVja2JveCIgbmFtZT0icmVjX2Nhc2UiIHZhbHVlPSJ5ZXMiIC8+UmVzcGVjdGVyIGxhIGNhc3NlPGJyIC8+PGlucHV0IHR5cGU9ImNoZWNrYm94IiBuYW1lPSJyZWNfZW50aWVyIiB2YWx1ZT0ieWVzIiAvPg0KTW90IGVudGllcg0KPC90ZD48dGQgIHN0eWxlPSJ3aWR0aDogMjUlOyI+UmVtcGxhY2VyPGlucHV0IHR5cGU9InRleHQiIG5hbWU9ImJhcnJlX3JlbXBsYWNlciIgdmFsdWU9IiIgc2l6ZT0iMTIiIG1heGxlbmd0aD0iMjU1IiAvPiANCjwvdGQ+PHRkIHN0eWxlPSJ3aWR0aDogMjAlOyI+DQo8aW5wdXQgdHlwZT0iY2hlY2tib3giIG5hbWU9InJlY190b3V0IiB2YWx1ZT0ieWVzIiAvPlRvdXQgcmVtcGxhY2VyPC90ZD48dGQgc3R5bGU9IndpZHRoOiAxMCU7Ij4NCiAgIDxpbnB1dCB0eXBlPSJidXR0b24iIHZhbHVlPSJPSyIgY2xhc3M9ImZvbmRvIg0KICBvbmNsaWNrPSJqYXZhc2NyaXB0OmJhcnJlX3NlYXJjaHJlcGxhY2UoZG9jdW1lbnQuZm9ybXVsYWlyZS5iYXJyZV9jaGVyY2hlci52YWx1ZSwgZG9jdW1lbnQuZm9ybXVsYWlyZS5iYXJyZV9yZW1wbGFjZXIudmFsdWUsIGRvY3VtZW50LmZvcm11bGFpcmUucmVjX3RvdXQuY2hlY2tlZCwgZG9jdW1lbnQuZm9ybXVsYWlyZS5yZWNfY2FzZS5jaGVja2VkLCBkb2N1bWVudC5mb3JtdWxhaXJlLnJlY19lbnRpZXIuY2hlY2tlZCxkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaW5wdXQtMS10ZXh0ZV8yJykpOyIgLz4gDQo8L3RkPjwvdHI+PC90YWJsZT48ZGl2IHN0eWxlPSdjbGVhcjogYm90aDsnPjwvZGl2PjwvZGl2PgoJPHRleHRhcmVhIG5hbWU9J3RleHRlXzInIHJvd3M9JzEwJyBjbGFzcz0nZm9ybWwgICAnIGNvbHM9JzgwJwoJaWQ9J2lucHV0LTEtdGV4dGVfMicKCW9uc2VsZWN0PSdzdG9yZUNhcmV0KHRoaXMpOycKCW9uY2xpY2s9J3N0b3JlQ2FyZXQodGhpcyk7JwoJb25rZXl1cD0nc3RvcmVDYXJldCh0aGlzKTsnCglvbmRibGNsaWNrPSdzdG9yZUNhcmV0KHRoaXMpOyc+PC90ZXh0YXJlYT4KCQkJCQoJCQkJCgkJCQkKCQkJCQoJCQkJCgkJCQkKCQkJCQoJCQkJCgkJCQkKCQkJCTxzcGFuIGNsYXNzPSduZXR0b3lldXInPiA8L3NwYW4+CgkJCQoJCTwvZGl2PgoJCgoKIAoJPC9maWVsZHNldD4KCiAKIAoJCgk8cCBzdHlsZT0nZGlzcGxheTpub25lOyc+PGxhYmVsIGZvcj0ibm9ib3Rub2JvdC0xIj5WZXVpbGxleiBsYWlzc2VyIGNlIGNoYW1wIHZpZGUmbmJzcDs6PC9sYWJlbD4KCTxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJub2JvdG5vYm90IiBpZD0ibm9ib3Rub2JvdC0xIiB2YWx1ZT0iIiBzaXplPSIxMCIgLz48L3A+CgkKCTxkaXYgc3R5bGU9J3RleHQtYWxpZ246cmlnaHQnIGNsYXNzPSdzcGlwX2JvdXRvbic+PGlucHV0IHR5cGU9InN1Ym1pdCIgbmFtZT0nVmFsaWRlcicgdmFsdWU9IlZhbGlkZXIiIC8+PC9kaXY+CgoKPHNjcmlwdCBzcmM9Imh0dHA6Ly9wcmVwcm9kLm5vdHJlLXZpbGxlLm5ldC9+c3RzZWIvcGx1Z2lucy9mb25jdGlvbm5hbGl0ZXMvZm9ybXMvamF2YXNjcmlwdC9qdGlwLmpzIiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPjwvc2NyaXB0PgoKPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPjwhLS0KJCgnaW5wdXQuZm9ybW8nKS5iaW5kKCdmb2N1cycsZnVuY3Rpb24oKXskKHRoaXMpLnJlbW92ZUNsYXNzKCdmb3JtbycpLmFkZENsYXNzKCdmb3Jtby1mb2N1cycpO30pOwokKCdpbnB1dC5mb3JtbycpLmJpbmQoJ2JsdXInLGZ1bmN0aW9uKCl7JCh0aGlzKS5yZW1vdmVDbGFzcygnZm9ybW8tZm9jdXMnKS5hZGRDbGFzcygnZm9ybW8nKTt9KTsKJCgnaW5wdXQuZm9ybWwnKS5iaW5kKCdmb2N1cycsZnVuY3Rpb24oKXskKHRoaXMpLnJlbW92ZUNsYXNzKCdmb3JtbCcpLmFkZENsYXNzKCdmb3JtbC1mb2N1cycpO30pOwokKCdpbnB1dC5mb3JtbCcpLmJpbmQoJ2JsdXInLGZ1bmN0aW9uKCl7JCh0aGlzKS5yZW1vdmVDbGFzcygnZm9ybWwtZm9jdXMnKS5hZGRDbGFzcygnZm9ybWwnKTt9KTsKCi8vLS0+PC9zY3JpcHQ+CgoJIAoJPC9mb3JtPgoJCgkKCQoKCjwvZGl2Pg==',
211
+                'balise' => '<div class="base64" title="PGEgbmFtZT0nZm9ybTEnPjwvYT4KPGRpdiBjbGFzcz0nc3BpcF9mb3Jtcyc+Cgo8ZGl2IGNsYXNzPSdzcGlwX2Rlc2NyaXB0aWYnPjwvZGl2PgoKCgoKIAoJIAoJPGZvcm0gbWV0aG9kPSdwb3N0JyBhY3Rpb249J0NvbnRhY3QuaHRtbCNmb3JtMScKCQllbmN0eXBlPSdtdWx0aXBhcnQvZm9ybS1kYXRhJz4KCQkKCQk8ZGl2PgoJCQoJCTxpbnB1dCB0eXBlPSdoaWRkZW4nIG5hbWU9J2Fqb3V0X3JlcG9uc2UnIHZhbHVlPScxJyAvPgoJCTxpbnB1dCB0eXBlPSdoaWRkZW4nIG5hbWU9J2lkX2Rvbm5lZScgdmFsdWU9Jy0xMCcgLz4KCQkKCQk8aW5wdXQgdHlwZT0naGlkZGVuJyBuYW1lPSdyZXRvdXJfZm9ybScgdmFsdWU9JycgLz4KCQkKCQk8L2Rpdj4KCQkJCgoKIAoJIAoJCQoJCSA8ZmllbGRzZXQ+PGxlZ2VuZD5Ob3VzIGNvbnRhY3RlcjwvbGVnZW5kPiAKCQoJIAoJCTxkaXYgY2xhc3M9J3NwaXBfZm9ybV9jaGFtcCBsaWduZV8xJz4KCQkJCgkJCSAKCQkJCTxzcGFuIGNsYXNzPSdzcGlwX2Zvcm1fbGFiZWwnPgoJCQkJCSA8bGFiZWwgZm9yPSJpbnB1dC0xLWxpZ25lXzEiPlZvdHJlIE5vbTwvbGFiZWw+CgkJCQkJCgkJCQkJPHNwYW4gY2xhc3M9J3NwaXBfZm9ybV9sYWJlbF9vYmxpZ2F0b2lyZSc+CgkJCQkJCVtPYmxpZ2F0b2lyZV08L3NwYW4+CgkJCQkJOgoJCQkJPC9zcGFuPgoJCQkJCgkJCQkKCQkJCQoJCQkJCgkJCQkKCQkJCQoJCQkJCgkJCQkKCQkJCQoJCQkJCgkJCQkKCQkJCSAKCQkJCQoJCQkJPGlucHV0IHR5cGU9InRleHRlIiBuYW1lPSdsaWduZV8xJyBpZD0naW5wdXQtMS1saWduZV8xJyB2YWx1ZT0iIiAKCQkJCQkJY2xhc3M9JyAgbGlnbmUgZm9ybWwnIAoJCQkJCQlzaXplPSc0MCcgLz4KCQkJCQoJCQkJCgkJCQkKCQkJCTxzcGFuIGNsYXNzPSduZXR0b3lldXInPiA8L3NwYW4+CgkJCQoJCTwvZGl2PgoJCgoKCiAKCSAKCQkKCQkKCQoJIAoJCTxkaXYgY2xhc3M9J3NwaXBfZm9ybV9jaGFtcCBsaWduZV8yJz4KCQkJCgkJCSAKCQkJCTxzcGFuIGNsYXNzPSdzcGlwX2Zvcm1fbGFiZWwnPgoJCQkJCSA8bGFiZWwgZm9yPSJpbnB1dC0xLWxpZ25lXzIiPlZvdHJlIFByw6lub208L2xhYmVsPgoJCQkJCQoJCQkJCTxzcGFuIGNsYXNzPSdzcGlwX2Zvcm1fbGFiZWxfb2JsaWdhdG9pcmUnPgoJCQkJCQlbT2JsaWdhdG9pcmVdPC9zcGFuPgoJCQkJCToKCQkJCTwvc3Bhbj4KCQkJCQoJCQkJCgkJCQkKCQkJCQoJCQkJCgkJCQkKCQkJCQoJCQkJCgkJCQkKCQkJCQoJCQkJCgkJCQkgCgkJCQkKCQkJCTxpbnB1dCB0eXBlPSJ0ZXh0ZSIgbmFtZT0nbGlnbmVfMicgaWQ9J2lucHV0LTEtbGlnbmVfMicgdmFsdWU9IiIgCgkJCQkJCWNsYXNzPScgIGxpZ25lIGZvcm1sJyAKCQkJCQkJc2l6ZT0nNDAnIC8+CgkJCQkKCQkJCQoJCQkJCgkJCQk8c3BhbiBjbGFzcz0nbmV0dG95ZXVyJz4gPC9zcGFuPgoJCQkKCQk8L2Rpdj4KCQoKCgogCgkgCgkJCgkJCgkKCSAKCQk8ZGl2IGNsYXNzPSdzcGlwX2Zvcm1fY2hhbXAgZW1haWxfMSc+CgkJCQoJCQkgCgkJCQk8c3BhbiBjbGFzcz0nc3BpcF9mb3JtX2xhYmVsJz4KCQkJCQkgPGxhYmVsIGZvcj0iaW5wdXQtMS1lbWFpbF8xIj5Wb3RyZSBlbWFpbDwvbGFiZWw+CgkJCQkJCgkJCQkJPHNwYW4gY2xhc3M9J3NwaXBfZm9ybV9sYWJlbF9vYmxpZ2F0b2lyZSc+CgkJCQkJCVtPYmxpZ2F0b2lyZV08L3NwYW4+CgkJCQkJOgoJCQkJPC9zcGFuPgoJCQkJCgkJCQk8c3BhbiBjbGFzcz0nc3BpcF9mb3JtX2xhYmVsX2RldGFpbHMnPlZldWlsbGV6IGVudHJlciB1bmUgYWRyZXNzZSBlLW1haWwgdmFsaWRlIChkZSB0eXBlIHZvdXNAZm91cm5pc3NldXIuY29tKS48L3NwYW4+CgkJCQkKCQkJCQoJCQkJCgkJCQkKCQkJCQoJCQkJCgkJCQkKCQkJCQoJCQkJCgkJCQkgCgkJCQkKCQkJCTxpbnB1dCB0eXBlPSJ0ZXh0ZSIgbmFtZT0nZW1haWxfMScgaWQ9J2lucHV0LTEtZW1haWxfMScgdmFsdWU9IiIgCgkJCQkJCWNsYXNzPScgIGVtYWlsIGZvcm1sJyAKCQkJCQkJc2l6ZT0nNDAnIC8+CgkJCQkKCQkJCQoJCQkJCgkJCQk8c3BhbiBjbGFzcz0nbmV0dG95ZXVyJz4gPC9zcGFuPgoJCQkKCQk8L2Rpdj4KCQoKCgogCgkgCgkJCgkJCgkKCSAKCQk8ZGl2IGNsYXNzPSdzcGlwX2Zvcm1fY2hhbXAgdGV4dGVfMSc+CgkJCQoJCQkgCgkJCQk8c3BhbiBjbGFzcz0nc3BpcF9mb3JtX2xhYmVsJz4KCQkJCQkgPGxhYmVsIGZvcj0iaW5wdXQtMS10ZXh0ZV8xIj5Wb3RyZSBBZHJlc3NlPC9sYWJlbD4KCQkJCQkKCQkJCQkKCQkJCQk6CgkJCQk8L3NwYW4+CgkJCQkKCQkJCQoJCQkJCgkJCQkKCQkJCSAgPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0icGx1Z2lucy9hZG1pbi8talF1ZXJ5L2ltZ19wYWNrL2xheWVyLmpzIj48L3NjcmlwdD48c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJwbHVnaW5zL2ZvbmN0aW9ubmFsaXRlcy9iYXJyZV90eXBvX2Vjb2xvZ2lxdWUvanMvc3BpcF9iYXJyZS5qcyI+PC9zY3JpcHQ+PHRhYmxlIGNsYXNzPSdzcGlwX2JhcnJlJyBzdHlsZT0nd2lkdGg6YXV0bzsnIGNlbGxwYWRkaW5nPScwJyBjZWxsc3BhY2luZz0nMCcgYm9yZGVyPScwJyBzdW1tYXJ5PScnPgo8dHIgc3R5bGU9J3dpZHRoOiBhdXRvOycgY2xhc3M9J3NwaXBfYmFycmUnPgo8dGQgc3R5bGU9J3RleHQtYWxpZ246IGxlZnQ7JyB2YWxpZ249J21pZGRsZSc+PGEgaHJlZj0iamF2YXNjcmlwdDpiYXJyZV9yYWNjb3VyY2koJ3snLCd9Jyxkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaW5wdXQtMS10ZXh0ZV8xJykpIgogY2xhc3M9J3NwaXBfYmFycmUnIHRhYmluZGV4PScxMDAwJyB0aXRsZT0iTWV0dHJlIGVuIHtpdGFsaXF1ZX0iIG9ubW91c2VvdmVyPSJoZWxwbGluZSgnTWV0dHJlIGVuIHtpdGFsaXF1ZX0nLGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdiYXJyZV8xJykpIiBvbm1vdXNlb3V0PSJoZWxwbGluZSgnVXRpbGlzZXogbGVzIHJhY2NvdXJjaXMgdHlwb2dyYXBoaXF1ZXMgcG91ciBlbnJpY2hpciB2b3RyZSBtaXNlIGVuIHBhZ2UnLCBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYmFycmVfMScpKSI+PGltZyBzcmM9J2VjcmlyZS9pbWdfcGFjay9pY29uZXNfYmFycmUvaXRhbGlxdWUucG5nJyBoZWlnaHQ9JzE2JyB3aWR0aD0nMTYnIGFsdD0iTWV0dHJlIGVuIHtpdGFsaXF1ZX0iIC8+PC9hPjxhIGhyZWY9ImphdmFzY3JpcHQ6YmFycmVfcmFjY291cmNpKCd7eycsJ319Jyxkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaW5wdXQtMS10ZXh0ZV8xJykpIgogY2xhc3M9J3NwaXBfYmFycmUnIHRhYmluZGV4PScxMDAwJyB0aXRsZT0iTWV0dHJlIGVuIHt7Z3Jhc319IiBvbm1vdXNlb3Zlcj0iaGVscGxpbmUoJ01ldHRyZSBlbiB7e2dyYXN9fScsZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2JhcnJlXzEnKSkiIG9ubW91c2VvdXQ9ImhlbHBsaW5lKCdVdGlsaXNleiBsZXMgcmFjY291cmNpcyB0eXBvZ3JhcGhpcXVlcyBwb3VyIGVucmljaGlyIHZvdHJlIG1pc2UgZW4gcGFnZScsIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdiYXJyZV8xJykpIj48aW1nIHNyYz0nZWNyaXJlL2ltZ19wYWNrL2ljb25lc19iYXJyZS9ncmFzLnBuZycgaGVpZ2h0PScxNicgd2lkdGg9JzE2JyBhbHQ9Ik1ldHRyZSBlbiB7e2dyYXN9fSIgLz48L2E+Jm5ic3A7PC90ZD4KPHRkPjxhIGhyZWY9ImphdmFzY3JpcHQ6c3dhcF9jb3VjaGUoJzInLCcnKTsiCiBjbGFzcz0nc3BpcF9iYXJyZScgdGFiaW5kZXg9JzEwMDAnIHRpdGxlPSJUcmFuc2Zvcm1lciBlbiBbbGllbiBoeXBlcnRleHRlLT5odHRwOi8vLi4uXSIgb25tb3VzZW92ZXI9ImhlbHBsaW5lKCdUcmFuc2Zvcm1lciBlbiBbbGllbiBoeXBlcnRleHRlLT5odHRwOi8vLi4uXScsZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2JhcnJlXzEnKSkiIG9ubW91c2VvdXQ9ImhlbHBsaW5lKCdVdGlsaXNleiBsZXMgcmFjY291cmNpcyB0eXBvZ3JhcGhpcXVlcyBwb3VyIGVucmljaGlyIHZvdHJlIG1pc2UgZW4gcGFnZScsIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdiYXJyZV8xJykpIj48aW1nIHNyYz0nZWNyaXJlL2ltZ19wYWNrL2ljb25lc19iYXJyZS9saWVuLnBuZycgaGVpZ2h0PScxNicgd2lkdGg9JzE2JyBhbHQ9IlRyYW5zZm9ybWVyIGVuIFtsaWVuIGh5cGVydGV4dGUtPmh0dHA6Ly8uLi5dIiAvPjwvYT4mbmJzcDs8L3RkPgo8dGQ+PGEgaHJlZj0iamF2YXNjcmlwdDpiYXJyZV9yYWNjb3VyY2koJyU1Q24lNUNuJTNDcXVvdGUlM0UnLCclM0MvcXVvdGUlM0UlNUNuJTVDbicsZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2lucHV0LTEtdGV4dGVfMScpKSIKIGNsYXNzPSdzcGlwX2JhcnJlJyB0YWJpbmRleD0nMTAwMCcgdGl0bGU9IkNpdGVyIHVuIG1lc3NhZ2UiIG9ubW91c2VvdmVyPSJoZWxwbGluZSgnQ2l0ZXIgdW4gbWVzc2FnZScsZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2JhcnJlXzEnKSkiIG9ubW91c2VvdXQ9ImhlbHBsaW5lKCdVdGlsaXNleiBsZXMgcmFjY291cmNpcyB0eXBvZ3JhcGhpcXVlcyBwb3VyIGVucmljaGlyIHZvdHJlIG1pc2UgZW4gcGFnZScsIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdiYXJyZV8xJykpIj48aW1nIHNyYz0nZWNyaXJlL2ltZ19wYWNrL2ljb25lc19iYXJyZS9xdW90ZS5wbmcnIGhlaWdodD0nMTYnIHdpZHRoPScxNicgYWx0PSJDaXRlciB1biBtZXNzYWdlIiAvPjwvYT4mbmJzcDs8L3RkPgo8dGQgc3R5bGU9J3RleHQtYWxpZ246bGVmdDsnIHZhbGlnbj0nbWlkZGxlJz48YSBocmVmPSJqYXZhc2NyaXB0OnN3YXBfY291Y2hlKCc0JywnJyk7IgogY2xhc3M9J3NwaXBfYmFycmUnIHRhYmluZGV4PScxMDAwJyB0aXRsZT0iQ2FyYWN0JmVncmF2ZTtyZXMgc3AmZWFjdXRlO2NpYXV4IiBvbm1vdXNlb3Zlcj0iaGVscGxpbmUoJ0NhcmFjdCZlZ3JhdmU7cmVzIHNwJmVhY3V0ZTtjaWF1eCcsZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2JhcnJlXzEnKSkiIG9ubW91c2VvdXQ9ImhlbHBsaW5lKCdVdGlsaXNleiBsZXMgcmFjY291cmNpcyB0eXBvZ3JhcGhpcXVlcyBwb3VyIGVucmljaGlyIHZvdHJlIG1pc2UgZW4gcGFnZScsIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdiYXJyZV8xJykpIj48aW1nIHNyYz0ncGx1Z2lucy9mb25jdGlvbm5hbGl0ZXMvYmFycmVfdHlwb19lY29sb2dpcXVlL2ltZ19wYWNrL2ljb25lc19iYXJyZS9jbGF2aWVyLnBuZycgaGVpZ2h0PScxNicgd2lkdGg9JzE2JyBhbHQ9IkNhcmFjdCZlZ3JhdmU7cmVzIHNwJmVhY3V0ZTtjaWF1eCIgLz48L2E+Jm5ic3A7PC90ZD48L3RyPgo8dHI+Cjx0ZCBjb2xzcGFuPSc2Jz48aW5wdXQgZGlzYWJsZWQ9J2Rpc2FibGVkJyB0eXBlPSd0ZXh0JyBpZD0nYmFycmVfMScgc2l6ZT0nNDUnIG1heGxlbmd0aD0nMTAwJyBzdHlsZT0nd2lkdGg6YXV0bzsgZm9udC1zaXplOjExcHg7IGNvbG9yOiBibGFjazsgYmFja2dyb3VuZC1jb2xvcjogI2U0ZTRlNDsgYm9yZGVyOiAwcHggc29saWQgI2RlZGVkZTsnCnZhbHVlPSJVdGlsaXNleiBsZXMgcmFjY291cmNpcyB0eXBvZ3JhcGhpcXVlcyBwb3VyIGVucmljaGlyIHZvdHJlIG1pc2UgZW4gcGFnZSIgLz48L3RkPjwvdHI+PC90YWJsZT48ZGl2IGlkPSdMYXllcjEnIHN0eWxlPSdkaXNwbGF5Om5vbmU7JyA+PHRhYmxlIGNsYXNzPSJzcGlwX2JhcnJlIiBzdHlsZT0id2lkdGg6IGF1dG87IHBhZGRpbmc6IDFweCFpbXBvcnRhbnQ7IGJvcmRlci10b3A6IDBweDsiIHN1bW1hcnk9IiI+DQo8dHI+PHRkPg0KTmIgY29sb25uZXM6IDxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJiYXJyZV9uYmNvbG9uZXMiIHN0eWxlPSJ3aWR0aDogMzBweDsiIHZhbHVlPSIyIiBzaXplPSIyIiBtYXhsZW5ndGg9IjIiICAgLz48L3RkPjx0ZD4NCk5iIGxpZ25lczogPGlucHV0IHR5cGU9InRleHQiIG5hbWU9ImJhcnJlX25icmFuZ3MiIHN0eWxlPSJ3aWR0aDogMzBweDsiIHZhbHVlPSIyIiBzaXplPSIyIiBtYXhsZW5ndGg9IjIiIC8+PC90ZD48dGQ+DQo8aW5wdXQgdHlwZT0iY2hlY2tib3giIG5hbWU9ImJhcnJlX2RvZW50ZXRlIiB2YWx1ZT0iLTEiIGNoZWNrZWQ9ImNoZWNrZWQiIC8+IEVudGV0ZTwvdGQ+PHRkPg0KPGlucHV0IHR5cGU9ImNoZWNrYm94IiBuYW1lPSJiYXJyZV9kb2NhcHRpb24iIHZhbHVlPSItMSIgY2hlY2tlZD0iY2hlY2tlZCIgLz4gQ2FwdGlvbiBldCBSJmVhY3V0ZTtzdW0mZWFjdXRlOzwvdGQ+PHRkPg0KICA8aW5wdXQgdHlwZT0iYnV0dG9uIiB2YWx1ZT0iT0siIGNsYXNzPSJmb25kbyIgb25jbGljaz0iamF2YXNjcmlwdDoNCiAgICBiYXJyZV9uYmNvbG9uZXMudmFsdWUgPSBNYXRoLmFicyhiYXJyZV9uYmNvbG9uZXMudmFsdWUpOyBiYXJyZV9uYnJhbmdzLnZhbHVlDQogICAgPSBNYXRoLmFicyhiYXJyZV9uYnJhbmdzLnZhbHVlKTsNCiAgICBpZiAoIShiYXJyZV9uYmNvbG9uZXMudmFsdWUgPT0gMCB8fCBiYXJyZV9uYnJhbmdzLnZhbHVlID09IDApKSB7DQogICAgYmFycmVfdGFibGVhdShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaW5wdXQtMS10ZXh0ZV8xJyksIGJhcnJlX25iY29sb25lcy52YWx1ZSwgYmFycmVfbmJyYW5ncy52YWx1ZSwNCiAgICBiYXJyZV9kb2VudGV0ZS5jaGVja2VkLCBiYXJyZV9kb2NhcHRpb24uY2hlY2tlZCk7IH0gIiAvPiANCjwvdGQ+PC90cj48L3RhYmxlPg0KPGRpdiBzdHlsZT0nY2xlYXI6IGJvdGg7Jz48L2Rpdj48L2Rpdj48ZGl2IGlkPSdMYXllcjInIHN0eWxlPSdkaXNwbGF5Om5vbmU7JyA+DQogPHRhYmxlIGNsYXNzPSJzcGlwX2JhcnJlIiBzdHlsZT0id2lkdGg6IGF1dG87IHBhZGRpbmc6IDFweCFpbXBvcnRhbnQ7IGJvcmRlci10b3A6IDBweDsiIHN1bW1hcnk9IiI+DQo8dHI+PHRkPiANCkFkcmVzc2UmbmJzcDs6IDxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJsaWVuX25vbSIgdmFsdWU9Imh0dHA6Ly8iIHNpemU9IjIxIiBtYXhsZW5ndGg9IjI1NSIgLz48YnIgLz4NCkJ1bGxlIGQnYWlkZSZuYnNwOzogPGlucHV0IHR5cGU9InRleHQiIG5hbWU9ImxpZW5fYnVsbGUiIHZhbHVlPSIiIHNpemU9IjIxIiBtYXhsZW5ndGg9IjI1NSIgLz4NCjwvdGQ+PHRkPg0KTGFuZ3VlIGFiciZlYWN1dGU7ZyZlYWN1dGU7ZSZuYnNwOzogPGlucHV0IHR5cGU9InRleHQiIG5hbWU9ImxpZW5fbGFuZ3VlIiB2YWx1ZT0iIiBzaXplPSIxMCIgbWF4bGVuZ3RoPSIxMCIgLz4NCjwvdGQ+PHRkPg0KICA8aW5wdXQgdHlwZT0iYnV0dG9uIiB2YWx1ZT0iT0siIGNsYXNzPSJmb25kbyIgb25jbGljaz0iamF2YXNjcmlwdDpiYXJyZV9kZW1hbmRlX2xpZW4oJ1snLCAnLT4nLCAnXScsIGxpZW5fbm9tLnZhbHVlLCBsaWVuX2J1bGxlLnZhbHVlLCBsaWVuX2xhbmd1ZS52YWx1ZSxkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaW5wdXQtMS10ZXh0ZV8xJykpOyIgLz4gDQo8L3RkPjwvdHI+PC90YWJsZT4NCjxkaXYgc3R5bGU9J2NsZWFyOiBib3RoOyc+PC9kaXY+PC9kaXY+PGRpdiBpZD0nTGF5ZXIzJyBzdHlsZT0nZGlzcGxheTpub25lOycgPg0KPHRhYmxlIGNsYXNzPSJzcGlwX2JhcnJlIiBzdHlsZT0id2lkdGg6IGF1dG87IHBhZGRpbmc6IDFweCFpbXBvcnRhbnQ7IGJvcmRlci10b3A6IDBweDsiIHN1bW1hcnk9IiI+DQogIDx0cj4NCiAgICA8dGQgc3R5bGU9IndpZHRoOmF1dG87IHRleHQtYWxpZ246Y2VudGVyOyI+PHN0cm9uZz5HZXN0aW9uIGRlcyBhbmNyZXM8L3N0cm9uZz48L3RkPg0KICAgIDx0ZCBzdHlsZT0id2lkdGg6YXV0bzsiPjxzdHJvbmc+VHJhbnNmb3JtZXIgZW4gYW5jcmU8L3N0cm9uZz48YnIgLz4NCiAgICA8bGFiZWwgZm9yPSJhbmNyZV9ub20iPjxpPk5vbSBkZSBsJ2FuY3JlPC9pPjwvbGFiZWw+IDxiciAvPg0KICAgICAgPGlucHV0IHR5cGU9InRleHQiIG5hbWU9ImFuY3JlX25vbSIgaWQ9ImFuY3JlX25vbSIgLz4NCgkgIA0KCTxpbnB1dCB0eXBlPSJidXR0b24iIHZhbHVlPSJPSyIgY2xhc3M9ImZvbmRvIiBvbmNsaWNrPSJqYXZhc2NyaXB0OmJhcnJlX2FuY3JlKCdbJywgJzwtJywgJ10nLCBhbmNyZV9ub20udmFsdWUsIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdpbnB1dC0xLXRleHRlXzEnKSk7IiAvPg0KICAgIDwvdGQ+DQoJPHRkIHN0eWxlPSJ3aWR0aDphdXRvOyI+PHN0cm9uZz5Qb2ludGVyIHZlcnMgdW5lIGFuY3JlPC9zdHJvbmc+PGJyIC8+DQogICAgPGxhYmVsIGZvcj0iYW5jcmVfY2libGUiPjxpPkFuY3JlIGNpYmxlPC9pPjwvbGFiZWw+IDxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJhbmNyZV9jaWJsZSIgaWQ9ImFuY3JlX2NpYmxlIiAvPjxiciAvPg0KCTxsYWJlbCBmb3I9ImFuY3JlX2J1bGxlIj48aT5CdWxsZSBkJ2FpZGUgYW5jcmU8L2k+PC9sYWJlbD4gPGlucHV0IHR5cGU9InRleHQiIG5hbWU9ImFuY3JlX2J1bGxlIiBpZD0iYW5jcmVfYnVsbGUiIC8+DQoJPGlucHV0IHR5cGU9ImJ1dHRvbiIgdmFsdWU9Ik9LIiBjbGFzcz0iZm9uZG8iIG9uY2xpY2s9ImphdmFzY3JpcHQ6YmFycmVfZGVtYW5kZSgnWycsICctPiMnLCAnXScsIGFuY3JlX2NpYmxlLnZhbHVlLCBhbmNyZV9idWxsZS52YWx1ZSwgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2lucHV0LTEtdGV4dGVfMScpKTsiIC8+IA0KPC90ZD4NCiAgPC90cj4gDQo8L3RhYmxlPjxkaXYgc3R5bGU9J2NsZWFyOiBib3RoOyc+PC9kaXY+PC9kaXY+PGRpdiBpZD0nTGF5ZXI0JyBzdHlsZT0nZGlzcGxheTpub25lOycgPg0KPHRhYmxlIGNsYXNzPSJzcGlwX2JhcnJlIiBzdHlsZT0id2lkdGg6IGF1dG87IHBhZGRpbmc6IDFweCFpbXBvcnRhbnQ7IGJvcmRlci10b3A6IDBweDsiIHN1bW1hcnk9IiI+DQogIDx0ciBjbGFzcz0ic3BpcF9iYXJyZSI+DQogICAgPHRkIHN0eWxlPSJ3aWR0aDozMCU7Ij5DYXJhY3QmZWdyYXZlO3JlcyBzcCZlYWN1dGU7Y2lhdXg8L3RkPg0KICAgIDx0ZD48YSBocmVmPSJqYXZhc2NyaXB0OmJhcnJlX3JhY2NvdXJjaSgnXHUwMGFificsJ35cdTAwYmInLGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdpbnB1dC0xLXRleHRlXzEnKSkiCiBjbGFzcz0nc3BpcF9iYXJyZScgdGFiaW5kZXg9JzEwMDAnIHRpdGxlPSJFbnRvdXJlciBkZSAmbGFxdW87IGd1aWxsZW1ldHMgJnJhcXVvOyIgb25tb3VzZW92ZXI9ImhlbHBsaW5lKCdFbnRvdXJlciBkZSAmbGFxdW87IGd1aWxsZW1ldHMgJnJhcXVvOycsZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2JhcnJlXzEnKSkiIG9ubW91c2VvdXQ9ImhlbHBsaW5lKCdVdGlsaXNleiBsZXMgcmFjY291cmNpcyB0eXBvZ3JhcGhpcXVlcyBwb3VyIGVucmljaGlyIHZvdHJlIG1pc2UgZW4gcGFnZScsIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdiYXJyZV8xJykpIj48aW1nIHNyYz0nZWNyaXJlL2ltZ19wYWNrL2ljb25lc19iYXJyZS9ndWlsbGVtZXRzLnBuZycgaGVpZ2h0PScxNicgd2lkdGg9JzE2JyBhbHQ9IkVudG91cmVyIGRlICZsYXF1bzsgZ3VpbGxlbWV0cyAmcmFxdW87IiAvPjwvYT48YSBocmVmPSJqYXZhc2NyaXB0OmJhcnJlX3JhY2NvdXJjaSgnXHUwMDkzJywnXHUwMDk0Jyxkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaW5wdXQtMS10ZXh0ZV8xJykpIgogY2xhc3M9J3NwaXBfYmFycmUnIHRhYmluZGV4PScxMDAwJyB0aXRsZT0iRW50b3VyZXIgZGUgJmxkcXVvO2d1aWxsZW1ldHMgZGUgc2Vjb25kIG5pdmVhdSZyZHF1bzsiIG9ubW91c2VvdmVyPSJoZWxwbGluZSgnRW50b3VyZXIgZGUgJmxkcXVvO2d1aWxsZW1ldHMgZGUgc2Vjb25kIG5pdmVhdSZyZHF1bzsnLGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdiYXJyZV8xJykpIiBvbm1vdXNlb3V0PSJoZWxwbGluZSgnVXRpbGlzZXogbGVzIHJhY2NvdXJjaXMgdHlwb2dyYXBoaXF1ZXMgcG91ciBlbnJpY2hpciB2b3RyZSBtaXNlIGVuIHBhZ2UnLCBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYmFycmVfMScpKSI+PGltZyBzcmM9J2VjcmlyZS9pbWdfcGFjay9pY29uZXNfYmFycmUvZ3VpbGxlbWV0cy1zaW1wbGVzLnBuZycgaGVpZ2h0PScxNicgd2lkdGg9JzE2JyBhbHQ9IkVudG91cmVyIGRlICZsZHF1bztndWlsbGVtZXRzIGRlIHNlY29uZCBuaXZlYXUmcmRxdW87IiAvPjwvYT48YSBocmVmPSJqYXZhc2NyaXB0OmJhcnJlX2luc2VyZXIoJ1x1MDBjMCcsZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2lucHV0LTEtdGV4dGVfMScpKSIKIGNsYXNzPSdzcGlwX2JhcnJlJyB0YWJpbmRleD0nMTAwMCcgdGl0bGU9IklucyZlYWN1dGU7cmVyIHVuIEEgYWNjZW50IGdyYXZlIG1hanVzY3VsZSIgb25tb3VzZW92ZXI9ImhlbHBsaW5lKCdJbnMmZWFjdXRlO3JlciB1biBBIGFjY2VudCBncmF2ZSBtYWp1c2N1bGUnLGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdiYXJyZV8xJykpIiBvbm1vdXNlb3V0PSJoZWxwbGluZSgnVXRpbGlzZXogbGVzIHJhY2NvdXJjaXMgdHlwb2dyYXBoaXF1ZXMgcG91ciBlbnJpY2hpciB2b3RyZSBtaXNlIGVuIHBhZ2UnLCBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYmFycmVfMScpKSI+PGltZyBzcmM9J2VjcmlyZS9pbWdfcGFjay9pY29uZXNfYmFycmUvYWdyYXZlLW1hai5wbmcnIGhlaWdodD0nMTYnIHdpZHRoPScxNicgYWx0PSJJbnMmZWFjdXRlO3JlciB1biBBIGFjY2VudCBncmF2ZSBtYWp1c2N1bGUiIC8+PC9hPjxhIGhyZWY9ImphdmFzY3JpcHQ6YmFycmVfaW5zZXJlcignXHUwMGM5Jyxkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaW5wdXQtMS10ZXh0ZV8xJykpIgogY2xhc3M9J3NwaXBfYmFycmUnIHRhYmluZGV4PScxMDAwJyB0aXRsZT0iSW5zJmVhY3V0ZTtyZXIgdW4gRSBhY2NlbnQgYWlndSBtYWp1c2N1bGUiIG9ubW91c2VvdmVyPSJoZWxwbGluZSgnSW5zJmVhY3V0ZTtyZXIgdW4gRSBhY2NlbnQgYWlndSBtYWp1c2N1bGUnLGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdiYXJyZV8xJykpIiBvbm1vdXNlb3V0PSJoZWxwbGluZSgnVXRpbGlzZXogbGVzIHJhY2NvdXJjaXMgdHlwb2dyYXBoaXF1ZXMgcG91ciBlbnJpY2hpciB2b3RyZSBtaXNlIGVuIHBhZ2UnLCBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYmFycmVfMScpKSI+PGltZyBzcmM9J2VjcmlyZS9pbWdfcGFjay9pY29uZXNfYmFycmUvZWFjdXRlLW1hai5wbmcnIGhlaWdodD0nMTYnIHdpZHRoPScxNicgYWx0PSJJbnMmZWFjdXRlO3JlciB1biBFIGFjY2VudCBhaWd1IG1hanVzY3VsZSIgLz48L2E+PGEgaHJlZj0iamF2YXNjcmlwdDpiYXJyZV9pbnNlcmVyKCdcdTAwYzgnLGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdpbnB1dC0xLXRleHRlXzEnKSkiCiBjbGFzcz0nc3BpcF9iYXJyZScgdGFiaW5kZXg9JzEwMDAnIHRpdGxlPSJJbnMmZWFjdXRlO3JlciB1biBFIG1hanVzY3VsZSBhY2NlbnQgZ3JhdmUiIG9ubW91c2VvdmVyPSJoZWxwbGluZSgnSW5zJmVhY3V0ZTtyZXIgdW4gRSBtYWp1c2N1bGUgYWNjZW50IGdyYXZlJyxkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYmFycmVfMScpKSIgb25tb3VzZW91dD0iaGVscGxpbmUoJ1V0aWxpc2V6IGxlcyByYWNjb3VyY2lzIHR5cG9ncmFwaGlxdWVzIHBvdXIgZW5yaWNoaXIgdm90cmUgbWlzZSBlbiBwYWdlJywgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2JhcnJlXzEnKSkiPjxpbWcgc3JjPSdwbHVnaW5zL2ZvbmN0aW9ubmFsaXRlcy9iYXJyZV90eXBvX2Vjb2xvZ2lxdWUvaW1nX3BhY2svaWNvbmVzX2JhcnJlL2VhZ3JhdmUtbWFqLnBuZycgaGVpZ2h0PScxNicgd2lkdGg9JzE2JyBhbHQ9IklucyZlYWN1dGU7cmVyIHVuIEUgbWFqdXNjdWxlIGFjY2VudCBncmF2ZSIgLz48L2E+PGEgaHJlZj0iamF2YXNjcmlwdDpiYXJyZV9pbnNlcmVyKCdcdTAwZTYnLGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdpbnB1dC0xLXRleHRlXzEnKSkiCiBjbGFzcz0nc3BpcF9iYXJyZScgdGFiaW5kZXg9JzEwMDAnIHRpdGxlPSJJbnMmZWFjdXRlO3JlciB1biBFIGRhbnMgbCdBIiBvbm1vdXNlb3Zlcj0iaGVscGxpbmUoJ0lucyZlYWN1dGU7cmVyIHVuIEUgZGFucyBsXCdBJyxkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYmFycmVfMScpKSIgb25tb3VzZW91dD0iaGVscGxpbmUoJ1V0aWxpc2V6IGxlcyByYWNjb3VyY2lzIHR5cG9ncmFwaGlxdWVzIHBvdXIgZW5yaWNoaXIgdm90cmUgbWlzZSBlbiBwYWdlJywgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2JhcnJlXzEnKSkiPjxpbWcgc3JjPSdwbHVnaW5zL2ZvbmN0aW9ubmFsaXRlcy9iYXJyZV90eXBvX2Vjb2xvZ2lxdWUvaW1nX3BhY2svaWNvbmVzX2JhcnJlL2FlbGlnLnBuZycgaGVpZ2h0PScxNicgd2lkdGg9JzE2JyBhbHQ9IklucyZlYWN1dGU7cmVyIHVuIEUgZGFucyBsJ0EiIC8+PC9hPjxhIGhyZWY9ImphdmFzY3JpcHQ6YmFycmVfaW5zZXJlcignXHUwMGM2Jyxkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaW5wdXQtMS10ZXh0ZV8xJykpIgogY2xhc3M9J3NwaXBfYmFycmUnIHRhYmluZGV4PScxMDAwJyB0aXRsZT0iSW5zJmVhY3V0ZTtyZXIgdW4gRSBkYW5zIGwnQSBtYWp1c2N1bGUiIG9ubW91c2VvdmVyPSJoZWxwbGluZSgnSW5zJmVhY3V0ZTtyZXIgdW4gRSBkYW5zIGxcJ0EgbWFqdXNjdWxlJyxkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYmFycmVfMScpKSIgb25tb3VzZW91dD0iaGVscGxpbmUoJ1V0aWxpc2V6IGxlcyByYWNjb3VyY2lzIHR5cG9ncmFwaGlxdWVzIHBvdXIgZW5yaWNoaXIgdm90cmUgbWlzZSBlbiBwYWdlJywgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2JhcnJlXzEnKSkiPjxpbWcgc3JjPSdwbHVnaW5zL2ZvbmN0aW9ubmFsaXRlcy9iYXJyZV90eXBvX2Vjb2xvZ2lxdWUvaW1nX3BhY2svaWNvbmVzX2JhcnJlL2FlbGlnLW1hai5wbmcnIGhlaWdodD0nMTYnIHdpZHRoPScxNicgYWx0PSJJbnMmZWFjdXRlO3JlciB1biBFIGRhbnMgbCdBIG1hanVzY3VsZSIgLz48L2E+PGEgaHJlZj0iamF2YXNjcmlwdDpiYXJyZV9pbnNlcmVyKCcmb2VsaWc7Jyxkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaW5wdXQtMS10ZXh0ZV8xJykpIgogY2xhc3M9J3NwaXBfYmFycmUnIHRhYmluZGV4PScxMDAwJyB0aXRsZT0iSW5zJmVhY3V0ZTtyZXIgdW4gRSBkYW5zIGwnTyIgb25tb3VzZW92ZXI9ImhlbHBsaW5lKCdJbnMmZWFjdXRlO3JlciB1biBFIGRhbnMgbFwnTycsZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2JhcnJlXzEnKSkiIG9ubW91c2VvdXQ9ImhlbHBsaW5lKCdVdGlsaXNleiBsZXMgcmFjY291cmNpcyB0eXBvZ3JhcGhpcXVlcyBwb3VyIGVucmljaGlyIHZvdHJlIG1pc2UgZW4gcGFnZScsIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdiYXJyZV8xJykpIj48aW1nIHNyYz0nZWNyaXJlL2ltZ19wYWNrL2ljb25lc19iYXJyZS9vZWxpZy5wbmcnIGhlaWdodD0nMTYnIHdpZHRoPScxNicgYWx0PSJJbnMmZWFjdXRlO3JlciB1biBFIGRhbnMgbCdPIiAvPjwvYT48YSBocmVmPSJqYXZhc2NyaXB0OmJhcnJlX2luc2VyZXIoJyZPRWxpZzsnLGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdpbnB1dC0xLXRleHRlXzEnKSkiCiBjbGFzcz0nc3BpcF9iYXJyZScgdGFiaW5kZXg9JzEwMDAnIHRpdGxlPSJJbnMmZWFjdXRlO3JlciB1biBFIGRhbnMgbCdPIG1hanVzY3VsZSIgb25tb3VzZW92ZXI9ImhlbHBsaW5lKCdJbnMmZWFjdXRlO3JlciB1biBFIGRhbnMgbFwnTyBtYWp1c2N1bGUnLGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdiYXJyZV8xJykpIiBvbm1vdXNlb3V0PSJoZWxwbGluZSgnVXRpbGlzZXogbGVzIHJhY2NvdXJjaXMgdHlwb2dyYXBoaXF1ZXMgcG91ciBlbnJpY2hpciB2b3RyZSBtaXNlIGVuIHBhZ2UnLCBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYmFycmVfMScpKSI+PGltZyBzcmM9J2VjcmlyZS9pbWdfcGFjay9pY29uZXNfYmFycmUvb2VsaWctbWFqLnBuZycgaGVpZ2h0PScxNicgd2lkdGg9JzE2JyBhbHQ9IklucyZlYWN1dGU7cmVyIHVuIEUgZGFucyBsJ08gbWFqdXNjdWxlIiAvPjwvYT48YSBocmVmPSJqYXZhc2NyaXB0OmJhcnJlX2luc2VyZXIoJ1x1MDBjNycsZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2lucHV0LTEtdGV4dGVfMScpKSIKIGNsYXNzPSdzcGlwX2JhcnJlJyB0YWJpbmRleD0nMTAwMCcgdGl0bGU9IklucyZlYWN1dGU7cmVyIHVuIEMgYyZlYWN1dGU7ZGlsbGUgbWFqdXNjdWxlIiBvbm1vdXNlb3Zlcj0iaGVscGxpbmUoJ0lucyZlYWN1dGU7cmVyIHVuIEMgYyZlYWN1dGU7ZGlsbGUgbWFqdXNjdWxlJyxkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYmFycmVfMScpKSIgb25tb3VzZW91dD0iaGVscGxpbmUoJ1V0aWxpc2V6IGxlcyByYWNjb3VyY2lzIHR5cG9ncmFwaGlxdWVzIHBvdXIgZW5yaWNoaXIgdm90cmUgbWlzZSBlbiBwYWdlJywgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2JhcnJlXzEnKSkiPjxpbWcgc3JjPSdwbHVnaW5zL2ZvbmN0aW9ubmFsaXRlcy9iYXJyZV90eXBvX2Vjb2xvZ2lxdWUvaW1nX3BhY2svaWNvbmVzX2JhcnJlL2NjZWRpbC1tYWoucG5nJyBoZWlnaHQ9JzE2JyB3aWR0aD0nMTYnIGFsdD0iSW5zJmVhY3V0ZTtyZXIgdW4gQyBjJmVhY3V0ZTtkaWxsZSBtYWp1c2N1bGUiIC8+PC9hPjxhIGhyZWY9ImphdmFzY3JpcHQ6YmFycmVfaW5zZXJlcignJmV1cm87Jyxkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaW5wdXQtMS10ZXh0ZV8xJykpIgogY2xhc3M9J3NwaXBfYmFycmUnIHRhYmluZGV4PScxMDAwJyB0aXRsZT0iSW5zJmVhY3V0ZTtyZXIgbGUgc3ltYm9sZSAmZXVybzsiIG9ubW91c2VvdmVyPSJoZWxwbGluZSgnSW5zJmVhY3V0ZTtyZXIgbGUgc3ltYm9sZSAmZXVybzsnLGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdiYXJyZV8xJykpIiBvbm1vdXNlb3V0PSJoZWxwbGluZSgnVXRpbGlzZXogbGVzIHJhY2NvdXJjaXMgdHlwb2dyYXBoaXF1ZXMgcG91ciBlbnJpY2hpciB2b3RyZSBtaXNlIGVuIHBhZ2UnLCBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYmFycmVfMScpKSI+PGltZyBzcmM9J2VjcmlyZS9pbWdfcGFjay9pY29uZXNfYmFycmUvZXVyby5wbmcnIGhlaWdodD0nMTYnIHdpZHRoPScxNicgYWx0PSJJbnMmZWFjdXRlO3JlciBsZSBzeW1ib2xlICZldXJvOyIgLz48L2E+Jm5ic3A7DQogICAgPC90ZD4NCiAgPC90cj4gDQo8L3RhYmxlPg0KPGRpdiBzdHlsZT0nY2xlYXI6IGJvdGg7Jz48L2Rpdj48L2Rpdj48ZGl2IGlkPSdMYXllcjUnIHN0eWxlPSdkaXNwbGF5Om5vbmU7JyA+DQo8dGFibGUgY2xhc3M9InNwaXBfYmFycmUiIHN0eWxlPSJ3aWR0aDogYXV0bzsgcGFkZGluZzogMXB4IWltcG9ydGFudDsgYm9yZGVyLXRvcDogMHB4OyIgc3VtbWFyeT0iIj4NCjx0cj48dGQgc3R5bGU9IndpZHRoOiAyNSU7Ij5DaGVyY2hlcjxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJiYXJyZV9jaGVyY2hlciIgdmFsdWU9IiIgc2l6ZT0iMTIiIG1heGxlbmd0aD0iMjU1IiAvPjwvdGQ+PHRkIHN0eWxlPSJ3aWR0aDogMjAlOyI+DQo8aW5wdXQgdHlwZT0iY2hlY2tib3giIG5hbWU9InJlY19jYXNlIiB2YWx1ZT0ieWVzIiAvPlJlc3BlY3RlciBsYSBjYXNzZTxiciAvPjxpbnB1dCB0eXBlPSJjaGVja2JveCIgbmFtZT0icmVjX2VudGllciIgdmFsdWU9InllcyIgLz4NCk1vdCBlbnRpZXINCjwvdGQ+PHRkICBzdHlsZT0id2lkdGg6IDI1JTsiPlJlbXBsYWNlcjxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJiYXJyZV9yZW1wbGFjZXIiIHZhbHVlPSIiIHNpemU9IjEyIiBtYXhsZW5ndGg9IjI1NSIgLz4gDQo8L3RkPjx0ZCBzdHlsZT0id2lkdGg6IDIwJTsiPg0KPGlucHV0IHR5cGU9ImNoZWNrYm94IiBuYW1lPSJyZWNfdG91dCIgdmFsdWU9InllcyIgLz5Ub3V0IHJlbXBsYWNlcjwvdGQ+PHRkIHN0eWxlPSJ3aWR0aDogMTAlOyI+DQogICA8aW5wdXQgdHlwZT0iYnV0dG9uIiB2YWx1ZT0iT0siIGNsYXNzPSJmb25kbyINCiAgb25jbGljaz0iamF2YXNjcmlwdDpiYXJyZV9zZWFyY2hyZXBsYWNlKGRvY3VtZW50LmZvcm11bGFpcmUuYmFycmVfY2hlcmNoZXIudmFsdWUsIGRvY3VtZW50LmZvcm11bGFpcmUuYmFycmVfcmVtcGxhY2VyLnZhbHVlLCBkb2N1bWVudC5mb3JtdWxhaXJlLnJlY190b3V0LmNoZWNrZWQsIGRvY3VtZW50LmZvcm11bGFpcmUucmVjX2Nhc2UuY2hlY2tlZCwgZG9jdW1lbnQuZm9ybXVsYWlyZS5yZWNfZW50aWVyLmNoZWNrZWQsZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2lucHV0LTEtdGV4dGVfMScpKTsiIC8+IA0KPC90ZD48L3RyPjwvdGFibGU+PGRpdiBzdHlsZT0nY2xlYXI6IGJvdGg7Jz48L2Rpdj48L2Rpdj4KCTx0ZXh0YXJlYSBuYW1lPSd0ZXh0ZV8xJyByb3dzPScxMCcgY2xhc3M9J2Zvcm1vICAgJyBjb2xzPSc4MCcKCWlkPSdpbnB1dC0xLXRleHRlXzEnCglvbnNlbGVjdD0nc3RvcmVDYXJldCh0aGlzKTsnCglvbmNsaWNrPSdzdG9yZUNhcmV0KHRoaXMpOycKCW9ua2V5dXA9J3N0b3JlQ2FyZXQodGhpcyk7JwoJb25kYmxjbGljaz0nc3RvcmVDYXJldCh0aGlzKTsnPjwvdGV4dGFyZWE+CgkJCQkKCQkJCQoJCQkJCgkJCQkKCQkJCQoJCQkJCgkJCQkKCQkJCQoJCQkJCgkJCQk8c3BhbiBjbGFzcz0nbmV0dG95ZXVyJz4gPC9zcGFuPgoJCQkKCQk8L2Rpdj4KCQoKCgogCgkgCgkJCgkJCgkKCSAKCQk8ZGl2IGNsYXNzPSdzcGlwX2Zvcm1fY2hhbXAgdGV4dGVfMic+CgkJCQoJCQkgCgkJCQk8c3BhbiBjbGFzcz0nc3BpcF9mb3JtX2xhYmVsJz4KCQkJCQkgPGxhYmVsIGZvcj0iaW5wdXQtMS10ZXh0ZV8yIj5Wb3RyZSBRdWVzdGlvbjwvbGFiZWw+CgkJCQkJCgkJCQkJPHNwYW4gY2xhc3M9J3NwaXBfZm9ybV9sYWJlbF9vYmxpZ2F0b2lyZSc+CgkJCQkJCVtPYmxpZ2F0b2lyZV08L3NwYW4+CgkJCQkJOgoJCQkJPC9zcGFuPgoJCQkJCgkJCQkKCQkJCQoJCQkJCgkJCQkgIDx0YWJsZSBjbGFzcz0nc3BpcF9iYXJyZScgc3R5bGU9J3dpZHRoOmF1dG87JyBjZWxscGFkZGluZz0nMCcgY2VsbHNwYWNpbmc9JzAnIGJvcmRlcj0nMCcgc3VtbWFyeT0nJz4KPHRyIHN0eWxlPSd3aWR0aDogYXV0bzsnIGNsYXNzPSdzcGlwX2JhcnJlJz4KPHRkIHN0eWxlPSd0ZXh0LWFsaWduOiBsZWZ0OycgdmFsaWduPSdtaWRkbGUnPjxhIGhyZWY9ImphdmFzY3JpcHQ6YmFycmVfcmFjY291cmNpKCd7JywnfScsZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2lucHV0LTEtdGV4dGVfMicpKSIKIGNsYXNzPSdzcGlwX2JhcnJlJyB0YWJpbmRleD0nMTAwMCcgdGl0bGU9Ik1ldHRyZSBlbiB7aXRhbGlxdWV9IiBvbm1vdXNlb3Zlcj0iaGVscGxpbmUoJ01ldHRyZSBlbiB7aXRhbGlxdWV9Jyxkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYmFycmVfMicpKSIgb25tb3VzZW91dD0iaGVscGxpbmUoJ1V0aWxpc2V6IGxlcyByYWNjb3VyY2lzIHR5cG9ncmFwaGlxdWVzIHBvdXIgZW5yaWNoaXIgdm90cmUgbWlzZSBlbiBwYWdlJywgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2JhcnJlXzInKSkiPjxpbWcgc3JjPSdlY3JpcmUvaW1nX3BhY2svaWNvbmVzX2JhcnJlL2l0YWxpcXVlLnBuZycgaGVpZ2h0PScxNicgd2lkdGg9JzE2JyBhbHQ9Ik1ldHRyZSBlbiB7aXRhbGlxdWV9IiAvPjwvYT48YSBocmVmPSJqYXZhc2NyaXB0OmJhcnJlX3JhY2NvdXJjaSgne3snLCd9fScsZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2lucHV0LTEtdGV4dGVfMicpKSIKIGNsYXNzPSdzcGlwX2JhcnJlJyB0YWJpbmRleD0nMTAwMCcgdGl0bGU9Ik1ldHRyZSBlbiB7e2dyYXN9fSIgb25tb3VzZW92ZXI9ImhlbHBsaW5lKCdNZXR0cmUgZW4ge3tncmFzfX0nLGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdiYXJyZV8yJykpIiBvbm1vdXNlb3V0PSJoZWxwbGluZSgnVXRpbGlzZXogbGVzIHJhY2NvdXJjaXMgdHlwb2dyYXBoaXF1ZXMgcG91ciBlbnJpY2hpciB2b3RyZSBtaXNlIGVuIHBhZ2UnLCBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYmFycmVfMicpKSI+PGltZyBzcmM9J2VjcmlyZS9pbWdfcGFjay9pY29uZXNfYmFycmUvZ3Jhcy5wbmcnIGhlaWdodD0nMTYnIHdpZHRoPScxNicgYWx0PSJNZXR0cmUgZW4ge3tncmFzfX0iIC8+PC9hPiZuYnNwOzwvdGQ+Cjx0ZD48YSBocmVmPSJqYXZhc2NyaXB0OnN3YXBfY291Y2hlKCc3JywnJyk7IgogY2xhc3M9J3NwaXBfYmFycmUnIHRhYmluZGV4PScxMDAwJyB0aXRsZT0iVHJhbnNmb3JtZXIgZW4gW2xpZW4gaHlwZXJ0ZXh0ZS0+aHR0cDovLy4uLl0iIG9ubW91c2VvdmVyPSJoZWxwbGluZSgnVHJhbnNmb3JtZXIgZW4gW2xpZW4gaHlwZXJ0ZXh0ZS0+aHR0cDovLy4uLl0nLGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdiYXJyZV8yJykpIiBvbm1vdXNlb3V0PSJoZWxwbGluZSgnVXRpbGlzZXogbGVzIHJhY2NvdXJjaXMgdHlwb2dyYXBoaXF1ZXMgcG91ciBlbnJpY2hpciB2b3RyZSBtaXNlIGVuIHBhZ2UnLCBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYmFycmVfMicpKSI+PGltZyBzcmM9J2VjcmlyZS9pbWdfcGFjay9pY29uZXNfYmFycmUvbGllbi5wbmcnIGhlaWdodD0nMTYnIHdpZHRoPScxNicgYWx0PSJUcmFuc2Zvcm1lciBlbiBbbGllbiBoeXBlcnRleHRlLT5odHRwOi8vLi4uXSIgLz48L2E+Jm5ic3A7PC90ZD4KPHRkPjxhIGhyZWY9ImphdmFzY3JpcHQ6YmFycmVfcmFjY291cmNpKCclNUNuJTVDbiUzQ3F1b3RlJTNFJywnJTNDL3F1b3RlJTNFJTVDbiU1Q24nLGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdpbnB1dC0xLXRleHRlXzInKSkiCiBjbGFzcz0nc3BpcF9iYXJyZScgdGFiaW5kZXg9JzEwMDAnIHRpdGxlPSJDaXRlciB1biBtZXNzYWdlIiBvbm1vdXNlb3Zlcj0iaGVscGxpbmUoJ0NpdGVyIHVuIG1lc3NhZ2UnLGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdiYXJyZV8yJykpIiBvbm1vdXNlb3V0PSJoZWxwbGluZSgnVXRpbGlzZXogbGVzIHJhY2NvdXJjaXMgdHlwb2dyYXBoaXF1ZXMgcG91ciBlbnJpY2hpciB2b3RyZSBtaXNlIGVuIHBhZ2UnLCBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYmFycmVfMicpKSI+PGltZyBzcmM9J2VjcmlyZS9pbWdfcGFjay9pY29uZXNfYmFycmUvcXVvdGUucG5nJyBoZWlnaHQ9JzE2JyB3aWR0aD0nMTYnIGFsdD0iQ2l0ZXIgdW4gbWVzc2FnZSIgLz48L2E+Jm5ic3A7PC90ZD4KPHRkIHN0eWxlPSd0ZXh0LWFsaWduOmxlZnQ7JyB2YWxpZ249J21pZGRsZSc+PGEgaHJlZj0iamF2YXNjcmlwdDpzd2FwX2NvdWNoZSgnOScsJycpOyIKIGNsYXNzPSdzcGlwX2JhcnJlJyB0YWJpbmRleD0nMTAwMCcgdGl0bGU9IkNhcmFjdCZlZ3JhdmU7cmVzIHNwJmVhY3V0ZTtjaWF1eCIgb25tb3VzZW92ZXI9ImhlbHBsaW5lKCdDYXJhY3QmZWdyYXZlO3JlcyBzcCZlYWN1dGU7Y2lhdXgnLGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdiYXJyZV8yJykpIiBvbm1vdXNlb3V0PSJoZWxwbGluZSgnVXRpbGlzZXogbGVzIHJhY2NvdXJjaXMgdHlwb2dyYXBoaXF1ZXMgcG91ciBlbnJpY2hpciB2b3RyZSBtaXNlIGVuIHBhZ2UnLCBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYmFycmVfMicpKSI+PGltZyBzcmM9J3BsdWdpbnMvZm9uY3Rpb25uYWxpdGVzL2JhcnJlX3R5cG9fZWNvbG9naXF1ZS9pbWdfcGFjay9pY29uZXNfYmFycmUvY2xhdmllci5wbmcnIGhlaWdodD0nMTYnIHdpZHRoPScxNicgYWx0PSJDYXJhY3QmZWdyYXZlO3JlcyBzcCZlYWN1dGU7Y2lhdXgiIC8+PC9hPiZuYnNwOzwvdGQ+PC90cj4KPHRyPgo8dGQgY29sc3Bhbj0nNic+PGlucHV0IGRpc2FibGVkPSdkaXNhYmxlZCcgdHlwZT0ndGV4dCcgaWQ9J2JhcnJlXzInIHNpemU9JzQ1JyBtYXhsZW5ndGg9JzEwMCcgc3R5bGU9J3dpZHRoOmF1dG87IGZvbnQtc2l6ZToxMXB4OyBjb2xvcjogYmxhY2s7IGJhY2tncm91bmQtY29sb3I6ICNlNGU0ZTQ7IGJvcmRlcjogMHB4IHNvbGlkICNkZWRlZGU7Jwp2YWx1ZT0iVXRpbGlzZXogbGVzIHJhY2NvdXJjaXMgdHlwb2dyYXBoaXF1ZXMgcG91ciBlbnJpY2hpciB2b3RyZSBtaXNlIGVuIHBhZ2UiIC8+PC90ZD48L3RyPjwvdGFibGU+PGRpdiBpZD0nTGF5ZXI2JyBzdHlsZT0nZGlzcGxheTpub25lOycgPjx0YWJsZSBjbGFzcz0ic3BpcF9iYXJyZSIgc3R5bGU9IndpZHRoOiBhdXRvOyBwYWRkaW5nOiAxcHghaW1wb3J0YW50OyBib3JkZXItdG9wOiAwcHg7IiBzdW1tYXJ5PSIiPg0KPHRyPjx0ZD4NCk5iIGNvbG9ubmVzOiA8aW5wdXQgdHlwZT0idGV4dCIgbmFtZT0iYmFycmVfbmJjb2xvbmVzIiBzdHlsZT0id2lkdGg6IDMwcHg7IiB2YWx1ZT0iMiIgc2l6ZT0iMiIgbWF4bGVuZ3RoPSIyIiAgIC8+PC90ZD48dGQ+DQpOYiBsaWduZXM6IDxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJiYXJyZV9uYnJhbmdzIiBzdHlsZT0id2lkdGg6IDMwcHg7IiB2YWx1ZT0iMiIgc2l6ZT0iMiIgbWF4bGVuZ3RoPSIyIiAvPjwvdGQ+PHRkPg0KPGlucHV0IHR5cGU9ImNoZWNrYm94IiBuYW1lPSJiYXJyZV9kb2VudGV0ZSIgdmFsdWU9Ii0xIiBjaGVja2VkPSJjaGVja2VkIiAvPiBFbnRldGU8L3RkPjx0ZD4NCjxpbnB1dCB0eXBlPSJjaGVja2JveCIgbmFtZT0iYmFycmVfZG9jYXB0aW9uIiB2YWx1ZT0iLTEiIGNoZWNrZWQ9ImNoZWNrZWQiIC8+IENhcHRpb24gZXQgUiZlYWN1dGU7c3VtJmVhY3V0ZTs8L3RkPjx0ZD4NCiAgPGlucHV0IHR5cGU9ImJ1dHRvbiIgdmFsdWU9Ik9LIiBjbGFzcz0iZm9uZG8iIG9uY2xpY2s9ImphdmFzY3JpcHQ6DQogICAgYmFycmVfbmJjb2xvbmVzLnZhbHVlID0gTWF0aC5hYnMoYmFycmVfbmJjb2xvbmVzLnZhbHVlKTsgYmFycmVfbmJyYW5ncy52YWx1ZQ0KICAgID0gTWF0aC5hYnMoYmFycmVfbmJyYW5ncy52YWx1ZSk7DQogICAgaWYgKCEoYmFycmVfbmJjb2xvbmVzLnZhbHVlID09IDAgfHwgYmFycmVfbmJyYW5ncy52YWx1ZSA9PSAwKSkgew0KICAgIGJhcnJlX3RhYmxlYXUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2lucHV0LTEtdGV4dGVfMicpLCBiYXJyZV9uYmNvbG9uZXMudmFsdWUsIGJhcnJlX25icmFuZ3MudmFsdWUsDQogICAgYmFycmVfZG9lbnRldGUuY2hlY2tlZCwgYmFycmVfZG9jYXB0aW9uLmNoZWNrZWQpOyB9ICIgLz4gDQo8L3RkPjwvdHI+PC90YWJsZT4NCjxkaXYgc3R5bGU9J2NsZWFyOiBib3RoOyc+PC9kaXY+PC9kaXY+PGRpdiBpZD0nTGF5ZXI3JyBzdHlsZT0nZGlzcGxheTpub25lOycgPg0KIDx0YWJsZSBjbGFzcz0ic3BpcF9iYXJyZSIgc3R5bGU9IndpZHRoOiBhdXRvOyBwYWRkaW5nOiAxcHghaW1wb3J0YW50OyBib3JkZXItdG9wOiAwcHg7IiBzdW1tYXJ5PSIiPg0KPHRyPjx0ZD4gDQpBZHJlc3NlJm5ic3A7OiA8aW5wdXQgdHlwZT0idGV4dCIgbmFtZT0ibGllbl9ub20iIHZhbHVlPSJodHRwOi8vIiBzaXplPSIyMSIgbWF4bGVuZ3RoPSIyNTUiIC8+PGJyIC8+DQpCdWxsZSBkJ2FpZGUmbmJzcDs6IDxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJsaWVuX2J1bGxlIiB2YWx1ZT0iIiBzaXplPSIyMSIgbWF4bGVuZ3RoPSIyNTUiIC8+DQo8L3RkPjx0ZD4NCkxhbmd1ZSBhYnImZWFjdXRlO2cmZWFjdXRlO2UmbmJzcDs6IDxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJsaWVuX2xhbmd1ZSIgdmFsdWU9IiIgc2l6ZT0iMTAiIG1heGxlbmd0aD0iMTAiIC8+DQo8L3RkPjx0ZD4NCiAgPGlucHV0IHR5cGU9ImJ1dHRvbiIgdmFsdWU9Ik9LIiBjbGFzcz0iZm9uZG8iIG9uY2xpY2s9ImphdmFzY3JpcHQ6YmFycmVfZGVtYW5kZV9saWVuKCdbJywgJy0+JywgJ10nLCBsaWVuX25vbS52YWx1ZSwgbGllbl9idWxsZS52YWx1ZSwgbGllbl9sYW5ndWUudmFsdWUsZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2lucHV0LTEtdGV4dGVfMicpKTsiIC8+IA0KPC90ZD48L3RyPjwvdGFibGU+DQo8ZGl2IHN0eWxlPSdjbGVhcjogYm90aDsnPjwvZGl2PjwvZGl2PjxkaXYgaWQ9J0xheWVyOCcgc3R5bGU9J2Rpc3BsYXk6bm9uZTsnID4NCjx0YWJsZSBjbGFzcz0ic3BpcF9iYXJyZSIgc3R5bGU9IndpZHRoOiBhdXRvOyBwYWRkaW5nOiAxcHghaW1wb3J0YW50OyBib3JkZXItdG9wOiAwcHg7IiBzdW1tYXJ5PSIiPg0KICA8dHI+DQogICAgPHRkIHN0eWxlPSJ3aWR0aDphdXRvOyB0ZXh0LWFsaWduOmNlbnRlcjsiPjxzdHJvbmc+R2VzdGlvbiBkZXMgYW5jcmVzPC9zdHJvbmc+PC90ZD4NCiAgICA8dGQgc3R5bGU9IndpZHRoOmF1dG87Ij48c3Ryb25nPlRyYW5zZm9ybWVyIGVuIGFuY3JlPC9zdHJvbmc+PGJyIC8+DQogICAgPGxhYmVsIGZvcj0iYW5jcmVfbm9tIj48aT5Ob20gZGUgbCdhbmNyZTwvaT48L2xhYmVsPiA8YnIgLz4NCiAgICAgIDxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJhbmNyZV9ub20iIGlkPSJhbmNyZV9ub20iIC8+DQoJICANCgk8aW5wdXQgdHlwZT0iYnV0dG9uIiB2YWx1ZT0iT0siIGNsYXNzPSJmb25kbyIgb25jbGljaz0iamF2YXNjcmlwdDpiYXJyZV9hbmNyZSgnWycsICc8LScsICddJywgYW5jcmVfbm9tLnZhbHVlLCBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaW5wdXQtMS10ZXh0ZV8yJykpOyIgLz4NCiAgICA8L3RkPg0KCTx0ZCBzdHlsZT0id2lkdGg6YXV0bzsiPjxzdHJvbmc+UG9pbnRlciB2ZXJzIHVuZSBhbmNyZTwvc3Ryb25nPjxiciAvPg0KICAgIDxsYWJlbCBmb3I9ImFuY3JlX2NpYmxlIj48aT5BbmNyZSBjaWJsZTwvaT48L2xhYmVsPiA8aW5wdXQgdHlwZT0idGV4dCIgbmFtZT0iYW5jcmVfY2libGUiIGlkPSJhbmNyZV9jaWJsZSIgLz48YnIgLz4NCgk8bGFiZWwgZm9yPSJhbmNyZV9idWxsZSI+PGk+QnVsbGUgZCdhaWRlIGFuY3JlPC9pPjwvbGFiZWw+IDxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJhbmNyZV9idWxsZSIgaWQ9ImFuY3JlX2J1bGxlIiAvPg0KCTxpbnB1dCB0eXBlPSJidXR0b24iIHZhbHVlPSJPSyIgY2xhc3M9ImZvbmRvIiBvbmNsaWNrPSJqYXZhc2NyaXB0OmJhcnJlX2RlbWFuZGUoJ1snLCAnLT4jJywgJ10nLCBhbmNyZV9jaWJsZS52YWx1ZSwgYW5jcmVfYnVsbGUudmFsdWUsIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdpbnB1dC0xLXRleHRlXzInKSk7IiAvPiANCjwvdGQ+DQogIDwvdHI+IA0KPC90YWJsZT48ZGl2IHN0eWxlPSdjbGVhcjogYm90aDsnPjwvZGl2PjwvZGl2PjxkaXYgaWQ9J0xheWVyOScgc3R5bGU9J2Rpc3BsYXk6bm9uZTsnID4NCjx0YWJsZSBjbGFzcz0ic3BpcF9iYXJyZSIgc3R5bGU9IndpZHRoOiBhdXRvOyBwYWRkaW5nOiAxcHghaW1wb3J0YW50OyBib3JkZXItdG9wOiAwcHg7IiBzdW1tYXJ5PSIiPg0KICA8dHIgY2xhc3M9InNwaXBfYmFycmUiPg0KICAgIDx0ZCBzdHlsZT0id2lkdGg6MzAlOyI+Q2FyYWN0JmVncmF2ZTtyZXMgc3AmZWFjdXRlO2NpYXV4PC90ZD4NCiAgICA8dGQ+PGEgaHJlZj0iamF2YXNjcmlwdDpiYXJyZV9yYWNjb3VyY2koJ1x1MDBhYn4nLCd+XHUwMGJiJyxkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaW5wdXQtMS10ZXh0ZV8yJykpIgogY2xhc3M9J3NwaXBfYmFycmUnIHRhYmluZGV4PScxMDAwJyB0aXRsZT0iRW50b3VyZXIgZGUgJmxhcXVvOyBndWlsbGVtZXRzICZyYXF1bzsiIG9ubW91c2VvdmVyPSJoZWxwbGluZSgnRW50b3VyZXIgZGUgJmxhcXVvOyBndWlsbGVtZXRzICZyYXF1bzsnLGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdiYXJyZV8yJykpIiBvbm1vdXNlb3V0PSJoZWxwbGluZSgnVXRpbGlzZXogbGVzIHJhY2NvdXJjaXMgdHlwb2dyYXBoaXF1ZXMgcG91ciBlbnJpY2hpciB2b3RyZSBtaXNlIGVuIHBhZ2UnLCBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYmFycmVfMicpKSI+PGltZyBzcmM9J2VjcmlyZS9pbWdfcGFjay9pY29uZXNfYmFycmUvZ3VpbGxlbWV0cy5wbmcnIGhlaWdodD0nMTYnIHdpZHRoPScxNicgYWx0PSJFbnRvdXJlciBkZSAmbGFxdW87IGd1aWxsZW1ldHMgJnJhcXVvOyIgLz48L2E+PGEgaHJlZj0iamF2YXNjcmlwdDpiYXJyZV9yYWNjb3VyY2koJ1x1MDA5MycsJ1x1MDA5NCcsZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2lucHV0LTEtdGV4dGVfMicpKSIKIGNsYXNzPSdzcGlwX2JhcnJlJyB0YWJpbmRleD0nMTAwMCcgdGl0bGU9IkVudG91cmVyIGRlICZsZHF1bztndWlsbGVtZXRzIGRlIHNlY29uZCBuaXZlYXUmcmRxdW87IiBvbm1vdXNlb3Zlcj0iaGVscGxpbmUoJ0VudG91cmVyIGRlICZsZHF1bztndWlsbGVtZXRzIGRlIHNlY29uZCBuaXZlYXUmcmRxdW87Jyxkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYmFycmVfMicpKSIgb25tb3VzZW91dD0iaGVscGxpbmUoJ1V0aWxpc2V6IGxlcyByYWNjb3VyY2lzIHR5cG9ncmFwaGlxdWVzIHBvdXIgZW5yaWNoaXIgdm90cmUgbWlzZSBlbiBwYWdlJywgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2JhcnJlXzInKSkiPjxpbWcgc3JjPSdlY3JpcmUvaW1nX3BhY2svaWNvbmVzX2JhcnJlL2d1aWxsZW1ldHMtc2ltcGxlcy5wbmcnIGhlaWdodD0nMTYnIHdpZHRoPScxNicgYWx0PSJFbnRvdXJlciBkZSAmbGRxdW87Z3VpbGxlbWV0cyBkZSBzZWNvbmQgbml2ZWF1JnJkcXVvOyIgLz48L2E+PGEgaHJlZj0iamF2YXNjcmlwdDpiYXJyZV9pbnNlcmVyKCdcdTAwYzAnLGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdpbnB1dC0xLXRleHRlXzInKSkiCiBjbGFzcz0nc3BpcF9iYXJyZScgdGFiaW5kZXg9JzEwMDAnIHRpdGxlPSJJbnMmZWFjdXRlO3JlciB1biBBIGFjY2VudCBncmF2ZSBtYWp1c2N1bGUiIG9ubW91c2VvdmVyPSJoZWxwbGluZSgnSW5zJmVhY3V0ZTtyZXIgdW4gQSBhY2NlbnQgZ3JhdmUgbWFqdXNjdWxlJyxkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYmFycmVfMicpKSIgb25tb3VzZW91dD0iaGVscGxpbmUoJ1V0aWxpc2V6IGxlcyByYWNjb3VyY2lzIHR5cG9ncmFwaGlxdWVzIHBvdXIgZW5yaWNoaXIgdm90cmUgbWlzZSBlbiBwYWdlJywgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2JhcnJlXzInKSkiPjxpbWcgc3JjPSdlY3JpcmUvaW1nX3BhY2svaWNvbmVzX2JhcnJlL2FncmF2ZS1tYWoucG5nJyBoZWlnaHQ9JzE2JyB3aWR0aD0nMTYnIGFsdD0iSW5zJmVhY3V0ZTtyZXIgdW4gQSBhY2NlbnQgZ3JhdmUgbWFqdXNjdWxlIiAvPjwvYT48YSBocmVmPSJqYXZhc2NyaXB0OmJhcnJlX2luc2VyZXIoJ1x1MDBjOScsZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2lucHV0LTEtdGV4dGVfMicpKSIKIGNsYXNzPSdzcGlwX2JhcnJlJyB0YWJpbmRleD0nMTAwMCcgdGl0bGU9IklucyZlYWN1dGU7cmVyIHVuIEUgYWNjZW50IGFpZ3UgbWFqdXNjdWxlIiBvbm1vdXNlb3Zlcj0iaGVscGxpbmUoJ0lucyZlYWN1dGU7cmVyIHVuIEUgYWNjZW50IGFpZ3UgbWFqdXNjdWxlJyxkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYmFycmVfMicpKSIgb25tb3VzZW91dD0iaGVscGxpbmUoJ1V0aWxpc2V6IGxlcyByYWNjb3VyY2lzIHR5cG9ncmFwaGlxdWVzIHBvdXIgZW5yaWNoaXIgdm90cmUgbWlzZSBlbiBwYWdlJywgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2JhcnJlXzInKSkiPjxpbWcgc3JjPSdlY3JpcmUvaW1nX3BhY2svaWNvbmVzX2JhcnJlL2VhY3V0ZS1tYWoucG5nJyBoZWlnaHQ9JzE2JyB3aWR0aD0nMTYnIGFsdD0iSW5zJmVhY3V0ZTtyZXIgdW4gRSBhY2NlbnQgYWlndSBtYWp1c2N1bGUiIC8+PC9hPjxhIGhyZWY9ImphdmFzY3JpcHQ6YmFycmVfaW5zZXJlcignXHUwMGM4Jyxkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaW5wdXQtMS10ZXh0ZV8yJykpIgogY2xhc3M9J3NwaXBfYmFycmUnIHRhYmluZGV4PScxMDAwJyB0aXRsZT0iSW5zJmVhY3V0ZTtyZXIgdW4gRSBtYWp1c2N1bGUgYWNjZW50IGdyYXZlIiBvbm1vdXNlb3Zlcj0iaGVscGxpbmUoJ0lucyZlYWN1dGU7cmVyIHVuIEUgbWFqdXNjdWxlIGFjY2VudCBncmF2ZScsZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2JhcnJlXzInKSkiIG9ubW91c2VvdXQ9ImhlbHBsaW5lKCdVdGlsaXNleiBsZXMgcmFjY291cmNpcyB0eXBvZ3JhcGhpcXVlcyBwb3VyIGVucmljaGlyIHZvdHJlIG1pc2UgZW4gcGFnZScsIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdiYXJyZV8yJykpIj48aW1nIHNyYz0ncGx1Z2lucy9mb25jdGlvbm5hbGl0ZXMvYmFycmVfdHlwb19lY29sb2dpcXVlL2ltZ19wYWNrL2ljb25lc19iYXJyZS9lYWdyYXZlLW1hai5wbmcnIGhlaWdodD0nMTYnIHdpZHRoPScxNicgYWx0PSJJbnMmZWFjdXRlO3JlciB1biBFIG1hanVzY3VsZSBhY2NlbnQgZ3JhdmUiIC8+PC9hPjxhIGhyZWY9ImphdmFzY3JpcHQ6YmFycmVfaW5zZXJlcignXHUwMGU2Jyxkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaW5wdXQtMS10ZXh0ZV8yJykpIgogY2xhc3M9J3NwaXBfYmFycmUnIHRhYmluZGV4PScxMDAwJyB0aXRsZT0iSW5zJmVhY3V0ZTtyZXIgdW4gRSBkYW5zIGwnQSIgb25tb3VzZW92ZXI9ImhlbHBsaW5lKCdJbnMmZWFjdXRlO3JlciB1biBFIGRhbnMgbFwnQScsZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2JhcnJlXzInKSkiIG9ubW91c2VvdXQ9ImhlbHBsaW5lKCdVdGlsaXNleiBsZXMgcmFjY291cmNpcyB0eXBvZ3JhcGhpcXVlcyBwb3VyIGVucmljaGlyIHZvdHJlIG1pc2UgZW4gcGFnZScsIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdiYXJyZV8yJykpIj48aW1nIHNyYz0ncGx1Z2lucy9mb25jdGlvbm5hbGl0ZXMvYmFycmVfdHlwb19lY29sb2dpcXVlL2ltZ19wYWNrL2ljb25lc19iYXJyZS9hZWxpZy5wbmcnIGhlaWdodD0nMTYnIHdpZHRoPScxNicgYWx0PSJJbnMmZWFjdXRlO3JlciB1biBFIGRhbnMgbCdBIiAvPjwvYT48YSBocmVmPSJqYXZhc2NyaXB0OmJhcnJlX2luc2VyZXIoJ1x1MDBjNicsZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2lucHV0LTEtdGV4dGVfMicpKSIKIGNsYXNzPSdzcGlwX2JhcnJlJyB0YWJpbmRleD0nMTAwMCcgdGl0bGU9IklucyZlYWN1dGU7cmVyIHVuIEUgZGFucyBsJ0EgbWFqdXNjdWxlIiBvbm1vdXNlb3Zlcj0iaGVscGxpbmUoJ0lucyZlYWN1dGU7cmVyIHVuIEUgZGFucyBsXCdBIG1hanVzY3VsZScsZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2JhcnJlXzInKSkiIG9ubW91c2VvdXQ9ImhlbHBsaW5lKCdVdGlsaXNleiBsZXMgcmFjY291cmNpcyB0eXBvZ3JhcGhpcXVlcyBwb3VyIGVucmljaGlyIHZvdHJlIG1pc2UgZW4gcGFnZScsIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdiYXJyZV8yJykpIj48aW1nIHNyYz0ncGx1Z2lucy9mb25jdGlvbm5hbGl0ZXMvYmFycmVfdHlwb19lY29sb2dpcXVlL2ltZ19wYWNrL2ljb25lc19iYXJyZS9hZWxpZy1tYWoucG5nJyBoZWlnaHQ9JzE2JyB3aWR0aD0nMTYnIGFsdD0iSW5zJmVhY3V0ZTtyZXIgdW4gRSBkYW5zIGwnQSBtYWp1c2N1bGUiIC8+PC9hPjxhIGhyZWY9ImphdmFzY3JpcHQ6YmFycmVfaW5zZXJlcignJm9lbGlnOycsZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2lucHV0LTEtdGV4dGVfMicpKSIKIGNsYXNzPSdzcGlwX2JhcnJlJyB0YWJpbmRleD0nMTAwMCcgdGl0bGU9IklucyZlYWN1dGU7cmVyIHVuIEUgZGFucyBsJ08iIG9ubW91c2VvdmVyPSJoZWxwbGluZSgnSW5zJmVhY3V0ZTtyZXIgdW4gRSBkYW5zIGxcJ08nLGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdiYXJyZV8yJykpIiBvbm1vdXNlb3V0PSJoZWxwbGluZSgnVXRpbGlzZXogbGVzIHJhY2NvdXJjaXMgdHlwb2dyYXBoaXF1ZXMgcG91ciBlbnJpY2hpciB2b3RyZSBtaXNlIGVuIHBhZ2UnLCBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYmFycmVfMicpKSI+PGltZyBzcmM9J2VjcmlyZS9pbWdfcGFjay9pY29uZXNfYmFycmUvb2VsaWcucG5nJyBoZWlnaHQ9JzE2JyB3aWR0aD0nMTYnIGFsdD0iSW5zJmVhY3V0ZTtyZXIgdW4gRSBkYW5zIGwnTyIgLz48L2E+PGEgaHJlZj0iamF2YXNjcmlwdDpiYXJyZV9pbnNlcmVyKCcmT0VsaWc7Jyxkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaW5wdXQtMS10ZXh0ZV8yJykpIgogY2xhc3M9J3NwaXBfYmFycmUnIHRhYmluZGV4PScxMDAwJyB0aXRsZT0iSW5zJmVhY3V0ZTtyZXIgdW4gRSBkYW5zIGwnTyBtYWp1c2N1bGUiIG9ubW91c2VvdmVyPSJoZWxwbGluZSgnSW5zJmVhY3V0ZTtyZXIgdW4gRSBkYW5zIGxcJ08gbWFqdXNjdWxlJyxkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYmFycmVfMicpKSIgb25tb3VzZW91dD0iaGVscGxpbmUoJ1V0aWxpc2V6IGxlcyByYWNjb3VyY2lzIHR5cG9ncmFwaGlxdWVzIHBvdXIgZW5yaWNoaXIgdm90cmUgbWlzZSBlbiBwYWdlJywgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2JhcnJlXzInKSkiPjxpbWcgc3JjPSdlY3JpcmUvaW1nX3BhY2svaWNvbmVzX2JhcnJlL29lbGlnLW1hai5wbmcnIGhlaWdodD0nMTYnIHdpZHRoPScxNicgYWx0PSJJbnMmZWFjdXRlO3JlciB1biBFIGRhbnMgbCdPIG1hanVzY3VsZSIgLz48L2E+PGEgaHJlZj0iamF2YXNjcmlwdDpiYXJyZV9pbnNlcmVyKCdcdTAwYzcnLGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdpbnB1dC0xLXRleHRlXzInKSkiCiBjbGFzcz0nc3BpcF9iYXJyZScgdGFiaW5kZXg9JzEwMDAnIHRpdGxlPSJJbnMmZWFjdXRlO3JlciB1biBDIGMmZWFjdXRlO2RpbGxlIG1hanVzY3VsZSIgb25tb3VzZW92ZXI9ImhlbHBsaW5lKCdJbnMmZWFjdXRlO3JlciB1biBDIGMmZWFjdXRlO2RpbGxlIG1hanVzY3VsZScsZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2JhcnJlXzInKSkiIG9ubW91c2VvdXQ9ImhlbHBsaW5lKCdVdGlsaXNleiBsZXMgcmFjY291cmNpcyB0eXBvZ3JhcGhpcXVlcyBwb3VyIGVucmljaGlyIHZvdHJlIG1pc2UgZW4gcGFnZScsIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdiYXJyZV8yJykpIj48aW1nIHNyYz0ncGx1Z2lucy9mb25jdGlvbm5hbGl0ZXMvYmFycmVfdHlwb19lY29sb2dpcXVlL2ltZ19wYWNrL2ljb25lc19iYXJyZS9jY2VkaWwtbWFqLnBuZycgaGVpZ2h0PScxNicgd2lkdGg9JzE2JyBhbHQ9IklucyZlYWN1dGU7cmVyIHVuIEMgYyZlYWN1dGU7ZGlsbGUgbWFqdXNjdWxlIiAvPjwvYT48YSBocmVmPSJqYXZhc2NyaXB0OmJhcnJlX2luc2VyZXIoJyZldXJvOycsZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2lucHV0LTEtdGV4dGVfMicpKSIKIGNsYXNzPSdzcGlwX2JhcnJlJyB0YWJpbmRleD0nMTAwMCcgdGl0bGU9IklucyZlYWN1dGU7cmVyIGxlIHN5bWJvbGUgJmV1cm87IiBvbm1vdXNlb3Zlcj0iaGVscGxpbmUoJ0lucyZlYWN1dGU7cmVyIGxlIHN5bWJvbGUgJmV1cm87Jyxkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYmFycmVfMicpKSIgb25tb3VzZW91dD0iaGVscGxpbmUoJ1V0aWxpc2V6IGxlcyByYWNjb3VyY2lzIHR5cG9ncmFwaGlxdWVzIHBvdXIgZW5yaWNoaXIgdm90cmUgbWlzZSBlbiBwYWdlJywgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2JhcnJlXzInKSkiPjxpbWcgc3JjPSdlY3JpcmUvaW1nX3BhY2svaWNvbmVzX2JhcnJlL2V1cm8ucG5nJyBoZWlnaHQ9JzE2JyB3aWR0aD0nMTYnIGFsdD0iSW5zJmVhY3V0ZTtyZXIgbGUgc3ltYm9sZSAmZXVybzsiIC8+PC9hPiZuYnNwOw0KICAgIDwvdGQ+DQogIDwvdHI+IA0KPC90YWJsZT4NCjxkaXYgc3R5bGU9J2NsZWFyOiBib3RoOyc+PC9kaXY+PC9kaXY+PGRpdiBpZD0nTGF5ZXIxMCcgc3R5bGU9J2Rpc3BsYXk6bm9uZTsnID4NCjx0YWJsZSBjbGFzcz0ic3BpcF9iYXJyZSIgc3R5bGU9IndpZHRoOiBhdXRvOyBwYWRkaW5nOiAxcHghaW1wb3J0YW50OyBib3JkZXItdG9wOiAwcHg7IiBzdW1tYXJ5PSIiPg0KPHRyPjx0ZCBzdHlsZT0id2lkdGg6IDI1JTsiPkNoZXJjaGVyPGlucHV0IHR5cGU9InRleHQiIG5hbWU9ImJhcnJlX2NoZXJjaGVyIiB2YWx1ZT0iIiBzaXplPSIxMiIgbWF4bGVuZ3RoPSIyNTUiIC8+PC90ZD48dGQgc3R5bGU9IndpZHRoOiAyMCU7Ij4NCjxpbnB1dCB0eXBlPSJjaGVja2JveCIgbmFtZT0icmVjX2Nhc2UiIHZhbHVlPSJ5ZXMiIC8+UmVzcGVjdGVyIGxhIGNhc3NlPGJyIC8+PGlucHV0IHR5cGU9ImNoZWNrYm94IiBuYW1lPSJyZWNfZW50aWVyIiB2YWx1ZT0ieWVzIiAvPg0KTW90IGVudGllcg0KPC90ZD48dGQgIHN0eWxlPSJ3aWR0aDogMjUlOyI+UmVtcGxhY2VyPGlucHV0IHR5cGU9InRleHQiIG5hbWU9ImJhcnJlX3JlbXBsYWNlciIgdmFsdWU9IiIgc2l6ZT0iMTIiIG1heGxlbmd0aD0iMjU1IiAvPiANCjwvdGQ+PHRkIHN0eWxlPSJ3aWR0aDogMjAlOyI+DQo8aW5wdXQgdHlwZT0iY2hlY2tib3giIG5hbWU9InJlY190b3V0IiB2YWx1ZT0ieWVzIiAvPlRvdXQgcmVtcGxhY2VyPC90ZD48dGQgc3R5bGU9IndpZHRoOiAxMCU7Ij4NCiAgIDxpbnB1dCB0eXBlPSJidXR0b24iIHZhbHVlPSJPSyIgY2xhc3M9ImZvbmRvIg0KICBvbmNsaWNrPSJqYXZhc2NyaXB0OmJhcnJlX3NlYXJjaHJlcGxhY2UoZG9jdW1lbnQuZm9ybXVsYWlyZS5iYXJyZV9jaGVyY2hlci52YWx1ZSwgZG9jdW1lbnQuZm9ybXVsYWlyZS5iYXJyZV9yZW1wbGFjZXIudmFsdWUsIGRvY3VtZW50LmZvcm11bGFpcmUucmVjX3RvdXQuY2hlY2tlZCwgZG9jdW1lbnQuZm9ybXVsYWlyZS5yZWNfY2FzZS5jaGVja2VkLCBkb2N1bWVudC5mb3JtdWxhaXJlLnJlY19lbnRpZXIuY2hlY2tlZCxkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaW5wdXQtMS10ZXh0ZV8yJykpOyIgLz4gDQo8L3RkPjwvdHI+PC90YWJsZT48ZGl2IHN0eWxlPSdjbGVhcjogYm90aDsnPjwvZGl2PjwvZGl2PgoJPHRleHRhcmVhIG5hbWU9J3RleHRlXzInIHJvd3M9JzEwJyBjbGFzcz0nZm9ybWwgICAnIGNvbHM9JzgwJwoJaWQ9J2lucHV0LTEtdGV4dGVfMicKCW9uc2VsZWN0PSdzdG9yZUNhcmV0KHRoaXMpOycKCW9uY2xpY2s9J3N0b3JlQ2FyZXQodGhpcyk7JwoJb25rZXl1cD0nc3RvcmVDYXJldCh0aGlzKTsnCglvbmRibGNsaWNrPSdzdG9yZUNhcmV0KHRoaXMpOyc+PC90ZXh0YXJlYT4KCQkJCQoJCQkJCgkJCQkKCQkJCQoJCQkJCgkJCQkKCQkJCQoJCQkJCgkJCQkKCQkJCTxzcGFuIGNsYXNzPSduZXR0b3lldXInPiA8L3NwYW4+CgkJCQoJCTwvZGl2PgoJCgoKIAoJPC9maWVsZHNldD4KCiAKIAoJCgk8cCBzdHlsZT0nZGlzcGxheTpub25lOyc+PGxhYmVsIGZvcj0ibm9ib3Rub2JvdC0xIj5WZXVpbGxleiBsYWlzc2VyIGNlIGNoYW1wIHZpZGUmbmJzcDs6PC9sYWJlbD4KCTxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJub2JvdG5vYm90IiBpZD0ibm9ib3Rub2JvdC0xIiB2YWx1ZT0iIiBzaXplPSIxMCIgLz48L3A+CgkKCTxkaXYgc3R5bGU9J3RleHQtYWxpZ246cmlnaHQnIGNsYXNzPSdzcGlwX2JvdXRvbic+PGlucHV0IHR5cGU9InN1Ym1pdCIgbmFtZT0nVmFsaWRlcicgdmFsdWU9IlZhbGlkZXIiIC8+PC9kaXY+CgoKPHNjcmlwdCBzcmM9Imh0dHA6Ly9wcmVwcm9kLm5vdHJlLXZpbGxlLm5ldC9+c3RzZWIvcGx1Z2lucy9mb25jdGlvbm5hbGl0ZXMvZm9ybXMvamF2YXNjcmlwdC9qdGlwLmpzIiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPjwvc2NyaXB0PgoKPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPjwhLS0KJCgnaW5wdXQuZm9ybW8nKS5iaW5kKCdmb2N1cycsZnVuY3Rpb24oKXskKHRoaXMpLnJlbW92ZUNsYXNzKCdmb3JtbycpLmFkZENsYXNzKCdmb3Jtby1mb2N1cycpO30pOwokKCdpbnB1dC5mb3JtbycpLmJpbmQoJ2JsdXInLGZ1bmN0aW9uKCl7JCh0aGlzKS5yZW1vdmVDbGFzcygnZm9ybW8tZm9jdXMnKS5hZGRDbGFzcygnZm9ybW8nKTt9KTsKJCgnaW5wdXQuZm9ybWwnKS5iaW5kKCdmb2N1cycsZnVuY3Rpb24oKXskKHRoaXMpLnJlbW92ZUNsYXNzKCdmb3JtbCcpLmFkZENsYXNzKCdmb3JtbC1mb2N1cycpO30pOwokKCdpbnB1dC5mb3JtbCcpLmJpbmQoJ2JsdXInLGZ1bmN0aW9uKCl7JCh0aGlzKS5yZW1vdmVDbGFzcygnZm9ybWwtZm9jdXMnKS5hZGRDbGFzcygnZm9ybWwnKTt9KTsKCi8vLS0+PC9zY3JpcHQ+CgoJIAoJPC9mb3JtPgoJCgkKCQoKCjwvZGl2Pg==" ></div>',
212
+                'attribut' => 'title',
213
+            ],
214
+            'base64 #2' => [
215
+                'expected' => 'bW9kZWxlIDogYTo3OntzOjQ6JnF1b3Q7bGFuZyZxdW90OztzOjI6JnF1b3Q7ZnImcXVvdDs7czo0OiZxdW90O2ZvbmQmcXVvdDs7czoxMjomcXVvdDttb2RlbGVzL2Zvcm0mcXVvdDs7czoxMDomcXVvdDtkaXJfcmFjaW5lJnF1b3Q7O3M6MzomcXVvdDsuLi8mcXVvdDs7czoyOiZxdW90O2lkJnF1b3Q7O3M6MTomcXVvdDsxJnF1b3Q7O3M6NzomcXVvdDtpZF9mb3JtJnF1b3Q7O3M6MTomcXVvdDsxJnF1b3Q7O3M6NDomcXVvdDtkYXRlJnF1b3Q7O3M6MTk6JnF1b3Q7MjAwNy0wNS0xMSAxMTo0MjoxOSZxdW90OztzOjEwOiZxdW90O2RhdGVfcmVkYWMmcXVvdDs7czoxOTomcXVvdDsyMDA3LTA1LTExIDExOjQyOjE5JnF1b3Q7O30KCmljaXRvdG8KCjxhIG5hbWU9J2Zvcm0xJz48L2E+CjxkaXYgY2xhc3M9J3NwaXBfZm9ybXMnPgoKPGRpdiBjbGFzcz0nc3BpcF9kZXNjcmlwdGlmJz48L2Rpdj4KCgoKCiAKCQkKCQk8ZGl2PgoJCQo8aW5wdXQgbmFtZT0nZXhlYycgdmFsdWU9J2FydGljbGVzJyB0eXBlPSdoaWRkZW4nIC8+CjxpbnB1dCBuYW1lPSdpZF9hcnRpY2xlJyB2YWx1ZT0nOCcgdHlwZT0naGlkZGVuJyAvPgoJCTxpbnB1dCB0eXBlPSdoaWRkZW4nIG5hbWU9J2Fqb3V0X3JlcG9uc2UnIHZhbHVlPScxJyAvPgoJCTxpbnB1dCB0eXBlPSdoaWRkZW4nIG5hbWU9J2lkX2Rvbm5lZScgdmFsdWU9Jy0xMCcgLz4KCQkKCQk8aW5wdXQgdHlwZT0naGlkZGVuJyBuYW1lPSdyZXRvdXJfZm9ybScgdmFsdWU9JycgLz4KCQkKCQk8L2Rpdj4KCQkJCgoKIAoJIAoJCQoJCSA8ZmllbGRzZXQ+PGxlZ2VuZD5Ob3VzIGNvbnRhY3RlcjwvbGVnZW5kPiAKCQoJIAoJCTxkaXYgY2xhc3M9J3NwaXBfZm9ybV9jaGFtcCBsaWduZV8xJz4KCQkJCgkJCSAKCQkJCTxzcGFuIGNsYXNzPSdzcGlwX2Zvcm1fbGFiZWwnPgoJCQkJCSA8bGFiZWwgZm9yPSJpbnB1dC0xLWxpZ25lXzEiPlZvdHJlIE5vbTwvbGFiZWw+CgkJCQkJCgkJCQkJPHNwYW4gY2xhc3M9J3NwaXBfZm9ybV9sYWJlbF9vYmxpZ2F0b2lyZSc+CgkJCQkJCVtPYmxpZ2F0b2lyZV08L3NwYW4+CgkJCQkJOgoJCQkJPC9zcGFuPgoJCQkJCgkJCQkKCQkJCQoJCQkJCgkJCQkKCQkJCQoJCQkJCgkJCQkKCQkJCQoJCQkJCgkJCQkKCQkJCSAKCQkJCQoJCQkJPGlucHV0IHR5cGU9InRleHRlIiBuYW1lPSdsaWduZV8xJyBpZD0naW5wdXQtMS1saWduZV8xJyB2YWx1ZT0iIiAKCQkJCQkJY2xhc3M9JyAgbGlnbmUgZm9ybWwnIAoJCQkJCQlzaXplPSc0MCcgLz4KCQkJCQoJCQkJCgkJCQkKCQkJCTxzcGFuIGNsYXNzPSduZXR0b3lldXInPiA8L3NwYW4+CgkJCQoJCTwvZGl2PgoJCgoKCiAKCSAKCQkKCQkKCQoJIAoJCTxkaXYgY2xhc3M9J3NwaXBfZm9ybV9jaGFtcCBsaWduZV8yJz4KCQkJCgkJCSAKCQkJCTxzcGFuIGNsYXNzPSdzcGlwX2Zvcm1fbGFiZWwnPgoJCQkJCSA8bGFiZWwgZm9yPSJpbnB1dC0xLWxpZ25lXzIiPlZvdHJlIFByw6lub208L2xhYmVsPgoJCQkJCQoJCQkJCTxzcGFuIGNsYXNzPSdzcGlwX2Zvcm1fbGFiZWxfb2JsaWdhdG9pcmUnPgoJCQkJCQlbT2JsaWdhdG9pcmVdPC9zcGFuPgoJCQkJCToKCQkJCTwvc3Bhbj4KCQkJCQoJCQkJCgkJCQkKCQkJCQoJCQkJCgkJCQkKCQkJCQoJCQkJCgkJCQkKCQkJCQoJCQkJCgkJCQkgCgkJCQkKCQkJCTxpbnB1dCB0eXBlPSJ0ZXh0ZSIgbmFtZT0nbGlnbmVfMicgaWQ9J2lucHV0LTEtbGlnbmVfMicgdmFsdWU9IiIgCgkJCQkJCWNsYXNzPScgIGxpZ25lIGZvcm1sJyAKCQkJCQkJc2l6ZT0nNDAnIC8+CgkJCQkKCQkJCQoJCQkJCgkJCQk8c3BhbiBjbGFzcz0nbmV0dG95ZXVyJz4gPC9zcGFuPgoJCQkKCQk8L2Rpdj4KCQoKCgogCgkgCgkJCgkJCgkKCSAKCQk8ZGl2IGNsYXNzPSdzcGlwX2Zvcm1fY2hhbXAgZW1haWxfMSc+CgkJCQoJCQkgCgkJCQk8c3BhbiBjbGFzcz0nc3BpcF9mb3JtX2xhYmVsJz4KCQkJCQkgPGxhYmVsIGZvcj0iaW5wdXQtMS1lbWFpbF8xIj5Wb3RyZSBlbWFpbDwvbGFiZWw+CgkJCQkJCgkJCQkJPHNwYW4gY2xhc3M9J3NwaXBfZm9ybV9sYWJlbF9vYmxpZ2F0b2lyZSc+CgkJCQkJCVtPYmxpZ2F0b2lyZV08L3NwYW4+CgkJCQkJOgoJCQkJPC9zcGFuPgoJCQkJCgkJCQk8c3BhbiBjbGFzcz0nc3BpcF9mb3JtX2xhYmVsX2RldGFpbHMnPlZldWlsbGV6IGVudHJlciB1bmUgYWRyZXNzZSBlLW1haWwgdmFsaWRlIChkZSB0eXBlIHZvdXNAZm91cm5pc3NldXIuY29tKS48L3NwYW4+CgkJCQkKCQkJCQoJCQkJCgkJCQkKCQkJCQoJCQkJCgkJCQkKCQkJCQoJCQkJCgkJCQkgCgkJCQkKCQkJCTxpbnB1dCB0eXBlPSJ0ZXh0ZSIgbmFtZT0nZW1haWxfMScgaWQ9J2lucHV0LTEtZW1haWxfMScgdmFsdWU9IiIgCgkJCQkJCWNsYXNzPScgIGVtYWlsIGZvcm1sJyAKCQkJCQkJc2l6ZT0nNDAnIC8+CgkJCQkKCQkJCQoJCQkJCgkJCQk8c3BhbiBjbGFzcz0nbmV0dG95ZXVyJz4gPC9zcGFuPgoJCQkKCQk8L2Rpdj4KCQoKCgogCgkgCgkJCgkJCgkKCSAKCQk8ZGl2IGNsYXNzPSdzcGlwX2Zvcm1fY2hhbXAgdGV4dGVfMSc+CgkJCQoJCQkgCgkJCQk8c3BhbiBjbGFzcz0nc3BpcF9mb3JtX2xhYmVsJz4KCQkJCQkgPGxhYmVsIGZvcj0iaW5wdXQtMS10ZXh0ZV8xIj5Wb3RyZSBBZHJlc3NlPC9sYWJlbD4KCQkJCQkKCQkJCQkKCQkJCQk6CgkJCQk8L3NwYW4+CgkJCQkKCQkJCQoJCQkJCgkJCQkKCQkJCSAgPGRpdiBjbGFzcz0iYmFzZTY0amF2YXNjcmlwdDYxNjYyMzIzMDQ2NDQzNDk4YmRmMDE5LjMxMDkxNjM1IiB0aXRsZT0nUEhOamNtbHdkQ0IwZVhCbFBTSjBaWGgwTDJwaGRtRnpZM0pwY0hRaUlITnlZejBpTGk0dmNHeDFaMmx1Y3k5aFpHMXBiaTh0YWxGMVpYSjVMMmx0WjE5d1lXTnJMMnhoZVdWeUxtcHpJajQ4TDNOamNtbHdkRDQ9JyA+PC9kaXY+Cgo8ZGl2IGNsYXNzPSJiYXNlNjRqYXZhc2NyaXB0NjE2NjIzMjMwNDY0NDM0OThiZGYwMTkuMzEwOTE2MzUiIHRpdGxlPSdQSE5qY21sd2RDQjBlWEJsUFNKMFpYaDBMMnBoZG1GelkzSnBjSFFpSUhOeVl6MGlMaTR2Y0d4MVoybHVjeTltYjI1amRHbHZibTVoYkdsMFpYTXZZbUZ5Y21WZmRIbHdiMTlsWTI5c2IyZHBjWFZsTDJwekwzTndhWEJmWW1GeWNtVXVhbk1pUGp3dmMyTnlhWEIwUGc9PScgPjwvZGl2PgoKPHRhYmxlIGNsYXNzPSdzcGlwX2JhcnJlJyBzdHlsZT0nd2lkdGg6YXV0bzsnIGNlbGxwYWRkaW5nPScwJyBjZWxsc3BhY2luZz0nMCcgYm9yZGVyPScwJyBzdW1tYXJ5PScnPgo8dHIgc3R5bGU9J3dpZHRoOiBhdXRvOycgY2xhc3M9J3NwaXBfYmFycmUnPgo8dGQgc3R5bGU9J3RleHQtYWxpZ246IGxlZnQ7JyB2YWxpZ249J21pZGRsZSc+PGEgaHJlZj0iamF2YXNjcmlwdDpiYXJyZV9yYWNjb3VyY2koJ3snLCd9Jyxkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaW5wdXQtMS10ZXh0ZV8xJykpIgogY2xhc3M9J3NwaXBfYmFycmUnIHRhYmluZGV4PScxMDAwJyB0aXRsZT0iTWV0dHJlIGVuIHtpdGFsaXF1ZX0iPjxpbWcgc3JjPSdpbWdfcGFjay9pY29uZXNfYmFycmUvaXRhbGlxdWUucG5nJyBoZWlnaHQ9JzE2JyB3aWR0aD0nMTYnIGFsdD0iTWV0dHJlIGVuIHtpdGFsaXF1ZX0iIC8+PC9hPjxhIGhyZWY9ImphdmFzY3JpcHQ6YmFycmVfcmFjY291cmNpKCd7eycsJ319Jyxkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaW5wdXQtMS10ZXh0ZV8xJykpIgogY2xhc3M9J3NwaXBfYmFycmUnIHRhYmluZGV4PScxMDAwJyB0aXRsZT0iTWV0dHJlIGVuIHt7Z3Jhc319Ij48aW1nIHNyYz0naW1nX3BhY2svaWNvbmVzX2JhcnJlL2dyYXMucG5nJyBoZWlnaHQ9JzE2JyB3aWR0aD0nMTYnIGFsdD0iTWV0dHJlIGVuIHt7Z3Jhc319IiAvPjwvYT48YSBocmVmPSJqYXZhc2NyaXB0OmJhcnJlX3JhY2NvdXJjaSgnWyonLCcqXScsZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2lucHV0LTEtdGV4dGVfMScpKSIKIGNsYXNzPSdzcGlwX2JhcnJlJyB0YWJpbmRleD0nMTAwMCcgdGl0bGU9Ik1ldHRyZSBsZSB0ZXh0ZSBlbiBbKiZlYWN1dGU7dmlkZW5jZSpdIj48aW1nIHNyYz0nLi4vcGx1Z2lucy9mb25jdGlvbm5hbGl0ZXMvYmFycmVfdHlwb19lY29sb2dpcXVlL2ltZ19wYWNrL2ljb25lc19iYXJyZS9taXNlZW5ldmlkZW5jZS5wbmcnIGhlaWdodD0nMTYnIHdpZHRoPScxNicgYWx0PSJNZXR0cmUgbGUgdGV4dGUgZW4gWyomZWFjdXRlO3ZpZGVuY2UqXSIgLz48L2E+PGEgaHJlZj0iamF2YXNjcmlwdDpiYXJyZV9yYWNjb3VyY2koJyUzQ3N1cCUzRScsJyUzQy9zdXAlM0UnLGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdpbnB1dC0xLXRleHRlXzEnKSkiCiBjbGFzcz0nc3BpcF9iYXJyZScgdGFiaW5kZXg9JzEwMDAnIHRpdGxlPSJNZXR0cmUgbGUgdGV4dGUgZW4gJmx0O3N1cCZndDtleHBvc2FudCZsdDsvc3VwJmd0OyI+PGltZyBzcmM9Jy4uL3BsdWdpbnMvZm9uY3Rpb25uYWxpdGVzL2JhcnJlX3R5cG9fZWNvbG9naXF1ZS9pbWdfcGFjay9pY29uZXNfYmFycmUvZXhwb3NhbnQucG5nJyBoZWlnaHQ9JzE2JyB3aWR0aD0nMTYnIGFsdD0iTWV0dHJlIGxlIHRleHRlIGVuICZsdDtzdXAmZ3Q7ZXhwb3NhbnQmbHQ7L3N1cCZndDsiIC8+PC9hPjxhIGhyZWY9ImphdmFzY3JpcHQ6YmFycmVfcmFjY291cmNpKCclM0NzYyUzRScsJyUzQy9zYyUzRScsZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2lucHV0LTEtdGV4dGVfMScpKSIKIGNsYXNzPSdzcGlwX2JhcnJlJyB0YWJpbmRleD0nMTAwMCcgdGl0bGU9Ik1ldHRyZSBsZSB0ZXh0ZSBlbiAmbHQ7c2MmZ3Q7cGV0aXRlcyBjYXBpdGFsZXMmbHQ7L3NjJmd0OyI+PGltZyBzcmM9Jy4uL3BsdWdpbnMvZm9uY3Rpb25uYWxpdGVzL2JhcnJlX3R5cG9fZWNvbG9naXF1ZS9pbWdfcGFjay9pY29uZXNfYmFycmUvcGV0aXRlc2NhcGl0YWxlcy5wbmcnIGhlaWdodD0nMTYnIHdpZHRoPScxNicgYWx0PSJNZXR0cmUgbGUgdGV4dGUgZW4gJmx0O3NjJmd0O3BldGl0ZXMgY2FwaXRhbGVzJmx0Oy9zYyZndDsiIC8+PC9hPiZuYnNwOzwvdGQ+Cjx0ZD48YSBocmVmPSJqYXZhc2NyaXB0OnN3YXBfY291Y2hlKCcxMScsJycpOyIKIGNsYXNzPSdzcGlwX2JhcnJlJyB0YWJpbmRleD0nMTAwMCcgdGl0bGU9IlRyYW5zZm9ybWVyIGVuIFtsaWVuIGh5cGVydGV4dGUtPmh0dHA6Ly8uLi5dIj48aW1nIHNyYz0naW1nX3BhY2svaWNvbmVzX2JhcnJlL2xpZW4ucG5nJyBoZWlnaHQ9JzE2JyB3aWR0aD0nMTYnIGFsdD0iVHJhbnNmb3JtZXIgZW4gW2xpZW4gaHlwZXJ0ZXh0ZS0+aHR0cDovLy4uLl0iIC8+PC9hPiZuYnNwOzwvdGQ+Cjx0ZD48YSBocmVmPSJqYXZhc2NyaXB0OmJhcnJlX3JhY2NvdXJjaSgnJTVDbiU1Q24lM0NxdW90ZSUzRScsJyUzQy9xdW90ZSUzRSU1Q24lNUNuJyxkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaW5wdXQtMS10ZXh0ZV8xJykpIgogY2xhc3M9J3NwaXBfYmFycmUnIHRhYmluZGV4PScxMDAwJyB0aXRsZT0iQ2l0ZXIgdW4gbWVzc2FnZSI+PGltZyBzcmM9J2ltZ19wYWNrL2ljb25lc19iYXJyZS9xdW90ZS5wbmcnIGhlaWdodD0nMTYnIHdpZHRoPScxNicgYWx0PSJDaXRlciB1biBtZXNzYWdlIiAvPjwvYT48YSBocmVmPSJqYXZhc2NyaXB0OmJhcnJlX3JhY2NvdXJjaSgnWz8nLCddJyxkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaW5wdXQtMS10ZXh0ZV8xJykpIgogY2xhc3M9J3NwaXBfYmFycmUnIHRhYmluZGV4PScxMDAwJyB0aXRsZT0iRW50ciZlYWN1dGU7ZSBkdSBbP2dsb3NzYWlyZV0gKFdpa2lwZWRpYSkiPjxpbWcgc3JjPScuLi9wbHVnaW5zL2ZvbmN0aW9ubmFsaXRlcy9iYXJyZV90eXBvX2Vjb2xvZ2lxdWUvaW1nX3BhY2svaWNvbmVzX2JhcnJlL2JhcnJlLXdpa2kucG5nJyBoZWlnaHQ9JzE2JyB3aWR0aD0nMTYnIGFsdD0iRW50ciZlYWN1dGU7ZSBkdSBbP2dsb3NzYWlyZV0gKFdpa2lwZWRpYSkiIC8+PC9hPjxhIGhyZWY9ImphdmFzY3JpcHQ6c3dhcF9jb3VjaGUoJzEwJywnJyk7IgogY2xhc3M9J3NwaXBfYmFycmUnIHRhYmluZGV4PScxMDAwJyB0aXRsZT0iSW5zJmVhY3V0ZTtyZXIgdW4gdGFibGVhdSI+PGltZyBzcmM9Jy4uL3BsdWdpbnMvZm9uY3Rpb25uYWxpdGVzL2JhcnJlX3R5cG9fZWNvbG9naXF1ZS9pbWdfcGFjay9pY29uZXNfYmFycmUvYmFycmUtdGFibGVhdS5wbmcnIGhlaWdodD0nMTYnIHdpZHRoPScxNicgYWx0PSJJbnMmZWFjdXRlO3JlciB1biB0YWJsZWF1IiAvPjwvYT4mbmJzcDwvdGQ+Cjx0ZD48YSBocmVmPSJqYXZhc2NyaXB0OnN3YXBfY291Y2hlKCcxNCcsJycpOyIKIGNsYXNzPSdzcGlwX2JhcnJlJyB0YWJpbmRleD0nMTAwMCcgdGl0bGU9IkNoZXJjaGVyIFJlbXBsYWNlciI+PGltZyBzcmM9Jy4uL3BsdWdpbnMvZm9uY3Rpb25uYWxpdGVzL2JhcnJlX3R5cG9fZWNvbG9naXF1ZS9pbWdfcGFjay9pY29uZXNfYmFycmUvY2hlcmNoZXJfcmVtcGxhY2VyLnBuZycgaGVpZ2h0PScxNicgd2lkdGg9JzE2JyBhbHQ9IkNoZXJjaGVyIFJlbXBsYWNlciIgLz48L2E+PGEgaHJlZj0iamF2YXNjcmlwdDpzd2FwX2NvdWNoZSgnMTInLCcnKTsiCiBjbGFzcz0nc3BpcF9iYXJyZScgdGFiaW5kZXg9JzEwMDAnIHRpdGxlPSJHZXN0aW9uIGRlcyBhbmNyZXMiPjxpbWcgc3JjPScuLi9wbHVnaW5zL2ZvbmN0aW9ubmFsaXRlcy9iYXJyZV90eXBvX2Vjb2xvZ2lxdWUvaW1nX3BhY2svaWNvbmVzX2JhcnJlL2FuY3JlLnBuZycgaGVpZ2h0PScxNicgd2lkdGg9JzE2JyBhbHQ9Ikdlc3Rpb24gZGVzIGFuY3JlcyIgLz48L2E+Jm5ic3A7PC90ZD4KPHRkIHN0eWxlPSd0ZXh0LWFsaWduOmxlZnQ7JyB2YWxpZ249J21pZGRsZSc+PGEgaHJlZj0iamF2YXNjcmlwdDpzd2FwX2NvdWNoZSgnMTMnLCcnKTsiCiBjbGFzcz0nc3BpcF9iYXJyZScgdGFiaW5kZXg9JzEwMDAnIHRpdGxlPSJDYXJhY3QmZWdyYXZlO3JlcyBzcCZlYWN1dGU7Y2lhdXgiPjxpbWcgc3JjPScuLi9wbHVnaW5zL2ZvbmN0aW9ubmFsaXRlcy9iYXJyZV90eXBvX2Vjb2xvZ2lxdWUvaW1nX3BhY2svaWNvbmVzX2JhcnJlL2NsYXZpZXIucG5nJyBoZWlnaHQ9JzE2JyB3aWR0aD0nMTYnIGFsdD0iQ2FyYWN0JmVncmF2ZTtyZXMgc3AmZWFjdXRlO2NpYXV4IiAvPjwvYT4mbmJzcDs8L3RkPgo8dGQgc3R5bGU9J3RleHQtYWxpZ246cmlnaHQ7JyB2YWxpZ249J21pZGRsZSc+Jm5ic3A7Jm5ic3A7PGEgY2xhc3M9J2FpZGUnIGhyZWY9J2h0dHA6Ly9wcmVwcm9kLm5vdHJlLXZpbGxlLm5ldC9+c3RzZWIvZWNyaXJlLz9leGVjPWFpZGVfaW5kZXgmYW1wO2FpZGU9cmFjY291cmNpcyZhbXA7dmFyX2xhbmc9ZnInIHRhcmdldD0ic3BpcF9haWRlIiBvbmNsaWNrPSJqYXZhc2NyaXB0OndpbmRvdy5vcGVuKHRoaXMuaHJlZiwnc3BpcF9haWRlJywgJ3Njcm9sbGJhcnM9eWVzLCByZXNpemFibGU9eWVzLCB3aWR0aD03NDAsIGhlaWdodD01ODAnKTsgcmV0dXJuIGZhbHNlOyI+PGltZyBzcmM9J2ltZ19wYWNrL2FpZGUuZ2lmJwphbHQ9IkFJREUiIHRpdGxlPSJEZSBsJ2FpZGUgc3VyIGNldCAmZWFjdXRlO2wmZWFjdXRlO21lbnQiIHdpZHRoPSIxMiIgaGVpZ2h0PSIxMiIgYWxpZ249Im1pZGRsZSIgLz48L2E+Jm5ic3A7PC90ZD48L3RyPjwvdGFibGU+PGRpdiBpZD0nTGF5ZXIxMCcgc3R5bGU9J2Rpc3BsYXk6bm9uZTsnID48dGFibGUgY2xhc3M9InNwaXBfYmFycmUiIHN0eWxlPSJ3aWR0aDogYXV0bzsgcGFkZGluZzogMXB4IWltcG9ydGFudDsgYm9yZGVyLXRvcDogMHB4OyIgc3VtbWFyeT0iIj4NCjx0cj48dGQ+DQpOYiBjb2xvbm5lczogPGlucHV0IHR5cGU9InRleHQiIG5hbWU9ImJhcnJlX25iY29sb25lcyIgc3R5bGU9IndpZHRoOiAzMHB4OyIgdmFsdWU9IjIiIHNpemU9IjIiIG1heGxlbmd0aD0iMiIgICAvPjwvdGQ+PHRkPg0KTmIgbGlnbmVzOiA8aW5wdXQgdHlwZT0idGV4dCIgbmFtZT0iYmFycmVfbmJyYW5ncyIgc3R5bGU9IndpZHRoOiAzMHB4OyIgdmFsdWU9IjIiIHNpemU9IjIiIG1heGxlbmd0aD0iMiIgLz48L3RkPjx0ZD4NCjxpbnB1dCB0eXBlPSJjaGVja2JveCIgbmFtZT0iYmFycmVfZG9lbnRldGUiIHZhbHVlPSItMSIgY2hlY2tlZD0iY2hlY2tlZCIgLz4gRW50ZXRlPC90ZD48dGQ+DQo8aW5wdXQgdHlwZT0iY2hlY2tib3giIG5hbWU9ImJhcnJlX2RvY2FwdGlvbiIgdmFsdWU9Ii0xIiBjaGVja2VkPSJjaGVja2VkIiAvPiBDYXB0aW9uIGV0IFImZWFjdXRlO3N1bSZlYWN1dGU7PC90ZD48dGQ+DQogIDxpbnB1dCB0eXBlPSJidXR0b24iIHZhbHVlPSJPSyIgY2xhc3M9ImZvbmRvIiBvbmNsaWNrPSJqYXZhc2NyaXB0Og0KICAgIGJhcnJlX25iY29sb25lcy52YWx1ZSA9IE1hdGguYWJzKGJhcnJlX25iY29sb25lcy52YWx1ZSk7IGJhcnJlX25icmFuZ3MudmFsdWUNCiAgICA9IE1hdGguYWJzKGJhcnJlX25icmFuZ3MudmFsdWUpOw0KICAgIGlmICghKGJhcnJlX25iY29sb25lcy52YWx1ZSA9PSAwIHx8IGJhcnJlX25icmFuZ3MudmFsdWUgPT0gMCkpIHsNCiAgICBiYXJyZV90YWJsZWF1KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdpbnB1dC0xLXRleHRlXzEnKSwgYmFycmVfbmJjb2xvbmVzLnZhbHVlLCBiYXJyZV9uYnJhbmdzLnZhbHVlLA0KICAgIGJhcnJlX2RvZW50ZXRlLmNoZWNrZWQsIGJhcnJlX2RvY2FwdGlvbi5jaGVja2VkKTsgfSAiIC8+IA0KPC90ZD48L3RyPjwvdGFibGU+DQo8ZGl2IHN0eWxlPSdjbGVhcjogYm90aDsnPjwvZGl2PjwvZGl2PjxkaXYgaWQ9J0xheWVyMTEnIHN0eWxlPSdkaXNwbGF5Om5vbmU7JyA+DQogPHRhYmxlIGNsYXNzPSJzcGlwX2JhcnJlIiBzdHlsZT0id2lkdGg6IGF1dG87IHBhZGRpbmc6IDFweCFpbXBvcnRhbnQ7IGJvcmRlci10b3A6IDBweDsiIHN1bW1hcnk9IiI+DQo8dHI+PHRkPiANCkFkcmVzc2UmbmJzcDs6IDxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJsaWVuX25vbSIgdmFsdWU9Imh0dHA6Ly8iIHNpemU9IjIxIiBtYXhsZW5ndGg9IjI1NSIgLz48YnIgLz4NCkJ1bGxlIGQnYWlkZSZuYnNwOzogPGlucHV0IHR5cGU9InRleHQiIG5hbWU9ImxpZW5fYnVsbGUiIHZhbHVlPSIiIHNpemU9IjIxIiBtYXhsZW5ndGg9IjI1NSIgLz4NCjwvdGQ+PHRkPg0KTGFuZ3VlIGFiciZlYWN1dGU7ZyZlYWN1dGU7ZSZuYnNwOzogPGlucHV0IHR5cGU9InRleHQiIG5hbWU9ImxpZW5fbGFuZ3VlIiB2YWx1ZT0iIiBzaXplPSIxMCIgbWF4bGVuZ3RoPSIxMCIgLz4NCjwvdGQ+PHRkPg0KICA8aW5wdXQgdHlwZT0iYnV0dG9uIiB2YWx1ZT0iT0siIGNsYXNzPSJmb25kbyIgb25jbGljaz0iamF2YXNjcmlwdDpiYXJyZV9kZW1hbmRlX2xpZW4oJ1snLCAnLT4nLCAnXScsIGxpZW5fbm9tLnZhbHVlLCBsaWVuX2J1bGxlLnZhbHVlLCBsaWVuX2xhbmd1ZS52YWx1ZSxkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaW5wdXQtMS10ZXh0ZV8xJykpOyIgLz4gDQo8L3RkPjwvdHI+PC90YWJsZT4NCjxkaXYgc3R5bGU9J2NsZWFyOiBib3RoOyc+PC9kaXY+PC9kaXY+PGRpdiBpZD0nTGF5ZXIxMicgc3R5bGU9J2Rpc3BsYXk6bm9uZTsnID4NCjx0YWJsZSBjbGFzcz0ic3BpcF9iYXJyZSIgc3R5bGU9IndpZHRoOiBhdXRvOyBwYWRkaW5nOiAxcHghaW1wb3J0YW50OyBib3JkZXItdG9wOiAwcHg7IiBzdW1tYXJ5PSIiPg0KICA8dHI+DQogICAgPHRkIHN0eWxlPSJ3aWR0aDphdXRvOyB0ZXh0LWFsaWduOmNlbnRlcjsiPjxzdHJvbmc+R2VzdGlvbiBkZXMgYW5jcmVzPC9zdHJvbmc+PC90ZD4NCiAgICA8dGQgc3R5bGU9IndpZHRoOmF1dG87Ij48c3Ryb25nPlRyYW5zZm9ybWVyIGVuIGFuY3JlPC9zdHJvbmc+PGJyIC8+DQogICAgPGxhYmVsIGZvcj0iYW5jcmVfbm9tIj48aT5Ob20gZGUgbCdhbmNyZTwvaT48L2xhYmVsPiA8YnIgLz4NCiAgICAgIDxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJhbmNyZV9ub20iIGlkPSJhbmNyZV9ub20iIC8+DQoJICANCgk8aW5wdXQgdHlwZT0iYnV0dG9uIiB2YWx1ZT0iT0siIGNsYXNzPSJmb25kbyIgb25jbGljaz0iamF2YXNjcmlwdDpiYXJyZV9hbmNyZSgnWycsICc8LScsICddJywgYW5jcmVfbm9tLnZhbHVlLCBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaW5wdXQtMS10ZXh0ZV8xJykpOyIgLz4NCiAgICA8L3RkPg0KCTx0ZCBzdHlsZT0id2lkdGg6YXV0bzsiPjxzdHJvbmc+UG9pbnRlciB2ZXJzIHVuZSBhbmNyZTwvc3Ryb25nPjxiciAvPg0KICAgIDxsYWJlbCBmb3I9ImFuY3JlX2NpYmxlIj48aT5BbmNyZSBjaWJsZTwvaT48L2xhYmVsPiA8aW5wdXQgdHlwZT0idGV4dCIgbmFtZT0iYW5jcmVfY2libGUiIGlkPSJhbmNyZV9jaWJsZSIgLz48YnIgLz4NCgk8bGFiZWwgZm9yPSJhbmNyZV9idWxsZSI+PGk+QnVsbGUgZCdhaWRlIGFuY3JlPC9pPjwvbGFiZWw+IDxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJhbmNyZV9idWxsZSIgaWQ9ImFuY3JlX2J1bGxlIiAvPg0KCTxpbnB1dCB0eXBlPSJidXR0b24iIHZhbHVlPSJPSyIgY2xhc3M9ImZvbmRvIiBvbmNsaWNrPSJqYXZhc2NyaXB0OmJhcnJlX2RlbWFuZGUoJ1snLCAnLT4jJywgJ10nLCBhbmNyZV9jaWJsZS52YWx1ZSwgYW5jcmVfYnVsbGUudmFsdWUsIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdpbnB1dC0xLXRleHRlXzEnKSk7IiAvPiANCjwvdGQ+DQogIDwvdHI+IA0KPC90YWJsZT48ZGl2IHN0eWxlPSdjbGVhcjogYm90aDsnPjwvZGl2PjwvZGl2PjxkaXYgaWQ9J0xheWVyMTMnIHN0eWxlPSdkaXNwbGF5Om5vbmU7JyA+DQo8dGFibGUgY2xhc3M9InNwaXBfYmFycmUiIHN0eWxlPSJ3aWR0aDogYXV0bzsgcGFkZGluZzogMXB4IWltcG9ydGFudDsgYm9yZGVyLXRvcDogMHB4OyIgc3VtbWFyeT0iIj4NCiAgPHRyIGNsYXNzPSJzcGlwX2JhcnJlIj4NCiAgICA8dGQgc3R5bGU9IndpZHRoOjMwJTsiPkNhcmFjdCZlZ3JhdmU7cmVzIHNwJmVhY3V0ZTtjaWF1eDwvdGQ+DQogICAgPHRkPjxhIGhyZWY9ImphdmFzY3JpcHQ6YmFycmVfcmFjY291cmNpKCdcdTAwYWJ+Jywnflx1MDBiYicsZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2lucHV0LTEtdGV4dGVfMScpKSIKIGNsYXNzPSdzcGlwX2JhcnJlJyB0YWJpbmRleD0nMTAwMCcgdGl0bGU9IkVudG91cmVyIGRlICZsYXF1bzsgZ3VpbGxlbWV0cyAmcmFxdW87Ij48aW1nIHNyYz0naW1nX3BhY2svaWNvbmVzX2JhcnJlL2d1aWxsZW1ldHMucG5nJyBoZWlnaHQ9JzE2JyB3aWR0aD0nMTYnIGFsdD0iRW50b3VyZXIgZGUgJmxhcXVvOyBndWlsbGVtZXRzICZyYXF1bzsiIC8+PC9hPjxhIGhyZWY9ImphdmFzY3JpcHQ6YmFycmVfcmFjY291cmNpKCdcdTAwOTMnLCdcdTAwOTQnLGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdpbnB1dC0xLXRleHRlXzEnKSkiCiBjbGFzcz0nc3BpcF9iYXJyZScgdGFiaW5kZXg9JzEwMDAnIHRpdGxlPSJFbnRvdXJlciBkZSAmbGRxdW87Z3VpbGxlbWV0cyBkZSBzZWNvbmQgbml2ZWF1JnJkcXVvOyI+PGltZyBzcmM9J2ltZ19wYWNrL2ljb25lc19iYXJyZS9ndWlsbGVtZXRzLXNpbXBsZXMucG5nJyBoZWlnaHQ9JzE2JyB3aWR0aD0nMTYnIGFsdD0iRW50b3VyZXIgZGUgJmxkcXVvO2d1aWxsZW1ldHMgZGUgc2Vjb25kIG5pdmVhdSZyZHF1bzsiIC8+PC9hPjxhIGhyZWY9ImphdmFzY3JpcHQ6YmFycmVfaW5zZXJlcignXHUwMGMwJyxkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaW5wdXQtMS10ZXh0ZV8xJykpIgogY2xhc3M9J3NwaXBfYmFycmUnIHRhYmluZGV4PScxMDAwJyB0aXRsZT0iSW5zJmVhY3V0ZTtyZXIgdW4gQSBhY2NlbnQgZ3JhdmUgbWFqdXNjdWxlIj48aW1nIHNyYz0naW1nX3BhY2svaWNvbmVzX2JhcnJlL2FncmF2ZS1tYWoucG5nJyBoZWlnaHQ9JzE2JyB3aWR0aD0nMTYnIGFsdD0iSW5zJmVhY3V0ZTtyZXIgdW4gQSBhY2NlbnQgZ3JhdmUgbWFqdXNjdWxlIiAvPjwvYT48YSBocmVmPSJqYXZhc2NyaXB0OmJhcnJlX2luc2VyZXIoJ1x1MDBjOScsZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2lucHV0LTEtdGV4dGVfMScpKSIKIGNsYXNzPSdzcGlwX2JhcnJlJyB0YWJpbmRleD0nMTAwMCcgdGl0bGU9IklucyZlYWN1dGU7cmVyIHVuIEUgYWNjZW50IGFpZ3UgbWFqdXNjdWxlIj48aW1nIHNyYz0naW1nX3BhY2svaWNvbmVzX2JhcnJlL2VhY3V0ZS1tYWoucG5nJyBoZWlnaHQ9JzE2JyB3aWR0aD0nMTYnIGFsdD0iSW5zJmVhY3V0ZTtyZXIgdW4gRSBhY2NlbnQgYWlndSBtYWp1c2N1bGUiIC8+PC9hPjxhIGhyZWY9ImphdmFzY3JpcHQ6YmFycmVfaW5zZXJlcignXHUwMGM4Jyxkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaW5wdXQtMS10ZXh0ZV8xJykpIgogY2xhc3M9J3NwaXBfYmFycmUnIHRhYmluZGV4PScxMDAwJyB0aXRsZT0iSW5zJmVhY3V0ZTtyZXIgdW4gRSBtYWp1c2N1bGUgYWNjZW50IGdyYXZlIj48aW1nIHNyYz0nLi4vcGx1Z2lucy9mb25jdGlvbm5hbGl0ZXMvYmFycmVfdHlwb19lY29sb2dpcXVlL2ltZ19wYWNrL2ljb25lc19iYXJyZS9lYWdyYXZlLW1hai5wbmcnIGhlaWdodD0nMTYnIHdpZHRoPScxNicgYWx0PSJJbnMmZWFjdXRlO3JlciB1biBFIG1hanVzY3VsZSBhY2NlbnQgZ3JhdmUiIC8+PC9hPjxhIGhyZWY9ImphdmFzY3JpcHQ6YmFycmVfaW5zZXJlcignXHUwMGU2Jyxkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaW5wdXQtMS10ZXh0ZV8xJykpIgogY2xhc3M9J3NwaXBfYmFycmUnIHRhYmluZGV4PScxMDAwJyB0aXRsZT0iSW5zJmVhY3V0ZTtyZXIgdW4gRSBkYW5zIGwnQSI+PGltZyBzcmM9Jy4uL3BsdWdpbnMvZm9uY3Rpb25uYWxpdGVzL2JhcnJlX3R5cG9fZWNvbG9naXF1ZS9pbWdfcGFjay9pY29uZXNfYmFycmUvYWVsaWcucG5nJyBoZWlnaHQ9JzE2JyB3aWR0aD0nMTYnIGFsdD0iSW5zJmVhY3V0ZTtyZXIgdW4gRSBkYW5zIGwnQSIgLz48L2E+PGEgaHJlZj0iamF2YXNjcmlwdDpiYXJyZV9pbnNlcmVyKCdcdTAwYzYnLGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdpbnB1dC0xLXRleHRlXzEnKSkiCiBjbGFzcz0nc3BpcF9iYXJyZScgdGFiaW5kZXg9JzEwMDAnIHRpdGxlPSJJbnMmZWFjdXRlO3JlciB1biBFIGRhbnMgbCdBIG1hanVzY3VsZSI+PGltZyBzcmM9Jy4uL3BsdWdpbnMvZm9uY3Rpb25uYWxpdGVzL2JhcnJlX3R5cG9fZWNvbG9naXF1ZS9pbWdfcGFjay9pY29uZXNfYmFycmUvYWVsaWctbWFqLnBuZycgaGVpZ2h0PScxNicgd2lkdGg9JzE2JyBhbHQ9IklucyZlYWN1dGU7cmVyIHVuIEUgZGFucyBsJ0EgbWFqdXNjdWxlIiAvPjwvYT48YSBocmVmPSJqYXZhc2NyaXB0OmJhcnJlX2luc2VyZXIoJyZvZWxpZzsnLGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdpbnB1dC0xLXRleHRlXzEnKSkiCiBjbGFzcz0nc3BpcF9iYXJyZScgdGFiaW5kZXg9JzEwMDAnIHRpdGxlPSJJbnMmZWFjdXRlO3JlciB1biBFIGRhbnMgbCdPIj48aW1nIHNyYz0naW1nX3BhY2svaWNvbmVzX2JhcnJlL29lbGlnLnBuZycgaGVpZ2h0PScxNicgd2lkdGg9JzE2JyBhbHQ9IklucyZlYWN1dGU7cmVyIHVuIEUgZGFucyBsJ08iIC8+PC9hPjxhIGhyZWY9ImphdmFzY3JpcHQ6YmFycmVfaW5zZXJlcignJk9FbGlnOycsZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2lucHV0LTEtdGV4dGVfMScpKSIKIGNsYXNzPSdzcGlwX2JhcnJlJyB0YWJpbmRleD0nMTAwMCcgdGl0bGU9IklucyZlYWN1dGU7cmVyIHVuIEUgZGFucyBsJ08gbWFqdXNjdWxlIj48aW1nIHNyYz0naW1nX3BhY2svaWNvbmVzX2JhcnJlL29lbGlnLW1hai5wbmcnIGhlaWdodD0nMTYnIHdpZHRoPScxNicgYWx0PSJJbnMmZWFjdXRlO3JlciB1biBFIGRhbnMgbCdPIG1hanVzY3VsZSIgLz48L2E+PGEgaHJlZj0iamF2YXNjcmlwdDpiYXJyZV9pbnNlcmVyKCdcdTAwYzcnLGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdpbnB1dC0xLXRleHRlXzEnKSkiCiBjbGFzcz0nc3BpcF9iYXJyZScgdGFiaW5kZXg9JzEwMDAnIHRpdGxlPSJJbnMmZWFjdXRlO3JlciB1biBDIGMmZWFjdXRlO2RpbGxlIG1hanVzY3VsZSI+PGltZyBzcmM9Jy4uL3BsdWdpbnMvZm9uY3Rpb25uYWxpdGVzL2JhcnJlX3R5cG9fZWNvbG9naXF1ZS9pbWdfcGFjay9pY29uZXNfYmFycmUvY2NlZGlsLW1hai5wbmcnIGhlaWdodD0nMTYnIHdpZHRoPScxNicgYWx0PSJJbnMmZWFjdXRlO3JlciB1biBDIGMmZWFjdXRlO2RpbGxlIG1hanVzY3VsZSIgLz48L2E+PGEgaHJlZj0iamF2YXNjcmlwdDpiYXJyZV9pbnNlcmVyKCcmZXVybzsnLGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdpbnB1dC0xLXRleHRlXzEnKSkiCiBjbGFzcz0nc3BpcF9iYXJyZScgdGFiaW5kZXg9JzEwMDAnIHRpdGxlPSJJbnMmZWFjdXRlO3JlciBsZSBzeW1ib2xlICZldXJvOyI+PGltZyBzcmM9J2ltZ19wYWNrL2ljb25lc19iYXJyZS9ldXJvLnBuZycgaGVpZ2h0PScxNicgd2lkdGg9JzE2JyBhbHQ9IklucyZlYWN1dGU7cmVyIGxlIHN5bWJvbGUgJmV1cm87IiAvPjwvYT4mbmJzcDsNCiAgICA8L3RkPg0KICA8L3RyPiANCjwvdGFibGU+DQo8ZGl2IHN0eWxlPSdjbGVhcjogYm90aDsnPjwvZGl2PjwvZGl2PjxkaXYgaWQ9J0xheWVyMTQnIHN0eWxlPSdkaXNwbGF5Om5vbmU7JyA+DQo8dGFibGUgY2xhc3M9InNwaXBfYmFycmUiIHN0eWxlPSJ3aWR0aDogYXV0bzsgcGFkZGluZzogMXB4IWltcG9ydGFudDsgYm9yZGVyLXRvcDogMHB4OyIgc3VtbWFyeT0iIj4NCjx0cj48dGQgc3R5bGU9IndpZHRoOiAyNSU7Ij5DaGVyY2hlcjxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJiYXJyZV9jaGVyY2hlciIgdmFsdWU9IiIgc2l6ZT0iMTIiIG1heGxlbmd0aD0iMjU1IiAvPjwvdGQ+PHRkIHN0eWxlPSJ3aWR0aDogMjAlOyI+DQo8aW5wdXQgdHlwZT0iY2hlY2tib3giIG5hbWU9InJlY19jYXNlIiB2YWx1ZT0ieWVzIiAvPlJlc3BlY3RlciBsYSBjYXNzZTxiciAvPjxpbnB1dCB0eXBlPSJjaGVja2JveCIgbmFtZT0icmVjX2VudGllciIgdmFsdWU9InllcyIgLz4NCk1vdCBlbnRpZXINCjwvdGQ+PHRkICBzdHlsZT0id2lkdGg6IDI1JTsiPlJlbXBsYWNlcjxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJiYXJyZV9yZW1wbGFjZXIiIHZhbHVlPSIiIHNpemU9IjEyIiBtYXhsZW5ndGg9IjI1NSIgLz4gDQo8L3RkPjx0ZCBzdHlsZT0id2lkdGg6IDIwJTsiPg0KPGlucHV0IHR5cGU9ImNoZWNrYm94IiBuYW1lPSJyZWNfdG91dCIgdmFsdWU9InllcyIgLz5Ub3V0IHJlbXBsYWNlcjwvdGQ+PHRkIHN0eWxlPSJ3aWR0aDogMTAlOyI+DQogICA8aW5wdXQgdHlwZT0iYnV0dG9uIiB2YWx1ZT0iT0siIGNsYXNzPSJmb25kbyINCiAgb25jbGljaz0iamF2YXNjcmlwdDpiYXJyZV9zZWFyY2hyZXBsYWNlKGRvY3VtZW50LmZvcm11bGFpcmUuYmFycmVfY2hlcmNoZXIudmFsdWUsIGRvY3VtZW50LmZvcm11bGFpcmUuYmFycmVfcmVtcGxhY2VyLnZhbHVlLCBkb2N1bWVudC5mb3JtdWxhaXJlLnJlY190b3V0LmNoZWNrZWQsIGRvY3VtZW50LmZvcm11bGFpcmUucmVjX2Nhc2UuY2hlY2tlZCwgZG9jdW1lbnQuZm9ybXVsYWlyZS5yZWNfZW50aWVyLmNoZWNrZWQsZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2lucHV0LTEtdGV4dGVfMScpKTsiIC8+IA0KPC90ZD48L3RyPjwvdGFibGU+PGRpdiBzdHlsZT0nY2xlYXI6IGJvdGg7Jz48L2Rpdj48L2Rpdj4KCTx0ZXh0YXJlYSBuYW1lPSd0ZXh0ZV8xJyByb3dzPScxMCcgY2xhc3M9J2Zvcm1vICAgJyBjb2xzPSc4MCcKCWlkPSdpbnB1dC0xLXRleHRlXzEnCglvbnNlbGVjdD0nc3RvcmVDYXJldCh0aGlzKTsnCglvbmNsaWNrPSdzdG9yZUNhcmV0KHRoaXMpOycKCW9ua2V5dXA9J3N0b3JlQ2FyZXQodGhpcyk7JwoJb25kYmxjbGljaz0nc3RvcmVDYXJldCh0aGlzKTsnPjwvdGV4dGFyZWE+CgkJCQkKCQkJCQoJCQkJCgkJCQkKCQkJCQoJCQkJCgkJCQkKCQkJCQoJCQkJCgkJCQk8c3BhbiBjbGFzcz0nbmV0dG95ZXVyJz4gPC9zcGFuPgoJCQkKCQk8L2Rpdj4KCQoKCgogCgkgCgkJCgkJCgkKCSAKCQk8ZGl2IGNsYXNzPSdzcGlwX2Zvcm1fY2hhbXAgdGV4dGVfMic+CgkJCQoJCQkgCgkJCQk8c3BhbiBjbGFzcz0nc3BpcF9mb3JtX2xhYmVsJz4KCQkJCQkgPGxhYmVsIGZvcj0iaW5wdXQtMS10ZXh0ZV8yIj5Wb3RyZSBRdWVzdGlvbjwvbGFiZWw+CgkJCQkJCgkJCQkJPHNwYW4gY2xhc3M9J3NwaXBfZm9ybV9sYWJlbF9vYmxpZ2F0b2lyZSc+CgkJCQkJCVtPYmxpZ2F0b2lyZV08L3NwYW4+CgkJCQkJOgoJCQkJPC9zcGFuPgoJCQkJCgkJCQkKCQkJCQoJCQkJCgkJCQkgIDx0YWJsZSBjbGFzcz0nc3BpcF9iYXJyZScgc3R5bGU9J3dpZHRoOmF1dG87JyBjZWxscGFkZGluZz0nMCcgY2VsbHNwYWNpbmc9JzAnIGJvcmRlcj0nMCcgc3VtbWFyeT0nJz4KPHRyIHN0eWxlPSd3aWR0aDogYXV0bzsnIGNsYXNzPSdzcGlwX2JhcnJlJz4KPHRkIHN0eWxlPSd0ZXh0LWFsaWduOiBsZWZ0OycgdmFsaWduPSdtaWRkbGUnPjxhIGhyZWY9ImphdmFzY3JpcHQ6YmFycmVfcmFjY291cmNpKCd7JywnfScsZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2lucHV0LTEtdGV4dGVfMicpKSIKIGNsYXNzPSdzcGlwX2JhcnJlJyB0YWJpbmRleD0nMTAwMCcgdGl0bGU9Ik1ldHRyZSBlbiB7aXRhbGlxdWV9Ij48aW1nIHNyYz0naW1nX3BhY2svaWNvbmVzX2JhcnJlL2l0YWxpcXVlLnBuZycgaGVpZ2h0PScxNicgd2lkdGg9JzE2JyBhbHQ9Ik1ldHRyZSBlbiB7aXRhbGlxdWV9IiAvPjwvYT48YSBocmVmPSJqYXZhc2NyaXB0OmJhcnJlX3JhY2NvdXJjaSgne3snLCd9fScsZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2lucHV0LTEtdGV4dGVfMicpKSIKIGNsYXNzPSdzcGlwX2JhcnJlJyB0YWJpbmRleD0nMTAwMCcgdGl0bGU9Ik1ldHRyZSBlbiB7e2dyYXN9fSI+PGltZyBzcmM9J2ltZ19wYWNrL2ljb25lc19iYXJyZS9ncmFzLnBuZycgaGVpZ2h0PScxNicgd2lkdGg9JzE2JyBhbHQ9Ik1ldHRyZSBlbiB7e2dyYXN9fSIgLz48L2E+PGEgaHJlZj0iamF2YXNjcmlwdDpiYXJyZV9yYWNjb3VyY2koJ1sqJywnKl0nLGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdpbnB1dC0xLXRleHRlXzInKSkiCiBjbGFzcz0nc3BpcF9iYXJyZScgdGFiaW5kZXg9JzEwMDAnIHRpdGxlPSJNZXR0cmUgbGUgdGV4dGUgZW4gWyomZWFjdXRlO3ZpZGVuY2UqXSI+PGltZyBzcmM9Jy4uL3BsdWdpbnMvZm9uY3Rpb25uYWxpdGVzL2JhcnJlX3R5cG9fZWNvbG9naXF1ZS9pbWdfcGFjay9pY29uZXNfYmFycmUvbWlzZWVuZXZpZGVuY2UucG5nJyBoZWlnaHQ9JzE2JyB3aWR0aD0nMTYnIGFsdD0iTWV0dHJlIGxlIHRleHRlIGVuIFsqJmVhY3V0ZTt2aWRlbmNlKl0iIC8+PC9hPjxhIGhyZWY9ImphdmFzY3JpcHQ6YmFycmVfcmFjY291cmNpKCclM0NzdXAlM0UnLCclM0Mvc3VwJTNFJyxkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaW5wdXQtMS10ZXh0ZV8yJykpIgogY2xhc3M9J3NwaXBfYmFycmUnIHRhYmluZGV4PScxMDAwJyB0aXRsZT0iTWV0dHJlIGxlIHRleHRlIGVuICZsdDtzdXAmZ3Q7ZXhwb3NhbnQmbHQ7L3N1cCZndDsiPjxpbWcgc3JjPScuLi9wbHVnaW5zL2ZvbmN0aW9ubmFsaXRlcy9iYXJyZV90eXBvX2Vjb2xvZ2lxdWUvaW1nX3BhY2svaWNvbmVzX2JhcnJlL2V4cG9zYW50LnBuZycgaGVpZ2h0PScxNicgd2lkdGg9JzE2JyBhbHQ9Ik1ldHRyZSBsZSB0ZXh0ZSBlbiAmbHQ7c3VwJmd0O2V4cG9zYW50Jmx0Oy9zdXAmZ3Q7IiAvPjwvYT48YSBocmVmPSJqYXZhc2NyaXB0OmJhcnJlX3JhY2NvdXJjaSgnJTNDc2MlM0UnLCclM0Mvc2MlM0UnLGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdpbnB1dC0xLXRleHRlXzInKSkiCiBjbGFzcz0nc3BpcF9iYXJyZScgdGFiaW5kZXg9JzEwMDAnIHRpdGxlPSJNZXR0cmUgbGUgdGV4dGUgZW4gJmx0O3NjJmd0O3BldGl0ZXMgY2FwaXRhbGVzJmx0Oy9zYyZndDsiPjxpbWcgc3JjPScuLi9wbHVnaW5zL2ZvbmN0aW9ubmFsaXRlcy9iYXJyZV90eXBvX2Vjb2xvZ2lxdWUvaW1nX3BhY2svaWNvbmVzX2JhcnJlL3BldGl0ZXNjYXBpdGFsZXMucG5nJyBoZWlnaHQ9JzE2JyB3aWR0aD0nMTYnIGFsdD0iTWV0dHJlIGxlIHRleHRlIGVuICZsdDtzYyZndDtwZXRpdGVzIGNhcGl0YWxlcyZsdDsvc2MmZ3Q7IiAvPjwvYT4mbmJzcDs8L3RkPgo8dGQ+PGEgaHJlZj0iamF2YXNjcmlwdDpzd2FwX2NvdWNoZSgnMTYnLCcnKTsiCiBjbGFzcz0nc3BpcF9iYXJyZScgdGFiaW5kZXg9JzEwMDAnIHRpdGxlPSJUcmFuc2Zvcm1lciBlbiBbbGllbiBoeXBlcnRleHRlLT5odHRwOi8vLi4uXSI+PGltZyBzcmM9J2ltZ19wYWNrL2ljb25lc19iYXJyZS9saWVuLnBuZycgaGVpZ2h0PScxNicgd2lkdGg9JzE2JyBhbHQ9IlRyYW5zZm9ybWVyIGVuIFtsaWVuIGh5cGVydGV4dGUtPmh0dHA6Ly8uLi5dIiAvPjwvYT4mbmJzcDs8L3RkPgo8dGQ+PGEgaHJlZj0iamF2YXNjcmlwdDpiYXJyZV9yYWNjb3VyY2koJyU1Q24lNUNuJTNDcXVvdGUlM0UnLCclM0MvcXVvdGUlM0UlNUNuJTVDbicsZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2lucHV0LTEtdGV4dGVfMicpKSIKIGNsYXNzPSdzcGlwX2JhcnJlJyB0YWJpbmRleD0nMTAwMCcgdGl0bGU9IkNpdGVyIHVuIG1lc3NhZ2UiPjxpbWcgc3JjPSdpbWdfcGFjay9pY29uZXNfYmFycmUvcXVvdGUucG5nJyBoZWlnaHQ9JzE2JyB3aWR0aD0nMTYnIGFsdD0iQ2l0ZXIgdW4gbWVzc2FnZSIgLz48L2E+PGEgaHJlZj0iamF2YXNjcmlwdDpiYXJyZV9yYWNjb3VyY2koJ1s/JywnXScsZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2lucHV0LTEtdGV4dGVfMicpKSIKIGNsYXNzPSdzcGlwX2JhcnJlJyB0YWJpbmRleD0nMTAwMCcgdGl0bGU9IkVudHImZWFjdXRlO2UgZHUgWz9nbG9zc2FpcmVdIChXaWtpcGVkaWEpIj48aW1nIHNyYz0nLi4vcGx1Z2lucy9mb25jdGlvbm5hbGl0ZXMvYmFycmVfdHlwb19lY29sb2dpcXVlL2ltZ19wYWNrL2ljb25lc19iYXJyZS9iYXJyZS13aWtpLnBuZycgaGVpZ2h0PScxNicgd2lkdGg9JzE2JyBhbHQ9IkVudHImZWFjdXRlO2UgZHUgWz9nbG9zc2FpcmVdIChXaWtpcGVkaWEpIiAvPjwvYT48YSBocmVmPSJqYXZhc2NyaXB0OnN3YXBfY291Y2hlKCcxNScsJycpOyIKIGNsYXNzPSdzcGlwX2JhcnJlJyB0YWJpbmRleD0nMTAwMCcgdGl0bGU9IklucyZlYWN1dGU7cmVyIHVuIHRhYmxlYXUiPjxpbWcgc3JjPScuLi9wbHVnaW5zL2ZvbmN0aW9ubmFsaXRlcy9iYXJyZV90eXBvX2Vjb2xvZ2lxdWUvaW1nX3BhY2svaWNvbmVzX2JhcnJlL2JhcnJlLXRhYmxlYXUucG5nJyBoZWlnaHQ9JzE2JyB3aWR0aD0nMTYnIGFsdD0iSW5zJmVhY3V0ZTtyZXIgdW4gdGFibGVhdSIgLz48L2E+Jm5ic3A8L3RkPgo8dGQ+PGEgaHJlZj0iamF2YXNjcmlwdDpzd2FwX2NvdWNoZSgnMTknLCcnKTsiCiBjbGFzcz0nc3BpcF9iYXJyZScgdGFiaW5kZXg9JzEwMDAnIHRpdGxlPSJDaGVyY2hlciBSZW1wbGFjZXIiPjxpbWcgc3JjPScuLi9wbHVnaW5zL2ZvbmN0aW9ubmFsaXRlcy9iYXJyZV90eXBvX2Vjb2xvZ2lxdWUvaW1nX3BhY2svaWNvbmVzX2JhcnJlL2NoZXJjaGVyX3JlbXBsYWNlci5wbmcnIGhlaWdodD0nMTYnIHdpZHRoPScxNicgYWx0PSJDaGVyY2hlciBSZW1wbGFjZXIiIC8+PC9hPjxhIGhyZWY9ImphdmFzY3JpcHQ6c3dhcF9jb3VjaGUoJzE3JywnJyk7IgogY2xhc3M9J3NwaXBfYmFycmUnIHRhYmluZGV4PScxMDAwJyB0aXRsZT0iR2VzdGlvbiBkZXMgYW5jcmVzIj48aW1nIHNyYz0nLi4vcGx1Z2lucy9mb25jdGlvbm5hbGl0ZXMvYmFycmVfdHlwb19lY29sb2dpcXVlL2ltZ19wYWNrL2ljb25lc19iYXJyZS9hbmNyZS5wbmcnIGhlaWdodD0nMTYnIHdpZHRoPScxNicgYWx0PSJHZXN0aW9uIGRlcyBhbmNyZXMiIC8+PC9hPiZuYnNwOzwvdGQ+Cjx0ZCBzdHlsZT0ndGV4dC1hbGlnbjpsZWZ0OycgdmFsaWduPSdtaWRkbGUnPjxhIGhyZWY9ImphdmFzY3JpcHQ6c3dhcF9jb3VjaGUoJzE4JywnJyk7IgogY2xhc3M9J3NwaXBfYmFycmUnIHRhYmluZGV4PScxMDAwJyB0aXRsZT0iQ2FyYWN0JmVncmF2ZTtyZXMgc3AmZWFjdXRlO2NpYXV4Ij48aW1nIHNyYz0nLi4vcGx1Z2lucy9mb25jdGlvbm5hbGl0ZXMvYmFycmVfdHlwb19lY29sb2dpcXVlL2ltZ19wYWNrL2ljb25lc19iYXJyZS9jbGF2aWVyLnBuZycgaGVpZ2h0PScxNicgd2lkdGg9JzE2JyBhbHQ9IkNhcmFjdCZlZ3JhdmU7cmVzIHNwJmVhY3V0ZTtjaWF1eCIgLz48L2E+Jm5ic3A7PC90ZD4KPHRkIHN0eWxlPSd0ZXh0LWFsaWduOnJpZ2h0OycgdmFsaWduPSdtaWRkbGUnPiZuYnNwOyZuYnNwOzxhIGNsYXNzPSdhaWRlJyBocmVmPSdodHRwOi8vcHJlcHJvZC5ub3RyZS12aWxsZS5uZXQvfnN0c2ViL2VjcmlyZS8/ZXhlYz1haWRlX2luZGV4JmFtcDthaWRlPXJhY2NvdXJjaXMmYW1wO3Zhcl9sYW5nPWZyJyB0YXJnZXQ9InNwaXBfYWlkZSIgb25jbGljaz0iamF2YXNjcmlwdDp3aW5kb3cub3Blbih0aGlzLmhyZWYsJ3NwaXBfYWlkZScsICdzY3JvbGxiYXJzPXllcywgcmVzaXphYmxlPXllcywgd2lkdGg9NzQwLCBoZWlnaHQ9NTgwJyk7IHJldHVybiBmYWxzZTsiPjxpbWcgc3JjPSdpbWdfcGFjay9haWRlLmdpZicKYWx0PSJBSURFIiB0aXRsZT0iRGUgbCdhaWRlIHN1ciBjZXQgJmVhY3V0ZTtsJmVhY3V0ZTttZW50IiB3aWR0aD0iMTIiIGhlaWdodD0iMTIiIGFsaWduPSJtaWRkbGUiIC8+PC9hPiZuYnNwOzwvdGQ+PC90cj48L3RhYmxlPjxkaXYgaWQ9J0xheWVyMTUnIHN0eWxlPSdkaXNwbGF5Om5vbmU7JyA+PHRhYmxlIGNsYXNzPSJzcGlwX2JhcnJlIiBzdHlsZT0id2lkdGg6IGF1dG87IHBhZGRpbmc6IDFweCFpbXBvcnRhbnQ7IGJvcmRlci10b3A6IDBweDsiIHN1bW1hcnk9IiI+DQo8dHI+PHRkPg0KTmIgY29sb25uZXM6IDxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJiYXJyZV9uYmNvbG9uZXMiIHN0eWxlPSJ3aWR0aDogMzBweDsiIHZhbHVlPSIyIiBzaXplPSIyIiBtYXhsZW5ndGg9IjIiICAgLz48L3RkPjx0ZD4NCk5iIGxpZ25lczogPGlucHV0IHR5cGU9InRleHQiIG5hbWU9ImJhcnJlX25icmFuZ3MiIHN0eWxlPSJ3aWR0aDogMzBweDsiIHZhbHVlPSIyIiBzaXplPSIyIiBtYXhsZW5ndGg9IjIiIC8+PC90ZD48dGQ+DQo8aW5wdXQgdHlwZT0iY2hlY2tib3giIG5hbWU9ImJhcnJlX2RvZW50ZXRlIiB2YWx1ZT0iLTEiIGNoZWNrZWQ9ImNoZWNrZWQiIC8+IEVudGV0ZTwvdGQ+PHRkPg0KPGlucHV0IHR5cGU9ImNoZWNrYm94IiBuYW1lPSJiYXJyZV9kb2NhcHRpb24iIHZhbHVlPSItMSIgY2hlY2tlZD0iY2hlY2tlZCIgLz4gQ2FwdGlvbiBldCBSJmVhY3V0ZTtzdW0mZWFjdXRlOzwvdGQ+PHRkPg0KICA8aW5wdXQgdHlwZT0iYnV0dG9uIiB2YWx1ZT0iT0siIGNsYXNzPSJmb25kbyIgb25jbGljaz0iamF2YXNjcmlwdDoNCiAgICBiYXJyZV9uYmNvbG9uZXMudmFsdWUgPSBNYXRoLmFicyhiYXJyZV9uYmNvbG9uZXMudmFsdWUpOyBiYXJyZV9uYnJhbmdzLnZhbHVlDQogICAgPSBNYXRoLmFicyhiYXJyZV9uYnJhbmdzLnZhbHVlKTsNCiAgICBpZiAoIShiYXJyZV9uYmNvbG9uZXMudmFsdWUgPT0gMCB8fCBiYXJyZV9uYnJhbmdzLnZhbHVlID09IDApKSB7DQogICAgYmFycmVfdGFibGVhdShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaW5wdXQtMS10ZXh0ZV8yJyksIGJhcnJlX25iY29sb25lcy52YWx1ZSwgYmFycmVfbmJyYW5ncy52YWx1ZSwNCiAgICBiYXJyZV9kb2VudGV0ZS5jaGVja2VkLCBiYXJyZV9kb2NhcHRpb24uY2hlY2tlZCk7IH0gIiAvPiANCjwvdGQ+PC90cj48L3RhYmxlPg0KPGRpdiBzdHlsZT0nY2xlYXI6IGJvdGg7Jz48L2Rpdj48L2Rpdj48ZGl2IGlkPSdMYXllcjE2JyBzdHlsZT0nZGlzcGxheTpub25lOycgPg0KIDx0YWJsZSBjbGFzcz0ic3BpcF9iYXJyZSIgc3R5bGU9IndpZHRoOiBhdXRvOyBwYWRkaW5nOiAxcHghaW1wb3J0YW50OyBib3JkZXItdG9wOiAwcHg7IiBzdW1tYXJ5PSIiPg0KPHRyPjx0ZD4gDQpBZHJlc3NlJm5ic3A7OiA8aW5wdXQgdHlwZT0idGV4dCIgbmFtZT0ibGllbl9ub20iIHZhbHVlPSJodHRwOi8vIiBzaXplPSIyMSIgbWF4bGVuZ3RoPSIyNTUiIC8+PGJyIC8+DQpCdWxsZSBkJ2FpZGUmbmJzcDs6IDxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJsaWVuX2J1bGxlIiB2YWx1ZT0iIiBzaXplPSIyMSIgbWF4bGVuZ3RoPSIyNTUiIC8+DQo8L3RkPjx0ZD4NCkxhbmd1ZSBhYnImZWFjdXRlO2cmZWFjdXRlO2UmbmJzcDs6IDxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJsaWVuX2xhbmd1ZSIgdmFsdWU9IiIgc2l6ZT0iMTAiIG1heGxlbmd0aD0iMTAiIC8+DQo8L3RkPjx0ZD4NCiAgPGlucHV0IHR5cGU9ImJ1dHRvbiIgdmFsdWU9Ik9LIiBjbGFzcz0iZm9uZG8iIG9uY2xpY2s9ImphdmFzY3JpcHQ6YmFycmVfZGVtYW5kZV9saWVuKCdbJywgJy0+JywgJ10nLCBsaWVuX25vbS52YWx1ZSwgbGllbl9idWxsZS52YWx1ZSwgbGllbl9sYW5ndWUudmFsdWUsZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2lucHV0LTEtdGV4dGVfMicpKTsiIC8+IA0KPC90ZD48L3RyPjwvdGFibGU+DQo8ZGl2IHN0eWxlPSdjbGVhcjogYm90aDsnPjwvZGl2PjwvZGl2PjxkaXYgaWQ9J0xheWVyMTcnIHN0eWxlPSdkaXNwbGF5Om5vbmU7JyA+DQo8dGFibGUgY2xhc3M9InNwaXBfYmFycmUiIHN0eWxlPSJ3aWR0aDogYXV0bzsgcGFkZGluZzogMXB4IWltcG9ydGFudDsgYm9yZGVyLXRvcDogMHB4OyIgc3VtbWFyeT0iIj4NCiAgPHRyPg0KICAgIDx0ZCBzdHlsZT0id2lkdGg6YXV0bzsgdGV4dC1hbGlnbjpjZW50ZXI7Ij48c3Ryb25nPkdlc3Rpb24gZGVzIGFuY3Jlczwvc3Ryb25nPjwvdGQ+DQogICAgPHRkIHN0eWxlPSJ3aWR0aDphdXRvOyI+PHN0cm9uZz5UcmFuc2Zvcm1lciBlbiBhbmNyZTwvc3Ryb25nPjxiciAvPg0KICAgIDxsYWJlbCBmb3I9ImFuY3JlX25vbSI+PGk+Tm9tIGRlIGwnYW5jcmU8L2k+PC9sYWJlbD4gPGJyIC8+DQogICAgICA8aW5wdXQgdHlwZT0idGV4dCIgbmFtZT0iYW5jcmVfbm9tIiBpZD0iYW5jcmVfbm9tIiAvPg0KCSAgDQoJPGlucHV0IHR5cGU9ImJ1dHRvbiIgdmFsdWU9Ik9LIiBjbGFzcz0iZm9uZG8iIG9uY2xpY2s9ImphdmFzY3JpcHQ6YmFycmVfYW5jcmUoJ1snLCAnPC0nLCAnXScsIGFuY3JlX25vbS52YWx1ZSwgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2lucHV0LTEtdGV4dGVfMicpKTsiIC8+DQogICAgPC90ZD4NCgk8dGQgc3R5bGU9IndpZHRoOmF1dG87Ij48c3Ryb25nPlBvaW50ZXIgdmVycyB1bmUgYW5jcmU8L3N0cm9uZz48YnIgLz4NCiAgICA8bGFiZWwgZm9yPSJhbmNyZV9jaWJsZSI+PGk+QW5jcmUgY2libGU8L2k+PC9sYWJlbD4gPGlucHV0IHR5cGU9InRleHQiIG5hbWU9ImFuY3JlX2NpYmxlIiBpZD0iYW5jcmVfY2libGUiIC8+PGJyIC8+DQoJPGxhYmVsIGZvcj0iYW5jcmVfYnVsbGUiPjxpPkJ1bGxlIGQnYWlkZSBhbmNyZTwvaT48L2xhYmVsPiA8aW5wdXQgdHlwZT0idGV4dCIgbmFtZT0iYW5jcmVfYnVsbGUiIGlkPSJhbmNyZV9idWxsZSIgLz4NCgk8aW5wdXQgdHlwZT0iYnV0dG9uIiB2YWx1ZT0iT0siIGNsYXNzPSJmb25kbyIgb25jbGljaz0iamF2YXNjcmlwdDpiYXJyZV9kZW1hbmRlKCdbJywgJy0+IycsICddJywgYW5jcmVfY2libGUudmFsdWUsIGFuY3JlX2J1bGxlLnZhbHVlLCBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaW5wdXQtMS10ZXh0ZV8yJykpOyIgLz4gDQo8L3RkPg0KICA8L3RyPiANCjwvdGFibGU+PGRpdiBzdHlsZT0nY2xlYXI6IGJvdGg7Jz48L2Rpdj48L2Rpdj48ZGl2IGlkPSdMYXllcjE4JyBzdHlsZT0nZGlzcGxheTpub25lOycgPg0KPHRhYmxlIGNsYXNzPSJzcGlwX2JhcnJlIiBzdHlsZT0id2lkdGg6IGF1dG87IHBhZGRpbmc6IDFweCFpbXBvcnRhbnQ7IGJvcmRlci10b3A6IDBweDsiIHN1bW1hcnk9IiI+DQogIDx0ciBjbGFzcz0ic3BpcF9iYXJyZSI+DQogICAgPHRkIHN0eWxlPSJ3aWR0aDozMCU7Ij5DYXJhY3QmZWdyYXZlO3JlcyBzcCZlYWN1dGU7Y2lhdXg8L3RkPg0KICAgIDx0ZD48YSBocmVmPSJqYXZhc2NyaXB0OmJhcnJlX3JhY2NvdXJjaSgnXHUwMGFificsJ35cdTAwYmInLGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdpbnB1dC0xLXRleHRlXzInKSkiCiBjbGFzcz0nc3BpcF9iYXJyZScgdGFiaW5kZXg9JzEwMDAnIHRpdGxlPSJFbnRvdXJlciBkZSAmbGFxdW87IGd1aWxsZW1ldHMgJnJhcXVvOyI+PGltZyBzcmM9J2ltZ19wYWNrL2ljb25lc19iYXJyZS9ndWlsbGVtZXRzLnBuZycgaGVpZ2h0PScxNicgd2lkdGg9JzE2JyBhbHQ9IkVudG91cmVyIGRlICZsYXF1bzsgZ3VpbGxlbWV0cyAmcmFxdW87IiAvPjwvYT48YSBocmVmPSJqYXZhc2NyaXB0OmJhcnJlX3JhY2NvdXJjaSgnXHUwMDkzJywnXHUwMDk0Jyxkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaW5wdXQtMS10ZXh0ZV8yJykpIgogY2xhc3M9J3NwaXBfYmFycmUnIHRhYmluZGV4PScxMDAwJyB0aXRsZT0iRW50b3VyZXIgZGUgJmxkcXVvO2d1aWxsZW1ldHMgZGUgc2Vjb25kIG5pdmVhdSZyZHF1bzsiPjxpbWcgc3JjPSdpbWdfcGFjay9pY29uZXNfYmFycmUvZ3VpbGxlbWV0cy1zaW1wbGVzLnBuZycgaGVpZ2h0PScxNicgd2lkdGg9JzE2JyBhbHQ9IkVudG91cmVyIGRlICZsZHF1bztndWlsbGVtZXRzIGRlIHNlY29uZCBuaXZlYXUmcmRxdW87IiAvPjwvYT48YSBocmVmPSJqYXZhc2NyaXB0OmJhcnJlX2luc2VyZXIoJ1x1MDBjMCcsZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2lucHV0LTEtdGV4dGVfMicpKSIKIGNsYXNzPSdzcGlwX2JhcnJlJyB0YWJpbmRleD0nMTAwMCcgdGl0bGU9IklucyZlYWN1dGU7cmVyIHVuIEEgYWNjZW50IGdyYXZlIG1hanVzY3VsZSI+PGltZyBzcmM9J2ltZ19wYWNrL2ljb25lc19iYXJyZS9hZ3JhdmUtbWFqLnBuZycgaGVpZ2h0PScxNicgd2lkdGg9JzE2JyBhbHQ9IklucyZlYWN1dGU7cmVyIHVuIEEgYWNjZW50IGdyYXZlIG1hanVzY3VsZSIgLz48L2E+PGEgaHJlZj0iamF2YXNjcmlwdDpiYXJyZV9pbnNlcmVyKCdcdTAwYzknLGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdpbnB1dC0xLXRleHRlXzInKSkiCiBjbGFzcz0nc3BpcF9iYXJyZScgdGFiaW5kZXg9JzEwMDAnIHRpdGxlPSJJbnMmZWFjdXRlO3JlciB1biBFIGFjY2VudCBhaWd1IG1hanVzY3VsZSI+PGltZyBzcmM9J2ltZ19wYWNrL2ljb25lc19iYXJyZS9lYWN1dGUtbWFqLnBuZycgaGVpZ2h0PScxNicgd2lkdGg9JzE2JyBhbHQ9IklucyZlYWN1dGU7cmVyIHVuIEUgYWNjZW50IGFpZ3UgbWFqdXNjdWxlIiAvPjwvYT48YSBocmVmPSJqYXZhc2NyaXB0OmJhcnJlX2luc2VyZXIoJ1x1MDBjOCcsZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2lucHV0LTEtdGV4dGVfMicpKSIKIGNsYXNzPSdzcGlwX2JhcnJlJyB0YWJpbmRleD0nMTAwMCcgdGl0bGU9IklucyZlYWN1dGU7cmVyIHVuIEUgbWFqdXNjdWxlIGFjY2VudCBncmF2ZSI+PGltZyBzcmM9Jy4uL3BsdWdpbnMvZm9uY3Rpb25uYWxpdGVzL2JhcnJlX3R5cG9fZWNvbG9naXF1ZS9pbWdfcGFjay9pY29uZXNfYmFycmUvZWFncmF2ZS1tYWoucG5nJyBoZWlnaHQ9JzE2JyB3aWR0aD0nMTYnIGFsdD0iSW5zJmVhY3V0ZTtyZXIgdW4gRSBtYWp1c2N1bGUgYWNjZW50IGdyYXZlIiAvPjwvYT48YSBocmVmPSJqYXZhc2NyaXB0OmJhcnJlX2luc2VyZXIoJ1x1MDBlNicsZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2lucHV0LTEtdGV4dGVfMicpKSIKIGNsYXNzPSdzcGlwX2JhcnJlJyB0YWJpbmRleD0nMTAwMCcgdGl0bGU9IklucyZlYWN1dGU7cmVyIHVuIEUgZGFucyBsJ0EiPjxpbWcgc3JjPScuLi9wbHVnaW5zL2ZvbmN0aW9ubmFsaXRlcy9iYXJyZV90eXBvX2Vjb2xvZ2lxdWUvaW1nX3BhY2svaWNvbmVzX2JhcnJlL2FlbGlnLnBuZycgaGVpZ2h0PScxNicgd2lkdGg9JzE2JyBhbHQ9IklucyZlYWN1dGU7cmVyIHVuIEUgZGFucyBsJ0EiIC8+PC9hPjxhIGhyZWY9ImphdmFzY3JpcHQ6YmFycmVfaW5zZXJlcignXHUwMGM2Jyxkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaW5wdXQtMS10ZXh0ZV8yJykpIgogY2xhc3M9J3NwaXBfYmFycmUnIHRhYmluZGV4PScxMDAwJyB0aXRsZT0iSW5zJmVhY3V0ZTtyZXIgdW4gRSBkYW5zIGwnQSBtYWp1c2N1bGUiPjxpbWcgc3JjPScuLi9wbHVnaW5zL2ZvbmN0aW9ubmFsaXRlcy9iYXJyZV90eXBvX2Vjb2xvZ2lxdWUvaW1nX3BhY2svaWNvbmVzX2JhcnJlL2FlbGlnLW1hai5wbmcnIGhlaWdodD0nMTYnIHdpZHRoPScxNicgYWx0PSJJbnMmZWFjdXRlO3JlciB1biBFIGRhbnMgbCdBIG1hanVzY3VsZSIgLz48L2E+PGEgaHJlZj0iamF2YXNjcmlwdDpiYXJyZV9pbnNlcmVyKCcmb2VsaWc7Jyxkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaW5wdXQtMS10ZXh0ZV8yJykpIgogY2xhc3M9J3NwaXBfYmFycmUnIHRhYmluZGV4PScxMDAwJyB0aXRsZT0iSW5zJmVhY3V0ZTtyZXIgdW4gRSBkYW5zIGwnTyI+PGltZyBzcmM9J2ltZ19wYWNrL2ljb25lc19iYXJyZS9vZWxpZy5wbmcnIGhlaWdodD0nMTYnIHdpZHRoPScxNicgYWx0PSJJbnMmZWFjdXRlO3JlciB1biBFIGRhbnMgbCdPIiAvPjwvYT48YSBocmVmPSJqYXZhc2NyaXB0OmJhcnJlX2luc2VyZXIoJyZPRWxpZzsnLGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdpbnB1dC0xLXRleHRlXzInKSkiCiBjbGFzcz0nc3BpcF9iYXJyZScgdGFiaW5kZXg9JzEwMDAnIHRpdGxlPSJJbnMmZWFjdXRlO3JlciB1biBFIGRhbnMgbCdPIG1hanVzY3VsZSI+PGltZyBzcmM9J2ltZ19wYWNrL2ljb25lc19iYXJyZS9vZWxpZy1tYWoucG5nJyBoZWlnaHQ9JzE2JyB3aWR0aD0nMTYnIGFsdD0iSW5zJmVhY3V0ZTtyZXIgdW4gRSBkYW5zIGwnTyBtYWp1c2N1bGUiIC8+PC9hPjxhIGhyZWY9ImphdmFzY3JpcHQ6YmFycmVfaW5zZXJlcignXHUwMGM3Jyxkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaW5wdXQtMS10ZXh0ZV8yJykpIgogY2xhc3M9J3NwaXBfYmFycmUnIHRhYmluZGV4PScxMDAwJyB0aXRsZT0iSW5zJmVhY3V0ZTtyZXIgdW4gQyBjJmVhY3V0ZTtkaWxsZSBtYWp1c2N1bGUiPjxpbWcgc3JjPScuLi9wbHVnaW5zL2ZvbmN0aW9ubmFsaXRlcy9iYXJyZV90eXBvX2Vjb2xvZ2lxdWUvaW1nX3BhY2svaWNvbmVzX2JhcnJlL2NjZWRpbC1tYWoucG5nJyBoZWlnaHQ9JzE2JyB3aWR0aD0nMTYnIGFsdD0iSW5zJmVhY3V0ZTtyZXIgdW4gQyBjJmVhY3V0ZTtkaWxsZSBtYWp1c2N1bGUiIC8+PC9hPjxhIGhyZWY9ImphdmFzY3JpcHQ6YmFycmVfaW5zZXJlcignJmV1cm87Jyxkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaW5wdXQtMS10ZXh0ZV8yJykpIgogY2xhc3M9J3NwaXBfYmFycmUnIHRhYmluZGV4PScxMDAwJyB0aXRsZT0iSW5zJmVhY3V0ZTtyZXIgbGUgc3ltYm9sZSAmZXVybzsiPjxpbWcgc3JjPSdpbWdfcGFjay9pY29uZXNfYmFycmUvZXVyby5wbmcnIGhlaWdodD0nMTYnIHdpZHRoPScxNicgYWx0PSJJbnMmZWFjdXRlO3JlciBsZSBzeW1ib2xlICZldXJvOyIgLz48L2E+Jm5ic3A7DQogICAgPC90ZD4NCiAgPC90cj4gDQo8L3RhYmxlPg0KPGRpdiBzdHlsZT0nY2xlYXI6IGJvdGg7Jz48L2Rpdj48L2Rpdj48ZGl2IGlkPSdMYXllcjE5JyBzdHlsZT0nZGlzcGxheTpub25lOycgPg0KPHRhYmxlIGNsYXNzPSJzcGlwX2JhcnJlIiBzdHlsZT0id2lkdGg6IGF1dG87IHBhZGRpbmc6IDFweCFpbXBvcnRhbnQ7IGJvcmRlci10b3A6IDBweDsiIHN1bW1hcnk9IiI+DQo8dHI+PHRkIHN0eWxlPSJ3aWR0aDogMjUlOyI+Q2hlcmNoZXI8aW5wdXQgdHlwZT0idGV4dCIgbmFtZT0iYmFycmVfY2hlcmNoZXIiIHZhbHVlPSIiIHNpemU9IjEyIiBtYXhsZW5ndGg9IjI1NSIgLz48L3RkPjx0ZCBzdHlsZT0id2lkdGg6IDIwJTsiPg0KPGlucHV0IHR5cGU9ImNoZWNrYm94IiBuYW1lPSJyZWNfY2FzZSIgdmFsdWU9InllcyIgLz5SZXNwZWN0ZXIgbGEgY2Fzc2U8YnIgLz48aW5wdXQgdHlwZT0iY2hlY2tib3giIG5hbWU9InJlY19lbnRpZXIiIHZhbHVlPSJ5ZXMiIC8+DQpNb3QgZW50aWVyDQo8L3RkPjx0ZCAgc3R5bGU9IndpZHRoOiAyNSU7Ij5SZW1wbGFjZXI8aW5wdXQgdHlwZT0idGV4dCIgbmFtZT0iYmFycmVfcmVtcGxhY2VyIiB2YWx1ZT0iIiBzaXplPSIxMiIgbWF4bGVuZ3RoPSIyNTUiIC8+IA0KPC90ZD48dGQgc3R5bGU9IndpZHRoOiAyMCU7Ij4NCjxpbnB1dCB0eXBlPSJjaGVja2JveCIgbmFtZT0icmVjX3RvdXQiIHZhbHVlPSJ5ZXMiIC8+VG91dCByZW1wbGFjZXI8L3RkPjx0ZCBzdHlsZT0id2lkdGg6IDEwJTsiPg0KICAgPGlucHV0IHR5cGU9ImJ1dHRvbiIgdmFsdWU9Ik9LIiBjbGFzcz0iZm9uZG8iDQogIG9uY2xpY2s9ImphdmFzY3JpcHQ6YmFycmVfc2VhcmNocmVwbGFjZShkb2N1bWVudC5mb3JtdWxhaXJlLmJhcnJlX2NoZXJjaGVyLnZhbHVlLCBkb2N1bWVudC5mb3JtdWxhaXJlLmJhcnJlX3JlbXBsYWNlci52YWx1ZSwgZG9jdW1lbnQuZm9ybXVsYWlyZS5yZWNfdG91dC5jaGVja2VkLCBkb2N1bWVudC5mb3JtdWxhaXJlLnJlY19jYXNlLmNoZWNrZWQsIGRvY3VtZW50LmZvcm11bGFpcmUucmVjX2VudGllci5jaGVja2VkLGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdpbnB1dC0xLXRleHRlXzInKSk7IiAvPiANCjwvdGQ+PC90cj48L3RhYmxlPjxkaXYgc3R5bGU9J2NsZWFyOiBib3RoOyc+PC9kaXY+PC9kaXY+Cgk8dGV4dGFyZWEgbmFtZT0ndGV4dGVfMicgcm93cz0nMTAnIGNsYXNzPSdmb3JtbCAgICcgY29scz0nODAnCglpZD0naW5wdXQtMS10ZXh0ZV8yJwoJb25zZWxlY3Q9J3N0b3JlQ2FyZXQodGhpcyk7JwoJb25jbGljaz0nc3RvcmVDYXJldCh0aGlzKTsnCglvbmtleXVwPSdzdG9yZUNhcmV0KHRoaXMpOycKCW9uZGJsY2xpY2s9J3N0b3JlQ2FyZXQodGhpcyk7Jz48L3RleHRhcmVhPgoJCQkJCgkJCQkKCQkJCQoJCQkJCgkJCQkKCQkJCQoJCQkJCgkJCQkKCQkJCQoJCQkJPHNwYW4gY2xhc3M9J25ldHRveWV1cic+IDwvc3Bhbj4KCQkJCgkJPC9kaXY+CgkKCgogCgk8L2ZpZWxkc2V0PgoKIAogCgkKCTxwIHN0eWxlPSdkaXNwbGF5Om5vbmU7Jz48bGFiZWwgZm9yPSJub2JvdG5vYm90LTEiPlZldWlsbGV6IGxhaXNzZXIgY2UgY2hhbXAgdmlkZSZuYnNwOzo8L2xhYmVsPgoJPGlucHV0IHR5cGU9InRleHQiIG5hbWU9Im5vYm90bm9ib3QiIGlkPSJub2JvdG5vYm90LTEiIHZhbHVlPSIiIHNpemU9IjEwIiAvPjwvcD4KCQoJPGRpdiBzdHlsZT0ndGV4dC1hbGlnbjpyaWdodCcgY2xhc3M9J3NwaXBfYm91dG9uJz48aW5wdXQgdHlwZT0ic3VibWl0IiBuYW1lPSdWYWxpZGVyJyB2YWx1ZT0iVmFsaWRlciIgLz48L2Rpdj4KCgo8ZGl2IGNsYXNzPSJiYXNlNjRqYXZhc2NyaXB0NjE2NjIzMjMwNDY0NDM0OThiZGYwMTkuMzEwOTE2MzUiIHRpdGxlPSdQSE5qY21sd2RDQnpjbU05SW1oMGRIQTZMeTl3Y21Wd2NtOWtMbTV2ZEhKbExYWnBiR3hsTG01bGRDOStjM1J6WldJdmNHeDFaMmx1Y3k5bWIyNWpkR2x2Ym01aGJHbDBaWE12Wm05eWJYTXZhbUYyWVhOamNtbHdkQzlxZEdsd0xtcHpJaUIwZVhCbFBTSjBaWGgwTDJwaGRtRnpZM0pwY0hRaVBqd3ZjMk55YVhCMFBnPT0nID48L2Rpdj4KCgoKPGRpdiBjbGFzcz0iYmFzZTY0amF2YXNjcmlwdDYxNjYyMzIzMDQ2NDQzNDk4YmRmMDE5LjMxMDkxNjM1IiB0aXRsZT0nUEhOamNtbHdkQ0IwZVhCbFBTSjBaWGgwTDJwaGRtRnpZM0pwY0hRaVBqd2hMUzBLSkNnbmFXNXdkWFF1Wm05eWJXOG5LUzVpYVc1a0tDZG1iMk4xY3ljc1puVnVZM1JwYjI0b0tYc2tLSFJvYVhNcExuSmxiVzkyWlVOc1lYTnpLQ2RtYjNKdGJ5Y3BMbUZrWkVOc1lYTnpLQ2RtYjNKdGJ5MW1iMk4xY3ljcE8zMHBPd29rS0NkcGJuQjFkQzVtYjNKdGJ5Y3BMbUpwYm1Rb0oySnNkWEluTEdaMWJtTjBhVzl1S0NsN0pDaDBhR2x6S1M1eVpXMXZkbVZEYkdGemN5Z25abTl5Ylc4dFptOWpkWE1uS1M1aFpHUkRiR0Z6Y3lnblptOXliVzhuS1R0OUtUc0tKQ2duYVc1d2RYUXVabTl5Yld3bktTNWlhVzVrS0NkbWIyTjFjeWNzWm5WdVkzUnBiMjRvS1hza0tIUm9hWE1wTG5KbGJXOTJaVU5zWVhOektDZG1iM0p0YkNjcExtRmtaRU5zWVhOektDZG1iM0p0YkMxbWIyTjFjeWNwTzMwcE93b2tLQ2RwYm5CMWRDNW1iM0p0YkNjcExtSnBibVFvSjJKc2RYSW5MR1oxYm1OMGFXOXVLQ2w3SkNoMGFHbHpLUzV5WlcxdmRtVkRiR0Z6Y3lnblptOXliV3d0Wm05amRYTW5LUzVoWkdSRGJHRnpjeWduWm05eWJXd25LVHQ5S1RzS0NpOHZMUzArUEM5elkzSnBjSFErJyA+PC9kaXY+CgoKCgkKCQoJCgoKPC9kaXY+',
216
+                'balise' => '<div class="base64" title="bW9kZWxlIDogYTo3OntzOjQ6JnF1b3Q7bGFuZyZxdW90OztzOjI6JnF1b3Q7ZnImcXVvdDs7czo0OiZxdW90O2ZvbmQmcXVvdDs7czoxMjomcXVvdDttb2RlbGVzL2Zvcm0mcXVvdDs7czoxMDomcXVvdDtkaXJfcmFjaW5lJnF1b3Q7O3M6MzomcXVvdDsuLi8mcXVvdDs7czoyOiZxdW90O2lkJnF1b3Q7O3M6MTomcXVvdDsxJnF1b3Q7O3M6NzomcXVvdDtpZF9mb3JtJnF1b3Q7O3M6MTomcXVvdDsxJnF1b3Q7O3M6NDomcXVvdDtkYXRlJnF1b3Q7O3M6MTk6JnF1b3Q7MjAwNy0wNS0xMSAxMTo0MjoxOSZxdW90OztzOjEwOiZxdW90O2RhdGVfcmVkYWMmcXVvdDs7czoxOTomcXVvdDsyMDA3LTA1LTExIDExOjQyOjE5JnF1b3Q7O30KCmljaXRvdG8KCjxhIG5hbWU9J2Zvcm0xJz48L2E+CjxkaXYgY2xhc3M9J3NwaXBfZm9ybXMnPgoKPGRpdiBjbGFzcz0nc3BpcF9kZXNjcmlwdGlmJz48L2Rpdj4KCgoKCiAKCQkKCQk8ZGl2PgoJCQo8aW5wdXQgbmFtZT0nZXhlYycgdmFsdWU9J2FydGljbGVzJyB0eXBlPSdoaWRkZW4nIC8+CjxpbnB1dCBuYW1lPSdpZF9hcnRpY2xlJyB2YWx1ZT0nOCcgdHlwZT0naGlkZGVuJyAvPgoJCTxpbnB1dCB0eXBlPSdoaWRkZW4nIG5hbWU9J2Fqb3V0X3JlcG9uc2UnIHZhbHVlPScxJyAvPgoJCTxpbnB1dCB0eXBlPSdoaWRkZW4nIG5hbWU9J2lkX2Rvbm5lZScgdmFsdWU9Jy0xMCcgLz4KCQkKCQk8aW5wdXQgdHlwZT0naGlkZGVuJyBuYW1lPSdyZXRvdXJfZm9ybScgdmFsdWU9JycgLz4KCQkKCQk8L2Rpdj4KCQkJCgoKIAoJIAoJCQoJCSA8ZmllbGRzZXQ+PGxlZ2VuZD5Ob3VzIGNvbnRhY3RlcjwvbGVnZW5kPiAKCQoJIAoJCTxkaXYgY2xhc3M9J3NwaXBfZm9ybV9jaGFtcCBsaWduZV8xJz4KCQkJCgkJCSAKCQkJCTxzcGFuIGNsYXNzPSdzcGlwX2Zvcm1fbGFiZWwnPgoJCQkJCSA8bGFiZWwgZm9yPSJpbnB1dC0xLWxpZ25lXzEiPlZvdHJlIE5vbTwvbGFiZWw+CgkJCQkJCgkJCQkJPHNwYW4gY2xhc3M9J3NwaXBfZm9ybV9sYWJlbF9vYmxpZ2F0b2lyZSc+CgkJCQkJCVtPYmxpZ2F0b2lyZV08L3NwYW4+CgkJCQkJOgoJCQkJPC9zcGFuPgoJCQkJCgkJCQkKCQkJCQoJCQkJCgkJCQkKCQkJCQoJCQkJCgkJCQkKCQkJCQoJCQkJCgkJCQkKCQkJCSAKCQkJCQoJCQkJPGlucHV0IHR5cGU9InRleHRlIiBuYW1lPSdsaWduZV8xJyBpZD0naW5wdXQtMS1saWduZV8xJyB2YWx1ZT0iIiAKCQkJCQkJY2xhc3M9JyAgbGlnbmUgZm9ybWwnIAoJCQkJCQlzaXplPSc0MCcgLz4KCQkJCQoJCQkJCgkJCQkKCQkJCTxzcGFuIGNsYXNzPSduZXR0b3lldXInPiA8L3NwYW4+CgkJCQoJCTwvZGl2PgoJCgoKCiAKCSAKCQkKCQkKCQoJIAoJCTxkaXYgY2xhc3M9J3NwaXBfZm9ybV9jaGFtcCBsaWduZV8yJz4KCQkJCgkJCSAKCQkJCTxzcGFuIGNsYXNzPSdzcGlwX2Zvcm1fbGFiZWwnPgoJCQkJCSA8bGFiZWwgZm9yPSJpbnB1dC0xLWxpZ25lXzIiPlZvdHJlIFByw6lub208L2xhYmVsPgoJCQkJCQoJCQkJCTxzcGFuIGNsYXNzPSdzcGlwX2Zvcm1fbGFiZWxfb2JsaWdhdG9pcmUnPgoJCQkJCQlbT2JsaWdhdG9pcmVdPC9zcGFuPgoJCQkJCToKCQkJCTwvc3Bhbj4KCQkJCQoJCQkJCgkJCQkKCQkJCQoJCQkJCgkJCQkKCQkJCQoJCQkJCgkJCQkKCQkJCQoJCQkJCgkJCQkgCgkJCQkKCQkJCTxpbnB1dCB0eXBlPSJ0ZXh0ZSIgbmFtZT0nbGlnbmVfMicgaWQ9J2lucHV0LTEtbGlnbmVfMicgdmFsdWU9IiIgCgkJCQkJCWNsYXNzPScgIGxpZ25lIGZvcm1sJyAKCQkJCQkJc2l6ZT0nNDAnIC8+CgkJCQkKCQkJCQoJCQkJCgkJCQk8c3BhbiBjbGFzcz0nbmV0dG95ZXVyJz4gPC9zcGFuPgoJCQkKCQk8L2Rpdj4KCQoKCgogCgkgCgkJCgkJCgkKCSAKCQk8ZGl2IGNsYXNzPSdzcGlwX2Zvcm1fY2hhbXAgZW1haWxfMSc+CgkJCQoJCQkgCgkJCQk8c3BhbiBjbGFzcz0nc3BpcF9mb3JtX2xhYmVsJz4KCQkJCQkgPGxhYmVsIGZvcj0iaW5wdXQtMS1lbWFpbF8xIj5Wb3RyZSBlbWFpbDwvbGFiZWw+CgkJCQkJCgkJCQkJPHNwYW4gY2xhc3M9J3NwaXBfZm9ybV9sYWJlbF9vYmxpZ2F0b2lyZSc+CgkJCQkJCVtPYmxpZ2F0b2lyZV08L3NwYW4+CgkJCQkJOgoJCQkJPC9zcGFuPgoJCQkJCgkJCQk8c3BhbiBjbGFzcz0nc3BpcF9mb3JtX2xhYmVsX2RldGFpbHMnPlZldWlsbGV6IGVudHJlciB1bmUgYWRyZXNzZSBlLW1haWwgdmFsaWRlIChkZSB0eXBlIHZvdXNAZm91cm5pc3NldXIuY29tKS48L3NwYW4+CgkJCQkKCQkJCQoJCQkJCgkJCQkKCQkJCQoJCQkJCgkJCQkKCQkJCQoJCQkJCgkJCQkgCgkJCQkKCQkJCTxpbnB1dCB0eXBlPSJ0ZXh0ZSIgbmFtZT0nZW1haWxfMScgaWQ9J2lucHV0LTEtZW1haWxfMScgdmFsdWU9IiIgCgkJCQkJCWNsYXNzPScgIGVtYWlsIGZvcm1sJyAKCQkJCQkJc2l6ZT0nNDAnIC8+CgkJCQkKCQkJCQoJCQkJCgkJCQk8c3BhbiBjbGFzcz0nbmV0dG95ZXVyJz4gPC9zcGFuPgoJCQkKCQk8L2Rpdj4KCQoKCgogCgkgCgkJCgkJCgkKCSAKCQk8ZGl2IGNsYXNzPSdzcGlwX2Zvcm1fY2hhbXAgdGV4dGVfMSc+CgkJCQoJCQkgCgkJCQk8c3BhbiBjbGFzcz0nc3BpcF9mb3JtX2xhYmVsJz4KCQkJCQkgPGxhYmVsIGZvcj0iaW5wdXQtMS10ZXh0ZV8xIj5Wb3RyZSBBZHJlc3NlPC9sYWJlbD4KCQkJCQkKCQkJCQkKCQkJCQk6CgkJCQk8L3NwYW4+CgkJCQkKCQkJCQoJCQkJCgkJCQkKCQkJCSAgPGRpdiBjbGFzcz0iYmFzZTY0amF2YXNjcmlwdDYxNjYyMzIzMDQ2NDQzNDk4YmRmMDE5LjMxMDkxNjM1IiB0aXRsZT0nUEhOamNtbHdkQ0IwZVhCbFBTSjBaWGgwTDJwaGRtRnpZM0pwY0hRaUlITnlZejBpTGk0dmNHeDFaMmx1Y3k5aFpHMXBiaTh0YWxGMVpYSjVMMmx0WjE5d1lXTnJMMnhoZVdWeUxtcHpJajQ4TDNOamNtbHdkRDQ9JyA+PC9kaXY+Cgo8ZGl2IGNsYXNzPSJiYXNlNjRqYXZhc2NyaXB0NjE2NjIzMjMwNDY0NDM0OThiZGYwMTkuMzEwOTE2MzUiIHRpdGxlPSdQSE5qY21sd2RDQjBlWEJsUFNKMFpYaDBMMnBoZG1GelkzSnBjSFFpSUhOeVl6MGlMaTR2Y0d4MVoybHVjeTltYjI1amRHbHZibTVoYkdsMFpYTXZZbUZ5Y21WZmRIbHdiMTlsWTI5c2IyZHBjWFZsTDJwekwzTndhWEJmWW1GeWNtVXVhbk1pUGp3dmMyTnlhWEIwUGc9PScgPjwvZGl2PgoKPHRhYmxlIGNsYXNzPSdzcGlwX2JhcnJlJyBzdHlsZT0nd2lkdGg6YXV0bzsnIGNlbGxwYWRkaW5nPScwJyBjZWxsc3BhY2luZz0nMCcgYm9yZGVyPScwJyBzdW1tYXJ5PScnPgo8dHIgc3R5bGU9J3dpZHRoOiBhdXRvOycgY2xhc3M9J3NwaXBfYmFycmUnPgo8dGQgc3R5bGU9J3RleHQtYWxpZ246IGxlZnQ7JyB2YWxpZ249J21pZGRsZSc+PGEgaHJlZj0iamF2YXNjcmlwdDpiYXJyZV9yYWNjb3VyY2koJ3snLCd9Jyxkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaW5wdXQtMS10ZXh0ZV8xJykpIgogY2xhc3M9J3NwaXBfYmFycmUnIHRhYmluZGV4PScxMDAwJyB0aXRsZT0iTWV0dHJlIGVuIHtpdGFsaXF1ZX0iPjxpbWcgc3JjPSdpbWdfcGFjay9pY29uZXNfYmFycmUvaXRhbGlxdWUucG5nJyBoZWlnaHQ9JzE2JyB3aWR0aD0nMTYnIGFsdD0iTWV0dHJlIGVuIHtpdGFsaXF1ZX0iIC8+PC9hPjxhIGhyZWY9ImphdmFzY3JpcHQ6YmFycmVfcmFjY291cmNpKCd7eycsJ319Jyxkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaW5wdXQtMS10ZXh0ZV8xJykpIgogY2xhc3M9J3NwaXBfYmFycmUnIHRhYmluZGV4PScxMDAwJyB0aXRsZT0iTWV0dHJlIGVuIHt7Z3Jhc319Ij48aW1nIHNyYz0naW1nX3BhY2svaWNvbmVzX2JhcnJlL2dyYXMucG5nJyBoZWlnaHQ9JzE2JyB3aWR0aD0nMTYnIGFsdD0iTWV0dHJlIGVuIHt7Z3Jhc319IiAvPjwvYT48YSBocmVmPSJqYXZhc2NyaXB0OmJhcnJlX3JhY2NvdXJjaSgnWyonLCcqXScsZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2lucHV0LTEtdGV4dGVfMScpKSIKIGNsYXNzPSdzcGlwX2JhcnJlJyB0YWJpbmRleD0nMTAwMCcgdGl0bGU9Ik1ldHRyZSBsZSB0ZXh0ZSBlbiBbKiZlYWN1dGU7dmlkZW5jZSpdIj48aW1nIHNyYz0nLi4vcGx1Z2lucy9mb25jdGlvbm5hbGl0ZXMvYmFycmVfdHlwb19lY29sb2dpcXVlL2ltZ19wYWNrL2ljb25lc19iYXJyZS9taXNlZW5ldmlkZW5jZS5wbmcnIGhlaWdodD0nMTYnIHdpZHRoPScxNicgYWx0PSJNZXR0cmUgbGUgdGV4dGUgZW4gWyomZWFjdXRlO3ZpZGVuY2UqXSIgLz48L2E+PGEgaHJlZj0iamF2YXNjcmlwdDpiYXJyZV9yYWNjb3VyY2koJyUzQ3N1cCUzRScsJyUzQy9zdXAlM0UnLGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdpbnB1dC0xLXRleHRlXzEnKSkiCiBjbGFzcz0nc3BpcF9iYXJyZScgdGFiaW5kZXg9JzEwMDAnIHRpdGxlPSJNZXR0cmUgbGUgdGV4dGUgZW4gJmx0O3N1cCZndDtleHBvc2FudCZsdDsvc3VwJmd0OyI+PGltZyBzcmM9Jy4uL3BsdWdpbnMvZm9uY3Rpb25uYWxpdGVzL2JhcnJlX3R5cG9fZWNvbG9naXF1ZS9pbWdfcGFjay9pY29uZXNfYmFycmUvZXhwb3NhbnQucG5nJyBoZWlnaHQ9JzE2JyB3aWR0aD0nMTYnIGFsdD0iTWV0dHJlIGxlIHRleHRlIGVuICZsdDtzdXAmZ3Q7ZXhwb3NhbnQmbHQ7L3N1cCZndDsiIC8+PC9hPjxhIGhyZWY9ImphdmFzY3JpcHQ6YmFycmVfcmFjY291cmNpKCclM0NzYyUzRScsJyUzQy9zYyUzRScsZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2lucHV0LTEtdGV4dGVfMScpKSIKIGNsYXNzPSdzcGlwX2JhcnJlJyB0YWJpbmRleD0nMTAwMCcgdGl0bGU9Ik1ldHRyZSBsZSB0ZXh0ZSBlbiAmbHQ7c2MmZ3Q7cGV0aXRlcyBjYXBpdGFsZXMmbHQ7L3NjJmd0OyI+PGltZyBzcmM9Jy4uL3BsdWdpbnMvZm9uY3Rpb25uYWxpdGVzL2JhcnJlX3R5cG9fZWNvbG9naXF1ZS9pbWdfcGFjay9pY29uZXNfYmFycmUvcGV0aXRlc2NhcGl0YWxlcy5wbmcnIGhlaWdodD0nMTYnIHdpZHRoPScxNicgYWx0PSJNZXR0cmUgbGUgdGV4dGUgZW4gJmx0O3NjJmd0O3BldGl0ZXMgY2FwaXRhbGVzJmx0Oy9zYyZndDsiIC8+PC9hPiZuYnNwOzwvdGQ+Cjx0ZD48YSBocmVmPSJqYXZhc2NyaXB0OnN3YXBfY291Y2hlKCcxMScsJycpOyIKIGNsYXNzPSdzcGlwX2JhcnJlJyB0YWJpbmRleD0nMTAwMCcgdGl0bGU9IlRyYW5zZm9ybWVyIGVuIFtsaWVuIGh5cGVydGV4dGUtPmh0dHA6Ly8uLi5dIj48aW1nIHNyYz0naW1nX3BhY2svaWNvbmVzX2JhcnJlL2xpZW4ucG5nJyBoZWlnaHQ9JzE2JyB3aWR0aD0nMTYnIGFsdD0iVHJhbnNmb3JtZXIgZW4gW2xpZW4gaHlwZXJ0ZXh0ZS0+aHR0cDovLy4uLl0iIC8+PC9hPiZuYnNwOzwvdGQ+Cjx0ZD48YSBocmVmPSJqYXZhc2NyaXB0OmJhcnJlX3JhY2NvdXJjaSgnJTVDbiU1Q24lM0NxdW90ZSUzRScsJyUzQy9xdW90ZSUzRSU1Q24lNUNuJyxkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaW5wdXQtMS10ZXh0ZV8xJykpIgogY2xhc3M9J3NwaXBfYmFycmUnIHRhYmluZGV4PScxMDAwJyB0aXRsZT0iQ2l0ZXIgdW4gbWVzc2FnZSI+PGltZyBzcmM9J2ltZ19wYWNrL2ljb25lc19iYXJyZS9xdW90ZS5wbmcnIGhlaWdodD0nMTYnIHdpZHRoPScxNicgYWx0PSJDaXRlciB1biBtZXNzYWdlIiAvPjwvYT48YSBocmVmPSJqYXZhc2NyaXB0OmJhcnJlX3JhY2NvdXJjaSgnWz8nLCddJyxkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaW5wdXQtMS10ZXh0ZV8xJykpIgogY2xhc3M9J3NwaXBfYmFycmUnIHRhYmluZGV4PScxMDAwJyB0aXRsZT0iRW50ciZlYWN1dGU7ZSBkdSBbP2dsb3NzYWlyZV0gKFdpa2lwZWRpYSkiPjxpbWcgc3JjPScuLi9wbHVnaW5zL2ZvbmN0aW9ubmFsaXRlcy9iYXJyZV90eXBvX2Vjb2xvZ2lxdWUvaW1nX3BhY2svaWNvbmVzX2JhcnJlL2JhcnJlLXdpa2kucG5nJyBoZWlnaHQ9JzE2JyB3aWR0aD0nMTYnIGFsdD0iRW50ciZlYWN1dGU7ZSBkdSBbP2dsb3NzYWlyZV0gKFdpa2lwZWRpYSkiIC8+PC9hPjxhIGhyZWY9ImphdmFzY3JpcHQ6c3dhcF9jb3VjaGUoJzEwJywnJyk7IgogY2xhc3M9J3NwaXBfYmFycmUnIHRhYmluZGV4PScxMDAwJyB0aXRsZT0iSW5zJmVhY3V0ZTtyZXIgdW4gdGFibGVhdSI+PGltZyBzcmM9Jy4uL3BsdWdpbnMvZm9uY3Rpb25uYWxpdGVzL2JhcnJlX3R5cG9fZWNvbG9naXF1ZS9pbWdfcGFjay9pY29uZXNfYmFycmUvYmFycmUtdGFibGVhdS5wbmcnIGhlaWdodD0nMTYnIHdpZHRoPScxNicgYWx0PSJJbnMmZWFjdXRlO3JlciB1biB0YWJsZWF1IiAvPjwvYT4mbmJzcDwvdGQ+Cjx0ZD48YSBocmVmPSJqYXZhc2NyaXB0OnN3YXBfY291Y2hlKCcxNCcsJycpOyIKIGNsYXNzPSdzcGlwX2JhcnJlJyB0YWJpbmRleD0nMTAwMCcgdGl0bGU9IkNoZXJjaGVyIFJlbXBsYWNlciI+PGltZyBzcmM9Jy4uL3BsdWdpbnMvZm9uY3Rpb25uYWxpdGVzL2JhcnJlX3R5cG9fZWNvbG9naXF1ZS9pbWdfcGFjay9pY29uZXNfYmFycmUvY2hlcmNoZXJfcmVtcGxhY2VyLnBuZycgaGVpZ2h0PScxNicgd2lkdGg9JzE2JyBhbHQ9IkNoZXJjaGVyIFJlbXBsYWNlciIgLz48L2E+PGEgaHJlZj0iamF2YXNjcmlwdDpzd2FwX2NvdWNoZSgnMTInLCcnKTsiCiBjbGFzcz0nc3BpcF9iYXJyZScgdGFiaW5kZXg9JzEwMDAnIHRpdGxlPSJHZXN0aW9uIGRlcyBhbmNyZXMiPjxpbWcgc3JjPScuLi9wbHVnaW5zL2ZvbmN0aW9ubmFsaXRlcy9iYXJyZV90eXBvX2Vjb2xvZ2lxdWUvaW1nX3BhY2svaWNvbmVzX2JhcnJlL2FuY3JlLnBuZycgaGVpZ2h0PScxNicgd2lkdGg9JzE2JyBhbHQ9Ikdlc3Rpb24gZGVzIGFuY3JlcyIgLz48L2E+Jm5ic3A7PC90ZD4KPHRkIHN0eWxlPSd0ZXh0LWFsaWduOmxlZnQ7JyB2YWxpZ249J21pZGRsZSc+PGEgaHJlZj0iamF2YXNjcmlwdDpzd2FwX2NvdWNoZSgnMTMnLCcnKTsiCiBjbGFzcz0nc3BpcF9iYXJyZScgdGFiaW5kZXg9JzEwMDAnIHRpdGxlPSJDYXJhY3QmZWdyYXZlO3JlcyBzcCZlYWN1dGU7Y2lhdXgiPjxpbWcgc3JjPScuLi9wbHVnaW5zL2ZvbmN0aW9ubmFsaXRlcy9iYXJyZV90eXBvX2Vjb2xvZ2lxdWUvaW1nX3BhY2svaWNvbmVzX2JhcnJlL2NsYXZpZXIucG5nJyBoZWlnaHQ9JzE2JyB3aWR0aD0nMTYnIGFsdD0iQ2FyYWN0JmVncmF2ZTtyZXMgc3AmZWFjdXRlO2NpYXV4IiAvPjwvYT4mbmJzcDs8L3RkPgo8dGQgc3R5bGU9J3RleHQtYWxpZ246cmlnaHQ7JyB2YWxpZ249J21pZGRsZSc+Jm5ic3A7Jm5ic3A7PGEgY2xhc3M9J2FpZGUnIGhyZWY9J2h0dHA6Ly9wcmVwcm9kLm5vdHJlLXZpbGxlLm5ldC9+c3RzZWIvZWNyaXJlLz9leGVjPWFpZGVfaW5kZXgmYW1wO2FpZGU9cmFjY291cmNpcyZhbXA7dmFyX2xhbmc9ZnInIHRhcmdldD0ic3BpcF9haWRlIiBvbmNsaWNrPSJqYXZhc2NyaXB0OndpbmRvdy5vcGVuKHRoaXMuaHJlZiwnc3BpcF9haWRlJywgJ3Njcm9sbGJhcnM9eWVzLCByZXNpemFibGU9eWVzLCB3aWR0aD03NDAsIGhlaWdodD01ODAnKTsgcmV0dXJuIGZhbHNlOyI+PGltZyBzcmM9J2ltZ19wYWNrL2FpZGUuZ2lmJwphbHQ9IkFJREUiIHRpdGxlPSJEZSBsJ2FpZGUgc3VyIGNldCAmZWFjdXRlO2wmZWFjdXRlO21lbnQiIHdpZHRoPSIxMiIgaGVpZ2h0PSIxMiIgYWxpZ249Im1pZGRsZSIgLz48L2E+Jm5ic3A7PC90ZD48L3RyPjwvdGFibGU+PGRpdiBpZD0nTGF5ZXIxMCcgc3R5bGU9J2Rpc3BsYXk6bm9uZTsnID48dGFibGUgY2xhc3M9InNwaXBfYmFycmUiIHN0eWxlPSJ3aWR0aDogYXV0bzsgcGFkZGluZzogMXB4IWltcG9ydGFudDsgYm9yZGVyLXRvcDogMHB4OyIgc3VtbWFyeT0iIj4NCjx0cj48dGQ+DQpOYiBjb2xvbm5lczogPGlucHV0IHR5cGU9InRleHQiIG5hbWU9ImJhcnJlX25iY29sb25lcyIgc3R5bGU9IndpZHRoOiAzMHB4OyIgdmFsdWU9IjIiIHNpemU9IjIiIG1heGxlbmd0aD0iMiIgICAvPjwvdGQ+PHRkPg0KTmIgbGlnbmVzOiA8aW5wdXQgdHlwZT0idGV4dCIgbmFtZT0iYmFycmVfbmJyYW5ncyIgc3R5bGU9IndpZHRoOiAzMHB4OyIgdmFsdWU9IjIiIHNpemU9IjIiIG1heGxlbmd0aD0iMiIgLz48L3RkPjx0ZD4NCjxpbnB1dCB0eXBlPSJjaGVja2JveCIgbmFtZT0iYmFycmVfZG9lbnRldGUiIHZhbHVlPSItMSIgY2hlY2tlZD0iY2hlY2tlZCIgLz4gRW50ZXRlPC90ZD48dGQ+DQo8aW5wdXQgdHlwZT0iY2hlY2tib3giIG5hbWU9ImJhcnJlX2RvY2FwdGlvbiIgdmFsdWU9Ii0xIiBjaGVja2VkPSJjaGVja2VkIiAvPiBDYXB0aW9uIGV0IFImZWFjdXRlO3N1bSZlYWN1dGU7PC90ZD48dGQ+DQogIDxpbnB1dCB0eXBlPSJidXR0b24iIHZhbHVlPSJPSyIgY2xhc3M9ImZvbmRvIiBvbmNsaWNrPSJqYXZhc2NyaXB0Og0KICAgIGJhcnJlX25iY29sb25lcy52YWx1ZSA9IE1hdGguYWJzKGJhcnJlX25iY29sb25lcy52YWx1ZSk7IGJhcnJlX25icmFuZ3MudmFsdWUNCiAgICA9IE1hdGguYWJzKGJhcnJlX25icmFuZ3MudmFsdWUpOw0KICAgIGlmICghKGJhcnJlX25iY29sb25lcy52YWx1ZSA9PSAwIHx8IGJhcnJlX25icmFuZ3MudmFsdWUgPT0gMCkpIHsNCiAgICBiYXJyZV90YWJsZWF1KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdpbnB1dC0xLXRleHRlXzEnKSwgYmFycmVfbmJjb2xvbmVzLnZhbHVlLCBiYXJyZV9uYnJhbmdzLnZhbHVlLA0KICAgIGJhcnJlX2RvZW50ZXRlLmNoZWNrZWQsIGJhcnJlX2RvY2FwdGlvbi5jaGVja2VkKTsgfSAiIC8+IA0KPC90ZD48L3RyPjwvdGFibGU+DQo8ZGl2IHN0eWxlPSdjbGVhcjogYm90aDsnPjwvZGl2PjwvZGl2PjxkaXYgaWQ9J0xheWVyMTEnIHN0eWxlPSdkaXNwbGF5Om5vbmU7JyA+DQogPHRhYmxlIGNsYXNzPSJzcGlwX2JhcnJlIiBzdHlsZT0id2lkdGg6IGF1dG87IHBhZGRpbmc6IDFweCFpbXBvcnRhbnQ7IGJvcmRlci10b3A6IDBweDsiIHN1bW1hcnk9IiI+DQo8dHI+PHRkPiANCkFkcmVzc2UmbmJzcDs6IDxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJsaWVuX25vbSIgdmFsdWU9Imh0dHA6Ly8iIHNpemU9IjIxIiBtYXhsZW5ndGg9IjI1NSIgLz48YnIgLz4NCkJ1bGxlIGQnYWlkZSZuYnNwOzogPGlucHV0IHR5cGU9InRleHQiIG5hbWU9ImxpZW5fYnVsbGUiIHZhbHVlPSIiIHNpemU9IjIxIiBtYXhsZW5ndGg9IjI1NSIgLz4NCjwvdGQ+PHRkPg0KTGFuZ3VlIGFiciZlYWN1dGU7ZyZlYWN1dGU7ZSZuYnNwOzogPGlucHV0IHR5cGU9InRleHQiIG5hbWU9ImxpZW5fbGFuZ3VlIiB2YWx1ZT0iIiBzaXplPSIxMCIgbWF4bGVuZ3RoPSIxMCIgLz4NCjwvdGQ+PHRkPg0KICA8aW5wdXQgdHlwZT0iYnV0dG9uIiB2YWx1ZT0iT0siIGNsYXNzPSJmb25kbyIgb25jbGljaz0iamF2YXNjcmlwdDpiYXJyZV9kZW1hbmRlX2xpZW4oJ1snLCAnLT4nLCAnXScsIGxpZW5fbm9tLnZhbHVlLCBsaWVuX2J1bGxlLnZhbHVlLCBsaWVuX2xhbmd1ZS52YWx1ZSxkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaW5wdXQtMS10ZXh0ZV8xJykpOyIgLz4gDQo8L3RkPjwvdHI+PC90YWJsZT4NCjxkaXYgc3R5bGU9J2NsZWFyOiBib3RoOyc+PC9kaXY+PC9kaXY+PGRpdiBpZD0nTGF5ZXIxMicgc3R5bGU9J2Rpc3BsYXk6bm9uZTsnID4NCjx0YWJsZSBjbGFzcz0ic3BpcF9iYXJyZSIgc3R5bGU9IndpZHRoOiBhdXRvOyBwYWRkaW5nOiAxcHghaW1wb3J0YW50OyBib3JkZXItdG9wOiAwcHg7IiBzdW1tYXJ5PSIiPg0KICA8dHI+DQogICAgPHRkIHN0eWxlPSJ3aWR0aDphdXRvOyB0ZXh0LWFsaWduOmNlbnRlcjsiPjxzdHJvbmc+R2VzdGlvbiBkZXMgYW5jcmVzPC9zdHJvbmc+PC90ZD4NCiAgICA8dGQgc3R5bGU9IndpZHRoOmF1dG87Ij48c3Ryb25nPlRyYW5zZm9ybWVyIGVuIGFuY3JlPC9zdHJvbmc+PGJyIC8+DQogICAgPGxhYmVsIGZvcj0iYW5jcmVfbm9tIj48aT5Ob20gZGUgbCdhbmNyZTwvaT48L2xhYmVsPiA8YnIgLz4NCiAgICAgIDxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJhbmNyZV9ub20iIGlkPSJhbmNyZV9ub20iIC8+DQoJICANCgk8aW5wdXQgdHlwZT0iYnV0dG9uIiB2YWx1ZT0iT0siIGNsYXNzPSJmb25kbyIgb25jbGljaz0iamF2YXNjcmlwdDpiYXJyZV9hbmNyZSgnWycsICc8LScsICddJywgYW5jcmVfbm9tLnZhbHVlLCBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaW5wdXQtMS10ZXh0ZV8xJykpOyIgLz4NCiAgICA8L3RkPg0KCTx0ZCBzdHlsZT0id2lkdGg6YXV0bzsiPjxzdHJvbmc+UG9pbnRlciB2ZXJzIHVuZSBhbmNyZTwvc3Ryb25nPjxiciAvPg0KICAgIDxsYWJlbCBmb3I9ImFuY3JlX2NpYmxlIj48aT5BbmNyZSBjaWJsZTwvaT48L2xhYmVsPiA8aW5wdXQgdHlwZT0idGV4dCIgbmFtZT0iYW5jcmVfY2libGUiIGlkPSJhbmNyZV9jaWJsZSIgLz48YnIgLz4NCgk8bGFiZWwgZm9yPSJhbmNyZV9idWxsZSI+PGk+QnVsbGUgZCdhaWRlIGFuY3JlPC9pPjwvbGFiZWw+IDxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJhbmNyZV9idWxsZSIgaWQ9ImFuY3JlX2J1bGxlIiAvPg0KCTxpbnB1dCB0eXBlPSJidXR0b24iIHZhbHVlPSJPSyIgY2xhc3M9ImZvbmRvIiBvbmNsaWNrPSJqYXZhc2NyaXB0OmJhcnJlX2RlbWFuZGUoJ1snLCAnLT4jJywgJ10nLCBhbmNyZV9jaWJsZS52YWx1ZSwgYW5jcmVfYnVsbGUudmFsdWUsIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdpbnB1dC0xLXRleHRlXzEnKSk7IiAvPiANCjwvdGQ+DQogIDwvdHI+IA0KPC90YWJsZT48ZGl2IHN0eWxlPSdjbGVhcjogYm90aDsnPjwvZGl2PjwvZGl2PjxkaXYgaWQ9J0xheWVyMTMnIHN0eWxlPSdkaXNwbGF5Om5vbmU7JyA+DQo8dGFibGUgY2xhc3M9InNwaXBfYmFycmUiIHN0eWxlPSJ3aWR0aDogYXV0bzsgcGFkZGluZzogMXB4IWltcG9ydGFudDsgYm9yZGVyLXRvcDogMHB4OyIgc3VtbWFyeT0iIj4NCiAgPHRyIGNsYXNzPSJzcGlwX2JhcnJlIj4NCiAgICA8dGQgc3R5bGU9IndpZHRoOjMwJTsiPkNhcmFjdCZlZ3JhdmU7cmVzIHNwJmVhY3V0ZTtjaWF1eDwvdGQ+DQogICAgPHRkPjxhIGhyZWY9ImphdmFzY3JpcHQ6YmFycmVfcmFjY291cmNpKCdcdTAwYWJ+Jywnflx1MDBiYicsZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2lucHV0LTEtdGV4dGVfMScpKSIKIGNsYXNzPSdzcGlwX2JhcnJlJyB0YWJpbmRleD0nMTAwMCcgdGl0bGU9IkVudG91cmVyIGRlICZsYXF1bzsgZ3VpbGxlbWV0cyAmcmFxdW87Ij48aW1nIHNyYz0naW1nX3BhY2svaWNvbmVzX2JhcnJlL2d1aWxsZW1ldHMucG5nJyBoZWlnaHQ9JzE2JyB3aWR0aD0nMTYnIGFsdD0iRW50b3VyZXIgZGUgJmxhcXVvOyBndWlsbGVtZXRzICZyYXF1bzsiIC8+PC9hPjxhIGhyZWY9ImphdmFzY3JpcHQ6YmFycmVfcmFjY291cmNpKCdcdTAwOTMnLCdcdTAwOTQnLGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdpbnB1dC0xLXRleHRlXzEnKSkiCiBjbGFzcz0nc3BpcF9iYXJyZScgdGFiaW5kZXg9JzEwMDAnIHRpdGxlPSJFbnRvdXJlciBkZSAmbGRxdW87Z3VpbGxlbWV0cyBkZSBzZWNvbmQgbml2ZWF1JnJkcXVvOyI+PGltZyBzcmM9J2ltZ19wYWNrL2ljb25lc19iYXJyZS9ndWlsbGVtZXRzLXNpbXBsZXMucG5nJyBoZWlnaHQ9JzE2JyB3aWR0aD0nMTYnIGFsdD0iRW50b3VyZXIgZGUgJmxkcXVvO2d1aWxsZW1ldHMgZGUgc2Vjb25kIG5pdmVhdSZyZHF1bzsiIC8+PC9hPjxhIGhyZWY9ImphdmFzY3JpcHQ6YmFycmVfaW5zZXJlcignXHUwMGMwJyxkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaW5wdXQtMS10ZXh0ZV8xJykpIgogY2xhc3M9J3NwaXBfYmFycmUnIHRhYmluZGV4PScxMDAwJyB0aXRsZT0iSW5zJmVhY3V0ZTtyZXIgdW4gQSBhY2NlbnQgZ3JhdmUgbWFqdXNjdWxlIj48aW1nIHNyYz0naW1nX3BhY2svaWNvbmVzX2JhcnJlL2FncmF2ZS1tYWoucG5nJyBoZWlnaHQ9JzE2JyB3aWR0aD0nMTYnIGFsdD0iSW5zJmVhY3V0ZTtyZXIgdW4gQSBhY2NlbnQgZ3JhdmUgbWFqdXNjdWxlIiAvPjwvYT48YSBocmVmPSJqYXZhc2NyaXB0OmJhcnJlX2luc2VyZXIoJ1x1MDBjOScsZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2lucHV0LTEtdGV4dGVfMScpKSIKIGNsYXNzPSdzcGlwX2JhcnJlJyB0YWJpbmRleD0nMTAwMCcgdGl0bGU9IklucyZlYWN1dGU7cmVyIHVuIEUgYWNjZW50IGFpZ3UgbWFqdXNjdWxlIj48aW1nIHNyYz0naW1nX3BhY2svaWNvbmVzX2JhcnJlL2VhY3V0ZS1tYWoucG5nJyBoZWlnaHQ9JzE2JyB3aWR0aD0nMTYnIGFsdD0iSW5zJmVhY3V0ZTtyZXIgdW4gRSBhY2NlbnQgYWlndSBtYWp1c2N1bGUiIC8+PC9hPjxhIGhyZWY9ImphdmFzY3JpcHQ6YmFycmVfaW5zZXJlcignXHUwMGM4Jyxkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaW5wdXQtMS10ZXh0ZV8xJykpIgogY2xhc3M9J3NwaXBfYmFycmUnIHRhYmluZGV4PScxMDAwJyB0aXRsZT0iSW5zJmVhY3V0ZTtyZXIgdW4gRSBtYWp1c2N1bGUgYWNjZW50IGdyYXZlIj48aW1nIHNyYz0nLi4vcGx1Z2lucy9mb25jdGlvbm5hbGl0ZXMvYmFycmVfdHlwb19lY29sb2dpcXVlL2ltZ19wYWNrL2ljb25lc19iYXJyZS9lYWdyYXZlLW1hai5wbmcnIGhlaWdodD0nMTYnIHdpZHRoPScxNicgYWx0PSJJbnMmZWFjdXRlO3JlciB1biBFIG1hanVzY3VsZSBhY2NlbnQgZ3JhdmUiIC8+PC9hPjxhIGhyZWY9ImphdmFzY3JpcHQ6YmFycmVfaW5zZXJlcignXHUwMGU2Jyxkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaW5wdXQtMS10ZXh0ZV8xJykpIgogY2xhc3M9J3NwaXBfYmFycmUnIHRhYmluZGV4PScxMDAwJyB0aXRsZT0iSW5zJmVhY3V0ZTtyZXIgdW4gRSBkYW5zIGwnQSI+PGltZyBzcmM9Jy4uL3BsdWdpbnMvZm9uY3Rpb25uYWxpdGVzL2JhcnJlX3R5cG9fZWNvbG9naXF1ZS9pbWdfcGFjay9pY29uZXNfYmFycmUvYWVsaWcucG5nJyBoZWlnaHQ9JzE2JyB3aWR0aD0nMTYnIGFsdD0iSW5zJmVhY3V0ZTtyZXIgdW4gRSBkYW5zIGwnQSIgLz48L2E+PGEgaHJlZj0iamF2YXNjcmlwdDpiYXJyZV9pbnNlcmVyKCdcdTAwYzYnLGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdpbnB1dC0xLXRleHRlXzEnKSkiCiBjbGFzcz0nc3BpcF9iYXJyZScgdGFiaW5kZXg9JzEwMDAnIHRpdGxlPSJJbnMmZWFjdXRlO3JlciB1biBFIGRhbnMgbCdBIG1hanVzY3VsZSI+PGltZyBzcmM9Jy4uL3BsdWdpbnMvZm9uY3Rpb25uYWxpdGVzL2JhcnJlX3R5cG9fZWNvbG9naXF1ZS9pbWdfcGFjay9pY29uZXNfYmFycmUvYWVsaWctbWFqLnBuZycgaGVpZ2h0PScxNicgd2lkdGg9JzE2JyBhbHQ9IklucyZlYWN1dGU7cmVyIHVuIEUgZGFucyBsJ0EgbWFqdXNjdWxlIiAvPjwvYT48YSBocmVmPSJqYXZhc2NyaXB0OmJhcnJlX2luc2VyZXIoJyZvZWxpZzsnLGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdpbnB1dC0xLXRleHRlXzEnKSkiCiBjbGFzcz0nc3BpcF9iYXJyZScgdGFiaW5kZXg9JzEwMDAnIHRpdGxlPSJJbnMmZWFjdXRlO3JlciB1biBFIGRhbnMgbCdPIj48aW1nIHNyYz0naW1nX3BhY2svaWNvbmVzX2JhcnJlL29lbGlnLnBuZycgaGVpZ2h0PScxNicgd2lkdGg9JzE2JyBhbHQ9IklucyZlYWN1dGU7cmVyIHVuIEUgZGFucyBsJ08iIC8+PC9hPjxhIGhyZWY9ImphdmFzY3JpcHQ6YmFycmVfaW5zZXJlcignJk9FbGlnOycsZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2lucHV0LTEtdGV4dGVfMScpKSIKIGNsYXNzPSdzcGlwX2JhcnJlJyB0YWJpbmRleD0nMTAwMCcgdGl0bGU9IklucyZlYWN1dGU7cmVyIHVuIEUgZGFucyBsJ08gbWFqdXNjdWxlIj48aW1nIHNyYz0naW1nX3BhY2svaWNvbmVzX2JhcnJlL29lbGlnLW1hai5wbmcnIGhlaWdodD0nMTYnIHdpZHRoPScxNicgYWx0PSJJbnMmZWFjdXRlO3JlciB1biBFIGRhbnMgbCdPIG1hanVzY3VsZSIgLz48L2E+PGEgaHJlZj0iamF2YXNjcmlwdDpiYXJyZV9pbnNlcmVyKCdcdTAwYzcnLGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdpbnB1dC0xLXRleHRlXzEnKSkiCiBjbGFzcz0nc3BpcF9iYXJyZScgdGFiaW5kZXg9JzEwMDAnIHRpdGxlPSJJbnMmZWFjdXRlO3JlciB1biBDIGMmZWFjdXRlO2RpbGxlIG1hanVzY3VsZSI+PGltZyBzcmM9Jy4uL3BsdWdpbnMvZm9uY3Rpb25uYWxpdGVzL2JhcnJlX3R5cG9fZWNvbG9naXF1ZS9pbWdfcGFjay9pY29uZXNfYmFycmUvY2NlZGlsLW1hai5wbmcnIGhlaWdodD0nMTYnIHdpZHRoPScxNicgYWx0PSJJbnMmZWFjdXRlO3JlciB1biBDIGMmZWFjdXRlO2RpbGxlIG1hanVzY3VsZSIgLz48L2E+PGEgaHJlZj0iamF2YXNjcmlwdDpiYXJyZV9pbnNlcmVyKCcmZXVybzsnLGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdpbnB1dC0xLXRleHRlXzEnKSkiCiBjbGFzcz0nc3BpcF9iYXJyZScgdGFiaW5kZXg9JzEwMDAnIHRpdGxlPSJJbnMmZWFjdXRlO3JlciBsZSBzeW1ib2xlICZldXJvOyI+PGltZyBzcmM9J2ltZ19wYWNrL2ljb25lc19iYXJyZS9ldXJvLnBuZycgaGVpZ2h0PScxNicgd2lkdGg9JzE2JyBhbHQ9IklucyZlYWN1dGU7cmVyIGxlIHN5bWJvbGUgJmV1cm87IiAvPjwvYT4mbmJzcDsNCiAgICA8L3RkPg0KICA8L3RyPiANCjwvdGFibGU+DQo8ZGl2IHN0eWxlPSdjbGVhcjogYm90aDsnPjwvZGl2PjwvZGl2PjxkaXYgaWQ9J0xheWVyMTQnIHN0eWxlPSdkaXNwbGF5Om5vbmU7JyA+DQo8dGFibGUgY2xhc3M9InNwaXBfYmFycmUiIHN0eWxlPSJ3aWR0aDogYXV0bzsgcGFkZGluZzogMXB4IWltcG9ydGFudDsgYm9yZGVyLXRvcDogMHB4OyIgc3VtbWFyeT0iIj4NCjx0cj48dGQgc3R5bGU9IndpZHRoOiAyNSU7Ij5DaGVyY2hlcjxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJiYXJyZV9jaGVyY2hlciIgdmFsdWU9IiIgc2l6ZT0iMTIiIG1heGxlbmd0aD0iMjU1IiAvPjwvdGQ+PHRkIHN0eWxlPSJ3aWR0aDogMjAlOyI+DQo8aW5wdXQgdHlwZT0iY2hlY2tib3giIG5hbWU9InJlY19jYXNlIiB2YWx1ZT0ieWVzIiAvPlJlc3BlY3RlciBsYSBjYXNzZTxiciAvPjxpbnB1dCB0eXBlPSJjaGVja2JveCIgbmFtZT0icmVjX2VudGllciIgdmFsdWU9InllcyIgLz4NCk1vdCBlbnRpZXINCjwvdGQ+PHRkICBzdHlsZT0id2lkdGg6IDI1JTsiPlJlbXBsYWNlcjxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJiYXJyZV9yZW1wbGFjZXIiIHZhbHVlPSIiIHNpemU9IjEyIiBtYXhsZW5ndGg9IjI1NSIgLz4gDQo8L3RkPjx0ZCBzdHlsZT0id2lkdGg6IDIwJTsiPg0KPGlucHV0IHR5cGU9ImNoZWNrYm94IiBuYW1lPSJyZWNfdG91dCIgdmFsdWU9InllcyIgLz5Ub3V0IHJlbXBsYWNlcjwvdGQ+PHRkIHN0eWxlPSJ3aWR0aDogMTAlOyI+DQogICA8aW5wdXQgdHlwZT0iYnV0dG9uIiB2YWx1ZT0iT0siIGNsYXNzPSJmb25kbyINCiAgb25jbGljaz0iamF2YXNjcmlwdDpiYXJyZV9zZWFyY2hyZXBsYWNlKGRvY3VtZW50LmZvcm11bGFpcmUuYmFycmVfY2hlcmNoZXIudmFsdWUsIGRvY3VtZW50LmZvcm11bGFpcmUuYmFycmVfcmVtcGxhY2VyLnZhbHVlLCBkb2N1bWVudC5mb3JtdWxhaXJlLnJlY190b3V0LmNoZWNrZWQsIGRvY3VtZW50LmZvcm11bGFpcmUucmVjX2Nhc2UuY2hlY2tlZCwgZG9jdW1lbnQuZm9ybXVsYWlyZS5yZWNfZW50aWVyLmNoZWNrZWQsZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2lucHV0LTEtdGV4dGVfMScpKTsiIC8+IA0KPC90ZD48L3RyPjwvdGFibGU+PGRpdiBzdHlsZT0nY2xlYXI6IGJvdGg7Jz48L2Rpdj48L2Rpdj4KCTx0ZXh0YXJlYSBuYW1lPSd0ZXh0ZV8xJyByb3dzPScxMCcgY2xhc3M9J2Zvcm1vICAgJyBjb2xzPSc4MCcKCWlkPSdpbnB1dC0xLXRleHRlXzEnCglvbnNlbGVjdD0nc3RvcmVDYXJldCh0aGlzKTsnCglvbmNsaWNrPSdzdG9yZUNhcmV0KHRoaXMpOycKCW9ua2V5dXA9J3N0b3JlQ2FyZXQodGhpcyk7JwoJb25kYmxjbGljaz0nc3RvcmVDYXJldCh0aGlzKTsnPjwvdGV4dGFyZWE+CgkJCQkKCQkJCQoJCQkJCgkJCQkKCQkJCQoJCQkJCgkJCQkKCQkJCQoJCQkJCgkJCQk8c3BhbiBjbGFzcz0nbmV0dG95ZXVyJz4gPC9zcGFuPgoJCQkKCQk8L2Rpdj4KCQoKCgogCgkgCgkJCgkJCgkKCSAKCQk8ZGl2IGNsYXNzPSdzcGlwX2Zvcm1fY2hhbXAgdGV4dGVfMic+CgkJCQoJCQkgCgkJCQk8c3BhbiBjbGFzcz0nc3BpcF9mb3JtX2xhYmVsJz4KCQkJCQkgPGxhYmVsIGZvcj0iaW5wdXQtMS10ZXh0ZV8yIj5Wb3RyZSBRdWVzdGlvbjwvbGFiZWw+CgkJCQkJCgkJCQkJPHNwYW4gY2xhc3M9J3NwaXBfZm9ybV9sYWJlbF9vYmxpZ2F0b2lyZSc+CgkJCQkJCVtPYmxpZ2F0b2lyZV08L3NwYW4+CgkJCQkJOgoJCQkJPC9zcGFuPgoJCQkJCgkJCQkKCQkJCQoJCQkJCgkJCQkgIDx0YWJsZSBjbGFzcz0nc3BpcF9iYXJyZScgc3R5bGU9J3dpZHRoOmF1dG87JyBjZWxscGFkZGluZz0nMCcgY2VsbHNwYWNpbmc9JzAnIGJvcmRlcj0nMCcgc3VtbWFyeT0nJz4KPHRyIHN0eWxlPSd3aWR0aDogYXV0bzsnIGNsYXNzPSdzcGlwX2JhcnJlJz4KPHRkIHN0eWxlPSd0ZXh0LWFsaWduOiBsZWZ0OycgdmFsaWduPSdtaWRkbGUnPjxhIGhyZWY9ImphdmFzY3JpcHQ6YmFycmVfcmFjY291cmNpKCd7JywnfScsZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2lucHV0LTEtdGV4dGVfMicpKSIKIGNsYXNzPSdzcGlwX2JhcnJlJyB0YWJpbmRleD0nMTAwMCcgdGl0bGU9Ik1ldHRyZSBlbiB7aXRhbGlxdWV9Ij48aW1nIHNyYz0naW1nX3BhY2svaWNvbmVzX2JhcnJlL2l0YWxpcXVlLnBuZycgaGVpZ2h0PScxNicgd2lkdGg9JzE2JyBhbHQ9Ik1ldHRyZSBlbiB7aXRhbGlxdWV9IiAvPjwvYT48YSBocmVmPSJqYXZhc2NyaXB0OmJhcnJlX3JhY2NvdXJjaSgne3snLCd9fScsZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2lucHV0LTEtdGV4dGVfMicpKSIKIGNsYXNzPSdzcGlwX2JhcnJlJyB0YWJpbmRleD0nMTAwMCcgdGl0bGU9Ik1ldHRyZSBlbiB7e2dyYXN9fSI+PGltZyBzcmM9J2ltZ19wYWNrL2ljb25lc19iYXJyZS9ncmFzLnBuZycgaGVpZ2h0PScxNicgd2lkdGg9JzE2JyBhbHQ9Ik1ldHRyZSBlbiB7e2dyYXN9fSIgLz48L2E+PGEgaHJlZj0iamF2YXNjcmlwdDpiYXJyZV9yYWNjb3VyY2koJ1sqJywnKl0nLGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdpbnB1dC0xLXRleHRlXzInKSkiCiBjbGFzcz0nc3BpcF9iYXJyZScgdGFiaW5kZXg9JzEwMDAnIHRpdGxlPSJNZXR0cmUgbGUgdGV4dGUgZW4gWyomZWFjdXRlO3ZpZGVuY2UqXSI+PGltZyBzcmM9Jy4uL3BsdWdpbnMvZm9uY3Rpb25uYWxpdGVzL2JhcnJlX3R5cG9fZWNvbG9naXF1ZS9pbWdfcGFjay9pY29uZXNfYmFycmUvbWlzZWVuZXZpZGVuY2UucG5nJyBoZWlnaHQ9JzE2JyB3aWR0aD0nMTYnIGFsdD0iTWV0dHJlIGxlIHRleHRlIGVuIFsqJmVhY3V0ZTt2aWRlbmNlKl0iIC8+PC9hPjxhIGhyZWY9ImphdmFzY3JpcHQ6YmFycmVfcmFjY291cmNpKCclM0NzdXAlM0UnLCclM0Mvc3VwJTNFJyxkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaW5wdXQtMS10ZXh0ZV8yJykpIgogY2xhc3M9J3NwaXBfYmFycmUnIHRhYmluZGV4PScxMDAwJyB0aXRsZT0iTWV0dHJlIGxlIHRleHRlIGVuICZsdDtzdXAmZ3Q7ZXhwb3NhbnQmbHQ7L3N1cCZndDsiPjxpbWcgc3JjPScuLi9wbHVnaW5zL2ZvbmN0aW9ubmFsaXRlcy9iYXJyZV90eXBvX2Vjb2xvZ2lxdWUvaW1nX3BhY2svaWNvbmVzX2JhcnJlL2V4cG9zYW50LnBuZycgaGVpZ2h0PScxNicgd2lkdGg9JzE2JyBhbHQ9Ik1ldHRyZSBsZSB0ZXh0ZSBlbiAmbHQ7c3VwJmd0O2V4cG9zYW50Jmx0Oy9zdXAmZ3Q7IiAvPjwvYT48YSBocmVmPSJqYXZhc2NyaXB0OmJhcnJlX3JhY2NvdXJjaSgnJTNDc2MlM0UnLCclM0Mvc2MlM0UnLGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdpbnB1dC0xLXRleHRlXzInKSkiCiBjbGFzcz0nc3BpcF9iYXJyZScgdGFiaW5kZXg9JzEwMDAnIHRpdGxlPSJNZXR0cmUgbGUgdGV4dGUgZW4gJmx0O3NjJmd0O3BldGl0ZXMgY2FwaXRhbGVzJmx0Oy9zYyZndDsiPjxpbWcgc3JjPScuLi9wbHVnaW5zL2ZvbmN0aW9ubmFsaXRlcy9iYXJyZV90eXBvX2Vjb2xvZ2lxdWUvaW1nX3BhY2svaWNvbmVzX2JhcnJlL3BldGl0ZXNjYXBpdGFsZXMucG5nJyBoZWlnaHQ9JzE2JyB3aWR0aD0nMTYnIGFsdD0iTWV0dHJlIGxlIHRleHRlIGVuICZsdDtzYyZndDtwZXRpdGVzIGNhcGl0YWxlcyZsdDsvc2MmZ3Q7IiAvPjwvYT4mbmJzcDs8L3RkPgo8dGQ+PGEgaHJlZj0iamF2YXNjcmlwdDpzd2FwX2NvdWNoZSgnMTYnLCcnKTsiCiBjbGFzcz0nc3BpcF9iYXJyZScgdGFiaW5kZXg9JzEwMDAnIHRpdGxlPSJUcmFuc2Zvcm1lciBlbiBbbGllbiBoeXBlcnRleHRlLT5odHRwOi8vLi4uXSI+PGltZyBzcmM9J2ltZ19wYWNrL2ljb25lc19iYXJyZS9saWVuLnBuZycgaGVpZ2h0PScxNicgd2lkdGg9JzE2JyBhbHQ9IlRyYW5zZm9ybWVyIGVuIFtsaWVuIGh5cGVydGV4dGUtPmh0dHA6Ly8uLi5dIiAvPjwvYT4mbmJzcDs8L3RkPgo8dGQ+PGEgaHJlZj0iamF2YXNjcmlwdDpiYXJyZV9yYWNjb3VyY2koJyU1Q24lNUNuJTNDcXVvdGUlM0UnLCclM0MvcXVvdGUlM0UlNUNuJTVDbicsZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2lucHV0LTEtdGV4dGVfMicpKSIKIGNsYXNzPSdzcGlwX2JhcnJlJyB0YWJpbmRleD0nMTAwMCcgdGl0bGU9IkNpdGVyIHVuIG1lc3NhZ2UiPjxpbWcgc3JjPSdpbWdfcGFjay9pY29uZXNfYmFycmUvcXVvdGUucG5nJyBoZWlnaHQ9JzE2JyB3aWR0aD0nMTYnIGFsdD0iQ2l0ZXIgdW4gbWVzc2FnZSIgLz48L2E+PGEgaHJlZj0iamF2YXNjcmlwdDpiYXJyZV9yYWNjb3VyY2koJ1s/JywnXScsZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2lucHV0LTEtdGV4dGVfMicpKSIKIGNsYXNzPSdzcGlwX2JhcnJlJyB0YWJpbmRleD0nMTAwMCcgdGl0bGU9IkVudHImZWFjdXRlO2UgZHUgWz9nbG9zc2FpcmVdIChXaWtpcGVkaWEpIj48aW1nIHNyYz0nLi4vcGx1Z2lucy9mb25jdGlvbm5hbGl0ZXMvYmFycmVfdHlwb19lY29sb2dpcXVlL2ltZ19wYWNrL2ljb25lc19iYXJyZS9iYXJyZS13aWtpLnBuZycgaGVpZ2h0PScxNicgd2lkdGg9JzE2JyBhbHQ9IkVudHImZWFjdXRlO2UgZHUgWz9nbG9zc2FpcmVdIChXaWtpcGVkaWEpIiAvPjwvYT48YSBocmVmPSJqYXZhc2NyaXB0OnN3YXBfY291Y2hlKCcxNScsJycpOyIKIGNsYXNzPSdzcGlwX2JhcnJlJyB0YWJpbmRleD0nMTAwMCcgdGl0bGU9IklucyZlYWN1dGU7cmVyIHVuIHRhYmxlYXUiPjxpbWcgc3JjPScuLi9wbHVnaW5zL2ZvbmN0aW9ubmFsaXRlcy9iYXJyZV90eXBvX2Vjb2xvZ2lxdWUvaW1nX3BhY2svaWNvbmVzX2JhcnJlL2JhcnJlLXRhYmxlYXUucG5nJyBoZWlnaHQ9JzE2JyB3aWR0aD0nMTYnIGFsdD0iSW5zJmVhY3V0ZTtyZXIgdW4gdGFibGVhdSIgLz48L2E+Jm5ic3A8L3RkPgo8dGQ+PGEgaHJlZj0iamF2YXNjcmlwdDpzd2FwX2NvdWNoZSgnMTknLCcnKTsiCiBjbGFzcz0nc3BpcF9iYXJyZScgdGFiaW5kZXg9JzEwMDAnIHRpdGxlPSJDaGVyY2hlciBSZW1wbGFjZXIiPjxpbWcgc3JjPScuLi9wbHVnaW5zL2ZvbmN0aW9ubmFsaXRlcy9iYXJyZV90eXBvX2Vjb2xvZ2lxdWUvaW1nX3BhY2svaWNvbmVzX2JhcnJlL2NoZXJjaGVyX3JlbXBsYWNlci5wbmcnIGhlaWdodD0nMTYnIHdpZHRoPScxNicgYWx0PSJDaGVyY2hlciBSZW1wbGFjZXIiIC8+PC9hPjxhIGhyZWY9ImphdmFzY3JpcHQ6c3dhcF9jb3VjaGUoJzE3JywnJyk7IgogY2xhc3M9J3NwaXBfYmFycmUnIHRhYmluZGV4PScxMDAwJyB0aXRsZT0iR2VzdGlvbiBkZXMgYW5jcmVzIj48aW1nIHNyYz0nLi4vcGx1Z2lucy9mb25jdGlvbm5hbGl0ZXMvYmFycmVfdHlwb19lY29sb2dpcXVlL2ltZ19wYWNrL2ljb25lc19iYXJyZS9hbmNyZS5wbmcnIGhlaWdodD0nMTYnIHdpZHRoPScxNicgYWx0PSJHZXN0aW9uIGRlcyBhbmNyZXMiIC8+PC9hPiZuYnNwOzwvdGQ+Cjx0ZCBzdHlsZT0ndGV4dC1hbGlnbjpsZWZ0OycgdmFsaWduPSdtaWRkbGUnPjxhIGhyZWY9ImphdmFzY3JpcHQ6c3dhcF9jb3VjaGUoJzE4JywnJyk7IgogY2xhc3M9J3NwaXBfYmFycmUnIHRhYmluZGV4PScxMDAwJyB0aXRsZT0iQ2FyYWN0JmVncmF2ZTtyZXMgc3AmZWFjdXRlO2NpYXV4Ij48aW1nIHNyYz0nLi4vcGx1Z2lucy9mb25jdGlvbm5hbGl0ZXMvYmFycmVfdHlwb19lY29sb2dpcXVlL2ltZ19wYWNrL2ljb25lc19iYXJyZS9jbGF2aWVyLnBuZycgaGVpZ2h0PScxNicgd2lkdGg9JzE2JyBhbHQ9IkNhcmFjdCZlZ3JhdmU7cmVzIHNwJmVhY3V0ZTtjaWF1eCIgLz48L2E+Jm5ic3A7PC90ZD4KPHRkIHN0eWxlPSd0ZXh0LWFsaWduOnJpZ2h0OycgdmFsaWduPSdtaWRkbGUnPiZuYnNwOyZuYnNwOzxhIGNsYXNzPSdhaWRlJyBocmVmPSdodHRwOi8vcHJlcHJvZC5ub3RyZS12aWxsZS5uZXQvfnN0c2ViL2VjcmlyZS8/ZXhlYz1haWRlX2luZGV4JmFtcDthaWRlPXJhY2NvdXJjaXMmYW1wO3Zhcl9sYW5nPWZyJyB0YXJnZXQ9InNwaXBfYWlkZSIgb25jbGljaz0iamF2YXNjcmlwdDp3aW5kb3cub3Blbih0aGlzLmhyZWYsJ3NwaXBfYWlkZScsICdzY3JvbGxiYXJzPXllcywgcmVzaXphYmxlPXllcywgd2lkdGg9NzQwLCBoZWlnaHQ9NTgwJyk7IHJldHVybiBmYWxzZTsiPjxpbWcgc3JjPSdpbWdfcGFjay9haWRlLmdpZicKYWx0PSJBSURFIiB0aXRsZT0iRGUgbCdhaWRlIHN1ciBjZXQgJmVhY3V0ZTtsJmVhY3V0ZTttZW50IiB3aWR0aD0iMTIiIGhlaWdodD0iMTIiIGFsaWduPSJtaWRkbGUiIC8+PC9hPiZuYnNwOzwvdGQ+PC90cj48L3RhYmxlPjxkaXYgaWQ9J0xheWVyMTUnIHN0eWxlPSdkaXNwbGF5Om5vbmU7JyA+PHRhYmxlIGNsYXNzPSJzcGlwX2JhcnJlIiBzdHlsZT0id2lkdGg6IGF1dG87IHBhZGRpbmc6IDFweCFpbXBvcnRhbnQ7IGJvcmRlci10b3A6IDBweDsiIHN1bW1hcnk9IiI+DQo8dHI+PHRkPg0KTmIgY29sb25uZXM6IDxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJiYXJyZV9uYmNvbG9uZXMiIHN0eWxlPSJ3aWR0aDogMzBweDsiIHZhbHVlPSIyIiBzaXplPSIyIiBtYXhsZW5ndGg9IjIiICAgLz48L3RkPjx0ZD4NCk5iIGxpZ25lczogPGlucHV0IHR5cGU9InRleHQiIG5hbWU9ImJhcnJlX25icmFuZ3MiIHN0eWxlPSJ3aWR0aDogMzBweDsiIHZhbHVlPSIyIiBzaXplPSIyIiBtYXhsZW5ndGg9IjIiIC8+PC90ZD48dGQ+DQo8aW5wdXQgdHlwZT0iY2hlY2tib3giIG5hbWU9ImJhcnJlX2RvZW50ZXRlIiB2YWx1ZT0iLTEiIGNoZWNrZWQ9ImNoZWNrZWQiIC8+IEVudGV0ZTwvdGQ+PHRkPg0KPGlucHV0IHR5cGU9ImNoZWNrYm94IiBuYW1lPSJiYXJyZV9kb2NhcHRpb24iIHZhbHVlPSItMSIgY2hlY2tlZD0iY2hlY2tlZCIgLz4gQ2FwdGlvbiBldCBSJmVhY3V0ZTtzdW0mZWFjdXRlOzwvdGQ+PHRkPg0KICA8aW5wdXQgdHlwZT0iYnV0dG9uIiB2YWx1ZT0iT0siIGNsYXNzPSJmb25kbyIgb25jbGljaz0iamF2YXNjcmlwdDoNCiAgICBiYXJyZV9uYmNvbG9uZXMudmFsdWUgPSBNYXRoLmFicyhiYXJyZV9uYmNvbG9uZXMudmFsdWUpOyBiYXJyZV9uYnJhbmdzLnZhbHVlDQogICAgPSBNYXRoLmFicyhiYXJyZV9uYnJhbmdzLnZhbHVlKTsNCiAgICBpZiAoIShiYXJyZV9uYmNvbG9uZXMudmFsdWUgPT0gMCB8fCBiYXJyZV9uYnJhbmdzLnZhbHVlID09IDApKSB7DQogICAgYmFycmVfdGFibGVhdShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaW5wdXQtMS10ZXh0ZV8yJyksIGJhcnJlX25iY29sb25lcy52YWx1ZSwgYmFycmVfbmJyYW5ncy52YWx1ZSwNCiAgICBiYXJyZV9kb2VudGV0ZS5jaGVja2VkLCBiYXJyZV9kb2NhcHRpb24uY2hlY2tlZCk7IH0gIiAvPiANCjwvdGQ+PC90cj48L3RhYmxlPg0KPGRpdiBzdHlsZT0nY2xlYXI6IGJvdGg7Jz48L2Rpdj48L2Rpdj48ZGl2IGlkPSdMYXllcjE2JyBzdHlsZT0nZGlzcGxheTpub25lOycgPg0KIDx0YWJsZSBjbGFzcz0ic3BpcF9iYXJyZSIgc3R5bGU9IndpZHRoOiBhdXRvOyBwYWRkaW5nOiAxcHghaW1wb3J0YW50OyBib3JkZXItdG9wOiAwcHg7IiBzdW1tYXJ5PSIiPg0KPHRyPjx0ZD4gDQpBZHJlc3NlJm5ic3A7OiA8aW5wdXQgdHlwZT0idGV4dCIgbmFtZT0ibGllbl9ub20iIHZhbHVlPSJodHRwOi8vIiBzaXplPSIyMSIgbWF4bGVuZ3RoPSIyNTUiIC8+PGJyIC8+DQpCdWxsZSBkJ2FpZGUmbmJzcDs6IDxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJsaWVuX2J1bGxlIiB2YWx1ZT0iIiBzaXplPSIyMSIgbWF4bGVuZ3RoPSIyNTUiIC8+DQo8L3RkPjx0ZD4NCkxhbmd1ZSBhYnImZWFjdXRlO2cmZWFjdXRlO2UmbmJzcDs6IDxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJsaWVuX2xhbmd1ZSIgdmFsdWU9IiIgc2l6ZT0iMTAiIG1heGxlbmd0aD0iMTAiIC8+DQo8L3RkPjx0ZD4NCiAgPGlucHV0IHR5cGU9ImJ1dHRvbiIgdmFsdWU9Ik9LIiBjbGFzcz0iZm9uZG8iIG9uY2xpY2s9ImphdmFzY3JpcHQ6YmFycmVfZGVtYW5kZV9saWVuKCdbJywgJy0+JywgJ10nLCBsaWVuX25vbS52YWx1ZSwgbGllbl9idWxsZS52YWx1ZSwgbGllbl9sYW5ndWUudmFsdWUsZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2lucHV0LTEtdGV4dGVfMicpKTsiIC8+IA0KPC90ZD48L3RyPjwvdGFibGU+DQo8ZGl2IHN0eWxlPSdjbGVhcjogYm90aDsnPjwvZGl2PjwvZGl2PjxkaXYgaWQ9J0xheWVyMTcnIHN0eWxlPSdkaXNwbGF5Om5vbmU7JyA+DQo8dGFibGUgY2xhc3M9InNwaXBfYmFycmUiIHN0eWxlPSJ3aWR0aDogYXV0bzsgcGFkZGluZzogMXB4IWltcG9ydGFudDsgYm9yZGVyLXRvcDogMHB4OyIgc3VtbWFyeT0iIj4NCiAgPHRyPg0KICAgIDx0ZCBzdHlsZT0id2lkdGg6YXV0bzsgdGV4dC1hbGlnbjpjZW50ZXI7Ij48c3Ryb25nPkdlc3Rpb24gZGVzIGFuY3Jlczwvc3Ryb25nPjwvdGQ+DQogICAgPHRkIHN0eWxlPSJ3aWR0aDphdXRvOyI+PHN0cm9uZz5UcmFuc2Zvcm1lciBlbiBhbmNyZTwvc3Ryb25nPjxiciAvPg0KICAgIDxsYWJlbCBmb3I9ImFuY3JlX25vbSI+PGk+Tm9tIGRlIGwnYW5jcmU8L2k+PC9sYWJlbD4gPGJyIC8+DQogICAgICA8aW5wdXQgdHlwZT0idGV4dCIgbmFtZT0iYW5jcmVfbm9tIiBpZD0iYW5jcmVfbm9tIiAvPg0KCSAgDQoJPGlucHV0IHR5cGU9ImJ1dHRvbiIgdmFsdWU9Ik9LIiBjbGFzcz0iZm9uZG8iIG9uY2xpY2s9ImphdmFzY3JpcHQ6YmFycmVfYW5jcmUoJ1snLCAnPC0nLCAnXScsIGFuY3JlX25vbS52YWx1ZSwgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2lucHV0LTEtdGV4dGVfMicpKTsiIC8+DQogICAgPC90ZD4NCgk8dGQgc3R5bGU9IndpZHRoOmF1dG87Ij48c3Ryb25nPlBvaW50ZXIgdmVycyB1bmUgYW5jcmU8L3N0cm9uZz48YnIgLz4NCiAgICA8bGFiZWwgZm9yPSJhbmNyZV9jaWJsZSI+PGk+QW5jcmUgY2libGU8L2k+PC9sYWJlbD4gPGlucHV0IHR5cGU9InRleHQiIG5hbWU9ImFuY3JlX2NpYmxlIiBpZD0iYW5jcmVfY2libGUiIC8+PGJyIC8+DQoJPGxhYmVsIGZvcj0iYW5jcmVfYnVsbGUiPjxpPkJ1bGxlIGQnYWlkZSBhbmNyZTwvaT48L2xhYmVsPiA8aW5wdXQgdHlwZT0idGV4dCIgbmFtZT0iYW5jcmVfYnVsbGUiIGlkPSJhbmNyZV9idWxsZSIgLz4NCgk8aW5wdXQgdHlwZT0iYnV0dG9uIiB2YWx1ZT0iT0siIGNsYXNzPSJmb25kbyIgb25jbGljaz0iamF2YXNjcmlwdDpiYXJyZV9kZW1hbmRlKCdbJywgJy0+IycsICddJywgYW5jcmVfY2libGUudmFsdWUsIGFuY3JlX2J1bGxlLnZhbHVlLCBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaW5wdXQtMS10ZXh0ZV8yJykpOyIgLz4gDQo8L3RkPg0KICA8L3RyPiANCjwvdGFibGU+PGRpdiBzdHlsZT0nY2xlYXI6IGJvdGg7Jz48L2Rpdj48L2Rpdj48ZGl2IGlkPSdMYXllcjE4JyBzdHlsZT0nZGlzcGxheTpub25lOycgPg0KPHRhYmxlIGNsYXNzPSJzcGlwX2JhcnJlIiBzdHlsZT0id2lkdGg6IGF1dG87IHBhZGRpbmc6IDFweCFpbXBvcnRhbnQ7IGJvcmRlci10b3A6IDBweDsiIHN1bW1hcnk9IiI+DQogIDx0ciBjbGFzcz0ic3BpcF9iYXJyZSI+DQogICAgPHRkIHN0eWxlPSJ3aWR0aDozMCU7Ij5DYXJhY3QmZWdyYXZlO3JlcyBzcCZlYWN1dGU7Y2lhdXg8L3RkPg0KICAgIDx0ZD48YSBocmVmPSJqYXZhc2NyaXB0OmJhcnJlX3JhY2NvdXJjaSgnXHUwMGFificsJ35cdTAwYmInLGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdpbnB1dC0xLXRleHRlXzInKSkiCiBjbGFzcz0nc3BpcF9iYXJyZScgdGFiaW5kZXg9JzEwMDAnIHRpdGxlPSJFbnRvdXJlciBkZSAmbGFxdW87IGd1aWxsZW1ldHMgJnJhcXVvOyI+PGltZyBzcmM9J2ltZ19wYWNrL2ljb25lc19iYXJyZS9ndWlsbGVtZXRzLnBuZycgaGVpZ2h0PScxNicgd2lkdGg9JzE2JyBhbHQ9IkVudG91cmVyIGRlICZsYXF1bzsgZ3VpbGxlbWV0cyAmcmFxdW87IiAvPjwvYT48YSBocmVmPSJqYXZhc2NyaXB0OmJhcnJlX3JhY2NvdXJjaSgnXHUwMDkzJywnXHUwMDk0Jyxkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaW5wdXQtMS10ZXh0ZV8yJykpIgogY2xhc3M9J3NwaXBfYmFycmUnIHRhYmluZGV4PScxMDAwJyB0aXRsZT0iRW50b3VyZXIgZGUgJmxkcXVvO2d1aWxsZW1ldHMgZGUgc2Vjb25kIG5pdmVhdSZyZHF1bzsiPjxpbWcgc3JjPSdpbWdfcGFjay9pY29uZXNfYmFycmUvZ3VpbGxlbWV0cy1zaW1wbGVzLnBuZycgaGVpZ2h0PScxNicgd2lkdGg9JzE2JyBhbHQ9IkVudG91cmVyIGRlICZsZHF1bztndWlsbGVtZXRzIGRlIHNlY29uZCBuaXZlYXUmcmRxdW87IiAvPjwvYT48YSBocmVmPSJqYXZhc2NyaXB0OmJhcnJlX2luc2VyZXIoJ1x1MDBjMCcsZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2lucHV0LTEtdGV4dGVfMicpKSIKIGNsYXNzPSdzcGlwX2JhcnJlJyB0YWJpbmRleD0nMTAwMCcgdGl0bGU9IklucyZlYWN1dGU7cmVyIHVuIEEgYWNjZW50IGdyYXZlIG1hanVzY3VsZSI+PGltZyBzcmM9J2ltZ19wYWNrL2ljb25lc19iYXJyZS9hZ3JhdmUtbWFqLnBuZycgaGVpZ2h0PScxNicgd2lkdGg9JzE2JyBhbHQ9IklucyZlYWN1dGU7cmVyIHVuIEEgYWNjZW50IGdyYXZlIG1hanVzY3VsZSIgLz48L2E+PGEgaHJlZj0iamF2YXNjcmlwdDpiYXJyZV9pbnNlcmVyKCdcdTAwYzknLGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdpbnB1dC0xLXRleHRlXzInKSkiCiBjbGFzcz0nc3BpcF9iYXJyZScgdGFiaW5kZXg9JzEwMDAnIHRpdGxlPSJJbnMmZWFjdXRlO3JlciB1biBFIGFjY2VudCBhaWd1IG1hanVzY3VsZSI+PGltZyBzcmM9J2ltZ19wYWNrL2ljb25lc19iYXJyZS9lYWN1dGUtbWFqLnBuZycgaGVpZ2h0PScxNicgd2lkdGg9JzE2JyBhbHQ9IklucyZlYWN1dGU7cmVyIHVuIEUgYWNjZW50IGFpZ3UgbWFqdXNjdWxlIiAvPjwvYT48YSBocmVmPSJqYXZhc2NyaXB0OmJhcnJlX2luc2VyZXIoJ1x1MDBjOCcsZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2lucHV0LTEtdGV4dGVfMicpKSIKIGNsYXNzPSdzcGlwX2JhcnJlJyB0YWJpbmRleD0nMTAwMCcgdGl0bGU9IklucyZlYWN1dGU7cmVyIHVuIEUgbWFqdXNjdWxlIGFjY2VudCBncmF2ZSI+PGltZyBzcmM9Jy4uL3BsdWdpbnMvZm9uY3Rpb25uYWxpdGVzL2JhcnJlX3R5cG9fZWNvbG9naXF1ZS9pbWdfcGFjay9pY29uZXNfYmFycmUvZWFncmF2ZS1tYWoucG5nJyBoZWlnaHQ9JzE2JyB3aWR0aD0nMTYnIGFsdD0iSW5zJmVhY3V0ZTtyZXIgdW4gRSBtYWp1c2N1bGUgYWNjZW50IGdyYXZlIiAvPjwvYT48YSBocmVmPSJqYXZhc2NyaXB0OmJhcnJlX2luc2VyZXIoJ1x1MDBlNicsZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2lucHV0LTEtdGV4dGVfMicpKSIKIGNsYXNzPSdzcGlwX2JhcnJlJyB0YWJpbmRleD0nMTAwMCcgdGl0bGU9IklucyZlYWN1dGU7cmVyIHVuIEUgZGFucyBsJ0EiPjxpbWcgc3JjPScuLi9wbHVnaW5zL2ZvbmN0aW9ubmFsaXRlcy9iYXJyZV90eXBvX2Vjb2xvZ2lxdWUvaW1nX3BhY2svaWNvbmVzX2JhcnJlL2FlbGlnLnBuZycgaGVpZ2h0PScxNicgd2lkdGg9JzE2JyBhbHQ9IklucyZlYWN1dGU7cmVyIHVuIEUgZGFucyBsJ0EiIC8+PC9hPjxhIGhyZWY9ImphdmFzY3JpcHQ6YmFycmVfaW5zZXJlcignXHUwMGM2Jyxkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaW5wdXQtMS10ZXh0ZV8yJykpIgogY2xhc3M9J3NwaXBfYmFycmUnIHRhYmluZGV4PScxMDAwJyB0aXRsZT0iSW5zJmVhY3V0ZTtyZXIgdW4gRSBkYW5zIGwnQSBtYWp1c2N1bGUiPjxpbWcgc3JjPScuLi9wbHVnaW5zL2ZvbmN0aW9ubmFsaXRlcy9iYXJyZV90eXBvX2Vjb2xvZ2lxdWUvaW1nX3BhY2svaWNvbmVzX2JhcnJlL2FlbGlnLW1hai5wbmcnIGhlaWdodD0nMTYnIHdpZHRoPScxNicgYWx0PSJJbnMmZWFjdXRlO3JlciB1biBFIGRhbnMgbCdBIG1hanVzY3VsZSIgLz48L2E+PGEgaHJlZj0iamF2YXNjcmlwdDpiYXJyZV9pbnNlcmVyKCcmb2VsaWc7Jyxkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaW5wdXQtMS10ZXh0ZV8yJykpIgogY2xhc3M9J3NwaXBfYmFycmUnIHRhYmluZGV4PScxMDAwJyB0aXRsZT0iSW5zJmVhY3V0ZTtyZXIgdW4gRSBkYW5zIGwnTyI+PGltZyBzcmM9J2ltZ19wYWNrL2ljb25lc19iYXJyZS9vZWxpZy5wbmcnIGhlaWdodD0nMTYnIHdpZHRoPScxNicgYWx0PSJJbnMmZWFjdXRlO3JlciB1biBFIGRhbnMgbCdPIiAvPjwvYT48YSBocmVmPSJqYXZhc2NyaXB0OmJhcnJlX2luc2VyZXIoJyZPRWxpZzsnLGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdpbnB1dC0xLXRleHRlXzInKSkiCiBjbGFzcz0nc3BpcF9iYXJyZScgdGFiaW5kZXg9JzEwMDAnIHRpdGxlPSJJbnMmZWFjdXRlO3JlciB1biBFIGRhbnMgbCdPIG1hanVzY3VsZSI+PGltZyBzcmM9J2ltZ19wYWNrL2ljb25lc19iYXJyZS9vZWxpZy1tYWoucG5nJyBoZWlnaHQ9JzE2JyB3aWR0aD0nMTYnIGFsdD0iSW5zJmVhY3V0ZTtyZXIgdW4gRSBkYW5zIGwnTyBtYWp1c2N1bGUiIC8+PC9hPjxhIGhyZWY9ImphdmFzY3JpcHQ6YmFycmVfaW5zZXJlcignXHUwMGM3Jyxkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaW5wdXQtMS10ZXh0ZV8yJykpIgogY2xhc3M9J3NwaXBfYmFycmUnIHRhYmluZGV4PScxMDAwJyB0aXRsZT0iSW5zJmVhY3V0ZTtyZXIgdW4gQyBjJmVhY3V0ZTtkaWxsZSBtYWp1c2N1bGUiPjxpbWcgc3JjPScuLi9wbHVnaW5zL2ZvbmN0aW9ubmFsaXRlcy9iYXJyZV90eXBvX2Vjb2xvZ2lxdWUvaW1nX3BhY2svaWNvbmVzX2JhcnJlL2NjZWRpbC1tYWoucG5nJyBoZWlnaHQ9JzE2JyB3aWR0aD0nMTYnIGFsdD0iSW5zJmVhY3V0ZTtyZXIgdW4gQyBjJmVhY3V0ZTtkaWxsZSBtYWp1c2N1bGUiIC8+PC9hPjxhIGhyZWY9ImphdmFzY3JpcHQ6YmFycmVfaW5zZXJlcignJmV1cm87Jyxkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaW5wdXQtMS10ZXh0ZV8yJykpIgogY2xhc3M9J3NwaXBfYmFycmUnIHRhYmluZGV4PScxMDAwJyB0aXRsZT0iSW5zJmVhY3V0ZTtyZXIgbGUgc3ltYm9sZSAmZXVybzsiPjxpbWcgc3JjPSdpbWdfcGFjay9pY29uZXNfYmFycmUvZXVyby5wbmcnIGhlaWdodD0nMTYnIHdpZHRoPScxNicgYWx0PSJJbnMmZWFjdXRlO3JlciBsZSBzeW1ib2xlICZldXJvOyIgLz48L2E+Jm5ic3A7DQogICAgPC90ZD4NCiAgPC90cj4gDQo8L3RhYmxlPg0KPGRpdiBzdHlsZT0nY2xlYXI6IGJvdGg7Jz48L2Rpdj48L2Rpdj48ZGl2IGlkPSdMYXllcjE5JyBzdHlsZT0nZGlzcGxheTpub25lOycgPg0KPHRhYmxlIGNsYXNzPSJzcGlwX2JhcnJlIiBzdHlsZT0id2lkdGg6IGF1dG87IHBhZGRpbmc6IDFweCFpbXBvcnRhbnQ7IGJvcmRlci10b3A6IDBweDsiIHN1bW1hcnk9IiI+DQo8dHI+PHRkIHN0eWxlPSJ3aWR0aDogMjUlOyI+Q2hlcmNoZXI8aW5wdXQgdHlwZT0idGV4dCIgbmFtZT0iYmFycmVfY2hlcmNoZXIiIHZhbHVlPSIiIHNpemU9IjEyIiBtYXhsZW5ndGg9IjI1NSIgLz48L3RkPjx0ZCBzdHlsZT0id2lkdGg6IDIwJTsiPg0KPGlucHV0IHR5cGU9ImNoZWNrYm94IiBuYW1lPSJyZWNfY2FzZSIgdmFsdWU9InllcyIgLz5SZXNwZWN0ZXIgbGEgY2Fzc2U8YnIgLz48aW5wdXQgdHlwZT0iY2hlY2tib3giIG5hbWU9InJlY19lbnRpZXIiIHZhbHVlPSJ5ZXMiIC8+DQpNb3QgZW50aWVyDQo8L3RkPjx0ZCAgc3R5bGU9IndpZHRoOiAyNSU7Ij5SZW1wbGFjZXI8aW5wdXQgdHlwZT0idGV4dCIgbmFtZT0iYmFycmVfcmVtcGxhY2VyIiB2YWx1ZT0iIiBzaXplPSIxMiIgbWF4bGVuZ3RoPSIyNTUiIC8+IA0KPC90ZD48dGQgc3R5bGU9IndpZHRoOiAyMCU7Ij4NCjxpbnB1dCB0eXBlPSJjaGVja2JveCIgbmFtZT0icmVjX3RvdXQiIHZhbHVlPSJ5ZXMiIC8+VG91dCByZW1wbGFjZXI8L3RkPjx0ZCBzdHlsZT0id2lkdGg6IDEwJTsiPg0KICAgPGlucHV0IHR5cGU9ImJ1dHRvbiIgdmFsdWU9Ik9LIiBjbGFzcz0iZm9uZG8iDQogIG9uY2xpY2s9ImphdmFzY3JpcHQ6YmFycmVfc2VhcmNocmVwbGFjZShkb2N1bWVudC5mb3JtdWxhaXJlLmJhcnJlX2NoZXJjaGVyLnZhbHVlLCBkb2N1bWVudC5mb3JtdWxhaXJlLmJhcnJlX3JlbXBsYWNlci52YWx1ZSwgZG9jdW1lbnQuZm9ybXVsYWlyZS5yZWNfdG91dC5jaGVja2VkLCBkb2N1bWVudC5mb3JtdWxhaXJlLnJlY19jYXNlLmNoZWNrZWQsIGRvY3VtZW50LmZvcm11bGFpcmUucmVjX2VudGllci5jaGVja2VkLGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdpbnB1dC0xLXRleHRlXzInKSk7IiAvPiANCjwvdGQ+PC90cj48L3RhYmxlPjxkaXYgc3R5bGU9J2NsZWFyOiBib3RoOyc+PC9kaXY+PC9kaXY+Cgk8dGV4dGFyZWEgbmFtZT0ndGV4dGVfMicgcm93cz0nMTAnIGNsYXNzPSdmb3JtbCAgICcgY29scz0nODAnCglpZD0naW5wdXQtMS10ZXh0ZV8yJwoJb25zZWxlY3Q9J3N0b3JlQ2FyZXQodGhpcyk7JwoJb25jbGljaz0nc3RvcmVDYXJldCh0aGlzKTsnCglvbmtleXVwPSdzdG9yZUNhcmV0KHRoaXMpOycKCW9uZGJsY2xpY2s9J3N0b3JlQ2FyZXQodGhpcyk7Jz48L3RleHRhcmVhPgoJCQkJCgkJCQkKCQkJCQoJCQkJCgkJCQkKCQkJCQoJCQkJCgkJCQkKCQkJCQoJCQkJPHNwYW4gY2xhc3M9J25ldHRveWV1cic+IDwvc3Bhbj4KCQkJCgkJPC9kaXY+CgkKCgogCgk8L2ZpZWxkc2V0PgoKIAogCgkKCTxwIHN0eWxlPSdkaXNwbGF5Om5vbmU7Jz48bGFiZWwgZm9yPSJub2JvdG5vYm90LTEiPlZldWlsbGV6IGxhaXNzZXIgY2UgY2hhbXAgdmlkZSZuYnNwOzo8L2xhYmVsPgoJPGlucHV0IHR5cGU9InRleHQiIG5hbWU9Im5vYm90bm9ib3QiIGlkPSJub2JvdG5vYm90LTEiIHZhbHVlPSIiIHNpemU9IjEwIiAvPjwvcD4KCQoJPGRpdiBzdHlsZT0ndGV4dC1hbGlnbjpyaWdodCcgY2xhc3M9J3NwaXBfYm91dG9uJz48aW5wdXQgdHlwZT0ic3VibWl0IiBuYW1lPSdWYWxpZGVyJyB2YWx1ZT0iVmFsaWRlciIgLz48L2Rpdj4KCgo8ZGl2IGNsYXNzPSJiYXNlNjRqYXZhc2NyaXB0NjE2NjIzMjMwNDY0NDM0OThiZGYwMTkuMzEwOTE2MzUiIHRpdGxlPSdQSE5qY21sd2RDQnpjbU05SW1oMGRIQTZMeTl3Y21Wd2NtOWtMbTV2ZEhKbExYWnBiR3hsTG01bGRDOStjM1J6WldJdmNHeDFaMmx1Y3k5bWIyNWpkR2x2Ym01aGJHbDBaWE12Wm05eWJYTXZhbUYyWVhOamNtbHdkQzlxZEdsd0xtcHpJaUIwZVhCbFBTSjBaWGgwTDJwaGRtRnpZM0pwY0hRaVBqd3ZjMk55YVhCMFBnPT0nID48L2Rpdj4KCgoKPGRpdiBjbGFzcz0iYmFzZTY0amF2YXNjcmlwdDYxNjYyMzIzMDQ2NDQzNDk4YmRmMDE5LjMxMDkxNjM1IiB0aXRsZT0nUEhOamNtbHdkQ0IwZVhCbFBTSjBaWGgwTDJwaGRtRnpZM0pwY0hRaVBqd2hMUzBLSkNnbmFXNXdkWFF1Wm05eWJXOG5LUzVpYVc1a0tDZG1iMk4xY3ljc1puVnVZM1JwYjI0b0tYc2tLSFJvYVhNcExuSmxiVzkyWlVOc1lYTnpLQ2RtYjNKdGJ5Y3BMbUZrWkVOc1lYTnpLQ2RtYjNKdGJ5MW1iMk4xY3ljcE8zMHBPd29rS0NkcGJuQjFkQzVtYjNKdGJ5Y3BMbUpwYm1Rb0oySnNkWEluTEdaMWJtTjBhVzl1S0NsN0pDaDBhR2x6S1M1eVpXMXZkbVZEYkdGemN5Z25abTl5Ylc4dFptOWpkWE1uS1M1aFpHUkRiR0Z6Y3lnblptOXliVzhuS1R0OUtUc0tKQ2duYVc1d2RYUXVabTl5Yld3bktTNWlhVzVrS0NkbWIyTjFjeWNzWm5WdVkzUnBiMjRvS1hza0tIUm9hWE1wTG5KbGJXOTJaVU5zWVhOektDZG1iM0p0YkNjcExtRmtaRU5zWVhOektDZG1iM0p0YkMxbWIyTjFjeWNwTzMwcE93b2tLQ2RwYm5CMWRDNW1iM0p0YkNjcExtSnBibVFvSjJKc2RYSW5MR1oxYm1OMGFXOXVLQ2w3SkNoMGFHbHpLUzV5WlcxdmRtVkRiR0Z6Y3lnblptOXliV3d0Wm05amRYTW5LUzVoWkdSRGJHRnpjeWduWm05eWJXd25LVHQ5S1RzS0NpOHZMUzArUEM5elkzSnBjSFErJyA+PC9kaXY+CgoKCgkKCQoJCgoKPC9kaXY+" ></div>',
217
+                'attribut' => 'title',
218
+            ],
219 219
 
220
-		];
221
-	}
220
+        ];
221
+    }
222 222
 }
Please login to merge, or discard this patch.