@@ -12,12 +12,12 @@ |
||
| 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 | } |
@@ -13,464 +13,464 @@ |
||
| 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 | } |
@@ -13,150 +13,150 @@ |
||
| 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 | } |
@@ -48,7 +48,7 @@ discard block |
||
| 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 |
||
| 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 |
||
| 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 |
||
| 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'], |
@@ -13,683 +13,683 @@ |
||
| 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és &<>"', |
|
| 135 | - ], |
|
| 136 | - 27 => [ |
|
| 137 | - 0 => 'un_texte_avec_des_entit_eacute_s_echap_eacute_amp', |
|
| 138 | - 1 => 'Un texte avec des entit&eacute;s echap&eacute; &amp;&lt;&gt;&quot;', |
|
| 139 | - ], |
|
| 140 | - 28 => [ |
|
| 141 | - 0 => 'un_texte_avec_des_entites_numeriques_38_60_62', |
|
| 142 | - 1 => 'Un texte avec des entités numériques &<>"', |
|
| 143 | - ], |
|
| 144 | - 29 => [ |
|
| 145 | - 0 => 'un_texte_avec_des_entites_numeriques_echapees_38_60_62', |
|
| 146 | - 1 => 'Un texte avec des entit&#233;s num&#233;riques echap&#233;es &#38;&#60;&#62;&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és &<>"', |
|
| 135 | + ], |
|
| 136 | + 27 => [ |
|
| 137 | + 0 => 'un_texte_avec_des_entit_eacute_s_echap_eacute_amp', |
|
| 138 | + 1 => 'Un texte avec des entit&eacute;s echap&eacute; &amp;&lt;&gt;&quot;', |
|
| 139 | + ], |
|
| 140 | + 28 => [ |
|
| 141 | + 0 => 'un_texte_avec_des_entites_numeriques_38_60_62', |
|
| 142 | + 1 => 'Un texte avec des entités numériques &<>"', |
|
| 143 | + ], |
|
| 144 | + 29 => [ |
|
| 145 | + 0 => 'un_texte_avec_des_entites_numeriques_echapees_38_60_62', |
|
| 146 | + 1 => 'Un texte avec des entit&#233;s num&#233;riques echap&#233;es &#38;&#60;&#62;&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és &<>" 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&eacute;s echap&eacute; &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", |
|
| 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és numériques &<>" 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&#233;s num&#233;riques echap&#233;es &#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", |
|
| 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és &<>" 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&eacute;s echap&eacute; &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", |
|
| 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és numériques &<>" 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&#233;s num&#233;riques echap&#233;es &#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", |
|
| 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és &<>" 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&eacute;s echap&eacute; &amp;&lt;&gt;&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és numériques &<>" 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&#233;s num&#233;riques echap&#233;es &#38;&#60;&#62;&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és &<>" 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&eacute;s echap&eacute; &amp;&lt;&gt;&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és numériques &<>" 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&#233;s num&#233;riques echap&#233;es &#38;&#60;&#62;&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 | } |
@@ -20,87 +20,87 @@ |
||
| 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 : ' => '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 : ' => '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 | } |
@@ -13,46 +13,46 @@ |
||
| 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&eacute;s &amp;&lt;&gt;&quot;', |
|
| 42 | - 1 => 'Un texte avec des entités &<>"', |
|
| 43 | - ], |
|
| 44 | - 4 => [ |
|
| 45 | - 0 => 'Un texte sans entites &<>"\'', |
|
| 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&eacute;s &amp;&lt;&gt;&quot;', |
|
| 42 | + 1 => 'Un texte avec des entités &<>"', |
|
| 43 | + ], |
|
| 44 | + 4 => [ |
|
| 45 | + 0 => 'Un texte sans entites &<>"\'', |
|
| 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 | } |
@@ -13,30 +13,30 @@ |
||
| 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'hui > "30" → 50', |
|
| 30 | - 'texte' => 'aujourd\'hui > "30" → <a href=\'http://www.spip.net\'>50</a>', |
|
| 31 | - ], |
|
| 32 | - 1 => [ |
|
| 33 | - 'expected' => 'L'histoire 'très' "folle" des métas en iitalik', |
|
| 34 | - 'texte' => 'L\'histoire \'très\' "folle" <strong>des</strong> métas<p>en <em>ii</em>talik</p>', |
|
| 35 | - ], |
|
| 36 | - 2 => [ |
|
| 37 | - 'expected' => 'allons à 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'hui > "30" → 50', |
|
| 30 | + 'texte' => 'aujourd\'hui > "30" → <a href=\'http://www.spip.net\'>50</a>', |
|
| 31 | + ], |
|
| 32 | + 1 => [ |
|
| 33 | + 'expected' => 'L'histoire 'très' "folle" des métas en iitalik', |
|
| 34 | + 'texte' => 'L\'histoire \'très\' "folle" <strong>des</strong> métas<p>en <em>ii</em>talik</p>', |
|
| 35 | + ], |
|
| 36 | + 2 => [ |
|
| 37 | + 'expected' => 'allons à la mer', |
|
| 38 | + 'texte' => 'allons ' . chr(195) . chr(160) . ' la mer', // le a` risque de matcher \s |
|
| 39 | + ], |
|
| 40 | + ]; |
|
| 41 | + } |
|
| 42 | 42 | } |
@@ -35,7 +35,7 @@ |
||
| 35 | 35 | ], |
| 36 | 36 | 2 => [ |
| 37 | 37 | 'expected' => 'allons à 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 | } |
@@ -13,68 +13,68 @@ |
||
| 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és &<>"', |
|
| 42 | - 1 => 'Un texte avec des entités &<>"', |
|
| 43 | - ], |
|
| 44 | - 4 => [ |
|
| 45 | - 0 => 'Un texte avec des entit&eacute;s echap&eacute; &&lt;&gt;&quot;', |
|
| 46 | - 1 => 'Un texte avec des entit&eacute;s echap&eacute; &amp;&lt;&gt;&quot;', |
|
| 47 | - ], |
|
| 48 | - 5 => [ |
|
| 49 | - 0 => 'Un texte avec des entités numériques &<>"', |
|
| 50 | - 1 => 'Un texte avec des entités numériques &<>"', |
|
| 51 | - ], |
|
| 52 | - 6 => [ |
|
| 53 | - 0 => 'Un texte avec des entités numériques echapées &#38;&#60;&#62;&quot;', |
|
| 54 | - 1 => 'Un texte avec des entit&#233;s num&#233;riques echap&#233;es &#38;&#60;&#62;&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és &<>"', |
|
| 42 | + 1 => 'Un texte avec des entités &<>"', |
|
| 43 | + ], |
|
| 44 | + 4 => [ |
|
| 45 | + 0 => 'Un texte avec des entit&eacute;s echap&eacute; &&lt;&gt;&quot;', |
|
| 46 | + 1 => 'Un texte avec des entit&eacute;s echap&eacute; &amp;&lt;&gt;&quot;', |
|
| 47 | + ], |
|
| 48 | + 5 => [ |
|
| 49 | + 0 => 'Un texte avec des entités numériques &<>"', |
|
| 50 | + 1 => 'Un texte avec des entités numériques &<>"', |
|
| 51 | + ], |
|
| 52 | + 6 => [ |
|
| 53 | + 0 => 'Un texte avec des entités numériques echapées &#38;&#60;&#62;&quot;', |
|
| 54 | + 1 => 'Un texte avec des entit&#233;s num&#233;riques echap&#233;es &#38;&#60;&#62;&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 | } |
@@ -9,214 +9,214 @@ |
||
| 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' => '"&\'', |
|
| 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' => '"&\'', |
|
| 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 | } |