From aadb66b03e8af364e90c9c646f6869968ffb457b Mon Sep 17 00:00:00 2001 From: orynider Date: Tue, 17 Sep 2019 10:16:07 +0300 Subject: [PATCH] version 2.4.5 --- AutoIndex.conf.php | 32 + LICENSE | 334 +- access.log | 1 + blank.html | 33 + change_log.html | 182 + classes/Accounts.php | 233 ++ classes/Admin.php | 990 +++++ classes/ConfigData.php | 233 ++ classes/DirItem.php | 2681 +++++++++++++ classes/DirectoryList.php | 256 ++ classes/DirectoryListDetailed.php | 237 ++ classes/Display.php | 90 + classes/ExceptionDisplay.php | 64 + classes/FileItem.php | 118 + classes/Ftp.php | 155 + classes/Htaccess.php | 508 +++ classes/Icon.php | 148 + classes/Image.php | 204 + classes/Item.php | 218 ++ classes/Language.php | 168 + classes/Logging.php | 132 + classes/MimeType.php | 200 + classes/Search.php | 189 + classes/Size.php | 112 + classes/Stats.php | 498 +++ classes/Tar.php | 128 + classes/Template.php | 146 + classes/TemplateFiles.php | 244 ++ classes/TemplateIndexer.php | 146 + classes/TemplateInfo.php | 205 + classes/Upload.php | 153 + classes/Url.php | 232 ++ classes/User.php | 152 + classes/UserLoggedIn.php | 114 + config.php | 549 +++ favicon.gif | Bin 0 -> 1735 bytes flags/README.md | 2523 ++++++++++++ flags/language/aa.png | Bin 0 -> 1374 bytes flags/language/aa_dj.png | Bin 0 -> 755 bytes flags/language/ab.png | Bin 0 -> 1607 bytes flags/language/ae.png | Bin 0 -> 2175 bytes flags/language/af.png | Bin 0 -> 1314 bytes flags/language/aj.png | Bin 0 -> 2174 bytes flags/language/ak.png | Bin 0 -> 762 bytes flags/language/am.png | Bin 0 -> 1497 bytes flags/language/an.png | Bin 0 -> 671 bytes flags/language/ar.png | Bin 0 -> 1166 bytes flags/language/arq.png | Bin 0 -> 979 bytes flags/language/as.png | Bin 0 -> 1784 bytes flags/language/av-da.png | Bin 0 -> 1681 bytes flags/language/av.png | Bin 0 -> 1672 bytes flags/language/av_da.png | Bin 0 -> 1681 bytes flags/language/ay.png | Bin 0 -> 1819 bytes flags/language/az.png | Bin 0 -> 792 bytes flags/language/ba.png | Bin 0 -> 1137 bytes flags/language/be.png | Bin 0 -> 1189 bytes flags/language/bg.png | Bin 0 -> 434 bytes flags/language/bi.png | Bin 0 -> 1293 bytes flags/language/bl.png | Bin 0 -> 1424 bytes flags/language/bm.png | Bin 0 -> 582 bytes flags/language/bn.png | Bin 0 -> 714 bytes flags/language/br.png | Bin 0 -> 835 bytes flags/language/bs.png | Bin 0 -> 1217 bytes flags/language/ca.png | Bin 0 -> 1140 bytes flags/language/cdo.png | Bin 0 -> 1687 bytes flags/language/ce.png | Bin 0 -> 792 bytes flags/language/ch.png | Bin 0 -> 1920 bytes flags/language/cjy.png | Bin 0 -> 773 bytes flags/language/cmn.png | Bin 0 -> 1394 bytes flags/language/cn.png | Bin 0 -> 773 bytes flags/language/co.png | Bin 0 -> 1238 bytes flags/language/cpg.png | Bin 0 -> 1943 bytes flags/language/cpx.png | Bin 0 -> 1772 bytes flags/language/cr.png | Bin 0 -> 1406 bytes flags/language/cs.png | Bin 0 -> 1695 bytes flags/language/cv.png | Bin 0 -> 1403 bytes flags/language/czh.png | Bin 0 -> 1498 bytes flags/language/czo.png | Bin 0 -> 1568 bytes flags/language/da.png | Bin 0 -> 1409 bytes flags/language/de.png | Bin 0 -> 1518 bytes flags/language/de_be.png | Bin 0 -> 833 bytes flags/language/de_de.png | Bin 0 -> 1769 bytes flags/language/de_li.png | Bin 0 -> 814 bytes flags/language/de_lu.png | Bin 0 -> 793 bytes flags/language/de_sw.png | Bin 0 -> 897 bytes flags/language/deu.png | Bin 0 -> 442 bytes flags/language/dk.png | Bin 0 -> 1375 bytes flags/language/dng.png | Bin 0 -> 1449 bytes flags/language/dv.png | Bin 0 -> 1111 bytes flags/language/dz.png | Bin 0 -> 1494 bytes flags/language/ee.png | Bin 0 -> 1011 bytes flags/language/el.png | Bin 0 -> 854 bytes flags/language/en_ai.png | Bin 0 -> 1190 bytes flags/language/en_au.png | Bin 0 -> 1112 bytes flags/language/en_bm.png | Bin 0 -> 1161 bytes flags/language/en_ck.png | Bin 0 -> 1531 bytes flags/language/en_cm.png | Bin 0 -> 1257 bytes flags/language/en_dm.png | Bin 0 -> 1592 bytes flags/language/en_fj.png | Bin 0 -> 1444 bytes flags/language/en_gb.png | Bin 0 -> 1680 bytes flags/language/en_gy.png | Bin 0 -> 1632 bytes flags/language/en_ht.png | Bin 0 -> 2082 bytes flags/language/en_id.png | Bin 0 -> 1209 bytes flags/language/en_ie.png | Bin 0 -> 1119 bytes flags/language/en_ms.png | Bin 0 -> 1221 bytes flags/language/en_ne.png | Bin 0 -> 1396 bytes flags/language/en_nu.png | Bin 0 -> 1348 bytes flags/language/en_nz.png | Bin 0 -> 1005 bytes flags/language/en_pn.png | Bin 0 -> 1392 bytes flags/language/en_sh.png | Bin 0 -> 1155 bytes flags/language/en_tc.png | Bin 0 -> 1202 bytes flags/language/en_uk.png | Bin 0 -> 1468 bytes flags/language/en_us.png | Bin 0 -> 923 bytes flags/language/en_vg.png | Bin 0 -> 1248 bytes flags/language/eo.png | Bin 0 -> 1012 bytes flags/language/es.png | Bin 0 -> 706 bytes flags/language/es_es.png | Bin 0 -> 706 bytes flags/language/et.png | Bin 0 -> 1645 bytes flags/language/eu.png | Bin 0 -> 1480 bytes flags/language/ff.png | Bin 0 -> 1245 bytes flags/language/ffm.png | Bin 0 -> 1231 bytes flags/language/fi.png | Bin 0 -> 1822 bytes flags/language/fj.png | Bin 0 -> 1742 bytes flags/language/fo.png | Bin 0 -> 1882 bytes flags/language/fr.png | Bin 0 -> 548 bytes flags/language/fr_ac.png | Bin 0 -> 1016 bytes flags/language/fr_ao.png | Bin 0 -> 1718 bytes flags/language/fr_bl.png | Bin 0 -> 1761 bytes flags/language/fr_ca.png | Bin 0 -> 1286 bytes flags/language/fr_dz.png | Bin 0 -> 1450 bytes flags/language/fr_ht.png | Bin 0 -> 2099 bytes flags/language/fr_id.png | Bin 0 -> 1238 bytes flags/language/fr_if.png | Bin 0 -> 1766 bytes flags/language/fr_kh.png | Bin 0 -> 1342 bytes flags/language/fr_la.png | Bin 0 -> 1199 bytes flags/language/fr_mi.png | Bin 0 -> 1376 bytes flags/language/fr_mr.png | Bin 0 -> 1588 bytes flags/language/fr_nc.png | Bin 0 -> 1689 bytes flags/language/fr_ne.png | Bin 0 -> 1443 bytes flags/language/fr_nf.png | Bin 0 -> 1261 bytes flags/language/fr_qb.png | Bin 0 -> 1391 bytes flags/language/fr_sw.png | Bin 0 -> 1200 bytes flags/language/fr_tf.png | Bin 0 -> 1573 bytes flags/language/fr_vn.png | Bin 0 -> 1234 bytes flags/language/fr_wf.png | Bin 0 -> 1623 bytes flags/language/frc.png | Bin 0 -> 1673 bytes flags/language/fub.png | Bin 0 -> 1188 bytes flags/language/fuc.png | Bin 0 -> 1194 bytes flags/language/fue.png | Bin 0 -> 1254 bytes flags/language/fuf.png | Bin 0 -> 1230 bytes flags/language/fuh.png | Bin 0 -> 1215 bytes flags/language/fui.png | Bin 0 -> 1239 bytes flags/language/fuq.png | Bin 0 -> 1205 bytes flags/language/fuv.png | Bin 0 -> 1198 bytes flags/language/fy.png | Bin 0 -> 1357 bytes flags/language/gan.png | Bin 0 -> 1489 bytes flags/language/gcr.png | Bin 0 -> 1846 bytes flags/language/gi.png | Bin 0 -> 1439 bytes flags/language/gl.png | Bin 0 -> 1601 bytes flags/language/gmy.png | Bin 0 -> 2668 bytes flags/language/gn.png | Bin 0 -> 632 bytes flags/language/gnw.png | Bin 0 -> 1615 bytes flags/language/grc.png | Bin 0 -> 1785 bytes flags/language/gsw.png | Bin 0 -> 814 bytes flags/language/gu.png | Bin 0 -> 1927 bytes flags/language/gug.png | Bin 0 -> 632 bytes flags/language/gui.png | Bin 0 -> 905 bytes flags/language/gyn.png | Bin 0 -> 1228 bytes flags/language/ha.png | Bin 0 -> 1630 bytes flags/language/hak.png | Bin 0 -> 1898 bytes flags/language/hbo.png | Bin 0 -> 933 bytes flags/language/he.png | Bin 0 -> 1121 bytes flags/language/hr.png | Bin 0 -> 1373 bytes flags/language/hsn.png | Bin 0 -> 1855 bytes flags/language/ht.png | Bin 0 -> 1987 bytes flags/language/hu.png | Bin 0 -> 433 bytes flags/language/hy.png | Bin 0 -> 1831 bytes flags/language/hy_at.png | Bin 0 -> 1780 bytes flags/language/it.png | Bin 0 -> 556 bytes flags/language/jp.png | Bin 0 -> 605 bytes flags/language/ka.png | Bin 0 -> 588 bytes flags/language/kab.png | Bin 0 -> 1514 bytes flags/language/km.png | Bin 0 -> 1081 bytes flags/language/kw.png | Bin 0 -> 809 bytes flags/language/language_flags.png | Bin 0 -> 60111 bytes flags/language/language_icons.png | Bin 0 -> 154554 bytes flags/language/lb.png | Bin 0 -> 1550 bytes flags/language/li.png | Bin 0 -> 1710 bytes flags/language/lo.png | Bin 0 -> 648 bytes flags/language/lou.png | Bin 0 -> 1746 bytes flags/language/ltz.png | Bin 0 -> 793 bytes flags/language/lzh.png | Bin 0 -> 1923 bytes flags/language/mi.png | Bin 0 -> 1406 bytes flags/language/mic.png | Bin 0 -> 1032 bytes flags/language/mnp.png | Bin 0 -> 1861 bytes flags/language/my.png | Bin 0 -> 1218 bytes flags/language/nan.png | Bin 0 -> 1843 bytes flags/language/new.png | Bin 0 -> 527 bytes flags/language/nhd.png | Bin 0 -> 850 bytes flags/language/niu.png | Bin 0 -> 1397 bytes flags/language/nl.png | Bin 0 -> 2594 bytes flags/language/ny.png | Bin 0 -> 1043 bytes flags/language/oc.png | Bin 0 -> 1369 bytes flags/language/pnt.png | Bin 0 -> 1217 bytes flags/language/ri.png | Bin 0 -> 1861 bytes flags/language/ro.png | Bin 0 -> 566 bytes flags/language/ro_md.png | Bin 0 -> 790 bytes flags/language/ro_ro.png | Bin 0 -> 1322 bytes flags/language/ru.png | Bin 0 -> 417 bytes flags/language/shy.png | Bin 0 -> 1231 bytes flags/language/sq.png | Bin 0 -> 1609 bytes flags/language/todo.txt | 2 + flags/language/tsd.png | Bin 0 -> 908 bytes flags/language/tw.png | Bin 0 -> 1117 bytes flags/language/vn.png | Bin 0 -> 684 bytes flags/language/wes.png | Bin 0 -> 718 bytes flags/language/wls.png | Bin 0 -> 1500 bytes flags/language/wuu.png | Bin 0 -> 1790 bytes flags/language/xdm.png | Bin 0 -> 1068 bytes flags/language/xno.png | Bin 0 -> 1238 bytes flags/language/yej.png | Bin 0 -> 926 bytes flags/language/yue.png | Bin 0 -> 1515 bytes flags/language/zdj.png | Bin 0 -> 866 bytes flags/language/zh.png | Bin 0 -> 773 bytes hidden_files | 15 + index.htm | 10 + index.php | 641 +++ index_icons/apache/ass.png | Bin 0 -> 1032 bytes index_icons/apache/back.png | Bin 0 -> 236 bytes index_icons/apache/binary.png | Bin 0 -> 230 bytes index_icons/apache/binhex.png | Bin 0 -> 238 bytes index_icons/apache/cd.png | Bin 0 -> 752 bytes index_icons/apache/comp.png | Bin 0 -> 244 bytes index_icons/apache/compressed.png | Bin 0 -> 239 bytes index_icons/apache/dir.png | Bin 0 -> 222 bytes index_icons/apache/dll.png | Bin 0 -> 230 bytes index_icons/apache/doc.png | Bin 0 -> 268 bytes index_icons/apache/generic.png | Bin 0 -> 203 bytes index_icons/apache/image.png | Bin 0 -> 233 bytes index_icons/apache/java.png | Bin 0 -> 1166 bytes index_icons/apache/js.png | Bin 0 -> 253 bytes index_icons/apache/key.png | Bin 0 -> 258 bytes index_icons/apache/login.png | Bin 0 -> 262 bytes index_icons/apache/mov.png | Bin 0 -> 218 bytes index_icons/apache/movie.png | Bin 0 -> 218 bytes index_icons/apache/new.png | Bin 0 -> 616 bytes index_icons/apache/pdf.png | Bin 0 -> 778 bytes index_icons/apache/php.png | Bin 0 -> 730 bytes index_icons/apache/ppt.png | Bin 0 -> 268 bytes index_icons/apache/ps.png | Bin 0 -> 263 bytes index_icons/apache/search.png | Bin 0 -> 570 bytes index_icons/apache/sound.png | Bin 0 -> 222 bytes index_icons/apache/srt.png | Bin 0 -> 1001 bytes index_icons/apache/sub.png | Bin 0 -> 617 bytes index_icons/apache/tar.png | Bin 0 -> 229 bytes index_icons/apache/text.png | Bin 0 -> 222 bytes index_icons/apache/torrent.png | Bin 0 -> 360 bytes index_icons/apache/unknown.png | Bin 0 -> 230 bytes index_icons/apache/uu.png | Bin 0 -> 219 bytes index_icons/apache/web.png | Bin 0 -> 253 bytes index_icons/apache/xls.png | Bin 0 -> 268 bytes index_icons/kde/ass.png | Bin 0 -> 1032 bytes index_icons/kde/back.png | Bin 0 -> 656 bytes index_icons/kde/binary.png | Bin 0 -> 745 bytes index_icons/kde/binhex.png | Bin 0 -> 745 bytes index_icons/kde/cd.png | Bin 0 -> 546 bytes index_icons/kde/comp.png | Bin 0 -> 490 bytes index_icons/kde/compressed.png | Bin 0 -> 620 bytes index_icons/kde/dir.png | Bin 0 -> 620 bytes index_icons/kde/dll.png | Bin 0 -> 745 bytes index_icons/kde/doc.png | Bin 0 -> 571 bytes index_icons/kde/generic.png | Bin 0 -> 382 bytes index_icons/kde/image.png | Bin 0 -> 715 bytes index_icons/kde/java.png | Bin 0 -> 656 bytes index_icons/kde/js.png | Bin 0 -> 432 bytes index_icons/kde/key.png | Bin 0 -> 432 bytes index_icons/kde/login.png | Bin 0 -> 262 bytes index_icons/kde/mov.png | Bin 0 -> 374 bytes index_icons/kde/movie.png | Bin 0 -> 374 bytes index_icons/kde/new.png | Bin 0 -> 616 bytes index_icons/kde/pdf.png | Bin 0 -> 532 bytes index_icons/kde/php.png | Bin 0 -> 730 bytes index_icons/kde/ppt.png | Bin 0 -> 432 bytes index_icons/kde/ps.png | Bin 0 -> 571 bytes index_icons/kde/search.png | Bin 0 -> 570 bytes index_icons/kde/sound.png | Bin 0 -> 697 bytes index_icons/kde/srt.png | Bin 0 -> 1001 bytes index_icons/kde/sub.png | Bin 0 -> 617 bytes index_icons/kde/subtitle.png | Bin 0 -> 1032 bytes index_icons/kde/tar.png | Bin 0 -> 724 bytes index_icons/kde/text.png | Bin 0 -> 571 bytes index_icons/kde/torrent.png | Bin 0 -> 360 bytes index_icons/kde/unknown.png | Bin 0 -> 382 bytes index_icons/kde/uu.png | Bin 0 -> 620 bytes index_icons/kde/web.png | Bin 0 -> 748 bytes index_icons/kde/xls.png | Bin 0 -> 655 bytes index_icons/osx/ass.png | Bin 0 -> 1032 bytes index_icons/osx/back.png | Bin 0 -> 198 bytes index_icons/osx/binary.png | Bin 0 -> 234 bytes index_icons/osx/binhex.png | Bin 0 -> 234 bytes index_icons/osx/cd.png | Bin 0 -> 382 bytes index_icons/osx/comp.png | Bin 0 -> 338 bytes index_icons/osx/compressed.png | Bin 0 -> 400 bytes index_icons/osx/dir.png | Bin 0 -> 717 bytes index_icons/osx/dll.png | Bin 0 -> 400 bytes index_icons/osx/doc.png | Bin 0 -> 519 bytes index_icons/osx/generic.png | Bin 0 -> 609 bytes index_icons/osx/image.png | Bin 0 -> 560 bytes index_icons/osx/java.png | Bin 0 -> 332 bytes index_icons/osx/js.png | Bin 0 -> 427 bytes index_icons/osx/key.png | Bin 0 -> 338 bytes index_icons/osx/login.png | Bin 0 -> 262 bytes index_icons/osx/mov.png | Bin 0 -> 542 bytes index_icons/osx/movie.png | Bin 0 -> 542 bytes index_icons/osx/new.png | Bin 0 -> 616 bytes index_icons/osx/pdf.png | Bin 0 -> 585 bytes index_icons/osx/php.png | Bin 0 -> 730 bytes index_icons/osx/ppt.png | Bin 0 -> 645 bytes index_icons/osx/ps.png | Bin 0 -> 519 bytes index_icons/osx/search.png | Bin 0 -> 570 bytes index_icons/osx/sound.png | Bin 0 -> 513 bytes index_icons/osx/srt.png | Bin 0 -> 1001 bytes index_icons/osx/sub.png | Bin 0 -> 617 bytes index_icons/osx/subtitle.png | Bin 0 -> 1032 bytes index_icons/osx/tar.png | Bin 0 -> 408 bytes index_icons/osx/text.png | Bin 0 -> 338 bytes index_icons/osx/torrent.png | Bin 0 -> 360 bytes index_icons/osx/unknown.png | Bin 0 -> 609 bytes index_icons/osx/uu.png | Bin 0 -> 400 bytes index_icons/osx/web.png | Bin 0 -> 424 bytes index_icons/osx/xls.png | Bin 0 -> 416 bytes index_icons/winvista/ass.png | Bin 0 -> 1032 bytes index_icons/winvista/back.png | Bin 0 -> 3364 bytes index_icons/winvista/binary.png | Bin 0 -> 3119 bytes index_icons/winvista/binhex.png | Bin 0 -> 3523 bytes index_icons/winvista/cd.png | Bin 0 -> 3385 bytes index_icons/winvista/comp.png | Bin 0 -> 3413 bytes index_icons/winvista/compressed.png | Bin 0 -> 3328 bytes index_icons/winvista/dir.png | Bin 0 -> 3286 bytes index_icons/winvista/dll.png | Bin 0 -> 3375 bytes index_icons/winvista/doc.png | Bin 0 -> 3513 bytes index_icons/winvista/generic.png | Bin 0 -> 3124 bytes index_icons/winvista/image.png | Bin 0 -> 3280 bytes index_icons/winvista/java.png | Bin 0 -> 3300 bytes index_icons/winvista/js.png | Bin 0 -> 3455 bytes index_icons/winvista/key.png | Bin 0 -> 3244 bytes index_icons/winvista/login.png | Bin 0 -> 3246 bytes index_icons/winvista/mov.png | Bin 0 -> 3424 bytes index_icons/winvista/movie.png | Bin 0 -> 3321 bytes index_icons/winvista/new.png | Bin 0 -> 3126 bytes index_icons/winvista/pdf.png | Bin 0 -> 3297 bytes index_icons/winvista/php.png | Bin 0 -> 3343 bytes index_icons/winvista/ppt.png | Bin 0 -> 3571 bytes index_icons/winvista/ps.png | Bin 0 -> 3411 bytes index_icons/winvista/search.png | Bin 0 -> 3292 bytes index_icons/winvista/sound.png | Bin 0 -> 3286 bytes index_icons/winvista/srt.png | Bin 0 -> 1001 bytes index_icons/winvista/sub.png | Bin 0 -> 617 bytes index_icons/winvista/subtitle.png | Bin 0 -> 1032 bytes index_icons/winvista/tar.png | Bin 0 -> 3315 bytes index_icons/winvista/text.png | Bin 0 -> 3194 bytes index_icons/winvista/torrent.png | Bin 0 -> 360 bytes index_icons/winvista/unknown.png | Bin 0 -> 3124 bytes index_icons/winvista/uu.png | Bin 0 -> 3315 bytes index_icons/winvista/web.png | Bin 0 -> 3539 bytes index_icons/winvista/xls.png | Bin 0 -> 3568 bytes index_icons/winxp/ass.png | Bin 0 -> 1032 bytes index_icons/winxp/back.png | Bin 0 -> 3329 bytes index_icons/winxp/binary.png | Bin 0 -> 3152 bytes index_icons/winxp/binhex.png | Bin 0 -> 3523 bytes index_icons/winxp/cd.png | Bin 0 -> 3522 bytes index_icons/winxp/comp.png | Bin 0 -> 3601 bytes index_icons/winxp/compressed.png | Bin 0 -> 632 bytes index_icons/winxp/dir.png | Bin 0 -> 3151 bytes index_icons/winxp/dll.png | Bin 0 -> 3405 bytes index_icons/winxp/doc.png | Bin 0 -> 3409 bytes index_icons/winxp/generic.png | Bin 0 -> 3224 bytes index_icons/winxp/image.png | Bin 0 -> 3391 bytes index_icons/winxp/java.png | Bin 0 -> 3355 bytes index_icons/winxp/js.png | Bin 0 -> 3323 bytes index_icons/winxp/key.png | Bin 0 -> 3433 bytes index_icons/winxp/login.png | Bin 0 -> 3318 bytes index_icons/winxp/mov.png | Bin 0 -> 3424 bytes index_icons/winxp/movie.png | Bin 0 -> 3603 bytes index_icons/winxp/new.png | Bin 0 -> 3179 bytes index_icons/winxp/pdf.png | Bin 0 -> 3297 bytes index_icons/winxp/php.png | Bin 0 -> 3425 bytes index_icons/winxp/ppt.png | Bin 0 -> 3479 bytes index_icons/winxp/ps.png | Bin 0 -> 3411 bytes index_icons/winxp/search.png | Bin 0 -> 3382 bytes index_icons/winxp/sound.png | Bin 0 -> 3302 bytes index_icons/winxp/srt.png | Bin 0 -> 1001 bytes index_icons/winxp/sub.png | Bin 0 -> 617 bytes index_icons/winxp/subtitle.png | Bin 0 -> 1032 bytes index_icons/winxp/tar.png | Bin 0 -> 3335 bytes index_icons/winxp/text.png | Bin 0 -> 3243 bytes index_icons/winxp/torrent.png | Bin 0 -> 360 bytes index_icons/winxp/unknown.png | Bin 0 -> 3224 bytes index_icons/winxp/uu.png | Bin 0 -> 3335 bytes index_icons/winxp/web.png | Bin 0 -> 3437 bytes index_icons/winxp/xls.png | Bin 0 -> 3445 bytes languages/al.txt | 91 + languages/ar.txt | 91 + languages/bg.txt | 91 + languages/ca.txt | 91 + languages/cz.txt | 91 + languages/da.txt | 92 + languages/de.txt | 92 + languages/el.txt | 91 + languages/en.txt | 91 + languages/es.txt | 91 + languages/fr.txt | 91 + languages/hu.txt | 92 + languages/it.txt | 91 + languages/ja.txt | 92 + languages/ko.txt | 91 + languages/ms.txt | 91 + languages/nl.txt | 91 + languages/no.txt | 91 + languages/pl.txt | 91 + languages/pt_BR.txt | 92 + languages/ru.txt | 91 + languages/sk.txt | 91 + languages/sv.txt | 91 + languages/th.txt | 91 + languages/tr.txt | 91 + license.html | 424 ++ meta.inc | 14 + robots.txt | 19 + templates/SwiftBlue/SwiftBlue.cfg | 293 ++ templates/SwiftBlue/SwiftBlue.css | 3477 +++++++++++++++++ templates/SwiftBlue/admin/SwiftBlue.css | 12 + templates/SwiftBlue/admin/admin.css | 45 + templates/SwiftBlue/admin/index.htm | 10 + .../SwiftBlue/admin/mainpage_header.html | 31 + templates/SwiftBlue/alternate.css | 134 + templates/SwiftBlue/bbcode.html | 129 + templates/SwiftBlue/biblia_online.js | 9 + templates/SwiftBlue/default.css | 128 + templates/SwiftBlue/documente.js | 22 + templates/SwiftBlue/dynifs.js | 83 + templates/SwiftBlue/each_file.tpl | 39 + templates/SwiftBlue/editor.js | 403 ++ templates/SwiftBlue/error_body.html | 18 + templates/SwiftBlue/forum_fn.js | 257 ++ templates/SwiftBlue/full_page_body.html | 7 + templates/SwiftBlue/gecko.css | 3 + templates/SwiftBlue/global_footer.tpl | 14 + templates/SwiftBlue/global_header.tpl | 315 ++ .../images/block_icons/block_cache.gif | Bin 0 -> 97 bytes .../images/block_icons/block_delete.gif | Bin 0 -> 73 bytes .../images/block_icons/block_edit.gif | Bin 0 -> 182 bytes .../images/block_icons/block_edit2.gif | Bin 0 -> 274 bytes .../images/block_icons/block_edit_admin.gif | Bin 0 -> 237 bytes .../images/block_icons/block_edit_split.gif | Bin 0 -> 232 bytes .../images/block_icons/block_hidden.gif | Bin 0 -> 118 bytes .../images/block_icons/block_move_down.gif | Bin 0 -> 71 bytes .../images/block_icons/block_move_left.gif | Bin 0 -> 70 bytes .../images/block_icons/block_move_right.gif | Bin 0 -> 87 bytes .../images/block_icons/block_move_up.gif | Bin 0 -> 73 bytes .../SwiftBlue/images/block_icons/contract.gif | Bin 0 -> 75 bytes .../SwiftBlue/images/block_icons/expand.gif | Bin 0 -> 79 bytes .../SwiftBlue/images/block_icons/spacer.gif | Bin 0 -> 43 bytes templates/SwiftBlue/images/cellpic.gif | Bin 0 -> 722 bytes templates/SwiftBlue/images/cellpic1.gif | Bin 0 -> 217 bytes templates/SwiftBlue/images/cellpic2.jpg | Bin 0 -> 1410 bytes templates/SwiftBlue/images/cellpic3.gif | Bin 0 -> 371 bytes templates/SwiftBlue/images/index.htm | 16 + templates/SwiftBlue/images/logo.gif | Bin 0 -> 2203 bytes templates/SwiftBlue/images/logo_med.gif | Bin 0 -> 5472 bytes templates/SwiftBlue/images/logo_mxBB.gif | Bin 0 -> 2203 bytes .../images/page_icons/nav_about_us.gif | Bin 0 -> 2278 bytes .../images/page_icons/nav_announcement.gif | Bin 0 -> 1278 bytes .../SwiftBlue/images/page_icons/nav_bible.gif | Bin 0 -> 12876 bytes .../images/page_icons/nav_calendar.gif | Bin 0 -> 1160 bytes .../images/page_icons/nav_chatbox.gif | Bin 0 -> 1848 bytes .../images/page_icons/nav_develope.gif | Bin 0 -> 1026 bytes .../images/page_icons/nav_download.gif | Bin 0 -> 1156 bytes .../images/page_icons/nav_ekklesia.gif | Bin 0 -> 1809 bytes .../SwiftBlue/images/page_icons/nav_email.gif | Bin 0 -> 1060 bytes .../images/page_icons/nav_email2.gif | Bin 0 -> 1125 bytes .../images/page_icons/nav_explorer.gif | Bin 0 -> 1179 bytes .../SwiftBlue/images/page_icons/nav_forum.gif | Bin 0 -> 1131 bytes .../images/page_icons/nav_guestbook.gif | Bin 0 -> 2389 bytes .../SwiftBlue/images/page_icons/nav_help.gif | Bin 0 -> 1184 bytes .../SwiftBlue/images/page_icons/nav_home.gif | Bin 0 -> 1016 bytes .../SwiftBlue/images/page_icons/nav_info.gif | Bin 0 -> 1192 bytes .../SwiftBlue/images/page_icons/nav_login.gif | Bin 0 -> 754 bytes .../images/page_icons/nav_members.gif | Bin 0 -> 1175 bytes .../SwiftBlue/images/page_icons/nav_musik.gif | Bin 0 -> 1220 bytes .../SwiftBlue/images/page_icons/nav_mydoc.gif | Bin 0 -> 1780 bytes .../SwiftBlue/images/page_icons/nav_news.gif | Bin 0 -> 1415 bytes .../images/page_icons/nav_profile.gif | Bin 0 -> 1012 bytes .../images/page_icons/nav_promote.gif | Bin 0 -> 1336 bytes .../SwiftBlue/images/page_icons/nav_radio.gif | Bin 0 -> 2494 bytes .../SwiftBlue/images/page_icons/nav_rate.gif | Bin 0 -> 1285 bytes .../images/page_icons/nav_register.gif | Bin 0 -> 1019 bytes .../images/page_icons/nav_search.gif | Bin 0 -> 1132 bytes .../images/page_icons/nav_settings.gif | Bin 0 -> 1155 bytes .../images/page_icons/nav_sponsors.gif | Bin 0 -> 1993 bytes .../images/page_icons/nav_statistics.gif | Bin 0 -> 1089 bytes .../SwiftBlue/images/page_icons/nav_theme.gif | Bin 0 -> 1276 bytes .../images/page_icons/nav_theme2.gif | Bin 0 -> 1144 bytes .../images/page_icons/nav_weblinks.gif | Bin 0 -> 1135 bytes .../SwiftBlue/images/page_icons/plus.gif | Bin 0 -> 181 bytes .../SwiftBlue/images/page_icons/spacer.gif | Bin 0 -> 807 bytes .../images/page_icons/thumb_globe.gif | Bin 0 -> 2355 bytes .../images/page_icons/thumb_news.gif | Bin 0 -> 2564 bytes templates/SwiftBlue/images/spacer.gif | Bin 0 -> 807 bytes templates/SwiftBlue/images/subscribe.gif | Bin 0 -> 1691 bytes templates/SwiftBlue/images/whosonline.gif | Bin 0 -> 962 bytes templates/SwiftBlue/index.htm | 10 + templates/SwiftBlue/intro2.js | 6 + templates/SwiftBlue/jumpbox.html | 6 + templates/SwiftBlue/login_body.html | 50 + templates/SwiftBlue/message_body.html | 28 + templates/SwiftBlue/mx_main_layout.html | 114 + templates/SwiftBlue/overall_footer.html | 30 + templates/SwiftBlue/overall_header.html | 188 + .../SwiftBlue/overall_header_navigation.html | 188 + .../overall_header_navigation_phpbb.html | 213 + .../overall_header_navigation_phpbb2.html | 215 + .../SwiftBlue/overall_header_phpbb3.html | 235 ++ templates/SwiftBlue/overall_noheader.html | 37 + templates/SwiftBlue/posting_smilies.html | 45 + templates/SwiftBlue/rollout.js | 32 + templates/SwiftBlue/rollout_main.js | 46 + templates/SwiftBlue/styleswitcher.js | 161 + templates/SwiftBlue/table_footer.tpl | 46 + templates/SwiftBlue/table_header.tpl | 122 + templates/SwiftBlue/wallpapers.js | 9 + templates/default/alternate.css | 134 + templates/default/default.css | 127 + ...h_file (alternative with direct links).tpl | 30 + templates/default/each_file.tpl | 25 + templates/default/global_footer.tpl | 14 + templates/default/global_header.tpl | 10 + templates/default/table_footer.tpl | 68 + templates/default/table_header.tpl | 23 + templates/index.htm | 10 + templates/readme.html | 184 + templates/simple_image_gallery/default.css | 128 + templates/simple_image_gallery/each_file.tpl | 7 + .../simple_image_gallery/global_footer.tpl | 14 + .../simple_image_gallery/global_header.tpl | 9 + .../simple_image_gallery/table_footer.tpl | 44 + .../simple_image_gallery/table_header.tpl | 1 + templates/spacer.gif | 0 548 files changed, 23791 insertions(+), 276 deletions(-) create mode 100644 AutoIndex.conf.php create mode 100644 access.log create mode 100644 blank.html create mode 100644 change_log.html create mode 100644 classes/Accounts.php create mode 100644 classes/Admin.php create mode 100644 classes/ConfigData.php create mode 100644 classes/DirItem.php create mode 100644 classes/DirectoryList.php create mode 100644 classes/DirectoryListDetailed.php create mode 100644 classes/Display.php create mode 100644 classes/ExceptionDisplay.php create mode 100644 classes/FileItem.php create mode 100644 classes/Ftp.php create mode 100644 classes/Htaccess.php create mode 100644 classes/Icon.php create mode 100644 classes/Image.php create mode 100644 classes/Item.php create mode 100644 classes/Language.php create mode 100644 classes/Logging.php create mode 100644 classes/MimeType.php create mode 100644 classes/Search.php create mode 100644 classes/Size.php create mode 100644 classes/Stats.php create mode 100644 classes/Tar.php create mode 100644 classes/Template.php create mode 100644 classes/TemplateFiles.php create mode 100644 classes/TemplateIndexer.php create mode 100644 classes/TemplateInfo.php create mode 100644 classes/Upload.php create mode 100644 classes/Url.php create mode 100644 classes/User.php create mode 100644 classes/UserLoggedIn.php create mode 100644 config.php create mode 100644 favicon.gif create mode 100644 flags/README.md create mode 100644 flags/language/aa.png create mode 100644 flags/language/aa_dj.png create mode 100644 flags/language/ab.png create mode 100644 flags/language/ae.png create mode 100644 flags/language/af.png create mode 100644 flags/language/aj.png create mode 100644 flags/language/ak.png create mode 100644 flags/language/am.png create mode 100644 flags/language/an.png create mode 100644 flags/language/ar.png create mode 100644 flags/language/arq.png create mode 100644 flags/language/as.png create mode 100644 flags/language/av-da.png create mode 100644 flags/language/av.png create mode 100644 flags/language/av_da.png create mode 100644 flags/language/ay.png create mode 100644 flags/language/az.png create mode 100644 flags/language/ba.png create mode 100644 flags/language/be.png create mode 100644 flags/language/bg.png create mode 100644 flags/language/bi.png create mode 100644 flags/language/bl.png create mode 100644 flags/language/bm.png create mode 100644 flags/language/bn.png create mode 100644 flags/language/br.png create mode 100644 flags/language/bs.png create mode 100644 flags/language/ca.png create mode 100644 flags/language/cdo.png create mode 100644 flags/language/ce.png create mode 100644 flags/language/ch.png create mode 100644 flags/language/cjy.png create mode 100644 flags/language/cmn.png create mode 100644 flags/language/cn.png create mode 100644 flags/language/co.png create mode 100644 flags/language/cpg.png create mode 100644 flags/language/cpx.png create mode 100644 flags/language/cr.png create mode 100644 flags/language/cs.png create mode 100644 flags/language/cv.png create mode 100644 flags/language/czh.png create mode 100644 flags/language/czo.png create mode 100644 flags/language/da.png create mode 100644 flags/language/de.png create mode 100644 flags/language/de_be.png create mode 100644 flags/language/de_de.png create mode 100644 flags/language/de_li.png create mode 100644 flags/language/de_lu.png create mode 100644 flags/language/de_sw.png create mode 100644 flags/language/deu.png create mode 100644 flags/language/dk.png create mode 100644 flags/language/dng.png create mode 100644 flags/language/dv.png create mode 100644 flags/language/dz.png create mode 100644 flags/language/ee.png create mode 100644 flags/language/el.png create mode 100644 flags/language/en_ai.png create mode 100644 flags/language/en_au.png create mode 100644 flags/language/en_bm.png create mode 100644 flags/language/en_ck.png create mode 100644 flags/language/en_cm.png create mode 100644 flags/language/en_dm.png create mode 100644 flags/language/en_fj.png create mode 100644 flags/language/en_gb.png create mode 100644 flags/language/en_gy.png create mode 100644 flags/language/en_ht.png create mode 100644 flags/language/en_id.png create mode 100644 flags/language/en_ie.png create mode 100644 flags/language/en_ms.png create mode 100644 flags/language/en_ne.png create mode 100644 flags/language/en_nu.png create mode 100644 flags/language/en_nz.png create mode 100644 flags/language/en_pn.png create mode 100644 flags/language/en_sh.png create mode 100644 flags/language/en_tc.png create mode 100644 flags/language/en_uk.png create mode 100644 flags/language/en_us.png create mode 100644 flags/language/en_vg.png create mode 100644 flags/language/eo.png create mode 100644 flags/language/es.png create mode 100644 flags/language/es_es.png create mode 100644 flags/language/et.png create mode 100644 flags/language/eu.png create mode 100644 flags/language/ff.png create mode 100644 flags/language/ffm.png create mode 100644 flags/language/fi.png create mode 100644 flags/language/fj.png create mode 100644 flags/language/fo.png create mode 100644 flags/language/fr.png create mode 100644 flags/language/fr_ac.png create mode 100644 flags/language/fr_ao.png create mode 100644 flags/language/fr_bl.png create mode 100644 flags/language/fr_ca.png create mode 100644 flags/language/fr_dz.png create mode 100644 flags/language/fr_ht.png create mode 100644 flags/language/fr_id.png create mode 100644 flags/language/fr_if.png create mode 100644 flags/language/fr_kh.png create mode 100644 flags/language/fr_la.png create mode 100644 flags/language/fr_mi.png create mode 100644 flags/language/fr_mr.png create mode 100644 flags/language/fr_nc.png create mode 100644 flags/language/fr_ne.png create mode 100644 flags/language/fr_nf.png create mode 100644 flags/language/fr_qb.png create mode 100644 flags/language/fr_sw.png create mode 100644 flags/language/fr_tf.png create mode 100644 flags/language/fr_vn.png create mode 100644 flags/language/fr_wf.png create mode 100644 flags/language/frc.png create mode 100644 flags/language/fub.png create mode 100644 flags/language/fuc.png create mode 100644 flags/language/fue.png create mode 100644 flags/language/fuf.png create mode 100644 flags/language/fuh.png create mode 100644 flags/language/fui.png create mode 100644 flags/language/fuq.png create mode 100644 flags/language/fuv.png create mode 100644 flags/language/fy.png create mode 100644 flags/language/gan.png create mode 100644 flags/language/gcr.png create mode 100644 flags/language/gi.png create mode 100644 flags/language/gl.png create mode 100644 flags/language/gmy.png create mode 100644 flags/language/gn.png create mode 100644 flags/language/gnw.png create mode 100644 flags/language/grc.png create mode 100644 flags/language/gsw.png create mode 100644 flags/language/gu.png create mode 100644 flags/language/gug.png create mode 100644 flags/language/gui.png create mode 100644 flags/language/gyn.png create mode 100644 flags/language/ha.png create mode 100644 flags/language/hak.png create mode 100644 flags/language/hbo.png create mode 100644 flags/language/he.png create mode 100644 flags/language/hr.png create mode 100644 flags/language/hsn.png create mode 100644 flags/language/ht.png create mode 100644 flags/language/hu.png create mode 100644 flags/language/hy.png create mode 100644 flags/language/hy_at.png create mode 100644 flags/language/it.png create mode 100644 flags/language/jp.png create mode 100644 flags/language/ka.png create mode 100644 flags/language/kab.png create mode 100644 flags/language/km.png create mode 100644 flags/language/kw.png create mode 100644 flags/language/language_flags.png create mode 100644 flags/language/language_icons.png create mode 100644 flags/language/lb.png create mode 100644 flags/language/li.png create mode 100644 flags/language/lo.png create mode 100644 flags/language/lou.png create mode 100644 flags/language/ltz.png create mode 100644 flags/language/lzh.png create mode 100644 flags/language/mi.png create mode 100644 flags/language/mic.png create mode 100644 flags/language/mnp.png create mode 100644 flags/language/my.png create mode 100644 flags/language/nan.png create mode 100644 flags/language/new.png create mode 100644 flags/language/nhd.png create mode 100644 flags/language/niu.png create mode 100644 flags/language/nl.png create mode 100644 flags/language/ny.png create mode 100644 flags/language/oc.png create mode 100644 flags/language/pnt.png create mode 100644 flags/language/ri.png create mode 100644 flags/language/ro.png create mode 100644 flags/language/ro_md.png create mode 100644 flags/language/ro_ro.png create mode 100644 flags/language/ru.png create mode 100644 flags/language/shy.png create mode 100644 flags/language/sq.png create mode 100644 flags/language/todo.txt create mode 100644 flags/language/tsd.png create mode 100644 flags/language/tw.png create mode 100644 flags/language/vn.png create mode 100644 flags/language/wes.png create mode 100644 flags/language/wls.png create mode 100644 flags/language/wuu.png create mode 100644 flags/language/xdm.png create mode 100644 flags/language/xno.png create mode 100644 flags/language/yej.png create mode 100644 flags/language/yue.png create mode 100644 flags/language/zdj.png create mode 100644 flags/language/zh.png create mode 100644 hidden_files create mode 100644 index.htm create mode 100644 index.php create mode 100644 index_icons/apache/ass.png create mode 100644 index_icons/apache/back.png create mode 100644 index_icons/apache/binary.png create mode 100644 index_icons/apache/binhex.png create mode 100644 index_icons/apache/cd.png create mode 100644 index_icons/apache/comp.png create mode 100644 index_icons/apache/compressed.png create mode 100644 index_icons/apache/dir.png create mode 100644 index_icons/apache/dll.png create mode 100644 index_icons/apache/doc.png create mode 100644 index_icons/apache/generic.png create mode 100644 index_icons/apache/image.png create mode 100644 index_icons/apache/java.png create mode 100644 index_icons/apache/js.png create mode 100644 index_icons/apache/key.png create mode 100644 index_icons/apache/login.png create mode 100644 index_icons/apache/mov.png create mode 100644 index_icons/apache/movie.png create mode 100644 index_icons/apache/new.png create mode 100644 index_icons/apache/pdf.png create mode 100644 index_icons/apache/php.png create mode 100644 index_icons/apache/ppt.png create mode 100644 index_icons/apache/ps.png create mode 100644 index_icons/apache/search.png create mode 100644 index_icons/apache/sound.png create mode 100644 index_icons/apache/srt.png create mode 100644 index_icons/apache/sub.png create mode 100644 index_icons/apache/tar.png create mode 100644 index_icons/apache/text.png create mode 100644 index_icons/apache/torrent.png create mode 100644 index_icons/apache/unknown.png create mode 100644 index_icons/apache/uu.png create mode 100644 index_icons/apache/web.png create mode 100644 index_icons/apache/xls.png create mode 100644 index_icons/kde/ass.png create mode 100644 index_icons/kde/back.png create mode 100644 index_icons/kde/binary.png create mode 100644 index_icons/kde/binhex.png create mode 100644 index_icons/kde/cd.png create mode 100644 index_icons/kde/comp.png create mode 100644 index_icons/kde/compressed.png create mode 100644 index_icons/kde/dir.png create mode 100644 index_icons/kde/dll.png create mode 100644 index_icons/kde/doc.png create mode 100644 index_icons/kde/generic.png create mode 100644 index_icons/kde/image.png create mode 100644 index_icons/kde/java.png create mode 100644 index_icons/kde/js.png create mode 100644 index_icons/kde/key.png create mode 100644 index_icons/kde/login.png create mode 100644 index_icons/kde/mov.png create mode 100644 index_icons/kde/movie.png create mode 100644 index_icons/kde/new.png create mode 100644 index_icons/kde/pdf.png create mode 100644 index_icons/kde/php.png create mode 100644 index_icons/kde/ppt.png create mode 100644 index_icons/kde/ps.png create mode 100644 index_icons/kde/search.png create mode 100644 index_icons/kde/sound.png create mode 100644 index_icons/kde/srt.png create mode 100644 index_icons/kde/sub.png create mode 100644 index_icons/kde/subtitle.png create mode 100644 index_icons/kde/tar.png create mode 100644 index_icons/kde/text.png create mode 100644 index_icons/kde/torrent.png create mode 100644 index_icons/kde/unknown.png create mode 100644 index_icons/kde/uu.png create mode 100644 index_icons/kde/web.png create mode 100644 index_icons/kde/xls.png create mode 100644 index_icons/osx/ass.png create mode 100644 index_icons/osx/back.png create mode 100644 index_icons/osx/binary.png create mode 100644 index_icons/osx/binhex.png create mode 100644 index_icons/osx/cd.png create mode 100644 index_icons/osx/comp.png create mode 100644 index_icons/osx/compressed.png create mode 100644 index_icons/osx/dir.png create mode 100644 index_icons/osx/dll.png create mode 100644 index_icons/osx/doc.png create mode 100644 index_icons/osx/generic.png create mode 100644 index_icons/osx/image.png create mode 100644 index_icons/osx/java.png create mode 100644 index_icons/osx/js.png create mode 100644 index_icons/osx/key.png create mode 100644 index_icons/osx/login.png create mode 100644 index_icons/osx/mov.png create mode 100644 index_icons/osx/movie.png create mode 100644 index_icons/osx/new.png create mode 100644 index_icons/osx/pdf.png create mode 100644 index_icons/osx/php.png create mode 100644 index_icons/osx/ppt.png create mode 100644 index_icons/osx/ps.png create mode 100644 index_icons/osx/search.png create mode 100644 index_icons/osx/sound.png create mode 100644 index_icons/osx/srt.png create mode 100644 index_icons/osx/sub.png create mode 100644 index_icons/osx/subtitle.png create mode 100644 index_icons/osx/tar.png create mode 100644 index_icons/osx/text.png create mode 100644 index_icons/osx/torrent.png create mode 100644 index_icons/osx/unknown.png create mode 100644 index_icons/osx/uu.png create mode 100644 index_icons/osx/web.png create mode 100644 index_icons/osx/xls.png create mode 100644 index_icons/winvista/ass.png create mode 100644 index_icons/winvista/back.png create mode 100644 index_icons/winvista/binary.png create mode 100644 index_icons/winvista/binhex.png create mode 100644 index_icons/winvista/cd.png create mode 100644 index_icons/winvista/comp.png create mode 100644 index_icons/winvista/compressed.png create mode 100644 index_icons/winvista/dir.png create mode 100644 index_icons/winvista/dll.png create mode 100644 index_icons/winvista/doc.png create mode 100644 index_icons/winvista/generic.png create mode 100644 index_icons/winvista/image.png create mode 100644 index_icons/winvista/java.png create mode 100644 index_icons/winvista/js.png create mode 100644 index_icons/winvista/key.png create mode 100644 index_icons/winvista/login.png create mode 100644 index_icons/winvista/mov.png create mode 100644 index_icons/winvista/movie.png create mode 100644 index_icons/winvista/new.png create mode 100644 index_icons/winvista/pdf.png create mode 100644 index_icons/winvista/php.png create mode 100644 index_icons/winvista/ppt.png create mode 100644 index_icons/winvista/ps.png create mode 100644 index_icons/winvista/search.png create mode 100644 index_icons/winvista/sound.png create mode 100644 index_icons/winvista/srt.png create mode 100644 index_icons/winvista/sub.png create mode 100644 index_icons/winvista/subtitle.png create mode 100644 index_icons/winvista/tar.png create mode 100644 index_icons/winvista/text.png create mode 100644 index_icons/winvista/torrent.png create mode 100644 index_icons/winvista/unknown.png create mode 100644 index_icons/winvista/uu.png create mode 100644 index_icons/winvista/web.png create mode 100644 index_icons/winvista/xls.png create mode 100644 index_icons/winxp/ass.png create mode 100644 index_icons/winxp/back.png create mode 100644 index_icons/winxp/binary.png create mode 100644 index_icons/winxp/binhex.png create mode 100644 index_icons/winxp/cd.png create mode 100644 index_icons/winxp/comp.png create mode 100644 index_icons/winxp/compressed.png create mode 100644 index_icons/winxp/dir.png create mode 100644 index_icons/winxp/dll.png create mode 100644 index_icons/winxp/doc.png create mode 100644 index_icons/winxp/generic.png create mode 100644 index_icons/winxp/image.png create mode 100644 index_icons/winxp/java.png create mode 100644 index_icons/winxp/js.png create mode 100644 index_icons/winxp/key.png create mode 100644 index_icons/winxp/login.png create mode 100644 index_icons/winxp/mov.png create mode 100644 index_icons/winxp/movie.png create mode 100644 index_icons/winxp/new.png create mode 100644 index_icons/winxp/pdf.png create mode 100644 index_icons/winxp/php.png create mode 100644 index_icons/winxp/ppt.png create mode 100644 index_icons/winxp/ps.png create mode 100644 index_icons/winxp/search.png create mode 100644 index_icons/winxp/sound.png create mode 100644 index_icons/winxp/srt.png create mode 100644 index_icons/winxp/sub.png create mode 100644 index_icons/winxp/subtitle.png create mode 100644 index_icons/winxp/tar.png create mode 100644 index_icons/winxp/text.png create mode 100644 index_icons/winxp/torrent.png create mode 100644 index_icons/winxp/unknown.png create mode 100644 index_icons/winxp/uu.png create mode 100644 index_icons/winxp/web.png create mode 100644 index_icons/winxp/xls.png create mode 100644 languages/al.txt create mode 100644 languages/ar.txt create mode 100644 languages/bg.txt create mode 100644 languages/ca.txt create mode 100644 languages/cz.txt create mode 100644 languages/da.txt create mode 100644 languages/de.txt create mode 100644 languages/el.txt create mode 100644 languages/en.txt create mode 100644 languages/es.txt create mode 100644 languages/fr.txt create mode 100644 languages/hu.txt create mode 100644 languages/it.txt create mode 100644 languages/ja.txt create mode 100644 languages/ko.txt create mode 100644 languages/ms.txt create mode 100644 languages/nl.txt create mode 100644 languages/no.txt create mode 100644 languages/pl.txt create mode 100644 languages/pt_BR.txt create mode 100644 languages/ru.txt create mode 100644 languages/sk.txt create mode 100644 languages/sv.txt create mode 100644 languages/th.txt create mode 100644 languages/tr.txt create mode 100644 license.html create mode 100644 meta.inc create mode 100644 robots.txt create mode 100644 templates/SwiftBlue/SwiftBlue.cfg create mode 100644 templates/SwiftBlue/SwiftBlue.css create mode 100644 templates/SwiftBlue/admin/SwiftBlue.css create mode 100644 templates/SwiftBlue/admin/admin.css create mode 100644 templates/SwiftBlue/admin/index.htm create mode 100644 templates/SwiftBlue/admin/mainpage_header.html create mode 100644 templates/SwiftBlue/alternate.css create mode 100644 templates/SwiftBlue/bbcode.html create mode 100644 templates/SwiftBlue/biblia_online.js create mode 100644 templates/SwiftBlue/default.css create mode 100644 templates/SwiftBlue/documente.js create mode 100644 templates/SwiftBlue/dynifs.js create mode 100644 templates/SwiftBlue/each_file.tpl create mode 100644 templates/SwiftBlue/editor.js create mode 100644 templates/SwiftBlue/error_body.html create mode 100644 templates/SwiftBlue/forum_fn.js create mode 100644 templates/SwiftBlue/full_page_body.html create mode 100644 templates/SwiftBlue/gecko.css create mode 100644 templates/SwiftBlue/global_footer.tpl create mode 100644 templates/SwiftBlue/global_header.tpl create mode 100644 templates/SwiftBlue/images/block_icons/block_cache.gif create mode 100644 templates/SwiftBlue/images/block_icons/block_delete.gif create mode 100644 templates/SwiftBlue/images/block_icons/block_edit.gif create mode 100644 templates/SwiftBlue/images/block_icons/block_edit2.gif create mode 100644 templates/SwiftBlue/images/block_icons/block_edit_admin.gif create mode 100644 templates/SwiftBlue/images/block_icons/block_edit_split.gif create mode 100644 templates/SwiftBlue/images/block_icons/block_hidden.gif create mode 100644 templates/SwiftBlue/images/block_icons/block_move_down.gif create mode 100644 templates/SwiftBlue/images/block_icons/block_move_left.gif create mode 100644 templates/SwiftBlue/images/block_icons/block_move_right.gif create mode 100644 templates/SwiftBlue/images/block_icons/block_move_up.gif create mode 100644 templates/SwiftBlue/images/block_icons/contract.gif create mode 100644 templates/SwiftBlue/images/block_icons/expand.gif create mode 100644 templates/SwiftBlue/images/block_icons/spacer.gif create mode 100644 templates/SwiftBlue/images/cellpic.gif create mode 100644 templates/SwiftBlue/images/cellpic1.gif create mode 100644 templates/SwiftBlue/images/cellpic2.jpg create mode 100644 templates/SwiftBlue/images/cellpic3.gif create mode 100644 templates/SwiftBlue/images/index.htm create mode 100644 templates/SwiftBlue/images/logo.gif create mode 100644 templates/SwiftBlue/images/logo_med.gif create mode 100644 templates/SwiftBlue/images/logo_mxBB.gif create mode 100644 templates/SwiftBlue/images/page_icons/nav_about_us.gif create mode 100644 templates/SwiftBlue/images/page_icons/nav_announcement.gif create mode 100644 templates/SwiftBlue/images/page_icons/nav_bible.gif create mode 100644 templates/SwiftBlue/images/page_icons/nav_calendar.gif create mode 100644 templates/SwiftBlue/images/page_icons/nav_chatbox.gif create mode 100644 templates/SwiftBlue/images/page_icons/nav_develope.gif create mode 100644 templates/SwiftBlue/images/page_icons/nav_download.gif create mode 100644 templates/SwiftBlue/images/page_icons/nav_ekklesia.gif create mode 100644 templates/SwiftBlue/images/page_icons/nav_email.gif create mode 100644 templates/SwiftBlue/images/page_icons/nav_email2.gif create mode 100644 templates/SwiftBlue/images/page_icons/nav_explorer.gif create mode 100644 templates/SwiftBlue/images/page_icons/nav_forum.gif create mode 100644 templates/SwiftBlue/images/page_icons/nav_guestbook.gif create mode 100644 templates/SwiftBlue/images/page_icons/nav_help.gif create mode 100644 templates/SwiftBlue/images/page_icons/nav_home.gif create mode 100644 templates/SwiftBlue/images/page_icons/nav_info.gif create mode 100644 templates/SwiftBlue/images/page_icons/nav_login.gif create mode 100644 templates/SwiftBlue/images/page_icons/nav_members.gif create mode 100644 templates/SwiftBlue/images/page_icons/nav_musik.gif create mode 100644 templates/SwiftBlue/images/page_icons/nav_mydoc.gif create mode 100644 templates/SwiftBlue/images/page_icons/nav_news.gif create mode 100644 templates/SwiftBlue/images/page_icons/nav_profile.gif create mode 100644 templates/SwiftBlue/images/page_icons/nav_promote.gif create mode 100644 templates/SwiftBlue/images/page_icons/nav_radio.gif create mode 100644 templates/SwiftBlue/images/page_icons/nav_rate.gif create mode 100644 templates/SwiftBlue/images/page_icons/nav_register.gif create mode 100644 templates/SwiftBlue/images/page_icons/nav_search.gif create mode 100644 templates/SwiftBlue/images/page_icons/nav_settings.gif create mode 100644 templates/SwiftBlue/images/page_icons/nav_sponsors.gif create mode 100644 templates/SwiftBlue/images/page_icons/nav_statistics.gif create mode 100644 templates/SwiftBlue/images/page_icons/nav_theme.gif create mode 100644 templates/SwiftBlue/images/page_icons/nav_theme2.gif create mode 100644 templates/SwiftBlue/images/page_icons/nav_weblinks.gif create mode 100644 templates/SwiftBlue/images/page_icons/plus.gif create mode 100644 templates/SwiftBlue/images/page_icons/spacer.gif create mode 100644 templates/SwiftBlue/images/page_icons/thumb_globe.gif create mode 100644 templates/SwiftBlue/images/page_icons/thumb_news.gif create mode 100644 templates/SwiftBlue/images/spacer.gif create mode 100644 templates/SwiftBlue/images/subscribe.gif create mode 100644 templates/SwiftBlue/images/whosonline.gif create mode 100644 templates/SwiftBlue/index.htm create mode 100644 templates/SwiftBlue/intro2.js create mode 100644 templates/SwiftBlue/jumpbox.html create mode 100644 templates/SwiftBlue/login_body.html create mode 100644 templates/SwiftBlue/message_body.html create mode 100644 templates/SwiftBlue/mx_main_layout.html create mode 100644 templates/SwiftBlue/overall_footer.html create mode 100644 templates/SwiftBlue/overall_header.html create mode 100644 templates/SwiftBlue/overall_header_navigation.html create mode 100644 templates/SwiftBlue/overall_header_navigation_phpbb.html create mode 100644 templates/SwiftBlue/overall_header_navigation_phpbb2.html create mode 100644 templates/SwiftBlue/overall_header_phpbb3.html create mode 100644 templates/SwiftBlue/overall_noheader.html create mode 100644 templates/SwiftBlue/posting_smilies.html create mode 100644 templates/SwiftBlue/rollout.js create mode 100644 templates/SwiftBlue/rollout_main.js create mode 100644 templates/SwiftBlue/styleswitcher.js create mode 100644 templates/SwiftBlue/table_footer.tpl create mode 100644 templates/SwiftBlue/table_header.tpl create mode 100644 templates/SwiftBlue/wallpapers.js create mode 100644 templates/default/alternate.css create mode 100644 templates/default/default.css create mode 100644 templates/default/each_file (alternative with direct links).tpl create mode 100644 templates/default/each_file.tpl create mode 100644 templates/default/global_footer.tpl create mode 100644 templates/default/global_header.tpl create mode 100644 templates/default/table_footer.tpl create mode 100644 templates/default/table_header.tpl create mode 100644 templates/index.htm create mode 100644 templates/readme.html create mode 100644 templates/simple_image_gallery/default.css create mode 100644 templates/simple_image_gallery/each_file.tpl create mode 100644 templates/simple_image_gallery/global_footer.tpl create mode 100644 templates/simple_image_gallery/global_header.tpl create mode 100644 templates/simple_image_gallery/table_footer.tpl create mode 100644 templates/simple_image_gallery/table_header.tpl create mode 100644 templates/spacer.gif diff --git a/AutoIndex.conf.php b/AutoIndex.conf.php new file mode 100644 index 0000000..c921e39 --- /dev/null +++ b/AutoIndex.conf.php @@ -0,0 +1,32 @@ + \ No newline at end of file diff --git a/LICENSE b/LICENSE index d159169..deea646 100644 --- a/LICENSE +++ b/LICENSE @@ -1,295 +1,92 @@ - GNU GENERAL PUBLIC LICENSE - Version 2, June 1991 +GNU General Public License - Copyright (C) 1989, 1991 Free Software Foundation, Inc., - 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - Everyone is permitted to copy and distribute verbatim copies - of this license document, but changing it is not allowed. +Version 2, June 1991 +Copyright (C) 1989, 1991 Free Software Foundation, Inc. +59 Temple Place - Suite 330, Boston, MA 02111-1307, USA - Preamble +Everyone is permitted to copy and distribute verbatim copies +of this license document, but changing it is not allowed. +Preamble - The licenses for most software are designed to take away your -freedom to share and change it. By contrast, the GNU General Public -License is intended to guarantee your freedom to share and change free -software--to make sure the software is free for all its users. This -General Public License applies to most of the Free Software -Foundation's software and to any other program whose authors commit to -using it. (Some other Free Software Foundation software is covered by -the GNU Lesser General Public License instead.) You can apply it to -your programs, too. +The licenses for most software are designed to take away your freedom to share and change it. By contrast, the GNU General Public License is intended to guarantee your freedom to share and change free software--to make sure the software is free for all its users. This General Public License applies to most of the Free Software Foundation's software and to any other program whose authors commit to using it. (Some other Free Software Foundation software is covered by the GNU Library General Public License instead.) You can apply it to your programs, too. - When we speak of free software, we are referring to freedom, not -price. Our General Public Licenses are designed to make sure that you -have the freedom to distribute copies of free software (and charge for -this service if you wish), that you receive source code or can get it -if you want it, that you can change the software or use pieces of it -in new free programs; and that you know you can do these things. +When we speak of free software, we are referring to freedom, not price. Our General Public Licenses are designed to make sure that you have the freedom to distribute copies of free software (and charge for this service if you wish), that you receive source code or can get it if you want it, that you can change the software or use pieces of it in new free programs; and that you know you can do these things. - To protect your rights, we need to make restrictions that forbid -anyone to deny you these rights or to ask you to surrender the rights. -These restrictions translate to certain responsibilities for you if you -distribute copies of the software, or if you modify it. +To protect your rights, we need to make restrictions that forbid anyone to deny you these rights or to ask you to surrender the rights. These restrictions translate to certain responsibilities for you if you distribute copies of the software, or if you modify it. - For example, if you distribute copies of such a program, whether -gratis or for a fee, you must give the recipients all the rights that -you have. You must make sure that they, too, receive or can get the -source code. And you must show them these terms so they know their -rights. +For example, if you distribute copies of such a program, whether gratis or for a fee, you must give the recipients all the rights that you have. You must make sure that they, too, receive or can get the source code. And you must show them these terms so they know their rights. - We protect your rights with two steps: (1) copyright the software, and -(2) offer you this license which gives you legal permission to copy, -distribute and/or modify the software. +We protect your rights with two steps: (1) copyright the software, and (2) offer you this license which gives you legal permission to copy, distribute and/or modify the software. - Also, for each author's protection and ours, we want to make certain -that everyone understands that there is no warranty for this free -software. If the software is modified by someone else and passed on, we -want its recipients to know that what they have is not the original, so -that any problems introduced by others will not reflect on the original -authors' reputations. +Also, for each author's protection and ours, we want to make certain that everyone understands that there is no warranty for this free software. If the software is modified by someone else and passed on, we want its recipients to know that what they have is not the original, so that any problems introduced by others will not reflect on the original authors' reputations. - Finally, any free program is threatened constantly by software -patents. We wish to avoid the danger that redistributors of a free -program will individually obtain patent licenses, in effect making the -program proprietary. To prevent this, we have made it clear that any -patent must be licensed for everyone's free use or not licensed at all. +Finally, any free program is threatened constantly by software patents. We wish to avoid the danger that redistributors of a free program will individually obtain patent licenses, in effect making the program proprietary. To prevent this, we have made it clear that any patent must be licensed for everyone's free use or not licensed at all. - The precise terms and conditions for copying, distribution and -modification follow. +The precise terms and conditions for copying, distribution and modification follow. - GNU GENERAL PUBLIC LICENSE - TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION +TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION - 0. This License applies to any program or other work which contains -a notice placed by the copyright holder saying it may be distributed -under the terms of this General Public License. The "Program", below, -refers to any such program or work, and a "work based on the Program" -means either the Program or any derivative work under copyright law: -that is to say, a work containing the Program or a portion of it, -either verbatim or with modifications and/or translated into another -language. (Hereinafter, translation is included without limitation in -the term "modification".) Each licensee is addressed as "you". +0. This License applies to any program or other work which contains a notice placed by the copyright holder saying it may be distributed under the terms of this General Public License. The "Program", below, refers to any such program or work, and a "work based on the Program" means either the Program or any derivative work under copyright law: that is to say, a work containing the Program or a portion of it, either verbatim or with modifications and/or translated into another language. (Hereinafter, translation is included without limitation in the term "modification".) Each licensee is addressed as "you". -Activities other than copying, distribution and modification are not -covered by this License; they are outside its scope. The act of -running the Program is not restricted, and the output from the Program -is covered only if its contents constitute a work based on the -Program (independent of having been made by running the Program). -Whether that is true depends on what the Program does. +Activities other than copying, distribution and modification are not covered by this License; they are outside its scope. The act of running the Program is not restricted, and the output from the Program is covered only if its contents constitute a work based on the Program (independent of having been made by running the Program). Whether that is true depends on what the Program does. - 1. You may copy and distribute verbatim copies of the Program's -source code as you receive it, in any medium, provided that you -conspicuously and appropriately publish on each copy an appropriate -copyright notice and disclaimer of warranty; keep intact all the -notices that refer to this License and to the absence of any warranty; -and give any other recipients of the Program a copy of this License -along with the Program. +1. You may copy and distribute verbatim copies of the Program's source code as you receive it, in any medium, provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice and disclaimer of warranty; keep intact all the notices that refer to this License and to the absence of any warranty; and give any other recipients of the Program a copy of this License along with the Program. -You may charge a fee for the physical act of transferring a copy, and -you may at your option offer warranty protection in exchange for a fee. +You may charge a fee for the physical act of transferring a copy, and you may at your option offer warranty protection in exchange for a fee. - 2. You may modify your copy or copies of the Program or any portion -of it, thus forming a work based on the Program, and copy and -distribute such modifications or work under the terms of Section 1 -above, provided that you also meet all of these conditions: +2. You may modify your copy or copies of the Program or any portion of it, thus forming a work based on the Program, and copy and distribute such modifications or work under the terms of Section 1 above, provided that you also meet all of these conditions: + * a) You must cause the modified files to carry prominent notices stating that you changed the files and the date of any change. + * b) You must cause any work that you distribute or publish, that in whole or in part contains or is derived from the Program or any part thereof, to be licensed as a whole at no charge to all third parties under the terms of this License. + * c) If the modified program normally reads commands interactively when run, you must cause it, when started running for such interactive use in the most ordinary way, to print or display an announcement including an appropriate copyright notice and a notice that there is no warranty (or else, saying that you provide a warranty) and that users may redistribute the program under these conditions, and telling the user how to view a copy of this License. (Exception: if the Program itself is interactive but does not normally print such an announcement, your work based on the Program is not required to print an announcement.) +These requirements apply to the modified work as a whole. If identifiable sections of that work are not derived from the Program, and can be reasonably considered independent and separate works in themselves, then this License, and its terms, do not apply to those sections when you distribute them as separate works. But when you distribute the same sections as part of a whole which is a work based on the Program, the distribution of the whole must be on the terms of this License, whose permissions for other licensees extend to the entire whole, and thus to each and every part regardless of who wrote it. - a) You must cause the modified files to carry prominent notices - stating that you changed the files and the date of any change. +Thus, it is not the intent of this section to claim rights or contest your rights to work written entirely by you; rather, the intent is to exercise the right to control the distribution of derivative or collective works based on the Program. - b) You must cause any work that you distribute or publish, that in - whole or in part contains or is derived from the Program or any - part thereof, to be licensed as a whole at no charge to all third - parties under the terms of this License. +In addition, mere aggregation of another work not based on the Program with the Program (or with a work based on the Program) on a volume of a storage or distribution medium does not bring the other work under the scope of this License. - c) If the modified program normally reads commands interactively - when run, you must cause it, when started running for such - interactive use in the most ordinary way, to print or display an - announcement including an appropriate copyright notice and a - notice that there is no warranty (or else, saying that you provide - a warranty) and that users may redistribute the program under - these conditions, and telling the user how to view a copy of this - License. (Exception: if the Program itself is interactive but - does not normally print such an announcement, your work based on - the Program is not required to print an announcement.) +3. You may copy and distribute the Program (or a work based on it, under Section 2) in object code or executable form under the terms of Sections 1 and 2 above provided that you also do one of the following: + * a) Accompany it with the complete corresponding machine-readable source code, which must be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or, + * b) Accompany it with a written offer, valid for at least three years, to give any third party, for a charge no more than your cost of physically performing source distribution, a complete machine-readable copy of the corresponding source code, to be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or, + * c) Accompany it with the information you received as to the offer to distribute corresponding source code. (This alternative is allowed only for noncommercial distribution and only if you received the program in object code or executable form with such an offer, in accord with Subsection b above.) +The source code for a work means the preferred form of the work for making modifications to it. For an executable work, complete source code means all the source code for all modules it contains, plus any associated interface definition files, plus the scripts used to control compilation and installation of the executable. However, as a special exception, the source code distributed need not include anything that is normally distributed (in either source or binary form) with the major components (compiler, kernel, and so on) of the operating system on which the executable runs, unless that component itself accompanies the executable. -These requirements apply to the modified work as a whole. If -identifiable sections of that work are not derived from the Program, -and can be reasonably considered independent and separate works in -themselves, then this License, and its terms, do not apply to those -sections when you distribute them as separate works. But when you -distribute the same sections as part of a whole which is a work based -on the Program, the distribution of the whole must be on the terms of -this License, whose permissions for other licensees extend to the -entire whole, and thus to each and every part regardless of who wrote it. +If distribution of executable or object code is made by offering access to copy from a designated place, then offering equivalent access to copy the source code from the same place counts as distribution of the source code, even though third parties are not compelled to copy the source along with the object code. -Thus, it is not the intent of this section to claim rights or contest -your rights to work written entirely by you; rather, the intent is to -exercise the right to control the distribution of derivative or -collective works based on the Program. +4. You may not copy, modify, sublicense, or distribute the Program except as expressly provided under this License. Any attempt otherwise to copy, modify, sublicense or distribute the Program is void, and will automatically terminate your rights under this License. However, parties who have received copies, or rights, from you under this License will not have their licenses terminated so long as such parties remain in full compliance. -In addition, mere aggregation of another work not based on the Program -with the Program (or with a work based on the Program) on a volume of -a storage or distribution medium does not bring the other work under -the scope of this License. +5. You are not required to accept this License, since you have not signed it. However, nothing else grants you permission to modify or distribute the Program or its derivative works. These actions are prohibited by law if you do not accept this License. Therefore, by modifying or distributing the Program (or any work based on the Program), you indicate your acceptance of this License to do so, and all its terms and conditions for copying, distributing or modifying the Program or works based on it. - 3. You may copy and distribute the Program (or a work based on it, -under Section 2) in object code or executable form under the terms of -Sections 1 and 2 above provided that you also do one of the following: +6. Each time you redistribute the Program (or any work based on the Program), the recipient automatically receives a license from the original licensor to copy, distribute or modify the Program subject to these terms and conditions. You may not impose any further restrictions on the recipients' exercise of the rights granted herein. You are not responsible for enforcing compliance by third parties to this License. - a) Accompany it with the complete corresponding machine-readable - source code, which must be distributed under the terms of Sections - 1 and 2 above on a medium customarily used for software interchange; or, +7. If, as a consequence of a court judgment or allegation of patent infringement or for any other reason (not limited to patent issues), conditions are imposed on you (whether by court order, agreement or otherwise) that contradict the conditions of this License, they do not excuse you from the conditions of this License. If you cannot distribute so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may not distribute the Program at all. For example, if a patent license would not permit royalty-free redistribution of the Program by all those who receive copies directly or indirectly through you, then the only way you could satisfy both it and this License would be to refrain entirely from distribution of the Program. - b) Accompany it with a written offer, valid for at least three - years, to give any third party, for a charge no more than your - cost of physically performing source distribution, a complete - machine-readable copy of the corresponding source code, to be - distributed under the terms of Sections 1 and 2 above on a medium - customarily used for software interchange; or, +If any portion of this section is held invalid or unenforceable under any particular circumstance, the balance of the section is intended to apply and the section as a whole is intended to apply in other circumstances. - c) Accompany it with the information you received as to the offer - to distribute corresponding source code. (This alternative is - allowed only for noncommercial distribution and only if you - received the program in object code or executable form with such - an offer, in accord with Subsection b above.) +It is not the purpose of this section to induce you to infringe any patents or other property right claims or to contest validity of any such claims; this section has the sole purpose of protecting the integrity of the free software distribution system, which is implemented by public license practices. Many people have made generous contributions to the wide range of software distributed through that system in reliance on consistent application of that system; it is up to the author/donor to decide if he or she is willing to distribute software through any other system and a licensee cannot impose that choice. -The source code for a work means the preferred form of the work for -making modifications to it. For an executable work, complete source -code means all the source code for all modules it contains, plus any -associated interface definition files, plus the scripts used to -control compilation and installation of the executable. However, as a -special exception, the source code distributed need not include -anything that is normally distributed (in either source or binary -form) with the major components (compiler, kernel, and so on) of the -operating system on which the executable runs, unless that component -itself accompanies the executable. +This section is intended to make thoroughly clear what is believed to be a consequence of the rest of this License. -If distribution of executable or object code is made by offering -access to copy from a designated place, then offering equivalent -access to copy the source code from the same place counts as -distribution of the source code, even though third parties are not -compelled to copy the source along with the object code. +8. If the distribution and/or use of the Program is restricted in certain countries either by patents or by copyrighted interfaces, the original copyright holder who places the Program under this License may add an explicit geographical distribution limitation excluding those countries, so that distribution is permitted only in or among countries not thus excluded. In such case, this License incorporates the limitation as if written in the body of this License. - 4. You may not copy, modify, sublicense, or distribute the Program -except as expressly provided under this License. Any attempt -otherwise to copy, modify, sublicense or distribute the Program is -void, and will automatically terminate your rights under this License. -However, parties who have received copies, or rights, from you under -this License will not have their licenses terminated so long as such -parties remain in full compliance. +9. The Free Software Foundation may publish revised and/or new versions of the General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns. - 5. You are not required to accept this License, since you have not -signed it. However, nothing else grants you permission to modify or -distribute the Program or its derivative works. These actions are -prohibited by law if you do not accept this License. Therefore, by -modifying or distributing the Program (or any work based on the -Program), you indicate your acceptance of this License to do so, and -all its terms and conditions for copying, distributing or modifying -the Program or works based on it. +Each version is given a distinguishing version number. If the Program specifies a version number of this License which applies to it and "any later version", you have the option of following the terms and conditions either of that version or of any later version published by the Free Software Foundation. If the Program does not specify a version number of this License, you may choose any version ever published by the Free Software Foundation. - 6. Each time you redistribute the Program (or any work based on the -Program), the recipient automatically receives a license from the -original licensor to copy, distribute or modify the Program subject to -these terms and conditions. You may not impose any further -restrictions on the recipients' exercise of the rights granted herein. -You are not responsible for enforcing compliance by third parties to -this License. +10. If you wish to incorporate parts of the Program into other free programs whose distribution conditions are different, write to the author to ask for permission. For software which is copyrighted by the Free Software Foundation, write to the Free Software Foundation; we sometimes make exceptions for this. Our decision will be guided by the two goals of preserving the free status of all derivatives of our free software and of promoting the sharing and reuse of software generally. - 7. If, as a consequence of a court judgment or allegation of patent -infringement or for any other reason (not limited to patent issues), -conditions are imposed on you (whether by court order, agreement or -otherwise) that contradict the conditions of this License, they do not -excuse you from the conditions of this License. If you cannot -distribute so as to satisfy simultaneously your obligations under this -License and any other pertinent obligations, then as a consequence you -may not distribute the Program at all. For example, if a patent -license would not permit royalty-free redistribution of the Program by -all those who receive copies directly or indirectly through you, then -the only way you could satisfy both it and this License would be to -refrain entirely from distribution of the Program. +NO WARRANTY -If any portion of this section is held invalid or unenforceable under -any particular circumstance, the balance of the section is intended to -apply and the section as a whole is intended to apply in other -circumstances. +11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. -It is not the purpose of this section to induce you to infringe any -patents or other property right claims or to contest validity of any -such claims; this section has the sole purpose of protecting the -integrity of the free software distribution system, which is -implemented by public license practices. Many people have made -generous contributions to the wide range of software distributed -through that system in reliance on consistent application of that -system; it is up to the author/donor to decide if he or she is willing -to distribute software through any other system and a licensee cannot -impose that choice. +12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. -This section is intended to make thoroughly clear what is believed to -be a consequence of the rest of this License. +END OF TERMS AND CONDITIONS - 8. If the distribution and/or use of the Program is restricted in -certain countries either by patents or by copyrighted interfaces, the -original copyright holder who places the Program under this License -may add an explicit geographical distribution limitation excluding -those countries, so that distribution is permitted only in or among -countries not thus excluded. In such case, this License incorporates -the limitation as if written in the body of this License. +How to Apply These Terms to Your New Programs - 9. The Free Software Foundation may publish revised and/or new versions -of the General Public License from time to time. Such new versions will -be similar in spirit to the present version, but may differ in detail to -address new problems or concerns. - -Each version is given a distinguishing version number. If the Program -specifies a version number of this License which applies to it and "any -later version", you have the option of following the terms and conditions -either of that version or of any later version published by the Free -Software Foundation. If the Program does not specify a version number of -this License, you may choose any version ever published by the Free Software -Foundation. - - 10. If you wish to incorporate parts of the Program into other free -programs whose distribution conditions are different, write to the author -to ask for permission. For software which is copyrighted by the Free -Software Foundation, write to the Free Software Foundation; we sometimes -make exceptions for this. Our decision will be guided by the two goals -of preserving the free status of all derivatives of our free software and -of promoting the sharing and reuse of software generally. - - NO WARRANTY - - 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY -FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN -OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES -PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED -OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF -MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS -TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE -PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, -REPAIR OR CORRECTION. - - 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING -WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR -REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, -INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING -OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED -TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY -YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER -PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE -POSSIBILITY OF SUCH DAMAGES. - - END OF TERMS AND CONDITIONS - - How to Apply These Terms to Your New Programs - - If you develop a new program, and you want it to be of the greatest -possible use to the public, the best way to achieve this is to make it -free software which everyone can redistribute and change under these terms. - - To do so, attach the following notices to the program. It is safest -to attach them to the start of each source file to most effectively -convey the exclusion of warranty; and each file should have at least -the "copyright" line and a pointer to where the full notice is found. +If you develop a new program, and you want it to be of the greatest possible use to the public, the best way to achieve this is to make it free software which everyone can redistribute and change under these terms. +To do so, attach the following notices to the program. It is safest to attach them to the start of each source file to most effectively convey the exclusion of warranty; and each file should have at least the "copyright" line and a pointer to where the full notice is found. Copyright (C) @@ -303,37 +100,22 @@ the "copyright" line and a pointer to where the full notice is found. MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - You should have received a copy of the GNU General Public License along - with this program; if not, write to the Free Software Foundation, Inc., - 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. - + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA Also add information on how to contact you by electronic and paper mail. -If the program is interactive, make it output a short notice like this -when it starts in an interactive mode: - +If the program is interactive, make it output a short notice like this when it starts in an interactive mode: Gnomovision version 69, Copyright (C) year name of author Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. This is free software, and you are welcome to redistribute it under certain conditions; type `show c' for details. +The hypothetical commands `show w' and `show c' should show the appropriate parts of the General Public License. Of course, the commands you use may be called something other than `show w' and `show c'; they could even be mouse-clicks or menu items--whatever suits your program. -The hypothetical commands `show w' and `show c' should show the appropriate -parts of the General Public License. Of course, the commands you use may -be called something other than `show w' and `show c'; they could even be -mouse-clicks or menu items--whatever suits your program. - -You should also get your employer (if you work as a programmer) or your -school, if any, to sign a "copyright disclaimer" for the program, if -necessary. Here is a sample; alter the names: - +You should also get your employer (if you work as a programmer) or your school, if any, to sign a "copyright disclaimer" for the program, if necessary. Here is a sample; alter the names: Yoyodyne, Inc., hereby disclaims all copyright interest in the program `Gnomovision' (which makes passes at compilers) written by James Hacker. , 1 April 1989 Ty Coon, President of Vice - -This General Public License does not permit incorporating your program into -proprietary programs. If your program is a subroutine library, you may -consider it more useful to permit linking proprietary applications with the -library. If this is what you want to do, use the GNU Lesser General -Public License instead of this License. +This General Public License does not permit incorporating your program into proprietary programs. If your program is a subroutine library, you may consider it more useful to permit linking proprietary applications with the library. If this is what you want to do, use the GNU Library General Public License instead of this License. \ No newline at end of file diff --git a/access.log b/access.log new file mode 100644 index 0000000..35d1505 --- /dev/null +++ b/access.log @@ -0,0 +1 @@ +https://github.com/BeitDina/AutoIndex/invitations \ No newline at end of file diff --git a/blank.html b/blank.html new file mode 100644 index 0000000..b60bcc6 --- /dev/null +++ b/blank.html @@ -0,0 +1,33 @@ + + + + + +

blank.html - Needed for Internet Explorer's hidden IFrame

+ + diff --git a/change_log.html b/change_log.html new file mode 100644 index 0000000..28b6b5a --- /dev/null +++ b/change_log.html @@ -0,0 +1,182 @@ + + + + AutoIndex PHP Script: Change Log + + + + + + + + + + + + + + + +

+ AutoIndex PHP Script, + by Justin Hagstrom, Florin C. Bodin +

+
+ Change Log  +
+
+

+ Legend: +
(+) Added feature +
(!) Security bug fixed +
(-) Bug fixed +
(*) Improved/changed feature +
( ) Non-code change +

+

+ Version 2.2.5 by FlorinCB aka orynider (2019-Sept-17) +
(*) Added language flags feature +
( ) Added language flags to flag/language/ folder. +
(*) Added SwiftBlue template for smartphones.
+

+

+ + Version 2.2.4 (2007-Nov-09) +
(!) Fixed DOS bug +
( ) Added Vista icon set +

+

+ Version 2.2.3 (2007-Nov-05) +
(!) Fixed XSS bug +

+ +

+ Version 2.2.2 (2007-Jul-24) +
(!) Fixed XSS bug in search feature + +

+

+ Version 2.2.1 (2007-Jan-06) +
(*) Improved handling of passwords with .htaccess +
(*) Improved default stylesheet +
( ) Added Danish translation +
( ) Updated Dutch translation +

+ +

+ Version 2.2.0 (2006-Jan-02) +
(+) Added a pagination feature +
(+) Language is selected based on the user's browser's default +
(+) Added support for PHP 5.1.x and higher +
( ) Added Greek and Japanese translations + +

+

+ Version 2.1.2 (2005-Aug-11) +
(-) Fixed bug when editing descriptions of filenames that have special characters +
( ) Added Czech and Slovak translations + +

+

+ Version 2.1.1 (2005-Jul-06) +
(!) Fixed bug with search box +
( ) Added Swedish translation +

+ +

+ Version 2.1.0 (2005-Feb-14) +
(+) Added a .htaccess parser +
(+) Added an FTP browser +
(+) Added moderator and banned account levels +
(+) Added a feature to let moderators/admins change their own password + +

+

+ + Version 2.0.7 (2005-Jan-14) +
(-) Fixed file_description feature +

+

+ Version 2.0.6 (2005-Jan-04) +
(+) Admins are able to copy files from other servers (similar to "wget") +
( ) Added Thai and Arabic translations + +

+ +

+ Version 2.0.5 (2004-Sep-02) +
(+) When force_download is on, the MIME-type sent depends on the file extension +
(*) Using hidden_files to only show certain files no longer restricts directories +

+

+ + Version 2.0.4 (2004-Aug-17) +
(*) When reconfiguring the script, the current settings are selected instead of the defaults +
( ) Added Polish translation + +

+

+ Version 2.0.3 (2004-Jul-26) +
(*) Nested if-statements can be used in the template files +
(*) Folders do not have to be empty to be deleted +

+

+ Version 2.0.2 (2004-Jul-13) +
(*) All output is XHTML 1.1 compliant +
(*) The do_every template command now does not include the last file listed + +

+

+ Version 2.0.1 (2004-Jul-05) +
(+) Added directory cache feature +
(*) Added include command to the template system +
(-) Fixed search page bug when download_count was on +

+

+ + + Version 2.0.0 (2004-Jun-24) +

+

+ Complete rewrite from version 1.0: +

+
  • + Now uses PHP 5. PHP version 5.0 or higher is required. +
  • + + All the features of version 1, plus: +
    (+) Has a template system for all HTML output +
    (+) Tar archives of directories can be downloaded +
    (+) Each user account can have its own home directory +
    (*) Passwords are stored as a sha-1 hash rather than md5 (this is slightly more secure) +
+ +
+ \ No newline at end of file diff --git a/classes/Accounts.php b/classes/Accounts.php new file mode 100644 index 0000000..f2d5575 --- /dev/null +++ b/classes/Accounts.php @@ -0,0 +1,233 @@ + + * @version 1.0.2 (July 21, 2004) + * @package AutoIndex + */ +class Accounts implements Iterator +{ + /** + * @var array The list of valid accounts taken from the stored file + */ + private $userlist; + + /** + * @var int The size of the $userlist array + */ + private $list_count; + + //begin implementation of Iterator + /** + * @var int $i is used to keep track of the current pointer inside the array when implementing Iterator + */ + private $i; + + /** + * @return User The current element in the array + */ + public function current() + { + if ($this -> i < $this -> list_count) + { + return $this -> userlist[$this -> i]; + } + return false; + } + + /** + * Increments the internal array pointer, then returns the user at that + * new position. + * + * @return User The current position of the pointer in the array + */ + public function next() + { + $this -> i++; + return $this -> current(); + } + + /** + * Sets the internal array pointer to 0. + */ + public function rewind() + { + $this -> i = 0; + } + + /** + * @return bool True if $i is a valid array index + */ + public function valid() + { + return ($this -> i < $this -> list_count); + } + + /** + * @return int Returns $i, the key of the array + */ + public function key() + { + return $this -> i; + } + //end implementation of Iterator + + /** + * Reads the user_list file, and fills the $contents array with the + * valid users. + */ + public function __construct() + { + global $config; + $file = @file($config -> __get('user_list')); + if ($file === false) + { + throw new ExceptionDisplay('Cannot open user account file.'); + } + $this -> userlist = array(); + foreach ($file as $line_num => $line) + { + $line = rtrim($line, "\r\n"); + if (ConfigData::line_is_comment($line)) + { + continue; + } + $parts = explode("\t", $line); + if (count($parts) !== 4) + { + throw new ExceptionDisplay('Incorrect format for user accounts file on line ' + . ($line_num + 1)); + } + $this -> userlist[] = new User($parts[0], $parts[1], $parts[2], $parts[3]); + } + $this -> list_count = count($this -> userlist); + $this -> i = 0; + } + + /** + * @param string $name Username to find the level of + * @return int The level of the user + */ + public function get_level($name) + { + foreach ($this as $look) + { + if (strcasecmp($look -> username, $name) !== 0) + { + continue; + } + $lev = (int)$look -> level; + if ($lev < BANNED || $lev > ADMIN) + { + throw new ExceptionDisplay('Invalid level for user ' + . Url::html_output($name) . '.'); + } + return $lev; + } + throw new ExceptionDisplay('User ' . Url::html_output($name) + . ' does not exist.'); + } + + /** + * @param string $name Username to find the home directory for + * @return string The home directory of $name + */ + public function get_home_dir($name) + { + foreach ($this as $look) + { + if (strcasecmp($look -> username, $name) === 0) + { + return $look -> home_dir; + } + } + throw new ExceptionDisplay('User ' . Url::html_output($name) + . ' does not exist.'); + } + + /** + * Returns $name with the character case the same as it is in the accounts + * file. + * + * @param string $name Username to find the stored case of + * @return string + */ + public function get_stored_case($name) + { + foreach ($this as $look) + { + if (strcasecmp($look -> username, $name) === 0) + { + return $look -> username; + } + } + throw new ExceptionDisplay('User ' . Url::html_output($name) + . ' does not exist.'); + } + + /** + * @param User $user The user to determine if it is valid or not + * @return bool True if the username and password are correct + */ + public function is_valid_user(User $user) + { + foreach ($this as $look) + { + if ($look -> equals($user)) + { + return true; + } + } + return false; + } + + /** + * @param string $name Username to find if it exists or not + * @return bool True if a user exists with the username $name + */ + public function user_exists($name) + { + foreach ($this as $look) + { + if (strcasecmp($look -> username, $name) === 0) + { + return true; + } + } + return false; + } +} + +?> \ No newline at end of file diff --git a/classes/Admin.php b/classes/Admin.php new file mode 100644 index 0000000..3098577 --- /dev/null +++ b/classes/Admin.php @@ -0,0 +1,990 @@ + + * @version 1.1.1 (August 10, 2005) + * @package AutoIndex + */ +class Admin +{ + /** + * @var int The level of the logged in user + */ + private $level; + + /** + * @var string The name of the logged in user + */ + private $username; + + /** + * @param string $path The path of the directory to create + * @return bool True on success, false on failure + */ + public static function mkdir_recursive($path) + { + $path = Item::make_sure_slash($path); + if (@is_dir($path)) + { + return true; + } + if (!self::mkdir_recursive(dirname($path))) + { + return false; + } + return @mkdir($path, 0755); + } + + /** + * Deletes a directory and all its contents. + * + * @param string $path The path of the directory to delete + * @return bool True on success, false on failure + */ + private static function rmdir_recursive($path) + { + $path = Item::make_sure_slash($path); + $list = @scandir($path); + if ($list === false) + { + return false; + } + foreach ($list as $file) + { + if ($file == '' || $file == '.' || $file == '..') + { + continue; + } + $dir = "$path$file/"; + @is_dir($dir) ? self::rmdir_recursive($dir) : @unlink($dir); + } + return @rmdir($path); + } + + /** + * Copies a remote file to the local server. + * + * @param string $protocol Either ftp:// or http:// + * @param string $url The rest of the URL after the protocol + */ + private static function copy_remote_file($protocol, $url) + { + if ($protocol == '' || $url == '') + { + throw new ExceptionDisplay('Please go back and enter a file to copy.'); + } + global $dir; + $local_file = $dir . Item::get_basename($url); + if (@file_exists($local_file)) + { + throw new ExceptionDisplay('The file already exists in this directory.'); + } + $remote = $protocol . $url; + $r = @fopen($remote, 'rb'); + if ($r === false) + { + throw new ExceptionDisplay('Cannot open remote file for reading: ' + . Url::html_output($remote) . ''); + } + $l = @fopen($local_file, 'wb'); + if ($l === false) + { + throw new ExceptionDisplay('Cannot open local file for writing.'); + } + while (true) + { + $temp = fread($r, 8192); + if ($temp === '') + { + break; + } + fwrite($l, $temp); + } + fclose($l); + fclose($r); + } + + /** + * @param string $filename The path to the file that stores the info + * @param string $old_name The old name of the file or folder to update inside of $filename + * @param string $new_name The new name of the file or folder + */ + private static function update_file_info($filename, $old_name, $new_name) + { + if (!@is_file($filename)) + { + throw new ExceptionDisplay('The file ' + . Url::html_output($filename) . ' does not exist.'); + } + $text = @file_get_contents($filename); + if ($text === false) + { + throw new ExceptionDisplay('Cannot open file ' + . Url::html_output($filename) . ' for reading.'); + } + $h = @fopen($filename, 'wb'); + if ($h === false) + { + throw new ExceptionDisplay('Cannot open file ' + . Url::html_output($filename) . ' for writing.'); + } + fwrite($h, preg_replace('/^' . preg_quote($old_name, '/') + . '/m', $new_name, $text)); + fclose($h); + } + + /** + * Validates a potential new password. + * + * @param string $pass1 The new password + * @param string $pass2 The new password typed again + */ + private static function validate_new_password($pass1, $pass2) + { + if ($pass1 != $pass2) + { + throw new ExceptionDisplay('Passwords do not match.'); + } + if (strlen($pass1) < 6) + { + throw new ExceptionDisplay('Password must be at least 6 characters long.'); + } + } + + /** + * Changes a user's password. + * + * @param string $username The username + * @param string $old_pass The user's old password + * @param string $new_pass1 The new password + * @param string $new_pass2 The new password typed again + */ + private static function change_password($username, $old_pass, $new_pass1, $new_pass2) + { + self::validate_new_password($new_pass1, $new_pass2); + $accounts = new Accounts(); + if (!$accounts -> user_exists($username)) + { + throw new ExceptionDisplay('Cannot change password: username does not exist.'); + } + if (!$accounts -> is_valid_user(new User($username, sha1($old_pass)))) + { + throw new ExceptionDisplay('Incorrect old password.'); + } + global $config; + $h = @fopen($config -> __get('user_list'), 'wb'); + if ($h === false) + { + throw new ExceptionDisplay("Could not open file $user_list for writing." + . ' Make sure PHP has write permission to this file.'); + } + foreach ($accounts as $this_user) + { + if (strcasecmp($this_user -> username, $username) === 0) + { + $this_user = new User($username, sha1($new_pass1), $this_user -> level, $this_user -> home_dir); + } + fwrite($h, $this_user -> __toString()); + } + fclose($h); + $_SESSION['password'] = sha1($new_pass1); + throw new ExceptionDisplay('Password successfully changed.'); + } + + /** + * Changes a user's level. + * + * @param string $username The username + * @param int $new_level The user's new level + */ + private static function change_user_level($username, $new_level) + { + if ($new_level < BANNED || $new_level > ADMIN) + { + throw new ExceptionDisplay('Invalid user level.'); + } + $accounts = new Accounts(); + if (!$accounts -> user_exists($username)) + { + throw new ExceptionDisplay('Cannot change level: username does not exist.'); + } + global $config; + $h = @fopen($config -> __get('user_list'), 'wb'); + if ($h === false) + { + throw new ExceptionDisplay("Could not open file $user_list for writing." + . ' Make sure PHP has write permission to this file.'); + } + foreach ($accounts as $this_user) + { + if (strcasecmp($this_user -> username, $username) === 0) + { + $this_user = new User($username, $this_user -> sha1_pass, $new_level, $this_user -> home_dir); + } + fwrite($h, $this_user -> __toString()); + } + fclose($h); + throw new ExceptionDisplay('User level successfully changed.'); + } + + /** + * @param string $username The name of the new user to create + * @param string $pass1 The raw password + * @param string $pass2 The raw password repeated again for verification + * @param int $level The level of the user (use GUEST USER ADMIN constants) + * @param string $home_dir The home directory of the user, or blank for the default + */ + private static function add_user($username, $pass1, $pass2, $level, $home_dir = '') + { + self::validate_new_password($pass1, $pass2); + $username_reg_exp = '/^[A-Za-z0-9_-]+$/'; + if (!preg_match($username_reg_exp, $username)) + { + throw new ExceptionDisplay('The username must only contain alpha-numeric characters, underscores, or dashes.' + . '
It must match the regular expression: ' + . Url::html_output($username_reg_exp) . ''); + } + if ($home_dir != '') + { + $home_dir = Item::make_sure_slash($home_dir); + if (!@is_dir($home_dir)) + { + throw new ExceptionDisplay('The user\'s home directory is not valid directory.'); + } + } + $list = new Accounts(); + if ($list -> user_exists($username)) + { + throw new ExceptionDisplay('This username already exists.'); + } + global $config; + $h = @fopen($config -> __get('user_list'), 'ab'); + if ($h === false) + { + throw new ExceptionDisplay('User list file could not be opened for writing.'); + } + $new_user = new User($username, sha1($pass1), $level, $home_dir); + fwrite($h, $new_user -> __toString()); + fclose($h); + throw new ExceptionDisplay('User successfully added.'); + } + + /** + * @param string $username Deletes user with the name $username + */ + private static function del_user($username) + { + $accounts = new Accounts(); + if (!$accounts -> user_exists($username)) + { + throw new ExceptionDisplay('Cannot delete user: username does not exist.'); + } + global $config; + $h = @fopen($config -> __get('user_list'), 'wb'); + if ($h === false) + { + throw new ExceptionDisplay("Could not open file $user_list for writing." + . ' Make sure PHP has write permission to this file.'); + } + foreach ($accounts as $this_user) + { + if (strcasecmp($this_user -> username, $username) !== 0) + { + fwrite($h, $this_user -> __toString()); + } + } + fclose($h); + throw new ExceptionDisplay('User successfully removed.'); + } + + /** + * @param User $current_user This user is checked to make sure it really is an admin + */ + public function __construct(User $current_user) + { + if (!($current_user instanceof UserLoggedIn)) + { + throw new ExceptionDisplay('You must be logged in to access this section.'); + } + $this -> level = $current_user -> level; + $this -> username = $current_user -> username; + } + + /** + * @param string $action + */ + public function action($action) + { + //This is a list of the actions moderators can do (otherwise, the user must be an admin) + $mod_actions = array('edit_description', 'change_password', 'ftp'); + + if (in_array(strtolower($action), $mod_actions)) + { + if ($this -> level < MODERATOR) + { + throw new ExceptionDisplay('You must be a moderator to access this section.'); + } + } + else if ($this -> level < ADMIN) + { + throw new ExceptionDisplay('You must be an administrator to access this section.'); + } + switch (strtolower($action)) + { + case 'config': + { + /** Include the config generator file. */ + if (!@include_once(CONFIG_GENERATOR)) + { + throw new ExceptionDisplay('Error including file ' + . CONFIG_GENERATOR . ''); + } + die(); + } + case 'rename': + { + if (!isset($_GET['filename'])) + { + throw new ExceptionDisplay('No filenames specified.'); + } + global $dir; + $old = $dir . Url::clean_input($_GET['filename']); + if (!@file_exists($old)) + { + header('HTTP/1.0 404 Not Found'); + throw new ExceptionDisplay('Specified file could not be found.'); + } + if (isset($_GET['new_name'])) + { + $new = $dir . Url::clean_input($_GET['new_name']); + if ($old == $new) + { + throw new ExceptionDisplay('Filename unchanged.'); + } + if (@file_exists($new)) + { + throw new ExceptionDisplay('Cannot overwrite existing file.'); + } + if (@rename($old, $new)) + { + global $config; + if (DOWNLOAD_COUNT) + { + self::update_file_info($config -> __get('download_count'), $old, $new); + } + if (DESCRIPTION_FILE) + { + self::update_file_info($config -> __get('description_file'), $old, $new); + } + throw new ExceptionDisplay('File renamed successfully.'); + } + throw new ExceptionDisplay('Error renaming file.'); + } + global $words, $subdir; + throw new ExceptionDisplay('

' . $words -> __get('renaming') + . ' ' . Url::html_output($_GET['filename']) + . '

' . $words -> __get('new filename') + . ':
(' + . $words -> __get('you can also move the file by specifying a path') + . ')

' + . '' + . '' + . '

'); + } + case 'delete': + { + if (!isset($_GET['filename'])) + { + throw new ExceptionDisplay('No filename specified.'); + } + if (isset($_GET['sure'])) + { + global $dir; + $to_delete = $dir . Url::clean_input($_GET['filename']); + if (!@file_exists($to_delete)) + { + header('HTTP/1.0 404 Not Found'); + throw new ExceptionDisplay('Specified file could not be found.'); + } + if (@is_dir($to_delete)) + { + if (self::rmdir_recursive($to_delete)) + { + throw new ExceptionDisplay('Folder successfully deleted.'); + } + throw new ExceptionDisplay('Error deleting folder.'); + } + if (@unlink($to_delete)) + { + throw new ExceptionDisplay('File successfully deleted.'); + } + throw new ExceptionDisplay('Error deleting file.'); + } + global $words, $subdir; + throw new ExceptionDisplay('

' + . $words -> __get('are you sure you want to delete the file') + . ' ' . Url::html_output($_GET['filename']) . '?

' + . '

' + . '' + . '

'); + } + case 'add_user': + { + if (isset($_POST['username'], $_POST['pass1'], $_POST['pass2'], $_POST['level'], $_POST['home_dir'])) + { + self::add_user($_POST['username'], $_POST['pass1'], + $_POST['pass2'], (int)$_POST['level'], $_POST['home_dir']); + } + global $words; + throw new ExceptionDisplay($words -> __get('add user') + . ':

' + . $words -> __get('username') . ':
' + . $words -> __get('password') . ':
' + . $words -> __get('password') . ':
' + . $words -> __get('level') . ':

Home Directory: ' + . '
(leave blank to use the default base directory)

'); + } + case 'change_password': + { + if (isset($_POST['pass1'], $_POST['pass2'], $_POST['old_pass'])) + { + self::change_password($this -> username, $_POST['old_pass'], + $_POST['pass1'], $_POST['pass2']); + } + throw new ExceptionDisplay('
+

Old password: +
New password: +
New password:

+

'); + } + case 'change_user_level': + { + if (isset($_POST['username'], $_POST['level'])) + { + self::change_user_level($_POST['username'], (int)$_POST['level']); + } + $accounts = new Accounts(); + $out = '
+

Select user:

Select new level:

+

'); + } + case 'del_user': + { + if (isset($_POST['username'])) + { + if (isset($_POST['sure'])) + { + self::del_user($_POST['username']); + } + global $words; + throw new ExceptionDisplay('

' + . $words -> __get('are you sure you want to remove the user') + . ' '.$_POST['username'] . '?

' + . '
' + . '

'); + } + global $words; + $accounts = new Accounts(); + $out = '

' . $words -> __get('select user to remove') + . ':

'); + } + case 'edit_description': + { + if (isset($_GET['filename'])) + { + global $dir; + $filename = $dir . $_GET['filename']; + if (isset($_GET['description'])) + { + global $descriptions, $config; + if (DESCRIPTION_FILE && $descriptions -> is_set($filename)) + //if it's already set, update the old description + { + //update the new description on disk + $h = @fopen($config -> __get('description_file'), 'wb'); + if ($h === false) + { + throw new ExceptionDisplay('Could not open description file for writing.' + . ' Make sure PHP has write permission to this file.'); + } + foreach ($descriptions as $file => $info) + { + fwrite($h, "$file\t" . (($file == $filename) ? $_GET['description'] : $info) . "\n"); + } + fclose($h); + + //update the new description in memory + $descriptions -> set($filename, $_GET['description']); + } + else if ($_GET['description'] != '') + //if it's not set, add it to the end + { + $h = @fopen($config -> __get('description_file'), 'ab'); + if ($h === false) + { + throw new ExceptionDisplay('Could not open description file for writing.' + . ' Make sure PHP has write permission to this file.'); + } + fwrite($h, "$filename\t" . $_GET['description'] . "\n"); + fclose($h); + + //read the description file with the updated data + $descriptions = new ConfigData($config -> __get('description_file')); + } + } + else + { + global $words, $subdir, $descriptions; + $current_desc = (DESCRIPTION_FILE && $descriptions -> is_set($filename) ? $descriptions -> __get($filename) : ''); + throw new ExceptionDisplay('

' + . $words -> __get('enter the new description for the file') + . ' ' . Url::html_output($_GET['filename']) + . ':

' + . '

'); + } + } + else + { + throw new ExceptionDisplay('No filename specified.'); + } + break; + } + case 'edit_hidden': + { + if (!HIDDEN_FILES) + { + throw new ExceptionDisplay('The file hiding system is not in use. To enable it, reconfigure the script.'); + } + global $hidden_list; + if (isset($_GET['add']) && $_GET['add'] != '') + { + global $config; + $h = @fopen($config -> __get('hidden_files'), 'ab'); + if ($h === false) + { + throw new ExceptionDisplay('Unable to open hidden files list for writing.'); + } + fwrite($h, $_GET['add'] . "\n"); + fclose($h); + throw new ExceptionDisplay('Hidden file added.'); + } + if (isset($_GET['remove'])) + { + global $config; + $h = @fopen($config -> __get('hidden_files'), 'wb'); + if ($h === false) + { + throw new ExceptionDisplay('Unable to open hidden files list for writing.'); + } + foreach ($hidden_list as $hid) + { + if ($hid != $_GET['remove']) + { + fwrite($h, $hid . "\n"); + } + } + fclose($h); + throw new ExceptionDisplay('Hidden file removed.'); + } + global $words; + $str = '

' . $words -> __get('add a new hidden file') . ':

' + . '

You can also use wildcards (?, *, +) for each entry.
' + . 'If you want to do the opposite of "hidden files" - show only certain files - ' + . 'put a colon in front of those entries.

' + . '

'; + + $str .= '

' . $words -> __get('remove a hidden file') + . ':

'; + throw new ExceptionDisplay($str); + } + case 'edit_banned': + { + if (!BANNED_LIST) + { + throw new ExceptionDisplay('The banning system is not in use. To enable it, reconfigure the script.'); + } + if (isset($_GET['add']) && $_GET['add'] != '') + { + global $config; + $h = @fopen($config -> __get('banned_list'), 'ab'); + if ($h === false) + { + throw new ExceptionDisplay('Unable to open banned_list for writing.'); + } + fwrite($h, $_GET['add'] . "\n"); + fclose($h); + throw new ExceptionDisplay('Ban added.'); + } + if (isset($_GET['remove'])) + { + global $b_list, $config; + $h = @fopen($config -> __get('banned_list'), 'wb'); + if ($h === false) + { + throw new ExceptionDisplay('Unable to open banned_list for writing.'); + } + foreach ($b_list as $ban) + { + if ($ban != $_GET['remove']) + { + fwrite($h, $ban . "\n"); + } + } + fclose($h); + throw new ExceptionDisplay('Ban removed.'); + } + global $b_list, $words; + $str = '

' . $words -> __get('add a new ban') . ':

' + . '

'; + + $str .= '

' + . $words -> __get('remove a ban') . ':

'; + throw new ExceptionDisplay($str); + } + case 'stats': + { + if (!LOG_FILE) + { + throw new ExceptionDisplay('The logging system has not been enabled.'); + } + $stats = new Stats(); + $stats -> display(); + break; + } + case 'view_log': + { + if (!LOG_FILE) + { + throw new ExceptionDisplay('The logging system has not been enabled.'); + } + global $log; + if (isset($_GET['num'])) + { + $log -> display((int)$_GET['num']); + } + global $words; + throw new ExceptionDisplay($words -> __get('how many entries would you like to view') + . '?
' + . '
'); + } + case 'create_dir': + { + if (isset($_GET['name'])) + { + global $dir; + if (!self::mkdir_recursive($dir . $_GET['name'])) + { + throw new ExceptionDisplay('Error creating new folder.'); + } + } + else + { + global $words, $subdir; + throw new ExceptionDisplay('

' . $words -> __get('enter the new name') + . ':

' + . '

'); + } + break; + } + case 'copy_url': + { + if (isset($_GET['protocol'], $_GET['copy_file'])) + { + self::copy_remote_file(rawurldecode($_GET['protocol']), rawurldecode($_GET['copy_file'])); + throw new ExceptionDisplay('Copy was successful.'); + } + global $dir; + $text = ' + +
+

Enter the name of the remote file you would like to copy:

+
+

+ + http:// +
ftp:// +

+

+

'; + echo new Display($text); + die(); + } + case 'ftp': + { + if (isset($_POST['host'], $_POST['port'], $_POST['directory'], + $_POST['ftp_username'], $_POST['ftp_password'])) + { + if ($_POST['host'] == '') + { + throw new ExceptionDisplay('Please go back and enter a hostname.'); + } + if ($_POST['ftp_username'] == '' && $_POST['ftp_password'] == '') + //anonymous login + { + $_POST['ftp_username'] = 'anonymous'; + $_POST['ftp_password'] = 'autoindex@sourceforge.net'; + } + if ($_POST['directory'] == '') + { + $_POST['directory'] = './'; + } + if ($_POST['port'] == '') + { + $_POST['port'] = 21; + } + $_SESSION['ftp'] = array( + 'host' => $_POST['host'], + 'port' => (int)$_POST['port'], + 'directory' => Item::make_sure_slash($_POST['directory']), + 'username' => $_POST['ftp_username'], + 'password' => $_POST['ftp_password'], + 'passive' => isset($_POST['passive']) + ); + } + if (isset($_GET['set_dir'])) + { + $_SESSION['ftp']['directory'] = $_GET['set_dir']; + } + global $subdir; + if (isset($_GET['ftp_logout'])) + { + unset($_SESSION['ftp']); + $text = '

Logout successful. Go back.

'; + } + else if (isset($_SESSION['ftp'])) + { + try + { + $ftp = new Ftp($_SESSION['ftp']['host'], $_SESSION['ftp']['port'], + $_SESSION['ftp']['passive'], $_SESSION['ftp']['directory'], + $_SESSION['ftp']['username'], $_SESSION['ftp']['password']); + } + catch (ExceptionFatal $e) + { + unset($_SESSION['ftp']); + throw $e; + } + if (isset($_GET['filename']) && $_GET['filename'] != '') + //transfer local to FTP + { + global $dir; + $name = rawurldecode($_GET['filename']); + $ftp -> put_file($dir . $name, Item::get_basename($name)); + throw new ExceptionDisplay('File successfully transferred to FTP server.'); + } + if (isset($_GET['transfer']) && $_GET['transfer'] != '') + //transfer FTP to local + { + global $dir; + $name = rawurldecode($_GET['transfer']); + $ftp -> get_file($dir . Item::get_basename($name), $name); + throw new ExceptionDisplay('File successfully transferred from FTP server.'); + } + global $words; + $text = '

Logout of FTP server +
Back to index.

'; + } + else + { + $text = '
+
+

FTP server: + port +
Passive Mode

+

Username: +
Password: + (Leave these blank to login anonymously) +

Directory: +

+

Back to index.

'; + } + echo new Display($text); + die(); + } + default: + { + throw new ExceptionDisplay('Invalid admin action.'); + } + } + } + + /** + * @return string The HTML text that makes up the admin panel + */ + public function __toString() + { + global $words, $subdir; + $str = ''; + + //only ADMIN accounts + if ($this -> level >= ADMIN) $str = ' +

+ ' + . $words -> __get('reconfigure script') . ' +

+

+ ' + . $words -> __get('edit list of hidden files') . ' +
' + . $words -> __get('edit ban list') . ' +

+

+ ' . $words -> __get('create new directory in this folder') + . '
' . $words -> __get('copy url') . ' +

+

+ ' + . $words -> __get('view entries from log file') . ' +
' + . $words -> __get('view statistics from log file') . ' +

+

+ ' + . $words -> __get('add new user') . ' +
' + . $words -> __get('delete user') . ' +
+ Change a user\'s level +

'; + //MODERATOR and ADMIN accounts + if ($this -> level >= MODERATOR) $str .= ' +

+ + Change your password +

+

+ FTP browser +

'; + return $str; + } +} + +?> diff --git a/classes/ConfigData.php b/classes/ConfigData.php new file mode 100644 index 0000000..9cbd50b --- /dev/null +++ b/classes/ConfigData.php @@ -0,0 +1,233 @@ + + * @version 1.0.2 (January 13, 2005) + * @package AutoIndex + */ +class ConfigData implements Iterator +{ + /** + * @var array A list of all the settings + */ + private $config; + + /** + * @var string The name of the file to read the settings from + */ + private $filename; + + //begin implementation of Iterator + /** + * @var bool + */ + private $valid; + + /** + * @return string + */ + public function current() + { + return current($this -> config); + } + + /** + * Increments the internal array pointer, and returns the new value. + * + * @return string + */ + public function next() + { + $t = next($this -> config); + if ($t === false) + { + $this -> valid = false; + } + return $t; + } + + /** + * Sets the internal array pointer to the beginning. + */ + public function rewind() + { + reset($this -> config); + } + + /** + * @return bool + */ + public function valid() + { + return $this -> valid; + } + + /** + * @return string + */ + public function key() + { + return key($this -> config); + } + //end implementation of Iterator + + /** + * @param string $line The line to test + * @return bool True if $line starts with characters that mean it is a comment + */ + public static function line_is_comment($line) + { + $line = trim($line); + return (($line == '') || preg_match('@^(//|<\?|\?>|/\*|\*/|#)@', $line)); + } + + /** + * @param string $file The filename to read the data from + */ + public function __construct($file) + { + if ($file === false) + { + return; + } + $this -> valid = true; + $this -> filename = $file; + $contents = @file($file); + if ($contents === false) + { + throw new ExceptionFatal('Error reading file ' + . Url::html_output($file) . ''); + } + foreach ($contents as $i => $line) + { + $line = rtrim($line, "\r\n"); + if (self::line_is_comment($line)) + { + continue; + } + $parts = explode("\t", $line, 2); + if (count($parts) !== 2 || $parts[0] == '' || $parts[1] == '') + { + throw new ExceptionFatal('Incorrect format for file ' + . Url::html_output($file) . ' on line ' . ($i + 1) + . '.
Format is "variable name[tab]value"'); + } + if (isset($this -> config[$parts[0]])) + { + throw new ExceptionFatal('Error in ' + . Url::html_output($file) . ' on line ' . ($i + 1) + . '.
' . Url::html_output($parts[0]) + . ' is already defined.'); + } + $this -> config[$parts[0]] = $parts[1]; + } + } + + /** + * $config[$key] will be set to $info. + * + * @param string $key + * @param string $info + */ + public function set($key, $info) + { + $this -> config[$key] = $info; + } + + /** + * This will look for the key $item, and add one to the $info (assuming + * it is an integer). + * + * @param string $item The key to look for + */ + public function add_one($item) + { + if ($this -> is_set($item)) + { + $h = @fopen($this -> filename, 'wb'); + if ($h === false) + { + throw new ExceptionFatal('Could not open file ' + . Url::html_output($this -> filename) + . ' for writing. Make sure PHP has write permission to this file.'); + } + foreach ($this as $current_item => $count) + { + fwrite($h, "$current_item\t" + . (($current_item == $item) ? ((int)$count + 1) : $count) + . "\n"); + } + } + else + { + $h = @fopen($this -> filename, 'ab'); + if ($h === false) + { + throw new ExceptionFatal('Could not open file ' + . $this -> filename . ' for writing.' + . ' Make sure PHP has write permission to this file.'); + } + fwrite($h, "$item\t1\n"); + } + fclose($h); + } + + /** + * @param string $name The key to look for + * @return bool True if $name is set + */ + public function is_set($name) + { + return isset($this -> config[$name]); + } + + /** + * @param string $name The key to look for + * @return string The value $name points to + */ + public function __get($name) + { + if (isset($this -> config[$name])) + { + return $this -> config[$name]; + } + throw new ExceptionFatal('Setting ' . Url::html_output($name) + . ' is missing in file ' + . Url::html_output($this -> filename) . '.'); + } +} + +?> \ No newline at end of file diff --git a/classes/DirItem.php b/classes/DirItem.php new file mode 100644 index 0000000..ab5a830 --- /dev/null +++ b/classes/DirItem.php @@ -0,0 +1,2681 @@ + + * @version 1.0.1 (June 30, 2004) + * @package AutoIndex + */ +class DirItem extends Item +{ + /** + * @var DirectoryList The list of this directory's contents + */ + private $temp_list; + + /** + * @return string Always returns 'dir', since this is a directory, not a file + */ + public function file_ext() + { + return 'dir'; + } + + /** + * @return int The total size in bytes of the folder (recursive) + */ + private function dir_size() + { + if (!isset($this -> temp_list)) + { + $this -> temp_list = new DirectoryList($this -> parent_dir . $this -> filename); + } + return $this -> temp_list -> size_recursive(); + } + + /** + * @return int The total number of files in the folder (recursive) + */ + public function num_subfiles() + { + if (!isset($this -> temp_list)) + { + $this -> temp_list = new DirectoryList($this -> parent_dir . $this -> filename); + } + return $this -> temp_list -> num_files(); + } + + /** + * @param string $path + * @return string The parent directory of $path + */ + public static function get_parent_dir($path) + { + $path = str_replace('\\', '/', $path); + while (preg_match('#/$#', $path)) + //remove all slashes from the end + { + $path = substr($path, 0, -1); + } + $pos = strrpos($path, '/'); + if ($pos === false) + { + return ''; + } + $path = substr($path, 0, $pos + 1); + return (($path === false) ? '' : $path); + } + + /** + * @param string $parent_dir + * @param string $filename + */ + public function __construct($parent_dir, $filename) + { + $filename = self::make_sure_slash($filename); + parent::__construct($parent_dir, $filename); + global $config, $subdir; + $this -> downloads = ' '; + if ($filename == '../') + //link to parent directory + { + if ($subdir != '') + { + global $words; + $this -> is_parent_dir = true; + $this -> filename = $words -> __get('parent directory'); + $this -> icon = (ICON_PATH ? $config -> __get('icon_path') . 'back.png' : ''); + $this -> size = new Size(true); + $this -> link = Url::html_output($_SERVER['PHP_SELF']) . '?dir=' . Url::translate_uri(self::get_parent_dir($subdir)); + $this -> parent_dir = $this -> new_icon = ''; + $this -> a_time = $this -> m_time = false; + } + else + { + $this -> is_parent_dir = $this -> filename = false; + } + } + else + { + //regular folder + $file = $this -> parent_dir . $filename; + + if (!@is_dir($file)) + { + throw new ExceptionDisplay('Directory ' . Url::html_output($this -> parent_dir . $filename) . ' does not exist.'); + } + + $this -> filename = $filename = substr($filename, 0, -1); //str_replace('', '/', $filename); + $mb_strlen = mb_strlen($filename); + $this -> icon = $config -> __get('icon_path') . 'dir.png'; + + if (($mb_strlen > 0) && ($mb_strlen < 6)) + { + $decoded_lang_name = self::decode_country_name($filename, 'language'); + if (!empty($decoded_lang_name)) + { + $this -> icon = FLAG_PATH ? $config -> __get('flag_path') . $filename . '.png' : $config -> __get('icon_path') . $filename . '.png'; + } + global $descriptions; + $this -> description = $decoded_lang_name; + } + $this -> link = Url::html_output($_SERVER['PHP_SELF']) . '?dir=' . Url::translate_uri(substr($this -> parent_dir, strlen($config -> __get('base_dir'))) . $filename); + + } + } + + /** + * function decode_lang from mx_traslator phpBB3 Extension + * + * $mx_user_lang = decode_country_name($lang['USER_LANG'], 'country'); + * + * @param unknown_type $file_dir + * @param unknown_type $lang_country = 'country' or 'language' + * @param array $langs_countries + * @return unknown + */ + private function decode_country_name($file_dir, $lang_country = 'country', $langs_countries = false) + { + /* known languages */ + switch ($file_dir) + { + case 'aa': + $lang_name = 'AFAR'; + $country_name = 'AFAR'; //Ethiopia + break; + + case 'aae': + $lang_name = 'AFRICAN-AMERICAN_ENGLISH'; + $country_name = 'UNITED_STATES'; + break; + + case 'ab': + $lang_name = 'ABKHAZIAN'; + $country_name = 'ABKHAZIA'; + break; + + case 'ad': + $lang_name = 'ANGOLA'; + $country_name = 'ANGOLA'; + break; + + case 'ae': + $lang_name = 'AVESTAN'; + $country_name = 'UNITED_ARAB_EMIRATES'; //Persia + break; + + case 'af': + $country_name = 'AFGHANISTAN'; // langs: pashto and dari + $lang_name = 'AFRIKAANS'; // speakers: 6,855,082 - 13,4% + break; + + case 'ag': + $lang_name = 'ENGLISH-CREOLE'; + $country_name = 'ANTIGUA_&_BARBUDA'; + break; + + case 'ai': + $lang_name = 'Anguilla'; + $country_name = 'ANGUILLA'; + break; + + case 'aj': + $lang_name = 'AROMANIAN'; + $country_name = 'Aromaya'; + break; + + case 'ak': + $lang_name = 'AKAN'; + $country_name = ''; + break; + + case 'al': + $lang_name = 'ALBANIAN'; + $country_name = 'ALBANIA'; + break; + + + case 'am': + $lang_name = 'AMHARIC'; + //$lang_name = 'armenian'; + $country_name = 'ARMENIA'; + break; + + case 'an': + $lang_name = 'ARAGONESE'; // + //$country_name = 'Andorra'; + $country_name = 'NETHERLAND_ANTILLES'; + break; + + case 'ao': + $lang_name = 'ANGOLIAN'; + $country_name = 'ANGOLA'; + break; + + case 'ap': + $lang_name = 'ANGIKA'; + $country_name = 'ANGA'; //India + break; + + case 'ar': + $lang_name = 'ARABIC'; + $country_name = 'ARGENTINA'; + break; + + case 'arq': + $lang_name = 'ALGERIAN_ARABIC'; //known as Darja or Dziria in Algeria + $country_name = 'ALGERIA'; + break; + + case 'ary': + $lang_name = 'MOROCCAN_ARABIC'; //known as Moroccan Arabic or Moroccan Darija or Algerian Saharan Arabic + $country_name = 'MOROCCO'; + break; + + //jrb – Judeo-Arabic + //yhd – Judeo-Iraqi Arabic + //aju – Judeo-Moroccan Arabic + //yud – Judeo-Tripolitanian Arabic + //ajt – Judeo-Tunisian Arabic + //jye – Judeo-Yemeni Arabic + case 'jrb': + $lang_name = 'JUDEO-ARABIC'; + $country_name = 'JUDEA'; + break; + + case 'kab': + $lang_name = 'KABYLE'; //known as Kabyle (Tamazight) + $country_name = 'ALGERIA'; + break; + + case 'aq': + $lang_name = ''; + $country_name = 'ANTARCTICA'; + break; + + case 'as': + $lang_name = 'ASSAMESE'; + $country_name = 'AMERICAN_SAMOA'; + break; + + case 'at': + $lang_name = 'GERMAN'; + $country_name = 'AUSTRIA'; + break; + + case 'av': + $lang_name = 'AVARIC'; + $country_name = ''; + break; + + case 'av-da': + case 'av_da': + case 'av_DA': + $lang_name = 'AVARIAN_KHANATE'; + $country_name = 'Daghestanian'; + break; + + case 'ay': + $lang_name = 'AYMARA'; + $country_name = ''; + break; + + case 'aw': + $lang_name = 'ARUBA'; + $country_name = 'ARUBA'; + break; + + case 'au': + $lang_name = 'en-au'; // + $country_name = 'AUSTRALIA'; + break; + + case 'az': + $lang_name = 'AZERBAIJANI'; + $country_name = 'AZERBAIJAN'; + break; + + case 'ax': + $lang_name = 'FINNISH'; + $country_name = 'ÅLAND_ISLANDS'; //The Åland Islands or Åland (Swedish: Åland, IPA: [ˈoːland]; Finnish: Ahvenanmaa) is an archipelago province at the entrance to the Gulf of Bothnia in the Baltic Sea belonging to Finland. + break; + + case 'ba': + $lang_name = 'BASHKIR'; //Baskortostán (Rusia) + $country_name = 'BOSNIA_&_HERZEGOVINA'; //Bosnian, Croatian, Serbian + break; + + //Bavarian (also known as Bavarian Austrian or Austro-Bavarian; Boarisch [ˈbɔɑrɪʃ] or Bairisch; + //German: Bairisch [ˈbaɪʁɪʃ] (About this soundlisten); Hungarian: bajor. + case 'bar': + $lang_name = 'BAVARIAN'; + $country_name = 'BAVARIA'; //Germany + break; + + case 'bb': + $lang_name = 'Barbados'; + $country_name = 'BARBADOS'; + break; + + case 'bd': + $lang_name = 'Bangladesh'; + $country_name = 'BANGLADESH'; + break; + + case 'be': + $lang_name = 'BELARUSIAN'; + $country_name = 'BELGIUM'; + break; + + case 'bf': + $lang_name = 'Burkina Faso'; + $country_name = 'BURKINA_FASO'; + break; + + case 'bg': + $lang_name = 'BULGARIAN'; + $country_name = 'BULGARIA'; + break; + + case 'bh': + $lang_name = 'BHOJPURI'; // Bihar (India) + $country_name = 'BAHRAIN'; // Mamlakat al-Ba?rayn (arabic) + break; + + case 'bi': + $lang_name = 'BISLAMA'; + $country_name = 'BURUNDI'; + break; + + + case 'bj': + $lang_name = 'BENIN'; + $country_name = 'BENIN'; + break; + + case 'bl': + $lang_name = 'BONAIRE'; + $country_name = 'BONAIRE'; + break; + + case 'bm': + $lang_name = 'BAMBARA'; + $country_name = 'Bermuda'; + break; + + case 'bn': + $country_name = 'BRUNEI'; + $lang_name = 'BENGALI'; + + break; + + case 'bo': + $lang_name = 'TIBETAN'; + $country_name = 'BOLIVIA'; + break; + + case 'br': + $lang_name = 'BRETON'; + $country_name = 'BRAZIL'; //pt + break; + + case 'bs': + $lang_name = 'BOSNIAN'; + $country_name = 'BAHAMAS'; + break; + + case 'bt': + $lang_name = 'Bhutan'; + $country_name = 'Bhutan'; + break; + + case 'bw': + $lang_name = 'Botswana'; + $country_name = 'BOTSWANA'; + break; + + case 'bz': + $lang_name = 'BELIZE'; + $country_name = 'BELIZE'; + break; + + case 'by': + $lang_name = 'BELARUSIAN'; + $country_name = 'Belarus'; + break; + + case 'en-CM': + case 'en_cm': + $lang_name = 'CAMEROONIAN_PIDGIN_ENGLISH'; + $country_name = 'Cameroon'; + break; + + case 'wes': + $lang_name = 'CAMEROONIAN'; //Kamtok + $country_name = 'CAMEROON'; //Wes Cos + break; + + case 'cm': + $lang_name = 'CAMEROON'; + $country_name = 'CAMEROON'; + break; + + case 'ca': + $lang_name = 'CATALAN'; + $country_name = 'CANADA'; + break; + + case 'cc': + $lang_name = 'COA_A_COCOS'; //COA A Cocos dialect of Betawi Malay [ente (you) and ane (me)] and AU-English + $country_name = 'COCOS_ISLANDS'; //CC Cocos (Keeling) Islands + break; + + case 'cd': + $lang_name = 'Congo Democratic Republic'; + $country_name = 'CONGO_DEMOCRATIC_REPUBLIC'; + break; + + //нохчийн мотт + case 'ce': + $lang_name = 'CHECHEN'; + $country_name = 'Chechenya'; + break; + + case 'cf': + $lang_name = 'Central African Republic'; + $country_name = 'CENTRAL_AFRICAN_REPUBLIC'; + break; + + case 'cg': + $lang_name = 'CONGO'; + $country_name = 'CONGO'; + break; + + case 'ch': + $lang_name = 'CHAMORRO'; //Finu' Chamoru + $country_name = 'SWITZERLAND'; + break; + + case 'ci': + $lang_name = 'Cote D-Ivoire'; + $country_name = 'COTE_D-IVOIRE'; + break; + + case 'ck': + $lang_name = ''; + $country_name = 'COOK_ISLANDS'; //CK Cook Islands + break; + + case 'cl': + $lang_name = 'Chile'; + $country_name = 'CHILE'; + break; + + case 'cn': + //Chinese Macrolanguage + case 'zh': //639-1: zh + case 'chi': //639-2/B: chi + case 'zho': //639-2/T and 639-3: zho + $lang_name = 'CHINESE'; + $country_name = 'CHINA'; + break; + //Chinese Individual Languages + // 中文 + // Fujian Province, Republic of China + case 'cn-fj': + // 閩東話 + case 'cdo': //Chinese Min Dong + $lang_name = 'CHINESE_DONG'; + $country_name = 'CHINA'; + break; + //1. Bingzhou spoken in central Shanxi (the ancient Bing Province), including Taiyuan. + //2. Lüliang spoken in western Shanxi (including Lüliang) and northern Shaanxi. + //3. Shangdang spoken in the area of Changzhi (ancient Shangdang) in southeastern Shanxi. + //4. Wutai spoken in parts of northern Shanxi (including Wutai County) and central Inner Mongolia. + //5. Da–Bao spoken in parts of northern Shanxi and central Inner Mongolia, including Baotou. + //6. Zhang-Hu spoken in Zhangjiakou in northwestern Hebei and parts of central Inner Mongolia, including Hohhot. + //7. Han-Xin spoken in southeastern Shanxi, southern Hebei (including Handan) and northern Henan (including Xinxiang). + //8. Zhi-Yan spoken in Zhidan County and Yanchuan County in northern Shaanxi. + // 晋语 / 晉語 + case 'cjy': //Chinese Jinyu 晉 + $lang_name = 'CHINA_JINYU'; + $country_name = 'CHINA'; + break; + // Cantonese is spoken in Hong Kong + // 官話 + case 'cmn': //Chinese Mandarin 普通话 (Pǔ tōng huà) literally translates into “common tongue.” + $lang_name = 'CHINESE_MANDARIN'; + $country_name = 'CHINA'; + break; + // Mandarin is spoken in Mainland China and Taiwan + // 閩語 / 闽语 + //semantic shift has occurred in Min or the rest of Chinese: + //*tiaŋB 鼎 "wok". The Min form preserves the original meaning "cooking pot". + //*dzhənA "rice field". scholars identify the Min word with chéng 塍 (MC zying) "raised path between fields", but Norman argues that it is cognate with céng 層 (MC dzong) "additional layer or floor". + //*tšhioC 厝 "house". the Min word is cognate with shù 戍 (MC syuH) "to guard". + //*tshyiC 喙 "mouth". In Min this form has displaced the common Chinese term kǒu 口. It is believed to be cognate with huì 喙 (MC xjwojH) "beak, bill, snout; to pant". + //Austroasiatic origin for some Min words: + //*-dəŋA "shaman" compared with Vietnamese đồng (/ɗoŋ2/) "to shamanize, to communicate with spirits" and Mon doŋ "to dance (as if) under demonic possession". + //*kiɑnB 囝 "son" appears to be related to Vietnamese con (/kɔn/) and Mon kon "child". + + // Southern Min: + // Datian Min; + // Hokkien 話; Hokkien-Taiwanese 閩台泉漳語 - Philippine Hokkien 咱儂話. + // Teochew; + // Zhenan Min; + // Zhongshan Min, etc. + + //Pu-Xian Min (Hinghwa); Putian dialect: Xianyou dialect. + + //Northern Min: Jian'ou dialect; Jianyang dialect; Chong'an dialect; Songxi dialect; Zhenghe dialect; + + //Shao-Jiang Min: Shaowu dialect, Jiangle dialect, Guangze dialect, Shunchang dialect; + //http://www.shanxigov.cn/ + //Central Min: Sanming dialect; Shaxian dialect; Yong'an dialect, + + //Leizhou Min : Leizhou Min. + + //Abbreviation + //Simplified Chinese: 闽 + //Traditional Chinese: 閩 + //Literal meaning: Min [River] + + //莆仙片 + case 'cpx': //Chinese Pu-Xian Min, Sing-iú-uā / 仙游話, (Xianyou dialect) http://www.putian.gov.cn/ + $lang_name = 'CHINESE_PU-XIAN'; + $country_name = 'CHINA'; + break; + // 徽語 + case 'czh': //Chinese HuiZhou 惠州 http://www.huizhou.gov.cn/ | Song dynasty + $lang_name = 'CHINESE_HUIZHOU'; + $country_name = 'CHINA'; + break; + // 閩中片 + case 'czo': //Chinese Min Zhong 閩中語 | 闽中语 http://zx.cq.gov.cn/ | Zhong-Xian | Zhong 忠县 + $lang_name = 'CHINESE_ZHONG'; + $country_name = 'CHINA'; + break; + // 東干話 SanMing: http://www.sm.gov.cn/ | Sha River (沙溪) + case 'dng': //Ding Chinese + $lang_name = 'DING_CHINESE'; + $country_name = 'CHINA'; + break; + // 贛語 + case 'gan': //Gan Chinese + $lang_name = 'GAN_CHINESE'; + $country_name = 'CHINA'; + break; + // 客家話 + case 'hak': //Chinese Hakka + $lang_name = 'CHINESE_HAKKA'; + $country_name = 'CHINA'; + break; + + case 'hsn': //Xiang Chinese 湘語/湘语 + $lang_name = 'XIANG_CHINESE'; + $country_name = 'CHINA'; + break; + // 文言 + case 'lzh': //Literary Chinese + $lang_name = 'LITERARY_CHINESE'; + $country_name = 'CHINA'; + break; + // 閩北片 + case 'mnp': //Min Bei Chinese + $lang_name = 'MIN_BEI_CHINESE'; + $country_name = 'CHINA'; + break; + // 閩南語 + case 'nan': //Min Nan Chinese + $lang_name = 'MIN_NAN_CHINESE'; + $country_name = 'CHINA'; + break; + // 吴语 + case 'wuu': //Wu Chinese + $lang_name = 'WU_CHINESE'; + $country_name = 'CHINA'; + break; + // 粵語 + case 'yue': //Yue or Cartonese Chinese + $lang_name = 'YUE_CHINESE'; + $country_name = 'CHINA'; + break; + + case 'co': + $lang_name = 'CORSICAN'; // Corsica + $country_name = 'COLUMBIA'; + break; + //Eeyou Istchee ᐄᔨᔨᐤ ᐊᔅᒌ + case 'cr': + $lang_name = 'CREE'; + $country_name = 'COSTA_RICA'; + break; + + case 'cs': + $lang_name = 'CZECH'; + $country_name = 'CZECH_REPUBLIC'; + break; + + case 'cu': + $lang_name = 'SLAVONIC'; + $country_name = 'CUBA'; //langs: + break; + + case 'cv': + $country_name = 'CAPE_VERDE'; + $lang_name = 'CHUVASH'; + break; + + case 'cx': + $lang_name = ''; // Malaysian Chinese origin and European Australians + $country_name = 'CHRISTMAS_ISLAND'; + break; + + case 'cy': + $lang_name = 'CYPRUS'; + $country_name = 'CYPRUS'; + break; + + case 'cz': + $lang_name = 'CZECH'; + $country_name = 'CZECH_REPUBLIC'; + break; + + case 'cw': + $lang_name = 'PAPIAMENTU'; // Papiamentu (Portuguese-based Creole), Dutch, English + $country_name = 'CURAÇÃO'; // Ilha da Curação (Island of Healing) + break; + + case 'da': + $lang_name = 'DANISH'; + $country_name = 'DENMARK'; + break; + + //Geman (Deutsch) + /* deu – German + gmh – Middle High German + goh – Old High German + gct – Colonia Tovar German + bar – Bavarian + cim – Cimbrian + geh – Hutterite German + ksh – Kölsch + nds – Low German + sli – Lower Silesian + ltz – Luxembourgish + vmf – Mainfränkisch + mhn – Mòcheno + pfl – Palatinate German + pdc – Pennsylvania German + pdt – Plautdietsch + swg – Swabian German + gsw – Swiss German + uln – Unserdeutsch + sxu – Upper Saxon + wae – Walser German + wep – Westphalian + hrx – Riograndenser Hunsrückisch + yec – Yenish */ + + + //Germany 84,900,000 75,101,421 (91.8%) 5,600,000 (6.9%) De facto sole nationwide official language + case 'de': + case 'de-DE': + case 'de_de': + case 'deu': + $lang_name = 'GERMAN'; + $country_name = 'GERMANY'; + break; + //Belgium 11,420,163 73,000 (0.6%) 2,472,746 (22%) De jure official language in the German speaking community + case 'de_be': + case 'de-BE': + $lang_name = 'BELGIUM_GERMAN'; + $country_name = 'BELGIUM'; + break; + //Austria 8,838,171 8,040,960 (93%) 516,000 (6%) De jure sole nationwide official language + case 'de_at': + case 'de-AT': + $lang_name = 'AUSTRIAN_GERMAN'; + $country_name = 'AUSTRIA'; + break; + // Switzerland 8,508,904 5,329,393 (64.6%) 395,000 (5%) Co-official language at federal level; de jure sole official language in 17, co-official in 4 cantons (out of 26) + case 'de_sw': + case 'de-SW': + $lang_name = 'SWISS_GERMAN'; + $country_name = 'SWITZERLAND'; + break; + + //Luxembourg 602,000 11,000 (2%) 380,000 (67.5%) De jure nationwide co-official language + case 'de_lu': + case 'de-LU': + case 'ltz': + $lang_name = 'LUXEMBOURG_GERMAN'; + $country_name = 'LUXEMBOURG'; + break; + //Liechtenstein 37,370 32,075 (85.8%) 5,200 (13.9%) De jure sole nationwide official language + //Alemannic, or rarely Alemmanish + case 'de_li': + case 'de-LI': + $lang_name = 'LIECHTENSTEIN_GERMAN'; + $country_name = 'LIECHTENSTEIN'; + break; + case 'gsw': + $lang_name = 'Alemannic_German'; + $country_name = 'SWITZERLAND'; + break; + //mostly spoken on Lifou Island, Loyalty Islands, New Caledonia. + case 'dhv': + $lang_name = 'DREHU'; + $country_name = 'NEW_CALEDONIA'; + break; + + case 'dk': + $lang_name = 'DANISH'; + $country_name = 'DENMARK'; + break; + + //acf – Saint Lucian / Dominican Creole French + case 'acf': + $lang_name = 'DOMINICAN_CREOLE_FRENCH'; //ROSEAU + $country_name = 'DOMINICA'; + break; + + case 'en_dm': + case 'en-DM': + $lang_name = 'DOMINICA_ENGLISH'; + $country_name = 'DOMINICA'; + break; + + case 'do': + case 'en_do': + case 'en-DO': + $lang_name = 'SPANISH'; //Santo Domingo + $country_name = 'DOMINICAN_REPUBLIC'; + break; + + case 'dj': + case 'aa-DJ': + case 'aa_dj': + $lang_name = 'DJIBOUTI'; //Yibuti, Afar + $country_name = 'REPUBLIC_OF_DJIBOUTI'; //République de Djibouti + break; + + case 'dv': + $lang_name = 'DIVEHI'; //Maldivian + $country_name = 'MALDIVIA'; + break; + + //Berbera Taghelmustă (limba oamenilor albaștri), zisă și Tuaregă, este vorbită în Sahara occidentală. + //Berbera Tamazigtă este vorbită în masivul Atlas din Maroc, la sud de orașul Meknes. + //Berbera Zenatică zisă și Rifană, este vorbită în masivul Rif din Maroc, în nord-estul țării. + //Berbera Șenuană zisă și Telică, este vorbită în masivul Tell din Algeria, în nordul țării. + //Berbera Cabilică este vorbită în jurul masivelor Mitigea și Ores din Algeria, în nordul țării. + //Berbera Șauiană este vorbită în jurul orașului Batna din Algeria. + //Berbera Tahelhită, zisă și Șlănuană (în limba franceză Chleuh) este vorbită în jurul masivului Tubkal din Maroc, în sud-vestul țării. + //Berbera Tamașekă, zisă și Sahariană, este vorbită în Sahara de nord, în Algeria, Libia și Egipt. + //Berber: Tacawit (@ city Batna from Chaoui, Algery), Shawiya (Shauian) + case 'shy': + $lang_name = 'SHAWIYA_BERBER'; + $country_name = 'ALGERIA'; + break; + + case 'dz': + $lang_name = 'DZONGKHA'; + $country_name = 'ALGERIA'; //http://www.el-mouradia.dz/ + break; + + case 'ec': + $country_name = 'ECUADOR'; + $lang_name = 'ECUADOR'; + break; + + case 'eg': + $country_name = 'EGYPT'; + $lang_name = 'EGYPT'; + break; + + case 'eh': + $lang_name = 'WESTERN_SAHARA'; + $country_name = 'WESTERN_SAHARA'; + break; + + case 'ee': + //Kɔsiɖagbe (Sunday) + //Dzoɖagbe (Monday) + //Braɖagbe, Blaɖagbe (Tuesday) + //Kuɖagbe (Wednesday) + //Yawoɖagbe (Thursday) + //Fiɖagbe (Friday) + //Memliɖagbe (Saturday) + $lang_name = 'EWE'; //Èʋegbe Native to Ghana, Togo + $country_name = 'ESTONIA'; + break; + + //Greek Language: + //ell – Modern Greek + //grc – Ancient Greek + //cpg – Cappadocian Greek + //gmy – Mycenaean Greek + //pnt – Pontic + //tsd – Tsakonian + //yej – Yevanic + + case 'el': + $lang_name = 'GREEK'; + $country_name = 'GREECE'; + break; + + case 'cpg': + $lang_name = 'CAPPADOCIAN_GREEK'; + $country_name = 'GREECE'; + break; + case 'gmy': + $lang_name = 'MYCENAEAN_GREEK'; + $country_name = 'GREECE'; + break; + case 'pnt': + $lang_name = 'PONTIC'; + $country_name = 'GREECE'; + break; + case 'tsd': + $lang_name = 'TSAKONIAN'; + $country_name = 'GREECE'; + break; + //Albanian: Janina or Janinë, Aromanian: Ianina, Enina, Turkish: Yanya; + case 'yej': + $lang_name = 'YEVANIC'; + $country_name = 'GREECE'; + break; + + case 'en_uk': + case 'en-UK': + case 'uk': + $lang_name = 'BRITISH_ENGLISH'; //used in United Kingdom + $country_name = 'GREAT_BRITAIN'; + break; + + case 'en_fj': + case 'en-FJ': + $lang_name = 'FIJIAN_ENGLISH'; + $country_name = 'FIJI'; + break; + + case 'GibE': + case 'en_gb': + case 'en-GB': + case 'gb': + $lang_name = 'GIBRALTARIAN _ENGLISH'; //used in Gibraltar + $country_name = 'GIBRALTAR'; + break; + + case 'en_us': + case 'en-US': + $lang_name = 'AMERICAN_ENGLISH'; + $country_name = 'UNITED_STATES_OF_AMERICA'; + break; + + case 'en_ie': + case 'en-IE': + case 'USEng': + $lang_name = 'HIBERNO_ENGLISH'; //Irish English + $country_name = 'IRELAND'; + break; + + case 'en_il': + case 'en-IL': + case 'ILEng': + case 'heblish': + case 'engbrew': + $lang_name = 'ISRAELY_ENGLISH'; + $country_name = 'ISRAEL'; + break; + + case 'en_ca': + case 'en-CA': + case 'CanE': + $lang_name = 'CANADIAN_ENGLISH'; + $country_name = 'CANADA'; + break; + + case 'en_ck': + $lang_name = 'COOK_ISLANDS_ENGLISH'; + $country_name = 'COOK_ISLANDS'; //CK Cook Islands + break; + + case 'en_in': + case 'en-IN': + $lang_name = 'INDIAN_ENGLISH'; + $country_name = 'REPUBLIC_OF_INDIA'; + break; + + case 'en_ai': + case 'en-AI': + $lang_name = 'ANGUILLAN_ENGLISH'; + $country_name = 'ANGUILLA'; + break; + + case 'en_au': + case 'en-AU': + case 'AuE': + $lang_name = 'AUSTRALIAN_ENGLISH'; + $country_name = 'AUSTRALIA'; + break; + + case 'en_nz': + case 'en-NZ': + case 'NZE': + $lang_name = 'NEW_ZEALAND_ENGLISH'; + $country_name = 'NEW_ZEALAND'; + break; + + //New England English + case 'en_ne': + $lang_name = 'NEW_ENGLAND_ENGLISH'; + $country_name = 'NEW_ENGLAND'; + break; + + // + case 'en_bm': + $lang_name = 'BERMUDIAN ENGLISH.'; + $country_name = 'BERMUDA'; + break; + + case 'en_nu': + $lang_name = 'NIUEAN_ENGLISH'; //Niuean (official) 46% (a Polynesian language closely related to Tongan and Samoan) + $country_name = 'NIUE'; // Niuean: Niuē + break; + + case 'en_ms': + $lang_name = 'MONTSERRAT_ENGLISH'; + $country_name = 'MONTSERRAT'; + break; + + case 'en_pn': + $lang_name = 'PITCAIRN_ISLAND_ENGLISH'; + $country_name = 'PITCAIRN_ISLAND'; + break; + + case 'en_sh': + $lang_name = 'ST_HELENA_ENGLISH'; + $country_name = 'ST_HELENA'; + break; + + case 'en_tc': + $lang_name = 'TURKS_&_CAICOS_IS_ENGLISH'; + $country_name = 'TURKS_&_CAICOS_IS'; + break; + + case 'en_vg': + $lang_name = 'VIRGIN_ISLANDS_ENGLISH'; + $country_name = 'VIRGIN_ISLANDS_(BRIT)'; + break; + + case 'eo': + $lang_name = 'ESPERANTO'; //created in the late 19th century by L. L. Zamenhof, a Polish-Jewish ophthalmologist. In 1887 + $country_name = 'EUROPE'; + break; + + case 'er': + $lang_name = 'ERITREA'; + $country_name = 'ERITREA'; + break; + + //See: + // http://www.webapps-online.com/online-tools/languages-and-locales + // https://www.ibm.com/support/knowledgecenter/ko/SSS28S_3.0.0/com.ibm.help.forms.doc/locale_spec/i_xfdl_r_locale_quick_reference.html + case 'es': + //Spanish Main + $lang_name = 'SPANISH'; + $country_name = 'SPAIN'; + break; + case 'es_MX': + case 'es_mx': + //Spanish (Mexico) (es-MX) + $lang_name = 'SPANISH_MEXICO'; + $country_name = 'MEXICO'; + break; + case 'es_US': + case 'es_us': + $lang_name = 'SPANISH_UNITED_STATES'; + $country_name = 'UNITED_STATES'; + break; + case 'es_419': + //Spanish Latin America and the Caribbean + $lang_name = 'SPANISH_CARIBBEAN'; + $country_name = 'CARIBBE'; + break; + case 'es_ar': + // Spanish Argentina + $lang_name = 'SPANISH_ARGENTINIAN'; + $country_name = 'ARGENTINA'; + break; + case 'es_BO': + case 'es_bo': + $lang_name = 'SPANISH_BOLIVIAN'; + $country_name = 'BOLIVIA'; + break; + case 'es_BR': + case 'es_br': + $lang_name = 'SPANISH_BRAZILIAN'; + $country_name = 'BRAZIL'; + break; + case 'es_cl': + // Spanish Chile + $lang_name = 'SPANISH_CHILEAN'; + $country_name = 'CHILE'; + break; + case 'es_CO': + case 'es_co': + // Spanish (Colombia) (es-CO) + $lang_name = 'SPANISH_COLOMBIAN'; + $country_name = 'COLOMBIA'; + break; + case 'es_CR': + case 'es_cr': + $lang_name = 'SPANISH_COSTA_RICA'; + $country_name = 'COSTA_RICA'; + break; + case 'es_DO': + case 'es_do': + //Spanish (Dominican Republic) (es-DO) + $lang_name = 'SPANISH_DOMINICAN_REPUBLIC'; + $country_name = 'DOMINICAN_REPUBLIC'; + break; + case 'es_ec': + // Spanish (Ecuador) (es-EC) + $lang_name = 'SPANISH'; + $country_name = 'SPAIN'; + break; + case 'es_es': + case 'es_ES': + // Spanish Spain + $lang_name = 'SPANISH'; + $country_name = 'SPAIN'; + break; + case 'es_ES_tradnl': + case 'es_es_tradnl': + $lang_name = 'SPANISH_NL'; + $country_name = 'NL'; + break; + case 'es_EU': + case 'es_eu': + $lang_name = 'SPANISH_EUROPE'; + $country_name = 'EUROPE'; + break; + case 'es_gt': + case 'es_GT': + // Spanish (Guatemala) (es-GT) + $lang_name = 'SPANISH'; + $country_name = 'SPAIN'; + break; + case 'es_HN': + case 'es_hn': + //Spanish (Honduras) (es-HN) + $lang_name = 'SPANISH'; + $country_name = 'SPAIN'; + break; + case 'es_la': + case 'es_LA': + // Spanish Lao + $lang_name = 'SPANISH'; + $country_name = 'SPAIN'; + break; + case 'es_NI': + case 'es_ni': + // Spanish (Nicaragua) (es-NI) + $lang_name = 'SPANISH_NICARAGUAN'; + $country_name = 'NICARAGUA'; + break; + case 'es_PA': + case 'es_pa': + //Spanish (Panama) (es-PA) + $lang_name = 'SPANISH_PANAMIAN'; + $country_name = 'PANAMA'; + break; + case 'es_pe': + case 'es_PE': + //Spanish (Peru) (es-PE) + $lang_name = 'SPANISH_PERU'; + $country_name = 'PERU'; + break; + case 'es_PR': + case 'es_pr': + //Spanish (Puerto Rico) (es-PR) + $lang_name = 'SPANISH_PUERTO_RICO'; + $country_name = 'PUERTO_RICO'; + break; + case 'es_PY': + case 'es_py': + //Spanish (Paraguay) (es-PY) + $lang_name = 'SPANISH_PARAGUAY'; + $country_name = 'PARAGUAY'; + break; + case 'es_SV': + case 'es_sv': + //Spanish (El Salvador) (es-SV) + $lang_name = 'SPANISH_EL_SALVADOR'; + $country_name = 'EL_SALVADOR'; + break; + case 'es_US': + case 'es_us': + // Spanish (United States) (es-US) + $lang_name = 'SPANISH_UNITED_STATES'; + $country_name = 'UNITED_STATES'; + break; + case 'es_UY': + case 'es_uy': + //Spanish (Uruguay) (es-UY) + $lang_name = 'SPANISH_URUGUAY'; + $country_name = 'URUGUAY'; + break; + case 'es_ve': + case 'es_VE': + // Spanish (Venezuela) (es-VE) + $lang_name = 'SPANISH_VENEZUELA'; + $country_name = 'BOLIVARIAN_REPUBLIC_OF_VENEZUELA'; + break; + case 'es_xl': + case 'es_XL': + // Spanish Latin America + $lang_name = 'SPANISH_LATIN_AMERICA'; + $country_name = 'LATIN_AMERICA'; + break; + + case 'et': + $lang_name = 'ESTONIAN'; + $country_name = 'ESTONIA'; + break; + + case 'eu': + $lang_name = 'BASQUE'; + $country_name = ''; + break; + + case 'fa': + $lang_name = 'PERSIAN'; + $country_name = ''; + break; + + //for Fulah (also spelled Fula) the ISO 639-1 code is ff. + //fub – Adamawa Fulfulde + //fui – Bagirmi Fulfulde + //fue – Borgu Fulfulde + //fuq – Central-Eastern Niger Fulfulde + //ffm – Maasina Fulfulde + //fuv – Nigerian Fulfulde + //fuc – Pulaar + //fuf – Pular + //fuh – Western Niger Fulfulde + + case 'fub': + $lang_name = 'ADAMAWA_FULFULDE'; + $country_name = ''; + break; + + case 'fui': + $lang_name = 'BAGIRMI_FULFULDE'; + $country_name = ''; + break; + + case 'fue': + $lang_name = 'BORGU_FULFULDE'; + $country_name = ''; + break; + + case 'fuq': + $lang_name = 'CENTRAL-EASTERN_NIGER_FULFULDE'; + $country_name = ''; + break; + + case 'ffm': + $lang_name = 'MAASINA_FULFULDE'; + $country_name = ''; + break; + + case 'fuv': + $lang_name = 'NIGERIAN_FULFULDE'; + $country_name = ''; + break; + + case 'fuc': + $lang_name = 'PULAAR'; + $country_name = 'SENEGAMBIA_CONFEDERATION'; //sn //gm + break; + + case 'fuf': + $lang_name = 'PULAR'; + $country_name = ''; + break; + + case 'fuh': + $lang_name = 'WESTERN_NIGER_FULFULDE'; + $country_name = ''; + break; + + case 'ff': + $lang_name = 'FULAH'; + $country_name = ''; + break; + + case 'fi': + case 'fin': + $lang_name = 'FINNISH'; + $country_name = 'FINLAND'; + break; + + case 'fkv': + $lang_name = 'KVEN'; + $country_name = 'NORWAY'; + break; + + case 'fit': + $lang_name = 'KVEN'; + $country_name = 'SWEDEN'; + break; + + case 'fj': + $lang_name = 'FIJIAN'; + $country_name = 'FIJI'; + break; + + case 'fk': + $lang_name = 'FALKLANDIAN'; + $country_name = 'FALKLAND_ISLANDS'; + break; + + case 'fm': + $lang_name = 'MICRONESIA'; + $country_name = 'MICRONESIA'; + break; + + case 'fo': + $lang_name = 'FAROESE'; + $country_name = 'FAROE_ISLANDS'; + break; + + //Metropolitan French (French: France Métropolitaine or la Métropole) + case 'fr': + case 'fr_me': + $lang_name = 'FRENCH'; + $country_name = 'FRANCE'; + break; + //Acadian French + case 'fr_ac': + $lang_name = 'ACADIAN_FRENCH'; + $country_name = 'ACADIA'; + break; + + case 'fr_dm': + case 'fr-DM': + $lang_name = 'DOMINICA_FRENCH'; + $country_name = 'DOMINICA'; + break; + + //al-dîzāyīr + case 'fr_dz': + $lang_name = 'ALGERIAN_FRENCH'; + $country_name = 'ALGERIA'; + break; + //Aostan French (French: français valdôtain) + //Seventy: septante[a] [sɛp.tɑ̃t] + //Eighty: huitante[b] [ɥi.tɑ̃t] + //Ninety: nonante[c] [nɔ.nɑ̃t] + case 'fr_ao': + $lang_name = 'AOSTAN_FRENCH'; + $country_name = 'ITALY'; + break; + //Belgian French + case 'fr_bl': + $lang_name = 'BELGIAN_FRENCH'; + $country_name = 'BELGIUM'; + break; + //Cambodian French - French Indochina + case 'fr_cb': + $lang_name = 'CAMBODIAN_FRENCH'; + $country_name = 'CAMBODIA'; + break; + //Cajun French - Le Français Cajun - New Orleans + case 'fr_cj': + $lang_name = 'CAJUN_FRENCH'; + $country_name = 'UNITED_STATES'; + break; + //Canadian French (French: Français Canadien) + //Official language in Canada, New Brunswick, Northwest Territories, Nunavut, Quebec, Yukon, + //Official language in United States, Maine (de facto), New Hampshire + case 'fr_ca': + case 'fr-CA': + $lang_name = 'CANADIAN_FRENCH'; + $country_name = 'CANADA'; + break; + //Guianese French + case 'gcr': + case 'fr_gu': + $lang_name = 'GUIANESE_FRENCH'; + $country_name = 'FRENCH_GUIANA'; + break; + //Guianese English + case 'gyn': + case 'en_gy': + $lang_name = 'GUYANESE_CREOLE'; + $country_name = 'ENGLISH_GUIANA'; + break; + //Haitian French + case 'fr-HT': + case 'fr_ht': + $lang_name = 'HAITIAN_FRENCH'; + $country_name = 'HAITI'; //UNITED_STATES + break; + //Haitian English + case 'en-HT': + case 'en_ht': + $lang_name = 'HAITIAN_CREOLE'; + $country_name = 'HAITI'; //UNITED_STATES + break; + //Indian French + case 'fr_id': + $lang_name = 'INDIAN_FRENCH'; + $country_name = 'INDIA'; + break; + case 'en_id': + $lang_name = 'INDIAN_ENGLISH'; + $country_name = 'INDIA'; + break; + //Jersey Legal French - Anglo-Norman French + case 'xno': + case 'fr_je': + $lang_name = 'JERSEY_LEGAL_FRENCH'; + $country_name = 'UNITED_STATES'; + break; + + case 'fr_kh': + $lang_name = 'CAMBODIAN_FRENCH'; + $country_name = 'CAMBODIA'; + break; + + //Lao French + case 'fr_la': + $lang_name = 'LAO_FRENCH'; + $country_name = 'LAOS'; + break; + //Louisiana French (French: Français de la Louisiane, Louisiana Creole: Françé la Lwizyàn) + case 'frc': + case 'fr_lu': + $lang_name = 'LOUISIANIAN_FRENCH'; + $country_name = 'LOUISIANA'; + break; + //Louisiana Creole + case 'lou': + $lang_name = 'LOUISIANA_CREOLE'; + $country_name = 'LOUISIANA'; + break; + //Meridional French (French: Français Méridional, also referred to as Francitan) + case 'fr_mr': + $lang_name = 'MERIDIONAL_FRENCH'; + $country_name = 'OCCITANIA'; + break; + //Missouri French + case 'fr_mi': + $lang_name = 'MISSOURI_FRENCH'; + $country_name = 'MISSOURI‎'; + break; + //New Caledonian French vs New Caledonian Pidgin French + case 'fr_nc': + $lang_name = 'NEW_CALEDONIAN_FRENCH'; + $country_name = 'NEW_CALEDONIA'; + break; + //Newfoundland French (French: Français Terre-Neuvien), + case 'fr_nf': + $lang_name = 'NEWFOUNDLAND_FRENCH'; + $country_name = 'CANADA'; + break; + //New England French + case 'fr_ne': + $lang_name = 'NEW_ENGLAND_FRENCH'; + $country_name = 'NEW_ENGLAND'; + break; + //Quebec French (French: français québécois; also known as Québécois French or simply Québécois) + case 'fr_qb': + $lang_name = 'QUEBEC_FRENCH'; + $country_name = 'CANADA'; + break; + //Swiss French + case 'fr_sw': + $lang_name = 'SWISS_FRENCH'; + $country_name = 'SWITZERLAND'; + break; + //French Southern and Antarctic Lands + case 'fr_tf': + case 'tf': + $lang_name = 'FRENCH_SOUTHERN_TERRITORIES'; // + $country_name = 'SOUTHERN_TERRITORIES'; //Terres australes françaises + break; + //Vietnamese French + case 'fr_vt': + $lang_name = 'VIETNAMESE_FRENCH'; + $country_name = 'VIETNAM'; + break; + //West Indian French + case 'fr_if': + $lang_name = 'WEST_INDIAN_FRENCH'; + $country_name = 'INDIA'; + break; + + case 'fr_wf': + $country_name = 'TERRITORY_OF_THE_WALLIS_AND_FUTUNA_ISLANDS'; + $lang_name = 'WALLISIAN_FRENCH'; + break; + + case 'fy': + $lang_name = 'WESTERN_FRISIAN'; + $country_name = 'FRYSK'; + break; + + case 'ga': + $lang_name = 'IRISH'; + $country_name = 'GABON'; + break; + + case 'GenAm': + $lang_name = 'General American'; + $country_name = 'UNITED_STATES'; + break; + + //gcf – Guadeloupean Creole + case 'gcf': + $lang_name = 'GUADELOUPEAN_CREOLE_FRENCH'; + $country_name = 'GUADELOUPE'; + break; + + case 'gd': + $lang_name = 'SCOTTISH'; + $country_name = 'GRENADA'; + break; + + case 'ge': + $lang_name = 'GEORGIAN'; + $country_name = 'GEORGIA'; + break; + + case 'gi': + $lang_name = 'LLANITO'; //Llanito or Yanito + $country_name = 'GIBRALTAR'; + break; + + case 'gg': + $lang_name = 'GUERNESIAIS'; //English, Guernésiais, Sercquiais, Auregnais + $country_name = 'GUERNSEY'; + break; + + case 'gh': + $lang_name = 'Ghana'; + $country_name = 'GHANA'; + break; + + case 'ell': + $lang_name = 'MODERN_GREEK'; + $country_name = 'GREECE'; + break; + + case 'gr': + case 'gre': + $lang_name = 'MODERN_GREEK'; + $country_name = 'GREECE'; + break; + + case 'grc': + $lang_name = 'ANCIENT_GREEK'; + $country_name = 'GREECE'; + break; + + //Galician is spoken by some 2.4 million people, mainly in Galicia, + //an autonomous community located in northwestern Spain. + case 'gl': + $lang_name = 'GALICIAN'; //Galicia + $country_name = 'GREENLAND'; + break; + + case 'gm': + $lang_name = 'Gambia'; + $country_name = 'GAMBIA'; + break; + + //grn is the ISO 639-3 language code for Guarani. Its ISO 639-1 code is gn. + // nhd – Chiripá + // gui – Eastern Bolivian Guaraní + // gun – Mbyá Guaraní + // gug – Paraguayan Guaraní + // gnw – Western Bolivian Guaraní + case 'gn': + $lang_name = 'GUARANI'; + $country_name = 'GUINEA'; + break; + //Nhandéva is also known as Chiripá. + //The Spanish spelling, Ñandeva, is used in the Paraguayan Chaco + // to refer to the local variety of Eastern Bolivian, a subdialect of Avá. + case 'nhd': + $lang_name = 'Chiripa'; + $country_name = 'PARAGUAY'; + break; + case 'gui': + $lang_name = 'EASTERN_BOLIVIAN_GUARANI'; + $country_name = 'BOLIVIA'; + break; + case 'gun': + $lang_name = 'MBYA_GUARANI'; + $country_name = 'PARAGUAY'; + break; + case 'gug': + $lang_name = 'PARAGUAYAN_GUARANI'; + $country_name = 'PARAGUAY'; + break; + case 'gnw': + $lang_name = 'WESTERN_BOLIVIAN_GUARANI'; + $country_name = 'BOLIVIA'; + break; + + case 'gs': + $lang_name = 'ENGLISH'; + $country_name = 'SOUTH_GEORGIA_AND_THE_SOUTH_SANDWICH_ISLANDS'; + break; + + case 'gt': + $lang_name = 'Guatemala'; + $country_name = 'GUATEMALA'; + break; + + case 'gq': + $lang_name = 'Equatorial Guinea'; + $country_name = 'EQUATORIAL_GUINEA'; + break; + + case 'gu': + $lang_name = 'GUJARATI'; + $country_name = 'GUAM'; + break; + + case 'gv': + $lang_name = 'manx'; + $country_name = ''; + break; + + case 'gw': + $lang_name = 'Guinea Bissau'; + $country_name = 'GUINEA_BISSAU'; + break; + + case 'gy': + $lang_name = 'Guyana'; + $country_name = 'GUYANA'; + break; + + case 'ha': + $country_name = ''; + $lang_name = 'HAUSA'; + break; + + //heb – Modern Hebrew + //hbo – Classical Hebrew (liturgical) + //smp – Samaritan Hebrew (liturgical) + //obm – Moabite (extinct) + //xdm – Edomite (extinct) + case 'he': + case 'heb': + $country_name = 'ISRAEL'; + $lang_name = 'HEBREW'; + break; + case 'hbo': + $country_name = 'ISRAEL'; + $lang_name = 'CLASSICAL_HEBREW'; + break; + case 'sam': + $country_name = 'SAMARIA'; + $lang_name = 'SAMARITAN_ARAMEIC'; + break; + case 'smp': + $country_name = 'SAMARIA'; + $lang_name = 'SAMARITAN_HEBREW'; + break; + case 'obm': + $country_name = 'MOAB'; + $lang_name = 'MOABITE'; + break; + case 'xdm': + $country_name = 'EDOMITE'; + $lang_name = 'EDOM'; + break; + case 'hi': + $lang_name = 'hindi'; + $country_name = ''; + break; + + case 'ho': + $lang_name = 'hiri_motu'; + $country_name = ''; + break; + + case 'hk': + $lang_name = 'Hong Kong'; + $country_name = 'HONG_KONG'; + break; + + case 'hn': + $country_name = 'Honduras'; + $lang_name = 'HONDURAS'; + break; + + case 'hr': + $lang_name = 'croatian'; + $country_name = 'CROATIA'; + break; + + case 'ht': + $lang_name = 'haitian'; + $country_name = 'HAITI'; + break; + + case 'ho': + $lang_name = 'hiri_motu'; + $country_name = ''; + break; + + case 'hu': + $lang_name = 'hungarian'; + $country_name = 'HUNGARY'; + break; + + case 'hy': + case 'hy-am': + $lang_name = 'ARMENIAN'; + $country_name = ''; + break; + + case 'hy-AT': + case 'hy_at': + $lang_name = 'ARMENIAN-ARTSAKH'; + $country_name = 'REPUBLIC_OF_ARTSAKH'; + break; + + case 'hz': + $lang_name = 'HERERO'; + $country_name = ''; + break; + + case 'ia': + $lang_name = 'INTERLINGUA'; + $country_name = ''; + break; + + case 'ic': + $lang_name = ''; + $country_name = 'CANARY_ISLANDS'; + break; + + case 'id': + $lang_name = 'INDONESIAN'; + $country_name = 'INDONESIA'; + break; + + case 'ie': + $lang_name = 'interlingue'; + $country_name = 'IRELAND'; + break; + + case 'ig': + $lang_name = 'igbo'; + $country_name = ''; + break; + + case 'ii': + $lang_name = 'sichuan_yi'; + $country_name = ''; + break; + + case 'ik': + $lang_name = 'inupiaq'; + $country_name = ''; + break; + + //Mostly spoken on Ouvéa Island or Uvea Island of the Loyalty Islands, New Caledonia. + case 'iai': + $lang_name = 'IAAI'; + $country_name = 'NEW_CALEDONIA'; + break; + + case 'il': + $lang_name = 'ibrit'; + $country_name = 'ISRAEL'; + break; + + case 'im': + $lang_name = 'Isle of Man'; + $country_name = 'ISLE_OF_MAN'; + break; + + case 'in': + $lang_name = 'India'; + $country_name = 'INDIA'; + break; + + + case 'ir': + $lang_name = 'Iran'; + $country_name = 'IRAN'; + break; + + case 'is': + $lang_name = 'Iceland'; + $country_name = 'ICELAND'; + break; + + case 'it': + $lang_name = 'ITALIAN'; + $country_name = 'ITALY'; + break; + + case 'iq': + $lang_name = 'Iraq'; + $country_name = 'IRAQ'; + break; + + case 'je': + $lang_name = 'jerriais'; //Jèrriais + $country_name = 'JERSEY'; //Bailiwick of Jersey + break; + + case 'jm': + $lang_name = 'Jamaica'; + $country_name = 'JAMAICA'; + break; + + case 'jo': + $lang_name = 'Jordan'; + $country_name = 'JORDAN'; + break; + + case 'jp': + $lang_name = 'japanese'; + $country_name = 'JAPAN'; + break; + + case 'jv': + $lang_name = 'javanese'; + $country_name = ''; + break; + + case 'kh': + $lang_name = 'KH'; + $country_name = 'CAMBODIA'; + break; + + case 'ke': + $lang_name = 'Kenya'; + $country_name = 'KENYA'; + break; + + case 'ki': + $lang_name = 'Kiribati'; + $country_name = 'KIRIBATI'; + break; + + //Bantu languages + //zdj – Ngazidja Comorian + case 'zdj': + $lang_name = 'Ngazidja Comorian'; + $country_name = 'COMOROS'; + break; + //wni – Ndzwani Comorian (Anjouani) dialect + case 'wni': + $lang_name = 'Ndzwani Comorian'; + $country_name = 'COMOROS'; + break; + //swb – Maore Comorian dialect + case 'swb': + $lang_name = 'Maore Comorian'; + $country_name = 'COMOROS'; + break; + //wlc – Mwali Comorian dialect + case 'wlc': + $lang_name = 'Mwali Comorian'; + $country_name = 'COMOROS'; + break; + + case 'km': + $lang_name = 'KHMER'; + $country_name = 'COMOROS'; + break; + + case 'kn': + $lang_name = 'kannada'; + $country_name = 'ST_KITTS-NEVIS'; + break; + + case 'ko': + case 'kp': + $lang_name = 'korean'; + // kor – Modern Korean + // jje – Jeju + // okm – Middle Korean + // oko – Old Korean + // oko – Proto Korean + // okm Middle Korean + // oko Old Korean + $country_name = 'Korea North'; + break; + + case 'kr': + $lang_name = 'korean'; + $country_name = 'KOREA_SOUTH'; + break; + + case 'kn': + $lang_name = 'St Kitts-Nevis'; + $country_name = 'ST_KITTS-NEVIS'; + break; + + case 'ks': + $lang_name = 'kashmiri'; //Kashmir + $country_name = 'KOREA_SOUTH'; + break; + + case 'ky': + $lang_name = 'Cayman Islands'; + $country_name = 'CAYMAN_ISLANDS'; + break; + + case 'kz': + $lang_name = 'Kazakhstan'; + $country_name = 'KAZAKHSTAN'; + break; + + case 'kw': + //endonim: Kernewek + $lang_name = 'Cornish'; + $country_name = 'KUWAIT'; + break; + + case 'kg': + $lang_name = 'Kyrgyzstan'; + $country_name = 'KYRGYZSTAN'; + break; + + case 'la': + $lang_name = 'Laos'; + $country_name = 'LAOS'; + break; + + case 'lk': + $lang_name = 'Sri Lanka'; + $country_name = 'SRI_LANKA'; + break; + + case 'lv': + $lang_name = 'Latvia'; + $country_name = 'LATVIA'; + break; + + case 'lb': + $lang_name = 'LUXEMBOURGISH'; + $country_name = 'LEBANON'; + break; + + case 'lc': + $lang_name = 'St Lucia'; + $country_name = 'ST_LUCIA'; + break; + + case 'ls': + $lang_name = 'Lesotho'; + $country_name = 'LESOTHO'; + break; + + case 'lo': + $lang_name = 'LAO'; + $country_name = 'LAOS'; + break; + + case 'lr': + $lang_name = 'Liberia'; + $country_name = 'LIBERIA'; + break; + + case 'ly': + $lang_name = 'Libya'; + $country_name = 'Libya'; + break; + + case 'li': + $lang_name = 'LIMBURGISH'; + $country_name = 'LIECHTENSTEIN'; + break; + + case 'lt': + $country_name = 'Lithuania'; + $lang_name = 'LITHUANIA'; + break; + + case 'lu': + $lang_name = 'LUXEMBOURGISH'; + $country_name = 'LUXEMBOURG'; + break; + + case 'ma': + $lang_name = 'Morocco'; + $country_name = 'MOROCCO'; + break; + + case 'mc': + $country_name = 'MONACO'; + $lang_name = 'Monaco'; + break; + + case 'md': + $country_name = 'MOLDOVA'; + $lang_name = 'romanian'; + break; + + case 'me': + $lang_name = 'MONTENEGRIN'; //Serbo-Croatian, Cyrillic, Latin + $country_name = 'MONTENEGRO'; //Црна Гора + break; + + case 'mf': + $lang_name = 'FRENCH'; // + $country_name = 'SAINT_MARTIN_(FRENCH_PART)'; + break; + + case 'mg': + $lang_name = 'Madagascar'; + $country_name = 'MADAGASCAR'; + break; + + case 'mh': + $lang_name = 'Marshall Islands'; + $country_name = 'MARSHALL_ISLANDS'; + break; + + case 'mi': + $lang_name = 'MAORI'; + $country_name = 'Maori'; + break; + + //Mi'kmaq hieroglyphic writing was a writing system and memory aid used by the Mi'kmaq, + //a First Nations people of the east coast of Canada, Mostly spoken in Nova Scotia and Newfoundland. + case 'mic': + $lang_name = 'MIKMAQ'; + $country_name = 'CANADA'; + break; + + case 'mk': + $lang_name = 'Macedonia'; + $country_name = 'MACEDONIA'; + break; + + case 'mr': + $lang_name = 'Mauritania'; + $country_name = 'Mauritania'; + break; + + case 'mu': + $lang_name = 'Mauritius'; + $country_name = 'MAURITIUS'; + break; + + case 'mo': + $lang_name = 'Macau'; + $country_name = 'MACAU'; + break; + + case 'mn': + $lang_name = 'Mongolia'; + $country_name = 'MONGOLIA'; + break; + + case 'ms': + $lang_name = 'Montserrat'; + $country_name = 'MONTSERRAT'; + break; + + case 'mz': + $lang_name = 'Mozambique'; + $country_name = 'MOZAMBIQUE'; + break; + + case 'mm': + $lang_name = 'Myanmar'; + $country_name = 'MYANMAR'; + break; + + case 'mp': + $lang_name = 'chamorro'; //Carolinian + $country_name = 'NORTHERN_MARIANA_ISLANDS'; + break; + + case 'mw': + $country_name = 'Malawi'; + $lang_name = 'MALAWI'; + break; + + case 'my': + $lang_name = 'Myanmar'; + $country_name = 'MALAYSIA'; + break; + + case 'mv': + $lang_name = 'Maldives'; + $country_name = 'MALDIVES'; + break; + + case 'ml': + $lang_name = 'Mali'; + $country_name = 'MALI'; + break; + + case 'mt': + $lang_name = 'Malta'; + $country_name = 'MALTA'; + break; + + case 'mx': + $lang_name = 'Mexico'; + $country_name = 'MEXICO'; + break; + + case 'mq': + $lang_name = 'antillean-creole'; // Antillean Creole (Créole Martiniquais) + $country_name = 'MARTINIQUE'; + break; + + case 'na': + $lang_name = 'Nambia'; + $country_name = 'NAMBIA'; + break; + + case 'ni': + $lang_name = 'Nicaragua'; + $country_name = 'NICARAGUA'; + break; + + //Barber: Targuí, tuareg + case 'ne': + $lang_name = 'Niger'; + $country_name = 'NIGER'; + break; + + //Mostly spoken on Maré Island of the Loyalty Islands, New Caledonia. + case 'nen': + $lang_name = 'NENGONE'; + $country_name = 'NEW_CALEDONIA'; + break; + + case 'new': + $lang_name = 'NEW_LANGUAGE'; + $country_name = 'NEW_COUNTRY'; + break; + + case 'nc': + $lang_name = 'paicî'; //French, Nengone, Paicî, Ajië, Drehu + $country_name = 'NEW_CALEDONIA'; + break; + + case 'nk': + $lang_name = 'Korea North'; + $country_name = 'KOREA_NORTH'; + break; + + case 'ng': + $lang_name = 'Nigeria'; + $country_name = 'NIGERIA'; + break; + + case 'nf': + $lang_name = 'Norfolk Island'; + $country_name = 'NORFOLK_ISLAND'; + break; + + case 'nl': + $lang_name = 'DUTCH'; //Netherlands, Flemish. + $country_name = 'NETHERLANDS'; + break; + + case 'no': + $lang_name = 'Norway'; + $country_name = 'NORWAY'; + break; + + case 'np': + $lang_name = 'Nepal'; + $country_name = 'NEPAL'; + break; + + case 'nr': + $lang_name = 'Nauru'; + $country_name = 'NAURU'; + break; + + case 'niu': + $lang_name = 'NIUEAN'; //Niuean (official) 46% (a Polynesian language closely related to Tongan and Samoan) + $country_name = 'NIUE'; // Niuean: Niuē + break; + + case 'nu': + $lang_name = 'NU'; //Niuean (official) 46% (a Polynesian language closely related to Tongan and Samoan) + $country_name = 'NIUE'; // Niuean: Niuē + break; + + case 'nz': + $lang_name = 'New Zealand'; + $country_name = 'NEW_ZEALAND'; + break; + + case 'ny': + $lang_name = 'Chewa'; + $country_name = 'Nyanja'; + break; + //langue d'oc + case 'oc': + $lang_name = 'OCCITAN'; + $country_name = 'OCCITANIA'; + break; + + case 'oj': + $lang_name = 'ojibwa'; + $country_name = ''; + break; + + case 'om': + $lang_name = 'Oman'; + $country_name = 'OMAN'; + break; + + case 'or': + $lang_name = 'oriya'; + $country_name = ''; + break; + + case 'os': + $lang_name = 'ossetian'; + $country_name = ''; + break; + + case 'pa': + $country_name = 'Panama'; + $lang_name = 'PANAMA'; + break; + + + case 'pe': + $country_name = 'Peru'; + $lang_name = 'PERU'; + break; + + case 'ph': + $lang_name = 'Philippines'; + $country_name = 'PHILIPPINES'; + break; + + case 'pf': + $country_name = 'French Polynesia'; + $lang_name = 'tahitian'; //Polynésie française + break; + + case 'pg': + $country_name = 'PAPUA_NEW_GUINEA'; + $lang_name = 'Papua New Guinea'; + break; + + case 'pi': + $lang_name = 'pali'; + $country_name = ''; + break; + + case 'pl': + $lang_name = 'Poland'; + $country_name = 'POLAND'; + break; + + case 'pn': + $lang_name = 'Pitcairn Island'; + $country_name = 'PITCAIRN_ISLAND'; + break; + + case 'pr': + $lang_name = 'Puerto Rico'; + $country_name = 'PUERTO_RICO'; + break; + + case 'pt': + $lang_name = 'Portugal'; + $country_name = 'PORTUGAL'; + break; + + case 'pk': + $lang_name = 'Pakistan'; + $country_name = 'PAKISTAN'; + break; + + case 'pw': + $country_name = 'Palau Island'; + $lang_name = 'PALAU_ISLAND'; + break; + + case 'ps': + $country_name = 'Palestine'; + $lang_name = 'PALESTINE'; + break; + + case 'py': + $country_name = 'PARAGUAY'; + $lang_name = 'PARAGUAY'; + break; + + case 'qa': + $lang_name = 'Qatar'; + $country_name = 'QATAR'; + break; + + // rmn – Balkan Romani + // rml – Baltic Romani + // rmc – Carpathian Romani + // rmf – Kalo Finnish Romani + // rmo – Sinte Romani + // rmy – Vlax Romani + // rmw – Welsh Romani + case 'ri': + case 'rom': + $country_name = 'EASTEN_EUROPE'; + $lang_name = 'ROMANI'; + break; + + case 'ro': + $country_name = 'ROMANIA'; + $lang_name = 'ROMANIAN'; + break; + + case 'ro_md': + case 'ro_MD': + $country_name = 'ROMANIA'; + $lang_name = 'ROMANIAN_MOLDAVIA'; + break; + + case 'ro_ro': + case 'ro_RO': + $country_name = 'ROMANIA'; + $lang_name = 'ROMANIAN_ROMANIA'; + break; + + case 'rn': + $lang_name = 'kirundi'; + $country_name = ''; + break; + + case 'rm': + $country_name = ''; + $lang_name = 'romansh'; //Switzerland + break; + + case 'rs': + $country_name = 'REPUBLIC_OF_SERBIA'; //Република Србија //Republika Srbija + $lang_name = 'serbian'; //Serbia, Србија / Srbija + break; + + case 'ru': + case 'ru_ru': + case 'ru_RU': + $country_name = 'RUSSIA'; + $lang_name = 'RUSSIAN'; + break; + + case 'rw': + $country_name = 'RWANDA'; + $lang_name = 'Rwanda'; + break; + + + case 'sa': + $lang_name = 'arabic'; + $country_name = 'SAUDI_ARABIA'; + break; + + case 'sb': + $lang_name = 'Solomon Islands'; + $country_name = 'SOLOMON_ISLANDS'; + break; + + case 'sc': + $lang_name = 'seychellois-creole'; + $country_name = 'SEYCHELLES'; + break; + + case 'sco': + $lang_name = 'SCOTISH'; + $country_name = 'Scotland'; + break; + + //scf – San Miguel Creole French (Panama) + case 'scf': + $lang_name = 'SAN_MIGUEL_CREOLE_FRENCH'; + $country_name = 'SAN_MIGUEL'; + break; + + case 'sd': + $lang_name = 'Sudan'; + $country_name = 'SUDAN'; + break; + + case 'si': + $lang_name = 'SLOVENIAN'; + $country_name = 'SLOVENIA'; + break; + + case 'sh': + $lang_name = 'SH'; + $country_name = 'ST_HELENA'; + break; + + case 'sk': + $country_name = 'SLOVAKIA'; + $lang_name = 'Slovakia'; + break; + + case 'sg': + $country_name = 'SINGAPORE'; + $lang_name = 'Singapore'; + break; + + case 'sl': + $country_name = 'SIERRA_LEONE'; + $lang_name = 'Sierra Leone'; + break; + + case 'sm': + $lang_name = 'San Marino'; + $country_name = 'SAN_MARINO'; + break; + + case 'smi': + $lang_name = 'Sami'; + $country_name = 'Norway'; //Native to Finland, Norway, Russia, and Sweden + break; + + case 'sn': + $lang_name = 'Senegal'; + $country_name = 'SENEGAL'; + break; + + case 'so': + $lang_name = 'Somalia'; + $country_name = 'SOMALIA'; + break; + + case 'sq': + $lang_name = 'ALBANIAN'; + $country_name = 'Albania'; + break; + + case 'sr': + $lang_name = 'Suriname'; + $country_name = 'SURINAME'; + break; + + case 'ss': + $lang_name = ''; //Bari [Karo or Kutuk ('mother tongue', Beri)], Dinka, Luo, Murle, Nuer, Zande + $country_name = 'REPUBLIC_OF_SOUTH_SUDAN'; + break; + + case 'sse': + $lang_name = 'STANDARD_SCOTTISH_ENGLISH'; + $country_name = 'Scotland'; + break; + + case 'st': + $lang_name = 'Sao Tome & Principe'; + $country_name = 'SAO_TOME_&_PRINCIPE'; + break; + + case 'sv': + $lang_name = 'El Salvador'; + $country_name = 'EL_SALVADOR'; + break; + + case 'sx': + $lang_name = 'dutch'; + $country_name = 'SINT_MAARTEN_(DUTCH_PART)'; + break; + + + case 'sz': + $lang_name = 'Swaziland'; + $country_name = 'SWAZILAND'; + break; + + case 'se': + case 'sv-SE': + case 'sv-se': + //Swedish (Sweden) (sv-SE) + $lang_name = 'Sweden'; + $country_name = 'SWEDEN'; + break; + + case 'sy': + $lang_name = 'SYRIAC'; //arabic syrian + $country_name = 'SYRIA'; + break; + + + case 'tc': + $lang_name = 'Turks & Caicos Is'; + $country_name = 'TURKS_&_CAICOS_IS'; + break; + + case 'td': + $lang_name = 'Chad'; + $country_name = 'CHAD'; + break; + + case 'tf': + $lang_name = 'french '; // + $country_name = 'FRENCH_SOUTHERN_TERRITORIES'; //Terres australes françaises + break; + + case 'tj': + $lang_name = 'Tajikistan'; + $country_name = 'TAJIKISTAN'; + break; + + case 'tg': + $lang_name = 'Togo'; + $country_name = 'TOGO'; + break; + + case 'th': + $country_name = 'Thailand'; + $lang_name = 'THAILAND'; + break; + + case 'tk': + //260 speakers of Tokelauan, of whom 2,100 live in New Zealand, + //1,400 in Tokelau, + //and 17 in Swains Island + $lang_name = 'Tokelauan'; // /toʊkəˈlaʊən/ Tokelauans or Polynesians + $country_name = 'TOKELAUAU'; //Dependent territory of New Zealand + break; + + case 'tl': + $country_name = 'East Timor'; + $lang_name = 'East Timor'; + break; + + case 'to': + $country_name = 'Tonga'; + $lang_name = 'TONGA'; + break; + + case 'tt': + $country_name = 'Trinidad & Tobago'; + $lang_name = 'TRINIDAD_&_TOBAGO'; + break; + + case 'tn': + $lang_name = 'Tunisia'; + $country_name = 'TUNISIA'; + break; + + case 'tm': + $lang_name = 'Turkmenistan'; + $country_name = 'TURKMENISTAN'; + break; + + case 'tr': + $lang_name = 'Turkey'; + $country_name = 'TURKEY'; + break; + + case 'tv': + $lang_name = 'Tuvalu'; + $country_name = 'TUVALU'; + break; + + case 'tw': + $lang_name = 'TAIWANESE_HOKKIEN'; //Taibei Hokkien + $country_name = 'TAIWAN'; + break; + + case 'tz': + $country_name = 'TANZANIA'; + $lang_name = 'Tanzania'; + break; + + case 'ug': + $lang_name = 'Uganda'; + $country_name = 'UGANDA'; + break; + + case 'ua': + $lang_name = 'Ukraine'; + $country_name = 'UKRAINE'; + break; + + case 'us': + $lang_name = 'en-us'; + $country_name = 'UNITED_STATES_OF_AMERICA'; + break; + + case 'uz': + $lang_name = 'uzbek'; //Uyghur Perso-Arabic alphabet + $country_name = 'UZBEKISTAN'; + break; + + case 'uy': + $lang_name = 'Uruguay'; + $country_name = 'URUGUAY'; + break; + + case 'va': + $country_name = 'VATICAN_CITY'; //Holy See + $lang_name = 'latin'; + break; + + case 'vc': + $country_name = 'ST_VINCENT_&_GRENADINES'; // + $lang_name = 'vincentian-creole'; + break; + + case 've': + $lang_name = 'Venezuela'; + $country_name = 'VENEZUELA'; + break; + + case 'vi': + $lang_name = 'Virgin Islands (USA)'; + $country_name = 'VIRGIN_ISLANDS_(USA)'; + break; + + case 'fr_vn': + $lang_name = 'FRENCH_VIETNAM'; + $country_name = 'VIETNAM'; + break; + + case 'vn': + $lang_name = 'Vietnam'; + $country_name = 'VIETNAM'; + break; + + case 'vg': + $lang_name = 'Virgin Islands (Brit)'; + $country_name = 'VIRGIN_ISLANDS_(BRIT)'; + break; + + case 'vu': + $lang_name = 'Vanuatu'; + $country_name = 'VANUATU'; + break; + + case 'wls': + $lang_name = 'WALLISIAN'; + $country_name = 'WALES'; + break; + + case 'wf': + $country_name = 'TERRITORY_OF_THE_WALLIS_AND_FUTUNA_ISLANDS'; + $lang_name = 'WF'; + //Wallisian, or ʻUvean + //Futunan - Austronesian, Malayo-Polynesian + break; + + case 'ws': + $country_name = 'SAMOA'; + $lang_name = 'Samoa'; + break; + + case 'ye': + $lang_name = 'Yemen'; + $country_name = 'YEMEN'; + break; + + case 'yt': + $lang_name = 'Mayotte'; //Shimaore: + $country_name = 'DEPARTMENT_OF_MAYOTTE'; //Département de Mayotte + break; + + case 'za': + $lang_name = 'zhuang'; + $country_name = 'SOUTH_AFRICA'; + break; + case 'zm': + $lang_name = 'zambian'; + $country_name = 'ZAMBIA'; + break; + case 'zw': + $lang_name = 'Zimbabwe'; + $country_name = 'ZIMBABWE'; + break; + case 'zu': + $lang_name = 'zulu'; + $country_name = 'ZULU'; + break; + default: + $lang_name = $file_dir; + $country_name = $file_dir; + break; + } + $return = ($lang_country == 'country') ? $country_name : $lang_name; + $return = ($langs_countries == true) ? $lang_name[$country_name] : $return; + return $return ; + } + + /** + * @param string $var The key to look for + * @return mixed The data stored at the key + */ + public function __get($var) + { + if (isset($this -> $var)) + { + return $this -> $var; + } + if ($var == 'size') + { + $this -> size = new Size(SHOW_DIR_SIZE ? $this -> dir_size() : false); + return $this -> size; + } + throw new ExceptionDisplay('Variable ' . Url::html_output($var) + . ' not set in DirItem class.'); + } +} + +?> \ No newline at end of file diff --git a/classes/DirectoryList.php b/classes/DirectoryList.php new file mode 100644 index 0000000..c20e782 --- /dev/null +++ b/classes/DirectoryList.php @@ -0,0 +1,256 @@ + + * @version 1.0.1 (June 30, 2004) + * @package AutoIndex + */ +class DirectoryList implements Iterator +{ + /** + * @var string The directory this object represents + */ + protected $dir_name; + + /** + * @var array The list of filesname in this directory (strings) + */ + protected $contents; + + /** + * @var int The size of the $contents array + */ + private $list_count; + + //begin implementation of Iterator + /** + * @var int $i is used to keep track of the current pointer inside the array when implementing Iterator + */ + private $i; + + /** + * @return string The element $i currently points to in the array + */ + public function current() + { + if ($this -> i < count($this -> contents)) + { + return $this -> contents[$this -> i]; + } + return false; + } + + /** + * Increments the internal array pointer, then returns the value + * at that new position. + * + * @return string The current position of the pointer in the array + */ + public function next() + { + $this -> i++; + return $this -> current(); + } + + /** + * Sets the internal array pointer to 0 + */ + public function rewind() + { + $this -> i = 0; + } + + /** + * @return bool True if $i is a valid array index + */ + public function valid() + { + return ($this -> i < count($this -> contents)); + } + + /** + * @return int Returns $i, the key of the array + */ + public function key() + { + return $this -> i; + } + //end implementation of Iterator + + /** + * @return int The total size in bytes of the folder (recursive) + */ + public function size_recursive() + { + $total_size = 0; + foreach ($this as $current) + { + $t = $this -> dir_name . $current; + if (@is_dir($t)) + { + if ($current != '..') + { + $temp = new DirectoryList($t); + $total_size += $temp -> size_recursive(); + } + } + else + { + $total_size += @filesize($t); + } + } + return $total_size; + } + + /** + * @return int The total number of files in this directory (recursive) + */ + public function num_files() + { + $count = 0; + foreach ($this as $current) + { + $t = $this -> dir_name . $current; + if (@is_dir($t)) + { + if ($current != '..') + { + $temp = new DirectoryList($t); + $count += $temp -> num_files(); + } + } + else + { + $count++; + } + } + return $count; + } + + /** + * @param string $string The string to search for + * @param array $array The array to search + * @return bool True if $string matches any elements in $array + */ + public static function match_in_array($string, &$array) + { + $string = Item::get_basename($string); + static $replace = array( + '\*' => '[^\/]*', + '\+' => '[^\/]+', + '\?' => '[^\/]?'); + foreach ($array as $m) + { + if (preg_match('/^' . strtr(preg_quote(Item::get_basename($m), '/'), $replace) . '$/i', $string)) + { + return true; + } + } + return false; + } + + /** + * @param string $t The file or folder name + * @param bool $is_file + * @return bool True if $t is listed as a hidden file + */ + public static function is_hidden($t, $is_file = true) + { + $t = Item::get_basename($t); + if ($t == '.' || $t == '') + { + return true; + } + global $you; + if ($you -> level >= ADMIN) + //allow admins to view hidden files + { + return false; + } + global $hidden_files, $show_only_these_files; + if ($is_file && count($show_only_these_files)) + { + return (!self::match_in_array($t, $show_only_these_files)); + } + return self::match_in_array($t, $hidden_files); + } + + /** + * @param string $var The key to look for + * @return mixed The data stored at the key + */ + public function __get($var) + { + if (isset($this -> $var)) + { + return $this -> $var; + } + throw new ExceptionDisplay('Variable ' . Url::html_output($var) + . ' not set in DirectoryList class.'); + } + + /** + * @param string $path + */ + public function __construct($path) + { + $path = Item::make_sure_slash($path); + if (!@is_dir($path)) + { + throw new ExceptionDisplay('Directory ' . Url::html_output($path) + . ' does not exist.'); + } + $temp_list = @scandir($path); + if ($temp_list === false) + { + throw new ExceptionDisplay('Error reading from directory ' + . Url::html_output($path) . '.'); + } + $this -> dir_name = $path; + $this -> contents = array(); + foreach ($temp_list as $t) + { + if (!self::is_hidden($t, !@is_dir($path . $t))) + { + $this -> contents[] = $t; + } + } + $this -> list_count = count($this -> contents); + $this -> i = 0; + } +} + +?> \ No newline at end of file diff --git a/classes/DirectoryListDetailed.php b/classes/DirectoryListDetailed.php new file mode 100644 index 0000000..7aa3165 --- /dev/null +++ b/classes/DirectoryListDetailed.php @@ -0,0 +1,237 @@ + + * @version 1.1.0 (January 01, 2006) + * @package AutoIndex + */ +class DirectoryListDetailed extends DirectoryList +{ + /** + * @var string The HTML text that makes up the path navigation links + */ + protected $path_nav; + + /** + * @var int Total number of files in this directory + */ + protected $total_files; + + /** + * @var int Total number of folders in this directory + */ + protected $total_folders; + + /** + * @var int Total number of folders in this directory (including parent) + */ + protected $raw_total_folders; + + /** + * @var int Total number of downloads of files in this directory + */ + protected $total_downloads; + + /** + * @var Size Total size of this directory (recursive) + */ + protected $total_size; + + /** + * @return string The HTML text that makes up the path navigation + */ + private function set_path_nav() + { + global $config, $subdir; + $exploded = explode('/', $subdir); + $c = count($exploded) - 1; + $temp = '' + . Url::html_output(substr(str_replace('/', ' / ', $config -> __get('base_dir')), 0, -2)) . '/ '; + for ($i = 0; $i < $c; $i++) + { + $temp .= '' . Url::html_output($exploded[$i]) . ' / '; + } + return $temp; + } + + /** + * Returns -1 if $a < $b or 1 if $a > $b + * + * @param Item $a + * @param Item $b + * @return int + */ + private static function callback_sort(Item $a, Item $b) + { + if ($a -> __get('is_parent_dir')) + { + return -1; + } + if ($b -> __get('is_parent_dir')) + { + return 1; + } + $sort = strtolower($_SESSION['sort']); + if ($sort === 'size') + { + $val = (($a -> __get('size') -> __get('bytes') < + $b -> __get('size') -> __get('bytes')) ? -1 : 1); + } + else + { + if (!$a -> is_set($sort)) + { + $_SESSION['sort'] = 'filename'; //so the "continue" link will work + throw new ExceptionDisplay('Invalid sort mode.'); + } + if (is_string($a -> __get($sort))) + { + $val = strnatcasecmp($a -> __get($sort), $b -> __get($sort)); + } + else + { + $val = (($a -> __get($sort) < $b -> __get($sort)) ? -1 : 1); + } + } + return ((strtolower($_SESSION['sort_mode']) === 'd') ? -$val : $val); + } + + /** + * @param array $list The array to be sorted with the callback_sort function + */ + protected static function sort_list(&$list) + { + usort($list, array('self', 'callback_sort')); + } + + /** + * @return int The total number of files and folders (including the parent folder) + */ + public function total_items() + { + return $this -> raw_total_folders + $this -> total_files; + } + + /** + * @param string $path The directory to read the files from + * @param int $page The number of files to skip (used for pagination) + */ + public function __construct($path, $page = 1) + { + $path = Item::make_sure_slash($path); + parent::__construct($path); + $subtract_parent = false; + $this -> total_downloads = $total_size = 0; + $dirs = $files = array(); + foreach ($this as $t) + { + if (@is_dir($path . $t)) + { + $temp = new DirItem($path, $t); + if ($temp -> __get('is_parent_dir')) + { + $dirs[] = $temp; + $subtract_parent = true; + } + else if ($temp -> __get('filename') !== false) + { + $dirs[] = $temp; + if ($temp -> __get('size') -> __get('bytes') !== false) + { + $total_size += $temp -> __get('size') -> __get('bytes'); + } + } + } + else if (@is_file($path . $t)) + { + $temp = new FileItem($path, $t); + if ($temp -> __get('filename') !== false) + { + $files[] = $temp; + $this -> total_downloads += $temp -> __get('downloads'); + $total_size += $temp -> __get('size') -> __get('bytes'); + } + } + } + self::sort_list($dirs); + self::sort_list($files); + $this -> contents = array_merge($dirs, $files); + $this -> total_size = new Size($total_size); + $this -> total_files = count($files); + $this -> raw_total_folders = $this -> total_folders = count($dirs); + if ($subtract_parent) + { + $this -> total_folders--; + } + $this -> path_nav = $this -> set_path_nav(); + + //Paginate the files + if (ENTRIES_PER_PAGE) + { + if ($page < 1) + { + throw new ExceptionDisplay('Invalid page number.'); + } + global $config; + $num_per_page = $config -> __get('entries_per_page'); + if (($page - 1) * $num_per_page >= $this -> total_items()) + { + throw new ExceptionDisplay('Invalid page number.'); + } + $this -> contents = array_slice($this -> contents, ($page - 1) * $num_per_page, $num_per_page); + } + } + + /** + * @return string The HTML text of the directory list, using the template system + */ + public function __toString() + { + $head = new TemplateInfo(TABLE_HEADER, $this); + $main = new TemplateFiles(EACH_FILE, $this); + $foot = new TemplateInfo(TABLE_FOOTER, $this); + return $head -> __toString() . $main -> __toString() . $foot -> __toString(); + } +} + +?> \ No newline at end of file diff --git a/classes/Display.php b/classes/Display.php new file mode 100644 index 0000000..d9b7a25 --- /dev/null +++ b/classes/Display.php @@ -0,0 +1,90 @@ + + * @version 1.0.2 (July 22, 2004) + * @package AutoIndex + */ +class Display +{ + /** + * @var string HTML text to output + */ + private $contents; + + /** + * @return string The HTML text of the list of function calls + * @see debug_backtrace() + */ + public static function get_trace() + { + $list = '

Debug trace:'; + foreach (debug_backtrace() as $arr) + { + $line = (isset($arr['line']) ? $arr['line'] : 'unknown'); + $file = (isset($arr['file']) ? Item::get_basename($arr['file']) : 'unknown'); + $type = (isset($arr['type']) ? $arr['type'] : ''); + $class = (isset($arr['class']) ? $arr['class'] : ''); + $function = (isset($arr['function']) ? $arr['function'] : 'unknown'); + $list .= "\n
$file line $line ($class$type$function)"; + } + return $list . '

'; + } + + /** + * @param string $contents Sets the HTML contents + */ + public function __construct(&$contents) + { + $this -> contents = $contents; + } + + /** + * @return string The HTML output, using the template system + */ + public function __toString() + { + $header = new TemplateIndexer(GLOBAL_HEADER); + $footer = new TemplateIndexer(GLOBAL_FOOTER); + $output = $header -> __toString() . $this -> contents; + if (DEBUG) + { + $output .= self::get_trace(); + } + return $output . $footer -> __toString(); + } +} + +?> \ No newline at end of file diff --git a/classes/ExceptionDisplay.php b/classes/ExceptionDisplay.php new file mode 100644 index 0000000..34c87e1 --- /dev/null +++ b/classes/ExceptionDisplay.php @@ -0,0 +1,64 @@ + + * @version 1.0.0 (August 01, 2004) + * @package AutoIndex + * @see Display + */ +class ExceptionDisplay extends ExceptionFatal +{ + /** + * @return string The HTML text to display + */ + public function __toString() + { + global $words; + $str = '
' + . $this -> message . '

' . (isset($words) ? $words -> __get('continue') : 'Continue') + . '.

'; + $temp = new Display($str); + return $temp -> __toString(); + } +} + +?> \ No newline at end of file diff --git a/classes/FileItem.php b/classes/FileItem.php new file mode 100644 index 0000000..7203349 --- /dev/null +++ b/classes/FileItem.php @@ -0,0 +1,118 @@ + + * @version 1.0.1 (July 10, 2004) + * @package AutoIndex + */ +class FileItem extends Item +{ + /** + * @param string $fn The filename + * @return string Everything after the list dot in the filename, not including the dot + */ + public static function ext($fn) + { + $fn = Item::get_basename($fn); + return (strpos($fn, '.') ? strtolower(substr(strrchr($fn, '.'), 1)) : ''); + } + + /** + * @return string Returns the extension of the filename + * @see FileItem::ext() + */ + public function file_ext() + { + return self::ext($this -> filename); + } + + /** + * @param string $parent_dir + * @param string $filename + */ + public function __construct($parent_dir, $filename) + { + parent::__construct($parent_dir, $filename); + if (!@is_file($this -> parent_dir . $filename)) + { + throw new ExceptionDisplay('File ' + . Url::html_output($this -> parent_dir . $filename) + . ' does not exist.'); + } + global $config, $words, $downloads; + $this -> filename = $filename; + $this -> size = new Size(filesize($this -> parent_dir . $filename)); + if (ICON_PATH) + { + $file_icon = new Icon($filename); + $this -> icon = $file_icon -> __toString(); + } + $this -> downloads = (DOWNLOAD_COUNT && $downloads -> is_set($parent_dir . $filename) ? (int)($downloads -> __get($parent_dir . $filename)) : 0); + $this -> link = Url::html_output($_SERVER['PHP_SELF']) . '?dir=' . Url::translate_uri(substr($this -> parent_dir, strlen($config -> __get('base_dir')))) + . '&file=' . Url::translate_uri($filename); + if (THUMBNAIL_HEIGHT && in_array(self::ext($filename), array('png', 'jpg', 'jpeg', 'gif'))) + { + $this -> thumb_link = ' ' . $words -> __get('thumbnail of') . ' ' . $filename
+			. ''; + } + $size = $this -> size -> __get('bytes'); + if (MD5_SHOW && $size > 0 && $size / 1048576 <= $config -> __get('md5_show')) + { + $this -> md5_link = '[' + . $words -> __get('calculate md5sum') . ']'; + } + } + + /** + * @param string $var The key to look for + * @return mixed The data stored at the key + */ + public function __get($var) + { + if (isset($this -> $var)) + { + return $this -> $var; + } + throw new ExceptionDisplay('Variable ' . Url::html_output($var) + . ' not set in FileItem class.'); + } +} + +?> \ No newline at end of file diff --git a/classes/Ftp.php b/classes/Ftp.php new file mode 100644 index 0000000..6482882 --- /dev/null +++ b/classes/Ftp.php @@ -0,0 +1,155 @@ + + * @version 1.0.0 (February 16, 2005) + * @package AutoIndex + */ +class Ftp extends DirectoryList +{ + /** + * @var resource The FTP connection handle + */ + private $handle; + + /** + * @var array Array of bools, for each entry + */ + private $is_directory; + + /** + * Returns if the $i'th entry is a directory or not. + * + * @param int $i The file/folder entry to check + * @return bool True if directory, false if file + */ + public function is_directory($i) + { + return $this -> is_directory[$i]; + } + + /** + * Reads the contents of the directory $path from the FTP server. + * + * @param string $path + */ + private function update_list($path) + { + $path = Item::make_sure_slash($path); + $is_dir = $this -> contents = array(); + $this -> dir_name = $path; + $raw_list = @ftp_rawlist($this -> handle, $path); + if ($raw_list === false) + { + throw new ExceptionDisplay('Unable to read directory contents of FTP server.'); + } + foreach ($raw_list as $file) + { + if ($file == '') + { + continue; + } + $name = strrchr($file, ' '); + if ($name === false) + { + continue; + } + $this -> is_directory[] = (strtolower($file{0}) === 'd'); + $this -> contents[] = $path . substr($name, 1); + } + $this -> list_count = count($this -> contents); + $this -> i = 0; + } + + /** + * @param string $local + * @param string $remote + */ + public function get_file($local, $remote) + { + if (!@ftp_get($this -> handle, $local, $remote, FTP_BINARY)) + { + throw new ExceptionDisplay('Unable to transfer file from FTP server.'); + } + } + + /** + * @param string $local + * @param string $remote + */ + public function put_file($local, $remote) + { + if (!@ftp_put($this -> handle, $remote, $local, FTP_BINARY)) + { + throw new ExceptionDisplay('Unable to transfer file to FTP server.'); + } + } + + /** + * @param string $host + * @param int $port + * @param bool $passive + * @param string $directory Directory to view + * @param string $username To login with + * @param string $password To login with + */ + public function __construct($host, $port, $passive, $directory, $username, $password) + { + $this -> handle = @ftp_connect(trim($host), (int)$port); + if ($this -> handle === false) + { + throw new ExceptionDisplay('Could not connect to FTP server.'); + } + if (!@ftp_login($this -> handle, $username, $password)) + { + throw new ExceptionDisplay('Incorrect login for FTP server.'); + } + if ($passive && !@ftp_pasv($this -> handle, true)) + { + throw new ExceptionDisplay('Could not set passive mode for FTP server.'); + } + $this -> update_list($directory); + } + + /** + * Closes the open FTP connection when the object is destroyed. + */ + public function __destruct() + { + ftp_close($this -> handle); + } +} + +?> \ No newline at end of file diff --git a/classes/Htaccess.php b/classes/Htaccess.php new file mode 100644 index 0000000..493032c --- /dev/null +++ b/classes/Htaccess.php @@ -0,0 +1,508 @@ + + * - + * - + * - AddDescription + * - IndexIgnore + * - Include + * - Order + * - Deny from + * - Allow from + * - AuthUserFile + * - AuthName + * - Require user + * + * These password formats are supported for .htpasswd file: + * - MD5 + * - SHA-1 + * - Crypt + * - Apache's Custom MD5 Crypt + * + * @author Justin Hagstrom + * @version 1.0.1 (January 6, 2007) + * @package AutoIndex + */ +class Htaccess +{ + /** + * @var string "AuthName" setting + */ + private $auth_name; + + /** + * @var string "AuthUserFile" setting + */ + private $auth_user_file; + + /** + * @var array "Require user" setting + */ + private $auth_required_users; + + /** + * @var string "Order" setting + */ + private $order; + + /** + * @var array "Allow from" setting + */ + private $allow_list; + + /** + * @var array "Deny from" setting + */ + private $deny_list; + + /** + * Converts hexadecimal to binary. + * + * @param string $hex + * @return string + */ + private static function hex2bin($hex) + { + $bin = ''; + $ln = strlen($hex); + for($i = 0; $i < $ln; $i += 2) + { + $bin .= chr(hexdec($hex{$i} . $hex{$i+1})); + } + return $bin; + } + + /** + * Return the number of count from the value using base conversion. + * + * @param int $value + * @param int $count + * @return int + */ + private static function to64($value, $count) + { + static $root = './0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz'; + $result = ''; + while(--$count) + { + $result .= $root[$value & 0x3f]; + $value >>= 6; + } + return $result; + } + + /** + * Implementation of Apache's Custom MD5 Crypt. + * + * @param string $plain The plaintext password + * @param string $salt The salt + * @return string The hashed password + */ + private static function md5_crypt($plain, $salt) + { + $length = strlen($plain); + $context = $plain . '$apr1$' . $salt; + $binary = self::hex2bin(md5($plain . $salt . $plain)); + for ($i = $length; $i > 0; $i -= 16) + { + $context .= substr($binary, 0, min(16, $i)); + } + for ( $i = $length; $i > 0; $i >>= 1) + { + $context .= ($i & 1) ? chr(0) : $plain[0]; + } + $binary = self::hex2bin(md5($context)); + for ($i = 0; $i < 1000; $i++) + { + $new = ($i & 1) ? $plain : substr($binary, 0, 16); + if ($i % 3) + { + $new .= $salt; + } + if ($i % 7) + { + $new .= $plain; + } + $new .= (($i & 1) ? substr($binary, 0, 16) : $plain); + $binary = self::hex2bin(md5($new)); + } + $p = array(); + for ($i = 0; $i < 5; $i++) + { + $k = $i + 6; + $j = $i + 12; + if ($j == 16) + { + $j = 5; + } + $p[] = self::to64( + (ord($binary[$i]) << 16) | + (ord($binary[$k]) << 8) | + (ord($binary[$j])), 5 + ); + } + return '$apr1$' . $salt . '$' . implode($p) . self::to64(ord($binary[11]), 3); + } + + /** + * Tests if $test matches $target. + * + * @param string $test + * @param string $target + * @return bool True if $test matches $target + */ + private static function matches($test, $target) + { + static $replace = array( + '\*' => '.*', + '\+' => '.+', + '\?' => '.?'); + return (bool)preg_match('/^' . strtr(preg_quote($test, '/'), $replace) . '$/i', $target); + } + + /** + * Checks if AuthName and AuthUserFile are set, and then prompts for a + * username and password. + */ + private function check_auth() + { + if ($this -> auth_user_file == '') + { + return; + } + if ($this -> auth_name == '') + { + $this -> auth_name = '"Directory access restricted by AutoIndex"'; + } + $validated = false; + if (isset($_SERVER['PHP_AUTH_USER'], $_SERVER['PHP_AUTH_PW'])) + { + $file = @file($this -> auth_user_file); + if ($file === false) + { + $_GET['dir'] = ''; + throw new ExceptionDisplay('Cannot open .htpasswd file. +
' . htmlentities($this -> auth_user_file) . ''); + } + if ($this -> auth_required_users === array() || DirectoryList::match_in_array($_SERVER['PHP_AUTH_USER'], $this -> auth_required_users)) + { + foreach ($file as $account) + { + $parts = explode(':', trim($account)); + if (count($parts) < 2 || $_SERVER['PHP_AUTH_USER'] != $parts[0]) + { + continue; + } + if (isset($parts[2])) + //MD5 hash format with realm + { + $parts[1] = $parts[2]; + } + switch (strlen($parts[1])) + { + case 13: + //Crypt hash format + { + $validated = (crypt($_SERVER['PHP_AUTH_PW'], substr($parts[1], 0, 2)) == $parts[1]); + break 2; + } + case 32: + //MD5 hash format + { + $validated = (md5($_SERVER['PHP_AUTH_PW']) == $parts[1]); + break 2; + } + case 37: + //Apache's MD5 Crypt hash format + { + $salt = explode('$', $parts[1]); + $validated = (self::md5_crypt($_SERVER['PHP_AUTH_PW'], $salt[2]) == $parts[1]); + break 2; + } + case 40: + //SHA-1 hash format + { + $validated = (sha1($_SERVER['PHP_AUTH_PW']) == $parts[1]); + break 2; + } + } + } + } + sleep(1); + } + if (!$validated) + { + header('WWW-Authenticate: Basic realm=' . $this -> auth_name); + header('HTTP/1.0 401 Authorization Required'); + $_GET['dir'] = ''; + throw new ExceptionDisplay('A username and password are required to access this directory.'); + } + } + + /** + * Checks if the user's IP or hostname is either allowed or denied. + */ + private function check_deny() + { + global $ip, $host, $words; + if ($this -> order === 'allow,deny') + { + if (!DirectoryList::match_in_array($host, $this -> allow_list) + && !DirectoryList::match_in_array($ip, $this -> allow_list)) + { + $_GET['dir'] = ''; + throw new ExceptionDisplay($words -> __get('the administrator has blocked your ip address or hostname') . '.'); + } + } + else if (DirectoryList::match_in_array($ip, $this -> deny_list) + || DirectoryList::match_in_array($host, $this -> deny_list)) + { + $_GET['dir'] = ''; + throw new ExceptionDisplay($words -> __get('the administrator has blocked your ip address or hostname') . '.'); + } + } + + /** + * @param string $file The .htaccess file (name and path) to parse + */ + private function parse($file) + { + $data = @file($file); + if ($data === false) + { + return; + } + $conditional_directory = ''; + $other_conditional = false; + foreach ($data as $line) + { + $line = trim($line); + if ($line == '') + { + continue; + } + if ($line{0} == '<') + { + if (preg_match('#^#i', $line)) + { + $conditional_directory = ''; + } + else if (preg_match('#^<\s*directory\s+\"?(.+?)\"?\s*>#i', $line, $matches)) + { + $conditional_directory = $matches[1]; + } + else if (preg_match('#^#i', $line)) + { + //ignore tags + continue; + } + else if (preg_match('#^#i', $line)) + { + $conditional_defined = ''; + } + else if (preg_match('#^<\s*ifdefine\s+(.+?)\s*>#i', $line, $matches)) + { + $conditional_defined = $matches[1]; + } + else if (isset($line{1})) + { + $other_conditional = ($line{1} != '/'); + } + continue; + } + global $dir; + if ($other_conditional || $conditional_directory != '' && !self::matches($conditional_directory, $dir)) + //deal with or an unknown < > tag + { + continue; + } + if ($conditional_defined != '') + //deal with + { + $conditional_defined = strtoupper($conditional_defined); + if ($conditional_defined{0} === '!') + { + $conditional_defined = substr($conditional_defined, 1); + if (defined($conditional_defined) && constant($conditional_defined)) + { + continue; + } + } + else if (!defined($conditional_defined) || !constant($conditional_defined)) + { + continue; + } + } + $parts = preg_split('#\s#', $line, -1, PREG_SPLIT_NO_EMPTY); + switch (strtolower($parts[0])) + { + case 'indexignore': + { + global $hidden_files; + for ($i = 1; $i < count($parts); $i++) + { + $hidden_files[] = $parts[$i]; + } + break; + } + case 'include': + { + if (isset($parts[1]) && @is_file($parts[1]) && @is_readable($parts[1])) + { + self::parse($parts[1]); + } + break; + } + case 'allow': + { + if (isset($parts[1]) && strtolower($parts[1]) === 'from') + { + for ($i = 2; $i < count($parts); $i++) + { + foreach (explode(',', $parts[$i]) as $ip) + { + if (strtolower($ip) === 'all') + { + $this -> allow_list = array('*'); + } + else + { + $this -> allow_list[] = $ip; + } + } + } + } + break; + } + case 'deny': + { + if (isset($parts[1]) && strtolower($parts[1]) === 'from') + { + for ($i = 2; $i < count($parts); $i++) + { + foreach (explode(',', $parts[$i]) as $ip) + { + if (strtolower($ip) === 'all') + { + $this -> deny_list = array('*'); + } + else + { + $this -> deny_list[] = $ip; + } + } + } + } + break; + } + case 'adddescription': + { + global $descriptions; + if (!isset($descriptions)) + { + $descriptions = new ConfigData(false); + } + for ($i = 1; isset($parts[$i], $parts[$i+1]); $i += 2) + { + $descriptions -> set($parts[$i], $parts[$i+1]); + } + break; + } + case 'authuserfile': + { + if (isset($parts[1])) + { + $this -> auth_user_file = str_replace('"', '', implode(' ', array_slice($parts, 1))); + } + break; + } + case 'authname': + { + if (isset($parts[1])) + { + $this -> auth_name = implode(' ', array_slice($parts, 1)); + } + break; + } + case 'order': + { + if (isset($parts[1]) && (strtolower($parts[1]) === 'allow,deny' || strtolower($parts[1]) === 'mutual-failure')) + { + $this -> order = 'allow,deny'; + } + } + case 'require': + { + if (isset($parts[1]) && strtolower($parts[1]) === 'user') + { + for ($i = 2; $i < count($parts); $i++) + { + $this -> auth_required_users[] = $parts[$i]; + } + } + break; + } + } + } + } + + /** + * @param string $dir The deepest folder to parse for .htaccess files + * @param string $filename The name of the files to look for + */ + public function __construct($dir, $filename = '.htaccess') + { + $this -> auth_name = $this -> auth_user_file = ''; + $this -> auth_required_users = $this -> allow_list = $this -> deny_list = array(); + $this -> order = 'deny,allow'; + if (DirItem::get_parent_dir($dir) != '') + //recurse into parent directories + { + new Htaccess(DirItem::get_parent_dir($dir)); + } + $dir = Item::make_sure_slash($dir); + $file = $dir . $filename; + if (@is_file($file) && @is_readable($file)) + { + $this -> parse($dir . $filename); + $this -> check_deny(); + $this -> check_auth(); + } + } +} + +?> \ No newline at end of file diff --git a/classes/Icon.php b/classes/Icon.php new file mode 100644 index 0000000..d61ee7a --- /dev/null +++ b/classes/Icon.php @@ -0,0 +1,148 @@ + + * @version 1.0.2 (August 07, 2004) + * @package AutoIndex + */ +class Icon +{ + /** + * @var string Filename of the image file + */ + private $image_name; + + /** + * Given a file extension, this will come up with the filename of the + * icon to represent the filetype. + * + * @param string $ext The file extension to find the icon for + * @return string The appropriate icon depending on the extension + */ + private static function find_icon($ext) + { + if ($ext == '') + { + return 'generic'; + } + static $icon_types = array( + 'binary' => array('bat', 'bin', 'com', 'dmg', 'dms', 'exe', 'msi', + 'msp', 'pif', 'pyd', 'scr', 'so'), + 'binhex' => array('hqx'), + 'cd' => array('bwi', 'bws', 'bwt', 'ccd', 'cdi', 'cue', 'img', + 'iso', 'mdf', 'mds', 'nrg', 'nri', 'sub', 'vcd'), + 'comp' => array('cfg', 'conf', 'inf', 'ini', 'log', 'nfo', 'reg'), + 'compressed' => array('7z', 'a', 'ace', 'ain', 'alz', 'amg', 'arc', + 'ari', 'arj', 'bh', 'bz', 'bz2', 'cab', 'deb', 'dz', 'gz', + 'io', 'ish', 'lha', 'lzh', 'lzs', 'lzw', 'lzx', 'msx', 'pak', + 'rar', 'rpm', 'sar', 'sea', 'sit', 'taz', 'tbz', 'tbz2', + 'tgz', 'tz', 'tzb', 'uc2', 'xxe', 'yz', 'z', 'zip', 'zoo'), + 'dll' => array('386', 'db', 'dll', 'ocx', 'sdb', 'vxd'), + 'doc' => array('abw', 'ans', 'chm', 'cwk', 'dif', 'doc', 'dot', + 'mcw', 'msw', 'pdb', 'psw', 'rtf', 'rtx', 'sdw', 'stw', 'sxw', + 'vor', 'wk4', 'wkb', 'wpd', 'wps', 'wpw', 'wri', 'wsd'), + 'image' => array('adc', 'art', 'bmp', 'cgm', 'dib', 'gif', 'ico', + 'ief', 'jfif', 'jif', 'jp2', 'jpc', 'jpe', 'jpeg', 'jpg', 'jpx', + 'mng', 'pcx', 'png', 'psd', 'psp', 'swc', 'sxd', 'tga', + 'tif', 'tiff', 'wmf', 'wpg', 'xcf', 'xif', 'yuv'), + 'java' => array('class', 'jar', 'jav', 'java', 'jtk'), + 'js' => array('ebs', 'js', 'jse', 'vbe', 'vbs', 'wsc', 'wsf', + 'wsh'), + 'key' => array('aex', 'asc', 'gpg', 'key', 'pgp', 'ppk'), + 'mov' => array('amc', 'dv', 'm4v', 'mac', 'mov', 'mp4v', 'mpg4', + 'pct', 'pic', 'pict', 'pnt', 'pntg', 'qpx', 'qt', 'qti', + 'qtif', 'qtl', 'qtp', 'qts', 'qtx'), + 'movie' => array('asf', 'asx', 'avi', 'div', 'divx', 'dvi', 'm1v', + 'm2v', 'mkv', 'movie', 'mp2v', 'mpa', 'mpe', 'mpeg', 'mpg', + 'mps', 'mpv', 'mpv2', 'ogm', 'ram', 'rmvb', 'rnx', 'rp', 'rv', + 'vivo', 'vob', 'wmv', 'xvid'), + 'pdf' => array('edn', 'fdf', 'pdf', 'pdp', 'pdx'), + 'php' => array('inc', 'php', 'php3', 'php4', 'php5', 'phps', + 'phtml'), + 'ppt' => array('emf', 'pot', 'ppa', 'pps', 'ppt', 'sda', 'sdd', + 'shw', 'sti', 'sxi'), + 'ps' => array('ai', 'eps', 'ps'), + 'sound' => array('aac', 'ac3', 'aif', 'aifc', 'aiff', 'ape', 'apl', + 'au', 'ay', 'bonk', 'cda', 'cdda', 'cpc', 'fla', 'flac', + 'gbs', 'gym', 'hes', 'iff', 'it', 'itz', 'kar', 'kss', 'la', + 'lpac', 'lqt', 'm4a', 'm4p', 'mdz', 'mid', 'midi', 'mka', + 'mo3', 'mod', 'mp+', 'mp1', 'mp2', 'mp3', 'mp4', 'mpc', + 'mpga', 'mpm', 'mpp', 'nsf', 'oda', 'ofr', 'ogg', 'pac', 'pce', + 'pcm', 'psf', 'psf2', 'ra', 'rm', 'rmi', 'rmjb', 'rmm', 'sb', + 'shn', 'sid', 'snd', 'spc', 'spx', 'svx', 'tfm', 'tfmx', + 'voc', 'vox', 'vqf', 'wav', 'wave', 'wma', 'wv', 'wvx', 'xa', + 'xm', 'xmz'), + 'tar' => array('gtar', 'tar'), + 'text' => array('asm', 'c', 'cc', 'cp', 'cpp', 'cxx', 'diff', 'h', + 'hpp', 'hxx', 'm3u', 'md5', 'patch', 'pls', 'py', 'sfv', 'sh', + 'txt'), + 'uu' => array('uu', 'uud', 'uue'), + 'web' => array('asa', 'asp', 'aspx', 'cfm', 'cgi', 'css', 'dhtml', + 'dtd', 'grxml', 'htc', 'htm', 'html', 'htt', 'htx', 'jsp', 'lnk', + 'mathml', 'mht', 'mhtml', 'perl', 'pl', 'plg', 'rss', 'shtm', + 'shtml', 'stm', 'swf', 'tpl', 'wbxml', 'xht', 'xhtml', 'xml', + 'xsl', 'xslt', 'xul'), + 'xls' => array('csv', 'dbf', 'prn', 'pxl', 'sdc', 'slk', 'stc', 'sxc', + 'xla', 'xlb', 'xlc', 'xld', 'xlr', 'xls', 'xlt', 'xlw')); + foreach ($icon_types as $png_name => $exts) + { + if (in_array($ext, $exts)) + { + return $png_name; + } + } + return 'unknown'; + } + + /** + * @param string $filename The filename to find the icon for + */ + public function __construct($filename) + { + $this -> image_name = self::find_icon(FileItem::ext($filename)); + } + + /** + * @return string The full path to the icon file + */ + public function __toString() + { + global $config; + return $config -> __get('icon_path') + . $this -> image_name . '.png'; + } +} + +?> \ No newline at end of file diff --git a/classes/Image.php b/classes/Image.php new file mode 100644 index 0000000..f650d7b --- /dev/null +++ b/classes/Image.php @@ -0,0 +1,204 @@ + + * @version 1.0.0 (May 22, 2004) + * @package AutoIndex + */ +class Image +{ + /** + * @var string Name of the image file + */ + private $filename; + + /** + * @var int The height of the thumbnail to create (width is automatically determined) + */ + private $height; + + /** + * Outputs the jpeg image along with the correct headers so the + * browser will display it. The script is then exited. + */ + public function __toString() + { + $thumbnail_height = $this -> height; + $file = $this -> filename; + if (!@is_file($file)) + { + header('HTTP/1.0 404 Not Found'); + throw new ExceptionDisplay('Image file not found: ' + . Url::html_output($file) . ''); + } + switch (FileItem::ext($file)) + { + case 'gif': + { + $src = @imagecreatefromgif($file); + break; + } + case 'jpeg': + case 'jpg': + case 'jpe': + { + $src = @imagecreatefromjpeg($file); + break; + } + case 'png': + { + $src = @imagecreatefrompng($file); + break; + } + case 'php': + { + $src = str_replace('php', 'png', $file); + //JN (GPL) + $file_header = 'Content-type: image/png'; + + srand ((float) microtime() * 10000000); + $quote = rand(1, 6); + + switch($quote) + { + case "1": + $rand_quote = "MXP-CMS Team, mxp.sf.net"; + break; + + case "2": + $rand_quote = "in between milestones edition ;)"; + break; + + case "3": + $rand_quote = "MX-Publisher, Fully Modular Portal & CMS for phpBB"; + break; + + case "4": + $rand_quote = "Portal & CMS Site Creation Tool"; + break; + + case "5": + $rand_quote = "...pafileDB, FAP, MX-Publisher, Translator"; + break; + + case "6": + $rand_quote = "...Calendar, Links & News...modules"; + break; + } + + $pic_title = $rand_quote; + $pic_title_reg = preg_replace("/[^A-Za-z0-9]/", "_", $pic_title); + + $current_release = "3.0.0"; + + $im = @ImageCreateFromPNG($src); + $pic_size = @getimagesize($src); + + $pic_width = $pic_size[0]; + $pic_height = $pic_size[1]; + + $dimension_font = 1; + $dimension_filesize = filesize($src); + $dimension_string = intval($pic_width) . 'x' . intval($pic_height) . '(' . intval($dimension_filesize / 1024) . 'KB)'; + + $blue = ImageColorAllocate($im, 6, 108, 159); + + $dimension_height = imagefontheight($dimension_font); + $dimension_width = imagefontwidth($dimension_font) * strlen($current_release); + $dimension_x = ($thumbnail_width - $dimension_width) / 2; + $dimension_y = $thumbnail_height + ((16 - $dimension_height) / 2); + //ImageString($im, 2, $dimension_x, $dimension_y, $current_release, $blue); + @ImageString($im, 2, 125, 2, $current_release, $blue); + @ImageString($im, 2, 20, 17, $rand_quote, $blue); + + @Header($file_header); + Header("Expires: Mon, 1, 1999 05:00:00 GMT"); + Header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT"); + Header("Cache-Control: no-store, no-cache, must-revalidate"); + Header("Cache-Control: post-check=0, pre-check=0", false); + Header("Pragma: no-cache"); + @ImagePNG($im); + exit; + break; + } + default: + { + throw new ExceptionDisplay('Unsupported file extension.'); + } + } + if ($src === false) + { + throw new ExceptionDisplay('Unsupported image type.'); + } + + header('Content-Type: image/jpeg'); + header('Cache-Control: public, max-age=3600, must-revalidate'); + header('Expires: ' . gmdate('D, d M Y H:i:s', time() + 3600) + . ' GMT'); + $src_height = imagesy($src); + if ($src_height <= $thumbnail_height) + { + imagejpeg($src, '', 95); + } + else + { + $src_width = imagesx($src); + $thumb_width = $thumbnail_height * ($src_width / $src_height); + $thumb = imagecreatetruecolor($thumb_width, $thumbnail_height); + imagecopyresampled($thumb, $src, 0, 0, 0, 0, $thumb_width, + $thumbnail_height, $src_width, $src_height); + imagejpeg($thumb); + imagedestroy($thumb); + } + imagedestroy($src); + die(); + } + + /** + * @param string $file The image file + */ + public function __construct($file) + { + if (!THUMBNAIL_HEIGHT) + { + throw new ExceptionDisplay('Image thumbnailing is turned off.'); + } + global $config; + $this -> height = (int)$config -> __get('thumbnail_height'); + $this -> filename = $file; + } +} + +?> \ No newline at end of file diff --git a/classes/Item.php b/classes/Item.php new file mode 100644 index 0000000..32aee23 --- /dev/null +++ b/classes/Item.php @@ -0,0 +1,218 @@ + + * @version 1.0.1 (July 03, 2004) + * @package AutoIndex + * @see DirItem, FileItem + */ +abstract class Item +{ + /** + * @var string + */ + protected $filename; + + /** + * @var Size + */ + protected $size; + + /** + * @var int Last modified time + */ + protected $m_time; + + /** + * @var int Last accessed time + */ + protected $a_time; + + /** + * @var int + */ + protected $downloads; + + /** + * @var string + */ + protected $description; + + /** + * @var string The HTML text of the link to the type icon + */ + protected $icon; + + /** + * @var string The HTML text of the "[New]" icon + */ + protected $new_icon; + + /** + * @var string The HTML text of the link to this file or folder + */ + protected $link; + + /** + * @var string The HTML text of the link to the thumbnail picture + */ + protected $thumb_link; + + /** + * @var string The HTML text of the link to find the md5sum + */ + protected $md5_link; + + /** + * @var string The name and path of the parent directory + */ + protected $parent_dir; + + /** + * @var bool True if this is a link to '../' + */ + protected $is_parent_dir; + + /** + * @param int $timestamp Time in UNIX timestamp format + * @return string Formatted version of $timestamp + */ + private static function format_date($timestamp) + { + if ($timestamp === false) + { + return ' '; + } + return date(DATE_FORMAT, $timestamp); + } + + /** + * @return string Date modified (m_time) formatted as a string + * @see Item::format_date() + */ + public function format_m_time() + { + return self::format_date($this -> m_time); + } + + /** + * @return string Date last accessed (a_time) formatted as a string + * @see Item::format_date() + */ + public function format_a_time() + { + return self::format_date($this -> a_time); + } + + /** + * Returns everything after the slash, or the original string if there is + * no slash. A slash at the last character of the string is ignored. + * + * @param string $fn The file or folder name + * @return string The basename of $fn + * @see basename() + */ + public static function get_basename($fn) + { + return basename(str_replace('\\', '/', $fn)); + } + + /** + * @param string $path The directory name + * @return string If there is no slash at the end of $path, one will be added + */ + public static function make_sure_slash($path) + { + $path = str_replace('\\', '/', $path); + if (!preg_match('#/$#', $path)) + { + $path .= '/'; + } + return $path; + } + + /** + * @param string $parent_dir + * @param string $filename + */ + public function __construct($parent_dir, $filename) + { + $parent_dir = self::make_sure_slash($parent_dir); + $full_name = $parent_dir . $filename; + $this -> is_parent_dir = false; + $this -> m_time = filemtime($full_name); + $this -> a_time = fileatime($full_name); + $this -> icon = $this -> new_icon = $this -> md5_link = $this -> thumb_link = ''; + global $descriptions; + $this -> description = ((DESCRIPTION_FILE && $descriptions -> is_set($full_name)) ? $descriptions -> __get($full_name) : ' '); + $this -> parent_dir = $parent_dir; + if (DAYS_NEW) + { + global $config; + $days_new = $config -> __get('days_new'); + $age = (time() - $this -> m_time) / 86400; + $age_r = round($age, 1); + $s = (($age_r == 1) ? '' : 's'); + + $this -> new_icon = (($days_new > 0 && $age <= $days_new) ? + (ICON_PATH ? ' ' . ' : ' [New]') : ''); + } + } + + /** + * @param string $var The key to look for + * @return bool True if $var is set + */ + public function is_set($var) + { + return isset($this -> $var); + } + + /** + * @return string The file or folder name + */ + public function __toString() + { + return $this -> filename; + } + + /** + * @return string The file extension of the file or folder name + */ + abstract public function file_ext(); +} + +?> \ No newline at end of file diff --git a/classes/Language.php b/classes/Language.php new file mode 100644 index 0000000..83fa86c --- /dev/null +++ b/classes/Language.php @@ -0,0 +1,168 @@ + + * @version 1.0.0 (January 01, 2006) + * @package AutoIndex + */ +class Language +{ + /** + * @var ConfigData Contains the translation data from the language file + */ + private $translation_data; + + /** + * Returns a list of all files in $path that match the filename format + * of language files. + * + * There are two valid formats for the filename of a language file. The + * standard way is the language code then the .txt extension. You can + * also use the language code followed by an underscore then the + * country code. The second format would be used for dialects of + * languages. For example pt.txt would be Portuguese, and pt_BR.txt + * would be Brazilian Portuguese. The filenames are case insensitive. + * + * @param string $path The directory to read from + * @return array The list of valid language files (based on filename) + */ + public static function get_all_langs($path) + { + if (($hndl = @opendir($path)) === false) + { + return false; + } + $list = array(); + while (($file = readdir($hndl)) !== false) + { + if (@is_file($path . $file) && preg_match('/^[a-z]{2}(_[a-z]{2})?' + . preg_quote(LANGUAGE_FILE_EXT, '/') . '$/i', $file)) + { + $list[] = $file; + } + } + closedir($hndl); + for ($i = 0; $i < count($list); $i++) + { + //remove the file extention from each language code + $list[$i] = substr($list[$i], 0, -strlen(LANGUAGE_FILE_EXT)); + } + return $list; + } + + /** + * @return string The code for the language to load + * + * First tries to use the default of the user's browser, and then tries + * the default in the config file. + */ + private function get_current_lang() + { + //try to detect the default language of the user's browser + if (isset($_SERVER['HTTP_ACCEPT_LANGUAGE'])) + //e.g. "en-us,en;q=0.5" + { + $available_langs = self::get_all_langs(PATH_TO_LANGUAGES); + if ($available_langs !== false) + { + $pref = array(); //user's preferred languages + foreach (explode(',', $_SERVER['HTTP_ACCEPT_LANGUAGE']) as $lang) + { + $lang_array = explode(';q=', trim($lang)); + $q = (isset($lang_array[1]) ? trim($lang_array[1]) : 1); //preference value + $pref[trim($lang_array[0])] = (float) $q; + } + arsort($pref); + //find the first match that is available: + foreach ($pref as $lang => $q) + { + if (in_array($lang, $available_langs)) + { + return $lang; + } + elseif (file_exists(@realpath(PATH_TO_LANGUAGES . $lang . LANGUAGE_FILE_EXT))) + { + return $lang; + } + } + } + } + //the browser has no preferences set, so use the config's default + global $config; + return $config -> __get('language'); + } + + /** + * Creates a new language object. First tries to use the default of + * the user's browser, and then tries the default in the config file. + */ + public function __construct() + { + $lang_file = PATH_TO_LANGUAGES . $this -> get_current_lang() + . LANGUAGE_FILE_EXT; + if (!@is_readable($lang_file)) + { + throw new ExceptionFatal('Cannot read from language file: ' + . Url::html_output($lang_file) . ''); + } + //load the file as a tab-separated object + $this -> translation_data = new ConfigData($lang_file); + } + + /** + * @param string $name The word to look for + * @return bool True if $name is set in the translation file + */ + public function is_set($name) + { + return $translation_data -> is_set($name); + } + + /** + * @param string $var The key to look for (the keyword) + * @return string The value $name points to (its translation) + */ + public function __get($var) + { + if ($this -> translation_data -> is_set($var)) + { + return $this -> translation_data -> __get($var); + } + throw new ExceptionDisplay('Variable ' . Url::html_output($var) + . ' not set in Language file.'); + } +} + +?> \ No newline at end of file diff --git a/classes/Logging.php b/classes/Logging.php new file mode 100644 index 0000000..709980f --- /dev/null +++ b/classes/Logging.php @@ -0,0 +1,132 @@ + + * @version 1.0.1 (July 21, 2004) + * @package AutoIndex + */ +class Logging +{ + /** + * @var string Filename of the log to write to + */ + private $filename; + + /** + * @param string $filename The name of the log file + */ + public function __construct($filename) + { + $this -> filename = $filename; + } + + /** + * Writes data to the log file. + * + * @param string $extra Any additional data to add in the last column of the entry + */ + public function add_entry($extra = '') + { + if (LOG_FILE) + { + $h = @fopen($this -> filename, 'ab'); + if ($h === false) + { + throw new ExceptionDisplay('Could not open log file for writing.' + . ' Make sure PHP has write permission to this file.'); + } + global $dir, $ip, $host; + $referrer = (isset($_SERVER['HTTP_REFERER']) ? $_SERVER['HTTP_REFERER'] : 'N/A'); + fwrite($h, date(DATE_FORMAT) . "\t" . date('H:i:s') + . "\t$ip\t$host\t$referrer\t$dir\t$extra\n"); + fclose($h); + } + } + + /** + * @param int $max_num_to_display + */ + public function display($max_num_to_display) + { + if (!@is_file($this -> filename)) + { + throw new ExceptionDisplay('There are no entries in the log file.'); + } + $file_array = @file($this -> filename); + if ($file_array === false) + { + throw new ExceptionDisplay('Could not open log file for reading.'); + } + $count_log = count($file_array); + $num = (($max_num_to_display == 0) ? $count_log : min($max_num_to_display, $count_log)); + $out = "

Viewing $num (of $count_log) entries.

\n" + . '' + . '' + . '' + . '' + . ''; + for ($i = 0; $i < $num; $i++) + { + $class = (($i % 2) ? 'dark_row' : 'light_row'); + $out .= ''; + $parts = explode("\t", rtrim($file_array[$count_log-$i-1], "\r\n"), 7); + if (count($parts) !== 7) + { + throw new ExceptionDisplay('Incorrect format for log file on line ' + . ($i + 1)); + } + for ($j = 0; $j < 7; $j++) + { + $cell = Url::html_output($parts[$j]); + if ($j === 4 && $cell != 'N/A') + { + $cell = "$cell"; + } + $out .= '' : "$cell"); + } + $out .= "\n"; + } + global $words; + $out .= '
#DateTimeIP addressHostnameReferrerDirectoryFile downloaded or other info
' . ($i + 1) . '' . (($cell == '') ? ' 

' . $words -> __get('continue') + . '.

'; + echo new Display($out); + die(); + } +} + +?> \ No newline at end of file diff --git a/classes/MimeType.php b/classes/MimeType.php new file mode 100644 index 0000000..95cde31 --- /dev/null +++ b/classes/MimeType.php @@ -0,0 +1,200 @@ + + * @version 1.0.1 (February 09, 2005) + * @package AutoIndex + */ +class MimeType +{ + /** + * @var string The filename's MIME-type + */ + private $mime; + + /** + * @var string The default MIME-type to return + */ + private $default_type; + + /** + * Given a file extension, this will come up with the file's appropriate + * MIME-type. + * + * @param string $ext The file extension to find the MIME-type for + * @return string The appropriate MIME-type depending on the extension + */ + private function find_mime_type($ext) + { + static $mime_types = array( + 'application/andrew-inset' => array('ez'), + 'application/mac-binhex40' => array('hqx'), + 'application/mac-compactpro' => array('cpt'), + 'application/mathml+xml' => array('mathml'), + 'application/msword' => array('doc'), + 'application/octet-stream' => array('bin', 'dms', 'lha', + 'lzh', 'exe', 'class', 'so', 'dll', 'dmg'), + 'application/oda' => array('oda'), + 'application/ogg' => array('ogg'), + 'application/pdf' => array('pdf'), + 'application/postscript' => array('ai', 'eps', 'ps'), + 'application/rdf+xml' => array('rdf'), + 'application/smil' => array('smi', 'smil'), + 'application/srgs' => array('gram'), + 'application/srgs+xml' => array('grxml'), + 'application/vnd.mif' => array('mif'), + 'application/vnd.mozilla.xul+xml' => array('xul'), + 'application/vnd.ms-excel' => array('xls'), + 'application/vnd.ms-powerpoint' => array('ppt'), + 'application/vnd.wap.wbxml' => array('wbxml'), + 'application/vnd.wap.wmlc' => array('wmlc'), + 'application/vnd.wap.wmlscriptc' => array('wmlsc'), + 'application/voicexml+xml' => array('vxml'), + 'application/x-bcpio' => array('bcpio'), + 'application/x-cdlink' => array('vcd'), + 'application/x-chess-pgn' => array('pgn'), + 'application/x-cpio' => array('cpio'), + 'application/x-csh' => array('csh'), + 'application/x-director' => array('dcr', 'dir', 'dxr'), + 'application/x-dvi' => array('dvi'), + 'application/x-futuresplash' => array('spl'), + 'application/x-gtar' => array('gtar'), + 'application/x-hdf' => array('hdf'), + 'application/x-javascript' => array('js'), + 'application/x-koan' => array('skp', 'skd', 'skt', 'skm'), + 'application/x-latex' => array('latex'), + 'application/x-netcdf' => array('nc', 'cdf'), + 'application/x-sh' => array('sh'), + 'application/x-shar' => array('shar'), + 'application/x-shockwave-flash' => array('swf'), + 'application/x-stuffit' => array('sit'), + 'application/x-sv4cpio' => array('sv4cpio'), + 'application/x-sv4crc' => array('sv4crc'), + 'application/x-tar' => array('tar'), + 'application/x-tcl' => array('tcl'), + 'application/x-tex' => array('tex'), + 'application/x-texinfo' => array('texinfo', 'texi'), + 'application/x-troff' => array('t', 'tr', 'roff'), + 'application/x-troff-man' => array('man'), + 'application/x-troff-me' => array('me'), + 'application/x-troff-ms' => array('ms'), + 'application/x-ustar' => array('ustar'), + 'application/x-wais-source' => array('src'), + 'application/xhtml+xml' => array('xhtml', 'xht'), + 'application/xslt+xml' => array('xslt'), + 'application/xml' => array('xml', 'xsl'), + 'application/xml-dtd' => array('dtd'), + 'application/zip' => array('zip'), + 'audio/basic' => array('au', 'snd'), + 'audio/midi' => array('mid', 'midi', 'kar'), + 'audio/mpeg' => array('mpga', 'mp2', 'mp3'), + 'audio/x-aiff' => array('aif', 'aiff', 'aifc'), + 'audio/x-mpegurl' => array('m3u'), + 'audio/x-pn-realaudio' => array('ram', 'ra'), + 'application/vnd.rn-realmedia' => array('rm'), + 'audio/x-wav' => array('wav'), + 'chemical/x-pdb' => array('pdb'), + 'chemical/x-xyz' => array('xyz'), + 'image/bmp' => array('bmp'), + 'image/cgm' => array('cgm'), + 'image/gif' => array('gif'), + 'image/ief' => array('ief'), + 'image/jpeg' => array('jpeg', 'jpg', 'jpe'), + 'image/png' => array('png'), + 'image/svg+xml' => array('svg'), + 'image/tiff' => array('tiff', 'tif'), + 'image/vnd.djvu' => array('djvu', 'djv'), + 'image/vnd.wap.wbmp' => array('wbmp'), + 'image/x-cmu-raster' => array('ras'), + 'image/x-icon' => array('ico'), + 'image/x-portable-anymap' => array('pnm'), + 'image/x-portable-bitmap' => array('pbm'), + 'image/x-portable-graymap' => array('pgm'), + 'image/x-portable-pixmap' => array('ppm'), + 'image/x-rgb' => array('rgb'), + 'image/x-xbitmap' => array('xbm'), + 'image/x-xpixmap' => array('xpm'), + 'image/x-xwindowdump' => array('xwd'), + 'model/iges' => array('igs', 'iges'), + 'model/mesh' => array('msh', 'mesh', 'silo'), + 'model/vrml' => array('wrl', 'vrml'), + 'text/calendar' => array('ics', 'ifb'), + 'text/css' => array('css'), + 'text/html' => array('html', 'htm'), + 'text/plain' => array('asc', 'txt'), + 'text/richtext' => array('rtx'), + 'text/rtf' => array('rtf'), + 'text/sgml' => array('sgml', 'sgm'), + 'text/tab-separated-values' => array('tsv'), + 'text/vnd.wap.wml' => array('wml'), + 'text/vnd.wap.wmlscript' => array('wmls'), + 'text/x-setext' => array('etx'), + 'video/mpeg' => array('mpeg', 'mpg', 'mpe'), + 'video/quicktime' => array('qt', 'mov'), + 'video/vnd.mpegurl' => array('mxu', 'm4u'), + 'video/x-msvideo' => array('avi'), + 'video/x-sgi-movie' => array('movie'), + 'x-conference/x-cooltalk' => array('ice') + ); + foreach ($mime_types as $mime_type => $exts) + { + if (in_array($ext, $exts)) + { + return $mime_type; + } + } + return $this -> default_type; + } + + /** + * @param string $filename The filename to find the MIME-type for + * @param string $default_type The default MIME-type to return + */ + public function __construct($filename, $default_type = 'text/plain') + { + $this -> default_type = $default_type; + $this -> mime = $this -> find_mime_type(FileItem::ext($filename)); + } + + /** + * @return string + */ + public function __toString() + { + return $this -> mime; + } +} + +?> \ No newline at end of file diff --git a/classes/Search.php b/classes/Search.php new file mode 100644 index 0000000..d13f854 --- /dev/null +++ b/classes/Search.php @@ -0,0 +1,189 @@ + + * @version 1.0.3 (July 06, 2005) + * @package AutoIndex + */ +class Search extends DirectoryListDetailed +{ + /** + * @var array List of matched filenames + */ + private $matches; + + /** + * @return string The HTML text that makes up the search box + */ + public static function search_box() + { + global $words, $subdir; + $search = (isset($_GET['search']) ? Url::html_output($_GET['search']) : ''); + $mode = (isset($_GET['search_mode']) ? self::clean_mode($_GET['search_mode']) : 'f'); + $modes = array('files' => 'f', 'folders' => 'd', 'both' => 'fd'); + $out = '
' + . '

' + . '

'; + return $out; + } + + /** + * @param string $filename + * @param string $string + * @return bool True if string matches filename + */ + private static function match(&$filename, &$string) + { + if (preg_match_all('/(?<=")[^"]+(?=")|[^ "]+/', $string, $matches)) + { + foreach ($matches[0] as $w) + { + if (stripos($filename, $w) !== false) + { + return true; + } + } + } + return false; + } + + /** + * Merges $obj into $this. + * + * @param Search $obj + */ + private function merge(Search $obj) + { + $this -> total_folders += $obj -> __get('total_folders'); + $this -> total_files += $obj -> __get('total_files'); + $this -> total_downloads += $obj -> __get('total_downloads'); + $this -> total_size -> add_size($obj -> __get('total_size')); + $this -> matches = array_merge($this -> matches, $obj -> __get('contents')); + } + + /** + * Returns a string with all characters except 'd' and 'f' stripped. + * Either 'd' 'f' 'df' will be returned, defaults to 'f' + * + * @param string $mode + * @return string + */ + private static function clean_mode($mode) + { + $str = ''; + if (stripos($mode, 'f') !== false) + { + $str .= 'f'; + } + if (stripos($mode, 'd') !== false) + { + $str .= 'd'; + } + else if ($str == '') + { + $str = 'f'; + } + return $str; + } + + /** + * @param string $query String to search for + * @param string $dir The folder to search (recursive) + * @param string $mode Should be f (files), d (directories), or fd (both) + */ + public function __construct($query, $dir, $mode) + { + if (strlen($query) < 2 || strlen($query) > 20) + { + throw new ExceptionDisplay('Search query is either too long or too short.'); + } + $mode = self::clean_mode($mode); + $dir = Item::make_sure_slash($dir); + DirectoryList::__construct($dir); + $this -> matches = array(); + $this -> total_size = new Size(0); + $this -> total_downloads = $this -> total_folders = $this -> total_files = 0; + foreach ($this as $item) + { + if ($item == '..') + { + continue; + } + if (@is_dir($dir . $item)) + { + if (stripos($mode, 'd') !== false && self::match($item, $query)) + { + $temp = new DirItem($dir, $item); + $this -> matches[] = $temp; + if ($temp -> __get('size') -> __get('bytes') !== false) + { + $this -> total_size -> add_size($temp -> __get('size')); + } + $this -> total_folders++; + } + $sub_search = new Search($query, $dir . $item, $mode); + $this -> merge($sub_search); + } + else if (stripos($mode, 'f') !== false && self::match($item, $query)) + { + $temp = new FileItem($dir, $item); + $this -> matches[] = $temp; + $this -> total_size -> add_size($temp -> __get('size')); + $this -> total_downloads += $temp -> __get('downloads'); + $this -> total_files++; + } + } + global $words, $config, $subdir; + $link = ' ' + . Url::html_output($dir) . ' '; + $this -> path_nav = $words -> __get('search results for') + . $link . $words -> __get('and its subdirectories'); + $this -> contents = $this -> matches; + unset($this -> matches); + } +} + +?> \ No newline at end of file diff --git a/classes/Size.php b/classes/Size.php new file mode 100644 index 0000000..4b7c21a --- /dev/null +++ b/classes/Size.php @@ -0,0 +1,112 @@ + + * @version 1.0.1 (July 15, 2004) + * @package AutoIndex + */ +class Size +{ + /** + * @var int Size in bytes + */ + private $bytes; + + /** + * @return string Returns $bytes formatted as a string + */ + public function formatted() + { + $size = $this -> bytes; + if ($size === true) + //used for the parent directory + { + return ' '; + } + if ($size === false) + //used for regular directories (if SHOW_DIR_SIZE is false) + { + return '[dir]'; + } + static $u = array(' B', 'KB', 'MB', 'GB'); + for ($i = 0; $size >= 1024 && $i < 4; $i++) + { + $size /= 1024; + } + return number_format($size, 1) . ' ' . $u[$i]; + } + + /** + * Adds the size of $s into $this + * + * @param Size $s + */ + public function add_size(Size $s) + { + $temp = $s -> __get('bytes'); + if (is_int($temp)) + { + $this -> bytes += $temp; + } + } + + /** + * True if parent directory, + * False if directory, + * Integer for an actual size. + * + * @param mixed $bytes + */ + public function __construct($bytes) + { + $this -> bytes = ((is_bool($bytes)) ? $bytes : max((int)$bytes, 0)); + } + + /** + * @param string $var The key to look for + * @return string The value $name points to + */ + public function __get($var) + { + if (isset($this -> $var)) + { + return $this -> $var; + } + throw new ExceptionDisplay('Variable ' . Url::html_output($var) + . ' not set in Size class.'); + } +} + +?> \ No newline at end of file diff --git a/classes/Stats.php b/classes/Stats.php new file mode 100644 index 0000000..f535aac --- /dev/null +++ b/classes/Stats.php @@ -0,0 +1,498 @@ + + * @version 1.0.1 (July 12, 2004) + * @package AutoIndex + */ +class Stats +{ + /** + * @var array Stores number of downloads per file extension + */ + private $extensions; + + /** + * @var array Hits per day + */ + private $dates; + + /** + * @var array Unique hits per day + */ + private $unique_hits; + + /** + * @var array Keys are the country codes and values are the number of visits + */ + private $countries; + + /** + * @var int Total views of the base_dir + */ + private $total_hits; + + /** + * @var int The number of days that there is a log entry for + */ + private $num_days; + + /** + * @var int Average hits per day ($total_hits / $num_days) + */ + private $avg; + + /** + * Returns $num formatted with a color (green for positive numbers, red + * for negative numbers, and black for 0). + * + * @param int $num + * @return string + */ + private static function get_change_color($num) + { + if ($num > 0) + { + return '+'; + } + if ($num < 0) + { + return ''; + } + return ''; + } + + /** + * If $array[$num] is set, it will be incremented by 1, otherwise it will + * be set to 1. + * + * @param int $num + * @param array $array + */ + private static function add_num_to_array($num, &$array) + { + isset($array[$num]) ? $array[$num]++ : $array[$num] = 1; + } + + /** + * Reads the log file, and sets the member variables after doing + * calculations. + */ + public function __construct() + { + $extensions = $dates = $unique_hits = $countries = array(); + $total_hits = 0; + global $config; + $log_file = $config -> __get('log_file'); + $base_dir = $config -> __get('base_dir'); + $h = @fopen($log_file, 'rb'); + if ($h === false) + { + throw new ExceptionDisplay("Cannot open log file: $log_file"); + } + while (!feof($h)) + { + $entries = explode("\t", rtrim(fgets($h, 1024), "\r\n")); + if (count($entries) === 7) + { + //find the number of unique visits + if ($entries[5] == $base_dir) + { + $total_hits++; + if (!in_array($entries[3], $unique_hits)) + { + $unique_hits[] = Url::html_output($entries[3]); + } + + //find country codes by hostnames + $cc = FileItem::ext($entries[3]); + if (preg_match('/^[a-z]+$/i', $cc)) + { + self::add_num_to_array($cc, $countries); + } + + //find the dates of the visits + self::add_num_to_array($entries[0], $dates); + } + + //find file extensions + $ext = FileItem::ext($entries[6]); + if (preg_match('/^[\w-]+$/', $ext)) + { + self::add_num_to_array($ext, $extensions); + } + } + } + fclose($h); + $this -> num_days = count($dates); + $this -> avg = round($total_hits / $this -> num_days); + $this -> extensions = $extensions; + $this -> dates = $dates; + $this -> unique_hits = $unique_hits; + $this -> countries = $countries; + $this -> total_hits = $total_hits; + } + + /** + * Uses the display class to output results. + */ + public function display() + { + static $country_codes = array( + 'af' => 'Afghanistan', + 'al' => 'Albania', + 'dz' => 'Algeria', + 'as' => 'American Samoa', + 'ad' => 'Andorra', + 'ao' => 'Angola', + 'ai' => 'Anguilla', + 'aq' => 'Antarctica', + 'ag' => 'Antigua and Barbuda', + 'ar' => 'Argentina', + 'am' => 'Armenia', + 'aw' => 'Aruba', + 'au' => 'Australia', + 'at' => 'Austria', + 'ax' => 'Ålang Islands', + 'az' => 'Azerbaidjan', + 'bs' => 'Bahamas', + 'bh' => 'Bahrain', + 'bd' => 'Banglades', + 'bb' => 'Barbados', + 'by' => 'Belarus', + 'be' => 'Belgium', + 'bz' => 'Belize', + 'bj' => 'Benin', + 'bm' => 'Bermuda', + 'bo' => 'Bolivia', + 'ba' => 'Bosnia-Herzegovina', + 'bw' => 'Botswana', + 'bv' => 'Bouvet Island', + 'br' => 'Brazil', + 'io' => 'British Indian O. Terr.', + 'bn' => 'Brunei Darussalam', + 'bg' => 'Bulgaria', + 'bf' => 'Burkina Faso', + 'bi' => 'Burundi', + 'bt' => 'Buthan', + 'kh' => 'Cambodia', + 'cm' => 'Cameroon', + 'ca' => 'Canada', + 'cv' => 'Cape Verde', + 'ky' => 'Cayman Islands', + 'cf' => 'Central African Rep.', + 'td' => 'Chad', + 'cl' => 'Chile', + 'cn' => 'China', + 'cx' => 'Christmas Island', + 'cc' => 'Cocos (Keeling) Isl.', + 'co' => 'Colombia', + 'km' => 'Comoros', + 'cg' => 'Congo', + 'ck' => 'Cook Islands', + 'cr' => 'Costa Rica', + 'hr' => 'Croatia', + 'cu' => 'Cuba', + 'cy' => 'Cyprus', + 'cz' => 'Czech Republic', + 'cs' => 'Czechoslovakia', + 'dk' => 'Denmark', + 'dj' => 'Djibouti', + 'dm' => 'Dominica', + 'do' => 'Dominican Republic', + 'tp' => 'East Timor', + 'ec' => 'Ecuador', + 'eg' => 'Egypt', + 'sv' => 'El Salvador', + 'gq' => 'Equatorial Guinea', + 'ee' => 'Estonia', + 'et' => 'Ethiopia', + 'fk' => 'Falkland Isl. (UK)', + 'fo' => 'Faroe Islands', + 'fj' => 'Fiji', + 'fi' => 'Finland', + 'fr' => 'France', + 'fx' => 'France (European Terr.)', + 'tf' => 'French Southern Terr.', + 'ga' => 'Gabon', + 'gm' => 'Gambia', + 'ge' => 'Georgia', + 'de' => 'Germany', + 'gh' => 'Ghana', + 'gi' => 'Gibraltar', + 'gb' => 'Great Britain (UK)', + 'gr' => 'Greece', + 'gl' => 'Greenland', + 'gd' => 'Grenada', + 'gp' => 'Guadeloupe (Fr)', + 'gu' => 'Guam (US)', + 'gt' => 'Guatemala', + 'gn' => 'Guinea', + 'gw' => 'Guinea Bissau', + 'gy' => 'Guyana', + 'gf' => 'Guyana (Fr)', + 'ht' => 'Haiti', + 'hm' => 'Heard & McDonald Isl.', + 'hn' => 'Honduras', + 'hk' => 'Hong Kong', + 'hu' => 'Hungary', + 'is' => 'Iceland', + 'in' => 'India', + 'id' => 'Indonesia', + 'ir' => 'Iran', + 'iq' => 'Iraq', + 'ie' => 'Ireland', + 'il' => 'Israel', + 'it' => 'Italy', + 'ci' => 'Ivory Coast', + 'jm' => 'Jamaica', + 'jp' => 'Japan', + 'jo' => 'Jordan', + 'kz' => 'Kazachstan', + 'ke' => 'Kenya', + 'kg' => 'Kirgistan', + 'ki' => 'Kiribati', + 'kp' => 'North Korea', + 'kr' => 'South Korea', + 'kw' => 'Kuwait', + 'la' => 'Laos', + 'lv' => 'Latvia', + 'lb' => 'Lebanon', + 'ls' => 'Lesotho', + 'lr' => 'Liberia', + 'ly' => 'Libya', + 'li' => 'Liechtenstein', + 'lt' => 'Lithuania', + 'lu' => 'Luxembourg', + 'mo' => 'Macau', + 'mg' => 'Madagascar', + 'mw' => 'Malawi', + 'my' => 'Malaysia', + 'mv' => 'Maldives', + 'ml' => 'Mali', + 'mt' => 'Malta', + 'mh' => 'Marshall Islands', + 'mk' => 'Macedonia', + 'mq' => 'Martinique (Fr.)', + 'mr' => 'Mauritania', + 'mu' => 'Mauritius', + 'mx' => 'Mexico', + 'fm' => 'Micronesia', + 'md' => 'Moldavia', + 'mc' => 'Monaco', + 'mn' => 'Mongolia', + 'ms' => 'Montserrat', + 'ma' => 'Morocco', + 'mz' => 'Mozambique', + 'mm' => 'Myanmar', + 'na' => 'Namibia', + 'nr' => 'Nauru', + 'np' => 'Nepal', + 'an' => 'Netherland Antilles', + 'nl' => 'Netherlands', + 'nt' => 'Neutral Zone', + 'nc' => 'New Caledonia (Fr.)', + 'nz' => 'New Zealand', + 'ni' => 'Nicaragua', + 'ne' => 'Niger', + 'ng' => 'Nigeria', + 'nu' => 'Niue', + 'nf' => 'Norfolk Island', + 'mp' => 'Northern Mariana Isl.', + 'no' => 'Norway', + 'om' => 'Oman', + 'pk' => 'Pakistan', + 'pw' => 'Palau', + 'pa' => 'Panama', + 'pg' => 'Papua New Guinea', + 'py' => 'Paraguay', + 'pe' => 'Peru', + 'ph' => 'Philippines', + 'pn' => 'Pitcairn', + 'pl' => 'Poland', + 'pf' => 'Polynesia (Fr.)', + 'pt' => 'Portugal', + 'pr' => 'Puerto Rico (US)', + 'qa' => 'Qatar', + 're' => 'Réunion (Fr.)', + 'ro' => 'Romania', + 'ru' => 'Russian Federation', + 'rw' => 'Rwanda', + 'lc' => 'Saint Lucia', + 'ws' => 'Samoa', + 'sm' => 'San Marino', + 'sa' => 'Saudi Arabia', + 'sn' => 'Senegal', + 'sc' => 'Seychelles', + 'sl' => 'Sierra Leone', + 'sg' => 'Singapore', + 'sk' => 'Slovak Republic', + 'si' => 'Slovenia', + 'sb' => 'Solomon Islands', + 'so' => 'Somalia', + 'za' => 'South Africa', + 'su' => 'Soviet Union', + 'es' => 'Spain', + 'lk' => 'Sri Lanka', + 'sh' => 'St. Helena', + 'pm' => 'St. Pierre & Miquelon', + 'st' => 'St. Tome and Principe', + 'kn' => 'St. Kitts Nevis Anguilla', + 'vc' => 'St. Vincent & Grenadines', + 'sd' => 'Sudan', + 'sr' => 'Suriname', + 'sj' => 'Svalbard & Jan Mayen Isl.', + 'sz' => 'Swaziland', + 'se' => 'Sweden', + 'ch' => 'Switzerland', + 'sy' => 'Syria', + 'tj' => 'Tadjikistan', + 'tw' => 'Taiwan', + 'tz' => 'Tanzania', + 'th' => 'Thailand', + 'tg' => 'Togo', + 'tk' => 'Tokelau', + 'to' => 'Tonga', + 'tt' => 'Trinidad & Tobago', + 'tn' => 'Tunisia', + 'tr' => 'Turkey', + 'tm' => 'Turkmenistan', + 'tc' => 'Turks & Caicos Islands', + 'tv' => 'Tuvalu', + 'ug' => 'Uganda', + 'ua' => 'Ukraine', + 'ae' => 'United Arab Emirates', + 'uk' => 'United Kingdom', + 'us' => 'United States', + 'uy' => 'Uruguay', + 'um' => 'US Minor outlying Isl.', + 'uz' => 'Uzbekistan', + 'vu' => 'Vanuatu', + 'va' => 'Vatican City State', + 've' => 'Venezuela', + 'vn' => 'Vietnam', + 'vg' => 'Virgin Islands (British)', + 'vi' => 'Virgin Islands (US)', + 'wf' => 'Wallis & Futuna Islands', + 'wlk' => 'Wales', + 'eh' => 'Western Sahara', + 'ye' => 'Yemen', + 'yu' => 'Yugoslavia', + 'zr' => 'Zaire', + 'zm' => 'Zambia', + 'zw' => 'Zimbabwe', + 'mil' => 'United States Military', + 'gov' => 'United States Government', + 'com' => 'Commercial', + 'net' => 'Network', + 'org' => 'Non-Profit Organization', + 'edu' => 'Educational', + 'int' => 'International', + 'aero' => 'Air Transport Industry', + 'biz' => 'Businesses', + 'coop' => 'Non-profit cooperatives', + 'arpa' => 'Arpanet', + 'info' => 'Info', + 'name' => 'Name', + 'nato' => 'Nato', + 'museum' => 'Museum', + 'pro' => 'Pro' + ); + + $str = ' + ' + . " + +
 TotalDaily
Hits{$this -> total_hits}{$this -> avg}" + . '
Unique Hits' . count($this -> unique_hits) + . '' + . round(count($this -> unique_hits) / $this -> num_days) + . '

Percent Unique: ' + . number_format(count($this -> unique_hits) / $this -> total_hits * 100, 1) . '

'; + + arsort($this -> extensions); + arsort($this -> countries); + + $date_nums = array_values($this -> dates); + $str .= ' + + '; + $i = 0; + foreach ($this -> dates as $day => $num) + { + $diff = $num - $this -> avg; + $change = (($i > 0) ? ($num - $date_nums[$i-1]) : 0); + $change_color = self::get_change_color($change); + $diff_color = self::get_change_color($diff); + $class = (($i++ % 2) ? 'dark_row' : 'light_row'); + $str .= " + + + "; + } + + $str .= '
DateHits That DayChange From Previous DayDifference From Average (' . $this -> avg + . ')
$day$num$change_color$change$diff_color$diff

+ + '; + $i = 0; + foreach ($this -> extensions as $ext => $num) + { + $class = (($i++ % 2) ? 'dark_row' : 'light_row'); + $str .= " + "; + } + + $str .= '
Downloads based on file extensionsTotalDaily
$ext$num" + . number_format($num / $this -> num_days, 1) . "

+ + '; + $i = 0; + foreach ($this -> countries as $c => $num) + { + $c_code = (isset($country_codes[strtolower($c)]) ? ' (' + . $country_codes[strtolower($c)] . ')' : ''); + $class = (($i++ % 2) ? 'dark_row' : 'light_row'); + $str .= "\n"; + } + $str .= '
Hostname ISP extensionTotalDaily
$c{$c_code}$num" + . number_format($num / $this -> num_days, 1) . "

Continue.

'; + echo new Display($str); + die(); + } +} + +?> \ No newline at end of file diff --git a/classes/Tar.php b/classes/Tar.php new file mode 100644 index 0000000..3f41bcc --- /dev/null +++ b/classes/Tar.php @@ -0,0 +1,128 @@ + + * @version 1.0.1 (July 03, 2004) + * @package AutoIndex + */ +class Tar +{ + /** + * @var int Length of directory path to cut off from start + */ + private $base_dir_length; + + /** + * @var string Added in the filepath inside the tar archive + */ + private $prepend_path; + + /** + * @param string $data + * @return int The checksum of $data + */ + private static function checksum(&$data) + { + $unsigned_chksum = 0; + for ($i = 0; $i < 512; $i++) + { + $unsigned_chksum += ord($data{$i}); + } + for ($i = 148; $i < 156; $i++) + { + $unsigned_chksum -= ord($data{$i}); + } + return $unsigned_chksum + 256; + } + + /** + * @param string $name The file or folder name + * @param int $size The size of the file (0 for directories) + * @param bool $is_dir True if folder, false if file + */ + private function create_header($name, $size = 0, $is_dir = true) + { + $header = str_pad($this -> prepend_path . substr($name, $this -> base_dir_length), 100, "\0") //filename + . str_pad('755', 7, '0', STR_PAD_LEFT) . "\0" //permissions + . '0000000' . "\0" //uid + . '0000000' . "\0" //gid + . str_pad(decoct($size), 11, '0', STR_PAD_LEFT) . "\0" //size + . str_pad(decoct(filemtime($name)), 11, '0', STR_PAD_LEFT) . "\0" //time + . ' ' //checksum (8 spaces) + . ($is_dir ? '5' : '0') //typeflag + . str_repeat("\0", 100) //linkname + . 'ustar ' //magic + /* + * version (1) + username (32) + groupname (32) + devmajor (8) + + * devminor (8) + prefix (155) + end (12) = 248 + */ + . str_repeat("\0", 248); + + $checksum = str_pad(decoct(self::checksum($header)), 6, '0', STR_PAD_LEFT) . "\0 "; + return substr_replace($header, $checksum, 148, strlen($checksum)); + } + + /** + * @param DirectoryList $filenames List of files to add to the archive + * @param string $prepend_path Added in the filepath inside the tar archive + * @param int $base_dir_length Length of directory path to cut off from start + */ + public function __construct(DirectoryList $filenames, $prepend_path = '', $base_dir_length = 0) + { + $this -> base_dir_length = (int)$base_dir_length; + $this -> prepend_path = Item::make_sure_slash($prepend_path); + foreach ($filenames as $base) + { + $name = $filenames -> __get('dir_name') . $base; + if (@is_dir($name)) + { + if ($base != '.' && $base != '..') + { + echo $this -> create_header($name); + $list = new DirectoryList($name); + new Tar($list, $this -> prepend_path, $this -> base_dir_length); + } + } + else if (@is_file($name) && @is_readable($name) && ($size = @filesize($name))) + { + echo $this -> create_header($name, $size, false); + Url::force_download($name, false); + echo str_repeat("\0", (ceil($size / 512) * 512) - $size); + } + } + } +} + +?> \ No newline at end of file diff --git a/classes/Template.php b/classes/Template.php new file mode 100644 index 0000000..56f69e4 --- /dev/null +++ b/classes/Template.php @@ -0,0 +1,146 @@ + + * @version 1.0.3 (February 02, 2005) + * @package AutoIndex + */ +class Template +{ + /** + * @var string The final output + */ + protected $out; + + /** + * @param array $m The array given by preg_replace_callback() + * @return string Looks up $m[1] in word list and returns match + */ + private static function callback_words($m) + { + global $words; + return $words -> __get(strtolower($m[1])); + } + + /** + * @param array $m The array given by preg_replace_callback() + * @return string The parsed template of filename $m[1] + */ + private static function callback_include($m) + { + $temp = new Template($m[1]); + return $temp -> __toString(); + } + + /** + * @param array $m The array given by preg_replace_callback() + * @return string The setting for the config value $m[1] + */ + private static function callback_config($m) + { + global $config; + return $config -> __get(strtolower($m[1])); + } + + /** + * Parses the text in $filename and sets the result to $out. We cannot + * use ExceptionDisplay here if there is an error, since it uses the + * template system. + * + * Steps to parse the template: + * - remove comments + * - replace {info} variables + * - replace {words} strings + * - replace {config} variables + * - include other files when we see the {include} statement + * + * @param string $filename The name of the file to parse + */ + public function __construct($filename) + { + global $config, $dir, $subdir; + $full_filename = $config -> __get('template') . $filename; + if (!@is_file($full_filename)) + { + throw new ExceptionFatal('Template file ' + . Url::html_output($full_filename) . ' cannot be found.'); + } + + //read raw file contents + $contents = @file_get_contents($full_filename); + if ($contents === false) + { + throw new ExceptionFatal('Template file ' + . Url::html_output($full_filename) . ' could not be opened for reading.'); + } + + //remove comments + $contents = preg_replace('#/\*.*?\*/#s', '', $contents); + + //replace info variables and word strings from language file + $tr = array( + '{info:dir}' => (isset($dir) ? Url::html_output($dir) : ''), + '{info:subdir}' => (isset($subdir) ? Url::html_output($subdir) : ''), + '{info:version}' => VERSION, + '{info:page_time}' => round((microtime(true) - START_TIME) * 1000, 1)); + $contents = preg_replace_callback('/\{\s*words?\s*:\s*(.+)\s*\}/Ui', + array('self', 'callback_words'), strtr($contents, $tr)); + + //replace {config} variables + $contents = preg_replace_callback('/\{\s*config\s*:\s*(.+)\s*\}/Ui', + array('self', 'callback_config'), $contents); + + //parse includes + $this -> out = preg_replace_callback('/\{\s*include\s*:\s*(.+)\s*\}/Ui', + array('self', 'callback_include'), $contents); + } + + /** + * @return string The HTML text of the parsed template + */ + public function __toString() + { + return $this -> out; + } +} + +?> diff --git a/classes/TemplateFiles.php b/classes/TemplateFiles.php new file mode 100644 index 0000000..f93fb42 --- /dev/null +++ b/classes/TemplateFiles.php @@ -0,0 +1,244 @@ + + * @version 1.0.1 (July 09, 2004) + * @package AutoIndex + */ +class TemplateFiles extends TemplateInfo +{ + /** + * @var Item The file or folder we're currently processing + */ + private $temp_item; + + /** + * @var bool Is the current user an admin + */ + private $is_admin; + + /** + * @var bool Is the current user a moderator + */ + private $is_mod; + + /** + * @var int The number of the file we're currently processing + */ + private $i; + + /** + * @var int The total number of files to process + */ + private $length; + + /** + * @param array $m The array given by preg_replace_callback() + * @return string Property is gotten from temp_item + */ + private function callback_file($m) + { + global $words, $subdir; + switch (strtolower($m[1])) + { + case 'tr_class': + { + return (($this -> i % 2) ? 'dark_row' : 'light_row'); + } + case 'filename': + { + return Url::html_output($this -> temp_item -> __get('filename')); + } + case 'file_ext': + { + return $this -> temp_item -> file_ext(); + } + case 'size': + { + return $this -> temp_item -> __get('size') -> formatted(); + } + case 'bytes': + { + return $this -> temp_item -> __get('size') -> __get('bytes'); + } + case 'date': + case 'time': + case 'm_time': + { + return $this -> temp_item -> format_m_time(); + } + case 'a_time': + { + return $this -> temp_item -> format_a_time(); + } + case 'thumbnail': + { + return $this -> temp_item -> __get('thumb_link'); + } + case 'num_subfiles': + { + return (($this -> temp_item instanceof DirItem + && !$this -> temp_item -> __get('is_parent_dir')) ? $this -> temp_item -> num_subfiles() : ''); + } + case 'delete_link': + { + return (($this -> is_admin && !$this -> temp_item -> __get('is_parent_dir')) ? + ' [' . $words -> __get('delete') . ']' : ''); + } + case 'rename_link': + { + return (($this -> is_admin && !$this -> temp_item -> __get('is_parent_dir')) ? + ' [' . $words -> __get('rename') . ']' : ''); + } + case 'edit_description_link': + { + $slash = (($this -> temp_item instanceof DirItem) ? '/' : ''); + return (($this -> is_mod && DESCRIPTION_FILE && !$this -> temp_item -> __get('is_parent_dir')) ? + ' [' + . $words -> __get('edit description') . ']' : ''); + } + case 'ftp_upload_link': + { + if (!$this -> is_mod || !$this -> temp_item instanceof FileItem || !isset($_SESSION['ftp'])) + { + return ''; + } + return ' [' . $words->__get('upload to ftp') . ']'; + } + default: + { + return $this -> temp_item -> __get($m[1]); + } + } + } + + /** + * Either the HTML text is returned, or an empty string is returned, + * depending on if the if-statement passed. + * + * @param array $m The array given by preg_replace_callback() + * @return string The result to insert into the HTML + */ + private function callback_type($m) + { + switch (strtolower($m[1])) + { + case 'is_file': //file + { + return (($this -> temp_item instanceof FileItem) ? $m[2] : ''); + } + case 'is_dir': //folder or link to parent directory + { + return (($this -> temp_item instanceof DirItem) ? $m[2] : ''); + } + case 'is_real_dir': //folder + { + return (($this -> temp_item instanceof DirItem + && !$this -> temp_item -> __get('is_parent_dir')) ? $m[2] : ''); + } + case 'is_parent_dir': //link to parent directory + { + return (($this -> temp_item instanceof DirItem + && $this -> temp_item -> __get('is_parent_dir')) ? $m[2] : ''); + } + default: + { + throw new ExceptionDisplay('Invalid file:if statement in ' + . Url::html_output(EACH_FILE) . ''); + } + } + } + + /** + * Either the HTML text is returned or an empty string is returned, + * depending on if temp_item is the ith file parsed. + * + * @param array $m The array given by preg_replace_callback() + * @return string The result to insert into the HTML output + */ + private function callback_do_every($m) + { + $num = $this -> i + 1; + return (($num % (int)$m[1] === 0 && $this -> length !== $num) ? $m[2] : ''); + } + + + /** + * Parses info for each file in the directory. Order of elements to + * replace is: + * - file:if + * - do_every + * - file + * + * @param string $filename The name of the file to parse + * @param DirectoryListDetailed $list + */ + public function __construct($filename, DirectoryListDetailed $list) + { + parent::__construct($filename, $list); + global $you; + $this -> is_admin = ($you -> level >= ADMIN); + $this -> is_mod = ($you -> level >= MODERATOR); + $final_file_line = ''; + $this -> length = (int)$list -> __get('list_count'); + foreach ($list as $i => $item) + { + $this -> i = (int)$i; + $this -> temp_item = $item; + $temp_line = preg_replace_callback('/\{\s*file\s*:\s*if\s*:\s*(\w+)\s*\}(.*)\{\s*end\s*if\s*\}/Uis', + array($this, 'callback_type'), $this -> out); + $temp_line = preg_replace_callback('/\{\s*do_every\s*:\s*(\d+)\s*\}(.*)\{\s*end\s*do_every\s*\}/Uis', + array($this, 'callback_do_every'), $temp_line); + $final_file_line .= preg_replace_callback('/\{\s*file\s*:\s*(\w+)\s*\}/Ui', + array($this, 'callback_file'), $temp_line); + } + $this -> out = $final_file_line; + } +} + +?> \ No newline at end of file diff --git a/classes/TemplateIndexer.php b/classes/TemplateIndexer.php new file mode 100644 index 0000000..1990f76 --- /dev/null +++ b/classes/TemplateIndexer.php @@ -0,0 +1,146 @@ + + * @version 1.0.3 (February 02, 2005) + * @package AutoIndex + */ +class TemplateIndexer +{ + /** + * @var string The final output + */ + protected $out; + + /** + * @param array $m The array given by preg_replace_callback() + * @return string Looks up $m[1] in word list and returns match + */ + private static function callback_words($m) + { + global $words; + return $words -> __get(strtolower($m[1])); + } + + /** + * @param array $m The array given by preg_replace_callback() + * @return string The parsed template of filename $m[1] + */ + private static function callback_include($m) + { + $temp = new TemplateIndexer($m[1]); + return $temp -> __toString(); + } + + /** + * @param array $m The array given by preg_replace_callback() + * @return string The setting for the config value $m[1] + */ + private static function callback_config($m) + { + global $config; + return $config -> __get(strtolower($m[1])); + } + + /** + * Parses the text in $filename and sets the result to $out. We cannot + * use ExceptionDisplay here if there is an error, since it uses the + * template system. + * + * Steps to parse the template: + * - remove comments + * - replace {info} variables + * - replace {words} strings + * - replace {config} variables + * - include other files when we see the {include} statement + * + * @param string $filename The name of the file to parse + */ + public function __construct($filename) + { + global $config, $dir, $subdir; + $full_filename = $config -> __get('template') . $filename; + if (!@is_file($full_filename)) + { + throw new ExceptionFatal('Template file ' + . Url::html_output($full_filename) . ' cannot be found.'); + } + + //read raw file contents + $contents = @file_get_contents($full_filename); + if ($contents === false) + { + throw new ExceptionFatal('Template file ' + . Url::html_output($full_filename) . ' could not be opened for reading.'); + } + + //remove comments + $contents = preg_replace('#/\*.*?\*/#s', '', $contents); + + //replace info variables and word strings from language file + $tr = array( + '{info:dir}' => (isset($dir) ? Url::html_output($dir) : ''), + '{info:subdir}' => (isset($subdir) ? Url::html_output($subdir) : ''), + '{info:version}' => VERSION, + '{info:page_time}' => round((microtime(true) - START_TIME) * 1000, 1)); + $contents = preg_replace_callback('/\{\s*words?\s*:\s*(.+)\s*\}/Ui', + array('self', 'callback_words'), strtr($contents, $tr)); + + //replace {config} variables + $contents = preg_replace_callback('/\{\s*config\s*:\s*(.+)\s*\}/Ui', + array('self', 'callback_config'), $contents); + + //parse includes + $this -> out = preg_replace_callback('/\{\s*include\s*:\s*(.+)\s*\}/Ui', + array('self', 'callback_include'), $contents); + } + + /** + * @return string The HTML text of the parsed template + */ + public function __toString() + { + return $this -> out; + } +} + +?> diff --git a/classes/TemplateInfo.php b/classes/TemplateInfo.php new file mode 100644 index 0000000..747bfca --- /dev/null +++ b/classes/TemplateInfo.php @@ -0,0 +1,205 @@ + + * @version 1.1.0 (January 01, 2006) + * @package AutoIndex + */ +class TemplateInfo extends TemplateIndexer +{ + /** + * @var DirectoryListDetailed + */ + private $dir_list; + + /** + * @param array $m The array given by preg_replace_callback() + * @return string Link to change the sort mode + */ + private static function callback_sort($m) + { + global $subdir; + $m = Url::html_output(strtolower($m[1])); + $temp = Url::html_output($_SERVER['PHP_SELF']) . '?dir=' . $subdir + . '&sort=' . $m . '&sort_mode=' + . (($_SESSION['sort'] == $m && $_SESSION['sort_mode'] == 'a') ? 'd' : 'a'); + + if (isset($_GET['search'], $_GET['search_mode']) + && $_GET['search'] != '' && $_GET['search_mode'] != '') + { + $temp .= '&search=' . Url::html_output($_GET['search']) + . '&search_mode=' . Url::html_output($_GET['search_mode']); + } + return $temp; + } + + /** + * @param array $m The array given by preg_replace_callback() + * @return string Property is gotten from dir_list + */ + private function callback_info($m) + { + switch (strtolower($m[1])) + { + case 'archive_link': + { + global $config; + return Url::html_output($_SERVER['PHP_SELF']) . '?archive=true&dir=' + . substr($this -> dir_list -> __get('dir_name'), strlen($config -> __get('base_dir'))); + } + case 'total_size': + { + return $this -> dir_list -> __get('total_size') -> formatted(); + } + case 'search_box': + { + return Search::search_box(); + } + case 'login_box': + { + global $you; + return $you -> login_box(); + } + case 'current_page_number': + { + if (!ENTRIES_PER_PAGE) + { + return 1; + } + global $page; + return $page; + } + case 'last_page_number': + { + if (!ENTRIES_PER_PAGE) + { + return 1; + } + global $max_page; + return $max_page; + } + case 'previous_page_link': + { + if (!ENTRIES_PER_PAGE) + { + return ''; + } + global $config, $page; + if ($page <= 1) + { + return '<<'; + } + return '<<'; + } + case 'next_page_link': + { + if (!ENTRIES_PER_PAGE) + { + return ''; + } + global $config, $page, $max_page; + if ($page >= $max_page) + { + return '>>'; + } + return '>>'; + } + default: + { + return $this -> dir_list -> __get($m[1]); + } + } + } + + /** + * Either the HTML text is returned, or an empty string is returned, + * depending on if the if-statement passed. + * + * @param array $m The array given by preg_replace_callback() + * @return string The result to insert into the HTML + */ + private static function callback_if($m) + { + $var = strtoupper($m[1]); + if (!defined($var)) + { + throw new ExceptionDisplay('$' . Url::html_output($m[1]) + . ' is not a valid variable (check if-statement in template file).'); + } + return (constant($var) ? $m[2] : ''); + } + + /** + * @param string $filename The name of the file to parse + * @param DirectoryListDetailed $dir_list + */ + public function __construct($filename, DirectoryListDetailed $dir_list) + { + parent::__construct($filename); + $this -> dir_list = $dir_list; + + //parse if-statements + $last_text = ''; + $regex = '/\{\s*if\s*:\s*(\w+)\s*\}(.*)\{\s*end\s*if\s*:\s*\1\s*\}/Uis'; //match {if:foo} ... {end if:foo} + while ($last_text != ($this -> out = preg_replace_callback($regex, array('self', 'callback_if'), $this -> out))) + { + $last_text = $this -> out; + } + $this -> out = $last_text; + + //parse sort modes + $this -> out = preg_replace_callback('/\{\s*sort\s*:\s*(\w+)\s*\}/Ui', + array('self', 'callback_sort'), $this -> out); + + //replace {info} variables + $this -> out = preg_replace_callback('/\{\s*info\s*:\s*(\w+)\s*\}/Ui', + array($this, 'callback_info'), $this -> out); + } +} + +?> \ No newline at end of file diff --git a/classes/Upload.php b/classes/Upload.php new file mode 100644 index 0000000..f95b3a0 --- /dev/null +++ b/classes/Upload.php @@ -0,0 +1,153 @@ + + * @version 1.0.1 (June 30, 2004) + * @package AutoIndex + */ +class Upload +{ + /** + * Uploads all files in the $_FILES array, then echos the results. + */ + public function do_upload() + { + $uploaded_files = $errors = ''; + global $words, $log, $dir; + foreach ($_FILES as $file_upload) + { + $filename = Item::get_basename($file_upload['name']); + if ($filename == '') + { + continue; + } + if (DirectoryList::is_hidden($filename)) + { + $errors .= "
  • $filename [" + . $words -> __get('filename is listed as a hidden file') + . ']
  • '; + continue; + } + $filename = Url::clean_input($filename); + $fullpathname = realpath($dir) . '/' . $filename; + if (@file_exists($fullpathname)) + { + $errors .= "
  • $filename [" + . $words -> __get('file already exists') . ']
  • '; + } + else if (@move_uploaded_file($file_upload['tmp_name'], $fullpathname)) + { + @chmod($fullpathname, 0644); + $uploaded_files .= "
  • $filename
  • "; + $log -> add_entry("Uploaded file: $filename"); + } + else + { + $errors .= "
  • $filename
  • "; + } + } + if ($errors == '') + { + $errors = '
    [' . $words -> __get('none') . ']'; + } + if ($uploaded_files == '') + { + $uploaded_files = '
    [' . $words -> __get('none') . ']'; + } + $str = '
    ' + . '' . $words -> __get('uploaded files') + . ": $uploaded_files

    " + . $words -> __get('failed files') . ": $errors" + . '

    ' . $words -> __get('continue') . '.

    '; + echo new Display($str); + die(); + } + + /** + * @param User $current_user Makes sure the user has permission to upload files + */ + public function __construct(User $current_user) + { + if ($current_user -> level < LEVEL_TO_UPLOAD) + { + throw new ExceptionDisplay('Your user account does not have permission to upload files.'); + } + } + + /** + * @return string The HTML that makes up the upload form + */ + public function __toString() + { + global $words, $subdir; + if (isset($_GET['num_uploads']) && (int)$_GET['num_uploads'] > 0) + { + $str = '

    '; + $num = min((int)$_GET['num_uploads'], 100); + for ($i = 0; $i < $num; $i++) + { + $str .= "\n\t" . $words -> __get('file') + . ' '. ($i + 1) . ' :
    '; + } + $str .= '

    '; + $str = '
    ' + . $str . '

    ' . $words -> __get('continue') . '.

    '; + echo new Display($str); + die(); + } + return '

    ' + . $words -> __get('upload') . ' ' + . $words -> __get('files to this folder') . '

    '; + } +} + +?> \ No newline at end of file diff --git a/classes/Url.php b/classes/Url.php new file mode 100644 index 0000000..925c16e --- /dev/null +++ b/classes/Url.php @@ -0,0 +1,232 @@ + + * @version 1.0.4 (November 9, 2007) + * @package AutoIndex + */ +class Url +{ + /** + * @var string + */ + private $url; + + /** + * Rawurlencodes $uri, but not slashes. + * + * @param string $uri + * @return string + */ + public static function translate_uri($uri) + { + $uri = rawurlencode(str_replace('\\', '/', $uri)); + return str_replace(rawurlencode('/'), '/', $uri); + } + + /** + * Returns the string with correct HTML entities so it can be displayed. + * + * @param string $str + * @return string + */ + public static function html_output($str) + { + return htmlentities($str, ENT_QUOTES, 'UTF-8'); + } + + /** + * Checks input for hidden files/folders, and deals with ".." + * + * @param string $d The URL to check + * @return string Safe version of $d + */ + private static function eval_dir($d) + { + $d = str_replace('\\', '/', $d); + if ($d == '' || $d == '/') + { + return ''; + } + $dirs = explode('/', $d); + for ($i = 0; $i < count($dirs); $i++) + { + if (DirectoryList::is_hidden($dirs[$i], false)) + { + array_splice($dirs, $i, 1); + $i--; + } + else if (preg_match('/^\.\./', $dirs[$i])) //if it starts with two dots + { + array_splice($dirs, $i-1, 2); + $i = -1; + } + } + $new_dir = implode('/', $dirs); + if ($new_dir == '' || $new_dir == '/') + { + return ''; + } + if ($d{0} == '/' && $new_dir{0} != '/') + { + $new_dir = '/' . $new_dir; + } + if (preg_match('#/$#', $d) && !preg_match('#/$#', $new_dir)) + { + $new_dir .= '/'; + } + else if (DirectoryList::is_hidden(Item::get_basename($new_dir))) + //it's a file, so make sure the file itself is not hidden + { + return DirItem::get_parent_dir($new_dir); + } + return $new_dir; + } + + /** + * @param string $url The URL path to check and clean + * @return string Resolves $url's special chars and runs eval_dir on it + */ + public static function clean_input($url) + { + $url = rawurldecode( $url ); + $newURL = ''; + for ( $i = 0; $i < strlen( $url ); $i++ ) //loop to remove all null chars + { + if ( ord($url[$i]) != 0 ) + { + $newURL .= $url[$i]; + } + } + return self::eval_dir( $newURL ); + } + + /** + * Sends the browser a header to redirect it to this URL. + */ + public function redirect() + { + $site = $this -> url; + header("Location: $site"); + die(simple_display('Redirection header could not be sent.
    ' + . "Continue here: $site")); + } + + /** + * @param string $file_dl + * @param bool $headers + */ + public static function force_download($file_dl, $headers = true) + { + if (!@is_file($file_dl)) + { + header('HTTP/1.0 404 Not Found'); + throw new ExceptionDisplay('The file ' + . self::html_output($file_dl) + . ' could not be found on this server.'); + } + if (!($fn = @fopen($file_dl, 'rb'))) + { + throw new ExceptionDisplay('

    Error 401: permission denied

    you cannot access ' + . Url::html_output($file_dl) . ' on this server.'); + } + if ($headers) + { + $outname = Item::get_basename($file_dl); + $size = @filesize($file_dl); + if ($size !== false) + { + header('Content-Length: ' . $size); + } + $mime = new MimeType($outname); + header('Content-Type: ' . $mime -> __toString() . '; name="' . $outname . '"'); + header('Content-Disposition: attachment; filename="' . $outname . '"'); + } + global $speed; + while (true) + { + $temp = @fread($fn, (int)($speed * 1024)); + if ($temp === '') + { + break; + } + echo $temp; + flush(); + if (BANDWIDTH_LIMIT) + { + sleep(1); + } + } + fclose($fn); + } + + /** + * Downloads the URL on the user's browser, using either the redirect() + * or force_download() functions. + */ + public function download() + { + if (FORCE_DOWNLOAD) + { + @set_time_limit(0); + self::force_download(self::clean_input($this -> url)); + die(); + } + $this -> redirect(); + } + + /** + * @param string $text_url The URL to create an object from + * @param bool $special_chars If true, translate_uri will be run on the url + */ + public function __construct($text_url, $special_chars = false) + { + if ($special_chars) + { + $text_url = self::translate_uri($text_url); + } + $this -> url = $text_url; + } + + /** + * @return string Returns the URL as a string + */ + public function __toString() + { + return $this -> url; + } +} + +?> \ No newline at end of file diff --git a/classes/User.php b/classes/User.php new file mode 100644 index 0000000..57afdc6 --- /dev/null +++ b/classes/User.php @@ -0,0 +1,152 @@ + + * @version 1.0.1 (July 21, 2004) + * @package AutoIndex + */ +class User +{ + /** + * @var string Username + */ + public $username; + + /** + * @var string The password, stored as a sha-1 hash of the actual password + */ + public $sha1_pass; + + /** + * @var int The user's level (use the GUEST USER ADMIN constants) + */ + public $level; + + /** + * @var string The user's home directory, or an empty string to use the default base_dir + */ + public $home_dir; + + /** + * @param User $user The user to compare to $this + * @return bool True if this user is equal to $user, based on username and password + */ + public function equals(User $user) + { + return ((strcasecmp($this -> username, $user -> username) === 0) + && (strcasecmp($this -> sha1_pass, $user -> sha1_pass) === 0)); + } + + /** + * Since this is not an instance of UserLoggedIn, we know he is not + * logged in. + */ + public function logout() + { + throw new ExceptionDisplay('You are not logged in.'); + } + + /** + * Here we display a login box rather than account options, since this is + * not an instance of UserLoggedIn. + * + * @return string The HTML text of the login box + */ + public function login_box() + { + $str = ''; + if (USE_LOGIN_SYSTEM) + { + global $words, $subdir; + $str .= '
    ' + . $words -> __get('username') . ':' + . '
    ' . $words -> __get('password') + . ':
    ' + . '

    '; + } + if (LEVEL_TO_UPLOAD === GUEST) + { + global $you; + $upload_panel = new Upload($you); + $str .= $upload_panel -> __toString(); + } + return $str; + } + + /** + * @param string $username Username + * @param string $sha1_pass Password as a sha-1 hash + * @param int $level User's level (use the GUEST, USER, MODERATOR, ADMIN constants) + * @param string $home_dir The home directory of the user, or blank for the default + */ + public function __construct($username = '', $sha1_pass = '', $level = GUEST, $home_dir = '') + { + $level = (int)$level; + if ($level < BANNED || $level > ADMIN) + { + throw new ExceptionDisplay('Error in user accounts file: + Invalid user level (for username "' + . Url::html_output($username) . '").'); + } + if ($sha1_pass != '' && strlen($sha1_pass) !== 40) + { + throw new ExceptionDisplay('Error in user accounts file: + Invalid password hash (for username "' + . Url::html_output($username) . '").'); + } + $this -> sha1_pass = $sha1_pass; + $this -> username = $username; + $this -> level = $level; + $this -> home_dir = $home_dir; + } + + /** + * @return string This string format is how it is stored in the user_list file + */ + public function __toString() + { + return $this -> username . "\t" . $this -> sha1_pass . "\t" + . $this -> level . "\t" . $this -> home_dir . "\n"; + } +} + +?> \ No newline at end of file diff --git a/classes/UserLoggedIn.php b/classes/UserLoggedIn.php new file mode 100644 index 0000000..aada290 --- /dev/null +++ b/classes/UserLoggedIn.php @@ -0,0 +1,114 @@ + + * @version 1.0.1 (July 02, 2004) + * @package AutoIndex + */ +class UserLoggedIn extends User +{ + /** + * Since the user is already logged in, the account options will be + * displayed rather than a login box. + * + * @return string The HTML text that makes up the account options box + */ + public function login_box() + { + global $words, $you, $subdir; + $txt = '

    ' . $words -> __get('logout') + . ' [ ' . Url::html_output($this -> username) . ' ]

    '; + if ($you -> level >= MODERATOR) + //show admin options if they are a moderator or higher + { + $admin_panel = new Admin($you); + $txt = $admin_panel -> __toString() . $txt; + } + if ($you -> level >= LEVEL_TO_UPLOAD) + //show upload options if they are a logged in user or higher + { + $upload_panel = new Upload($you); + $txt .= $upload_panel -> __toString(); + } + return $txt; + } + + /** + * Logs out the user by destroying the session data and refreshing the + * page. + */ + public function logout() + { + global $subdir; + $this -> level = GUEST; + $this -> sha1_pass = $this -> username = ''; + session_unset(); + session_destroy(); + $home = new Url(Url::html_output($_SERVER['PHP_SELF']), true); + $home -> redirect(); + } + + /** + * Validates username and password using the accounts stored in the + * user_list file. + * + * @param string $username The username to login + * @param string $sha1_pass The sha-1 hash of the password + */ + public function __construct($username, $sha1_pass) + { + parent::__construct($username, $sha1_pass); + $accounts = new Accounts(); + if (!($accounts -> is_valid_user($this))) + { + global $log; + $log -> add_entry("Invalid login (Username: $username)"); + session_unset(); + sleep(1); + throw new ExceptionDisplay('Invalid username or password.'); + } + $this -> level = $accounts -> get_level($username); + if ($this -> level <= BANNED) + { + throw new ExceptionDisplay('Your account has been disabled by the site admin.'); + } + $this -> username = $accounts -> get_stored_case($username); + $this -> home_dir = $accounts -> get_home_dir($username); + } +} + +?> \ No newline at end of file diff --git a/config.php b/config.php new file mode 100644 index 0000000..380115c --- /dev/null +++ b/config.php @@ -0,0 +1,549 @@ + + * @version 1.2.0 (January 01, 2006) + * + * @copyright Copyright (C) 2002-2006 Justin Hagstrom + * @license http://www.gnu.org/licenses/gpl.html GNU General Public License (GPL) + * + * @link http://autoindex.sourceforge.net + */ + +/* + AutoIndex PHP Script is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + AutoIndex PHP Script is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +*/ + +if (!defined('IN_AUTOINDEX') || !IN_AUTOINDEX) +{ + die(); +} + +$strings = array('base_dir', 'icon_path', 'flag_path', 'language', 'template', 'log_file', + 'description_file', 'user_list', 'download_count', 'hidden_files', + 'banned_list'); +$checkboxes = array('show_dir_size', 'use_login_system', 'force_download', + 'search_enabled', 'anti_leech', 'must_login_to_download', 'archive', + 'parse_htaccess'); +$numbers = array('days_new', 'thumbnail_height', 'bandwidth_limit', 'md5_show', + 'entries_per_page'); + +if (count($_POST) >= count($strings) + count($numbers)) +{ + $directories = array('base_dir', 'icon_path', 'flag_path', 'template'); + $output = "' . htmlentities($setting) . ' not set.')); + } + if ($_POST[$setting] == '') + { + $output .= "$setting\tfalse\n"; + continue; + } + $_POST[$setting] = str_replace('\\', '/', $_POST[$setting]); + if (in_array($setting, $directories) && !preg_match('#/$#', $_POST[$setting])) + //make sure there is a slash at the end of directories + { + $_POST[$setting] .= '/'; + } + $output .= "$setting\t{$_POST[$setting]}\n"; + } + foreach ($checkboxes as $setting) + { + $output .= "$setting\t" . (isset($_POST[$setting]) ? 'true' : 'false') + . "\n"; + } + foreach ($numbers as $setting) + { + if (!isset($_POST[$setting])) + { + die(simple_display('Required setting ' + . htmlentities($setting) . ' not set.')); + } + if ($_POST[$setting] == '') + { + $output .= "$setting\t0\n"; + continue; + } + if ($_POST[$setting] < 0) + { + die(simple_display('The setting ' + . htmlentities($setting) . ' should not be a negitive number.')); + } + $_POST[$setting] = (string)((float)$_POST[$setting]); + $output .= "$setting\t{$_POST[$setting]}\n"; + } + $output .= "\n*/\n\n?>"; + + if (!isset($_POST['force_download'])) + { + if (preg_match('#^(/|[a-z]\:)#i', $_POST['base_dir'])) + { + die(simple_display('It seems you are using an absolute path for the Base Directory.' + . '
    This means you must check the "Pipe downloaded files though the PHP script" box.')); + } + if ((int)$_POST['bandwidth_limit'] !== 0) + { + die(simple_display('For the Bandwidth Limit feature to work, the "force download" feature needs to be on.' + . '
    This means you must check the "Pipe downloaded files though the PHP script" box.')); + } + } + if (isset($_POST['must_login_to_download']) && !isset($_POST['use_login_system'])) + { + die(simple_display('To enable must_login_to_download, the ' + . 'use_login_system option must also be turned on.')); + } + foreach (array('base_dir', 'template') as $valid) + { + if (!@is_dir($_POST[$valid])) + { + die(simple_display(htmlentities($valid) + . ' setting is not a valid directory.')); + } + } + + if (@is_file(CONFIG_STORED)) + //if the file already exists, back it up + { + $temp_name = CONFIG_STORED . '.bak'; + for ($i = 1; @file_exists($temp_name); $i++) + { + $temp_name = CONFIG_STORED . '.bak' . (string)$i; + } + @copy(CONFIG_STORED, $temp_name); + } + + $h = @fopen(CONFIG_STORED, 'wb'); + if ($h === false) + //the file could not be written to, so now it must be downloaded through the browser + { + header('Content-Type: text/plain; name="' . CONFIG_STORED . '"'); + header('Content-Disposition: attachment; filename="' . CONFIG_STORED . '"'); + die($output); + } + else + //the file was opened successfully, so write to it + { + fwrite($h, $output); + fclose($h); + + //begin display of "configuration complete" page + echo ''; + ?> + + + + + AutoIndex Configuration: Complete! + + + + +
    +

    Write successful!
    AutoIndex configuration is finished.

    +

    Continue.

    +
    + + './', + 'icon_path' => 'index_icons/winxp/', + 'flag_path' => 'flags/language/', + 'language' => 'en', + 'template' => './templates/default/', + 'log_file' => 'false', + 'description_file' => 'false', + 'user_list' => '.htpasswd.autoindex', + 'download_count' => 'false', + 'hidden_files' => 'hidden_files', + 'banned_list' => 'false', + 'show_dir_size' => 'true', + 'use_login_system' => 'false', + 'force_download' => 'false', + 'search_enabled' => 'true', + 'anti_leech' => 'false', + 'must_login_to_download' => 'false', + 'archive' => 'false', + 'days_new' => '0', + 'entries_per_page' => '0', + 'thumbnail_height' => '0', + 'bandwidth_limit' => '0', + 'md5_show' => '0', + 'parse_htaccess' => 'true' +); + +global $config; +if (isset($config)) +//if we're reconfiguring the script, use the current settings +{ + foreach ($settings as $key => $data) + { + $settings[$key] = $config -> __get($key); + } +} + +//begin display of main configuration page: +echo ''; +?> + + + + +AutoIndex Configuration Generator + + + +
    + +

    + AutoIndex PHP Script +
    Configuration +

    +

    + The default options are currently selected, so just press the configure button at the bottom to use them. +

    + +
    + +

    +
    +Base Directory: +

    + This is the folder that will be the root of the directory listing. +
    This will be the starting point for the script. Nothing above this directory can be viewed, but its subfolders can. +
    Make sure to use a path relative to this index.php file if you can. +

    +
    + +

    +
    +Icon Path: +

    + This is the path to the icon image files (the path web browsers will access them from). +
    The included icon sets are apache, kde, osx, and winxp. +
    You can leave it blank to not show icons. +

    +
    + +

    +
    +Flag Path: +

    + This is the path to the flag image files (the path web browsers will access them from). +
    The included icon sets are country, language. +
    You can leave it blank to not show icons. +

    +
    + +

    +
    + /> Show Directory Size +

    + If this box is checked, the total size of directories will be shown under size (all the folder's contents will be added up). +
    Otherwise, it will display "[dir]" under size. +
    NOTE: If you are trying to index many files (meaning a few thousand), you will notice a speed improvement with this turned off. +

    +
    + +

    +
    + /> Enable Searching +

    + If this box is checked, people will be able to search for a file or folder by its filename. +
    It will search the folder you are currently in, and all subfolders. +
    Searching is not case sensitive. +

    +
    + +

    +
    +Template Directory: +

    + This is the path where the *.tpl template files are located (relative to this index.php file). +

    +
    + +

    +
    + /> Enable Login System +
    /> Users must login to view/download +
    User List: +

    + User List contains the path to the text file where the usernames and encrypted passwords are stored. +
    Make sure the file is chmod'ed so PHP can read and write to it. +
    (User List is only needed if the login system is enabled.) +
    +
    The default accounts are: +
    username: admin +
    password: admin +
    +
    username: user +
    password: user +
    +
    Be sure to create new accounts, then delete these default ones if you enable the login system! +

    +
    + +

    +
    +Age for "New" Icon: days +

    + This contains the number of days old a file can be and still have [New] written next to it. +
    If it is set to 0, this feature will be disabled. +

    +
    + +

    +
    +Number of file entires per page: +

    + This contains the number of files or folders to display on a single page. + If there are more files or folders, the display will be separated into different + pages with Previous and Next buttons. +
    If it is set to 0, everything will be displayed on one page. +

    +
    + +

    +
    +Image Thumbnail Height: pixels +

    + This is a feature that will show thumbnails next to images. (NOTE: GDlib 2.0.1 or higher is required) +
    Setting it to 0 will disable this feature, and setting it to any other number will set the size of the thumbnail. +
    (100 is a good setting to start with.) +

    +
    + +

    +
    + /> Pipe downloaded files though the PHP script +

    Bandwidth Limit: KB/s

    +

    + This contains the max download speed for files. The above checkbox needs to be checked for this to work. +
    If it is set to 0, the script will not limit download speed. +

    +
    + +

    +
    +

    /> Anti-Leech

    +

    + When downloading a file, this will check to make sure the referrer the browser sends matches the website's URL. +
    Since some people turn off referrer sending in their browser, this option is not recommended. +

    +
    + +

    +
    + +

    + The following items contain the path and filename to the file where the data for that feature will be stored. +
    Leave it blank to turn off that feature. +

    + +

    Hidden Files List: +
    + Any file or folder matched to an item in this list will be kept hidden. +
    The contents of the list are editable when you login as an admin. +

    + +

    Access Log File: +
    + The file to write the access log. +
    If this is enabled, you will be able to view the contents of the logfile +
    and generate statistics when you login as an admin. +

    + +

    File/Folder Description File: +
    + The file to write the file descriptions to. +
    File/Folder descriptions are editable when you login as an admin. +

    + +

    Download Count File: +
    + The file to write the file download counts to. +
    The count is automatically increased when a file is downloaded. +

    + +

    Banned User List: +
    + The file to write IP addresses and hostnames that are blocked from accessing this script. +
    The contents of the list are editable when you login as an admin. +

    +
    + +

    +
    + /> Allow folder archive downloading +

    + If this box is checked, users will be able to download the folder's contents as a tar archive file. +

    +
    + +

    +
    + /> Parse .htaccess files +

    + If this box is checked, .htaccess files will be parsed and used by AutoIndex. +

    +
    + +

    +
    +

    MD5 calculation max size: MB

    +

    + Setting this to 0 will disable this feature, and setting it to any other number will set the maximum size of a file to allow users to find the md5sum of (in megabytes). +
    (10 is a good setting to start with.) +

    +
    + +

    +
    +Default Language: +

    + The user's browser's default language is used, unless that language is + not available in AutoIndex. In that case, the language selected here is + used. +

    +
    + +


    + +

    + +

    +

    + When you press Configure, the script will attempt to write the config data to the file. +
    If it cannot (for example if it does not have write permission in the directory) the config file will be downloaded, and you will have to upload it to your server. +
    (It should be named and put in the same folder as index.php) +

    + +
    + + + + \ No newline at end of file diff --git a/favicon.gif b/favicon.gif new file mode 100644 index 0000000000000000000000000000000000000000..e75c684077e8b3ad8769fcd1b6b0f8cc36af65b8 GIT binary patch literal 1735 zcmc(fYfMvT7{?DFAjKj>Ck!GzD3cbUJuRouQ%|*5PK!O|wC9+N4<;+L$Ps9Mb6b|}!&uqWDB;7t?fLY+|2)tC z`8|2xJeaOff|wJ5M8FFGY4{f$(@++5A#2lc!RF)e=DrQ@o?TxyB(scY>Cugq7dF|h zmpIRs)QxPe@3qulD}S$VYvV+vYr^L1w|Pc(y1VLqBaO}H8$FX%yT<&@1C6^!TU$Qz zhOYSc^zGa|+0ruY+c&zuZE#Q9*xvS&p7zN-ZMP3}47MK_+kfC@>(Q~$;hByj{f7?@ zeR%9r=b@3#j$55w10CH{U0u^By2lQFeEXB`ug-PdJJ&sZ>eKP=p6L_kzdP4^<$Ukd z;OB#%_1(YNH*>l7(cqWY`-f*PjNHF;d3>_}r_r&Q(a{GJ;}5TXefQer4^vZjzPbJA z-rWb^-h1-k;g63W|MKkVZ%=>yeRg)Xsi_J0Un65S-k_mKm4eWS_)t_tGyr7$u_$gC zKmj>(U~|tD6U%L)7?<1Q_4xzM!B9(U&}1aYkU@tRZQQ6e2KO2dwH-aydA#lYg^Hnh z#UYZ|jjPp!*NDkrr4o@989n3&gptJCPM$h_=JbLl%GXVTB!L%;wZ$e6X~Z$L7FnAC zdo_HXiZEe_oN$xHSiV9g*UJ6v_?g!Jfx)4`g0`Dpvkew!6Qs$nQmf=kZqobl@SbQHMUY^EJj8DYfCKQ!&PzL6RxUiAIlQ~H%3=E3!z*NGWm9i2s z=uv1j8g%FKZgBsvmBOMHjB-Y*O<#H&0DM>z9W~| zURp)hR#+WiE~v6QtRM)66Y8vvTH0;{Gj$dzSZ=PP%j`D(7P>sA4ixfXPy|5|0hA{Y z2|-9A6+=>?I1JQaqb*?{&5jx{GfaN!Kav-lN(|xoOkr%wT4k-Vmo-+>pr)#hc9_G= zHoMI_2mNC3(gsjbRaRlGZUAxGW~sM3Dr>XYEKFAz=C{>49ox&CbLgbi2@(!_xwUp~ z5_1)sRpE5jNCkrW`g(r#i^>Xn4ZqA@4TSeq*g;inaFz=BP-HBS5COyh5ifUW#J@u1 fd?9MSuxP#z-h9vFxkt>4d)WS;F0ro&z`DNyNr@K# literal 0 HcmV?d00001 diff --git a/flags/README.md b/flags/README.md new file mode 100644 index 0000000..45a0aa0 --- /dev/null +++ b/flags/README.md @@ -0,0 +1,2523 @@ +#FamFamFam Language Flag Icons + +These icons are public domain, and as such are free for any use (attribution appreciated but not required). + +#Country flags by Mark James. + +Note that these country flags are named using the ISO3166-1 alpha-2 codes where appropriate. A list of codes can be found at http://en.wikipedia.org/wiki/ISO_3166-1_alpha-2 + +To get started, checkout http://tkrotoff.github.com/famfamfam_flags/ + +#Language flags by Florin C Bodin + +Note that these language flags are named using the ISO639-1 codes where appropriate. A list of codes can be found at https://en.wikipedia.org/wiki/List_of_ISO_639-1_codes + +If you find these flag icons for languages useful, please donate via paypal to orynider@rdslink.ro (or click the donate button available at http://paypal.me/orynider ) + +For country flag icons - http://www.famfamfam.com + + +To Do: +1. Move country flags to country\ folder. +2. Move language flags to language\ folder. +3. Adding a function in php to get country flags or language flags. + + /** + * function decode_lang from mx_traslator phpBB3 Extension + * + * $mx_user_lang = decode_country_name($lang['USER_LANG'], 'country'); + * + * @param unknown_type $file_dir + * @param unknown_type $lang_country = 'country' or 'language' + * @param array $langs_countries + * @return unknown + */ + function decode_country_name($file_dir, $lang_country = 'country', $langs_countries = false) + { + /* known languages */ + switch ($file_dir) + { + case 'aa': + $lang_name = 'AFAR'; + $country_name = 'AFAR'; //Ethiopia + break; + + case 'aae': + $lang_name = 'AFRICAN-AMERICAN_ENGLISH'; + $country_name = 'UNITED_STATES'; + break; + + case 'ab': + $lang_name = 'ABKHAZIAN'; + $country_name = 'ABKHAZIA'; + break; + + case 'ad': + $lang_name = 'ANGOLA'; + $country_name = 'ANGOLA'; + break; + + case 'ae': + $lang_name = 'AVESTAN'; + $country_name = 'UNITED_ARAB_EMIRATES'; //Persia + break; + + case 'af': + $country_name = 'AFGHANISTAN'; // langs: pashto and dari + $lang_name = 'AFRIKAANS'; // speakers: 6,855,082 - 13,4% + break; + + case 'ag': + $lang_name = 'ENGLISH-CREOLE'; + $country_name = 'ANTIGUA_&_BARBUDA'; + break; + + case 'ai': + $lang_name = 'Anguilla'; + $country_name = 'ANGUILLA'; + break; + + case 'aj': + $lang_name = 'AROMANIAN'; + $country_name = 'Aromaya'; + break; + + case 'ak': + $lang_name = 'AKAN'; + $country_name = ''; + break; + + case 'al': + $lang_name = 'ALBANIAN'; + $country_name = 'ALBANIA'; + break; + + + case 'am': + $lang_name = 'AMHARIC'; + //$lang_name = 'armenian'; + $country_name = 'ARMENIA'; + break; + + case 'an': + $lang_name = 'ARAGONESE'; // + //$country_name = 'Andorra'; + $country_name = 'NETHERLAND_ANTILLES'; + break; + + case 'ao': + $lang_name = 'ANGOLIAN'; + $country_name = 'ANGOLA'; + break; + + case 'ap': + $lang_name = 'ANGIKA'; + $country_name = 'ANGA'; //India + break; + + case 'ar': + $lang_name = 'ARABIC'; + $country_name = 'ARGENTINA'; + break; + + case 'arq': + $lang_name = 'ALGERIAN_ARABIC'; //known as Darja or Dziria in Algeria + $country_name = 'ALGERIA'; + break; + + case 'ary': + $lang_name = 'MOROCCAN_ARABIC'; //known as Moroccan Arabic or Moroccan Darija or Algerian Saharan Arabic + $country_name = 'MOROCCO'; + break; + + //jrb – Judeo-Arabic + //yhd – Judeo-Iraqi Arabic + //aju – Judeo-Moroccan Arabic + //yud – Judeo-Tripolitanian Arabic + //ajt – Judeo-Tunisian Arabic + //jye – Judeo-Yemeni Arabic + case 'jrb': + $lang_name = 'JUDEO-ARABIC'; + $country_name = 'JUDEA'; + break; + + case 'kab': + $lang_name = 'KABYLE'; //known as Kabyle (Tamazight) + $country_name = 'ALGERIA'; + break; + + case 'aq': + $lang_name = ''; + $country_name = 'ANTARCTICA'; + break; + + case 'as': + $lang_name = 'ASSAMESE'; + $country_name = 'AMERICAN_SAMOA'; + break; + + case 'at': + $lang_name = 'GERMAN'; + $country_name = 'AUSTRIA'; + break; + + case 'av': + $lang_name = 'AVARIC'; + $country_name = ''; + break; + + case 'av-da': + case 'av_da': + case 'av_DA': + $lang_name = 'AVARIAN_KHANATE'; + $country_name = 'Daghestanian'; + break; + + case 'ay': + $lang_name = 'AYMARA'; + $country_name = ''; + break; + + case 'aw': + $lang_name = 'ARUBA'; + $country_name = 'ARUBA'; + break; + + case 'au': + $lang_name = 'en-au'; // + $country_name = 'AUSTRALIA'; + break; + + case 'az': + $lang_name = 'AZERBAIJANI'; + $country_name = 'AZERBAIJAN'; + break; + + case 'ax': + $lang_name = 'FINNISH'; + $country_name = 'ÅLAND_ISLANDS'; //The Åland Islands or Åland (Swedish: Åland, IPA: [ˈoːland]; Finnish: Ahvenanmaa) is an archipelago province at the entrance to the Gulf of Bothnia in the Baltic Sea belonging to Finland. + break; + + case 'ba': + $lang_name = 'BASHKIR'; //Baskortostán (Rusia) + $country_name = 'BOSNIA_&_HERZEGOVINA'; //Bosnian, Croatian, Serbian + break; + + //Bavarian (also known as Bavarian Austrian or Austro-Bavarian; Boarisch [ˈbɔɑrɪʃ] or Bairisch; + //German: Bairisch [ˈbaɪʁɪʃ] (About this soundlisten); Hungarian: bajor. + case 'bar': + $lang_name = 'BAVARIAN'; + $country_name = 'BAVARIA'; //Germany + break; + + case 'bb': + $lang_name = 'Barbados'; + $country_name = 'BARBADOS'; + break; + + case 'bd': + $lang_name = 'Bangladesh'; + $country_name = 'BANGLADESH'; + break; + + case 'be': + $lang_name = 'BELARUSIAN'; + $country_name = 'BELGIUM'; + break; + + case 'bf': + $lang_name = 'Burkina Faso'; + $country_name = 'BURKINA_FASO'; + break; + + case 'bg': + $lang_name = 'BULGARIAN'; + $country_name = 'BULGARIA'; + break; + + case 'bh': + $lang_name = 'BHOJPURI'; // Bihar (India) + $country_name = 'BAHRAIN'; // Mamlakat al-Ba?rayn (arabic) + break; + + case 'bi': + $lang_name = 'BISLAMA'; + $country_name = 'BURUNDI'; + break; + + + case 'bj': + $lang_name = 'BENIN'; + $country_name = 'BENIN'; + break; + + case 'bl': + $lang_name = 'BONAIRE'; + $country_name = 'BONAIRE'; + break; + + case 'bm': + $lang_name = 'BAMBARA'; + $country_name = 'Bermuda'; + break; + + case 'bn': + $country_name = 'BRUNEI'; + $lang_name = 'BENGALI'; + + break; + + case 'bo': + $lang_name = 'TIBETAN'; + $country_name = 'BOLIVIA'; + break; + + case 'br': + $lang_name = 'BRETON'; + $country_name = 'BRAZIL'; //pt + break; + + case 'bs': + $lang_name = 'BOSNIAN'; + $country_name = 'BAHAMAS'; + break; + + case 'bt': + $lang_name = 'Bhutan'; + $country_name = 'Bhutan'; + break; + + case 'bw': + $lang_name = 'Botswana'; + $country_name = 'BOTSWANA'; + break; + + case 'bz': + $lang_name = 'BELIZE'; + $country_name = 'BELIZE'; + break; + + case 'by': + $lang_name = 'BELARUSIAN'; + $country_name = 'Belarus'; + break; + + case 'en-CM': + case 'en_cm': + $lang_name = 'CAMEROONIAN_PIDGIN_ENGLISH'; + $country_name = 'Cameroon'; + break; + + case 'wes': + $lang_name = 'CAMEROONIAN'; //Kamtok + $country_name = 'CAMEROON'; //Wes Cos + break; + + case 'cm': + $lang_name = 'CAMEROON'; + $country_name = 'CAMEROON'; + break; + + case 'ca': + $lang_name = 'CATALAN'; + $country_name = 'CANADA'; + break; + + case 'cc': + $lang_name = 'COA_A_COCOS'; //COA A Cocos dialect of Betawi Malay [ente (you) and ane (me)] and AU-English + $country_name = 'COCOS_ISLANDS'; //CC Cocos (Keeling) Islands + break; + + case 'cd': + $lang_name = 'Congo Democratic Republic'; + $country_name = 'CONGO_DEMOCRATIC_REPUBLIC'; + break; + + //нохчийн мотт + case 'ce': + $lang_name = 'CHECHEN'; + $country_name = 'Chechenya'; + break; + + case 'cf': + $lang_name = 'Central African Republic'; + $country_name = 'CENTRAL_AFRICAN_REPUBLIC'; + break; + + case 'cg': + $lang_name = 'CONGO'; + $country_name = 'CONGO'; + break; + + case 'ch': + $lang_name = 'CHAMORRO'; //Finu' Chamoru + $country_name = 'SWITZERLAND'; + break; + + case 'ci': + $lang_name = 'Cote D-Ivoire'; + $country_name = 'COTE_D-IVOIRE'; + break; + + case 'ck': + $lang_name = ''; + $country_name = 'COOK_ISLANDS'; //CK Cook Islands + break; + + case 'cl': + $lang_name = 'Chile'; + $country_name = 'CHILE'; + break; + + case 'cn': + //Chinese Macrolanguage + case 'zh': //639-1: zh + case 'chi': //639-2/B: chi + case 'zho': //639-2/T and 639-3: zho + $lang_name = 'CHINESE'; + $country_name = 'CHINA'; + break; + //Chinese Individual Languages + // 中文 + // Fujian Province, Republic of China + case 'cn-fj': + // 閩東話 + case 'cdo': //Chinese Min Dong + $lang_name = 'CHINESE_DONG'; + $country_name = 'CHINA'; + break; + //1. Bingzhou spoken in central Shanxi (the ancient Bing Province), including Taiyuan. + //2. Lüliang spoken in western Shanxi (including Lüliang) and northern Shaanxi. + //3. Shangdang spoken in the area of Changzhi (ancient Shangdang) in southeastern Shanxi. + //4. Wutai spoken in parts of northern Shanxi (including Wutai County) and central Inner Mongolia. + //5. Da–Bao spoken in parts of northern Shanxi and central Inner Mongolia, including Baotou. + //6. Zhang-Hu spoken in Zhangjiakou in northwestern Hebei and parts of central Inner Mongolia, including Hohhot. + //7. Han-Xin spoken in southeastern Shanxi, southern Hebei (including Handan) and northern Henan (including Xinxiang). + //8. Zhi-Yan spoken in Zhidan County and Yanchuan County in northern Shaanxi. + // 晋语 / 晉語 + case 'cjy': //Chinese Jinyu 晉 + $lang_name = 'CHINA_JINYU'; + $country_name = 'CHINA'; + break; + // Cantonese is spoken in Hong Kong + // 官話 + case 'cmn': //Chinese Mandarin 普通话 (Pǔ tōng huà) literally translates into “common tongue.” + $lang_name = 'CHINESE_MANDARIN'; + $country_name = 'CHINA'; + break; + // Mandarin is spoken in Mainland China and Taiwan + // 閩語 / 闽语 + //semantic shift has occurred in Min or the rest of Chinese: + //*tiaŋB 鼎 "wok". The Min form preserves the original meaning "cooking pot". + //*dzhənA "rice field". scholars identify the Min word with chéng 塍 (MC zying) "raised path between fields", but Norman argues that it is cognate with céng 層 (MC dzong) "additional layer or floor". + //*tšhioC 厝 "house". the Min word is cognate with shù 戍 (MC syuH) "to guard". + //*tshyiC 喙 "mouth". In Min this form has displaced the common Chinese term kǒu 口. It is believed to be cognate with huì 喙 (MC xjwojH) "beak, bill, snout; to pant". + //Austroasiatic origin for some Min words: + //*-dəŋA "shaman" compared with Vietnamese đồng (/ɗoŋ2/) "to shamanize, to communicate with spirits" and Mon doŋ "to dance (as if) under demonic possession". + //*kiɑnB 囝 "son" appears to be related to Vietnamese con (/kɔn/) and Mon kon "child". + + // Southern Min: + // Datian Min; + // Hokkien 話; Hokkien-Taiwanese 閩台泉漳語 - Philippine Hokkien 咱儂話. + // Teochew; + // Zhenan Min; + // Zhongshan Min, etc. + + //Pu-Xian Min (Hinghwa); Putian dialect: Xianyou dialect. + + //Northern Min: Jian'ou dialect; Jianyang dialect; Chong'an dialect; Songxi dialect; Zhenghe dialect; + + //Shao-Jiang Min: Shaowu dialect, Jiangle dialect, Guangze dialect, Shunchang dialect; + //http://www.shanxigov.cn/ + //Central Min: Sanming dialect; Shaxian dialect; Yong'an dialect, + + //Leizhou Min : Leizhou Min. + + //Abbreviation + //Simplified Chinese: 闽 + //Traditional Chinese: 閩 + //Literal meaning: Min [River] + + //莆仙片 + case 'cpx': //Chinese Pu-Xian Min, Sing-iú-uā / 仙游話, (Xianyou dialect) http://www.putian.gov.cn/ + $lang_name = 'CHINESE_PU-XIAN'; + $country_name = 'CHINA'; + break; + // 徽語 + case 'czh': //Chinese HuiZhou 惠州 http://www.huizhou.gov.cn/ | Song dynasty + $lang_name = 'CHINESE_HUIZHOU'; + $country_name = 'CHINA'; + break; + // 閩中片 + case 'czo': //Chinese Min Zhong 閩中語 | 闽中语 http://zx.cq.gov.cn/ | Zhong-Xian | Zhong 忠县 + $lang_name = 'CHINESE_ZHONG'; + $country_name = 'CHINA'; + break; + // 東干話 SanMing: http://www.sm.gov.cn/ | Sha River (沙溪) + case 'dng': //Ding Chinese + $lang_name = 'DING_CHINESE'; + $country_name = 'CHINA'; + break; + // 贛語 + case 'gan': //Gan Chinese + $lang_name = 'GAN_CHINESE'; + $country_name = 'CHINA'; + break; + // 客家話 + case 'hak': //Chinese Hakka + $lang_name = 'CHINESE_HAKKA'; + $country_name = 'CHINA'; + break; + + case 'hsn': //Xiang Chinese 湘語/湘语 + $lang_name = 'XIANG_CHINESE'; + $country_name = 'CHINA'; + break; + // 文言 + case 'lzh': //Literary Chinese + $lang_name = 'LITERARY_CHINESE'; + $country_name = 'CHINA'; + break; + // 閩北片 + case 'mnp': //Min Bei Chinese + $lang_name = 'MIN_BEI_CHINESE'; + $country_name = 'CHINA'; + break; + // 閩南語 + case 'nan': //Min Nan Chinese + $lang_name = 'MIN_NAN_CHINESE'; + $country_name = 'CHINA'; + break; + // 吴语 + case 'wuu': //Wu Chinese + $lang_name = 'WU_CHINESE'; + $country_name = 'CHINA'; + break; + // 粵語 + case 'yue': //Yue or Cartonese Chinese + $lang_name = 'YUE_CHINESE'; + $country_name = 'CHINA'; + break; + + case 'co': + $lang_name = 'CORSICAN'; // Corsica + $country_name = 'COLUMBIA'; + break; + //Eeyou Istchee ᐄᔨᔨᐤ ᐊᔅᒌ + case 'cr': + $lang_name = 'CREE'; + $country_name = 'COSTA_RICA'; + break; + + case 'cs': + $lang_name = 'CZECH'; + $country_name = 'CZECH_REPUBLIC'; + break; + + case 'cu': + $lang_name = 'SLAVONIC'; + $country_name = 'CUBA'; //langs: + break; + + case 'cv': + $country_name = 'CAPE_VERDE'; + $lang_name = 'CHUVASH'; + break; + + case 'cx': + $lang_name = ''; // Malaysian Chinese origin and European Australians + $country_name = 'CHRISTMAS_ISLAND'; + break; + + case 'cy': + $lang_name = 'CYPRUS'; + $country_name = 'CYPRUS'; + break; + + case 'cz': + $lang_name = 'CZECH'; + $country_name = 'CZECH_REPUBLIC'; + break; + + case 'cw': + $lang_name = 'PAPIAMENTU'; // Papiamentu (Portuguese-based Creole), Dutch, English + $country_name = 'CURAÇÃO'; // Ilha da Curação (Island of Healing) + break; + + case 'da': + $lang_name = 'DANISH'; + $country_name = 'DENMARK'; + break; + + //Geman (Deutsch) + /* deu – German + gmh – Middle High German + goh – Old High German + gct – Colonia Tovar German + bar – Bavarian + cim – Cimbrian + geh – Hutterite German + ksh – Kölsch + nds – Low German + sli – Lower Silesian + ltz – Luxembourgish + vmf – Mainfränkisch + mhn – Mòcheno + pfl – Palatinate German + pdc – Pennsylvania German + pdt – Plautdietsch + swg – Swabian German + gsw – Swiss German + uln – Unserdeutsch + sxu – Upper Saxon + wae – Walser German + wep – Westphalian + hrx – Riograndenser Hunsrückisch + yec – Yenish */ + + + //Germany 84,900,000 75,101,421 (91.8%) 5,600,000 (6.9%) De facto sole nationwide official language + case 'de': + case 'de-DE': + case 'de_de': + case 'deu': + $lang_name = 'GERMAN'; + $country_name = 'GERMANY'; + break; + //Belgium 11,420,163 73,000 (0.6%) 2,472,746 (22%) De jure official language in the German speaking community + case 'de_be': + case 'de-BE': + $lang_name = 'BELGIUM_GERMAN'; + $country_name = 'BELGIUM'; + break; + //Austria 8,838,171 8,040,960 (93%) 516,000 (6%) De jure sole nationwide official language + case 'de_at': + case 'de-AT': + $lang_name = 'AUSTRIAN_GERMAN'; + $country_name = 'AUSTRIA'; + break; + // Switzerland 8,508,904 5,329,393 (64.6%) 395,000 (5%) Co-official language at federal level; de jure sole official language in 17, co-official in 4 cantons (out of 26) + case 'de_sw': + case 'de-SW': + $lang_name = 'SWISS_GERMAN'; + $country_name = 'SWITZERLAND'; + break; + + //Luxembourg 602,000 11,000 (2%) 380,000 (67.5%) De jure nationwide co-official language + case 'de_lu': + case 'de-LU': + case 'ltz': + $lang_name = 'LUXEMBOURG_GERMAN'; + $country_name = 'LUXEMBOURG'; + break; + //Liechtenstein 37,370 32,075 (85.8%) 5,200 (13.9%) De jure sole nationwide official language + //Alemannic, or rarely Alemmanish + case 'de_li': + case 'de-LI': + $lang_name = 'LIECHTENSTEIN_GERMAN'; + $country_name = 'LIECHTENSTEIN'; + break; + case 'gsw': + $lang_name = 'Alemannic_German'; + $country_name = 'SWITZERLAND'; + break; + //mostly spoken on Lifou Island, Loyalty Islands, New Caledonia. + case 'dhv': + $lang_name = 'DREHU'; + $country_name = 'NEW_CALEDONIA'; + break; + + case 'dk': + $lang_name = 'DANISH'; + $country_name = 'DENMARK'; + break; + + //acf – Saint Lucian / Dominican Creole French + case 'acf': + $lang_name = 'DOMINICAN_CREOLE_FRENCH'; //ROSEAU + $country_name = 'DOMINICA'; + break; + + case 'en_dm': + case 'en-DM': + $lang_name = 'DOMINICA_ENGLISH'; + $country_name = 'DOMINICA'; + break; + + case 'do': + case 'en_do': + case 'en-DO': + $lang_name = 'SPANISH'; //Santo Domingo + $country_name = 'DOMINICAN_REPUBLIC'; + break; + + case 'dj': + case 'aa-DJ': + case 'aa_dj': + $lang_name = 'DJIBOUTI'; //Yibuti, Afar + $country_name = 'REPUBLIC_OF_DJIBOUTI'; //République de Djibouti + break; + + case 'dv': + $lang_name = 'DIVEHI'; //Maldivian + $country_name = 'MALDIVIA'; + break; + + //Berbera Taghelmustă (limba oamenilor albaștri), zisă și Tuaregă, este vorbită în Sahara occidentală. + //Berbera Tamazigtă este vorbită în masivul Atlas din Maroc, la sud de orașul Meknes. + //Berbera Zenatică zisă și Rifană, este vorbită în masivul Rif din Maroc, în nord-estul țării. + //Berbera Șenuană zisă și Telică, este vorbită în masivul Tell din Algeria, în nordul țării. + //Berbera Cabilică este vorbită în jurul masivelor Mitigea și Ores din Algeria, în nordul țării. + //Berbera Șauiană este vorbită în jurul orașului Batna din Algeria. + //Berbera Tahelhită, zisă și Șlănuană (în limba franceză Chleuh) este vorbită în jurul masivului Tubkal din Maroc, în sud-vestul țării. + //Berbera Tamașekă, zisă și Sahariană, este vorbită în Sahara de nord, în Algeria, Libia și Egipt. + //Berber: Tacawit (@ city Batna from Chaoui, Algery), Shawiya (Shauian) + case 'shy': + $lang_name = 'SHAWIYA_BERBER'; + $country_name = 'ALGERIA'; + break; + + case 'dz': + $lang_name = 'DZONGKHA'; + $country_name = 'ALGERIA'; //http://www.el-mouradia.dz/ + break; + + case 'ec': + $country_name = 'ECUADOR'; + $lang_name = 'ECUADOR'; + break; + + case 'eg': + $country_name = 'EGYPT'; + $lang_name = 'EGYPT'; + break; + + case 'eh': + $lang_name = 'WESTERN_SAHARA'; + $country_name = 'WESTERN_SAHARA'; + break; + + case 'ee': + //Kɔsiɖagbe (Sunday) + //Dzoɖagbe (Monday) + //Braɖagbe, Blaɖagbe (Tuesday) + //Kuɖagbe (Wednesday) + //Yawoɖagbe (Thursday) + //Fiɖagbe (Friday) + //Memliɖagbe (Saturday) + $lang_name = 'EWE'; //Èʋegbe Native to Ghana, Togo + $country_name = 'ESTONIA'; + break; + + //Greek Language: + //ell – Modern Greek + //grc – Ancient Greek + //cpg – Cappadocian Greek + //gmy – Mycenaean Greek + //pnt – Pontic + //tsd – Tsakonian + //yej – Yevanic + + case 'el': + $lang_name = 'GREEK'; + $country_name = 'GREECE'; + break; + + case 'cpg': + $lang_name = 'CAPPADOCIAN_GREEK'; + $country_name = 'GREECE'; + break; + case 'gmy': + $lang_name = 'MYCENAEAN_GREEK'; + $country_name = 'GREECE'; + break; + case 'pnt': + $lang_name = 'PONTIC'; + $country_name = 'GREECE'; + break; + case 'tsd': + $lang_name = 'TSAKONIAN'; + $country_name = 'GREECE'; + break; + //Albanian: Janina or Janinë, Aromanian: Ianina, Enina, Turkish: Yanya; + case 'yej': + $lang_name = 'YEVANIC'; + $country_name = 'GREECE'; + break; + + case 'en_uk': + case 'en-UK': + case 'uk': + $lang_name = 'BRITISH_ENGLISH'; //used in United Kingdom + $country_name = 'GREAT_BRITAIN'; + break; + + case 'en_fj': + case 'en-FJ': + $lang_name = 'FIJIAN_ENGLISH'; + $country_name = 'FIJI'; + break; + + case 'GibE': + case 'en_gb': + case 'en-GB': + case 'gb': + $lang_name = 'GIBRALTARIAN _ENGLISH'; //used in Gibraltar + $country_name = 'GIBRALTAR'; + break; + + case 'en_us': + case 'en-US': + $lang_name = 'AMERICAN_ENGLISH'; + $country_name = 'UNITED_STATES_OF_AMERICA'; + break; + + case 'en_ie': + case 'en-IE': + case 'USEng': + $lang_name = 'HIBERNO_ENGLISH'; //Irish English + $country_name = 'IRELAND'; + break; + + case 'en_il': + case 'en-IL': + case 'ILEng': + case 'heblish': + case 'engbrew': + $lang_name = 'ISRAELY_ENGLISH'; + $country_name = 'ISRAEL'; + break; + + case 'en_ca': + case 'en-CA': + case 'CanE': + $lang_name = 'CANADIAN_ENGLISH'; + $country_name = 'CANADA'; + break; + + case 'en_ck': + $lang_name = 'COOK_ISLANDS_ENGLISH'; + $country_name = 'COOK_ISLANDS'; //CK Cook Islands + break; + + case 'en_in': + case 'en-IN': + $lang_name = 'INDIAN_ENGLISH'; + $country_name = 'REPUBLIC_OF_INDIA'; + break; + + case 'en_ai': + case 'en-AI': + $lang_name = 'ANGUILLAN_ENGLISH'; + $country_name = 'ANGUILLA'; + break; + + case 'en_au': + case 'en-AU': + case 'AuE': + $lang_name = 'AUSTRALIAN_ENGLISH'; + $country_name = 'AUSTRALIA'; + break; + + case 'en_nz': + case 'en-NZ': + case 'NZE': + $lang_name = 'NEW_ZEALAND_ENGLISH'; + $country_name = 'NEW_ZEALAND'; + break; + + //New England English + case 'en_ne': + $lang_name = 'NEW_ENGLAND_ENGLISH'; + $country_name = 'NEW_ENGLAND'; + break; + + // + case 'en_bm': + $lang_name = 'BERMUDIAN ENGLISH.'; + $country_name = 'BERMUDA'; + break; + + case 'en_nu': + $lang_name = 'NIUEAN_ENGLISH'; //Niuean (official) 46% (a Polynesian language closely related to Tongan and Samoan) + $country_name = 'NIUE'; // Niuean: Niuē + break; + + case 'en_ms': + $lang_name = 'MONTSERRAT_ENGLISH'; + $country_name = 'MONTSERRAT'; + break; + + case 'en_pn': + $lang_name = 'PITCAIRN_ISLAND_ENGLISH'; + $country_name = 'PITCAIRN_ISLAND'; + break; + + case 'en_sh': + $lang_name = 'ST_HELENA_ENGLISH'; + $country_name = 'ST_HELENA'; + break; + + case 'en_tc': + $lang_name = 'TURKS_&_CAICOS_IS_ENGLISH'; + $country_name = 'TURKS_&_CAICOS_IS'; + break; + + case 'en_vg': + $lang_name = 'VIRGIN_ISLANDS_ENGLISH'; + $country_name = 'VIRGIN_ISLANDS_(BRIT)'; + break; + + case 'eo': + $lang_name = 'ESPERANTO'; //created in the late 19th century by L. L. Zamenhof, a Polish-Jewish ophthalmologist. In 1887 + $country_name = 'EUROPE'; + break; + + case 'er': + $lang_name = 'ERITREA'; + $country_name = 'ERITREA'; + break; + + //See: + // http://www.webapps-online.com/online-tools/languages-and-locales + // https://www.ibm.com/support/knowledgecenter/ko/SSS28S_3.0.0/com.ibm.help.forms.doc/locale_spec/i_xfdl_r_locale_quick_reference.html + case 'es': + //Spanish Main + $lang_name = 'SPANISH'; + $country_name = 'SPAIN'; + break; + case 'es_MX': + case 'es_mx': + //Spanish (Mexico) (es-MX) + $lang_name = 'SPANISH_MEXICO'; + $country_name = 'MEXICO'; + break; + case 'es_US': + case 'es_us': + $lang_name = 'SPANISH_UNITED_STATES'; + $country_name = 'UNITED_STATES'; + break; + case 'es-419': + //Spanish Latin America and the Caribbean + $lang_name = 'SPANISH_CARIBBEAN'; + $country_name = 'CARIBBE'; + break; + case 'es-ar': + // Spanish Argentina + $lang_name = 'SPANISH_ARGENTINIAN'; + $country_name = 'ARGENTINA'; + break; + case 'es-BO': + case 'es-bo': + $lang_name = 'SPANISH_BOLIVIAN'; + $country_name = 'BOLIVIA'; + break; + case 'es-BR': + case 'es-br': + $lang_name = 'SPANISH_BRAZILIAN'; + $country_name = 'BRAZIL'; + break; + case 'es-cl': + // Spanish Chile + $lang_name = 'SPANISH_CHILEAN'; + $country_name = 'CHILE'; + break; + case 'es-CO': + case 'es-co': + // Spanish (Colombia) (es-CO) + $lang_name = 'SPANISH_COLOMBIAN'; + $country_name = 'COLOMBIA'; + break; + case 'es-CR': + case 'es-cr': + $lang_name = 'SPANISH_COSTA_RICA'; + $country_name = 'COSTA_RICA'; + break; + case 'es-DO': + case 'es-do': + //Spanish (Dominican Republic) (es-DO) + $lang_name = 'SPANISH_DOMINICAN_REPUBLIC'; + $country_name = 'DOMINICAN_REPUBLIC'; + break; + case 'es-ec': + // Spanish (Ecuador) (es-EC) + $lang_name = 'SPANISH'; + $country_name = 'SPAIN'; + break; + case 'es-es': + // Spanish Spain + $lang_name = 'SPANISH'; + $country_name = 'SPAIN'; + break; + case 'es-ES_tradnl': + case 'es-es_tradnl': + $lang_name = 'SPANISH'; + $country_name = 'SPAIN'; + break; + case 'es-EU': + case 'es-eu': + $lang_name = 'SPANISH'; + $country_name = 'SPAIN'; + break; + case 'es-gt': + // Spanish (Guatemala) (es-GT) + $lang_name = 'SPANISH'; + $country_name = 'SPAIN'; + break; + case 'es-HN': + case 'es-hn': + //Spanish (Honduras) (es-HN) + $lang_name = 'SPANISH'; + $country_name = 'SPAIN'; + break; + case 'es-la': + // Spanish Lao + $lang_name = 'SPANISH'; + $country_name = 'SPAIN'; + break; + case 'es-mx': + // Spanish Mexico + $lang_name = 'SPANISH'; + $country_name = 'SPAIN'; + break; + case 'es-NI': + case 'es-ni': + // Spanish (Nicaragua) (es-NI) + $lang_name = 'SPANISH_NICARAGUAN'; + $country_name = 'NICARAGUA'; + break; + case 'es-PA': + case 'es-pa': + //Spanish (Panama) (es-PA) + $lang_name = 'SPANISH_PANAMIAN'; + $country_name = 'PANAMA'; + break; + case 'es-pe': + case 'es-PE': + //Spanish (Peru) (es-PE) + $lang_name = 'SPANISH_PERU'; + $country_name = 'PERU'; + break; + case 'es-PR': + //Spanish (Puerto Rico) (es-PR) + $lang_name = 'SPANISH_PUERTO_RICO'; + $country_name = 'PUERTO_RICO'; + break; + case 'es-PY': + case 'es-py': + //Spanish (Paraguay) (es-PY) + $lang_name = 'SPANISH_PARAGUAY'; + $country_name = 'PARAGUAY'; + break; + case 'es-SV': + case 'es-sv': + //Spanish (El Salvador) (es-SV) + $lang_name = 'SPANISH_EL_SALVADOR'; + $country_name = 'EL_SALVADOR'; + break; + case 'es-us': + // Spanish (United States) (es-US) + $lang_name = 'SPANISH_UNITED_STATES'; + $country_name = 'UNITED_STATES'; + break; + case 'es-UY': + case 'es-uy': + //Spanish (Uruguay) (es-UY) + $lang_name = 'SPANISH_URUGUAY'; + $country_name = 'URUGUAY'; + break; + case 'es-ve': + // Spanish (Venezuela) (es-VE) + $lang_name = 'SPANISH_VENEZUELA'; + $country_name = 'BOLIVARIAN_REPUBLIC_OF_VENEZUELA'; + break; + case 'es-xl': + // Spanish Latin America + $lang_name = 'SPANISH_LATIN_AMERICA'; + $country_name = 'LATIN_AMERICA'; + break; + + case 'et': + $lang_name = 'ESTONIAN'; + $country_name = 'ESTONIA'; + break; + + case 'eu': + $lang_name = 'BASQUE'; + $country_name = ''; + break; + + case 'fa': + $lang_name = 'PERSIAN'; + $country_name = ''; + break; + + //for Fulah (also spelled Fula) the ISO 639-1 code is ff. + //fub – Adamawa Fulfulde + //fui – Bagirmi Fulfulde + //fue – Borgu Fulfulde + //fuq – Central-Eastern Niger Fulfulde + //ffm – Maasina Fulfulde + //fuv – Nigerian Fulfulde + //fuc – Pulaar + //fuf – Pular + //fuh – Western Niger Fulfulde + + case 'fub': + $lang_name = 'ADAMAWA_FULFULDE'; + $country_name = ''; + break; + + case 'fui': + $lang_name = 'BAGIRMI_FULFULDE'; + $country_name = ''; + break; + + case 'fue': + $lang_name = 'BORGU_FULFULDE'; + $country_name = ''; + break; + + case 'fuq': + $lang_name = 'CENTRAL-EASTERN_NIGER_FULFULDE'; + $country_name = ''; + break; + + case 'ffm': + $lang_name = 'MAASINA_FULFULDE'; + $country_name = ''; + break; + + case 'fuv': + $lang_name = 'NIGERIAN_FULFULDE'; + $country_name = ''; + break; + + case 'fuc': + $lang_name = 'PULAAR'; + $country_name = 'SENEGAMBIA_CONFEDERATION'; //sn //gm + break; + + case 'fuf': + $lang_name = 'PULAR'; + $country_name = ''; + break; + + case 'fuh': + $lang_name = 'WESTERN_NIGER_FULFULDE'; + $country_name = ''; + break; + + case 'ff': + $lang_name = 'FULAH'; + $country_name = ''; + break; + + case 'fi': + case 'fin': + $lang_name = 'FINNISH'; + $country_name = 'FINLAND'; + break; + + case 'fkv': + $lang_name = 'KVEN'; + $country_name = 'NORWAY'; + break; + + case 'fit': + $lang_name = 'KVEN'; + $country_name = 'SWEDEN'; + break; + + case 'fj': + $lang_name = 'FIJIAN'; + $country_name = 'FIJI'; + break; + + case 'fk': + $lang_name = 'FALKLANDIAN'; + $country_name = 'FALKLAND_ISLANDS'; + break; + + case 'fm': + $lang_name = 'MICRONESIA'; + $country_name = 'MICRONESIA'; + break; + + case 'fo': + $lang_name = 'FAROESE'; + $country_name = 'FAROE_ISLANDS'; + break; + + //Metropolitan French (French: France Métropolitaine or la Métropole) + case 'fr': + case 'fr_me': + $lang_name = 'FRENCH'; + $country_name = 'FRANCE'; + break; + //Acadian French + case 'fr_ac': + $lang_name = 'ACADIAN_FRENCH'; + $country_name = 'ACADIA'; + break; + + case 'fr_dm': + case 'fr-DM': + $lang_name = 'DOMINICA_FRENCH'; + $country_name = 'DOMINICA'; + break; + + //al-dîzāyīr + case 'fr_dz': + $lang_name = 'ALGERIAN_FRENCH'; + $country_name = 'ALGERIA'; + break; + //Aostan French (French: français valdôtain) + //Seventy: septante[a] [sɛp.tɑ̃t] + //Eighty: huitante[b] [ɥi.tɑ̃t] + //Ninety: nonante[c] [nɔ.nɑ̃t] + case 'fr_ao': + $lang_name = 'AOSTAN_FRENCH'; + $country_name = 'ITALY'; + break; + //Belgian French + case 'fr_bl': + $lang_name = 'BELGIAN_FRENCH'; + $country_name = 'BELGIUM'; + break; + //Cambodian French - French Indochina + case 'fr_cb': + $lang_name = 'CAMBODIAN_FRENCH'; + $country_name = 'CAMBODIA'; + break; + //Cajun French - Le Français Cajun - New Orleans + case 'fr_cj': + $lang_name = 'CAJUN_FRENCH'; + $country_name = 'UNITED_STATES'; + break; + //Canadian French (French: Français Canadien) + //Official language in Canada, New Brunswick, Northwest Territories, Nunavut, Quebec, Yukon, + //Official language in United States, Maine (de facto), New Hampshire + case 'fr_ca': + case 'fr-CA': + $lang_name = 'CANADIAN_FRENCH'; + $country_name = 'CANADA'; + break; + //Guianese French + case 'gcr': + case 'fr_gu': + $lang_name = 'GUIANESE_FRENCH'; + $country_name = 'FRENCH_GUIANA'; + break; + //Guianese English + case 'gyn': + case 'en_gy': + $lang_name = 'GUYANESE_CREOLE'; + $country_name = 'ENGLISH_GUIANA'; + break; + //Haitian French + case 'fr-HT': + case 'fr_ht': + $lang_name = 'HAITIAN_FRENCH'; + $country_name = 'HAITI'; //UNITED_STATES + break; + //Haitian English + case 'en-HT': + case 'en_ht': + $lang_name = 'HAITIAN_CREOLE'; + $country_name = 'HAITI'; //UNITED_STATES + break; + //Indian French + case 'fr_id': + $lang_name = 'INDIAN_FRENCH'; + $country_name = 'INDIA'; + break; + case 'en_id': + $lang_name = 'INDIAN_ENGLISH'; + $country_name = 'INDIA'; + break; + //Jersey Legal French - Anglo-Norman French + case 'xno': + case 'fr_je': + $lang_name = 'JERSEY_LEGAL_FRENCH'; + $country_name = 'UNITED_STATES'; + break; + + case 'fr_kh': + $lang_name = 'CAMBODIAN_FRENCH'; + $country_name = 'CAMBODIA'; + break; + + //Lao French + case 'fr_la': + $lang_name = 'LAO_FRENCH'; + $country_name = 'LAOS'; + break; + //Louisiana French (French: Français de la Louisiane, Louisiana Creole: Françé la Lwizyàn) + case 'frc': + case 'fr_lu': + $lang_name = 'LOUISIANIAN_FRENCH'; + $country_name = 'LOUISIANA'; + break; + //Louisiana Creole + case 'lou': + $lang_name = 'LOUISIANA_CREOLE'; + $country_name = 'LOUISIANA'; + break; + //Meridional French (French: Français Méridional, also referred to as Francitan) + case 'fr_mr': + $lang_name = 'MERIDIONAL_FRENCH'; + $country_name = 'OCCITANIA'; + break; + //Missouri French + case 'fr_mi': + $lang_name = 'MISSOURI_FRENCH'; + $country_name = 'MISSOURI‎'; + break; + //New Caledonian French vs New Caledonian Pidgin French + case 'fr_nc': + $lang_name = 'NEW_CALEDONIAN_FRENCH'; + $country_name = 'NEW_CALEDONIA'; + break; + //Newfoundland French (French: Français Terre-Neuvien), + case 'fr_nf': + $lang_name = 'NEWFOUNDLAND_FRENCH'; + $country_name = 'CANADA'; + break; + //New England French + case 'fr_ne': + $lang_name = 'NEW_ENGLAND_FRENCH'; + $country_name = 'NEW_ENGLAND'; + break; + //Quebec French (French: français québécois; also known as Québécois French or simply Québécois) + case 'fr_qb': + $lang_name = 'QUEBEC_FRENCH'; + $country_name = 'CANADA'; + break; + //Swiss French + case 'fr_sw': + $lang_name = 'SWISS_FRENCH'; + $country_name = 'SWITZERLAND'; + break; + //French Southern and Antarctic Lands + case 'fr_tf': + case 'tf': + $lang_name = 'FRENCH_SOUTHERN_TERRITORIES'; // + $country_name = 'SOUTHERN_TERRITORIES'; //Terres australes françaises + break; + //Vietnamese French + case 'fr_vt': + $lang_name = 'VIETNAMESE_FRENCH'; + $country_name = 'VIETNAM'; + break; + //West Indian French + case 'fr_if': + $lang_name = 'WEST_INDIAN_FRENCH'; + $country_name = 'INDIA'; + break; + + case 'fr_wf': + $country_name = 'TERRITORY_OF_THE_WALLIS_AND_FUTUNA_ISLANDS'; + $lang_name = 'WALLISIAN_FRENCH'; + break; + + case 'fy': + $lang_name = 'WESTERN_FRISIAN'; + $country_name = 'FRYSK'; + break; + + case 'ga': + $lang_name = 'IRISH'; + $country_name = 'GABON'; + break; + + case 'GenAm': + $lang_name = 'General American'; + $country_name = 'UNITED_STATES'; + break; + + //gcf – Guadeloupean Creole + case 'gcf': + $lang_name = 'GUADELOUPEAN_CREOLE_FRENCH'; + $country_name = 'GUADELOUPE'; + break; + + case 'gd': + $lang_name = 'SCOTTISH'; + $country_name = 'GRENADA'; + break; + + case 'ge': + $lang_name = 'GEORGIAN'; + $country_name = 'GEORGIA'; + break; + + case 'gi': + $lang_name = 'LLANITO'; //Llanito or Yanito + $country_name = 'GIBRALTAR'; + break; + + case 'gg': + $lang_name = 'GUERNESIAIS'; //English, Guernésiais, Sercquiais, Auregnais + $country_name = 'GUERNSEY'; + break; + + case 'gh': + $lang_name = 'Ghana'; + $country_name = 'GHANA'; + break; + + case 'ell': + $lang_name = 'MODERN_GREEK'; + $country_name = 'GREECE'; + break; + + case 'gr': + case 'gre': + $lang_name = 'MODERN_GREEK'; + $country_name = 'GREECE'; + break; + + case 'grc': + $lang_name = 'ANCIENT_GREEK'; + $country_name = 'GREECE'; + break; + + //Galician is spoken by some 2.4 million people, mainly in Galicia, + //an autonomous community located in northwestern Spain. + case 'gl': + $lang_name = 'GALICIAN'; //Galicia + $country_name = 'GREENLAND'; + break; + + case 'gm': + $lang_name = 'Gambia'; + $country_name = 'GAMBIA'; + break; + + //grn is the ISO 639-3 language code for Guarani. Its ISO 639-1 code is gn. + // nhd – Chiripá + // gui – Eastern Bolivian Guaraní + // gun – Mbyá Guaraní + // gug – Paraguayan Guaraní + // gnw – Western Bolivian Guaraní + case 'gn': + $lang_name = 'GUARANI'; + $country_name = 'GUINEA'; + break; + //Nhandéva is also known as Chiripá. + //The Spanish spelling, Ñandeva, is used in the Paraguayan Chaco + // to refer to the local variety of Eastern Bolivian, a subdialect of Avá. + case 'nhd': + $lang_name = 'Chiripa'; + $country_name = 'PARAGUAY'; + break; + case 'gui': + $lang_name = 'EASTERN_BOLIVIAN_GUARANI'; + $country_name = 'BOLIVIA'; + break; + case 'gun': + $lang_name = 'MBYA_GUARANI'; + $country_name = 'PARAGUAY'; + break; + case 'gug': + $lang_name = 'PARAGUAYAN_GUARANI'; + $country_name = 'PARAGUAY'; + break; + case 'gnw': + $lang_name = 'WESTERN_BOLIVIAN_GUARANI'; + $country_name = 'BOLIVIA'; + break; + + case 'gs': + $lang_name = 'ENGLISH'; + $country_name = 'SOUTH_GEORGIA_AND_THE_SOUTH_SANDWICH_ISLANDS'; + break; + + case 'gt': + $lang_name = 'Guatemala'; + $country_name = 'GUATEMALA'; + break; + + case 'gq': + $lang_name = 'Equatorial Guinea'; + $country_name = 'EQUATORIAL_GUINEA'; + break; + + case 'gu': + $lang_name = 'GUJARATI'; + $country_name = 'GUAM'; + break; + + case 'gv': + $lang_name = 'manx'; + $country_name = ''; + break; + + case 'gw': + $lang_name = 'Guinea Bissau'; + $country_name = 'GUINEA_BISSAU'; + break; + + case 'gy': + $lang_name = 'Guyana'; + $country_name = 'GUYANA'; + break; + + case 'ha': + $country_name = ''; + $lang_name = 'HAUSA'; + break; + + //heb – Modern Hebrew + //hbo – Classical Hebrew (liturgical) + //smp – Samaritan Hebrew (liturgical) + //obm – Moabite (extinct) + //xdm – Edomite (extinct) + case 'he': + case 'heb': + $country_name = 'ISRAEL'; + $lang_name = 'HEBREW'; + break; + case 'hbo': + $country_name = 'ISRAEL'; + $lang_name = 'CLASSICAL_HEBREW'; + break; + case 'sam': + $country_name = 'SAMARIA'; + $lang_name = 'SAMARITAN_ARAMEIC'; + break; + case 'smp': + $country_name = 'SAMARIA'; + $lang_name = 'SAMARITAN_HEBREW'; + break; + case 'obm': + $country_name = 'MOAB'; + $lang_name = 'MOABITE'; + break; + case 'xdm': + $country_name = 'EDOMITE'; + $lang_name = 'EDOM'; + break; + case 'hi': + $lang_name = 'hindi'; + $country_name = ''; + break; + + case 'ho': + $lang_name = 'hiri_motu'; + $country_name = ''; + break; + + case 'hk': + $lang_name = 'Hong Kong'; + $country_name = 'HONG_KONG'; + break; + + case 'hn': + $country_name = 'Honduras'; + $lang_name = 'HONDURAS'; + break; + + case 'hr': + $lang_name = 'croatian'; + $country_name = 'CROATIA'; + break; + + case 'ht': + $lang_name = 'haitian'; + $country_name = 'HAITI'; + break; + + case 'ho': + $lang_name = 'hiri_motu'; + $country_name = ''; + break; + + case 'hu': + $lang_name = 'hungarian'; + $country_name = 'HUNGARY'; + break; + + case 'hy': + case 'hy-am': + $lang_name = 'ARMENIAN'; + $country_name = ''; + break; + + case 'hy-AT': + case 'hy_at': + $lang_name = 'ARMENIAN-ARTSAKH'; + $country_name = 'REPUBLIC_OF_ARTSAKH'; + break; + + case 'hz': + $lang_name = 'HERERO'; + $country_name = ''; + break; + + case 'ia': + $lang_name = 'INTERLINGUA'; + $country_name = ''; + break; + + case 'ic': + $lang_name = ''; + $country_name = 'CANARY_ISLANDS'; + break; + + case 'id': + $lang_name = 'INDONESIAN'; + $country_name = 'INDONESIA'; + break; + + case 'ie': + $lang_name = 'interlingue'; + $country_name = 'IRELAND'; + break; + + case 'ig': + $lang_name = 'igbo'; + $country_name = ''; + break; + + case 'ii': + $lang_name = 'sichuan_yi'; + $country_name = ''; + break; + + case 'ik': + $lang_name = 'inupiaq'; + $country_name = ''; + break; + + //Mostly spoken on Ouvéa Island or Uvea Island of the Loyalty Islands, New Caledonia. + case 'iai': + $lang_name = 'IAAI'; + $country_name = 'NEW_CALEDONIA'; + break; + + case 'il': + $lang_name = 'ibrit'; + $country_name = 'ISRAEL'; + break; + + case 'im': + $lang_name = 'Isle of Man'; + $country_name = 'ISLE_OF_MAN'; + break; + + case 'in': + $lang_name = 'India'; + $country_name = 'INDIA'; + break; + + + case 'ir': + $lang_name = 'Iran'; + $country_name = 'IRAN'; + break; + + case 'is': + $lang_name = 'Iceland'; + $country_name = 'ICELAND'; + break; + + case 'it': + $lang_name = 'ITALIAN'; + $country_name = 'ITALY'; + break; + + case 'iq': + $lang_name = 'Iraq'; + $country_name = 'IRAQ'; + break; + + case 'je': + $lang_name = 'jerriais'; //Jèrriais + $country_name = 'JERSEY'; //Bailiwick of Jersey + break; + + case 'jm': + $lang_name = 'Jamaica'; + $country_name = 'JAMAICA'; + break; + + case 'jo': + $lang_name = 'Jordan'; + $country_name = 'JORDAN'; + break; + + case 'jp': + $lang_name = 'japanese'; + $country_name = 'JAPAN'; + break; + + case 'jv': + $lang_name = 'javanese'; + $country_name = ''; + break; + + case 'kh': + $lang_name = 'KH'; + $country_name = 'CAMBODIA'; + break; + + case 'ke': + $lang_name = 'Kenya'; + $country_name = 'KENYA'; + break; + + case 'ki': + $lang_name = 'Kiribati'; + $country_name = 'KIRIBATI'; + break; + + //Bantu languages + //zdj – Ngazidja Comorian + case 'zdj': + $lang_name = 'Ngazidja Comorian'; + $country_name = 'COMOROS'; + break; + //wni – Ndzwani Comorian (Anjouani) dialect + case 'wni': + $lang_name = 'Ndzwani Comorian'; + $country_name = 'COMOROS'; + break; + //swb – Maore Comorian dialect + case 'swb': + $lang_name = 'Maore Comorian'; + $country_name = 'COMOROS'; + break; + //wlc – Mwali Comorian dialect + case 'wlc': + $lang_name = 'Mwali Comorian'; + $country_name = 'COMOROS'; + break; + + case 'km': + $lang_name = 'KHMER'; + $country_name = 'COMOROS'; + break; + + case 'kn': + $lang_name = 'kannada'; + $country_name = 'ST_KITTS-NEVIS'; + break; + + case 'ko': + case 'kp': + $lang_name = 'korean'; + // kor – Modern Korean + // jje – Jeju + // okm – Middle Korean + // oko – Old Korean + // oko – Proto Korean + // okm Middle Korean + // oko Old Korean + $country_name = 'Korea North'; + break; + + case 'kr': + $lang_name = 'korean'; + $country_name = 'KOREA_SOUTH'; + break; + + case 'kn': + $lang_name = 'St Kitts-Nevis'; + $country_name = 'ST_KITTS-NEVIS'; + break; + + case 'ks': + $lang_name = 'kashmiri'; //Kashmir + $country_name = 'KOREA_SOUTH'; + break; + + case 'ky': + $lang_name = 'Cayman Islands'; + $country_name = 'CAYMAN_ISLANDS'; + break; + + case 'kz': + $lang_name = 'Kazakhstan'; + $country_name = 'KAZAKHSTAN'; + break; + + case 'kw': + //endonim: Kernewek + $lang_name = 'Cornish'; + $country_name = 'KUWAIT'; + break; + + case 'kg': + $lang_name = 'Kyrgyzstan'; + $country_name = 'KYRGYZSTAN'; + break; + + case 'la': + $lang_name = 'Laos'; + $country_name = 'LAOS'; + break; + + case 'lk': + $lang_name = 'Sri Lanka'; + $country_name = 'SRI_LANKA'; + break; + + case 'lv': + $lang_name = 'Latvia'; + $country_name = 'LATVIA'; + break; + + case 'lb': + $lang_name = 'LUXEMBOURGISH'; + $country_name = 'LEBANON'; + break; + + case 'lc': + $lang_name = 'St Lucia'; + $country_name = 'ST_LUCIA'; + break; + + case 'ls': + $lang_name = 'Lesotho'; + $country_name = 'LESOTHO'; + break; + + case 'lo': + $lang_name = 'LAO'; + $country_name = 'LAOS'; + break; + + case 'lr': + $lang_name = 'Liberia'; + $country_name = 'LIBERIA'; + break; + + case 'ly': + $lang_name = 'Libya'; + $country_name = 'Libya'; + break; + + case 'li': + $lang_name = 'LIMBURGISH'; + $country_name = 'LIECHTENSTEIN'; + break; + + case 'lt': + $country_name = 'Lithuania'; + $lang_name = 'LITHUANIA'; + break; + + case 'lu': + $lang_name = 'LUXEMBOURGISH'; + $country_name = 'LUXEMBOURG'; + break; + + case 'ma': + $lang_name = 'Morocco'; + $country_name = 'MOROCCO'; + break; + + case 'mc': + $country_name = 'MONACO'; + $lang_name = 'Monaco'; + break; + + case 'md': + $country_name = 'MOLDOVA'; + $lang_name = 'romanian'; + break; + + case 'me': + $lang_name = 'MONTENEGRIN'; //Serbo-Croatian, Cyrillic, Latin + $country_name = 'MONTENEGRO'; //Црна Гора + break; + + case 'mf': + $lang_name = 'FRENCH'; // + $country_name = 'SAINT_MARTIN_(FRENCH_PART)'; + break; + + case 'mg': + $lang_name = 'Madagascar'; + $country_name = 'MADAGASCAR'; + break; + + case 'mh': + $lang_name = 'Marshall Islands'; + $country_name = 'MARSHALL_ISLANDS'; + break; + + case 'mi': + $lang_name = 'MAORI'; + $country_name = 'Maori'; + break; + + //Mi'kmaq hieroglyphic writing was a writing system and memory aid used by the Mi'kmaq, + //a First Nations people of the east coast of Canada, Mostly spoken in Nova Scotia and Newfoundland. + case 'mic': + $lang_name = 'MIKMAQ'; + $country_name = 'CANADA'; + break; + + case 'mk': + $lang_name = 'Macedonia'; + $country_name = 'MACEDONIA'; + break; + + case 'mr': + $lang_name = 'Mauritania'; + $country_name = 'Mauritania'; + break; + + case 'mu': + $lang_name = 'Mauritius'; + $country_name = 'MAURITIUS'; + break; + + case 'mo': + $lang_name = 'Macau'; + $country_name = 'MACAU'; + break; + + case 'mn': + $lang_name = 'Mongolia'; + $country_name = 'MONGOLIA'; + break; + + case 'ms': + $lang_name = 'Montserrat'; + $country_name = 'MONTSERRAT'; + break; + + case 'mz': + $lang_name = 'Mozambique'; + $country_name = 'MOZAMBIQUE'; + break; + + case 'mm': + $lang_name = 'Myanmar'; + $country_name = 'MYANMAR'; + break; + + case 'mp': + $lang_name = 'chamorro'; //Carolinian + $country_name = 'NORTHERN_MARIANA_ISLANDS'; + break; + + case 'mw': + $country_name = 'Malawi'; + $lang_name = 'MALAWI'; + break; + + case 'my': + $lang_name = 'Myanmar'; + $country_name = 'MALAYSIA'; + break; + + case 'mv': + $lang_name = 'Maldives'; + $country_name = 'MALDIVES'; + break; + + case 'ml': + $lang_name = 'Mali'; + $country_name = 'MALI'; + break; + + case 'mt': + $lang_name = 'Malta'; + $country_name = 'MALTA'; + break; + + case 'mx': + $lang_name = 'Mexico'; + $country_name = 'MEXICO'; + break; + + case 'mq': + $lang_name = 'antillean-creole'; // Antillean Creole (Créole Martiniquais) + $country_name = 'MARTINIQUE'; + break; + + case 'na': + $lang_name = 'Nambia'; + $country_name = 'NAMBIA'; + break; + + case 'ni': + $lang_name = 'Nicaragua'; + $country_name = 'NICARAGUA'; + break; + + //Barber: Targuí, tuareg + case 'ne': + $lang_name = 'Niger'; + $country_name = 'NIGER'; + break; + + //Mostly spoken on Maré Island of the Loyalty Islands, New Caledonia. + case 'nen': + $lang_name = 'NENGONE'; + $country_name = 'NEW_CALEDONIA'; + break; + + case 'new': + $lang_name = 'NEW_LANGUAGE'; + $country_name = 'NEW_COUNTRY'; + break; + + case 'nc': + $lang_name = 'paicî'; //French, Nengone, Paicî, Ajië, Drehu + $country_name = 'NEW_CALEDONIA'; + break; + + case 'nk': + $lang_name = 'Korea North'; + $country_name = 'KOREA_NORTH'; + break; + + case 'ng': + $lang_name = 'Nigeria'; + $country_name = 'NIGERIA'; + break; + + case 'nf': + $lang_name = 'Norfolk Island'; + $country_name = 'NORFOLK_ISLAND'; + break; + + case 'nl': + $lang_name = 'DUTCH'; //Netherlands, Flemish. + $country_name = 'NETHERLANDS'; + break; + + case 'no': + $lang_name = 'Norway'; + $country_name = 'NORWAY'; + break; + + case 'np': + $lang_name = 'Nepal'; + $country_name = 'NEPAL'; + break; + + case 'nr': + $lang_name = 'Nauru'; + $country_name = 'NAURU'; + break; + + case 'niu': + $lang_name = 'NIUEAN'; //Niuean (official) 46% (a Polynesian language closely related to Tongan and Samoan) + $country_name = 'NIUE'; // Niuean: Niuē + break; + + case 'nu': + $lang_name = 'NU'; //Niuean (official) 46% (a Polynesian language closely related to Tongan and Samoan) + $country_name = 'NIUE'; // Niuean: Niuē + break; + + case 'nz': + $lang_name = 'New Zealand'; + $country_name = 'NEW_ZEALAND'; + break; + + case 'ny': + $lang_name = 'Chewa'; + $country_name = 'Nyanja'; + break; + //langue d'oc + case 'oc': + $lang_name = 'OCCITAN'; + $country_name = 'OCCITANIA'; + break; + + case 'oj': + $lang_name = 'ojibwa'; + $country_name = ''; + break; + + case 'om': + $lang_name = 'Oman'; + $country_name = 'OMAN'; + break; + + case 'or': + $lang_name = 'oriya'; + $country_name = ''; + break; + + case 'os': + $lang_name = 'ossetian'; + $country_name = ''; + break; + + case 'pa': + $country_name = 'Panama'; + $lang_name = 'PANAMA'; + break; + + + case 'pe': + $country_name = 'Peru'; + $lang_name = 'PERU'; + break; + + case 'ph': + $lang_name = 'Philippines'; + $country_name = 'PHILIPPINES'; + break; + + case 'pf': + $country_name = 'French Polynesia'; + $lang_name = 'tahitian'; //Polynésie française + break; + + case 'pg': + $country_name = 'PAPUA_NEW_GUINEA'; + $lang_name = 'Papua New Guinea'; + break; + + case 'pi': + $lang_name = 'pali'; + $country_name = ''; + break; + + case 'pl': + $lang_name = 'Poland'; + $country_name = 'POLAND'; + break; + + case 'pn': + $lang_name = 'Pitcairn Island'; + $country_name = 'PITCAIRN_ISLAND'; + break; + + case 'pr': + $lang_name = 'Puerto Rico'; + $country_name = 'PUERTO_RICO'; + break; + + case 'pt': + $lang_name = 'Portugal'; + $country_name = 'PORTUGAL'; + break; + + case 'pk': + $lang_name = 'Pakistan'; + $country_name = 'PAKISTAN'; + break; + + case 'pw': + $country_name = 'Palau Island'; + $lang_name = 'PALAU_ISLAND'; + break; + + case 'ps': + $country_name = 'Palestine'; + $lang_name = 'PALESTINE'; + break; + + case 'py': + $country_name = 'PARAGUAY'; + $lang_name = 'PARAGUAY'; + break; + + case 'qa': + $lang_name = 'Qatar'; + $country_name = 'QATAR'; + break; + + // rmn – Balkan Romani + // rml – Baltic Romani + // rmc – Carpathian Romani + // rmf – Kalo Finnish Romani + // rmo – Sinte Romani + // rmy – Vlax Romani + // rmw – Welsh Romani + case 'ri': + case 'rom': + $country_name = 'EASTEN_EUROPE'; + $lang_name = 'ROMANI'; + break; + + case 'ro': + $country_name = 'ROMANIA'; + $lang_name = 'ROMANIAN'; + break; + + case 'ro_md': + case 'ro_MD': + $country_name = 'ROMANIA'; + $lang_name = 'ROMANIAN_MOLDAVIA'; + break; + + case 'ro_ro': + case 'ro_RO': + $country_name = 'ROMANIA'; + $lang_name = 'ROMANIAN_ROMANIA'; + break; + + case 'rn': + $lang_name = 'kirundi'; + $country_name = ''; + break; + + case 'rm': + $country_name = ''; + $lang_name = 'romansh'; //Switzerland + break; + + case 'rs': + $country_name = 'REPUBLIC_OF_SERBIA'; //Република Србија //Republika Srbija + $lang_name = 'serbian'; //Serbia, Србија / Srbija + break; + + case 'ru': + case 'ru_ru': + case 'ru_RU': + $country_name = 'RUSSIA'; + $lang_name = 'RUSSIAN'; + break; + + case 'rw': + $country_name = 'RWANDA'; + $lang_name = 'Rwanda'; + break; + + + case 'sa': + $lang_name = 'arabic'; + $country_name = 'SAUDI_ARABIA'; + break; + + case 'sb': + $lang_name = 'Solomon Islands'; + $country_name = 'SOLOMON_ISLANDS'; + break; + + case 'sc': + $lang_name = 'seychellois-creole'; + $country_name = 'SEYCHELLES'; + break; + + case 'sco': + $lang_name = 'SCOTISH'; + $country_name = 'Scotland'; + break; + + //scf – San Miguel Creole French (Panama) + case 'scf': + $lang_name = 'SAN_MIGUEL_CREOLE_FRENCH'; + $country_name = 'SAN_MIGUEL'; + break; + + case 'sd': + $lang_name = 'Sudan'; + $country_name = 'SUDAN'; + break; + + case 'si': + $lang_name = 'SLOVENIAN'; + $country_name = 'SLOVENIA'; + break; + + case 'sh': + $lang_name = 'SH'; + $country_name = 'ST_HELENA'; + break; + + case 'sk': + $country_name = 'SLOVAKIA'; + $lang_name = 'Slovakia'; + break; + + case 'sg': + $country_name = 'SINGAPORE'; + $lang_name = 'Singapore'; + break; + + case 'sl': + $country_name = 'SIERRA_LEONE'; + $lang_name = 'Sierra Leone'; + break; + + case 'sm': + $lang_name = 'San Marino'; + $country_name = 'SAN_MARINO'; + break; + + case 'smi': + $lang_name = 'Sami'; + $country_name = 'Norway'; //Native to Finland, Norway, Russia, and Sweden + break; + + case 'sn': + $lang_name = 'Senegal'; + $country_name = 'SENEGAL'; + break; + + case 'so': + $lang_name = 'Somalia'; + $country_name = 'SOMALIA'; + break; + + case 'sq': + $lang_name = 'ALBANIAN'; + $country_name = 'Albania'; + break; + + case 'sr': + $lang_name = 'Suriname'; + $country_name = 'SURINAME'; + break; + + case 'ss': + $lang_name = ''; //Bari [Karo or Kutuk ('mother tongue', Beri)], Dinka, Luo, Murle, Nuer, Zande + $country_name = 'REPUBLIC_OF_SOUTH_SUDAN'; + break; + + case 'sse': + $lang_name = 'STANDARD_SCOTTISH_ENGLISH'; + $country_name = 'Scotland'; + break; + + case 'st': + $lang_name = 'Sao Tome & Principe'; + $country_name = 'SAO_TOME_&_PRINCIPE'; + break; + + case 'sv': + $lang_name = 'El Salvador'; + $country_name = 'EL_SALVADOR'; + break; + + case 'sx': + $lang_name = 'dutch'; + $country_name = 'SINT_MAARTEN_(DUTCH_PART)'; + break; + + + case 'sz': + $lang_name = 'Swaziland'; + $country_name = 'SWAZILAND'; + break; + + case 'se': + case 'sv-SE': + case 'sv-se': + //Swedish (Sweden) (sv-SE) + $lang_name = 'Sweden'; + $country_name = 'SWEDEN'; + break; + + case 'sy': + $lang_name = 'SYRIAC'; //arabic syrian + $country_name = 'SYRIA'; + break; + + + case 'tc': + $lang_name = 'Turks & Caicos Is'; + $country_name = 'TURKS_&_CAICOS_IS'; + break; + + case 'td': + $lang_name = 'Chad'; + $country_name = 'CHAD'; + break; + + case 'tf': + $lang_name = 'french '; // + $country_name = 'FRENCH_SOUTHERN_TERRITORIES'; //Terres australes françaises + break; + + case 'tj': + $lang_name = 'Tajikistan'; + $country_name = 'TAJIKISTAN'; + break; + + case 'tg': + $lang_name = 'Togo'; + $country_name = 'TOGO'; + break; + + case 'th': + $country_name = 'Thailand'; + $lang_name = 'THAILAND'; + break; + + case 'tk': + //260 speakers of Tokelauan, of whom 2,100 live in New Zealand, + //1,400 in Tokelau, + //and 17 in Swains Island + $lang_name = 'Tokelauan'; // /toʊkəˈlaʊən/ Tokelauans or Polynesians + $country_name = 'TOKELAUAU'; //Dependent territory of New Zealand + break; + + case 'tl': + $country_name = 'East Timor'; + $lang_name = 'East Timor'; + break; + + case 'to': + $country_name = 'Tonga'; + $lang_name = 'TONGA'; + break; + + case 'tt': + $country_name = 'Trinidad & Tobago'; + $lang_name = 'TRINIDAD_&_TOBAGO'; + break; + + case 'tn': + $lang_name = 'Tunisia'; + $country_name = 'TUNISIA'; + break; + + case 'tm': + $lang_name = 'Turkmenistan'; + $country_name = 'TURKMENISTAN'; + break; + + case 'tr': + $lang_name = 'Turkey'; + $country_name = 'TURKEY'; + break; + + case 'tv': + $lang_name = 'Tuvalu'; + $country_name = 'TUVALU'; + break; + + case 'tw': + $lang_name = 'TAIWANESE_HOKKIEN'; //Taibei Hokkien + $country_name = 'TAIWAN'; + break; + + case 'tz': + $country_name = 'TANZANIA'; + $lang_name = 'Tanzania'; + break; + + case 'ug': + $lang_name = 'Uganda'; + $country_name = 'UGANDA'; + break; + + case 'ua': + $lang_name = 'Ukraine'; + $country_name = 'UKRAINE'; + break; + + case 'us': + $lang_name = 'en-us'; + $country_name = 'UNITED_STATES_OF_AMERICA'; + break; + + case 'uz': + $lang_name = 'uzbek'; //Uyghur Perso-Arabic alphabet + $country_name = 'UZBEKISTAN'; + break; + + case 'uy': + $lang_name = 'Uruguay'; + $country_name = 'URUGUAY'; + break; + + case 'va': + $country_name = 'VATICAN_CITY'; //Holy See + $lang_name = 'latin'; + break; + + case 'vc': + $country_name = 'ST_VINCENT_&_GRENADINES'; // + $lang_name = 'vincentian-creole'; + break; + + case 've': + $lang_name = 'Venezuela'; + $country_name = 'VENEZUELA'; + break; + + case 'vi': + $lang_name = 'Virgin Islands (USA)'; + $country_name = 'VIRGIN_ISLANDS_(USA)'; + break; + + case 'fr_vn': + $lang_name = 'FRENCH_VIETNAM'; + $country_name = 'VIETNAM'; + break; + + case 'vn': + $lang_name = 'Vietnam'; + $country_name = 'VIETNAM'; + break; + + case 'vg': + $lang_name = 'Virgin Islands (Brit)'; + $country_name = 'VIRGIN_ISLANDS_(BRIT)'; + break; + + case 'vu': + $lang_name = 'Vanuatu'; + $country_name = 'VANUATU'; + break; + + case 'wls': + $lang_name = 'WALLISIAN'; + $country_name = 'WALES'; + break; + + case 'wf': + $country_name = 'TERRITORY_OF_THE_WALLIS_AND_FUTUNA_ISLANDS'; + $lang_name = 'WF'; + //Wallisian, or ʻUvean + //Futunan - Austronesian, Malayo-Polynesian + break; + + case 'ws': + $country_name = 'SAMOA'; + $lang_name = 'Samoa'; + break; + + case 'ye': + $lang_name = 'Yemen'; + $country_name = 'YEMEN'; + break; + + case 'yt': + $lang_name = 'Mayotte'; //Shimaore: + $country_name = 'DEPARTMENT_OF_MAYOTTE'; //Département de Mayotte + break; + + case 'za': + $lang_name = 'zhuang'; + $country_name = 'SOUTH_AFRICA'; + break; + case 'zm': + $lang_name = 'zambian'; + $country_name = 'ZAMBIA'; + break; + case 'zw': + $lang_name = 'Zimbabwe'; + $country_name = 'ZIMBABWE'; + break; + case 'zu': + $lang_name = 'zulu'; + $country_name = 'ZULU'; + break; + default: + $lang_name = $file_dir; + $country_name = $file_dir; + break; + } + $return = ($lang_country == 'country') ? $country_name : $lang_name; + $return = ($langs_countries == true) ? $lang_name[$country_name] : $return; + return $return ; } + + + +Contact: orynider@gmail.com diff --git a/flags/language/aa.png b/flags/language/aa.png new file mode 100644 index 0000000000000000000000000000000000000000..6a34e9a2a214ec033e495de2ca8bfe876b5902ab GIT binary patch literal 1374 zcmV-k1)=(hP)T?&GNgqQ#i0#!i4D8vU9F;NpE7-M2E#uq_- zGsckkWOzU&0tF02kT2<0q%AI8LTze8VnJ#@*mk$wy?bXob9YOz*exZ2^5AV}ckax+ zXMXcPXJ*baOz_422e=;qRFM-2;LtywKp$pL!~0wf?ykb<209lZIE2tsXrs1Ns` zts{zSJ#qBMl8DAF`ZhrTAOH}6E&3b+Xk1uXhMz;1)L?QnSMpuq z)E7~!MXgSuUN5LQ$fU%rA)b!3suHhN7q%7P|5Bjw;^ol*Sjq*z+GZuGu5n2KA-dHd zofV`BX$x*ER8UjP#D9ggOySQixnl*+Dw#?8ekKy<$>3nxY8JR2fM6aegg`;ffpIBd z11zf!;7CJLMg^|EcG5QC$?`CVyb6&B+g)6L2uW6m{%DlmWhh>Ml#RNssiUgYE7CzY ztib98i?AnnIyKrT3iQ5JFMA_>Fk=yxmpcH%NZ9T1K?gdoXF>PmO25~eQXm6BWr
    -BhNAznB^zL5`=ubjyj8X1cfpqB&tu2o zU1KUR6cYoHPMrGkRoZ_z7H{4OceW4d1p@!dedAZ)gB7n}+ku^#0k)n?1vlsH^0@$V|h z^32OvU=%86g+ikeEUHD_D32kO3F~* zb`iqVghN^knvhBAWu^lLH<{-4$hx(=nHBAYJJ$oByO0?U6A4|DGR9c{^$yu-CXuZd z$^~!!$hCw8Gig8=CiJ90(xSRQ+R^_T{)mW2y1D}X`x z-7ZYZR{%T>V4fCWZ_T6E;lr(Jg`fXO-+mpHxgy}FCN^HU#4@uqOM3LX8&K$7xgK8&&?-_45t$ww~MJPX&4|?kH!XN+%!@8+%cNT=qcI5l#&H+ zO38|;%%W06#lYQ9)s;3XpS(illI;R2Y9seRr8oBmz@ieR(ru^Z>2fay9|@5h`e8C* g*M0HRY(lSp09$3BbU;z?ssI2007*qoM6N<$f^}Yp1poj5 literal 0 HcmV?d00001 diff --git a/flags/language/aa_dj.png b/flags/language/aa_dj.png new file mode 100644 index 0000000000000000000000000000000000000000..e186bcebcab67e0c6d233b67b4c8ccc774df3678 GIT binary patch literal 755 zcmVA$zI5<4;JU$E%3QY(a8v-SbEuFmue*~p17PeAoLSjPvtT37wEa=om4#XpV35?ZDq^4`rGZ%OFmHBTw-6@f(s`v8$ogHozcfdYVuiCo*=UG#Fa(&grrDt@drvZwwP3} z`64Ed1<>Hs^J#nZ5CyD-czjR#cpO?=4;^G=`5i+`ZxLD?dkfNT26?Cg);g%ah>}+$f0nC?7@AG|g_S8Pd+UkNrWTlj(RfdN%Pk2865@S!-k_1Mf zlmxIopvRM6xzm4-lvpp16Ly?kL!uqvDsT;G0xHX3Of4XQ-@uduM1fi$QYL4->xeVJ lnzNG!XJ*UK{Kw=x{sLCApoSX4SHb`Q002ovPDHLkV1l|#OdS9K literal 0 HcmV?d00001 diff --git a/flags/language/ab.png b/flags/language/ab.png new file mode 100644 index 0000000000000000000000000000000000000000..74a48d424b70db6f0899c4b463a872f32fe3d14a GIT binary patch literal 1607 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 Y0u!>Q@FNMa2><{907*qoM6N<$f*0Cn)Bpeg literal 0 HcmV?d00001 diff --git a/flags/language/aj.png b/flags/language/aj.png new file mode 100644 index 0000000000000000000000000000000000000000..c46c459955924327e313bbbf6ca86bc55920773b GIT binary patch literal 2174 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 literal 0 HcmV?d00001 diff --git a/flags/language/an.png b/flags/language/an.png new file mode 100644 index 0000000000000000000000000000000000000000..e467eaa408d601859bb9e03caf66ed0cf36cdf9d GIT binary patch literal 671 zcmV;Q0$}}#P)ka!Ik~Mf)Hw>t(2i4 zi5)>hF(O9PY$}K!6~sSKx|)1U5-=u&K<+}v}Xmr2OnD9Tx# zm7<($G0J(y1x6d=;wjNqcfzf-Qxl~J=Y=#=a3erxwOW;KDt$i?B3p36jR5XSrD87D zYBfg;bw`NI3>2JjBY?MDE=x6<0k*b<$j*TiZUpEm7K`R0Zi^F{hmVBF%zz6{xXl2C zLP4q#q#uNY$j*V22N)W9LaO?e78l<(#nF*LhVi@UKDglI0s8yHw7$Miv$Jtqg2C7S ztZi(3G7;RoyrJ=Nts$!V znM$P+t*w2u-D43B@3Sx1A0~Nky9X{fd4TTjdo(>AqmhxP4VjtQqd;Jfrlwxl?y;Dd zcusS3uV{2MYP$z6IC%h%=Pr$nJ)^gfqdF*&K3*j+mT7o0pmGMS`&K2Nz^&XHd?ZwZl^0T-M+ zKq8S~KPZM2KX3Si$j*V22Z+bxl+9)-lgT*p!*gAT%nZ2To7Q5xR6)i0m9Vtpf>;MFWi63_s(} z3FEK32CO4ld;NvGeoMMe7;oLxX&p*iek^bKACv#Pjsa&1JA?2%Xngb=vpS@N87byKpYocn8QHS3wD7sTMP?^1aG|1EB^p5yjhl* zEFqE-15!y0F}u-Z(@jH6=Hda_hKw;6Mk~L{3X>Ju(;nY*PAL*9F$<-;@Hu^w=Hz|f z@8^Ba^E~H06bfwA{{SxoKtUmRacRcsLxkaor--w>pf=Rg6Z^gZyYK7k)A0bVN8R0z zih6nwK3sA1_xD%w0G@|kU6YpXZp=T-IkAx^fZEzx3=R%rWMt%o z0PtH!2V*;b9-GtC*+IPcx5U@-08m|BjZi3r(a}*6fO-2pru?lo#P9#QYoJ7_#Ff}A z=GZtSX$h$vF6V;jbQ-cE8Mrhj{Et72?+b9G+<{tq9eR6vMS$BK?=p_Ivm^rJdj?Z7 z8E&*0v0+jo$tC~O4rLU9;dWrT%*7i`(NINHa22`G($XRVjJ@#=bL30_TQd{6SEOl- zbsojCjsr!By=rkehJ`!psL&WOw-!ZNqXrhUPK4(BS?*v7^NYj9@Mt|~Zf+I#s=7r@9*6;{Ec z_8<@lhydRO-eg{BYQWaxyZZz5p2X~m97}U^aMasz^Y%1MYCYH#3%|#PCrkw9iVEne z5=e2my9p1Wj40tR@$Wo>Yp=e}9P|5-n7fx-St7wtA2eXiD97529MNzDQndtHjTO(6 z3FwMT5M7-|Vx5K2ZiBM&*{+1$6#-((uoCsEdbGB-iU41qIL*}5)gc+4+Dlwigqt5V zVNsigf>wY^(b#yb#QM?_3|h6AY-E+y*aox~Gn9_!ByrQ&Ol|&aBo*@tG!{3ay}exo z7Z+>t0MKeR?tJ_j{!s6C!b%d+SZ;>AVgpHf{}SZQ z5HY0O3OAhv7^phQcpXl#i#v_zsfyJ1!VOLlo(`%y#A)XW9a_Lc~L2JS&42QYGD#HdMX z_$m-y$DU6#_DP%9jbmp{!*<*am0ky$lpjsr1AHX-_DM^n2c?e(ON&?_#~uP897tTm ztBIEpmm~iNQ?9(S+h~}j^(+U2Dc4Rs1Flf gmwPEb%?fIN1NvQkiX1uS@Bjb+07*qoM6N<$f^F(4)Bpeg literal 0 HcmV?d00001 diff --git a/flags/language/arq.png b/flags/language/arq.png new file mode 100644 index 0000000000000000000000000000000000000000..7a164d1a5c142b521fab915a83a5c0096578124b GIT binary patch literal 979 zcmV;^11$WBP)L5Sc*1yAA+5c~yt62*fciV#FF zCj}J~!MKD(BZ5Yw2|6)JFICmmZN2W9$&5~C;vABLK6vyp)m7j7-uGVB0RQb@H!bCh zW)bD#tm{I7ag|HuHZ2_QzH@1^*qJULI#)dXnpQ;ss-+{*y}fHesdpTQF4Z0bQc7?s zFfcaq*As1PUQ52r(Hmrvh zjT9Du>!tyOX|yKP;s&?C)pagw&?P!Pa+Gr?qa<=Z`q^{+^$;pMcO%-|RFDDb2djB- zg|J}?1}1snM=K{K_P)3L{H5N#uZdtwM<+^}8@*@#`74Zk%%)B313S7*dMPTp<^i==cGTqW)6U9rU#~A91IC#wnsF44dGj3)X(MjBoK|F_T({4T)l~kgZunS zApij&{$PM9>WP6M058iW8otf`*7`}}X|=ELP*nvgyY_qcHOG$>j69G5(tytLr{G?b zi;g#@SB_*G-vOf`j-J)AbVu{cwSBGkoV?Y8^3Gj|EUTKQ1{hU=?lq%)W~y{wSr^8s zXET|12VPi8oF$lQeS+A!HeV})!IeHkOvRGi`fhnM_L_L6Z#X?3>yw(=>TxA`@XK&=&=L-VJ?u0Hq zPz5-y^VfU(d{rNi0+#?t+8Wu&IEt7Hy}iA~9SZ%$B(*cz&Pc|ziI*ES9cobvzx002ovPDHLkV1m@# B!2|#R literal 0 HcmV?d00001 diff --git a/flags/language/as.png b/flags/language/as.png new file mode 100644 index 0000000000000000000000000000000000000000..b7c99a3ed285357e91ecd1ae1e9259bf244eefec GIT binary patch literal 1784 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 bj|2D}7e=K2c;AVp00000NkvXXu0mjfMbH;h literal 0 HcmV?d00001 diff --git a/flags/language/av.png b/flags/language/av.png new file mode 100644 index 0000000000000000000000000000000000000000..e892cb528ddb14ddba58679e40ebcabb981e8b1d GIT binary patch literal 1672 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 bj|2D}7e=K2c;AVp00000NkvXXu0mjfMbH;h literal 0 HcmV?d00001 diff --git a/flags/language/ay.png b/flags/language/ay.png new file mode 100644 index 0000000000000000000000000000000000000000..b5c93ddf4b185b4b3e95856c3f5f91625e08fafd GIT binary patch literal 1819 zcmV+$2juvPP)2F+T6~>>t-#as&8P8%nUSh`!P7|kb7g`$8(gxHB+6sl5(gf6k8X`qP2q9I<$3O+D z1PT(MMnY)_{m`^1Wl{TuNTe;arL7WAgqy^Pm&6{gGak=)7JHU^@5^&%%AbJU4~%p) z*V5>o-+9h+&ih)z7JsDw1AG<$wiLoku6`QICc+4Y!?3-Cp{3);a$8Y-+l!~d9>9+I z=Z{WD4j36( zMC==f@$M~F>&irM5!OqHS_MX)nMU01mQ|3lucwe0uYWw1uV?^ zJCIeHQI>U-LPe|xOW4pWbp;fm;H87##LAyuMenI|chv!I92rTpe*Ihc!G|Xys6v1* z8H^3$u5Clu-LeCkTVT>_ROBMn$gl-KjR4My3{fS>q6~XRg<5q9U|`0KBWL&s;6qw( z#j+M9kPkLXqi*=^(M~M?^>qxMKHmUXo;;LjZh0KvKYJFA?ZDDhbcG}6j>pj69EOH< zm?DL!ItNXZr~*BaB2<2(ZUQ?)MHbk)GEj9?tO`HBb=a&nWk#{gSfw`{PPy*d`1y%1 zA)9&&t^J=WFn8_AM7;d~p8FY%C%6(68&Y5iB5(^zU=Dtx3B8d)?C-f3aVx|uDY&Kg zsMZ)gOPH*L+AO`1r$KX6Bc(uDqdThfhZe+=5kXc9z!eedO>}I35NA$Yro^^4 zELfwPm*p5%ln5QX4#m%8;j1uxHsby+Jk&jep;#weRwT+dDE}o$`YPPAi`tY5J1u*| zM0Kc4j%F=^Bke$wZ1nu*80KgHiO=18p#kv82M;HDdhf&86W5^%rw&lmnoo2Q{$z&2ke9_SjzV7!|xt3s-bL-qjVEJUROCsX6MOM?njxi6|om93GeE~kL% z_MSY9+tVLoXx}>xfYEpMCHe-2aryZBG+YCqK-seFUsesGtSVSjG%V^N)C>WiuLyr^ z6;`MWQ}Urd+=4sf?FeW-j(UcQe8h5R`RWbSW)w~g2YXGbZ+}S_==kmvn3}kPyC43b z0r264dlEZ$?!wgb@7EO&l7zfsA)^P8Aw-Fzl~u!-)4Nb6fNagd3EhO`Ps681G2F5T z4|d;!CXQZxJr>{P!kMfuG$-Y7VbPogTEIJg6bai7K7#S_Yxu&Wmm2{8cxz8$X!ii- z&s>Hq2?)BiwxMwO$fy-%Y;d9ESpB>nr!p4Gnz#K-wn>Ab2n4A_Fvjte*AdiJ?2fmh zI~YL|pG7{&_e>FNfx2=msAj0|K74X@0uMbt)&OWfwm;D|xC1ZTd;=0+?$-FzMFPxl zBIYD+0Uaq{2sgRm()7iu#%Hq+%N#F7q3xqrVYhK*b1J&R9e8^0w{d^x=h0&6kc%Hf z6yN3b?F3c(`pO+g4<IRt#aM! z$fg6>sF+wcEZh!sbH3wn6$j~njk%CO$zgR(D(>jl5RbTMGHvW^4q!0oM~vOkRKWua zIQsYNNKMQlefqryK=_&a6XAh&oO|E`B#SNJuWCGa>gM4AX_q-t94lu`svkz{hK}pL zF3b`@C@4(n0c6uzVFf*7p@0=-rS0Xb((9N4Z+T$m>5vadHWzbE9>Dz52+WD@GsX z6z-;6Mr7U-DpP4x&yUrQ<00kXt}#WX;l$?Lh9qw#a49)|zE;1G>|hKswlNI+?=Pla zncmH3k#VDbDP=?$er(Ro_`f$|o(@?3OkB&i{2!Ao{cJhFe*n`e2o7G0*~0(;002ov JPDHLkV1g~sSF!*A literal 0 HcmV?d00001 diff --git a/flags/language/az.png b/flags/language/az.png new file mode 100644 index 0000000000000000000000000000000000000000..85c88d72f96ef50ac66c90bcfeafa5840034e36f GIT binary patch literal 792 zcmV+z1LypSP)y^L5(|kYHY9e|5-cnU6|IexiKRk8K|-~3R9a{V zF&3H)fy6*TqPQTl%R2Ku=6;-WE#^&T@C^nF-xhL`oA-))-}&ADIrrT2;JN+Z%`{`% zECbTHXIC&05Flhg@6301wzgyUU%hi^PX_cwl`}{8cI*81IzT@IdLoL`$l9Rj#QDmL zyAe@d96Bt~vTlbU zO+b~H=foIM=h3ppq!1;bjg&D)v>Fr3x(UTJZ5D)JSmNeG;G9E7C9)s{l1@Gr%Mtea z8u^Li#LL%^#{(coZ>$jpTToQU{XZZ^Fta?61psFBcK~aV;Zt&;0YHWN!YbyaWp>IC!rGnjS)Xz2fX*x-r`j{0T30up8-VgJXLUL?B+7^DpLhw28c+&{(O&a zx`D}UA(PFD0bU0VH|f08L1P*L3#Eo)5x literal 0 HcmV?d00001 diff --git a/flags/language/ba.png b/flags/language/ba.png new file mode 100644 index 0000000000000000000000000000000000000000..7b9f76d96bb6971260b8719191b0154b47711ffc GIT binary patch literal 1137 zcmV-%1djWOP)2nx;1O5sHsoDj|^%AgM^DKo{%o!m{_?@yyJ`=- z*_m^GbLPz4xeUuJ?0qfA zki?N)b!a~k6ad!uAjozz`;^*y61LNu>nXfCHyX1VFO@XukF7KI5@lD)7WR z!$`0qBk(UJl1bp$16Sh3&!=(n+2(5{0G{E-7dysq?+XL?Jy@}*0A=Ph-hR9Rcb{5^ zUk)$@P}N}@hprgJ{jZ$^!XamUg=(r4yH&L1?GU@bw9{9LucMpLuDQ${-h8MQT^H(c zrcF}-o4dKOt6~5jkAx5kXw;YIXBR_3wvls9_l(P?lm{vXumT%`p8&En^o|+}$EOl(lr?J5EYdJ(vJwg-nE-ZcN&%xyJ| zneTw)M?k1XwP#0w*bd6Djb5L>GeP>)E4?^X+TxGEH^#=vG&&EqE--5+Hxe(=LHZk2 zGfpm)P!v`Gm$j>fX7eAX?T1g}`&Cf_xIqEze0{HB+cCV~cDP7@PBr719`zh)Q4x^< zY(aoKyAQ(DCh_5eZzzE6UH2H7**H!-^78xuwz~wqRKG}$x2X1+uW8~Gfyk!6UII6X z9j zcNM^GojZ+0GJ>*|7wAppZbO#m)!mwEXVD9boN{iec3O9CU2p2rnq*_u%Xw@^9rL1ud|DWreIS6hlxKoL-RkB>I zZN<=34^l@*Jb?A_>oLy1b&Plba3J7w4j&57&Dc8`ne&f1u3dmql*_UbH{o2W2kGZW z6+qoA40g;@vhrAw}u3uP$;=0rz6b9MTOnde2qlQ56Va)o^(#wd|zJH{kH zQ@DLypRQLS8yfRvnu>xK4dKA{{U(68Z>?PbfAZ%e*p_;ZWUofj97eWdO1_R8gZI_; zv(Zucqh6vTl}Qzy(f>sJwt00m%(s4$7m`}ideXI!N7|y_ltq}t5qh32j00000NkvXXu0mjf D$de=7 literal 0 HcmV?d00001 diff --git a/flags/language/be.png b/flags/language/be.png new file mode 100644 index 0000000000000000000000000000000000000000..bbd20b6edbaa065ed836fdf1cfbfc8c76ae7c6b3 GIT binary patch literal 1189 zcmV;W1X}xvP)Qoh3%;OH5{=U(#t-w$VldG` zXh!CU6cu7o-4vOo9KUlhXG()A;Q6>|48xxVOS!DC>Rc?Wm$G*wxtD0ubzOj>nxJqe2epP zc6@ekEUmK>wioN+zvUGaS)oxurcrYJ^scVxFhB;wF!sf-jL`1N!s^5f*M{wuZ4R33 zRCpIX*ilmr@0Ba}Z3&jTx{zrwWQG9>XqvVyg@8w|+q=_w2Y6#M=Dt4rtmAiM1Wt&V{*BaL&u(FxUXzIjaJ$`md|^ zrm_q(^^IVIen9}Ts90$B6=T+9LfP;z58!kBvvh>NPG7Uh<3)qR$D6=fDK6ynUxCL<;$oZ8{+}2Rx6b*mTn5b#>Zm%$a7?Z z07N1-w58yzNGuY|5s|VJQxt_7tCa^B8yllkJ;qJ9Ao0C6*q*MvF91@l5`T@48L;P#N>?O_MODr2)?j9)&NkMxIR>dCK^cAcyi_0|amfK{BsyhYGd{8?K$a#siqm zW~xY{*z_2ROA7J$z(I&|?T73>q!aDD9J0fvW%DZO!M!;46stVdki2~>Q$ zAM#*?KmZ2vC>iF)?N~m&%mbKACMwy`x8YSR-<^Y`kKRZ5Hx*E@k%9oYJA_Q({Bss7 zXI6NC!NEbQLaN;GF^X<{0gC(rJknoAc3dMEfKk$L{c#=M&%GQ#vC(L}TJD&G-*gd@ z!~`%4i=6X%U-48mBAQ;tUSlcLBCQ|*mI=Wp_rm?V6M?eelm6l;zw0W3sKb?ErrReO?Uz1-{F|00000NkvXXu0mjf D$`LQ2 literal 0 HcmV?d00001 diff --git a/flags/language/bg.png b/flags/language/bg.png new file mode 100644 index 0000000000000000000000000000000000000000..c61ede0cc9ae361c487f3021d3a549186d4c3c73 GIT binary patch literal 434 zcmV;j0ZsmiP)3KbnxNYL^bloWgspTR#MQBYA*(Gm$kfoP~eXgAB+;}-=9S<*8p zU?j_OHOF_x_BH&+Uk@`ID~k#k^kyxX0wf?-z^Ih+z7qM3*|NYm=d7N5mUCPIqntC= zT1qKeJD&rLEHKD9t0f00rOW{a6<|_I42MHi1yV`?#sb6`)fI>_ejmf{g{A^O08X#Y zIX*bzsd-fa*j?Y|a&o%>kPv9Z@exD?pb>|JumJEPOvTYD0Zhf=MS2Q|P>Z7tUIm~Q zhb#j$Uaa5m~#` zgdq^ymf}0LoAAdm3=+uQ2U&D_z~(}bK0pX0*O6ybzpg+|gq{LLLLhb>C>fI+95W@de`GF!g# ckI8?00xin;+RB?t_y7O^07*qoM6N<$f?tiRUH||9 literal 0 HcmV?d00001 diff --git a/flags/language/bi.png b/flags/language/bi.png new file mode 100644 index 0000000000000000000000000000000000000000..c98db3d405bdda1338dbd528fe1bd8f42527e440 GIT binary patch literal 1293 zcmV+o1@iidP)iJ79oD2v%pSlGltHk?o(496^wG2~HkAQ4aEoF#S(eR-L_;VJScI_$3yv^hBLN2OrLDhvTWBCk2u#=?p62wA-rqgv z^ET1%OqB;GIisDqcYt3sDo%Y2Kj|@jH6N(+jZ<-WX#nuoyU)jnh^_ z>c3&)%?9?gsd($YgDt8XL-Mn5G}CaUXoyxI1pPY_@N{pR9}f`Z^*Ghpbn1P$imTDy zIgS0t$I*91j8vr?5*RfY4`&$t93Pr<@2q^>-j&1yJi`M76YVgKo`=sO3>i_utJFE+i6c#?_ zNFgtUK}-aVZ!Q>6{MjU2M&!tG@j$p*4TD;?bO0j0IYsz$ua*bcAOMgr{pr&Uh>F?< z5g|00tqa$>Q7Fk&U}LZZm5q})T5CYiq!MMmfpAkTEhW=(Gd!|#@mKx<1a#W~_z2Y2 zeu;#HU2_(T$Wt?+4qY$C!3-8Yo+2Eqd4R7PIlM}#pmXE5f}(U5v=qoYF@YbO zP1q)PMTVOfoCydYINqRfCf5HXQVQ@!@AZ6D*!ElzUstbXi~Dkw|`kCgV8Yy z&i%rnd_Rk_Is@tnh}o8!_(&Sri45+Jnvr>I99P>ZJOLJ*FkdLBWD7TPbU_ZzRD6ox z1_$gZ__{`ixZQ;yFi4J(q3gN{45_sse+j(Th>%wDKzL@GPr^=jM$yPmX3%-lgsz($ zq!LOfG;V6)G~{IL!w2OJIDDkf9)T~aba+QoC^*PTkbw+CG+pLU`=J6C+c@M^Oc4jf z_&k8T6c)YLrg6Q;I14bzEex21k9ROPmV1Xj!JH?rG z#7`rgFs3%!0W_K@KW7m6xRZ9&va^l{`8d#P4&@{(SGmJZV7N>Y6hKClG2JhUCp7pX{s zA&l_=!f_l;({v-NWWa^0fp9M#aoJ855)s+Nn3UrIgbN9YGXjXNAu3x&WEU%ZCJjUf ziT2norEn&yz{=c=XKut3MDINk*YZ{WW3sBU>HvQOH)Edg*PCm_00000NkvXXu0mjf DywgwA literal 0 HcmV?d00001 diff --git a/flags/language/bl.png b/flags/language/bl.png new file mode 100644 index 0000000000000000000000000000000000000000..348493eaf0dd24d94e2cf02e9f4607c9eae86ee6 GIT binary patch literal 1424 zcmV;B1#kL^P)-qq1KZnpUrW0ll5)I89?iL+H0O!*bgT zn`;yV;X{~c90W~($0y+N2H^9CK*o&Ym9kaH(&lmYMe375oj48I{&zAb05W$~m70o5 zt6=S}=Qg>`h*Ega)aF7%%LpPO#!;9T4uy!v?x+Cz`rSBJ=LY5AVb?YziX&EVXCOHd zqo=+{_`!D{n*`YLY>6p<Y6rBn}kr-cma}CFjIkEGpJd{ZaxHFIti@_hxBj)hIAVB4o zd{gG4atu40?g_gez~$&bo7stFMlqHz5o6FnK`IqM8zYBGrDikW$Dz+#aJI&Qsx^6d zatZ)4HU`e~wTM6RQ4rwijYdozvtS?!xtMC*opx*j}MUVw?sf>-JMFFa!xV zA;gid+VRsb4pc77!3J?5H$aRE_WFy^9sM{6P_Zt@q)RVCV62NX19HX!T^t2c6arA(Qx?=Mn-9@OiRTo-%@UXXeDl4Y(Uz#Uj_ln*JPU13ArHs zy__bM&<^LF0eAuo#>RXoS;~hoCk7GfIk+`IW8VjtVC!=uK^=<1G(Ad&vbX^vBVcK~ zf(56)4g#z#o@Y|1vJeU@r%5Ilz?C*fa2FE{GSeAsSSg1tB@si=;Qa#)=1Sh|Oit(QPMUk=JgqPEr!*N`6qJ_AFB z7`a9bS{p~8CDd4L=Ds-zVJI4JSy9&fYY<>jW~8alC1rQ8pVJg2^MR&lgbH~O%6PbG z^?;@sjI%ed-%BGsQH0zA6*?}BLQ5y0!YQ( zlmPk!Zc}G(0N3l5U?$C5NlhI%~e enbkJy0Dl5fr0(ztwB}U+0000DtbfpUy;uSoH9>OcQlmQRm!mWq!3Il>5E{9PB7ov8jD#?2< zabY)9qa;}j-3upB)FQ8vFaQ7Yl7h?jzqfAl9IW-gZ1Ub0Oa=_l9#}ko|N2MES1*?z zn@0a~a;+)u&Z`$UdthnFcy{+m-LK=vO#|P0I;+Nfd-E1x*#iqp2}#O_pJ&C79$o+3 z1mI5R#r~@gACSxd7CkT%Q-TSat>T=v87yT5Qivo~fLRZ8s={cIXyplVicJ7X%DJ4z z5fuUGdH_+yTO=l_EUghBQ~-R~0>;l9nI2j36USYP-2H?vI zm>ZB7Cjc5*t7p&(KpL9>tP-Ychs22jAx4~xcrC9mX)8ck0d_kr8Md=D4X34e-6vuzNdx^$VG$9FUQW!;q5YWy>NNZ`Zv$L_Wx9|h_4QvD}!A`NX3j`ZW#YQ9= zL{yYW%-!wIdv9jP;?9^$Hr`rzDfAD^!ti$AZ~im0?=Ae-zpkWr?VB1vw(UMFmrmrblRH^(YEe%xvozV&>_H!uPd=AYgs$Lp0YePIxw!~b^wSdZC6lK0L*MSLaevBW(11q!NF};AhO*7 zRW@BtN8GO9vT&p|0W5`%4367$IjTDVT18G?0kDd4w&oJ79ZJb-0JMr703yPs%PaT5 z$^p-rZ&nLnWqgEOV=V_nq~C$IbCpZ*xCx7;aLWDOg|&kzkDCcz{NNItX4OkjNVR{r zX5r4Na=NIV-P^H*+p`C0nbdMBCFut+>z#s%?*PDi;QCz3m9NI)M&LrLTQgoB&R8DL zcrrDDMFp+d48(|SKZd48M;+?-w$A|%#^J$u3Z(tLg;)MWWh^o6`xG06ZWV~Xu26=) zS`f{QT!b=~Ljka`1rQrR2tFWdABiyz1t3WhLMVZ5?V1D50VjY1LugDRAiyW!bpjj( wCV=LUI^&-maR>O8^!CBNwdMQ%WAa}=05-FXL1P2&EdT%j07*qoM6N<$g8eT-ivR!s literal 0 HcmV?d00001 diff --git a/flags/language/br.png b/flags/language/br.png new file mode 100644 index 0000000000000000000000000000000000000000..f0eddd35bdaa78e31973573b38e5c89ae8096552 GIT binary patch literal 835 zcmV-J1HAl+P)~O<<0Ux1{K}_F(4K88B9#@c%5XdEhF|beq zg|1p?LZb*sXXbh+P%YM^_qymLlk>~WcfOf9_n-rfMfV@TO8}rL2y$+`SA&XRW~fut z2|0W{o6QD`tCPtDj7B3&r&BN(4D2=A7SM)rBAsrj|DgB# zbxD$}v||@1F7x?3L?RJ3S}Yb}YikR(x3}3Dt?lgWfX!xOqt$8^91aH?%4W0N>Jg~P zY+=LS`(M**DVWWqqobqu1i;m5wQ6({zuymTw;NKa6zuQsLnsvD&B zPNxHQyB%(BZop!(tPMErGnq_F0FYS;fq4ml7vm{Y%)8w#$Mo><5U#GSpjN9fBR-!G zWLbuGyUk&tIf^@-jKVV-js7+XnSod==3@YuTymjMfN(er=jZ24H8DVam&?Tox3RIo z3{W1_>vi69eSHnlXcYSWJ|`#vqL%XJDFD#E0sv1dpPrs_TqzMn(h=Qsx>Bh$AJba1 z*_`JB?le@fIt-h z7Z(@uV%<|qr=UKSB~eP$iZQh`M}0y4Vg)?J!s;B2old6$;Naju#>F(%Cf76?7lwp$ z(XN)4kX7Sr0I)C2I|TsVNHR_cT2^cJH(50H(9I{tf5?Y4&P(ZZS^+Q^3}g|P=LGb* zIbgL~6#$s&vPzDZ#B4Sz0OIkuDhw=ygneZ)83h2|beeYATU}GxISYPg_(8IZ`T_MF zsu}+M!<4Q`dO&oHN(sj5B9)rt#LysLUAZC}tAf1i{24&@>|IB};q>)Q29zKp}c4gAj$H zKno-@B*?;2f-Z(P&`2F`qm7QvI5*FkGyAqKd#@gjqvK`JQPGF|;A692*7w`r`u2bQ z7d(vrdx*>Vz#;*}2R!c=j0Hl#B!J|~4|Zl=eqkaA*s}cy!-@-0GQ-k22N+$IrC6wY zQgzvvuTYRMSKimHo?DgxQc)C9SQsZ36RcP=lT=wTojpFj|0K4w6AJDPz?+N45|3E` zHhy;qAe8`;exL|s$lp!v%xD}%&FC_kTYA`g@FE9`H1nn(V?>F2*8m3&=aUzYm|R~; z7)Aie1Q0hSL}^19T3XI$=Co2U(AIH@kYQ~8t$~Z_e2C;7rBoqOh4_K)2OyCH(0IN^N}c;h zEJRU^Z99&UmxwX0rkpADmF)kgn=QL7i=R5c$g;j6cOZ}k8yY-cqjj!U3_vN3<0%4Z z2&6$OL!YZ~TuJvOmy+Uq>c*B+RguSqi?DIm6wdeLW20b5*}uNyDU{MzJD{}2aV1`$ zZ=g0N;>gKPTFz(aa}^`23yCPx5^9+tFQF;J?lnU3A1UCTy zIDWbdEe&-w6} zmX_8uXU?SoXg=FcQBf%$Zk^7%3;(31B7I8$*HeUfhO8q|>N)_&mH5Hn0M>$yBGzr% zM}A(M#)(xt^TZf_*?obv-&>ZyxRbid^ewl*h8o9BTmi@pp_F7DiRbG<(+@Q1tWPEz z(AJTqe0U*~8!CCMx`5N?VD&f8(%fE%4ZT6r3vz2^9f^|i+77s$#Pii{3QEM@gRLBE z?jn;77+;$tB*m()XR+qB9gMH+9&`(Az9x|n*KUDSiatl;4>E)|m5rb80CGUJTi%;MBnF&>0HyuI|X@tnt93Vsr*HidX4@p=eAvk%ahoY=y_Yl#WVdmsNwL4KU)W{zRrtnqC5 z>0efEjPcRyTX}p`=Kv+t#4*_DDnP7Xiv2(n$f2cFhD_F{H|ukuy_c$rBr~UuqM^2k z6K4cVH_Yeoxl*DqAPW1HP+vX^t_qRWO5^#8$l5zUYE8uN`_6LsL?=CIkH$%5L{zhE z{Q@?v+)Q1n2dNARVbD56=cL#sfG`XVUivt9Q6C{--=0%wX&6_V;*Euk2;uS7S(ioc zPi4h|zp&0xd@n)>`VC1afLfp)s0Iq|gE6&$1loZU0vHaYfaHC0#{G`i1ulupbMU}y f`2)Y0JdFPU?f)TF7NzlF00000NkvXXu0mjfCHgWX literal 0 HcmV?d00001 diff --git a/flags/language/ca.png b/flags/language/ca.png new file mode 100644 index 0000000000000000000000000000000000000000..f7bd8fd764606059f4baa08e6dec6f3e97f67cb0 GIT binary patch literal 1140 zcmV-)1dIELP)Ff48+ zFvomE4PnG3&A{nM*xY>+{_w<`jMWaK@a* z%|BYL4g;iZ-F4$m<;(h6C*)-f&nd8HKr!nW``I>V>-VOI0ZbJ;yZX0o)?=psP0UN~ zWe1R76A*U_xPaSegbX2wuM0r7a=YYTAHsvxG=#$hq>bFTz={xjn`m}{<<(4Ih(I8N zhHrZao*4pD-u1}#tb)v>$7Iuaq#vtY9FCT=rRtjHwQ?PzCMvPKpcBGi5Y9R|oQ*ON z%;|_bH3dn5AJgY#xL+%0ld1Q+A>ZtQ|ArX$3N`2epnTl})q8HxJ_2_OH3-@Th+5}| zrojo9mjp#^#G?DFAvI=TviSmZCl2I>0dim5_9OMuMm=Jk+j$4bn#hOLkcx?O?J%7A za0v@gR`DHGUZzKi|1I7D45Lp&s#}0@a|cY#bsRv+mUe1GNhS=Uw|NK9-_C|4Jq2Uu zFCq7I=kS_4edT0B$S!6ukGq=2(t#@;8G9gq|<08KL7dxtyWF?B8|Dm?IY zi7{Ck!}cjFJy5^zV&Cww%y@)c1ftgZ5!d8^drF9&?pL56N&~qd38U>-kk|Sd2T)XM zrq&c?B0ugR?*QpHlR(aU3cvr*h5T=ia{&3ze@PXsGGLANFz*1`P7TC~aTvMUjiO6u zIe=x)o}pIeEyN3^BfJBobVNa%puuo=ABwNFZ~%)7k5fx>7NTNhJ?{XCZOjKQRt+n4 z3nkrV4j^-R17$R3VaIcgyaOb(_#jd#F*G=c4VDWWKx*zMlunn0n$mXUt!Rc)72pj( zbIJixv;qUSttcPt-~f`1A5rtQi*U5+Cd7enu&m%W-T+h$6A;R!xMdr`tHYN$fO!2u zDk0H`lkfJ!>$YL((u<%QNL~OGAKM_1O7QdDQM_U6%*R<7LItVsU853=h4#D3v?WB}y8 zeh5S&{4_Ozoqt(afE+S@mqnt?hFHYa^@~UDuveO<@nC!eawW5D(N4&F+>o|%h9Xc# zV!T2$UYA)YutsK(hd%J$-#E0gp&aZGDWbxb=>)?^x?73q+awlRg+q?vK- zXlkS2MB6bT<0M5BoFp@8l4&|RNkzpjqKgn7g1lLleen?8NAK?9QUcSo(>COfo|!Y> z?C$x_`JHp`Irpx_Jd5;yfG-2Uyh8YbhfQhd7YO4O>K5wq1yq{%mfHU1SADOA{C7|_ z&mB_v+@uVamvkt%?U>CdedeiQpCy@uN`oKXfh_ ztZ0RXR@o>Y)=UtRATj3hvPv+@@5{ha*Ald=tX(a5?Xw_4P;#sEAhtJ8qCIdt#|Mzp zRr;7wz3CC6B7Oy#0zf2;a7wEHco7QoE(C*R-w~_vt(8okzruC5gv#z^{W=v2kC%7P z*@JekomvG8!{;pjSjk>2Z~u`chhE9`1GE=!H)0{|_B+l+}1Y(jCl0=9|uKO@q7SafEssOMk8IsM}n^3FrNp_<12U4%D> zkool^bUVsORtSI(3-M-$k)BwEwf2V`kH15{;NNg2V@?3a?g|Fpf18YBH35L`@&cn= zt-*YymbB%MlE)Sjf{QQ0sy9;-)l@rUPAPmKj9n?7)}a+KMde+wJgzMKV4bPr=J)|T(%yC zric+!F|qneET&zk^;L}Y?I*-)LZuIYR(-I8cA1xLVlI7kDM7z-8H`@sz+iV5`rlj+ z05m+AX4Go6gsnZx#B@bjDAw=gIx!Nyr>DsF3tDRp#1(v-7|o;Djm0Q)D{(aZ1VzqE z{z{C;MzGkfCMSOd>DirIk!z+7+!)=D3-O;tn89s0gs{oclXC|eHUrUeG!s_Ew6*!r*#F(p1q_2J^ zfKPOJu>XF7BX+eoB8t-Fc$Jki>`eAzj@LVC{Qt^bkTTuG?;DDAS~FL#hs6uf_59@#j#Qf&EDAn zDf(>c2Q56_)E59amaZ|biBr)Hk{R*B4V?mcD7zFSNyfDJ5_N5Z(HP+>Gzuh{uGEd?~Kw h^Zv(VUS-|^{thKjZ2v&XFt-2z002ovPDHLkV1nVNKD+<` literal 0 HcmV?d00001 diff --git a/flags/language/ce.png b/flags/language/ce.png new file mode 100644 index 0000000000000000000000000000000000000000..ed66b00d40b2fbdf4a1b81581b9fd1b010496c7c GIT binary patch literal 792 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 D@N;I$ literal 0 HcmV?d00001 diff --git a/flags/language/cmn.png b/flags/language/cmn.png new file mode 100644 index 0000000000000000000000000000000000000000..3d1bcbb32d049ba1ecbae0c56c56a69408ba6a0b GIT binary patch literal 1394 zcmV-&1&#WNP)T3%4Fr~ygaB6-M81P$IEh7K3cx`8t$m4GRuyW}ze6?n_WnX)X65Lc zuk{6XzwlR%>`(6mtORY?^9=SJ`$r_E4}FT#ciyiOChCUYc==4>&gYRi+kJh3vfPF_ zCM_bs6b^Nb1!Gi#IV8CRq^z;wTV01l+h-_$_oI4YV%^~DFLf2}Xo23_)8F>}-hp2?Cxc?efK zJJ8VjwM*dS&aGPI0}oT#jkp;thK$9}3qzEm<9f!Oc|ivJ*1^S4mX~4R$M3MQt=%Q? z{r1gTRnsPz<6}2f;shdjscr7aAl)rHA#zIdHu`{4vK)PrGIshT7&R#C~sQb5QDluy97RoR%lJ7#S~xNSrBawI0p@iNHSD*0a0%h`#6WKrN9J05xtjszzZoEZ6a`- zs>82>4H@vRr}~|w(5=e_OA~?fDa0v+WA?0LpLx7EH9CP8dxl&B2Wo=a#*zTlwCOA; z&krJ4o&s+s_YUabHDvhs43dT)e%pi{k--FTKB;@fVMSnl9Ag)AQJkBG(yX|5tV>C1 z=M=6I74deC;ncWGfINC~d>VUWafiUV4^|X*-Cso8vfZ;blwW~h5fON-0Bp07*qoM6N<$g5^V# A4gdfE literal 0 HcmV?d00001 diff --git a/flags/language/cn.png b/flags/language/cn.png new file mode 100644 index 0000000000000000000000000000000000000000..c4914d01760060f986b8df6c41eec718f1f80d47 GIT binary patch literal 773 zcmV+g1N!`lP)>2uB|8(i723nC(mN&@D_7x7MSeTBS%_y&1}+7MC7RprH;b!RsiayEMQ!W1;a3^QF{*RQ&|242|z-P~$int7m|TsH+{fB@A4 z+mAlH{rH(b6`=WdQ1?E%^RfqaRfL`QKX{VSox5+q?CJ?_Gb!e_s+!pB4jk2r}4b2HH1)%kStF>T#kKZ3~*Npb6(d-EGw<;1G798bd z#RiC@eZ8`HQ|LaQV|l$uSl?4?fpKk6OF@SoIWAm%qu^gvs4%|)^{^p+Im41Wb)ryy zGU}0`LjqYZA2jvUF#`MzV11+#?9>PB*$Rl#^-A$qs4d@ zpyZ6ifDQw**8~lP{+?&+or>QVh6f&}Q}593DYHE#|KPE@UJghMl$@s#$Y@w%xkozT z@h6V@n~{E0+Upf7&FEyc8>~8J2bK9jW%zD^r8ScGXCL^&5EMr^e=|8oFUa-LSg zQjnp?YTXEc6QN8ZV0i_A>Sh|UT23S|4@ec^-tS?oHX8|n!^Vb09B=^K0A2wW8)!@o zNWdZR&;dKZF0j3!&iJGw4#2Tn<-w)3<(K|r^1}WCH#fZomT;ZT00000NkvXXu0mjf D@N;I$ literal 0 HcmV?d00001 diff --git a/flags/language/co.png b/flags/language/co.png new file mode 100644 index 0000000000000000000000000000000000000000..72c1331d0bcccfd67e529db71b392a0e5acd80db GIT binary patch literal 1238 zcmV;{1S$K8P)Poc1vL3^k{!6zSIIq>PJ6@FRVA%L3%a9aROzJBut zepIiT8F-4x$w@RfH)CL606RN7@bK_JSXdYm5)zzWS$7+ zYnWNsC4f5w5F!B762L_RB-v|fYEV#6@YhyZSqa4~q0{O3J(<71KRP=*;q2^;#>Pf? zdwU}|I2f+3uJHBsh2ax3N=;&Z6Nm2&~2cBqrd>nm!eQ0TE!S?nx zZwpysVj_x*iy46OgjA8{xfH32*_3(f=H?I|AJ5Vglu*o2dbDaPH3}XS6ol5+RtBUkBDn(t15E%v{pfvk zbUifAfuI0){51Zn5rDMPt*tFYL_}bDdD#&Byh&#RWjzIuI^nd)nT(7K6M*=4LQRv9 z%5Y@jHxmU2f@Ci*FGp!yZOZpQ?1aB#rY z(A3lfjYflph6X+hva+(cYnoMHZEbCW+M~JSSUUA+HT(PfP^naypPxr`bTq1~tKs6} zf`x?zKC)wDV_BJtOo}D8n*l>GsVcDGh%ve7ojG35;n9;JK*lX=yp8WglnfST%7?M;3A%i*e zy$^@~lMx6^Oq@Er;3W%y8v$t8G}mWnaz(HgJ?8#R^FJ?qzvLPQ1_sddpdB9W^VT}O|~=x^Y{<3ec%WF<^`zVWk&2?;+4iXkH&D-huCiRdr|8g*iNZg1L2 z)ZMGYI-b(U z5acOA-nl!dz5f88AN>6=fZdtZs8)ZEkCXO7z-2?gV?xaT0riiBX9C}`-(?KK>kP|V()0Ky?^@kB1 zwG3Mm4j}X6O-MS@jKV*MS^-E5s1_*4BJmG;%nr{*RLmNhcBTh~adOs>!}Hdh!-WIR zNI1?%MMV{y<$S!iH6Bh5BG@v&Lqo@S2m~Awga%MOdaxKqFo-H*zAd8Sl97@a120!L zri8@f#)VH|Z*Ok}ATgkd^Hb0Oi#J`yrw6vcWsC&I&XQrV794pReSLb!q$2qG`XYSE z60$jmmfZ4anr&fgE3g7kMzBnJ46?aI6*k^WNJq@tNc?uP1gd}P;W<|N9KfQ$9A_C) z-Wi1V&Q@fFdBKrHa?HhhnCd1){iV-IHc;@M7>M1mGhpog{)Ne4Q9vPkh{1twusC99 zJLNDK3>Y=a4!e?$qDIqz8)p+x(V)lfj51t3w!#X)i9DuSES2KeyF7ZK_$xe==O4%P zpg>fVmqMXXLZS3R(dC;Yz1pn1nT+%xbKqjv_8pkuqJ_450$im{L*?`dr9@j7sRv^m zp}DU^+@4fi%8f^Hc?b69+{N{r2rIzt+Z8Gg4>w2{r9h!%=RJmxQ+9iiF^CdFbiw!GOLO=MODHtxkzO`#(ZgS1%YWAwEgo1`dYpMv>8?by$JW^8jfoteNP>_!mK&@6201twEX9yrUy9s3#|3JZsIIP^3hw}38z_c+V zCp`_5CyyB>{j4`O;7H0YBp*7C>sJckGER=hHYwg-`YKjOyh#9L&}dp2gH)m&^@Y0*ORAU@%hM3Pan3qzrPeq zBR|A%UYm#?v|19ReaOyAM0nH(@b&Ybp$7lBn<;#kV{6uecnzKeA$G$Tl+~SP&j?|E38|+0L_h^kja^(4p5*T zYcOZd94kO!VWDc;v}xc`Wmp_tM9OFj93ABl+Df2n)xurj4RvK1oqBIATZpY2mRc^7 zq0QFEr9n^iLoDK;w4xF1PukIM64L-_*@dW5*O43XHLMPQ9UUDVsL?(}_k+8bKYzXz zAR;13#T@I6!<(%QN9;#;@%XWhq*E6jw)SGmq?e(-TTRau7i57ew%&ARvzab5TRuny z^O^GkfdEc25zb#O#`O!CP)?17sizhJ0Rbq;Pa!JQqKd@8>0<>rd2%}q;LqVKuaxbKU>GZ@N5!293DKUFumJZ_Q=!}2th literal 0 HcmV?d00001 diff --git a/flags/language/cpx.png b/flags/language/cpx.png new file mode 100644 index 0000000000000000000000000000000000000000..44721743aca140cb1eaa9a4183b9a45ff93d9660 GIT binary patch literal 1772 zcmV43q6@b6D%xZf)wr9M?W51xA)!=M z6{4V&O{L{WfkctOQCmS9A!t?A%^ove6DN*$d&VBeV~@wHUaXM(FxAsPWqe{e@f z@4k26z302gBFZ{%S(K);l{6 zhn?7^ekzW=x;YIn{Nw?TwWS_8wut?KFsgM7EG~#lkW7Ax(3zxAw1}39uN{Y)WyIDb z6YNT%#p53tKv9h7c{xOTMyUS9i44HCuYbvtbMHnHUSR=)PRSv$UTOkeEywpe2|X%A zj+4?7YYWL3gid4HFLXU|+t|NqvLfcl1`I`|g#I>2-OInv0Q5ihu*dGMA>s3rzeUDe zpCr;>in+l{d{E`)xj4EM|6n1>n7$U=ZzOObj+Ti3TjgtWWn&s(v3rPyS6|NnbRXF3 z$#1M8GBt#=tw4Yj5*WQoe&szFO8v}ToL@8Xx`*qTJT*Y^j(p4&Q)r4NZ64PqClz0Nli*9G z%!EpD92~+LTw?lcBig(%v&&o!TWuj$?dl$*w5hlAhfVD_t=y)y79ak~{r+2tL6?^^Eu3u#ESS_h?o%Kh| zgx~4If1&2qPQg$a76D1axpj(Qr-`Di%PjTUC~(J^dC`esZ;(jD!dzbw4Ub+Sv8)gd z2+!AC;!}-~{h*!f&H$7B1q=^F_{^EX48U7^T0HH~c`*FdPH0y-+R14wU&teVZknYz z2kRaRaQ>Ng)*pT!N5Dcb|Fik-)(eQJ_a1Y$P~B>!w- zR*&I05+$!&I3Q833y=p-4`%?pzp3;j7NS@QpzNq3`4cPpp<%cjXCahL&GuZnj#i*# z58*hpK=utQ%GM>KflU-B0la?Ly16^HC2(V7o0mZN`V82xgLg?S5gyYskoG#}f+5vm#k z_+NA4+!kVKAQw}spP6?RYIi1>dtoE7k|05m!0NtRNz~JY>Aqboy?t5)t=)`0(?@t? zfVyvQ;f?*dJmUFN2H@oyr)S#}778UFu~r%D@oEx}jH38l1m^>|YHgf-)`VsIBy~H( zc)JX^5+;031C>iFob6C)e?G#%;|+ve<06rzX!xm{fnN{Ow8w#d>IMmsZF_$>j8qY& z`N;?!-)!eV-4fFH^Z& z=j7r0IdtVrIvqD0E6?exZ#AQ;MlPNUW0r0YZK_2g8Oc1Wt~U|6A7rDKFdA8WJeBc3D&nw^z$ciIc*K}Qx(n_KvcV9zph74v)PyjZhQKcAgfFZK14Yv^HQlB$ zGd3MH2Ay1=rDeloSdGWvIwg&k53o>PvTnPukAC;AY^}h>aVGJP&dizJ-`V^7{XX}5 ze)rt76o%QT{{fx^fMJE8H+R18oW}@bC2l5eqBr!iSS+0k4fS~Tw_2^tr<0S@NP0(q z0&sOGfWAo&V?*7@zW@U0D?>~s(?v4CF69Zdv~(dXEC4C2w*mw!R2xVG=QL|r>DLT;6dBD>su(~(th!_(gSE-xe3O$ zo8Y>Rfyvl`QFG=XK)sjwebK=}s5EM%g(e`zKNMLKSw8?57Z)J|U^E)*i5!FGE+g|3 zs7e(Mv1?iRX#27p93CGQ{a?&;WTiL=)i>GK$v?UkuZxn9ymuuMr%144{tCOAB<*l@ zb+rK)35&{=gF9Fsc%c?#BEBYbi);Ja;|!*y9@>#^s&8s;q; z2LLxWHyeOnudgR^umbo6$dUDCJPOt%*<)SboP_CCD_VE&gZ^SYxT7b)#d|EKXwNvz zRcp^7_sA9mj-H5fxt}orB<*l_ceerPbh>&%!+L7Rj$4eNXUC(ea=ks)`tfcUe*P7{ zYZUl%w+hC_CYbN(F>dKXSom)6N=mR_8@xFUt-21J&fbYI-^n1VgU{#N0J^)o>v=pL zs{)d!_tDweg)ctOg-8@=k6%g5fY0(J@RY{fSLGB8H(D@OzQ|$zTSS2a4c}q8Bo%Ap zmVl@ZPft%FB@_yCHf{P)Ieof-E)1+Hyck`C#JOQuy=pEqHk7H+ec}xG(?xV<(L*-w zAThrymHp;^f2|hz>g~u1pNFNP^Ptsg5gi?E11Kr^Kq(f7u>$nffr7PPV`E7g%oR20 zK6Vy&PyPU1Gs!Z1{06X8KJ-^dtcq8ygW56JrA?Dk@P%M2Ln| zVD*|q5Qq6=L8_P;-%ihipK1sG*su+4`^sVI=q6DojQ{8z@G@on=Bt}3;6KtA!QTF8 zXlOuOT%3>+2n0EWg~dvVBpibkBifcN`wG8YZo#ROtNzKq_jB-3WMR_wViB0d{HiflWAr%XU`(E?_C z=ZzKc2o8e#43auG7xdn^iH-xuz!inSYqgwJNgANGwidHz&lXaILaIjtE6{cUIbpO1Rl#4<6(?0!!3=olukA_*q3SlZe~h?$U?YC9d%Y1&R| zCetLNU+nZU&EzuE)J~MdP|_Glq)VVeSwSw#a#>*6WiRY~dzOvqIF?aARP&+F%rkT5 zJu~m~d!NgB|3}1KHqrk9z77C)6(Sm3`lUN+Pz9Dp8F=IL#RC)3LRfWc~l!(ZWHW*+`pM=fnoC633gUDpE+$cbP?TdeEuPR^9 zrOReqZh>4TWlPaY)@7&O6yQwWGCVpROHRIt**)B{{TskmSB1JJkG8@%+=R?)>S|eGhek$57&=mid}Ss|Ll%*ib65w=JY}-r za5&KG^)Z0m^{*MrAIj&-z$CLm*Uo1uxs(c_B*ppne6@C7n1ZQfJ&8Si46Rs=uHhIN z_bkH|ieNo|mRX0L_)#;G;eHkzKFX!zWZ;U41qqAjJoOv$Hf@I17CfI{VAWeq z{H}5bji0n(wOUC@Nr?e$sr`jpw8Kb2)qdVN^lhH~d)r)j($mvp02}uoHx?G;FlwD4 z;1AytfFcrLo3)Fj=5{=m4#HcvVL$g5e9i!Brwet%3v54joO3^JL|^hvG%GR~KY4(>)iL9m+-$5zXCdA`M$qNNvwA&o zJ0C$C3NRiKk+$_=Y;CQKf7C>B*$(VSpJ8Blg6+F%xY}o8>xGsWKtW}rF*|z|wrLMR ze`Nkshl7;6`zW30CG_R@Vlv{wEV3fAPvH*9+3@Ob$=OmyZ)XRpg<6cKPm-Enz=(AM z`-vCv_>|BcC37jv3Rx_|}*`w`GvZPGbzfu=V@Kw0kr0 zIzxnl*JnT$2~j@T&9?Ebc{4K+6rhgOVA#Bi%b#4p{_CG1-&o4JCl25fZusV>_mVX0 z052?%C6b(&$Um(kRP|hr0W2>)Xk3zJATS%gZVC!RW9+~B8A{jeP5YupI*44QB;pFN zSSg`5Bqi_pqloi1(7*3tRN@HISsjazBh_l?a83$)n_>Vd4?by3NHri13D>AMfLu8B z;r4Ikpo-BAYPycIS8XdD}eWMN5Gbc)k9so4l8D)G; p5es#~_O+1Zcm2oYuG(D(_&4{5nEw{~z&`*0002ovPDHLkV1l1AGClwR literal 0 HcmV?d00001 diff --git a/flags/language/cv.png b/flags/language/cv.png new file mode 100644 index 0000000000000000000000000000000000000000..6991c96331513957e68cfadb24f62cf2d6529114 GIT binary patch literal 1403 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 P00000NkvXXu0mjfW2lr~ literal 0 HcmV?d00001 diff --git a/flags/language/de.png b/flags/language/de.png new file mode 100644 index 0000000000000000000000000000000000000000..58a17ca0a6c0d68d0d61a2c0379c90bd0448271d GIT binary patch literal 1518 zcmVds{(C|n>TOHHFon#N=lBDmX_l4`AlF<1#sB=u&6=$LL+~-H_Rei%iat9^;|x=mAo89yS9wWoe3!GEhd>0CQM+g1I?E-X5}lEJTjJxg9}j>k4a`$RuO@dGD^Vf_38^3E~Kfc$pntKH&Olh zPNq$QloaTWT|<9=KeP6}&YNPe-f{4N_a$5|7YSN5fzCs0{Y>%j?6Kmb`I2kHO)@hw zGT60i7gbeNQ39=V=IBXYFY3%06L^=ZWL@J$d$Q)cNyf0o`6@ZD|y56J_mn-#?y+Y9*Sp~b1w0L>kt?-hD%?5 z$>^GzD1p;6X6UJfg{bCc6L`1%ARjh1p^Ld&+C+1kB1x=z@rtBqIEqOUHxCA(r&l9! z7)%_mcx++{#nyXphumfYsi`#A)G+SQp(ufdf&%@v>C;iIttN0)LM>ZQUBEB3@@l8z zYBzMs)I{_44k@E?Vg->B>jICgMWGxIP)8J{@6ulr)1fHVRA* zDwcS3Hry&Ts?H~=DlN?+`wx%xP~^|X-S09J@Ob$7_;CtOoQM)Qv^7nil#_u9c9_6l z>_5%6-EDNpR$3~|n*|?iQS3h{KJP=!4cUqCT&YH*#A>Y$cBi=D-Z+Zp-HzKZ$sY;W zhI8zA6Elj>LW|~Di6f+sSWGgp#BliN zCFZQS93@cojz^z)rw0`tFkuIRA-eneB;v!wI0gu7K@R)Ev|iOX@SSwB9Pxj$V%i-V zZkLVjUI%FzRzh74Tn-1<8=A$z!5{p1pY=xxRKDfb?Ez#km>OD23qwMfhRCB-rerck(Y_fkNlU$B+~F6>|g> U|8Q(k+W-In07*qoM6N<$g0TYLUH||9 literal 0 HcmV?d00001 diff --git a/flags/language/de_be.png b/flags/language/de_be.png new file mode 100644 index 0000000000000000000000000000000000000000..54b728d292e8957fa11bf1326b39162e9dbbaa49 GIT binary patch literal 833 zcmV-H1HSx;P)H9$o(gKx2E7W3yfbI+$7iwH+B5p7y>c*J(ADAX28jZ+;4GYo47>yef zViW|UEZoV`43PyY1e+k#ObN8Kr4QPU_jb@iX-!+9b>T_AWL~-FH{U&T?->SV4(30= zzW`8H2%22BA+CflB2j`UP7@kF-RSWt7?uz)kTKaASW39*UbVg=|8(I<*2}8fE+ZY$ zJ~#MqPG4(*dQVl(F%n|>IKZ)}RjTsN&nT7Ku0@AlL36if9|dT=)z>$rU|FoLt%1qm zfIgAy9NNN^}9yC|+W_>nfL2zaSrZYnlfM@s$ zZ)iFW(da1}prA!`MTgb7kErW~OArmkJ5bOfzM_Zc>uWf=KS%(dpLgS}L0Zh&MUjP&kf&o+0PtbYwy98jf+4$z>X88U7 zZO@9LSa^b59&Hq=!C=7b>@3`Fw*+9ZSa_?|iclz25&*4Mi~0F^EG{le049@(H=E4} zhr>JSbgodV)er;$UawaIFdB_K5n{1eNdOcI1$;gql>|U6;dMG4*4Il@gmSqY!C;V1 zc?zJN5KSsc(~!*Aw|6U8(tAXsQR;YVJ8tDTZi;9}3+_*m+G|LEL6mAp>_kqYIwIOT z?RH~I-!e)>*ZnW4rj&>_gIbiPGyc^P({FzHpJ>a={$og7g{LwwL=N|4| zXYFsVz1DAS6y|s+{|ERi0L&?bzPR(v>GUbWXfmxbE&77qn>KA4o{Qb@-@o5S2Z+qi z&%Y!PxBS@p-lOEK>BM4#^HXR3>t(g>UiyUp{v?eC&fIo^`9Bw@ zprBxp4zO(F#*Os?L0w&)!(yb2ggXzobGF@eLPCPRI0p|NjMo7Ya&vRv&&$iB zzP{eE!|@|5_OImOr&XL(jTwu^;!ybRGru5sWE(EW;lzio>>aqlQ;%w_T9d=Iu@&rl zWgC~Sg2`FIYE$^@uWhvTXJGSu#O^yjKAytDLW+xv@6iG7S+{PTdBcVcG&VNcjZBjj zbhK1aP^R+cUX4mKWTt5x@7%@o^fW_%|1p{bZ0{I6_9b}at2taAyqgEYpQWNoVO1hL zyhR~D+eSomIy3H>cHePvaTFC5arp4z#94r>tSs~T_3LSBYO))-&%Djqv#0pm36+;# z+=08x3QnIz)MSxdD)wnQ6|>&Zf1s)sa9!yLt278QwSoKYIqk<8oleI9o-E zcBrd_@4O_>ic!0#ilAdG$Nqa~a|z%7IXo$m|H^|V&iCxF`;Ll=qO7cpii!#Ypl9`J zvtMQ=T1SW7sM_fSziY1Lohp^yAq`E_@biZBWQY!jUzNi3DM!xcNQ9>a@c3yM9MQoP z0(}*}m~P{n(MhCQSJ`cqhzJHMDhN7y)Bxzp$S?;!^blHSrvt#Pnm=^b(bc8Wbj8Mi zI31n1eLd?@&@{*2ULMTC#)PYchT3={EP>RiREK?77`?}i5n5Sk0JNv3nnN-&(7L!iko7VvZzSr`|+Hp$Df(>r{n zA|8Zqy>NOSp37)*}d)#Qf>^pz0)?Jg=}wL~CqZ5da%Go?)b1UhDwy@!{fy3nVo+ z8vxZM5$0t}qR=cOcB6A2bW-}(HCiqyD5_oo3a`Bkzu%)#C>3zkN3wp@uyvJl4;A)r zJT7y)!e)uaun3e@`d!o_iNM-mlJ5?4062T|;e}RGb2Mrtn zsfFML(k$fMUAp8;Si*=i}#+7;OSfw z$?-7`04ER3^_^tobsGRje;Z(4kq{^<<4Em>)-jG%_py1sIPHUwXn11_#Ab;e-67KZ zq$JzT($hQMk%J=NgK)82#Al!Mq-KHjhu<86FQf*r?5_Ea^HSXn?LGsbVxN!s zzU4k>wi|YvY3ai~{e6tc=RDEiI61;0Da9IT7tc%Mb8(Ty+6~*-NZGNxx^t^UM{>XJ#wQ(mADHiHnSCA`cb-+kPd*fhww2uHt+N*rIYIOkU7%MK|ND!n zzDr%gq&{exy_Cw7yhfD#Q@I)c`$nwS{NQKeT0ZChn9S*zbAW#V+(UK$2XY?q00000 LNkvXXu0mjf48ej& literal 0 HcmV?d00001 diff --git a/flags/language/de_li.png b/flags/language/de_li.png new file mode 100644 index 0000000000000000000000000000000000000000..93cda20ba1047a7c33a3072ebfae92b5cb1bc4a9 GIT binary patch literal 814 zcmV+}1JV46P)9{3-Pfqu2`XoZZvK+aib=pF)WO6 z;d3DybYWsZOe6v76iPIN+5!#IKwC;Jr7eAUr=t-Tnwmn(!khe=S=_njyZ?QhGZgaN zsQ&=l0U)msd~oKcL^*^>5haM?d_bkMP8)!T$&9#Ao?YbCknoa-LqG0T@c=q!z22!l z-IdV*$w)XW09wkXpG(iWp|?8qJb=Mz(b?6fx)2^4LfA8jgcs00e1MqC0nhbYP#E^C zvw+SD0I4KcQ!|#H69CR-J6PKD!Y5> zPs^2DUIJ63;l~#M;*l_y@Oi-$mu}ij|JLHZ1&B1IU?frjU@aKr5{n*)D=N1vDDOtv zQJTh@dm5sWGKdw5JUURa6HI|*o9uz1r`4QcZ!J>s<(xP`F-lB)cA)vpv;Z*hXcuQO zYRM5<$qj%=2F~tA%lU5tz}ub@uF*u+Ke?I{0MLaP8C$@S&P4&BuUp0K-=`vpDwZ1u z=mLEF6u|MWfB?{YTgDx%my=DimKy*{j1Sfj+Apo70ZcD$7T8*wB`nDVoX63r7$ri)UdA|e@b sQyKrNi1{<`-xg(g-hWK;+VT$Y1E544@GD^Q^8f$<07*qoM6N<$f?jNMApigX literal 0 HcmV?d00001 diff --git a/flags/language/de_lu.png b/flags/language/de_lu.png new file mode 100644 index 0000000000000000000000000000000000000000..9d38b8a15dfb3f59147c210bfcc47e81cb529d0d GIT binary patch literal 793 zcmV+!1LpjRP)C<=mJWMO|$Dg_CIw7{31 zdI%{*!FuR5h_E9r{|xdU(v;aL0QE8a`=7TC*!hn$bGh z^>Q++$b|I#yghFg#Q60Z$D-JfomBGBn|IJZZaOLfsvfnrx_Oqx>c$3`Jt~kT2*0nx zdOchvHpR&~`*8$&dXd@s&>>~3>36w?B5CQ+tOfQ2h&uq#X>q|`tr)o z=u*XmRS-3CKq$(=aJgPFfUzFIYX1imcD2iZ`6s8zioO)a;51!3lkhN#(fAewMHYs% zYsxENIgI7^A5q-hAp>Ry@<{-7FlT<1g$XLK6^vi6ZvjQ;=apB0&cC#@1f$U?1Nu5k z2y~Uu3S-h*V>bxC#a$m_+4vR&!@$LR{-gjtpATlUSq4l^O%apHM7Lj5Jn6pzyk0M? zR;vu~cs#^nv8W1|nVEszZkGXWx0~2(HdO%=6BBSa95P^VaFCRhm8l9CA0LO)>68Jb zZGGfec_miDLei7}&B*3Cd>^si0|LN00000NkvXXu0mjf>mqRm literal 0 HcmV?d00001 diff --git a/flags/language/de_sw.png b/flags/language/de_sw.png new file mode 100644 index 0000000000000000000000000000000000000000..48c68dece7fbab50fa716536005ad091f7ffd10a GIT binary patch literal 897 zcmV-{1AhF8P)NklTlr^5V&)2?vrUp1gRHgp>m{ z$bnvZkqbr=3BTGDWY8MG3Pec^pcGoVU1yn^xTU+@fEy2Vr=4 zm;zWV7TnR%0ZU6uk^y>pdU);L-d@Q7dc7WohK9i7@lXJ>*^JxT+8_`JNZwYb)5&W) z91h94I-L$iMn=Hv^-_TKRx?KVdB6&MF3F_W>*2LG%ofSIh@IiN6SdcI{(Y04t>x!h-}ro|g+{{uv6ea>a<*5J|ISTLb|%meT_$E*Bmo z;YK+*pv7+~!184SM&U3CK~%B>?Uz-)!=g))b&-;sH*!Ce2NozmpsW%r$m-e1fn+1v z%^)A3P$L~cr38kApT@h}USLHX(^G3HPs}sD40LZi9jXwyt?CTU@^l2fkH(en2X6pMs z*}Wj>NC-lvhH2kdXuY>d0lZHN@QvC6U}F)<#!n(hrh?aVTVTGwMFBjIvvG4>4q2V_ zLwF(pq=fO=A7FW~O97rgQsI^c@-Ag#DV3v)bVmxIXD*V#*i;zqJd7Ly=-f{E2ZXrU zspBh8q=D$-utry1)0>{poain}LIw(RE#PbAUqz z_GX5Na6X?ynjeox%nV?kft{*SYeiK<0G{;PWgw|4(=;I>App}fT>(-CP*vu6rq&t) zFwgT%?HfQTh0Em<0#HiX0(=wU-8kYw0BIcgEW-OMz#@VV13pbLXK)x;R=;Hcsg*X4 z_&kRxAgkXV0Yvb=$4iM(pzm)d?gr2TN05f$89=R%3PgFJ@1Kp}tI!@se2E!B${G17 z@MQ(4RcOnATaXEPMXehTC~X;`#Q?ZFBDw`|D|m}}3zD}jfU44#8TXjiFg4p;#V(>W zo4{Ml2$EhE@C?{u#`hm}jcPGAbT}r>uZg$- kf70rMyT$Um|CqegKd&MPiB58ue*gdg07*qoM6N<$f{tgqGXMYp literal 0 HcmV?d00001 diff --git a/flags/language/dk.png b/flags/language/dk.png new file mode 100644 index 0000000000000000000000000000000000000000..06b3c0aa0415b8f665a5ec989a0fbb154a4696ab GIT binary patch literal 1375 zcmV-l1)%zgP)Ow2x!rgrW6yQAc`>x=pRNUMvS6?cpx5uKQIJi z)QDG%2?=MA8bm}bAV+B!Y!%qbcG6Q8GlM5eyCa&=u?fPX@DOnV>h=p;c?hN)o_FhY|eZ5Ez3j{TXoOB6R2o zGIwsBB?7wFZD5V}RYCB!AZ)V2xcDv+FgzTC-&>1t-3f5)`)=5B7eb}h zNr2A|fYGL(0?Ltt!J4Bmy}w-obUd-1WtLQc^R*#5#R+5Oo#exmgX4$c{pv$>o<9nX zOMs^Y$YcswODo}Az7904B7hirKG}~92uo3%Za0h@8(q zkN|$apEaA!;v(Z(Iv~%=6ak&y9f-$b=xV!$U_gMD3=+~!gvsiJTCGN5;gb^JqrEV_ z_;~s$peO_a0oZId3E=g5S*z750u)Lm_`#3}xO8kS&II#tEo{XAXMkDVk6xJ`^K?y^ z5qG2bp)W@O6JJ<+LxA@7b~qdk3E+0SS-agX0+dPx_@Rgd`2H!J4d$SW&O)}T6PNpP zP+;jmOMeFLv3Rgx!S)dV^Zc3{0{DDBp3WKVw1oOyJ z5#auI6Keb>T%~j2m=J)w--d#TZJ^@`l-q(Rn*aL9BBbk1r@sjGI<$SqqO|k01gNu@ zv5xX02%!*!^2K0QFB1Xn-uH01s~vPA0e@fu+5M6*OcFp1#V|A1250`W65!)~P}HAF ze+Kk=v>v{I(%@MMaAwK^);Vt)1oD|tRZGFFsTKi)eGTYr*o{wp`4E(H3?Bv4npFEa6K%+rxts8T?uLFLv&1ap(Qy|3RpqD=gX6ya%wAHm>ZqGRhaMCh|wda~3BsnA} zyCBatlSHNVb_$eEfk>GKjPqyGN+Q^t56vkaLO4l&Cx;PH#DDQX6%C{hAO~GnQxE3$ zo|gb8CeLQ=)(i+7H?}iPL3?!1sC$vBRiv+w_JCubNdUe9+|gSv0*Y(Rvo6{g9eEpm zOlMk7LHEPKQTM`&R)9jTNbEvbzEsEETPg11Fk hKJI@^#`PL^!0+{Z8UL>BvqJy?002ovPDHLkV1k`tdwKu> literal 0 HcmV?d00001 diff --git a/flags/language/dng.png b/flags/language/dng.png new file mode 100644 index 0000000000000000000000000000000000000000..5d87903472f956305b15911796a22eed5e5df2e0 GIT binary patch literal 1449 zcmV;a1y=frP)3fiUwj~O zd4NP9+C&i*iQqy6!zP>F%2LF#71|Ckw4F|8xife9Ja=v}l<7kYN_p@kCv)4(ch2uS z-~XKZ4Tn)S?tg&$0bo=itmNW=3-=I)ksIW?mCzr3dtGeUORZ)6zk?cjXMMm5GwIq} zuV3)5TAk0x-S#&n7DFb?BnLCW-4#UN)-4$K?gx{t5Y>@4UpX0A@gfpCn!&j|;Qc{J zVL$ZiJd8*?jO!iXoL-3I%i*3g2HG_q>3t``(uom6a4s*rjZKJc`xGVbeLT%tKBM!E zmsVuMmpI!M`$- zs|2IX#kOdqgD6Ex4H6_XIi%fb7!Cu;!Z>_IwAY}ED&dA$7=v{(ay$Wn>0l~@$E6}| zXgI!eDi$tXf#~j^FlED58{pKM=atfhi=ZCd4c8N4xMyidDg2BW~P+61&@3aM@h@m>L;c?@dQjqHgmyq+wym({!63qvn2ma+5sHX&|hf_mN z#H8+pKJPpB7fUP;u;7OyHo*7uYm|qos$ll@fMY`^|401> z2hOVZz|J{y@b@(bk9d6+jxrstT~0XqZwtZk;0lUyrnMD|_O{pn-#%WYJX~1`vp+uU ziFVV3+}mm3S$0C@H0TW}$dfWKJ|6?e5Fweb0H@p9@Z7;x8{o^jurhsO1w@Soh-3K4 zZ#7e}D`apovJDA%r}abMQUD>I|FTHJgAF**jL%fUCvS zV)GfobNdiG#lU^$g{0<-P&Gvyj&$Rt)-D@hLuE*rJ=PCK9RSl9dG=c@?WcjXT0r6( z4)T=@4W#^d9JTb(8+};Y7R>?7_;6yNWln(yT1JI-a}eF3F`l}>9fBv(OUZ|hCCM%v zOJwodrC9EDT)n>BcajqXd&J$1SJh4wZ7_`be|00000NkvXXu0mjf DH?6Ef literal 0 HcmV?d00001 diff --git a/flags/language/dv.png b/flags/language/dv.png new file mode 100644 index 0000000000000000000000000000000000000000..b1a4dd00132f3429dc72180f0ae110476208aec3 GIT binary patch literal 1111 zcmV-d1gQIoP)rXQ>c76)|H(5n{nj*c{>%A5*ds-z-~Vh{@DB=ghWj z&IfZM(`{}-6+|ELlh?S6T&3qa9VT-F{`n1jiVZnq?tDB>|%QH_|rWlLQE%AO~-v<4SwVA1!u z1wbs1!$_qTaqn$SasecDJyJ@AuFis`vyT;2zrP3Xq%n8WI#U=P98L$!_DP5YLU?}}_~>02UVU&*tCns4 z1ou7sB;k=oWAIoVo2*7F0bpuFZFMoU-C7|>TFLEbHy2$U?ucfBq6 zd7u+E+Rk)k`Yr@*JBFg{bp&8>Bra%AKzU?00cgryPu+O$a@hJWvVue3e2U(eG@Qu; z#eOJVQ3SKig1tW-$LQF|tR0AbLyNU{uVK%ksBrxH)k&mO?I!?dvWlpv^gCd?FvJQD zpQ^&SXYb(*R-C#9Nn!CQZ}}39JuTB}c)Y*Pv?V*g#_H5u0uT|3{`%8cR$ER08delg zF=@+SA0(B0)>H>-!*Wi5eJeLZBJ@Uyc00zdU70pH?{7m@wdW)rNXcZ+!mwcUHJm}( zx0M9o#GQFmoH`lyVG}F({M`5Was6$a0Ok2*SRfRmxau`rHjmHRewW?8zY+H@xr+dV zNYSHfM#c|E2|%qnhl*F-j42bD$l5*~>K{$!47Mqw2)9PavHkQRG#Xm|O@5>wXoe<6 z&7Qra0qCaAB1>0I0IHHQshi|-OpQ;lf|}tr)D$W>gN6G^u`}mI{5Cm(=e0YSSzwtJ zAiJUi*&#{-;O~cD^m^pB))9as@^nfbp8)#GRnmcLUC`#qxTA?gxIrLBN!nTlCI|

    <>1`rDW z`OI#gu>&O^85U^08Qh= zC>iNs0hDhBB(|!3r0_S}W(`2||J&APX8^1s0d!^)UKs0Se~uNe`^nn*0s;3soNHqy zrGuuiX~MuRB(aPqGQJ4xb(#0Y)K#VHdS7C^lU+&~4`kd2?%9n0+=$JLU%oEZa*zKp d@u+zm;CEdta_~s$hJpY9002ovPDHLkV1gc&3q}9{ literal 0 HcmV?d00001 diff --git a/flags/language/dz.png b/flags/language/dz.png new file mode 100644 index 0000000000000000000000000000000000000000..d0359103b17bb2b40dfdf3dcaadd11de348befa6 GIT binary patch literal 1494 zcmV;{1u6Q8P)~z{|P(_1p1YP0j_kL?IDs8WQ-WqML% zrQW4QPuUF-8w9PEfwk#yJ@FJ`YraI{l0U{8tMc2+KdO%Ry#Ur#Ny|I>xMLTXlmOk9 z0?D2X8}EQk4^W0<0FQyY(;(V{U?<300wy2ljOU>Jya-9(myR%Lmz=CJ{1kPaxcceo~nL@ZOb5^!Hh=305+Eq9P4neG9A8?@=`srE-U8e;y zT!nL>mn=cb^4%7J^SjIsOsGa;qT2IrLD@D(VUPWe`#bp~jT@Y-7; zwOs>0UJkBlM9>abK{2AgEk)|eJr;rH(zn&YSu?>x7w&WOv=dX57=a&WH> z5N2VqxNMRw7x4%~4mE*$Cc!pz7S)e{#&qyY=ZK$xGs8;_5Rd5AO<)IifYUqKrofS3 zh;Z4@7`En+MWBB3D{97LgAO%`sOGu<5tOjpAPbnY*b_LG70z?jMgm-O)ML=CYUmZDW5_q)jF8CU_a~PQS zUHU>T)+&T=e_B1?Y}V&IctRlh=%R{}u^@(3S9#z@Fhrh}iXgD?mX5ZAR{!YK7T zC54JGV+6v-N|Cjx+9I%j)hsn9XEcTA`oB@TpA15>L-W1|#Ek^6seqE03~k>Ih=v+) zuOIT<1>mHB(uq0(@It3{6Kj{=b~Ex&KSK4pkzG<}5!kh?NFDR|sDBbL>P<<6L`6q& zLnL_yq(QSF!kthkv~d~35v6=beppNjXg7;a4E2(*kH>nsrSTJbITu?kb16eDdn zN9r(yP9MgYEe#fdZHo)k{4qYWs&Dmp6fsv8L^`#TCkH%29yhN6n>-DoUWMaS19bxZ zoO;|47ZWiSC7pFcdF>sz{G$+Bw+ecl3Qq47o9J<^qzy;#Oa=0`pR@>+d^16vn43Y7 zj#w)s>hGjn$Z5|b+(c0c1!1c?K!?du@WPp}7te#VXFFKsen@7Xd!2xs6p~UWIh~MV zF*7no`zcDV6p%s&TU3ny^Rz|amqlaMg1j_S!zD$Kjwet$iXm#6q1BWdULl+M!{B`L z19;}nM|;Tzuq_)Qle$@_ps=d_X8r*5KAP>0UL-vO&~@cFCjWKTBCziB9JO#lD*4c$ zHwuI+$YDE0LtgL9S8F2*%34eU z`9FTlM)V*f0u(;kIK%Ja%|!=KB#ge?;1q}4v)Ulg5op5HeHYB*ICsVC-deqZ z+9pWg%02vw?)H@BdxGA1NJw{Tc&X~5c_HzUk+@?BnX^yZdaz+^f!YO^$QsQ{DOm~` wiTgvj8Q;7S-yjP-64&y6|6|gxqu&Yq4XqY^|7Ps&6#xJL07*qoM6N<$f<~saH2?qr literal 0 HcmV?d00001 diff --git a/flags/language/ee.png b/flags/language/ee.png new file mode 100644 index 0000000000000000000000000000000000000000..8c1eff513275b01b0e33037078b2588b2a36a9c8 GIT binary patch literal 1011 zcmVVl5>O3>IfrK7pcdUgsFjjCEZaWI=DYb#ta{eEX()p z^$QUkTDH-qWbqbNY-$Niop+C5VAuf6yy?EZZz{`hY-Q;<1z_TmAHHoa%Abq+mZoZ+ zJl& zhFk?8_rtQU$zuO3)c*aOE&y-8{5mS?PvGG4^*$9~{`RlPM{m80s!PA<0#KMe1^dsP z!jV-QHGsKW){+n2oQ|5y`T$HHKLv+>t--M`N;H5gYt|9ltZC@3u7e@k3DJ-W#>hjC z30k~;4U9eW@z)QD+^CUYvptA41Tl8=It}2Tm0uG3%&F+Ds)Qg~zy19GGXrfCI;96yPdc5TxDf`K(8?fu#4J=*~G zW(jN`ht-36_FEy?iy_@^1MBia?2CX+v8WYuu>%j*b+p1@&j1%HP0$P&mw>gU!J6ek zsICcFyEbb87niOkuJ;NNsXdIw*E%q7VI>#~aCFZcO#X8`MBWL6uLD*$-SBr4cz-d(u77FrbhQ%JWK!2s@MwaL%Uca8bQK22n4uUyw>42SVF4tQ z6K1y^osEAXr(%Z&Ko%||?gBrAmOmgG9onO+R_qz7e8}#s9~2*jIEsGNZjMh-*7eYXI)g z3y33q4E+MebOA8)Mucu$#r551GyvCUequ?Z%|R4&0Wh*WBDdPn@qN7p;P~_n!aH7| zO(?Dl0MBv|LN^gAKd%BzO8vxlL9#g^$&xMr2F3tGcNcp05%qIC(OKkcj`u4Anf$~j ze;lKO3BzgQ4$n(V+JCWS!qdPR=4&iR5y7MiJ5OiGcRfo z?7{{?7|n}G#~O(`r`Zb@ICIlRy6vprIY(E4VBlW7=z%Xk&dYDl=R7Yv&!G@wqy7VI z1%Q}B@Xn>HqN4~CBnlAud55ZfjeQG$ULCt%Bdog`jZjdMh!CuBK}>hnCi4I~0x)&; zM1JVv^{NBHde`(WVj;Nq{5{4y&hFs>3UZo^_U5B`XnQ#dzn{ZYN39rvCLnCV}-c!;;nE4*L_h~C6{_an+~azcpWAH-h4hE zs%ZyL1}IphQ?+w(RuEm z0O0X>ScO8dApqUbyXhz2Pf1a{cPDI{;F;sIKsnhic0pG2<4_Ig zk`gd*t1>L%=WD?2c0;XJivXks*yh|Uv^i$P{5-fItjy(yp-q*V6g<6oGHd`YmkV00 z_ICu1q^j}CH7`V9qV2SBqrSxiB_oBG<4~HehK1y9vo)Y4zn83thr{K@R8O4o)4Ujt636MDT~1h~_0V-34Cuzr|}xbyU+cx0&+7U`kZ;7!y g<{u_8wU`6^0_~V7@H7ZBegFUf07*qoM6N<$g2F_KR{#J2 literal 0 HcmV?d00001 diff --git a/flags/language/en_ai.png b/flags/language/en_ai.png new file mode 100644 index 0000000000000000000000000000000000000000..80624baa11b991aedc67e25bc3ef21003ffea8e2 GIT binary patch literal 1190 zcmV;X1X=ruP)s9S7?6PRIa z72+IYfUpu}8y$~XD2&&jT0mH#Y`9XM>$|;uzyF?d+g|442Q3+Va5wp-_nh-@e*gB~ zwx>Ma-Q(`Tq44g%*-}b;9%v-vo71H!YB2ceq*U?HJ0+pf4#w*z5hr^^)4r zglJdJVb2$GS|EiMNY!Lyz$TMnp|J2jQFvyUnY=P1AbeQYwF((%PYvxG-@sBDFzdwL*I2^^tAUvx^*ze%x ze7*n*Dx%qX`6SYXvc&>ctCbCf$juff;BsLmKcAJ|Iv>a7@grX{z+tj5?0nE+0i!qt zx26Zaxp9I9A-@MkvmIZRMYE?HHF!OzVX?r=d!_if?N2Ni9k8~y!!a@fztahwNQ7xp z!be_Rklgt;vZiZMpr~pHqVIbDhSBOkfXJPL&0spuAV@ye?(rVDu6B^;`k^=4aNt-p zd;IJusFN#D*`S2qW`m)&7PFJHD6RVgK8C>!fdErNAsD9@C!`}Vn4NIzbkJ8-qgAek zpx`ox-eiYQuO;iFuwSl%-^IW^eHE7TN65P{ftzLq`;J7j^ipietXV9emP%n#bl{v~ z5?Nve33b3j3SA>N=Oig%V_e8M*oN%G9cb;jCLS-d87iXTlLbrApuIVv2CsnXC z9fNB|14h*Z*H{->w&ncd}VyWRU+5@veN2rpxX}-KGn=I@>f{P+e4`W}eEBP0&1p=Swk{Rirx(T{I!DeMuVYtE z8JDFl>f{Qneep21?rlKYp1Q<&_cYRkHApKSKw3d3(!S}8K9cb!VKrH=Qlm52PWZ96B=ruH5_2WTH>E4SEno3JCjal_FIGZzadv+gzyJUM07*qoM6N<$ Eg38NCf&c&j literal 0 HcmV?d00001 diff --git a/flags/language/en_au.png b/flags/language/en_au.png new file mode 100644 index 0000000000000000000000000000000000000000..5746e997215337c3688a6f3eec8ae98bab3f8450 GIT binary patch literal 1112 zcmV-e1gHCnP)dj6g~j+W7vo$OozpDhh)bLS=LqY<76OT6BAHo*7*K~m z9fCt-gSI#^g0W0S89|Cx7}#0|3@t4bMuF0newVhl=Xui}&L%9KxbefCaR)~N$DKEbgs79;qO~@;9Fc_ubo5T(&_^0%7InevU%*&) zHcXkB2z$NA{#b*o;%@xVJqCO08F>2o*nKO3+*BY@)%FMcMkB%=4+6muhRqIyLJ=l$ zYqf}kLKreR;B$Eq7#&3<7{rv#3$4MrEPWTIF)%#Kp!v#tpY$9RNTdSdx87Hye{cp? zZ9m-S&m$6va0SAcuC9hvCPUcohmR{r*__jdCbbc=M#EM4vUvy&SAapYF#BoX639tz zDv;!u_b};|SdSmaRB0)~KHrjgX@h=Q>QxtE<(?8jvoLGdTCnH6HY$)r1(FBT(_wFE z!DMmqHBtQ4z*Ql!y!9fRk2UB}dD_5Gb(`^eo{9=2vjX~*6wEd@!XlN%%>-9K`bA&d z9IMyC=I}9^J4ca{)3R7#Zf*|YaF~1DLp(vZ8)NzTOeWmNaC-yDm;DkqOHD zAysoXb->FN8s^@dBU}l)(~a~aXOUUhf!1y#eB8@3SzF6?M1iaaBW4?e=GcBY-mU1t zrZ;L93p}1$iL4Jhk@}A6Uz1;$2a;MNYoJqdUuxR`4Ts9BjS}+AXzT zDfBnV$rsr0VhLW&`5s#`zF}k>ZDT)6YJX)2cmD<&BBaa7|2D=*nxzOMcX;{a!5E1TxTRv*Y?R(L$-`C#}AZcXWS%zBx0000F7{|Lf%@SrbCdR~1f{EE;T}g~lvTR`sBg~l$oN3%hgoTY&!7*8u1v6d7iV;PK z6v$*wz(Cj1BG7=4LT`YUO&Bm3OkotLfXJJa()ZW@&bgtN&g{cNWBD*|@=MzDJg2{Z z@3|*E(M=5S*& zBLjxiRCsMRWaM=sEmwy|-6V`n&9L_Lu(e>IZWe5cTH$ngF!FF29*>We zSh~94^LQ|9ScctfgL7g6K9>u#Pi$;$y^N=%&;a2y06+O#4f-A|V6LkVmfl|Yd_EGu zi}})0%oP>E>u|tM0@B)&$&MP$IEv&$Y;8T5wOZ(tlW71x4Io%vv9i*qnJX#5Y(W9M zcKg59X>C22T3a!am`DQ%Xn@EENl7rORG7)l4GGkBUnryjBG~|cBqU%_F2{6s_J8IP z`JkuAW(@|85w#k9<>i>t>$$Q1%1XA6x~P*2u(Y%Uuh&b~-NWIsSTK41JUbz9+>gcP zWb1)&bDd5MlXTs9a{?!`SFl9ZXJudjPO}+? z%uGBa6C6$#+~mnOlA7VJ23IQjkau|h`FjNOpQ+Ay0jk-lL=!Y5hl)^gUM`%L^goAMKi4Qc2?X* zlX{4)2jU`v%$}7=$^BNk;^3f_ShelaPzJwFqWLMF?shk|>qNCRW49R3z&@i~8 z8O0~r8i;Zj*hrue@^Frl2}Y9zNf%p?DrV568;6}N&rDevTMxuazI|PX8V$`Qkkl$r z(B6-d?or%mX@}Ke$FC9z+c%Mw1tuzLEkN_ZgV3j?;r@veL9sCW7qnStP+#>Wim!i- z3m3n^Pl_7UpFNFfviG(5`D`C`Q70Ebb>IMoPo2Wx(W613Z)`^SnPk-7DZmfnbQFH^ zA*448QT@3HgWrk4d@pAEsEaze0Lp#)Fccq;ezGpXpzS5g*jkO6x*Dhy)o4-Gf@xz= zs+2&*{0v!UI@?EG)X4>q?%9L>m>BdNIusNqD})e#6_5N6Vj!!RL)oOnkHUA6l^%ol zD-$4l`v}`dUDUa@3wG~D&*8)9;`4(-e&jWLdNLZq+;<=>eh7TmC|rHx6=?SUvxmB@KI(NCN;mvizTtmN b{@>T%L77-Fp34hp00000NkvXXu0mjfkm@q^ literal 0 HcmV?d00001 diff --git a/flags/language/en_ck.png b/flags/language/en_ck.png new file mode 100644 index 0000000000000000000000000000000000000000..e3210e64eae3e28f5d2c26f26ec53ca3a7409205 GIT binary patch literal 1531 zcmV4t>R1_6N2tqU>1i=sZ z0jeM%1W`pLOTCabRN)q?K!HS6aGE*-nNZb=ac;KL*l}#P_S&;E-+XiUG2`8}eMBuSGRL6Zd4qzvG;TN~y<`#!*_?oYDj?sil= zFvcLp;2DEj3vmpp6gF%?L|7ui{zvWwVCQ2;7Er6I5GR1rw4@GzsmWpr%9D(RgrH=} z=L`|x0}OBJqT#_UBy)2Z5ey(A<@2FkyE4OM#*y^QwmejkAadXtwtZq9{e#!Icg^jH z2xt0+=xATc3oo7}iDJ|@OczUK*?a&uTO_d-wH6hDECC|v*F=!)7Rf#{g#tECwH8&{ z-+42}^YA=_pY!;`@c}?t)^Za$-=l4LGfC_i9Gbw!hI!3=fV+BnXlrjzt2PGD^Pp7X z^3I)j_4VBG+;ios=Z|xt!|pkpJ}8XY+}X}t$@1j0uY!@RK;`oAB&SZFXUAvmqp^^q zzyB&Z-vg2gfX+vL!|sP4;0vF6H;u3SmAaKHsb9YyGFD=jkn;>vM~*NN3O^dYjZ1G7 zA&T)u*l^EsUg|l|h0BvfE&CT124K%;*YLHEw~{>H z&BUGS`0i;-5CjCJ5<#iNn{O4_`;)&h)A;~P?_142diY#tGeHm#h9x$Cu#MKGwTxf6 zPRT~;y+J@JC{YRmN>Rkb=p-$-)bf#yD~O^Hk}3&4np|M|w!d zd>;`*&p*fb$GJ&%ZSCOGU)jy3g9kZi8*vIx{ko596Gb8;V3VvZwW>SPYEPWL$ZP)| zBZwV{mM7toeB0-z-gEyw%mx-gP%#)0l#1@D_OfuK#R;vgP5fYQ7YDje(bqQuHGUbu zJP1KaLd)9KE$n%CBac6MlA|x4BpP|T*`L?ST1OPQ)bXN-m^7ix;{;Tyhd3x)8Jp%n z_bZHyP7^`ejxs-(v}{I2xH?|sXV1LK8`ox1qn6#G36XU~u_Llcwp_X*hqaC{N(im1 ztSCJeC+F}y!*_OX!ZSiR8xlrIxuD28qS+8ngnf^Gh+N)h?#*Cf7l0BwC5n=)dM(ca zMbeinqQ7cZ3|^Yxg=4SN(f$suj7~E$G>J;up^`XSS2VM%rGel6`E>>_O%NMdIEWyv z*v1YKlM+^?`9l3GKs0-M?%Wsy=f^qx^X(jad4SiN>zJ8~NL)fwLk+9$xP>hrZfECL ze}#)IjW-t-F`x-??1;Rn6Ud?BCii0VKU zQAf^mmEEvVYpBaBjfFgZzJT#+5b?5v6(6KrRDqIeGbojYqiPUo)pbW~L!wfVAP=+i z0O|`hnD8n-HRQZHJaUye@IMPhH9_K#IGUxtP|Nj<#|EGUXn31{j~0PZLBt1YD=qo9 hMGTZ~{4cl>{{bxv-uF7boj3ph002ovPDHLkV1jNx<1GLH literal 0 HcmV?d00001 diff --git a/flags/language/en_cm.png b/flags/language/en_cm.png new file mode 100644 index 0000000000000000000000000000000000000000..ee1f66c1bd88f66a210c6085d5d59c74185811c5 GIT binary patch literal 1257 zcmV=P)otQ0A$X+x7-0fiFZK5z79Z=d1T1szwd%d?83k~G9esJuAPjb>H_de&G z-*fIc&vQy(g9q_Hz`X#lp%9#N$+C#=A`HU{&5Db27(Un9YT3MN7rON`=;$7YgQC%N zARorMgK*pJ&@?q+|3@TTG=rxL?!!Y1gOI9}Ft?xgT68bkz4N#OivdxHHAf;i0PXSi zu0JYr;t`})!xbdMxWS5~xG*^MSHRFTf^%~*`j-{)Tci*frx6qvhnWQzLWT#t#zbOy-@$tz`nBk5jQ`H5D9}|oepj{1JlV*z)%#Fm6f2Tra+s` zppv(ttIq&~aS^+%{VNvTZtrxOQ_H)RzA8h9UvMuvAeORbs&BEE{W-ty1 zRMpiWWU@8yXPQr~7+sY<$`WA!$TL9Ad;vxBu^dh-XQ-lrj4m#QeQ4-khTu<3i*L^65`*JbvtUiFJhg8oG^EiAXr zLYdvl13X^UM!r;%hl1=V$oqRBQK=wHOoXAno(-2A>iV}JW>;D-T)-WQz$VVA(FAcY z|H*7uBt8zJtNa0IV4OUMn7lJQz~Pooa(`hyES;U89()+>y>qB4)Z$iM9YhKRA{!cU z`iD{Mel!uG);U=FF2QXvW0P*uW6*qFx*RnE^a6p{eRg30X)LBEx}eGbjt98b)<&vT zQMd>VIxpXZgx&7Z8XYEUYdrwUci%(pkzXN`ic$1P0@CL`gF4gXV{~a;4D*jt_CO;1 z9z=vR8dHB>MAD9PJV0(kEt#2;idoYX2twppBoT={zclS+#RUg@ARW{5JCkgUL3rLc zf;0I8XYslibKkC%spbto06{8D{N96%$GUic?QhnQy38yXZ3}{mhdZwFA(YDyQ%$is zz$Y!u?)vtLm6I_3ZGQlf7#r0iyYMm(kosyRxh*3D7Q0PQ@%>J|OeGO+L_S5q_zk~n zWw8S$HvBFNA3g0m!gdI87>0)j@jy`@50Fq>P9~?P;f`IH{P_2S%R6AeIDJcR^|QpI zR=)t(25+FCw4VoveYup>q@}<{375~wj_U|yB!B1!KokseU;;bKhj{>1<@01ziWYXK zQ&6$>%m4xzDJO(;iA^H(>J50Za*PLvD1U~GNJ#+YatZ2v_2t!o0Mb4c1|URI{PLR- z&(_@J0YdgXL53#B!$}JRbhPRN18DIFAi2aTTVI7?i#V?Znt`CLZpjfS7c0s_#y?yn^ySYI^uzGn6`Bw8+N zti-S)!++nHa=Ya2YXd7Io~D$QNLILu{cd!||8&IMX=S=6+VTzmW3r)R!vX#V9Wu4> T@qeAB00000NkvXXu0mjfQ%y*g literal 0 HcmV?d00001 diff --git a/flags/language/en_dm.png b/flags/language/en_dm.png new file mode 100644 index 0000000000000000000000000000000000000000..3be77d99393b08474567e85f32a0a383a999c7f5 GIT binary patch literal 1592 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 M07*qoM6N<$g8GLE%m4rY literal 0 HcmV?d00001 diff --git a/flags/language/en_id.png b/flags/language/en_id.png new file mode 100644 index 0000000000000000000000000000000000000000..678e7c57fa6573b271ba34d2bbfecacaafcde487 GIT binary patch literal 1209 zcmV;q1V;ObP)5~NBxXQZ zObm{Q$z}#$oXOM@Ow5)U*RhG0Q3T3>!C<9yw3L_9x7%KCTQyl+R_qk^!KZoBFDK9W zo%Wt{p3A@*2jhRhqX1Y_L}+sMAIVxp3`J*vPBJv1*naMubKU;^xYTRIH?0~DUyz8-~(1K>)Nz_oP7zH-V3_MX~=5I|}8;kU8k4FYiF za*!Mz#;2E%rHF^O_g7GX0E9XnhNqU0p2!7rb_N`U0=7jGa&jzY0C}YyoYK0?5J2-r z&5x#c%5tDsn1qN;L710^V32~N?F&#oACit7fzM(=U~Ue+4V!TBmuXDTF5@k^F{a5m z>U{XGp9lBFT5SlB>s)a4#>WZ%Ht=ps3n;G_(xXSg;PLLWinf>l>mSQ8wn?`V-{va<5=qoKHQp?KVF`HLhB=n2Ob|l0E zV9J#6TTI|TRTTj^91cP(7K5UwzXk<89$4$^!Q}IieEj&mlRIwW+waD4qi+Um`k7(S zyLit_Dr_o90hW9Sh%+9HXD~27KM#pS5&=9@-a)+iaz3`_%E0ft2DVfRUS=kyYihut z0rHxUz@kSkUA~Nj-MdlWXo7p0#DN3ZV6m8RIz4D<>BXVLS`_IeAW1SRz;3rgE|*6D zUw++9yjHA&(_nz_$(=ZV-H!6-mAF$~4W>W<$;b6L^ZhVhDapiOzXP3}V>od_kB*K( zSgp$_C`g7zlZ4vZD`;ve2A9i-3b5I1P$(1;Kz~OEA(zVV6VhP#`8L?}a+}`H!(?S; z7?AWy11cMhIP`)V*DhMHZCff`z=hVS=xwc3 zDkA{1*-WITr{D7o+%Nd_-_g*}jr{x+EG~L+`t%KqjykYwR|YC7bhvO~1Vu$@$jOmJ z1x!p#K&@6s049@($jZu!3J?l~=Ws9wIwCJ1RgV5{19dw2okG%!#tHC&1&eFf-%AS7!(CZe>0;Y6Nh( zTu}i-LqpK%bP<5jXe2ZmO;o@g&t&+%jEm#IU>L*It5XPFY61Ztd-tlLQc2)i@BM?<8kYSJmj7EJ+e0(iV!N+hb+!58p7bn%r0m&JwMJcp^z??wRf!wG~~{TTcK|Ed5uEDq+)ik91xGDf9g9+EL8;-Nf;pVKVzTH)je6+fD+vbu2?PUJX!nL2 z5+$8#I_awnJpA{KX=s&RI;ZJ0hnrG5LuY5`lv$0=_|J|wwC5d3 literal 0 HcmV?d00001 diff --git a/flags/language/en_ie.png b/flags/language/en_ie.png new file mode 100644 index 0000000000000000000000000000000000000000..720b1dc78fa5f07ecdcde1f593369bf3d42ead6e GIT binary patch literal 1119 zcmV-l1fctgP)3UK_y_xYN_>Yo6(vPG}~fq2FNrMlWl>_NXQ^TiNazWW?@^v zm@#K?ZYo2FV@4!KT|m%n4z`OxVBk=cNjF~0pz900z24iaOU&xwesS!BCwV@d`<&-@ zPTO;zim<{%^grNE0IVp2D=zsf#J3T{utBro=L$y6G&DG)b8^tpJBgN#F?fA6YD(5( zx~vodw;PEyHQ0TKf}duvas545w=f8qHU{BVYv|=q6$snC{fL?aBp+z`{Fj%_CP;NU z_@#1;ITmrRJ`&#Ei(qIvSZL(RB37@GA#C~@qz3fgg`RoLz6= z0Bc^VJl$WEcR%#k$Dxui2)9@e2r!uapdO6RhnO8Z;G38LJvRqmN;=wm9B@qEz^xH(k5F)u;_$Pd(mOQUBVX6Bl zf`C4|ol3~dgJ*bH zaB=QL;{FZLzL%V=O@pha5s}+lc);xJEEN?M1%_d6J`?bGaJ8xmVG0G}%FAzA!^8ek z6f$w>0^e4U@vBlWfAJ(V1+6?FtDuqEnf)Nvn`5EqI}eFg3%S7nM`a~MEI?Pe2V(Zg z#m-L5`$TA(ipEv;OSrG-k z(AY@nw6W+yBHDiV9TIlC2X|R8UR)dm#O<sa+PXOG-&OM)#U7IV$b&}`iry23IS zkti|&6MY>>e)TL5u-0v-9yMm*+6^Z$@uMe8A!syhBLnWz;kSWvNUONO15CBsD2vgA zY46=pY5tTm3vBwK|tdHyYvex`>IbPwf!~IJTJ#P^xihXb{%w z5gw4V_gN~%n2Pyj0H-&-EeueHQcn1n0UedjxfNxR`R@5iSC~#kySs%1Jor?P-^4d z@X<@ey#DMuVSri_`2-{~oVo18=HpHtpekBNMWiQSiS`o{hjZT-1~`~T28gBT8eN3_ zgewRz%L*Urm8a_v07FdtHSee}Ky@;CUKED*Q7@kR%olteuMzLG^ozs9|9BaN8pmuU z!T`MS)0**h{zwXt1Y+_Ov~h-JO}89UodwOTok(VtJ4+ne5K&m!02! z^UZw!g?sjYH*2EZHM4>6lOH#SsQK;xk!J(nJ7E}Z+uJ#RHA_QvgwW6+MfLSu%lQ0}%oINP!Cv;f`EZjBl;FSV0gNa-E$RDJf}dqajG4&yV0XFXg)*u96%o{Oj8mRikwPP-X++jvcEhpH%`> z=bb_!3*-A3rN9`Xi3B7Plmc5GP5|)MzV3g{ZfiWD3}DR7&xF({Uju|~z)HUK0%q%0 z+`hiszHD&!?%R&b_@?}Q%L6gSjDc_%FqqL1Ol37;6JWFN#XNJ%<{J-dR;oVid_ha32Le^;m*0N4QY_Us`R zi(#h3D)2l8cI_fmTuklGowopZQsaHlmG5g`<5>nu%4n>MgGkd53-Ns@gwYy5(0F2e z(wys~l$r#1>h&W$w{0cs+U}$H>?!P;8lp{21fGWhd>s(BAbac>W71;(^-2b&C86*& z9tI*Mm`Dl9v7?A41CfPz(nm50kaZMt0w4tN^rl8OudF8g)#v0ITKTZYV1fYcI0UYX zkeYW7_92%)M9tELJVQ5+-d};^`T6GhK929>C`IR}ps2KhM5KbO93S_5o%hW+5-F!d zV3oQ|x--Y|+6Otb?>u(cA_yArU6&9L1e#xZukqW(VYX~cuyN}Xv>iCWCt}{@k|>Q! z09KeqmP2J&a`?|KGL>-%+XytSP!kc52qE*eV0rttce+-$FJUlM_}-rTSRMVLD3Kt` zs`Rf6o;%6KxDWB|P})MhcKGXXKLGKnQcj%iDl(&+ytOaYZr4KspyfOlIj$)&f!f_SB^t$;U zney`h#s;+ZeZ+7#Gc-Sz#SKBCEuax-1?qt43-1(eN@GQOdRb3n?P j$b-8k%kTP+$vyiUQ@w4q{1w{o00000NkvXXu0mjferiRw literal 0 HcmV?d00001 diff --git a/flags/language/en_ne.png b/flags/language/en_ne.png new file mode 100644 index 0000000000000000000000000000000000000000..96092bec749e07a57ebcfb743453d89d02cc7ab4 GIT binary patch literal 1396 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 b{@>TX8!$gVBLWUv00000NkvXXu0mjf^=0X6 literal 0 HcmV?d00001 diff --git a/flags/language/en_pn.png b/flags/language/en_pn.png new file mode 100644 index 0000000000000000000000000000000000000000..579462f1d6661936a649c51d2175dc1a7d10bffc GIT binary patch literal 1392 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 QUH||907*qoM6N<$f~%q&CjbBd literal 0 HcmV?d00001 diff --git a/flags/language/en_uk.png b/flags/language/en_uk.png new file mode 100644 index 0000000000000000000000000000000000000000..10b28c787571a90bddbfa79b8f2f84c9867e18c5 GIT binary patch literal 1468 zcmV;t1w;CYP)NEr6{kDN_^8z!=9HMR-& z6{xg;mrmROB|>3PC@r+KfRu76NP)Jrg+fti;lFcE@MQ$l@In1BPx4Qm_Ib|p`@iS( zecw|jr&r_EaB_O>CClk`qBn`0iQalaavo(;w$lt_d_0D&R@faQ__MGDfv1ZR5cYJ9 zi~wzi4nZ3b06Ic0NS--|m(u`q?j5v;guo`1g0iWBxdwp%w#rI4%x2cCe_#mJ4JJrx z^iLEWHkl0l5($gt>h34jDoC!^WW~eUT0ClKz=+*WF4jQ}%%uk0k6tK4pTUgot5?yJ zmj{Q<28Ux9Wy&sG%&I|5=0uHMMknXQFwn` zKIztdw5cD!l#u~Tb~d}H;o%XKtMtqiWl}aZu<+}jbC6x6#n}`&5^mN(SK9=ALITV} zA?$s97_vK1RH?(cR5`1m8Xg`-XH*nA&Yop)?6n#$mn&{XkGPx}w2@_}d81_jX@99% zp0X&DvY7#&ploE`)gUxM#&jxChQcx}%z1avasE7Pb#<)CgDxxE5?Vt)Q+Ru5D2t=` zN?Z^q(Ojd2At?#nnVHNy-OA!B9Zn}#as4TaGC2dAe!PKXvSi0&%Eu|UPxG6;2$&;|k=@L$cfSx(R>9JxV+QgT zFGk~m1E|}!?S+W4?k-)Ik-hKl?}x(63(AcfSxlwR&qs}q51J#R5XY~;${%h_ z+LN*_Xa$7@yE&kL@sJI9k7xYm5w~ks>u~M#U&s-O~SsDd3vIXn4obK zPYScS7nZg*s1F~8($^Q#Tle4_oIRm0Wl<()z~!@F@u{Bx?pxEC7Vk($bb1A8Xn{$q zMeY9msNTLEg~B4N-g})~*){Z#+fCx`4(XC5ET;1|9JmRwyoG&kCx&HYpX)L> zdGk>2;lbj^x%r!u5f)zpgVBWU=4RB8*R{;s8zmVz@ZOWfYAA~`IRkGm3dZ|iT)~;d z5*Ur$Ff=wo;qMRG`t`^YZg$rurLrQ))Wh+)7 zJN0jTuq6@BOQI*${7nfk7!0`Q>E zTgDwo=&@)W(RW0FMEjnz0!LZv9v{hOj0WzbOS14eYr!aM?&Cx0OFx#s^gky5@9{5p W>GdFeb`Dkm0000ykN%=jQj{?* zXBMS}rKM;@^QW%BM57Watjt!kO>ehuyLy|q#au6X;LG>T-94Y@_dLfvr$CfL@gLw{ z0Ej9?Ai46F=y`pWJ<>ei(Dl0S5 z**T1y9KCFBwDn@2nF|ZtRe1t2t+u29Kx$dpeP?-jDq><7*qaAYxZNnrwTn0$Jh(CB z-ft`Ep^yL||UR5ZB!YnSuaTtDRI=TToluhvMRN*lhi>ys2>z)irrx&4AnO2FGy{KtVwhDJ)EZULT8V z4G!!o$&lp~P2sq<7t2wmEP6xl=A2L8V5op2K*cc23g9PA6PA2*d8{m5L3H;35NBK9QREa~ldI_FC z9mb}2!xBJ`R!@xPmH7Jh3%s7lo`Ob8L9-$jLqo5TH8CmybaizRlgTu%Eg*!zVzEd7 z57ldlNyox1PBYKb5lyaE`M`2&IL2Mbb&X2^9jYXfzCwWOn}8WU^ly78u~5Zhp@zcX zTMcrA7ZN~AOAE=)&Yss6ba!{dYPALdjQ8lIfkeg&k52`!z(h1Ttq{P{v-mK}B3Bp* zevVV`QmdRkY8D*7G~(6IP~w~^yzu&`u}%0GTu9c4S|@6`C>D`lOap!Pih3{VWpF7K x6)#GI`PqzrZ^Uj0U=Q^k%bElAgCMI=*Gl_Vq(O^m0?|35Mxr= zfdK;n35ggYGK2(30qp>lFlgyS2m1Q%aHe}*&_2qrFwa;P@+BwtekbRi^E==D&UgP8 zp4tE1tcmv2%m$)UuG0k*0tV1FkRIN<_ukCSn>l%TkV7YLA*7*Y`^yY{_9=nqF}tOO zPj+8In~*owJkRR!PU2OSeEgI9uPDC#;*~NBXgqejc;Sm5?4Yq4}C+0@4k6n1;zvbX&Z>PY+pr5aS>3F9~6mL zgjy3S1z|`clYvZz6tH1k27s^kwHE{+q(Nx|5VZlT@1qY1H*Lb}>U!b>1G{!Tv0v7# z&)>(RP+oPFcx0RrY;0pwVFW`&C`lNyBw@6fF*m^VHA-m!%LY){EXMN)g!t#@H<3Un z^S}=+vce&g8ll%qkcwB*F!MQX_jXfXBp7gKP#lXQl)@8g5&#>ZzO|Lo(o(`O%ug8j zKK(m)5=kbh-Lc~_0ACvX?=I#2C=p^xA(g}x0Sji;Gp}h09YcTNh%CNNV!0AuXdF+Y zlzIU0?&rt(;O*tCX|5*u+j;D&DiU+%5cobJpiMy3g50T7j7f|AcW2W7ND{`PQEVmf zrB8wqYT{|Mk|c~K7YbY{!PodglXDev0w4nL-ugz~TwX!+=O1wz=Ch|GBn$$K>k@b# zLK?m~*o9oOlBz{bY^9yoUo6A*b-oE{7z!l)%?A$fy{OMe zAeFE%p3f~`(_DFn%2b@tP9ls(D-S6XC|BZ%fSfB4LOuZ4_QNQvmen#a@<)Ectvk;_ z^*i^SuTBBrc#77;S7|+b6{rDJetdCJl(ZNlQ##D)!D1GZpuVh}vP25U?j(8YA z2tn47xPIXPuQuFd#T=W9{qq?UH#vIY2?Hsx?muxJ8m^kwJ z2;^Le>nHZK2_h#ux{d@Z>dYdH7kWjuL}m6c1##1z%~C=CmWxjkA*TW{=1uR!AY zx?q6!_iSNd%{{iQI!05`8CK6olPZ!_#*g5tD7#O-MSFi0GJtsEksMI!egr&GIDiYB zxsm2d&lVQX_Lx_Dhp45vK3K=4+cOvwtk6=3KC-hjlg_h z7Lb?*VHyGg=mV}D+_c!X4rK(n6!0000< KMNUMnLSTa8=}I2} literal 0 HcmV?d00001 diff --git a/flags/language/eo.png b/flags/language/eo.png new file mode 100644 index 0000000000000000000000000000000000000000..21f2c4625f957235e1b6ea470b479cfd618f0700 GIT binary patch literal 1012 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 literal 0 HcmV?d00001 diff --git a/flags/language/eu.png b/flags/language/eu.png new file mode 100644 index 0000000000000000000000000000000000000000..91d0cd648c017ea08a3fbc808a146a0c7746f9b0 GIT binary patch literal 1480 zcmV;(1vmPMP)F`Y+tCZ4L=sSp z17>j#ie|`hI>MWX?cydl(rCr+aV0Q)cNi1Oi=$b9$<0Y=wTdMP*iyL`+v1dfjo~0X z>)>qsUsQL7hqp0U3x(Lc!C@ z4`k_83aZ4FkcCZv;m|Qm+_!TI2T;FsHLXsV2W#^!bRMpO+0l-zZwPTZl1RtuCYJ!+ zCS->$MRKzjRB5Zxxitrx&AbBbTe6_ul!t<2#mH^m4~$U&y>^o8F1+1nM*2Ae0$u(X zH76coWf)|kA?T<+j_Cbg^8obXm2|+oS+KU;2Ib?zC?dVc>B5O{Z(I%VfVdB^GFE8E z#bVmN3-I5x9uEq0;GM%O(36`9&#XMu7)h)<>MuWcgP zIw&Y;$ZPmXPT=3!XKQOKf`fy3fTpG88O4^I*styOzKO3bmhf8_6aO$4*O*ligK(>CH4^YySa<~HFO}UwT=hat%;zg`YPeH+mVzgMT5qJ-;l%FPiY-c^lO4$3yPt1IeeK z!CJnY?D^7dI~K2659^*X*za~jUvm~>7Xx#E z10^$5Zrkzs0uv~)7=QHK!v@n$4q)=O(SfyN8BZUCa>bsSXh-3MGu3<1}Nb&u;?~aoPm*HwwY{dWExFe91~e&1P950h#ycU87?D? zC^IwJ7MqOWh9cRx1sEGL1NH3wzT8{7^&P7-O;$~)Mq{lwVhcDR))hl}uIw^pby8&iB+hHqv z|3fI#-UOYk2T?HQR*bQT{bBJrb`;v;5`?wZ$6LST8;wTMshmyN*s4S0ftB#}T2B|q z0+YB4NzJ#>oZ*in1zi|TOm#~19w$G>-TWd1^>!p!0TK)b16g}K8oW+-Xm?Ix*pzGo z2)%O!em}cndZ!lYIU3xFTJID9m&!6&ath!x*t6CKpx5ik%BmE+-tioMN>L)*G66G# zKpzo^^kyC!Q&lJ`=!GFL&M5%K>XUHI%7=%h-wvSD>By_6_*kh<$Bm#`#BioDMc1_5 z;Etr>tr!ivfYc%-CfvfE0$@7(DOeeK@HQ+;kWVDo{)I5rqTOuTy^_Zc5X&}6z z_lZXZ5e#bg2`EJG{Ou?PX0PNwUA(#CPViuwR3c%;VcsXzcCM}nK znJnP?PM}F0fznlL!QWGf(QDZc9rmCr9vy%~zj;&oIRFZUf~>6GhgZK{Fnld9$QP>7mf7SxWQIG6+R$N>tOpmFsD!IuHAeYNY+4k44Lt#PnW-pAr zwT_OTLi9J?*d@7-FQeJW5Xvzi-S3n;z#-f)rIsTmt=$eFl}gErrMq#c?k-BQ{NWM0 zn(hJ$1Sv!AcY2h)=Z6!YUx84xcYzWt9l)E-fnj(6{H;N4d9poC-_o!8>K)DXiYr|ke1m2E~ zh3B^8*xZ=+*!8yxm&JjyZwT_kwRV8!=4P^WP=b(l0VcQT=Cz?qV}N5Az1Wcb*v_rO zVX|>kroi=&F4_Sa8XCx}l2U9rtARA%8)C|2Yr~Xj0)D4;j$sscA#-UZSj0{+31}rs zsEU8I1Ju>kk<-ddu+RHoBH4sqe?FKN3hU@sk=My~45P^N&S^t}$;7x=g_|WUHUNH2 zO^v8;=rYCzF5{WRUGw&VSzGbGgNUv_u(S*?T^6*v(7CxMQbSv2AIEV5fk66!^b9KQ zzkpnh5EYC~whwcuE{CmZ%|T>KzF1nQmW7+t>eNhGFkb$vZ6UFaxF}i!X?4YaznEI7 zjI@r@Dz`1Av_4BK7f)t0p52J=(W-kY*79ZlW3sHW>;QiPjSTSc9lEb@00000NkvXX Hu0mjf44g=v literal 0 HcmV?d00001 diff --git a/flags/language/ffm.png b/flags/language/ffm.png new file mode 100644 index 0000000000000000000000000000000000000000..f4e779f0a594d67a0bdf2704fd8330e75220b668 GIT binary patch literal 1231 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 M07*qoM6N<$f?4@;H~;_u literal 0 HcmV?d00001 diff --git a/flags/language/fj.png b/flags/language/fj.png new file mode 100644 index 0000000000000000000000000000000000000000..570084aef2366dcb187206a0cef85a3a64a89a33 GIT binary patch literal 1742 zcmV;<1~K`GP)*}A0cQ`&@HHew6v5xWsRJ8*L4eX zvQ&VAclWpV&Z{Z7CV(!n_`h%a&rY(T+FqyvR0;)JRRxMH=9Gm^KY5%iTQ;V+h>#K^ zHYO7eXwmD%k3k(8O%$yqj5Ml85gJSgWtH?Gu`^>txBif#yi{e~nR?zk^9hgC`&qjFZD6xPD!|w}FN_|WlL!>)H=oAsIF&&Yd zAnEVh=ol}cr}0;mu(MbFw@6cpI6N4c@J9_y9?fQ2NUazHq+e8+EE~sp*923Ca?$-QpGjjF{kP6@ za%3*u5Bw3gdnSOS(c&;j9O}J5{mt`}0P7kBfZIuiQGZ1SBo*l2x0}^vm84}F@P@od zewmPnw<}qTQ&_+}+P}cT^<-*1mB#p@6K>rc{BY=M-IZFsTo5 z$v?qjdkIEs7Nz4dg#))G*zLUD@d1B1_aXDGPM%!0Qk12L^H2;|X&F}&*bFkq zy3VoVp4ue9n%55rfO$k_bYdw1A$2sfbXh5*qvy%)A17?oVXi3U`b-yncdkdWW>B=} zB`zX*L2E1RAs@?YmUHxEC$Bc2#kHVf=J{GJ7ST~#I(vEfyGuU8+zNIWG8rw{LC z&64XWwC6HBI*b&Fk)C5EK03j`#s(zOaveK=iek{ydFTLEXCc;kg&gkc<~6T^vv~f@ z_ZJnGp~$qI?&6jEZcYMx{}2E0l$Vv^3q?`@V!z(T9UXl*(ld#R5|S<_Xgnf1V1}9S z#W7@&yzzJpt!R%C@mv>)a9juPY}!a(cHUJ0;(AatbeuZHt_N;Q0(|E;dp)J)6-JHnS~d zPZi*FM?1UMeKQGg_x86uMHPz(2zjrzzQ&jMW&I{R=Z;gATg+U09$mwOI71S_)lWgb zmEt|WrO*Ekk^WT#2kNjDZs*@45gPVDSH~UGCl1l`0JzhCIP zD!@cf8}}CFaQjV*@lH)6l;u*uPp&`8*qW!2=49jEwT;yWcG5oZDm!irQ(JV9`o@nL zvAR?CQ)8f$CC;>Y*!RTBB)~1t{K?~7R7)h53ZPneq#v6cWZm)#@+=v24i8f-8yR1- z6{E|6_o-Ffzqf%q>uzD0yoe*7lYA64lO+=JTBa5E!TA#(b71rRNq`kU`<*AhYKZ`d z^LZ8v1@U)zc0lB?AF zKK41G{0u-!?9<%vNMaySXR%V@bA;>p-w&oLX;Ao(@Y9K*RJcXBI*oi8lkuk$@s#kf kuf$kB>wipU)n*;wKOin!|Cvu2hyVZp07*qoM6N<$f+p%dl>h($ literal 0 HcmV?d00001 diff --git a/flags/language/fo.png b/flags/language/fo.png new file mode 100644 index 0000000000000000000000000000000000000000..3589f2d1ed3729b0f022639190fad34867d7bb1d GIT binary patch literal 1882 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 M07*qoM6N<$f>sD2-~a#s literal 0 HcmV?d00001 diff --git a/flags/language/fr_bl.png b/flags/language/fr_bl.png new file mode 100644 index 0000000000000000000000000000000000000000..be627d73a8d006513b49bb33375ba0b1f943edbc GIT binary patch literal 1761 zcmV<71|Io|P)e_2{>Hv+PjStlGl%1T+K;7 zzOgdz)}150J!CZ;fQ88z@41hT)J#gV&P9B>^b7YFqR{U7o+$ueed*2m-VJ5e;FohU z9TI9*-J5gkMtfH~v2xX|Yk5vSxUc;8*Sq4ot@HUmen`}-yD|a*1<&l>+flo^kfuHz zt~n2Di;`HGZx%W6Bei^jtEmyU$4A5E4%()ANlZ&+$l=8?%OlFT9CA#j%O9KE)YqtN?wxueM16^9irzJK$kk0yhlS2_W(ZtmI z4M-vd4USGubdRxqvlX2d4*%JSUhCnxO-X#MJdUy93FbXe_s$UAt=?cwRn?eyKKt9@ z5y(tus__^xZ@pF&1X#X#kL~%Y9DdoZ!!b3_mWQ%zren-C&vTVIY+aL$(k}px)N{>f3^wSo=7U_gd>y&m%agUK zq^0ON-q^{)L>bEpEi5ibN2OM}V>Z|`lQ>C6qh9zR9-GHM?+U^JT0 z>2w(MDpcAyQIK=|{OvYT2O~uJ^pq@<^YWtahSxxf1^daNp9E{kz3uK*WTw|=OHsIB0kZDBT zjc%fiTG0V|=4PBUw@lF5F(tgn>9kEzRiR;JR-#4pS>|UDdqxKOKnc3OceW`rs z#bY=pW>L8%X2#&*Y7JXFkA-(ZjESC0pK{N~ABF(3v$Jja`T0ytOhg38vpD#ycjWU2 z$wV<0Dp^%5BgJAMB{Pqsr^b1&;VSmQNz8f;tIIV!<*W&hK(vw1y1Kak^j|^%>FMdV ztgI}YPG>}bWf`+{U;i8+Ia$RkKe`WTq!0V>IOh0h5*C$l>XUzQ=uj*6>t0rtDcL%? zCOiTL1D#j9sW{&p0!T_qvZbb`GCe&V5uha7OHaRD90{`EJdKG_@y6?`ML0X@>l?z7 zWa6Q<4>02xV$Uucm;OFYS-FB8GZo zhSKN9VpO1r*YM1?A`bqxgWi9-h>MZ2V|y0yiAHws?4ZLoO|ezSE2h$L0Ii0L1N}UF zsU-wpGMQ|`aJwVV@$_UJ$z0Dx0Tu17DEhd)FdQfDVdsqMQQ z9LEI;g`z`PaDGQx`|I-fB1`(&Z6ujEK>S`W-|X)W3X*^p3+OM4Fb)5EVH$YLd0|7s zt^`G?uvlSwz8q!zA4MGKdB;~mmf!I|CUOO1yJ!m_;Ltq>0flZK2j2C1;8d(1O_;e$Wv+YA`ECU5Yxz5ZajhocK0rOyLW#E!jE-uoWwsmGiQGLJNL{vpL>3f zdsc)c7SaCz4+6lFLI}wvx76r9!f?D!^QsjRK3s6VZ&a<-LCnu4)zjGI!p-p>>F>vy zqLVO@dEp_cC%RUd6FVwpEYqQwF0M@NGI+Ja)rCiZZ{RA~j4 zXMYeN00eB!tYT80@I`*z6^u-z`_#HXkdHrGZLw& zh>S@|hAVKQkgkB63zX$mus(b+P!ABfr-Vt155m#PE(|NxNR4qvTAU|F$JL|)XU~AG zuLUO-LtApY+XG8Pd1yg(-m0b zgyHHs*ykN40Cq1NXZ9sWBC}Wy#h4oD2|oDnd4DMWRzbq)V9DKfESs7DA0Hq$cW%_3 zJAv+QATn~+#sh1zzohqolRXr5^>EHVMgW>yTbV~3$T2KEdkIelkl#ubix8OyIE4Z@ za%46_Xeg<|?K0n%mIlt<9c<>OG=Tjo{L#>YwcmbC0Inv!#5jhBL3dL@Ih!0vpMAr- zky{m7=pquYT!F!s3-Bx{AOM|Pk{FkeAn1mMX@HO42deoKP*{k&lH_D?v9ZvkAD{tj zZ7?9e1iy+R0w9k~VBGxuz>SR30H0?96B9swK2Tr3xa85%KuQW=ZVvTZ?@^CM)>i1d z+=-ByG6K*N{S@Qr?G4@7IOS~m)uGu*c{z}mcjx3gb^!75GgH;BcjyW%x5U++9)#Eb zL;&i;V;CPPzuA;Z8sOy7xrUq^poG3&^^%wf?A|@cq}u)lT>%RVboX9EbW1G(s0rD? z1h}|@o0_5l3g?~U#zvsG7YGa_qaac#z%XQ-cNwXYQ)vJ*Gjt66hFEz60jThQj0tgc z0;f__&SoX_O*SL#?PLrNHs~^y_zDeRY6AJ-b!@rZN&rf{gPE|E_TX484e;X~cE7ME zg!^ONI>P`@C({7N5?r`>1BpHD1mJtA9}{7_3Y>NUfU07H!BJWYczF>u1hDxz8bBgJ z^U$Bz*4wEE@c+iet7C(e9p63ZDCcFhWw;laj7gx4{70=}^e?ElpyvlgB7xLl1Z%l=^6n6U!UVqg$rM%kk wYL5HU8UNc6^VcheABeVm$^V!vsVq6bKTd?N@U~x_!2kdN07*qoM6N<$g5<4XF8}}l literal 0 HcmV?d00001 diff --git a/flags/language/fr_dz.png b/flags/language/fr_dz.png new file mode 100644 index 0000000000000000000000000000000000000000..50e1c9d3c0d7ca887de8b6b7a363bb4aab403010 GIT binary patch literal 1450 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 AIRF3v literal 0 HcmV?d00001 diff --git a/flags/language/fr_if.png b/flags/language/fr_if.png new file mode 100644 index 0000000000000000000000000000000000000000..0437ce4ac593b0af8e7e970ff8dae8b5d7c1f348 GIT binary patch literal 1766 zcmVs{OQ3V>0{Djurcy!Qs-CN?@)960v?YStyY8Ij~IS+Oo}XfaEoRR0-*AryO12(WpGU{s^!B^3gopB_%otLH z!RD4;PMz<>BhF?gM-v{Vp?ud-?l?e40HHgVxKQ zkLv`$wh4gTVrSWJe!`CG^QyvcJf2R`f>{9%n8T4j+KIeh#LR3~0b)wa?*Ul_|Sw~7~An4<5hbEOaxk=m$(lr>F6FJDb73v@WWqxtmc3rNUO&C*~Pi! z=f!cktqfxtL)e6bpJbmBuVN} z=23UVL*n=>^vS?w2aj3xgxi;lzn)dwJQoI0FvHtMn$-IX?Y#zF2z%IGKWVpZcy~q zdbS^!%jd0Do_w^0!iQVgS~;KYej_cl{~4h6$T6;5yTqCO?=#bE5UpC|hg-rqs^RIP zl^j2PmbW*TvAyCH#ot{J0C>dyf>X)(*~vZJ>^BPoX3Qbu%uef}p~Z$v))Nyxg5Bz% z{;Cbxui>K;B~xYCc70H^z&^^$-^JtZ;q^_WEL!mj&8DX)@b2TJb_w~OV{Cn84IjL> ziCg_T<`pdGd*4|Y0I0VlIF&9|A1mY1`N?o=NuTdUpY3J*vX45FmEiu9}>h>Ybq%>TM6~ZTv_{L9JgE~*b^D| z=~%Vmn*o5!7Mlui!|3Kf+9)}NUY=X(M;9voJtN@Q9Kz6Ek)*;)3WOvGGz}N;0#HJ* zx3Y?+<|eGk8RTzyk&z%H&8hihwKo#&aq(`!DiY(Om_P4PcGtA9d1KK8zzhMPC>5nK ztn*eIf+yA_OUk7D`Ls#vtw!UwJH& zqPOaakOn#AUq+#{kIp`*dF^rja;O87$v{(E5WoKU$^bx%0ubmXC|3Zz-HYYIiz#7E+wj;uaCe&LCr#wOxp1But!?VKvfx`WSy)G*6fvAIw3 zR?$2@z3_GMyMBtrOMc3_m&+*q)w;U@q=|;&7Z(>P$dAVC$2TCM8JAGXeDVURcqX{1 z5u4Sb&ad}4NQ{rZtIp4!`7H*0B(c#M+;ZNg&v}(ah3lr)*RC(6Z1W2$fVgE~6~j2K zPVxn1>9@YE-&eW&l6ol>bEOSVua$jq@rW_@e{d~-0C1n>pBo+At0ZrOlmGw#07*qo IM6N<$f;F^ng8%>k literal 0 HcmV?d00001 diff --git a/flags/language/fr_kh.png b/flags/language/fr_kh.png new file mode 100644 index 0000000000000000000000000000000000000000..82de70236866679f4c1fa3ff0cd019d605d8b3b4 GIT binary patch literal 1342 zcmV-E1;P4>P)E-&z%vX&?Z`9%Lh+#vU_J{ z_x#TJpL6#vhZ#2Re}E?eU`8QWaMPbIOe2g&u97P(V8VfOJ$^}vfTz{Cq+)rt_P3|K z*Kfjpcn_?OJXq%C!ksl2`y0ZKO;KOJ#Kr(}YL5MUeaV8%2RFt-ek{wM`(W+!TtO0V zez4{pPIPqm9y7QHd-gp46a&cr_>jw8UNQ&AUB6*8q~N9EOsp))f+Wk}5rNX#0p-Vw z;G$y@i2!kx@1d@)Ys$e33zI3h2mAIdFJJ(Lo9oVBS-sef!xwrm5|r`!Gjs69;v9?z z!_*iWXvcJ917Wq^W$Bs4U5aOlvBMGT;5)%Nej4KL(l-`OtQ z3&?oqxom7)F%M$_2?7O_&!0i~%t=ap7E~#W^v}OQP0deJ2FS}x#KD6eG&Q|ktOJy7 zJt9`UT7s`y+!z{@P`Sd6s+GC$k4i=bP92Bbb_N>H!<3i=PhKA8_S}IvIT@VUjBtPd zzZ#z?hXZ|$jd=R#Q3D{ia=*Cs&1bQr*@Zz0`hK|s)vNL`FcKnw2*NGLpq@Jmb7CSw zwhZtzFe7 z@ug)55=h|24Mb7-Qz|RLSu7aby&L0q?jR~H4apleV6?Rr0heo1083UDdQYE5SzDU{ z&{|q5=1@7qeSH&tK(N`6vThv&l0fnKAX9cGx@Mj|TfZ-Ry-qO z;emk(AuN>ajkY!{Yi~CIPA*(1+7~TC`0m{a0hrEdTeiSNS!<*%TeFgDk_0xFoYe|G zmiCB1fF7ouV|Wn1qI^#;$p}|Jdv?>O0TNYwF7Cd zQE-?{(5M$Q0^p;f^rqwE;(%}%;oG;-Ut2q=1m=_!bc-Thak~wGZ|Bb!bDd5oe*Ys6 zv(6SMyVOmaAh5Bc3|ZD1$3df=k_Bdcz|mTVqiZUC&p>@W6p~^h2qxbz9uHP`cN+lT zWM_*`8V!X?_i%8gSH`w&Fw?6_IGfaJAn5mQv8k6wf{WsS&mW_Dj=fdKBC!T=}$ zlO;r14m33AV1I>R6?Nabg^hiE20&_RwV0NchhR{_bXat>30`j(e7?^N0GsUt(Pnc} z|ESXfV6h1B`#t2f20(0Vl^7T2ge*@FfY~fyY|Mi|;7c8#&|=wq#cFj@Lu-%y<^RNZ zI(kWxhbsQH{&So!2=BTDf!BZQr^DF9swz#4x?4Yx<9|$M)Mgyu56xH){{{>Rz5oCK07*qoM6N<$f=SqL AjsO4v literal 0 HcmV?d00001 diff --git a/flags/language/fr_la.png b/flags/language/fr_la.png new file mode 100644 index 0000000000000000000000000000000000000000..0d6c2a3b204504d01321dd7e42ca521fa4ea0aaf GIT binary patch literal 1199 zcmV;g1W@~lP)4q0@Ib1ue3jUUJy;u1Gaa4efnHjPY-!ECVx;~Y*U zgrO|VAcAZmBD$GnjD@`-w}TCYsX>qeU0+}`J&|L;8K zIp;j(V402cKfwI}u&fY_xbGeJSwa|^xRdxaBPcOeS6if8wxC(7$I0eC*d0!ky#6o@ z1#iGLF@dm>66`CbFzuxA)Vgr29qR%=SO(*l4U3`(FF6><07NyNzVX|}SP^&%1*Uld z^bOe%qY8js+YZ|4gkMGmdjGH?B8U&JVFWyt3i`2WJkWR3YjORtuMzc$CYk|Ae6i?E z=boHos741M_NC#MmIjxLhUtsXK|36f<>tbn)4^#r!x5{-*|s4J8EzwcRO^+vC~+n9 z$LkPNTAaiHq*zABwE_O3djfBjm4UX~5xjFJI0C^O@2k855US&$udYX2`Jq$>Ahmn@ zb}D4^W=wQ<|D%C8LaBEE@i7>#ZNRF^BWZ4cj;t(7nUjObo}Pt^lZ;e|)w9o>`8NiX6g@EAR~th9Ei` zLq$a-%|a-O-h~f|w6(Or>foUEmK4LJ2xV-N~>o}l(Ae0=;YOqTJP z3`9N{gvK*har)SP7ND~JGPQMMJSkYR9ebv7|gc6*6lp9vz7nWj!j5chtC<+-qnxy%TLWLfsE7( zb?pW^PaS3f;y3J~)aq5RjCxkCI~!sV-y>#x!ht>S)nde8y(13<2Kb?? zs~f$|r7S??+FU9&E&*2Cgx5>JSO|gGz4cKf#Vg&xikPAp#ay0b=c9@!2*1$ zT1lk`Dc~YE-%=Qt&qup)1g{MK%mN&i$55FP8C+9SO9Q~;q0MT*Uj46bfRqoU;o3Fg zK+rDNq6c4yakyMu8Moj~bHDpKPSgabIyuZCLeIDH{w)HIyVEKh9dtJ&QN$C7GY2`- zb^OAq;om;H~)vf8o({0R_apzs7xDe(XR N002ovPDHLkV1kG(JTd?P literal 0 HcmV?d00001 diff --git a/flags/language/fr_mi.png b/flags/language/fr_mi.png new file mode 100644 index 0000000000000000000000000000000000000000..e17a634a9a72b94e1d83e2b63dc0e83c74328004 GIT binary patch literal 1376 zcmV-m1)utfP)hGZ%b6$K0rkvW+gs~6Z9Ev%HWN9i7{b8Bax*I(~dR9MA-?D&J<%}Gw$d(Qd% z?(hD-zjG-J@u2Pk+z9|f3K1?Y{=-C3gyDz@0mhkU zEIKo$xDc)%>!JdnoScKE%{!2N_>=Krfbn(HpJ5F}3*q|tOvE6LTok#yfdCF(w4u`B zgD2F9b(8ey^T_%CMkkDboRQof;QsNjm6RjrNZAA)pmyd`RzH6l`WxFI4h7*ClX5;W zB=Ez}5Z})bKY*Y5da&X9OR)Lk$bN}|R$)iYtA)5nr^mIk7F?*TM1pDS1zdVpX665b{v;Up_5{B4-R*Kl~bb$14N?r_;$MBqV_2 zxIrJ8tG6H7b4wtXQn1uq!0~-Og&Y+K2!T&3g^iW(OX7 zWFp=wev+55mp1Li!9xvb-qDAoY311R-BGNa@i1&Ztb$noG@QK*GEF9gQ_3aGEdcH9 z?MO*U5df@KD?4h`sE7dBQy1Yvmm26F0LKW)sDKZgOofsM>QK0G6_~`w;lFkO`#!G0 zgA10UXJ7!yBS(U~Qcw&6(A?Y%qtPe;)YsRu27@6Y!2bLKXj>id^|`^w$+{BR=6c*{ zO_4(K)NJGzP)JNGfc;!8nwnL}ePSWn9PKcsr}Ob*>eeN&*=)$l$`Sy~W;2^kZjJ?X@|9b!ciXsPmF^GFyGT#g2~>fR6l6yu877>$VtNC^LB$Xr%T=(Us0(1jDaiQxJb zV#Nvr55S`BW&yLtl?D`$i imJj)d$&ijA2lyQw)dK&pd>K3d00005QNN literal 0 HcmV?d00001 diff --git a/flags/language/fr_mr.png b/flags/language/fr_mr.png new file mode 100644 index 0000000000000000000000000000000000000000..4e1c96ce29aa5a9293a6e07a4741223f6cfc92e7 GIT binary patch literal 1588 zcmV-42Fv-0P)ZNh3 zds~{JKU@s2gd}L<6Hyl#hlKMdChuw)`BxOPckY|z0*Lwe*!7m2lyLWhVQW8@q{g|& z-SxEyVAbw1n~)5v@zSIXS*>>3#s^9dB4pQRu`Ynr_ezX)%QK>I%Gib>s{n#dBbE zK4gsmGP7ZCZSVjPs85Os!#9G!sMX`XloC>(?f<*=8Z27G)0n+@8mh2Ttea0QLUs)LWg z3{`{#M;C+P1|77V8H`pU1q0n-t<#$boP(o9grz+leZQPQ^uFSB86c0H8Yt`^gwnIar zihbm^I|S40>sH`?)0l@K#wWvc_9WsyFHryz3l8#yuVi8GQ6qZD=$p$EuzhtZOoLVe zpv_JmgK)lreCQ8bP&j7HaA7&+4Fhro*vT71ts;CvSa>asD(P(BOWWe!7~f}#d>bwm`}E6R{sd`tnTs;=fk!<95V zdd7(5X%VC8NLirb;Oy;1cx4s5{bwS0(+I?F2^~j<vZRfL z>C!Ezf`ZXvyn>t)7ZreWFJ|(FIq7ipnLGevzWjcR*pNawDZ+Ud(B_g6lO%t!ztfB|7gdlZ0|cxLLt9a;`yKte8DRYwv=m-*@8R+SH`5Od_4Qcs zYpnusJUf|BiI0bKXz(A*6TtgfXx=gY9EkrU8!g*;#O_W<suzQXMJbl zMq?xLtLhbi@1HgBbM(;=N6eEHV8&V>yNQ>#JRMV*O+g8?9jwAr>$0Iql+f~lV$f-` zOc@_6ohjFE-Nw4BO$tCsS~Q;?5h@4QbQ|aG4a3ensG_OlUSZIB;4Ji8mO;CS3RfG@ zw4)qO%L4!?F!{S3*jRg80r)yOoSzpG2vM+4`NCAU6vNi_a*z{@X)cdJ5Fn0D}bA7u4P!vC#pC9B$(d?ME0ux)}JDc$5o^PhLmQkrt zV;Vp~W48=2cfWpC?E-(De2zON)NU2?5N>I7s8#ow@y4xw`8ZD97wKEaaGZSBa}(A& z|9kUtHI$rAyme?+vzsNa+?rPKqclMf!r&G`O}*i60m miMWj`To1LAV@8^Ag zGrt*v=Um7OfENJIAAk_`_=S6%0R|NqisNtz$jMBG$z*~`rGne-Mtya)Gko_}jV?A0 z+UNnO>K%m<^UnQi(LkdXE$t4VVyQ+1Fs6T$*S27Giu9wA4MMxU8KW#w-akC7E=LHX z@qTAwEvAkU2Q?&=NhmmWMViDq zB1)K(+MfdOU;=|-&(A~W!Tl5_2rAy~49h>LowBqLt1}KEx^JgD31z>(7w;L1uFAUI_Ow`9>Ye0Ne_1LIQqW6{`HsAQdl>h&XCZNp-ES9sv&)XfOO7CxZlJ6zE3#&@(z25wcvS6R5q%>N z0;|LIv%g?uZG{X_TvEb?hJ{I!6ckl7j~mhpZ8j%V4ABx+uXZ;!fN#1FXw(pzT1edR z08P!!ACWjl@B=t;+JTLmPSKD6vu2KlHBBcwLpK0VDXNMXM4x;K(CblKavq~=D`kL_ zQHfm4&>eII z%JTwZ4!leqU~%)(WsLCv9PgLF#U%{}Y&IHq0+k{z!VqyG5=Pqcz6cfXHDFMRef0*PzO=%g@?o`PDNBdbgOX5I~4x1#d@;V@k zKFxtE<9fSwDsv(G^9zWNp<6k97)GY3eH;MFju6Bj4uxRQ<7#CEtaq-;0EZ$i z+@Sb)5SthRJmG-9xaV2=%0moYX7dABztM*6JFdb=6Xw(@7G!^-m$RY*a5{vz>B#=?j!zo>soEtl~jv_zI+!zZU=I{zKKaz zpie{$zQ~pVMDeOR23ckOU^8f8));WBvIdS#zbOCn6aY`! z^)2!353w_~5y56T&ELMmV?*wBbU1rs`QiW!h-D;zM=f+soDM^^f$ji$P?^*$>Z)$R zvH5}muwWP$p4cC4E}JakBQ7ljC=NX3_F!p$fHg_?p>w#fWMw-V>gjpV9q8!ni4E%v z&~?*dRcR=y1G>wL!6gFd(O7vKjxCoIfVo4s9tn|Xb=#@^L>BeDJ@drddk#P!7=3dG z!p_v7?C?ErU%z0QxsxN%lsW)5vmV}z)ajNScu;j0j%}qfKtSeDF2vFYHpUI885x3f zLCB)MZ78mErC`rdD+?(NPg@)y-WBNmK%h<;h!&5o)#LHb%Q8Us%;8)}TyJPi2B=wj z@$gxM@ESm*xrnb5z62h9+9t}g3y2<8)Oz0TgzK>#E(-CerU8HEDT^>-{%DSc8d{wW z8iNiht)|QRXIR9GiOb#zTYCpxBX-nnJ1YUue1%Y2jn7>1pG!NfP12>5HdtEK|1p4z jR{Q_pTK)pyIhVfxm@1#EMdLaN00000NkvXXu0mjf(y<0& literal 0 HcmV?d00001 diff --git a/flags/language/fr_ne.png b/flags/language/fr_ne.png new file mode 100644 index 0000000000000000000000000000000000000000..b768af4226620c903b228ed82b10721d8bb18618 GIT binary patch literal 1443 zcmV;U1zh@xP)D2k?GQk(2CIpd=T|7d|uITk*O z+%Yt9e3UqXkHW_Yh_B%)IrcZy%gD`$Wf;V`I?v z^|y%Kvo+2IFwQhP^L)c6c_=!3fj5{vIR8~<1%kr?bq?$LHWr)I?sbN9{RKBq7DT1w}7*MHr0B25~l(APM{XjZc z@^jVm>Pf4yG=8ZYz;>loto)#e3`a|W5s3$X768sYpU#|Jl1l&>-Xv|3&beS(1Oeb6 z@m0gJeG9C=>?AOLpg9NY%wI42!n6v;%SIl6;wWT!H93tb|0owf-A}>Hln8t{BN`q~0-*MX#kdgzMTMaJ)S$_+yj!>qiz^o6 zMEeOqMkd&R*nn6RJX?U2Q7Jrt`OHPp6v(x~Xxgz8NykeCfXb>WMl*UeZ?L26LifxG z!MHcTf|gJ+N}=>{w6}umybihAkFq{JLTaotqPVFTJ#3Hg`r=4sOO%*CW;(KCvN7>@ z;NFqbqD3eR3PjW1Vx&|Y766V-oWg|7OaptpOR#V{|1nAP?i=U~^+chm5LU{HO{Pug zv-Y_GWD*&&W3!?5P-E_h7vc3)iAV}4NCQWrv7{7J&Kwf}eoahabW^8+y?IOU|B!jX zAHM_d_;@t;H6!zQCVB>X(AeJyPudgxj(%trTFA*eW3yp1LMq#EYj2rY2|zmH2{arj z!wXD>08kp2#6(OofW3W3G;ATCeE@4z5SE`^j#N!5s%}=I3Zhp!6t=T770x@rMnPk0;?8J`G8@4Z1OaQ+2Ezhxbi zAtC%TM@~nFxdZtZ^Re5s8-_3ga>nQIN06py+&y{}*H-1btN!mPpjAGouVIjJtyTai z(#A5;k$O1#`$fYRyl@^obvhx0V}ij3s(BE3XAl4Ef|YjOg}t>M-R0%z+An@v(w?5E zt2g2GmP-Oa;pj*vMyrFKdBl?u6k}r04RwB7kj(# zUT-IV9gqFaGoaSXX@9iIA4EX9EXo6m`fu|MNf^;+qJc!^c=U~_Yn!fWzfQD{Z%T>! x6D9rDkaWfmI$|@?JC8+MKI|VR!z#lL@CU@#4F8Xk9b^Ci002ovPDHLkV1f`SpmP8K literal 0 HcmV?d00001 diff --git a/flags/language/fr_nf.png b/flags/language/fr_nf.png new file mode 100644 index 0000000000000000000000000000000000000000..bc33554f38fade8491d51787765bb0e5986ba8ba GIT binary patch literal 1261 zcmV|ir(Iooe;=gi=rsxCcm#&^OB@M+tkUska}7>ZREU0MGorTYGli zxdkn4J*soX!a^)AN(T!WjKK)8>qo>-90y}2hbpodtX!#|HZ5&pJsC#97rl_!ae67! z%#cp`V5}}LN(2^{ytB1?M@chUj+|8e%kL>b`MeC$6bcxV2|{NF#2=11=Qc0Z4Ho`raNyT0R2fNP&)gmfX87aJf<^=yDvV0mO!=0E(GIbYKv+ z%@1e*$Gf`t^y$-8=Vu)!0~IARFdh-1V;KWuGINse9OMB%pyx2BY>|Pp+h8`ECJ5{G zdKEwn570AU0gYfW0 zq%=RQ0eD{D%)3}G1a}v8pFZM2+avXK$b+X9VeCA;1f*3$Bcn*&TBQLL?rz{y;6>2Y zP8D~=7vS*9T53#E>scih=%)iPGJ=5s+)qBL0TjHpiMPwe2s+!S;x6WHv_4crjY&TI zhY}k(O9hb0Jv4Ud64IYus{!P{TF+agB7_{@QpHo`g=k;3ks4!d>sO*fr|B6`L^yjl4BUrfYd27197lah*#A4d1o0?FLSfvzy+#Ab*|m{J*aN}w4OQI5R-j|`I%hG3WBHW-m`v%Ka)7@9 XpLM_R!_&X800000NkvXXu0mjfV1!Oe literal 0 HcmV?d00001 diff --git a/flags/language/fr_qb.png b/flags/language/fr_qb.png new file mode 100644 index 0000000000000000000000000000000000000000..6699960364dea92aa0d6d3c25595151e04ed65fc GIT binary patch literal 1391 zcmV-#1(5oQP)_rc{v_R>x-7b_KRICv^Dk6cvMl=FafsiPKqXbc^28c-m)+kX_5K$;t z8x?`p77#^Rw4@0}?n4f##MbReTWMvWExX(8?5uCzYzNjM*i{q!gO`1i_ulXKoA;UD z`~80V7~J8;+y%G`aOVLShG$Z)5gX994LFd>W1(tHu3EahN*MhW95g#R7XQ7*hy*#5g2-2^w3kBW`d%vLQzS z-r8KL`M{?pWKjDDrtd_0605G8!+5OwxSRlNF;f7;J&T0W!dw)6ca|zl8<&F9CtF}- z4ak`@67S7fgLt2SnPZ|Ld3`Xi$klitZ$m}E=I(1ojLe9p_EQ&^BUI0!zu8S?{XM+1<% zZhrtk$%a`P`x#4%sZ7s#QM&gK0od#ZNM9)Af3O_e%T6nE^z~kdG zsQvt92f*k$)O7>z#kUnQK!G1%#5`eD-cpo&uf)KUV}>DTax!?I1lBwN?!rxQ?f4u_ zgc+RIi`Z`tXgu)zs;~N-eW7{@WtB(asVh_f4jn!$M90KX;VzO+_KaAPialUSnPQAa zcrP_U`n?6F1NoHouC06bbgnqg`?&d0Z{;sEcOG$JtGW?O+lyY#vAP8GBu@i-@zj)z^Siu0sux&`!K)*_QxK)h5a!Fz$oJK zB@zQor3yeuLY6QfdKjE;2@Lt)XIK)9V3C(IRV}5*tIh>%aGZF+;y;2qas&@$eWZzj zyqqaF*`L1=1H2PgT7Sj$`rQh^z~mW%c~ByFUI$*^4=iUO%bY(G7&Rz;bf(OAZ=8v^ zAxaQ7Gz-Xjp@fb}MW7lt>Vl8{l!q5$PdB<<*9bs0+N=El*883njO22pHyEHZn8+oA zc!6PWn^vU-%McT7rsJlTE0~$R_HU9;E>;o+a5=BT>FP%PStSTVi8NXc&ORmaf7iN5 xZ>5(~GLXw)aHZ_uH<5Jr|KM7F7vK)JKLJ`VGpi_wfV=XJ-L(-d@DyEd9etewm%w z@BV(Dotd5atqQYTRR06q2>`PSAq5YgH1%zS5sC4{I4NNC`hDjef*{W5Ney8#IfSID4s=3WCkURDWejmg0R|P0fq|;vUb#SX~|NersR47xRk9iI*+)l-ur)hbcMp3*!;$73HI2^y4lj={&v*RlEe7_F;E{DGQG z$$#dWou`@7HEFnbd4LMk;skgSjZ;__8nSlwmgOr3898(isvyHBc--*$CINDDFmmDq z65c(OMFF0y{D#@E+Jc|13{t^e8Xjc!5r#kl39S0XY{ejs_a~=7417*xS+FiIy^dM> zDC}P}V&35+GQf&$Uoy`>k%rdaY*b(f_t7_T`oa|hy|-zpVt@ax*A@FC3|hLFy-trj z0!tRdcJeDEepo95Jhr)kd3L1*)@wslVAAp6cmZ#}yd0q@LvQXTLm+^4y5$jgXb}cZ zoksG<$7F!)@_J@1OmcorC3ggAA~6LoJh&ZAN#G zg9`33lI17xIJ&(sWB_bu2ZZQ&86f3;bYEyjR^v$-AhqNJ=HbPu=)E;Y1+j5jT7SO1 zAS3_-TPq+shQSJ9v~5UELRa%8Jo5D^86bIW4U?W_#^8WFM66o=j9T_T6B2;_@|TEH zFFX_SMqo^whpVktEc^D13^2dw9VUg$%g`UL>4&Dy1f|kZyG}V!MHy6THCb;WM2@4= zD3TqJ8yy9&HBRdc^AphiOFQzL&dC4?g>Nv47Bd{fZa;^fAQ0W3tXJ&6^~y$Ct27#j zWZM%bCLnDn?qR2&PM=`HmGX56U@E9$<}66X_$ccq^s+wXH~nm*Vt>yI#eX$; zohoTln2GHkhV+=`Vu;a=@K8JN+P!si!0M}P7n>+_p;OsUC#&|`YE-Df& zJvJ1#St&q9#FE$Aw25W}&5DTA6jwjS)JE7f#-IS#au;0wj4f8RSNpfKPX)!Z)u$$#N|mDHvvVInkn_v02*jLP0mWUNG$BbMmO^YU zF)jZ4#8i4u>0It7c9kZj#NvqQaeFf3sf<|KbcXMUw0zcoOlGyrI>4Xv8MW|@60_3) O0000v`vg@ zJt|OCKtu>N-r~_(gBta52%=T%fw4$Txp&{&<8|J=_jXyYCTg^QbT*T>^WMySKlA(j z<~Kv|f(!W{;J*OyLLnq^ol>>W5k{odL#ta73?=s2t)U@iv~@Vx*M_nM0ln{C|5J!9 z&NCPjl3*B+h`N|K49m`cVs%wZY}gbg0mKsftZS7epR?k=@3sIB}Mu^CsZjYC)O_ZOsxZECAdBM%z%L@mBOa{zZQ9uDU_m^f!Cia5(A2boL| zj#a{S;wVV41;p!hSr;$YPye#?0n^GNGKAMF|Chu?6-ucQVL`~R z|B$DjytwG$;oZa6eo^_Ie z7UqL5FQG7D(0VGxb&CN;c!8#AqHYH>pZt_!TZ-8K(Ax57Mn5Jl(n?%p#VMIKv>+1 zzAY#Lcqu?I1^BIs17Dx7SYXf$?#=Wxbn|XGu!x54ZNjSDhX4O#O7_Gd$Qm=)7j$aP z`{gW+uWA;M%mqdrPMxix06!}L_K&&rA!+Dx2uxfOBGQwniH68~K0x2!h>x)$s+Sd~ zYHz||&>}9{hV@^(kNn-|&~WuG&RuN6kfc6nzSoJXw^|TvHsI_z3eZrX0!-u5Qd7~X z01(9j%F=xhVt~9KVCJOPS#nvkDSoqyuW*sR2U2ZpvfyRal;4f}h0kXIOiOFd1;uYV^ZV(kKupd!#+yfq9 z#bz~Q|N0qdy4!}xh!8}CnyJY<@OOJRLV^sKxM&;NI~^=0tieY7(I^2FDgcR7xL4xs z=;)#r&?urzP{Ra?Z?)u+aX2(328sQ8;Y@uKzMef2=}FNz!ClAN{Ns3IP&8^T-@*CD z+fu$pNU#AnuGE8XELH##KH{Qd?P%{7e8Ny%pvHpCaKCzBDh@X5(Jv|--A(~zIawGt zuYg(R^34|Tyvvu6BnvcMtA}u@L;)C>$@Pv&U;rRmUm(h^)+joDaq$sm$XPI&0)%1u z@=}CajA-k0V(aS3sK45b6&ot0BZ_TBYmgqzH!niCyh{eKBz?%)`oz;bK#yN7O*ZuG z@3{>FZ*HWAHv*62un-e#h0|4!AD)P^BNx!o&9g+*DqVJ@JRo{N4TXER8`0HR&H&PS zrDayzBI)6y(?f3zq7X)E1g+2ffpOs9l05+k{AsvvWGI$=G6GB19iV~jWbftg9(Y_l z1ZO7&xP+G4a&{ai_ZvF3&ZO7SBw~QUXr>?rB_TcIB5gx~hr`i@Zif>$P8YKaNi1EG zbRo4od&S3=PRS(fQc3}&8>;R(1Gp)GR=t+HpR>4HbZU5uPdn2S7DAqWj;ADe(E$Gd X?N6ZpcdGdx00000NkvXXu0mjfb!F_B literal 0 HcmV?d00001 diff --git a/flags/language/fr_vn.png b/flags/language/fr_vn.png new file mode 100644 index 0000000000000000000000000000000000000000..8623e505dfa6d91bbc506a2e1782f7992966b1d9 GIT binary patch literal 1234 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 VVXL%J9`pbJ002ovPDHLkV1g)p>x}>a literal 0 HcmV?d00001 diff --git a/flags/language/frc.png b/flags/language/frc.png new file mode 100644 index 0000000000000000000000000000000000000000..0b6ba9e689d70f4d1fcc29e4b88392215bd90ad9 GIT binary patch literal 1673 zcmV;426p+0P)p~we|VGg&+ndl?&qF!?>Xm3 z!z2&d{{a65fJue$ZBE?~#zTbh5^)o8`8E_ixxUQo@_5E)IZVa_S+hCa4@^MO={UZn zMC=1l&41%)%ZH@}^jvZAaFS;c!f%H+>z~VqM&EzeMGQKSKU0M13Lz>Q2GD$c6j_Q+*jmq{)x$@qsu0DwGf`e` zLc`VJyL$1a2e$0LfD7L&4*=x6v`76)Nj41E&3>g|9`K!b*}P~dWkOuin{f8>APO=B z@U~Q-!o)>xS{w>8Q&FjH$JvW!e;AxWLcydMNK#3$v+N?OcCQEkWIn%3z4D11=-UQw zs7(a$@uW`UVP1|BQn3JPT|0g}(}frr7nw>I$}ee9GXGJ;$3~&?YCFz1nQ^Vv3a>Y~ zH{+EO>^f0}>b)xi0BOs zpwl;@FfRu@4hLGD9$J$H=c=t_J~%*(T!2I6)u=u2Y5*W<(KdC-oD5=kG-wF8Y&upw z9gFG8aCqqyJYE{gtF&NpLy(soh31wPB*e#oqPbwTxlvu;jDvre$z=@gf~W{S%FfoH z@yO}`z_h2fs*AJJ(LG=ddifqJkRT^X28C3Dj_w{rgv-c_AWO$=u-nGa+|`AdsWYG_ zAgbsn*zFGdQmMn48Y^s$I{{>&Je<0yf#KNN0Dx-2C+foVRP>o`cPL8)6rPQX|E?^{k{BFptxQu}9Ac^udD0pzUimh(*Ln~W837Nuh)q`-@py3oj_%)v@;WoxoVf@T zSF)LyA_t+Pf8bUuM0_?H^jBc|eM101TDUo+e`P`c|^g)qT*Q4*<5`2 zT>~7>z_Z|US!ix+LVv}^0Dw669d(oUW@7*@Dx?Kz zqB@9RBWXDVY*O(omJu`z$D_*{jxJl2Ur!YYl$OL{?(Afo(ipL6N9{O(uX=WLHNpJn z<^TXcYn?hwnm`oX(ztJuz}8?V59NT zIue6e=?LQDR0N8JrNvV*O(lb|dkC9$UqWr8c|0+(NL}gc*JAY2rvU&?##*&VJRQ#4 z8jFl%DR^8aN*5&}Ovpv3Fa#F68)avj!66CBPV@yFHpv@a^z@ielqDm%K>#|%Bspam zd&_iiINSt!aDrVXX?TXrI@oHq`T^3IscSTB{uI(5-C02B9tz4xJ|ZN1l7KuYU7Uca zkrIT8i2I45a3LR^14HDJj*wK|hrK`P$P=ZLZ^J?Jia)b@DLBjqI2yP6%W(=LeNDZu zmfj_G--5B)As6u=;Boxj4uizXS6s&IPK=J(F>JA+&tiv%$G)c>f1V|}?)tC%4T*}# zbRr7h{lmZCnEKA?d+%LDbpEE4NGK7KWgbdre6u6A5E=MSwB?ijV=}2@(gFSk?nP_= T7eeKf00000NkvXXu0mjf50o4J literal 0 HcmV?d00001 diff --git a/flags/language/fub.png b/flags/language/fub.png new file mode 100644 index 0000000000000000000000000000000000000000..7d551faf292a2472dc80212c1a7acba09409cba5 GIT binary patch literal 1188 zcmV;V1Y7%wP)doNb3?9@*l$(6J@B(>EdJ#)S)xkbboAyM#u<5w}cI|VK$X* z42{0fh!Jt3qedu9Dwv`~xYBkVg=Gc0!a8XOWt2gC)a#vKc!e*{u^0X>-#5=ax##md zm+$?)$HOug?|*=M0bp4nJc|>5%lj_ExM@+eT%HB*ce~x=h4O<)ok~NuxC^P%=?E43 zwJa61Smk;1WvKza8%ZNSv9OQCAmk#D-QInqFTGDrN)Rb8`r6=|F~J42nG=c(+uA z%B~MM0oW+b#P8-V6eY=$JOD`!hl8v?9s~b&5v)5V(G{3Y15kK)pcBEr2r;|Eiu^Zk z;&g8{Cjbed3FsLmQIcGk%mCQ!cCzYh7PcrKz)x92h;&bY;_=Z(gdtDikEU!B%1XOY zsXoIAKx}X<^y334dFTKOV6)lCp6W!bHs@g^ydLX(W-(1Wvdtkv#_%&3jrtysmkpy* zU&9GNl;0W*-ZuRMV6j+8Ud#KaphmIorW$FK9Zvd=oWBD0mGStH9|62{0#j2{oB;Uv z_`qtlA|xb)1u&b@p$O#>qBa4Dhtrr*-46ZpWq$mA1JhqFS23dDlrOY z1xVZ7hWy`TOFn#>y0hdQf5CmYs_(~@gTJx>N~MxaFkL|XkO^+#z#~?S5>%T_!*M*uP(|1^JB$%yAap1nG*mn+69i@TdU z*LKK=?{JR4lbI-Uezh?6amstx*K?Q?03Ll&ZVFSUhM7Pjp%qOljFu4peK7R|(ivK# zvj^jJuPJ=M%A~wc759SibB(Cd*pO4)7Ovozw7xNdYSW0000scwosa<%MCt~G2xCze5iYjnQNbZAAMvQ|Bk_sDL(97X)%xXW*$MuboNdIF9*HfYq$QL56 zrE4j-_S*u`*RXj)&K~!s0V0wl|GabI5~9|{;BMa_1YyAl;tMdW8Ae2O1ny~dSpUX$ zn0u7071y7yhUojR#55q@YPG747v;i_=z#X6JqVergn_>iq=~nbJ9Y3A%*d)(Dee&; z1N~362rvCwLIV;O7Z-a=b5ikKs}W7_1;MyVbcM?E!U)Zl6vYe_(f}Mgas$)l7g+(g z$3;P3RfouPXExA)4Q8{Ms67z_VTUISnRB?d7%ry)n@!pb|KHqT$uuDI!%65%Wb6Q< z!ZBIXfY=|46P*B)$wU;Fq~VqJQ2d%Uicr#MB{^IS@PfHn3L%=(wa7c%g~>Bz>;NLg z7_V!DzbXgc*Q;S%43l^x3Y%_Zz<*!#U5q1S>M@BGl@;i0_qEL)A zHX*UPf&olTO%a@y(`*}?aFfM%T-h2e=>x^c@$%Lei*dd!LtD=R#&(dPoepM7)75p!Ld-mPJNd(aF9B9_Jx^4^faE06|CuNR9(sLXD4VOgQzfKk|#((Ry_gD*#{rXJOEHVe6Yc44}Kan`r(0 zC`?z!!P~+?#G)B=8!9~l;np|<@BIcG+;*3h;?7&Z;b3rZ5J^c%44|{Kli;h*;h6O{ za*VUf+OY9yK5{HPB=2uS`sr*|0AT_fZVyc3{`ocr(B9rotk>3|c2o<8+t9K$3^t3g zGcFFC^v{rbQpyTIB(R`oz=-jx8w^09P!O#{N~~?G#9W4PSsOmp6zCjAd2dOPRIry7 zK)Aq)-ho+6U%tfvQ}Jd0yuJZNd(oa~P%X=|}X@9jpMNysS|5 zKg9emY9}C}y1KfzZ}=v}=4>#P8xy)01o&BM~7agO8o%F0UB zJ3o8@ndCJ{RgI7(XE`sF-l|>7U66i>w`HHR0^m>|(oTYGyXRa;L^O(u)l|6Qzh6x0 zg_NFZ6I5uNODPqrsNm!AY{ri^;(02JPsCcj;(tt5^sG4GAM#S*@CVyH?EnA(07*qo IM6N<$f(v^#DgXcg literal 0 HcmV?d00001 diff --git a/flags/language/fue.png b/flags/language/fue.png new file mode 100644 index 0000000000000000000000000000000000000000..f78947fa895b59cb7bcd372277c7e9bc3be5a951 GIT binary patch literal 1254 zcmVF9LAqZZ(F3Syn`Y#Wn_R;k%ch?=a6hhT_$6KL)pwC4iz%8Y;2QhmIWm-n2?PS zWJHsV*bKypNRvUq(5a&XfeRD}2pg~E)mAA|pzZD5X}g*5L1)rV{IHWeU+z7*|KB zW=0-f`+k2K%yaBHiVvi_ngQ0aEc<8sj~5|`4u}4?W*{;QFV4=RzqcRstDC_pd$DP6 zJemgk>{dMgdL<->KMybiY%mxM%2TAO^eS&*PVvA^3AMU@1O&=v7FRiBTOp zf~+rZ<50nPlU`0FfcH{K@S&GJGIae#mv_9z1lI)4&1sR79StQz!m zwtWB`12Hpt1@2)|D?o2=FVh*n6Yma~Q1qHBrsG~F>*o+$qQH9{3pgJv!21my5NOWY z1ptmgm>VmFcw>bXK&ezRl{raBuXup$qdsu<4z(t+Kh8-(bLRfVdu7}h(_RbyhjYxrsoqzO$ zDTjY8?!a>d?M_~EcQ<00>sA1TLcxeSi*eG>j10~FB{r<`6d^+|K*XVXsN+6>iCeH~ z^$rvPaPdS}-yQ7ix@iTF%jL|bk)KgMGy+c8x5S2ix&Z83zaCWV7f|m`0!Qg>+kQ?6 z-U=7A4-X)&uh9x1lgXI6z7DLZmtb~>W{C|Qs#jW?QPzPJsNdWRj<&5AP(~UQ?Tprm zQ6vtwS^=a|Dbw1KgB=$pq0DqcJIh*Z7(*s|pVL^HQTh=n)Z60$p~)ryEIN>vD?pQa z63Hs16`-P`g3%A9LU7pwGp`%bz}rLO5sOG;6=_fcOEZd1?#A71Z-a8Otv;tC=fKE^ zVrCj2PW4y-Ld(j^+PeB19-9X;6Axl4dKY+N-lMno2@)MQ%UU3A&D}%ly+17Nc!NYD zQR*wJ!1MKm;dV3l+qPOJ8*bbJ|CMmCsxb)T_uxU=iN`*iebRG4QN+$Bq-h5&fn*&~ z5YZ|kA^!VdY7V4}MB_xgmQYIMP9(z9Nyh&q;yEJCGZD*|{l{ck$Fc+b1?PqL@Ro>4 Q=>Px#07*qoM6N<$g87j+=Kufz literal 0 HcmV?d00001 diff --git a/flags/language/fuf.png b/flags/language/fuf.png new file mode 100644 index 0000000000000000000000000000000000000000..36c46ade0667a52bab07185376136fc395a0d3d2 GIT binary patch literal 1230 zcmV;<1Tp)GP)%!ZbD|VIdr0E92w$tCQOovZYo<4 z7me8>$&e8SG!Y7u${dZ1a$3p=h{{-3NP$);Q0V1QPg~tmvzXKz$Nun3p5%PrIm!F` zF7Nj~hlN#ctp5QX1b|hAum|V-DfWGYvC*PvS?vKIve|62Mdu5U&fkG+%WX&(>_V{6 z8;#Q!?~I*$u?{8T*BK-5;1T#N`?QZ8AcCT(-<0RSf%o=g7&;Z;X2v6U!3K?D1YY#> zV(+g=d@dJ?*&)UNS`>|Vf7|g$J3zd}Vo{x_Dn$U<4fVDHgw5AMC)@ z6&b+hr#k`0#>U9%+WpvmaU8eH129Zy0AU5vEF5sEwP-Jj#Hphlur7STOnmkl*eDG= zeP43|jEszsgSk8K?AQuwGkh?e^Ef?!8$=gmcz$3RUy2A6_6%V9=3Yhs2+stVmsALg zZFT~vR4TH$axaRT7Etj@5WK>o=`65;OAg}AZw)y4QXr03NzvJo!3cnV;0EZXt|Mn( zzY{<%my?}W-+`fJ0>myBqD@9e8V+~{gV#C(p94A^e&%OJf;+Z=#lrCLFj7-fod7bK zj1&%@!@HI~l;~$&(y;YmAxg{yHXi80+}ovY2lJp${Jq+IpB$p@Yfb>ER7xhQ8__VX zhK)Dsl7?%Ik=PR#2UgZmOlEC$f4UZn>+F5}z>iPB@(tBp0Et9Gc8(5UT~{6Ev-K`% z=+PGJC`RQk9E3J6&wT(750@_6QviNc1eTQjc=Y>jCxBQiCi@2}k^Pkxs#0GlDaw(C znN|)0Ki4~oQSr-S%oG;>i~asvpWs6f6OCo10#R)pPJpJSCel1!1mcoE=AN{ohrOG& zM-(<$Tj>HtIEqnL!4Q5wROJ2&(07Up0EZ2MC@avDJ507$B@uUFjorRN|0KxzJd zm`{D|{tghtJ;#@NWr%9O;wZ=Qb#-+rb8{=$p`ox`?*n)17RN`H?jOP3upX3V0=(Sa zNc{SO`zt`Xt^gt6)8~K(w#|a@OP3vnB!X59tq@u~{P)JxZb(hECTWd0OerltT0-0( sXZ)8VwwG4@17XWo{l{cg+o}Wn0Z+H!@K`CN#Q*>R07*qoM6N<$f*2k!(*OVf literal 0 HcmV?d00001 diff --git a/flags/language/fuh.png b/flags/language/fuh.png new file mode 100644 index 0000000000000000000000000000000000000000..9c3589214df42bb29581a6fe6e3cab973416cfdd GIT binary patch literal 1215 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 BG$#N6 literal 0 HcmV?d00001 diff --git a/flags/language/fuq.png b/flags/language/fuq.png new file mode 100644 index 0000000000000000000000000000000000000000..e1ec7595df3ab77bd6850534126c19f09cb85013 GIT binary patch literal 1205 zcmV;m1WNmfP)LnoV2GeMEXmyiva z*`gRBGC-J+2!(|X3>Y@J&@ya!SuLeN8Lg#Ap|qEJ+v`a9R1&XaA3QhzFXx_|^E=PE z|MNVTg$-`3{{ij=fDMIkEYAK%?spN!PKl&sb1e9P-EKD;zI_LMn*>N)8b_Z;7)UPx z9@cfN_W2w<3w^nmQ3~JOGH(ZfkR-`l0~J3&v{MAd4Fw{Squ{>ahEe4xq7ou8GOR`1 z%NekYTxV=?Q|l%8i!X#b0Aj3GtNi1VeE1O^&^*2$g8545`6(bx+||C~+~b&UE@xzM zURWHAZQmghu$-w!=CNs*u6)S| z05?HaiCxaAxq+g=5!4TPF{zx_EVRW zvskW;#0ieV?Q542e!7MRFc=I(Us*hYwON=9slm2Q%UGlw*>3hk>iBb*3Tr^xdny>~ zid}EdYHfniz0Fg+h+QaOqyV&-ZXJG!?Yz9UvWZV%PNF@ z9h0*-ymduMuh%0WAb}>SkI2-){~r+He#_?7&0WUx2zV z7&!vRn3hDY3fj;*1*mi zS!2Ucb2zfMZwD*=T|C+OhU?v};|Ls48Xx)tw@&oX01}CWXd97XYkMW;_ZZgL(5*Sp znT!hd>6RP%7>Vfv;PngW6bXliOA`ea4eb4dqz{$>o2q|=6JHa7gfHaL@! z_(&5{+A|md;JR_3m+LV7;UEoAUtdows}F-)y9INP+0f7nleB zgy}PtGabiNR#wW75~p$AwijadPdLxn=Nu@uR;~73Nc;px`c5$dz@i?~PGaHnac4my zq!djlh!PL~ePQajP90foijvY<%W! literal 0 HcmV?d00001 diff --git a/flags/language/fuv.png b/flags/language/fuv.png new file mode 100644 index 0000000000000000000000000000000000000000..c89c167151e1f06a30f334ef4be5719d0e781b90 GIT binary patch literal 1198 zcmV;f1X25mP)@*^->p^R#2ujlvfgoM9)j{V_#d6LWbE_pxq z%{})%C&DV1=zoBR0bo@j*yiGY<@*3(7$Ta;%{E-eFwE?`zg$H6j2PN5H_~kqL`v79 z&3|Tj?M&WlVDIs^94_bbdEKsqK`cNVP1Ao2UT#3>)>K$;8Q{)Lfz0EBKea{#rzc_7 zJc`ZF=cC(l+iQR|VhP`zQlWm&;dmAx)#Y;OKR#WKaOx&3JBkoHuYgs$4YXadymspC zV>mz1<~4waVUQ-trolRSXUW}^nqrD6Se0VblGkQ}gxzX)lUBM{kl z_h53mWJRa4L zZb5p{mx453s)>mSL`O&S0K>z>)Y%KgcUjx$!-x6oDR;0x;2sTZ<#^R0V@tZYZk0IYel2ch>VO39zdhfP*Ou3 zPP%TP%r?8ihAm-Ilr2h-d7ukFRL z1R0mg1=#_1B2Jq|aIdzN2T&@N)PSxUJL{*QFAv5bO>;KPaf=ag-o_21LvJb}uRkgX zfW%i!M!W^HUw85V&CSi!;%F%(--lxENjG|Z_mX%-W1G8$3@8aVjB<;9MPl7yK>+*+ zzsRQha#4*`j5$~)~W;i1LPgq@cLx7n*aa+ M07*qoM6N<$g7kGOWdHyG literal 0 HcmV?d00001 diff --git a/flags/language/fy.png b/flags/language/fy.png new file mode 100644 index 0000000000000000000000000000000000000000..fa18738aa861f5068b5524a0ade3c01a63f5238b GIT binary patch literal 1357 zcmV-T1+w~yP)K;fTBS{(jadl$cu{kQqmBlmQ#kBOrfZ#ym*2%C@&@cQDZvR zG>%iFS%zbiS=9J8P3f3`3!>8ba!w9drkV2M-Eq6O{dVuf7mgXEN&LgTdFF0z@AvHI z_q=?6&r#^-i+Td^H~{o3gz|8W+n7fPBNLN|iOK^FCu>gK3=10phwTO!b^tN1+lsah z5jw3G^qlLS-DX8wyA=j+O?U535wh$g?+*2I*Y~od+ytvLlHEGM=!Xqb00Iwu`?)1y zoG+N;Q@ei5=z&hMR__J;*x-+}qNh+=u^gt=bJakdK5fSM$?Nb|QY|(uwV=%y-E)|! z`va>BsD#W8hSnGrq}&NRUR}@_>~8>np;!R~O&)stcN(@f8ou!&s_XobZW@Ks4LL9s zxB(i?h)rIH%!E2@&cA@0=O{R?Qt+A)>fWvM9sv420M`38P{u@XzR6=1fQTb|=GTXh z4gr6u80;XR{XFnn9*+*I2GPq}Q4{2gl$C)fd+&h=B$Xg*MjhTyxrmd69ISuQ7`ecP zk(mzMqJw&j2y0k`4$2?Ho?R5F07M?HnlD5Ihrp|`7}u*=v^KD?x6o+2$sqK(b~L39 z#mv=#SYMWdH6}N}88c$y*I`L|Eh+*oL3o#g#z3l>cfvbTgwG@gs6=0n09s=(OD+sI6op9s*LW@X6&o)_{I!F8*v|FnU6v3*b;yh7dj`21Bl|fK(5(*0Z3s zGB~mmb^`G8Q9nGN7lifY%TZA9D#urb zzmCkJ2DJ+mnUIMo#p@(5PRBs9{)2@JW+E+hqM8DWr3D){euite9B@e5ZtE2D}y0=U2u64?4dy1kH5{WF&>mCz;A9l_b!eSQU z?c&q_dkT2H4%rbW%u@UhYc&@xp zQoQkH3r@`9RVikP6c2Dqu{Np)0KXMDe6$*~mi+1h*!%GmAucKrK3B^7bQo=%cLAps z^IeD0;5j4>4kAuE?;Zg1aOkJqn3L1w0@$-PS(p%=gdr{E|M@u9MzgNce{i_E=R9!w zn{e>RHoUT`Sp|sLy=78;($tmkX`0pbqlXzt%Cjy%lpb`BslwsCZ(?r24fQw<`{Ki- zMtMl~Lkmk^uW7znq^<3kyQWheNCLN*m|c1;9mvqKwl@w$37rfLmSLbHA|p9O+$Jq< z?=65gPX{RT;k>nyI+7`+Y9ywdosVKNzB3Vb5WDeMjOG3Q$E07ceh2s$k^7nds$01! P00000NkvXXu0mjfdij4I literal 0 HcmV?d00001 diff --git a/flags/language/gan.png b/flags/language/gan.png new file mode 100644 index 0000000000000000000000000000000000000000..10346803d44170fc883af92ead396c919a73be92 GIT binary patch literal 1489 zcmV;?1upuDP)6cQeMF)=YFCcgMU z;w6Y0Af^}*MKM80ltdwF3uX$GOKF96VS8`sWv_Gfo0$S#4Iox251!=9?##|P-|u{v z|D0u*nyJB6sv~k#f~f!_$vFH|_X2GuRBkP}KsG&S*dY@1 zCZMYsint0~ZU9nAIR*}Xj^Os)H8#NSuhhwbC)PplZ-sZE3L&2+YOs4l>*5e=6k!ar zo8hLPIf7&q1>L$&K+F?^kiHB0fD7tiEqH&%4FECiCotD7%TsjvjyM-HNV=ROCZdE=9E-ipVew1?m-)8Sp9A}$MX z*Jw!4XX1iD0OOp~x;%A*)e%ao0Mm+=PV-7WgUKYsJ8Dx{Jq2IE^cqOCtS6jNh`D}T z{qYnkcYo~wG}Wz^XDnR~HQY(z(V-7AXakhHDF*m#%4vwZS!5IlljOr)rBQA}FuG6C z4Z5j_5UK{ik`fiO51db>&C~su2);A|BcJN1sQ{j$Hj2_}bR6nN)voUyfX4MJSY3so%$j)rwZ=88hMaH$e#Y!c5mm7esI~BH&{h3@y!$3TFq4ffGmR839Jv zM{9~;>RhxQ>BRi{V-CRaHB04^1&g5d_ujH~tW9zf$>zEw63x7wBD*!m>40y^F=)+R z#E0jn%+1I+0kd)lqd%{7G$v;%E}d+^!w1Izjy|?XE}dHg{o25-o7WN|Dnxe`2@!RM z8g`13@w7+Yii(7+M;oAD@nW>CDrKs#^bGjm2!?)GLcxqc$nfC8*)WzLZg2p;d$d}f zT~PsjWcc<9LOu<}aCS{5x?=DI`oL!;sb6_Wi+jOHFA^=;;C)t`FcLBj?qD~xG8dHN zIq=QCLYZBQUq3mGm4{C|0N*UBkmr<@k*bZ{QN_&b-AFUV^iiZ&bVDpkl0!>DRd9@h z9;4hSrc*mEssToIL0x33BrH89we@^79=MEEhc7w+Uo0$@=N1KF#G`ivz<4>JDrZ)u zlbI@y885bCq`{4m<^o3onDa&p6t_cKrXswj%-#X#PQ&R?2pdkcIRN$5LAfS>8jM8Z z&H%R=g)fCLd|bfr*}N3cKzS!TOErW(E_ArvZph(o)HQWD0J|#kUi_6*>KbDa*r&a!~~U`{6Wt~Mcn;HE)% ziy{O;a!XRqQQj4LTMCsLw97uU@9;YSf`G>UVQg;gvjOJ4SCrMX*q=suGbRL3yfunM zKh@c{F7Q_IQ63BuE&t*Ob%Kb{4zKed$KjW2QEX`+vR}uQ+Y5YW7|)L@@qaeFw82=M z`ZJNb5lLWnNvPV``i!pW-LdV;sC^(QCMzeKPUgaYe=xNuNI1|%)?yz@$)=D|4(`dx r`1*<1>iNO@;#fZEe@rHIOgg|H7)dh!^HM(l00000NkvXXu0mjfrog!_ literal 0 HcmV?d00001 diff --git a/flags/language/gcr.png b/flags/language/gcr.png new file mode 100644 index 0000000000000000000000000000000000000000..5b2484596606e252f38a0c5193a76dcbf92e37b8 GIT binary patch literal 1846 zcmV-62g&$}P);Aa7(5mWPiJNo}Q=RFi@UPPIvGf>TlEGQegcK!YKo-#y#Wk zc)d8+_D?w6qgc6k8GJks8AX97a=>Unqy8j{^9vCf76G+V1yjw_fg8!0sb`l{kkL=o z%=7~!udhAVRdILvGyvC_XX<%rW(?r;5ne02Dh6lT^vF$02Rqsho3$6S6N~X->lw^X z`#uyr10_8J2q8z#eGo7;tC)J0DU`4reHAg!yqMw#(5-vv?B(^#($Umy3@A|nZ){qj z#ki{n!+i~)c{M_b*&X%)SZz+YTsFkc$%V|_N*oyhr}-pQQ6-2>-2%%SbwNfCcteq% z33J11(Cn_w_TQ4bw&ug8@}jwD?llML2M%m5AqQ>@W8kxWa99U1C#)NCnHwW64MuDc zNST`knS;1y_+6OIX2fS#Atw6;m|v}x3;ELhnDxjGG|gEavc1X+|# z)xy~L1`=xy%@+VlcfZFy@V#_=)^Cvn*s&%@ND!yt1Z>^aaPYBkTCEs!4ukjDz_M=0 z=uxQT;|Pt)M|9q6pkzuI_dOSsZ$SVlb76S<7*hAuivYzt-{w{=(V}C(8ZduQLhfF> zP>_ckFMxLZ71#R=xM8%wJLZO$mqSjHSQV;*CYD7~#tIZIT`TAts&`H^{iGGxgcMwV zuMyfm9Tfq7u>CErxIl}pA)BPns>|~QSyp=%bzP~*VfBbr4I@%!g56C)CIh;CS!i

    rw9R+qLK$u}?ZcEEN-Lf8}=s zxo&?823;d4&%A`~XP3j^3dhFW3pn`c0=%^BO&s|=AL%o1BXvWJnSmX@kd6UO9Ik!z z0rKkK5djLGILs9;(xTt!2>3t91$9+R1-WW}JFJWen{)M8cj7*b*dy?pf)m(vemRcc z|1$pAayt@a(Kt{h)|6{oDl;ZyS#HrM93KujDJ%>NsXfW z(JCZAyI0Wfu2?NWg8tQqe)y%!CtMI7jw@|#xaV|}2$1x^ z9xjcPM~ib3U|QPZ!k$vmrG$V@@7Ap^vJ`9#mO(_1!gUHw^ z0(}0XB1sF#!e*egqXYMS+$I9VmhR%>(=uTn9iPmBX??ln527i1%FB`T`eD@0O+jN= zBoZk#TnYvXQV~Z+hw$W;b|jaTBWiE8pns*f;47C40O}Al_w-`*#j7Gfbny;uR#GPE zfL_TM=sfVCAYXrFFSI)*MA*rn|einnah98%}mI`*tk#fK>sTb3G(O7bvVSd;6=qMXgoC5JN|+YMg@k9 z6{{5s@q1p6ExvsGPPaTyZC2Z z^z~t}O@kRE6Hd~d$W>;)4}JHo}h*giM8E2=ETmnqcHGxGQW|dtQuErJCx2Y%LL7TU3nE_m!RO$z$W2Dl@e3kB)%ctCkcBbEt;9j*3$sO1cj zm9xZeMnZ_xCeobb!rw!iAAyujz5X$djCW6bVG{rKZ0g^{f)=;UytSg kX9&+X;)lsCUAG+I-=wOe{{~BjxBvhE07*qoM6N<$g2WeZfB*mh literal 0 HcmV?d00001 diff --git a/flags/language/gi.png b/flags/language/gi.png new file mode 100644 index 0000000000000000000000000000000000000000..d71ee666530dc1a7a5af6f5f08ebf1d161bacd14 GIT binary patch literal 1439 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 literal 0 HcmV?d00001 diff --git a/flags/language/gmy.png b/flags/language/gmy.png new file mode 100644 index 0000000000000000000000000000000000000000..6490a041ff4f7cb67409fa396730ad4d4032c6ce GIT binary patch literal 2668 zcmV-y3X}DTP)C`HwMP(Y9pP_uyqNPyfo$?j(Fo87awv#0OwB2uv(e{`n((X;c;+5OIb z-}8L$_g$>YKN0`4Uj8;+T*i zrs%6kmP`}S-*DG1f0D@(%n@1a*m4aHz5gcu^z(aQtx#gj5rjX$VKSaTA}WDN0>+#a z*hm~oH9Zf+V0TB+a%C;XynZMWFO^3?ElHyxfk3r%gSKQf?4Poj>2qJLnbB>9u`m#7ogS2!K-q}WfJ_M5G<9Y5IH#n zF^mZz1(iyN@o^W-mOKQ4lc+1#Vg9^%n1Ac@7#p9wfbrD!V|e!u*Hxqm)UCR6XV-l< zHR8#)KSwN<#NOXsg$>IW;?4c1G1Hn4g%E}@nS_B?!Y?Fn&L2T#T`@R1IJZZDnBq`q zF~J)QAemwzmyxAJXxSiEuel!A-196Xh6lrB!!3PJ(t2{ad}ey2{s*_c)w$v32Hd~x zAU#N-t93p0?|K<`-@XAp@Z^y)u*0LsRq$~7Ll87tRF#@=%IPLBIkaju(kJM3`=QZl zphOg91xnobqkA!L5f*@BSw^#=u5=Jy6L8;P$5h9pcs6c?p!}3i}qic*jV^UyfWCHw|*I{qp zhav-uWltQ&iIH*q_?G!|G6aIbpiND?2#lS?q{l^Wl%uSEL59TPcV5G~wYS1lX2vWv zi;!aiVmf}cT9nimL(9|F!zl!5PG8)N>(*~1&+u?~Lg0BhLiSF~6+b|ng7`?c9o2>~ z=FT(&D_e2n^13X6XaD$#&3Eug=$SLC!cZ`Y=B2Z6>!y35DX>DJFN8YR@|BCj9-Q0zB3}O0~xl?95l9Efp%L5h9?9JI0Pu!6nU6|QLn;`(mZq??}t&# zA(h~v$=5+41)!mntZZt5+ZRM+=rnXxC|FTKWAiLHy+QQ$4k8i)E?ZcSZo30~IELy% zEq?J)PnN*emv-4g?OP#*&!D$I0NKt*s#B1P43-ppKlZ+_qZV`zaI_s8Pam(5Yq68xwe_EtnBH@>xv~T{ZhXPE>e{*R`@=98)R)}1KXw~FZ9f6) z^ir5iMhp%(pr=|96ebY#Q5GnT@c5I^u|6zcwiYv&t;3*)I-+v`taC3;?B9z~M-=6i zW|&0>%mobc=Pbarzii7AXlrY;H8nM5w=YTQZhAQ5Mw$Wg*eObUz&$S8YEdDBqRxCDN0 z7{#-%#?Y|uy!2q`Bhe?@=r~Twh_AC}ZP>Bnrx^nEJioeg%8X)^SmZFBZN(Y83l1&; zE}n#n+U>F?D-wP$2|_pW2soY;5hP3MHJC_J6Pxs+iULtZ5uTh3Q6-GS&zaGyz6v8_ z38Yf~3;HhuFUy0gYY_4H8<}=o$8pzpaU6?MDz&w>7WD7mhA2AO*-tKOE8W~LZ zsJYZtAwVrSJQ-t4b$~{}?SAC1;}4(r`o))YUJ-}MyqC!G^gl?IGtuNF6Xnm}($IYF z+{mI@>-12_J2Ktr6jsZ0snkRu%6NhtDy(@7CkdTB_SkO^kBhrJ9?v(v3tU7Z`7d8g z7F4L2Py54c6=fAk1c~UTE`GlM=|x;ljBglnIVFwBgw8Gp4j(?vZn|f2&s7iY3*uW| z|9kI--{!inWik7kPd;Y$Y`h7J7YpLao+t)fRG#xp_{=trqsLBT!-f_t``N*C6-xcP awf+IlKV%)Y$Rh3l0000>-K`3c3^& zLB$@T|DcPPVp$x-=VFLEGo)t2I4#zxUn^y9SW*7iV+gnG;-#t504)x_`^30p#q3 znWT977@A6&OL2=Fg!=Rq{14{C8X&TA?(&j&auTi7G8e#(&^XlRix_)!XF>x^d^$Tt z_8dQo)^e5)VBC){FJEKdW)TjD86c5JkYF&# zwFBvN8qsK!0pjsEk!6`{2NXp?EEZz`_u<=Q)VCjvW`_&FYB6Co_YtMHR~TS->^c!g zLuj_UTmTlc5$b9RU*p#pzCb}-&0Y3oeire8d S5&J>_0000lKM8zAq8Ag`c~x6F~DpnsqV2@wT}3P$iB5~5;w zi68<45hBVG0`d@WfWk$$$vQGR_5wQCx^->W+xzg`dj&&=K@;8h!{2iLX#2b8e17MA z&$+)b=;X!x5AY}ebSi`zocqJr4unz2Br;JA7*&xq$lK8;SA-DKe)~0A1xRxBA9T&R zZEJ@D)XbiZ^h#H<3XoCpWJXEcrtPSmo&z}u97=Rx`PhtqE!Z25-kAUHHW(rSg9YgI z-7l!kn}xLUicA%tzbmun<@n79QJXuM)IeWJ3dET1nE!k>c*PI1WI!k^{-dDLmPouL zSg|ZJ8O?<|AU8LW%E-5R-u4T1ico3XoOauNNP;p%B-{3voJj@(zyLN5H#dGX-yk!DN6Emcc|uV_Cs?oE5wf!V*MHz~oR-p#K2^Bf??q zicf~;;pv(?X!vk76u%dY(EwSH2_gy$W<7<09v|MHz6$jV3(&8wMhCbyWh5W9XgRtU zuhty5jC~VTQ*yy|*E69ur>YGY$Yfyj>ysc;a8VW!mLdD1Bz@80Dv9{_gVysSGBOAVZ5n`;HA0y;4N9{YO27}X zzJUb9k~0~SPXTx02ZWu@`_gVbSBzkO9@s7nLDQ-I61aFf7;7ZKSP|Y=gs>uOd%Ib> z0Bs_iv2i*;U0ogTa5%tm+@BuR6W;bfZVRGn!eEFE1YxG{S(fT3A@!$Hn37YWghKEg zCIK%hApNMqp?ri$%XT|bE>vir*{E)m62m>$qA0@S@gN}~K?iWV-F$p}JWM9j14VUn zRU5i%(2UgxPF6sZU?{j}=i{?E+(A==8c688ek9s32-?9=b1HMlg1; z_SnDdk`QI>`t|EbOH0!MN=i!jl#~=$ES871*qu%5aclWft-Zi7_WKG z>LVBoqO!6QnVFe7z{QIf`SkR3SgqFfyQzkrHE+Xz`XmK4qV?z*E!~PBX+hPc!5FCo zO%l3H9!DJ`B68FiJho&7&6M_84Fm!xFE2-ScD4>sTwKg&WMsf*v$aoGr3>!S*(5^0 z)>>>7)xVKyZ8M?IWw*BHYE}~DRsmd$t^>7YIfoTVr+AoC9&hKfwY3$crKK1;bf^ws zTad>uojM0IN9gn4WMILD!!TA?!?5Ke_=<|CwInbG22!gCOU@9Ow|;>}vr*e06AB}= za6W=Rp9gE>pvW`;WENeX&4uk5YG+D$XIpYPHEtoieJN1PE= zaA_Nc(d^u~_K0?3bu6=84b=a7536b4xqAh^ahJjC6VVj%!D)-Z%)Wh*KX0w}!cmdJU7A!?A)ybnDgfH(RScgL^VDhyAabh?}q=xF{&-A z=}c;tV4FCOYTSecqoQ$93Lq3T-_zjT)t7*WUkhMaO9cGK&uHaR)MNzc`SBBxKf;L~ zkuf+`QUh-Tm3LR64q$v?79SBU;{5(YbOL(mG={W?ma)@A{J;7fhlaTMGq!IbJm=t?bKT{R6?LLT^<%{1lA_f55S%h-kpYa0p6fsHG_ zMMQcJ2=1GDHUxc24w&&GX((sveW_fE#2k?NUk>Lq_`Tkel({8?m3P@sYTecltjjow_<5;CElEbN`>%#smNW N002ovPDHLkV1hO5_!$5I literal 0 HcmV?d00001 diff --git a/flags/language/grc.png b/flags/language/grc.png new file mode 100644 index 0000000000000000000000000000000000000000..96d4026dd763ecdec7f6bd765806b03bbf9382c6 GIT binary patch literal 1785 zcmV~d521j@k?5cyq|`*h@v2rlow|WF))bqi=LBkw`EY3@8+eFf+iS$;rt&@xbu# z@O=SZOi3X<-G{mxQ&jw8oSt?C=u8+KAR<)BiZDCe>`atY7&&(G{vcw~W_Oty!ThsH%Z))LNh_TB zd(|Lok{=^C=OpXWqS*7n6_Qr@(>JBU)2D~jI9JkMI%u=@x31>pc6WEbH-M9q6MDVg z0`Qw(ZN@D`$9vm*adUR%we8C&F0MeL@8a?JFr2)W&{kW-iRwWT<6=>|`|#%v&I=<( z4(#;h+y%(qcj&Gp92gkD%gf6OuqyK}nq@(AIo;mF^z^hP^m4Hs#CmoTuOo~V6amz=eb`Hb^1fo>-)8Bc4@Cbk0 zJVH2Ia{)uIj9G3D#KwoCxpa=!J_QRF#B)WI*N57kK2Gn? zumV(8exV5p3J|qvv2N0)@58!tc>hhV_4m`EbK=q^C9Q2nLLL#5(T`hf<>nRMwyO}! z(Ae0>^UptF1z7g%K8>TJik?ZGSO${_k<@ZE%hTRRQ7>GMYRsL>4VO4pSjjV~j}ziA z73Els6lY8_BVOK1Iee_1*4A!b*t`-~H$SAx2D%#S`KUMTwsVz(0(YsB@$oS#55H&y z*s>*CGk<=lC_UQ<^j$wsWmz#Bwng#AZ@cJhYv-j6OGI|hLR(WxROmcR_Vc;kP)?(6 z7O79J7MoEOb(gQPDDEMCzs;G~chs>q{Tl+&2>6Kox)dLm5d4a>fj^S&5t7KWqr;)&w`qo8WIx|tpKH^rJDHocuNxgx4iT2Zg%fEKuUZdsT+eSIp;v$pUx2* z?oU#30H;bDS)aC)+=2=+GGf{KS_Nt!cQ$SaWN~nh*nmbTJaO=@iJ6nIs;Y|Q9{3-Pfqu2`XoZZvK+aib=pF)WO6 z;d3DybYWsZOe6v76iPIN+5!#IKwC;Jr7eAUr=t-Tnwmn(!khe=S=_njyZ?QhGZgaN zsQ&=l0U)msd~oKcL^*^>5haM?d_bkMP8)!T$&9#Ao?YbCknoa-LqG0T@c=q!z22!l z-IdV*$w)XW09wkXpG(iWp|?8qJb=Mz(b?6fx)2^4LfA8jgcs00e1MqC0nhbYP#E^C zvw+SD0I4KcQ!|#H69CR-J6PKD!Y5> zPs^2DUIJ63;l~#M;*l_y@Oi-$mu}ij|JLHZ1&B1IU?frjU@aKr5{n*)D=N1vDDOtv zQJTh@dm5sWGKdw5JUURa6HI|*o9uz1r`4QcZ!J>s<(xP`F-lB)cA)vpv;Z*hXcuQO zYRM5<$qj%=2F~tA%lU5tz}ub@uF*u+Ke?I{0MLaP8C$@S&P4&BuUp0K-=`vpDwZ1u z=mLEF6u|MWfB?{YTgDx%my=DimKy*{j1Sfj+Apo70ZcD$7T8*wB`nDVoX63r7$ri)UdA|e@b sQyKrNi1{<`-xg(g-hWK;+VT$Y1E544@GD^Q^8f$<07*qoM6N<$f?jNMApigX literal 0 HcmV?d00001 diff --git a/flags/language/gu.png b/flags/language/gu.png new file mode 100644 index 0000000000000000000000000000000000000000..09a376ab7658611bdf192db11534337e2e595623 GIT binary patch literal 1927 zcmV;22YC32P)6N!8Nh#j?bm*N#Ai;YX_})+nkFIpnp6pa z#)LWq{lL()N-#}qQ)y}19o@Rpme9=I+?;LVB#qNJu^l_{eZ1yxyNs2Bv@b0Cz(0PZ zSbE?8^Ly^c8rJw|{txhB09aFqqH^7J(SCq11tEDMxuQZ_;q-yXnpl6!etQw1DSztm zDXH_`_w~}%WdnmJ2Kd;v9Y|&qvCI-P^C5Qc+z4v!x@3hv4IrET>pkko3utfqQF9TX zEBoq?y}HiNQV304cTnNq945YNG$gTcHLCF3q2KWFo*pV(CMH8y2_@m7JG;><%KI=| zgT~cHZsaB8+ke_!1lW>3x&NZvc@KoIl%C0GjAYPbRwLxIx$=8D9hbv85*Y)}9{dRo zQU;DHmCjbOBS$cN>OfBs zpeON{?|YQa&rn$QkrRriSFODK>S^xXa~GDJ4_POnswye-27Z0;X*6*ko7-wI%T_Lr z2AK+F`N4r7vM_aqnBL9YxR=>EKdoIm=-=6aIlFW{=dMFInn;Zt!*uu0x0V1_j(o>s z-gFmg)K9@&#mLkue|_x)jtV`Wymc2gvz};5B57>lSC4%gSxuogC`|ii=t>(Um9;T~0 zhE0ld>g?Nebob(HXyNdSukefC|M6eeYxSitM59rhPG=b)5D0i&E*DcH!<;|Kp9TyQ^8hzJXmIsUi}Mv9J^) zp3Gx*)!}O0%H9Vby&(sR5(1+7CXL$R~;~e|*F&yR!?)&^5 z$Wn%d1wWMyPEuI|Lqk`1>#Y%FQEA(^chJ|}P9c*;XVl~K%@K?gI5zMGJ8!*>x=q`$ zxLbJO!F@LXEG{lmUteDa@cDcmx7*FB*9JNCv;Ek$DZInuSmXka?CYn(Xk>nVk;+;N z4!ebXB85(5ds>yy>P6{k@4p1MU;P#*UwRI^QD$3*oBqCfY)S>Aqdr`90>J4IeN@Zv#G-gU zN2jO;i((+Tnn15HQPo__LLkXXs+P%Mj9t6?x%KYdH-%tkW`_3m_A-Fi>-Ds>w3Gmf z=hVw*vE)}t%)UcBd1)^HMXFWb)x%4$YfO7n_Z$rbIeW7i$S8WzPXZM zFbwwXboTF|byLTG=tUYPCnxFd?k)oi4GnoZIy&A3$fmP+&;5-P&;OPNV}dQ+>xd;* zh(+UU+R{!km1XYQ3I)kPQ@x3JJV{_~k>-sZ7%E`kOGgJNrDX>%k=|Ar?yEtgFRnGH_)!MqVvYZP!vE z`owZDNKao66SIEi0yVVl+JoI)S?Y}MJto;)0=RVP5`BGrWq`KtHG0;!HM9kYfhDY!b|ksjm_%n3t+v6XLlPIpVsX~B)-g5}WjgNSNazeH zcZR$se*-{9O_v~M$FDN+#7r5W=~1_*YNLx>J|}8BUz`^ro)SAFm9$HCk&q@#(Hst| zECyX3MU-1!I7_dWNsC#L6OzrQ1&{!-$gGMg8BPW{?+PO6rJJ@4qpYwnzKHMOd>LTf z*Qz|uHoH)s6K*XN=b|cK*K~7nBEXK#ow$>6oHhlmP9sW9D*&>XY!>ttHWsGCB0r*} zMc9(n8@Mn$irc2)$*UKzbQneV6LBv^LQ^tMFS=o9e3`jJOJ#tXuh>1-Hj5~)LOBn_ zC%3H9?|0KF6p+eMYc8lMPEY$d zmY>4dW)R6L?v>P{`jT<7Rwg>WO5o{831Ex!0n8QYH6lQ1(R8~7gD~+O&B^>ommZn4K#s5)%jDSBxB$eX0I)~Q~L*J|ub1;vpQOgUc zB!a7vh)*O5Kbt6x<1Xu$4PHr%+|uqL{)!O#7<|LJ6@zHURn?-_Gii|vkQSHQEEO0e zEqaqeBAzPsg`8+gfru)4LxIK65*J3N8LVF*t*AF9fLaPfDby=}NS79pCL!%Y>Vz2h z-!G=cS})G#YeL3LOQ{g25HlalX8g~MxLEVy55-!(=08l<^sG6+KL9I)`u}63(@p>Y N002ovPDHLkV1o02sUH9U literal 0 HcmV?d00001 diff --git a/flags/language/gug.png b/flags/language/gug.png new file mode 100644 index 0000000000000000000000000000000000000000..27c127f49f9b97199f303ff07510b6b12a671b15 GIT binary patch literal 632 zcmV-;0*C#HP)>-K`3c3^& zLB$@T|DcPPVp$x-=VFLEGo)t2I4#zxUn^y9SW*7iV+gnG;-#t504)x_`^30p#q3 znWT977@A6&OL2=Fg!=Rq{14{C8X&TA?(&j&auTi7G8e#(&^XlRix_)!XF>x^d^$Tt z_8dQo)^e5)VBC){FJEKdW)TjD86c5JkYF&# zwFBvN8qsK!0pjsEk!6`{2NXp?EEZz`_u<=Q)VCjvW`_&FYB6Co_YtMHR~TS->^c!g zLuj_UTmTlc5$b9RU*p#pzCb}-&0Y3oeire8d S5&J>_0000{=V;lx?UubLDEJZjRlpb9O7zHZ`KVKJ;AvU$%4a^E?0hoO7PbAi=@> z2ly8N5(+_+OTI}gAWVdaBMQ-kioSidpA#|rh3Af?PynrK&k?7pVw<4JJy&i)d;Vk& z1u!~xS6fv(%i*_m36gx4(Ev~L9q2BcHc^0ro?Qn!RolxDc-t)qfIL4Jp6e}Ga_LMV z1t@%1xtGn@x*36PhcE!SI=sJq4|z?EMNt6jjw)7Dwh4hAr!W9Za^P-x0MpfrJb>5h zWfckqB9X{1gXwPr5)CyM0-NQ(2&aiaFX8!VRVkP%7(!^B_F^go}^2c=TU0}Krf zv8k!4F#%}QzOKVH=MA)Ne1-+d^J9+b9qB{K!_}xNZbF`m4CisQ?VLMoDCEHs9juG=uD7Qvv%Ly}mAAQ!~pS2b9#S%=c}wbMG_ z@pzDxmBjbke`x=rjpB0OVz(s0~EmRc0;Sx@&I%_XFIvDjpzZMGc!0Fe1dwF#jKhgtR_BnH`^A)$sty1=Vbt zya*A20La^ecf1o{I!{Fb3S{~FJJT}Fm_v3nA!39S?8m_l1m8A9k7J`)zt<`jF__^- z_~#CgtXwz(&fXYpNVG(HBDw_VKJ&L5Q#wt$Zw(UJqfIH1k|-I%bjII1;!z^+Khc&a f{KF)nk#K;oY%fXhMYfT500000NkvXXu0mjf@!^@Y literal 0 HcmV?d00001 diff --git a/flags/language/gyn.png b/flags/language/gyn.png new file mode 100644 index 0000000000000000000000000000000000000000..a615769c6300b593f9f4f7f8532db20668d3d2c7 GIT binary patch literal 1228 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 literal 0 HcmV?d00001 diff --git a/flags/language/hak.png b/flags/language/hak.png new file mode 100644 index 0000000000000000000000000000000000000000..e2cdba4c80710b07e42e39067df4dff6f1ba56fe GIT binary patch literal 1898 zcmV-w2bK7VP)WA!>O z|LI|G;hI%*KYn)H^Yk}A`XN7e1-WYD$CZ=~Vpbw#Lrwv*4ow{q=dO}`zZKW^GGUh; zBi@c=Q9e_7{N>+K{j*=T7F2ZJe*U|I-hBs1e-K2ngX7^W>UjliSulv;NOmjabR;E< zxhhR=TE>veFmek>))1Kq8;(8~`g~pKc3uBe<<@nb#E$=-+82J)RRHLodG1^N?nl;R zXeKPRd6ab;*-4sKc-aU)SW+U^D28?`G zxI`){FG3XaNm$i=1+_nm#poa!4wF=^G`6os%L%Vpq?N=eJZ6;Eb{0Nu-zAV#Y?kG=zhJtW zAz5`F&8F^;dtg-?kvCpt^{!>+au5c5;%%`2n&^X}paZuFV>9-b5nd6A7teX^LUl(Z=$%FzN{lqy29kE>X0H;D9UQ`6Cq|EPmpalql>Uu zyk;s7>jET&caxcvr<%;U8<6pf(sU5dG*Ro-MenF#>hI^+eEdua;BR}j23z~KFkze_ z@sJnnI^K8ZX{+)Q_a$kmv9s8(lA7#AOKV7aDfpR%Ic6T7BirG^NSP^{j?vd(khC;o zjL#6hAVQ^7kTOP5jCO2Rckw&fSH<|{i#&Aldhug< z`zpElj!J%$6U&y?FWQ37y#7#SXB_q+Wi zfY%=k1UuHOK~F4|%1T_Qs>_(45qFO#p{|UzYjtkUNvN;QlMYqmbGq+hF#HQ>*&L1o zF6woI5EkO08dBz)l;64^+-V4JefLAuP1vj)bqoo5HPcfnn@tHmd?SJy5|>4NBDOZsK}FZxlfryHj{4|&q;M_X)@hOx z3G`7PX1xjH%4i9|?qFbIlBeFkQ35#D(;V!ruR%|zk;G6_pG;y?g|+9hw0vE{U17u8 zu!f1LSu%fJB)X-V<~ot_nFJFjrpRAvL|#8fbXlcsTQj%II!I=R@I~XKM)KHq3vW%E z(dN6zpSxCU>%o~>_V-Vg0FDOgf_>GMq?AQ+dlkGPk!m6jJie%~vWARznT~I4WbBV) zq(x?K44>!67C39iO8+Tcyh}-j`-t~NG=t}0#-ot9dIPZNx z=hSie-yd2T=ZB^f#f4;*kai)pD~0;MUQ7$NWQ5!nGFn_pg;WS}@cC@U|JsNPHNW_U kSj+GEACr6f+;f0`0<*L0|0yCu3jhEB07*qoM6N<$f-T#z-T(jq literal 0 HcmV?d00001 diff --git a/flags/language/hbo.png b/flags/language/hbo.png new file mode 100644 index 0000000000000000000000000000000000000000..3be203cd91654759ae03411eb6ad8b91a1c9524e GIT binary patch literal 933 zcmV;W16urvP)BQqP~Bo=B(D8317F@9+OvS64@?tE+#diFhf7*Xz}^ zfdBm0b4yA}XliPTy1Kf4;4O1sU!T3UwwBh`)-5-EF~J*52OU^{T2W z+Su68w8+iP4P>PF_;^k8tX3<{&CQWqw+H}5cXxLpHa1qXw^BlW$}RlRJpVXzxm*CZ zF@V$Q6mfBJn!MQD+@!IwG43}uHd0|>p{DuLX-Y~;QUI>5t^{OM_wBVOmzS4xe0a7Z<`{FuVyo z)pmAvXn1&-?(gp@BO`-OPEIH$CdRh_03RM6d}E1;iPX~4LV0<4Zx&Yp5I?D@sS1Gf zN?=kj1z>x7do(yWNY&NV96;^u?Y;#Z4hIbl4G{u)X=#bt+S({5C+Cg#{@=g8zNWOa zGzH+`;6TVf-VGwikKBdy2)^v>>=)yQhld=D*b1a{pu(mC;CXg-MkbR<0gxVutgI{_ zKp+qR%*@O%Kxb!XK!AaP0S2h4sre_s(a{kUQ~>ODyMScxDS!ngCMH<+`T2R?0##;2 zbWcwYRaREg?CdOcbaW6LdJkZKf1fNCivl1kpvce952^rO9vK2@o^!XQ4 zq}p%UaI8A`QYsq~7B`Ym+>F&5u}e1Rm$;UP{f9|dE$jf#0TzewFM+k(@%Ehg?4|7;qJM7Mv~ zFB7xP=_GDNS&WMtA!cR)XENdZ74NS z0P~9tgIG>1g@vzVroNF-%#W+v+jkWpK8| z21WgjkB>v6(eMC6LqjZiSkU3Z2GkL-?<)sBX?Eh<{Y9vGPL0^>)Yklq7q1=a#rrin z9DdVqzs+Joq1U6qA0qB1*XZw#0;?rgqPV8Hamo{cC062Yd1UnC3 z$9pwe9NL}7*%(G72;g)&k)NN>1K4af)?hFQMu5s?djRizb_2DWvT^)pH_jX=LZM-P z3LMkeey|t2Hfzvy;SN53cNNwf<$}H_fWzT{$zUF)kf33ML^1=NYIcCg;!b|r;L?YpLx=?5?u6C&s zF(y4dn7sNS4T~lNYJ@mqqF0~n=9-;$WQA$)vlpbw~sElJ3 nageC*ktoZP{$Y|-NjkvaF07F7e_Aq)00000NkvXXu0mjf`F;;l literal 0 HcmV?d00001 diff --git a/flags/language/hr.png b/flags/language/hr.png new file mode 100644 index 0000000000000000000000000000000000000000..c5c07768806260e53bb1e11a189393eb42fc3d09 GIT binary patch literal 1373 zcmV-j1)}F7{~v&r7Z}RYK3AeLd8-L7#Q4e!}(#j3^yY)af|aM7!$rQonvvY(P%camuRAH zi`jgMZYVKohRbxDFWVF*ii(%5C|t2CgtZJ5SHW8Pa(j2qJM;J=s#Wfhh(2NCMjZt(cU4sU z62D~0eRY1bvJ!?(nS`ELJz``s%D^0lYB9{PC&Q1Aa1b$La2tnoYepDzY?=zB=dJ|Vv|+G_pF z{}4>7%uKlV?SpCS);#(=uf42{*Uz61e{1WI3hcVB#kATZ=>64?KB59@iv>Lg4T0Cz-pv4nMT_{PIdkB5I0m7ralxm>r@2q#tXsmgBgavAgeYM! z;XwH!WEyHwce)re+cqPVI2wiC(a_%(5IuVVX8!a8q9-Q}d>Gcfdl^7i zR~N6>>*a{=Qo!evuOECZ;QS2{(|pz73oz1S~5hJqn;| zKj7>D3TFV1PX}C1pmHDjCRm_Yu>z{6itacY3ZT2Y8zz&90XQ5E-e@$20o;*n=MHc$ zE=SNf0UUKoKT=QtoI3}+_dcXIUWX*Kg3Cykms6?!Ed057h}0;6%jJUEY#zt~LEuwT zQX(p#sjCBb@)Rj42~t!PE3IIV2%%u_g@`h=KM;UK`Xo|OK9cFfDbU{D4y)D50BklJ zpGGn>k^(VaFF2AT@OXf@IM&(J1ds&9(+TgGF~cfgCl!~IlfwWS z8XEYFjEsl?qlna8O%1DQ5+$o86}!^tMUkm7U=k_m+a%M6185}8!(rT}#1T(=HbyOu>yRybLKQ>Rey;ng9(rBrZ;i&f)l zYYW;=uV(WyWZ7pz}-@pJ8@?Pc>O;&jOgArx3pI8pj5SB}yXjNn`P4UpmUax-u+)TBU@$OMv_GRt6AjDdXeDSrG_|!w%e~@5J11HnE%h z9N;3Ugm*~}ytx*h#-H)g3!h+vHWl}3swgFHT^HbKWt&m1I<>S>GlobQy7&HHq}Jh? z;)zIau0eE{3%w6Lf(w{{Lr0ys9NTx#@w6#OF8O{J;BWg(-j1`C$%}1Dr6OV({@aa~ zp(utRcI=T4B(z}Z34(6mbm#c552iFqTJN321o==(Y%H-@+@F*2pC@9ntm4K4aV#J4 fKPDsEMjYS|P-F1$RbH3t00000NkvXXu0mjfqm6(m literal 0 HcmV?d00001 diff --git a/flags/language/hsn.png b/flags/language/hsn.png new file mode 100644 index 0000000000000000000000000000000000000000..4391e3a97c29fbc2ab0686e774b95362e08f199a GIT binary patch literal 1855 zcmV-F2f+A=P)f`%0ahnTC+_?js7AQzm(_pCG)NWEIO+u3fzMk72`$R>ki8M{y!iT-` zBiqO4ec#`CF8}8>gH;~P{{g-Z0ILd7-ke`D?tciQlc{7%c|&LHr$>_i^3?J)_CJGK z_3}|yd6}l$Kl#Cg^O6 zz5NFKulzPp256c6@uADEr@w{b$dx-c@YNcWxuwOd2{57yVsHwj;bySa{V+E-VDTzl zkF`U0e*#-;J+fz-VBK*Y*^dJ#Wo7WZMzEUUI8gy7m!F7(>E0G3kG+YtKmWs~GC*te zM+XL7Pwl70hbk^+%z$-Q3E9&kG;#n}#lW^JhWxd8u!0lvwPpw{S0Rr!lZUv<2CP2| z@t$d925!RBvk{rU_yCKQ*2@D~&B(H)A*>G}dAtv`zkIE&4A3@tI6#E18MFQ7!5$eb$Xc&XEMg>!v zgBHu97_R}`>u3%SF|Yyg6K|p6=<8c50ON=EhpQfc3hMkAEccV^YKd4ug<6?qkvk_q zN$M4PhNb8-UuK}GJ`Hi(1r(G3^nMrQgaeX#4(v8BP(2P#uz=AEP-Fq>g>cOaKIQLG1wWvt`svg|tjhH$80a{-FvjH%;|FLl0 z&Th!j8G0%eYJwJuv*0}%I4|WyU=sw>JAf+%UaCR*ZypHh3~UdRL(Z}gdNjyqn~)kb zO3uA81)(EKDPkheX91YD*55ws=`D7TAo31igG8}2&ORy zVQmc4f20uEe3&}Zk8Q_J8vy_4-5CzFZ-+8Jx2$M5_H;q1{sdNmN-^n2{#_kPUW2V# zhW*(DU^hWo%prHO2H6R~vt5F;D~jSp4+_&UXle}{Pv)s`;)wjh2e-Ed6XyredE!$8 z;G;*khnqKVfw~Z17NF4EgPIMO!0{tU%z2=mssd)C@IGvZw0(wRE0LRvNT(Sr{@My} zcNL_alVD^XI;)WO6sQ`gl2itfSIltO{D@o%qx-J|2EYfq+rk?|A*kupin^`qGEf@? zqSpiI z7#!H4eG(j8SsC zTj6_=z*9WN4v$o>RqySD`H30Qt^_pM292{rlsG7Q43`haVADi|qqnesaMA$yQ>Z4~ z?)NU=dTBTx?LgI&aq5bTNWNu7{QU`Nj9jTtS7!*--^+u|NEkU_bW@Yx5BJ{tAbCk2 zk`81p&cfeKIuIJgwZmyJ=@QQ0j^l-)83W+eU{!dV&q->kEDOLj`cZep4LzdcX5Ta& z2S}rNN(@DV=aDXWzbivc6)^F_g=ObkT7sy1&IcwC#r2o6BzP&Dn@{23SgZoj`nyKg z-~(>!o!-6dA_P%PE<#OyHBVTF1$BoWM`m~&3-5ig;{3G-x*>Jym^^fba!tnBg)F{* zBUx$3El2C^ml;YPsx|yKhk0!s^0PN7sj0=QDvnHNDhHA#vJGX(a`>>qY0qrpDng$x zs&^%dnR-%*S_rMFuDCnTQx+=a-^))~B%380tsF|pJY-h<`zK>=>3u~2o7K$ueRgqt taxS-YUpbbEuf?%^)&H2R>R5Gve**h1x&Iqw0xJLj002ovPDHLkV1jPIb-Vxo literal 0 HcmV?d00001 diff --git a/flags/language/ht.png b/flags/language/ht.png new file mode 100644 index 0000000000000000000000000000000000000000..7ba2ec1504e94c44200b8b5bfb9a5b4f1290c8a3 GIT binary patch literal 1987 zcmV;!2R!(RP)^E@NrHZRHl0lo|Xw-q86T>h!azCf6)Xlc<>xqzkHe|k1_J5Imzm&^4zfSPST zKHa~4YvbqRX0!Rv&hAT;S}Y>F3cKFS!Pozq|9;c6_c0doi5e!D_IhcWyQCnmFYyoQRe+p-XvCY9ku#7Xe3Hnj9XD_%wpUW z3b|eke=ER3r-45naP!u0SGVMTY1#7Jao6JyIr&F#=$7!AOavh_i+k`ShrDl)Ow6#@ zw1kQ>3n^iizfYded){SThFq&)H0b5B{}M`-j*XV5a8|EID^(zs7T==6ym~!vzUyZH zYinEc0GpmZ;(BC5BksQNr!E=Mq)4&}7D(P8C^ym(U5-pXOz%_}A=1xq^b`6b<9YA8 z;&LjB?m$~yOTD3lbgGhtMQ15X1-PDlimXI+bI;sz)|K$~;VusDy1xLh{)xk`ht@UH zJ6HgaNurcwyGc=kTppt-{u(~d3f#4i=1-D{&v0sZ7xk(OdH>$TQdU(yE#47bUO8v~ zKFn2T=u|&PDy0$Mc$lzcF6nGh-oL)Ogm;g2@xh)A1%S0%-*K&9)5zdRv#!A;ea$+XzQuVB#>F0D6aV4~!Cf@y*G4i3`kbMoXeDOF=fh)N9f&;2eM z`6R)332K>!ITb~m_^68y4?J1`SoYwbT=y(*WNdPV8f`nRru_^IEurgrHHRnFXpMu^ zYrUNDI9YBFuzl4vOuB9|ibNhjI;+AzGnbvG7IAjW$cidAy@CZHP|XHwoW=!%)Xcer z%fE#Ip#{5D$A@RTIRD(&R zVD5|3zd4DcPKp?x$)OB&2c_agE9OP%ee_gWSZ)b(e#l55P{NL4KU?f!Iz+|hp`ysB zr^j`Tbr%m801mZ$-Bnprg`(>!ZvO-gcixLfmtc1ad|@+I{U~woEU7j-zaG(`e(@PT ze&KPNR){Yp4xS@goSL=hUVVYfC-$)G*mcSjTD&u6OeH~{QD((Eqr`LJxcCC<2+V0< zYH*m1?SCl%>~C7_vOCH#jtmhgHz8=U6l;?V){c_V2Cx?S>76i>kmxAa2QdxX=^mCb z@2&yFJB#O-g6c(OOfOb4-j_form&$r#K^P(g+2}l!KWU6V-nxYsC37V|}rG^l`g91et1k_96(l=isF%hBh z=P!$S6_7t5LtbwrlGM^Mp(YwGVVPG;EK!O|5y$G+6zYslLx*R8Z}pxj0PL=6b2Zx> z1k!Q*+6ZB-j0v5bDzTPltO^ACotR3^Ob7d*=L!x(1g$TE-Q%NFFU6IvAZ?QosMb+r zz8AT!is7#FnBo&m`O+jaGMr+Kkc$eaixOx@^;{htWt-<>0pN9etE<&w<;KHG`qEhz ztJ_H1Ybm!G(P`8q#WEUANJWJ_#Dy;WK_BV~4V44O#C{>6uXYVen_5hlj*6-_jAkpv zVr!mFW|@vfi4Ko4*5^jmbqznD*E2*g4JBOw+yv=RzOQE8P_*lmdIhpO5JEaCz3 zDIFQ(-2V6Jd1o)d$}(K)K2K1r z2g#`@S&M;ETe+w}44c(KgV=r@MjQS8{pbw_;xjYElC#v$sbui#$6TD~L|JJ=DfSLQ z5Qq$n5%7=WQ6^azD8k;8;D;f1z8x?4RdIcXR3^)fKL6=d_1`UVQp%*${3OzwA4qC) zy+^ci(Nz5J2h-dsb2U8I%iZ~*RJ1bDa=rA6n2i555zmMg{8EhNxBZXFZC$q=;GeS) V91bQFQ?UR5002ovPDHLkV1h66(`Ntx literal 0 HcmV?d00001 diff --git a/flags/language/hu.png b/flags/language/hu.png new file mode 100644 index 0000000000000000000000000000000000000000..8ed5397b7fe89870eb4d6307da8abe55eaba5f55 GIT binary patch literal 433 zcmV;i0Z#sjP)v;%rK!$rxTzlMn4e|m_U0rVX(@mldBG_4^3UIecdVA27ps^U50 zDlq^#Q&j;{2T)b3ekrk9t(ec} z&(9sGmDXAqz((_O3q%BW4|PC9wgI9Y_z&P_JMiM;JDwaJ@OvCW#P{y?eEYK4cHqyr zCTmO%+~L|5s0e>0lWR;8w${)s096JV5es^Z+|jF1tg2)cGzh@10W=k5Eh8Ru3)Ctq z3eY;h%qnGZ5}E_%24D$z3>*Oaz}6 literal 0 HcmV?d00001 diff --git a/flags/language/hy.png b/flags/language/hy.png new file mode 100644 index 0000000000000000000000000000000000000000..6946f6a02e2915195820b1bc8b3462de28c301ec GIT binary patch literal 1831 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 literal 0 HcmV?d00001 diff --git a/flags/language/jp.png b/flags/language/jp.png new file mode 100644 index 0000000000000000000000000000000000000000..10966a2af2ed8d5cb7d6dd6bb21a232bb3be1066 GIT binary patch literal 605 zcmV-j0;2tiP););FQhhyH~=w)97|^w0Ds_>?|XC`J4NZ4LN= zO=&8q1YmaV2n?JR;vZsO{o7W!)mAz zU~Eus;T90nM?j_k-`=Vh?k4!pUbdZmg;Tx|>K0!~KEG^Pk=$^y0i!Uy5bIp_PCJmyBzzSsBCw3#WR{VfN`u62%24+z6l#heLC7GMRWMk&r0#V!;VF0)z*Hfn#Cm z^4fjS`MJcU&TR&qa3esZ-|w57xGgsK7gx;7edhF3;!xu@11>n>HUqTVZN~w3X9;IH zI6juR)Va-olLOT2b#rqx8hPjFNTSdS7n~fRR4SPl@WJrR!GT1f7cMwCz}?y!4Np$! zDIWI)xZvaf|D#bF93Il+&WYVwOUPZvlM-^ z$1E&JT>&ax2 zQmK?0v$GP#emLy|364b@2EPpA278}O+;VN$N3x*xLbq;7q@D-^Bg4T-w0000>ep!|ro4 z#$;}bZc{{Y>RgyI6_kq(rX_-uf)xuW0!PZVl+w%IwlJtT6_X7=>`9(9=RNQ9KEL;W z-pf+~hS&uE13V4@Lki(e&h$9_AHukZJBZue3FR9zE;L6+41c7NHYvXu(B>3c9x9d& z`&{7$&}L>`y&gVM`$zz>qRN5OqZ|*6bMQaFFJi|CH^4ZeKuJ`v`tO$l!NY%vjZwJ+ z0hq4)#t7J0bT{sYNV_x6ohhCG6l=L*o)6<1#O!GTx;Z*$&;SsRfvq78?5N!dZh(Z8 z!xwa6N)=oryVK=X;NbumT7WmBP7huIaWp#X4?{Zo+X)_k@lH5KB0+ylh zUi5DR0sJ1IfM_Jz>yAPZyRQe}P`=KeRSf9Y?Qp9*oFpNptbsXpUUA}yM4{)(XZ173g) z=>$N+_0vcIYqtZ=nw`*_BO&7Efx2eGTO~i^v`vY|)MQv~Hq71sJtpw^i2Paxkun}P z_Zr*Qs3tZ3-APjuXDX1rBcmdX@=jkL8WsiO?&q9=# z55V483yWP06a5mJjAkV3Gtt0Xkn`*sG})E?6Gq1?cH?>FOnfGDRMGgKa6Clmt?-08M-cWX^6-)=sR| zXJI^l5vo)J{5UIwfwAzD&4-JwN3%H%$BeVk(amCZWIM*HBl-aRf?>K=h%rxO_W{VI z{nmh6CjKB)bTQ<@cI>L$itbh+7S$F)T5ZBPE(UFk7%5$4h-EBFAeS*%my?dEcg{ic!4(MQE6{Kx4|mcc5%NYkDq{k1x@w9CU{#zE zN=bMh03Cqx@-j?W`llCQ#qJY2E;t-_o3VndaETrhLJT-^CJ8Hz_AydB&-f0rmIV^Xr$A3Y_gtoB__;WUG4>V@{cuIZ9v(U21 z^PKQ%%wp@|VB2s%6HpBDikh)3wax<&KmFZZ#X+McVX#(KQHx_q$xwBveA*ps>jNSw z8AtwKDZbM1=p(>|D!h; Q4gdfE07*qoM6N<$f+tYJu>b%7 literal 0 HcmV?d00001 diff --git a/flags/language/km.png b/flags/language/km.png new file mode 100644 index 0000000000000000000000000000000000000000..233d06a8f7c2323a19d131164a5ce1c55b32a946 GIT binary patch literal 1081 zcmV-91jhS`P)zyO+EO(UWy{U7AhjW`0wOF5Il&*lhi0k zi(tK%ib@PcG({sykrq>1l46=P8?$LQnVp&6Uk}@)U14{pm*ij{48sod{l4$M_kQoa zfqV9UH|N&1YUTlnJMJqb#sV5p9*{fo<%c)!27P?*Gyt!@w*bK4;2;36oH}+_Dn32* z<~k23XrnpOe;|I|3LyZ856gz2*VZ!;eLFIiL)9`!+G1>+kxlUmr$ z*77L*(*khWvH)-Q&XF!QPp6x5cqTc)rX>MN3annlnxH8t{5`{Wxrm*Cp%__&NHUQZ z%z0%t=q!a`hVit^#hlB5-xR5h&AF^zMBR$E2k_GCvkVNBnVKp$1-+3kQpy-I3WU~# zHq8dRgAs9tNhMetLP0{WZ<(Dky!CT)u42*S?Ah7d0)!A$t5tm8Zwk_0jWyE4v7n5> zhI4c-NU|L{M!b1?d>84#Vh5}VR79NtZiO8l}}Fc#ntol`U$p& zkhC>|zlWLG6ya)t4lJ{27)=>o-rmE>qwhB_Xvg8ol`HJpwd-~SthFr#r1tIMxp#lU zO(zMAOC?h!lbqq<^&WC6jUOhtKeD`VJtB2zPfM;PpUV+AIQS0Rx_59h@LL|kqw5?V zoDVqtfXj>59nw*PJ@W=p5u94D8TiLCyUydIp+U@0bLVR_IWCV~YOH~Uutp%lma30! zh1WvG-U&@wIDDG|TY=}xA?^*$cp=TlB@fw#$90^>2uLAW3~K~Zv~8mwlpKbhDifSb z(S0F-1K8b<(DUQ~M@K$K$*BD(u@))*+X`r*%UR{E@@>TyZxo7_ZU)&#&XX*0500000NkvXXu0mjfrRDUJ literal 0 HcmV?d00001 diff --git a/flags/language/kw.png b/flags/language/kw.png new file mode 100644 index 0000000000000000000000000000000000000000..52f0f98b3ed19050078eca31152804f768df1266 GIT binary patch literal 809 zcmV+^1J?YBP)R-G_jcaQ3NT~| z{{apHz)&G*a`TRf`v}t|)+W}X3GKwTP_%*o-EJ3rJ|85LNpL!yAW0JB^LYq|!%!#` zpwVdj4ahhJ@Dp2iJ7o|}8p=zyIpN;j+w5KxMQF8JaP!t3(9|Nzztxc;Utplq6d*us zdCDb#Wo!l&pi-%TqA1{UxflRn0h`T+@^5UfLG}yX1(>4%Cy0HZ0P^8!RDf!=$^a%O zC)qOxuv)Ds|7K;K1I$x^d149$kPi7#0cy2cUjU26g7Vj@8ysLk*r8Co1V9||p#s$F z^sBb2%RPY2%}wR%ua90gu3v)t51v9G5aQT1)yCL<-hu_|3T!PiJ$_Ivh54t^?GssYbhfDNv@bg2|DHp zQ~;`e09c8gEohs@A)C$i0AjJ2QvAI7-f?vHBs$6-#B;^t@rCd0cx)6@`>25Hr+ZYn z)>XG_Ky$Hn93Wk6c|Q{WtY))0$49bb#OQ|7hW@VyQ~LGMc`Q%t6CX;C5F3U4nT+{F nTq9OG5M%k!e@up|p#yvab7WHRNjxTO00000NkvXXu0mjf$)s|K literal 0 HcmV?d00001 diff --git a/flags/language/language_flags.png b/flags/language/language_flags.png new file mode 100644 index 0000000000000000000000000000000000000000..7554ea3ad46a3bf531d1f17083560b291633ea37 GIT binary patch literal 60111 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 z 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 literal 0 HcmV?d00001 diff --git a/flags/language/language_icons.png b/flags/language/language_icons.png new file mode 100644 index 0000000000000000000000000000000000000000..278168273571920adeb9fe65c011088972e2152c GIT binary patch literal 154554 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

    G|z+@R*;o5?2IfEXs=bN_5Hs7P7E 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%0Ag{xyA=8{^NCkk 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⪙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%0D?}Oy57fj-%T?*acwpN60MeJ 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

    kMS~FailacTd&&l79@cy#b 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 literal 0 HcmV?d00001 diff --git a/flags/language/lb.png b/flags/language/lb.png new file mode 100644 index 0000000000000000000000000000000000000000..f2bac4996691b09a661074b87ee8e8160c506cfb GIT binary patch literal 1550 zcmV+p2J!icP)prPG%~zpMyK1dgk*DW8fT)$yUw5qF6wm4 z=CUkqF&Q!5a0;7jIwyEzM=hlksO44+Af*@DLh0$*Dc!y-t)L%wkb30bo)ge3Ntj7V#g#(2OWX9^Ztb;a%mH=ZRv9c8+}~41_)xg<#*d zNFRXQx&6~e{5O|Ab+CtFwvX7s;RrC`FoVx`<7|T-w3ouNnHg}8@(~>>hQ~9EaDF&A z5e>nUTZr*wqK)SQMNv>v zLiBUA7@jf*p;i`#y}gJf!qw9R|PsE>bS7v8O5E zI$MQ^iv4OIfO>GlHd0u+5R{=kpo1;U2?K{jm|YHcqzzue453v8TX@6R?;`t5*hLz! zDKU7K2spxxP;RswCgdzn)7p@@cXnD>UK>xbUWW?eHppBhD*KCyKhDP)V6wv_- z!XXhy!qd&vu9pT!7L7jhAVgj(2zMf~9n-+2c|l{b+?Z% zbO&_k6|xW}A<#|Hh*gO(;t2tlOT*Blg@+9&Qqw@W+2DxSu(vuPu?)gxWkX{32F`#i z5$5Vz#GgFs2k7nXC8MLGLDO_VhdtGgkWpKUqMGxlK5zt`aWW+LG$Zj$Il`GjYh17q zT~r9>n~ji}^r(?!qo;Tdb{5M5XMn}Rz`y`vV`KdQCXa_fIX>do7@S-b?g1&dMk@K;c2$@s+^1#7Yto7cP?6riuK4+#kgegLD< zNJ^#Bpa9?2G=e=vg6{LRP@lVqLgwvV1eYmBJ}Bo98Vl!QFn>09(pd0$JVaJr!0pw` zv1wIsfS#Tn$mMcBfL^aBWinY%fa9mHBJS7^c*2cAoZEsTlMaJi0&cJoZndL!-aI&^ zDR?QKkLCxRu!_WRFD}Ho(%hf`9UUD|DwTc!jYdN%6pEk#-&Ea$^JWV|+FRhT48xnN zMmo=pw7P4EtbYK}^r^U1x*XIrIYw))LF^hq*ZXgwY_1|GfWcruR#uiDprN6GOixb_ z3UKmg=ExPtL1fUu*l9*CbBd|D+Q6HU1dqiEMUx4YN;TS4nNU0XndQhsca9qCi{wE8 znwy)EmzU=UNI6tRreZSrZO-uvVZi7ePg50l8AxfhtBXLh*a72(aoOlq-XNuG8q`s-iG6|vN3=e zy!9vU^Hl}DzVb}AFv8zEuGkWv$&bydOsd7ZTrQRWgca#K#0KrU!O^T(I`-wIvrXZ{_<2 zzp?1x$f;A`S8d;WtZoAH``&Vd(PKvXu}diI90w!w3vn%<^gkw(YLgD|7x@oN|7cTPkN^Mx07*qoM6N<$f**v> A2mk;8 literal 0 HcmV?d00001 diff --git a/flags/language/li.png b/flags/language/li.png new file mode 100644 index 0000000000000000000000000000000000000000..6a24fe7b111c2e5261c9d19762e8f18d1f1fe352 GIT binary patch literal 1710 zcmV;f22uHmP)3&26~}*X-Yjnx&)DM)JMl8$8e_a*o7NPlM2Q@rr9m_)sniCwRLzI>Q&p)*jrbCj zZeLPWX_Zn%%7>^;(}gIBvXBxWhLDoL*w`_~wXum8>V53-?C<&Y%#2AJlyT{zk`KMo zxzgPC?mfTvzxSSVM&S-O<^KR52Y@>Yk#=rfG4+24V~QDKdfK5+Y{8WF!BbsFv07Jt z$gpw?mpnK1B#J}JE@iR&>tC*97WJjOfY|Wz@^TiyFh~r(hq*Y9#pf4oY}l)7#mV1y z%Zx=y4)Aanv?u<|&%JW+F~%^csuLJVB!CJZf15-miQc z*Oq$(B&&#-N{|{GAvw^CJ~@stHGzBg16cC%vB*1$%Y&LP;EH86=QjZw(p|Gyw_zBj znMz_z-(c=X-z9$GG}@+g}oU>lA8HNp{TPz}2xI*Y<;8H1;W&fjR zPZ0X)BRKEbClY^&v^t92PG*~i2S{D(Cw}gPC{c=Y_W@ix_o0vU3s3|{v#3x~zN!MM zs(u8(&1Q%aS9=H_`vF#e5sC3p>@C}{mQ`ZRO%gl#0x3DDirb5;u@(3Jhp^ohVCEM; zL|F_`c=Sn>vZ_@T_z*z(w(kWi0vm|L%x#7?!Qdqh>agX=macS7b;#|uvCfoN?W`rn@&oJH9#iKLz^!!!N3E+0x86CdD#JQieWB{r^dn8y> zTStj)ky?og{Znze=U{7v#x`%9&7p4cqq8hWLZrim;x9vuFOdv1@sm`1L`FR?BeODNG z?MN1&@xC7iTbk#Z0G#v`K7FT-rk94?~&YvYbfbXl=yvpjQG_oTV4LQEZk>9&m52#=diX;4wf%G!VDjyIgN0Rli4PuLd1X0GAra3{a;TZ;8*`+FCS;i#*=iri{xKsCEZR)KJXEFWgb&f zg+=qq;(n}^Z%Q=FLtpqD`rr^+o0Wy9V{#q+XrF1t**b{b-;fgkZ9S2RXYn>2&jLjI z4g|HbuM+D$AOgrSOMZ=|RI= zqy$(ksX*IWjH}s1bynn7z`23=jc0JxKbHY$Hm-f6%Tn^NR5^?3#{w`zw5L;&k^q!Q zb!0cN6-zG2-ziE&(S%4xBanKI~0(e1SG$Cs(5-VsVNu<>($+8a<%LuZI z0_i6ExR4Y}3l)nZp$I7u(V&Q(ceH2ae-+Pd_GG?kRyTI_YKr|7c}3em(2PM01-G=%SPEbbwvq>v;Hd5cM~o zD1k0IMSvYuO}N|n8nsQ2rD$w_fsdcZ5i_RK@Xng-^K{WE0&LlL0oU$#<5={OD`#(Y zrKPD<>K|BRPi6*Pbcz6hJqnwP(J2BHm)7CrSYuCS23>TD0Gq_gTC^^`S=e_SRJ~5Ssch+Q|r;APzAa89sipm%wSgZuP=oA62EMAVj6-DUvtX2YDbUFcimliEU&k`?Q=IKhH zi%#d~SUmpSw5YTQSsa>SLbfaDtYo?NMYlf^{|w`^T?Nik in)S6j>wirC@AC&tax&onzS)Za0000 zOgBx_G|lcN?U!z{tJ&0DX{}JDQZDsAw4fj&Bg0L>85rhrW;k=s+4r2I0~Fi%WlKNo znLP91J@35F?|I(mHWU{5q5co>O8{6@2u(SAOPHS#MkOK>NoWe~JO6rW>c@7bn3y}R z&%`DCj`yH2kz81~DHi)l3d_r{rD*^~FMQN7uycLsofRdNJFZ{2JO;PTi*;#vhAUZi zp?f**N0o~WhmpE_Pq7A2`TU1%T`#OHMRS{1e@W966jcRF({MT{j7QRxW4hoZ{IMzI@(!|>L8)*8e=7Is9#$0!lpuqOQ3!YPh;?pED$jZGw}>A75A3hJ zRiyz`Kl^@5=Z;6*Xl}g*nkZpeqBxU7LL!@)0ZfFZAzP|2>Q8_o`Zc(#fk^~h&A1Wu z<5x_o4zS$XhPRgapsKR~beu-W!y*3NrX+y#`QIRN^a#@Tyj`OK)NFhAgy*@sQheRw z1w*X2r}C(;bD?)Ii0I9JI2>kVIG5t{wo$}m3S{C1Unq#+l9Lz--#{A7U?>_ZGtc48 zvLW~-7TqB;N`yFOQi#F}$~=JV?av|9^aV2a9;np;>i0K#wm)2oV@>^i97@-+9jf*tG9+&z99?XlUpG$5Pm^%7JW$0GpYGnN|@~ z6yp9Urb05B&P+o}sE~LWQTI3K5BR`Ilzw#^Twd(27{rHzPVDb-K_N+YaD6XU^oWp7 ztxW=?*KdRW>*H{}`+))Q=o^PUn^u;g=~y=`0tKsCLLxkdjSuF-X3s!88p4tGYq%N9 zhG1e5iK&py3}Ws!^p0O6sUm@=6l^ZKf!CJ}A;Xfu-tK%9n`W@GD2Vj41o-5GNdQOv zR*bivMA7?yF#sNW<1^3d(mZsW@nP$ug*f`nAjF$}sC10LmLgyx3|tJjV9ju0Q(Xc6 z^_34wDutQic3iqK05v`Xjzs5{k_jBB^nv9_j6`{4a}uoS33%I`V2+gB%1sIxPt;@V z+cvmA`eYX1zUpFlx`vRhDsbo9!Ep@4a1bU)2un1{a~=%Gqu&=qh|@A8jzmcZE{zXB z7ULv464>Sr;O&|#upth~q>%E;A{McN>6YO=cpo^`C`_48KZ)Uv^Qidv?*>5K9}js} zRTZK6+~s-2!p+Yh&6#iZOPC`2&!?t`W z#Odo$CvW0z9%fFLao?MV{`QM_;NZUvfZPKcJ?jb{Aa`xFgnRf_?5P@oR`g^dG+9e@ z5(E04f_$qq2PSzW{F6vu!rv8uqRhI)>a?Nf!X-R(_)7yIW8XSYZPq;qieY`jnv5>& zt+__}08J{KN?N3f$T<%3=|_@>1dt19cnDc}^g?C1tuQT3AkjLzf9{nqsa9ORq~K2p@;wsBQsN4Xl}_Fq*O_WA2V`a z7R7n5=@bjT8}MSo@m2%C`ub|m5?cX8$!Mut@&~cE_6GpxS%{7I;c(dNO@(YC(Gg_3Jq(XDZXxaK%RRA zq?|S^PaYDrb1C@*$T&|4iMgh?;D{hCg0l@P(Ju-%E9TyA$ z(;x2lqzRdjWMjJ6Q5L|y9{_~Uk_!0Q?93p#?$-fq7@fV_vO#43K7{KBQX%$oDE!+b zrjHAVG?eHaQimjkh$gc`$MtbMd$vmlsAgYU(P`%FBHnyFf}j}f`752ZvLL@fAuCga-^ oafC?V7crJE`X7@;eHIC<=mJWMO|$Dg_CIw7{31 zdI%{*!FuR5h_E9r{|xdU(v;aL0QE8a`=7TC*!hn$bGh z^>Q++$b|I#yghFg#Q60Z$D-JfomBGBn|IJZZaOLfsvfnrx_Oqx>c$3`Jt~kT2*0nx zdOchvHpR&~`*8$&dXd@s&>>~3>36w?B5CQ+tOfQ2h&uq#X>q|`tr)o z=u*XmRS-3CKq$(=aJgPFfUzFIYX1imcD2iZ`6s8zioO)a;51!3lkhN#(fAewMHYs% zYsxENIgI7^A5q-hAp>Ry@<{-7FlT<1g$XLK6^vi6ZvjQ;=apB0&cC#@1f$U?1Nu5k z2y~Uu3S-h*V>bxC#a$m_+4vR&!@$LR{-gjtpATlUSq4l^O%apHM7Lj5Jn6pzyk0M? zR;vu~cs#^nv8W1|nVEszZkGXWx0~2(HdO%=6BBSa95P^VaFCRhm8l9CA0LO)>68Jb zZGGfec_miDLei7}&B*3Cd>^si0|LN00000NkvXXu0mjf>mqRm literal 0 HcmV?d00001 diff --git a/flags/language/lzh.png b/flags/language/lzh.png new file mode 100644 index 0000000000000000000000000000000000000000..c6ef8eed5d592ec55363a7d6ab4ed43bfca63d59 GIT binary patch literal 1923 zcmV-}2YmR6P)&7d?_d@O3{K2ecGI*#Q%D7csx%3xYSgAgrBbABNNKAiv=UWF z(?qnTDG@?Vous9tS=0bgsDTii490lFHh5tSw()p89(&gJUhm8hsAW^N|AhR}CtZzZ z?z#7V@7!~K=ZwT%ex&~cd=>!iDn#^f<>oMbiZF&4ni!GjfsVl^cX{qen2>mT$^ZIl z(PjSeJDOzvY+p*$th9gk4c>FO&V$^JP(hIoE#lSYyiOhX}S_yk($d=|l!(v4cDbAdqne*%8LvR3SW+ z!C2CpNY(&}Lz^a_r0bJ@QfJM<^V%VD_q;ea3NX+0#JA3;Y}!Vsr8#ypQUZ)Fe}&{z zUqkbW?;=7Z5h1}PBS`Kp%q{bfOmzJpaUfX?r3b7p>N6WWb-Mwk4RY-uS2 z33X)omvQdG2qg;-P=Ccv>FFPmZ&UuO7&MeHf%~7quLns#_O!T)+b%PgPG|7%uQTn1 z!*PJNN4Ge0zPN$lZpoNqAlY@AY46L$&Cag0>O!c;P19u44@13kwwy9v-s${=PWbNt;D7% zF&XI0cQIr8aSj|@%??+g&`|@$n5^Ee4M$L>d5MVBO^)t23cf#7k`tL16BH#Qo6GfQ zS$6cFaexzR7dfX_R-p|K-P&Z-D(-T}32cE7?w2-_AxSjXw2`}@iP0Zyp(t(YG>krd z#vnaK-FST|6kjjr%J3!DW|s&tvBc(0sp)iFa8mQm**L)4tLHmsS5%;RM<#4EmZUNC z*n9MhE6n)i0~EbjOGkSm`3F{s;JR}P4pufJEp_3w>tv=z5E+T@yc~VhJ882KlO65pqofKcltlnN``kD9UZ?9nmdz7eFOe{-pGAg= zajylpOTkf>hT~dMY+kk})70M1##7C4fL9kxcUG1Zqx;8hZ4!M!ku~CuVdv@q@9t`# z?xGp%PiwG;J+V1?iV7L6v0f=mmvvMWDj!m{@O+tyaiOc5ub%6O z100@T?5xVqK@S9O9=?dCuzWbc}H5wv-wX`e*v6_<6rr zAaeifi^<;m5&5&iG&Gv%eJYF6L7M=bSe5(<3I&InIar^;tb+yQB>L$1iktPT+`RRR zX;hsuA(<`I_Ybk7xi1dzyYfuu!VCvSB*IXdiIJdA)-zX0FAkF(G|~7-IS%2SVY|xQ z+BWPCiMFc-4X1K2zht98NTAIW?`d?AEw=r=JomvgcDy~#6`@?#ot>mx!wfxKNulHs z)m7oc8zVg0J{SX-_nVTG^Gi~bVzv9ww{5Ik*3JwerDGQo8TwTkS)*F4X%kN2#y7`V zzI_CXO+pVD42sNc`8W-IZweV6KLHUusrzr>$qS2S1|hvrm;ya*79!ut65D989^=gL z7(2T>v2r|TU!lEGGMS=&XJkeaDFx#5j2XLsBo^&at&wg9oGzP~^JIwfCF4SRC0fTs zaCs&ApBJ$8My&t1_qRfnOZ{krW+KB1{x(5zJi_JZXROnbFf@%_y`!;)q*RQVV&saU zGNCb*6_G+;{+tDc;)k>10~{@4feLS2+NGVfdNEi_bj-pVtLRl3-bcY*cO- z-6*mIRaH>nR*=b$Q!|D{x`ZxTb&%LwE-Na3B+nl7ND(I}Q?nw@L(nvboP{s~)%;my*_1ortJ1rii_$ z*dzYa;)AwhnK@CLP+i^$Z4`PLc71pVdheSyfRdT3wdMCOL)uiX>|Lh}QDl#-xEY;2 zXRu)IG(pdg?R}`PD@V(hM`2Q`ErsZEc_uWY${DomZzTZR9RQ&xw5I!-kTxb3BE^Qf zP$?u?#-hgQ=;}R-Nc4ipL{+d54YQ`8_2-i?iRYfa^H8n=VBdiw&`)G3XxN}FS-gk> zyg~+28Eo3H7|D?|cJ65dBxWlRHs>S&tX{bg0k4W}Z+{2H9~hrPnr;H{#n&9bP8)!$ zW}UWt=^X^%?-|GtrwXOHab6{Kimo>jMqpUZo>Tf zso1ikZNg**+$O&H_7~`VyB!ULo3+M;jTqKdFiD1G8q^PXy^?9V$Q04+P#MmgA4FUm zf_R9rb#7UvprN>^0Oe&~{Mnx*bdsnJ#!LZ~*FU3sug65|k#^{jcWeOOS?jbp;V>+A z83klOqP3Nk#n|#v6SnUD9_{T>B2mc!$Y;WWnMz|`LlB#uyd4`}{@iAVZ174Eoy{V5 z;`J0de)}DI^gRbaZL?Na7p5wJc#(-k>>tYmuzFqg5`)XCq~Lv zu-u2L3O{~2Hema|8~}Y}rlYH?izs;42H>e#tJT!bCZY2sQhpIY1}K zG;D~M!~$nCU=pR|7}AAvOKg(a49NBu^#Mj={Ak-_IC!`l$Nq>R zkMQytLuCokc9Sh>4OEZu6kBKdszF>-twhY8gwo$GmIw1h4=fZ^m2lEW!P zezisDr>8-h{_E)Np9~TWV&YKBbwpFSMuY!$keV^_KRA|80=U8BFAmu;s|hi@JOBUy M07*qoM6N<$g5w>I$N&HU literal 0 HcmV?d00001 diff --git a/flags/language/mic.png b/flags/language/mic.png new file mode 100644 index 0000000000000000000000000000000000000000..376e0f2e09f1ac54047dab6bb5f2a05c08638e61 GIT binary patch literal 1032 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 literal 0 HcmV?d00001 diff --git a/flags/language/nan.png b/flags/language/nan.png new file mode 100644 index 0000000000000000000000000000000000000000..a424a0a4d11102e74b969d82c470e8b5a54c8fdc GIT binary patch literal 1843 zcmV-32h8}1P)cA3WAP%yT!`fE{cZQ@#DEFQu`s1B2|^D z=1WsqO_LAlhZ12|^;4;x;Kr2+t-2}MX>$aTRuRV1uOT*g8v25H z^4SZWEB#X!51o1s?q9!EC3MeFu=} z_rYAjgUuG{bf9F0Frh)TO$SD_DbD7d6-eB_34SyQDb7P<(k)FaF7gDU1JAc0J{pJ3 zQ@tX9?y(Zgojrl<-~O>&1}GmsdWcJ{dlAta9ncsg*q@Ipk&vPksxwB26am(0Q$nBe z^mZhJHxTWh_d;UDTwqJCA=;UMUjM|30Q$mWOrJlAykqs76o7%B9N^NQ+D8C4VDKhk z-oj&%V`1DRAV#0DUX}n-{xidWnSczl+(B31LGXjKD0=&Z3eb1t1#ZorIwVF0!DdFG z-<(ABLmO;+Lka*tW?7z$pA%#$0=b0|-!f_WI`h}HAXxG7tdZf1>dNc>JbK$>y5oPu7s{ow` zYPpMe-*-mfFd-J zr%pk*a2Upl_7Mr=};<5{om>1?SCIFmm;u*m~x&3eZxwi!0nx31RAivb(+=4Jfi&!G82CBqj-l zcJAMJ9C6w~e&@lZP_`8}plqNPW+C;_6Ci8#Heg5pOOIAbS_TF?eAs#ZiVD#5%}UO* zaTAHnwDN;Hm1j`u+mG-wSFos^f;S-HmOF{XNd~z^CPYGu$hhzv+RD#ieP0z)qE6h} zd=?ZKWEYT1(kbcWqmUlvEP==8ftd)s*D~-79KpRV4po2isQ?$BEa%pjlpq-nDFFAX z8sTZGh5yM$*r;9DuGC;`ZzJ^63^K0P;Cf{vzT&Gz`?f|DcWpyT#0id`z1((~?0WFk zJ{V7t2GDUOzS{x~9|wE78i8FG5fUYobbkk*^z@+S<4zUeuRBV(Qm+@{d{_Y(e7YHh zAMD2Do_|1>W`yOvXA%DXpCOGBK+_Xw-`$Lgk9Xr{bu+x}n_&y5;5I$4wdrAhe>)-v zuOVh(VW}_0SZy0}tq$lL$`PRXA_U;QUWYsV{dlIeM+G=t;o&ys=aG~~6oBF9e8@Xj ziBMe|l4~X8`z`3nSb!m}g(s}XWVRW`x4h`C^&!8t6t<8Ry*2dgGC=D}RdR+mPhqHk z5uTh(`0XsR=sf0o#u276DZE^TuAyN(-+oU8I8mO*ZOUE)F&0w*{0F<>aa$36vv4VK z7GCTI^&q(ZvH`-OyI|`d!<~Iy$Zzt%GHb?N`Po9@zwTC)PoR3ZUp@wJ2W?C*KociH zs~AC;B9M1sE4c9h4s;Hy0DmgU;G7hb0p_C<<9G6^Gf%NC1>ig_bgNx&jwf}f9IhSGBF z$ue|IPUCQoUj=yAo6c=bvr}_XMP}^fVXSwXv5=JDFfy15%1uWLm&+_G5JVkS^}K){ z{|p>WZrB1w+&?^we1{QCx)Vf?zuU%*bM6F8kth3+0d91eX^ z6uCM;ng*B4rP3AZZnr~{aCKn6--Fxjel-EM+bxoWs{^{OgU91x0PFP{Ny62E&1M5$ zua^NV77HW^SAf-O1%AJu0nBDI^!a>u2e|euy}n#7As7rYfXQTnfk1$(1M~SDBuQcb zqtOUMp%7OGrqe0NvdjQ9O~Y_F%+-PMcnpf7Fo0gKhmlBxs{_N~5E6+51L$-*7>!1` zIxrXvAeBlnfM&Cas;Y7YKt#x7G7O+zuVXTqw4~6r=yto1%jFnAtyV)~2UiE$?Kb4| zc?M9eRxzDUa|LL%T2LqyOn`W$Qt4;2*}E6I6^%v%ip8RN9LLJ#vSvl6w}LucDwWKE zL?V)j=(m^-1y+;LcY7duCmNYUDG@yipMcL~{5=utMC*qb%WeNLu{CT5_ykvf!Qp8+ RGM4}V002ovPDHLkV1mH0>B;~A literal 0 HcmV?d00001 diff --git a/flags/language/nhd.png b/flags/language/nhd.png new file mode 100644 index 0000000000000000000000000000000000000000..272a19706bd8f005c1d1d92cfdf797995305d453 GIT binary patch literal 850 zcmV-Y1FigtP)sRt!QRgw&}tvK`4x2W%fc4L0uGrU342niV6lr&|eTpT@*xM zqGchHSAldPN7@J_HebLEr<=}~?YwL|{mwa-y(!t|=0y*DIdJ%$^Zopu=l5`)Lm|yU z{Rh|y0BMDg%`?}OkwO@WC`J^O4Re}@9xbM0_mAst=gI(S}-I=ndN$e46*91fa5@6i=LQ@w}nk zE(6#v_qDUvto8UDm`n*kMg9Ria}D6-xz1w>z{T#n>=mm6W5MZ^030^$#|zgWdM-Us z0fNCG``)t(ku*kQg zPFc;$Vo8z+1f^V)74di+fj|Ievsne0nVDe+rdQw#30UPQ@B)Rhf^1m#=}=o%@Es&s z5sSs(_xn*&QlbJ(OiZvtJ^`LN5m}6c2v5O~6-AiSAV*K*W^Eaaq%503P+O>#D2niU zy|7p;D!};oIQt<0co%t+0UE|E37kMfuZ`nKp&5>&dC)V-0}uoOQ&UqYFE3XCoK7eE zaY=*8`6z@a4Q-|bizyckl?5ouX5<1Oi4_3Had5lcu-R-Xz{to5%W?+zmLt$Wk49TD zDvFKD;y7`plY9sxkqE}d#!y{dtpW@W53?*^gcUxDTgMMV$I#%#xRTcGXhV?;!{u_J zrlv*(xNvWXWpsLCMz0$txM6C87f5Sajfot(TTZ9|jqL-hZdV@Y4C<%DBw;feYVH1C zr09pos4X99lqcheH9VI^EhoTC}$Wdi_>1@b3|cM6uwXMPEm~@;SDi?;LarypZt0 z`|BXCjFv%fyF(dBEJWo*dx*5y{=rn<{907*qoM6N<$g0D(`6#xJL literal 0 HcmV?d00001 diff --git a/flags/language/niu.png b/flags/language/niu.png new file mode 100644 index 0000000000000000000000000000000000000000..edc09aa1ee640f2b063a2aae100e61ee60d345b7 GIT binary patch literal 1397 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 Ef?JGD(cHZQ4m&85CmTo6-1?o?%Sd* zR*6)Rs#Wm&3$3+PLQQLMYpbkntB**1P_nwE5 zYl}gWbI?M+zomtu8qS?>#)+--3K@Wl0DR9vLF73`^CYOchSp#NC-1z1|7En_0e&wY ziK?1LQefUx1~8ofnwSEvd#>VMzjjrC^*hkA>vHIe_`W6j3#x zB@l-DhX1RA$KwiqEgpr+LpO1H*W!|71qzH5a5o!L@AI&c78%W5QPe+{5R?>%7Gt15 zlrp1C!{$yLg#8CM|4%C1$Z6wtT|a!(JUWn~a6Dxj2>B4^_!*hdUEH*X86VC2eT0onrr>}_bmkikEs z1u$jIV3eOYjqBUjCoAB}Ggrta*EC3{YM|FQK$!Uxau+Y5&DvrLAn=?=;!)gatH*KQ zBPgm$n^+W5EJn&Gdj(MVp$o~5IPyBnujfM@oQz&2puzV|_*APS-?bs@;4u?^j zw0a#Rz5gK&)*VKpn%S-?T12cUT8{GCW4N|%N9r0#pql-s^GY}Rp{qN9v%X6xZ@Uc5 zZcmJJrg4jPK~U1vA?G+!RDsQ1OR^>x4sBM ziiXkl>;b$z?XcPGUmfUER(9_Q1K_V?SMJW=d`Wlh)-RhiO=I=dYm*rOKafl!FCs4> z&%w7pn6fgDk#~`|@4NOHCh55&p%?TJ_-fB9V;%d`H+B&(KnfH%i`_3+|cRGI() N002ovPDHLkV1oOt?4NjA7P`Pvu0mQVwxG4xVyhNWYZFl0Vj?!yCKBV3U}72@O-;R;82_ku zf+n_6VuB>L^{57^iIv(*XVZfgfd#g5EV~>FEPK!RW(HVhq0lC_^bfz}+xKSXz4!gz z?>pXGf&~`xKY*J7z=DDhjjJYbV5_a zB538|=_$m}&xet*Z-1c#p#AwuE@{(d_&feqGBACWiEeb-C{#HDn0N+(7GT7pMogX` z8cHTV#3Oi_f@zPL={_nNVGI}-z~|<{+3-DLCud7{2qiGg+vFnB~gMZX{jm`%iQn)Gb+Q3jUQ)X4zOZ-0bKE!hZvcc*NS z7ZgTgO&VzL3c+zO1c8JXPTr|>b0{G--b}@msiMA%{20wwL(LRF#)uLqBj{k<$^^G!s z-^f@wiyequQg;1Qx8(v?snPC?qS z5Tt?k17+Z`R7wkdM{5z2NEv9P446f(8T5SJ9FdU(Y`hU|XE|*6>7)$c$bALet$BF} zx`x9U7*TbVOMOrcGV)##*%RKCakH?)$~CzQQ5z^f=qug{`OCWB|1V8C;<`SqifGgpGIDg;bm~(_>fh!y!|G9{VRVak& z%cIhTB#Y`&suX}3|T00000NkvXXu0mjfl4XvL literal 0 HcmV?d00001 diff --git a/flags/language/pnt.png b/flags/language/pnt.png new file mode 100644 index 0000000000000000000000000000000000000000..10c93cc160d3c41583dcf276f8d3741d641fe71c GIT binary patch literal 1217 zcmV;y1U~zTP)uRrK7S_@q%U=d^#2?%V)xrAg815N_Vj3hE(8H+)Y4T762CeFqE<04tM zgoL;(ERMkd6JugrGQdTnQCP(B77&E;n+<^tD5VAZ^F8lt857NZfCKi2Cpl?y-+k|V z?mgdo&nbmXHtK(XrvYG7A^70JC8swKh9mAF?&brkjPKOV@}qKzaK)@Ub|>VNU|k5D zEQg`0Ts036o>=_l;KAf*INhEVlk{O~>@fzyPbo(4q#fU1A9-Q`l}%mfJ)aZ71H=-5 z&R;&uME|sXdBXD=$-iD2m~lMx`QsWzQ5YB)KpZh1Af5o+R8c}yl%=5P<8rW$d7LXh ziMytDRGs@A**Uoge<|7fa`B-en6+`pPff#-#*S4752a{CDwPXU}Sh0W4CX?82tj8!ww+ERF6R0 z5XPQ;6}6{7S`z?oE|&`uiR3=Oi-tfPeJc@#nMn}J)!6+;7M_uc(cE|yUB7pN77C%* zmJYhR2|`UUj#bp5|BpXWajgfmfP#mpS|}8dm9fje{5U0`R*d=40_@ltgw~#Mn5y!8 z00{&jMz6t#dD~H6S&pV}zlJ&>5dPXwOpgs>#ykssP!JYvb69jZvA^gDI8EZ3G!RX+ zwk;|cZT%DIyRhE}5KjPZoOu)7<8!#((TYz_97jMv0K|lrCHb1S+Te6LAyX*9vMj1= zYB0^o5u^8C>p_6UV&P->0OCp-80JhC++-U~lUAH9D}cqe09{BZdb+!aXavydbeNhP zM{@EmWEPYma*Oi8B6~z|5lz8tHbbk``T$~z8{R#q~_MM2c&Zci{1mYnlj7E*9W* z*)U`i9o`!sc01=1ln7X{3 zXc?YbLHb=|Eex1~jikev^coaF+t-})dlup^MVLm8-v-8TI5)`$U^sM{(UDuYowI`_ zJ0KE?@yfz=C`NyU*-46&Ob*s=gC#m0?Se>9tP32`1;=r#3ckffHdjm|L?FVX!;aC~ zw|xNm_iC9Pfhvf__bcCw)v>CNuf`M-5#+WRTt2&$0&QUpV>*?A1&4cilI$O)`AJ(_ zTN~2S(tH4#!b?p5rx}>HyEX)XuLUhFEy&2o@Bygay~Mn%kitcA5HB?#i%!pfi}C=o zkQ1fz6G38~#+CDhUVwP9IQyn*XAFe1qwBWnznfcafTgvY+^!AYavV$3S)DY^t9nD? zlN6AK(8Ch{%G;2H6E_mq6X)BU^=?f0W%5UCoOrLdDJ8BUF2}}n#`ikndEzrqMO(h< fe@r&jHXYzE9m=@yECCEJ00000NkvXXu0mjfk`FJ8 literal 0 HcmV?d00001 diff --git a/flags/language/ri.png b/flags/language/ri.png new file mode 100644 index 0000000000000000000000000000000000000000..9c8baba3f967686fa0f3dd72d514826790cccf74 GIT binary patch literal 1861 zcmV-L2fFx)P)~7n6x(qqIMr&cwnB>$?ZtM4bS%Az z;00~PsZ~cQV>>M!Wd^w@Hv?vHgE55|h!8`#^E~}cF#Hc zeb4)Q-|zQ+t8k5n@_&FYJAh&VXmaUSd10?yF>755AhrAtoqg6_!vysTYGTcAjo~$p z{&aMj^|3$zPQI|nU`R>C>oPD+^Wu*_Jg1;XV<;*NL{!{rjLzN=pEjSz8x6$Y2{^sv z7LP?s@Zj~hs2U&p+~N*Lj7Y>q*nmWHi2Jsy7C?aoP$mG4&o0n;=;c;A%@nNVFNLs% zDfk}U&*Ij7%x>LFOo*=UZn4tH#~DR9%ozJ8RPko%Vuo}J_;M)~$+mT8v@*bxcNMU5 zr)B|6vhI}&K*Rc~umGH-GnVv)^5vRg?y28QSyvOfuJX{*4cu|~)%dg5ZvHM$ZmmJn z3_i-dk!_Q2MlNSZn(BE$-mXjZF+X(=J;)gF#jwc|~$);)q1pQh5hCU7wbbwq*ZOPlzW07R2AFTU)OiT`@& zcO*yrH0G3XsBk7djx^juAtI`qd;zk?snmR2Mwn2dhm2S+6({N_>-dO4R}$Zw@pB@s zk+eGfT|6!TKWZwyQ~}-hVAgS7-qnWg8A(C5%gN*W*YeDwRTxnhdF`igN;U^1qDBAN zMzut2jXimD*nZQIl5cZ#%q08{7efgqQ#+3E<3lenE^s0K>N)Qio}O_( zzU*lv233+pjq>x2EIjrP*4(m!U8=~f+Vx`i`>C0i#&5eTE>&QcZ-raq#Sgkr+^Hzx z0gUp8S=bbyc4s#Sikvi$)##PIJ>*a*>WT0`eVFV)+bcSf6`q^!rX}5lS2sx$54qvI zPGw7!H48F$bCMUg?+Hw|cucsTd#7cxDJ<^4cD@ZTv39O+a@KSX^u7_FFsKiTltHGn z_*q#8>uwdl7S|qsMqJM!QAiqYJr1|D+G4$30B?z+s#uLzOz?CL^lK)Mz6H-ppiRZ; zV#7`})rF=wsT_4X^=IFuZOvgDVBBM6zS7Lu91ra#YDDozdr-x4(+2!JCrrr^@$GSN zqzJ4{C7wiBKni+ofYwnUyHM1VDwpqHIU(+L4k&Zi!SJ_lL_MXAmlm!3Sb;t|0i`Hb9a9 zMI^=3+M%ul&PdV!X^SW`5jM<|%2z#NZ`_UxU0-h-D(1b92#O`XqiJnIM;VC06rxbLCIUmPVF#XXR>+A4;vXV4qYSR|&v6 zG+I*h3?Iw2tF-w4LJXJ5H5I*E@-h>_VA%`oO~fl~;t9;eD;RhO6Ty5#4rJ664&0>me{sl|pM&z%PTAVL(LY z02>Qx3bX;_8o)Ts0b-0?4}r<=XARTmtly zSt;inaTh>!y9?sJET{mKg3M1sW%PnnJ|fv#Pr~IqmouU=2k=3vUqfrPATH-QGjvCR zq9ROQ$fZ;)&^7?6D3#KU1*Hef%!t1(DHVY8Pe0nmfvXCDbCk_MVh(r)oB&UN`?oNd z79axOfC~pa0@lFlmL}tyiFgEly6rkR*jRq>ACtTI1MSOuFLbm-6951J07*qoM6N<$ Ef`#YuV*mgE literal 0 HcmV?d00001 diff --git a/flags/language/ro_md.png b/flags/language/ro_md.png new file mode 100644 index 0000000000000000000000000000000000000000..d57647b2296fcab36dcd6ef8eb8b43b8d480fd8d GIT binary patch literal 790 zcmV+x1L^#UP)gMx)VGRi8QM);V|JbA9TSEngQ_2FO?5&kIZh z1PBHwX0wCiA-jJ6^^ZZPFMhi;Xx;R|!yN-mMU>g>W^zNm{mY<(i=Xr4n)1<~08;}L zB8qd$!NGsMn|{3YbPxdheA4^<#{L~t1fVcL?!92G;C)Oe=Z7imNBze*i+T@`8zA#O zP}hQU(z{Wk8}xkj{ku@bCK#~mJu&LqS@rZU><6H2L+BXbJ%Fkb z+P0s8sBLE+S@+<>*M{w_$d##}3Nd~V=h<`WdL4jsj>W3Z% zB&-6kwqu}aLV|&Yrh$LwBewD{V8?>O*cQa#@U|feNZZdqR#!M{*Cm+GJyn$eAQdJD z>l`oRF4v2U<93TybMEt&ECxhD>jVR3iCdSzQI@Ua0So!JuIhU`2w-Hs)1c0m@v0Glfm+4A$5WQV?HcFstHw^&g-S~f_rzn&%uLTkzLwE z7>!0)>sF2ENklRKx-7+=7Y`QIu-CS5S+uY2;;@pz) zL6*6gnGJ`?bSiUXhD<;Qz6G>UC{U3?DYrsf+S2yz-uB%vemU@E;)k8&pS(%W|2e;N zd(Kk|3*4yx0Uic`1%+@AF8D|M2MFV054foK@Gpk>xXSl+&nvq9>zR4=6Mb|r z&bfc(AR z(pxvAL)|}4G`^GHh?$A&Fzf4J7OsP7^cH+Y0xVtrG>msD5D>f$BH3Dao%JQJKx7!k zFV`XD#BmN_{jPF4e_c8>+6kiZ?Tz)&-Z};WkAWF+uo!g^Qcn1Y!yrN@tTTK>W|hLP zT1-9zVIdf)yNZaDDvt>ysY z*B+#kl2*VlWhEMGO531QU&i#98RIQuP}t-!@RuUV)`h6YEbt2yB06OoY=_8O$rA^l zQ>jGG)r%ZJ)S41HHa-!PMl!&aPm~zfoWs?wMD+LCVG+r&IKYSqry5pCIM&3dAd7nu zw)e@`nez9??d~q*HT=#2EL-(D9UhecvxWSM{rPzZ^u0BxzLbsRuwIBG4PcxuHX%u& z=nu!{O^pak+yU!bxGj|dV{xPplt9*%62ItR)oTFfSgY#kr2(=0Ti@0asYwy-E?4Z9A@m~N2IM>4aPnR zz1{(rwH3?6S`UEU916Z~8iIlZo_@C1$XiKy3DBe;!Zu|K2jG|R673%p3%kQfG%Cyg zn*AOd8^$8)Hv9MhQ?6u4q`|Yl%@of8AQ0dh>o4kV^8loIN57yDN@Bsd$O%M!;>PT^ zi|uPNO?YZJKYs}ea<3+^?IvGC@OY>!U7ms@npFa;5LQC`_l2o@mNr&HtW=(&l$F%Il6Wwc@xK+ZJME4?6lM8> g|1nw6w%`DN0}ImO@KGA^GXMYp07*qoM6N<$f<$k2mH+?% literal 0 HcmV?d00001 diff --git a/flags/language/ru.png b/flags/language/ru.png new file mode 100644 index 0000000000000000000000000000000000000000..df09ef39e58299853be770a2371ae5e586820b43 GIT binary patch literal 417 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 Hu0mjfepdy` literal 0 HcmV?d00001 diff --git a/flags/language/todo.txt b/flags/language/todo.txt new file mode 100644 index 0000000..a3b0d8d --- /dev/null +++ b/flags/language/todo.txt @@ -0,0 +1,2 @@ +Bihari languages +https://en.wikipedia.org/wiki/Bihari_languages \ No newline at end of file diff --git a/flags/language/tsd.png b/flags/language/tsd.png new file mode 100644 index 0000000000000000000000000000000000000000..f7b257088a288df7e3480270f73fd2b19109384d GIT binary patch literal 908 zcmV;719SX|P)?Nb5S=q4s+vX^FHxSTM|7w+*fm|J1bTbB;&vu1ca0y>KK z${EP504tDpLsQU)s!^NaR>XN|#v(Xx+=0=0)+_>8u)nnF?0O4MJb5iG5Uw7OEPb%d zw`r9=9QRBvMF2w5Q{k+D3M zAqia%YLR)nLtkTM)Cu2YSEoq4?@cC;fu1e7`!pE~PdTw5mtJb&KE8I1-K zJwI+l(LeGP$pFR9hNHa!X&ax)0Cu~b02oOW-fpUnA5KD%la z;%OG$!$0t${E!T=A>YQOM~0!ff9eqiB4HX9y6=6cIG;UIhMP`u$>tRpcJl!}fTrny z*7*~bq0nJ(K>MRJGC;!W<6MGi89cl&Eg4``G`duFcrfbCi)9ITL iV|mbjOoA#w2lxdqTMh86(!iGh0000Q~ih{HV371PWDX3j?972rC_RAMR>*gF#`i``(vc2-03C zI4{zRc{9B*+d7T);{+_F>+05O)tH!=nD3LEoIU4c>juq5A}r~}9(Z^U=e*(lo&WoP z&ijNxk%Rdk;9USHDulGS>aSE55JsdFC{xmcy4$yx0@-FAA16>*sYN7`1k0-5dft@w z%HtROV(v>vqi-%16BBv~posu}XITvf2aRtYy4_LK*O$FD{yX&k*YbGIn8;o7(o%U8 zCMKYooNSf=tOT&Ry&b{Y+5vc8Ks+wUle)U95Dv%D*LMoLyI~}g0ul*<=AZ0$?l_#HOae&d#3A z3ZPJ=ar0&eY&H`vUv7{MC`s;e9m45!V|w}-c6N?2)R2||K0g=FPl5J!glA@;d-yOr z!0@mcCQ}(kN6(hW*jNWuMm>~D2|y%6CUNiHCKeW6$)-Bi{^eG0OKhFRxH8yfqDh)B1UpbvL7@ZDJUc7+q<;x7fqRGUaC1;9}NMQh2 z7TnGbhW7R{06)~#apw&NAQmeK0O&+q^>}dA>&*asuh(-n+82@M3!{KWgC+9YNFa~_ zu(K?8vAi6jbm9~OK&{5l;V?doL}Y;88I8s@L}ewN)ddNK0*i?RKH_=#IJQnHm79!` zTEY{Q;K?LlAPNFL76iE=X`*bWJVmL+f8Ur&Zz=U~`;@=RO(|tHC5ysz#(#IjQqB9{ jiMG7xe@u!RMF;p36z|^fw5|7z00000NkvXXu0mjf$twS@ literal 0 HcmV?d00001 diff --git a/flags/language/vn.png b/flags/language/vn.png new file mode 100644 index 0000000000000000000000000000000000000000..66104977e52ca2d76cf06bb7464fb9fe42398a13 GIT binary patch literal 684 zcmV;d0#p5oP)kc3mMv0)nJa#9FWvQd!yA`V;&ER{8_{2il3fScqsD&^81u4Tu_W zv&qiAGxytKc6BzI-PvZgFb9Si?hN-n^S0 z9}SoB_E(-h?xjHAImgC>`;9Js`1~b6KLtA8IlMOHd!HIveD&saymJ7Z6iB?ac%=!( zHUi+4##;-Jq(Eei!RI;N=!GUqx&Z)pyjbq~JjWUX5TyXt7<{4dYB7M-%~COOm@WoT zs0jdn0EEOVwa`SZtrB?jv9%b0kkbH0Yn+hyqCP;{4eZ1b6Q=-_!j7_;7F1(pJ12OL+)n^l zyWv>bRt(;()&m%2e_LRMm}>z*axsu>NPfI%GukZ^ZT+_6(me@nk2|Wd8`5N20i`u| zBx)&;ZaNO0#OOl{l#(C41F;tqcO*7X=6{Q$7&T>qF<2o8HR^!e|Mz(D<##sB2M7UO zEkxRAoXqiB(?rDHqfNCC8H39UyfKXc1m`go1wsi>W_BY0)=mII3OMT=yJ83-G}H=5 zgt8%V5pWf_23!W(4K$_!P{23fa|CpOKG12XGoEzB0vJT&JXl&=zVsiH^Y{hX(0?ZA S>dSQi00001gh5XXOOU*dp41cwF?QBqN)M53eM4UiD8kQbok6?lYDK#icIrh*m;3J?+qge<~G z0=92=XTK=!@JE2#tCE7OWchU3+564>XXfVMc>V87)xRTK1<;-QKP;F81i%+SfBVtB z{Wey2p1x~!`o-I2t9{)|cUKEw5MpHe>h-L_+WM7tx(-5iPxyKtU{C=45CRfBFNPl) zjW%C?ZUwNiZkqv5Y!PDs=odiO1&{R(7n;eF^DPx_-j|{fg9qpqfO6hbiXgt(Fgj`X z{MfutMNJ3}KotPaIkXdOb@SfS)jb@SqC`&>KyANRPhUMf|1yR20^6haC&~=h!I$;Ih7lBapfWB(Ro|(P)>EppF24b8zln3?>86!P+?h=Nx0J(YZ#X zO}j=IGF6ZgBJ-V4go)VfyTF@v0Qm^S0|3sUMR1`RAQ;;UAY?kBN&)9)0LeK=DTbI* zvuD!wZJ24r(IFK;Du56|z`p%R$^bksf3yPl^ei`$DN+gmK>?e#1r7Vs`KE;#_}WoFgaeo0EV=@nV>_+M*si-07*qoM6N<$f&_p* ABLDyZ literal 0 HcmV?d00001 diff --git a/flags/language/wls.png b/flags/language/wls.png new file mode 100644 index 0000000000000000000000000000000000000000..afe0fb7e3679253cdbc1722d7c825ff5efc8b3f4 GIT binary patch literal 1500 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 ABLDyZ literal 0 HcmV?d00001 diff --git a/flags/language/yej.png b/flags/language/yej.png new file mode 100644 index 0000000000000000000000000000000000000000..ee8c0d5f3c2f4a069754ab2bcfbc17143bffb0ec GIT binary patch literal 926 zcmV;P17ZA$P)M?(re+`ZMYULx2%<(1CS^s^L#Cosh(XYsuRRnLNcCitY5Cxa z59Lc%n{O%E#~KrfqSdDMrNyqbySCXnv)i3JW(7fo`_V%O{tR>GGUs>iId|?E1~E3~ zKfu2L5K{;>I5#6UiZCG}g-BKdCa$S&{rKb4!HcEzx}@3$fzd^TAP@{;xUnor1t?ls zW4qOTVlVukWlT;f7=&VJ=*bj(k_I97+8Rmr$FIEJT<<(nvg*Xxx8LBNToA*3xd z;NYI+G+^`f5sZva;rL-K_w1qOInR78!y#*R3LMYJ@vNyr10Y2xo!Os{n_ce_AdZ}M ziF89g==VTR?u+skq5fts?5B5!tp+?E4@6Pa07wx^gU9#4=acc_lZ+PoTZG6iC@)HZ zn83kERC~S)*G}yU8-UyGhQ(s}z5@9s5#8q; z89gJehzC!dKMzYq0lm&QI9isc0Th%rN%8Rl?8>Kz246%zvz(qqs*cCIFH?Bga!3Q% zR@*METabW(50epJ0o4)=JcP*!*v`%Dg3iuPDLXqmD#5>*!{I<-VW9@l(a|C0=H^DV z2zz>ZP+VNB0TfqXkW8jzNM1h@IX0rfJ+cBz91nxfjgE#I3XrMS?|-~-eHwznk8=+2 zCnhJQ!*g!{fj}EQjyJIEzCM;5lTpe5)V4xVf<#woL!zF&>Uq1E$biTFH%_w|48gts5&_2OBFJ8x9Z@M*tOp2u2V;EJpkwA4KC~_+p{~jfpWa zh6Eu7jbaRmaxuCfmqajJHW(02v&p#Z;_h47tzFx-T~E*PX%ClejExV-_~4s7J*Vfq zeV^ZRd7t+w!!!@}Kfsd!Fs%?#<@{|?Jw_OrBtjxa6&icDSGZ#|aq*94^}z5$&9i*6 z(-Z~Baeee&vvJd#kV3&n0>Ei?Q_k@m_z`KJ?XpJ!3cEjir_QwT4TNsikF`XWAFRYP zgh*)_ROe4aN;Zsn$Jn??j{B~iQwaB=pJ4rbPf_$uap$(Tou&=t7-_hwL?@;_3NV?K zW`x(Qh4$b;iW;~s#j zU@@3l1^&;I2yNU%Veo)!X+e0yt6;8MV4?`kH(w!SpE0Qy)H$=zd*m>3ckfpKZfw~k zq_0|sk=Ew>emL3#nguH$+H*-+5BSq(!FpVfvTcw`7eY=k(*!j%d-fohrk&gaHamJw zR3d-x0R`ai&94X4*jwM9! zgZH8Tcsp40Re17j6DQ*6B(!Ft_4giT->-)u&tO6vCVhS0~3TGIug>eAlpkI z*|Q-fB!U;5h|Hp}ND}<}ca5?BK_1{!)6rIa28#}zQ~=Jcdrq*IIS_7}U^|W5israX z1a|BI2Ku3{ssewm8o^I@fNSr7_q#71828a0;8Rl3e7OcoE6*wbr(Swmn7ud;V&~-h zIXY4@=OMCe8Myj-aLx;0J|D#8YaqwRLsfGMeL?q>Yp9aUXsi{m;&_b$aBO*rP~dPN zGUOREQBT#*l1p*!4I@013Qrnk`Y@I2xHy;w`k)GQ0CRL;)qeC9l>mVd1y~Eyum`-# z1ux&=|>4jM+fIZdY(fI$J4Vqg7PtNLI~kR8+fq^crF3BM$ZfAT*%cyJ~4=hI}NRL z?sAknR~s6zzN%gU`2B?(VUEcTDd3MO*9Aq`mXcDZ7q{G+nBr9ZFqlCHR|ktFR9X>j zk$es02z|d40_&FH64gjerss>)RPZSY2kG8Gr7Tqi_753AMeJq`2QE&J+Ll(lcBxST z_<4yh=%&<~l*G0Za2k&l!TuME{wE)86 zd=e{^6#B0l)2NlvxOS7=h&81o$s~F_p3eAAM;zVr15ZR-KJ9-@rgcm^z`xdKAOGQ> Rg8={l002ovPDHLkV1hH-zW4wD literal 0 HcmV?d00001 diff --git a/flags/language/zdj.png b/flags/language/zdj.png new file mode 100644 index 0000000000000000000000000000000000000000..eb174c76db17d6b4d4f29fcd6ed69dae1cd88a85 GIT binary patch literal 866 zcmV-o1D*VdP){TauO$aQ6L zSGx#Mh=9Dcmc$q?&EMoe)^dD@kV$PF8^I&TaMl9kBOo-^AXa0Y;g=@Vl8`5Rh5cE( zH3G02=L|p?0f87Hkp!^*Y6 z@OcjI9O&p4FzIK2cZmQ*ghXP}VZ@1nXX(xM@$GNdxw|yaamz{K|-QCTQ6T6_s53EC(s3uP`|d!Ji>RPf$!xnyRv|1P9@ zlWOTb($xpws_8wuseFB{eSq7Gw>Y}H$iChK%++Q9_@X>TqW?L-K-KZwH=3;Sn2m_A z-e_k)X~m_vPw79gpV8tt<-4;qb(7Oa$GLE|)VeVvo>SAp;X5l&y-}MAmg{Jx+8MaB z_%r9G-sY7jUgM3EZ!-DACtSEvLYV~TJ%_56u`8M$<=M19M&W%LP@0Brkm#7w<#*b8 zdlJvsSDK;QE6bWr7*UWywGALbteP$HwHoyh&H5QWDCVHpIV;YjQ~X-F0Y6?}bwVw~ z5+iF?>~r|~8N3=<+qIqj6#G>BD-aQsD2x@n8o@2U3_iCBnf*7cYj;8~A|y!)yL=X( z99wJKvOHjnLqr4k2(TvJM{W9Pa1CI(JBi4702=^>2uB|8(i723nC(mN&@D_7x7MSeTBS%_y&1}+7MC7RprH;b!RsiayEMQ!W1;a3^QF{*RQ&|242|z-P~$int7m|TsH+{fB@A4 z+mAlH{rH(b6`=WdQ1?E%^RfqaRfL`QKX{VSox5+q?CJ?_Gb!e_s+!pB4jk2r}4b2HH1)%kStF>T#kKZ3~*Npb6(d-EGw<;1G798bd z#RiC@eZ8`HQ|LaQV|l$uSl?4?fpKk6OF@SoIWAm%qu^gvs4%|)^{^p+Im41Wb)ryy zGU}0`LjqYZA2jvUF#`MzV11+#?9>PB*$Rl#^-A$qs4d@ zpyZ6ifDQw**8~lP{+?&+or>QVh6f&}Q}593DYHE#|KPE@UJghMl$@s#$Y@w%xkozT z@h6V@n~{E0+Upf7&FEyc8>~8J2bK9jW%zD^r8ScGXCL^&5EMr^e=|8oFUa-LSg zQjnp?YTXEc6QN8ZV0i_A>Sh|UT23S|4@ec^-tS?oHX8|n!^Vb09B=^K0A2wW8)!@o zNWdZR&;dKZF0j3!&iJGw4#2Tn<-w)3<(K|r^1}WCH#fZomT;ZT00000NkvXXu0mjf D@N;I$ literal 0 HcmV?d00001 diff --git a/hidden_files b/hidden_files new file mode 100644 index 0000000..5d7e190 --- /dev/null +++ b/hidden_files @@ -0,0 +1,15 @@ +classes +flags +index_icons +languages +templates +hidden_files +AutoIndex.conf.php +config.php +access.log +license.html +meta.inc +robots.txt +favicon.gif +blank.html +index.htm \ No newline at end of file diff --git a/index.htm b/index.htm new file mode 100644 index 0000000..ee1f723 --- /dev/null +++ b/index.htm @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/index.php b/index.php new file mode 100644 index 0000000..39c7794 --- /dev/null +++ b/index.php @@ -0,0 +1,641 @@ + + * @version 1.2.1 (January 06, 2007) + * + * @copyright Copyright (C) 2002-2007 Justin Hagstrom + * @license http://www.gnu.org/licenses/gpl.html GNU General Public License (GPL) + * + * @link http://autoindex.sourceforge.net + */ + +/* + AutoIndex PHP Script is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + AutoIndex PHP Script is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +*/ + +/** + * OPTIONAL SETTINGS: + */ + +//filenames and paths for configuration related files +define('CONFIG_STORED', 'AutoIndex.conf.php'); +define('CONFIG_GENERATOR', 'config.php'); + +//paths for files that will be included +define('PATH_TO_CLASSES', './classes/'); +define('PATH_TO_LANGUAGES', './languages/'); +define('LANGUAGE_FILE_EXT', '.txt'); + +//filenames of template files +define('GLOBAL_HEADER', 'global_header.tpl'); +define('GLOBAL_FOOTER', 'global_footer.tpl'); +define('TABLE_HEADER', 'table_header.tpl'); +define('TABLE_FOOTER', 'table_footer.tpl'); +define('EACH_FILE', 'each_file.tpl'); + +/** + * When ENABLE_CACHE is true, the indexes of directories will be stored in + * files in the folder CACHE_STORAGE_DIR. You will notice a speed improvement + * when viewing folders that contain a few thousand files. However, the contents + * of the indexed folders will not be updated until you delete the cache file. + */ +define('ENABLE_CACHE', false); + +/** + * This is the folder cache data will be stored in. PHP needs write permission + * in this directory. You can use an absolute path or a relative path, just + * make sure there is a slash at the end. + */ +define('CACHE_STORAGE_DIR', './cache/'); + +/** + * Format to display dates in. + * @see date() + */ +define('DATE_FORMAT', 'Y-M-d'); + +/** + * Sets debug mode. Off (false) by default. + */ +define('DEBUG', false); + +/* END OPTIONAL SETTINGS */ + + +/** The time this script began to execute. */ +define('START_TIME', microtime(true)); + +/** Level for disabled/banned accounts. */ +define('BANNED', -1); + +/** Level for Guest users (users who are not logged in). */ +define('GUEST', 0); + +/** Level for regular user accounts. */ +define('USER', 1); + +/** Level for moderator ("super user") accounts. */ +define('MODERATOR', 2); + +/** Level for Admin users. */ +define('ADMIN', 3); + +/** + * Minimum user level allowed to upload files. + * Use the ADMIN, MODERATOR, USER, GUEST constants. + * GUEST will allow non-logged-in users to upload. + */ +define('LEVEL_TO_UPLOAD', USER); + +/** The version of AutoIndex PHP Script (the whole release, not based on individual files). */ +define('VERSION', '2.2.4'); + +/** + * This must be set to true for other included files to run. Setting it to + * false could be used to temporarily disable the script. + */ +define('IN_AUTOINDEX', true); + +if (@get_magic_quotes_gpc()) +//remove any slashes added by the "magic quotes" setting +{ + $_GET = array_map('stripslashes', $_GET); + $_POST = array_map('stripslashes', $_POST); +} +@set_magic_quotes_runtime(0); + +$_GET = array_change_key_case($_GET, CASE_LOWER); +$_POST = array_change_key_case($_POST, CASE_LOWER); + +if (@ini_get('zlib.output_compression') == '1') +//compensate for compressed output set in php.ini +{ + header('Content-Encoding: gzip'); +} + +/* + * Uncomment the following code to turn on strict XHTML 1.1 compliance in + * users' browsers. If you do this, make sure any changes you make to the + * template do not break XHTML 1.1 compliance. + */ +/*if (isset($_SERVER['HTTP_ACCEPT']) && preg_match('#application/(xhtml\+xml|\*)#i', $_SERVER['HTTP_ACCEPT'])) +{ + header('Content-Type: application/xhtml+xml'); +}*/ + +session_name('AutoIndex2'); +session_start(); + +/** + * Formats $text within valid XHTML 1.1 tags and doctype. + * + * @param string $text + * @param string $title + * @return string + */ +function simple_display($text, $title = 'Error on Page') +{ + return ' + + + + ' . $title . ' + + + +

    ' . $text . '

    + + +'; +} + +/** + * This function is automatically called by PHP when an undefined class is + * called. + * + * A file with the classname followed by .php is included to load the class. + * The class should start with an upper-case letter with each new word also in + * upper-case. The filename must match the class name (including case). + * + * @param string $class The name of the undefined class + */ +function __autoload($class) +{ + if ($class != 'self') + { + $file = PATH_TO_CLASSES . $class . '.php'; + /** Try to load the class file. */ + if (!@include_once($file)) + { + die(simple_display('Error including file ' + . htmlentities($file) . ' - cannot load class.')); + } + } +} + +/** + * This is used to report a fatal error that we cannot display with the Display + * class. All Exceptions used in AutoIndex should inherit from this class. + * + * @package AutoIndex + */ +class ExceptionFatal extends Exception {} + +try +{ + //now we need to include either the stored settings, or the config generator: + if (@is_file(CONFIG_STORED)) + { + if (!@is_readable(CONFIG_STORED)) + { + throw new ExceptionFatal('Make sure PHP has permission to read the file ' + . Url::html_output(CONFIG_STORED) . ''); + } + $config = new ConfigData(CONFIG_STORED); + } + else if (@is_file(CONFIG_GENERATOR)) + { + /** Include the config generator so a new config file can be created. */ + if (!@include_once(CONFIG_GENERATOR)) + { + throw new ExceptionFatal('Error including file ' + . Url::html_output(CONFIG_GENERATOR) . ''); + } + die(); + } + else + { + throw new ExceptionFatal('Neither ' + . Url::html_output(CONFIG_GENERATOR) . ' nor ' + . Url::html_output(CONFIG_STORED) . ' could be found.'); + } + + + //find and store the user's IP address and hostname: + $ip = (isset($_SERVER['REMOTE_ADDR']) ? $_SERVER['REMOTE_ADDR'] : 'N/A'); + if (isset($_SESSION['host'])) + { + $host = $_SESSION['host']; + } + else + { + $_SESSION['host'] = $host = @gethostbyaddr($ip); + } + + + //Create a language object: + $words = new Language(); + + + //Create a logging object: + $log = new Logging($config -> __get('log_file')); + + + foreach ($config as $key => $item) + /* Go through each config setting, and set a constant with each setting's + * name to either true or false depending on if the config setting is + * enabled. + */ + { + $key = strtoupper($key); + if (defined($key)) + { + throw new ExceptionFatal(Url::html_output($key) + . ' is already defined in ' . basename(Url::html_output($_SERVER['PHP_SELF'])) + . ', and should not be in the config file.'); + } + define($key, ($item != 'false' && $item != '0')); + } + + + //make sure all required settings are set in the config file + foreach (array('base_dir', 'icon_path', 'flag_path', 'language', 'template', + 'log_file', 'description_file', 'user_list', 'download_count', + 'hidden_files', 'banned_list', 'show_dir_size', 'use_login_system', + 'force_download', 'search_enabled', 'anti_leech', 'entries_per_page', + 'must_login_to_download', 'archive', 'days_new', 'thumbnail_height', + 'bandwidth_limit', 'md5_show', 'parse_htaccess') as $set) + { + if (!defined(strtoupper($set))) + { + throw new ExceptionFatal('Required setting ' . $set . ' is not set in ' . Url::html_output(CONFIG_STORED) . ''); + } + } + + + /* From this point on, we can throw ExceptionDisplay rather than + * Exception since all the configuration is done. + */ + + $b_list = $only_these_ips = $banned_ips = array(); + if (BANNED_LIST && @is_file($config -> __get('banned_list'))) + //make sure the user is not banned + { + $b_list = @file($config -> __get('banned_list')); + if ($b_list === false) + { + throw new ExceptionDisplay('Error reading from banned_list file.'); + } + for ($i = 0; $i < count($b_list); $i++) + { + $b_list[$i] = rtrim($b_list[$i], "\r\n"); + if (ConfigData::line_is_comment($b_list[$i])) + { + continue; + } + if ($b_list[$i]{0} === ':') + { + $only_these_ips[] = substr($b_list[$i], 1); + } + else + { + $banned_ips[] = $b_list[$i]; + } + } + if (count($only_these_ips) > 0) + { + if (!(DirectoryList::match_in_array($ip, $only_these_ips) || + DirectoryList::match_in_array($host, $only_these_ips))) + { + throw new ExceptionDisplay($words -> __get('the administrator has blocked your ip address or hostname') . '.'); + } + } + else if (DirectoryList::match_in_array($ip, $banned_ips) || + DirectoryList::match_in_array($host, $banned_ips)) + { + throw new ExceptionDisplay($words -> __get('the administrator has blocked your ip address or hostname') . '.'); + } + } + + $show_only_these_files = $hidden_files = array(); + if (HIDDEN_FILES && @is_file($config -> __get('hidden_files'))) + //store the hidden file list in $hidden_list + { + $hidden_list = @file($config -> __get('hidden_files')); + if ($hidden_list === false) + { + throw new ExceptionDisplay('Error reading from "hidden_files" file.'); + } + for ($i = 0; $i < count($hidden_list); $i++) + { + $hidden_list[$i] = rtrim($hidden_list[$i], "\r\n"); + if (ConfigData::line_is_comment($hidden_list[$i])) + { + continue; + } + if ($hidden_list[$i]{0} === ':') + { + $show_only_these_files[] = substr($hidden_list[$i], 1); + } + else + { + $hidden_files[] = $hidden_list[$i]; + } + } + } + + + //size of the "chunks" that are read at a time from the file (when $force_download is on) + $speed = (BANDWIDTH_LIMIT ? $config -> __get('bandwidth_limit') : 8); + + + if (DOWNLOAD_COUNT) + { + if (!@is_file($config -> __get('download_count'))) + { + $h = @fopen($config -> __get('download_count'), 'wb'); + if ($h === false) + { + throw new ExceptionDisplay('Could not open download count file for writing.' + . ' Make sure PHP has write permission to this file.'); + } + fclose($h); + } + $downloads = new ConfigData($config -> __get('download_count')); + } + + + //create a user object: + $log_login = false; + if (USE_LOGIN_SYSTEM && isset($_POST['username'], $_POST['password']) + && $_POST['username'] != '' && $_POST['password'] != '') + { + $you = new UserLoggedIn($_POST['username'], sha1($_POST['password'])); + $log_login = true; + $_SESSION['password'] = sha1($_POST['password']); + unset($_POST['password']); + $_SESSION['username'] = $_POST['username']; + } + else if (USE_LOGIN_SYSTEM && isset($_SESSION['username'], $_SESSION['password'])) + { + $you = new UserLoggedIn($_SESSION['username'], $_SESSION['password']); + } + else + { + $you = new User(); + if (MUST_LOGIN_TO_DOWNLOAD && USE_LOGIN_SYSTEM) + { + $str = '

    You must login to view and download files.

    ' + . '' + . '
    ' + . $you -> login_box() . '
    '; + echo new Display($str); + die(); + } + } + + + //set the logged in user's home directory: + $dir = Item::make_sure_slash((($you -> home_dir == '') ? $config -> __get('base_dir') : $you -> home_dir)); + $config -> set('base_dir', $dir); + $subdir = ''; + + if (isset($_GET['dir'])) + { + $dir .= Url::clean_input($_GET['dir']); + $dir = Item::make_sure_slash($dir); + if (!@is_dir($dir)) + { + header('HTTP/1.0 404 Not Found'); + $_GET['dir'] = ''; //so the "continue" link will work + throw new ExceptionDisplay('The directory ' + . Url::html_output($dir) . ' does not exist.'); + } + $subdir = substr($dir, strlen($config -> __get('base_dir'))); + if (isset($_GET['file']) && ($file = $_GET['file'])) + { + while (preg_match('#\\\\|/$#', $file)) + //remove all slashes from the end of the name + { + $file = substr($file, 0, -1); + } + $file = Url::clean_input($file); + if (!@is_file($dir . $file)) + { + header('HTTP/1.0 404 Not Found'); + throw new ExceptionDisplay('The file ' + . Url::html_output($file) . ' does not exist.'); + } + if (ANTI_LEECH && !isset($_SESSION['ref']) && (!isset($_SERVER['HTTP_REFERER']) + || stripos($_SERVER['HTTP_REFERER'], $_SERVER['SERVER_NAME']) === false)) + { + $log -> add_entry('Leech Attempt'); + $self = $_SERVER['SERVER_NAME'] . Url::html_output($_SERVER['PHP_SELF']) + . '?dir=' . Url::translate_uri($subdir); + throw new ExceptionDisplay('

    This PHP Script has an Anti-Leech feature turned on.

    ' + . '
    '); + } + $log -> add_entry($file); + if (DOWNLOAD_COUNT) + { + $downloads -> add_one($dir . $file); + } + $url = new Url($dir . $file, true); + $url -> download(); + } + } + + if ($log_login) + { + $log -> add_entry('Successful login (Username: ' + . $_SESSION['username'] . ')'); + } + + if (DESCRIPTION_FILE) + { + $descriptions = new ConfigData((@is_file($config -> __get('description_file'))) + ? $config -> __get('description_file') : false); + } + + if (PARSE_HTACCESS) + { + //parse .htaccess file(s) + new Htaccess($dir, '.htaccess'); + } + + if (MD5_SHOW && isset($_GET['md5']) && $_GET['md5'] != '') + { + $file = $dir . Url::clean_input($_GET['md5']); + if (!@is_file($file)) + { + header('HTTP/1.0 404 Not Found'); + throw new ExceptionDisplay('Cannot calculate md5sum: the file ' + . Url::html_output($file) . ' does not exist.'); + } + $size = (int)@filesize($file); + if ($size <= 0 || $size / 1048576 > $config -> __get('md5_show')) + { + throw new ExceptionDisplay('Empty file, or file too big to calculate the' + . 'md5sum of (according to the $md5_show variable).'); + } + die(simple_display(md5_file($file), 'md5sum of ' + . Url::html_output($file))); + } + + if (THUMBNAIL_HEIGHT && isset($_GET['thumbnail'])) + { + $fn = Url::clean_input($_GET['thumbnail']); + if ($fn == '') + { + die(); + } + echo new Image($fn); + } + + if (ARCHIVE && isset($_GET['archive'])) + { + $log -> add_entry('Directory archived'); + $outfile = Item::get_basename($subdir); + if ($outfile == '' || $outfile == '.') + { + $outfile = 'base_dir'; + } + $mime = new MimeType('.tar'); + header('Content-Type: ' . $mime -> __toString()); + header('Content-Disposition: attachment; filename="' + . $outfile . '.tar"'); + @set_time_limit(0); + $list = new DirectoryList($dir); + $tar = new Tar($list, $outfile, strlen($dir)); + die(); + } + + //set the sorting mode: + if (isset($_GET['sort']) && $_GET['sort'] != '') + { + $_SESSION['sort'] = $_GET['sort']; + } + else if (!isset($_SESSION['sort'])) + { + $_SESSION['sort'] = 'filename'; //default sort mode + } + + //set the sorting order: + if (isset($_GET['sort_mode']) && ($_GET['sort_mode'] == 'a' || $_GET['sort_mode'] == 'd')) + { + $_SESSION['sort_mode'] = $_GET['sort_mode']; + } + else if (!isset($_SESSION['sort_mode'])) + { + $_SESSION['sort_mode'] = 'a'; //default sort order + } + + if (count($_FILES) > 0) + //deal with any request to upload files: + { + $upload = new Upload($you); //the constructor checks if you have permission to upload + $upload -> do_upload(); + } + + if (USE_LOGIN_SYSTEM) + { + if (isset($_GET['logout']) && $_GET['logout'] == 'true') + { + $you -> logout(); + } + else if (isset($_GET['action']) && $_GET['action'] != '') + { + $admin = new Admin($you); //the constructor checks if you really are an admin + $admin -> action($_GET['action']); + } + } + + if (ANTI_LEECH && !isset($_SESSION['ref'])) + { + $_SESSION['ref'] = true; + } + + $search_log = ''; + if (SEARCH_ENABLED && isset($_GET['search'], $_GET['search_mode']) + && $_GET['search'] != '' && $_GET['search_mode'] != '') + { + $s = Url::clean_input($_GET['search']); + $dir_list = new Search($s, $dir, $_GET['search_mode']); + $search_log = "Search: $s"; + } + else if (ENABLE_CACHE) + { + $cache = CACHE_STORAGE_DIR . strtr($dir, '\/:', '---'); //path to cache file + if (@is_file($cache)) + { + $contents = @file_get_contents($cache); + if ($contents === false) + { + throw new ExceptionDisplay('Cannot open cache file for reading. Make sure PHP has read permission for these files.'); + } + $dir_list = unserialize($contents); + } + else + { + $dir_list = new DirectoryListDetailed($dir); + if (!@is_dir(CACHE_STORAGE_DIR)) + { + if (!Admin::mkdir_recursive(CACHE_STORAGE_DIR)) + //Attempt to create the directory. If it fails, tell the user to manually make the folder. + { + throw new ExceptionDisplay('Please create the directory ' + . Url::html_output(CACHE_STORAGE_DIR) + . ' so cache files can be written.'); + } + } + $h = @fopen($cache, 'wb'); + if ($h === false) + { + throw new ExceptionDisplay('Cannot write to cache file. Make sure PHP has write permission in the cache directory.'); + } + fwrite($h, serialize($dir_list)); + fclose($h); + } + } + else + { + $page = ((ENTRIES_PER_PAGE && isset($_GET['page'])) ? (int)$_GET['page'] : 1); + $dir_list = new DirectoryListDetailed($dir, $page); + $max_page = (ENTRIES_PER_PAGE ? (ceil($dir_list -> total_items() / $config -> __get('entries_per_page'))) : 1); + } + $log -> add_entry($search_log); + $str = $dir_list -> __toString(); + echo new Display($str); +} +catch (ExceptionDisplay $e) +{ + echo $e; +} +catch (Exception $e) +{ + echo simple_display($e -> getMessage()); +} + +?> \ No newline at end of file diff --git a/index_icons/apache/ass.png b/index_icons/apache/ass.png new file mode 100644 index 0000000000000000000000000000000000000000..d926638114464260b7d5e3d4c0664922693295d9 GIT binary patch literal 1032 zcmV+j1o!)iP)F>&#($HRB!<>8Rs4sx}q z2=!xQ*p-w-#=TxMB_BLzu~erk6k?v^2uF!D1!pkGHP6m=24k@{lR_~y843wiIvq$N zouI~KBA4y<$+Y0O!mO*tt?GQ z@Qtjm3*;re9*6XL=F0T+sa~tK=_jXi>Am6MUna`R-joP}B*L=bVllq3zu)%Jjvcwh zDwX!|Sa2ykTBY9&QBTXthX!R<5I**X4T2-cq8J73f5%^zkO^Mx3T#>aEc zuND?&Zkf%ca-K)~%F5r@-R?J9^!i7{5EmzZL9K3VFD|YTZ*Gdl*Oo}#yvH}-^N07u z%MCkK$!MFOo~Tu84CUIC#5JB5{4C4YyIjpfEc-smP%00!7ZiNC5ez2WRZGaId^dVV zBM_~&Zi}GVjpR(LaBSyagzX(bq0bMCR4NQbqu#nepo&l#Z|*Z1E3yxlt4>!R!P{4S z`0mCffW5OVBczZP-NWpUX|UTT@!;2PxO;lwayYy;zyCH-OC+C_q@+~jSYLhi^^-@@ zHzdKuhB3f%cAKw04$I4DaqBXJ@i`Z!Cnn+O?#90(Bi=!`yOX5L_k@&v9IQfO`MIy0tK*z^G>GOd01E7foE@|i&*}4L1 zH5$^izOJiLslL4*iTEfeu9|PQ$Q;3ETG$$pYa&;Aj zG8r=%iR8)wBSX*dzu;(*O<*w%7+RpkF4Da^n*RY43A%6z%6EirBu2dW73ba4!+xRspX&=8<;c9s}JV$0H{O_^#6&WvY@yuA|-q(~S` zG)Q>r9P{Gi;pxfD^l55x`0A6H+1Avg;F_7~B;XbiHDLiq$ZUlh9t)I|J3RID9L_Sx XH3-Pwo3+IcXaj?%tDnm{r-UW|GJ;1- literal 0 HcmV?d00001 diff --git a/index_icons/apache/binary.png b/index_icons/apache/binary.png new file mode 100644 index 0000000000000000000000000000000000000000..cbdc5f92aa2300da2bd932ebb48f4967c468102e GIT binary patch literal 230 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPGa2=EDUJ#gTFrKM$dc6Lus&;S4b z&z(E>{P}aBWS7{*ML>$NB*-tA!Qt7BG!Q4r+uem-EV1J?kRw*&8c`CQpH@%~a$OcXSkJ z)(pMc$ay5dxTwgJ$uMNfoR~QdJd0UaIha?l9b#BncxWA4hQf@4Ygkyicz76;g@liW Tu)aDBG?>BD)z4*}Q$iB}_K--O literal 0 HcmV?d00001 diff --git a/index_icons/apache/binhex.png b/index_icons/apache/binhex.png new file mode 100644 index 0000000000000000000000000000000000000000..d41320d2052bb658a0ba8bc0c8375613463d716f GIT binary patch literal 238 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPGa2=EDUJ#gTFrKM$dc6Lus&;S4b z&z(E>{P}aBWS7{*ML>$NB*-tA!Qt7BG!Q4r+uem-EV1J?kRw*&8c`CQpH@gTe~DWM4fR>Ms{ literal 0 HcmV?d00001 diff --git a/index_icons/apache/cd.png b/index_icons/apache/cd.png new file mode 100644 index 0000000000000000000000000000000000000000..86bbb8b092871aaa8a12a1fadd1802cef945abcb GIT binary patch literal 752 zcmV|J~jH&(HtO&HvKU|J2m~_4W1V=l|K+|K8sJ;^P0bw6x^p zB_X6^0miHV7RetxmB#)pT8=;;5@(9p-n^?ZDM{Nn%3&Gp8{#_a6> z#KgpGY;5!M|JK&||K9)G)c?%P(vp&*=idMI(*J5|YRby&=iC3lz`(b+>iO{eprEAg z?*EUElwV(8^z{F*u;X`kchAqy#l`d0)zze=r)+F)yu7^g(f^8yk7;RYVq$5zx!lCW z=ilG&-r4`c!tdqSdOZ+5hGfqHs+`1t>9Y;elT%9xm$>g4~Oot>kgv#F`GzrVw9aCH3I|G>cJ=ivX$ z%*=RrgZKCU=jZqQ^#A|%|MThp@$CP-z2?`~*ZTVZjEtVAr>AaiZsq0WzP`SUjFipI z^ITk9iHVGvnauzH|5Q{|!QB`i00001bW%=J06^y0W&i*H0b)x>M1DWGL302A02Xvb zSaefwW^{L9a%BK#X=XBTZf77eE;KGSq%(sT0002*NklxGeR=9)fP8*FMG-@gfGAI0T>yyB%^}B>3Dlob2LuHM9^4$9T;9>; z3@m|eIdyp&x(XSbT&(QQf(#`=mPS>Kk+Dg+tgP$;%n}SGp`JGC`B}owUivDsCc zEI{)@82$D9jDu=xYop8=;z8!?q&X@C*SWjax~MWZNCEBR)Qm^~S*BGl!N9<*$N@56 zpt!D%N4{Q=fx%Wp4#bzSsN+c#mJ|XywSp-e$TwB9mKQEl0sAJ-Dz!4%%)Y)}QU&T? iAwg-eYB6a+ka_?WY%f|Kj@t(S0000N7)z?lSZ z?goQHmsq$KX0EaktaVt5&fx%7VY|a{nWC=$}wqr~JZ3`0wLb@C| zUAPUTrL`MP+888#)+w}Y-nfx-#>1qXH%w_3lG3XiBo7@swno8C$z!9$5t(GQ4%wzA cCkG*h!mnKW10&XN0ouUe>FVdQ&MBb@0Lhq2(*OVf literal 0 HcmV?d00001 diff --git a/index_icons/apache/dir.png b/index_icons/apache/dir.png new file mode 100644 index 0000000000000000000000000000000000000000..de3e591048a98afad54b7fd4a40cf41ddebae215 GIT binary patch literal 222 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPE^4e$wZJ#gT_|2ymc-&?z5L2bCV zwYI7(P$v7ROxSQ6wH%;50sMjD8d$@u`gF9%>i%cku4jXZqcrz%eDR zv_VEpqUJw Lu6{1-oD!M{P}aBWS7{*ML>$NB*-tA!Qt7BG!Q4r+uem-EV1J?kRw*&8c`CQpH@%~a$OcXSkJ z)(pMc$ay5dxTwgJ$uMNfoR~QdJd0UaIha?l9b#BncxWA4hQf@4Ygkyicz76;g@liW Tu)aDBG?>BD)z4*}Q$iB}_K--O literal 0 HcmV?d00001 diff --git a/index_icons/apache/doc.png b/index_icons/apache/doc.png new file mode 100644 index 0000000000000000000000000000000000000000..bad6e4e6a65d2197d69d3d8db88c1b4754fabfd5 GIT binary patch literal 268 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPGa2=EDU1=5z5mf6|aJv}|=&YgSy z{Q3X?|AB(WicPbD6k|z{UoeBivm0qZj#!CnL`iUdT1k0gQ7S`vW|~n!Ub=#jo{65> z660oZpb9mR3g`UX+|;}hhNMab-^8Ml%sf5sqQunP)FKDpgTe~DWM4f DX%ANx literal 0 HcmV?d00001 diff --git a/index_icons/apache/generic.png b/index_icons/apache/generic.png new file mode 100644 index 0000000000000000000000000000000000000000..42af82ec44f2e428c3909bc8244b582442e1b96f GIT binary patch literal 203 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPGa2=EDUJ#gTFrKM$dc6Lus&;S4b z&z(E>{P}aBWS7{*ML>$NB*-tA!Qt7BG!Q4r+uem-EV1J?kRw*&8c`CQpH@%~a$OcXZS^ q+{k&Vz_ZD4&WSVwZN^3=W@d&)3(-^ojgE&v-3*?telF{r5}E*?dOq*~ literal 0 HcmV?d00001 diff --git a/index_icons/apache/image.png b/index_icons/apache/image.png new file mode 100644 index 0000000000000000000000000000000000000000..a4edb6924f52a346055be3be281edbe2801731c7 GIT binary patch literal 233 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPGa2=EDUJ#gT_e;^17VyISRsNUMs zGbJb}3Me^$Q|l)n#aI&L7tG-B>_!@hljQC0!Y-EB@fyexD{+k|3C>R|DNig)Wk}CV zGb+eSS1{5u(KB0O+$;`M5#Z_K7*cU7Il+OAQK2a?AfQ3?m;g_M;SC2K)zX8TN;I4u zc+PnEi?SG>lDN!#kSDG1v5SH88HrN@8fN8;#w<637VtQVOE?RxnQO|+A|b)BA%n;M TP-5S9pxF$bu6{1-oD!Mz@;j(q!3lK=n!AY({UO#lFTB>(_`g8%^e{{R4h=>PzA zFaQARU;qF*m;eA5Z<1fdMgRZ<08mU+MF0Q*IXO9NYio>*jLy!^=jZ4D|Nj6000;;O z2?+@b3JMDg3k(bl4Gj$r4h|0w4-gO#5fKp*5)u;=6BHB_6%`d078Vy57Z?~A85tQG z8X6lL8yp-Q9UUDW9v&YbA0QwgAt50mA|fLrBP1jwB_$;$CMG8*CnzW=DJdx`Dk>{0 zD=aK5EiElBE-o)GFEB7LF)=YRGBPtWGc+_bH8nLhHa0gmH#j&rIXO8xIyyT$J3Kr* zJv}`>K0ZG`KR`f0K|w)6LPA4BLqtSGMMXtMMn*?RM@UFWNl8gcN=i#hOH52mO-)Ts zPEJoxPf$=$QBhG+Qc_b>Q&dz`RaI41R#sP6S6EnBSy@?HT3TCMTU=aRU0q#XUS3~c zUtnNhVPRonVq#-sV`OAxWo2b%W@cw+XJ}|>X=!O{YHDk1Yiw+6ZEbCCZf7mzbECnVFfInwp!No1C1Sot>SYo}QndpP-Ll?si~=|s;aB2tE{Z7t*x!DuCA}IuduMNv9YnTva++Yv$V9dwY9aj zwzjvox45{txw*Nzy1Ki&yS%)-y}iA@zP`V|zreu2!NI}8!otJD!^FhI#l^+O#>U6T z$H>UY$;rve%F4^j%goHo&CSiu&d$%z&(P4&(b3V;($dq@)6~?|)z#J3*4Ee8*Vx$D z+1c6J+S=RO+uYpT-QC^Z-rnEe-{9cj;o;%p;^O1ulq(=H}<;=jiC@>FMd} z>gwz3>+J08?d|RE?(XmJ@9^;O@$vEU^78ZZ^Yrxe_4W1k_V)Mp_xSku`T63M>3;+QH`anH>OBb?uT|w-b#B07pB6q^bc4 z2#^sWBAGb{j%`{=0|dYrF~%^n8^_EtGc#wAiOh8OLaUgaU6KF*q_U_;zDfc_^`*Y_ ztfQTvsw7l}M0s%c=J@7eaf0TgpsFAH3y>xvBuF{Wv+ntDLlrZe>tM8$UWAJ_JAJxK zQdN=>UR@DHM1=1_-BMb$jxpK`yb1NID#r#-=>PQu-b2^xzw;sX00000NkvXXu0mjf DNa1K? literal 0 HcmV?d00001 diff --git a/index_icons/apache/key.png b/index_icons/apache/key.png new file mode 100644 index 0000000000000000000000000000000000000000..d4899cc97d9588e30e87db490e9858edb6f2fe06 GIT binary patch literal 258 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPGa2=EDU1=5z5mf6|aJv}|=&YgSy z{Q3X?|AB(WicPbD6k|z{UoeBivm0qZj#!CnL`iUdT1k0gQ7S`vW|~n!Ub=#jo{65> z660oZpb9mR3g`UX+|;}hhNMab-^8Ml%sf5sqQunP)FKDpguXW9P==3Fp8Ps*rTx2z|m2_S=U#$k@J)Xcazsr)ke|j rOBWh<-MAoGu+oI1Ig*n@L{fqwald3&!}`2Hpm_|Qu6{1-oD!MMGF_4IB}x6x!KXt5vcNL;j=&>#aI&L7tG-B>_!@p zBUa)XQ4*Y=R#Ki=l**8vnPyawm#$!>XQF4e#JE`;s3OVJ#WAGfR&v6Fy6^88n3)gX zHBNtLWbol$<&y2?%*^){+1jr2OU!7P(#LdoneYGq+1bW5kz2E_KB{PopKNV)sNu?& znZ{=urWm%Q8x=n@nJ~xQJ=*T@^G{noZK-Jc`@ivlK7+i3?!L00GhPF2WAJqKb6Mw< G&;$U17ikUv literal 0 HcmV?d00001 diff --git a/index_icons/apache/mov.png b/index_icons/apache/mov.png new file mode 100644 index 0000000000000000000000000000000000000000..ec7a0d56f855d429feecbc4d55f7fcbbef1853b4 GIT binary patch literal 218 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPE^4e$wZJ#gSac6N48PmiUg<+*d` zoc64Q3n0y$zOt`Q}{`DrEPiAAXl>6vLp z1$pTTMtUZCW=o8l#ephZJY5_^DsCkgFfy{Uv9UP{2rwD3^z`=jPHE(ER#s(AOPc64Q3n0y$zOt`Q}{`DrEPiAAXl>6vLp z1$pTTMtUZCW=o8l#ephZJY5_^DsCkgFfy{Uv9UP{2rwD3^z`=jPHE(ER#s(AOP&!4}3{`~pl$B*ydzXQ2nzI^%o`7@C5@#9CZT84M;-UAtL-@bkG=FRKZZ-DGq zuU@@)@$&ie=TDzLee&eVeXvk zuU@@;`SPVpKy>N+`3q;yo;`i~^obKEjvqg9^ysl8M~)siaA5y_Alkoo@4j8TcJ15= zL_2rv*s*Qf_Kh1iZQQtV-MV#a)~s2*8i-b}T)Ar5vgL~xFJ7=i&+p#`gV4-6KQlIt2ZB7zOm7XoZ7}fNX<%?+67S?T zkG4csH!cOsl^YD683?4YF&PN^SgdMRasAS8D8X}vMF&Sw7<2SWj%f_9TO=4JeKBW` zKE)cwX)eff$jPSU;Jb(Iw1c4$AX)Q{9p~n7HgBt{=1RrJx&;Ls zj2oSqZFNN*CvmwgGs{a%JQ#OPEo=>=-8((G#Ke7NY+3^Bp5CXkW?EWGXmy-^9X%ss s^~)KSH?q2n6&kjz;u7+A<#b_UC@=AtFTSR0A<(M~p00i_>zopr0D*EN82|tP literal 0 HcmV?d00001 diff --git a/index_icons/apache/pdf.png b/index_icons/apache/pdf.png new file mode 100644 index 0000000000000000000000000000000000000000..741b78cacbbb8f509a9dcb779dc6fafca331a5e1 GIT binary patch literal 778 zcmV+l1NHogP)mYP`{3Z<+uPgP+S=06(&y*r?Ck97>gv?g)ZgFV*x1@$uZ; z+}+*X=H}+~^z`%d^XaOp)6>(ft*y||(B9tO|2{zGkC5uTzWXmT?d|Qw#l`1IO7G(3 z;^N}!eSGOmP3!CH$jHcZb9LnH@XXB2-8?()0R-rpo&Q2b!^6wxNJ#%OHQ!H8zP`rX z+uQE$?#|B6y1KyIgoYj-9{>OUb#-{-TU+%31gioCzP`TgQ&Xy{s_WC%|7&fsvbb_` zbgQeY{}UMHjgPmtx7QjSuCA{3_V)Mp_wVrX`T+#!=;+zm*~Z4k+ZrCdy}k1C^2f)= zfq{kT?eVX#um313{|5`=USRLq+|A9+(`9M9ySvj;Q|SQ(|5R81NlpI^68{Vk=-b=n zadEu7yr`(Gwzjswz`)Vb(TIqRzrVl!eSrTK8vi&u*tWUqs;i8Qj(>lF+W`cMijDsT z3E^;Y@c;k+H#*hT)yvDv|6*k0;^XP*>Abwc|8;lu_4R=T2f@L?B_$<`0Ryb8tl{C| zXm_SH00001bW%=J06^y0W&i*H0b)x>L_0YS^lShC02XvbSaefwW^{L9a%BK#X=XBT zZf77eE;KGSq%(sT0002xNklgtN>W`F<(1CwS8*X(?59~L05 z&?O~RU#8edJ|u#P+X*PrQp;PE7Q<_oZ12Xz#NEZn&=Ae*kzN&`ThUo*qgh_Y#^Buv z1#KeriisLoAVb@^w56nzOqqGu!h>?a0?c*7qQ;FJj4bBe{9pkAR*noEJyA18F7__4 z0DE_iVj&(zUs}(%$aE{Qv*{*yQuM;Q!_H|L*be(A(Y$yR)9e4l;`GDi|FOK?)!OFQ<@Lwt|EjgrnW)#Swbl0Z|JUsQjjii9m*zL8`ThO< zQ(a`*>+&crGRWxv-r?x$_WI4~|IO|Ha&~sGxY}xMaK_~Rl$MsT!O6PA$Fa)RyTanW z$Kk!k<*(lV%IEjY;Pv_a|E#mr`~Cg;|Nr;@|KIWdR$y(()#$Lg+or6=*5mZs?EAgr z|LXbw!PfEI?EL@#|Fzx!n81gR00001bW%=J06^y0W&i*H0b)x>M1DWGL302A02Xvb zSaefwW^{L9a%BK#X=XBTZf77eE;KGSq%(sT0002lNklp3# z0E5apAkYSaT+JA;fI}SwXxD^=`hWz)p#pWnA&LPY0beLz)>0{m6C_Xp;)M&!<`ouk zNI?YjP3lZj3bfSJAp+uD@(Pmjyh*AO0?A;HJ-^ry}QJloM@d1r{i+F1GLxGGt}ttFLDQ32=)A zvkN8LS=Af!@IVCQJmUPks&wm>d9p=80-4g@(q)O9f&MZwqU8(>0BguKf z660oZpb9mR3g`UX+|;}hhNMab-^8Ml%sf5sqQunP)FKDpgTe~DWM4f DX%ANx literal 0 HcmV?d00001 diff --git a/index_icons/apache/ps.png b/index_icons/apache/ps.png new file mode 100644 index 0000000000000000000000000000000000000000..2cbfdd791652965348788e5e368575b6910b9c23 GIT binary patch literal 263 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPGa2=EDU1=5z5mf6|aJv}|=&YgSy z{Q3X?|AB(WicPbD6k|z{UoeBivm0qZj#!CnL`iUdT1k0gQ7S`vW|~n!Ub=#jo{65> z660oZpb9mR3g`UX+|;}hhNMab-^8Ml%sf5sqQunP)FKDpguXW9P==3Fp8O>*kj`8C~$a>jcz075f49qZ*C^zuFIDu xEyz;fF`nU3Xf-8qUe7wVV+mnQOs;Hf44-~Vm)b-%A_P)Hw%F~1o67(I0G_AG z!}kBJsin}1SDUZa{0FzSpU;(4e;2n5WEwnaaP| z?SYxf`qGz&oy*Pt{{R30ftkt4^ZLl~|Lp(&m$27?n90BL|IzjOx#9ncsMeFF(2bwU zrmxVGg@^zE0Kf77$9hWsv{0(D&z-B#!tMG10054w*Oa2l0002N^#84;#Z!p8;{X5v z0d!JMQvg8b*k%9#02XvbSaefwW^{L9a%BK#X=XBTZf77eE;KGSq%(sT0001yNklK-bz|l#5*iCLm>{B5rBR>8uRl>)Gfe*%=D5i?~4fY-*}b zp6-fr5iq_yqb$OW49prVD147t7REFNWPunId7w8UQRFcJ05Pc+1wIzWH2?qr07*qo IM6N<$f^ZBmSO5S3 literal 0 HcmV?d00001 diff --git a/index_icons/apache/sound.png b/index_icons/apache/sound.png new file mode 100644 index 0000000000000000000000000000000000000000..5d7c4ccd6c798d93b7b7466fe8f65b1cfbcf365c GIT binary patch literal 222 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPE^3h)VWJ#gSac6N48PmiUg<+*d` zfWm(jxUK;y#*!evUY)*tyVj{`YkC9V-A!TD(=<%vb94C$F^Mg@84 z3PyS+dS*+Eo5g`DyggkULn>~W_MH|z;K0FT+RyZ9rNV8;X>61J&F<bP0l+XkKA45rL literal 0 HcmV?d00001 diff --git a/index_icons/apache/srt.png b/index_icons/apache/srt.png new file mode 100644 index 0000000000000000000000000000000000000000..74195b86caa426286ad666e6db2c752ddf9ec9ad GIT binary patch literal 1001 zcmV}~=lT5z{3qVh zYDw$u+bWqrkR&EaFkIxOoD{6(W3>>+!Ow9EdCAGHZx|-Jj3JhjZ7C_lsK=v?fr~42 zx;IVNuRqSkK)JbFP&VgxP5FFWo6~vL$FkN;sdQq*>*XI2nDlz$=-61|9*w4R$mN=y z1NH?10hE;FqpRx_T3VVB?E2yE!0ha=YOz@Sv&UoHwqnJ6AH(nu2~K2XQO74I_g*#_ zPUer^h_l-rC@n33)zXA;NDL`0M1B1cke%P(eTJqLJIBW>jS7XO(e37lYX$?6-QWL2 z!-frgHMW~;!r=(Y$_rubXo5c|1Se!cE(x$wNumCD9k%yeVY~0$yVZREeo1?3>K}wE zE>5y8KEB~1!&I;=i}Lap(a~`N!LSGse;A3j8Ia0VAQd4{Ni+`B9l++(7bAzCM)_g;Qxw`o#esVot@3_`vr(1HhIVm;W{a3EsH1{0q+w*khl_N(??K!dVx8( zwDbm{)vo5Jr`^bXAseU9v?1st!O{XqhsPkLI8a+tfiKSibUav|1^;vogv!-8THkRaM2?#%;Lpc@u)31w@jP!21FD;3Tjs0mBE6!SclbY6_l0`m1F?FoNj%Co$oe zLix@QK&+BT_I#$(HD5LqBz}Cz2;a;M!jPlw$S2UL7ht<;NAEAA&?JcP+?I{lURDUb ziiV}%iPpaF9_oPJrBIxzQLA^KDJ&Eou6`Y?*8zuLh~JMLhTby)q-7v;Qx3eb>B%Ar zlrRcLSB%GUc7U*IG=$M^U*DLPc5bUomj3n2uL){D+ySuDnDMLd?fy!r|GI``ArEQ1 z4D-w!NHz+4-rJ~X=>bth(?o=#C}$wBzg?-U9S#H*LsjpjnyZTtotwfPUm6@&Z{Vl% z-53}gf_VwSTWd(k9rb2(4_^64%9RNT#L2})sR8I8srRaIMlSJHiHdHLt++S+%C z%bm$)b1s)lO{G%AdV0>1&1OY5JCAsL2*g1wmjh;|0fh@J@C}jgHZ=ievtHTf>*i@A z1_rKz1-kvpF0%z+7T$}|=xq&-)kuuo!R_qHR4ukv1M4s5fyE^fE}UbcKsbLffW5Vi z>R{{!n8zbiL&I*2kAFf-O9BU)3C(ZsVPBvXp$QAVeg=A5KLY9JSUGtb@oNmvo}NKR zhaLU>gBpR4oK6cyM?avZCV|JVfZ0>SI2<_$+YtvAzX1;89FpEN+U|FOR=7w(MrUU| zLZO>rvK%10eGeul-$4@Y;L#K>c48REZymxLazNtecd|J=^t{BebQcz0b49%}tk(UA zMz4c;y)q?}cgt>JA`#~VF|hV_FO7^OH$f2NT^IuE>$^me$Q8ZUMdPj3^S@*9on~WW z4-gDq1~V88l+Wk?94r~t{}O4jva$k-qUxheMZiWBgu`L}^+Wnv6h$yW5R^ipAa1mB zF={g^N)l-V#0maUP)b&+u=JXG&b^KM#3p{mquS#anymp_NoXW`00000NkvXXu0mjf D{pb`r literal 0 HcmV?d00001 diff --git a/index_icons/apache/tar.png b/index_icons/apache/tar.png new file mode 100644 index 0000000000000000000000000000000000000000..82e7ae509e824342bdcb93b5ff833ec6f6e7371a GIT binary patch literal 229 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPGa2=EDUJ#gTFrKM$dc6Lus&;S4b z&z(E>{P}aBWS7{*ML>$NB*-tA!Qt7BG!Q4r+uem-EV1J?kRw*&8c`CQpH@{P}aBWS7{*ML>$NB*-tA!Qt7BG!Q4r+uem-EV1J?kRw*&8c`CQpH@&2;2(bQE-S z6j0XHJ=(~r^=J}{pr?0XQwIl^m80t=j?Ntnj2#Epu&{LT@Gxlp5k5cfwa9;ow*O}!1EfZHGBScRyEs}wME?IHPA4N1m};Lej{$B#U`FscSisEt-fwUi0Mz`y@HfPz{j3n5A@cwx~l4cn>t7_$9=)UU3EnK_;we;l9sJbOUUmF8IT+ zKX4(K>9`)~cL5e01{_8+;20#J82$kh(JyEMVgn{1CPwTASS>^~VBys%3=Oish)T*0 zkJ%XFwR2DnAP9gN?f*a2%+@h^5d+wLX_ftCW#?J#g^U2?&(Q}EsG1G{0000{P}aBWS7{*ML>$NB*-tA!Qt7BG!Q4r+uem-EV1J?kRw*&8c`CQpH@%~a$OcXSju zY{P}aBWS7{*ML>$NB*-tA!Qt7BG!Q4r+uem-EV1J?kRw*&8c`CQpH@%~a$OcXSju zyywo*M$RJ|j9jXYt}$~KWGV3M@ZfCYh~e!yxQ2zLi-(6{cZ*o;19h)YK+_mJUHx3v IIVCg!00d=4)Bpeg literal 0 HcmV?d00001 diff --git a/index_icons/apache/web.png b/index_icons/apache/web.png new file mode 100644 index 0000000000000000000000000000000000000000..525d43033e78ece596185df4883740960202999c GIT binary patch literal 253 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPGa2=EDUJ#gTFqM~9{R8&t-&;S4b zEuAc<-1`ocyrH@OB#>e(3GxeOaCmkj4a76z%6EirBu2dYT%ba4!+xRspXz{aM~boA)aM$Tgeh7E=@6nLgzD$qFG zD0-woPp6=e)llTJMC6bP0l+XkKv)xl} literal 0 HcmV?d00001 diff --git a/index_icons/apache/xls.png b/index_icons/apache/xls.png new file mode 100644 index 0000000000000000000000000000000000000000..bad6e4e6a65d2197d69d3d8db88c1b4754fabfd5 GIT binary patch literal 268 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPGa2=EDU1=5z5mf6|aJv}|=&YgSy z{Q3X?|AB(WicPbD6k|z{UoeBivm0qZj#!CnL`iUdT1k0gQ7S`vW|~n!Ub=#jo{65> z660oZpb9mR3g`UX+|;}hhNMab-^8Ml%sf5sqQunP)FKDpgTe~DWM4f DX%ANx literal 0 HcmV?d00001 diff --git a/index_icons/kde/ass.png b/index_icons/kde/ass.png new file mode 100644 index 0000000000000000000000000000000000000000..d926638114464260b7d5e3d4c0664922693295d9 GIT binary patch literal 1032 zcmV+j1o!)iP)F>&#($HRB!<>8Rs4sx}q z2=!xQ*p-w-#=TxMB_BLzu~erk6k?v^2uF!D1!pkGHP6m=24k@{lR_~y843wiIvq$N zouI~KBA4y<$+Y0O!mO*tt?GQ z@Qtjm3*;re9*6XL=F0T+sa~tK=_jXi>Am6MUna`R-joP}B*L=bVllq3zu)%Jjvcwh zDwX!|Sa2ykTBY9&QBTXthX!R<5I**X4T2-cq8J73f5%^zkO^Mx3T#>aEc zuND?&Zkf%ca-K)~%F5r@-R?J9^!i7{5EmzZL9K3VFD|YTZ*Gdl*Oo}#yvH}-^N07u z%MCkK$!MFOo~Tu84CUIC#5JB5{4C4YyIjpfEc-smP%00!7ZiNC5ez2WRZGaId^dVV zBM_~&Zi}GVjpR(LaBSyagzX(bq0bMCR4NQbqu#nepo&l#Z|*Z1E3yxlt4>!R!P{4S z`0mCffW5OVBczZP-NWpUX|UTT@!;2PxO;lwayYy;zyCH-OC+C_q@+~jSYLhi^^-@@ zHzdKuhB3f%cAKw04$I4DaqBXJ@i`Z!Cnn+O?#90(Bi=!`yOX5L_k@&v9IQfO`MIy0tK*z^G>GOd01E7foE@|i&*}4L1 zH5$^izOJiLslL4*iTEfeu9|PQ$Q;3ETG$$pYa&;Aj zG8r=%iR8)wBSX*dzu;(*O<*w%7+RpkF4Da^n*RY43A%wtKkTYdQIX7W zaYsp$V9u56Hc)r{VQk1?lWtv=n_P3*t%kkGs`rOtr&l;1Jcn~Q&-2`CYN%19Wu;LR zrKqb_Ye`q`X6hbN^9nL_6qSX#}+^KN>J|yZwzTYQ0YWMTxKFrGz>-$u6JSW z7}%%59m7f&SUfUIenl`7#&$pAL@>?)J&P@2KnY|CV1tKnkd32~V-f6Qk|PY13kVHR%bZhOc($<2T|yrr8(-_xmCe0k>Ek8C zT!nJL{Pt&mzoc*8;B1#CPcF}VHmyQ-diB5Ya*~aJM|9u@vvjBTLcrabIb1NpuD{~)x4TXFuTxzI0Z Zb>{$eJzsU+uiYVXsX9%A+E>+n_dlfNh0g#0 literal 0 HcmV?d00001 diff --git a/index_icons/kde/binary.png b/index_icons/kde/binary.png new file mode 100644 index 0000000000000000000000000000000000000000..f933085077308db5cd5952150e80e7b7d8594004 GIT binary patch literal 745 zcmWkrZ%7ky06qIh7}7t?D6pbh5vZUQ6$U$*IOkgP%;{DuGo3h6n^UrWS*q-E zC$>5x>!Olll^r7nxBPd5#8VJ1$`6M~yG-hWJ{(aW*8K3^JbVsunU1} zoXP0*dN}Cgu^%gn27Mf81?+PX_-N>3r8z~2s+1M+;baEz5lLCpR7J!6yckndH35Cl z+dz9g$lbu;00ylrJ1j|aDp@-xCof59p)6&DUis`=G1VnShFiuDo_Nx1YbmU3DQj}I zT)o&_OVri7a<4Sj?as|UoPCtZgBi)hQn7(N(>8ypidenbcK@zv!@6TVN*NVT$9;F2 z(+lEGd#<_dc2FF>5&v_exY2&9FcvxS>sU`m)}xp2-}a?#9q4B7W%TTta2$A86TIx) zzjr3fmNBz?3w1Wu^!R&Y(;YG;BROaX= zpDj~kRS(Axe$3oi>3H22+OxD>99?*HsI+3Buj0bFr@N+e)^hvEPB<~^%R5x@ghr() zU%M}7Ph7X8U(D3Gj-NmIrlj=?TEjiSt2*)Cp_?Adr5ac7=^Fj2BR|+KtB&~h?Et7N RZ+w^BOcWPd455Om&i_Ejd*q-E zC$>5x>!Olll^r7nxBPd5#8VJ1$`6M~yG-hWJ{(aW*8K3^JbVsunU1} zoXP0*dN}Cgu^%gn27Mf81?+PX_-N>3r8z~2s+1M+;baEz5lLCpR7J!6yckndH35Cl z+dz9g$lbu;00ylrJ1j|aDp@-xCof59p)6&DUis`=G1VnShFiuDo_Nx1YbmU3DQj}I zT)o&_OVri7a<4Sj?as|UoPCtZgBi)hQn7(N(>8ypidenbcK@zv!@6TVN*NVT$9;F2 z(+lEGd#<_dc2FF>5&v_exY2&9FcvxS>sU`m)}xp2-}a?#9q4B7W%TTta2$A86TIx) zzjr3fmNBz?3w1Wu^!R&Y(;YG;BROaX= zpDj~kRS(Axe$3oi>3H22+OxD>99?*HsI+3Buj0bFr@N+e)^hvEPB<~^%R5x@ghr() zU%M}7Ph7X8U(D3Gj-NmIrlj=?TEjiSt2*)Cp_?Adr5ac7=^Fj2BR|+KtB&~h?Et7N RZ+w^BOcWPd455Om&i_Ejdi_@t|K8r_i-n8D%I>tf=FQIT&C>S8#^&bc?(XLHtg`0j;`YVT z|IOO})z;?T-tNW9|FpK=q^jP<&i}Ns-qp_L_WJ*Q|Mu?oz0&`*vb3bK=FQgs z)zaRyvc0sr?#05*l%37q=KrLw-o3uX#lpp`w(hjHy|l*vy}tI<+W*bo|K8sA#meT* z%HEWj&775_&C>szrPZ{)_MDldoSnVy^8e=M_U`Wg_V)jrowV-i_SMqn|N8%=oxT76 z|L*Sg9@1u*00001bW%=J06^y0W&i*H0b)x>L`E07`RxDz02XvbSaefwW^{L9a%BK# zX=XBTZf77eE;KGSq%(sT0002VNklZ#^5)<=AL`zd_#y%*`y*(N<;)-@_%9gf~Cs5A=4T>SVdLTBxo}Ogp!NhQSZMu z-%0j~Xxr}LLK`6$TwpRlU%4As8(lyOz{hdgx%`q9aUH!<>hzY9bw+R`!Q|b0y9@7~ z>s+##xv}jz-ulD#=C@L|(A;?BAOwo2oFnl#P_d!nF44-v9RQ_TtUOvYhtv=Dn_* z|N8%niG%<4|L)?|dwFWTs+8{D#hjUo?&98ib#r@hN@{Itdv#)aaY4Pdv~z89y`_Un zL`ub~lzVw|&Cbnpb#wOW=5uvgdwF~2;^r|hF$Fcq7B-xGNl$DZs6obw&T1N&7hDQU5c(XZEhnC(jFp3#@`ctlC>mk z>@P-8H7yC_+@&knm=?zU(89ar@Fqf>u0PImcn%NeIp^uGudB++RAn*@ zlVzyZ8Red{S=+bDSWuMRz%Xgb`ZJAs0N}kr;wumL)ewmiLh~GIN&w<^h?xM8W=aD| z4&r7ItXQOU4JZXH5{w977f?vV5eR087$IVX5DTImqya!Y5(pNfP9G0s5@w7g#-*Sjs(mYQwYgxO%SVr8IyC6kH!#AMqy(T zq<7d?4r}9pd9*o^&$L6*4iVNWne7q>AK63_YeGjraKah|(P@>qJckCblfeuGjAVi( z1P~&@K9=~)dGDm!p&9oE6LBmDLj3HhUw_l&q|$80x(22K&s#Q$xwcBzWcxIzmC0_K z{-Uj+!(!{adg~g~)@~`ed818TQmid59Y5++%8Ks>9ou+UD4J`#5IU^rUYbAIUOQZL zV6j5cSpTTUwbEK0*G2*Ig;!+@=nv1^Wy9yT%4bj928F((Yss_Au`|Q{AhPe$KjjWs z+;Y$V^jrU)Ue@f^yl#K2awy!fY_Yppq5t7UqorNd+sXpm{gh|+@<`79k;0ifE&lY> zLdm%=?>)^wzphTq_Wr)&IgwcJIX|>=+7&j=@yqMS3v)-iH$0prvq||@o$I}=K6DT- z9LxHUBaFRyX-H_7^FI&ub*5S$PM1xeRi!WOUCk)KFI3lu<^LFizD_q$+0yeL%oA5m literal 0 HcmV?d00001 diff --git a/index_icons/kde/dir.png b/index_icons/kde/dir.png new file mode 100644 index 0000000000000000000000000000000000000000..efbfff885af660240388055b43f47cda9f67ad5d GIT binary patch literal 620 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 literal 0 HcmV?d00001 diff --git a/index_icons/kde/java.png b/index_icons/kde/java.png new file mode 100644 index 0000000000000000000000000000000000000000..0769e963a3d4b7894cd5e08cb1795c12e9c260b6 GIT binary patch literal 656 zcmV;B0&o3^P)^7fRGl*Piu#lp?Bw!NI0q?Aw)b3hnkWqan@-h+jd zoRzG5acU3<2vST+q@kpgm9&e2d*0gKw63(((%zJPV&2l#-rnwWaf6gl7@UQ3q?L=s zzQtlpIkdLL#lqE;k*u_`#l^nO-rnZs;_jrSy{xXioRy@#y1k^KtT`YE&BoQFp|q@} zz3%S+?&j`dI0#~4gL7Fq)z;>Fb&Hgdq?~y}r$Jb&I5(q$wB( zN-PMhuB@bOIqvT6#lF3)s#MTEfu{DNsI zX%LZQus|?lk_=BgSb)cti$67$lao!36{>>K!pbH!fssv?4Xi@n+(p2eF@c@gz#$2! zLR(jyMTW&*gguFgSu_!-BE~;T&rDrH+A=ALNdRPqw~@Spvl@3?teZ%ZP-;8_tFdQ5 zL^yYll(>hVuo%dUL?sg~RX#@zLotpdp#-2AlF%q@~5x(&p~w_N1=GtgglO_V%2iz4r3| zthUYG+UEcI|FpWz=Hl*@m8`|a)y>M@oRzfy|Nr*#_Rj#}rvLx|0d!JMQvg8b*k%9# z00Cl4M?@{n+Ce=4000(rMObuGZ)S9NVRB^vXK7|KaBgQHGA=YOHl#Cy7XSbNqDe$S zRCwA=&u0&VAP|6IK$fG9T1WRpPC)+u&ufg3mdky)Jb4okLbkAnbsY-NEK?#x1}0wY zk{cs6SnGbmdkV9g-Jf8P4)rdGB=PU6Iu>;hQ*Ii`$mM0{O-xTL#HfzfAqd<^sr&MA zZ$l%&p3*c`Y9AZs#5DQzrHT!~=?!4aqQFcutqCc+(7%q@~5x(&p~w_N1=GtgglO_V%2iz4r3| zthUYG+UEcI|FpWz=Hl*@m8`|a)y>M@oRzfy|Nr*#_Rj#}rvLx|0d!JMQvg8b*k%9# z00Cl4M?@{n+Ce=4000(rMObuGZ)S9NVRB^vXK7|KaBgQHGA=YOHl#Cy7XSbNqDe$S zRCwA=&u0&VAP|6IK$fG9T1WRpPC)+u&ufg3mdky)Jb4okLbkAnbsY-NEK?#x1}0wY zk{cs6SnGbmdkV9g-Jf8P4)rdGB=PU6Iu>;hQ*Ii`$mM0{O-xTL#HfzfAqd<^sr&MA zZ$l%&p3*c`Y9AZs#5DQzrHT!~=?!4aqQFcutqCc+(7MGF_4IB}x6x!KXt5vcNL;j=&>#aI&L7tG-B>_!@p zBUa)XQ4*Y=R#Ki=l**8vnPyawm#$!>XQF4e#JE`;s3OVJ#WAGfR&v6Fy6^88n3)gX zHBNtLWbol$<&y2?%*^){+1jr2OU!7P(#LdoneYGq+1bW5kz2E_KB{PopKNV)sNu?& znZ{=urWm%Q8x=n@nJ~xQJ=*T@^G{noZK-Jc`@ivlK7+i3?!L00GhPF2WAJqKb6Mw< G&;$U17ikUv literal 0 HcmV?d00001 diff --git a/index_icons/kde/mov.png b/index_icons/kde/mov.png new file mode 100644 index 0000000000000000000000000000000000000000..308da7ab2eb3ec90fc29ec08514bb55f16dcc83b GIT binary patch literal 374 zcmV-+0g3*JP)L=cs-4J-fv02XvbSaefwW^{L9a%BK#X=XBT zZf77eE;KGSq%(sT0001qNklV4OclwrMxRKZnaU<0zNH{LCRD;O#B)j-q zj8~6+Ul%bw3?uf{ATbXQR3$1bZH!iYW-v3#=04-b+ UK+Bi#FaQ7m07*qoM6N<$f&vS@*Z=?k literal 0 HcmV?d00001 diff --git a/index_icons/kde/movie.png b/index_icons/kde/movie.png new file mode 100644 index 0000000000000000000000000000000000000000..308da7ab2eb3ec90fc29ec08514bb55f16dcc83b GIT binary patch literal 374 zcmV-+0g3*JP)L=cs-4J-fv02XvbSaefwW^{L9a%BK#X=XBT zZf77eE;KGSq%(sT0001qNklV4OclwrMxRKZnaU<0zNH{LCRD;O#B)j-q zj8~6+Ul%bw3?uf{ATbXQR3$1bZH!iYW-v3#=04-b+ UK+Bi#FaQ7m07*qoM6N<$f&vS@*Z=?k literal 0 HcmV?d00001 diff --git a/index_icons/kde/new.png b/index_icons/kde/new.png new file mode 100644 index 0000000000000000000000000000000000000000..c7987dc766b3b58118516aca753cc2d4c107caa3 GIT binary patch literal 616 zcmeAS@N?(olHy`uVBq!ia0vp^GC<77!3-q1&-R!xFfg(P_=LCuxj^t22*8X#fBydl zf&W0>&!4}3{`~pl$B*ydzXQ2nzI^%o`7@C5@#9CZT84M;-UAtL-@bkG=FRKZZ-DGq zuU@@)@$&ie=TDzLee&eVeXvk zuU@@;`SPVpKy>N+`3q;yo;`i~^obKEjvqg9^ysl8M~)siaA5y_Alkoo@4j8TcJ15= zL_2rv*s*Qf_Kh1iZQQtV-MV#a)~s2*8i-b}T)Ar5vgL~xFJ7=i&+p#`gV4-6KQlIt2ZB7zOm7XoZ7}fNX<%?+67S?T zkG4csH!cOsl^YD683?4YF&PN^SgdMRasAS8D8X}vMF&Sw7<2SWj%f_9TO=4JeKBW` zKE)cwX)eff$jPSU;Jb(Iw1c4$AX)Q{9p~n7HgBt{=1RrJx&;Ls zj2oSqZFNN*CvmwgGs{a%JQ#OPEo=>=-8((G#Ke7NY+3^Bp5CXkW?EWGXmy-^9X%ss s^~)KSH?q2n6&kjz;u7+A<#b_UC@=AtFTSR0A<(M~p00i_>zopr0D*EN82|tP literal 0 HcmV?d00001 diff --git a/index_icons/kde/pdf.png b/index_icons/kde/pdf.png new file mode 100644 index 0000000000000000000000000000000000000000..d719762854d57b81813085bd2bd3abc76e5d663f GIT binary patch literal 532 zcmV+v0_**WP)(1F=Hl-ENGaah?%v++_Oh(r+UE95 zG5^}t?(YB1p{(w4V)l)L_Ba^cot*z|TGh_x_P(^u&ffnx82?N$|AA`eg>&wX1?!v|YnT!8KDems}oSnVq=JxjT|D2t)?&|iWoxRo4 z=Kufy_VV_nAI>xY0004WQchCc@4fd~@U~~oodEzj9`6m}anBP8$nyU($7U!J2H~r?EU_)a#dy76s_#-G5Fu*FtC|nixeiVj&(zUs}(%$aE{Qv*{*yQuM;Q!_H|L*be(A(Y$yR)9e4l;`GDi|FOK?)!OFQ<@Lwt|EjgrnW)#Swbl0Z|JUsQjjii9m*zL8`ThO< zQ(a`*>+&crGRWxv-r?x$_WI4~|IO|Ha&~sGxY}xMaK_~Rl$MsT!O6PA$Fa)RyTanW z$Kk!k<*(lV%IEjY;Pv_a|E#mr`~Cg;|Nr;@|KIWdR$y(()#$Lg+or6=*5mZs?EAgr z|LXbw!PfEI?EL@#|Fzx!n81gR00001bW%=J06^y0W&i*H0b)x>M1DWGL302A02Xvb zSaefwW^{L9a%BK#X=XBTZf77eE;KGSq%(sT0002lNklp3# z0E5apAkYSaT+JA;fI}SwXxD^=`hWz)p#pWnA&LPY0beLz)>0{m6C_Xp;)M&!<`ouk zNI?YjP3lZj3bfSJAp+uD@(Pmjyh*AO0?A;HJ-^ry}QJloM@d1r{i+F1GLxGGt}ttFLDQ32=)A zvkN8LS=Af!@IVCQJmUPks&wm>d9p=80-4g@(q)O9f&MZwqU8(>0BguKf%q@~5x(&p~w_N1=GtgglO_V%2iz4r3| zthUYG+UEcI|FpWz=Hl*@m8`|a)y>M@oRzfy|Nr*#_Rj#}rvLx|0d!JMQvg8b*k%9# z00Cl4M?@{n+Ce=4000(rMObuGZ)S9NVRB^vXK7|KaBgQHGA=YOHl#Cy7XSbNqDe$S zRCwA=&u0&VAP|6IK$fG9T1WRpPC)+u&ufg3mdky)Jb4okLbkAnbsY-NEK?#x1}0wY zk{cs6SnGbmdkV9g-Jf8P4)rdGB=PU6Iu>;hQ*Ii`$mM0{O-xTL#HfzfAqd<^sr&MA zZ$l%&p3*c`Y9AZs#5DQzrHT!~=?!4aqQFcutqCc+(7b*p%tRRyXl&@RmfUS5i(*Dj4AFEevo+GLRw5IH zYan=|k84zZWHN^iHbI=waF-a|RjXcN#fvCis2`W;&(qxl=Nt~4^XKr4w%8gA3rY$Q zLWR~QGovb<1GP`(ijzflgfs_R&N(aqK(aC+$_yXng7Z=uL)wM0oD{K?COAzb5#x-^ zO@-uL1wUf}Q*zh^DHit{r6CuNh2qm=@-!n8MOvOGH_rk##)Dp%ErWkR0wywGgfIi5 zO9%?ENJU3k*fNl;0x=q60wfL*lhRHBkCF*24EZ6=K$Zi-K^Q@z0Y)g;U||D6%plFq zKtx9}1Tud3qp|=IglD}2%M=`kfDW<@$O;5$zq0|tCJ;@qNGC;t zGek<^89pTNQ7J`oBVf5{ZuOG7j>gB>?5Li6^5o3b=0@|yK*8ry)fD?Itv-8?$JgK1 z*N!?mJykclJIbmmt1D}SQ><1^ytSGe9Je#)$DK#mdOA%A_P)Hw%F~1o67(I0G_AG z!}kBJsin}1SDUZa{0FzSpU;(4e;2n5WEwnaaP| z?SYxf`qGz&oy*Pt{{R30ftkt4^ZLl~|Lp(&m$27?n90BL|IzjOx#9ncsMeFF(2bwU zrmxVGg@^zE0Kf77$9hWsv{0(D&z-B#!tMG10054w*Oa2l0002N^#84;#Z!p8;{X5v z0d!JMQvg8b*k%9#02XvbSaefwW^{L9a%BK#X=XBTZf77eE;KGSq%(sT0001yNklK-bz|l#5*iCLm>{B5rBR>8uRl>)Gfe*%=D5i?~4fY-*}b zp6-fr5iq_yqb$OW49prVD147t7REFNWPunId7w8UQRFcJ05Pc+1wIzWH2?qr07*qo IM6N<$f^ZBmSO5S3 literal 0 HcmV?d00001 diff --git a/index_icons/kde/sound.png b/index_icons/kde/sound.png new file mode 100644 index 0000000000000000000000000000000000000000..21f29085ef83b414f568e578eca70ae552350a8a GIT binary patch literal 697 zcmV;q0!ICbP)I2CYMhmv5Uvmi z@(7Evi$TUg2>J-_=I(oWdohJE0GSBQ-o>24q|M6BO4323(xh{~a|n?LdwqM0nS)YL zQW&}z7T)_aS}i*w?0-rn9pL_xH+wC3L4 z2-XMyvH$>u0JPq$0F3}@ZF2zD06920=HljaacV(8K|wr0y~ecO*45R@%~F+8TAfAQwu%^Wd??Hu(*1mQlLgqu)c@^M4h}|CKnqBsyXL@1+-IrIr+UkrG3H` ztib}V+)TxcCETo>VeE1szI|~Ca|tsOk5>RM2RleWtC*QlRZ`57otHyOG7Tue%2>j} z0@TH7ED<7M2o%U+E@n)M*G&!;5=`I+8=5F;#lynL#3{%jAO&%Vn7CW9i-3?$KEe+y f;-V$7ieM%H<`p15e8jG400000NkvXXu0mjfOB*wv literal 0 HcmV?d00001 diff --git a/index_icons/kde/srt.png b/index_icons/kde/srt.png new file mode 100644 index 0000000000000000000000000000000000000000..74195b86caa426286ad666e6db2c752ddf9ec9ad GIT binary patch literal 1001 zcmV}~=lT5z{3qVh zYDw$u+bWqrkR&EaFkIxOoD{6(W3>>+!Ow9EdCAGHZx|-Jj3JhjZ7C_lsK=v?fr~42 zx;IVNuRqSkK)JbFP&VgxP5FFWo6~vL$FkN;sdQq*>*XI2nDlz$=-61|9*w4R$mN=y z1NH?10hE;FqpRx_T3VVB?E2yE!0ha=YOz@Sv&UoHwqnJ6AH(nu2~K2XQO74I_g*#_ zPUer^h_l-rC@n33)zXA;NDL`0M1B1cke%P(eTJqLJIBW>jS7XO(e37lYX$?6-QWL2 z!-frgHMW~;!r=(Y$_rubXo5c|1Se!cE(x$wNumCD9k%yeVY~0$yVZREeo1?3>K}wE zE>5y8KEB~1!&I;=i}Lap(a~`N!LSGse;A3j8Ia0VAQd4{Ni+`B9l++(7bAzCM)_g;Qxw`o#esVot@3_`vr(1HhIVm;W{a3EsH1{0q+w*khl_N(??K!dVx8( zwDbm{)vo5Jr`^bXAseU9v?1st!O{XqhsPkLI8a+tfiKSibUav|1^;vogv!-8THkRaM2?#%;Lpc@u)31w@jP!21FD;3Tjs0mBE6!SclbY6_l0`m1F?FoNj%Co$oe zLix@QK&+BT_I#$(HD5LqBz}Cz2;a;M!jPlw$S2UL7ht<;NAEAA&?JcP+?I{lURDUb ziiV}%iPpaF9_oPJrBIxzQLA^KDJ&Eou6`Y?*8zuLh~JMLhTby)q-7v;Qx3eb>B%Ar zlrRcLSB%GUc7U*IG=$M^U*DLPc5bUomj3n2uL){D+ySuDnDMLd?fy!r|GI``ArEQ1 z4D-w!NHz+4-rJ~X=>bth(?o=#C}$wBzg?-U9S#H*LsjpjnyZTtotwfPUm6@&Z{Vl% z-53}gf_VwSTWd(k9rb2(4_^64%9RNT#L2})sR8I8srRaIMlSJHiHdHLt++S+%C z%bm$)b1s)lO{G%AdV0>1&1OY5JCAsL2*g1wmjh;|0fh@J@C}jgHZ=ievtHTf>*i@A z1_rKz1-kvpF0%z+7T$}|=xq&-)kuuo!R_qHR4ukv1M4s5fyE^fE}UbcKsbLffW5Vi z>R{{!n8zbiL&I*2kAFf-O9BU)3C(ZsVPBvXp$QAVeg=A5KLY9JSUGtb@oNmvo}NKR zhaLU>gBpR4oK6cyM?avZCV|JVfZ0>SI2<_$+YtvAzX1;89FpEN+U|FOR=7w(MrUU| zLZO>rvK%10eGeul-$4@Y;L#K>c48REZymxLazNtecd|J=^t{BebQcz0b49%}tk(UA zMz4c;y)q?}cgt>JA`#~VF|hV_FO7^OH$f2NT^IuE>$^me$Q8ZUMdPj3^S@*9on~WW z4-gDq1~V88l+Wk?94r~t{}O4jva$k-qUxheMZiWBgu`L}^+Wnv6h$yW5R^ipAa1mB zF={g^N)l-V#0maUP)b&+u=JXG&b^KM#3p{mquS#anymp_NoXW`00000NkvXXu0mjf D{pb`r literal 0 HcmV?d00001 diff --git a/index_icons/kde/subtitle.png b/index_icons/kde/subtitle.png new file mode 100644 index 0000000000000000000000000000000000000000..d926638114464260b7d5e3d4c0664922693295d9 GIT binary patch literal 1032 zcmV+j1o!)iP)F>&#($HRB!<>8Rs4sx}q z2=!xQ*p-w-#=TxMB_BLzu~erk6k?v^2uF!D1!pkGHP6m=24k@{lR_~y843wiIvq$N zouI~KBA4y<$+Y0O!mO*tt?GQ z@Qtjm3*;re9*6XL=F0T+sa~tK=_jXi>Am6MUna`R-joP}B*L=bVllq3zu)%Jjvcwh zDwX!|Sa2ykTBY9&QBTXthX!R<5I**X4T2-cq8J73f5%^zkO^Mx3T#>aEc zuND?&Zkf%ca-K)~%F5r@-R?J9^!i7{5EmzZL9K3VFD|YTZ*Gdl*Oo}#yvH}-^N07u z%MCkK$!MFOo~Tu84CUIC#5JB5{4C4YyIjpfEc-smP%00!7ZiNC5ez2WRZGaId^dVV zBM_~&Zi}GVjpR(LaBSyagzX(bq0bMCR4NQbqu#nepo&l#Z|*Z1E3yxlt4>!R!P{4S z`0mCffW5OVBczZP-NWpUX|UTT@!;2PxO;lwayYy;zyCH-OC+C_q@+~jSYLhi^^-@@ zHzdKuhB3f%cAKw04$I4DaqBXJ@i`Z!Cnn+O?#90(Bi=!`yOX5L_k@&v9IQfO`MIy0tK*z^G>GOd01E7foE@|i&*}4L1 zH5$^izOJiLslL4*iTEfeu9|PQ$Q;3ETG$$pYa&;Aj zG8r=%iR8)wBSX*dzu;(*O<*w%7+RpkF4Da^n*RY43A%7Q6?!F zhKVUGFqmYGJ#0m!JX6z;moZF4S7~v1E|n`x#(b1pBI0if){zv%P@)WFJOPR%YV3yE zcEl|b(}1L@L#|CZ1MNKF#(}ts;X3N!G3PZ`jZ5~hQ`-SFHNZ9@X&YQ3roaa^4IU>C zPgV;sNSy<~IBv8}6Z^Cr0Cpb3079Dx1SNGf(6=DLFR6U$F&{x;>RH9MJv$^++afyM zgjRtUXlxP@7J*D5Z*T+7 zOC(B%r+|7??U@%eyvE)u3hP*1CkhB_JFun&sI1WLro&!a&%8uJ#Ap>1UWL8`RxO#d zRwy72hbcl31hBdZ$cK0GIP6w_mR}O#FqM=sI{e*oXv{_VhR$mr^mf@KIC3i-W%n$O z)|%!zrrv7Fyx&-_%FM{lxICHFlPD*?6&m#AZGk&1%f{C0qB{rKw4&5RZ!1>R{E2(} zj8!XdME|{+UKI0kCv+wR-yLMXcu=u(`+R8kxw6e&x$u$qgy9{M|=45*0HuGy8sS#?gNv>gTJv u-O9v@m1QrrU2#`WnT=KTeCz+Xz?5cuZk#iGjb)KKc)YDvUY+ literal 0 HcmV?d00001 diff --git a/index_icons/kde/text.png b/index_icons/kde/text.png new file mode 100644 index 0000000000000000000000000000000000000000..13d56b5e97f1f4f6b4ecb9972d20ad98a5980972 GIT binary patch literal 571 zcmWksZAepL7=1@*H%q+r!wn-8S>b*p%tRRyXl&@RmfUS5i(*Dj4AFEevo+GLRw5IH zYan=|k84zZWHN^iHbI=waF-a|RjXcN#fvCis2`W;&(qxl=Nt~4^XKr4w%8gA3rY$Q zLWR~QGovb<1GP`(ijzflgfs_R&N(aqK(aC+$_yXng7Z=uL)wM0oD{K?COAzb5#x-^ zO@-uL1wUf}Q*zh^DHit{r6CuNh2qm=@-!n8MOvOGH_rk##)Dp%ErWkR0wywGgfIi5 zO9%?ENJU3k*fNl;0x=q60wfL*lhRHBkCF*24EZ6=K$Zi-K^Q@z0Y)g;U||D6%plFq zKtx9}1Tud3qp|=IglD}2%M=`kfDW<@$O;5$zq0|tCJ;@qNGC;t zGek<^89pTNQ7J`oBVf5{ZuOG7j>gB>?5Li6^5o3b=0@|yK*8ry)fD?Itv-8?$JgK1 z*N!?mJykclJIbmmt1D}SQ><1^ytSGe9Je#)$DK#mdOAow*O}!1EfZHGBScRyEs}wME?IHPA4N1m};Lej{$B#U`FscSisEt-fwUi0Mz`y@HfPz{j3n5A@cwx~l4cn>t7_$9=)UU3EnK_;we;l9sJbOUUmF8IT+ zKX4(K>9`)~cL5e01{_8+;20#J82$kh(JyEMVgn{1CPwTASS>^~VBys%3=Oish)T*0 zkJ%XFwR2DnAP9gN?f*a2%+@h^5d+wLX_ftCW#?J#g^U2?&(Q}EsG1G{00004IPn7^{BH3ZR3jtu-uABQ+2r@Fqf>u0PImcn%NeIp^uGudB++RAn*@ zlVzyZ8Red{S=+bDSWuMRz%Xgb`ZJAs0N}kr;wumL)ewmiLh~GIN&w<^h?xM8W=aD| z4&r7ItXQOU4JZXH5{w977f?vV5eR087$IVX5DTImqya!Y5(pNfP9G0s5@w7g#-*Sjs(mYQwYgxO%SVr8IyC6kH!#AMqy(T zq<7d?4r}9pd9*o^&$L6*4iVNWne7q>AK63_YeGjraKah|(P@>qJckCblfeuGjAVi( z1P~&@K9=~)dGDm!p&9oE6LBmDLj3HhUw_l&q|$80x(22K&s#Q$xwcBzWcxIzmC0_K z{-Uj+!(!{adg~g~)@~`ed818TQmid59Y5++%8Ks>9ou+UD4J`#5IU^rUYbAIUOQZL zV6j5cSpTTUwbEK0*G2*Ig;!+@=nv1^Wy9yT%4bj928F((Yss_Au`|Q{AhPe$KjjWs z+;Y$V^jrU)Ue@f^yl#K2awy!fY_Yppq5t7UqorNd+sXpm{gh|+@<`79k;0ifE&lY> zLdm%=?>)^wzphTq_Wr)&IgwcJIX|>=+7&j=@yqMS3v)-iH$0prvq||@o$I}=K6DT- z9LxHUBaFRyX-H_7^FI&ub*5S$PM1xeRi!WOUCk)KFI3lu<^LFizD_q$+0yeL%oA5m literal 0 HcmV?d00001 diff --git a/index_icons/kde/web.png b/index_icons/kde/web.png new file mode 100644 index 0000000000000000000000000000000000000000..594ff8d2f9bca0502cb78486f98d75f5e3c8d938 GIT binary patch literal 748 zcmWlWUr1AN6vwYc5Q=nzEU|){NX-Y$*&i55d1J#|A!~D~%hXM#xtc2#%4DIA9%5YB zN-JZN)Cp;~5jG+Q3ze=q_0Ev4gb%+5wI8DJd+_1+Al2y#=bZ2P9zHMUoad&Bvdr|H zbcSIv%dhFpsLLz zDcUuv7zMzHh)e6TBB2y^^#G zObO-%qU}+1EeLi&UMBuHuy(5Ll$axmD=4uwB3i|A3iDnt3o=tAhr$VrDcPc-a76Nd1yK0Vh7^*ugo~DjR_BJQe+|pG1 zptYGRE<9g&F>=m#OeMC<^?c>y)y4*j#9*^HADc!nK3TvadG%v0>U({d`6mp9p1b$Z&iUb_(ROfO1j z^5)OpZONOlSu9hg$jGQ?Q(9^awC2>**VitvBjShThDPJL!@3re3%92NwXL3!g4f3! zw*$Gil1cMIfEx^UN`&u@X1qk^~t$?Z3CYBuM97qe7aX* z&1!TWm>VPJf5l_DPfnaLWpPUnGcvj+tX6ArueGTA594DRaxafpO`a-M*JjEM75eDa GhTi`QSCuCK literal 0 HcmV?d00001 diff --git a/index_icons/kde/xls.png b/index_icons/kde/xls.png new file mode 100644 index 0000000000000000000000000000000000000000..6f451412c47988615cd3ee9f7e4fb606706d8059 GIT binary patch literal 655 zcmWkqZAep57{1H0X^576VTIBkOLLS(-(bmxie)ynq(7<9rjZ}yN^6?v&1j8~;*P%V zu+f#!#wxq{Rd>kf+)6mZhG*u8qbxkh!joBD@=tdC@jfpPywCf*&uc3z$cc+hie(rk zE-zPaRC~fwX`@u!mJwgXFq-X!$BGS$i;MPlI}TxmD!hZI5e3Q!jv&D)5KM50pa8-_ z?Dj~ULlk=@p-beQyyOK^9{^rxx7mRYKtELG6-p?O0hCo4m4+ljC<+o3LW-i0Fricd zJ_x*+?O{;>lX(KXfP@w3N63$Hkh*&$8llJ!fsAm70v}@ASwyhl&*W_b^9?P56_M~Ol)Q6dTrQ+qEb_DO%F7 zyPtzHfoleNPG>hClbV?hyfgnTwF zk&65reMS1eZSdHSQpjUhwF z_$gmuf+00VlbwCjrqu>sJ}z@t;Pw=~c?X=F`i<)W|@==JFyUG9_NYPP) z_mf-tZ>%Wp>%KIZn39!ttG6X1-<7n`J$8IFvFZJE=jMrqUEjf)xpz_NO}a@(Df#OV63PGi!OlNvej;Yu`nnE|V_;r`cV*-~vR kK^NAUx8{(we>eU65x??LrY`jpe^m|4F>&#($HRB!<>8Rs4sx}q z2=!xQ*p-w-#=TxMB_BLzu~erk6k?v^2uF!D1!pkGHP6m=24k@{lR_~y843wiIvq$N zouI~KBA4y<$+Y0O!mO*tt?GQ z@Qtjm3*;re9*6XL=F0T+sa~tK=_jXi>Am6MUna`R-joP}B*L=bVllq3zu)%Jjvcwh zDwX!|Sa2ykTBY9&QBTXthX!R<5I**X4T2-cq8J73f5%^zkO^Mx3T#>aEc zuND?&Zkf%ca-K)~%F5r@-R?J9^!i7{5EmzZL9K3VFD|YTZ*Gdl*Oo}#yvH}-^N07u z%MCkK$!MFOo~Tu84CUIC#5JB5{4C4YyIjpfEc-smP%00!7ZiNC5ez2WRZGaId^dVV zBM_~&Zi}GVjpR(LaBSyagzX(bq0bMCR4NQbqu#nepo&l#Z|*Z1E3yxlt4>!R!P{4S z`0mCffW5OVBczZP-NWpUX|UTT@!;2PxO;lwayYy;zyCH-OC+C_q@+~jSYLhi^^-@@ zHzdKuhB3f%cAKw04$I4DaqBXJ@i`Z!Cnn+O?#90(Bi=!`yOX5L_k@&v9IQfO`MIy0tK*z^G>GOd01E7foE@|i&*}4L1 zH5$^izOJiLslL4*iTEfeu9|PQ$Q;3ETG$$pYa&;Aj zG8r=%iR8)wBSX*dzu;(*O<*w%7+RpkF4Da^n*RY43A%*@37Cr+F=f8qSR#ah}xWsD_3e!&b5&u*lFI7!~_E*x$5rd9ztVkNE-CBgY= zCFO}lsSN3vX+{Nk=?X@ACVFN|jGM)QDzrRZ978H@B_}8d6>vCYqy@4XoK*{AOca?G p?yywnl<0yk-2@&scD73l401`#x8k^eO9OQ=c)I$ztaD0e0sw3xLHPgx literal 0 HcmV?d00001 diff --git a/index_icons/osx/binary.png b/index_icons/osx/binary.png new file mode 100644 index 0000000000000000000000000000000000000000..12fb3874e06657c0f7e44696d0efb410d10c53a2 GIT binary patch literal 234 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPE^4e$wZ{r~^}n>VljUReD1(kd2K z*3X|m|2egod&9)JKn08?L4Lsu4$p3+fjCLt?k;SJX*+6x9I+DDh?3y^w370~qEv?T z%rv8dymSR4Jrg~%CC1I-KoudLE{-7;w~`ZpAhCfdoSoyWkQ9?BhiGX7M~hQSOe4<( zfrta9ENhf5SgKxOR1un#^o(grF>hg6p&_F-m!WZ3Awza?A){xbZ(5VljUReD1(kd2K z*3X|m|2egod&9)JKn08?L4Lsu4$p3+fjCLt?k;SJX*+6x9I+DDh?3y^w370~qEv?T z%rv8dymSR4Jrg~%CC1I-KoudLE{-7;w~`ZpAhCfdoSoyWkQ9?BhiGX7M~hQSOe4<( zfrta9ENhf5SgKxOR1un#^o(grF>hg6p&_F-m!WZ3Awza?A){xbZ(5Wo&eJ zeTIjQ+}`BC!pP0f*L8Mw?dImj$%+l&(Fum$k*1^ySlpU?CZk8!SnO; z|NsBFyTN)+di4MR00DGTPE!Ct=GbNc0004EOGiW`vyR<`YA^biR(S!=^XZ{2S0gFMweQ cKnPBVADN33au8{{-~a#s07*qoM6N<$f+DN4rT_o{ literal 0 HcmV?d00001 diff --git a/index_icons/osx/comp.png b/index_icons/osx/comp.png new file mode 100644 index 0000000000000000000000000000000000000000..e5118f16dbff6c0290785a8d09ec9f9c05a4a0a5 GIT binary patch literal 338 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GbL!eSlAh>;M1%*Q{AHZQ9iNbLW|v znfLbf1&0J{>*yRmapL;5YljXV+`M_q-Fx?T@7neG^XGHt&p&5^q7tkoik|4ie28U-i(mT6PyIg9~L2`a-mvbMdr8x!h z-j+!&&zri6``-tT@{gSF`p&$uRrtjqj#YvaNS%(YAT;YSV(L8>dH=9c|(GP#h7OTzceo;O5+ew-0UtA;keg1v#HvjJl+)lgN=iyAEG$4kK&-5+ARr+&HaD}gv~PyP6ciMHetx5}+Gl^h&d<+gfWU2S zY?hXl(%J2stJgqKd1Pf}*Vfj%y1HCkT*AS@pPinEg@uidj^*d)1O)}`?CbOM^T)`@ z|Ns9A3JOyPY+C>T00DGTPE!Ct=GbNc0004EOGiW`v-U1j z?3}{pva`C2$LgKj^Q_P9n%MB8+Vz!{oU*{dyW;or`T3Q=GqtSq>YY_((d?ihoS83>!rrpZI!N*ouhKP=j7zy*4W;*(*4DS<^VinTi^uG#xxkFT-tG&D4^tIRV`ThOC!pMTa=Zm}K!MVD1m$a0-;-l5` zoXF|C;_`yJaWbrmAl@S z&hLeemW;x%0004WQchCi_@%7IZ~ebW?9;ba!ELWdLVsW-@SYXCN{zG%hxzGlLfZ008Yt zL_t(|+D(sDZ^SSV2G&y@{mCVZozHKI z#y%}~GB0;MzN2PVXIe)&Lirb4c;PXl&t6 z-uqZH7+F>wtM~nNz|`R;C>qX=P!fzwAGGK8YpI)!jU7%Uam5ko@>%L&^q)FYE3K}o un++|gF?Cj><-rm;U<%O!qywK4oq{8FW-|EBH?ZnsV?B(9u-|M^A?D_NU$-%(1%H`7Q_uSs(uEx}?*74ru<;&OU zskFcI?B!LT*UR1M{`&cJuHHqM)4RH~AcDcX&*Ay~{h6h=VW!)LowlvX<+8fKoWkZv znbTRP+k>jlewViG=H|4|>gC_xz18F7=Iqno@7~td`SkNSkj}f_^v=)ErKY8OpUA?& z!R6=YySlpn|Nrdl>sX80xc~qF0d!JMQvg8b*k%9#00Cl4M?^`71>}4H000(rMObuG zZ)S9NVRB^vXK7|KaBgQHGA=YOHl#Cy7XSbNrAb6VRCwA&%2g7CFc3x2gy8OsySuwv z2>V~qFa=~@fAy&g09e)pLD;^hAlq*8sPt!>dn23zKu`3p@(S^AOFk(eFOVfGhOAH) zN>MH|h!&>XG*wq*C`gxsABmPiL5Gk)2zwOh5&#Z|e}}OXKVM^S9Pjn$`cwb_002ov JPDHLkV1mWf9q<4E literal 0 HcmV?d00001 diff --git a/index_icons/osx/generic.png b/index_icons/osx/generic.png new file mode 100644 index 0000000000000000000000000000000000000000..847ce7ecf653a1fd1c4fdc1a7a14eb57813aad88 GIT binary patch literal 609 zcmV-n0-pVeP)s z)!5~hmX!!ydJle>lcdyHY;=u_ufl@P(ra~S^ob|!Di=8 z_sr=ExDL>$4D!Vwxafe9h zwjQFdjoD@g-#ud6s@-jOy~nxU&7pA)@O`51-%Jx|X~2|iT#UT*37}CxY&KF+vMNgg|~O!*ssId7dul?gsr1|Yf(#5WrL=|xwH*Qa*?OK$houB+2zmB&)wbKmX?*Xv$XT` z^ZEMv<>%+u*4D_#$h*3_!ok7+|NpG4tgI2iSpWb40d!JMQvg8b*k%9#00Cl4M?_74 zXdq<(000(rMObuGZ)S9NVRB^vXK7|KaBgQHGA=YOHl#Cy7XSbN!bwCyRCwA=&ev7~ zK@0}qrHiOoQ0$6bupw4Jg(=CV?7siwaM+m(b8_{aB!7~`i1$9vB~4-}ku`?JPz15| zifZpaDVYeXjoH)f{%1ckHbB}LH81ZzHnv#fN_}tbb-UX>)x1<3t-Yz yKoBb4RUSPd+mHebhDimrnBcN2yJb7K{B!|~@+#o+@1X(!0000>;M1%|DN`~bo1@xC090Y z-ZE#^wVz7^elGRso_qe(#g~7NdQV<@W!BQmX)T9lufEG@r2~$S;_|;n|He5GTpo-9_?E-qsEv zN36s(q9iy!t)x7$D3u{SGtH?!J*pj$H7(YPwmk z)wYM4f9v8xj>ieF?6ZCLr$+v}mM zxvj(Cnx(OxjfFL+(rK{GdeP^XjD^nZ@`rV7!nw4bmX6of&o`pbjMMU_oQ|=(&7*;o zF{U+?CbOM^ZEMv|NsBO!NH?TKaKzZ00DGT zPE!Ct=GbNc0004EOGiX7uG}r;0000MbVXQnQ*UN;cVTj60B31tGH`BZATlmAE;ghy zgBJh*0F+5YK~#9!P0v>n!!QU0P+2bNy;rA45<=knUoMV~CfUz7%K%C#4UhpCqm{&S z2xy%*E&?Lj8Zr>6LL)w{q~qx;sPnvU1TX~etkb%MiUU#aHt!;WH0ZS)EbikorqZC( zvmACFJ4)pax?a|s(X99Zz9-xL(Qy(-I25acB>~S&Qzqg+h)Lq5F)g_I`6e0ETRwa_ V8Yq>t87}|;002ovPDHLkV1nlk%X|O; literal 0 HcmV?d00001 diff --git a/index_icons/osx/key.png b/index_icons/osx/key.png new file mode 100644 index 0000000000000000000000000000000000000000..e5118f16dbff6c0290785a8d09ec9f9c05a4a0a5 GIT binary patch literal 338 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GbL!eSlAh>;M1%*Q{AHZQ9iNbLW|v znfLbf1&0J{>*yRmapL;5YljXV+`M_q-Fx?T@7neG^XGHt&p&5^q7tkoik|4ie28U-i(mT6PyIg9~L2`a-mvbMdr8x!h z-j+!&&zri6``-tT@{gSF`p&$uRrtjqj#YvaNS%(YAT;YSV(L8>dH=9c|(GP#h7OTzceo;O5+ew-0UtA;keg1v#HvjJl+)MGF_4IB}x6x!KXt5vcNL;j=&>#aI&L7tG-B>_!@p zBUa)XQ4*Y=R#Ki=l**8vnPyawm#$!>XQF4e#JE`;s3OVJ#WAGfR&v6Fy6^88n3)gX zHBNtLWbol$<&y2?%*^){+1jr2OU!7P(#LdoneYGq+1bW5kz2E_KB{PopKNV)sNu?& znZ{=urWm%Q8x=n@nJ~xQJ=*T@^G{noZK-Jc`@ivlK7+i3?!L00GhPF2WAJqKb6Mw< G&;$U17ikUv literal 0 HcmV?d00001 diff --git a/index_icons/osx/mov.png b/index_icons/osx/mov.png new file mode 100644 index 0000000000000000000000000000000000000000..80b751b7f0ccc85cb203c364befaaf2d94238610 GIT binary patch literal 542 zcmV+(0^$9MP)B+J}XO9hJ!+jlKB#{0^7Z`TF`2qSlR$mKle=+~(_*xzV-O z=cLZ%jK$sS^YT5G#W|bHgSp)RgT+&_-d(HNP@~KUkIsjku?vsT3XjkakIlBo+!vI} zjh2?Z&fFW8&jN_ZsJg`hgvbhw!%LL8AgbV%#^2W7<$A#40(`vQ<>l1n@tw}*7M9Q3 z>+(gS&H4TP38UH0*4M+`@0`HjXR_PQ&(Ffa!R6=Y-QM22y1K{6$c>JUv$M38mX+-6 z>(|!S|NsA`rln$Q05<>t00DGTPE!Ct=GbNc0004EOGiXV@B-B80000MbVXQnQ*UN; zcVTj60B31tGH`BZATlmAE;ghygBJh*0KZ8@K~#9!J4+FRjWPP{GlpgQr!K#za5@I z0EP71AG{1_%Z!Htlh4{kas4p|T@^%)ERS;vU}GQ=vm>OW0wTp?&5784MRM&@LE)$a gFlIXj0JdNM2N|Cytq7SS+W-In07*qoM6N<$g1Rafu>b%7 literal 0 HcmV?d00001 diff --git a/index_icons/osx/movie.png b/index_icons/osx/movie.png new file mode 100644 index 0000000000000000000000000000000000000000..80b751b7f0ccc85cb203c364befaaf2d94238610 GIT binary patch literal 542 zcmV+(0^$9MP)B+J}XO9hJ!+jlKB#{0^7Z`TF`2qSlR$mKle=+~(_*xzV-O z=cLZ%jK$sS^YT5G#W|bHgSp)RgT+&_-d(HNP@~KUkIsjku?vsT3XjkakIlBo+!vI} zjh2?Z&fFW8&jN_ZsJg`hgvbhw!%LL8AgbV%#^2W7<$A#40(`vQ<>l1n@tw}*7M9Q3 z>+(gS&H4TP38UH0*4M+`@0`HjXR_PQ&(Ffa!R6=Y-QM22y1K{6$c>JUv$M38mX+-6 z>(|!S|NsA`rln$Q05<>t00DGTPE!Ct=GbNc0004EOGiXV@B-B80000MbVXQnQ*UN; zcVTj60B31tGH`BZATlmAE;ghygBJh*0KZ8@K~#9!J4+FRjWPP{GlpgQr!K#za5@I z0EP71AG{1_%Z!Htlh4{kas4p|T@^%)ERS;vU}GQ=vm>OW0wTp?&5784MRM&@LE)$a gFlIXj0JdNM2N|Cytq7SS+W-In07*qoM6N<$g1Rafu>b%7 literal 0 HcmV?d00001 diff --git a/index_icons/osx/new.png b/index_icons/osx/new.png new file mode 100644 index 0000000000000000000000000000000000000000..c7987dc766b3b58118516aca753cc2d4c107caa3 GIT binary patch literal 616 zcmeAS@N?(olHy`uVBq!ia0vp^GC<77!3-q1&-R!xFfg(P_=LCuxj^t22*8X#fBydl zf&W0>&!4}3{`~pl$B*ydzXQ2nzI^%o`7@C5@#9CZT84M;-UAtL-@bkG=FRKZZ-DGq zuU@@)@$&ie=TDzLee&eVeXvk zuU@@;`SPVpKy>N+`3q;yo;`i~^obKEjvqg9^ysl8M~)siaA5y_Alkoo@4j8TcJ15= zL_2rv*s*Qf_Kh1iZQQtV-MV#a)~s2*8i-b}T)Ar5vgL~xFJ7=i&+p#`gV4-6KQlIt2ZB7zOm7XoZ7}fNX<%?+67S?T zkG4csH!cOsl^YD683?4YF&PN^SgdMRasAS8D8X}vMF&Sw7<2SWj%f_9TO=4JeKBW` zKE)cwX)eff$jPSU;Jb(Iw1c4$AX)Q{9p~n7HgBt{=1RrJx&;Ls zj2oSqZFNN*CvmwgGs{a%JQ#OPEo=>=-8((G#Ke7NY+3^Bp5CXkW?EWGXmy-^9X%ss s^~)KSH?q2n6&kjz;u7+A<#b_UC@=AtFTSR0A<(M~p00i_>zopr0D*EN82|tP literal 0 HcmV?d00001 diff --git a/index_icons/osx/pdf.png b/index_icons/osx/pdf.png new file mode 100644 index 0000000000000000000000000000000000000000..a1294e1b6cd59106f82d48618c61f1d1c61c54ea GIT binary patch literal 585 zcmV-P0=E5$P)Ng{wou2FS^5<(|njjy>$5E zKI*Kg@mfprVN&U&q4bG@^Lujhe0l1+xAXh_>&eIJw6X9`K$Vr8@@Qk!V`7$;m5q*$ z;8aMnv$WqlEAT=lARr<0=j-aUx95n2@KZtWMlI-_n&)L%^KE0^!N80g8nUyx*?W8S zkdg07F7)5s;c;n)g@xvTd+gud@?l!ymy@+8BYl5`@KZ|XkAuz6*V#HNhKG*ld2*T| zAJ^8_^Yin&y1K%_!TI|7-QM2L&(G}a>*eR?|NsBT$jEfaSOEY400DGTPE!Ct=GbNc z0004EOGiXd<8Dm60000MbVXQnQ*UN;cVTj60B31tGH`BZATlmAE;ghygBJh*0MbcB zK~#9!HIC_40x=AQ>#&1>B8UQtE2!XtAOfzqOgl}QOyB=ysO|Bd{K-Av&5aO3VB(|` ztw{u#uWB`)pY~a^+nx>|PF`D|+7Jh`j#210wo68X}_=xKfm8(Gxax1rBh3U?A#I6m2<0S9QAq Xgy1hjKLK(h00000NkvXXu0mjfe3TxQ literal 0 HcmV?d00001 diff --git a/index_icons/osx/php.png b/index_icons/osx/php.png new file mode 100644 index 0000000000000000000000000000000000000000..5628101fbb93f8467258498bd9952a9d5a769561 GIT binary patch literal 730 zcmV<00ww*4P)iVj&(zUs}(%$aE{Qv*{*yQuM;Q!_H|L*be(A(Y$yR)9e4l;`GDi|FOK?)!OFQ<@Lwt|EjgrnW)#Swbl0Z|JUsQjjii9m*zL8`ThO< zQ(a`*>+&crGRWxv-r?x$_WI4~|IO|Ha&~sGxY}xMaK_~Rl$MsT!O6PA$Fa)RyTanW z$Kk!k<*(lV%IEjY;Pv_a|E#mr`~Cg;|Nr;@|KIWdR$y(()#$Lg+or6=*5mZs?EAgr z|LXbw!PfEI?EL@#|Fzx!n81gR00001bW%=J06^y0W&i*H0b)x>M1DWGL302A02Xvb zSaefwW^{L9a%BK#X=XBTZf77eE;KGSq%(sT0002lNklp3# z0E5apAkYSaT+JA;fI}SwXxD^=`hWz)p#pWnA&LPY0beLz)>0{m6C_Xp;)M&!<`ouk zNI?YjP3lZj3bfSJAp+uD@(Pmjyh*AO0?A;HJ-^ry}QJloM@d1r{i+F1GLxGGt}ttFLDQ32=)A zvkN8LS=Af!@IVCQJmUPks&wm>d9p=80-4g@(q)O9f&MZwqU8(>0BguKfUFF~3&Cl1p+v4=qz`MG-%aK*q-sS4^`pwtg+U)k9xy$y6Bf`JB^X%-x!NK)^ zB>D97*Vfj()!oL=*52jiw$0V;=H~puhqmMO)aCK~xp$3@j@H=T+U)rEkR;cbWv$NP z(YU1g`1HKu^2D*7$-uPi)WH7j%ALQ{-rUyqtZkgX*`>zXwa@4O`19NA^1ja2*O*<` zuZ+;IjlIa#w&U^R?f25<^Zw}8%jxs$=j_JM+~nln?Cj>9!sL|K@XO=x!-7HTgCnNM z<(-F1WCY+AflzK&%J~lE5T+|NjdlZwYs1ap&v? zp~HODYp2y8oz7x;ywKp|>MiMdKT%cH_2icD9lPE5d>ff1whPF2OeT!+AI6tw?ywgj z1GlvjZAWJ0u$6yPW-r=ue`WogE#5a)z!;bXltK@2PZWB?0RT}1OvcUb-R#9Vbpj<@ z0Yq;NzkbfI&kNw^8n7FE#27R#f*zs)r<55&eY-Uc5&~T2KSv0qq6CmaWf+|gF?Cj><-rm;U<%O!qywK4oq{8FW-|EBH?ZnsV?B(9u-|M^A?D_NU$-%(1%H`7Q_uSs(uEx}?*74ru<;&OU zskFcI?B!LT*UR1M{`&cJuHHqM)4RH~AcDcX&*Ay~{h6h=VW!)LowlvX<+8fKoWkZv znbTRP+k>jlewViG=H|4|>gC_xz18F7=Iqno@7~td`SkNSkj}f_^v=)ErKY8OpUA?& z!R6=YySlpn|Nrdl>sX80xc~qF0d!JMQvg8b*k%9#00Cl4M?^`71>}4H000(rMObuG zZ)S9NVRB^vXK7|KaBgQHGA=YOHl#Cy7XSbNrAb6VRCwA&%2g7CFc3x2gy8OsySuwv z2>V~qFa=~@fAy&g09e)pLD;^hAlq*8sPt!>dn23zKu`3p@(S^AOFk(eFOVfGhOAH) zN>MH|h!&>XG*wq*C`gxsABmPiL5Gk)2zwOh5&#Z|e}}OXKVM^S9Pjn$`cwb_002ov JPDHLkV1mWf9q<4E literal 0 HcmV?d00001 diff --git a/index_icons/osx/search.png b/index_icons/osx/search.png new file mode 100644 index 0000000000000000000000000000000000000000..db6910c4b62c47dbb58c00dac0e84e198b003137 GIT binary patch literal 570 zcmV-A0>%A_P)Hw%F~1o67(I0G_AG z!}kBJsin}1SDUZa{0FzSpU;(4e;2n5WEwnaaP| z?SYxf`qGz&oy*Pt{{R30ftkt4^ZLl~|Lp(&m$27?n90BL|IzjOx#9ncsMeFF(2bwU zrmxVGg@^zE0Kf77$9hWsv{0(D&z-B#!tMG10054w*Oa2l0002N^#84;#Z!p8;{X5v z0d!JMQvg8b*k%9#02XvbSaefwW^{L9a%BK#X=XBTZf77eE;KGSq%(sT0001yNklK-bz|l#5*iCLm>{B5rBR>8uRl>)Gfe*%=D5i?~4fY-*}b zp6-fr5iq_yqb$OW49prVD147t7REFNWPunId7w8UQRFcJ05Pc+1wIzWH2?qr07*qo IM6N<$f^ZBmSO5S3 literal 0 HcmV?d00001 diff --git a/index_icons/osx/sound.png b/index_icons/osx/sound.png new file mode 100644 index 0000000000000000000000000000000000000000..8e9cb789aaf29a15ea033eaa05a2416f3ffc8469 GIT binary patch literal 513 zcmV+c0{;DpP)rRv z%eBtj+w1ZIgvf`Tu~V|%oyg^%v&Fs6+?~hXOO&~Tx!n$z)z;qS-sR=2)#eM2(A4Ge z^tJUl|o6C&H%*x!uNpy z0004WQchCuN9dgJ<{x2BimdvKb7r>H$!?XY)1QCQp%Z<(taBL&Fa*ha000000NkvXXu0mjf DrWpoi literal 0 HcmV?d00001 diff --git a/index_icons/osx/srt.png b/index_icons/osx/srt.png new file mode 100644 index 0000000000000000000000000000000000000000..74195b86caa426286ad666e6db2c752ddf9ec9ad GIT binary patch literal 1001 zcmV}~=lT5z{3qVh zYDw$u+bWqrkR&EaFkIxOoD{6(W3>>+!Ow9EdCAGHZx|-Jj3JhjZ7C_lsK=v?fr~42 zx;IVNuRqSkK)JbFP&VgxP5FFWo6~vL$FkN;sdQq*>*XI2nDlz$=-61|9*w4R$mN=y z1NH?10hE;FqpRx_T3VVB?E2yE!0ha=YOz@Sv&UoHwqnJ6AH(nu2~K2XQO74I_g*#_ zPUer^h_l-rC@n33)zXA;NDL`0M1B1cke%P(eTJqLJIBW>jS7XO(e37lYX$?6-QWL2 z!-frgHMW~;!r=(Y$_rubXo5c|1Se!cE(x$wNumCD9k%yeVY~0$yVZREeo1?3>K}wE zE>5y8KEB~1!&I;=i}Lap(a~`N!LSGse;A3j8Ia0VAQd4{Ni+`B9l++(7bAzCM)_g;Qxw`o#esVot@3_`vr(1HhIVm;W{a3EsH1{0q+w*khl_N(??K!dVx8( zwDbm{)vo5Jr`^bXAseU9v?1st!O{XqhsPkLI8a+tfiKSibUav|1^;vogv!-8THkRaM2?#%;Lpc@u)31w@jP!21FD;3Tjs0mBE6!SclbY6_l0`m1F?FoNj%Co$oe zLix@QK&+BT_I#$(HD5LqBz}Cz2;a;M!jPlw$S2UL7ht<;NAEAA&?JcP+?I{lURDUb ziiV}%iPpaF9_oPJrBIxzQLA^KDJ&Eou6`Y?*8zuLh~JMLhTby)q-7v;Qx3eb>B%Ar zlrRcLSB%GUc7U*IG=$M^U*DLPc5bUomj3n2uL){D+ySuDnDMLd?fy!r|GI``ArEQ1 z4D-w!NHz+4-rJ~X=>bth(?o=#C}$wBzg?-U9S#H*LsjpjnyZTtotwfPUm6@&Z{Vl% z-53}gf_VwSTWd(k9rb2(4_^64%9RNT#L2})sR8I8srRaIMlSJHiHdHLt++S+%C z%bm$)b1s)lO{G%AdV0>1&1OY5JCAsL2*g1wmjh;|0fh@J@C}jgHZ=ievtHTf>*i@A z1_rKz1-kvpF0%z+7T$}|=xq&-)kuuo!R_qHR4ukv1M4s5fyE^fE}UbcKsbLffW5Vi z>R{{!n8zbiL&I*2kAFf-O9BU)3C(ZsVPBvXp$QAVeg=A5KLY9JSUGtb@oNmvo}NKR zhaLU>gBpR4oK6cyM?avZCV|JVfZ0>SI2<_$+YtvAzX1;89FpEN+U|FOR=7w(MrUU| zLZO>rvK%10eGeul-$4@Y;L#K>c48REZymxLazNtecd|J=^t{BebQcz0b49%}tk(UA zMz4c;y)q?}cgt>JA`#~VF|hV_FO7^OH$f2NT^IuE>$^me$Q8ZUMdPj3^S@*9on~WW z4-gDq1~V88l+Wk?94r~t{}O4jva$k-qUxheMZiWBgu`L}^+Wnv6h$yW5R^ipAa1mB zF={g^N)l-V#0maUP)b&+u=JXG&b^KM#3p{mquS#anymp_NoXW`00000NkvXXu0mjf D{pb`r literal 0 HcmV?d00001 diff --git a/index_icons/osx/subtitle.png b/index_icons/osx/subtitle.png new file mode 100644 index 0000000000000000000000000000000000000000..d926638114464260b7d5e3d4c0664922693295d9 GIT binary patch literal 1032 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 literal 0 HcmV?d00001 diff --git a/index_icons/winvista/cd.png b/index_icons/winvista/cd.png new file mode 100644 index 0000000000000000000000000000000000000000..76786ffba4c6f9c346a2880693aee51c04a62423 GIT binary patch literal 3385 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 P00000NkvXXu0mjfCxmm` literal 0 HcmV?d00001 diff --git a/index_icons/winvista/comp.png b/index_icons/winvista/comp.png new file mode 100644 index 0000000000000000000000000000000000000000..1717b1a275ce08bf6b6f721b68f8a7d640b06f31 GIT binary patch literal 3413 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 literal 0 HcmV?d00001 diff --git a/index_icons/winvista/compressed.png b/index_icons/winvista/compressed.png new file mode 100644 index 0000000000000000000000000000000000000000..7832eae1c76571c2b5fbf9e68d6c984294f51bb8 GIT binary patch literal 3328 zcmV+b4gd0qP)KLZ*U+5Lu!Sk^o_Z5E4Meg@_7P6crJiNL9pw)e1;Xm069{HJUZAPk55R%$-RIA z6-eL&AQ0xu!e<4=008gy@A0LT~suv4>S3ILP<0Bm`DLLvaF4FK%)Nj?Pt*r}7;7Xa9z9H|HZjR63e zC`Tj$K)V27Re@400>HumpsYY5E(E}?0f1SyGDiY{y#)Yvj#!WnKwtoXnL;eg03bL5 z07D)V%>y7z1E4U{zu>7~aD})?0RX_umCct+(lZpemCzb@^6=o|A>zVpu|i=NDG+7} zl4`aK{0#b-!z=TL9Wt0BGO&T{GJWpjryhdijfaIQ&2!o}p04JRKYg3k&Tf zVxhe-O!X z{f;To;xw^bEES6JSc$k$B2CA6xl)ltA<32E66t?3@gJ7`36pmX0IY^jz)rRYwaaY4 ze(nJRiw;=Qb^t(r^DT@T3y}a2XEZW-_W%Hszxj_qD**t_m!#tW0KDiJT&R>6OvVTR z07RgHDzHHZ48atvzz&?j9lXF70$~P3Knx_nJP<+#`N z#-MZ2bTkiLfR>_b(HgWKJ%F~Nr_oF3b#wrIijHG|(J>BYjM-sajE6;FiC7vY#};Gd zST$CUHDeuEH+B^pz@B062qXfFfD`NpUW5?BY=V%GM_5c)L#QR}BeW8_2v-S%gfYS= zB9o|3v?Y2H`NVi)In3rTB8+ej^> zQ=~r95NVuDChL%G$=>7$vVg20myx%S50Foi`^m%Pw-h?Xh~i8Mq9jtJloCocWk2Nv zrJpiFnV_ms&8eQ$2&#xWpIS+6pmtC%Q-`S&GF4Q#^mhymh7E(qNMa}%YZ-ePrx>>xFPTiH1=E+A$W$=bG8>s^ zm=Bn5Rah$aDtr}@$`X}2l~$F0mFKEdRdZE8)p@E5RI61Ft6o-prbbn>P~)iy)E2AN zsU20jsWz_8Qg>31P|s0cqrPALg8E|(vWA65poU1JRAaZs8I2(p#xiB`SVGovRs-uS zYnV-9TeA7=Om+qP8+I>yOjAR1s%ETak!GFdam@h^# z)@rS0t$wXH+Irf)+G6c;?H29p+V6F6oj{!|o%K3xI`?%6x;DB|x`n#ibhIR?(H}Q3Gzd138Ei2)WAMz7W9Vy`X}HnwgyEn!VS)>mv$8&{hQn>w4zwy3R}t;BYlZQm5)6pty=DfLrs+A-|>>;~;Q z_F?uV_HFjh9n2gO9o9Q^JA86v({H5aB!kjoO6 zc9$1ZZKsN-Zl8L~mE{`ly3)1N^`o1+o7}D0ZPeY&J;i;i`%NyJ8_8Y6J?}yE@b_5a zam?eLr<8@mESk|3$_SkmS{wQ>%qC18))9_|&j{ZT zes8AvOzF(F2#DZEY>2oYX&IRp`F#{ADl)1r>QS^)ba8a|EY_^#S^HO&t^Rgqwv=MZThqqEWH8 zxJo>d=ABlR_Bh=;eM9Tw|Ih34~oTE|= zX_mAr*D$vzw@+p(E0Yc6dFE}(8oqt`+R{gE3x4zjX+Sb3_cYE^= zgB=w+-tUy`ytONMS8KgRef4hA?t0j zufM;t32jm~jUGrkaOInTZ`zyfns>EuS}G30LFK_G-==(f<51|K&cocp&EJ`SxAh3? zNO>#LI=^+SEu(FqJ)ynt=!~PC9bO$rzPJB=?=j6w@a-(u02P7 zaQ)#(uUl{HW%tYNS3ItC^iAtK(eKlL`f9+{bJzISE?u8_z3;~C8@FyI-5j_jy7l;W z_U#vU3hqqYU3!mrul&B+{ptt$59)uk{;_4iZQ%G|z+lhASr6|H35TBkl>gI*;nGLU zN7W-nBaM%pA0HbH8olyl&XeJ%vZoWz%6?Y=dFykl=imL}`%BMQ{Mhgd`HRoLu6e2R za__6DuR6yg#~-}Tc|Gx_{H@O0eebyMy5GmWADJlpK>kqk(fVV@r_fLLKIeS?{4e)} z^ZO;zpECde00d`2O+f$vv5tKEQIh}w03c&XQcVB=dL;k=fP(-4`Tqa_faw4Lbua(` z>RI+y?e7jKeZ#YO-C0v$<2K~#9!oRhz6Q&AknKlkRDw6(1kQxu#k)k?ZbiiOAsVdQ8T!NiXH7lsvp5)pC_2CoB?zj>!_rwWtP z<7x7~qZv9j14pG1<2M|B!;;SxnY(gQDG}lAJyjdM%D_)|;no1-ub*^Hb>LtxM@}3= zDn%a7F5m$uJYAX@MG^u%ias=t4qpVL(OM%)<9SIwJo%Z5j}jQDy~YR?yLB z%FFYxePuEMsZ_E95CCy#S3+zF<-ViDM`Qy<6{kY}Ce44yxjz63-OgdFU@ItFfp`OL zeTZvBq1gfOG&pgc6I3FZwo#4Z^Gn2G9VG^cKn&t6&IDFcm0TQVpuElfx-QrKo^vhDbA3w1CT4J{;XR>9P9#3<54#F6QdfM#+tbSXk@Nt1x zH%}|I+h53J%kt($j@TGX6txSCEnhYg*vDtvCK37P_A}YCWU}QQhFuc?oV&X$BYlq0 zf?sdZFwitYU|?bX!}bz)mFE1ZH0xWiQWpv}VW|eqy5OlCKL!9X@E_`o*4kVE0000< KMNUMnLSTZc+C?M) literal 0 HcmV?d00001 diff --git a/index_icons/winvista/dir.png b/index_icons/winvista/dir.png new file mode 100644 index 0000000000000000000000000000000000000000..a80d00a14e328611523c6f402dd28c2adf23f3ea GIT binary patch literal 3286 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 UY;h`$Hvj+t07*qoM6N<$f?Rq=Y5)KL literal 0 HcmV?d00001 diff --git a/index_icons/winvista/dll.png b/index_icons/winvista/dll.png new file mode 100644 index 0000000000000000000000000000000000000000..294ce0783701fae69fad5e86459604159c9b9418 GIT binary patch literal 3375 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 literal 0 HcmV?d00001 diff --git a/index_icons/winvista/generic.png b/index_icons/winvista/generic.png new file mode 100644 index 0000000000000000000000000000000000000000..d113a1f42a088fcac7f721a1946a51e3978fa710 GIT binary patch literal 3124 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 literal 0 HcmV?d00001 diff --git a/index_icons/winvista/key.png b/index_icons/winvista/key.png new file mode 100644 index 0000000000000000000000000000000000000000..fbe36a615359e5e78e705125a25d049e40410d06 GIT binary patch literal 3244 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 literal 0 HcmV?d00001 diff --git a/index_icons/winvista/mov.png b/index_icons/winvista/mov.png new file mode 100644 index 0000000000000000000000000000000000000000..199dfb79fffd98dd17edd35395db83847952baee GIT binary patch literal 3424 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 Z0RZ?MULAV$ko5on002ovPDHLkV1lZmUf2Kt literal 0 HcmV?d00001 diff --git a/index_icons/winvista/ppt.png b/index_icons/winvista/ppt.png new file mode 100644 index 0000000000000000000000000000000000000000..fbb85586a6f0b3643cf75335c7eaa177c43ba756 GIT binary patch literal 3571 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 literal 0 HcmV?d00001 diff --git a/index_icons/winvista/ps.png b/index_icons/winvista/ps.png new file mode 100644 index 0000000000000000000000000000000000000000..74f934cdf868719e288c80b3b279523fb60408a2 GIT binary patch literal 3411 zcmV-Z4XpBsP)KLZ*U+5Lu!Sk^o_Z5E4Meg@_7P6crJiNL9pw)e1;Xm069{HJUZAPk55R%$-RIA z6-eL&AQ0xu!e<4=008gy@A0LT~suv4>S3ILP<0Bm`DLLvaF4FK%)Nj?Pt*r}7;7Xa9z9H|HZjR63e zC`Tj$K)V27Re@400>HumpsYY5E(E}?0f1SyGDiY{y#)Yvj#!WnKwtoXnL;eg03bL5 z07D)V%>y7z1E4U{zu>7~aD})?0RX_umCct+(lZpemCzb@^6=o|A>zVpu|i=NDG+7} zl4`aK{0#b-!z=TL9Wt0BGO&T{GJWpjryhdijfaIQ&2!o}p04JRKYg3k&Tf zVxhe-O!X z{f;To;xw^bEES6JSc$k$B2CA6xl)ltA<32E66t?3@gJ7`36pmX0IY^jz)rRYwaaY4 ze(nJRiw;=Qb^t(r^DT@T3y}a2XEZW-_W%Hszxj_qD**t_m!#tW0KDiJT&R>6OvVTR z07RgHDzHHZ48atvzz&?j9lXF70$~P3Knx_nJP<+#`N z#-MZ2bTkiLfR>_b(HgWKJ%F~Nr_oF3b#wrIijHG|(J>BYjM-sajE6;FiC7vY#};Gd zST$CUHDeuEH+B^pz@B062qXfFfD`NpUW5?BY=V%GM_5c)L#QR}BeW8_2v-S%gfYS= zB9o|3v?Y2H`NVi)In3rTB8+ej^> zQ=~r95NVuDChL%G$=>7$vVg20myx%S50Foi`^m%Pw-h?Xh~i8Mq9jtJloCocWk2Nv zrJpiFnV_ms&8eQ$2&#xWpIS+6pmtC%Q-`S&GF4Q#^mhymh7E(qNMa}%YZ-ePrx>>xFPTiH1=E+A$W$=bG8>s^ zm=Bn5Rah$aDtr}@$`X}2l~$F0mFKEdRdZE8)p@E5RI61Ft6o-prbbn>P~)iy)E2AN zsU20jsWz_8Qg>31P|s0cqrPALg8E|(vWA65poU1JRAaZs8I2(p#xiB`SVGovRs-uS zYnV-9TeA7=Om+qP8+I>yOjAR1s%ETak!GFdam@h^# z)@rS0t$wXH+Irf)+G6c;?H29p+V6F6oj{!|o%K3xI`?%6x;DB|x`n#ibhIR?(H}Q3Gzd138Ei2)WAMz7W9Vy`X}HnwgyEn!VS)>mv$8&{hQn>w4zwy3R}t;BYlZQm5)6pty=DfLrs+A-|>>;~;Q z_F?uV_HFjh9n2gO9o9Q^JA86v({H5aB!kjoO6 zc9$1ZZKsN-Zl8L~mE{`ly3)1N^`o1+o7}D0ZPeY&J;i;i`%NyJ8_8Y6J?}yE@b_5a zam?eLr<8@mESk|3$_SkmS{wQ>%qC18))9_|&j{ZT zes8AvOzF(F2#DZEY>2oYX&IRp`F#{ADl)1r>QS^)ba8a|EY_^#S^HO&t^Rgqwv=MZThqqEWH8 zxJo>d=ABlR_Bh=;eM9Tw|Ih34~oTE|= zX_mAr*D$vzw@+p(E0Yc6dFE}(8oqt`+R{gE3x4zjX+Sb3_cYE^= zgB=w+-tUy`ytONMS8KgRef4hA?t0j zufM;t32jm~jUGrkaOInTZ`zyfns>EuS}G30LFK_G-==(f<51|K&cocp&EJ`SxAh3? zNO>#LI=^+SEu(FqJ)ynt=!~PC9bO$rzPJB=?=j6w@a-(u02P7 zaQ)#(uUl{HW%tYNS3ItC^iAtK(eKlL`f9+{bJzISE?u8_z3;~C8@FyI-5j_jy7l;W z_U#vU3hqqYU3!mrul&B+{ptt$59)uk{;_4iZQ%G|z+lhASr6|H35TBkl>gI*;nGLU zN7W-nBaM%pA0HbH8olyl&XeJ%vZoWz%6?Y=dFykl=imL}`%BMQ{Mhgd`HRoLu6e2R za__6DuR6yg#~-}Tc|Gx_{H@O0eebyMy5GmWADJlpK>kqk(fVV@r_fLLKIeS?{4e)} z^ZO;zpECde00d`2O+f$vv5tKEQIh}w03c&XQcVB=dL;k=fP(-4`Tqa_faw4Lbua(` z>RI+y?e7jKeZ#YO-C0&q!0K~#9!e3DH_RACf`pYNMHGsRS5YFQ3eYNeHg5EK1K zMG)9VH*H#!AhoDXD{UE3t)mEWQQ)Q^Dw-C7K}Zyu^p8bil)p{G%xIJ2G&6VZ{Z5NY zs!5;iIq&`O{}LmgTua@J zhfGdR5)OwSb#!zb&E;}qmU6O~(U-_<9I|P!Gl*-0W0P@VHV?0&Lgj%J0Ks68=H})- zwryW*Z*MbUx2cZYMUzRzrF1giy10MZ}fs}Bio zMi({VF(It%spD1d9c=xPsz!6~M4p|EpIX z1*NON_CP!epHuMWBMc8gG3aF;lsAAjE`Yb-0(D>sx^6$>sfS%<$hZTg4g?G&p2O%p zbbJhnRDyKuvXl{s2{rpstDkUjWGV?I=A1PCr=7Ay9<+ltA^yke~Mr{H)~jLu)^B^AzfCFXB~j@Hm7{{7RU6 p9j*Q`Xavpz6)cP&_ynB$F#xE%4VwCV=~Dmz002ovPDHLkV1lD%cHaO1 literal 0 HcmV?d00001 diff --git a/index_icons/winvista/search.png b/index_icons/winvista/search.png new file mode 100644 index 0000000000000000000000000000000000000000..6362f3e55c8a511dbb40c681fd782774acee07db GIT binary patch literal 3292 zcmV<23?uW2P)KLZ*U+5Lu!Sk^o_Z5E4Meg@_7P6crJiNL9pw)e1;Xm069{HJUZAPk55R%$-RIA z6-eL&AQ0xu!e<4=008gy@A0LT~suv4>S3ILP<0Bm`DLLvaF4FK%)Nj?Pt*r}7;7Xa9z9H|HZjR63e zC`Tj$K)V27Re@400>HumpsYY5E(E}?0f1SyGDiY{y#)Yvj#!WnKwtoXnL;eg03bL5 z07D)V%>y7z1E4U{zu>7~aD})?0RX_umCct+(lZpemCzb@^6=o|A>zVpu|i=NDG+7} zl4`aK{0#b-!z=TL9Wt0BGO&T{GJWpjryhdijfaIQ&2!o}p04JRKYg3k&Tf zVxhe-O!X z{f;To;xw^bEES6JSc$k$B2CA6xl)ltA<32E66t?3@gJ7`36pmX0IY^jz)rRYwaaY4 ze(nJRiw;=Qb^t(r^DT@T3y}a2XEZW-_W%Hszxj_qD**t_m!#tW0KDiJT&R>6OvVTR z07RgHDzHHZ48atvzz&?j9lXF70$~P3Knx_nJP<+#`N z#-MZ2bTkiLfR>_b(HgWKJ%F~Nr_oF3b#wrIijHG|(J>BYjM-sajE6;FiC7vY#};Gd zST$CUHDeuEH+B^pz@B062qXfFfD`NpUW5?BY=V%GM_5c)L#QR}BeW8_2v-S%gfYS= zB9o|3v?Y2H`NVi)In3rTB8+ej^> zQ=~r95NVuDChL%G$=>7$vVg20myx%S50Foi`^m%Pw-h?Xh~i8Mq9jtJloCocWk2Nv zrJpiFnV_ms&8eQ$2&#xWpIS+6pmtC%Q-`S&GF4Q#^mhymh7E(qNMa}%YZ-ePrx>>xFPTiH1=E+A$W$=bG8>s^ zm=Bn5Rah$aDtr}@$`X}2l~$F0mFKEdRdZE8)p@E5RI61Ft6o-prbbn>P~)iy)E2AN zsU20jsWz_8Qg>31P|s0cqrPALg8E|(vWA65poU1JRAaZs8I2(p#xiB`SVGovRs-uS zYnV-9TeA7=Om+qP8+I>yOjAR1s%ETak!GFdam@h^# z)@rS0t$wXH+Irf)+G6c;?H29p+V6F6oj{!|o%K3xI`?%6x;DB|x`n#ibhIR?(H}Q3Gzd138Ei2)WAMz7W9Vy`X}HnwgyEn!VS)>mv$8&{hQn>w4zwy3R}t;BYlZQm5)6pty=DfLrs+A-|>>;~;Q z_F?uV_HFjh9n2gO9o9Q^JA86v({H5aB!kjoO6 zc9$1ZZKsN-Zl8L~mE{`ly3)1N^`o1+o7}D0ZPeY&J;i;i`%NyJ8_8Y6J?}yE@b_5a zam?eLr<8@mESk|3$_SkmS{wQ>%qC18))9_|&j{ZT zes8AvOzF(F2#DZEY>2oYX&IRp`F#{ADl)1r>QS^)ba8a|EY_^#S^HO&t^Rgqwv=MZThqqEWH8 zxJo>d=ABlR_Bh=;eM9Tw|Ih34~oTE|= zX_mAr*D$vzw@+p(E0Yc6dFE}(8oqt`+R{gE3x4zjX+Sb3_cYE^= zgB=w+-tUy`ytONMS8KgRef4hA?t0j zufM;t32jm~jUGrkaOInTZ`zyfns>EuS}G30LFK_G-==(f<51|K&cocp&EJ`SxAh3? zNO>#LI=^+SEu(FqJ)ynt=!~PC9bO$rzPJB=?=j6w@a-(u02P7 zaQ)#(uUl{HW%tYNS3ItC^iAtK(eKlL`f9+{bJzISE?u8_z3;~C8@FyI-5j_jy7l;W z_U#vU3hqqYU3!mrul&B+{ptt$59)uk{;_4iZQ%G|z+lhASr6|H35TBkl>gI*;nGLU zN7W-nBaM%pA0HbH8olyl&XeJ%vZoWz%6?Y=dFykl=imL}`%BMQ{Mhgd`HRoLu6e2R za__6DuR6yg#~-}Tc|Gx_{H@O0eebyMy5GmWADJlpK>kqk(fVV@r_fLLKIeS?{4e)} z^ZO;zpECde00d`2O+f$vv5tKEQIh}w03c&XQcVB=dL;k=fP(-4`Tqa_faw4Lbua(` z>RI+y?e7jKeZ#YO-C0r^QpK~#9!oYK8(6LA~{@aK0gxtAJZUK^{BwnhgB-@0T_ z5Qn&l+Tk2r1d09uA~=<-9h}V}xVQv~pqn=+DAXWiDaDu?MQVwc)Y8OW@BQxQB$Seb z=(B$w_&$6I#$>7TiV^Hy8G(I+dR86)2rsq4iZ2{7vsAu&H6-J(c|IFS<+tSQ zafV}v+hcD z1EW_SSwMaJx{yBo9)OvPfo7(#NeEgQ8I&ck^_i0q`}4|0X5;{#ndg%8YXEdPf>k@f zhT}tW0?bN0&d8};CUA@bH)g|-AnXI!=~W~6t4_&i5YcZI=eg`C?+s42id|f%(Z@w-1p4;`Jx%*@o25_fP zDBP>p>$U8$d0h~=^9a0C06-abm4bQs$v!0000Aw literal 0 HcmV?d00001 diff --git a/index_icons/winvista/sound.png b/index_icons/winvista/sound.png new file mode 100644 index 0000000000000000000000000000000000000000..408f5e07257e8667e4381a2d2a304c83ad92e9ea GIT binary patch literal 3286 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 Ur5!VBs{jB107*qoM6N<$g0m$#+5i9m literal 0 HcmV?d00001 diff --git a/index_icons/winvista/srt.png b/index_icons/winvista/srt.png new file mode 100644 index 0000000000000000000000000000000000000000..74195b86caa426286ad666e6db2c752ddf9ec9ad GIT binary patch literal 1001 zcmV}~=lT5z{3qVh zYDw$u+bWqrkR&EaFkIxOoD{6(W3>>+!Ow9EdCAGHZx|-Jj3JhjZ7C_lsK=v?fr~42 zx;IVNuRqSkK)JbFP&VgxP5FFWo6~vL$FkN;sdQq*>*XI2nDlz$=-61|9*w4R$mN=y z1NH?10hE;FqpRx_T3VVB?E2yE!0ha=YOz@Sv&UoHwqnJ6AH(nu2~K2XQO74I_g*#_ zPUer^h_l-rC@n33)zXA;NDL`0M1B1cke%P(eTJqLJIBW>jS7XO(e37lYX$?6-QWL2 z!-frgHMW~;!r=(Y$_rubXo5c|1Se!cE(x$wNumCD9k%yeVY~0$yVZREeo1?3>K}wE zE>5y8KEB~1!&I;=i}Lap(a~`N!LSGse;A3j8Ia0VAQd4{Ni+`B9l++(7bAzCM)_g;Qxw`o#esVot@3_`vr(1HhIVm;W{a3EsH1{0q+w*khl_N(??K!dVx8( zwDbm{)vo5Jr`^bXAseU9v?1st!O{XqhsPkLI8a+tfiKSibUav|1^;vogv!-8THkRaM2?#%;Lpc@u)31w@jP!21FD;3Tjs0mBE6!SclbY6_l0`m1F?FoNj%Co$oe zLix@QK&+BT_I#$(HD5LqBz}Cz2;a;M!jPlw$S2UL7ht<;NAEAA&?JcP+?I{lURDUb ziiV}%iPpaF9_oPJrBIxzQLA^KDJ&Eou6`Y?*8zuLh~JMLhTby)q-7v;Qx3eb>B%Ar zlrRcLSB%GUc7U*IG=$M^U*DLPc5bUomj3n2uL){D+ySuDnDMLd?fy!r|GI``ArEQ1 z4D-w!NHz+4-rJ~X=>bth(?o=#C}$wBzg?-U9S#H*LsjpjnyZTtotwfPUm6@&Z{Vl% z-53}gf_VwSTWd(k9rb2(4_^64%9RNT#L2})sR8I8srRaIMlSJHiHdHLt++S+%C z%bm$)b1s)lO{G%AdV0>1&1OY5JCAsL2*g1wmjh;|0fh@J@C}jgHZ=ievtHTf>*i@A z1_rKz1-kvpF0%z+7T$}|=xq&-)kuuo!R_qHR4ukv1M4s5fyE^fE}UbcKsbLffW5Vi z>R{{!n8zbiL&I*2kAFf-O9BU)3C(ZsVPBvXp$QAVeg=A5KLY9JSUGtb@oNmvo}NKR zhaLU>gBpR4oK6cyM?avZCV|JVfZ0>SI2<_$+YtvAzX1;89FpEN+U|FOR=7w(MrUU| zLZO>rvK%10eGeul-$4@Y;L#K>c48REZymxLazNtecd|J=^t{BebQcz0b49%}tk(UA zMz4c;y)q?}cgt>JA`#~VF|hV_FO7^OH$f2NT^IuE>$^me$Q8ZUMdPj3^S@*9on~WW z4-gDq1~V88l+Wk?94r~t{}O4jva$k-qUxheMZiWBgu`L}^+Wnv6h$yW5R^ipAa1mB zF={g^N)l-V#0maUP)b&+u=JXG&b^KM#3p{mquS#anymp_NoXW`00000NkvXXu0mjf D{pb`r literal 0 HcmV?d00001 diff --git a/index_icons/winvista/subtitle.png b/index_icons/winvista/subtitle.png new file mode 100644 index 0000000000000000000000000000000000000000..d926638114464260b7d5e3d4c0664922693295d9 GIT binary patch literal 1032 zcmV+j1o!)iP)F>&#($HRB!<>8Rs4sx}q z2=!xQ*p-w-#=TxMB_BLzu~erk6k?v^2uF!D1!pkGHP6m=24k@{lR_~y843wiIvq$N zouI~KBA4y<$+Y0O!mO*tt?GQ z@Qtjm3*;re9*6XL=F0T+sa~tK=_jXi>Am6MUna`R-joP}B*L=bVllq3zu)%Jjvcwh zDwX!|Sa2ykTBY9&QBTXthX!R<5I**X4T2-cq8J73f5%^zkO^Mx3T#>aEc zuND?&Zkf%ca-K)~%F5r@-R?J9^!i7{5EmzZL9K3VFD|YTZ*Gdl*Oo}#yvH}-^N07u z%MCkK$!MFOo~Tu84CUIC#5JB5{4C4YyIjpfEc-smP%00!7ZiNC5ez2WRZGaId^dVV zBM_~&Zi}GVjpR(LaBSyagzX(bq0bMCR4NQbqu#nepo&l#Z|*Z1E3yxlt4>!R!P{4S z`0mCffW5OVBczZP-NWpUX|UTT@!;2PxO;lwayYy;zyCH-OC+C_q@+~jSYLhi^^-@@ zHzdKuhB3f%cAKw04$I4DaqBXJ@i`Z!Cnn+O?#90(Bi=!`yOX5L_k@&v9IQfO`MIy0tK*z^G>GOd01E7foE@|i&*}4L1 zH5$^izOJiLslL4*iTEfeu9|PQ$Q;3ETG$$pYa&;Aj zG8r=%iR8)wBSX*dzu;(*O<*w%7+RpkF4Da^n*RY43A%KLZ*U+5Lu!Sk^o_Z5E4Meg@_7P6crJiNL9pw)e1;Xm069{HJUZAPk55R%$-RIA z6-eL&AQ0xu!e<4=008gy@A0LT~suv4>S3ILP<0Bm`DLLvaF4FK%)Nj?Pt*r}7;7Xa9z9H|HZjR63e zC`Tj$K)V27Re@400>HumpsYY5E(E}?0f1SyGDiY{y#)Yvj#!WnKwtoXnL;eg03bL5 z07D)V%>y7z1E4U{zu>7~aD})?0RX_umCct+(lZpemCzb@^6=o|A>zVpu|i=NDG+7} zl4`aK{0#b-!z=TL9Wt0BGO&T{GJWpjryhdijfaIQ&2!o}p04JRKYg3k&Tf zVxhe-O!X z{f;To;xw^bEES6JSc$k$B2CA6xl)ltA<32E66t?3@gJ7`36pmX0IY^jz)rRYwaaY4 ze(nJRiw;=Qb^t(r^DT@T3y}a2XEZW-_W%Hszxj_qD**t_m!#tW0KDiJT&R>6OvVTR z07RgHDzHHZ48atvzz&?j9lXF70$~P3Knx_nJP<+#`N z#-MZ2bTkiLfR>_b(HgWKJ%F~Nr_oF3b#wrIijHG|(J>BYjM-sajE6;FiC7vY#};Gd zST$CUHDeuEH+B^pz@B062qXfFfD`NpUW5?BY=V%GM_5c)L#QR}BeW8_2v-S%gfYS= zB9o|3v?Y2H`NVi)In3rTB8+ej^> zQ=~r95NVuDChL%G$=>7$vVg20myx%S50Foi`^m%Pw-h?Xh~i8Mq9jtJloCocWk2Nv zrJpiFnV_ms&8eQ$2&#xWpIS+6pmtC%Q-`S&GF4Q#^mhymh7E(qNMa}%YZ-ePrx>>xFPTiH1=E+A$W$=bG8>s^ zm=Bn5Rah$aDtr}@$`X}2l~$F0mFKEdRdZE8)p@E5RI61Ft6o-prbbn>P~)iy)E2AN zsU20jsWz_8Qg>31P|s0cqrPALg8E|(vWA65poU1JRAaZs8I2(p#xiB`SVGovRs-uS zYnV-9TeA7=Om+qP8+I>yOjAR1s%ETak!GFdam@h^# z)@rS0t$wXH+Irf)+G6c;?H29p+V6F6oj{!|o%K3xI`?%6x;DB|x`n#ibhIR?(H}Q3Gzd138Ei2)WAMz7W9Vy`X}HnwgyEn!VS)>mv$8&{hQn>w4zwy3R}t;BYlZQm5)6pty=DfLrs+A-|>>;~;Q z_F?uV_HFjh9n2gO9o9Q^JA86v({H5aB!kjoO6 zc9$1ZZKsN-Zl8L~mE{`ly3)1N^`o1+o7}D0ZPeY&J;i;i`%NyJ8_8Y6J?}yE@b_5a zam?eLr<8@mESk|3$_SkmS{wQ>%qC18))9_|&j{ZT zes8AvOzF(F2#DZEY>2oYX&IRp`F#{ADl)1r>QS^)ba8a|EY_^#S^HO&t^Rgqwv=MZThqqEWH8 zxJo>d=ABlR_Bh=;eM9Tw|Ih34~oTE|= zX_mAr*D$vzw@+p(E0Yc6dFE}(8oqt`+R{gE3x4zjX+Sb3_cYE^= zgB=w+-tUy`ytONMS8KgRef4hA?t0j zufM;t32jm~jUGrkaOInTZ`zyfns>EuS}G30LFK_G-==(f<51|K&cocp&EJ`SxAh3? zNO>#LI=^+SEu(FqJ)ynt=!~PC9bO$rzPJB=?=j6w@a-(u02P7 zaQ)#(uUl{HW%tYNS3ItC^iAtK(eKlL`f9+{bJzISE?u8_z3;~C8@FyI-5j_jy7l;W z_U#vU3hqqYU3!mrul&B+{ptt$59)uk{;_4iZQ%G|z+lhASr6|H35TBkl>gI*;nGLU zN7W-nBaM%pA0HbH8olyl&XeJ%vZoWz%6?Y=dFykl=imL}`%BMQ{Mhgd`HRoLu6e2R za__6DuR6yg#~-}Tc|Gx_{H@O0eebyMy5GmWADJlpK>kqk(fVV@r_fLLKIeS?{4e)} z^ZO;zpECde00d`2O+f$vv5tKEQIh}w03c&XQcVB=dL;k=fP(-4`Tqa_faw4Lbua(` z>RI+y?e7jKeZ#YO-C0uV_=K~#9!bdx)ePEizwpTi`~Orn@XloU#xN+ODhOB867 zeuXGh3e(Ui{Q^3LLL?NLQA$KaLo$^F88gJ?J7=%kt2pPI840`Ddnao>`(5watCPf$ zyNAWUmVg3Es6Zts_`0^;%|jOEhkAPh{zp+E6;z=rR<4$|AFXwN0RV11d-)%PCLyAz zabG#Fwe9EK0)X=Ggp*g!aO&zRRiZ*vBY#(1NrWl~|E2$d-f|?dL!n68+IZAF75+h5b}m8XcZ%%cYM}}ne+JFLtbyKbM5v~4leCy zae24v7O+g~e1DiF{l4`-ZW0!gLKLZ*U+5Lu!Sk^o_Z5E4Meg@_7P6crJiNL9pw)e1;Xm069{HJUZAPk55R%$-RIA z6-eL&AQ0xu!e<4=008gy@A0LT~suv4>S3ILP<0Bm`DLLvaF4FK%)Nj?Pt*r}7;7Xa9z9H|HZjR63e zC`Tj$K)V27Re@400>HumpsYY5E(E}?0f1SyGDiY{y#)Yvj#!WnKwtoXnL;eg03bL5 z07D)V%>y7z1E4U{zu>7~aD})?0RX_umCct+(lZpemCzb@^6=o|A>zVpu|i=NDG+7} zl4`aK{0#b-!z=TL9Wt0BGO&T{GJWpjryhdijfaIQ&2!o}p04JRKYg3k&Tf zVxhe-O!X z{f;To;xw^bEES6JSc$k$B2CA6xl)ltA<32E66t?3@gJ7`36pmX0IY^jz)rRYwaaY4 ze(nJRiw;=Qb^t(r^DT@T3y}a2XEZW-_W%Hszxj_qD**t_m!#tW0KDiJT&R>6OvVTR z07RgHDzHHZ48atvzz&?j9lXF70$~P3Knx_nJP<+#`N z#-MZ2bTkiLfR>_b(HgWKJ%F~Nr_oF3b#wrIijHG|(J>BYjM-sajE6;FiC7vY#};Gd zST$CUHDeuEH+B^pz@B062qXfFfD`NpUW5?BY=V%GM_5c)L#QR}BeW8_2v-S%gfYS= zB9o|3v?Y2H`NVi)In3rTB8+ej^> zQ=~r95NVuDChL%G$=>7$vVg20myx%S50Foi`^m%Pw-h?Xh~i8Mq9jtJloCocWk2Nv zrJpiFnV_ms&8eQ$2&#xWpIS+6pmtC%Q-`S&GF4Q#^mhymh7E(qNMa}%YZ-ePrx>>xFPTiH1=E+A$W$=bG8>s^ zm=Bn5Rah$aDtr}@$`X}2l~$F0mFKEdRdZE8)p@E5RI61Ft6o-prbbn>P~)iy)E2AN zsU20jsWz_8Qg>31P|s0cqrPALg8E|(vWA65poU1JRAaZs8I2(p#xiB`SVGovRs-uS zYnV-9TeA7=Om+qP8+I>yOjAR1s%ETak!GFdam@h^# z)@rS0t$wXH+Irf)+G6c;?H29p+V6F6oj{!|o%K3xI`?%6x;DB|x`n#ibhIR?(H}Q3Gzd138Ei2)WAMz7W9Vy`X}HnwgyEn!VS)>mv$8&{hQn>w4zwy3R}t;BYlZQm5)6pty=DfLrs+A-|>>;~;Q z_F?uV_HFjh9n2gO9o9Q^JA86v({H5aB!kjoO6 zc9$1ZZKsN-Zl8L~mE{`ly3)1N^`o1+o7}D0ZPeY&J;i;i`%NyJ8_8Y6J?}yE@b_5a zam?eLr<8@mESk|3$_SkmS{wQ>%qC18))9_|&j{ZT zes8AvOzF(F2#DZEY>2oYX&IRp`F#{ADl)1r>QS^)ba8a|EY_^#S^HO&t^Rgqwv=MZThqqEWH8 zxJo>d=ABlR_Bh=;eM9Tw|Ih34~oTE|= zX_mAr*D$vzw@+p(E0Yc6dFE}(8oqt`+R{gE3x4zjX+Sb3_cYE^= zgB=w+-tUy`ytONMS8KgRef4hA?t0j zufM;t32jm~jUGrkaOInTZ`zyfns>EuS}G30LFK_G-==(f<51|K&cocp&EJ`SxAh3? zNO>#LI=^+SEu(FqJ)ynt=!~PC9bO$rzPJB=?=j6w@a-(u02P7 zaQ)#(uUl{HW%tYNS3ItC^iAtK(eKlL`f9+{bJzISE?u8_z3;~C8@FyI-5j_jy7l;W z_U#vU3hqqYU3!mrul&B+{ptt$59)uk{;_4iZQ%G|z+lhASr6|H35TBkl>gI*;nGLU zN7W-nBaM%pA0HbH8olyl&XeJ%vZoWz%6?Y=dFykl=imL}`%BMQ{Mhgd`HRoLu6e2R za__6DuR6yg#~-}Tc|Gx_{H@O0eebyMy5GmWADJlpK>kqk(fVV@r_fLLKIeS?{4e)} z^ZO;zpECde00d`2O+f$vv5tKEQIh}w03c&XQcVB=dL;k=fP(-4`Tqa_faw4Lbua(` z>RI+y?e7jKeZ#YO-C0hdWcK~#9!l#|bD6Hye0za!!%8)>zzu~FO#icrW4Snx4i z`w#|qN}s}4aN}YY<_`ohG$NK_Xc=r8LxZ9aCK)i9dw(u69W#uJ@hmRq+{Jgkdk)tm z0nl!@1+ceQr{C}Kul(@vgR9r;&nuP6O8`l$LlUi4OUZJnMx*g!FgTHONtP$c>b}?O zDF_00J{~$N>2&bkUkk(VHNe$NK&pe%+5iD&h9u04{r$&GE+#A% z3rKJk4IbXT ziKSigCaHxP#wvds9u)zfhd)Xi6lRbl2@h(UX{R-dY!>->y!q0nu*Rd&&(a2$Umyca zr&FHnZeZ!|GZXCZ``0Xv-%s;^D2h1#_N%l(6h(PJ9LLow*O}!1EfZHGBScRyEs}wME?IHPA4N1m};Lej{$B#U`FscSisEt-fwUi0Mz`y@HfPz{j3n5A@cwx~l4cn>t7_$9=)UU3EnK_;we;l9sJbOUUmF8IT+ zKX4(K>9`)~cL5e01{_8+;20#J82$kh(JyEMVgn{1CPwTASS>^~VBys%3=Oish)T*0 zkJ%XFwR2DnAP9gN?f*a2%+@h^5d+wLX_ftCW#?J#g^U2?&(Q}EsG1G{0000KLZ*U+5Lu!Sk^o_Z5E4Meg@_7P6crJiNL9pw)e1;Xm069{HJUZAPk55R%$-RIA z6-eL&AQ0xu!e<4=008gy@A0LT~suv4>S3ILP<0Bm`DLLvaF4FK%)Nj?Pt*r}7;7Xa9z9H|HZjR63e zC`Tj$K)V27Re@400>HumpsYY5E(E}?0f1SyGDiY{y#)Yvj#!WnKwtoXnL;eg03bL5 z07D)V%>y7z1E4U{zu>7~aD})?0RX_umCct+(lZpemCzb@^6=o|A>zVpu|i=NDG+7} zl4`aK{0#b-!z=TL9Wt0BGO&T{GJWpjryhdijfaIQ&2!o}p04JRKYg3k&Tf zVxhe-O!X z{f;To;xw^bEES6JSc$k$B2CA6xl)ltA<32E66t?3@gJ7`36pmX0IY^jz)rRYwaaY4 ze(nJRiw;=Qb^t(r^DT@T3y}a2XEZW-_W%Hszxj_qD**t_m!#tW0KDiJT&R>6OvVTR z07RgHDzHHZ48atvzz&?j9lXF70$~P3Knx_nJP<+#`N z#-MZ2bTkiLfR>_b(HgWKJ%F~Nr_oF3b#wrIijHG|(J>BYjM-sajE6;FiC7vY#};Gd zST$CUHDeuEH+B^pz@B062qXfFfD`NpUW5?BY=V%GM_5c)L#QR}BeW8_2v-S%gfYS= zB9o|3v?Y2H`NVi)In3rTB8+ej^> zQ=~r95NVuDChL%G$=>7$vVg20myx%S50Foi`^m%Pw-h?Xh~i8Mq9jtJloCocWk2Nv zrJpiFnV_ms&8eQ$2&#xWpIS+6pmtC%Q-`S&GF4Q#^mhymh7E(qNMa}%YZ-ePrx>>xFPTiH1=E+A$W$=bG8>s^ zm=Bn5Rah$aDtr}@$`X}2l~$F0mFKEdRdZE8)p@E5RI61Ft6o-prbbn>P~)iy)E2AN zsU20jsWz_8Qg>31P|s0cqrPALg8E|(vWA65poU1JRAaZs8I2(p#xiB`SVGovRs-uS zYnV-9TeA7=Om+qP8+I>yOjAR1s%ETak!GFdam@h^# z)@rS0t$wXH+Irf)+G6c;?H29p+V6F6oj{!|o%K3xI`?%6x;DB|x`n#ibhIR?(H}Q3Gzd138Ei2)WAMz7W9Vy`X}HnwgyEn!VS)>mv$8&{hQn>w4zwy3R}t;BYlZQm5)6pty=DfLrs+A-|>>;~;Q z_F?uV_HFjh9n2gO9o9Q^JA86v({H5aB!kjoO6 zc9$1ZZKsN-Zl8L~mE{`ly3)1N^`o1+o7}D0ZPeY&J;i;i`%NyJ8_8Y6J?}yE@b_5a zam?eLr<8@mESk|3$_SkmS{wQ>%qC18))9_|&j{ZT zes8AvOzF(F2#DZEY>2oYX&IRp`F#{ADl)1r>QS^)ba8a|EY_^#S^HO&t^Rgqwv=MZThqqEWH8 zxJo>d=ABlR_Bh=;eM9Tw|Ih34~oTE|= zX_mAr*D$vzw@+p(E0Yc6dFE}(8oqt`+R{gE3x4zjX+Sb3_cYE^= zgB=w+-tUy`ytONMS8KgRef4hA?t0j zufM;t32jm~jUGrkaOInTZ`zyfns>EuS}G30LFK_G-==(f<51|K&cocp&EJ`SxAh3? zNO>#LI=^+SEu(FqJ)ynt=!~PC9bO$rzPJB=?=j6w@a-(u02P7 zaQ)#(uUl{HW%tYNS3ItC^iAtK(eKlL`f9+{bJzISE?u8_z3;~C8@FyI-5j_jy7l;W z_U#vU3hqqYU3!mrul&B+{ptt$59)uk{;_4iZQ%G|z+lhASr6|H35TBkl>gI*;nGLU zN7W-nBaM%pA0HbH8olyl&XeJ%vZoWz%6?Y=dFykl=imL}`%BMQ{Mhgd`HRoLu6e2R za__6DuR6yg#~-}Tc|Gx_{H@O0eebyMy5GmWADJlpK>kqk(fVV@r_fLLKIeS?{4e)} z^ZO;zpECde00d`2O+f$vv5tKEQIh}w03c&XQcVB=dL;k=fP(-4`Tqa_faw4Lbua(` z>RI+y?e7jKeZ#YO-C0Z~arK~#9!l#(${!$1&4-&lwy7l0<*B2_wa4{8oU4NAok zI7g}^WqJf6asxu7wVb$!clT4Q?byV!#1yMtY4*+kf7c`duv)F+W}qbb$z<{{8jT*S zb6g~`TrTCxQqGm~-pPBX5WGV0a;{VeUYpHEi^al!et+H9fTTr72r6hZ0Z5YAR+c5x z=`?wNeS1#R^bR-yLI{HpfWzUydc7uuaG9p*3&2HN0TOk)0RqenNthY4*)6-D9mnI5 zkL{LT1ym{|;=ZLs5?9w(jBmz-5a=jq0G%={n!>Os>rXWR?|qz#qWs!JZN|V9ab|}1 zepo>p(q>uAxZgtb-?aBy!3?BxfOGCFgD$F@hjWgzXO!ysr>lK>u+#r&09lsB#vVwY zl`PA;fIQD*1_Qyht>t;%1r$Y5SuoVxXg^`sR8bUNz<$5yX+Gz_^*aEFT^eJ#D4x9l O0000KLZ*U+5Lu!Sk^o_Z5E4Meg@_7P6crJiNL9pw)e1;Xm069{HJUZAPk55R%$-RIA z6-eL&AQ0xu!e<4=008gy@A0LT~suv4>S3ILP<0Bm`DLLvaF4FK%)Nj?Pt*r}7;7Xa9z9H|HZjR63e zC`Tj$K)V27Re@400>HumpsYY5E(E}?0f1SyGDiY{y#)Yvj#!WnKwtoXnL;eg03bL5 z07D)V%>y7z1E4U{zu>7~aD})?0RX_umCct+(lZpemCzb@^6=o|A>zVpu|i=NDG+7} zl4`aK{0#b-!z=TL9Wt0BGO&T{GJWpjryhdijfaIQ&2!o}p04JRKYg3k&Tf zVxhe-O!X z{f;To;xw^bEES6JSc$k$B2CA6xl)ltA<32E66t?3@gJ7`36pmX0IY^jz)rRYwaaY4 ze(nJRiw;=Qb^t(r^DT@T3y}a2XEZW-_W%Hszxj_qD**t_m!#tW0KDiJT&R>6OvVTR z07RgHDzHHZ48atvzz&?j9lXF70$~P3Knx_nJP<+#`N z#-MZ2bTkiLfR>_b(HgWKJ%F~Nr_oF3b#wrIijHG|(J>BYjM-sajE6;FiC7vY#};Gd zST$CUHDeuEH+B^pz@B062qXfFfD`NpUW5?BY=V%GM_5c)L#QR}BeW8_2v-S%gfYS= zB9o|3v?Y2H`NVi)In3rTB8+ej^> zQ=~r95NVuDChL%G$=>7$vVg20myx%S50Foi`^m%Pw-h?Xh~i8Mq9jtJloCocWk2Nv zrJpiFnV_ms&8eQ$2&#xWpIS+6pmtC%Q-`S&GF4Q#^mhymh7E(qNMa}%YZ-ePrx>>xFPTiH1=E+A$W$=bG8>s^ zm=Bn5Rah$aDtr}@$`X}2l~$F0mFKEdRdZE8)p@E5RI61Ft6o-prbbn>P~)iy)E2AN zsU20jsWz_8Qg>31P|s0cqrPALg8E|(vWA65poU1JRAaZs8I2(p#xiB`SVGovRs-uS zYnV-9TeA7=Om+qP8+I>yOjAR1s%ETak!GFdam@h^# z)@rS0t$wXH+Irf)+G6c;?H29p+V6F6oj{!|o%K3xI`?%6x;DB|x`n#ibhIR?(H}Q3Gzd138Ei2)WAMz7W9Vy`X}HnwgyEn!VS)>mv$8&{hQn>w4zwy3R}t;BYlZQm5)6pty=DfLrs+A-|>>;~;Q z_F?uV_HFjh9n2gO9o9Q^JA86v({H5aB!kjoO6 zc9$1ZZKsN-Zl8L~mE{`ly3)1N^`o1+o7}D0ZPeY&J;i;i`%NyJ8_8Y6J?}yE@b_5a zam?eLr<8@mESk|3$_SkmS{wQ>%qC18))9_|&j{ZT zes8AvOzF(F2#DZEY>2oYX&IRp`F#{ADl)1r>QS^)ba8a|EY_^#S^HO&t^Rgqwv=MZThqqEWH8 zxJo>d=ABlR_Bh=;eM9Tw|Ih34~oTE|= zX_mAr*D$vzw@+p(E0Yc6dFE}(8oqt`+R{gE3x4zjX+Sb3_cYE^= zgB=w+-tUy`ytONMS8KgRef4hA?t0j zufM;t32jm~jUGrkaOInTZ`zyfns>EuS}G30LFK_G-==(f<51|K&cocp&EJ`SxAh3? zNO>#LI=^+SEu(FqJ)ynt=!~PC9bO$rzPJB=?=j6w@a-(u02P7 zaQ)#(uUl{HW%tYNS3ItC^iAtK(eKlL`f9+{bJzISE?u8_z3;~C8@FyI-5j_jy7l;W z_U#vU3hqqYU3!mrul&B+{ptt$59)uk{;_4iZQ%G|z+lhASr6|H35TBkl>gI*;nGLU zN7W-nBaM%pA0HbH8olyl&XeJ%vZoWz%6?Y=dFykl=imL}`%BMQ{Mhgd`HRoLu6e2R za__6DuR6yg#~-}Tc|Gx_{H@O0eebyMy5GmWADJlpK>kqk(fVV@r_fLLKIeS?{4e)} z^ZO;zpECde00d`2O+f$vv5tKEQIh}w03c&XQcVB=dL;k=fP(-4`Tqa_faw4Lbua(` z>RI+y?e7jKeZ#YO-C0uV_=K~#9!bdx)ePEizwpTi`~Orn@XloU#xN+ODhOB867 zeuXGh3e(Ui{Q^3LLL?NLQA$KaLo$^F88gJ?J7=%kt2pPI840`Ddnao>`(5watCPf$ zyNAWUmVg3Es6Zts_`0^;%|jOEhkAPh{zp+E6;z=rR<4$|AFXwN0RV11d-)%PCLyAz zabG#Fwe9EK0)X=Ggp*g!aO&zRRiZ*vBY#(1NrWl~|E2$d-f|?dL!n68+IZAF75+h5b}m8XcZ%%cYM}}ne+JFLtbyKbM5v~4leCy zae24v7O+g~e1DiF{l4`-ZW0!gLKLZ*U+5Lu!Sk^o_Z5E4Meg@_7P6crJiNL9pw)e1;Xm069{HJUZAPk55R%$-RIA z6-eL&AQ0xu!e<4=008gy@A0LT~suv4>S3ILP<0Bm`DLLvaF4FK%)Nj?Pt*r}7;7Xa9z9H|HZjR63e zC`Tj$K)V27Re@400>HumpsYY5E(E}?0f1SyGDiY{y#)Yvj#!WnKwtoXnL;eg03bL5 z07D)V%>y7z1E4U{zu>7~aD})?0RX_umCct+(lZpemCzb@^6=o|A>zVpu|i=NDG+7} zl4`aK{0#b-!z=TL9Wt0BGO&T{GJWpjryhdijfaIQ&2!o}p04JRKYg3k&Tf zVxhe-O!X z{f;To;xw^bEES6JSc$k$B2CA6xl)ltA<32E66t?3@gJ7`36pmX0IY^jz)rRYwaaY4 ze(nJRiw;=Qb^t(r^DT@T3y}a2XEZW-_W%Hszxj_qD**t_m!#tW0KDiJT&R>6OvVTR z07RgHDzHHZ48atvzz&?j9lXF70$~P3Knx_nJP<+#`N z#-MZ2bTkiLfR>_b(HgWKJ%F~Nr_oF3b#wrIijHG|(J>BYjM-sajE6;FiC7vY#};Gd zST$CUHDeuEH+B^pz@B062qXfFfD`NpUW5?BY=V%GM_5c)L#QR}BeW8_2v-S%gfYS= zB9o|3v?Y2H`NVi)In3rTB8+ej^> zQ=~r95NVuDChL%G$=>7$vVg20myx%S50Foi`^m%Pw-h?Xh~i8Mq9jtJloCocWk2Nv zrJpiFnV_ms&8eQ$2&#xWpIS+6pmtC%Q-`S&GF4Q#^mhymh7E(qNMa}%YZ-ePrx>>xFPTiH1=E+A$W$=bG8>s^ zm=Bn5Rah$aDtr}@$`X}2l~$F0mFKEdRdZE8)p@E5RI61Ft6o-prbbn>P~)iy)E2AN zsU20jsWz_8Qg>31P|s0cqrPALg8E|(vWA65poU1JRAaZs8I2(p#xiB`SVGovRs-uS zYnV-9TeA7=Om+qP8+I>yOjAR1s%ETak!GFdam@h^# z)@rS0t$wXH+Irf)+G6c;?H29p+V6F6oj{!|o%K3xI`?%6x;DB|x`n#ibhIR?(H}Q3Gzd138Ei2)WAMz7W9Vy`X}HnwgyEn!VS)>mv$8&{hQn>w4zwy3R}t;BYlZQm5)6pty=DfLrs+A-|>>;~;Q z_F?uV_HFjh9n2gO9o9Q^JA86v({H5aB!kjoO6 zc9$1ZZKsN-Zl8L~mE{`ly3)1N^`o1+o7}D0ZPeY&J;i;i`%NyJ8_8Y6J?}yE@b_5a zam?eLr<8@mESk|3$_SkmS{wQ>%qC18))9_|&j{ZT zes8AvOzF(F2#DZEY>2oYX&IRp`F#{ADl)1r>QS^)ba8a|EY_^#S^HO&t^Rgqwv=MZThqqEWH8 zxJo>d=ABlR_Bh=;eM9Tw|Ih34~oTE|= zX_mAr*D$vzw@+p(E0Yc6dFE}(8oqt`+R{gE3x4zjX+Sb3_cYE^= zgB=w+-tUy`ytONMS8KgRef4hA?t0j zufM;t32jm~jUGrkaOInTZ`zyfns>EuS}G30LFK_G-==(f<51|K&cocp&EJ`SxAh3? zNO>#LI=^+SEu(FqJ)ynt=!~PC9bO$rzPJB=?=j6w@a-(u02P7 zaQ)#(uUl{HW%tYNS3ItC^iAtK(eKlL`f9+{bJzISE?u8_z3;~C8@FyI-5j_jy7l;W z_U#vU3hqqYU3!mrul&B+{ptt$59)uk{;_4iZQ%G|z+lhASr6|H35TBkl>gI*;nGLU zN7W-nBaM%pA0HbH8olyl&XeJ%vZoWz%6?Y=dFykl=imL}`%BMQ{Mhgd`HRoLu6e2R za__6DuR6yg#~-}Tc|Gx_{H@O0eebyMy5GmWADJlpK>kqk(fVV@r_fLLKIeS?{4e)} z^ZO;zpECde00d`2O+f$vv5tKEQIh}w03c&XQcVB=dL;k=fP(-4`Tqa_faw4Lbua(` z>RI+y?e7jKeZ#YO-C0`N&hK~#9!bdy_Xlt&cDe>3}a7dI;;Q89KmG3J5>#9Ofs z4O(ffH!xz=Hg%zjD3~DFn?log2}NRW&^~y75)@yIB$(Q|iAIVIw5h2gL6X>-O0|{j z>L#0YL-w0FefV04hW=qV42SbO%sKN{j8j`%n*fLi|0fYKm6etILZMLOgk&rh6E~X` z*BujMTrtKKYmHcI#C6BSS|d$OP14%hYVO@1r~z=EqhrM~lpH|?G?R3Sz>`aiJ-EW- z_#jhX`h-LxK{OiG9UUEC_xAQaRpS9o%`MWCa_AXySvjqXWm9f&qc1~8Zz1ywgRBUD zPi**O3JPWbptZ*LU-4@jcF(;%oUQF&x`pVRKB``5;cUC*SN}$i4%EUy~PTM^d^cd}+%1mEU9CeL~u z5g{B2Q&L)jF~$S*|2{38S6oyXo!-e?&IxwZwo$$73(g(?is4ubKXeKB=Wy}DwF!fF z02a>cFIijuCsqC{L~DQH`uZ+ni4dGMuwWU;5R_%;zHl1^1VJf<>$*65KA7&zu5b=+ z4j$vnlfzt3u7XP!VaNaq@O!PyC?+_H6^j-St+3YOe15pBh@|h)o$v0mzk59_UPMmN z&tT(flvbcL3WZV%rFM9$Rtl_m0Ax~${PAe!(e{}JJH^M;2_f0s+*UUU7XB6v6mkqTa|uA*$iJK)cSfxEo>@{2U? z+l`2L2QNCfnRv*kxQ}dJ^&5+rUGO8Po7d4^Q4iL_Q}||MG27o z>`#$-z9ThHMpxcC6D2gcfKv^hl9N|VAmB%9@BN5i0c|a4P-s%A6pnIkW`IM$p}M*n z*}L;Yl-8iU9eBnR?=JicQJ{r%I{mDfMn*>1-_Y=kxyDN=HQ^)uGXUNYQMb))v`GK} N002ovPDHLkV1h&twxIw3 literal 0 HcmV?d00001 diff --git a/index_icons/winvista/xls.png b/index_icons/winvista/xls.png new file mode 100644 index 0000000000000000000000000000000000000000..848fd115a9bebe22189ea05b574f5cde6353d63e GIT binary patch literal 3568 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 LNkvXXu0mjf7zj=X literal 0 HcmV?d00001 diff --git a/index_icons/winxp/binary.png b/index_icons/winxp/binary.png new file mode 100644 index 0000000000000000000000000000000000000000..689f4eb55c240311974946fdf63a4c4adede111a GIT binary patch literal 3152 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 literal 0 HcmV?d00001 diff --git a/index_icons/winxp/cd.png b/index_icons/winxp/cd.png new file mode 100644 index 0000000000000000000000000000000000000000..85aa3c19cecdda248c8bcc4a4fdd543c68240708 GIT binary patch literal 3522 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 X9`tpq%6qi)00000NkvXXu0mjfu+8Vy literal 0 HcmV?d00001 diff --git a/index_icons/winxp/compressed.png b/index_icons/winxp/compressed.png new file mode 100644 index 0000000000000000000000000000000000000000..131c5dfe95b709a6e805668442b101a128ee20ce GIT binary patch literal 632 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 literal 0 HcmV?d00001 diff --git a/index_icons/winxp/dll.png b/index_icons/winxp/dll.png new file mode 100644 index 0000000000000000000000000000000000000000..2977612b1778f178337a95b5218061f9575ff1bf GIT binary patch literal 3405 zcmV-T4YKlyP)KLZ*U+5Lu!Sk^o_Z5E4Meg@_7P6crJiNL9pw)e1;Xm069{HJUZAPk55R%$-RIA z6-eL&AQ0xu!e<4=008gy@A0LT~suv4>S3ILP<0Bm`DLLvaF4FK%)Nj?Pt*r}7;7Xa9z9H|HZjR63e zC`Tj$K)V27Re@400>HumpsYY5E(E}?0f1SyGDiY{y#)Yvj#!WnKwtoXnL;eg03bL5 z07D)V%>y7z1E4U{zu>7~aD})?0RX_umCct+(lZpemCzb@^6=o|A>zVpu|i=NDG+7} zl4`aK{0#b-!z=TL9Wt0BGO&T{GJWpjryhdijfaIQ&2!o}p04JRKYg3k&Tf zVxhe-O!X z{f;To;xw^bEES6JSc$k$B2CA6xl)ltA<32E66t?3@gJ7`36pmX0IY^jz)rRYwaaY4 ze(nJRiw;=Qb^t(r^DT@T3y}a2XEZW-_W%Hszxj_qD**t_m!#tW0KDiJT&R>6OvVTR z07RgHDzHHZ48atvzz&?j9lXF70$~P3Knx_nJP<+#`N z#-MZ2bTkiLfR>_b(HgWKJ%F~Nr_oF3b#wrIijHG|(J>BYjM-sajE6;FiC7vY#};Gd zST$CUHDeuEH+B^pz@B062qXfFfD`NpUW5?BY=V%GM_5c)L#QR}BeW8_2v-S%gfYS= zB9o|3v?Y2H`NVi)In3rTB8+ej^> zQ=~r95NVuDChL%G$=>7$vVg20myx%S50Foi`^m%Pw-h?Xh~i8Mq9jtJloCocWk2Nv zrJpiFnV_ms&8eQ$2&#xWpIS+6pmtC%Q-`S&GF4Q#^mhymh7E(qNMa}%YZ-ePrx>>xFPTiH1=E+A$W$=bG8>s^ zm=Bn5Rah$aDtr}@$`X}2l~$F0mFKEdRdZE8)p@E5RI61Ft6o-prbbn>P~)iy)E2AN zsU20jsWz_8Qg>31P|s0cqrPALg8E|(vWA65poU1JRAaZs8I2(p#xiB`SVGovRs-uS zYnV-9TeA7=Om+qP8+I>yOjAR1s%ETak!GFdam@h^# z)@rS0t$wXH+Irf)+G6c;?H29p+V6F6oj{!|o%K3xI`?%6x;DB|x`n#ibhIR?(H}Q3Gzd138Ei2)WAMz7W9Vy`X}HnwgyEn!VS)>mv$8&{hQn>w4zwy3R}t;BYlZQm5)6pty=DfLrs+A-|>>;~;Q z_F?uV_HFjh9n2gO9o9Q^JA86v({H5aB!kjoO6 zc9$1ZZKsN-Zl8L~mE{`ly3)1N^`o1+o7}D0ZPeY&J;i;i`%NyJ8_8Y6J?}yE@b_5a zam?eLr<8@mESk|3$_SkmS{wQ>%qC18))9_|&j{ZT zes8AvOzF(F2#DZEY>2oYX&IRp`F#{ADl)1r>QS^)ba8a|EY_^#S^HO&t^Rgqwv=MZThqqEWH8 zxJo>d=ABlR_Bh=;eM9Tw|Ih34~oTE|= zX_mAr*D$vzw@+p(E0Yc6dFE}(8oqt`+R{gE3x4zjX+Sb3_cYE^= zgB=w+-tUy`ytONMS8KgRef4hA?t0j zufM;t32jm~jUGrkaOInTZ`zyfns>EuS}G30LFK_G-==(f<51|K&cocp&EJ`SxAh3? zNO>#LI=^+SEu(FqJ)ynt=!~PC9bO$rzPJB=?=j6w@a-(u02P7 zaQ)#(uUl{HW%tYNS3ItC^iAtK(eKlL`f9+{bJzISE?u8_z3;~C8@FyI-5j_jy7l;W z_U#vU3hqqYU3!mrul&B+{ptt$59)uk{;_4iZQ%G|z+lhASr6|H35TBkl>gI*;nGLU zN7W-nBaM%pA0HbH8olyl&XeJ%vZoWz%6?Y=dFykl=imL}`%BMQ{Mhgd`HRoLu6e2R za__6DuR6yg#~-}Tc|Gx_{H@O0eebyMy5GmWADJlpK>kqk(fVV@r_fLLKIeS?{4e)} z^ZO;zpECde00d`2O+f$vv5tKEQIh}w03c&XQcVB=dL;k=fP(-4`Tqa_faw4Lbua(` z>RI+y?e7jKeZ#YO-C0%}P_K~#9!e3Q#dRZ$d&zkTjGX5KWT)TGqJq=?=b_MpNZ z6h(!T8UzlUR769mL4SZvg9c5a%#j&IK|~alI0($bq8fR7U-QY;>%AV&K6~v3*B&M`R?Tg_3`ZCB zY&mqcb96A?BCh))aGdWBbCecHYefsVoRKkqm9Sg?_K-mP6qKT0}&x%2WTET&CZ&2JnnDd zT=ywjKXg*O912Te?Y2CQ)gP&t^!@4yohq6JxH57c*Kv3+U3^OYU~piRrZ;tbNeF=f zZ6M-WMC(O?@8@L!j1j_~O^CJJ_pY=2;C#wTOW69Up5#P`HV_yv7Q~7N63GH+BQ$Pm z|=G^Ujrx0 zz+{373@olWMt^DvkJ`J)cSq@q1;l?u@pd#JVrMo8L&5wGO2F*7#>dJC>08x2-Pc9A zJHp1Ie8Q3B%ozkmP*bA{4CEG;u(tpPE)7wy6kcTI6nqW?rXB|-^Od!M=)A}us1_gt zu%K*~!K=4Pj7}h8uwrpcfEa@ngEfK}gRfIy98e^cL95^Eys)gM)(Ukfy9TQk0BV*U jvnV@`RUeeYvtI)Mc+pYwROwKLZ*U+5Lu!Sk^o_Z5E4Meg@_7P6crJiNL9pw)e1;Xm069{HJUZAPk55R%$-RIA z6-eL&AQ0xu!e<4=008gy@A0LT~suv4>S3ILP<0Bm`DLLvaF4FK%)Nj?Pt*r}7;7Xa9z9H|HZjR63e zC`Tj$K)V27Re@400>HumpsYY5E(E}?0f1SyGDiY{y#)Yvj#!WnKwtoXnL;eg03bL5 z07D)V%>y7z1E4U{zu>7~aD})?0RX_umCct+(lZpemCzb@^6=o|A>zVpu|i=NDG+7} zl4`aK{0#b-!z=TL9Wt0BGO&T{GJWpjryhdijfaIQ&2!o}p04JRKYg3k&Tf zVxhe-O!X z{f;To;xw^bEES6JSc$k$B2CA6xl)ltA<32E66t?3@gJ7`36pmX0IY^jz)rRYwaaY4 ze(nJRiw;=Qb^t(r^DT@T3y}a2XEZW-_W%Hszxj_qD**t_m!#tW0KDiJT&R>6OvVTR z07RgHDzHHZ48atvzz&?j9lXF70$~P3Knx_nJP<+#`N z#-MZ2bTkiLfR>_b(HgWKJ%F~Nr_oF3b#wrIijHG|(J>BYjM-sajE6;FiC7vY#};Gd zST$CUHDeuEH+B^pz@B062qXfFfD`NpUW5?BY=V%GM_5c)L#QR}BeW8_2v-S%gfYS= zB9o|3v?Y2H`NVi)In3rTB8+ej^> zQ=~r95NVuDChL%G$=>7$vVg20myx%S50Foi`^m%Pw-h?Xh~i8Mq9jtJloCocWk2Nv zrJpiFnV_ms&8eQ$2&#xWpIS+6pmtC%Q-`S&GF4Q#^mhymh7E(qNMa}%YZ-ePrx>>xFPTiH1=E+A$W$=bG8>s^ zm=Bn5Rah$aDtr}@$`X}2l~$F0mFKEdRdZE8)p@E5RI61Ft6o-prbbn>P~)iy)E2AN zsU20jsWz_8Qg>31P|s0cqrPALg8E|(vWA65poU1JRAaZs8I2(p#xiB`SVGovRs-uS zYnV-9TeA7=Om+qP8+I>yOjAR1s%ETak!GFdam@h^# z)@rS0t$wXH+Irf)+G6c;?H29p+V6F6oj{!|o%K3xI`?%6x;DB|x`n#ibhIR?(H}Q3Gzd138Ei2)WAMz7W9Vy`X}HnwgyEn!VS)>mv$8&{hQn>w4zwy3R}t;BYlZQm5)6pty=DfLrs+A-|>>;~;Q z_F?uV_HFjh9n2gO9o9Q^JA86v({H5aB!kjoO6 zc9$1ZZKsN-Zl8L~mE{`ly3)1N^`o1+o7}D0ZPeY&J;i;i`%NyJ8_8Y6J?}yE@b_5a zam?eLr<8@mESk|3$_SkmS{wQ>%qC18))9_|&j{ZT zes8AvOzF(F2#DZEY>2oYX&IRp`F#{ADl)1r>QS^)ba8a|EY_^#S^HO&t^Rgqwv=MZThqqEWH8 zxJo>d=ABlR_Bh=;eM9Tw|Ih34~oTE|= zX_mAr*D$vzw@+p(E0Yc6dFE}(8oqt`+R{gE3x4zjX+Sb3_cYE^= zgB=w+-tUy`ytONMS8KgRef4hA?t0j zufM;t32jm~jUGrkaOInTZ`zyfns>EuS}G30LFK_G-==(f<51|K&cocp&EJ`SxAh3? zNO>#LI=^+SEu(FqJ)ynt=!~PC9bO$rzPJB=?=j6w@a-(u02P7 zaQ)#(uUl{HW%tYNS3ItC^iAtK(eKlL`f9+{bJzISE?u8_z3;~C8@FyI-5j_jy7l;W z_U#vU3hqqYU3!mrul&B+{ptt$59)uk{;_4iZQ%G|z+lhASr6|H35TBkl>gI*;nGLU zN7W-nBaM%pA0HbH8olyl&XeJ%vZoWz%6?Y=dFykl=imL}`%BMQ{Mhgd`HRoLu6e2R za__6DuR6yg#~-}Tc|Gx_{H@O0eebyMy5GmWADJlpK>kqk(fVV@r_fLLKIeS?{4e)} z^ZO;zpECde00d`2O+f$vv5tKEQIh}w03c&XQcVB=dL;k=fP(-4`Tqa_faw4Lbua(` z>RI+y?e7jKeZ#YO-C0&Yn}K~#9!l#)+K)KL(}KW}$2tV1CsqzF-&5kw-CS`l<}arl(+s+m!cpDf(RmlC?lbwLxSDJ4q;T98I^z9R=2gy)!*;;-b{zL z$wprK!tjRoX1?=%Gh-;i}x+Uk;I}AW` zeKpoWKLZ*U+5Lu!Sk^o_Z5E4Meg@_7P6crJiNL9pw)e1;Xm069{HJUZAPk55R%$-RIA z6-eL&AQ0xu!e<4=008gy@A0LT~suv4>S3ILP<0Bm`DLLvaF4FK%)Nj?Pt*r}7;7Xa9z9H|HZjR63e zC`Tj$K)V27Re@400>HumpsYY5E(E}?0f1SyGDiY{y#)Yvj#!WnKwtoXnL;eg03bL5 z07D)V%>y7z1E4U{zu>7~aD})?0RX_umCct+(lZpemCzb@^6=o|A>zVpu|i=NDG+7} zl4`aK{0#b-!z=TL9Wt0BGO&T{GJWpjryhdijfaIQ&2!o}p04JRKYg3k&Tf zVxhe-O!X z{f;To;xw^bEES6JSc$k$B2CA6xl)ltA<32E66t?3@gJ7`36pmX0IY^jz)rRYwaaY4 ze(nJRiw;=Qb^t(r^DT@T3y}a2XEZW-_W%Hszxj_qD**t_m!#tW0KDiJT&R>6OvVTR z07RgHDzHHZ48atvzz&?j9lXF70$~P3Knx_nJP<+#`N z#-MZ2bTkiLfR>_b(HgWKJ%F~Nr_oF3b#wrIijHG|(J>BYjM-sajE6;FiC7vY#};Gd zST$CUHDeuEH+B^pz@B062qXfFfD`NpUW5?BY=V%GM_5c)L#QR}BeW8_2v-S%gfYS= zB9o|3v?Y2H`NVi)In3rTB8+ej^> zQ=~r95NVuDChL%G$=>7$vVg20myx%S50Foi`^m%Pw-h?Xh~i8Mq9jtJloCocWk2Nv zrJpiFnV_ms&8eQ$2&#xWpIS+6pmtC%Q-`S&GF4Q#^mhymh7E(qNMa}%YZ-ePrx>>xFPTiH1=E+A$W$=bG8>s^ zm=Bn5Rah$aDtr}@$`X}2l~$F0mFKEdRdZE8)p@E5RI61Ft6o-prbbn>P~)iy)E2AN zsU20jsWz_8Qg>31P|s0cqrPALg8E|(vWA65poU1JRAaZs8I2(p#xiB`SVGovRs-uS zYnV-9TeA7=Om+qP8+I>yOjAR1s%ETak!GFdam@h^# z)@rS0t$wXH+Irf)+G6c;?H29p+V6F6oj{!|o%K3xI`?%6x;DB|x`n#ibhIR?(H}Q3Gzd138Ei2)WAMz7W9Vy`X}HnwgyEn!VS)>mv$8&{hQn>w4zwy3R}t;BYlZQm5)6pty=DfLrs+A-|>>;~;Q z_F?uV_HFjh9n2gO9o9Q^JA86v({H5aB!kjoO6 zc9$1ZZKsN-Zl8L~mE{`ly3)1N^`o1+o7}D0ZPeY&J;i;i`%NyJ8_8Y6J?}yE@b_5a zam?eLr<8@mESk|3$_SkmS{wQ>%qC18))9_|&j{ZT zes8AvOzF(F2#DZEY>2oYX&IRp`F#{ADl)1r>QS^)ba8a|EY_^#S^HO&t^Rgqwv=MZThqqEWH8 zxJo>d=ABlR_Bh=;eM9Tw|Ih34~oTE|= zX_mAr*D$vzw@+p(E0Yc6dFE}(8oqt`+R{gE3x4zjX+Sb3_cYE^= zgB=w+-tUy`ytONMS8KgRef4hA?t0j zufM;t32jm~jUGrkaOInTZ`zyfns>EuS}G30LFK_G-==(f<51|K&cocp&EJ`SxAh3? zNO>#LI=^+SEu(FqJ)ynt=!~PC9bO$rzPJB=?=j6w@a-(u02P7 zaQ)#(uUl{HW%tYNS3ItC^iAtK(eKlL`f9+{bJzISE?u8_z3;~C8@FyI-5j_jy7l;W z_U#vU3hqqYU3!mrul&B+{ptt$59)uk{;_4iZQ%G|z+lhASr6|H35TBkl>gI*;nGLU zN7W-nBaM%pA0HbH8olyl&XeJ%vZoWz%6?Y=dFykl=imL}`%BMQ{Mhgd`HRoLu6e2R za__6DuR6yg#~-}Tc|Gx_{H@O0eebyMy5GmWADJlpK>kqk(fVV@r_fLLKIeS?{4e)} z^ZO;zpECde00d`2O+f$vv5tKEQIh}w03c&XQcVB=dL;k=fP(-4`Tqa_faw4Lbua(` z>RI+y?e7jKeZ#YO-C0kug)K~#9!e3L(q4Pg|tAQ;I^Rk_b^!AkpnA2!&{@wR7+Lp7SW?kD2T8CU54vdC#2lJI^y? zk^s2-XsZt9mK6oLsu(RVQ{X4>+&uoie_!?wn>W_U0(WqU9N+=r;=$98d|z36d-~$- zS3kaeeHdl=VpbHNi++I|kR5WUemb~|6!6Rs^JeFOjW2DU|5a5dVlS;PML8Z2v@d(m zb$8YAy;J)E*xsJl%PY68J$`ckQ#qY|84#opsU>K4Lo%KOtB0J8GyAxD{qoUiRUO+) zyORMya^Yckt3yXHq#BhXQd-MOD}w@cQa`yV7>0+)YIG5VVhI?{5g0i{1hpGsxT}dp zZVI{UZyWP;N@}`C)E4HTE*2V$5?b&b_-ux|a9M}hIT8FBOCtZ1z?-?%)1V)FEpUVu z6V$WLb@y72?kvQ@xXyoBi|vJY19{PzHjjieWY(*5}W0000< KMNUMnLSTZXMIh?{ literal 0 HcmV?d00001 diff --git a/index_icons/winxp/image.png b/index_icons/winxp/image.png new file mode 100644 index 0000000000000000000000000000000000000000..53540889db2ce91591851f5c7b9fffc564b11b58 GIT binary patch literal 3391 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 literal 0 HcmV?d00001 diff --git a/index_icons/winxp/js.png b/index_icons/winxp/js.png new file mode 100644 index 0000000000000000000000000000000000000000..5329793a4945c2474a666e799bcf421220be7702 GIT binary patch literal 3323 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 FV1j`YNCE%= literal 0 HcmV?d00001 diff --git a/index_icons/winxp/key.png b/index_icons/winxp/key.png new file mode 100644 index 0000000000000000000000000000000000000000..38a550580bdaccb9da30c2f401dcb8102b3e1ece GIT binary patch literal 3433 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 LNkvXXu0mjf$907M literal 0 HcmV?d00001 diff --git a/index_icons/winxp/login.png b/index_icons/winxp/login.png new file mode 100644 index 0000000000000000000000000000000000000000..d4e2670ad0c1950e1bd1edd256f2e93c0668519a GIT binary patch literal 3318 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 A+5i9m literal 0 HcmV?d00001 diff --git a/index_icons/winxp/mov.png b/index_icons/winxp/mov.png new file mode 100644 index 0000000000000000000000000000000000000000..199dfb79fffd98dd17edd35395db83847952baee GIT binary patch literal 3424 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 Z0|1)Gh(aIhA#nfz002ovPDHLkV1m(R=1Bkm literal 0 HcmV?d00001 diff --git a/index_icons/winxp/new.png b/index_icons/winxp/new.png new file mode 100644 index 0000000000000000000000000000000000000000..9db7a57acc23c433317eebf1935af529d8656d63 GIT binary patch literal 3179 zcmV-x43zVUP)KLZ*U+5Lu!Sk^o_Z5E4Meg@_7P6crJiNL9pw)e1;Xm069{HJUZAPk55R%$-RIA z6-eL&AQ0xu!e<4=008gy@A0LT~suv4>S3ILP<0Bm`DLLvaF4FK%)Nj?Pt*r}7;7Xa9z9H|HZjR63e zC`Tj$K)V27Re@400>HumpsYY5E(E}?0f1SyGDiY{y#)Yvj#!WnKwtoXnL;eg03bL5 z07D)V%>y7z1E4U{zu>7~aD})?0RX_umCct+(lZpemCzb@^6=o|A>zVpu|i=NDG+7} zl4`aK{0#b-!z=TL9Wt0BGO&T{GJWpjryhdijfaIQ&2!o}p04JRKYg3k&Tf zVxhe-O!X z{f;To;xw^bEES6JSc$k$B2CA6xl)ltA<32E66t?3@gJ7`36pmX0IY^jz)rRYwaaY4 ze(nJRiw;=Qb^t(r^DT@T3y}a2XEZW-_W%Hszxj_qD**t_m!#tW0KDiJT&R>6OvVTR z07RgHDzHHZ48atvzz&?j9lXF70$~P3Knx_nJP<+#`N z#-MZ2bTkiLfR>_b(HgWKJ%F~Nr_oF3b#wrIijHG|(J>BYjM-sajE6;FiC7vY#};Gd zST$CUHDeuEH+B^pz@B062qXfFfD`NpUW5?BY=V%GM_5c)L#QR}BeW8_2v-S%gfYS= zB9o|3v?Y2H`NVi)In3rTB8+ej^> zQ=~r95NVuDChL%G$=>7$vVg20myx%S50Foi`^m%Pw-h?Xh~i8Mq9jtJloCocWk2Nv zrJpiFnV_ms&8eQ$2&#xWpIS+6pmtC%Q-`S&GF4Q#^mhymh7E(qNMa}%YZ-ePrx>>xFPTiH1=E+A$W$=bG8>s^ zm=Bn5Rah$aDtr}@$`X}2l~$F0mFKEdRdZE8)p@E5RI61Ft6o-prbbn>P~)iy)E2AN zsU20jsWz_8Qg>31P|s0cqrPALg8E|(vWA65poU1JRAaZs8I2(p#xiB`SVGovRs-uS zYnV-9TeA7=Om+qP8+I>yOjAR1s%ETak!GFdam@h^# z)@rS0t$wXH+Irf)+G6c;?H29p+V6F6oj{!|o%K3xI`?%6x;DB|x`n#ibhIR?(H}Q3Gzd138Ei2)WAMz7W9Vy`X}HnwgyEn!VS)>mv$8&{hQn>w4zwy3R}t;BYlZQm5)6pty=DfLrs+A-|>>;~;Q z_F?uV_HFjh9n2gO9o9Q^JA86v({H5aB!kjoO6 zc9$1ZZKsN-Zl8L~mE{`ly3)1N^`o1+o7}D0ZPeY&J;i;i`%NyJ8_8Y6J?}yE@b_5a zam?eLr<8@mESk|3$_SkmS{wQ>%qC18))9_|&j{ZT zes8AvOzF(F2#DZEY>2oYX&IRp`F#{ADl)1r>QS^)ba8a|EY_^#S^HO&t^Rgqwv=MZThqqEWH8 zxJo>d=ABlR_Bh=;eM9Tw|Ih34~oTE|= zX_mAr*D$vzw@+p(E0Yc6dFE}(8oqt`+R{gE3x4zjX+Sb3_cYE^= zgB=w+-tUy`ytONMS8KgRef4hA?t0j zufM;t32jm~jUGrkaOInTZ`zyfns>EuS}G30LFK_G-==(f<51|K&cocp&EJ`SxAh3? zNO>#LI=^+SEu(FqJ)ynt=!~PC9bO$rzPJB=?=j6w@a-(u02P7 zaQ)#(uUl{HW%tYNS3ItC^iAtK(eKlL`f9+{bJzISE?u8_z3;~C8@FyI-5j_jy7l;W z_U#vU3hqqYU3!mrul&B+{ptt$59)uk{;_4iZQ%G|z+lhASr6|H35TBkl>gI*;nGLU zN7W-nBaM%pA0HbH8olyl&XeJ%vZoWz%6?Y=dFykl=imL}`%BMQ{Mhgd`HRoLu6e2R za__6DuR6yg#~-}Tc|Gx_{H@O0eebyMy5GmWADJlpK>kqk(fVV@r_fLLKIeS?{4e)} z^ZO;zpECde00d`2O+f$vv5tKEQIh}w03c&XQcVB=dL;k=fP(-4`Tqa_faw4Lbua(` z>RI+y?e7jKeZ#YO-C0f(hvyc(pL22xPs`=6Ho8t>7V%G)C->Z&4&jh z#Rq;>g``)8Vl!LOZ9~$>S+Bty6Jv23`pD`kp6Ekqmav)J0yOt8WeAZ>i)w0mT zQU|JKp_g?Ta!Ty-ieuMU2I_=ave1potP z!3FK}_h~MC^ggl&({4DpLN(Dxa`$L?PA$TVas9Q&av_I^Fi8X^>_5od-vBRf2tKLZ*U+5Lu!Sk^o_Z5E4Meg@_7P6crJiNL9pw)e1;Xm069{HJUZAPk55R%$-RIA z6-eL&AQ0xu!e<4=008gy@A0LT~suv4>S3ILP<0Bm`DLLvaF4FK%)Nj?Pt*r}7;7Xa9z9H|HZjR63e zC`Tj$K)V27Re@400>HumpsYY5E(E}?0f1SyGDiY{y#)Yvj#!WnKwtoXnL;eg03bL5 z07D)V%>y7z1E4U{zu>7~aD})?0RX_umCct+(lZpemCzb@^6=o|A>zVpu|i=NDG+7} zl4`aK{0#b-!z=TL9Wt0BGO&T{GJWpjryhdijfaIQ&2!o}p04JRKYg3k&Tf zVxhe-O!X z{f;To;xw^bEES6JSc$k$B2CA6xl)ltA<32E66t?3@gJ7`36pmX0IY^jz)rRYwaaY4 ze(nJRiw;=Qb^t(r^DT@T3y}a2XEZW-_W%Hszxj_qD**t_m!#tW0KDiJT&R>6OvVTR z07RgHDzHHZ48atvzz&?j9lXF70$~P3Knx_nJP<+#`N z#-MZ2bTkiLfR>_b(HgWKJ%F~Nr_oF3b#wrIijHG|(J>BYjM-sajE6;FiC7vY#};Gd zST$CUHDeuEH+B^pz@B062qXfFfD`NpUW5?BY=V%GM_5c)L#QR}BeW8_2v-S%gfYS= zB9o|3v?Y2H`NVi)In3rTB8+ej^> zQ=~r95NVuDChL%G$=>7$vVg20myx%S50Foi`^m%Pw-h?Xh~i8Mq9jtJloCocWk2Nv zrJpiFnV_ms&8eQ$2&#xWpIS+6pmtC%Q-`S&GF4Q#^mhymh7E(qNMa}%YZ-ePrx>>xFPTiH1=E+A$W$=bG8>s^ zm=Bn5Rah$aDtr}@$`X}2l~$F0mFKEdRdZE8)p@E5RI61Ft6o-prbbn>P~)iy)E2AN zsU20jsWz_8Qg>31P|s0cqrPALg8E|(vWA65poU1JRAaZs8I2(p#xiB`SVGovRs-uS zYnV-9TeA7=Om+qP8+I>yOjAR1s%ETak!GFdam@h^# z)@rS0t$wXH+Irf)+G6c;?H29p+V6F6oj{!|o%K3xI`?%6x;DB|x`n#ibhIR?(H}Q3Gzd138Ei2)WAMz7W9Vy`X}HnwgyEn!VS)>mv$8&{hQn>w4zwy3R}t;BYlZQm5)6pty=DfLrs+A-|>>;~;Q z_F?uV_HFjh9n2gO9o9Q^JA86v({H5aB!kjoO6 zc9$1ZZKsN-Zl8L~mE{`ly3)1N^`o1+o7}D0ZPeY&J;i;i`%NyJ8_8Y6J?}yE@b_5a zam?eLr<8@mESk|3$_SkmS{wQ>%qC18))9_|&j{ZT zes8AvOzF(F2#DZEY>2oYX&IRp`F#{ADl)1r>QS^)ba8a|EY_^#S^HO&t^Rgqwv=MZThqqEWH8 zxJo>d=ABlR_Bh=;eM9Tw|Ih34~oTE|= zX_mAr*D$vzw@+p(E0Yc6dFE}(8oqt`+R{gE3x4zjX+Sb3_cYE^= zgB=w+-tUy`ytONMS8KgRef4hA?t0j zufM;t32jm~jUGrkaOInTZ`zyfns>EuS}G30LFK_G-==(f<51|K&cocp&EJ`SxAh3? zNO>#LI=^+SEu(FqJ)ynt=!~PC9bO$rzPJB=?=j6w@a-(u02P7 zaQ)#(uUl{HW%tYNS3ItC^iAtK(eKlL`f9+{bJzISE?u8_z3;~C8@FyI-5j_jy7l;W z_U#vU3hqqYU3!mrul&B+{ptt$59)uk{;_4iZQ%G|z+lhASr6|H35TBkl>gI*;nGLU zN7W-nBaM%pA0HbH8olyl&XeJ%vZoWz%6?Y=dFykl=imL}`%BMQ{Mhgd`HRoLu6e2R za__6DuR6yg#~-}Tc|Gx_{H@O0eebyMy5GmWADJlpK>kqk(fVV@r_fLLKIeS?{4e)} z^ZO;zpECde00d`2O+f$vv5tKEQIh}w03c&XQcVB=dL;k=fP(-4`Tqa_faw4Lbua(` z>RI+y?e7jKeZ#YO-C0scuuK~#9!jFZ1hTTv9pKlj`lGsMZIfl3R3BH3LEg%0kq zi}(kG{tHs;rn3+i-3ks4Zc<#NU_%RasGEZUF;7q=&>&Aj?8|$(_jJ%cw2ic1INZxU z_xt^x`{NiM;zhk)pBoN`HiUqP5JJe4BH}kUH$MO!9>J?LO|{?eYp>VSIF7a3?ds*_ zr8b*QjiN|5Ha5Nj&vHf!Gy**XJpnxe{SNvC^b_bu&~4DItu4*6Ort2$Mx)Uz7K_gT zTn1Ds6|8e4g8|84z|XtrCked}xB@!o=KxGjPBJ??`#Me2#=^qFTXzN&I~_y>01bi6 zd$Qq>Bm@%R2T(4TSzTQPV0?U>a=H8lc;}9Q&o?(H5bna?8$DowdaXv9res;h#l;1O zhlc=9+zEHq9hxeYTsVPdO62O@I^BIgW`EdZu^)*Hn z=NzhvF$QA{l}ZJmAfp8CBh1Vo?RK8C)?%&2ITuC>+$9l_Tf+W6Zf)&>fweX_l2N}Y zce=X5#4&z(nX$P!t9j+~w%?KZN#o$qlYna9VN zy*+e#8md*aTD`3dP*o7Y{_c;F&Pz*}i3v=thKM`}Yi&LsRe=EL&JOKLZ*U+5Lu!Sk^o_Z5E4Meg@_7P6crJiNL9pw)e1;Xm069{HJUZAPk55R%$-RIA z6-eL&AQ0xu!e<4=008gy@A0LT~suv4>S3ILP<0Bm`DLLvaF4FK%)Nj?Pt*r}7;7Xa9z9H|HZjR63e zC`Tj$K)V27Re@400>HumpsYY5E(E}?0f1SyGDiY{y#)Yvj#!WnKwtoXnL;eg03bL5 z07D)V%>y7z1E4U{zu>7~aD})?0RX_umCct+(lZpemCzb@^6=o|A>zVpu|i=NDG+7} zl4`aK{0#b-!z=TL9Wt0BGO&T{GJWpjryhdijfaIQ&2!o}p04JRKYg3k&Tf zVxhe-O!X z{f;To;xw^bEES6JSc$k$B2CA6xl)ltA<32E66t?3@gJ7`36pmX0IY^jz)rRYwaaY4 ze(nJRiw;=Qb^t(r^DT@T3y}a2XEZW-_W%Hszxj_qD**t_m!#tW0KDiJT&R>6OvVTR z07RgHDzHHZ48atvzz&?j9lXF70$~P3Knx_nJP<+#`N z#-MZ2bTkiLfR>_b(HgWKJ%F~Nr_oF3b#wrIijHG|(J>BYjM-sajE6;FiC7vY#};Gd zST$CUHDeuEH+B^pz@B062qXfFfD`NpUW5?BY=V%GM_5c)L#QR}BeW8_2v-S%gfYS= zB9o|3v?Y2H`NVi)In3rTB8+ej^> zQ=~r95NVuDChL%G$=>7$vVg20myx%S50Foi`^m%Pw-h?Xh~i8Mq9jtJloCocWk2Nv zrJpiFnV_ms&8eQ$2&#xWpIS+6pmtC%Q-`S&GF4Q#^mhymh7E(qNMa}%YZ-ePrx>>xFPTiH1=E+A$W$=bG8>s^ zm=Bn5Rah$aDtr}@$`X}2l~$F0mFKEdRdZE8)p@E5RI61Ft6o-prbbn>P~)iy)E2AN zsU20jsWz_8Qg>31P|s0cqrPALg8E|(vWA65poU1JRAaZs8I2(p#xiB`SVGovRs-uS zYnV-9TeA7=Om+qP8+I>yOjAR1s%ETak!GFdam@h^# z)@rS0t$wXH+Irf)+G6c;?H29p+V6F6oj{!|o%K3xI`?%6x;DB|x`n#ibhIR?(H}Q3Gzd138Ei2)WAMz7W9Vy`X}HnwgyEn!VS)>mv$8&{hQn>w4zwy3R}t;BYlZQm5)6pty=DfLrs+A-|>>;~;Q z_F?uV_HFjh9n2gO9o9Q^JA86v({H5aB!kjoO6 zc9$1ZZKsN-Zl8L~mE{`ly3)1N^`o1+o7}D0ZPeY&J;i;i`%NyJ8_8Y6J?}yE@b_5a zam?eLr<8@mESk|3$_SkmS{wQ>%qC18))9_|&j{ZT zes8AvOzF(F2#DZEY>2oYX&IRp`F#{ADl)1r>QS^)ba8a|EY_^#S^HO&t^Rgqwv=MZThqqEWH8 zxJo>d=ABlR_Bh=;eM9Tw|Ih34~oTE|= zX_mAr*D$vzw@+p(E0Yc6dFE}(8oqt`+R{gE3x4zjX+Sb3_cYE^= zgB=w+-tUy`ytONMS8KgRef4hA?t0j zufM;t32jm~jUGrkaOInTZ`zyfns>EuS}G30LFK_G-==(f<51|K&cocp&EJ`SxAh3? zNO>#LI=^+SEu(FqJ)ynt=!~PC9bO$rzPJB=?=j6w@a-(u02P7 zaQ)#(uUl{HW%tYNS3ItC^iAtK(eKlL`f9+{bJzISE?u8_z3;~C8@FyI-5j_jy7l;W z_U#vU3hqqYU3!mrul&B+{ptt$59)uk{;_4iZQ%G|z+lhASr6|H35TBkl>gI*;nGLU zN7W-nBaM%pA0HbH8olyl&XeJ%vZoWz%6?Y=dFykl=imL}`%BMQ{Mhgd`HRoLu6e2R za__6DuR6yg#~-}Tc|Gx_{H@O0eebyMy5GmWADJlpK>kqk(fVV@r_fLLKIeS?{4e)} z^ZO;zpECde00d`2O+f$vv5tKEQIh}w03c&XQcVB=dL;k=fP(-4`Tqa_faw4Lbua(` z>RI+y?e7jKeZ#YO-C0)9zEK~#9!e3MUTTy+q~KlAqOw%JWmvO%p#b7%=cy!6o0 zgC_;?kb^Bq3O$I23RS2`+Jk?ZR=RlMk!@`OUS>k!!!6Z1lN1A%K}HJ0wk6bt`48 zoG(NxJwJT&q0m-~kkg+2L=sN;O2Qg@K*t^jrDeyN3?7h9;s z@bisw&;)Sv9RM>U5Wx`CK>~;ahzv40v&O#wz^UhzN`xeT8qYUd7x?THDB#ZCq;4lwlHF!O&e@WtgXnVOnnbaa$6AG}ZZp@WQ%jgtw(W(VRTf6dQR znl3Ro_!V#V_7djykjb~wQfOmsZJqCjN7#;Qyw`t;?aEd&U}JL=3A23s*#%yG?R5&R z?W|QJa(mnO@Y4Z)8Xn@Ev;B1L@1mtppfq;(*@E4j-=>!TJlwPIsD*i=M2HeFfhd7k zQ`A#T_Ocy=8Z6wNoIQQ&$SY4Bq-rE#focS`#7Q0EREW(5pezA7SdGN zsyR_2)D%*!H^(L<3W-6g5W6FR;BL(THOV9{B!D6$0jLWq^-)Z~GJ+Tc8BiqC1XwL^ zEKdGD_q>@$Jh?K=#Y|mIF&wmhf##B1uRLCC0R9~S0Z?!(Ddq<+00000NkvXXu0mjf D2)~0r literal 0 HcmV?d00001 diff --git a/index_icons/winxp/ppt.png b/index_icons/winxp/ppt.png new file mode 100644 index 0000000000000000000000000000000000000000..92d196bd6cba6e35759564357f66a50cbf272cdf GIT binary patch literal 3479 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 FV1n>#pydDn literal 0 HcmV?d00001 diff --git a/index_icons/winxp/ps.png b/index_icons/winxp/ps.png new file mode 100644 index 0000000000000000000000000000000000000000..74f934cdf868719e288c80b3b279523fb60408a2 GIT binary patch literal 3411 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 literal 0 HcmV?d00001 diff --git a/index_icons/winxp/search.png b/index_icons/winxp/search.png new file mode 100644 index 0000000000000000000000000000000000000000..d5266194d059885538e28905f72d1afbb639a9e9 GIT binary patch literal 3382 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 M07*qoM6N<$f}OBsU;qFB literal 0 HcmV?d00001 diff --git a/index_icons/winxp/sound.png b/index_icons/winxp/sound.png new file mode 100644 index 0000000000000000000000000000000000000000..6ed136953f223bbb0c6edd69d91092690900767a GIT binary patch literal 3302 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 literal 0 HcmV?d00001 diff --git a/index_icons/winxp/srt.png b/index_icons/winxp/srt.png new file mode 100644 index 0000000000000000000000000000000000000000..74195b86caa426286ad666e6db2c752ddf9ec9ad GIT binary patch literal 1001 zcmV}~=lT5z{3qVh zYDw$u+bWqrkR&EaFkIxOoD{6(W3>>+!Ow9EdCAGHZx|-Jj3JhjZ7C_lsK=v?fr~42 zx;IVNuRqSkK)JbFP&VgxP5FFWo6~vL$FkN;sdQq*>*XI2nDlz$=-61|9*w4R$mN=y z1NH?10hE;FqpRx_T3VVB?E2yE!0ha=YOz@Sv&UoHwqnJ6AH(nu2~K2XQO74I_g*#_ zPUer^h_l-rC@n33)zXA;NDL`0M1B1cke%P(eTJqLJIBW>jS7XO(e37lYX$?6-QWL2 z!-frgHMW~;!r=(Y$_rubXo5c|1Se!cE(x$wNumCD9k%yeVY~0$yVZREeo1?3>K}wE zE>5y8KEB~1!&I;=i}Lap(a~`N!LSGse;A3j8Ia0VAQd4{Ni+`B9l++(7bAzCM)_g;Qxw`o#esVot@3_`vr(1HhIVm;W{a3EsH1{0q+w*khl_N(??K!dVx8( zwDbm{)vo5Jr`^bXAseU9v?1st!O{XqhsPkLI8a+tfiKSibUav|1^;vogv!-8THkRaM2?#%;Lpc@u)31w@jP!21FD;3Tjs0mBE6!SclbY6_l0`m1F?FoNj%Co$oe zLix@QK&+BT_I#$(HD5LqBz}Cz2;a;M!jPlw$S2UL7ht<;NAEAA&?JcP+?I{lURDUb ziiV}%iPpaF9_oPJrBIxzQLA^KDJ&Eou6`Y?*8zuLh~JMLhTby)q-7v;Qx3eb>B%Ar zlrRcLSB%GUc7U*IG=$M^U*DLPc5bUomj3n2uL){D+ySuDnDMLd?fy!r|GI``ArEQ1 z4D-w!NHz+4-rJ~X=>bth(?o=#C}$wBzg?-U9S#H*LsjpjnyZTtotwfPUm6@&Z{Vl% z-53}gf_VwSTWd(k9rb2(4_^64%9RNT#L2})sR8I8srRaIMlSJHiHdHLt++S+%C z%bm$)b1s)lO{G%AdV0>1&1OY5JCAsL2*g1wmjh;|0fh@J@C}jgHZ=ievtHTf>*i@A z1_rKz1-kvpF0%z+7T$}|=xq&-)kuuo!R_qHR4ukv1M4s5fyE^fE}UbcKsbLffW5Vi z>R{{!n8zbiL&I*2kAFf-O9BU)3C(ZsVPBvXp$QAVeg=A5KLY9JSUGtb@oNmvo}NKR zhaLU>gBpR4oK6cyM?avZCV|JVfZ0>SI2<_$+YtvAzX1;89FpEN+U|FOR=7w(MrUU| zLZO>rvK%10eGeul-$4@Y;L#K>c48REZymxLazNtecd|J=^t{BebQcz0b49%}tk(UA zMz4c;y)q?}cgt>JA`#~VF|hV_FO7^OH$f2NT^IuE>$^me$Q8ZUMdPj3^S@*9on~WW z4-gDq1~V88l+Wk?94r~t{}O4jva$k-qUxheMZiWBgu`L}^+Wnv6h$yW5R^ipAa1mB zF={g^N)l-V#0maUP)b&+u=JXG&b^KM#3p{mquS#anymp_NoXW`00000NkvXXu0mjf D{pb`r literal 0 HcmV?d00001 diff --git a/index_icons/winxp/subtitle.png b/index_icons/winxp/subtitle.png new file mode 100644 index 0000000000000000000000000000000000000000..d926638114464260b7d5e3d4c0664922693295d9 GIT binary patch literal 1032 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 RjjR9w002ovPDHLkV1l}LW)A=W literal 0 HcmV?d00001 diff --git a/index_icons/winxp/text.png b/index_icons/winxp/text.png new file mode 100644 index 0000000000000000000000000000000000000000..6e8bc0a75dcfebc9c55d7d267ebab606154ace99 GIT binary patch literal 3243 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 literal 0 HcmV?d00001 diff --git a/index_icons/winxp/torrent.png b/index_icons/winxp/torrent.png new file mode 100644 index 0000000000000000000000000000000000000000..dd429cdf4837752ced8e03f11720deaef91f53d9 GIT binary patch literal 360 zcmV-u0hj)XP)ow*O}!1EfZHGBScRyEs}wME?IHPA4N1m};Lej{$B#U`FscSisEt-fwUi0Mz`y@HfPz{j3n5A@cwx~l4cn>t7_$9=)UU3EnK_;we;l9sJbOUUmF8IT+ zKX4(K>9`)~cL5e01{_8+;20#J82$kh(JyEMVgn{1CPwTASS>^~VBys%3=Oish)T*0 zkJ%XFwR2DnAP9gN?f*a2%+@h^5d+wLX_ftCW#?J#g^U2?&(Q}EsG1G{0000KLZ*U+5Lu!Sk^o_Z5E4Meg@_7P6crJiNL9pw)e1;Xm069{HJUZAPk55R%$-RIA z6-eL&AQ0xu!e<4=008gy@A0LT~suv4>S3ILP<0Bm`DLLvaF4FK%)Nj?Pt*r}7;7Xa9z9H|HZjR63e zC`Tj$K)V27Re@400>HumpsYY5E(E}?0f1SyGDiY{y#)Yvj#!WnKwtoXnL;eg03bL5 z07D)V%>y7z1E4U{zu>7~aD})?0RX_umCct+(lZpemCzb@^6=o|A>zVpu|i=NDG+7} zl4`aK{0#b-!z=TL9Wt0BGO&T{GJWpjryhdijfaIQ&2!o}p04JRKYg3k&Tf zVxhe-O!X z{f;To;xw^bEES6JSc$k$B2CA6xl)ltA<32E66t?3@gJ7`36pmX0IY^jz)rRYwaaY4 ze(nJRiw;=Qb^t(r^DT@T3y}a2XEZW-_W%Hszxj_qD**t_m!#tW0KDiJT&R>6OvVTR z07RgHDzHHZ48atvzz&?j9lXF70$~P3Knx_nJP<+#`N z#-MZ2bTkiLfR>_b(HgWKJ%F~Nr_oF3b#wrIijHG|(J>BYjM-sajE6;FiC7vY#};Gd zST$CUHDeuEH+B^pz@B062qXfFfD`NpUW5?BY=V%GM_5c)L#QR}BeW8_2v-S%gfYS= zB9o|3v?Y2H`NVi)In3rTB8+ej^> zQ=~r95NVuDChL%G$=>7$vVg20myx%S50Foi`^m%Pw-h?Xh~i8Mq9jtJloCocWk2Nv zrJpiFnV_ms&8eQ$2&#xWpIS+6pmtC%Q-`S&GF4Q#^mhymh7E(qNMa}%YZ-ePrx>>xFPTiH1=E+A$W$=bG8>s^ zm=Bn5Rah$aDtr}@$`X}2l~$F0mFKEdRdZE8)p@E5RI61Ft6o-prbbn>P~)iy)E2AN zsU20jsWz_8Qg>31P|s0cqrPALg8E|(vWA65poU1JRAaZs8I2(p#xiB`SVGovRs-uS zYnV-9TeA7=Om+qP8+I>yOjAR1s%ETak!GFdam@h^# z)@rS0t$wXH+Irf)+G6c;?H29p+V6F6oj{!|o%K3xI`?%6x;DB|x`n#ibhIR?(H}Q3Gzd138Ei2)WAMz7W9Vy`X}HnwgyEn!VS)>mv$8&{hQn>w4zwy3R}t;BYlZQm5)6pty=DfLrs+A-|>>;~;Q z_F?uV_HFjh9n2gO9o9Q^JA86v({H5aB!kjoO6 zc9$1ZZKsN-Zl8L~mE{`ly3)1N^`o1+o7}D0ZPeY&J;i;i`%NyJ8_8Y6J?}yE@b_5a zam?eLr<8@mESk|3$_SkmS{wQ>%qC18))9_|&j{ZT zes8AvOzF(F2#DZEY>2oYX&IRp`F#{ADl)1r>QS^)ba8a|EY_^#S^HO&t^Rgqwv=MZThqqEWH8 zxJo>d=ABlR_Bh=;eM9Tw|Ih34~oTE|= zX_mAr*D$vzw@+p(E0Yc6dFE}(8oqt`+R{gE3x4zjX+Sb3_cYE^= zgB=w+-tUy`ytONMS8KgRef4hA?t0j zufM;t32jm~jUGrkaOInTZ`zyfns>EuS}G30LFK_G-==(f<51|K&cocp&EJ`SxAh3? zNO>#LI=^+SEu(FqJ)ynt=!~PC9bO$rzPJB=?=j6w@a-(u02P7 zaQ)#(uUl{HW%tYNS3ItC^iAtK(eKlL`f9+{bJzISE?u8_z3;~C8@FyI-5j_jy7l;W z_U#vU3hqqYU3!mrul&B+{ptt$59)uk{;_4iZQ%G|z+lhASr6|H35TBkl>gI*;nGLU zN7W-nBaM%pA0HbH8olyl&XeJ%vZoWz%6?Y=dFykl=imL}`%BMQ{Mhgd`HRoLu6e2R za__6DuR6yg#~-}Tc|Gx_{H@O0eebyMy5GmWADJlpK>kqk(fVV@r_fLLKIeS?{4e)} z^ZO;zpECde00d`2O+f$vv5tKEQIh}w03c&XQcVB=dL;k=fP(-4`Tqa_faw4Lbua(` z>RI+y?e7jKeZ#YO-C0kug)K~#9!e3L(q4Pg|tAQ;I^Rk_b^!AkpnA2!&{@wR7+Lp7SW?kD2T8CU54vdC#2lJI^y? zk^s2-XsZt9mK6oLsu(RVQ{X4>+&uoie_!?wn>W_U0(WqU9N+=r;=$98d|z36d-~$- zS3kaeeHdl=VpbHNi++I|kR5WUemb~|6!6Rs^JeFOjW2DU|5a5dVlS;PML8Z2v@d(m zb$8YAy;J)E*xsJl%PY68J$`ckQ#qY|84#opsU>K4Lo%KOtB0J8GyAxD{qoUiRUO+) zyORMya^Yckt3yXHq#BhXQd-MOD}w@cQa`yV7>0+)YIG5VVhI?{5g0i{1hpGsxT}dp zZVI{UZyWP;N@}`C)E4HTE*2V$5?b&b_-ux|a9M}hIT8FBOCtZ1z?-?%)1V)FEpUVu z6V$WLb@y72?kvQ@xXyoBi|vJY19{PzHjjieWY(*5}W0000< KMNUMnLSTZXMIh?{ literal 0 HcmV?d00001 diff --git a/index_icons/winxp/uu.png b/index_icons/winxp/uu.png new file mode 100644 index 0000000000000000000000000000000000000000..dfe4e5a1f32332698b3f9077a03307b910e64588 GIT binary patch literal 3335 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 RjjR9w002ovPDHLkV1l}LW)A=W literal 0 HcmV?d00001 diff --git a/index_icons/winxp/web.png b/index_icons/winxp/web.png new file mode 100644 index 0000000000000000000000000000000000000000..80363b1ee685f55a5bd20c71e3b47cd5540dcdea GIT binary patch literal 3437 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 XFY#jp?k$zN00000NkvXXu0mjf`;v_8 literal 0 HcmV?d00001 diff --git a/languages/al.txt b/languages/al.txt new file mode 100644 index 0000000..4570b99 --- /dev/null +++ b/languages/al.txt @@ -0,0 +1,91 @@ +// Albanian language file by Laurent Dhima + +index of Treguesi i +parent directory Directory Prind +thumbnail of Minjatura e +continue Vazhdo + +file File +files Files +folder Kartelë +folders Kartela +size Madhësia +total size Madhësia gjithsej +total downloads Gjithsej shkarkime +total Gjithsej +date Ndryshuar +description Përshkrimi +downloads Shkarkime +type Lloji +sort by Renditur sipas + +search Kërko +both Të dy llojet +search results for kërko rezultate për +and its subdirectories dhe nën-directories e tij + +account Llogaria e Përdoruesit +login Identifikohu +logout Shkëputu +username Emri i përdoruesit +password Fjalëkalimi +select user to remove Zgjidh përdoruesin që duhet hequr +are you sure you want to remove the user Jeni i sigurt që dëshironi të hiqni përdoruesin +delete this user Hiqe këtë përdorues +add user Shto përdorues + +guest Vizitues +user Përdorues +mod Moderator +admin Admin +level Niveli i përdoruesit + +rename riemërto/lëviz +renaming Duke riemërtuar +new filename Emër i Ri File +you can also move the file by specifying a path mund të lëvizni gjithashtu një file duke përcaktuar një pozicion +delete elemino +are you sure you want to delete the file Jeni i sigurt që dëshironi të eleminoni këtë file +edit description ndrysho përshkrimin +yes, delete Po, eleminoje + +upload Ngarko +files to this folder file(s) tek kjo kartelë +uploaded files Ngarko files +failed files Files e dështuar +none Asnjë +file already exists file ekziston +filename is listed as a hidden file emri i file rezulton si file i padukshëm + +reconfigure script Rikonfiguro skriptin +create new directory in this folder Krijo një directory të re në këtë kartelë +edit list of hidden files Ndrysho listën e files së padukshëm +add new user Shto përdorues të ri +delete user Hiq përdoruesin +copy url Copy a remote file (to this folder) +upload to ftp upload file to FTP server + +enter the new description for the file Shto përshkrimin e ri për file +change Ndrysho +enter the new name Shkruaj emrin e ri +create Krijo + +add Shto +remove Hiq +remove a hidden file Hiq një file të padukshëm +add a new hidden file Shto një file të ri të padukshëm + +edit ban list Shkruaj listën e IPve të bllokuara dhe emrat e host +remove a ban Hiq një bllokim +add a new ban Shto një bllokim të ri (adresa IP ose emri i host, mund të përdorësh wildcards) +the administrator has blocked your ip address or hostname Sorry, the administrator has blocked your IP address or hostname + +view entries from log file Shiko regjistrimet nga file i log +view statistics from log file Shiko statistikat nga file i log +how many entries would you like to view Sa regjistrime dëshironi të shikoni +view Shiko +page Page +of of + +calculate md5sum llogarit md5sum +download directory as tar.gz archive Shkarko directory si arkiv tar.gz diff --git a/languages/ar.txt b/languages/ar.txt new file mode 100644 index 0000000..4b1753b --- /dev/null +++ b/languages/ar.txt @@ -0,0 +1,91 @@ +// Arabic langauge file + +index of +parent directory +thumbnail of +continue + +file +files +folder +folders +size +total size +total downloads +total +date +description +downloads +type +sort by + +search +both +search results for +and its subdirectories + +account User Account +login +logout +username +password +select user to remove +are you sure you want to remove the user +delete this user +add user + +guest +user +mod Moderator +admin +level + +rename / +renaming +new filename +you can also move the file by specifying a path you can also move the file by specifying a path +delete +are you sure you want to delete the file ݿ +edit description +yes, delete + +upload +files to this folder +uploaded files +failed files +none +file already exists +filename is listed as a hidden file + +reconfigure script +create new directory in this folder +edit list of hidden files +add new user +delete user +copy url Copy a remote file (to this folder) +upload to ftp upload file to FTP server + +enter the new description for the file +change +enter the new name +create + +add +remove +remove a hidden file +add a new hidden file + +edit ban list +remove a ban +add a new ban (IP address or hostname, you can use wildcards) +the administrator has blocked your ip address or hostname + +view entries from log file +view statistics from log file +how many entries would you like to view +view +page Page +of of + +calculate md5sum +download directory as tar.gz archive tar.gz diff --git a/languages/bg.txt b/languages/bg.txt new file mode 100644 index 0000000..fbc78f9 --- /dev/null +++ b/languages/bg.txt @@ -0,0 +1,91 @@ +// Bulgarian language file by error_404@abv.bg + +index of Индек? на +parent directory Главна директори? +thumbnail of Миниатюра на +continue Продължи + +file Файл +files Файлове +folder Папка +folders Папки +size Големина +total size В?ичко големина +total downloads В?ичко теглени? +total В?ичко +date Дата +description Опи?ание +downloads Теглени? +type Вид +sort by Сортирай по + +search Тър?и +both В?ички +search results for намерени резултати за +and its subdirectories и техните подпапки + +account Потребител?ки профил +login Вход +logout Изход +username Потребител?ко име +password Парола +select user to remove Изберете потребител за премахване +are you sure you want to remove the user Сигурен ли ?те, че желаете да премахнете потребител +delete this user Изтрийте този потребител +add user Добавете потребител + +guest Го?т +user Потребител +mod Moderator +admin ?дмини?тратор +level Потребител?ко ниво + +rename преименувай/преме?ти +renaming Преименува +new filename ?ов файл +you can also move the file by specifying a path вие може да преме?тите файл като отбележите път? +delete изтрий +are you sure you want to delete the file Сигурен ли ?те, че желаете да изтриете файла +edit description пром?на на опи?ание +yes, delete Да, изтрий го + +upload Качи +files to this folder файл(ове) за тази папка +uploaded files Качени файлове +failed files ?еу?пешни файлове +none ?ищо +file already exists файлът вече ?ъще?твува +filename is listed as a hidden file файлът е ?ъ? ?крити атрибути + +reconfigure script Реконфигурирай ?крипта +create new directory in this folder Създай нова директори? в тази папка +edit list of hidden files Промени ?пи?ъка на ?критите файлове +add new user Добави нов потребител +delete user Изтрий потребител +copy url Copy a remote file (to this folder) +upload to ftp upload file to FTP server + +enter the new description for the file Добави ново опи?ание за този файл +change Промени +enter the new name Добави ново име +create Създай + +add Добави +remove Премахни +remove a hidden file Премахни ?крити? файл +add a new hidden file Добави нов ?крит файл + +edit ban list Промени ли?та на баннатите IP-та или хо?тове +remove a ban Премахни бан +add a new ban Добави нов бан (IP адре? или хо?т, може да използвате ?пи?ък по подразбиране) +the administrator has blocked your ip address or hostname Sorry, the administrator has blocked your IP address or hostname + +view entries from log file Прегледайте добавките в лог файла +view statistics from log file Прегкледайте ?тати?тиките от лог файла +how many entries would you like to view Колко добавки желаете да прегледате +view Виж +page Page +of of + +calculate md5sum Калкулирай md5 ?умата +download directory as tar.gz archive Свали директори?та като tar.gz архив diff --git a/languages/ca.txt b/languages/ca.txt new file mode 100644 index 0000000..9ab8420 --- /dev/null +++ b/languages/ca.txt @@ -0,0 +1,91 @@ +// Catalan language file (David Gimeno i Ayuso info@sima-pc.com) + +index of Índex de +parent directory Directori anterior +thumbnail of Miniatura de +continue Continuar + +file Fitxer +files Fitxers +folder Carpeta +folders Carpetes +size Tamany +total size Tamany total +total downloads Total descàrregues +total Total +date Modificat +description Descripció +downloads Descàrregues +type Tipus +sort by Ordenar per + +search Cercar +both Ambdós +search results for Resultats cerca de +and its subdirectories i els seus subdirectoris + +account Compte d'usuari +login Entrar +logout Sortir +username Nom d'usuari +password Contrasenya +select user to remove Seleccioneu l'usuari a suprimir +are you sure you want to remove the user Segur que voleu suprimir aquest usuari +delete this user Suprimir aquest usuari +add user Afegir usuari + +guest Visitant +user Usuari +mod Moderator +admin Administrador +level Nivell d'usuari + +rename redenominar/moure +renaming Redenominant +new filename Nom nou del fitxer +you can also move the file by specifying a path també podeu moure el fitxer si n'especifiqueu un camí +delete suprimir +are you sure you want to delete the file Segur que voleu suprimir aquest fitxer +edit description editar la descripció +yes, delete Sí, suprimir-lo + +upload Carregar +files to this folder fitxers a aquesta carpeta +uploaded files Fitxers carregats +failed files Fitxers fallits +none Cap +file already exists ja existeix aquest fitxer +filename is listed as a hidden file aquest fitxer consta com a ocult + +reconfigure script Reconfigurar seqüència +create new directory in this folder Crear un nou directori a aquesta carpeta +edit list of hidden files Editar la llista de fitxers ocults +add new user Afegir un usuari nou +delete user Suprimir un usuari +copy url Copy a remote file (to this folder) +upload to ftp upload file to FTP server + +enter the new description for the file Introduïu la descripció nova del fitxer +change Canviar +enter the new name Introduïu el nom nou +create Crear + +add Afegir +remove Suprimir +remove a hidden file Suprimir un fitxer ocult +add a new hidden file Afegir un fitxer ocult nou + +edit ban list Editar llista d'IP i noms d'ordinador prohibits +remove a ban Suprimir una prohibició +add a new ban Afegir una prohibició nova (adreça IP o nom d'ordinador, podeu usar-hi comodins) +the administrator has blocked your ip address or hostname Sorry, the administrator has blocked your IP address or hostname + +view entries from log file Veure entrades del fitxer de registre +view statistics from log file Veure estadístiques del fitxer de registre +how many entries would you like to view Quantes entrades voleu veure +view Veure +page Page +of of + +calculate md5sum calcular md5sum +download directory as tar.gz archive Descarregar directori com arxiu tar.gz diff --git a/languages/cz.txt b/languages/cz.txt new file mode 100644 index 0000000..ab1884c --- /dev/null +++ b/languages/cz.txt @@ -0,0 +1,91 @@ +// Český překlad, vytvořil the_pest + +index of Výpis z +parent directory Nadřazený adresář +thumbnail of Miniatura of +continue Pokra?ovat + +file Soubor +files Soubory +folder Složka +folders Složky +size Velikost +total size Celková velikost +total downloads Celkem staženo +total Total +date Upraveno +description Popis +downloads Staženo +type Typ +sort by Třídit podle + +search Vyhledat +both Vše +search results for výsledky vyhledávání pro +and its subdirectories a jeho podsložky + +account Uživatelský ú?et +login Přihlásit +logout Odhlásit +username Uživatelské jméno +password Heslo +select user to remove vyberte uživatele pro smazání +are you sure you want to remove the user Jste si jist, že chcete smazat uživatele +delete this user Smazat uživatele +add user Přidat uživatele + +guest Host +user Uživatel +mod Moderátor +admin Administrátor +level Uživatelská úrověň + +rename přejmenovat/přesunout +renaming Přejmenování +new filename Nové jméno souboru +you can also move the file by specifying a path můžete také přesunout soubor ur?ením cesty +delete smazat +are you sure you want to delete the file Jste si jist, že chcete smazat soubor +edit description upravit popis +yes, delete Ano, smazat + +upload Nahrát +files to this folder soubor(ů) do této složky +uploaded files Nahraté soubory +failed files Nahrávaní selhalo +none Žádné +file already exists soubor již existuje +filename is listed as a hidden file jméno souboru je v seznamu skrytých souborů + +reconfigure script Překonfigurovat skript +create new directory in this folder Vytvořit nový adresář (v této složce) +edit list of hidden files Upravit seznam skrytých souborů +add new user Přidat nového uživatele +delete user Smazat uživatele +copy url Kopírovat vzdálený soubor (do této složky) +upload to ftp nahrát soubor na FTP server + +enter the new description for the file Vložit nový popis k souboru +change Změnit +enter the new name Vložit nové jméno +create Vytvořit + +add Přidat +remove Odebrat +remove a hidden file Odebrat skrytý soubor +add a new hidden file Přidat skrytý soubor + +edit ban list Upravit seznam zakázaných IP adres a hostnames +remove a ban Odebrat zákaz +add a new ban Přidat nový zákaz (IP addresa nebo hostname, můžete použít zna?ek např *.host.cz) +the administrator has blocked your ip address or hostname Promiňte, ale správce zablokoval vaši IP adresu nebo hostname + +view entries from log file Zobrazit návštěvy z logu +view statistics from log file Zobrazit statistiky z logu +how many entries would you like to view Kolik položek chcete zobrazit +view Zobrazit +page Page +of of + +calculate md5sum spo?ítat md5sum +download directory as tar.gz archive Stáhnout složku jako tar.gz archiv diff --git a/languages/da.txt b/languages/da.txt new file mode 100644 index 0000000..f7cd4cf --- /dev/null +++ b/languages/da.txt @@ -0,0 +1,92 @@ +// Danish langauge file +// Translated by Morten Gregersen (Mobleman.dk), Denmark + +index of Index af +parent directory Ovenstende mappe +thumbnail of Thumbnail af +continue Fortst + +file Fil +files Filer +folder Mappe +folders Mapper +size Strrelse +total size Total strrelse +total downloads Total downloads +total Total +date ndret +description Beskrivelse +downloads Downloads +type Type +sort by Sorter efter + +search Sg +both Begge +search results for sgeresultater for +and its subdirectories og dens undermapper + +account Brugerkonto +login Log ind +logout Log ud +username Brugernavn +password Kodeord +select user to remove Vlg bruger der skal fjernes +are you sure you want to remove the user Er du sikker p at du vil fjerne brugeren +delete this user Slet denne bruger +add user Tilfj bruger + +guest Gst +user Almindelig bruger +mod Moderator +admin Administrator +level Brugerlevel + +rename omdb/flyt +renaming Omdber +new filename Nyt filnavn +you can also move the file by specifying a path du kan ogs flytte filen ved at specificere en sti +delete slet +are you sure you want to delete the file Er du sikker p at du vil slette filen +edit description redigr beskrivelse +yes, delete Ja, slet den + +upload Upload +files to this folder fil(er) til denne mappe +uploaded files Uploadede filer +failed files Filer der fejlede +none Ingen +file already exists filnavnet eksisterer allerede +filename is listed as a hidden file filenavnet er listet som en skjult fil + +reconfigure script Genkonfigurer script +create new directory in this folder Opret en ny mappe (i denne mappe) +edit list of hidden files Redigr listen med skjulte filer +add new user Tilfj ny bruger +delete user Slet bruger +copy url Kopier en online fil (til denne mappe) +upload to ftp upload fil til FTP server + +enter the new description for the file Indtast den nye beskrivelse til filen +change Skift +enter the new name Indtast the nye navn +create Opret + +add Tilfj +remove Fjern +remove a hidden file Fjern en skjult fil +add a new hidden file Tilfj en skjult fil + +edit ban list Redigr listen med bannede IP'er og hostnavne +remove a ban Fjern et ban +add a new ban Tilfj et nyt ban (IP-adresse eller hostnavn, du kan bruge wildcards) +the administrator has blocked your ip address or hostname Desvrre, administratoren har blokeret din IP-adresse eller hostnavn + +view entries from log file Vis indlg fra log-fil +view statistics from log file Vis statestikker fra log-fil +how many entries would you like to view Hvor mange indlg vil du have vist +view Vis +page Side +of af + +calculate md5sum udregnet md5sum +download directory as tar.gz archive Download mappe som tar.gz arkiv \ No newline at end of file diff --git a/languages/de.txt b/languages/de.txt new file mode 100644 index 0000000..6173062 --- /dev/null +++ b/languages/de.txt @@ -0,0 +1,92 @@ +// German langauge file by thefake +// Updated by tagdancer + +index of Index von +parent directory Uebergeordnetes Verzeichnis +thumbnail of Thumbnail von +continue Weiter + +file Datei +files Dateien +folder Ordner +folders Ordner +size Größe +total size Gesamt Größe +total downloads Gesamte Downloads +total Gesamt +date Modifiziert +description Beschreibung +downloads Downloads +type Typ +sort by Sortiert nach + +search Suche +both Beide +search results for Suchergebnisse für +and its subdirectories und seinen Subverzeichnissen + +account User Account +login Login +logout Log out +username Username +password Passwort +select user to remove Wähle User zum entfernen +are you sure you want to remove the user Sind Sie sicher dass sie diesen User entfernen wollen +delete this user Diesen User löschen +add user User hinzufügen + +guest Gast +user User +mod Moderator +admin Admin +level User's Level + +rename Umbenennen/Verschieben +renaming Umbenennen +new filename Neuer Dateiname +you can also move the file by specifying a path Sie koennen die Datei auch verschieben indem Sie den neuen Pfad angeben +delete Löschen +are you sure you want to delete the file Sind Sie sicher dass Sie diese Datei löschen wollen +edit description beschreibung editieren +yes, delete Ja, löschen + +upload Upload +files to this folder Datei(en) in diesem Verzeichnis +uploaded files Hochgeladene Dateien +failed files Fehlgeschlagene Dateien +none Keine +file already exists Datei existiert bereits +filename is listed as a hidden file Dateiname ist als versteckte Datei aufgelistet + +reconfigure script Rekonfiguriere Script +create new directory in this folder Neues Verzeichnis in diesem Ordner erzeugen +edit list of hidden files Liste der versteckten Dateien editieren +add new user Neuen User hinzufügen +delete user User löschen +copy url Copy a remote file (to this folder) +upload to ftp upload file to FTP server + +enter the new description for the file Geben Sie die neue Beschreibung für die Datei ein +change Ändern +enter the new name Geben Sie den neuen Namen ein +create Anlegen + +add Hinzufügen +remove Entfernen +remove a hidden file Eine versteckte Datei entfernen +add a new hidden file Eine versteckte Datei hinzufügen + +edit ban list Editiere Liste von gebannten IPs und Hostnamen +remove a ban Entferne einen Bann +add a new ban Füge einen neuen Bann hinzu (IP Addresse oder Hostname, Sie koennen Wildcards benutzen) +the administrator has blocked your ip address or hostname Der Administrator hat Ihre IP Adresse oder Hostnamen gesperrt + +view entries from log file Einträge aus der Log Datei ansehen +view statistics from log file Statistik aus der Log Datei ansehen +how many entries would you like to view Wieviele Eintraege wollen Sie sehen +view Ansicht +page Page +of of + +calculate md5sum kalkuliere md5sum +download directory as tar.gz archive Lade das gesamte Verzeichnis als tar.gz Archiv herunter diff --git a/languages/el.txt b/languages/el.txt new file mode 100644 index 0000000..54f6de6 --- /dev/null +++ b/languages/el.txt @@ -0,0 +1,91 @@ +// Greek language file for AutoIndex version 2.1.2, no independent copyright claims by NSK, Translated from English by NSK, The English original is under the GPL therefore this Greek translation is also under the GPL, http://nsk.wikinerds.org/ + +index of Λίστα +parent directory Πάνω κατάλογος +thumbnail of Σμίνκ?υνση του +continue Συνέχεια + +file Α?χείο +files Α?χεία +folder Κατάλογος +folders Κατάλογοι +size Μέγεθος +total size Συνολικό μέγεθος +total downloads Συνολικές μεταφο?ές +total Σ?νολο +date Αλλαγή +description Πε?ιγ?αφή +downloads Μεταφο?ές +type Τ?πος +sort by Ταξινόμιση ανά + +search Ε??εση +both Και τα δυο +search results for Αποτελέσματα ε??εσης για +and its subdirectories και τους υποκαταλόγους του + +account Λογα?ιασμός χ?ήστη +login Αναγνώ?ιση +logout Απεγνώ?ιση +username Όνομα χ?ήστη +password Συνθηματικό +select user to remove Επέλεξε χ?ήστη για να αφαι?έσεις +are you sure you want to remove the user Είσαι σίγου?ος ότι θέλεις να αφαι?έσεις το χ?ήστη +delete this user Διαγ?αφή αυτο? του χ?ήστη +add user Π?οσθήκη χ?ήστη + +guest Καλεσμένος +user Κανονικός χ?ήστης +mod Κατευναστής +admin Διαχει?ηστής +level Επίπεδο χ?ήστη + +rename αλλαγή ονόματος/μετακίνηση +renaming Αλλαγή ονόματος +new filename ?έο όνομα α?χείου +you can also move the file by specifying a path μπο?είς επίσης να μετακινήσεις ένα α?χείο με το να γ?άψεις μία διαδ?ομή +delete διαγ?αφή +are you sure you want to delete the file Είσαι σίγου?ος ότι θέλεις να σβήσεις το α?χείο +edit description διό?θωση πε?ιγ?αφής +yes, delete ?αι, σβήσε το + +upload Μετακίνηση π?ος διακομιστή +files to this folder α?χεία σε αυτό το κατάλογο +uploaded files Α?χεία που έχουν μετακινηθεί στον διακομιστή +failed files Αποτυχημένα α?χεία +none Κανένα +file already exists το α?χείο ήδη υπάχ?ει +filename is listed as a hidden file το όνομα α?χείου είναι κ?υφό + +reconfigure script Αλλαγή πα?αμέτ?ων +create new directory in this folder Δημιου?γία νέου καταλόγου (σε αυτό τον κατάλογο) +edit list of hidden files Επεξε?γασία λίστας κ?υφών α?χείων +add new user Π?οσθήκη νέου χ?ήστη +delete user Διαγ?αφή χ?ήστη +copy url Αντιγ?αφή ενός απομακ?υσμένου α?χείου (σε αυτό το κατάλογο) +upload to ftp Μετακίνηση του α?χείου σε διακομιστή FTP + +enter the new description for the file Εισήγαγε νέα πε?ιγ?αφή για το α?χείο +change Αλλαγή +enter the new name Εισηγαγε το νέο όνομα +create Δημιου?γία + +add Π?οσθήκη +remove Αφαί?εση +remove a hidden file Αφαί?εση κ?υφο? α?χείου +add a new hidden file Π?οσθήκη κ?υφο? α?χείου + +edit ban list Επεξε?γασία λίστας απαγο?ευμένων διευθ?νσεων δικτ?ου IP και ονομάτων hostname +remove a ban Αφαί?εση απαγό?ευσης +add a new ban Π?οσθήκη απαγό?ευσης (διε?θυνση δικτίου IP ή όνομα hostname, μπο?εις να χ?ησιμοποιήσεις χα?ακτή?ες μπαλαντέ?) +the administrator has blocked your ip address or hostname Συγνώμη, ο διαχει?ιστής έχει απαγο?έψει την διε?θυνση δικτ?ου IP σας ή το όνομα hostname σας + +view entries from log file Δες εγγ?αφές από το α?χείο κατεγ?αφών +view statistics from log file Δες στατιστικά απο το α?χείο κατεγ?αφών +how many entries would you like to view Πόσες πολλές εγγ?αφές θα ήθελες να δεις +view Δες +page Page +of of + +calculate md5sum υπολόγησε md5sum +download directory as tar.gz archive Μετακίνηση του καταλόγου στον υπολογιστή μου ως συμπιεσμένο tar.gz α?χείο \ No newline at end of file diff --git a/languages/en.txt b/languages/en.txt new file mode 100644 index 0000000..c37e1c7 --- /dev/null +++ b/languages/en.txt @@ -0,0 +1,91 @@ +// English langauge file + +index of Index of +parent directory Parent Directory +thumbnail of Thumbnail of +continue Continue + +file File +files Files +folder Folder +folders Folders +size Size +total size Total size +total downloads Total downloads +total Total +date Modified +description Description +downloads Downloads +type Type +sort by Sort by + +search Search +both Both +search results for search results for +and its subdirectories and its subdirectories + +account User Account +login Login +logout Log out +username Username +password Password +select user to remove Select user to remove +are you sure you want to remove the user Are you sure you want to remove the user +delete this user Delete this user +add user Add User + +guest Guest +user Regular User +mod Moderator +admin Administrator +level User's level + +rename rename/move +renaming Renaming +new filename New Filename +you can also move the file by specifying a path you can also move the file by specifying a path +delete delete +are you sure you want to delete the file Are you sure you want to delete the file +edit description edit description +yes, delete Yes, delete it + +upload Upload +files to this folder file(s) to this folder +uploaded files Uploaded files +failed files Failed files +none None +file already exists file already exists +filename is listed as a hidden file filename is listed as a hidden file + +reconfigure script Reconfigure script +create new directory in this folder Create new directory (in this folder) +edit list of hidden files Edit list of hidden files +add new user Add new user +delete user Delete user +copy url Copy a remote file (to this folder) +upload to ftp upload file to FTP server + +enter the new description for the file Enter the new description for the file +change Change +enter the new name Enter the new name +create Create + +add Add +remove Remove +remove a hidden file Remove a hidden file +add a new hidden file Add a new hidden file + +edit ban list Edit list of banned IPs and hostnames +remove a ban Remove a ban +add a new ban Add a new ban (IP address or hostname, you can use wildcards) +the administrator has blocked your ip address or hostname Sorry, the administrator has blocked your IP address or hostname + +view entries from log file View entries from log file +view statistics from log file View statistics from log file +how many entries would you like to view How many entries would you like to view +view View +page Page +of of + +calculate md5sum calculate md5sum +download directory as tar.gz archive Download directory as tar.gz archive diff --git a/languages/es.txt b/languages/es.txt new file mode 100644 index 0000000..5e18676 --- /dev/null +++ b/languages/es.txt @@ -0,0 +1,91 @@ +// Spanish langauge file by Jess Espino + +index of Índice de +parent directory Directorio Padre +thumbnail of Miniatura de +continue Continuar + +file Archivo +files Archivos +folder Carpeta +folders Carpetas +size Tamaño +total size Tamaño total +total downloads Total de descargas +total Total +date Modificado +description Descripción +downloads Descargas +type Tipo +sort by Ordenar por + +search Buscar +both Ambos +search results for buscar resultados de +and its subdirectories y estos son subdirectorios + +account Cuenta de usuario +login Usuario +logout Desconectarse +username Usuario +password Contraseña +select user to remove Seleccione el usuario a eliminar +are you sure you want to remove the user ¿Está seguro de que desea eliminar al usuario +delete this user Eliminar este usuario +add user Añadir usuario + +guest Invitado +user Usuario +mod Moderator +admin Administrador +level Nivel del usuario + +rename renombrar/mover +renaming Renombrando +new filename Nuevo nombre de archivo +you can also move the file by specifying a path Usted también puede mover el archivo especificando un destino +delete eliminar +are you sure you want to delete the file ¿Está seguro que desea eliminar el archivo +edit description editar descripcion +yes, delete Sĩ, borrarlo + +upload Enviar +files to this folder archivo(s) a esta carpeta +uploaded files Archivos enviados +failed files Archivos no enviados +none Ninguno +file already exists el archivo ya existe +filename is listed as a hidden file el nombre del archivo es listado como un archivo oculto + +reconfigure script Reconfigurar el script +create new directory in this folder Crear nuevo directorio en esta carpeta +edit list of hidden files Editar lista de ficheros ocultos +add new user Añadir nuevo usuario +delete user Eliminar usuario +copy url Copy a remote file (to this folder) +upload to ftp upload file to FTP server + +enter the new description for the file Introduzca la nueva descripción para este archivo +change Cambiar +enter the new name Introduzca el nuevo nombre +create Crear + +add Añadir +remove Eliminar +remove a hidden file Eliminar un archivo oculto +add a new hidden file Añadir un nuevo archivo oculto + +edit ban list Editar la lista de IPs y hosts baneados +remove a ban Eliminar un ban +add a new ban Añadir nuevo ban (dirección IP o nombre del host, pude usar metacaracteres) +the administrator has blocked your ip address or hostname el administrador ha bloqueado su IP o nombre de máquina + +view entries from log file Ver las entradas del archivo log +view statistics from log file Ver las estadísticas del archivo log +how many entries would you like to view ¿Cuántas entradas desearía usted ver +view Ver +page Página +of de + +calculate md5sum calcular md5sum +download directory as tar.gz archive Descargar directorio como un archivo tar.gz diff --git a/languages/fr.txt b/languages/fr.txt new file mode 100644 index 0000000..b790807 --- /dev/null +++ b/languages/fr.txt @@ -0,0 +1,91 @@ +// French language file by NSV + +index of Index de +parent directory Dossier parent +thumbnail of Vignette de +continue Continuer + +file Fichier +files Fichiers +folder Dossier +folders Dossiers +size Taille +total size Taille total +total downloads Téléchargements totaux +total Total +date Modifié +description Description +downloads Téléchargements +type Type +sort by Classé par + +search Recherche +both Ensemble +search results for Résultat de recherche pour +and its subdirectories et ses sous-dossiers + +account Compte utilisateur +login Connexion +logout Déconnexion +username Nom d'utilisateur +password Mot de passe +select user to remove Selectionner un utilisateur à supprimer +are you sure you want to remove the user Etes vous sûr de vouloir supprimer cet utilisateur +delete this user Supprimer cet utilisateur +add user Ajouter un utilisateur + +guest Invité +user Utilisateur +mod Moderator +admin Administrateur +level Niveau d'utilisateur + +rename renommer/déplacer +renaming Renommage +new filename Nouveau nom de fichier +you can also move the file by specifying a path Vous pouvez déplacer le fichier en spécifiant la direction +delete supprimer +are you sure you want to delete the file Etes vous sûr de vouloir supprimer ce fichier +edit description editer la description +yes, delete Oui, je le supprime + +upload Envoie +files to this folder fichier(s) vers ce dossier +uploaded files Fichiers envoyés +failed files Fichiers ratés +none Aucun +file already exists fichier déjà existant +filename is listed as a hidden file le fichier est listé comme un fichier caché + +reconfigure script Reconfigurer le script +create new directory in this folder Créer un nouveau sous-dossier dans ce dossier +edit list of hidden files Editer la liste des fichiers cachés +add new user Ajouter un nouvel utilisateur +delete user Supprimer un utilisateur +copy url Copy a remote file (to this folder) +upload to ftp upload file to FTP server + +enter the new description for the file Entrer une nouvelle description pour ce fichier +change Changer +enter the new name Entrer un nouveau nom +create Créer + +add Ajouter +remove Supprimer +remove a hidden file Supprimer un fichier caché +add a new hidden file Ajouter un fichier caché + +edit ban list Editer la liste des IPs et des noms de hôte bannis +remove a ban Supprimer un bannissement +add a new ban Ajouter un nouveau bannissement (adresse IP ou noms de hôte, vous pouvez utiliser des wildcards) +the administrator has blocked your ip address or hostname Sorry, the administrator has blocked your IP address or hostname + +view entries from log file Voir les entrées du fichier log +view statistics from log file Voir les statistiques du fichier log +how many entries would you like to view Combien d'entrées voulez vous voir +view Voir +page Page +of of + +calculate md5sum calculer le md5sum +download directory as tar.gz archive Télécharger le dossier en tant qu'archive tar.gz diff --git a/languages/hu.txt b/languages/hu.txt new file mode 100644 index 0000000..37d2721 --- /dev/null +++ b/languages/hu.txt @@ -0,0 +1,92 @@ +// Hungarian (Magyar) translation by crash +// last update: 2005.02.14. 14:15 + +index of Könyvtár +parent directory Feljebb +thumbnail of Thumbnail of +continue Tovább + +file Fájl +files Fájl +folder Könyvtár +folders Könyvtár +size Méret +total size Összes méret +total downloads Összes letöltés +total Összes +date Dátum +description Leírás +downloads Letöltés +type Típus +sort by Rendezés + +search Keresés +both Mind +search results for keresés eredménye +and its subdirectories és az alkönyvtárai + +account Felhasználói Menü +login Belépés +logout Kilépés +username Felhasználó név +password Jelszó +select user to remove Válaszd ki a törlendő felhasználót +are you sure you want to remove the user Biztos törölni akarod a felhasználót +delete this user Felhasználó törlése +add user Új felhasználó + +guest Vendég +user Felhasználó +mod Moderátor +admin Adminisztrátor +level Felhasználó szintje + +rename átnevez +renaming Étnevezés +new filename Új fájlnév +you can also move the file by specifying a path a fájl mozgatásához adj meg könyvtárat +delete töröl +are you sure you want to delete the file Biztos törölni akarod a fájlt +edit description leírás szerkesztése +yes, delete Igen, törölni akarom + +upload Feltöltés +files to this folder fájl(ok) ebbe a könyvtárba +uploaded files Feltöltött fájlok +failed files Sikertelen feltöltés +none Nincs +file already exists a fájl már létezik +filename is listed as a hidden file a fájl neve rejtettnek van beálíltva + +reconfigure script Script Újrakonfigurálása +create new directory in this folder Új könyvtár ebbe a könyvtárba +edit list of hidden files Rejtett fájlok listájának szerkesztése +add new user Új felhasználó +delete user Felhasználó törlése +copy url távoli fájl másolása (ebbe a könyvtárba) +upload to ftp fájl feltöltése az FTP szerverre + +enter the new description for the file Add meg a fájl új leírását +change Változtat +enter the new name Add meg az új nevét +create Létrehoz + +add Hozzáad +remove Töröl +remove a hidden file Rejtett fájl törlése +add a new hidden file Rejtett fájl létrehozása + +edit ban list Kitiltott IP-k és hostok listájának szerkesztése +remove a ban Kitiltás törlése +add a new ban Új kitiltás (IP cím vagy hostnév, wildcards használható) +the administrator has blocked your ip address or hostname Az adminisztrátor kitiltotta az IP címed vagy a hostneved + +view entries from log file Logfájl megtekintése +view statistics from log file Statisztika a logfájlból +how many entries would you like to view Hány darabot szeretnél látni +view Megnéz +page Page +of of + +calculate md5sum md5 számolás +download directory as tar.gz archive Könyvtár letöltése tar.gz formátumban diff --git a/languages/it.txt b/languages/it.txt new file mode 100644 index 0000000..26de319 --- /dev/null +++ b/languages/it.txt @@ -0,0 +1,91 @@ +// Italian language file by Dalilha + +index of Indice del +parent directory Directory padre +thumbnail of Thumbnail di +continue Continua + +file File +files Files +folder Cartella +folders Cartelle +size Dimensione +total size Dimensione totale +total downloads Downloads totali +total Totale +date Modificato +description Descrizione +downloads Downloads +type Tipo +sort by Ordina per + +search Ricerca +both Entrambi +search results for risultati della ricerca per +and its subdirectories e le sue subdirectories + +account Account utente +login Autenticazione +logout Logout +username Nome utente +password Password +select user to remove Seleziona l'utente da rimuovere +are you sure you want to remove the user Sei sicuro che vuoi rimuovere l'utente +delete this user Cancella questo utente +add user Aggiungi Utente + +guest Ospite +user Utente +mod Moderator +admin Admin +level Livello utente + +rename rinomina/sposta +renaming Sto Rinominando +new filename Nuovo nome del file +you can also move the file by specifying a path puoi anche spostare il file specificando un percorso +delete cancella +are you sure you want to delete the file Sicuro di voler cancellare il file +edit description Modifica la descrizione +yes, delete Si, cancella + +upload Caricamento +files to this folder file(s) da questa cartella +uploaded files File caricati +failed files Files falliti +none Niente +file already exists file già esistente +filename is listed as a hidden file Il nome di file è in lista come file nascosto + +reconfigure script Riconfigura lo script +create new directory in this folder Crea una nuova directory in questa cartella +edit list of hidden files Modfica la lista dei file nascosti +add new user Aggiungi un nuovo utente +delete user Cancella utente +copy url Copy a remote file (to this folder) +upload to ftp upload file to FTP server + +enter the new description for the file Inserisci la nuova descrizione per il file +change Cambia +enter the new name Inserisci il nuovo nome +create Crea + +add Aggiungi +remove Rimuovi +remove a hidden file Rimuovi un file nascosto +add a new hidden file Aggiungi un nuovo file nascosto + +edit ban list Modifica la lista degli IP e degli hostname bloccati +remove a ban Rimuovi un blocco +add a new ban Aggiungi un nuovo blocco (indirizzo IP o l'hostname, puoi usare anche i wildcards) +the administrator has blocked your ip address or hostname Sorry, the administrator has blocked your IP address or hostname + +view entries from log file Guarda le entries dal fiel di log +view statistics from log file Guarda le statistiche dal file di log +how many entries would you like to view Quante entries vuoi vedere +view Guarda +page Page +of of + +calculate md5sum calcola md5sum +download directory as tar.gz archive Scarica la directory come un archivio tar.gz diff --git a/languages/ja.txt b/languages/ja.txt new file mode 100644 index 0000000..65c85d6 --- /dev/null +++ b/languages/ja.txt @@ -0,0 +1,92 @@ +// Japanese langauge file +// Tadashi Jokagi + +index of 次?一覧: +parent directory 親ディレクトリ +thumbnail of 次?サム?イル: +continue 続?る + +file ファイル +files ファイル +folder フォルダー +folders フォルダー +size 容? +total size ?容? +total downloads ?ダウンロード数 +total ?計 +date 修正日時 +description 説明 +downloads ダウンロード数 +type 種類 +sort by ソート基準 + +search 検索 +both Both +search results for 次?検索?果: +and its subdirectories ?????サブディレクトリ + +account ユーザーアカウント +login ログイン +logout ログアウト +username ユーザー?? +password パスワード +select user to remove ?択ユーザーを削除?る +are you sure you want to remove the user 本当?ユーザーを削除????? +delete this user ??ユーザーを削除?る +add user 新?ユーザーを追加?る + +guest ゲスト +user 一般ユーザー +mod モデレータ +admin 管?者 +level ユーザー?レベル + +rename ??称変更/移動 +renaming Renaming +new filename 新?ファイル?? +you can also move the file by specifying a path ?様??パス?指定?よりファイルを移動??る???????? +delete 削除?る +are you sure you want to delete the file 本当?ファイルを削除????? +edit description 説明を編集?る +yes, delete ?????れを削除??? + +upload アップロード?る +files to this folder ファイルを??フォルダー? +uploaded files ファイルをアップロード????。 +failed files ファイルを失敗????。 +none ?? +file already exists ファイル?既?存在???。 +filename is listed as a hidden file ファイル?隠?ファイル???一覧表示?れ?? + +reconfigure script スクリプトを?設定?る +create new directory in this folder ??フォルダー?新?ディレクトリを作??る +edit list of hidden files 隠?ファイル?一覧を編集?る +add new user 新?ユーザーを追加?る +delete user ユーザーを削除?る +copy url リモートファイルを??フォルダー?コピー?る +upload to ftp FTP サー?ー?ファイルをアップロード?る + +enter the new description for the file ファイル?新??説明を入力???????。 +change 変更?る +enter the new name 新?????を入力???????。 +create 作??る + +add 追加?る +remove 削除?る +remove a hidden file 隠?ファイルを削除?る +add a new hidden file 隠?ファイルを追加?る + +edit ban list ?止?れ? IP アドレス?ホスト???一覧を編集?る +remove a ban ?止情報を削除?る +add a new ban ?止情報を追加?る (IP アドレス化ホスト???ワイルドカード?使用?????) +the administrator has blocked your ip address or hostname ????ん。???? IP アドレス?も????ホスト???管?者?よりブロック?れ????。 + +view entries from log file ログファイル?らエントリを閲覧?る +view statistics from log file ログファイル?ら統計を閲覧?る +how many entries would you like to view ?れ??ら??エントリを閲覧??????? +view 閲覧?る +page Page +of of + +calculate md5sum md5sum を計算?る +download directory as tar.gz archive ディレクトリを tar.gz アーカイブ???ダウンロード?る diff --git a/languages/ko.txt b/languages/ko.txt new file mode 100644 index 0000000..6f2b7b3 --- /dev/null +++ b/languages/ko.txt @@ -0,0 +1,91 @@ +// 한국어 (Korean) Translation by pandix + +index of Index of +parent directory 상위 디렉토리 +thumbnail of 미리보기 +continue 계속 + +file 파일 +files 파일 +folder 폴더 +folders 폴더 +size 크기 +total size 전체 크기 +total downloads 전체 다운로드수 +total 전체 +date 수정 +description 설명 +downloads 다운로드 +type 형식 +sort by 정렬방식 + +search 검색 +both 모두 +search results for 다음에 대한 검색결과 +and its subdirectories 하위디렉토리 포함 + +account 사용자 계정 +login 로그인 +logout 로그아웃 +username 사용자 +password 비밀번호 +select user to remove 삭제할 사용자를 선택학세요 +are you sure you want to remove the user 사용자를 정말로 삭제하시겠습니까 +delete this user 이 사용자 삭제 +add user 사용자 추가 + +guest 손님 +user 사용자 +mod Moderator +admin 관리자 +level 사용자 레벨 + +rename 이름변경/이동 +renaming 이름변경중 +new filename 새 파일이름 +you can also move the file by specifying a path 특정 경로로 파일을 이동할 수 있습니다 +delete 삭제 +are you sure you want to delete the file 이 파일을 정말로 삭제하시겠습니까 +edit description 설명 편집 +yes, delete 네, 삭제합니다 + +upload 업로드 +files to this folder 개의 파일을 이 폴더에 +uploaded files 업로드한 파일 +failed files 실패한 파일 +none 없음 +file already exists 파일이 이미 있습니다 +filename is listed as a hidden file 숨겨진 파일에 같은 이름이 있습니다 + +reconfigure script 스크립트 재설정 +create new directory in this folder 이 폴더내에 새로운 디렉토리를 만듦니다 +edit list of hidden files 숨김 파일의 목록을 설정합니다 +add new user 새로운 사용자 추가 +delete user 사용자 지우기 +copy url Copy a remote file (to this folder) +upload to ftp upload file to FTP server + +enter the new description for the file 파일의 새로운 설명을 입력하세요 +change 바꾸기 +enter the new name 새 이름을 입력하세요 +create 만들기 + +add 추가 +remove 삭제 +remove a hidden file 숨김파일 삭제 +add a new hidden file 새로운 숨김파일 추가 + +edit ban list 거부 목록의 IP 주소와 호스트네임 편집 +remove a ban 거부 목록에서 제외하기 +add a new ban 거부 목록 추가하기 (IP 주소나 호스트네임, 와일드 카드 사용가능) +the administrator has blocked your ip address or hostname Sorry, the administrator has blocked your IP address or hostname + +view entries from log file 로그 파일 내용 보기 +view statistics from log file 로그 파일 통계 보기 +how many entries would you like to view 얼마나 많은 내용을 표시할까요 +view 보기 +page Page +of of + +calculate md5sum md5sum 계산 +download directory as tar.gz archive 디렉토리를 tar.gz 압축으로 다운받기 diff --git a/languages/ms.txt b/languages/ms.txt new file mode 100644 index 0000000..ee2e5ba --- /dev/null +++ b/languages/ms.txt @@ -0,0 +1,91 @@ +// Fail Bahasa Melayu oleh Ir.Haji Keropok + +index of Indeks tentang +parent directory Direktori Utama +thumbnail of Thumbnail of +continue Bersambung + +file Fail +files Fail-fail +folder Direktori +folders Direktori +size Saiz +total size Jumlah saiz +total downloads Jumlah muatturun +total Jumlah +date Modifait +description Huraian +downloads Muatturun +type Jenis +sort by Asingkan mengikut + +search Cari +both Kedua-duanya +search results for keputusan carian untuk +and its subdirectories dan di bawah direktori + +account Akaun Pengguna +login Log masuk +logout Log keluar +username Namaahli +password Katalaluan +select user to remove Pilih pengguna untuk dibuang +are you sure you want to remove the user Adakah anda pasti untuk membuang pengguna tersebut +delete this user Buang pengguna ini +add user Tambah pengguna + +guest Tetamu +user Pengguna +mod Moderator +admin Pentadbir +level Tahap Pengguna + +rename menamakan/pindah +renaming Menamakankembali +new filename Nama Failbaru +you can also move the file by specifying a path anda boleh pindahkan fail dengan mengkhususkan path +delete buang +are you sure you want to delete the file Adakah anda pasti untuk membuang fail tersebut +edit description ubah huraian +yes, delete Ya, buangkannya + +upload Muatnaik +files to this folder fail ke direktori ini +uploaded files Muatnaik fail +failed files Fail gagal +none Tiada +file already exists fail sudah ada +filename is listed as a hidden file Nama fail sudah tersenarai sebagai fail sembunyi + +reconfigure script Skrip konfigurasi semula +create new directory in this folder Buat direktori baru di dalam folder ini +edit list of hidden files Ubah senarai fail sembunyi +add new user Tambah pengguna baru +delete user Buang pengguna +copy url Copy a remote file (to this folder) +upload to ftp upload file to FTP server + +enter the new description for the file Masukkan huraian baru untuk fail tersebut +change Tukar +enter the new name Masukkan nama baru +create Buat + +add Tambah +remove Buang +remove a hidden file Buang fail sembunyi +add a new hidden file Tambah fail sembunyi baru + +edit ban list Ubah senarai halangan IP dan hostname +remove a ban Buang halangan +add a new ban Tambah halangan baru (Alamat IP atau hostname, anda boleh juga menggunakan wildcard) +the administrator has blocked your ip address or hostname Maaf, pentadbir telah menghalang alamat IP atau hostname anda + +view entries from log file Lihat masukkan dari catatan fail +view statistics from log file Lihat statistik dari catatan fail +how many entries would you like to view Berapa banyakkah masukkan hendak anda lihat +view Lihat +page Page +of of + +calculate md5sum kira md5sum +download directory as tar.gz archive Muatturun direktori sebagai arkib tar.gz diff --git a/languages/nl.txt b/languages/nl.txt new file mode 100644 index 0000000..badc752 --- /dev/null +++ b/languages/nl.txt @@ -0,0 +1,91 @@ +// Dutch langauge file by Raymond + +index of Index van +parent directory Bovenliggende map +thumbnail of Thumbnail van +continue Doorgaan + +file Bestand +files Bestanden +folder Map +folders Mappen +size Grootte +total size Totale Grootte +total downloads Totaal aantal downloads +total Totaal +date Datum +description Beschrijving +downloads Downloads +type Type +sort by Gesorteerd op + +search Zoeken +both Beide +search results for Zoek resultaten van +and its subdirectories en de onderliggende mappen + +account Gebruikers Account +login Login +logout Log out +username Gebruikersnaam +password Wachtwoord +select user to remove Selecteer gebruir om te verwijderen +are you sure you want to remove the user Weet u zeker dat u de gebruiker wil verwijderen +delete this user Verwijder deze gebruiker +add user Voeg gebruiker toe + +guest Gast +user Gebruiker +mod Moderator +admin Admin +level Gebruiker's niveau + +rename hernoem/verplaats +renaming Hernoemen +new filename Nieuwe Bestandsnaam +you can also move the file by specifying a path U kan ook de map verplaatsen door een specifieke pad te specificeren +delete verwijder +are you sure you want to delete the file Weet u zeker dat u dit bestand wilt verwijderen +edit description bewerk beschrijving +yes, delete Ja, verwijderen + +upload Upload +files to this folder Bestand(en) naar deze map +uploaded files Geuploade bestanden +failed files Mislukte bestanden +none Geen +file already exists Bestand bestaat al +filename is listed as a hidden file Bestandsnaam is opgeslagen als verborgen bestand + +reconfigure script Herconfigureer script +create new directory in this folder Maak een nieuwe map in deze map +edit list of hidden files Bewerk lijst van verborgen bestanden +add new user Voeg een nieuwe gebruiker toe +delete user Verwijder gebruiker +copy url Kopieer een bestand van een URL +upload to ftp Upload een bestand naar een FTP server + +enter the new description for the file Geef een nieuwe beschrijving voor het bestand +change Verander +enter the new name Geef een nieuwe naam +create Maak + +add Toevoegen +remove Verwijder +remove a hidden file Verwijder verborgen bestand +add a new hidden file Nieuw verborgen Bestand toevoegen + +edit ban list Bewerk lijst van gebande IP's en hostnames +remove a ban Verwijder een ban +add a new ban Nieuwe ban toevoegen (IP adres of hostname, u kunt wildcards gebruiken) +the administrator has blocked your ip address or hostname Sorry, uw IP-adres of hostname is geblokkeerd door de administrator + +view entries from log file Bekijk notities in het log bestand +view statistics from log file Bekijk de statistieken in het log bestand +how many entries would you like to view Hoeveel notities wilt u bekijken +view Bekijken +page Pagina +of van de + +calculate md5sum Bereken md5sum +download directory as tar.gz archive Download map als tar.gz archief diff --git a/languages/no.txt b/languages/no.txt new file mode 100644 index 0000000..44f278d --- /dev/null +++ b/languages/no.txt @@ -0,0 +1,91 @@ +// Norwegian langauge file by tg90nor + +index of Indeks for +parent directory Modermappe +thumbnail of Forhåndsvisning av +continue Fortsett + +file Fil +files Filer +folder Mappe +folders Mapper +size Størrelse +total size Total størrelse +total downloads Nedlastninger totalt +total Total +date Modifisert +description Beskrivelse +downloads Nedlastninger +type Type +sort by Sorter etter + +search Søk +both Begge +search results for søkeresultater for +and its subdirectories og undermappene + +account Brukerkonto +login Logg inn +logout Logg ut +username Brukernavn +password Passord +select user to remove Velg bruker for fjerning +are you sure you want to remove the user Er du sikker på at du vil fjerne brukeren +delete this user Slett denne brukeren +add user Legg til bruker + +guest Gjest +user Bruker +mod Moderator +admin Admin +level brukerens level + +rename gi nytt navn/flytt +renaming Gir nytt navn +new filename Nytt filnavn +you can also move the file by specifying a path du kan også flytte filen ved å spesifisere en sti +delete slett +are you sure you want to delete the file Er du sikker på at du vil slette filen +edit description endre beskrivelse +yes, delete Ja, slett den + +upload Opplast +files to this folder fil(er) til denne mappen +uploaded files Opplastede filer +failed files Mislykkede filer +none Ingen +file already exists filen eksisterer allerede +filename is listed as a hidden file filnavnet er oppført som en skjult fil + +reconfigure script Rekonfigurer skript +create new directory in this folder Opprett en ny mappe i denne mappen +edit list of hidden files Rediger liste over skjulte filer +add new user Legg til ny bruker +delete user Slett bruker +copy url Copy a remote file (to this folder) +upload to ftp upload file to FTP server + +enter the new description for the file Skriv inn den nye beskrivelsen for filen +change Endre +enter the new name Skriv inn det nye navnet +create Opprett + +add Legg til +remove Fjern +remove a hidden file Fjern en skjult fil +add a new hidden file Legg til en ny skjult fil + +edit ban list Rediger liste over blokkerte IP-er og vertsnavn +remove a ban Fjern en blokkering +add a new ban Legg til en ny blokkering (IP-adresse eller vertsnavn, du kan bruke wildcards) +the administrator has blocked your ip address or hostname Sorry, the administrator has blocked your IP address or hostname + +view entries from log file Vis oppføringer fra logfil +view statistics from log file Vis statistikk fra logfil +how many entries would you like to view Hvor mange oppføringer vil du vise +view Vis +page Page +of of + +calculate md5sum kalkuler md5sum +download directory as tar.gz archive Last ned mappe som tar.gz-arkiv diff --git a/languages/pl.txt b/languages/pl.txt new file mode 100644 index 0000000..7feff88 --- /dev/null +++ b/languages/pl.txt @@ -0,0 +1,91 @@ +// Polish langauge file by Krzysztof Kopeć + +index of Index of +parent directory Katalog macierzysty +thumbnail of Thumbnail z +continue Kontynuuj + +file Plik +files Pliki +folder Folder +folders Foldery +size Rozmiar +total size Całkowity rozmiar +total downloads Suma pobrań +total Całkowity +date Zmodyfikowany +description Opis +downloads Pobierz +type Typ +sort by Sortuj po + +search Wyszukaj +both Obaj +search results for Rezultat wyszukiwania +and its subdirectories i jego podkatalogi + +account Konto użytkownika +login Zaloguj +logout Wyloguj +username Nazwa użytkownika +password Hasło +select user to remove Wybierz uzytkownika do przeniesienia +are you sure you want to remove the user Czy jesteś pewien że chcesz przenieść użytkownika +delete this user Skasuj tego użytkownika +add user Dodaj użytkownika + +guest Gość +user Użytkownik +mod Moderator +admin Administrator +level Poziom użytkownika + +rename zmień nazwę / przenieś +renaming Zmieniając nazwę +new filename Nowa nazwa filmu +you can also move the file by specifying a path możesz też przenieść plik przez wyszczególnianie ścieżki dostępu +delete Skasuj +are you sure you want to delete the file Czy jesteś pewien że chcesz usunąć plik +edit description Edytuj opis +yes, delete Yes, delete it + +upload Załaduj +files to this folder Plik(i) do tego folderu +uploaded files Załadowane pliki +failed files Nie zdołane pliki +none Żaden +file already exists Plik już istnieje +filename is listed as a hidden file nazwa zbioru jest opisana jako zbiór ukryty + +reconfigure script Rekonfiguracja skryptu +create new directory in this folder Utwórz nowy katalog w tym folderze +edit list of hidden files Edytuj listę plików/folderów ukrytych +add new user Dodaj nowego użytkownika +delete user Usuń użytkownika +copy url Copy a remote file (to this folder) +upload to ftp upload file to FTP server + +enter the new description for the file Wprowadź nowy opis do pliku +change Zmień +enter the new name Wprowadź nową nazwę +create Utwórz + +add Dodaj +remove Przenieś +remove a hidden file Przenieś zbiór ukryty +add a new hidden file Dodaj nowy zbiór ukryty + +edit ban list Edytuj listę zakazanych IPs i hostnames +remove a ban Usuń zakaz +add a new ban Dodaj nowy zakaz (adres IP albo hostname, możesz użyć znaków uniwersalnych) +the administrator has blocked your ip address or hostname Przepraszam, administrator zablokował twój adres IP albo hostname + +view entries from log file Zapis widoku z pliku rejestru +view statistics from log file Statystyki widoku z pliku rejestru +how many entries would you like to view Jak wiele zapisów chciałbyś oglądnąć +view Widok +page Page +of of + +calculate md5sum oblicza md5sum +download directory as tar.gz archive Pobierz katalog jak plik archiwum tar.gz diff --git a/languages/pt_BR.txt b/languages/pt_BR.txt new file mode 100644 index 0000000..e210ef0 --- /dev/null +++ b/languages/pt_BR.txt @@ -0,0 +1,92 @@ +// Brazilian style Portuguese translation +// by Marcelo Pelagio Pontes Morais at pontesmorais@yahoo.com + +index of Índice de +parent directory Diretório Pai +thumbnail of Miniatura de +continue Continuar + +file Arquivo +files Arquivos +folder Diretório +folders Diretórios +size Tamanho +total size Tamanho total +total downloads Total de downloads +total Total +date Modificado +description Descrição +downloads Downloads +type Tipo +sort by Ordenar por + +search Procurar +both Ambos +search results for Resultados da busca para +and its subdirectories e seus subdiretórios + +account Conta do Usuário +login Conectar +logout Desconectar +username Nome de Usuário +password Senha +select user to remove Selecione qual usuário remover +are you sure you want to remove the user Tem certeza que deseja remover este usuário +delete this user Remover este usuário +add user Adicionar Usuário + +guest Convidado +user Usuário +mod Moderator +admin Administrador +level Nível do usuário + +rename renomear/mover +renaming Renomeando +new filename Novo nome de arquivo +you can also move the file by specifying a path Você também pode mover o arquivo especificando um caminho +delete apagar +are you sure you want to delete the file Têm certeza que deseja apagar o arquivo +edit description editar descrição +yes, delete Sim, apagar + +upload Enviar +files to this folder arquivos para este diretório +uploaded files Arquivos enviados +failed files Arquivos não enviados +none Nenhum +file already exists Arquivo já existe +filename is listed as a hidden file o nome do arquivo é listado como um arquivo oculto + +reconfigure script Reconfigurar script +create new directory in this folder Criar um novo subdiretório neste diretório +edit list of hidden files Editar lista dos arquivos ocultos +add new user Adicionar novo usuário +delete user Remover usuário +copy url Copy a remote file (to this folder) +upload to ftp upload file to FTP server + +enter the new description for the file Entre a nova descrição para o arquivo +change Modificar +enter the new name Entre o novo nome +create Criar + +add Adicionar +remove Remover +remove a hidden file Remover um arquivo escondido +add a new hidden file Adicionar um novo arquivo escondido + +edit ban list Editar a lista de IPs e hosts com banners +remove a ban Remover um banner +add a new ban Adicionar um novo banner (endereço IP ou hostname. Você pode usar caracteres curinga) +the administrator has blocked your ip address or hostname Sorry, the administrator has blocked your IP address or hostname + +view entries from log file Ver entradas no arquivo de Log +view statistics from log file Ver estatísticas do arquivo de Log +how many entries would you like to view Quantas entradas você deseja ver +view Ver +page Page +of of + +calculate md5sum calcular md5sum +download directory as tar.gz archive Fazer Download do diretório como um arquivo 'tar.gz' diff --git a/languages/ru.txt b/languages/ru.txt new file mode 100644 index 0000000..b0fbbf4 --- /dev/null +++ b/languages/ru.txt @@ -0,0 +1,91 @@ +// Russian langauge file by Andrey Olischuk + +index of Индекс +parent directory Родительская директория +thumbnail of Пиктограмма +continue Продолжить + +file Файл +files Файлы +folder Папка +folders Папки +size Размер +total size Общий размер +total downloads Всего скачано +total Всего +date Изменено +description Описание +downloads Загрузка +type Тип +sort by Сортировать по + +search Поиск +both Оба +search results for Результаты поиска для +and its subdirectories и подкаталоги + +account Аккаунт +login Вход в систему +logout Выход из системы +username Имя пользователя +password Пароль +select user to remove Выберите пользователя для удаления +are you sure you want to remove the user Вы уверены, что хотите удалить этого пользователя +delete this user Удалить этого пользователя +add user Добавить пользователя + +guest Гость +user Пользователь +mod Moderator +admin Администратор +level Уровень + +rename Переименовать +renaming Переименование +new filename Новое имя файла +you can also move the file by specifying a path Вы так же можете переместить файл, указав путь +delete Удалить +are you sure you want to delete the file Вы уверены, что хотите удалить этот файл +edit description Редактировать описание +yes, delete Да, удалить + +upload Закачать +files to this folder Файлы в данную папку +uploaded files Закачаные файлы +failed files Не закачанные файлы +none Нет +file already exists Файл уже существует +filename is listed as a hidden Файл помечен как скрытый + +reconfigure script Переконфигурировать скрипт +create new directory in this folder Создать новую директорию в данной +edit list of hidden files Редактировать список скрытых файлов +add new user Добавить нового пользователя +delete user Удалить пользователя +copy url Copy a remote file (to this folder) +upload to ftp upload file to FTP server + +enter the new description for the file Введите новое описание файла +change Изменить +enter the new name Введите новое имя +create Создать + +add Добавить +remove Удалить +remove a hidden file Удалить скрытый файл +add a new hidden file Добавить новый скрытый файл + +edit ban list Редактировать список забаненых +remove a ban Снять бан +add a new ban Добавить в список забаненых +the administrator has blocked your ip address or hostname Sorry, the administrator has blocked your IP address or hostname + +view entries from log file Просмотреть лог-файл +view statistics from log file Просмотреть статистику из лог-файла +how many entries would you like to view Сколько записей вы хотите просмотреть +view Просмотреть +page Page +of of + +calculate md5sum Рассчитать md5sum +download directory as tar.gz archive Скачать директорию в виде tar.gz архива diff --git a/languages/sk.txt b/languages/sk.txt new file mode 100644 index 0000000..c7f6225 --- /dev/null +++ b/languages/sk.txt @@ -0,0 +1,91 @@ +// Slovenský preklad, vytvoril keeper7 + +index of Výpis z +parent directory Nadradený adresár +thumbnail of Miniatúra +continue Pokračovať + +file Súbor +files Súbory +folder Zložka +folders Zložky +size Veľkost +total size Celková veľkost +total downloads Celkom stiahnuté +total Celkovov +date Upravené +description Popis +downloads Stiahnuté +type Typ +sort by Triediť podľa + +search Vyhľedať +both Všetko +search results for výsledky vyhľadávania pre +and its subdirectories a jeho podzložky + +account Užívatelský účet +login Prihlásiť +logout Odhlásiť +username Užívateľské meno +password Heslo +select user to remove vyberte uživateľa na zmazanie +are you sure you want to remove the user Ste si istý, že chcete zmazat užívateľa +delete this user Zmazať užívateľa +add user Pridať užívateľa + +guest Hosť +user Užívateľ +mod Moderátor +admin Administrátor +level Užívateľská úroveň + +rename premenovať/presunúť +renaming Premenovanie +new filename Nové meno súboru +you can also move the file by specifying a path môžete tiež presunúť súbor určením cesty +delete zmazať +are you sure you want to delete the file Ste si istý, že chcete zmazať súbor +edit description upraviť popis +yes, delete Áno, zmazať + +upload Nahrať +files to this folder súbor(y) do tejto zložky +uploaded files Nahraté súbory +failed files Nahrávanie zlyhalo +none Žiadne +file already exists súbor už existuje +filename is listed as a hidden file meno súboru je v zozname skrytých súborov + +reconfigure script Prekonfigurovať skript +create new directory in this folder Vytvoriť nový adresár (v tejto zložke) +edit list of hidden files Upraviť zoznam skrytých súborov +add new user Pridať nového užívateľa +delete user Zmazať užívateľa +copy url Kopírovať vzdialený súbor (do tejto zložky) +upload to ftp nahrať súbor na FTP server + +enter the new description for the file Vložiť nový popis k súboru +change Zmeniť +enter the new name Vložiť nové meno +create Vytvoriť + +add Pridať +remove Odobrať +remove a hidden file Odobrar skrytý súbor +add a new hidden file Pridať skrytý súbor + +edit ban list Upravit zoznam zakázaných IP adries a hostnames +remove a ban Odobrať zákaz +add a new ban Pridať nový zákaz (IP addresa alebo hostname, môžete použiť značky napr *.host.sk) +the administrator has blocked your ip address or hostname Prepáčte, ale správca zablokoval vašu IP adresu alebo hostname + +view entries from log file Zobraziť návštevy z logu +view statistics from log file Zobraziť štatistiky z logu +how many entries would you like to view Koľko položiek chcete zobraziť +view Zobraziť +page Page +of of + +calculate md5sum spočítať md5sum +download directory as tar.gz archive Stiahnúť zložku ako tar.gz archív diff --git a/languages/sv.txt b/languages/sv.txt new file mode 100644 index 0000000..ad35c9e --- /dev/null +++ b/languages/sv.txt @@ -0,0 +1,91 @@ +// Swedish langauge file by -=FrItZ=- + +index of Indexering av +parent directory Upp en niv +thumbnail of Miniatyrbild av +continue Fortstt + +file Fil +files Filer +folder Mapp +folders Mappar +size Storlek +total size Total storlek +total downloads Totalt nedladdat +total Totalt +date ndrad +description Frklaring +downloads Nedladdningar +type Typ +sort by Sorta efter + +search Sk +both Bde +search results for sk resultat av +and its subdirectories och dess undermappar + +account Anvndarkonto +login Logga in +logout Logga ut +username Anvndarnamn +password Lsenord +select user to remove Vlj anvndare att ta bort +are you sure you want to remove the user r du sker p att du vill ta bort anvndaren +delete this user Radera denna anvndare +add user Skapa anvndare + +guest Gst +user Vanlig anvndare +mod Moderator +admin Administratr +level Anvndarniv + +rename Dp om/flytta +renaming Dper om +new filename Nytt filnamn +you can also move the file by specifying a path Du kan flytta en fil genom att ange en skvg +delete Radera +are you sure you want to delete the file r du sker p att du vill radera filen +edit description ndra frklaring +yes, delete Ja, radera den + +upload Ladda upp +files to this folder fil(er) till denna mapp +uploaded files Uppladdade filer +failed files Misslyckade filer +none Inga +file already exists filen existerar redan +filename is listed as a hidden file filnamnet finns som dold fil + +reconfigure script Konfigurera om scriptet +create new directory in this folder Skapa ny mapp (i denna mapp) +edit list of hidden files ndra listan av dolda filer +add new user Lgg till anvndare +delete user Radera anvndare +copy url Kopiera en remote fil (till denna mapp) +upload to ftp Ladda upp fil till FTP server + +enter the new description for the file Skriv ny frklaring till filen +change ndra +enter the new name Skriv nytt namn +create Skapa + +add Lgg till +remove Ta bort +remove a hidden file Ta bort en dold fil +add a new hidden file Lgg till en dold fil + +edit ban list ndra listan med bannade IPs och vrdnamn +remove a ban Ta bort en ban +add a new ban Lgg till en ban (IP adress eller vrdnamn, du kan anvnda wildcards) +the administrator has blocked your ip address or hostname Fuck U, Administratren har blockerat dig + +view entries from log file Se anslutningar frn loggfil +view statistics from log file Se statistik frn loggfil +how many entries would you like to view Hur mnga anslutningar vill du se +view Se +page Page +of of + +calculate md5sum Kalkylera md5sum +download directory as tar.gz archive Ladda ner mapp som tar.gz arkiv diff --git a/languages/th.txt b/languages/th.txt new file mode 100644 index 0000000..1ac6cac --- /dev/null +++ b/languages/th.txt @@ -0,0 +1,91 @@ +//Thai langauge file by maxzerker@hotmail.com + +index of Ѫբͧ +parent directory ͹˹ +thumbnail of ͺٻͧ +continue + +file +files +folder +folders +size Ҵ +total size Ҵ +total downloads ǹŴ +total +date +description ´ +downloads ǹŴ +type Դ +sort by § + +search +both 駤 +search results šäѺ +and its subdirectories 駫Ѻ + +account ѭռ +login к +logout ͡ҡк +username ͼ +password ʼҹ +select user to remove ͡ͼź͡ +are you sure you want to remove the user سҵͧźͼ +delete this user źͼ +add user ͼ + +guest ᢡ +user +mod Moderator +admin к +level дѺͧ + +rename ¹/͹ +renaming ѧ¹ +new filename +you can also move the file by specifying a path سö͹¡кط +delete ź +are you sure you want to delete the file سͷź +edit description ´ +yes, delete źѹ() + +upload Ŵ +files to this folder +uploaded files Ŵ +failed files +none +file already exists +filename is listed as a hidden file ١Ѵ١͹ + +reconfigure script 觤ʤԻ +create new directory in this folder ҧ +edit list of hidden files ¡âͧ١͹ +add new user +delete user ź +copy url Copy a remote file (to this folder) +upload to ftp upload file to FTP server + +enter the new description for the file к´ͧ +change ¹ +enter the new name кت +create ҧ + +add +remove ͡ +remove a hidden file ١͹͡ +add a new hidden file ŷ١͹ + +edit ban list ¡ẹ;Ъʷ +remove a ban ẹ͡ +add a new ban ¡ẹ (к ; ʷ,سöŴ) +the administrator has blocked your ip address or hostname ¼кӡú͡ ; ʷ ͧس + +view entries from log file ʴ¡èҡ͡ +view statistics from log file ʴʶԵԨҡ͡ +how many entries would you like to view ӹǹͧ¡÷سͧ÷ʴ +view ʴ +page Page +of of + +calculate md5sum ӹdz MD5 +download directory as tar.gz archive ǹŴ tar.gz diff --git a/languages/tr.txt b/languages/tr.txt new file mode 100644 index 0000000..2f4c6d4 --- /dev/null +++ b/languages/tr.txt @@ -0,0 +1,91 @@ +// Turkish language file by Sinan Keskn + +index of indekiler +parent directory Ana Dizin +thumbnail of Kk Resmi +continue Devam + +file Dosya +files Dosyalar +folder Klasr +folders Klasrler +size Boyut +total size Toplam boyut +total downloads Toplam indirilme +total Toplam +date Deitirilme +description Tanmlama +downloads ndirilmeler +type Tip +sort by Sralama + +search Arama +both Her kiside +search results for Arama sonular +and its subdirectories ve altdizinleri + +account Kullanc Hesab +login Giri +logout k +username Kullanc Ad +password ifre +select user to remove Silinecek kullancy sein +are you sure you want to remove the user Kullanc silmek istediinizden emin misiniz +delete this user Bu kullancy sil +add user Kullanc Ekle + +guest Misafir +user Kullanc +mod Moderator +admin Ynetici +level Kullanc Seviyeleri + +rename Yeniden adlandr/Ta +renaming Yeniden adlandrma +new filename Yeni Dosya smi +you can also move the file by specifying a path belirtilen yol ile bu dosyay tayabilirsiniz +delete sil +are you sure you want to delete the file Bu dosyay silmek istediinizden emin misiniz +edit description tanmlama dzenle +yes, delete Evet, sil + +upload Karya gnder +files to this folder dosyalar bu klasre +uploaded files Karya gnderilmi dosyalar +failed files Baarsz dosyalar +none Yok +file already exists dosya zaten var +filename is listed as a hidden file dosya ismi gizli dosya olarak listeleniyor + +reconfigure script Scripti yeniden konfigre et +create new directory in this folder Bu klasrde yeni bir dizin olutur +edit list of hidden files Gizli dosyalarn listesini dzenle +add new user Yeni kullanc ekle +delete user Kullanc sil +copy url Copy a remote file (to this folder) +upload to ftp upload file to FTP server + +enter the new description for the file Dosya iin yeni bir tanmlama girin +change Deitir +enter the new name Yeni isim girin +create Olutur + +add Ekle +remove Sil +remove a hidden file Gizli bir dosya sil +add a new hidden file Gizli bir dosya ekle + +edit ban list Banl IP ve adreslerin listesini dzenle +remove a ban Ban sil +add a new ban Yeni ban ekle (Ip ya da adres) +the administrator has blocked your ip address or hostname Sorry, the administrator has blocked your IP address or hostname + +view entries from log file Logtan girdileri gster +view statistics from log file Logtan istatistikleri gster +how many entries would you like to view Ka girdi grmek istiyorsunuz +view Gster +page Page +of of + +calculate md5sum md5sum hesapla +download directory as tar.gz archive Dizini tar.gz ariv olarak indir diff --git a/license.html b/license.html new file mode 100644 index 0000000..7a5dc0c --- /dev/null +++ b/license.html @@ -0,0 +1,424 @@ + + + + + + GNU General Public License + + + + + + + + + + + +

    GNU General Public License

    + +

    Version 2, June 1991

    +
    +Copyright (C) 1989, 1991 Free Software Foundation, Inc.
    +59 Temple Place - Suite 330, Boston, MA  02111-1307, USA
    +
    +Everyone is permitted to copy and distribute verbatim copies
    +of this license document, but changing it is not allowed.
    +
    + +

    Preamble

    + +

    The licenses for most software are designed to take away +your freedom to share and change it. By contrast, the GNU +General Public License is intended to guarantee your freedom +to share and change free software--to make sure the software +is free for all its users. This General Public License +applies to most of the Free Software Foundation's +software and to any other program whose authors commit to +using it. (Some other Free Software Foundation software is +covered by the GNU Library General Public License instead.) +You can apply it to your programs, too.

    + +

    When we speak of free software, we are referring to +freedom, not price. Our General Public Licenses are designed +to make sure that you have the freedom to distribute copies +of free software (and charge for this service if you wish), +that you receive source code or can get it if you want it, +that you can change the software or use pieces of it in new +free programs; and that you know you can do these things.

    + +

    To protect your rights, we need to make restrictions that +forbid anyone to deny you these rights or to ask you to +surrender the rights. These restrictions translate to certain +responsibilities for you if you distribute copies of the +software, or if you modify it.

    + +

    For example, if you distribute copies of such a program, +whether gratis or for a fee, you must give the recipients all +the rights that you have. You must make sure that they, too, +receive or can get the source code. And you must show them +these terms so they know their rights.

    + +

    We protect your rights with two steps: (1) copyright the +software, and (2) offer you this license which gives you +legal permission to copy, distribute and/or modify the +software.

    + +

    Also, for each author's protection and ours, we want +to make certain that everyone understands that there is no +warranty for this free software. If the software is modified +by someone else and passed on, we want its recipients to know +that what they have is not the original, so that any problems +introduced by others will not reflect on the original +authors' reputations.

    + +

    Finally, any free program is threatened constantly by +software patents. We wish to avoid the danger that +redistributors of a free program will individually obtain +patent licenses, in effect making the program proprietary. To +prevent this, we have made it clear that any patent must be +licensed for everyone's free use or not licensed at +all.

    + +

    The precise terms and conditions for copying, distribution +and modification follow.

    + +

    TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND +MODIFICATION

    + +

    0. This License applies to any program or +other work which contains a notice placed by the copyright +holder saying it may be distributed under the terms of this +General Public License. The "Program", below, +refers to any such program or work, and a "work based on +the Program" means either the Program or any derivative +work under copyright law: that is to say, a work containing +the Program or a portion of it, either verbatim or with +modifications and/or translated into another language. +(Hereinafter, translation is included without limitation in +the term "modification".) Each licensee is +addressed as "you".

    + +

    Activities other than copying, distribution and +modification are not covered by this License; they are +outside its scope. The act of running the Program is not +restricted, and the output from the Program is covered only +if its contents constitute a work based on the Program +(independent of having been made by running the Program). +Whether that is true depends on what the Program does.

    + +

    1. You may copy and distribute verbatim +copies of the Program's source code as you receive it, in +any medium, provided that you conspicuously and appropriately +publish on each copy an appropriate copyright notice and +disclaimer of warranty; keep intact all the notices that +refer to this License and to the absence of any warranty; and +give any other recipients of the Program a copy of this +License along with the Program.

    + +

    You may charge a fee for the physical act of transferring +a copy, and you may at your option offer warranty protection +in exchange for a fee.

    + +

    2. You may modify your copy or copies of +the Program or any portion of it, thus forming a work based +on the Program, and copy and distribute such modifications or +work under the terms of Section 1 above, provided that you +also meet all of these conditions:

    + +
      +
    • a) You must cause the modified files +to carry prominent notices stating that you changed the +files and the date of any change.
    • + +
    • b) You must cause any work that you +distribute or publish, that in whole or in part contains or +is derived from the Program or any part thereof, to be +licensed as a whole at no charge to all third parties under +the terms of this License.
    • + +
    • c) If the modified program normally +reads commands interactively when run, you must cause it, +when started running for such interactive use in the most +ordinary way, to print or display an announcement including +an appropriate copyright notice and a notice that there is +no warranty (or else, saying that you provide a warranty) +and that users may redistribute the program under these +conditions, and telling the user how to view a copy of this +License. (Exception: if the Program itself is interactive +but does not normally print such an announcement, your work +based on the Program is not required to print an +announcement.)
    • +
    + +

    These requirements apply to the modified work as a whole. +If identifiable sections of that work are not derived from +the Program, and can be reasonably considered independent and +separate works in themselves, then this License, and its +terms, do not apply to those sections when you distribute +them as separate works. But when you distribute the same +sections as part of a whole which is a work based on the +Program, the distribution of the whole must be on the terms +of this License, whose permissions for other licensees extend +to the entire whole, and thus to each and every part +regardless of who wrote it.

    + +

    Thus, it is not the intent of this section to claim rights +or contest your rights to work written entirely by you; +rather, the intent is to exercise the right to control the +distribution of derivative or collective works based on the +Program.

    + +

    In addition, mere aggregation of another work not based on +the Program with the Program (or with a work based on the +Program) on a volume of a storage or distribution medium does +not bring the other work under the scope of this License.

    + +

    3. You may copy and distribute the +Program (or a work based on it, under Section 2) in object +code or executable form under the terms of Sections 1 and 2 +above provided that you also do one of the following: +

    + +
      +
    • a) Accompany it with the complete +corresponding machine-readable source code, which must be +distributed under the terms of Sections 1 and 2 above on a +medium customarily used for software interchange; or,
    • + +
    • b) Accompany it with a written offer, +valid for at least three years, to give any third party, +for a charge no more than your cost of physically +performing source distribution, a complete machine-readable +copy of the corresponding source code, to be distributed +under the terms of Sections 1 and 2 above on a medium +customarily used for software interchange; or,
    • + +
    • c) Accompany it with the information +you received as to the offer to distribute corresponding +source code. (This alternative is allowed only for +noncommercial distribution and only if you received the +program in object code or executable form with such an +offer, in accord with Subsection b above.)
    • +
    + +

    The source code for a work means the preferred form of the +work for making modifications to it. For an executable work, +complete source code means all the source code for all +modules it contains, plus any associated interface definition +files, plus the scripts used to control compilation and +installation of the executable. However, as a special +exception, the source code distributed need not include +anything that is normally distributed (in either source or +binary form) with the major components (compiler, kernel, and +so on) of the operating system on which the executable runs, +unless that component itself accompanies the executable.

    + +

    If distribution of executable or object code is made by +offering access to copy from a designated place, then +offering equivalent access to copy the source code from the +same place counts as distribution of the source code, even +though third parties are not compelled to copy the source +along with the object code.

    + +

    4. You may not copy, modify, sublicense, +or distribute the Program except as expressly provided under +this License. Any attempt otherwise to copy, modify, +sublicense or distribute the Program is void, and will +automatically terminate your rights under this License. +However, parties who have received copies, or rights, from +you under this License will not have their licenses +terminated so long as such parties remain in full +compliance.

    + +

    5. You are not required to accept this +License, since you have not signed it. However, nothing else +grants you permission to modify or distribute the Program or +its derivative works. These actions are prohibited by law if +you do not accept this License. Therefore, by modifying or +distributing the Program (or any work based on the Program), +you indicate your acceptance of this License to do so, and +all its terms and conditions for copying, distributing or +modifying the Program or works based on it.

    + +

    6. Each time you redistribute the Program +(or any work based on the Program), the recipient +automatically receives a license from the original licensor +to copy, distribute or modify the Program subject to these +terms and conditions. You may not impose any further +restrictions on the recipients' exercise of the rights +granted herein. You are not responsible for enforcing +compliance by third parties to this License.

    + +

    7. If, as a consequence of a court +judgment or allegation of patent infringement or for any +other reason (not limited to patent issues), conditions are +imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, +they do not excuse you from the conditions of this License. +If you cannot distribute so as to satisfy simultaneously your +obligations under this License and any other pertinent +obligations, then as a consequence you may not distribute the +Program at all. For example, if a patent license would not +permit royalty-free redistribution of the Program by all +those who receive copies directly or indirectly through you, +then the only way you could satisfy both it and this License +would be to refrain entirely from distribution of the +Program.

    + +

    If any portion of this section is held invalid or +unenforceable under any particular circumstance, the balance +of the section is intended to apply and the section as a +whole is intended to apply in other circumstances.

    + +

    It is not the purpose of this section to induce you to +infringe any patents or other property right claims or to +contest validity of any such claims; this section has the +sole purpose of protecting the integrity of the free software +distribution system, which is implemented by public license +practices. Many people have made generous contributions to +the wide range of software distributed through that system in +reliance on consistent application of that system; it is up +to the author/donor to decide if he or she is willing to +distribute software through any other system and a licensee +cannot impose that choice.

    + +

    This section is intended to make thoroughly clear what is +believed to be a consequence of the rest of this License.

    + +

    8. If the distribution and/or use of the +Program is restricted in certain countries either by patents +or by copyrighted interfaces, the original copyright holder +who places the Program under this License may add an explicit +geographical distribution limitation excluding those +countries, so that distribution is permitted only in or among +countries not thus excluded. In such case, this License +incorporates the limitation as if written in the body of this +License.

    + +

    9. The Free Software Foundation may +publish revised and/or new versions of the General Public +License from time to time. Such new versions will be similar +in spirit to the present version, but may differ in detail to +address new problems or concerns.

    + +

    Each version is given a distinguishing version number. If +the Program specifies a version number of this License which +applies to it and "any later version", you have the +option of following the terms and conditions either of that +version or of any later version published by the Free +Software Foundation. If the Program does not specify a +version number of this License, you may choose any version +ever published by the Free Software Foundation.

    + +

    10. If you wish to incorporate parts of +the Program into other free programs whose distribution +conditions are different, write to the author to ask for +permission. For software which is copyrighted by the Free +Software Foundation, write to the Free Software Foundation; +we sometimes make exceptions for this. Our decision will be +guided by the two goals of preserving the free status of all +derivatives of our free software and of promoting the sharing +and reuse of software generally.

    + +

    NO WARRANTY

    + +

    11. BECAUSE THE PROGRAM IS LICENSED FREE +OF CHARGE, THERE IS NO WARRANTY FOR THE PROGRAM, TO THE +EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE +STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES +PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY +KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED +TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND +PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM +PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY +SERVICING, REPAIR OR CORRECTION.

    + +

    12. IN NO EVENT UNLESS REQUIRED BY +APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT +HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE +THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, +INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL +DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE +PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA +BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD +PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER +PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN +ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.

    + +

    END OF TERMS AND CONDITIONS

    + +

    How to Apply These Terms to Your New Programs

    + +

    If you develop a new program, and you want it to be of the greatest +possible use to the public, the best way to achieve this is to make it +free software which everyone can redistribute and change under these +terms.

    + +

    To do so, attach the following notices to the program. It is safest +to attach them to the start of each source file to most effectively +convey the exclusion of warranty; and each file should have at least +the "copyright" line and a pointer to where the full notice is found.

    + +
    +    <one line to give the program's name and a brief idea of what it does.>
    +    Copyright (C) <year>  <name of author>
    +
    +    This program is free software; you can redistribute it and/or modify
    +    it under the terms of the GNU General Public License as published by
    +    the Free Software Foundation; either version 2 of the License, or
    +    (at your option) any later version.
    +
    +    This program is distributed in the hope that it will be useful,
    +    but WITHOUT ANY WARRANTY; without even the implied warranty of
    +    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    +    GNU General Public License for more details.
    +
    +    You should have received a copy of the GNU General Public License
    +    along with this program; if not, write to the Free Software
    +    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
    +
    + + +

    Also add information on how to contact you by electronic and paper mail.

    + +

    If the program is interactive, make it output a short notice like this +when it starts in an interactive mode:

    +
    +    Gnomovision version 69, Copyright (C) year name of author
    +    Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
    +    This is free software, and you are welcome to redistribute it
    +    under certain conditions; type `show c' for details.
    +
    + +

    The hypothetical commands `show w' and `show c' should show the appropriate +parts of the General Public License. Of course, the commands you use may +be called something other than `show w' and `show c'; they could even be +mouse-clicks or menu items--whatever suits your program.

    + +

    You should also get your employer (if you work as a programmer) or your +school, if any, to sign a "copyright disclaimer" for the program, if +necessary. Here is a sample; alter the names:

    +
    +  Yoyodyne, Inc., hereby disclaims all copyright interest in the program
    +  `Gnomovision' (which makes passes at compilers) written by James Hacker.
    +
    +  <signature of Ty Coon>, 1 April 1989
    +  Ty Coon, President of Vice
    +
    + +

    This General Public License does not permit incorporating your program into +proprietary programs. If your program is a subroutine library, you may +consider it more useful to permit linking proprietary applications with the +library. If this is what you want to do, use the GNU Library General +Public License instead of this License.

    + + + \ No newline at end of file diff --git a/meta.inc b/meta.inc new file mode 100644 index 0000000..66a601b --- /dev/null +++ b/meta.inc @@ -0,0 +1,14 @@ + +?> \ No newline at end of file diff --git a/robots.txt b/robots.txt new file mode 100644 index 0000000..13faffe --- /dev/null +++ b/robots.txt @@ -0,0 +1,19 @@ +User-agent: msnbot +User-agent: googlebot +User-agent: yahoo! slurp +User-agent: Slurp +User-agent: lycosbot +Disallow: /admin +Disallow: /cache +Disallow: /config +Disallow: /include +Disallow: /install +Disallow: /modules + +User-agent: * +Disallow: /admin +Disallow: /cache +Disallow: /config +Disallow: /include +Disallow: /install +Disallow: /modules \ No newline at end of file diff --git a/templates/SwiftBlue/SwiftBlue.cfg b/templates/SwiftBlue/SwiftBlue.cfg new file mode 100644 index 0000000..d4ccfb7 --- /dev/null +++ b/templates/SwiftBlue/SwiftBlue.cfg @@ -0,0 +1,293 @@ +The mxBB Development Team
    '; + +// +// When creating a new template, you normally "clone" a template and modify a number of *.tpl files. +// For similar templates this means only a few files are different. +// For example: you may have a template similar to subSilver, but with a different overall_header.tpl - the other files are identical. +// Then this template should only contain one *.tpl file, namely overall_header.tpl, +// and with $mx_template_settings['cloned_template'] = 'subSilver'. +// If this template is a full set of *.tpl files, leave this blank. +$mx_template_settings['cloned_template'] = '_core'; + +// +// Block border graphics are defined in mx_main_layout.tpl, within the 'graph_border' template environment. +// Turning this setting 'false' will disable block border graphics. +$mx_template_settings['border_graphics'] = false; + +/********************************************************************************\ +| Define what graphics bundles to use +| - these are very handy paths to ALL kind of phpBB/MX-Publisher graphics +\********************************************************************************/ +$mx_images['mx_graphics']['general'] = file_exists( $mx_root_path . $current_template_path . "/images/logo.gif" ) ? $current_template_path . "/images" : ( file_exists( $mx_root_path . $cloned_template_path . "/images/logo.gif" ) ? $cloned_template_path . "/images" : $default_template_path . "/images" ); +$mx_images['mx_graphics']['page_icons'] = file_exists( $mx_root_path . $current_template_path . "/images/page_icons" ) ? $current_template_path . "/images/page_icons" : ( file_exists( $mx_root_path . $cloned_template_path . "/images/page_icons" ) ? $cloned_template_path . "/images/page_icons" : $default_template_path . "/images/page_icons" ); +$mx_images['mx_graphics']['block_icons'] = file_exists( $mx_root_path . $current_template_path . "/images/block_icons" ) ? $current_template_path . "/images/block_icons" : ( file_exists( $mx_root_path . $cloned_template_path . "/images/block_icons" ) ? $cloned_template_path . "/images/block_icons" : $default_template_path . "/images/block_icons" ); +$mx_images['mx_graphics']['menu_icons'] = file_exists( $mx_root_path . $current_template_path . "/images/menu_icons" ) ? $current_template_path . "/images/menu_icons" : ( file_exists( $mx_root_path . $cloned_template_path . "/images/menu_icons" ) ? $cloned_template_path . "/images/menu_icons" : $default_template_path . "/images/menu_icons" ); +$mx_images['mx_graphics']['admin_icons'] = file_exists( $mx_root_path . $current_template_path . "/images/admin_icons" ) ? $current_template_path . "/images/admin_icons" : ( file_exists( $mx_root_path . $cloned_template_path . "/images/admin_icons" ) ? $cloned_template_path . "/images/admin_icons" : $default_template_path . "/images/admin_icons" ); +$mx_images['mx_graphics']['phpbb_icons'] = !empty($current_template_path) && file_exists( $phpbb_root_path . $current_template_path . "/images" ) ? $current_template_path . "/images" : ( !empty($cloned_template_path) && file_exists( $phpbb_root_path . $cloned_template_path . "/images" ) ? $cloned_template_path . "/images" : $default_template_path . "/images"); + +// +// Prefix all paths to get full img URLs +// +$current_template_images = PORTAL_URL . $mx_images['mx_graphics']['general']; // Logo etc +$current_template_page_images = PORTAL_URL . $mx_images['mx_graphics']['page_icons']; // Used by adminCP - Pages +$current_template_block_images = PORTAL_URL . $mx_images['mx_graphics']['block_icons']; // Used by userCP block buttons +$current_template_menu_images = PORTAL_URL . $mx_images['mx_graphics']['menu_icons']; // Used by adminCP - Navigation Menu +$current_template_admin_images = PORTAL_URL . $mx_images['mx_graphics']['admin_icons']; // Internal graphics for the MX-Publisher adminCP +$current_template_phpbb_images = PHPBB_URL . $mx_images['mx_graphics']['phpbb_icons']; // phpBB graphics template +$current_template_theme_images = PORTAL_URL . $current_template_path . '/theme/images'; + +// +// Standalone MX-Publisher installation? Where are the phpbb images? +// +//$current_template_phpbb_images = PHPBB_URL . $mx_images['mx_graphics']['phpbb_icons']; // phpBB graphics template +$current_template_phpbb_images = PHPBB_URL . $mx_images['mx_graphics']['phpbb_icons']; // phpBB graphics template + +// +// Define the icon css style +// +$mx_images['mx_graphics']['icon_style'] = +''; + +/********************************************************************************\ +| Page Navigation Images +| 1. If you want to control the overall_header.tpl images from this *.cfg file, make defintions below +| 2. Or if not, use hardcoded image paths in overall_header.tpl, just like in the phpBB standard subSilver overall_header.tpl. +\********************************************************************************/ +// +// Use MX-Publisher graphics - normally the menu_icons bundle +// +$mx_images['mx_nav_home'] = "$current_template_menu_images/icon_home.gif"; // {NAV_IMAGES_HOME} +$mx_images['mx_nav_forum'] = "$current_template_menu_images/icon_forum.gif"; // {NAV_IMAGES_FORUM} +$mx_images['mx_nav_profile'] = "$current_template_menu_images/icon_profile.gif"; // {NAV_IMAGES_PROFILE} +$mx_images['mx_nav_faq'] = "$current_template_menu_images/icon_faq.gif"; // {NAV_IMAGES_FAQ} +$mx_images['mx_nav_search'] = "$current_template_menu_images/icon_search.gif"; // {NAV_IMAGES_SEARCH} +$mx_images['mx_nav_members'] = "$current_template_menu_images/icon_members.gif"; // {NAV_IMAGES_MEMBERS} +$mx_images['mx_nav_groups'] = "$current_template_menu_images/icon_groups.gif"; // {NAV_IMAGES_GROUPS} +$mx_images['mx_nav_mail'] = "$current_template_menu_images/icon_mail.gif"; // {NAV_IMAGES_PRIVMSG} +$mx_images['mx_nav_login'] = "$current_template_menu_images/icon_login.gif"; // {NAV_IMAGES_LOGIN_LOGOUT} +$mx_images['mx_nav_register'] = "$current_template_menu_images/icon_register.gif"; // {NAV_IMAGES_REGISTER} + +// +// Use standard phpBB graphics +// +/* +$mx_images['mx_nav_home'] = "$current_template_phpbb_images/icon_minipost.gif"; +$mx_images['mx_nav_forum'] = "$current_template_phpbb_images/icon_minipost.gif"; +$mx_images['mx_nav_profile'] = "$current_template_phpbb_images/icon_mini_profile.gif"; +$mx_images['mx_nav_faq'] = "$current_template_phpbb_images/icon_mini_faq.gif"; +$mx_images['mx_nav_search'] = "$current_template_phpbb_images/icon_mini_search.gif"; +$mx_images['mx_nav_members'] = "$current_template_phpbb_images/icon_mini_members.gif"; +$mx_images['mx_nav_groups'] = "$current_template_phpbb_images/icon_mini_groups.gif"; +$mx_images['mx_nav_mail'] = "$current_template_phpbb_images/icon_mini_message.gif"; +$mx_images['mx_nav_login'] = "$current_template_phpbb_images/icon_mini_login.gif"; +$mx_images['mx_nav_register'] = "$current_template_phpbb_images/icon_mini_register.gif"; +*/ + +/********************************************************************************\ +| Block Images +| - these images are used for the block editCP buttons and controls +\********************************************************************************/ +$mx_images['mx_contract'] = "$current_template_block_images/contract.gif"; +$mx_images['mx_expand'] = "$current_template_block_images/expand.gif"; +$mx_images['mx_block_edit_admin'] = "$current_template_block_images/block_edit_admin.gif"; +$mx_images['mx_block_edit_split'] = "$current_template_block_images/block_edit_split.gif"; +$mx_images['mx_block_edit'] = "$current_template_block_images/block_edit.gif"; +$mx_images['mx_block_hidden'] = "$current_template_block_images/block_hidden.gif"; + +/********************************************************************************\ +| adminCP/editCP Images +| - these images are used for the adminCP & block editCP +\********************************************************************************/ +$mx_images['mx_spacer'] = "$current_template_phpbb_images/spacer.gif"; + +// +// phpBB Graphics - for standalone MX-Publisher installation +/* +$images['icon_quote'] = "$current_template_phpbb_images/{LANG}/icon_quote.gif"; +$images['icon_edit'] = "$current_template_phpbb_images/{LANG}/icon_edit.gif"; +$images['icon_search'] = "$current_template_phpbb_images/{LANG}/icon_search.gif"; +$images['icon_profile'] = "$current_template_phpbb_images/{LANG}/icon_profile.gif"; +$images['icon_pm'] = "$current_template_phpbb_images/{LANG}/icon_pm.gif"; +$images['icon_email'] = "$current_template_phpbb_images/{LANG}/icon_email.gif"; +$images['icon_delpost'] = "$current_template_phpbb_images/icon_delete.gif"; +$images['icon_ip'] = "$current_template_phpbb_images/{LANG}/icon_ip.gif"; +$images['icon_www'] = "$current_template_phpbb_images/{LANG}/icon_www.gif"; +$images['icon_icq'] = "$current_template_phpbb_images/{LANG}/icon_icq_add.gif"; +$images['icon_aim'] = "$current_template_phpbb_images/{LANG}/icon_aim.gif"; +$images['icon_yim'] = "$current_template_phpbb_images/{LANG}/icon_yim.gif"; +$images['icon_msnm'] = "$current_template_phpbb_images/{LANG}/icon_msnm.gif"; +$images['icon_minipost'] = "$current_template_phpbb_images/icon_minipost.gif"; +$images['icon_gotopost'] = "$current_template_phpbb_images/icon_minipost.gif"; +$images['icon_minipost_new'] = "$current_template_phpbb_images/icon_minipost_new.gif"; +$images['icon_latest_reply'] = "$current_template_phpbb_images/icon_latest_reply.gif"; +$images['icon_newest_reply'] = "$current_template_phpbb_images/icon_newest_reply.gif"; + +$images['forum'] = "$current_template_phpbb_images/folder_big.gif"; +$images['forum_new'] = "$current_template_phpbb_images/folder_new_big.gif"; +$images['forum_locked'] = "$current_template_phpbb_images/folder_locked_big.gif"; + +$images['folder'] = "$current_template_phpbb_images/folder.gif"; +$images['folder_new'] = "$current_template_phpbb_images/folder_new.gif"; +$images['folder_hot'] = "$current_template_phpbb_images/folder_hot.gif"; +$images['folder_hot_new'] = "$current_template_phpbb_images/folder_new_hot.gif"; +$images['folder_locked'] = "$current_template_phpbb_images/folder_lock.gif"; +$images['folder_locked_new'] = "$current_template_phpbb_images/folder_lock_new.gif"; +$images['folder_sticky'] = "$current_template_phpbb_images/folder_sticky.gif"; +$images['folder_sticky_new'] = "$current_template_phpbb_images/folder_sticky_new.gif"; +$images['folder_announce'] = "$current_template_phpbb_images/folder_announce.gif"; +$images['folder_announce_new'] = "$current_template_phpbb_images/folder_announce_new.gif"; + +$images['post_new'] = "$current_template_phpbb_images/{LANG}/post.gif"; +$images['post_locked'] = "$current_template_phpbb_images/{LANG}/reply-locked.gif"; +$images['reply_new'] = "$current_template_phpbb_images/{LANG}/reply.gif"; +$images['reply_locked'] = "$current_template_phpbb_images/{LANG}/reply-locked.gif"; + +$images['pm_inbox'] = "$current_template_phpbb_images/msg_inbox.gif"; +$images['pm_outbox'] = "$current_template_phpbb_images/msg_outbox.gif"; +$images['pm_savebox'] = "$current_template_phpbb_images/msg_savebox.gif"; +$images['pm_sentbox'] = "$current_template_phpbb_images/msg_sentbox.gif"; +$images['pm_readmsg'] = "$current_template_phpbb_images/folder.gif"; +$images['pm_unreadmsg'] = "$current_template_phpbb_images/folder_new.gif"; +$images['pm_replymsg'] = "$current_template_phpbb_images/{LANG}/reply.gif"; +$images['pm_postmsg'] = "$current_template_phpbb_images/{LANG}/msg_newpost.gif"; +$images['pm_quotemsg'] = "$current_template_phpbb_images/{LANG}/icon_quote.gif"; +$images['pm_editmsg'] = "$current_template_phpbb_images/{LANG}/icon_edit.gif"; +$images['pm_new_msg'] = ""; +$images['pm_no_new_msg'] = ""; + +$images['Topic_watch'] = ""; +$images['topic_un_watch'] = ""; +$images['topic_mod_lock'] = "$current_template_phpbb_images/topic_lock.gif"; +$images['topic_mod_unlock'] = "$current_template_phpbb_images/topic_unlock.gif"; +$images['topic_mod_split'] = "$current_template_phpbb_images/topic_split.gif"; +$images['topic_mod_move'] = "$current_template_phpbb_images/topic_move.gif"; +$images['topic_mod_delete'] = "$current_template_phpbb_images/topic_delete.gif"; + +$images['voting_graphic'][0] = "$current_template_phpbb_images/voting_bar.gif"; +$images['voting_graphic'][1] = "$current_template_phpbb_images/voting_bar.gif"; +$images['voting_graphic'][2] = "$current_template_phpbb_images/voting_bar.gif"; +$images['voting_graphic'][3] = "$current_template_phpbb_images/voting_bar.gif"; +$images['voting_graphic'][4] = "$current_template_phpbb_images/voting_bar.gif"; +*/ + +$images['voting_graphic'][0] = "$current_template_phpbb_images/voting_bar.gif"; +$images['voting_graphic'][1] = "$current_template_phpbb_images/voting_bar.gif"; +$images['voting_graphic'][2] = "$current_template_phpbb_images/voting_bar.gif"; +$images['voting_graphic'][3] = "$current_template_phpbb_images/voting_bar.gif"; +$images['voting_graphic'][4] = "$current_template_phpbb_images/voting_bar.gif"; + +// +// Define common theme colors (if not present in db) +// +$template_config_row['body_bgcolor'] = "FFFFFF"; +$template_config_row['body_text'] = "383B3F"; +$template_config_row['body_link'] = "006699"; +$template_config_row['body_vlink'] = "006699"; +$template_config_row['body_alink'] = "006699"; +$template_config_row['body_hlink'] = "f3a625"; +$template_config_row['tr_color1'] = "F7EEEE"; // row1 +$template_config_row['tr_color2'] = "FBF4F4"; // row2 +$template_config_row['tr_color3'] = "f1f1f1"; // row3 +$template_config_row['th_color1'] = "FFA34F"; // bodyline border color +$template_config_row['th_color2'] = "333333"; // forumline border color +$template_config_row['th_color3'] = "d1d7dc"; // boxes border color +$template_config_row['td_color1'] = "F7EEEE"; // code/quote boxes background +$template_config_row['td_color2'] = "FBF4F4"; // post box background +$template_config_row['fontface1'] = "Verdana,Arial,Helvetica,sans-serif"; +$template_config_row['fontface2'] = "Trebuchet MS"; +$template_config_row['fontface3'] = "Courier, \'Courier New\', sans-serif"; +$template_config_row['fontsize3'] = "12"; +$template_config_row['fontcolor1'] = "383B3F"; // Main font color +$template_config_row['fontcolor2'] = "726363"; +$template_config_row['fontcolor3'] = "FFA34F"; + + +/********************************************************************************\ +| CORE Images +\********************************************************************************/ +// +// Logo +// +$mx_images['mx_logo'] = "$current_template_theme_images/logo.gif"; + +// +// SiteLog +// +$mx_images['mx_dot'] = $images['folder']; + +// +// Online Block +// +$mx_images['mx_who_is_online'] = "$current_template_theme_images/whosonline.gif"; +?> diff --git a/templates/SwiftBlue/SwiftBlue.css b/templates/SwiftBlue/SwiftBlue.css new file mode 100644 index 0000000..a40417e --- /dev/null +++ b/templates/SwiftBlue/SwiftBlue.css @@ -0,0 +1,3477 @@ +/* phpBB3 Style Sheet + -------------------------------------------------------------- + Style name: SwiftBlue + Based on style: SwiftBlue Theme for phpBB2 by BitByBit, http://www.bitbybit.f2s.com + Original author: OryNider, using subsilver2 Theme as a base. + This is an alternative subsilver2 style with purple-blue colors. + -------------------------------------------------------------- +*/ + +/* Layout + ------------ */ +* { + /* Reset browsers default margin, padding and font sizes */ + margin: 0; + padding: 0; +} + +abbr { + text-decoration: none; +} + +html { + font-size: 100%; +} +/* General page style. The scroll bar colours only visible in IE5.5+ */ +body { + background-color: #E3F0FB; + scrollbar-face-color: #BADBF5; + scrollbar-highlight-color: #E3F0FB; + scrollbar-shadow-color: #BADBF5; + scrollbar-3dlight-color: #80BBEC; + scrollbar-arrow-color: #072978; + scrollbar-track-color: #DAECFA; + scrollbar-darkshadow-color: #4B8DF1; + padding-right: 0px; + padding-left: 0px; + background: url("./images/backgroundbluelight.gif"); + padding-bottom: 0px; + margin: 5px 10px 10px; + font-family: Verdana, Geneva, 'Lucida Grande', Arial, Helvetica, sans-serif, droid-serif; + padding-top: 0px; + font-size: 89.5%; + margin: 0; +} + +#wrapheader { + min-height: 120px; + height: auto !important; + height: 120px; +/* background-image: url('./images/background.gif'); + background-repeat: repeat-x;*/ +/* padding: 0 25px 15px 25px;*/ + padding: 0; +} + +#wrapcentre { + margin: 15px 25px 0 25px; +} + +#wrapfooter { + text-align: center; + clear: both; +} + +#wrapnav { + width: 100%; + margin: 0; + background-color: #DAECFA; + border-width: 1px; + border-style: solid; + border-color: #A9B8C2; +} + +#logodesc { + margin-bottom: 5px; + padding: 5px 25px; + background: transparent none 0 0 no-repeat; + border-bottom: 1px solid #D9DFE4; +} + +#menubar { + margin: 0 25px; +} + +#datebar { + margin: 10px 25px 0 25px; +} + +#findbar { + width: 100%; + margin: 0; + padding: 0; + border: 0; +} + +.forumrules { + background-color: #F9CC79; + border-width: 1px; + border-style: solid; + border-color: #BB9860; + padding: 4px; + font-weight: normal; + font-size: 1.1em; + font-family: "Lucida Grande", Verdana, Arial, Helvetica, sans-serif; +} + +.forumrules h3 { + color: red; +} + +#pageheader { } +#pagecontent { } +#pagefooter { } + +#poll { } +#postrow { } +#postdata { } + + +/* Text + --------------------- */ +h1 { + color: black; + font-family: "Lucida Grande", "Trebuchet MS", Verdana, sans-serif; + font-weight: bold; + font-size: 1.8em; + text-decoration: none; +} + +h2 { + font-family: Arial, Helvetica, sans-serif; + font-weight: bold; + font-size: 1.5em; + text-decoration: none; + line-height: 120%; +} + +h3 { + font-size: 1.3em; + font-weight: bold; + font-family: Arial, Helvetica, sans-serif; + line-height: 120%; +} + +h4 { + margin: 0; + font-size: 1.1em; + font-weight: bold; +} + +p { + font-size: 1.1em; +} + +p.moderators { + margin: 0; + float: left; + color: black; + font-weight: bold; +} + +.rtl p.moderators { + float: right; +} + +p.linkmcp { + margin: 0; + float: right; + white-space: nowrap; +} + +.rtl p.linkmcp { + float: left; +} + +p.breadcrumbs { + margin: 0; + float: left; + color: black; + font-weight: bold; + white-space: normal; + font-size: 1em; +} + +.rtl p.breadcrumbs { + float: right; +} + +p.datetime { + margin: 0; + float: right; + white-space: nowrap; + font-size: 1em; +} + +.rtl p.datetime { + float: left; +} + +p.searchbar { + padding: 2px 0; + white-space: nowrap; +} + +p.searchbarreg { + margin: 0; + float: right; + white-space: nowrap; +} + +.rtl p.searchbarreg { + float: left; +} + +p.forumdesc { + padding-bottom: 4px; +} + +p.topicauthor { + margin: 1px 0; +} + +p.topicdetails { + margin: 1px 0; +} + +.postreported, .postreported a:visited, .postreported a:hover, .postreported a:link, .postreported a:active { + margin: 1px 0; + color: red; + font-weight:bold; +} + +.postapprove, .postapprove a:visited, .postapprove a:hover, .postapprove a:link, .postapprove a:active { + color: green; + font-weight:bold; +} + +.postapprove img, .postreported img { + vertical-align: bottom; +} + +.postauthor { + color: #000000; +} + +.postdetails { + color: #000000; +} + +/* The content of the posts (body of text) */ +.postbody { + font-size : 15px; + line-height: 14px; + font-family: "Trebuchet MS", "Lucida Grande", Helvetica, Arial, Times, sans-serif; +} + +.postbody li, ol, ul { + margin: 0 0 0 1.5em; +} + +.rtl .postbody li, .rtl ol, .rtl ul { + margin: 0 1.5em 0 0; +} + +.posthilit { + background-color: yellow; +} + +.nav { + color: black; + font-weight: bold; +} + +/* Action-bars (container for post/reply buttons, pagination, etc.) +---------------------------------------- */ + +fa-fw { + width: 1.28571429em; + text-align: center; +} + +.action-bar { + font-size: 11px; + margin: 4px 0; +} + +.forabg + .action-bar { + margin-top: 2em; +} + +.action-bar .button { + margin-right: 5px; + float: left; +} + +.action-bar .button-search { + margin-right: 0; +} + +.action-bar .newtopic, .action-bar .postreply { + border-color: #1C0046; + background-color: #AB95CB; /* Old browsers */ /* FF3.6+ */ + background-image: -webkit-linear-gradient(top, #AB95CB 0%, #1A0040 100%); + background-image: linear-gradient(to bottom, #AB95CB 0%,#1A0040 100%); /* W3C */ + filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#AB95CB', endColorstr='#1A0040',GradientType=0 ); /* IE6-9 */ +} + +.action-bar .newtopic:hover, .action-bar .postreply:hover { + background-color: #1A0040; /* Old browsers */ /* FF3.6+ */ + background-image: -webkit-linear-gradient(top, #1A0040 0%, #AB95CB 100%); + background-image: linear-gradient(to bottom, #1A0040 0%,#AB95CB 100%); /* W3C */ + filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#1A0040', endColorstr='#AB95CB',GradientType=0 ); /* IE6-9 */ +} + +.pagination { + padding: 4px; + color: black; + font-size: 1em; + font-weight: bold; +} + +.cattitle { + +} + +/* General text */ +.gen { + margin: 1px 1px; + font-size: 15px; +} + +.genmed { + margin: 1px 1px; + font-size: 14px; +} + +.gensmall { + margin: 1px 1px; + font-size: 11px; +} +.gen,.genmed,.gensmall { color : #000000; } +a.gen,a.genmed,a.gensmall { color: #072978; text-decoration: none; } +a.gen:hover,a.genmed:hover,a.gensmall:hover { color: #041642; text-decoration: underline; } + + +/* The register, login, search etc links at the top of the page */ +.mainmenu { font-size : 11px; color : #000000 } +a.mainmenu { text-decoration: none; color : #072978; } +a.mainmenu:hover{ text-decoration: underline; color : #041642; } + +/* Forum category titles */ +.cattitle { font-weight: bold; font-size: 12px ; letter-spacing: 1px; color : #072978} +a.cattitle { text-decoration: none; color : #072978; } +a.cattitle:hover{ text-decoration: underline; } + +/* Forum title: Text and link to the forums used in: index.php */ +.forumlink { font-weight: bold; font-size: 12px; color : #072978; } +a.forumlink { text-decoration: none; color : #072978; } +a.forumlink:hover{ text-decoration: underline; color : #041642; } + +/* Used for the navigation text, (Page 1,2,3 etc) and the navigation bar when in a forum */ +.nav { font-weight: bold; font-size: 11px; color : #000000;} +a.nav { text-decoration: none; color : #072978; } +a.nav:hover { text-decoration: underline; } + + +/* titles for the topics: could specify viewed link colour too */ +.topictitle,h1,h2 { font-weight: bold; font-size: 11px; color : #000000; } +a.topictitle:link { text-decoration: none; color : #072978; } +a.topictitle:visited { text-decoration: none; color : #072978; } +a.topictitle:hover { text-decoration: underline; color : #041642; } + + +/* Name of poster in viewmsg.php and viewtopic.php and other places */ +.name { font-size : 11px; color : #000000;} + +/* Location, number of posts, post date etc */ +.postdetails { font-size : 10px; color : #000000; } + +a.postlink:link { text-decoration: none; color : #072978 } +a.postlink:visited { text-decoration: none; color : #072978; } +a.postlink:hover { text-decoration: underline; color : #041642} + + +/* Quote & Code blocks */ +.code { + font-family: Courier, 'Courier New', sans-serif; font-size: 11px; color: #006600; + background-color: #FAFAFA; border: #80BBEC; border-style: solid; + border-left-width: 1px; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px +} + +.quote { + font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 11px; color: #444444; line-height: 125%; + background-color: #FAFAFA; border: #80BBEC; border-style: solid; + border-left-width: 1px; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px +} + + +/* Copyright and bottom info */ +.copyright { font-size: 10px; font-family: Verdana, Arial, Helvetica, sans-serif; color: #444444; letter-spacing: -1px;} +a.copyright { color: #444444; text-decoration: none;} +a.copyright:hover { color: #000000; text-decoration: underline;} + + +.copyright { + color: #444; + font-weight: normal; + font-family: "Lucida Grande", Verdana, Arial, Helvetica, sans-serif; +} + +.titles { + font-family: "Lucida Grande", Helvetica, Arial, sans-serif; + font-weight: bold; + font-size: 1.3em; + text-decoration: none; +} + +.error { + color: red; +} + +/* Horizontal lists +----------------------------------------*/ +.navbar ul.linklist { + padding: 2px 0; + list-style-type: none; +} + +ul.linklist { + display: block; + margin: 0; +} + +.cp-main .panel { + padding: 5px 10px; +} + +ul.linklist > li { + float: left; + font-size: 1.1em; + line-height: 2.2em; + list-style-type: none; + margin-right: 7px; + width: auto; +} + +ul.linklist > li.rightside, p.rightside, a.rightside { + float: right; + margin-right: 0; + margin-left: 7px; + text-align: right; +} + +ul.navlinks { + border-top: 1px solid transparent; +} + +ul.leftside { + float: left; + margin-left: 0; + margin-right: 5px; + text-align: left; +} + +ul.rightside { + float: right; + margin-left: 5px; + margin-right: -5px; + text-align: right; +} + +ul.linklist li.responsive-menu { + position: relative; + margin: 0 5px 0 0; +} + +.hasjs ul.linklist.leftside, .hasjs ul.linklist.rightside { + max-width: 48%; +} + +.hasjs ul.linklist.fullwidth { + max-width: none; +} + +li.responsive-menu.dropdown-right .dropdown { + left: -9px; +} + +li.responsive-menu.dropdown-left .dropdown { + right: -6px; +} + +ul.linklist .dropdown { + top: 22px; +} + +ul.linklist .dropdown-up .dropdown { + bottom: 18px; + top: auto; +} + +/* Bulletin icons for list items +----------------------------------------*/ +ul.linklist.bulletin > li:before { + display: inline-block; + content: "\2022"; + font-size: inherit; + line-height: inherit; + padding-right: 4px; +} + +ul.linklist.bulletin > li:first-child:before, +ul.linklist.bulletin > li.rightside:last-child:before { + content: none; +} + +ul.linklist.bulletin > li.no-bulletin:before { + content: none; +} + +.responsive-menu:before { + display: none !important; +} + +/* Profile in overall_header.html */ +.header-profile { + display: inline-block; + vertical-align: top; +} + +a.header-avatar, +a.header-avatar:hover { + text-decoration: none; +} + +a.header-avatar img { + margin-bottom: 2px; + max-height: 20px; + vertical-align: middle; + width: auto; +} + +a.header-avatar span:after { + content: '\f0dd'; + display: inline-block; + font: normal normal normal 14px/1 FontAwesome; + padding-left: 6px; + padding-top: 2px; + vertical-align: top; +} + +/* -------------------------------------------------------------- /* + $Icons +/* -------------------------------------------------------------- */ + +/* Global module setup +---------------------------------------- */ + +/* Renamed version of .fa class for agnostic usage of icon fonts. + * Just change the name of the font after the 14/1 to the name of + * the font you wish to use. + */ +.icon, +.button .icon, +blockquote cite:before, +.uncited:before { + font-family: FontAwesome; + font-size: 14px; + font-weight: normal; + font-style: normal; + font-variant: normal; + line-height: 1; + display: inline-block; + /* stylelint-disable order/declaration-block-properties-specified-order */ + -moz-osx-font-smoothing: grayscale; + -webkit-font-smoothing: antialiased; + /* stylelint-enable order/declaration-block-properties-specified-order */ + text-rendering: auto; /* optimizelegibility throws things off #1094 */ +} + +.icon:before { + padding-right: 2px; +} + +.button .icon:before { + padding-right: 0; +} + +/* Icon size classes - Default size is 14px, use these for small variations */ + +.icon.icon-xl { + font-size: 20px; +} + +.icon.icon-lg { + font-size: 18px; +} + +.icon.icon-md { + font-size: 12px; +} + +.icon.icon-sm { + font-size: 10px; +} + +/* icon modifiers */ +.icon-tiny { + font-size: 16px; + vertical-align: text-bottom; + width: 12px; + -webkit-transform: scale(0.65, 0.75); + transform: scale(0.65, 0.75); +} + +.arrow-right .icon { + float: right; +} + +.arrow-left:hover .icon { + margin-right: 5px; + margin-left: -5px; +} + +.arrow-left .icon { + float: left; +} + +.arrow-right:hover .icon { + margin-right: -5px; + margin-left: 5px; +} + +.post-buttons .dropdown-contents .icon { + float: right; + margin-left: 5px; +} + +.alert_close .icon:before { + border-radius: 50%; + display: block; + width: 11px; + height: 12px; + padding: 0; +} + +blockquote cite:before, +.uncited:before { + content: "\f10d"; /* Font Awesome quote-left */ +} + +.rtl blockquote cite:before, +.rtl .uncited:before { + content: "\f10e"; /* Font Awesome quote-right */ +} + +/* Dropdown menu +----------------------------------------*/ +.dropdown-container { + position: relative; +} + +.dropdown-container-right { + float: right; +} + +.dropdown-container-left { + float: left; +} + +.nojs .dropdown-container:hover .dropdown { + display: block !important; +} + +.dropdown { + display: none; + position: absolute; + left: 0; + top: 1.2em; + z-index: 2; + border: 1px solid transparent; + border-radius: 5px; + padding: 9px 0 0; + margin-right: -500px; +} + +.dropdown.live-search { + top: auto; +} + +.dropdown-container.topic-tools { + float: left; +} + +.dropdown-up .dropdown { + top: auto; + bottom: 1.2em; + padding: 0 0 9px; +} + +.dropdown-left .dropdown, .nojs .rightside .dropdown { + left: auto; + right: 0; + margin-left: -500px; + margin-right: 0; +} + +.dropdown-button-control .dropdown { + top: 24px; +} + +.dropdown-button-control.dropdown-up .dropdown { + top: auto; + bottom: 24px; +} + +.dropdown .pointer, .dropdown .pointer-inner { + position: absolute; + width: 0; + height: 0; + border-top-width: 0; + border-bottom: 10px solid transparent; + border-left: 10px dashed transparent; + border-right: 10px dashed transparent; + -webkit-transform: rotate(360deg); /* better anti-aliasing in webkit */ + display: block; +} + +.dropdown-up .pointer, .dropdown-up .pointer-inner { + border-bottom-width: 0; + border-top: 10px solid transparent; +} + +.dropdown .pointer { + right: auto; + left: 10px; + top: -1px; + z-index: 3; +} + +.dropdown-up .pointer { + bottom: -1px; + top: auto; +} + +.dropdown-left .dropdown .pointer, .nojs .rightside .dropdown .pointer { + left: auto; + right: 10px; +} + +.dropdown .pointer-inner { + top: auto; + bottom: -11px; + left: -10px; +} + +.dropdown-up .pointer-inner { + bottom: auto; + top: -11px; +} + +.dropdown .dropdown-contents { + z-index: 2; + overflow: hidden; + overflow-y: auto; + border: 1px solid transparent; + border-radius: 5px; + padding: 5px; + position: relative; + max-height: 300px; +} + +.dropdown-contents a { + display: block; + padding: 5px; +} + +.jumpbox { + margin: 5px 0; +} + +.jumpbox .dropdown li { + border-top: 1px solid transparent; +} + +.jumpbox .dropdown-select { + margin: 0; +} + +.jumpbox .dropdown-contents { + padding: 0; + text-decoration: none; +} + +.jumpbox .dropdown-contents li { + padding: 0; +} + +.jumpbox .dropdown-contents a { + margin-right: 20px; + padding: 5px 10px; + text-decoration: none; + width: 100%; +} + +.jumpbox .spacer { + display: inline-block; + width: 0px; +} + +.jumpbox .spacer + .spacer { + width: 20px; +} + +.dropdown-contents a { + display: block; + padding: 5px; +} + +.jumpbox .dropdown-select { + margin: 0; +} + +.jumpbox .dropdown-contents a { + text-decoration: none; +} + +.dropdown li { + display: list-item; + border-top: 1px dotted transparent; + float: none !important; + line-height: normal !important; + font-size: 1em !important; + list-style: none; + margin: 0; + white-space: nowrap; + text-align: left; +} + +.dropdown-contents > li { + padding-right: 15px; +} + +.dropdown-nonscroll > li { + padding-right: 0; +} + +.dropdown li:first-child, .dropdown li.separator + li, .dropdown li li { + border-top: 0; +} + +.dropdown li li:first-child { + margin-top: 4px; +} + +.dropdown li li:last-child { + padding-bottom: 0; +} + +.dropdown li li { + border-top: 1px dotted transparent; + padding-left: 18px; +} + +.wrap .dropdown li, .dropdown.wrap li, .dropdown-extended li { + white-space: normal; +} + +.dropdown li.separator { + border-top: 1px solid transparent; + padding: 0; +} + +.dropdown li.separator:first-child, .dropdown li.separator:last-child { + display: none !important; +} + +/* jQuery popups +---------------------------------------- */ +.phpbb_alert { + background-color: #FFFFFF; + border-color: #999999; +} +.darken { + background-color: #000000; +} + +.loading_indicator { + background-color: #000000; + background-image: url("./images/loading.gif"); +} + +.dropdown-extended ul li { + border-top-color: #B9B9B9; +} + +.dropdown-extended ul li:hover { + background-color: #cfd1f6; + color: #000000; +} + +.dropdown-extended .header, .dropdown-extended .footer { + border-color: #B9B9B9; + color: #000000; +} + +.dropdown-extended .footer { + border-top-style: solid; + border-top-width: 1px; +} + +.dropdown-extended .header { + background-color: #f1f2ff; /* Old browsers */ /* FF3.6+ */ + background-image: -webkit-linear-gradient(top, #f1f2ff 0%, #caceeb 100%); + background-image: linear-gradient(to bottom, #f1f2ff 0%,#caceeb 100%); /* W3C */ + filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#f1f2ff', endColorstr='#caceeb',GradientType=0 ); /* IE6-9 */ +} + +.dropdown .pointer { + border-color: #B9B9B9 transparent; +} + +.dropdown .pointer-inner { + border-color: #FFF transparent; +} + +.dropdown-extended .pointer-inner { + border-color: #f1f2ff transparent; +} + +.dropdown .dropdown-contents { + background: #fff; + border-color: #B9B9B9; + box-shadow: 1px 3px 5px rgba(0, 0, 0, 0.2); +} + +.dropdown-up .dropdown-contents { + box-shadow: 1px 0 5px rgba(0, 0, 0, 0.2); +} + +.dropdown li, .dropdown li li { + border-color: #DCDCDC; +} + +.dropdown li.separator { + border-color: #DCDCDC; +} + +/* Notifications +---------------------------------------- */ + +.notification_list p.notification-time { + color: #4d4d77; +} + +li.notification-reported strong, li.notification-disapproved strong { + color: #0d5aa2; +} + +.badge { + background-color: #0d5aa2; + color: #ffffff; +} + +/* Responsive breadcrumbs +----------------------------------------*/ +.breadcrumbs .crumb { + float: left; + font-weight: bold; + word-wrap: normal; +} + +.breadcrumbs .crumb:before { + content: '\2039'; + font-weight: bold; + padding: 0 0.5em; +} + +.breadcrumbs .crumb:first-child:before { + content: none; +} + +.breadcrumbs .crumb a { + white-space: nowrap; + text-overflow: ellipsis; + vertical-align: bottom; + overflow: hidden; +} + +.breadcrumbs.wrapped .crumb a { letter-spacing: -.3px; } +.breadcrumbs.wrapped .crumb.wrapped-medium a { letter-spacing: -.4px; } +.breadcrumbs.wrapped .crumb.wrapped-tiny a { letter-spacing: -.5px; } + +.breadcrumbs .crumb.wrapped-max a { max-width: 120px; } +.breadcrumbs .crumb.wrapped-wide a { max-width: 100px; } +.breadcrumbs .crumb.wrapped-medium a { max-width: 80px; } +.breadcrumbs .crumb.wrapped-small a { max-width: 60px; } +.breadcrumbs .crumb.wrapped-tiny a { max-width: 40px; } + +/* Tables + ------------ */ +/* General font families for common tags */ +font,th,td,p { font-family: Verdana, Arial, Helvetica, sans-serif } +a:link,a:active,a:visited { color : #006699; } +a:hover { text-decoration: underline; color : #DD6900; } +hr { height: 0px; border: solid #80BBEC 0px; border-top-width: 1px;} + + +/* This is the border line & background colour round the entire page */ +.bodyline { + background-color: #E3F0FB; + background-image: url("./images/bodyline.jpg"); + padding-bottom: 40px; + border: 1px #4B8DF1 solid; +} + +/* This is the outline round the main forum tables */ +.forumline { background-color: #E3F0FB; border: 2px #006699 solid; } + +.profile { + padding: 4px; +} + +.tablebg { + background-color: #A9B8C2; +} + +/* Main table cell colours and backgrounds */ + +.row1 { + background-color: #DAECFA; + padding: 4px; +} + +.row2 { + background-color: #BADBF5; + padding: 4px; +} + +.row3 { + background-color: #80BBEC; + padding: 4px; +} + +.row4 { + background-color: #E4E8EB; + padding: 4px; +} + +.col1 { + background-color: #BADBF5; + padding: 4px; +} + +.col2 { + background-color: #DAECFA; + padding: 4px; +} + + +/* + This is for the table cell above the Topics, Post & Last posts on the index.php page + By default this is the fading out gradiated silver background. + However, you could replace this with a bitmap specific for each forum +*/ +.rowpic { + background-color: #E3F0FB; + background-image: url('./images/cellpic2.jpg'); + background-repeat: repeat-y; +} + +.catdiv { + height: 28px; + background: white url('./images/cellpic2.jpg') repeat-y scroll top left; +} +.rtl .catdiv { + background: white url('./images/cellpic2_rtl.jpg') repeat-y scroll top right; +} + +/* Header cells - the blue and silver gradient backgrounds */ +th { + color: #FFA34F; font-size: 11px; font-weight : bold; + background-color: #006699; height: 25px; + background-image: url('./images/cellpic3.gif'); +} + +.cat { + height: 28px; + background-color: #C7D0D7; + text-indent: 4px; +} + + +.cat,.catHead,.catSides,.catLeft,.catRight,.catBottom { + background-image: url('./images/cellpic1.gif'); + background-color:#80BBEC; border: #E3F0FB; border-style: solid; height: 28px; +} + + +/* + Setting additional nice inner borders for the main table cells. + The names indicate which sides the border will be on. + Don't worry if you don't understand this, just ignore it :-) +*/ +td.cat,td.catHead,td.catBottom { + height: 29px; + border-width: 0px 0px 0px 0px; +} +th.thHead,th.thSides,th.thTop,th.thLeft,th.thRight,th.thBottom,th.thCornerL,th.thCornerR { + font-weight: bold; border: #E3F0FB; border-style: solid; height: 28px; } +td.row3Right,td.spaceRow { + background-color: #80BBEC; border: #E3F0FB; border-style: solid; } + +th.thHead,td.catHead { font-size: 12px; border-width: 1px 1px 0px 1px; } +th.thSides,td.catSides,td.spaceRow { border-width: 0px 1px 0px 1px; } +th.thRight,td.catRight,td.row3Right { border-width: 0px 1px 0px 0px; } +th.thLeft,td.catLeft { border-width: 0px 0px 0px 1px; } +th.thBottom,td.catBottom { border-width: 0px 1px 1px 1px; } +th.thTop { border-width: 1px 0px 0px 0px; } +th.thCornerL { border-width: 1px 0px 0px 1px; } +th.thCornerR { border-width: 1px 1px 0px 0px; } + +.spacer { + background-color: #80BBEC; +} + +hr { + height: 1px; + border-width: 0; + background-color: #80BBEC; + color: #80BBEC; +} + +.legend { + text-align:center; + margin: 0 auto; +} + +/* Links + ------------ */ + +a:link { + color: #006597; + text-decoration: none; +} + +a:active, +a:visited { + color: #005784; + text-decoration: none; +} + +a:hover { + color: #D46400; + text-decoration: underline; +} + +a.forumlink { + color: #069; + font-weight: bold; + font-family: "Lucida Grande", Helvetica, Arial, sans-serif; + font-size: 13px; +} + +a.topictitle { + margin: 1px 0; + font-family: "Lucida Grande", Helvetica, Arial, sans-serif; + font-weight: bold; + font-size: 13px; +} + +a.topictitle:visited { + color: #5493B4; + text-decoration: none; +} + +th a, +th a:visited { + color: #FFA34F !important; + text-decoration: none; +} + +th a:hover { + text-decoration: underline; +} + + +/* Form Elements + ------------ */ +form { + margin: 0; + padding: 0; + border: 0; +} + +input { + color: #333333; + font-family: "Lucida Grande", Verdana, Helvetica, sans-serif; + font-size: 12px; + font-weight: normal; + padding: 1px; + border: 1px solid #A9B8C2; + background-color: #FAFAFA; +} + +textarea { + background-color: #FAFAFA; + color: #333333; + font-family: "Lucida Grande", Verdana, Helvetica, Arial, sans-serif; + font-size: 14px; + line-height: 15px; + font-weight: normal; + border: 1px solid #A9B8C2; + padding: 2px; +} + +select { + color: #333333; + background-color: #FAFAFA; + font-family: "Lucida Grande", Verdana, Helvetica, sans-serif; + font-size: 1.1em; + font-weight: normal; + border: 1px solid #A9B8C2; + padding: 1px; +} + +option { + padding: 0 1em 0 0; +} + +option.disabled-option { + color: graytext; +} + +.rtl option { + padding: 0 0 0 1em; +} + +input.radio { + border: none; + background-color: transparent; +} + +.post { + background-color: #DAECFA; + border-style: solid; + border-width: 1px; +} + +.btnbbcode { + color: #000000; + font-weight: normal; + font-size: 0.8em; + font-family: "Lucida Grande", Verdana, Helvetica, sans-serif; + background-color: #DAECFA; + border: 1px solid #666666; +} + +.btnmain { + font-weight: bold; + background-color: #DAECFA; + border: 1px solid #A9B8C2; + cursor: pointer; + padding: 1px 3px; + font-size: 0.8em; +} + +.btnlite { + font-weight: normal; + background-color: #DAECFA; + border: 1px solid #A9B8C2; + cursor: pointer; + padding: 1px 3px; + font-size: 0.8em; +} + +.btnfile { + font-weight: normal; + background-color: #DAECFA; + border: 1px solid #A9B8C2; + padding: 1px 3px; + font-size: 0.8em; +} + +.helpline { + background-color: #BADBF5; + border-style: none; +} + + +/* BBCode + ------------ */ +.quotetitle, .attachtitle { + margin: 10px 5px 0 5px; + padding: 4px; + border-width: 1px 1px 0 1px; + border-style: solid; + border-color: #A9B8C2; + color: #333333; + background-color: #A9B8C2; + font-size: 0.85em; + font-weight: bold; +} + +.quotetitle .quotetitle { + font-size: 1em; +} + +.quotecontent, .attachcontent { + margin: 0 5px 10px 5px; + padding: 5px; + border-color: #A9B8C2; + border-width: 0 1px 1px 1px; + border-style: solid; + font-weight: normal; + font-size: 1em; + line-height: 1.4em; + font-family: "Lucida Grande", "Trebuchet MS", Helvetica, Arial, sans-serif; + background-color: #FAFAFA; + color: #4B5C77; +} + +.attachcontent { + font-size: 0.85em; +} + +.codetitle { + margin: 10px 5px 0 5px; + padding: 2px 4px; + border-width: 1px 1px 0 1px; + border-style: solid; + border-color: #A9B8C2; + color: #333333; + background-color: #A9B8C2; + font-family: "Lucida Grande", Verdana, Helvetica, Arial, sans-serif; + font-size: 0.8em; +} + +.codecontent { + direction: ltr; + margin: 0 5px 10px 5px; + padding: 5px; + border-color: #A9B8C2; + border-width: 0 1px 1px 1px; + border-style: solid; + font-weight: normal; + color: #006600; + font-size: 0.85em; + font-family: Monaco, 'Courier New', monospace; + background-color: #FAFAFA; +} + +.postimage { + max-width: 100%; +} + +.syntaxbg { + color: #E3F0FB; +} + +.syntaxcomment { + color: #FF8000; +} + +.syntaxdefault { + color: #0000BB; +} + +.syntaxhtml { + color: #000000; +} + +.syntaxkeyword { + color: #007700; +} + +.syntaxstring { + color: #DD0000; +} + + +/* Private messages + ------------------ */ +.pm_marked_colour { + background-color: #000000; +} + +.pm_replied_colour { + background-color: #A9B8C2; +} + +.pm_friend_colour { + background-color: #007700; +} + +.pm_foe_colour { + background-color: #DD0000; +} + + +/* Misc + ------------ */ +img { + border: none; +} + +.sep { + color: black; + background-color: #FFA34F; +} + +table.colortable td { + padding: 0; +} + +pre { + font-size: 1.1em; + font-family: Monaco, 'Courier New', monospace; +} + +.nowrap { + white-space: nowrap; +} + +.username-coloured { + font-weight: bold; +} + +.emoji { + min-height: 18px; + min-width: 18px; + height: 1em; + width: 1em; +} + +/* The largest text used in the index page title and toptic title etc. */ +.maintitle,h1,h2 { + font-weight: bold; font-size: 22px; font-family: "Trebuchet MS",Verdana, Arial, Helvetica, sans-serif; + text-decoration: none; line-height : 120%; color : #000000; +} + + +/* Form elements */ +input,textarea, select { + color : #000000; + font: normal 11px Verdana, Arial, Helvetica, sans-serif; + border-color : #000000; +} + +/* The text input fields background colour */ +input.post, textarea.post, select { + background-color : #E3F0FB; +} + +input { text-indent : 2px; } + +/* The buttons used for bbCode styling in message post */ +input.button { + background-color : #DAECFA; + color : #000000; + font-size: 11px; font-family: Verdana, Arial, Helvetica, sans-serif; +} + +/* The main submit button option */ +input.mainoption { + background-color : #FAFAFA; + font-weight : bold; +} + +/* None-bold submit button */ +input.liteoption { + background-color : #FAFAFA; + font-weight : normal; +} + +/* This is the line in the posting page which shows the rollover + help line. This is actually a text box, but if set to be the same + colour as the background no one will know ;) +*/ +.helpline { background-color: #BADBF5; border-style: none; } + + +/* Former imageset */ +span.imageset { + display: inline-block; + background: transparent none 0 0 no-repeat; + margin: 0; + padding: 0; + width: 0; + height: 0; + overflow: hidden; +} +a.imageset { + text-decoration: none !important; +} + +/* Global imageset items */ +.imageset.site_logo { + background-image: url("./images/site_logo.png"); + padding-top: 0px; + padding-left: 240px; + padding-right: 0px; + padding-bottom: 100px; +} +.imageset.upload_bar { + background-image: url("./images/upload_bar.gif"); + padding-left: 280px; + padding-top: 16px; +} +.imageset.poll_left { + background-image: url("./images/poll_left.gif"); + padding-left: 4px; + padding-top: 12px; +} +.imageset.poll_center { + background-image: url("./images/poll_center.gif"); + padding-left: 1px; + padding-top: 12px; +} +.imageset.poll_right { + background-image: url("./images/poll_right.gif"); + padding-left: 4px; + padding-top: 12px; +} +.imageset.forum_link { + background-image: url("./images/forum_link.gif"); + padding-left: 46px; + padding-top: 25px; +} +.imageset.forum_read { + background-image: url("./images/forum_read.gif"); + padding-left: 46px; + padding-top: 25px; +} +.imageset.forum_read_locked { + background-image: url("./images/forum_read_locked.gif"); + padding-left: 46px; + padding-top: 25px; +} +.imageset.forum_read_subforum { + background-image: url("./images/forum_read_subforum.gif"); + padding-left: 46px; + padding-top: 25px; +} +.imageset.forum_unread { + background-image: url("./images/forum_unread.gif"); + padding-left: 46px; + padding-top: 25px; +} +.imageset.forum_unread_locked { + background-image: url("./images/forum_unread_locked.gif"); + padding-left: 46px; + padding-top: 25px; +} +.imageset.forum_unread_subforum { + background-image: url("./images/forum_unread_subforum.gif"); + padding-left: 46px; + padding-top: 25px; +} +.imageset.topic_moved { + background-image: url("./images/topic_moved.gif"); + padding-left: 19px; + padding-top: 18px; +} +.imageset.topic_read { + background-image: url("./images/topic_read.gif"); + padding-left: 19px; + padding-top: 18px; +} +.imageset.topic_read_mine { + background-image: url("./images/topic_read_mine.gif"); + padding-left: 19px; + padding-top: 18px; +} +.imageset.topic_read_hot { + background-image: url("./images/topic_read_hot.gif"); + padding-left: 19px; + padding-top: 18px; +} +.imageset.topic_read_hot_mine { + background-image: url("./images/topic_read_hot_mine.gif"); + padding-left: 19px; + padding-top: 18px; +} +.imageset.topic_read_locked { + background-image: url("./images/topic_read_locked.gif"); + padding-left: 19px; + padding-top: 18px; +} +.imageset.topic_read_locked_mine { + background-image: url("./images/topic_read_locked_mine.gif"); + padding-left: 19px; + padding-top: 18px; +} +.imageset.topic_unread { + background-image: url("./images/topic_unread.gif"); + padding-left: 19px; + padding-top: 18px; +} +.imageset.topic_unread_mine { + background-image: url("./images/topic_unread_mine.gif"); + padding-left: 19px; + padding-top: 18px; +} +.imageset.topic_unread_hot { + background-image: url("./images/topic_unread_hot.gif"); + padding-left: 19px; + padding-top: 18px; +} +.imageset.topic_unread_hot_mine { + background-image: url("./images/topic_unread_hot_mine.gif"); + padding-left: 19px; + padding-top: 18px; +} +.imageset.topic_unread_locked { + background-image: url("./images/topic_unread_locked.gif"); + padding-left: 19px; + padding-top: 18px; +} +.imageset.topic_unread_locked_mine { + background-image: url("./images/topic_unread_locked_mine.gif"); + padding-left: 19px; + padding-top: 18px; +} +.imageset.sticky_read { + background-image: url("./images/sticky_read.gif"); + padding-left: 19px; + padding-top: 18px; +} +.imageset.sticky_read_mine { + background-image: url("./images/sticky_read_mine.gif"); + padding-left: 19px; + padding-top: 18px; +} +.imageset.sticky_read_locked { + background-image: url("./images/sticky_read_locked.gif"); + padding-left: 19px; + padding-top: 18px; +} +.imageset.sticky_read_locked_mine { + background-image: url("./images/sticky_read_locked_mine.gif"); + padding-left: 19px; + padding-top: 18px; +} +.imageset.sticky_unread { + background-image: url("./images/sticky_unread.gif"); + padding-left: 19px; + padding-top: 18px; +} +.imageset.sticky_unread_mine { + background-image: url("./images/sticky_unread_mine.gif"); + padding-left: 19px; + padding-top: 18px; +} +.imageset.sticky_unread_locked { + background-image: url("./images/sticky_unread_locked.gif"); + padding-left: 19px; + padding-top: 18px; +} +.imageset.sticky_unread_locked_mine { + background-image: url("./images/sticky_unread_locked_mine.gif"); + padding-left: 19px; + padding-top: 18px; +} +.imageset.announce_read { + background-image: url("./images/announce_read.gif"); + padding-left: 19px; + padding-top: 18px; +} +.imageset.announce_read_mine { + background-image: url("./images/announce_read_mine.gif"); + padding-left: 19px; + padding-top: 18px; +} +.imageset.announce_read_locked { + background-image: url("./images/announce_read_locked.gif"); + padding-left: 19px; + padding-top: 18px; +} +.imageset.announce_read_locked_mine { + background-image: url("./images/announce_read_locked_mine.gif"); + padding-left: 19px; + padding-top: 18px; +} +.imageset.announce_unread { + background-image: url("./images/announce_unread.gif"); + padding-left: 19px; + padding-top: 18px; +} +.imageset.announce_unread_mine { + background-image: url("./images/announce_unread_mine.gif"); + padding-left: 19px; + padding-top: 18px; +} +.imageset.announce_unread_locked { + background-image: url("./images/announce_unread_locked.gif"); + padding-left: 19px; + padding-top: 18px; +} +.imageset.announce_unread_locked_mine { + background-image: url("./images/announce_unread_locked_mine.gif"); + padding-left: 19px; + padding-top: 18px; +} +.imageset.global_read { + background-image: url("./images/global_read.gif"); + padding-left: 19px; + padding-top: 18px; +} +.imageset.global_read_mine { + background-image: url("./images/global_read_mine.gif"); + padding-left: 19px; + padding-top: 18px; +} +.imageset.global_read_locked { + background-image: url("./images/global_read_locked.gif"); + padding-left: 19px; + padding-top: 18px; +} +.imageset.global_read_locked_mine { + background-image: url("./images/global_read_locked_mine.gif"); + padding-left: 19px; + padding-top: 18px; +} +.imageset.global_unread { + background-image: url("./images/global_unread.gif"); + padding-left: 19px; + padding-top: 18px; +} +.imageset.global_unread_mine { + background-image: url("./images/global_unread_mine.gif"); + padding-left: 19px; + padding-top: 18px; +} +.imageset.global_unread_locked { + background-image: url("./images/global_unread_locked.gif"); + padding-left: 19px; + padding-top: 18px; +} +.imageset.global_unread_locked_mine { + background-image: url("./images/global_unread_locked_mine.gif"); + padding-left: 19px; + padding-top: 18px; +} +.imageset.pm_read { + background-image: url("./images/topic_read.gif"); + padding-left: 19px; + padding-top: 18px; +} +.imageset.pm_unread { + background-image: url("./images/topic_unread.gif"); + padding-left: 19px; + padding-top: 18px; +} +.imageset.icon_post_target { + background-image: url("./images/icon_post_target.gif"); + padding-left: 12px; + padding-top: 9px; +} +.imageset.icon_post_target_unread { + background-image: url("./images/icon_post_target_unread.gif"); + padding-left: 12px; + padding-top: 9px; +} +.imageset.icon_topic_attach { + background-image: url("./images/icon_topic_attach.gif"); + padding-left: 14px; + padding-top: 18px; +} +.imageset.icon_topic_latest { + background-image: url("./images/icon_topic_latest.gif"); + padding-left: 18px; + padding-top: 9px; +} +.imageset.icon_topic_newest { + background-image: url("./images/icon_topic_newest.gif"); + padding-left: 18px; + padding-top: 9px; +} +.imageset.icon_topic_reported { + background-image: url("./images/icon_topic_reported.gif"); + padding-left: 19px; + padding-top: 18px; +} +.imageset.icon_topic_unapproved { + background-image: url("./images/icon_topic_unapproved.gif"); + padding-left: 19px; + padding-top: 18px; +} +.imageset.icon_topic_deleted { + background-image: url("./images/icon_topic_deleted.gif"); + padding-left: 14px; + padding-top: 14px; +} + + +/* English images for fallback */ +.imageset.phpbb_aol-icon, .imageset.icon_contact_aim { + background-image: url("./en/icon_contact_aim.gif"); + padding-left: 72px; + padding-top: 20px; +} +.imageset.icon_contact_email { + background-image: url("./en/icon_contact_email.gif"); + padding-left: 72px; + padding-top: 20px; +} +.imageset.phpbb_icq-icon, .imageset.icon_contact_icq { + background-image: url("./en/icon_contact_icq.gif"); + padding-left: 72px; + padding-top: 20px; +} +.imageset.icon_contact_jabber { + background-image: url("./en/icon_contact_jabber.gif"); + padding-left: 72px; + padding-top: 20px; +} +.imageset.phpbb_wlm-icon, .imageset.icon_contact_msnm { + background-image: url("./en/icon_contact_msnm.gif"); + padding-left: 72px; + padding-top: 20px; +} +.imageset.icon_contact_pm { + background-image: url("./en/icon_contact_pm.gif"); + padding-left: 72px; + padding-top: 20px; +} +.imageset.phpbb_yahoo-icon, .imageset.icon_contact_yahoo { + background-image: url("./en/icon_contact_yahoo.gif"); + padding-left: 72px; + padding-top: 20px; +} +.imageset.phpbb_website-icon, .imageset.icon_contact_www { + background-image: url("./en/icon_contact_www.gif"); + padding-left: 72px; + padding-top: 20px; +} +.imageset.icon_post_delete { + background-image: url("./en/icon_post_delete.gif"); + padding-left: 20px; + padding-top: 20px; +} +.imageset.icon_post_edit { + background-image: url("./en/icon_post_edit.gif"); + padding-left: 90px; + padding-top: 20px; +} +.imageset.icon_post_info { + background-image: url("./en/icon_post_info.gif"); + padding-left: 20px; + padding-top: 20px; +} +.imageset.icon_post_quote { + background-image: url("./en/icon_post_quote.gif"); + padding-left: 90px; + padding-top: 20px; +} +.imageset.icon_post_report { + background-image: url("./en/icon_post_report.gif"); + padding-left: 20px; + padding-top: 20px; +} +.imageset.icon_user_online { + background-image: url("./en/icon_user_online.gif"); + padding-left: 72px; + padding-top: 20px; +} +.imageset.icon_user_offline { + background-image: url("./en/icon_user_offline.gif"); + padding-left: 72px; + padding-top: 20px; +} +.imageset.icon_user_profile { + background-image: url("./en/icon_user_profile.gif"); + padding-left: 72px; + padding-top: 20px; +} +.imageset.icon_user_search { + background-image: url("./en/icon_user_search.gif"); + padding-left: 72px; + padding-top: 20px; +} +.imageset.icon_user_warn { + background-image: url("./en/icon_user_warn.gif"); + padding-left: 20px; + padding-top: 20px; +} +.imageset.button_pm_new { + background-image: url("./en/button_pm_new.gif"); + padding-left: 97px; + padding-top: 27px; +} +.imageset.button_pm_reply { + background-image: url("./en/button_pm_reply.gif"); + padding-left: 90px; + padding-top: 20px; +} +.imageset.button_topic_locked { + background-image: url("./en/button_topic_locked.gif"); + padding-left: 97px; + padding-top: 27px; +} +.imageset.button_topic_new { + background-image: url("./en/button_topic_new.gif"); + padding-left: 97px; + padding-top: 27px; +} +.imageset.button_topic_reply { + background-image: url("./en/button_topic_reply.gif"); + padding-left: 97px; + padding-top: 27px; +} + +/* Responsive breadcrumbs +----------------------------------------*/ +.rtl .breadcrumbs .crumb { + float: right; +} + +/* Table styles +----------------------------------------*/ +table.table1 { + width: 100%; +} + +.ucp-main table.table1 { + padding: 2px; +} + +table.table1 thead th { + font-weight: normal; + text-transform: uppercase; + line-height: 1.3em; + font-size: 1em; + padding: 0 0 4px 3px; +} + +table.table1 thead th span { + padding-left: 7px; +} + +table.table1 tbody tr { + border: 1px solid transparent; +} + +table.table1 td { + font-size: 1.1em; +} + +table.table1 tbody td { + padding: 5px; + border-top: 1px solid transparent; +} + +table.table1 tbody th { + padding: 5px; + border-bottom: 1px solid transparent; + text-align: left; +} + +/* Specific column styles */ +table.table1 .name { text-align: left; } +table.table1 .center { text-align: center; } +table.table1 .reportby { width: 15%; } +table.table1 .posts { text-align: center; width: 7%; } +table.table1 .joined { text-align: left; width: 15%; } +table.table1 .active { text-align: left; width: 15%; } +table.table1 .mark { text-align: center; width: 7%; } +table.table1 .info { text-align: left; width: 30%; } +table.table1 .info div { width: 100%; white-space: normal; overflow: hidden; } +table.table1 .autocol { line-height: 2em; white-space: nowrap; } +table.table1 thead .autocol { padding-left: 1em; } + +table.table1 span.rank-img { + float: right; + width: auto; +} + +table.info td { + padding: 3px; +} + +table.info tbody th { + padding: 3px; + text-align: right; + vertical-align: top; + font-weight: normal; +} + +table.table1 thead th { + color: #FFFFFF; +} + +table.table1 tbody tr { + border-color: #BFC1CF; +} + +table.table1 tbody tr:hover, table.table1 tbody tr.hover { + background-color: #CFE1F6; + color: #000; +} + +table.table1 td { + color: #536482; +} + +table.table1 tbody td { + border-top-color: #FAFAFA; +} + +table.table1 tbody th { + border-bottom-color: #000000; + color: #333333; + background-color: #FFFFFF; +} + +table.info tbody th { + color: #000000; +} + +table.table1 td { + color: #536482; +} + +table.table1 td { + font-size: 1.1em; +} + +table.fixed-width-table { + table-layout: fixed; +} + +.rtl table.table1 thead th { + padding: 0 3px 4px 0; +} + +.rtl table.table1 thead th span { + padding-left: 0; + padding-right: 7px; +} + +.rtl table.table1 tbody th { + text-align: right; +} + +/* Specific column styles */ +.rtl table.table1 .name { text-align: right; } +.rtl table.table1 .joined { text-align: right; } +.rtl table.table1 .active { text-align: right; } +.rtl table.table1 .info { text-align: right; } +.rtl table.table1 thead .autocol { padding-left: 0; padding-right: 1em; } + +/* Specific column styles */ +.ltr table.table1 .name { text-align: left; } +.ltr table.table1 .joined { text-align: left; } +.ltr table.table1 .active { text-align: left; } +.ltr table.table1 .info { text-align: left; } +.ltr table.table1 thead .autocol { padding-right: 0; padding-left: 1em; } + +.rtl table.table1 span.rank-img { + float: left; +} + +.rtl table.info tbody th { + text-align: left; +} + +.rtl .forumbg table.table1 { + margin: 0 -1px -1px -2px; +} + +.forumbg table.table1 { + margin: 0; +} + +.forumbg-table > .inner { + margin: 0 -1px; +} + +.color_palette_placeholder table { + border-collapse: separate; + border-spacing: 1px; +} + + /* Control Panel Styles +---------------------------------------- */ + + +/* Main CP box +----------------------------------------*/ +.cp-menu { + float:left; + width: 19%; + margin-top: 1em; + margin-bottom: 5px; +} + +.cp-main { + float: left; + width: 81%; +} + +.cp-main .content { + padding: 0; +} + +.panel-container .panel p { + font-size: 1.1em; +} + +.panel-container .panel ol { + margin-left: 2em; + font-size: 1.1em; +} + +.panel-container .panel li.row { + border-bottom: 1px solid transparent; + border-top: 1px solid transparent; +} + +ul.cplist { + margin-bottom: 5px; + border-top: 1px solid transparent; +} + +.panel-container .panel li.header dd, .panel-container .panel li.header dt { + margin-bottom: 2px; +} + +.panel-container table.table1 { + margin-bottom: 1em; +} + +.panel-container table.table1 thead th { + font-weight: bold; + border-bottom: 1px solid transparent; + padding: 5px; +} + +.panel-container table.table1 tbody th { + font-style: italic; + background-color: transparent !important; + border-bottom: none; +} + +.cp-main .pm-message { + border: 1px solid transparent; + margin: 10px 0; + width: auto; + float: none; +} + +.pm-message h2 { + padding-bottom: 5px; +} + +.cp-main .postbody h3, .cp-main .box2 h3 { + margin-top: 0; +} + +.panel-container .postbody p.author { + font-size: 1.1em; +} + +.cp-main .buttons { + margin-left: 0; +} + +.cp-main ul.linklist { + margin: 0; +} + +/* MCP Specific tweaks */ +.mcp-main .postbody { + width: 100%; +} + +.tabs-container h2 { + float: left; + margin-bottom: 0px; +} + +/* CP tabs shared +----------------------------------------*/ +.tabs, .minitabs { + line-height: normal; +} + +.tabs > ul, .minitabs > ul { + list-style: none; + margin: 0; + padding: 0; + position: relative; +} + +.tabs .tab, .minitabs .tab { + display: block; + float: left; + font-size: 1em; + font-weight: bold; + line-height: 1.4em; +} + +.tabs .tab > a, .minitabs .tab > a { + display: block; + padding: 5px 9px; + position: relative; + text-decoration: none; + white-space: nowrap; + cursor: pointer; +} + +/* CP tabbed menu +----------------------------------------*/ +.tabs { + margin: 20px 0 0 7px; +} + +.tabs .tab > a { + border: 1px solid transparent; + border-radius: 4px 4px 0 0; + margin: 1px 1px 0 0; +} + +.tabs .activetab > a { + margin-top: 0; + padding-bottom: 7px; +} + +/* Mini tabbed menu used in MCP +----------------------------------------*/ +.minitabs { + float: right; + margin: 15px 7px 0 0; + max-width: 50%; +} + +.minitabs .tab { + float: right; +} + +.minitabs .tab > a { + border-radius: 5px 5px 0 0; + margin-left: 2px; +} + +.minitabs .tab > a:hover { + text-decoration: none; +} + +/* Responsive tabs +----------------------------------------*/ +.responsive-tab { + position: relative; +} + +.responsive-tab > a.responsive-tab-link { + display: block; + font-size: 1.6em; + position: relative; + width: 16px; + line-height: 0.9em; + text-decoration: none; +} + +.responsive-tab .responsive-tab-link:before { + content: ''; + position: absolute; + left: 10px; + top: 7px; + height: .125em; + width: 14px; + border-bottom: 0.125em solid transparent; + border-top: 0.375em double transparent; +} + +.tabs .dropdown, .minitabs .dropdown { + top: 20px; + margin-right: -2px; + font-size: 1.1em; + font-weight: normal; +} + +.minitabs .dropdown { + margin-right: -4px; +} + +.tabs .dropdown-up .dropdown, .minitabs .dropdown-up .dropdown { + bottom: 20px; + top: auto; +} + +.tabs .dropdown li { + text-align: right; +} + +.minitabs .dropdown li { + text-align: left; +} + +/* UCP navigation menu +----------------------------------------*/ +/* Container for sub-navigation list */ +.navigation { + width: 100%; + padding-top: 36px; +} + +.navigation ul { + list-style: none; +} + +/* Default list state */ +.navigation li { + display: inline; + font-weight: bold; + margin: 1px 0; + padding: 0; +} + +/* Link styles for the sub-section links */ +.navigation a { + display: block; + padding: 5px; + margin: 1px 0; + text-decoration: none; +} + +.navigation a:hover { + text-decoration: none; +} + +/* Preferences pane layout +----------------------------------------*/ +.cp-main h2 { + border-bottom: none; + padding: 0; + margin-left: 10px; +} + +/* Friends list */ +.cp-mini { + margin: 10px 15px 10px 5px; + max-height: 200px; + overflow-y: auto; + padding: 5px 10px; + border-radius: 7px; +} + +dl.mini dt { + font-weight: bold; +} + +dl.mini dd { + padding-top: 4px; +} + +.friend-online { + font-weight: bold; +} + +.friend-offline { + font-style: italic; +} + +/* PM Styles +----------------------------------------*/ +/* Defined rules list for PM options */ +ol.def-rules { + padding-left: 0; +} + +ol.def-rules li { + line-height: 180%; + padding: 1px; +} + +/* PM marking colours */ +.pmlist li.bg1 { + padding: 0 3px; +} + +.pmlist li.bg2 { + padding: 0 3px; +} + +.pmlist li.pm_message_reported_colour, .pm_message_reported_colour { + border-left-color: transparent; + border-right-color: transparent; +} + +.pmlist li.pm_marked_colour, .pm_marked_colour, +.pmlist li.pm_replied_colour, .pm_replied_colour, +.pmlist li.pm_friend_colour, .pm_friend_colour, +.pmlist li.pm_foe_colour, .pm_foe_colour { + padding: 0; + border: solid 3px transparent; + border-width: 0 3px; +} + +.pm-legend { + border-left-width: 10px; + border-left-style: solid; + border-right-width: 0; + margin-bottom: 3px; + padding-left: 3px; +} + +/* Avatar gallery */ +.gallery label { + position: relative; + float: left; + margin: 10px; + padding: 5px; + width: auto; + border: 1px solid transparent; + text-align: center; +} + +/* Responsive *CP navigation +----------------------------------------*/ +@media only screen and (max-width: 900px), only screen and (max-device-width: 900px) +{ + .nojs .tabs a span, .nojs .minitabs a span { + max-width: 40px; + overflow: hidden; + text-overflow: ellipsis; + letter-spacing: -.5px; + } + + .cp-menu, .navigation, .cp-main { + float: none; + width: auto; + margin: 0; + } + + .navigation { + padding: 0; + margin: 0 auto; + max-width: 320px; + } + + .navigation a { + background-image: none; + } + + .navigation li:first-child a { + border-top-left-radius: 5px; + border-top-right-radius: 5px; + } + + .navigation li:last-child a { + border-bottom-left-radius: 5px; + border-bottom-right-radius: 5px; + } +} + +/* Misc layout styles +---------------------------------------- */ +/* column[1-2] styles are containers for two column layouts */ +.rtl .column1 { + float: right; + clear: right; +} + +.rtl .column2 { + float: left; + clear: left; +} + +/* General classes for placing floating blocks */ +.rtl .left-box { + float: right; + text-align: right; +} + +.rtl .right-box { + float: left; + text-align: left; +} + +.rtl dl.details dt { + float: right; + clear: right; + text-align: left; +} + +.rtl dl.details dd { + margin-right: 0; + margin-left: 0; + padding-right: 5px; + padding-left: 0; + float: right; +} + +*:first-child+html dl.details dd { + margin-right: 30%; + float: none; +} + +* html dl.details dd { + margin-right: 30%; + float: none; +} + +/* RTL imageset entries */ +.rtl .imageset.site_logo { + padding-right: 170px; + padding-left: 0; +} +.rtl .imageset.upload_bar { + padding-right: 280px; + padding-left: 0; +} +.rtl .imageset.poll_left, .rtl .imageset.poll_right { + padding-right: 4px; + padding-left: 0; +} +.rtl .imageset.poll_center { + padding-right: 1px; + padding-left: 0; +} +.rtl .imageset.forum_link, .rtl .imageset.forum_read, .rtl .imageset.forum_read_locked, .rtl .imageset.forum_read_subforum, .rtl .imageset.forum_unread, .rtl .imageset.forum_unread_locked, .rtl .imageset.forum_unread_subforum { + padding-right: 46px; + padding-left: 0; +} +.rtl .imageset.topic_moved, .rtl .imageset.topic_read, .rtl .imageset.topic_read_mine, .rtl .imageset.topic_read_hot, .rtl .imageset.topic_read_hot_mine, .rtl .imageset.topic_read_locked, .rtl .imageset.topic_read_locked_mine, .rtl .imageset.topic_unread, .rtl .imageset.topic_unread_mine, .rtl .imageset.topic_unread_hot, .rtl .imageset.topic_unread_hot_mine, .rtl .imageset.topic_unread_locked, .rtl .imageset.topic_unread_locked_mine, .rtl .imageset.sticky_read, .rtl .imageset.sticky_read_mine, .rtl .imageset.sticky_read_locked, .rtl .imageset.sticky_read_locked_mine, .rtl .imageset.sticky_unread, .rtl .imageset.sticky_unread_mine, .rtl .imageset.sticky_unread_locked, .rtl .imageset.sticky_unread_locked_mine, .rtl .imageset.announce_read, .rtl .imageset.announce_read_mine, .rtl .imageset.announce_read_locked, .rtl .imageset.announce_read_locked_mine, .rtl .imageset.announce_unread, .rtl .imageset.announce_unread_mine, .rtl .imageset.announce_unread_locked, .rtl .imageset.announce_unread_locked_mine, .rtl .imageset.global_read, .rtl .imageset.global_read_mine, .rtl .imageset.global_read_locked, .rtl .imageset.global_read_locked_mine, .rtl .imageset.global_unread, .rtl .imageset.global_unread_mine, .rtl .imageset.global_unread_locked, .rtl .imageset.global_unread_locked_mine, .rtl .imageset.pm_read, .rtl .imageset.pm_unread, .rtl .imageset.icon_topic_reported, .rtl .imageset.icon_topic_unapproved { + padding-right: 19px; + padding-left: 0; +} +.rtl .imageset.icon_post_target, .rtl .imageset.icon_post_target_unread { + padding-right: 12px; + padding-left: 0; +} +.rtl .imageset.icon_topic_attach { + padding-right: 14px; + padding-left: 0; +} +.rtl .imageset.icon_topic_latest, .rtl .imageset.icon_topic_newest { + padding-right: 18px; + padding-left: 0; +} + +#notification_list { + display: none; + position: absolute; + width: 310px; + z-index: 1; + box-shadow: 3px 3px 5px darkgray; +} + +#notification_list .notification_scroll { + max-height: 350px; + overflow-y: auto; + overflow-x: hidden; +} + +#notification_list table { + width: 100%; +} + +#notification_list .notification_title { + padding: 3px; +} + +#notification_list .notification_title:after { + clear: both; + content: ''; + display: block; +} + +#notification_list .header { + padding: 5px; + font-weight: bold; + border: 1px solid #A9B8C2; + border-bottom: 0; +} + +#notification_list > .header > .header_settings { + float: right; + font-weight: normal; + text-transform: none; +} + +#notification_list .header:after { + content: ''; + display: table; + clear: both; +} + +#notification_list .footer { + text-align: center; + font-size: 1.2em; + border: 1px solid #A9B8C2; + border-top: 0; +} + +.notification_list img { + max-width: 50px; + max-height: 50px; +} + +#notification_list .footer > a { + display: block; +} + +#notification_list .notification-time { + font-size: 0.9em; + float: right; +} + +.notification_list .notifications_time { + font-size: 0.8em; +} + + +/* Responsive Design +---------------------------------------- */ + +@media (max-width: 320px) { + select, .inputbox { + max-width: 240px; + } +} + +/* Notifications list +----------------------------------------*/ +@media (max-width: 350px) { + .dropdown-extended .dropdown-contents { + width: auto; + } +} + +@media (max-width: 430px) { + .action-bar .search-box .inputbox { + width: 120px; + } + + .section-viewtopic .search-box .inputbox { + width: 57px; + } + + .action-bar .search-box .inputbox ::-moz-placeholder { + content: "Search..."; + } + + .action-bar .search-box .inputbox :-ms-input-placeholder { + content: "Search..."; + } + + .action-bar .search-box .inputbox ::-webkit-input-placeholder { + content: "Search..."; + } +} + +@media (max-width: 500px) { + dd label { + white-space: normal; + } + + select, .inputbox { + max-width: 260px; + } + + .captcha-panel dd.captcha { + margin-left: 0; + } + + .captcha-panel dd.captcha-image img { + width: 100%; + } + + dl.details dt, dl.details dd { + width: auto; + float: none; + text-align: left; + } + + dl.details dd { + margin-left: 20px; + } + + p.responsive-center { + float: none; + text-align: center; + margin-bottom: 5px; + } + + .action-bar > div { + margin-bottom: 5px; + } + + .action-bar > .pagination { + float: none; + clear: both; + padding-bottom: 1px; + text-align: center; + } + + .action-bar > .pagination li.page-jump { + margin: 0 2px; + } + + p.jumpbox-return { + display: none; + } + + .display-options > label:nth-child(1) { + display: block; + margin-bottom: 5px; + } + + .attach-controls { + margin-top: 5px; + width: 100%; + } + + .quick-links .dropdown-trigger span { + display: none; + } +} + +@media (max-width: 550px) { + ul.topiclist.forums dt { + margin-right: 0; + } + + ul.topiclist.forums dt .list-inner { + margin-right: 0; + } + + ul.topiclist.forums dd.lastpost { + display: none; + } +} + +@media (max-width: 700px) { + .responsive-hide { display: none !important; } + .responsive-show { display: block !important; } + .responsive-show-inline { display: inline !important; } + .responsive-show-inline-block { display: inline-block !important; } + + /* Content wrappers + ----------------------------------------*/ + html { + height: auto; + } + + body { + padding: 0; + } + + .wrap { + border: none; + border-radius: 0; + margin: 0; + min-width: 290px; + padding: 0 5px; + } + + /* Common block wrappers + ----------------------------------------*/ + .headerbar, .navbar, .forabg, .forumbg, .post, .panel { + border-radius: 0; + margin-left: -5px; + margin-right: -5px; + } + + .cp-main .forabg, .cp-main .forumdb, .cp-main .post, .cp-main .panel { + border-radius: 7px; + } + + /* Logo block + ----------------------------------------*/ + .site-description { + float: none; + width: auto; + text-align: center; + } + + .logo { + /* change display value to inline-block to show logo */ + display: none; + float: none; + padding: 10px; + } + + .site-description h1, .site-description p { + text-align: inherit; + float: none; + margin: 5px; + line-height: 1.2em; + overflow: hidden; + text-overflow: ellipsis; + } + + .site-description p, .search-header { + display: none; + } + + /* Navigation + ----------------------------------------*/ + .headerbar + .navbar { + margin-top: -5px; + } + + /* Search + ----------------------------------------*/ + .responsive-search { display: block !important; } + + /* .topiclist lists + ----------------------------------------*/ + li.header dt { + text-align: center; + text-transform: none; + line-height: 1em; + font-size: 1.2em; + padding-bottom: 4px; + } + + ul.topiclist li.header dt, ul.topiclist li.header dt .list-inner { + margin-right: 0 !important; + padding-right: 0; + } + + ul.topiclist li.header dd { + display: none !important; + } + + ul.topiclist dt, ul.topiclist dt .list-inner, + ul.topiclist.missing-column dt, ul.topiclist.missing-column dt .list-inner, + ul.topiclist.two-long-columns dt, ul.topiclist.two-long-columns dt .list-inner, + ul.topiclist.two-columns dt, ul.topiclist.two-columns dt .list-inner { + margin-right: 0; + } + + ul.topiclist dt .list-inner.with-mark { + padding-right: 34px; + } + + ul.topiclist dt .list-inner { + min-height: 28px; + } + + ul.topiclist li.header dt .list-inner { + min-height: 0; + } + + ul.topiclist dd { + display: none; + } + ul.topiclist dd.mark { + display: block; + } + + /* Forums and topics lists + ----------------------------------------*/ + ul.topiclist.forums dt { + margin-right: -250px; + } + + ul.topiclist dd.mark { + display: block; + position: absolute; + right: 5px; + top: 0; + margin: 0; + width: auto; + min-width: 0; + text-align: left; + } + + ul.topiclist.forums dd.topics dfn, ul.topiclist.topics dd.posts dfn { + position: relative; + left: 0; + width: auto; + display: inline; + font-weight: normal; + } + + li.row .responsive-show strong { + font-weight: bold; + color: inherit; + } + + ul.topiclist li.row dt a.subforum { + vertical-align: bottom; + overflow: hidden; + text-overflow: ellipsis; + max-width: 100px; + } + + /* Forums and topics lists + ----------------------------------------*/ + dd.cat-title { + width: 50px; + min-width: 20px; + overflow: hidden; + text-align: left; + line-height: 2.2em; + font-size: 1.1em; + } + + dd.catdiv { + min-width: 20px; + overflow: hidden; + text-align: center; + line-height: 2.2em; + font-size: 1.1em; + } + + dd.topicdetails { + width: 50px; + overflow: hidden; + margin-left: 2px; + margin-right: 2px; + text-align: left; + line-height: 1.2em; + font-size: 1.1em; + } + + dd.forumdesc { + margin-left: 2px; + margin-right: 2px; + text-align: left; + line-height: 1.2em; + font-size: 1.1em; + } + + dd.nav { + overflow: hidden; + text-align: center; + font-size: 1.1em; + } + + dd.views { + min-width: 100px; + overflow: hidden; + text-align: center; + font-size: 1.1em; + } + + dd.answers { + min-width: 60px; + overflow: hidden; + text-align: center; + line-height: 1.2em; + font-size: 1.1em; + } + + dd.forumlink { + min-width: 60px; + text-align: center; + font-size: 1.1em; + } + + dd.lastpost { + width: 50px; + min-width: 10px; + text-align: left; + font-size: 1.1em; + } + + div.legend { + text-align: center; + vertical-align: middle; + line-height: 1.2em; + font-size: 1.1em; + } + + /* Responsive breadcrumbs + ----------------------------------------*/ + .rtl .breadcrumbs .crumb { + float: right; + } + + /* Table styles + ----------------------------------------*/ + .rtl table.table1 thead th { + padding: 0 3px 4px 0; + } + + .rtl table.table1 thead th span { + padding-left: 0; + padding-right: 7px; + } + + .rtl table.table1 tbody th { + text-align: right; + } + + /* Specific column styles */ + .rtl table.table1 .name { text-align: right; } + .rtl table.table1 .joined { text-align: right; } + .rtl table.table1 .active { text-align: right; } + .rtl table.table1 .info { text-align: right; } + .rtl table.table1 thead .autocol { padding-left: 0; padding-right: 1em; } + + .rtl table.table1 span.rank-img { + float: left; + } + + .rtl table.info tbody th { + text-align: left; + } + + .rtl .forumbg table.table1 { + margin: 0 -1px -1px -2px; + } + + /* Misc layout styles + ---------------------------------------- */ + /* column[1-2] styles are containers for two column layouts */ + .rtl .column1 { + float: right; + clear: right; + } + + .rtl .column2 { + float: left; + clear: left; + } + + /* General classes for placing floating blocks */ + .rtl .left-box { + float: right; + text-align: right; + } + + .rtl .right-box { + float: left; + text-align: left; + } + + .rtl dl.details dt { + float: right; + clear: right; + text-align: left; + } + + .rtl dl.details dd { + margin-right: 0; + margin-left: 0; + padding-right: 5px; + padding-left: 0; + float: right; + } + + *:first-child+html dl.details dd { + margin-right: 30%; + float: none; + } + + * html dl.details dd { + margin-right: 30%; + float: none; + } + + /* Pagination + ----------------------------------------*/ + .pagination > ul { + margin: 5px 0 0; + } + + .row .pagination .ellipsis + li { + display: none !important; + } + + /* Responsive tables + ----------------------------------------*/ + table { + border-collapse: collapse; + border-spacing: 0; + } + + table.responsive, table.responsive tbody, table.responsive tr, table.responsive td { + display: block; + } + + table.responsive thead, table.responsive th { + display: none; + } + + table.responsive.show-header thead, table.responsive.show-header th:first-child { + display: block; + width: auto !important; + text-align: left !important; + } + + table.responsive.show-header th:first-child span.rank-img { + display: none; + } + + table.responsive tr { + margin: 2px 0; + } + + table.responsive td { + width: auto !important; + text-align: left !important; + padding: 4px; + } + + table.responsive td.empty { + display: none !important; + } + + table.responsive td > dfn { + display: inline-block !important; + } + + table.responsive td > dfn:after { + content: ':'; + padding-right: 5px; + } + + table.responsive span.rank-img { + float: none; + padding-right: 5px; + } + + table.responsive.memberlist td:first-child input[type="checkbox"] { + float: right; + } + + /* Tabbed menu + Based on: http://www.alistapart.com/articles/slidingdoors2/ + ----------------------------------------*/ + #tabs { + line-height: normal; + margin: 0 0 -6px 7px; + min-width: 600px; + } + + .rtl #tabs { + margin: 0 7px -6px 0; + } + + #tabs ul { + margin:0; + padding: 0; + list-style: none; + } + + #tabs li { + display: inline; + margin: 0; + padding: 0; + font-size: 0.85em; + font-weight: bold; + } + + #tabs a { + float: left; + background:url("images/bg_tabs1.gif") no-repeat 0% -34px; + margin: 0 1px 0 0; + padding: 0 0 0 7px; + text-decoration: none; + position: relative; + } + + .rtl #tabs a { + float: right; + } + + #tabs a span { + float: left; + display: block; + background: url("images/bg_tabs2.gif") no-repeat 100% -34px; + padding: 7px 10px 4px 4px; + color: #767676; + white-space: nowrap; + font-family: Arial, Helvetica, sans-serif; + text-transform: uppercase; + font-weight: bold; + } + + .rtl #tabs a span { + float: right; + } + + /* Commented Backslash Hack hides rule from IE5-Mac \*/ + #tabs a span, .rtl #tabs a span { float:none;} + /* End hack */ + + #tabs a:hover span { + color: #BC2A4D; + } + + #tabs #activetab a { + background-position: 0 0; + border-bottom: 1px solid #DCDEE2; + } + + #tabs #activetab a span { + background-position: 100% 0; + padding-bottom: 5px; + color: #23649F; + } + + #tabs a:hover { + background-position: 0 -69px; + } + + #tabs a:hover span { + background-position: 100% -69px; + } + + #tabs #activetab a:hover span { + color: #115098; + } + + /* Forms + ----------------------------------------*/ + fieldset dt, fieldset.fields1 dt, fieldset.fields2 dt { + width: auto; + float: none; + } + + fieldset dd, fieldset.fields1 dd, fieldset.fields2 dd { + margin-left: 0px; + } + + textarea, dd textarea, .message-box textarea { + width: 100%; + -moz-box-sizing: border-box; + box-sizing: border-box; + } + + dl.pmlist dt { + width: auto !important; + margin-bottom: 5px; + } + + dl.pmlist dd { + display: inline-block; + margin-left: 0 !important; + } + + dl.pmlist dd:first-of-type { + padding-left: 20px; + } + + .smiley-box, .message-box { + float: none; + width: auto; + } + + .smiley-box { + margin-top: 5px; + } + + .bbcode-status { + display: none; + } + + .colour-palette, .colour-palette tbody, .colour-palette tr { + display: block; + } + + .colour-palette td { + display: inline-block; + margin-right: 2px; + } + + .horizontal-palette td:nth-child(2n), .vertical-palette tr:nth-child(2n) { + display: none; + } + + fieldset.quick-login label { + display: block; + margin-bottom: 5px; + white-space: normal; + } + + fieldset.quick-login label > span { + display: inline-block; + min-width: 100px; + } + + fieldset.quick-login input.inputbox { + width: 85%; + max-width: 300px; + margin-left: 20px; + } + + fieldset.quick-login label[for="autologin"] { + display: inline-block; + text-align: right; + min-width: 50%; + } + + /* User profile + ----------------------------------------*/ + .column1, .column2, .left-box.profile-details { + float: none; + width: auto; + } + + /* Polls + ----------------------------------------*/ + fieldset.polls dt { + width: 90%; + } + + fieldset.polls dd.resultbar { + padding-left: 20px; + } + + fieldset.polls dd.poll_option_percent { + width: 20%; + } + + fieldset.polls dd.resultbar, fieldset.polls dd.poll_option_percent { + margin-top: 5px; + } + + /* Post + ----------------------------------------*/ + .postbody { + position: inherit; + } + + .postprofile, .postbody, .search .postbody { + display: block; + width: auto; + float: none; + padding: 0; + min-height: 0; + } + + .post .postprofile { + width: auto; + border-width: 0 0 1px 0; + padding-bottom: 5px; + margin: 0; + margin-bottom: 5px; + min-height: 40px; + overflow: hidden; + } + + .postprofile dd { + display: none; + } + + .postprofile dt, .postprofile dd.profile-rank, .search .postprofile dd { + display: block; + margin: 0; + } + + .postprofile .has-avatar .avatar-container { + margin: 0; + overflow: inherit; + } + + .postprofile .avatar-container:after { + clear: none; + } + + .postprofile .avatar { + margin-right: 5px; + } + + .postprofile .avatar img { + width: auto !important; + height: auto !important; + max-height: 32px; + } + + .has-profile .postbody h3 { + margin-left: 0 !important; + margin-right: 0 !important; + } + + .has-profile .post-buttons { + right: 30px; + top: 15px; + } + + .online { + background-size: 40px; + } + + /* Misc stuff + ----------------------------------------*/ + h2 { + margin-top: .5em; + } + + p { + margin-bottom: .5em; + overflow: hidden; + } + + p.rightside { + margin-bottom: 0; + } + + fieldset.display-options label { + display: block; + clear: both; + margin-bottom: 5px; + } + + dl.mini dd.pm-legend { + float: left; + min-width: 200px; + } + + .topicreview { + margin: 0 -5px; + padding: 0 5px; + } + + fieldset.display-actions { + white-space: normal; + } + + .phpbb_alert { + width: auto; + margin: 0 5px; + } + + .attach-comment dfn { + width: 100%; + } +} + +@media (min-width: 700px) { + .postbody { width: 70%; } +} + +@media (min-width: 850px) { + .postbody { width: 76%; } +} + +@media (max-width: 850px) { + .postprofile { width: 28%; } + + +} + +@media (min-width: 701px) and (max-width: 950px) { + + ul.topiclist dt { + margin-right: -410px; + } + + ul.topiclist dt .list-inner { + margin-right: 410px; + } + + dd.posts, dd.topics, dd.views { + width: 80px; + } +} + + + +/* Show scrollbars for items with overflow on iOS devices +----------------------------------------*/ +.postbody .content::-webkit-scrollbar, .topicreview::-webkit-scrollbar, .post_details::-webkit-scrollbar, .codebox code::-webkit-scrollbar, .attachbox dd::-webkit-scrollbar, .attach-image::-webkit-scrollbar, .dropdown-extended ul::-webkit-scrollbar { + width: 8px; + height: 8px; + -webkit-appearance: none; + background: rgba(0, 0, 0, .1); + border-radius: 3px; +} + +.postbody .content::-webkit-scrollbar-thumb, .topicreview::-webkit-scrollbar-thumb, .post_details::-webkit-scrollbar-thumb, .codebox code::-webkit-scrollbar-thumb, .attachbox dd::-webkit-scrollbar-thumb, .attach-image::-webkit-scrollbar-thumb, .dropdown-extended ul::-webkit-scrollbar-thumb { + background: rgba(0, 0, 0, .3); + border-radius: 3px; +} + +#memberlist tr.inactive, #team tr.inactive { + font-style: italic; +} diff --git a/templates/SwiftBlue/admin/SwiftBlue.css b/templates/SwiftBlue/admin/SwiftBlue.css new file mode 100644 index 0000000..86295aa --- /dev/null +++ b/templates/SwiftBlue/admin/SwiftBlue.css @@ -0,0 +1,12 @@ +@CHARSET "UTF-8"; + +BODY { + margin:5px; +} +TH, TD { + font-size: 68.5%; +} + +.gen { + font-size: 1.1em; +} diff --git a/templates/SwiftBlue/admin/admin.css b/templates/SwiftBlue/admin/admin.css new file mode 100644 index 0000000..56db12e --- /dev/null +++ b/templates/SwiftBlue/admin/admin.css @@ -0,0 +1,45 @@ +fieldset { + border: 0px; +} +div#admintabs { + display:inline; +} +div#admintabs ul { + margin: 0px; + padding: 0px; + font-family: Arial, Helvetica, sans-serif; + font-size: 12px; + font-weight: bold; + color: #000; + line-height: 30px; + white-space: nowrap; +} +div#admintabs li { + margin: 2px; + padding: 2px; + list-style-type: none; + display: inline; + border: 1px solid #777; + background-color: #fff; +} +div#admintabs li a { + text-decoration: none; + padding: 2px 10px; + color: #000; +} +div#admintabs li a:link { + color: #000: +} +div#admintabs li a:visited { + color: #000; +} +div#admintabs li a:hover { + color: #777; +} +div#admintabs li.activetab { + border: 1px solid #777; + background-color: #ddd; +} +div#admintabs li.activetab a, div#tabs li.activetab a:link, div#tabs li.activetab a:visited, div#tabs li.activetab a:hover { + color: #777; +} \ No newline at end of file diff --git a/templates/SwiftBlue/admin/index.htm b/templates/SwiftBlue/admin/index.htm new file mode 100644 index 0000000..ee1f723 --- /dev/null +++ b/templates/SwiftBlue/admin/index.htm @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/templates/SwiftBlue/admin/mainpage_header.html b/templates/SwiftBlue/admin/mainpage_header.html new file mode 100644 index 0000000..2af2e83 --- /dev/null +++ b/templates/SwiftBlue/admin/mainpage_header.html @@ -0,0 +1,31 @@ + + + +{META} + +{SITENAME} - {L_MX_ADMIN} + + + + + + + + +{MX_ADDITIONAL_CSS} +{MX_ICON_CSS} + + + + + + + + + + + +
    logo MX-Publisher

    {ADMIN_TITLE}

    {L_LOGGED_IN_AS} {USERNAME}{L_LOGOUT} ]{L_ADMIN_INDEX} • + {L_PORTAL_INDEX} +
    +

    {L_SKIP}

    diff --git a/templates/SwiftBlue/alternate.css b/templates/SwiftBlue/alternate.css new file mode 100644 index 0000000..20c39b3 --- /dev/null +++ b/templates/SwiftBlue/alternate.css @@ -0,0 +1,134 @@ +/** + * An alternate stylesheet. + * + * @package AutoIndex + * @author Justin Hagstrom + * @version 1.0.0 (February 03, 2005) + * + * @copyright Copyright (C) 2002-2005 Justin Hagstrom + * @license http://www.gnu.org/licenses/gpl.html GNU General Public License (GPL) + * + * @link http://autoindex.sourceforge.net + */ + +/* Body */ +.autoindex_body, html +{ + font-family: verdana, lucidia, sans-serif; + font-size: 13px; + background-color: #FCFCFC; +} + +/* Images */ +.autoindex_body img +{ + border: none; +} + +/* Tables */ +.autoindex_table +{ + width: 100%; + border: none; + border-spacing: 2px; +} +.light_row +{ + background-color: #FEFEFE; + font-size: 12px; +} +.dark_row +{ + background-color: #EEEEEE; + font-size: 12px; +} +.light_row:hover, .dark_row:hover +{ + background-color: #FFF2BF; +} +.autoindex_td +{ + border: 1px solid #FAFAFA; + font-size: 12px; + padding: 1px; + text-align: left; + white-space: nowrap; +} +.autoindex_td_right +{ + border: 1px solid #FAFAFA; + font-size: 12px; + padding: 1px; + text-align: right; + white-space: nowrap; +} +.autoindex_td:hover, .autoindex_td_right:hover +{ + font-size: 12px; + padding: 1px; + border: 1px solid #FFCC00; +} +.autoindex_th +{ + background-color: #FFCC00; + border: 1px solid #AA9339; + font-size: 12px; + padding: 2px; +} + +/* Links */ +.plain_link +{ + color: #000000; + text-decoration: none; +} +.autoindex_a:visited, .autoindex_a:active +{ + color: #00008F; + text-decoration: none; +} +.autoindex_a:link +{ + color: #0000FF; + text-decoration: none; +} +.autoindex_a:hover +{ + color: #392266; + text-decoration: none; +} + +/* Buttons */ +.button +{ + color: #707070; + background-color: #F2F6FC; + font-family: arial, sans-serif; + font-size: 11px; + text-align: left; + vertical-align: middle; + font-weight: bold; + cursor: pointer; + border: 0px outset #CBCBCB; + padding: 3px 10px 3px 10px; +} + +/* Misc. */ +.paragraph +{ + background: #F2F6FC; + color: #000020; + font-size: 13px; +} +.autoindex_hr +{ + color: #000020; + background-color: #000020; + border: none; + width: 75%; + height: 1px; +} +.autoindex_small +{ + font-size: 10px; +} \ No newline at end of file diff --git a/templates/SwiftBlue/bbcode.html b/templates/SwiftBlue/bbcode.html new file mode 100644 index 0000000..6d41ed2 --- /dev/null +++ b/templates/SwiftBlue/bbcode.html @@ -0,0 +1,129 @@ +
      +
    + +
      +
    + +
  • + + + + + + + + + + + + + + + {if:download_count} + + {end if:download_count} + + + + + + {if:description_file} + + {end if:description_file} + + + \ No newline at end of file diff --git a/templates/SwiftBlue/editor.js b/templates/SwiftBlue/editor.js new file mode 100644 index 0000000..5631ab6 --- /dev/null +++ b/templates/SwiftBlue/editor.js @@ -0,0 +1,403 @@ +/** +* bbCode control by subBlue design [ www.subBlue.com ] +* Includes unixsafe colour palette selector by SHS` +*/ + +// Startup variables +var imageTag = false; +var theSelection = false; + +// Check for Browser & Platform for PC & IE specific bits +// More details from: http://www.mozilla.org/docs/web-developer/sniffer/browser_type.html +var clientPC = navigator.userAgent.toLowerCase(); // Get client info +var clientVer = parseInt(navigator.appVersion); // Get browser version + +var is_ie = ((clientPC.indexOf('msie') != -1) && (clientPC.indexOf('opera') == -1)); +var is_win = ((clientPC.indexOf('win') != -1) || (clientPC.indexOf('16bit') != -1)); + +var baseHeight; +onload_functions.push('initInsertions()'); + +/** +* Shows the help messages in the helpline window +*/ +function helpline(help) +{ + document.forms[form_name].helpbox.value = help_line[help]; +} + +/** +* Fix a bug involving the TextRange object. From +* http://www.frostjedi.com/terra/scripts/demo/caretBug.html +*/ +function initInsertions() +{ + var doc; + + if (document.forms[form_name]) + { + doc = document; + } + else + { + doc = opener.document; + } + + var textarea = doc.forms[form_name].elements[text_name]; + + if (is_ie && typeof(baseHeight) != 'number') + { + textarea.focus(); + baseHeight = doc.selection.createRange().duplicate().boundingHeight; + + if (!document.forms[form_name]) + { + document.body.focus(); + } + } +} + +/** +* bbstyle +*/ +function bbstyle(bbnumber) +{ + if (bbnumber != -1) + { + bbfontstyle(bbtags[bbnumber], bbtags[bbnumber+1]); + } + else + { + insert_text('[*]'); + document.forms[form_name].elements[text_name].focus(); + } +} + +/** +* Apply bbcodes +*/ +function bbfontstyle(bbopen, bbclose) +{ + theSelection = false; + + var textarea = document.forms[form_name].elements[text_name]; + + textarea.focus(); + + if ((clientVer >= 4) && is_ie && is_win) + { + // Get text selection + theSelection = document.selection.createRange().text; + + if (theSelection) + { + // Add tags around selection + document.selection.createRange().text = bbopen + theSelection + bbclose; + document.forms[form_name].elements[text_name].focus(); + theSelection = ''; + return; + } + } + else if (document.forms[form_name].elements[text_name].selectionEnd && (document.forms[form_name].elements[text_name].selectionEnd - document.forms[form_name].elements[text_name].selectionStart > 0)) + { + mozWrap(document.forms[form_name].elements[text_name], bbopen, bbclose); + document.forms[form_name].elements[text_name].focus(); + theSelection = ''; + return; + } + + //The new position for the cursor after adding the bbcode + var caret_pos = getCaretPosition(textarea).start; + var new_pos = caret_pos + bbopen.length; + + // Open tag + insert_text(bbopen + bbclose); + + // Center the cursor when we don't have a selection + // Gecko and proper browsers + if (!isNaN(textarea.selectionStart)) + { + textarea.selectionStart = new_pos; + textarea.selectionEnd = new_pos; + } + // IE + else if (document.selection) + { + var range = textarea.createTextRange(); + range.move("character", new_pos); + range.select(); + storeCaret(textarea); + } + + textarea.focus(); + return; +} + +/** +* Insert text at position +*/ +function insert_text(text, spaces, popup) +{ + var textarea; + + if (!popup) + { + textarea = document.forms[form_name].elements[text_name]; + } + else + { + textarea = opener.document.forms[form_name].elements[text_name]; + } + if (spaces) + { + text = ' ' + text + ' '; + } + + if (!isNaN(textarea.selectionStart)) + { + var sel_start = textarea.selectionStart; + var sel_end = textarea.selectionEnd; + + mozWrap(textarea, text, '') + textarea.selectionStart = sel_start + text.length; + textarea.selectionEnd = sel_end + text.length; + } + else if (textarea.createTextRange && textarea.caretPos) + { + if (baseHeight != textarea.caretPos.boundingHeight) + { + textarea.focus(); + storeCaret(textarea); + } + + var caret_pos = textarea.caretPos; + caret_pos.text = caret_pos.text.charAt(caret_pos.text.length - 1) == ' ' ? caret_pos.text + text + ' ' : caret_pos.text + text; + } + else + { + textarea.value = textarea.value + text; + } + if (!popup) + { + textarea.focus(); + } +} + +/** +* Add inline attachment at position +*/ +function attach_inline(index, filename) +{ + insert_text('[attachment=' + index + ']' + filename + '[/attachment]'); + document.forms[form_name].elements[text_name].focus(); +} + +/** +* Add quote text to message +*/ +function addquote(post_id, username) +{ + var message_name = 'message_' + post_id; + var theSelection = ''; + var divarea = false; + + if (document.all) + { + divarea = document.all[message_name]; + } + else + { + divarea = document.getElementById(message_name); + } + + // Get text selection - not only the post content :( + if (window.getSelection) + { + theSelection = window.getSelection().toString(); + } + else if (document.getSelection) + { + theSelection = document.getSelection(); + } + else if (document.selection) + { + theSelection = document.selection.createRange().text; + } + + if (theSelection == '' || typeof theSelection == 'undefined' || theSelection == null) + { + if (divarea.innerHTML) + { + theSelection = divarea.innerHTML.replace(/
    /ig, '\n'); + theSelection = theSelection.replace(//ig, '\n'); + theSelection = theSelection.replace(/<\;/ig, '<'); + theSelection = theSelection.replace(/>\;/ig, '>'); + theSelection = theSelection.replace(/&\;/ig, '&'); + theSelection = theSelection.replace(/ \;/ig, ' '); + } + else if (document.all) + { + theSelection = divarea.innerText; + } + else if (divarea.textContent) + { + theSelection = divarea.textContent; + } + else if (divarea.firstChild.nodeValue) + { + theSelection = divarea.firstChild.nodeValue; + } + } + + if (theSelection) + { + insert_text('[quote="' + username + '"]' + theSelection + '[/quote]'); + } + + return; +} + +/** +* From http://www.massless.org/mozedit/ +*/ +function mozWrap(txtarea, open, close) +{ + var selLength = txtarea.textLength; + var selStart = txtarea.selectionStart; + var selEnd = txtarea.selectionEnd; + var scrollTop = txtarea.scrollTop; + + if (selEnd == 1 || selEnd == 2) + { + selEnd = selLength; + } + + var s1 = (txtarea.value).substring(0,selStart); + var s2 = (txtarea.value).substring(selStart, selEnd) + var s3 = (txtarea.value).substring(selEnd, selLength); + + txtarea.value = s1 + open + s2 + close + s3; + txtarea.selectionStart = selEnd + open.length + close.length; + txtarea.selectionEnd = txtarea.selectionStart; + txtarea.focus(); + txtarea.scrollTop = scrollTop; + + return; +} + +/** +* Insert at Caret position. Code from +* http://www.faqts.com/knowledge_base/view.phtml/aid/1052/fid/130 +*/ +function storeCaret(textEl) +{ + if (textEl.createTextRange) + { + textEl.caretPos = document.selection.createRange().duplicate(); + } +} + +/** +* Color pallette +*/ +function colorPalette(dir, width, height) +{ + var r = 0, g = 0, b = 0; + var numberList = new Array(6); + var color = ''; + + numberList[0] = '00'; + numberList[1] = '40'; + numberList[2] = '80'; + numberList[3] = 'BF'; + numberList[4] = 'FF'; + + document.writeln('
    {USERNAME} {L_WROTE}:
    + + + + + + + + +
    {L_QUOTE}:
    +
    + + + + + + + + + + +
    {L_CODE}:
    +
    + + + + + + + + + + + + + + + + + + + + +{DESCRIPTION} + +{EMAIL} + + + + +
    + + + + +
    + + + +
    + + + + +
    +{GVIDEOLINK}
    +
    + + + +
    + + + +
    +{YOUTUBELINK}

    + + + +
    + + + + + + + + + + +
    + + + +
    +
    +
    + + +
    + + + + + + + \ No newline at end of file diff --git a/templates/SwiftBlue/biblia_online.js b/templates/SwiftBlue/biblia_online.js new file mode 100644 index 0000000..4dc009e --- /dev/null +++ b/templates/SwiftBlue/biblia_online.js @@ -0,0 +1,9 @@ +document.writeln(""); +document.writeln(""); \ No newline at end of file diff --git a/templates/SwiftBlue/default.css b/templates/SwiftBlue/default.css new file mode 100644 index 0000000..c5d7350 --- /dev/null +++ b/templates/SwiftBlue/default.css @@ -0,0 +1,128 @@ +/** + * The default CSS stylesheet used for all templates. + * + * @package AutoIndex + * @author Justin Hagstrom + * @version 1.0.2 (February 05, 2004) + * + * @copyright Copyright (C) 2002-2004 Justin Hagstrom + * @license http://www.gnu.org/licenses/gpl.html GNU General Public License (GPL) + * + * @link http://autoindex.sourceforge.net + */ + +/* Body */ +.autoindex_body, html +{ + font-family: verdana, lucidia, sans-serif; + font-size: 13px; + background-color: #F0F0F0; +} + +/* Images */ +.autoindex_body img +{ + border: none; +} + +/* Tables */ +.autoindex_table +{ + width: 100%; + border: none; + border-spacing: 2px; +} +.light_row +{ + background-color: #F2F6FC; + font-size: 13px; +} +.dark_row +{ + background-color: #DADEEE; + font-size: 13px; +} +.autoindex_td +{ + font-size: 13px; + font-family: verdana, lucidia, sans-serif; + vertical-align: top; + border: 1px solid #7F8FA9; + padding: 0px; + text-align: left; + white-space: nowrap; +} +.autoindex_td_right +{ + font-size: 13px; + font-family: verdana, lucidia, sans-serif; + vertical-align: top; + border: 1px solid #7F8FA9; + padding: 0px; + text-align: right; + white-space: nowrap; +} +.autoindex_th +{ + font-size: 13px; + background-color: #7F8FAD; + border: 1px solid #000010; + padding: 0px; +} + +/* Links */ +.plain_link +{ + color: #000000; + text-decoration: none; +} +.autoindex_a:visited, .autoindex_a:active +{ + color: #00008F; + text-decoration: none; +} +.autoindex_a:link +{ + color: #0000FF; + text-decoration: none; +} +.autoindex_a:hover +{ + color: #0000FF; + text-decoration: overline underline; +} + +/* Buttons */ +.button +{ + color: #707070; + background-color: #F2F6FC; + font-family: sans-serif; + font-size: 11px; + text-align: left; + vertical-align: middle; + font-weight: bold; + cursor: pointer; + border: none; + padding: 3px 10px 3px 10px; +} + +/* Misc. */ +.paragraph +{ + background: #F2F6FC; + font-size: 13px; + color: #000020; +} +.autoindex_hr +{ + color: #000020; + background-color: #000020; + border: none; + width: 75%; + height: 1px; +} +.autoindex_small +{ + font-size: 10px; +} \ No newline at end of file diff --git a/templates/SwiftBlue/documente.js b/templates/SwiftBlue/documente.js new file mode 100644 index 0000000..b393e37 --- /dev/null +++ b/templates/SwiftBlue/documente.js @@ -0,0 +1,22 @@ +var displaymode=0 +var iframecode='' + +if (displaymode==0) +document.write(iframecode) + +function gone(){ +var selectedurl=document.jumpy.example.options[document.jumpy.example.selectedIndex].value +if (document.getElementById&&displaymode==0) +document.getElementById("external").src=selectedurl +else if (document.all&&displaymode==0) +document.all.external.src=selectedurl +else{ +if (!window.win2||win2.closed) +win2=window.open(selectedurl) +//else if win2 already exists +else{ +win2.location=selectedurl +win2.focus() +} +} +} \ No newline at end of file diff --git a/templates/SwiftBlue/dynifs.js b/templates/SwiftBlue/dynifs.js new file mode 100644 index 0000000..579190e --- /dev/null +++ b/templates/SwiftBlue/dynifs.js @@ -0,0 +1,83 @@ +/*************************************************************\ + * DYNIFS - Dynamic IFrame Auto Size v1.0.0 + * + * Copyright (C) 2006, Markus (phpMiX) + * This script is released under GPL License. + * Feel free to use this script (or part of it) wherever you need + * it ...but please, give credit to original author. Thank you. :-) + * We will also appreciate any links you could give us. + * http://www.phpmix.org + * + * Enjoy! ;-) +\*************************************************************/ + +var DYNIFS = { + // Storage for known IFrames. + iframes: {}, + // Here we save any previously installed onresize handler. + oldresize: null, + // Flag that tell us if we have already installed our onresize handler. + ready: false, + // The document dimensions last time onresize was executed. + dim: [-1,-1], + // Timer ID used to defer the actual resize action. + timerID: 0, + // Obtain the dimensions (width,height) of the given document. + getDim: function(d) { + var w=480, h=580, scr_h, off_h; + if( d.height ) { return [d.width,d.height]; } + with( d.body ) { + if( scrollHeight ) { h=scr_h=scrollHeight; w=scrollWidth; } + if( offsetHeight ) { h=off_h=offsetHeight; w=offsetWidth; } + if( scr_h && off_h ) h=Math.max(scr_h, off_h); + } + return [w,h]; + }, + // This is our window.onresize handler. + onresize: function() { + // Invoke any previously installed onresize handler. + if( typeof this.oldresize == 'function' ) { this.oldresize(); } + // Check if the document dimensions really changed. + var dim = this.getDim(document); + if( this.dim[0] == dim[0] && this.dim[1] == dim[1] ) return; + // Defer the resize action to prevent endless loop in quirksmode. + if( this.timerID ) return; + this.timerID = setTimeout('DYNIFS.deferred_resize();', 10); + }, + // This is where the actual IFrame resize is invoked. + deferred_resize: function() { + // Walk the list of known IFrames to see if they need to be resized. + for( var id in this.iframes ) this.resize(id); + // Store resulting document dimensions. + this.dim = this.getDim(document); + // Clear the timer flag. + this.timerID = 0; + }, + // This is invoked when the IFrame is loaded or when the main window is resized. + resize: function(id) { + // Browser compatibility check. + if( !window.frames || !window.frames[id] || !document.getElementById || !document.body ) + return; + // Get references to the IFrame window and layer. + var iframe = window.frames[id]; + var div = document.getElementById(id); + if( !div ) return; + // Save the IFrame id for later use in our onresize handler. + if( !this.iframes[id] ) { + this.iframes[id] = true; + } + // Should we inject our onresize event handler? + if( !this.ready ) { + this.ready = true; + this.oldresize = window.onresize; + window.onresize = new Function('DYNIFS.onresize();'); + } + // This appears to be necessary in MSIE to compute the height + // when the IFrame'd document is in quirksmode. + // OTOH, it doesn't seem to break anything in standards mode, so... + if( document.all ) div.style.height = '0px'; + // Resize the IFrame container. + var dim = this.getDim(iframe.document); + div.style.height = (dim[1]+30) + 'px'; + } +}; \ No newline at end of file diff --git a/templates/SwiftBlue/each_file.tpl b/templates/SwiftBlue/each_file.tpl new file mode 100644 index 0000000..e7ce25f --- /dev/null +++ b/templates/SwiftBlue/each_file.tpl @@ -0,0 +1,39 @@ +
    + {file:if:is_file} /* if it is a file, make a direct link */ + + {end if} + {file:if:is_dir} /* otherwise, for directories, display the folder with autoindex */ + + {end if} + {if:icon_path}[{file:file_ext}]{end if:icon_path} + {file:filename} {file:thumbnail} + {file:new_icon}{file:md5_link}{file:delete_link}{file:rename_link}{file:edit_description_link}{file:ftp_upload_link} + + {file:downloads} + + {file:size} + + {file:date} + + {file:description} +
    '); + + for (r = 0; r < 5; r++) + { + if (dir == 'h') + { + document.writeln(''); + } + + for (g = 0; g < 5; g++) + { + if (dir == 'v') + { + document.writeln(''); + } + + for (b = 0; b < 5; b++) + { + color = String(numberList[r]) + String(numberList[g]) + String(numberList[b]); + document.write(''); + } + + if (dir == 'v') + { + document.writeln(''); + } + } + + if (dir == 'h') + { + document.writeln(''); + } + } + document.writeln('
    '); + document.write('#' + color + ''); + document.writeln('
    '); +} + + +/** +* Caret Position object +*/ +function caretPosition() +{ + var start = null; + var end = null; +} + + +/** +* Get the caret position in an textarea +*/ +function getCaretPosition(txtarea) +{ + var caretPos = new caretPosition(); + + // simple Gecko/Opera way + if(txtarea.selectionStart || txtarea.selectionStart == 0) + { + caretPos.start = txtarea.selectionStart; + caretPos.end = txtarea.selectionEnd; + } + // dirty and slow IE way + else if(document.selection) + { + + // get current selection + var range = document.selection.createRange(); + + // a new selection of the whole textarea + var range_all = document.body.createTextRange(); + range_all.moveToElementText(txtarea); + + // calculate selection start point by moving beginning of range_all to beginning of range + var sel_start; + for (sel_start = 0; range_all.compareEndPoints('StartToStart', range) < 0; sel_start++) + { + range_all.moveStart('character', 1); + } + + txtarea.sel_start = sel_start; + + // we ignore the end value for IE, this is already dirty enough and we don't need it + caretPos.start = txtarea.sel_start; + caretPos.end = txtarea.sel_start; + } + + return caretPos; +} \ No newline at end of file diff --git a/templates/SwiftBlue/error_body.html b/templates/SwiftBlue/error_body.html new file mode 100644 index 0000000..f211ad0 --- /dev/null +++ b/templates/SwiftBlue/error_body.html @@ -0,0 +1,18 @@ + + + + + +
    + + + + + + + + + +
     
    {ERROR_MESSAGE}
     
    + +
    diff --git a/templates/SwiftBlue/forum_fn.js b/templates/SwiftBlue/forum_fn.js new file mode 100644 index 0000000..6694dfb --- /dev/null +++ b/templates/SwiftBlue/forum_fn.js @@ -0,0 +1,257 @@ +/** +* phpBB3 forum functions +*/ + +/** +* Window popup +*/ +function popup(url, width, height, name) +{ + if (!name) + { + name = '_popup'; + } + + window.open(url.replace(/&/g, '&'), name, 'height=' + height + ',resizable=yes,scrollbars=yes, width=' + width); + return false; +} + +/** +* Jump to page +*/ +function jumpto() +{ + var page = prompt(jump_page, on_page); + + if (page !== null && !isNaN(page) && page > 0) + { + document.location.href = base_url.replace(/&/g, '&') + '&start=' + ((page - 1) * per_page); + } +} + +/** +* Mark/unmark checklist +* id = ID of parent container, name = name prefix, state = state [true/false] +*/ +function marklist(id, name, state) +{ + var parent = document.getElementById(id); + if (!parent) + { + eval('parent = document.' + id); + } + + if (!parent) + { + return; + } + + var rb = parent.getElementsByTagName('input'); + + for (var r = 0; r < rb.length; r++) + { + if (rb[r].name.substr(0, name.length) == name) + { + rb[r].checked = state; + } + } +} + +/** +* Resize viewable area for attached image or topic review panel (possibly others to come) +* e = element +*/ +function viewableArea(e, itself) +{ + if (!e) return; + if (!itself) + { + e = e.parentNode; + } + + if (!e.vaHeight) + { + // Store viewable area height before changing style to auto + e.vaHeight = e.offsetHeight; + e.vaMaxHeight = e.style.maxHeight; + e.style.height = 'auto'; + e.style.maxHeight = 'none'; + e.style.overflow = 'visible'; + } + else + { + // Restore viewable area height to the default + e.style.height = e.vaHeight + 'px'; + e.style.overflow = 'auto'; + e.style.maxHeight = e.vaMaxHeight; + e.vaHeight = false; + } +} + +/** +* Set display of page element +* s[-1,0,1] = hide,toggle display,show +*/ +function dE(n, s) +{ + var e = document.getElementById(n); + + if (!s) + { + s = (e.style.display == '' || e.style.display == 'block') ? -1 : 1; + } + e.style.display = (s == 1) ? 'block' : 'none'; +} + +/** +* Alternate display of subPanels +*/ +function subPanels(p) +{ + var i, e, t; + + if (typeof(p) == 'string') + { + show_panel = p; + } + + for (i = 0; i < panels.length; i++) + { + e = document.getElementById(panels[i]); + t = document.getElementById(panels[i] + '-tab'); + + if (e) + { + if (panels[i] == show_panel) + { + e.style.display = 'block'; + if (t) + { + t.className = 'activetab'; + } + } + else + { + e.style.display = 'none'; + if (t) + { + t.className = ''; + } + } + } + } +} + +/** +* Call print preview +*/ +function printPage() +{ + if (is_ie) + { + printPreview(); + } + else + { + window.print(); + } +} + +/** +* Show/hide groups of blocks +* c = CSS style name +* e = checkbox element +* t = toggle dispay state (used to show 'grip-show' image in the profile block when hiding the profiles) +*/ +function displayBlocks(c, e, t) +{ + var s = (e.checked == true) ? 1 : -1; + + if (t) + { + s *= -1; + } + + var divs = document.getElementsByTagName("DIV"); + + for (var d = 0; d < divs.length; d++) + { + if (divs[d].className.indexOf(c) == 0) + { + divs[d].style.display = (s == 1) ? 'none' : 'block'; + } + } +} + +function selectCode(a) +{ + // Get ID of code block + var e = a.parentNode.parentNode.getElementsByTagName('CODE')[0]; + + // Not IE + if (window.getSelection) + { + var s = window.getSelection(); + // Safari + if (s.setBaseAndExtent) + { + s.setBaseAndExtent(e, 0, e, e.innerText.length - 1); + } + // Firefox and Opera + else + { + var r = document.createRange(); + r.selectNodeContents(e); + s.removeAllRanges(); + s.addRange(r); + } + } + // Some older browsers + else if (document.getSelection) + { + var s = document.getSelection(); + var r = document.createRange(); + r.selectNodeContents(e); + s.removeAllRanges(); + s.addRange(r); + } + // IE + else if (document.selection) + { + var r = document.body.createTextRange(); + r.moveToElementText(e); + r.select(); + } +} + +/** +* Play quicktime file by determining it's width/height +* from the displayed rectangle area +*/ +function play_qt_file(obj) +{ + var rectangle = obj.GetRectangle(); + + if (rectangle) + { + rectangle = rectangle.split(','); + var x1 = parseInt(rectangle[0]); + var x2 = parseInt(rectangle[2]); + var y1 = parseInt(rectangle[1]); + var y2 = parseInt(rectangle[3]); + + var width = (x1 < 0) ? (x1 * -1) + x2 : x2 - x1; + var height = (y1 < 0) ? (y1 * -1) + y2 : y2 - y1; + } + else + { + var width = 200; + var height = 0; + } + + obj.width = width; + obj.height = height + 16; + + obj.SetControllerVisible(true); + obj.Play(); +} diff --git a/templates/SwiftBlue/full_page_body.html b/templates/SwiftBlue/full_page_body.html new file mode 100644 index 0000000..45b1eee --- /dev/null +++ b/templates/SwiftBlue/full_page_body.html @@ -0,0 +1,7 @@ + + + + +
    {MESSAGE_TEXT}
    + +
    diff --git a/templates/SwiftBlue/gecko.css b/templates/SwiftBlue/gecko.css new file mode 100644 index 0000000..46c2758 --- /dev/null +++ b/templates/SwiftBlue/gecko.css @@ -0,0 +1,3 @@ +/* + Addon defs for gecko browsers, or redefined +*/ \ No newline at end of file diff --git a/templates/SwiftBlue/global_footer.tpl b/templates/SwiftBlue/global_footer.tpl new file mode 100644 index 0000000..449eaa5 --- /dev/null +++ b/templates/SwiftBlue/global_footer.tpl @@ -0,0 +1,14 @@ + +/* We request that you do not remove the following copyright notice. */ + + + + \ No newline at end of file diff --git a/templates/SwiftBlue/global_header.tpl b/templates/SwiftBlue/global_header.tpl new file mode 100644 index 0000000..0e9e6e2 --- /dev/null +++ b/templates/SwiftBlue/global_header.tpl @@ -0,0 +1,315 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + +{words:index of} {info:dir} @ #Bibliuta + + + + + + + + + + + + + + + diff --git a/templates/SwiftBlue/images/block_icons/block_cache.gif b/templates/SwiftBlue/images/block_icons/block_cache.gif new file mode 100644 index 0000000000000000000000000000000000000000..c744f36b05510142c0bcf6476a3bce6f9dda8047 GIT binary patch literal 97 zcmZ?wbhEHbz4!v!1`GdVOZwH|0|2Wz BCQJYT literal 0 HcmV?d00001 diff --git a/templates/SwiftBlue/images/block_icons/block_delete.gif b/templates/SwiftBlue/images/block_icons/block_delete.gif new file mode 100644 index 0000000000000000000000000000000000000000..e30fd28b7356590a6f3a1ea0046a443334d9e412 GIT binary patch literal 73 zcmZ?wbhEHb^_aEu#>fU?&T=6FhBLf37gAM}_faDpNq-#jHbIM;LmR`k|;xV_0U}gCHp%Ml`4fshEeZS_YKxC{52uE!I)U2Jtc+QZq~RlJj$Q6oOL= zN>X!^Qi~J}EiFwM6o0ZXGB7YR=zwelxr%`$x8Q`Q<}TB46{|}Ro;FH4vD|TwVqCRu z(oHG-o-GnG^BH|*TNeaW6tnVAVoo@j5?96H;J7r$On>@QlgzzoTd%A$K6Qt0Rl^Fa tT+{HAkBVmGwl?ql^5gHGE#Ge!M>NIeRkegTICnX-n>O`N&=O>@1_0HcVjBPe literal 0 HcmV?d00001 diff --git a/templates/SwiftBlue/images/block_icons/block_edit_admin.gif b/templates/SwiftBlue/images/block_icons/block_edit_admin.gif new file mode 100644 index 0000000000000000000000000000000000000000..52b0cfc78f3e3ba3199d3f7788582c1b260d7516 GIT binary patch literal 237 zcmV~8`Uf)ot}g$)Y^dkr^85_)S1iwcX34mnVFZjyU` niwp)NUYd~!1PZ90e}kHXm47g&1qrhRwgd&ax*a{eJrMvqkS$td literal 0 HcmV?d00001 diff --git a/templates/SwiftBlue/images/block_icons/block_edit_split.gif b/templates/SwiftBlue/images/block_icons/block_edit_split.gif new file mode 100644 index 0000000000000000000000000000000000000000..71261a2cac05a0864f3f9e1af2b0bc70bdae4625 GIT binary patch literal 232 zcmVN1|Ns90001*HGv4FpA^8LW000jFEC2ui02Kff000D)u#7;2owS(8yZ<2AG@OH+ zXsR{}`8Z1~&vOGLE==!Cli-MwEWscq7O>t=;ppfZJAg6)bG>8?+QCPSS)V)KK_UC@ zyg!|{bGRMeiat4u&6!jw1ksOo|B#9ZXIN2ObSg iC7zfi4V#yqFD{*#AE_ml50i>_rH>sfg@d+a5db^f24tQ9 literal 0 HcmV?d00001 diff --git a/templates/SwiftBlue/images/block_icons/block_hidden.gif b/templates/SwiftBlue/images/block_icons/block_hidden.gif new file mode 100644 index 0000000000000000000000000000000000000000..eaff0e42f783688034affcea5b62fea49612c7c0 GIT binary patch literal 118 zcmZ?wbhEHb6lD-#Sj5ioUrXzMSJ(gk{{IUX{*Q?GZ)EhJ0R$9(vM@3*urug@I3TqQ z%+?jV?)*FM!FhMj7B|ZqYbIZanIO{hWU}u4_C;*c`#-H&^Hq&;o|d5Syfr176$S2{ ShMbc+illtJm}^xS7_0&2-77W# literal 0 HcmV?d00001 diff --git a/templates/SwiftBlue/images/block_icons/block_move_down.gif b/templates/SwiftBlue/images/block_icons/block_move_down.gif new file mode 100644 index 0000000000000000000000000000000000000000..0d804a96e7b6c4fbe8217b7e50c240b3d0ff6776 GIT binary patch literal 71 zcmZ?wbhEHbR+-pwq VE6cxQaQRlvf@>2e6p1ic0{|Ib68-=H literal 0 HcmV?d00001 diff --git a/templates/SwiftBlue/images/block_icons/block_move_right.gif b/templates/SwiftBlue/images/block_icons/block_move_right.gif new file mode 100644 index 0000000000000000000000000000000000000000..f6fe5afd5b5ae52189030472d70a7823417ddceb GIT binary patch literal 87 zcmZ?wbhEHbeEs(Q$2z*Y3=9nS9zO??ia%Kx85r0YbbxFI okXi<2nT)KhW(pkc9lK9O?fLfXetBn7dXwbzY0A~6F-#2B08(onP5=M^ literal 0 HcmV?d00001 diff --git a/templates/SwiftBlue/images/block_icons/block_move_up.gif b/templates/SwiftBlue/images/block_icons/block_move_up.gif new file mode 100644 index 0000000000000000000000000000000000000000..212bea480fe344a4219765e5c9ef36d60d27d7b7 GIT binary patch literal 73 zcmZ?wbhEHb&WZcpV4rs}kb%J(085Y(oB#j- literal 0 HcmV?d00001 diff --git a/templates/SwiftBlue/images/block_icons/contract.gif b/templates/SwiftBlue/images/block_icons/contract.gif new file mode 100644 index 0000000000000000000000000000000000000000..a51ecda86e198e69f893f58ade8ada7a62805ba3 GIT binary patch literal 75 zcmZ?wbhEHbdC#7n!hZ%?R1GB+mx&9b{aFbxHB?X0{|~Y7V-c9 literal 0 HcmV?d00001 diff --git a/templates/SwiftBlue/images/block_icons/expand.gif b/templates/SwiftBlue/images/block_icons/expand.gif new file mode 100644 index 0000000000000000000000000000000000000000..798e4288b2542531aecb0ceaae8d13ef51e3a560 GIT binary patch literal 79 zcmZ?wbhEHb%TQDK6v)6}4FIln8T|kN literal 0 HcmV?d00001 diff --git a/templates/SwiftBlue/images/block_icons/spacer.gif b/templates/SwiftBlue/images/block_icons/spacer.gif new file mode 100644 index 0000000000000000000000000000000000000000..5bfd67a2d6f72ac3a55cbfcea5866e841d22f5d9 GIT binary patch literal 43 mcmZ?wbhEHbWMp7uXkdT>#h)yUAf^t80Ld^gF}W}@SOWlZ0R#L1 literal 0 HcmV?d00001 diff --git a/templates/SwiftBlue/images/cellpic.gif b/templates/SwiftBlue/images/cellpic.gif new file mode 100644 index 0000000000000000000000000000000000000000..47457ef5f772f536ceb76e14f8890953d696c177 GIT binary patch literal 722 zcmV;@0xkVVNk%w1Vfp|C0M!5h^7Quj`TF4I>c-I7+TiBM(%RMB+Z|c+{4b-#Lm~w*WTCOF)5% z*53dB|Nj2|+jRt;?ddQ)7#&E z|Ni~{A^8LV00000EC2ui0Qvw0000L6K!tEf6iz4<&_GEUI0pr2VLFwJBv?r+mD1@d z6%?wcxk1bjoXuu1*enK%ywf4rPp6Ciz!&&8e;XS-JRCAG5j8OwF)S-AB_%3536%?% z4w()BoF1MCprH(-0So~Ts2L9#tQid=4L>3xCOg34-CPx&h@xKZtBqy9C+F>aLv}Fq+0p|!ET)yZK^K;ypq3A5I$?Ps3 zo~QMqN*zQ9hWi>Y6k&L@qAS5l2@>j8D0_D8+N79rky~)}_8UhXy)Z)##x>}mNI?Jq EJ1XXQ%m4rY literal 0 HcmV?d00001 diff --git a/templates/SwiftBlue/images/cellpic1.gif b/templates/SwiftBlue/images/cellpic1.gif new file mode 100644 index 0000000000000000000000000000000000000000..1b1f55905226f7d8af261972cc35e1e9ecab0362 GIT binary patch literal 217 zcmZ?wbhEHbVbYOzQ;)sdboJwc)9-iQ__X)dr-t2c z=A3+g=^}JR`28Zmz#6tdsZTj=-tq)tyuX?^X<$n2s_tp>p?{6xwSR&DXytQbjjm7-) zT_sks5$mtFm+fw?*dO0qVY6+<`Sg~my?#6H=eO6`rQdk}y|Zrr^dJB0d7GM>6&b7n D-Y9QJ literal 0 HcmV?d00001 diff --git a/templates/SwiftBlue/images/cellpic2.jpg b/templates/SwiftBlue/images/cellpic2.jpg new file mode 100644 index 0000000000000000000000000000000000000000..1d89a1e0a19fe827eecfe3a17674083377a77df2 GIT binary patch literal 1410 zcmex=C5UDGKfoZ!!63=-iW9gbmwq1)>Nm~`3%YYrYJGE< z-?SGc>$txdpF34OD>3pzmgi;J$D7`zWk$x#QU-EQUXGbsvQGNUr43tsE=#>{j&hp^ zR4=zI^0|MpkAZQNpW}s>57OtA?p!7zxlvhZWw<}H%IB&tS#82me!hvk)ANk|jZ6-U zyKR}X=nz}v($cZterS8+q7 z7O$l*)=pdYsp!J03l+@`@aSTE#%#M`Tm9JryXOB4%WuA5{k-?*hmi9*>wm7TUaPLZ z_@?XUU0UhervJIl?Pcx$cG4C&C zTzPR}>f)=n4^2?iPF)#f9k;zbyM?bpBw*0~6IJt5&h7&e&2g{q(6w z-j>wqO&5>E>g$FEEI-kG@?^$iz3IxA=A1aKm~miJ%&b+5CKY`Ob=f%SKLg8CrH!4@ zk|AN2j3&AYEi+ruVd*U3De`fVl*R#gkTH}p+U~p0arweG{r4xn-dZfaedF5;5gYz0 zAAZ93`R3e^pc};{VoTR7W3paT>Sn{A*K%Jf!S`-W-%9tUwimsdzaDx1Zky4P9h!Mv z_vPfXPVUYr^(_dvE4%Wxe-p>sy~jh94|0h~cab&!#H*zTgH67C+;=G7S~lEO=Y-m6mdcy1jiSaX zorUHzN?S!XtIg)zb3UnC{9DkORXIEl6! z3w!K&T^rA=B5PT8ISpMlvnxNkj{j#+o^+6JExXYH$-dkb$`=YxW;E-1NuLNQ&9a={ zt@usmcF=T=V>cGEM)7UcaE!e1%5s`;RZsio2|3mm3YvA@mo7OL)tCC^MnUee1%{7o lIX841yQO`h#FS5$xp-F8>;vTso(RtAYri0Ya0dVXn*h8`A4vcJ literal 0 HcmV?d00001 diff --git a/templates/SwiftBlue/images/cellpic3.gif b/templates/SwiftBlue/images/cellpic3.gif new file mode 100644 index 0000000000000000000000000000000000000000..39473886a59ef70442e5b76180a14ffe91972d50 GIT binary patch literal 371 zcmZ?wbhEHbJKscXcoV<%P4=!gb-Uga z?s^lv`c3|>H|4wD)a-f_uchP05Qs! A + +SwiftBlue created by BitByBit + + + + + + + + + +
    Visit Us!
    + + + \ No newline at end of file diff --git a/templates/SwiftBlue/images/logo.gif b/templates/SwiftBlue/images/logo.gif new file mode 100644 index 0000000000000000000000000000000000000000..a1f805931d2ade4a782bab3b969f4a2ead736440 GIT binary patch literal 2203 zcmdT?{ZkVM8s2=6ECeA$iWmY!h!`|zK-3&6-GmPVV__M*8ad7`SZh?yuF9P&hrJb0 z7PVZ^EAAlb22j?I(N&pthts)*;<=?VuHuc`4kN3z=jzxRTRc~f%F#dLo?o7Kp6B`D zdEa?g6&1REQ{@Aafn5MF=e1S^0D8ayOygIr_vYke=grCUW0QbS>4Ogqg(g{9nKoqv z01-t-!4Lt~)NnEm%6?F0jX0x(FhFLEG6u>45XWz#I4%1DnE++l=t4M|0uhvyIZ!4+ z1fyMqf|IOFgGNNbScR43c)tP>itGdIK8|FC5DB7$Kn6sLl^98pDWgmpy#b{X=?jrY zG{A_g-;OEqsDj}PBg$5ol~F+C0xT^NfoUb=rxh$9c>TN&rC3hl7&$8tLX)B&XGn?{xezDI1j*q9?S!XU;zJ5UNiH8v&^*EL0w?pVJRQUc4yQ#wLA!7z zK#KJAOitHhQJfD2j1miZQ69#o^SIh``f!zbw&CS_t8!DC6-6CIl!!q9Bw} zWZEh)DC}niS>hE%Car{z5*gHwlO)OWJjv2>J~k%sj6{He>HD&{#Cl0yX+jtnrkz;G zhmwAbr9}m!cmQI3e%|U6A%tZm#qMKCK|u-8hp{jw@vP+XiySK%y(}e!&;S>pBqxM| zz7RuAuPIu6%&(91{|s;nhz2e3lzLv8)-=D8XM$fg8&iwdxEkF6pjjN@aBf*+PywC; zmZHl&UmdZRpS7e@luly~(^-M4QzOS*JKLL}nW^rB^NyZhS6*$Kd)#}Z!vO~eIrZv= z9r;&m*Aw0;ZY#N*1*#&nNQ_<1-m&%G#i|>veRjt4UR#b#I9?R~>zq0Dx0aEPJF192 zWD)p2T+s6Y2WmgCI5W(0_vzN{;=Vpv`j6aS?p}Il!g+T?TkVtbSp1~=&5Ot5e^JF* zp#s&-wRz@8OR|Qd%xnBXox`}@qt@7rTCBu-drndbf8zmA`Zw_Y49!?5ai_KfxIZf< z8`*$6=UczqmHn*J{=D}@M;WPQGsg9<#qTmbT~Xol{dV}9kVbyCErYPK@S)QX69#9 zEzRNfw|2cgu1eVd>(*XwA zTMtbd4WA_z9;ogvjSnR{eivobhF?pAPPZN(Y#E?qMHot`EfJonZyhlI(D&zx4>|K3 zd)d%=2NTM(=z5NA1DmsR42Huf{{V!+khj}MA1vtUIK4Hav#Smoh**F@dC_nGlyjET zCLCh=>pcj!u&>`3W+-zWZj5+(`dnUjc#WHg`(X#z&|lirl6M2kuWRT(ULATi_k9s= z(J!cB250GpR_q*E_W0`Jp-Aslt-co=7@S|0-&P1FCII=}sgK%<(#}u3+0nml+c%l9 zttZZJ(`1!Hjs0_LsQ>6T9r<+cH~xzwOK+PJs63115#&wY^JuDS?}Ef;!5rCDd_sh$zDZu1UqaVNf)+CHiq!eCz zGPglf;qn;b=&+TwK|==ht^UrYte=+@12)POt`_J7n;U2&#wXvt!lT9(#f}=Pro8?^ zJr$_aI*{3)Q2WAC9_(LcYm7E;R2vvKaOs>hF@-kg#%vCc9!=2jB~}3DZ+)^>#$%IV zP<0ilE9n{6bh)n2U%wqMSYS+9`-uJo`;eAd!Ax?Geq>~uCn z7jAA^EI(YG=2U02TLDLB_+NLgxIN)T8xyn??v5V-lghaDZ+<$;b)MK@<#2V9V2HEl z#Sc@u+?xaXYI$E+u5_@{2SuHv-Oew*8rfEN1s`fEUbNkab^z#ksIMmTq7DnU_LwIq@IBfyYZ%_+kuvp8XiZ$sKNoja zQ8Py9!ezto=lqZmBxO!SyHa!J`)M^@UiBbTs^iE!~~$I~n7l`Tc8cqIG_ jaiSNR0ceRcD%FrJHLQxuZy&yUI_EQY?rbjv0L%Xe+q#}2 literal 0 HcmV?d00001 diff --git a/templates/SwiftBlue/images/logo_med.gif b/templates/SwiftBlue/images/logo_med.gif new file mode 100644 index 0000000000000000000000000000000000000000..1a449d409ce11c70e817d03cfbef02d350c32229 GIT binary patch literal 5472 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 HfcgIbl(>bT literal 0 HcmV?d00001 diff --git a/templates/SwiftBlue/images/logo_mxBB.gif b/templates/SwiftBlue/images/logo_mxBB.gif new file mode 100644 index 0000000000000000000000000000000000000000..a1f805931d2ade4a782bab3b969f4a2ead736440 GIT binary patch literal 2203 zcmdT?{ZkVM8s2=6ECeA$iWmY!h!`|zK-3&6-GmPVV__M*8ad7`SZh?yuF9P&hrJb0 z7PVZ^EAAlb22j?I(N&pthts)*;<=?VuHuc`4kN3z=jzxRTRc~f%F#dLo?o7Kp6B`D zdEa?g6&1REQ{@Aafn5MF=e1S^0D8ayOygIr_vYke=grCUW0QbS>4Ogqg(g{9nKoqv z01-t-!4Lt~)NnEm%6?F0jX0x(FhFLEG6u>45XWz#I4%1DnE++l=t4M|0uhvyIZ!4+ z1fyMqf|IOFgGNNbScR43c)tP>itGdIK8|FC5DB7$Kn6sLl^98pDWgmpy#b{X=?jrY zG{A_g-;OEqsDj}PBg$5ol~F+C0xT^NfoUb=rxh$9c>TN&rC3hl7&$8tLX)B&XGn?{xezDI1j*q9?S!XU;zJ5UNiH8v&^*EL0w?pVJRQUc4yQ#wLA!7z zK#KJAOitHhQJfD2j1miZQ69#o^SIh``f!zbw&CS_t8!DC6-6CIl!!q9Bw} zWZEh)DC}niS>hE%Car{z5*gHwlO)OWJjv2>J~k%sj6{He>HD&{#Cl0yX+jtnrkz;G zhmwAbr9}m!cmQI3e%|U6A%tZm#qMKCK|u-8hp{jw@vP+XiySK%y(}e!&;S>pBqxM| zz7RuAuPIu6%&(91{|s;nhz2e3lzLv8)-=D8XM$fg8&iwdxEkF6pjjN@aBf*+PywC; zmZHl&UmdZRpS7e@luly~(^-M4QzOS*JKLL}nW^rB^NyZhS6*$Kd)#}Z!vO~eIrZv= z9r;&m*Aw0;ZY#N*1*#&nNQ_<1-m&%G#i|>veRjt4UR#b#I9?R~>zq0Dx0aEPJF192 zWD)p2T+s6Y2WmgCI5W(0_vzN{;=Vpv`j6aS?p}Il!g+T?TkVtbSp1~=&5Ot5e^JF* zp#s&-wRz@8OR|Qd%xnBXox`}@qt@7rTCBu-drndbf8zmA`Zw_Y49!?5ai_KfxIZf< z8`*$6=UczqmHn*J{=D}@M;WPQGsg9<#qTmbT~Xol{dV}9kVbyCErYPK@S)QX69#9 zEzRNfw|2cgu1eVd>(*XwA zTMtbd4WA_z9;ogvjSnR{eivobhF?pAPPZN(Y#E?qMHot`EfJonZyhlI(D&zx4>|K3 zd)d%=2NTM(=z5NA1DmsR42Huf{{V!+khj}MA1vtUIK4Hav#Smoh**F@dC_nGlyjET zCLCh=>pcj!u&>`3W+-zWZj5+(`dnUjc#WHg`(X#z&|lirl6M2kuWRT(ULATi_k9s= z(J!cB250GpR_q*E_W0`Jp-Aslt-co=7@S|0-&P1FCII=}sgK%<(#}u3+0nml+c%l9 zttZZJ(`1!Hjs0_LsQ>6T9r<+cH~xzwOK+PJs63115#&wY^JuDS?}Ef;!5rCDd_sh$zDZu1UqaVNf)+CHiq!eCz zGPglf;qn;b=&+TwK|==ht^UrYte=+@12)POt`_J7n;U2&#wXvt!lT9(#f}=Pro8?^ zJr$_aI*{3)Q2WAC9_(LcYm7E;R2vvKaOs>hF@-kg#%vCc9!=2jB~}3DZ+)^>#$%IV zP<0ilE9n{6bh)n2U%wqMSYS+9`-uJo`;eAd!Ax?Geq>~uCn z7jAA^EI(YG=2U02TLDLB_+NLgxIN)T8xyn??v5V-lghaDZ+<$;b)MK@<#2V9V2HEl z#Sc@u+?xaXYI$E+u5_@{2SuHv-Oew*8rfEN1s`fEUbNkab^z#ksIMmTq7DnU_LwIq@IBfyYZ%_+kuvp8XiZ$sKNoja zQ8Py9!ezto=lqZmBxO!SyHa!J`)M^@UiBbTs^iE!~~$I~n7l`Tc8cqIG_ jaiSNR0ceRcD%FrJHLQxuZy&yUI_EQY?rbjv0L%Xe+q#}2 literal 0 HcmV?d00001 diff --git a/templates/SwiftBlue/images/page_icons/nav_about_us.gif b/templates/SwiftBlue/images/page_icons/nav_about_us.gif new file mode 100644 index 0000000000000000000000000000000000000000..86fff499b88b435ef6c65738ac617b4f9a685d4f GIT binary patch literal 2278 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 literal 0 HcmV?d00001 diff --git a/templates/SwiftBlue/images/page_icons/nav_bible.gif b/templates/SwiftBlue/images/page_icons/nav_bible.gif new file mode 100644 index 0000000000000000000000000000000000000000..531f7783106a2641d70981687185c8dc3b9e86c0 GIT binary patch literal 12876 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 literal 0 HcmV?d00001 diff --git a/templates/SwiftBlue/images/page_icons/nav_calendar.gif b/templates/SwiftBlue/images/page_icons/nav_calendar.gif new file mode 100644 index 0000000000000000000000000000000000000000..0762f26db3db4961409cd2fbba469b39547253cf GIT binary patch literal 1160 zcmV;31b6#KNk%w1VJHA80M$PLR9#~Pkn+si<^28q0(05GY)Q(1z3X3O$=% z$B2`cpP;9%NM*$S_U=2kBJ1t%JwQg4;PchZ#oYA$$L;F-?B3ke&cuUX`^s^+^R~jc zm)_&&A^8LW002J#EC2ui04M+{000L6z@KnPEEYE@6slHRO->u5bSkCbP>0s1WoflA z9@8dDEe|OvRrc`tNHQ52B4EL2$mZz=EBPG$Y;Q6$0R(g}33z!!dtQDjDm`j%84m%4 zhAt$Ei#QT8eIGqIJv}IbmW3P-9GaYEDJ?P?p^>FGTV0j}5D*Uz42g>yH4lTdA2n<} zH#Hs}mmD0u5F8gK3Bwiy#&Dq$5(g_D7MBPQ)D8d*n`V0i1RTe3a4q8&3q0-W$*ta`x8A}@aG)D4}I;Dm+-7%oJJ zu%l~%t~+`)C9nW!KL8F`To^irgb4->8u*x7p@7{2A@b_YJFOqtqb!2Lpdk~A4+SH5 zDCS{zuYtWG>{j^L@8|*+fdRm9K$u;E0*vz-7)|D}w zKn^yD-~xaBG3VTQ5xju^%?}K0P@sDy2(XC)70i%B1se4-;oQ*dEaDfX9Kp}(%Cj6L!02_!f!v?`AU;_nW zPH4jnCqQ`~4N^vs;|UV|paBC2nn=PXIh;!YUM%$IudaL1MY3o zK?Mr9I6`4m883{DN z>#Y4EyB@UhLMd;X9>z(ZNLDiIWfswxqvU0 zCl@tn%M!C$sGInPdIAZF)GNgXBrp)c1%!@l=%JyS0B6vP6j4$P6XQ3{m8CRTpw3K4@1VRhE6v=*shOIO(jO{Yam0>+%UEemd# zwFOGoRc)aVHFhbWjKMSqcFu0twMQ43xh(ZECfUfX>N1M{)B0l>4GSwMWXt~Z@4dfX z-XGsT-uvY3R#i#1H{=0%z#jmxw6qjU#AoC2SUm2Zj#Ke?B9Wlz_$*EP3Bu!c`$?Lb zrac5rk)$0b{nH74DK;BVnB4?5O=7L4*(fb6Dm9x-{GuZB5aA``BRK9QNRN-C=!8~> zd2qt)A}|*rR_XjCiD6hQ8aFgzULQWB zXmw+*WaConk~z4x)os8`n91gyj*C?`sS5K9;dYzLGvv1WNO5VYRAcfIv{WXeNLsDY zEG#TMeE6`Zr-z~_|1=$o#VRT)?%lgLH#di(s9Y{jZZEm9O;@zQvsV66%4^Eny^2b; zQoOZ{0VZ?u7hv|IWV2;CbNNibx+NoEZf^%cgQcqr0{4R*4re=LfS?x)r~42@VBO!{ z4Y~{$PJRYvoJm3Kr}}}x^BMXf}J?%0% z6tETr^>?}}zk3DTAg;x01C)tbQ1TwG7X{4_xKv!${VMS-nq9Ox4{67oDeL)1>SBP(dHn;1Bp8x z%JDcRk+in$zo(arJaYEy!~>eml{kQPMOCo_@Ub5vd}brFJxP*_B;Jkvo%g8Y&kO&+2y*kxtHtRrz}3H6e_nND7eg?^s}QmKXB3$mtn7ejXT#J_9G zRn3QoH=^LnYnpSTKmJE^&2Z4S!kMcyu4x8TtD0+)nhh(O^Hw$gvZgt4;;ClWism={ z|JH0j_Ehs5g#6bhnnhJ*2jSx@nzNQQ8~&+zWMo;h^@-+&r<$*=XvWWsjyZD7NzL%t M5^s2XRr8L&0a|w682|tP literal 0 HcmV?d00001 diff --git a/templates/SwiftBlue/images/page_icons/nav_develope.gif b/templates/SwiftBlue/images/page_icons/nav_develope.gif new file mode 100644 index 0000000000000000000000000000000000000000..d052ac324f7509755ef172f82c5e923c8a9bb409 GIT binary patch literal 1026 zcmV+d1pWI*Nk%w1VJQG90M$PL|C9g&xBUOj0inv~1Ka*)oyS90C#tJxR_<7yVU=;08?(hUu`hx5>@W-POKR ze#aA_@8RU*mCk3Vt+6q$$vs zP2S_@A^8LW002J#EC2ui04V?|000L6z@KnPEE6MhVJcVuKt11OqJ86Cg;$gO)92$RH4)z=jdLYOeUuAe5*)EZPi^ zQ4eBK5(Shhg<0SOvs6Dqj8I|2>QxC^vJe$z^u~z-uuEt& zp@*FxOdw5y8Q=(zvA1{^V?`^E zreMJdj5VM_cS!(7)ovdY;DQVbwBP~(AcDyhgBG-)Lz-(Uq1FZonW6#-;^{C!MJX_- z=WiA)fQ>795^fJ2%w4CjPehduxgs56{!zyv8cc)$$@NLMKo z2p|cN^VS!xNwex$)84?H03 wLgX9YQ3cO*F?=u|-6`X~p)8Csn6m5!Ptl~vghu|8ZM*jhVNSmQ6A=UeI~O#i9{>OV literal 0 HcmV?d00001 diff --git a/templates/SwiftBlue/images/page_icons/nav_download.gif b/templates/SwiftBlue/images/page_icons/nav_download.gif new file mode 100644 index 0000000000000000000000000000000000000000..8bf6fbcd59edadd10e4a59dca2c4baa2c03b12a8 GIT binary patch literal 1156 zcmV-~1bh2ONk%w1VJQG90M$PLQBYIU*4h32`?|cr#m38ge1f*OyMu#>rl_lWip}Zh z=wGB~m6w`#czemp(VU&4W@c$la_`sM-`UysFEB8^z{H@Vr5<%HI$Frh(AA2Ij@#hm z=;-$-#1fE{x~r|QXWL%M$@9?a&sthtT5PKOw zhKk)Fyhjh4Glzopz%P3S_>8) zFknF9?OVB8f#TJx7eRp-hQMq%U}1m-4JtHPh_N_^h64o(G{(?_K-F7#HOLlyV26nZ z&V)RIU;u#z0}pbfPThcb0}>~C^l)&1M(hL7AJpCf){qc>BQ)GY7ehq@6X3&xr=eq= zhZ10+ACOLA#|{7mPz1Oh;KK+695Q5Z5Ceyb74-zD0t6pOzyo^26~LZ*)E!{m4*^J^ z&Hr43@Fhxg=C}d`c$$f3kQP8hgaia2fZ7NIH1J-X0H}Zi3=o`l z=8r)xZ~-rC28tR0(2dw01WdvZLjjMz2c!WD+;9UwlokP~pepQOL2d2f#iRzH?n&wm z4BSvb1v21Msh}h5P#Bm@o)RhmIYfHH43a+Z04q(bD&r0?n1m9o$0mEL4K<5bYF^oki6@0LkOZe>k>USmx7vy}2l)Ik;5&r2g3LmhA0196C W8ubQXDnxHu^(5&a zAVZGEF-^>X);uxM!D7xRv5qt`k3W4>JQ-7RGSiA1g3O~BS;-^rjibha&Vlv0RRXA)Patn&OxY8 z3&z+1kl%r67Y;*BH*_OpghH6}VV1q3WRFFp(2187tKfvD{;Ie0to<7l4My?P{5%f zVCKcN0{}?|ysSXQOsa?~6g4xd0-bW{=8iDNe1P=xq9{tTVjf1mG&SH-bwi_Enj&dN zNW)lHC0&#CFg6&kp#j5OU>u@7A;udrlQ7;e=QA^rK8|K3mXml>1c4Vs5tz7SNiu-} zMHV5?K#_-v2%&kA9Z?=cdyyg_vqF;>RnmA`Lz0d}gK`mkmP+(XOzmj3>;J zVUY;~7V|zV2CypPkV5)+iUu?zFr37)0?WxPZ(=Y30D)r#5eT9r3TBNa8hM&0$%Mm8 zKrm;M9Z7+*$jg!_%c86RS&8d|Xr9CR`RasJH z{i-CYW}6gQg^G$K^MPozM`L^%7tlmn6B!Ngn#5`nugRRI$Ql$h2sI>X2x=yQnyeXN z8zwBa44(`JT8P@-KzmP3M~dx<=bDag%XImP?9~xPo4?5MCYHvp?|bX!@ybo>*{@T3 z5`J3o_pbHVoDadFtgW8r?7oX_m8p4%YIvt^^jH$S@Z~&Z*B_og{EIf*4>Jo7f1J5- zO;h5Z>UzkOs~NY0&elESJmxRqS5N=JevqO=I1w|M;lwaNbIJEPwuv zo_%#o#>a|RCQIwmgzsM)h^XwS{&~kvK<2l*zdSG0Tu*zwy+HWTeQ4{=sgH7Qr5>rc zWsK)W^*f5zlJy^So@sa=lwbO8d|q2oR#DLNk54=I=IHyJv$w4&8OeAfyV_BEe(hyV zAFQaxmHQ(u9T(iYPj2}B)4Yk$@WtQXE6l5%MSt?uwhfKB{S#O3M7cobWX3y@ahL9& z{o9kLR_Ev~f#IWjmNslTuGiQ2at^*0QQO>>`5@A|V(G$7uR3?{oT|9da;L`9;(BE7 zj%~D#=+;H9NqA%DmZpNA1lJS{O7Rlh&h z-762Jd^EiM>%<-E{JU{L=pO7^;I6gD7KKTxz0MPyU9{PFdHl`UZ*(7vsXhT(4qDGp zrEy->b1(XO#tSQ!?DgzgmV9vSvJI~U_=1?+s?)_S^U=7+9$PZS4cWKX9kI==;P&q; z`ND_SwSBmnbqyb@y5Q_M9(27Bc&})JSrAvgDrlR_WCSBK{>^tTPs>akz5nj*Lj^vt zD7?LkEampjYYD{aZ6RRy0HZ=A3^x4*i6*Nmjs#paXql$jq7#*~axC%Rw0 zzAQ3-9a|IC|JM0yJ)lo~SeBkO2CU%LmV9B>jsF~^?X+)c>(hU38fZeW%lET_wx$xkoF5Ve{6`f zXZ3#fO1(*acA;u z&bBOSZ}cnYTIAA5OKalVq{ef1PYhkzckLOU8!bF=%--eh~B@bqGP8O6K=N`!U_Vxbe*u2j<=YQ{RwZ^>q)Qd9LTK%gZJ@-;x z@;hT4Bka<$yA?#&io!Z#@bM?vLJ9&iN?j4Ds{b=`xI6YSXH96bN9UF`M@1I;;^Y6N p+(@>>adOlgXpgIkyd9HXW_z#yjP=Fa4qKLOIO)QHLGyE4{6Fq|tY-iK literal 0 HcmV?d00001 diff --git a/templates/SwiftBlue/images/page_icons/nav_email.gif b/templates/SwiftBlue/images/page_icons/nav_email.gif new file mode 100644 index 0000000000000000000000000000000000000000..ab5596a3e81572d861c9fd4b5323499f0594570f GIT binary patch literal 1060 zcmV+<1l#*ZNk%w1VJQG90M$PL*WBT$tGWO1n5(YRx9b1a{{R2~^vV1G@UUoSX={;` zo0`k~{`u0IyYA=y|EAghO-@t)|K-lgu!e}Qz{SY^-j(OEh$SW{adUsZsjs53;s4E& zy}!ft@3Wn!+s>|>_u#<&z=5a4>c+{?nw`wY}*6~=*V63M}QN(71K500XAyXI0mFh&OHV5-6y2eJ)l9w z^{vx2Y=6Ms``6OW!z&goVg_XKicJh?!2ZF4@21IT+W|TZfSz;%66iq#3oOt8fbk_r zzyKy7C}DRCHlP870q7wA8h0A#z*T|=aAzWWB9P#L2OR2PA^{D|aN&#nvA4hj4J5(g zb_AfPfe9bdSfhUpHrRj%BycD~e+zivp^!BeX{3f4RGH*^x|t?IksgS^-H=2U*#MOu zXpjsB5Y%u1mdypg-~v^GDW!vBnu+8D7hRy|nlbjwvV!6X40io_zMn z0|Y3nFjJdWzBwh8h+>fEo;7sJ!=sQUkiZHGz<`Q#NHS<>mC3Y_CZnEy3PGsjkeUN# zBbZ~Fibvjgk(!)3Ix7k&B!IyRw&nl>3>1uT0|1)@Fn|IHK(J`A!a`c?v9@ByL9;iM z0BtirP{0AT)_y8M>#(98tAGNxW(KafF_7yF1v#uB>b~u|n?t;sg-fr!gxmnbzwagt eZvdFh3&6OLtWm-U6jW?32N*kCFTrXA0RTIki0wQ8 literal 0 HcmV?d00001 diff --git a/templates/SwiftBlue/images/page_icons/nav_email2.gif b/templates/SwiftBlue/images/page_icons/nav_email2.gif new file mode 100644 index 0000000000000000000000000000000000000000..0fc38a6f0d53a9c6cb52284f648a5a38f2a8e9a3 GIT binary patch literal 1125 zcmV-r1e*ItNk%w1VJHA80M$PLk$Q_VVmzdJUzL`FV8K+n+KVq|8z-1Yze z|K8*0A^8LW002J#EC2ui04M+{000L6z@KnPEENh`GjfFy&Ar~x(F;op4-4etv?R)f3!Et_2k{20t)5Zl`1ln(0;NWV zEC4{baN)xR2n9CP+p}XqqkIkt+}M!qUylM83n-9K06>fj1@J7=6zrkH2Lm?P!WDsq z0t^Qbq(C4+0RR9OUc{jANQuM$lEK;u7%<}2kd_Kw9(acUgMyACJ}_vpLy1VB!5U;3 zpw5yI8vqKxd}pBPQvgvXpnzbmp4+Un1PSROLhRBM24*^i`avxU8_&SGZ9sxz2q6~$ zz>Ej4X-%6SUQA$s144tqfm_XU!8L=B7X@O*bDWg#gwr?}JotvWmj((Ocn~P@0|E^U z2oS`4dKT@6zLR0du;HzEuL#%n-RK8^1_QCV4@kIqQ$*U+D`0RaVBAN89V9ALATS`o z@(veJpqL;+LT&^$eFHyjf&&K#-yS$1AYMR%1U2Nq4|*$jzyNy+yhl@Hr=5mEeK-K% zg9bZ{Fdhj4+)zUeI^=NwLuVJPAj1j=ih#k13pO|v3NmPU7IwzyJ{E$HhCz$z?Zg;(N00uqWG!OxxPSQaf zVw5Tb1sS+-LJSg6idSAS?S&Hv8+fQv2Dv(cMhPQ8pwv6PG`80T$Ob4|30^%RMhG25 zD**%$u)wNb1;pTjDTfoSgoPymP~ZZ8DA*UN2_D2CLJJ#cs6zq+%x20dNn|j>j1{P$ z!U_sMnSh%&4j@1_x;~*r35D_S-;^9qS*64?@N|g~7mqNM#{Z>kB?%pfJTl1^Jc{9r r1Jt~MsLXczGAbdQI)e*9yD-D8AvC&kAyI^&^wPsreDu>!1OWg$WrXMM literal 0 HcmV?d00001 diff --git a/templates/SwiftBlue/images/page_icons/nav_explorer.gif b/templates/SwiftBlue/images/page_icons/nav_explorer.gif new file mode 100644 index 0000000000000000000000000000000000000000..e96beb10f7efd5b7617f9da43bfd0171ee4e5e19 GIT binary patch literal 1179 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 R+IP%vTetPu-GwN)^M3{Y%pL#$ literal 0 HcmV?d00001 diff --git a/templates/SwiftBlue/images/page_icons/nav_help.gif b/templates/SwiftBlue/images/page_icons/nav_help.gif new file mode 100644 index 0000000000000000000000000000000000000000..2a99f9b5bf67890956b23f419cad38f7a87bd4a8 GIT binary patch literal 1184 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 literal 0 HcmV?d00001 diff --git a/templates/SwiftBlue/images/page_icons/nav_musik.gif b/templates/SwiftBlue/images/page_icons/nav_musik.gif new file mode 100644 index 0000000000000000000000000000000000000000..258239eb6fc221d12a3c6352de80bafb950030a2 GIT binary patch literal 1220 zcmV;#1UvgjNk%w1VJQG90M$PLW@fOrxxCZY+NGze^78b?$;(boks~B7w71!+s`@oH zX#Mn#jE=GI&~KNSn}vsn*WBQDcX!ySU4@3jW@l(tS6D?xN0MzM$<5JIQ*fG#XL53y zTU)1dbH$gJ_is`hWo5;yt*?lP;@{u@nVH|n$o-0pkNKiI&e7D{;N*OK(M&rUYHM#s zM_RdtEWW|SZfaGYprekElsY;)eSd(lv$S7eU~zJDUSEnpKzhc?-;|Y>Vof?uPf%u6 zLf+%&A^8LW002J#EC2ui04V?|000L6z@Kn9L=;lQq;knrB2)mJ359H0ufkM}G|4G) zGC>tfCZ+}=k~f#z)F9(BHWk<))&>q>Czg{_FE|M}Ie8o)ASQi&Rw*bpBr1i6hz2rL zj8-T#6C`GbRNBGBe`PJrxx;Jr*&hOOBl$$P_(ZJT5L8FyhY^<>wSE z=t}uYl1fAZ1r;7V@S#9Lg9aCfJ?qiW1_cTcXi$hzz}Am}KY(>$)x&{?3mO_Mkf5(+ z4~rCT&@dsRLI_MCArx2zV1|SL3n~{ha3-!tMhehk&fGEJhK!CM+hN!c=|BV*3$nt< zHp51M05Kl0n32%Lju;_i&Jk(TRERk6K|Z;W6Y{ml&1!{!7A@4zq0U=%#sNkUEVkHm)srhi?L<1lDcGL(FV+Rcu zEE3KRQDC%*TBnET7#?f_hZQbb^B`w-huRw~HjsWX8^!1cY)?br(xC$Y00vZaIB-FN zgysA)(ujb20}dNC3ItGAzyfvwi*?BL;6ViV939NH!UZnyK#>Li{1e>-8AN~?VJHj` zSav_?mp};#B;Y{@926q|LJq{NKvpw2Y+&LB6X4K800b1kkpMT?AVV!F2!KEd1dM>8 z2P$-!g9-*5V9o&+RbT;%6HKsy1v?Nxz-$CS&;tvl!GS;mPU@&3hirIv07e#6z(NEz zw2%P~8IYDji|Y`ug9S8%keG!dXt|{<;f+VZ4lG!ZkqHlEv;&I-pb!I#DZFF?TR%(? zV1^p<2#W$7h%lZFF*qc5>3e@|B0RX7r!Lr0ez*_+!*wEFXFHrZu4DZfx z!vIhT5s0e9<}1R!0K6NRG6K91!&nI;{4OyvvNZ+<4&W=-#QTa6Br!KQKx4)+&`^QL z35)pvZypK37Y!}o%j&BMQ@{&O8K-p{1vaoC(+;7rlL7`I@ci-A7O-%0!ygHNK>)Nl zu!94*V!)0NI)z|@Jkh*#g9*Hi4T07L6fBz9!I_~`4Gui8-k&kVH}(*UK_GbD?XXL3 i2m^pt*t#H{0{Gh~V4yC3jXSPH3Yb@J`R1nt0RTJlw&`U6 literal 0 HcmV?d00001 diff --git a/templates/SwiftBlue/images/page_icons/nav_mydoc.gif b/templates/SwiftBlue/images/page_icons/nav_mydoc.gif new file mode 100644 index 0000000000000000000000000000000000000000..c431a130280c72933471acbecf05f520a775dcc3 GIT binary patch literal 1780 zcmd6l|8Eob8OJ~8uNTLT&m;zu1mZv_CIq-bXibRF*$Ko6U3+QDFa-@4rLDK3;*}PT z5v}LojMEx~n{~~pP!DT{Z*&v!p zh$Yw#Q4K=O0wDxi#KA;2iD46r39eYCKy1k|D=Q|!vguST#X^EEym9b;V2qT%sjzQDFw6Ue1pe2Zro=1kBzTz6#_}KRb)cb zfHpDIn4u;Oy$q3NXc=T;WZ4K4WN1i^Bb7r)(InbbVwx_STGG^6)o@e;LnQ;XEY$M4 zjVs5|%ZzT=qGofMY*HnxiZdF?@O*{^iDZ^b05Jz-16!7Yv6bV1P}cK`nHN<-$AV%A zG8AQ)6BJP~`6S5cBqyr(Uhe--Gy$(yHD)yB-2+F4S~}aWD_2f3{`=S)693s9N#bFZ^0DLX z|Ec<_w?s3_jwf@U72S08xxvB5nSM9De|m?&TPc?>T;J~e`6pj+o6_*DUB{m|O}l;F zb(}UZw)bhY?dHPABO8WmYu;~(AHPkN{4)>VO}u-)@3lQ!Bl%B8$5YgY!Qk2GEEl|Z zYF*-M@aoJXuF#pyTNBXoobdRb`Xc&^Z+kbMI=F2fa@;F#e!67r`0r2MZoBEJ8C!km z#y4}PYob2J{QH`nyFxvIBw;?>_kr!N|9F2cH~C4|+9v7HYBv7xVt0L^L0Pwrde-)J zIwG@EP_C~Jhl-^m{|<@Un-4d>_lA45H6jbqfKc-9nZGr>q9*e4--iAY;)*K|v+TJS zYZu2KcPUo?M{A$6XZw5`r*a1KK+yX9wA)jrR-Hb0{~2n4jrd!S>X)uDOP|-$;ii(t z`8F@awu5~~uB{3c=u0OX_O_(^qW$L!e;A0I{h_D7dWh|7@*TT4<8jSjc>0{bu&9@M zNN{z#pWVjnOblJMrWZ8~6`tGxVl7t!u14)29=VkpZv6gVsqQ5jev}JN+?p#kG)&w{ zwRR-uy#fDKQooj734uGZlsBkoXz)Oq+T>|)`^UjWD%$MuJriTM;zd_L1t+4*Cd%pX z?vhwye6eZDzbSUV+y66Ob1jO-r+pj3v#FwIRfbLbnh)~D(3bi5h&QXw6@Swx>;=nP zC;5~&5uDlnyDwkmhl6V#)0X+_20B6b?sK`BcjRCJ1a1#Aql?2oPfdqbjdI;|jLoc| zD4rehU*1^sQcb(#BW-!^6;I8By5nnX2*_pW(Y4hqbcL>WeC;+` zwDNF>0&BhjfuXr8OWN~2FVyr-1^TO#^tvwk(bCN~$5XA&`tiXpXE}G>o@bUl7+iX= zaC>fFKp6%@18@Iyef@j#=p8qhKXYT|*G9*}-PlXaXPy6jv017W t;fcs-E;y>DmY>^w`EoK9F00cUzX!czUUtQ1u8V0CrfYu0$0-VI{U7Wh3Qhn3 literal 0 HcmV?d00001 diff --git a/templates/SwiftBlue/images/page_icons/nav_news.gif b/templates/SwiftBlue/images/page_icons/nav_news.gif new file mode 100644 index 0000000000000000000000000000000000000000..2689be6449fd0c1949b0a51fcc51d72c88ed87b3 GIT binary patch literal 1415 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 literal 0 HcmV?d00001 diff --git a/templates/SwiftBlue/images/page_icons/nav_radio.gif b/templates/SwiftBlue/images/page_icons/nav_radio.gif new file mode 100644 index 0000000000000000000000000000000000000000..fbaf9bba9cb47e72bb7fbc9e2abcf778e03b37b5 GIT binary patch literal 2494 zcmc(ek8>2|8OPt<%kJ&vE|nQ` zqAm_Y-&_u|K-6XM$D&9#DD@a)dr_1tL)*P1O;4o|7^>Hf?JP=%tCjYw(>6Ld>C%6q z-+AYKpZ9&Ad7sboJoDbQaYJNPyb&~lrva$@rUU`tGH3>lZk`Q0t1QcsB+(?5(Zl+2z3{4U&%ZQ>_G&Git5F|;FWYN$m zipu43v?G?8F<`-fIq1Bs$vhu%#BqYaM_ATzFPd7>xz%J{5>u)~Q{;@H77Sh0)SLlr zLj?qo1wNxnT!d8=6##Hf3WLZ&oUJ?FR8ZH7QDQ{}FX%z z#5fz;=@>~7;HE{Bk`sdGZt{w}s>%$@DXPlzoFVa&B}+OjQOQ%w_U(CMS&`~Md)2TpF<*>fd%WYP1rZKYE} zO}e3s?i`^4pO}3^@05Id`052ZV!YxBsT0qV6`fU#Sp58D)Vu6~d(-UBpLUTUu6g#v zRP;ly`+qG7G@ z(M#8dPAi{xatFbMg#c^WEes6iPu$-3_p>y|d9O@ro?>_=G5-1V-m=r$%=9#Z{rClT zYY=lIF1&v#wdq9X0@vnR=?Ux1Jw&jsA8z=}ypUS?cr>XTYIFWfRo^f4nQ%#cb5D@s zAyRhmS~J@<8g7sM>kH4eG~Kbde7HvZH$Qg zE_}n(C_Pk83VW;Xj@gMo6^q3D-O}K`&|QmWTxILOBu5&X@^K6~-0;tY>qBgu+ZAd} zb@GFw^6$`}PA z?>@6F{g?3-T^F&y>!)B68Qagr-deZq23!B?0D$MbMlMep>x!# zH?qT}>u=cS+>NQxot`HzKY^npbsy0LhzB>;1?Wu&cC<6w`>>!q9`%6SAtW^1Y+gcl zY`c^NVhL8DutvXh{`s#Jf-)qnP>1iZcLIUO}fpp-j zZdg|1@i8;g{zRtJcdjs^}3h(#@{Pt4=;eBp5p!Zkoif|wN zWO_9ft*@!IKqaY7?co4b+?crM^mWU9q}J|i z1^IrjD<`Jgo1`~>zNhKd-isf6J%423hqcA*cLOiC@(V406EG(lfi_hMtRb{UC>t(5 z0PJfneD~m<$Eif^XB!~d+vdW!K~J}y=(5njLjrfpodRAt04h@yIA3L8(6abuL;lM0S>PX9R)RZ6wG8j#f$CeBmbextmD940Hq-^ z#F(J8T9`np7})aC6N8vCS~i~=y!TxHu3wtq@&;~bNskGtXSu3nUl00HQuV`36e*!I z(WUzSx8G_HAD6(^kuUb#rnOxwMy9>grCpevtSf7TRqvlCgaK=DHJUP|+es}1M4v~hh-hA^L#O;?b{6&7c1r38JhurpJ%Jnf~S9I$f!Hk~3 zcLV&<*W2nTmI!U@UX0Athag?DkU9JkYA0_0HCW@K+TzcP7XDZdwuOa$6m$SVnLFp| z1q_DX@FJR?^5QX^TnLr;XR0(?OM zEXr|soJMh%oTOi9bFV)O+zrrL^nEv|Sep%!T$EtbSdjiJahE!T(AL)Tzk-1u5^q=c zk%Q-B0KF|gS+a#Z@DKwLcV^=5JH|_0uXdT<3Kn=`EE1$7?-J|xJD#&4Db=0k^)Hz% z5ckFC&^;sotLc3$EC&*5lpIOl-=4pMFHBF80(~%OeBysMlP&Yb|4hTvCC4&Z($)`t z*T~TqW&y}#V1;Ox+#(Hms_Y@(Q3*M~E2Ttl5}T^SUdeO>S|l5TQADWmtXRvr-`h1i PN&CmOe=N}<0BimWsT5IO literal 0 HcmV?d00001 diff --git a/templates/SwiftBlue/images/page_icons/nav_rate.gif b/templates/SwiftBlue/images/page_icons/nav_rate.gif new file mode 100644 index 0000000000000000000000000000000000000000..3552ee46fc940656d79c14a8cf55f9e50dccd87d GIT binary patch literal 1285 zcmV+g1^W6&Nk%w1VJQG90M$PLY;JMe-Q!71OvT5{ZnpmI?DK`f{`c8s+u`T4x4P5R z+RDq(=hB0v(DsG7(_x1ha;^LW{pL~FY>gwx-xa!Q%)yTMu z)Y;v;y}>FfFwoN1cX@o;+TEd%ZROYJFq!{`tkb{4#j32Zr-v@EvbB42U%R=ho}iSyfQKXAT169As-zP104&dLK>5CIXNH#0yfj3yfD`n7BmnnCkX>t11vNt z4)6@o;4G0e7w_1~!$u>YxCIG14A7t;%ZC?FwcK*Nv^2`=P<2cy@82=>H+EwUw0 z@Ixwt9w#i|yAeQwf&dj>I1RzHB?hz#2Bgrp-~rUIxK>?KHXLT7}b4i=7V>tVQsfiOTBE$wD9gUCxJ^u2L&ZvflmBs@s5M2ZL z(idzM;L}C}n*|f(PMP4m0fYrcYHysa@uGhK))N5-l?Gw8U;zNs?WD&KA(*hj0So{@ zLjpI1AVB~DyugPBH!L9kL0THL_QD4dI6xFGzQ9KW0vaU18D=-&@c|>?8K+qQHw;ii z0S^j0h$W{fDnQ_?W-0uzUc+f&9q_UdDmm1L9LHn0 z6x0wwE)K*7fdeUYz%mvJXmFGUE7y#EDh=9V}Dp&)6NZiUmPd;j|JQ2}NT-1ULFyMg0 zK`^K=k~~g35RnOKQgksF93(I}JDA5)k__264*AeowEcun7Tkg$f*_m}!AUIW^Finu vtMNmsc(FhtDGNMLc0vj!oFzNL#GrXtnlcGpOzgiOf#LGwsv^1?K>z?dfs_`M literal 0 HcmV?d00001 diff --git a/templates/SwiftBlue/images/page_icons/nav_register.gif b/templates/SwiftBlue/images/page_icons/nav_register.gif new file mode 100644 index 0000000000000000000000000000000000000000..6bf2389d6b647446fe0b2002ce5a573e290fe90f GIT binary patch literal 1019 zcmVNk%w1VJHA80M$PLm$cgL%$g-_*Vf$Pl+yb7-V>(T_V4fd`nwitw)U*B zvx<$6vgG=Ce1A!HpJ~v2$z?z<*ji;JZRaRzb zYTo1LA^8LW002J#EC2ui04M+{000L6z@KnPEE(mNaR?w`oRVZ{$ zftY5XEfXsRgc<@-lm=LHHqcd1V!nk!6PG(zbZH0>F+DyzZ+=f)f)fxq6o-k5O=xKy zgf=}5dwrBY0~Z%A2wokIka;K;pF%4G2?-oLBqSZDF`ArwttuA@7X%j-wxfyq4FFJaY>zfejmA4Cq*s#?7220?g1Mp+*g#0v=p3 z;wu=74;xs(P?3V^M-Mo1Dj5L6Y7GHbYdjcJ#4A{&F!EZ!Q1bxV87@L-u%O|ARRM4# z$fY~v0*t$1VThG^@GK6%0|*a5q2n;(s&j?@5CsEiQpqq348Ty?Z-x@#GOSoZ1Au45 zibE3w026Fp7z|?4U~Sd|O%ExY9sq$Du?P{0_mHum07P%Gz!?}=!Mb(dg*OIBa4vv@ zfe3o|SU|Dhfl(G4f@>$+9id<2H@ag0fS3aV7zxyH2nquXpn(GIaX_V z9}NSP000OWGQh$GHHa|(LN=^ah~NVX=A|702IO}T4J&BS4G5jp0D=JwTp)pmHt4d4 z5C$UXzylZj#{dBY6vz#RKV79@jS&biLXODvpvOf$F5rWE!96Gp2VA0rQUU}p>7)!f zQea2}h=>NtfmZ5Z)Q|+kB1;6%5P5-OB0!0a4-M$CN zlx87frV*fsQVoncdZwQisHw%S4xr>fu(kH701AVhs_Uv&QjnvtwmuteE1*#8Ll5Bc p>E{^I`mt*RkZKDU2e*}KfPwFBD;1o2EQ8;NDeSV73(A$2Z-K~~|yVdW#-1|H` zKi=c#A^8LW002J#EC2ui04V?|000L6z@KnPEDA%Tk+B$BI-kN+XV3^Wp-wCIs7loY zrs~$1S&T^l#=#*d9mYl0sfI{3oClSJ!5ApOS8zWECoCNp09r*!d<-KvAZ{T#HE;)V z7#$r14R1pvBaI9a5I6$>7#c7sflqmbryYPp108sd;>Zx4+03DStbKEDgY$QoCIvg00a*j2SZx$Kw(6V6sWir5Fkb$ ziyFy7fKY&f0u34-LVCzqA%%(m5f3#40D)i_69N-5j7Z_91Bw_nFYHWslR}LgB>+H_ z$f=@<2{vjBfS_OjiV9F~s=XOw!-xagT09t96v_br6BZ1>;dH@<9#C!4pg;le1{Bt` zX;`6v0JtR~zGlRMA%o=#6#&P;%=t!!YFa0(Sm_K3uM-_`Krq_^#SP3iVsDte;q%E3 za)(lMMF55l)fs9p=#jbe;SCF_Nl?53-<>BRcui2PBld#87YbL9Js_T=Z7b*+C2|)A zgaR1;qTrD*;RWJ7762fSLjs8o8Rj;AOsoWq2?Z2T6Av{^wbKO`R4@Pm0^lNnRxmV| zj}y|J2SE=WuxEh;?Ojm+P8$wNVZ&TRjWfOb!qLzz!nFFk=TSjOLArLLA^93@SJfAP!&_sQ`@v zI52|<28gi36!|f>TQ~wd@Dcz6IKWJq1i)B80w1{WftnL6#sNMiV4)=h544cNqBq)y z3p5cVU_hUL2EYLaFBDLsR{|iqzzF`3z~}&^DiGlx3R|tffe*dV zD=DQSG}h9!CJ0c8zys_)@NKxPz94U}e-esi5n6&!Kmaem8}17M0E@%Er$$-8M6YH+ zEC@L8D=)wW;Ls5W0w_>G1QE=zuXBP#SHesIe)$IhC76H!0SxoYDrtiJ;Bk!u)mU;B yRxI3bz#O+6!T}AKj6fK|5b?4CV1nRd%O_&F^T{<5U@g)eHz4)7P**)f5CA*SY0PQ> literal 0 HcmV?d00001 diff --git a/templates/SwiftBlue/images/page_icons/nav_settings.gif b/templates/SwiftBlue/images/page_icons/nav_settings.gif new file mode 100644 index 0000000000000000000000000000000000000000..dfec9f22571e6cdc2924dd97cb44da96ecb0b909 GIT binary patch literal 1155 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 G^#1^V+G-^L literal 0 HcmV?d00001 diff --git a/templates/SwiftBlue/images/page_icons/nav_statistics.gif b/templates/SwiftBlue/images/page_icons/nav_statistics.gif new file mode 100644 index 0000000000000000000000000000000000000000..53c489e0c59f3b6cae9172806aa07bde47ea5401 GIT binary patch literal 1089 zcmV-H1it%6Nk%w1VJQG90M$PL4Q9%3aMggk_oS!&rmM2Gx%(|MNo#O;ZLjf&jFH00 z_!vp1D}&pdo&HTwQ?a+dl9ro=gzDSiX@j5<8OH7O&C_>ZR_di8r$IQ^p($_R@IUtwj=)!@L!@py#2e}Cm%V31;A z!QSKNA^8LW002J#EC2ui04V?|000L6z@KnPB<3!*3+gAyq)@0-MpCR=iIQCC^Xe|T zFG6lZre4p)4dJy|0N(I-kC54z(dfs=4Pf;DegG#47a=_i9@5d+>7M=$azyeEJGv=IS#030Z=MvVzPNX)o!(3^mdAVZ3DXpRF#5f)QUSlI$c zB3TO%sF+E!W=#a;V(>_*a;4Az1{o7=Ybq~xqHsipF2@U*Crfm6gfzt&r#2A4C!m$ewddMgMdbHru zD^TmkpumL%)?_85xZoiK1-PV3>qd>CId264ZWw5N;m3v)GdP$ia9jEE)XtwPpx_$> z@ajx1e9&QH#azqZ!8=z#zdi*UK1hr>KV-v)5GGJiKyKfKC!T#2Bxpkb7LZ`T2%2>; zgaib{AVYu{Fc)5Z2qu{Spb0bt5JL>+IZ#0&6QWRo4+;dRKyw^&=;4PZ1n5EwKE!ZC z3Bbi;1OX(lXhMuL&RAoOI?xcoCO%m3kY*gE(Ln-1+CTw)^LcnA1sKrKKm@`B(1HcL z7+~UNvP_u50~MSQLkL(dM;KV4iO?1YF*sSmgE*XsLYn=dK!9gA#NYyW1G+arSC5In z!xlt@vG;sj|3E)60W4<=)D`WdP;J^V13=60gnGyg&1z?d=%3-a literal 0 HcmV?d00001 diff --git a/templates/SwiftBlue/images/page_icons/nav_theme.gif b/templates/SwiftBlue/images/page_icons/nav_theme.gif new file mode 100644 index 0000000000000000000000000000000000000000..d112f7784b1f9fc355358ef4f104ba1556eaa191 GIT binary patch literal 1276 zcmVpnE14_TMI3(E{!mg?$H><$uKmWz%lVsF|L4-}w4fp*B-!2IwYa+c*^9EZ%crTt z@1hi%=l*?xg^QuMqNS;+tgpYo!;iDgxw_G#qtT?+?4{ME&d}9hVP^mJCAHa9zs#p124&%nUZe}1p@-PrBy>_9+7o0`Sn;p6l4_3`lVY_n{ZnV$du z|K8*0A^8LW002J#EC2ui04V?|000L6z@KnPEEXY}4avxCI&(P#WH!@iWHERj722L!4c8YTs=1quqAG%zVWB643CC=#eWA0H!_u*I?+9S#dO z4+ku8x=jWlIX%M;$g&E>vB#SP2N)9L7$G3hMHe6m9}e!w9opOS9VR0fIXgZoKK%(H z2SBA`Vc^m`c=EJu0%1Uaj|?s%X6R?YLqK#tE@0R*!reiH@a{S6mw|%|4lDZQ@bKUh zMguHnd12}fnSUN6+mZtz7qq>F?N8wL!fNiznBkvcG}kigFe3Is4Bk3;alBEhAJHptMtIc?j1 zxN{2#al--(4?=b5NZ^ZwE;;ICEU29}1l`=ZQGj3(B7u*Qb|vJDBZm~02oW|9z|gNn zg$fj)L$|vlL4q(Kw(EkRW&rr`5eA4*F(Gk-3F=*E*BBSPH^u=Tgdl+~2H=2$efQ-j zLVx}>u%2)`!~npCBcNda00s!$l8X=*^iTqX_YDw24Hft&lx{oNV8Z|#Za4r62RzWs z7GP+A!vYb4=YatN;^xo=C!COg4GHv6;{Y4sr~zzGbz@B$B9 zpwNQ{ABb>3Q5G~~+z(;m{7t3V_7GFa0!Gd<_lZcApr{>uxU#;(OmGOW)S?i zfFKAQAVC5~&S)|XNSkf7WGKb9~B4kfS=DF_(Eioq$76v|p^ zp*}E{1VW&o!ICB506`8+8X!ZkZ6KiRvMHqSzzw+i1_LvZ^72CtGUOnf4g&1?9=69m z`Y0O&-~g&#(%!)TObU@cBL@{W?9i1DIi7V=9`qniQa@~f z!ji(-#bg-9;_G0r<=zSHz|A6HQ4cJLu!vF{%-~+UF&b!x40x0vgA5y>dgrt$Yz#sO z;&_OTkM8B{9>ge6VZa%tR*XPo2pBAa1U6%ohzGxZ8^#zYG$KO+D2T8@#kI7VAT&xb zae)RYY><=~b{NnIzDZ2nYHBdF_DR=GTp&RYx(Zu%)OoCYEDaCn1@lp(e31hR806S? z%&FiY2_>xc<~Oyt95RR806D8J447xGxw_2g>Wn~hkio*I&I)Y0>CG1WjO2)9M0g|! m7Am{O9@M@WaR?qG+&YP5a7tYWzy}XJ3$Y#@2i#5s0RTH1xiUcj literal 0 HcmV?d00001 diff --git a/templates/SwiftBlue/images/page_icons/nav_theme2.gif b/templates/SwiftBlue/images/page_icons/nav_theme2.gif new file mode 100644 index 0000000000000000000000000000000000000000..f31eb558da4669d9448dcff9dc968458cdf38719 GIT binary patch literal 1144 zcmV-;1c&=aNk%w1VJQG90M$PLLAm}TtN!!!^Udr0W5@kxYLcm~v51S2h>gpSkFV6& z+`9Jue%b!V%h9yAyd7j2N3AAvcy>!nQrq9+W@W{@z{LC1Zq}hVt*y&XkITZw$|;T) zx3BPu3JO?q9yGqm90OOP~e(MTe4xSyZPZ>!{e ze6RzP^glpJ&Cu7Zom;tt8_mm?Kx02$U}mbhk~1|ozrfUBDmA^8LW002J#EC2ui04V?|000L6z@KnPEEFe41i&8-zNF&7sn!PGA`22x@Z8V3{J-_1KQGBOt-Av3}Z zEK0C*S0&VeZUnwDvypF~g@+exdy#*ZIQ9w0yl1SOa^-(ceO zg9DR`Oqoz2Q1|!U*Rl{q;RXp3H&Bcp{WyY3BuF%H00J4nx0VkGv_L@#6yPVp3nb8h zLT(#ukV0=X_%uWquC0*&feXj&zySgjlxX4$) zi6|ZL!3PJdNWudZZUBJ^(M?x`7J{sRzzSM8xg!OH9N+*;Kni(7g}FT-U3x$4Apj05 za4-Q6JiyRJf(f?pWDDGsK}wJk+(%?|HE4hh3>*mH=btv7JM$MMYAiE zaKkKpAu(zL4Y;F~fCB~K5NovD?y)Wg;1)mvROJe%1QPK`u!0n$!T>`9I1E~A0wv&A z!v|5lBT57>l#l=iIB<(@!E1=?Ah7>Y)_?&ANRX-oH5Bj%AsXMeP6P~tSx_S&tN4O_ z_tkvE3nc%_@M@kc8ncQu1TAy~I^V&wRMkmafvG?q;Ixm`I-mgzE+cI&77gT)%+?w# KQneUC002AEj?&ct literal 0 HcmV?d00001 diff --git a/templates/SwiftBlue/images/page_icons/nav_weblinks.gif b/templates/SwiftBlue/images/page_icons/nav_weblinks.gif new file mode 100644 index 0000000000000000000000000000000000000000..0f3d5766f265943cc42816d21edf283df504c1b6 GIT binary patch literal 1135 zcmV-#1d#hjNk%w1VJQG90M$PL`~3UO(biRIwdMNysI0IGNVVMQ`D?21c!j=@sMG{@ z_BMmxW0KAUR>-!xzAS9D1!UVzPf&7od5p#TDsbxw8J13#@QRI(in8i2Zql>b`c;k4 z)Y;vOn$PI)`bm4hZjtGt(E2!0uq7;44@H=>!Q{cl%E;&Xp}_N|wcnSTo!Z~y%G2e) z-1<2DP@gx2m-O1~Cq=MzOTG2DCW_ImyYm z${q;?feAR8bbE(ayYCoSSMEiy7K8sZu@ECMPH97r8DAUZtv1q})f86X%w zHd^>7;X^|R4F*Ff^wB{A0boK(fXKi@2L&BCASl>3qapdr+P@`o$CIv1wP^)$@1RNPO zLRi2PhrR`nKQNG-A%cWoM3_<_kydTh88`|oPz*T(2^<-ve!elo^25x5Ni>)(wZRPw z79QYuAoT%m3O5!!7+l~+KF+R{0@jglc7uGoeY;ptAj5~-E=Z8LF*`%(=OmI75fNi1 z=h-(hHo&pr!1V(bJ{)lIAvA;r57NJ_Abv;y5jv3YzytZbrPcyHc-6y#J$$gi2gH%! z!UH;mmlP2J#IRWgE*Q7}-V6h7Fu{lp@0f0VIsjpAZ~4Fv9{Qyz((8Gv6B4njP8YJ)l1_x}gqINsH|jyW&HsoQZkz!0WiMKt+Aeh1u;f(#nSaKfOq&@$)=J|ys91~Uj) zfRYZCWkdi7h=3*rA(%s`Dw^2vLN*`F@PP;;D0#taMl>ma2p_y4=n2K3@`xq|l(5xg z3a06XT~ B-b?@h literal 0 HcmV?d00001 diff --git a/templates/SwiftBlue/images/page_icons/plus.gif b/templates/SwiftBlue/images/page_icons/plus.gif new file mode 100644 index 0000000000000000000000000000000000000000..0a35bfbac6624b1c848a1b5b8755ffc482f71a90 GIT binary patch literal 181 zcmV;m080NyNk%w1VF>^T0K^{vsI|G}^7eIthI@&PR9RZI!NtSS)Udq3v%kX?78cy- z?YG3p+UM%*`u{&eLx+!%mZPVfr>efn&gS#@==J%3jF7&}(4VZZrmwNO$IF0+iEn&> zaD9QTxxILXivR!rA^8LW0018VEC2ui00{sH000Ft;8zJ7$8Ey*4FHlYMWlMh#6`g| jOA4Ve9o3+aC^`x=OM~#B1V6OE1CtY8S_c5+69ND`t!G$h literal 0 HcmV?d00001 diff --git a/templates/SwiftBlue/images/page_icons/spacer.gif b/templates/SwiftBlue/images/page_icons/spacer.gif new file mode 100644 index 0000000000000000000000000000000000000000..616c5e45d41165871c1a2365ed268a75f1762f7a GIT binary patch literal 807 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 CJ}LVE literal 0 HcmV?d00001 diff --git a/templates/SwiftBlue/images/spacer.gif b/templates/SwiftBlue/images/spacer.gif new file mode 100644 index 0000000000000000000000000000000000000000..616c5e45d41165871c1a2365ed268a75f1762f7a GIT binary patch literal 807 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 + + + + + + + + + diff --git a/templates/SwiftBlue/intro2.js b/templates/SwiftBlue/intro2.js new file mode 100644 index 0000000..fc8af4a --- /dev/null +++ b/templates/SwiftBlue/intro2.js @@ -0,0 +1,6 @@ +document.writeln(""); +document.writeln(""); +document.writeln(""); +document.writeln(""); +document.writeln(""); +document.writeln(""); diff --git a/templates/SwiftBlue/jumpbox.html b/templates/SwiftBlue/jumpbox.html new file mode 100644 index 0000000..2000e92 --- /dev/null +++ b/templates/SwiftBlue/jumpbox.html @@ -0,0 +1,6 @@ + +
    + + + +
    {L_JUMP_TO}: {S_JUMPBOX_SELECT} 
    diff --git a/templates/SwiftBlue/login_body.html b/templates/SwiftBlue/login_body.html new file mode 100644 index 0000000..7576ca9 --- /dev/null +++ b/templates/SwiftBlue/login_body.html @@ -0,0 +1,50 @@ + + + + +
    + +
    + + + + + + + + +
    {L_ENTER_PASSWORD}
    + + + + + + + + + + + + + + + + + + + + + + +
     
    {L_USERNAME}: + +
    {L_PASSWORD}: + +
    {L_AUTO_LOGIN}:
    + {S_HIDDEN_FIELDS} + +
    {L_SEND_PASSWORD}
    + +
    + +
    \ No newline at end of file diff --git a/templates/SwiftBlue/message_body.html b/templates/SwiftBlue/message_body.html new file mode 100644 index 0000000..2b0e84a --- /dev/null +++ b/templates/SwiftBlue/message_body.html @@ -0,0 +1,28 @@ + + + + +
    + + + + + + + + +
    {MESSAGE_TITLE}
    + + + + + + + + + +
     
    {MESSAGE_TEXT}
     
    + +
    + +
    diff --git a/templates/SwiftBlue/mx_main_layout.html b/templates/SwiftBlue/mx_main_layout.html new file mode 100644 index 0000000..3558017 --- /dev/null +++ b/templates/SwiftBlue/mx_main_layout.html @@ -0,0 +1,114 @@ + + + + + + + +
    + + + + + + + + + + {layout_column.blocks.sub_col.INNER_SPACE} + + + + + +
    + + + + + + +
    + + + + + + +
    + + + + + + + + + + + + + + + + + + + + +
    +  {layout_column.blocks.show_title.L_TITLE}  + +
    +
    + + + + + + + + + +
    + {layout_column.blocks.edit.hidden_block.HIDDEN_BLOCK} + + {layout_column.blocks.edit.EDIT_IMG} + {layout_column.blocks.edit.S_HIDDEN_FORM_FIELDS} +
    +
    +
    +
    + +
    +
    + + +
    + + + + +
    + {layout_column.blocks.BLOCK} +
    +
    + +
    + + +
    {layout_column.blocks.block_stats.L_BLOCK_UPDATED}{layout_column.blocks.block_stats.EDITOR_NAME} ({layout_column.blocks.block_stats.EDIT_TIME})
    +
    + + + +
    + + + +
    + + + + +
    \ No newline at end of file diff --git a/templates/SwiftBlue/overall_footer.html b/templates/SwiftBlue/overall_footer.html new file mode 100644 index 0000000..838117d --- /dev/null +++ b/templates/SwiftBlue/overall_footer.html @@ -0,0 +1,30 @@ + +
    {page_last_updated.L_PAGE_UPDATED} {page_last_updated.TIME} {page_last_updated.NAME} 
    + +
    + + + {editcp_exists.ADMIN_OPTIONS} +
    + +{ADMIN_LINK}
    + +{POWERED_BY} MX-Publisher (MXP) {MX_VERSION} © 2001-2008 & phpBB {PHPBB_VERSION} © 2001, 2003 phpBB Group | {MXBB_EXTRA} +
    + + + + +{EXECUTION_STATS} +{MX_ADDITIONAL_FOOTER_TEXT} + + \ No newline at end of file diff --git a/templates/SwiftBlue/overall_header.html b/templates/SwiftBlue/overall_header.html new file mode 100644 index 0000000..acc4134 --- /dev/null +++ b/templates/SwiftBlue/overall_header.html @@ -0,0 +1,188 @@ + + + + + + + + + + + +{META} +{NAV_LINKS} + +{SITENAME} :: {PAGE_TITLE} + + + + + + + + + + + + + + + + +{MX_ADDITIONAL_CSS_FILES} +{MX_ICON_CSS} + + + + + + + + + + + + + + + +{MX_ADDITIONAL_JS_FILES} +{MX_ADDITIONAL_HEADER_TEXT} + + + + + + + + +
    + + + + + #Bibliuta @ Undernet + + + + + + + + + + + + + + + +
    {L_INDEX}{PAGE_ICON}{PAGE_TITLE}{SITENAME}
    {SITE_DESCRIPTION}
    + + + + + + + + + + + + + + + + + + + + + +
    {L_HOME}{L_FORUM}{L_PROFILE}{L_SEARCH}{L_MEMBERLIST}{L_USERGROUPS}{PRIVATE_MESSAGE_INFO}
    {L_HOME}{L_FORUM}{L_PROFILE}{L_SEARCH}{L_MEMBERLIST}{L_USERGROUPS}{L_PRIVATEMSGS}
    +
    {CURRENT_TIME}
    {L_INDEX}
    + + + + + + + + + + + + +
    {L_LOGIN_LOGOUT}{L_LOGIN_LOGOUT} {L_REGISTER}{L_REGISTER} +
    + {L_SEARCH}: + + + + + +
    +
     
    + + + + + + + +
    + + {LAST_VISIT_DATE}
    + + {CURRENT_TIME}
    +
    + + {L_SEARCH_NEW}
    {L_SEARCH_SELF}
    + + {L_SEARCH_UNANSWERED} +
    + diff --git a/templates/SwiftBlue/overall_header_navigation.html b/templates/SwiftBlue/overall_header_navigation.html new file mode 100644 index 0000000..61ac066 --- /dev/null +++ b/templates/SwiftBlue/overall_header_navigation.html @@ -0,0 +1,188 @@ + + + + + + + + + + + +{META} +{NAV_LINKS} + +{SITENAME} :: {PAGE_TITLE} + + + + + + + + + + + + + + + + +{MX_ADDITIONAL_CSS_FILES} +{MX_ICON_CSS} + + + + + + + + + + + + + + + +{MX_ADDITIONAL_JS_FILES} +{MX_ADDITIONAL_HEADER_TEXT} + + + + + + +
    + + +
    + + + + + #Bibliuta @ Undernet + + + + + + + + + + + + + + + + + + + + + + +
    {L_INDEX}{PAGE_ICON}{PAGE_TITLE}{SITENAME}
    {SITE_DESCRIPTION}
    + {OVERALL_NAVIGATION} +
    +
    +
    + + + + +
    + {editcp.EDIT_IMG} + {editcp.S_HIDDEN_FORM_FIELDS} +
    +
    +
    +
    {CURRENT_TIME}
    {L_INDEX}
    + + + + + + + + + + + + +
    {L_LOGIN_LOGOUT}{L_LOGIN_LOGOUT} {L_REGISTER}{L_REGISTER} +
    + {L_SEARCH}: + + + + + +
    +
     
    + + + + + + + +
    + + {LAST_VISIT_DATE}
    + + {CURRENT_TIME}
    +
    + + {L_SEARCH_NEW}
    {L_SEARCH_SELF}
    + + {L_SEARCH_UNANSWERED} +
    + diff --git a/templates/SwiftBlue/overall_header_navigation_phpbb.html b/templates/SwiftBlue/overall_header_navigation_phpbb.html new file mode 100644 index 0000000..270f792 --- /dev/null +++ b/templates/SwiftBlue/overall_header_navigation_phpbb.html @@ -0,0 +1,213 @@ + + + + + + + + + + + +{META} +{NAV_LINKS} + +{SITENAME} :: {PAGE_TITLE} + + + + + + + + + + + + + + + + +{MX_ADDITIONAL_CSS_FILES} +{MX_ICON_CSS} + + + + + + + + + + + + + + + +{MX_ADDITIONAL_JS_FILES} +{MX_ADDITIONAL_HEADER_TEXT} + + + + + + + + +
    + + + + + #Bibliuta @ Undernet + + + + + + + + + + + + + + + + + + + + + + + + + +
    {L_INDEX}{PAGE_ICON}{PAGE_TITLE}{SITENAME}
    {SITE_DESCRIPTION}
    + {OVERALL_NAVIGATION} +
    + + + + + + + + + + + + + + + + + + + + + +
    {L_HOME}{L_FORUM}{L_PROFILE}{L_SEARCH}{L_MEMBERLIST}{L_USERGROUPS}{PRIVATE_MESSAGE_INFO}
    {L_HOME}{L_FORUM}{L_PROFILE}{L_SEARCH}{L_MEMBERLIST}{L_USERGROUPS}{L_PRIVATEMSGS}
    +
    +
    +
    + + + + +
    + {editcp.EDIT_IMG} + {editcp.S_HIDDEN_FORM_FIELDS} +
    +
    +
    +
    {CURRENT_TIME}
    {L_INDEX}
    + + + + + + + + + + + + +
    {L_LOGIN_LOGOUT}{L_LOGIN_LOGOUT} {L_REGISTER}{L_REGISTER} +
    + {L_SEARCH}: + + + + + +
    +
     
    + + + + + + + +
    + + {LAST_VISIT_DATE}
    + + {CURRENT_TIME}
    +
    + + {L_SEARCH_NEW}
    {L_SEARCH_SELF}
    + + {L_SEARCH_UNANSWERED} +
    + diff --git a/templates/SwiftBlue/overall_header_navigation_phpbb2.html b/templates/SwiftBlue/overall_header_navigation_phpbb2.html new file mode 100644 index 0000000..a76f82b --- /dev/null +++ b/templates/SwiftBlue/overall_header_navigation_phpbb2.html @@ -0,0 +1,215 @@ + + + + + + + + +{META} +{NAV_LINKS} + +{SITENAME} :: {PAGE_TITLE} + + + + + + + + + + + + + + + + +{MX_ADDITIONAL_CSS_FILES} +{MX_ICON_CSS} + + + + + + + + + +{MX_ADDITIONAL_JS_FILES} +{MX_ADDITIONAL_HEADER_TEXT} + + + + + + +
    + + + +
    + + + + + +
    + + + + + + + + + + + + + +
    + {OVERALL_NAVIGATION} +
    + + + + + + + + + + + + +
    + {L_HOME} + + {L_FORUM} + + + {L_PROFILE} + + + {L_FAQ} + + {L_MEMBERLIST} + + {L_USERGROUPS} + + + {L_PRIVATEMSGS} + +
    +
    +
    +
    + + + + +
    + {editcp.EDIT_IMG} + {editcp.S_HIDDEN_FORM_FIELDS} +
    +
    +
    +
    + + + + + + + + +
    + {L_LOGIN_LOGOUT} + + + {L_REGISTER} + + +
    + {L_SEARCH}: + + + + + +
    +
     
    + + + + + + + +
    + + {LAST_VISIT_DATE}
    + + {CURRENT_TIME}
    +
    + + {L_SEARCH_NEW}
    {L_SEARCH_SELF}
    + + {L_SEARCH_UNANSWERED} +
    + diff --git a/templates/SwiftBlue/overall_header_phpbb3.html b/templates/SwiftBlue/overall_header_phpbb3.html new file mode 100644 index 0000000..96204e5 --- /dev/null +++ b/templates/SwiftBlue/overall_header_phpbb3.html @@ -0,0 +1,235 @@ + + + + + + + + + + + + + + + +{META} +{SITENAME} • <!-- IF S_IN_MCP -->{L_MCP} • <!-- ELSEIF S_IN_UCP -->{L_UCP} • <!-- ENDIF -->{PAGE_TITLE} + + + + + + + + + +
    + +
    + + + + + +
    {SITE_LOGO_IMG}

    {SITENAME}

    {SITE_DESCRIPTION}
    +
    + + + +
    + + + + + +
    {LAST_VISIT_DATE}{CURRENT_TIME}
    +
    + +
    + +
    + + + + + +
    + + + +
    diff --git a/templates/SwiftBlue/overall_noheader.html b/templates/SwiftBlue/overall_noheader.html new file mode 100644 index 0000000..03fdc32 --- /dev/null +++ b/templates/SwiftBlue/overall_noheader.html @@ -0,0 +1,37 @@ + + + + + +{META} +{NAV_LINKS} +{SITENAME} :: {PAGE_TITLE} + + + + + + + + + + + + + + + + + + + + + + diff --git a/templates/SwiftBlue/posting_smilies.html b/templates/SwiftBlue/posting_smilies.html new file mode 100644 index 0000000..7028535 --- /dev/null +++ b/templates/SwiftBlue/posting_smilies.html @@ -0,0 +1,45 @@ + + + + + + + +
    + + + + + + + + + +
    {L_EMOTICONS}
    + + + + + + + + + + + + +
    {smilies_row.smilies_col.SMILEY_DESC}
    {L_MORE_SMILIES}

    {L_CLOSE_WINDOW}
    diff --git a/templates/SwiftBlue/rollout.js b/templates/SwiftBlue/rollout.js new file mode 100644 index 0000000..f5772c0 --- /dev/null +++ b/templates/SwiftBlue/rollout.js @@ -0,0 +1,32 @@ +function rollup_contract(in_buttonSwitch, in_listID, path) +{ + if (document.getElementById) { + listID = document.getElementById(in_listID); + } + else { + return; + } + + if (listID.style.display == '') { + listID.style.display = 'none'; + in_buttonSwitch.innerHTML = ''; + rollup_record_state(in_listID, 0); + } + else { + listID.style.display = ''; + in_buttonSwitch.innerHTML = ''; + rollup_record_state(in_listID, 1); + } + + if (window.event) { + window.event.cancelBubble=true; + } +} + +function rollup_record_state(in_listID, status) +{ + var expDate = new Date(); + // expires in 1 year + expDate.setTime(expDate.getTime() + 31536000000); + document.cookie = in_listID + "=" + escape(status) + "; expires=" + expDate.toGMTString(); +} diff --git a/templates/SwiftBlue/rollout_main.js b/templates/SwiftBlue/rollout_main.js new file mode 100644 index 0000000..ef5aaa8 --- /dev/null +++ b/templates/SwiftBlue/rollout_main.js @@ -0,0 +1,46 @@ +function rollup_contract_main(in_buttonSwitch, in_listID, path) +{ + var in_listID; + + if (document.getElementsByName) { + var listID = document.getElementsByName(in_listID); + } + else { + return; + } + + for (var i=0;i'; + var send_cookie = 0; + } + else { + listID[i].style.display = ''; + in_buttonSwitch.innerHTML = ''; + var send_cookie = 1; + } + + if (window.event) { + window.event.cancelBubble=true; + } + } + + if (send_cookie == 1) { + rollup_record_state_main(in_listID, 1); + } + else { + rollup_record_state_main(in_listID, 0); + } + + +} + +function rollup_record_state_main(in_listID, status) +{ + var expDate = new Date(); + // expires in 1 year + expDate.setTime(expDate.getTime() + 31536000000); + document.cookie = in_listID + "=" + escape(status) + "; expires=" + expDate.toGMTString(); +} diff --git a/templates/SwiftBlue/styleswitcher.js b/templates/SwiftBlue/styleswitcher.js new file mode 100644 index 0000000..c68215d --- /dev/null +++ b/templates/SwiftBlue/styleswitcher.js @@ -0,0 +1,161 @@ + +function fontsizeup() +{ + var active = getActiveStyleSheet(); + + switch (active) + { + case 'A--': + setActiveStyleSheet('A-'); + break; + + case 'A-': + setActiveStyleSheet('A'); + break; + + case 'A': + setActiveStyleSheet('A+'); + break; + + case 'A+': + setActiveStyleSheet('A++'); + break; + + case 'A++': + setActiveStyleSheet('A'); + break; + + default: + setActiveStyleSheet('A'); + break; + } +} + +function fontsizedown() +{ + active = getActiveStyleSheet(); + + switch (active) + { + case 'A++' : + setActiveStyleSheet('A+'); + break; + + case 'A+' : + setActiveStyleSheet('A'); + break; + + case 'A' : + setActiveStyleSheet('A-'); + break; + + case 'A-' : + setActiveStyleSheet('A--'); + break; + + case 'A--' : + break; + + default : + setActiveStyleSheet('A--'); + break; + } +} + +function setActiveStyleSheet(title) +{ + var i, a, main; + + for (i = 0; (a = document.getElementsByTagName('link')[i]); i++) + { + if (a.getAttribute('rel').indexOf('style') != -1 && a.getAttribute('title')) + { + a.disabled = true; + if (a.getAttribute('title') == title) + { + a.disabled = false; + } + } + } +} + +function getActiveStyleSheet() +{ + var i, a; + + for (i = 0; (a = document.getElementsByTagName('link')[i]); i++) + { + if (a.getAttribute('rel').indexOf('style') != -1 && a.getAttribute('title') && !a.disabled) + { + return a.getAttribute('title'); + } + } + + return null; +} + +function getPreferredStyleSheet() +{ + return ('A-'); +} + +function createCookie(name, value, days) +{ + if (days) + { + var date = new Date(); + date.setTime(date.getTime() + (days*24*60*60*1000)); + var expires = '; expires=' + date.toGMTString(); + } + else + { + expires = ''; + } + + document.cookie = name + '=' + value + expires + '; path=/'; +} + +function readCookie(name) +{ + var nameEQ = name + '='; + var ca = document.cookie.split(';'); + + for (var i = 0; i < ca.length; i++) + { + var c = ca[i]; + + while (c.charAt(0) == ' ') + { + c = c.substring(1, c.length); + } + + if (c.indexOf(nameEQ) == 0) + { + return c.substring(nameEQ.length, c.length); + } + } + + return null; +} + +function load_cookie() +{ + var cookie = readCookie('style_cookie'); + var title = cookie ? cookie : getPreferredStyleSheet(); + setActiveStyleSheet(title); +} + +function unload_cookie() +{ + var title = getActiveStyleSheet(); + createCookie('style_cookie', title, 365); +} + +onload_functions.push('load_cookie()'); +onunload_functions.push('unload_cookie()'); + +/* +var cookie = readCookie("style"); +var title = cookie ? cookie : getPreferredStyleSheet(); +setActiveStyleSheet(title); +*/ diff --git a/templates/SwiftBlue/table_footer.tpl b/templates/SwiftBlue/table_footer.tpl new file mode 100644 index 0000000..68aed75 --- /dev/null +++ b/templates/SwiftBlue/table_footer.tpl @@ -0,0 +1,46 @@ +
    + + + + /* We request that you do not remove the link to the AutoIndex website. + This not only gives respect to the large amount of time given freely by the + developer, but also helps build interest, traffic, and use of AutoIndex. */ + + +{if:entries_per_page} +

    + {words:page} + {info:previous_page_link} + {info:current_page_number} + {info:next_page_link} + {words:of} {info:last_page_number} +

    +{end if:entries_per_page} + + +{if:archive} + +{end if:archive} + + +

    + + + {if:search_enabled} + + {end if:search_enabled} + {if:use_login_system} + + {end if:use_login_system} + +
    +
    + {if:icon_path}{words:search} {end if:icon_path}{words:search}: + {info:search_box} +
    +
    +
    + {if:icon_path}{words:login} {end if:icon_path}{words:account}: + {info:login_box} +
    +
    \ No newline at end of file diff --git a/templates/SwiftBlue/table_header.tpl b/templates/SwiftBlue/table_header.tpl new file mode 100644 index 0000000..ce10ed6 --- /dev/null +++ b/templates/SwiftBlue/table_header.tpl @@ -0,0 +1,122 @@ + + + + + + + + + + + +
    + + + #Bibliuta @ Undernet + + + + + + +
    + beitdina.net +  {words:index of} {info:dir} @ #Bibliuta
    beitdina.net
    Portalul canalului #Bibliuta de pe Undernet 
    + + + + + + + +
      +
    + Căutare: + + + + + +
    +
     
    +
    + +
    {words:index of} {info:path_nav}
    +
    + + + + + {if:download_count} + + {end if:download_count} + + + + + + {if:description_file} + + {end if:description_file} + + + \ No newline at end of file diff --git a/templates/SwiftBlue/wallpapers.js b/templates/SwiftBlue/wallpapers.js new file mode 100644 index 0000000..f0eafc7 --- /dev/null +++ b/templates/SwiftBlue/wallpapers.js @@ -0,0 +1,9 @@ +document.writeln(""); +document.writeln(""); \ No newline at end of file diff --git a/templates/default/alternate.css b/templates/default/alternate.css new file mode 100644 index 0000000..20c39b3 --- /dev/null +++ b/templates/default/alternate.css @@ -0,0 +1,134 @@ +/** + * An alternate stylesheet. + * + * @package AutoIndex + * @author Justin Hagstrom + * @version 1.0.0 (February 03, 2005) + * + * @copyright Copyright (C) 2002-2005 Justin Hagstrom + * @license http://www.gnu.org/licenses/gpl.html GNU General Public License (GPL) + * + * @link http://autoindex.sourceforge.net + */ + +/* Body */ +.autoindex_body, html +{ + font-family: verdana, lucidia, sans-serif; + font-size: 13px; + background-color: #FCFCFC; +} + +/* Images */ +.autoindex_body img +{ + border: none; +} + +/* Tables */ +.autoindex_table +{ + width: 100%; + border: none; + border-spacing: 2px; +} +.light_row +{ + background-color: #FEFEFE; + font-size: 12px; +} +.dark_row +{ + background-color: #EEEEEE; + font-size: 12px; +} +.light_row:hover, .dark_row:hover +{ + background-color: #FFF2BF; +} +.autoindex_td +{ + border: 1px solid #FAFAFA; + font-size: 12px; + padding: 1px; + text-align: left; + white-space: nowrap; +} +.autoindex_td_right +{ + border: 1px solid #FAFAFA; + font-size: 12px; + padding: 1px; + text-align: right; + white-space: nowrap; +} +.autoindex_td:hover, .autoindex_td_right:hover +{ + font-size: 12px; + padding: 1px; + border: 1px solid #FFCC00; +} +.autoindex_th +{ + background-color: #FFCC00; + border: 1px solid #AA9339; + font-size: 12px; + padding: 2px; +} + +/* Links */ +.plain_link +{ + color: #000000; + text-decoration: none; +} +.autoindex_a:visited, .autoindex_a:active +{ + color: #00008F; + text-decoration: none; +} +.autoindex_a:link +{ + color: #0000FF; + text-decoration: none; +} +.autoindex_a:hover +{ + color: #392266; + text-decoration: none; +} + +/* Buttons */ +.button +{ + color: #707070; + background-color: #F2F6FC; + font-family: arial, sans-serif; + font-size: 11px; + text-align: left; + vertical-align: middle; + font-weight: bold; + cursor: pointer; + border: 0px outset #CBCBCB; + padding: 3px 10px 3px 10px; +} + +/* Misc. */ +.paragraph +{ + background: #F2F6FC; + color: #000020; + font-size: 13px; +} +.autoindex_hr +{ + color: #000020; + background-color: #000020; + border: none; + width: 75%; + height: 1px; +} +.autoindex_small +{ + font-size: 10px; +} \ No newline at end of file diff --git a/templates/default/default.css b/templates/default/default.css new file mode 100644 index 0000000..cc4f333 --- /dev/null +++ b/templates/default/default.css @@ -0,0 +1,127 @@ +/** + * The default CSS stylesheet used for all templates. + * + * @package AutoIndex + * @author Justin Hagstrom + * @version 1.0.2 (February 05, 2004) + * + * @copyright Copyright (C) 2002-2004 Justin Hagstrom + * @license http://www.gnu.org/licenses/gpl.html GNU General Public License (GPL) + * + * @link http://autoindex.sourceforge.net + */ + +/* Body */ +.autoindex_body, html +{ + font-family: verdana, lucidia, sans-serif; + font-size: 13px; + background-color: #F0F0F0; +} + +/* Images */ +.autoindex_body img +{ + border: none; +} + +/* Tables */ +.autoindex_table +{ + width: 100%; + border: none; + border-spacing: 2px; +} +.light_row +{ + background-color: #F2F6FC; + font-size: 13px; +} +.dark_row +{ + background-color: #DADEEE; + font-size: 13px; +} +.autoindex_td +{ + font-size: 13px; + font-family: verdana, lucidia, sans-serif; + vertical-align: top; + border: 1px solid #7F8FA9; + padding: 0px; + text-align: left; + white-space: nowrap; +} +.autoindex_td_right +{ + font-size: 13px; + font-family: verdana, lucidia, sans-serif; + vertical-align: top; + border: 1px solid #7F8FA9; + padding: 0px; + text-align: right; + white-space: nowrap; +} +.autoindex_th +{ + font-size: 13px; + background-color: #7F8FAD; + border: 1px solid #000010; + padding: 0px; +} + +/* Links */ +.plain_link +{ + color: #000000; + text-decoration: none; +} +.autoindex_a:link +{ + color: #0000FF; + text-decoration: none; +} +.autoindex_a:visited, .autoindex_a:active, .autoindex_a:hover +{ + color: #00008F; + text-decoration: none; +} +.light_row:hover, .dark_row:hover +{ + background-color: #FFFFA8; +} + +/* Buttons */ +.button +{ + color: #707070; + background-color: #F2F6FC; + font-family: sans-serif; + font-size: 11px; + text-align: left; + vertical-align: middle; + font-weight: bold; + cursor: pointer; + border: none; + padding: 3px 10px 3px 10px; +} + +/* Misc. */ +.paragraph +{ + background: #F2F6FC; + font-size: 13px; + color: #000020; +} +.autoindex_hr +{ + color: #000020; + background-color: #000020; + border: none; + width: 75%; + height: 1px; +} +.autoindex_small +{ + font-size: 10px; +} \ No newline at end of file diff --git a/templates/default/each_file (alternative with direct links).tpl b/templates/default/each_file (alternative with direct links).tpl new file mode 100644 index 0000000..92252fb --- /dev/null +++ b/templates/default/each_file (alternative with direct links).tpl @@ -0,0 +1,30 @@ + + + + {if:download_count} + + {end if:download_count} + + + {if:description_file} + + {end if:description_file} + \ No newline at end of file diff --git a/templates/default/each_file.tpl b/templates/default/each_file.tpl new file mode 100644 index 0000000..afb4332 --- /dev/null +++ b/templates/default/each_file.tpl @@ -0,0 +1,25 @@ + + + + {if:download_count} + + {end if:download_count} + + + {if:description_file} + + {end if:description_file} + \ No newline at end of file diff --git a/templates/default/global_footer.tpl b/templates/default/global_footer.tpl new file mode 100644 index 0000000..449eaa5 --- /dev/null +++ b/templates/default/global_footer.tpl @@ -0,0 +1,14 @@ + +/* We request that you do not remove the following copyright notice. */ + + + + \ No newline at end of file diff --git a/templates/default/global_header.tpl b/templates/default/global_header.tpl new file mode 100644 index 0000000..59c17f2 --- /dev/null +++ b/templates/default/global_header.tpl @@ -0,0 +1,10 @@ + + + + + {words:index of} {info:dir} + + + + + diff --git a/templates/default/table_footer.tpl b/templates/default/table_footer.tpl new file mode 100644 index 0000000..be44376 --- /dev/null +++ b/templates/default/table_footer.tpl @@ -0,0 +1,68 @@ + + + + {if:download_count} + + {end if:download_count} + + + {if:description_file} + + {end if:description_file} + +
    + {words:file} + + {words:downloads} + + {words:size} + + {words:date} + + {words:description} +
    + {file:if:is_file} /* if it is a file, make a direct link */ + + {end if} + {file:if:is_dir} /* otherwise, for directories, display the folder with autoindex */ + + {end if} + {if:icon_path}[{file:file_ext}]{end if:icon_path} + {file:filename} {file:thumbnail} + {file:new_icon}{file:md5_link}{file:delete_link}{file:rename_link}{file:edit_description_link}{file:ftp_upload_link} + + {file:downloads} + + {file:size} + + {file:date} + + {file:description} +
    + + {if:icon_path}[{file:file_ext}]{end if:icon_path} + {file:filename} {file:thumbnail} + {file:new_icon}{file:md5_link}{file:delete_link}{file:rename_link}{file:edit_description_link}{file:ftp_upload_link} + + {file:downloads} + + {file:size} + + {file:date} + + {file:description} +
    + {info:total_files} {words:files} - {info:total_folders} {words:folders} + + {words:total downloads}: {info:total_downloads} + + {words:total size}: {info:total_size} + +   + +   +
    + + /* We request that you do not remove the link to the AutoIndex website. + This not only gives respect to the large amount of time given freely by the + developer, but also helps build interest, traffic, and use of AutoIndex. */ + + +{if:entries_per_page} +

    + {words:page} + {info:previous_page_link} + {info:current_page_number} + {info:next_page_link} + {words:of} {info:last_page_number} +

    +{end if:entries_per_page} + + +{if:archive} + +{end if:archive} + + +

    + + + {if:search_enabled} + + {end if:search_enabled} + {if:use_login_system} + + {end if:use_login_system} + +
    +
    + {if:icon_path}{words:search} {end if:icon_path}{words:search}: + {info:search_box} +
    +
    +
    + {if:icon_path}{words:login} {end if:icon_path}{words:account}: + {info:login_box} +
    +
    diff --git a/templates/default/table_header.tpl b/templates/default/table_header.tpl new file mode 100644 index 0000000..9710e9f --- /dev/null +++ b/templates/default/table_header.tpl @@ -0,0 +1,23 @@ +

    {words:index of} {info:path_nav}
    + + + + {if:download_count} + + {end if:download_count} + + + {if:description_file} + + {end if:description_file} + diff --git a/templates/index.htm b/templates/index.htm new file mode 100644 index 0000000..ee1f723 --- /dev/null +++ b/templates/index.htm @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/templates/readme.html b/templates/readme.html new file mode 100644 index 0000000..f434fa7 --- /dev/null +++ b/templates/readme.html @@ -0,0 +1,184 @@ + + + + + AutoIndex PHP Script: Template Readme + + + + + +

    + AutoIndex PHP Script +

    +
    + Template Readme +
    +

    +   +

    + +
    +

    + This is a list of all the variables that can be used in the template files. +

    +

    +   +

    +
    + global_header.tpl / global_footer.tpl +
    +

    + Info about the current directory: +

    +
    +	{info:dir}	the path of the current directory, including the base dir
    +	{info:subdir}	the path of the current directory, not including the base dir
    +	{info:version}	the version of AutoIndex
    +	{info:page_time}	the time (in milliseconds) it took to generate the page
    +
    +

    + All words from the language file: +

    +
    +	{words:foo}
    +	... see language file for all options
    +
    +

    + All settings from the config file: +

    +
    +	{config:foo}
    +	... see AutoIndex.conf.php for all options
    +
    +

    + You can include another specific file using the {include} command: +

    +
    +	{include:filename}
    +
    +

    + Anything between /* */ will not be displayed in the HTML output. +

    +

    +   +

    +
    + table_header.tpl / table_footer.tpl +
    +

    + All previously mentioned variables, plus: +

    +

    + Info about current directory: +

    +
    +	{info:path_nav}
    +	{info:total_files}
    +	{info:total_folders}
    +	{info:total_size}
    +	{info:total_downloads}
    +	{info:search_box}
    +	{info:login_box}
    +	{info:archive_link}
    +	{info:previous_page_link}
    +	{info:next_page_link}
    +	{info:current_page_number}
    +	{info:last_page_number}
    +
    +

    + If-statements: +

    +
    +	{if:show_dir_size}
    +	{if:search_enabled}
    +	{if:use_login_system}
    +	{if:must_login_to_download}
    +	{if:days_new}
    +	{if:thumbnail_height}
    +	{if:log_file}
    +	{if:description_file}
    +	{if:download_count}
    +	{if:entries_per_page}
    +
    +

    + To end an if-statement, use {end if:varibale} +
    For example, {if:days_new} ... {end if:days_new} +

    +

    + Sort modes: +

    +
    +	{sort:filename}
    +	{sort:size}
    +	{sort:m_time}
    +	{sort:description}
    +	{sort:downloads}
    +
    +

    +   +

    +
    + each_file.tpl +
    +

    + All previously mentioned variables, plus: +

    +

    + Properties for individual files: +

    +
    +	{file:filename}		the name of the file or folder
    +	{file:link}		the link to the file (using the ?dir and ?file parameters in the URL)
    +	{file:file_ext}		the file extension ("dir" for a directory)
    +	{file:size}		the size (formatted as a string)
    +	{file:bytes}		the size (in bytes)
    +	{file:date}		the date modified (formatted as a string)
    +	{file:a_time}		date and time accessed
    +	{file:m_time}		date and time modified
    +	{file:num_subfiles}	for a directory, the number of files it contains
    +		use {file:if:is_real_dir}{file:num_subfiles}{end if}
    +	{file:thumbnail}	for images, it will display a thumbnail
    +	{file:md5_link}		a link to get the md5sum of the file
    +	{file:downloads}	the number of times this file has been downloaded
    +	{file:description}	the description of the current file
    +	{file:icon}		the icon image for the filetype
    +	{file:parent_dir}	the name of the file's parent directory
    +	{file:tr_class}		this returns "light_row" or "dark_row" for every other file
    +	{file:if:is_file} ... {end if}		true if it is a file
    +	{file:if:is_dir} ... {end if}		true if it is a folder or link to parent directory
    +	{file:if:is_real_dir} ... {end if}	true if it is a folder
    +	{file:if:is_parent_dir} ... {end if}	true if it is a link to parent directory
    +	{do_every:x} ... {end do_every} where x is a number.
    +		The code in between will be displayed every x files.
    +
    +
    + + + \ No newline at end of file diff --git a/templates/simple_image_gallery/default.css b/templates/simple_image_gallery/default.css new file mode 100644 index 0000000..c5d7350 --- /dev/null +++ b/templates/simple_image_gallery/default.css @@ -0,0 +1,128 @@ +/** + * The default CSS stylesheet used for all templates. + * + * @package AutoIndex + * @author Justin Hagstrom + * @version 1.0.2 (February 05, 2004) + * + * @copyright Copyright (C) 2002-2004 Justin Hagstrom + * @license http://www.gnu.org/licenses/gpl.html GNU General Public License (GPL) + * + * @link http://autoindex.sourceforge.net + */ + +/* Body */ +.autoindex_body, html +{ + font-family: verdana, lucidia, sans-serif; + font-size: 13px; + background-color: #F0F0F0; +} + +/* Images */ +.autoindex_body img +{ + border: none; +} + +/* Tables */ +.autoindex_table +{ + width: 100%; + border: none; + border-spacing: 2px; +} +.light_row +{ + background-color: #F2F6FC; + font-size: 13px; +} +.dark_row +{ + background-color: #DADEEE; + font-size: 13px; +} +.autoindex_td +{ + font-size: 13px; + font-family: verdana, lucidia, sans-serif; + vertical-align: top; + border: 1px solid #7F8FA9; + padding: 0px; + text-align: left; + white-space: nowrap; +} +.autoindex_td_right +{ + font-size: 13px; + font-family: verdana, lucidia, sans-serif; + vertical-align: top; + border: 1px solid #7F8FA9; + padding: 0px; + text-align: right; + white-space: nowrap; +} +.autoindex_th +{ + font-size: 13px; + background-color: #7F8FAD; + border: 1px solid #000010; + padding: 0px; +} + +/* Links */ +.plain_link +{ + color: #000000; + text-decoration: none; +} +.autoindex_a:visited, .autoindex_a:active +{ + color: #00008F; + text-decoration: none; +} +.autoindex_a:link +{ + color: #0000FF; + text-decoration: none; +} +.autoindex_a:hover +{ + color: #0000FF; + text-decoration: overline underline; +} + +/* Buttons */ +.button +{ + color: #707070; + background-color: #F2F6FC; + font-family: sans-serif; + font-size: 11px; + text-align: left; + vertical-align: middle; + font-weight: bold; + cursor: pointer; + border: none; + padding: 3px 10px 3px 10px; +} + +/* Misc. */ +.paragraph +{ + background: #F2F6FC; + font-size: 13px; + color: #000020; +} +.autoindex_hr +{ + color: #000020; + background-color: #000020; + border: none; + width: 75%; + height: 1px; +} +.autoindex_small +{ + font-size: 10px; +} \ No newline at end of file diff --git a/templates/simple_image_gallery/each_file.tpl b/templates/simple_image_gallery/each_file.tpl new file mode 100644 index 0000000..d8d2bc3 --- /dev/null +++ b/templates/simple_image_gallery/each_file.tpl @@ -0,0 +1,7 @@ + +{do_every:4}{end do_every} \ No newline at end of file diff --git a/templates/simple_image_gallery/global_footer.tpl b/templates/simple_image_gallery/global_footer.tpl new file mode 100644 index 0000000..449eaa5 --- /dev/null +++ b/templates/simple_image_gallery/global_footer.tpl @@ -0,0 +1,14 @@ + +/* We request that you do not remove the following copyright notice. */ + + + + \ No newline at end of file diff --git a/templates/simple_image_gallery/global_header.tpl b/templates/simple_image_gallery/global_header.tpl new file mode 100644 index 0000000..55cd592 --- /dev/null +++ b/templates/simple_image_gallery/global_header.tpl @@ -0,0 +1,9 @@ + + + + + {words:index of} {info:dir} + + + + diff --git a/templates/simple_image_gallery/table_footer.tpl b/templates/simple_image_gallery/table_footer.tpl new file mode 100644 index 0000000..807d6fc --- /dev/null +++ b/templates/simple_image_gallery/table_footer.tpl @@ -0,0 +1,44 @@ +
    + {words:file} + + {words:downloads} + + {words:size} + + {words:date} + + {words:description} +
    + + {file:if:is_dir}{if:icon_path}{words:thumbnail of} {file:filename}{end if:icon_path}{end if} {file:thumbnail} +
    {file:filename}
    {file:new_icon}{file:md5_link}{file:delete_link}{file:rename_link}{file:edit_description_link}{file:ftp_upload_link} + {if:description_file}
    {file:description}{end if:description_file} +
    + + /* We request that you do not remove the link to the AutoIndex website. + This not only gives respect to the large amount of time given freely by the + developer, but also helps build interest, traffic, and use of AutoIndex. */ + + +{if:entries_per_page} +

    + {words:page} + {info:previous_page_link} + {info:current_page_number} + {info:next_page_link} + {words:of} {info:last_page_number} +

    +{end if:entries_per_page} + + +{if:archive} + +{end if:archive} + + +

    + + + {if:search_enabled} + + {end if:search_enabled} + {if:use_login_system} + + {end if:use_login_system} + +
    +
    + {if:icon_path}{words:search} {end if:icon_path}{words:search}: + {info:search_box} +
    +
    +
    + {if:icon_path}{words:login} {end if:icon_path}{words:account}: + {info:login_box} +
    +
    \ No newline at end of file diff --git a/templates/simple_image_gallery/table_header.tpl b/templates/simple_image_gallery/table_header.tpl new file mode 100644 index 0000000..02d4b26 --- /dev/null +++ b/templates/simple_image_gallery/table_header.tpl @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/templates/spacer.gif b/templates/spacer.gif new file mode 100644 index 0000000..e69de29

  • Make sure you are accessing this file directly from http://' . $self . '