/index.php
PHP | 2552 lines | 1886 code | 264 blank | 402 comment | 412 complexity | d24d03e0eb4de986d51985a7c16cf327 MD5 | raw file
Large files files are truncated, but you can click here to view the full file
- <?php
- /***************************************************************************
- *
- * Encode Explorer
- *
- * Author / Autor : Marek Rei (marek 채t siineiolekala dot net)
- *
- * Version / Versioon : 6.3
- *
- * Last change / Viimati muudetud: 23.09.2011
- *
- * Homepage / Koduleht: encode-explorer.siineiolekala.net
- *
- *
- * NB!: Comments are in english.
- * Comments needed for configuring are in both estonian and english.
- * If you change anything, save with UTF-8! Otherwise you may
- * encounter problems, especially when displaying images.
- *
- ***************************************************************************/
- /***************************************************************************
- *
- * This is free software and it's distributed under GPL Licence.
- *
- * Encode Explorer is written in the hopes that it can be useful to people.
- * It has NO WARRANTY and when you use it, the author is not responsible
- * for how it works (or doesn't).
- *
- * The icon images are designed by Mark James (http://www.famfamfam.com)
- * and distributed under the Creative Commons Attribution 3.0 License.
- *
- ***************************************************************************/
- /***************************************************************************/
- /* HERE ARE THE SETTINGS FOR CONFIGURATION */
- /***************************************************************************/
- //
- // Initialising variables. Don't change these.
- //
- $_CONFIG = array();
- $_ERROR = "";
- $_START_TIME = microtime(TRUE);
- /*
- * GENERAL SETTINGS
- */
- //
- // Choose a language. See below in the language section for options.
- // Default: $_CONFIG['lang'] = "en";
- //
- $_CONFIG['lang'] = "en";
- //
- // Display thumbnails when hovering over image entries in the list.
- // Common image types are supported (jpeg, png, gif).
- // Pdf files are also supported but require ImageMagick to be installed.
- // Default: $_CONFIG['thumbnails'] = true;
- //
- $_CONFIG['thumbnails'] = true;
- //
- // Maximum sizes of the thumbnails.
- // Default: $_CONFIG['thumbnails_width'] = 200;
- // Default: $_CONFIG['thumbnails_height'] = 200;
- //
- $_CONFIG['thumbnails_width'] = 300;
- $_CONFIG['thumbnails_height'] = 300;
- //
- // Mobile interface enabled. true/false
- // Default: $_CONFIG['mobile_enabled'] = true;
- //
- $_CONFIG['mobile_enabled'] = true;
- //
- // Mobile interface as the default setting. true/false
- // Default: $_CONFIG['mobile_default'] = false;
- //
- $_CONFIG['mobile_default'] = false;
- /*
- * USER INTERFACE
- */
- //
- // Will the files be opened in a new window? true/false
- // Default: $_CONFIG['open_in_new_window'] = false;
- //
- $_CONFIG['open_in_new_window'] = false;
- //
- // How deep in subfolders will the script search for files?
- // Set it larger than 0 to display the total used space.
- // Default: $_CONFIG['calculate_space_level'] = 0;
- //
- $_CONFIG['calculate_space_level'] = 0;
- //
- // Will the page header be displayed? 0=no, 1=yes.
- // Default: $_CONFIG['show_top'] = true;
- //
- $_CONFIG['show_top'] = true;
- //
- // The title for the page
- // Default: $_CONFIG['main_title'] = "Directory Contents";
- //
- $_CONFIG['main_title'] = "Directory Contents";
- //
- // The secondary page titles, randomly selected and displayed under the main header.
- // For example: $_CONFIG['secondary_titles'] = array("Secondary title", "“Secondary title with quotes”");
- // Default: $_CONFIG['secondary_titles'] = array();
- //
- $_CONFIG['secondary_titles'] = array();
- //
- // Display breadcrumbs (relative path of the location).
- // Default: $_CONFIG['show_path'] = true;
- //
- $_CONFIG['show_path'] = true;
- //
- // Display the time it took to load the page.
- // Default: $_CONFIG['show_load_time'] = true;
- //
- $_CONFIG['show_load_time'] = true;
- //
- // The time format for the "last changed" column.
- // Default: $_CONFIG['time_format'] = "d.m.y H:i:s";
- //
- $_CONFIG['time_format'] = "d.m.y H:i:s";
- //
- // Charset. Use the one that suits for you.
- // Default: $_CONFIG['charset'] = "UTF-8";
- //
- $_CONFIG['charset'] = "UTF-8";
- /*
- * PERMISSIONS
- */
- //
- // The array of folder names that will be hidden from the list.
- // Default: $_CONFIG['hidden_dirs'] = array();
- //
- $_CONFIG['hidden_dirs'] = array();
- //
- // Filenames that will be hidden from the list.
- // Default: $_CONFIG['hidden_files'] = array(".ftpquota", "index.php", "index.php~", ".htaccess", ".htpasswd");
- //
- $_CONFIG['hidden_files'] = array(".ftpquota", "index.php", "index.php~", ".htaccess", ".htpasswd");
- //
- // Whether authentication is required to see the contents of the page.
- // If set to false, the page is public.
- // If set to true, you should specify some users as well (see below).
- // Important: This only prevents people from seeing the list.
- // They will still be able to access the files with a direct link.
- // Default: $_CONFIG['require_login'] = false;
- //
- $_CONFIG['require_login'] = false;
- //
- // Usernames and passwords for restricting access to the page.
- // The format is: array(username, password, status)
- // Status can be either "user" or "admin". User can read the page, admin can upload and delete.
- // For example: $_CONFIG['users'] = array(array("username1", "password1", "user"), array("username2", "password2", "admin"));
- // You can also keep require_login=false and specify an admin.
- // That way everyone can see the page but username and password are needed for uploading.
- // For example: $_CONFIG['users'] = array(array("username", "password", "admin"));
- // Default: $_CONFIG['users'] = array();
- //
- $_CONFIG['users'] = array();
- //
- // Permissions for uploading, creating new directories and deleting.
- // They only apply to admin accounts, regular users can never perform these operations.
- // Default:
- // $_CONFIG['upload_enable'] = true;
- // $_CONFIG['newdir_enable'] = true;
- // $_CONFIG['delete_enable'] = false;
- //
- $_CONFIG['upload_enable'] = true;
- $_CONFIG['newdir_enable'] = true;
- $_CONFIG['delete_enable'] = false;
- /*
- * UPLOADING
- */
- //
- // List of directories where users are allowed to upload.
- // For example: $_CONFIG['upload_dirs'] = array("./myuploaddir1/", "./mydir/upload2/");
- // The path should be relative to the main directory, start with "./" and end with "/".
- // All the directories below the marked ones are automatically included as well.
- // If the list is empty (default), all directories are open for uploads, given that the password has been set.
- // Default: $_CONFIG['upload_dirs'] = array();
- //
- $_CONFIG['upload_dirs'] = array();
- //
- // MIME type that are allowed to be uploaded.
- // For example, to only allow uploading of common image types, you could use:
- // $_CONFIG['upload_allow_type'] = array("image/png", "image/gif", "image/jpeg");
- // Default: $_CONFIG['upload_allow_type'] = array();
- //
- $_CONFIG['upload_allow_type'] = array();
- //
- // File extensions that are not allowed for uploading.
- // For example: $_CONFIG['upload_reject_extension'] = array("php", "html", "htm");
- // Default: $_CONFIG['upload_reject_extension'] = array();
- //
- $_CONFIG['upload_reject_extension'] = array("php");
- /*
- * LOGGING
- */
- //
- // Upload notification e-mail.
- // If set, an e-mail will be sent every time someone uploads a file or creates a new dirctory.
- // Default: $_CONFIG['upload_email'] = "";
- //
- $_CONFIG['upload_email'] = "";
- //
- // Logfile name. If set, a log line will be written there whenever a directory or file is accessed.
- // For example: $_CONFIG['log_file'] = ".log.txt";
- // Default: $_CONFIG['log_file'] = "";
- //
- $_CONFIG['log_file'] = "";
- /*
- * SYSTEM
- */
- //
- // The starting directory. Normally no need to change this.
- // Use only relative subdirectories!
- // For example: $_CONFIG['starting_dir'] = "./mysubdir/";
- // Default: $_CONFIG['starting_dir'] = ".";
- //
- $_CONFIG['starting_dir'] = ".";
- //
- // Location in the server. Usually this does not have to be set manually.
- // Default: $_CONFIG['basedir'] = "";
- //
- $_CONFIG['basedir'] = "";
- //
- // Big files. If you have some very big files (>4GB), enable this for correct
- // file size calculation.
- // Default: $_CONFIG['large_files'] = false;
- //
- $_CONFIG['large_files'] = false;
- //
- // The session name, which is used as a cookie name.
- // Change this to something original if you have multiple copies in the same space
- // and wish to keep their authentication separate.
- // The value can contain only letters and numbers. For example: MYSESSION1
- // More info at: http://www.php.net/manual/en/function.session-name.php
- // Default: $_CONFIG['session_name'] = "";
- //
- $_CONFIG['session_name'] = "";
- /***************************************************************************/
- /* TRANSLATIONS. */
- /***************************************************************************/
- $_TRANSLATIONS = array();
- // English
- $_TRANSLATIONS["en"] = array(
- "file_name" => "File name",
- "size" => "Size",
- "last_changed" => "Last changed",
- "total_used_space" => "Total used space",
- "free_space" => "Free space",
- "password" => "Password",
- "upload" => "Upload",
- "failed_upload" => "Failed to upload the file!",
- "failed_move" => "Failed to move the file into the right directory!",
- "wrong_password" => "Wrong password",
- "make_directory" => "New dir",
- "new_dir_failed" => "Failed to create directory",
- "chmod_dir_failed" => "Failed to change directory rights",
- "unable_to_read_dir" => "Unable to read directory",
- "location" => "Location",
- "root" => "Root",
- "log_file_permission_error" => "The script does not have permissions to write the log file.",
- "upload_not_allowed" => "The script configuration does not allow uploading in this directory.",
- "upload_dir_not_writable" => "This directory does not have write permissions.",
- "mobile_version" => "Mobile view",
- "standard_version" => "Standard view",
- "page_load_time" => "Page loaded in %.2f ms",
- "wrong_pass" => "Wrong username or password",
- "username" => "Username",
- "log_in" => "Log in",
- "upload_type_not_allowed" => "This file type is not allowed for uploading.",
- "del" => "Del", // short for Delete
- "log_out" => "Log out"
- );
- /***************************************************************************/
- /* CSS FOR TWEAKING THE DESIGN */
- /***************************************************************************/
- function css()
- {
- ?>
- <style type="text/css">
- /* General styles */
- BODY {
- background-color:#FFFFFF;
- font-family:Verdana;
- font-size:small;
- }
- A {
- color: #000000;
- text-decoration: none;
- }
- A:hover {
- text-decoration: underline;
- }
- #top {
- width:100%;
- padding-bottom: 20px;
- }
- #top a span, #top a:hover, #top a span:hover{
- color:#68a9d2;
- font-weight:bold;
- text-align:center;
- font-size:large;
- }
- #top a {
- display:block;
- padding:20px 0 0 0;
- }
- #top span {
- display:block;
- }
- div.subtitle{
- width:80%;
- margin: 0 auto;
- color:#68a9d2;
- text-align:center;
- }
- #frame {
- border: 1px solid #CDD2D6;
- text-align:left;
- position: relative;
- margin: 0 auto;
- max-width:680px;
- overflow:hidden;
- }
- #error {
- max-width:450px;
- background-color:#FFE4E1;
- color:#000000;
- padding:7pt;
- position: relative;
- margin: 10pt auto;
- text-align:center;
- border: 1px dotted #CDD2D6;
- }
- input {
- border: 1px solid #CDD2D6;
- }
- .bar{
- width:100%;
- clear:both;
- height:1px;
- }
- /* File list */
- table.table {
- width:100%;
- border-collapse: collapse;
- }
- table.table td{
- padding:3px;
- }
- table.table tr.row.two {
- background-color:#fcfdfe;
- }
- table.table tr.row.one {
- background-color:#f8f9fa;
- }
- table.table tr.row td.icon {
- width:25px;
- padding-top:3px;
- padding-bottom:1px;
- }
- table.table td.del {
- width:25px;
- }
- table.table tr.row td.size {
- width: 100px;
- text-align: right;
- }
- table.table tr.row td.changed {
- width: 150px;
- text-align: center;
- }
- table.table tr.header img {
- vertical-align:bottom;
- }
- table img{
- border:0;
- }
- /* Info area */
- #info {
- color:#000000;
- font-family:Verdana;
- max-width:680px;
- position: relative;
- margin: 0 auto;
- text-align:center;
- }
- /* Thumbnail area */
- #thumb {
- position:absolute;
- border: 1px solid #CDD2D6;
- background:#f8f9fa;
- display:none;
- padding:3px;
- }
- #thumb img {
- display:block;
- }
- /* Login bar (at the bottom of the page) */
- #login_bar {
- margin: 0 auto;
- margin-top:2px;
- max-width:680px;
- }
- #login_bar input.submit{
- float:right;
- }
- /* Upload area */
- #upload {
- margin: 0 auto;
- margin-top:2px;
- max-width:680px;
- }
- #upload #password_container {
- margin-right:20px;
- }
- #upload #newdir_container, #upload #password_container {
- float:left;
- }
- #upload #upload_container{
- float:right;
- }
- #upload input.upload_dirname, #upload input.upload_password{
- width:140px;
- }
- #upload input.upload_file{
- font-size:small;
- }
- /* Breadcrumbs */
- div.breadcrumbs {
- display:block;
- padding:1px 3px;
- color:#cccccc;
- font-size:x-small;
- }
- div.breadcrumbs a{
- display:inline-block;
- color:#cccccc;
- padding:2px 0;
- font-size:small;
- }
- /* Login area */
- #login {
- max-width:280px;
- text-align:right;
- margin:15px auto 50px auto;
- }
- #login div {
- display:block;
- width:100%;
- margin-top:5px;
- }
- #login label{
- width: 120px;
- text-align: right;
- }
- /* Mobile interface */
- body.mobile #frame, body.mobile #info, body.mobile #upload {
- max-width:none;
- }
- body.mobile {
- font-size:medium;
- }
- body.mobile a.item {
- display:block;
- padding:10px 0;
- }
- body.mobile a.item span.size {
- float:right;
- margin-left:10px;
- }
- body.mobile table.table {
- margin-bottom:30px;
- }
- body.mobile table.table tr td {
- border-top: 1px solid #CDD2D6;
- }
- body.mobile table.table tr.last td {
- border-bottom: 1px solid #CDD2D6;
- }
- body.mobile #top {
- padding-bottom:3px;
- }
- body.mobile #top a {
- padding-top:3px;
- }
- body.mobile #upload #password_container, body.mobile #upload #upload_container, body.mobile #upload #newdir_container {
- float:none;
- margin-top:5px;
- }
- body.mobile #upload input.upload_dirname, body.mobile #upload input.upload_password{
- width:240px;
- }
- body.mobile #upload {
- margin-bottom:15px;
- }
- </style>
- <?php
- }
- /***************************************************************************/
- /* IMAGE CODES IN BASE64 */
- /* You can generate your own with a converter */
- /* Like here: http://www.motobit.com/util/base64-decoder-encoder.asp */
- /* Or here: http://www.greywyvern.com/code/php/binary2base64 */
- /* Or just use PHP base64_encode() function */
- /***************************************************************************/
- $_IMAGES = array();
- $_IMAGES["arrow_down"] = "iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAQAAAC1+jfqAAAABGdBTUEAAK/INwWK6QAAABl0RVh0
- U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAABbSURBVCjPY/jPgB8yDCkFB/7v+r/5/+r/
- i/7P+N/3DYuC7V93/d//fydQ0Zz/9eexKFgtsejLiv8b/8/8X/WtUBGrGyZLdH6f8r/sW64cTkdW
- SRS+zpQbgiEJAI4UCqdRg1A6AAAAAElFTkSuQmCC";
- $_IMAGES["arrow_up"] = "iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAQAAAC1+jfqAAAABGdBTUEAAK/INwWK6QAAABl0RVh0
- U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAABbSURBVCjPY/jPgB8yDDkFmyVWv14kh1PB
- eoll31f/n/ytUw6rgtUSi76s+L/x/8z/Vd8KFbEomPt16f/1/1f+X/S/7X/qeSwK+v63/K/6X/g/
- 83/S/5hvQywkAdMGCdCoabZeAAAAAElFTkSuQmCC";
- $_IMAGES["del"] = "iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAAK/INwWK6QAAABl0RVh0
- U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAJdSURBVDjLpZP7S1NhGMf9W7YfogSJboSE
- UVCY8zJ31trcps6zTI9bLGJpjp1hmkGNxVz4Q6ildtXKXzJNbJRaRmrXoeWx8tJOTWptnrNryre5
- YCYuI3rh+8vL+/m8PA/PkwIg5X+y5mJWrxfOUBXm91QZM6UluUmthntHqplxUml2lciF6wrmdHri
- I0Wx3xw2hAediLwZRWRkCPzdDswaSvGqkGCfq8VEUsEyPF1O8Qu3O7A09RbRvjuIttsRbT6HHzeb
- sDjcB4/JgFFlNv9MnkmsEszodIIY7Oaut2OJcSF68Qx8dgv8tmqEL1gQaaARtp5A+N4NzB0lMXxo
- n/uxbI8gIYjB9HytGYuusfiPIQcN71kjgnW6VeFOkgh3XcHLvAwMSDPohOADdYQJdF1FtLMZPmsl
- vhZJk2ahkgRvq4HHUoWHRDqTEDDl2mDkfheiDgt8pw340/EocuClCuFvboQzb0cwIZgki4KhzlaE
- 6w0InipbVzBfqoK/qRH94i0rgokSFeO11iBkp8EdV8cfJo0yD75aE2ZNRvSJ0lZKcBXLaUYmQrCz
- DT6tDN5SyRqYlWeDLZAg0H4JQ+Jt6M3atNLE10VSwQsN4Z6r0CBwqzXesHmV+BeoyAUri8EyMfi2
- FowXS5dhd7doo2DVII0V5BAjigP89GEVAtda8b2ehodU4rNaAW+dGfzlFkyo89GTlcrHYCLpKD+V
- 7yeeHNzLjkp24Uu1Ed6G8/F8qjqGRzlbl2H2dzjpMg1KdwsHxOlmJ7GTeZC/nesXbeZ6c9OYnuxU
- c3fmBuFft/Ff8xMd0s65SXIb/gAAAABJRU5ErkJggg==";
- $_IMAGES["archive"] = "iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAAK/INwWK6QAAABl0RVh0
- U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAJmSURBVDjLhZNNS5RRGIav8+HMvDNO5ZhO
- YqXQF2FgVNRCCKM2EbQ1ok2b/AG16F/0ge5qUwitghbWooikiIhI3AQVFER+VsyMztg7vuecp4U2
- ORH5wLM5cK7n5r65lYgAoJTaDhQBw/9nAfgiIgEAEWENcjiO43KSJN45J//aOI5lZGTkBtALaBFp
- AhxNksRXq1Wp1WqNrVQqUiqVZH5+XpxzMjs7K6Ojow2Imri9Z1Dntjwo2dObZr7vpKXFoDVAwFpN
- vR6za9du+vr6KRQKrKysEEJgbGzs5vDw8DX1/N6Rrx0HOrpfvOqnWs0CCgQkaJTJEkIAHENDFygW
- i01mWGuP2Vw+KnT3djPUM0eLzZO4L6ikztQz6Dl2i4ePxgk+IYoylMtlQgg45+js7FyFKKUk/llh
- evplg9zTtR8RC0AmSlGtrGCMxVqF9x5j/gRlRQLZbIbt3fvW4lwmpS0IhCA4FwgEjDForVFK/Ta9
- oYDa8jdmpt83Hndu86DaEQkgHgkBrXXT5QaA4FuiqI3itl4IPzHWk7G5NQUBQgISUEoBYIxpVlAr
- le9+fCbntFY6qM2Z4BOWazFzS13UPrwjlUqzuFhtXF9NZZ0Cn7hLc59mrly+/uPQ+OO3T+6PP8W7
- OpH1fJ6cpLU1hUsSphcqRLlNFHK6GXD84nuvlCoDS1FrgZn28+T5zom933jzeoKpyZeY9oPceOJp
- z1e4erbtLw/WTTBZWVpaVNmcYuvWDk6eOsPAwCCLseHOpCOfNg0vgACg1rXxSL1enzDGZAC9QSOD
- 9345nU4PrgfsWKvzRp9/jwcWfgF7VEKXfHY5kwAAAABJRU5ErkJggg==";
- $_IMAGES["audio"] = "iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAAK/INwWK6QAAABl0RVh0
- U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAIvSURBVDjLjZPLaxNRFIeriP+AO7Gg7nRX
- qo1ogoKCK0Fbig8QuxKhPop04SYLNYqlKpEmQlDBRRcFFWlBqqJYLVpbq6ktaRo0aWmamUxmJpN5
- ZvKoP++9mmlqWuzAt7jc+X2Hcy6nDkAdhXxbCI2Epv+wlbDeyVUJGm3bzpVKpcVyuYyVIPcIBAL3
- qiXVgiYaNgwDpmk6qKoKRVEgCAKT8DyPYDDoSCrhdYHrO9qzkdOQvp+E+O04hC+tED63gBs+QiDn
- hQgTWJYFWiQUCv2RUEH/g4YNXwdcT/VEJ6xkF8zEDRixq1CnriD94SikH08gikJNS2wmVLDwybON
- H3GbNt8DY+YMrDk/tGkvhOFmKPE+pxVJkpDJZMBx3JJAHN+/MTPq8amxdtj8fWjhwzB+diH5ag9y
- 8V6QubDhUYmmaWwesiwvCYRRtyv9ca9oc37kk3egTbbBiPowP+iGOHGT0A1h7BrS43ehiXHous5E
- joCEx3IzF6FMnYMcPgs95iOCW1DDXqTfnEBqsBnRR9shTvYibyhsiBRHwL13dabe7r797uHOx3Kk
- m1T2IDfhhTRyAfMDh5Aauox8Ns5aKRQKDNrSsiHSZ6SHoq1i9nkDuNfHkHi2D9loHwtSisUig4ZX
- FaSG2pB8cZBUPY+ila0JV1Mj8F/a3DHbfwDq3Mtlb12R/EuNoKN10ylLmv612h6swKIj+CvZRQZk
- 0ou1hMm/OtveKkE9laxhnSvQ1a//DV9axd5NSHlCAAAAAElFTkSuQmCC";
- $_IMAGES["code"] = "iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAAK/INwWK6QAAABl0RVh0
- U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAHtSURBVDjLjZM9T9tQFIYpQ5eOMBKlW6eW
- IQipa8RfQKQghEAKqZgKFQgmFn5AWyVDCipVQZC2EqBWlEqdO2RCpAssQBRsx1+1ndix8wFvfW6w
- cUhQsfTI0j33PD7n+N4uAF2E+/S5RFwG/8Njl24/LyCIOI6j1+v1y0ajgU64cSSTybdBSVAwSMmm
- acKyLB/DMKBpGkRRZBJBEJBKpXyJl/yABLTBtm1Uq1X2JsrlMnRdhyRJTFCpVEAfSafTTUlQoFs1
- luxBAkoolUqQZbmtJTYTT/AoHInOfpcwtVtkwcSBgrkDGYph+60oisIq4Xm+VfB0+U/P0Lvj3NwP
- GfHPTcHMvoyFXwpe7UmQtAqTUCU0D1VVbwTPVk5jY19Fe3ZfQny7CE51WJDXqpjeEUHr45ki9rIq
- a4dmQiJfMLItGEs/FcQ2ucbRmdnSYy5vYWyLx/w3EaMfLmBaDpMQvuDJ65PY8Dpnz3wpYmLtApzc
- rIAqmfrEgdZH1grY/a36w6Xz0DKD8ES25/niYS6+wWE8mWfByY8cXmYEJFYLkHUHtVqNQcltAvoL
- D3v7o/FUHsNvzlnwxfsCEukC/ho3yUHaBN5Buo17Ojtyl+DqrnvQgUtfcC0ZcAdkUeA+ye7eMru9
- AUGIJPe4zh509UP/AAfNypi8oj/mAAAAAElFTkSuQmCC";
- $_IMAGES["database"] = "iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAAK/INwWK6QAAABl0RVh0
- U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAHVSURBVDjLjZPLaiJBFIZNHmJWCeQdMuT1
- Mi/gYlARBRUkao+abHUhmhgU0QHtARVxJ0bxhvfGa07Of5Iu21yYFPyLrqrz1f+f6rIRkQ3icca6
- ZF39RxesU1VnAVyuVqvJdrvd73Y7+ky8Tk6n87cVYgVcoXixWNByuVSaTqc0Ho+p1+sJpNvtksvl
- UhCb3W7/cf/w+BSLxfapVIqSySRlMhnSdZ2GwyHN53OaTCbU7/cFYBgG4RCPx/MKub27+1ur1Xqj
- 0YjW6zWxCyloNBqUSCSkYDab0WAw+BBJeqLFtQpvGoFqAlAEaZomuc0ocAQnnU7nALiJ3uh8whgn
- ttttarVaVCgUpCAUCgnQhMAJ+gG3CsDZa7xh1mw2ZbFSqYgwgsGgbDQhcIWeAHSIoP1pcGeNarUq
- gFKpJMLw+/0q72azkYhmPAWIRmM6AGbXc7kc5fN5AXi9XgWACwAguLEAojrfsVGv1yV/sVikcrks
- AIfDIYUQHEAoPgLwT3GdzWYNdBfXh3xwApDP5zsqtkoBwuHwaSAQ+OV2u//F43GKRCLEc5ROpwVo
- OngvBXj7jU/wwZPPX72DT7RXgDfIT27QEgvfKea9c3m9FsA5IN94zqbw9M9fAEuW+zzj8uLvAAAA
- AElFTkSuQmCC";
- $_IMAGES["directory"] = "iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAAK/INwWK6QAAABl0RVh0
- U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAGrSURBVDjLxZO7ihRBFIa/6u0ZW7GHBUV0
- UQQTZzd3QdhMQxOfwMRXEANBMNQX0MzAzFAwEzHwARbNFDdwEd31Mj3X7a6uOr9BtzNjYjKBJ6ni
- cP7v3KqcJFaxhBVtZUAK8OHlld2st7Xl3DJPVONP+zEUV4HqL5UDYHr5xvuQAjgl/Qs7TzvOOVAj
- xjlC+ePSwe6DfbVegLVuT4r14eTr6zvA8xSAoBLzx6pvj4l+DZIezuVkG9fY2H7YRQIMZIBwycmz
- H1/s3F8AapfIPNF3kQk7+kw9PWBy+IZOdg5Ug3mkAATy/t0usovzGeCUWTjCz0B+Sj0ekfdvkZ3a
- bBv+U4GaCtJ1iEm6ANQJ6fEzrG/engcKw/wXQvEKxSEKQxRGKE7Izt+DSiwBJMUSm71rguMYhQKr
- BygOIRStf4TiFFRBvbRGKiQLWP29yRSHKBTtfdBmHs0BUpgvtgF4yRFR+NUKi0XZcYjCeCG2smkz
- LAHkbRBmP0/Uk26O5YnUActBp1GsAI+S5nRJJJal5K1aAMrq0d6Tm9uI6zjyf75dAe6tx/SsWeD/
- /o2/Ab6IH3/h25pOAAAAAElFTkSuQmCC";
- $_IMAGES["graphics"] = "iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAAK/INwWK6QAAABl0RVh0
- U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAH8SURBVDjLjZPLaxNRFIfHLrpx10WbghXx
- H7DQx6p14cadiCs31Y2LLizYhdBFWyhYaFUaUxLUQFCxL61E+0gofWGLRUqGqoWp2JpGG8g4ybTJ
- JJm86897Ls4QJIm98DED9/6+mXNmjiAIwhlGE6P1P5xjVAEQiqHVlMlkYvl8/rhQKKAUbB92u91W
- SkKrlcLJZBK6rptomoZoNApFUbhElmU4HA4u8YzU1PsmWryroxYrF9CBdDqNbDbLr0QikUAsFkM4
- HOaCVCoFesjzpwMuaeXuthYcw4rtvG4KKGxAAgrE43FEIhGzlJQWxE/RirQ6i8/T7XjXV2szBawM
- 8yDdU91GKaqqInQgwf9xCNmoB7LYgZn+Oud0T121KfiXYokqf8X+5jAyR3NQvtzEq96z4os7lhqz
- ieW6TxJN3UVg8yEPqzu38P7xRVy+cPoay52qKDhUf0HaWsC3xRvstd3Qvt9mTWtEOPAJf/+L8oKA
- fwfLnil43z7Bkusqdr2X4Btvg1+c5fsVBZJ/H9aXbix/2EAouAVx4zVmHl2BtOrkPako2DsIwule
- xKhnG/cmfbg+uIbukXkooR/I5XKcioLu+8/QNTyGzqE36OidQNeDJayLe7yZBuUEv8t9iRIcU6Z4
- FprZ36fTxknC7GyCBrBY0ECSE4yzAY1+gyH4Ay9cw2Ifwv9mAAAAAElFTkSuQmCC";
- $_IMAGES["image"] = "iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAAK/INwWK6QAAABl0RVh0
- U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAGWSURBVBgZpcE/a1NhGMbh3/OeN56cKq2D
- p6AoCOKmk4uCn8DNycEOIojilr2TaBfRzVnESQR3Bz+FFDoWA2IjtkRqmpyc97k9qYl/IQV7XSaJ
- w4g0VlZfP0m13dwepPbuiH85fyhyWCx4/ubxjU6kkdxWHt69VC6XpZlFBAhwJgwJJHAmRKorbj94
- ewvoRBrbuykvT5R2/+lLTp05Tp45STmEJYJBMAjByILxYeM9jzr3GCczGpHGYAQhRM6fO8uFy1fJ
- QoaUwCKYEcwwC4QQaGUBd36KTDmQ523axTGQmEcIEBORKQfG1ZDxcA/MkBxXwj1ggCQyS9TVAMmZ
- iUxJ8Ln/kS+9PmOvcSW+jrao0mmMH5bzHfa+9UGBmciUBJ+2Fmh1h+yTQCXSkJkdCrpd8btIwwEJ
- QnaEkOXMk7XaiF8CUxL/JdKQOwb0Ntc5SG9zHXQNd/ZFGsaEeLa2ChjzXQcqZiKNxSL0vR4unVww
- MENMCATib0ZdV+QtE41I42geXt1Ze3dlMNZFdw6Ut6CIvKBhkjiM79Pyq1YUmtkKAAAAAElFTkSu
- QmCC";
- $_IMAGES["presentation"] = "iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAAK/INwWK6QAAABl0RVh0
- U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAHeSURBVDjLjZO/i1NBEMc/u+/lBYxiLkgU
- 7vRstLEUDyxtxV68ykIMWlocaGHrD1DxSAqxNf4t115jo6DYhCRCEsk733s7u2PxkuiRoBkYdmGZ
- z3xndsaoKgDGmC3gLBDxbxsA31U1AKCqzCBXsywbO+e8iOgqz7JM2+32W+AiYFX1GGDHOeen06mm
- abrwyWSio9FI+/2+ioj2ej3tdDoLiJm+bimAhgBeUe9RmbkrT5wgT97RaDQoioIQAt1ud7/Var1h
- +uq+/s9+PLilw+FwqSRgJ1YpexHSKenHF4DFf/uC3b7CydsPsafraO5IkoTxeEwIARGh2WwCYNUJ
- AOmHZ5y4eY/a7h4hPcIdHvDz/fMSnjviOCZJEiqVCtVqdfEl8RygHkz9DLZWQzOHisd9OizfckcU
- RRhjMMbMm14CQlEC/NfPjPd2CSJQCEEEDWYBsNZijFkaCqu5Ky+blwl5geaOUDg0c8TnNssSClkE
- R1GEtXYZcOruI6ILl1AJqATirW02Hr8sFThBVZfklyXMFdQbbDzdXzm78z4Bx7KXTcwdgzs3yizu
- zxAhHvVh4avqBzAzaQa4JiIHgGE9C3EcX7ezhVIgeO9/AWGdYO/9EeDNX+t8frbOdk0FHhj8BvUs
- fP0TH5dOAAAAAElFTkSuQmCC";
- $_IMAGES["spreadsheet"] = "iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAAK/INwWK6QAAABl0RVh0
- U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAIpSURBVDjLjZNPSFRRFMZ/9707o0SOOshM
- 0x/JFtUmisKBooVEEUThsgi3KS0CN0G2lagWEYkSUdsRWgSFG9sVFAW1EIwQqRZiiDOZY804b967
- 954249hUpB98y/PjO5zzKREBQCm1E0gDPv9XHpgTEQeAiFCDHAmCoBhFkTXGyL8cBIGMjo7eA3YD
- nog0ALJRFNlSqSTlcrnulZUVWV5elsXFRTHGyMLCgoyNjdUhanCyV9ayOSeIdTgnOCtY43DWYY3j
- 9ulxkskkYRjinCOXy40MDAzcZXCyVzZS38MeKRQKf60EZPXSXInL9y+wLZMkCMs0RR28mJ2grSWJ
- Eo+lH9/IpNPE43GKxSLOOYwxpFIpAPTWjiaOtZ+gLdFKlJlD8u00xWP8lO/M5+e5efEB18b70Vqj
- lMJai++vH8qLqoa+nn4+fJmiNNPCvMzQnIjzZuo1V88Ns3/HAcKKwfd9tNZorYnFYuuAMLDMfJ3m
- +fQznr7L0Vk9zGpLmezB4zx++YggqhAFEZ7n4ft+HVQHVMoB5++cJNWaRrQwMjHM9qCLTFcnJJq5
- 9WSIMLAopQDwfR/P8+oAbaqWK2eGSGxpxVrDnvQ+3s++4tPnj4SewYscUdUgIiilcM41/uXZG9kN
- z9h9aa+EYdjg+hnDwHDq+iGsaXwcZ6XhsdZW+FOqFk0B3caYt4Bic3Ja66NerVACOGttBXCbGbbW
- rgJW/VbnXbU6e5tMYIH8L54Xq0cq018+AAAAAElFTkSuQmCC";
- $_IMAGES["textdocument"] = "iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAAK/INwWK6QAAABl0RVh0
- U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAIdSURBVDjLjZO7a5RREMV/9/F9yaLBzQY3
- CC7EpBGxU2O0EBG0sxHBUitTWYitYCsiiJL0NvlfgoWSRpGA4IMsm43ZXchmv8e9MxZZN1GD5MCB
- W8yce4aZY1QVAGPMaWAacPwfm8A3VRUAVJWhyIUsy7plWcYQgh7GLMt0aWnpNTADWFX9Q2C+LMu4
- s7Oj/X5/xF6vp51OR1utloYQtNls6vLy8kjE3Huz9qPIQjcUg/GZenVOokIEiSBBCKUSQ+TFwwa1
- Wo2iKBARVlZW3iwuLr7izssPnwZ50DLIoWz9zPT+s/fabrf/GQmY97GIIXGWp28/08si5+oV1jcG
- TCSO6nHH2pddYqmkaUq320VECCFQr9cBsBIVBbJcSdXQmK7Q6Qsnq54sj2gBplS896RpSpIkjI2N
- jVZitdh7jAOSK6trXcpC2GjlfP1esHD+GDYozjm893jvSZJkXyAWe+ssc6W5G9naLqkaw/pGxBrl
- 1tVpJCrWWpxzI6GRgOQKCv2BYHPl5uUatROeSsVy7eIkU9UUiYoxBgDnHNbagw4U6yAWwpmphNvX
- T6HAhAZuLNRx1iDDWzHG/L6ZEbyJVLa2c54/PgsKgyzw5MHcqKC9nROK/aaDvwN4KYS7j959DHk2
- PtuYnBUBFUEVVBQRgzX7I/wNM7RmgEshhFXAcDSI9/6KHQZKAYkxDgA5SnOMcReI5kCcG8M42yM6
- iMDmL261eaOOnqrOAAAAAElFTkSuQmCC";
- $_IMAGES["unknown"] = "iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAQAAAC1+jfqAAAABGdBTUEAAK/INwWK6QAAABl0RVh0
- U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAC4SURBVCjPdZFbDsIgEEWnrsMm7oGGfZro
- hxvU+Iq1TyjU60Bf1pac4Yc5YS4ZAtGWBMk/drQBOVwJlZrWYkLhsB8UV9K0BUrPGy9cWbng2CtE
- EUmLGppPjRwpbixUKHBiZRS0p+ZGhvs4irNEvWD8heHpbsyDXznPhYFOyTjJc13olIqzZCHBouE0
- FRMUjA+s1gTjaRgVFpqRwC8mfoXPPEVPS7LbRaJL2y7bOifRCTEli3U7BMWgLzKlW/CuebZPAAAA
- AElFTkSuQmCC";
- $_IMAGES["vectorgraphics"] = "iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAAK/INwWK6QAAABl0RVh0
- U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAIWSURBVDjLhZNPbxJRFMWhRrYu3NrExIUb
- dzWte6M7d34Eo2Hjxm8gwZUxIYEARUKAWgwbV0BpxAW11bpQFrCoCVEMDplhQMow782/enx3WsiU
- 0jrJ2bz7zu+9e95cHwAfSXzXhFaEVv+j60JLM58HsGIYxsi27SPHcbBIoo5oNBrxQryAVTJPJhPo
- uu6q0+mgVquh0WhAlmUX0uv1EIvFZpCp2U8A2sA5h2maYIyhUChA0zTU63UoiuICaJ0OSSaTx5B5
- AJnpqqVSCbmNTWxVt9FsNtHv98+05GYyD7AsC5VKBZvFd/j2k6Etc6gjHfLgELKiujeRJGkxQGSA
- YDCIx8+eI/ORIb3Lkf0sWvmio9aaoC2NoQ7+QFUHCwFr5XIZ8bfvhZFhq2XgU9tEb2Tj99DCgcTx
- 9YeOg64GZTCGPQdYEnpaLBbxZl9HfIejo1rg5nGvti3CMyxouonhIYM8ZG7NBWSz2YepVKobiUR+
- UXjrwry+wzBm9qnAqD03YHohbsASUP+ly2u+XC7XzmQyt9LpdJc2xuscr0ULU9NUFC6JDiFRCy4g
- n88/EWqFw+EEmfL7HK8+8FOAqdmrWYjC7E8kElcCgcAdWmx2LbzY5mCmc+YWXp33H/w1LQehKhPP
- ZuK8mTjR0QxwArktQtKpsLHHEarwC81ir+ZOrwewTBCiXr157/7d0PfqjQcvH10w1jT6y/8A/nHJ
- HcAgm2AAAAAASUVORK5CYII=";
- $_IMAGES["video"] = "iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAAK/INwWK6QAAABl0RVh0
- U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAIfSURBVDjLpZNPaBNBGMXfbrubzBqbg4kL
- 0lJLgiVKE/AP6Kl6UUFQNAeDIAjVS08aELx59GQPAREV/4BeiqcqROpRD4pUNCJSS21OgloISWME
- Z/aPb6ARdNeTCz92mO+9N9/w7RphGOJ/nsH+olqtvg+CYJR8q9VquThxuVz+oJTKeZ63Uq/XC38E
- 0Jj3ff8+OVupVGLbolkzQw5HOqAxQU4wXWWnZrykmYD0QsgAOJe9hpEUcPr8i0GaJ8n2vs/sL2h8
- R66TpVfWTdETHWE6GRGKjGiiKNLii5BSLpN7pBHpgMYhMkm8tPUWz3sL2D1wFaY/jvnWcTTaE5Dy
- jMfTT5J0XIAiTRYn3ASwZ1MKbTmN7z+KaHUOYqmb1fcPiNa4kQBuyvWAHYfcHGzDgYcx9NKrwJYH
- CAyF21JiPWBnXMAQOea6bmn+4ueYGZi8gtymNVobF7BG5prNpjd+eW6X4BSUD0gOdCpzA8MpA/v2
- v15kl4+pK0emwHSbjJGBlz+vYM1fQeDrYOBTdzOGvDf6EFNr+LYjHbBgsaCLxr+moNQjU2vYhRXp
- gIUOmSWWnsJRfjlOZhrexgtYDZ/gWbetNRbNs6QT10GJglNk64HMaGgbAkoMo5fiFNy7CKDQUGqE
- 5r38YktxAfSqW7Zt33l66WtkAkACjuNsaLVaDxlw5HdJ/86aYrG4WCgUZD6fX+jv/U0ymfxoWVZo
- muZyf+8XqfGP49CCrBUAAAAASUVORK5CYII=";
- $_IMAGES["webpage"] = "iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAAK/INwWK6QAAABl0RVh0
- U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAJwSURBVDjLjZPdT1JhHMetvyO3/gfLKy+6
- 8bLV2qIAq7UyG6IrdRPL5hs2U5FR0MJIAqZlh7BVViI1kkyyiPkCyUtztQYTYbwJE8W+Pc8pjofK
- 1dk+OxfP+X3O83srAVBCIc8eQhmh/B/sJezm4niCsvX19cTm5uZWPp/H3yDnUKvVKr6ELyinwWtr
- a8hkMhzJZBLxeBwrKyusJBwOQ6PRcJJC8K4DJ/dXM04DOswNqNOLybsRo9N6LCy7kUgkEIlEWEE2
- mwX9iVar/Smhglqd8IREKwya3qhg809gPLgI/XsrOp/IcXVMhqnFSayurv6RElsT6ZCoov5u1fzU
- VwvcKRdefVuEKRCA3OFHv2MOxtlBdFuaMf/ZhWg0yt4kFAoVCZS3Hd1gkpOwRt9h0LOES3YvamzP
- cdF7A6rlPrSbpbhP0kmlUmw9YrHYtoDku2T6pEZ/2ICXEQ8kTz+g2TkNceAKKv2nIHachn6qBx1M
- I5t/Op1mRXzBd31AiRafBp1vZyEcceGCzQ6p24yjEzocGT6LUacS0iExcrkcK6Fsp6AXLRnmFOjy
- PMIZixPHmAAOGxZQec2OQyo7zpm6cNN6GZ2kK1RAofPAr8GA4oUMrdNNkIw/wPFhDwSjX3Dwlg0C
- Qy96HreiTlcFZsaAjY0NNvh3QUXtHeHcoKMNA7NjqLd8xHmzDzXDRvRO1KHtngTyhzL4SHeooAAn
- KMxBtUYQbGWa0Dc+AsWzSVy3qkjeItLCFsz4XoNMaRFFAm4SyTXbmQa2YHQSGacR/pAXO+zGFif4
- JdlHCpShBzstEz+YfJtmt5cnKKWS/1jnAnT1S38AGTynUFUTzJcAAAAASUVORK5CYII=";
- $_IMAGES["7z"] = $_IMAGES["archive"];
- $_IMAGES["as"] = "iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAAK/INwWK6QAAABl0RVh0
- U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAIqSURBVDjLjZPNi1JRGMan/ooWDbSKNq2s
- gZqh0UgqKVoOU7OooEWLgZi+JIaYGolaRAS60JXuxJWoIC6E0KAgAzGbCqpFmua393qv9+PoPJ33
- THPHcYy68HDPvee8v/e8zznvFIApEn8Octm4Zv6hQ1z7rbgRgE3X9S5jbDgYDDBJfB5er/flKGQU
- MEPBiqJAVVVLkiSh0+mgVqsJSLVahc/nsyDbwfsIQAs0TYNhGNDevIX29BnUxx50u13U63UB6Pf7
- oCR+v38LMg6gYCOdhnb1GgaeVajnL0CWZTQajT0lCU/GAea379AWFsHu3kJ/4TLUO/etUprNpthJ
- pVL5C4Ax6I/WwVbvoe9+AMazMvrHzSMI7YT8aLVakwHs8xdoS1eguC7CeJUBa3fEwkKhgEwmI+pP
- 8/Ly+fxkgP78BZj7NgYP3ZDn7FDXPGJhKpVCuVwW/tA7HA7vBawdPrJEmZl7hQc7IJ2YtwCxWEyU
- IgzmCgaDuwF157kDlVOnC+bKMmS7E8a79zA3PsEs/0Q8Hkc2m4VpmkLkB5URjUa3AMpZ1+uew/lV
- mnMw/cZ1qOtPrGOirKVSCclk0gKQQqGQOFYB6NnPKPKsfdNYvgnJdQnsV23XWRMkkUig3W6LMSkQ
- COyUIJ+ch3R8Fj+O2j6YHzc2J/VAsVgUEBpHIhHkcjkaDy0P/hh5jBuk0sQ4gO4AXSIa09b595Cv
- 7YnuHQFME+Q/2nlb1PrTvwGo2K3gWVH3FgAAAABJRU5ErkJggg==";
- $_IMAGES["avi"] = $_IMAGES["video"];
- $_IMAGES["bz2"] = $_IMAGES["archive"];
- $_IMAGES["c"] = "iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAAK/INwWK6QAAABl0RVh0
- U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAHdSURBVDjLjZNLS+NgFIad+R0KwuzcSQdd
- unTWXraKA4KCuFKcWYqgVbE4TKJWNyqC2oHKoDBeEBF04UpFUVQqUoemSVOTJr2lrb5+5xsTUy+j
- gYdc3yfnnOQrAVBCsK2U4WFUvUE546OTcwk82WxWz+fzt4VCAS/B7kMQhB9uiVtQReFkMolUKuWQ
- SCSgaRpkWeYSSZIgiqIjscMfSEAPZDIZWJbF94RpmtB1HYqicEE6nQa9xO/3/5OQoM57/qm2a3PG
- tyzDtxzF/FYMe6c6F1DAMAzEYrFnLfGZ1A9devqC8o2wpmL8jwJhRcbw7ygGAxJYS7xvuxVVVXkl
- kUjkUdAshgP+DRVfureXbPPcuoKe2b/QDKtIQpXQPOLx+KOgf0nGCCu9smHiu7u8IGuDBHRsS6gd
- mgmJHEHfLwn9wSgqagc6Xvt8RC6X48MlCeEI2ibDIS8TVDYGBHfAO3ONowvTOacqSEBQNY6gpvOk
- p3cxgq8/Q8ZxyISWsDAwfY32sSscnhk8SFAFBIWLBPQZq1sOvjX5LozOqTBaxSu0jF5iYVV+FnZT
- JLB/pN0DDTv7WlHvtuQpLwrYxbv/DfIJt47gQfKZDShFN94TZs+afPW6BGUkecdytqGlX3YPTr7m
- omspN0YAAAAASUVORK5CYII=";
- $_IMAGES["cab"] = $_IMAGES["archive"];
- $_IMAGES["cpp"] = "iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAAK/INwWK6QAAABl0RVh0
- U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAH/SURBVDjLjZPNaxNRFMWrf4cFwV13JVKX
- Luta61apIChIV0rblUqhjYpRcUaNboxIqxFTQgVti4hQQTe1C7FFSUmnmvmM85XJzCSpx3efzmTS
- RtqBw7yZ9+5v7rl3bg+AHhK7DjClmAZ20UGm/XFcApAKgsBqNptbrVYL3cT2IQjCnSQkCRig4Fqt
- Bs/zYtm2DdM0oaoqh8iyDFEUY0gUvI8AdMD3fYRhyO8k13VhWRY0TeOAer0O+kg2m/0LIcDx9LdD
- gxff5jJzKjJzCmbe6fi0anEABTiOA13Xd1jiNTlxfT01UVB/CfMG7r/WILxScaOo4FpeBrPEfUdW
- DMPgmVQqlTbgtCjls4sGjl16PxuRny5oGH3yA7oZoPjR4BDbqeHlksLrUa1W24DJWRU3Wer9Qw/G
- k+kVmA2lGuDKtMQzsVwfl6c3eE3IUgyYeCFjsqCgb3DqQhJwq/gTY7lyV61Jdhtw7qFUSjNA/8m8
- kASkc5tYXnN4BvTs1kO23uAdIksx4OjI19Grzys4c7fkfCm5MO0QU483cf5eGcurNq8BWfD8kK11
- HtwBoDYeGV4ZO5X57ow8knBWLGP49jqevVF5IKnRaOxQByD6kT6smFj6bHb0OoJsV1cAe/n7f3PQ
- RVsx4B/kMCuQRxt7CWZnXT69CUAvQfYwzpFo9Hv/AD332dKni9XnAAAAAElFTkSuQmCC";
- $_IMAGES["cs"] = "iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAAK/INwWK6QAAABl0RVh0
- U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAJOSURBVDjLjZPbaxNBFMarf4cFwb9AIgXB
- R18Enyw+i1gs4g01kphSlPjQeAtNzNqGNLVpNCGhEvBS21Rr0ZIK6ovFiKbNbXNpdpNsstncUz9n
- NiauErEDHwMz8/1mzjlz+gD0UZGxh0hFNPAf7SXa3fUpAKparVZoNpvbrVYLvUT2YbFYTEqIEjBA
- zZIkoVwud1UsFiEIAjKZjAxJp9NgGKYL6Zh3UQA9UK1WUa/X5ZmqVCqhUCiA4zgZUKlUQC+xWq1t
- CAUM3v6+74hu2cH4eUz6OcwFcvgYEmUANYiiiFF3Aq5XHIJRCeqHLOJbFcg5OW6Mqm495fL2NznY
- l7OwveYxsZSF6QUHEpIc9+eQgOvuFL6EMjC6wrg4GZZfIwOGbazX8TaPY/qAr5Ms72oOBt8WknwV
- em8KWmcCY0/S0E1HcXYyhjNMBAYH2waYF8izl3I4eGLqmjLjz9by+PRNxCMS0k0C0c+yMDjj0Mwm
- MOGJ4+Vqtg0Yn+dwf5HH/sG75/4uWzAiwbfCQ+dMYSGQxdhMHMPmMFY+8MgX623AiDu9+YAADg35
- LErzHU8SGkcSI4+T0DoSuGRnoZ5mcdIUwdC9zd85OHpjQzP+nMOVmZj4NSZBKNVh9LbN6xslnGai
- 8CxmMP+Ol81criwntgugZTysDmovTEXEUVcKV8lt520s5kjJvP4MTpkjyApVXCZmvTWKRqMh6w9A
- 5yO9Xy9ijUgZCi1lL/UEkMUf/+qDHtruAn5BDpAvXKYbOzGTsyW5exWAfgrZQTt3RFu//yfHVsX/
- fi5tjwAAAABJRU5ErkJggg==";
- $_IMAGES["css"] = $_IMAGES["code"];
- $_IMAGES["doc"] = $_IMAGES["textdocument"];
- $_IMAGES["docx"] = $_IMAGES["textdocument"];
- $_IMAGES["exe"] = "iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAQAAAC1+jfqAAAABGdBTUEAAK/INwWK6QAAABl0RVh0
- U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAEkSURBVCjPbdE9S0IBGIbhxxobWxP8D8r5
- I60RLg0NNTS21VBRQwg1aA4VOAWBpBVCFhKUtkVJtPQx9GFFWh49x3P0bvAjjsWzXrzvcAtpREEZ
- fQtoACEkpKBVdpouv7NYi3SJkAynWcXExKTCJ6+4PLPeIZJPhksdmzp1vilTwqVGlWhEgR6wsbGp
- U+OLt94rGfJ1gIOLi4OFSYV3Sjx5QXdtkiHFx//gjiwlTshyT5LV3T8gwy3HFLnhkCuWmB3qA0Uu
- 2WGOZVIUmN/ru5CiwAsLNLCI8cg+i3hAggMeiNOgwQbXRJnwghoX5DkiTow0OcLJ8HAbtLpkkzwJ
- CuTY4pQppgeFFLJNtxMrzSRFtlnhvDXO6Fk7ll8hb+wZxpChoPzoB6aiXIYcSLDWAAAAAElFTkSu
- QmCC";
- $_IMAGES["gz"] = $_IMAGES["archive"];
- $_IMAGES["gif"] = $_IMAGES["image"];
- $_IMAGES["h"] = "iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAAK/INwWK6QAAABl0RVh0
- U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAHtSURBVDjLjZNLS9xQFMe138C9A/0OynyB
- UjeFQjduROi2MMtCEalS0ToLEdQMdEShoKDWRymKigWxII7PhaB9aBFUJjHJpHlnnvbfe27NJcVI
- DfwIyT3nd885cOoA1BHsaWQ0MZL/4SHjgciLCJpKpZJVrVava7Ua4mDnkCRpKCqJCpKU7HkefN8X
- 2LYN0zShqiqXKIqCTCYjJGFyPQkooFgsolwu8zfhui4sy4KmaVwQBAHokmw2+1cSClpSUmr12MP7
- LQunii8klOA4DnRdv9USn0koePRiJDW+aTGBjcOLgAewlnjfYSuFQoFXIsvybQF9jG2avIKFPQtz
- OyZmcyZMtywkVAnNwzCMeMG7jV+YyFmQ1g30L2kYWitAWtZFJdQOzYREsYLhzwZGGF+OHez/9PD2
- k4aeeYUHVyoVPheSELGCwRUdA+zG/VMPeycu3iyo6J5WxDxIQFA1QtCauUwPrOpIPh/vSC+qSC/q
- PHn3u4uu2Su8nsrzZKqAoOR/BO2j+Q+DTPC0/2CdSu79qOLVlIyXk3l0zsjomJYxv6ELQYgQPOk7
- a2jpOnmcaG57tvuD3fzNxc5XB9sEm0XuyMb5VcCriBI7A/bz9117EMO1ENxImtmAfDq4TzKLdfn2
- RgQJktxjnUNo9RN/AFmTwlP7TY1uAAAAAElFTkSuQmCC";
- $_IMAGES["htm"] = $_IMAGES["webpage"];
- $_IMAGES["html"] = $_IMAGES["webpage"];
- $_IMAGES["iso"] = "iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAAK/INwWK6QAAABl0RVh0
- U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAIsSURBVDjLjZNfa9NQGIdnP4cDv8Nkn8PL
- 6UfwSgQZOoSBYkUvZLN1lMFArQyHrsIuWkE3ug2t1K3O0LXrZotdlzZp0qZp/qc9P8852qyyigs8
- F8nJ7znveZN3DMAYg14XKROUyf9wiRIKckOCCcdxNN/3+71eD6Og64hEInPDkmHBJAsbhgHTNAM6
- nQ7a7TYkSeKSer2OaDQaSAbhC7efJGY28gZWPrUQTyt4l2lCKLfR7XahaRpkWeYCy7LANonFYr8l
- qzt26PUXIxzf7pCfioeS5EI2fVQkG+GVH0hlRVqFjmazeeZIvCc0PBXf1ohu96GZBEnBQMMmcAjg
- eH3cWRKQyTf4URRF4ZWIongqoOFURXZpUEOt1YNm+BzDI6AeFKo6IqsF3g9d13k/VFU9FSytK9V8
- zUJiR0WbBh+/2cVich+trodvNQeFEwvTsa/8C7Dzs54wUSBYeN+ofq+ageDZmoBX64dQdRcbByaE
- qoGbTzPwPA+u63IJIxDMrR2nDkUTR6oPxSJ8ZxYuNlxsHtnYLal48DIH+om5gMGqCQSP3lam7i+X
- SMfp40AFsjWCrbKHdMlGpeng2uxHpHM1XgGDhf8S3Fsuhe4+3w9PL+6RvbKGguhAODaRLSq4OvsB
- L5JFvutAMCAQDH6kK9fnZyKJAm4tZHFj/jMexnPYzJ3w0kdxRsBu6EPyrzkYQT8Q/JFcpqWabOE8
- Yfpul0/vkGCcSc4xzgPY6I//AmC87eKq4rrzAAAAAElFTkSuQmCC";
- $_IMAGES["java"] = "iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAAK/INwWK6QAAABl0RVh0
- U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAIRSURBVDjLjZPJa1NRFIera/8ECy7dV7tx
- kb2UOoDgzo0R3YuLrFwWIVglWQRtN0GCLkIixJDJQJKGQOYBA4akmec5eSFT/XnPsXlNsWIffOTd
- d3O+e+6PezcAbBDiuS7YEmz/hxuCq3LdmmBrOp32F4vFyXK5xEWIeWg0mnfrknXBNhWPx2NIkiQz
- GAzQ6/XQaDRYUqvVoNVqZQkXGwyGm2q1+k00GkUkEkE4HEYwGGQCgQDS6TSKxSILJpMJaBGdTvdH
- YjKZHvp8vuNsNot6vc7QavRLq1UqFcTjcbhcLrmLFZyJ2+0u9Pt9hC1f8OHpDt4/uoO3928zmscK
- HD5/gKPPB8jn8yxpNpuoVqtnAqPRiOFwiPGgB/fhPr7uvcJH5S4Ont3Dp5dP8G3/NX4cfedCi8XC
- eXQ6nTOBzWaT5vM5J0yTFFy325WhtmkbhN1ux2g04gVlgcfj+UmDUqkEh8OBcrnM7xRaLpdDIpHg
- cSqVYihEYr0DL61O6fv9fhQKBd4vhUrpk6DdbsNsNrN8Nptxt7JApVK9EMW9TCbDEgqI2qUOSELv
- JPF6vbw9Kj4nEM81pVJ5V6/XH8diMQ6IaLVaLAmFQnA6nfyNslohC05P4RWFQrFLHVitVoYSF2cE
- yWSSgxOn9Bx/CWggPv761z24gBNZcCq5JQKSaOIyxeK/I769a4JNklziOq+gq7/5Gx172kZga+XW
- AAAAAElFTkSuQmCC";
- $_IMAGES["jpg"] = $_IMAGES["image"];
- $_IMAGES["jpeg"] = $_IMAGES["image"];
- $_IMAGES["js"] = "iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAAK/INwWK6QAAABl0RVh0
- U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAHdSURBVDjLjZNPaxNBGIdrLwURLznWgkcv
- IrQhRw9FGgy01IY0TVsQ0q6GFkT0kwjJId9AP4AHP4Q9FO2hJ7El2+yf7OzMbja7Sf0578QdNybF
- LjwszLu/Z2femZkDMEfI54FkRVL4Dw8l8zqXEawMBgM2HA6vR6MRZiHraDabH7KSrKBA4SAIEIah
- xvd9eJ6HbrerJKZpotVqaUkavkMC+iCKIsRxrN6EEAKMMViWpQT9fh/0k3a7PZZkBUPmqXAKCSjA
- OYdt21NLUj1JBYW7C6vi6BC8vKWKQXUXQcNA5Nh6KY7jqJl0Op1JwY/Hi7mLp/lT/uoA/OX2WLC3
- C9FoQBwfILKulIRmQv1wXfevwHmyuMPXS5Fv1MHrFSTmhSomnUvw/Spo3C+vg3/+pJZDPSGRFvil
- NV+8PUZvoziKvn+d3LZvJ/BelMDevIZXK2EQCiUhtMDM53bY5rOIGXtwjU3EVz/HM5Az8eplqPFK
- EfzLR91cOg8TPTgr3MudFx+d9owK7KMNVfQOtyQ1OO9qiHsWkiRRUHhKQLuwfH9+1XpfhVVfU0V3
- //k4zFwdzjIlSA/Sv8jTOZObBL9uugczuNaCP5K8bFBIhduE5bdC3d6MYIkkt7jOKXT1l34DkIu9
- e0agZjoAAAAASUVORK5CYII=";
- $_IMAGES["mov"] = $_IMAGES["video"];
- $_IMAGES["mp3"] = $_IMAGES["audio"];
- $_IMAGES["mp4"] = $_IMAGES["audio"];
- $_IMAGES["mpeg"] = $_IMAGES["video"];
- $_IMAGES["mpg"] = $_IMAGES["video"];
- $_IMAGES["odg"] = $_IMAGES["vectorgraphics"];
- $_IMAGES["odp"] = $_IMAGES["presentation"];
- $_IMAGES["ods"] = $_IMAGES["spreadsheet"];
- $_IMAGES["odt"] = $_IMAGES["textdocument"];
- $_IMAGES["pdf"] = "iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAAK/INwWK6QAAABl0RVh0
- U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAHhSURBVDjLjZPLSxtRFIfVZRdWi0oFBf+B
- rhRx5dKVYKG4tLhRqlgXPmIVJQiC60JCCZYqFHQh7rrQlUK7aVUUfCBRG5RkJpNkkswrM5NEf73n
- 6gxpHujAB/fOvefjnHM5VQCqCPa1MNoZnU/Qxqhx4woE7ZZlpXO53F0+n0c52Dl8Pt/nQkmhoJOC
- dUWBsvQJ2u4ODMOAwvapVAqSJHGJKIrw+/2uxAmuJgFdMDUVincSxvEBTNOEpmlIp9OIxWJckMlk
- oOs6AoHAg6RYYNs2kp4RqOvfuIACVFVFPB4vKYn3pFjAykDSOwVta52vqW6nlEQiwTMRBKGygIh9
- GEDCMwZH6EgoE+qHLMuVBdbfKwjv3yE6Ogjz/PQ/CZVDPSFRRYE4/RHy1y8wry8RGWGSqyC/nM1m
- eX9IQpQV2JKIUH8vrEgYmeAFwuPDCHa9QehtD26HBhCZnYC8ucGzKSsIL8wgsjiH1PYPxL+vQvm5
- B/3sBMLyIm7GhhCe90BaWykV/Gp+VR9oqPVe9vfBTsruM1HtBKVPmFIUNusBrV3B4ev6bsbyXlPd
- kbr/u+StHUkxruBPY+0KY8f38oWX/byvNAdluHNLeOxDB+uyQQfPCWZ3NT69BYJWkjxjnB1o9Fv/
- ASQ5s+ABz8i2AAAAAElFTkSuQmCC";
- $_IMAGES["php"] = "iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAAK/INwWK6QAAABl0RVh0
- U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAGsSURBVDjLjZNLSwJRFICtFv2AgggS2vQL
- DFvVpn0Pi4iItm1KItvWJqW1pYsRemyyNILARbZpm0WtrJ0kbmbUlHmr4+t0z60Z7oSSAx935txz
- vrlPBwA4EPKMEVwE9z+ME/qtOkbgqtVqUqPRaDWbTegE6YdQKBRkJazAjcWapoGu6xayLIMoilAo
- FKhEEAQIh8OWxCzuQwEmVKtVMAyDtoiqqiBJEhSLRSqoVCqAP+E47keCAvfU5sDQ8MRs/OYNtr1x
- 2PXdwuJShLLljcFlNAW5HA9khLYp0TUhSYMLHm7PLEDS7zyw3ybRqyfg+TyBtwl2sDP1nKWFiUSa
- zFex3tk45sXjL1Aul20CGTs+syVY37igBbwg03eMsfH9gwSsrZ+Doig2QZsdNiZmMkVrKmwc18az
- HKELyQrOMEHTDJp8HXu1hostG8dY8PiRngdWMEq467ZwbDxwlIR8XrQLcBvn5k9Gpmd8fn/gHlZW
- T20C/D4k8eTDB3yVFKjX6xSbgD1If8G970Q3QbvbPehAyxL8SibJEdaxo5dikqvS28sInCjp4Tqb
- 4NV3fgPirZ4pD4KS4wAAAABJRU5ErkJggg==";
- $_IMAGES["png"] = $_IMAGES["image"];
- $_IMAGES["pps"] = $_IMAGES["presentation"];
- $_IMAGES["ppsx"] = $_IMAGES["presentation"];
- $_IMAGES["ppt"] = $_IMAGES["presentation"];
- $_IMAGES["pptx"] = $_IMAGES["presentation"];
- $_IMAGES["psd"] = $_IMAGES["graphics"];
- $_IMAGES["rar"] = $_IMAGES["archive"];
- $_IMAGES["rb"] = "iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAAK/INwWK6QAAABl0RVh0
- U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAIESURBVDjLjZNPTxNBGIexid9CEr8DBr8C
- HEiMVoomJiQkxBIM3dgIiaIESJTGGpVtyXIzHhoM4SIe9KAnEi4clQtJEczWFrbdP93d7s7u/JwZ
- 7XYJBdnkyRxmfs/MvO9OD4AeDvuuMPoY/f/hKiMR5WKCvlarpRNCwiAI0A02D1mW38QlcUE/Dzeb
- Tdi2HWEYBhqNBqrVqpBUKhUUCoVI0g5f4gK+wHVdeJ4nRo5lWdB1HbVaTQgcxwHfRFGUvxIuCKYf
- zmqZyZ2wKIO8fQ3/1Uv4Sy/QWliAO/sU9qMZmFMS3HfvT1xJ1ITOZJ9RpQi6+RH0y2fQb19BP23C
- VhRo+TysXA71+XkcMIk6fAfHK6tQVfWEoESXngNra0C5DHZJYGMDZiaD35IEi41qOo3vc3MoJ1Oo
- j92HpmkdQZiVEsHUAzl88hjY3gYIAdbXYQ0MoDo4CH1kBHssvH8jCf3eGKzDXzBNsyNoF/HH7WSJ
- ZLPA7i6wtQVnaAhmKoXjxUX8vDkMY3Qcnm6IInJOCS4nEte9QhF+RhInIRMTcFhYvZWCcXcUPmsl
- 7w6H/w+nBFEb5SLc8TTo8jLq7M4m25mHfd8X8PC5AtHrXB5NdmwRrnfCcc4VCEnpA8jREasp6cpZ
- AnrWO+hCGAn+Sa6xAtl84iJhttYSrzcm6OWSCzznNvzp9/4BgwKvG3Zq1eoAAAAASUVORK5CYII=";
- $_IMAGES["sln"] = "iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAAK/INwWK6QAAABl0RVh0
- U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAJQSURBVDjLjZNvSBNxGMeX9O+FOAkaLbeh
- ozdGRGiMQqTIlEqJMIig3oxl0YxcgYt6FUZRryLYwpFWCr2wXgjBIMJMYhFjgZSiEXOg5c5N593u
- dne7u+2+3V3tT22SBx/uxe/5fu7uuefRAdCpKJdJoVHB9h9qFSryuSJBYzqdpiRJymYyGZRDOYfH
- 43lULCkW2NRwKpUCy7J5kskkSJJELBbTJARBwOv15iW58AZVoBbwPA9BELS7CsMwoCgK8XhcE3Ac
- B/UhPp/vtyQnGBi03pYXjyAbPQuRD2sSbmUFVN9NLJ5ux9DryZJP0nqiChzjl48Oh9oYRPTAXBVk
- sgnS0hRWu7uxXG/EfL0ZZ9yjGHgb1t4kGo0WBO6AvcUVsFP9oTZZjlQCP7ZA/r4JpHM3lup2Im6p
- RsRai2PX/GjoDWEk8BWJRKIg6P147mfP+CW63d16RUyOQP5SA6rLAsKyA0TNNizvM4D9/A4Tk2Ec
- 7nuPE0+vgqbpgqBnzLl6vv8N3+x4eEsS0mAvHAJhMoAw6kHUVUF4rkeWHAKXZtA15kDL6C6tkXmB
- ffiZs/P+NE7dC4pBhwsJY6USVjBtBO/bCswrbfq2GS+Ce9DwyooHoRvaPPzVxI67IVfHnQA+2JqQ
- MFQgur0anP8J5IVmYEopmdbh5YQO1wMu0BxdKlB/44GLg48/HT8J8uBesH6/ViDxC5DnWiHPWjAz
- 0wleYCGKokaJIDdI/6JMZ1nWEshr7UEZsnnBH8l+ZfpY9WA9YaWW0ba3SGBWJetY5xzq6pt/AY6/
- mKmzshF5AAAAAElFTkSuQmCC";
- $_IMAGES["sql"] = $_IMAGES["database"];
- $_IMAGES["tar"] = $_IMAGES["archive"];
- $_IMAGES["tgz"] = $_IMAGES["archive"];
- $_IMAGES["txt"] = "iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAQAAAC1+jfqAAAABGdBTUEAAK/INwWK6QAAABl0RVh0
- U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAADoSURBVBgZBcExblNBGAbA2ceegTRBuIKO
- giihSZNTcC5LUHAihNJR0kGKCDcYJY6D3/77MdOinTvzAgCw8ysThIvn/VojIyMjIyPP+bS1sUQI
- V2s95pBDDvmbP/mdkft83tpYguZq5Jh/OeaYh+yzy8hTHvNlaxNNczm+la9OTlar1UdA/+C2A4tr
- RCnD3jS8BB1obq2Gk6GU6QbQAS4BUaYSQAf4bhhKKTFdAzrAOwAxEUAH+KEM01SY3gM6wBsEAQB0
- gJ+maZoC3gI6iPYaAIBJsiRmHU0AALOeFC3aK2cWAACUXe7+AwO0lc9eTHYTAAAAAElFTkSuQmCC";
- $_IMAGES["wav"] = $_IMAGES["audio"];
- $_IMAGES["wma"] = $_IMAGES["audio"];
- $_IMAGES["wmv"] = $_IMAGES["video"];
- $_IMAGES["xcf"] = $_IMAGES["graphics"];
- $_IMAGES["xls"] = $_IMAGES["spreadsheet"];
- $_IMAGES["xlsx"] = $_IMAGES["spreadsheet"];
- $_IMAGES["xml"] = $_IMAGES["code"];
- $_IMAGES["zip"] = $_IMAGES["archive"];
- /***************************************************************************/
- /* HERE COMES THE CODE. */
- /* DON'T CHANGE UNLESS YOU KNOW WHAT YOU ARE DOING ;) */
- /***************************************************************************/
- //
- // The class that displays images (icons and thumbnails)
- //
- class ImageServer
- {
- //
- // Checks if an image is requested and displays one if needed
- //
- public static function showImage()
- {
- global $_IMAGES;
- if(isset($_GET['img']))
- {
- if(strlen($_GET['img']) > 0)
- {
- $mtime = gmdate('r', filemtime($_SERVER['SCRIPT_FILENAME']));
- $etag = md5($mtime.$_SERVER['SCRIPT_FILENAME']);
-
- if ((isset($_SERVER['HTTP_IF_MODIFIED_SINCE']) && $_SERVER['HTTP_IF_MODIFIED_SINCE'] == $mtime)
- || (isset($_SERVER['HTTP_IF_NONE_MATCH']) && str_replace('"', '', stripslashes($_SERVER['HTTP_IF_NONE_MATCH'])) == $etag))
- {
- header('HTTP/1.1 304 Not Modified');
- return true;
- }
- else {
- header('ETag: "'.$etag.'"');
- header('Last-Modified: '.$mtime);
- header('Content-type: image/gif');
- if(isset($_IMAGES[$_GET['img']]))
- print base64_decode($_IMAGES[$_GET['img']]);
- else
- print base64_decode($_IMAGES["unknown"]);
- }
- }
- return true;
- }
- else if(isset($_GET['thumb']))
- {
- if(strlen($_GET['thumb']) > 0 && EncodeExplorer::getConfig('thumbnails') == true)
- {
- ImageServer::showThumbnail($_GET['thumb']);
- }
- return true;
- }
- return false;
- }
-
- public static function isEnabledPdf()
- {
- if(class_exists("Imagick"))
- return true;
- return false;
- }
-
- public static function openPdf($file)
- {
- if(!ImageServer::isEnabledPdf())
- return null;
-
- $im = new Imagick($file.'[0]');
- $im->setImageFormat( "png" );
- $str = $im->getImageBlob();
- $im2 = imagecreatefromstring($str);
- return $im2;
- }
-
- //
- // Creates and returns a thumbnail image object from an image file
- //
- public static function createThumbnail($file)
- {
- if(is_int(EncodeExplorer::getConfig('thumbnails_width')))
- $max_width = EncodeExplorer::getConfig('thumbnails_width');
- else
- $max_width = 200;
-
- if(is_int(EncodeExplorer::getConfig('thumbnails_height')))
- $max_height = EncodeExplorer::getConfig('thumbnails_height');
- else
- $max_height = 200;
- if(File::isPdfFile($file))
- $image = ImageServer::openPdf($file);
- else
- $image = ImageServer::openImage($file);
- if($image == null)
- return;
-
- imagealphablending($image, true);
- imagesavealpha($image, true);
-
- $width = imagesx($image);
- $height = imagesy($image);
-
- $new_width = $max_width;
- $new_height = $max_height;
- if(($width/$height) > ($new_width/$new_height))
- $new_height = $new_width * ($height / $width);
- else
- $new_width = $new_height * ($width / $height);
-
- if($new_width >= $width && $new_height >= $height)
- {
- $new_width = $width;
- $new_height = $height;
- }
-
- $new_image = ImageCreateTrueColor($new_width, $new_height);
- imagealphablending($new_image, true);
- imagesavealpha($new_image, true);
- $trans_colour = imagecolorallocatealpha($new_image, 0, 0, 0, 127);
- imagefill($new_image, 0, 0, $trans_colour);
-
- imagecopyResampled ($new_image, $image, 0, 0, 0, 0, $new_width, $new_height, $width, $height);
-
- return $new_image;
- }
-
- //
- // Function for displaying the thumbnail.
- // Includes attempts at cacheing it so that generation is minimised.
- //
- public static function showThumbnail($file)
- {
- if(filemtime($file) < filemtime($_SERVER['SCRIPT_FILENAME']))
- $mtime = gmdate('r', filemtime($_SERVER['SCRIPT_FILENAME']));
- else
- $mtime = gmdate('r', filemtime($file));
-
- $etag = md5($mtime.$file);
-
- if ((isset($_SERVER['HTTP_IF_MODIFIED_SINCE']) && $_SERVER['HTTP_IF_MODIFIED_SINCE'] == $mtime)
- || (isset($_SERVER['HTTP_IF_NONE_MATCH']) && str_replace('"', '', stripslashes($_SERVER['HTTP_IF_NONE_MATCH'])) == $etag))
- {
- header('HTTP/1.1 304 Not Modified');
- return;
- }
- else
- {
- header('ETag: "'.$etag.'"');
- header('Last-Modified: '.$mtime);
- header('Content-Type: image/png');
- $image = ImageServer::createThumbnail($file);
- imagepng($image);
- }
- }
-
- //
- // A helping function for opening different types of image files
- //
- public static function openImage ($file)
- {
- $size = getimagesize($file);
- switch($size["mime"])
- {
- case "image/jpeg":
- $im = imagecreatefromjpeg($file);
- break;
- case "image/gif":
- $im = imagecreatefromgif($file);
- break;
- case "image/png":
- $im = imagecreatefrompng($file);
- break;
- default:
- $im=null;
- break;
- }
- return $im;
- }
- }
- //
- // The class for logging user activity
- //
- class Logger
- {
- public static function log($message)
- {
- global $encodeExplorer;
- if(strlen(EncodeExplorer::getConfig('log_file')) > 0)
- {
- if(Location::isFileWritable(EncodeExplorer::getConfig('log_file')))
- {
- $message = "[" . date("Y-m-d h:i:s", mktime()) . "] ".$message." (".$_SERVER["HTTP_USER_AGENT"].")\n";
- error_log($message, 3, EncodeExplorer::getConfig('log_file'));
- }
- else
- $encodeExplorer->setErrorString("log_file_permission_error");
- }
- }
-
- public static function logAccess($path, $isDir)
- {
- $message = $_SERVER['REMOTE_ADDR']." ".GateKeeper::getUserName()." accessed ";
- $message .= $isDir?"dir":"file";
- $message .= " ".$path;
- Logger::log($message);
- }
-
- public static function logQuery()
- {
- if(isset($_POST['log']) && strlen($_POST['log']) > 0)
- {
- Logger::logAccess($_POST['log'], false);
- return true;
- }
- else
- return false;
- }
-
- public static function logCreation($path, $isDir)
- {
- $message = $_SERVER['REMOTE_ADDR']." ".GateKeeper::getUserName()." created ";
- $message .= $isDir?"dir":"file";
- $message .= " ".$path;
- Logger::log($message);
- }
-
- public static function emailNotification($path, $isFile)
- {
- if(strlen(EncodeExplorer::getConfig('upload_email')) > 0)
- {
- $message = "This is a message to let you know that ".GateKeeper::getUserName()." ";
- $message .= ($isFile?"uploaded a new file":"created a new directory")." in Encode Explorer.\n\n";
- $message .= "Path : ".$path."\n";
- $message .= "IP : ".$_SERVER['REMOTE_ADDR']."\n";
- mail(EncodeExplorer::getConfig('upload_email'), "Upload notification", $message);
- }
- }
- }
- //
- // The class controls logging in and authentication
- //
- class GateKeeper
- {
- public static function init()
- {
- global $encodeExplorer;
- if(strlen(EncodeExplorer::getConfig("session_name")) > 0)
- session_name(EncodeExplorer::getConfig("session_name"));
-
- if(count(EncodeExplorer::getConfig("users")) > 0)
- session_start();
- else
- return;
-
- if(isset($_GET['logout']))
- {
- $_SESSION['ee_user_name'] = null;
- $_SESSION['ee_user_pass'] = null;
- }
-
- if(isset($_POST['user_pass']) && strlen($_POST['user_pass']) > 0)
- {
- if(GateKeeper::isUser((isset($_POST['user_name'])?$_POST['user_name']:""), $_POST['user_pass']))
- {
- $_SESSION['ee_user_name'] = isset($_POST['user_name'])?$_POST['user_name']:"";
- $_SESSION['ee_user_pass'] = $_POST['user_pass'];
-
- $addr = $_SERVER['PHP_SELF'];
- if(isset($_GET['m']))
- $addr .= "?m";
- else if(isset($_GET['s']))
- $addr .= "?s";
- header( "Location: ".$addr);
- }
- else
- $encodeExplorer->setErrorString("wrong_pass");
- }
- }
-
- public static function isUser($userName, $userPass)
- {
- foreach(EncodeExplorer::getConfig("users") as $user)
- {
- if($user[1] == $userPass)
- {
- if(strlen($userName) == 0 || $userName == $user[0])
- {
- return true;
- }
- }
- }
- return false;
- }
-
- public static function isLoginRequired()
- {
- if(EncodeExplorer::getConfig("require_login") == false){
- return false;
- }
- return true;
- }
-
- public static function isUserLoggedIn()
- {
- if(isset($_SESSION['ee_user_name']) && isset($_SESSION['ee_user_pass']))
- {
- if(GateKeeper::isUser($_SESSION['ee_user_name'], $_SESSION['ee_user_pass']))
- return true;
- }
- return false;
- }
-
- public static function isAccessAllowed()
- {
- if(!GateKeeper::isLoginRequired() || GateKeeper::isUserLoggedIn())
- return true;
- return false;
- }
-
- public static function isUploadAllowed(){
- if(EncodeExplorer::getConfig("upload_enable") == true && GateKeeper::isUserLoggedIn() == true && GateKeeper::getUserStatus() == "admin")
- return true;
- return false;
- }
-
- public static function isNewdirAllowed(){
- if(EncodeExplorer::getConfig("newdir_enable") == true && GateKeeper::isUserLoggedIn() == true && GateKeeper::getUserStatus() == "admin")
- return true;
- return false;
- }
-
- public static function isDeleteAllowed(){
- if(EncodeExplorer::getConfig("delete_enable") == true && GateKeeper::isUserLoggedIn() == true && GateKeeper::getUserStatus() == "admin")
- return true;
- return false;
- }
-
- public static function getUserStatus(){
- if(GateKeeper::isUserLoggedIn() == true && EncodeExplorer::getConfig("users") != null && is…
Large files files are truncated, but you can click here to view the full file