kartero.org

kartero.org

Git

This commit has been accessed 16 times via Git panel.

commit 3e7f70d0ffacde4a88e40cc981192ac899f22423
tree bdab3800b728268965ebb73693cd7f835724493f
parent 9152992e8ba5f9213e2a9c46b93db7cff3be730b
author Engels Antonio <engels@majcms.org> 1333690674 +0800
committer Engels Antonio <engels@majcms.org> 1333690674 +0800

    Improve extraction of mail attachments

diff --git a/core.php b/core.php
index 1c570f8..791b31f 100644
--- a/core.php
+++ b/core.php
@@ -75,6 +75,9 @@ function HumanReadableFilesize($size) {
     return round($size, 2) . ' ' . $units[$i];
 }
 
+
+// cleong@organic.com
+
 function get_mime_type(&$struct) {
       
        $primary_mime_type = array("TEXT", "MULTIPART","MESSAGE", "APPLICATION", "AUDIO", "IMAGE", "VIDEO", "OTHER");
@@ -190,11 +193,141 @@ function is_image($path) {
        $image_type = $a[2];
 
        if (in_array($image_type, array(IMAGETYPE_GIF, IMAGETYPE_JPEG, IMAGETYPE_PNG , IMAGETYPE_BMP))) {
-
                return true;
        }
 
        return false;
 }
 
+
+// chris@isavvy.co.nz
+
+class EmailMessage {
+
+       protected $connection;
+       protected $messageNumber;
+      
+       public $attachments;
+      
+       public $getAttachments = true;
+      
+       public function __construct($connection, $messageNumber) {
+      
+               $this->connection = $connection;
+               $this->messageNumber = $messageNumber;
+       }
+
+       public function fetch() {
+              
+               $structure = @imap_fetchstructure($this->connection, $this->messageNumber);
+
+               if (!$structure) {
+                       return false;
+               }
+               else {
+                       $this->recurse($structure->parts);
+                       return true;
+               }
+              
+       }
+      
+       public function recurse($messageParts, $prefix = '', $index = 1, $fullPrefix = true) {
+
+               foreach ($messageParts as $part) {
+                      
+                       $partNumber = $prefix . $index;
+
+                       if ($part->type == 2) {
+
+                               $msg = new EmailMessage($this->connection, $this->messageNumber);
+                               $msg->getAttachments = $this->getAttachments;
+                               $msg->recurse($part->parts, $partNumber.'.', 0, false);
+
+                               $this->attachments[] = array(
+                                       'type' => $part->type,
+                                       'subtype' => $part->subtype,
+                                       'filename' => '',
+                                       'data' => $msg,
+                                       'inline' => false,
+                               );
+                       }
+                       elseif (isset($part->parts)) {
+
+                               if ($fullPrefix) {
+                                       $this->recurse($part->parts, $prefix.$index.'.');
+                               }
+                               else {
+                                       $this->recurse($part->parts, $prefix);
+                               }
+                       }
+                       elseif ($part->type > 2) {
+
+                               if (isset($part->id)) {
+
+                                       $id = str_replace(array('<', '>'), '', $part->id);
+
+                                       $this->attachments[$id] = array(
+                                               'type' => $part->type,
+                                               'subtype' => $part->subtype,
+                                               'filename' => $this->getFilenameFromPart($part),
+                                               'data' => $this->getAttachments ? $this->getPart($partNumber, $part->encoding) : '',
+                                               'inline' => true,
+                                       );
+                               }
+                               else {
+                                       $this->attachments[] = array(
+                                               'type' => $part->type,
+                                               'subtype' => $part->subtype,
+                                               'filename' => $this->getFilenameFromPart($part),
+                                               'data' => $this->getAttachments ? $this->getPart($partNumber, $part->encoding) : '',
+                                               'inline' => false,
+                                       );
+                               }
+                       }
+                       $index++;
+               }
+       }
+      
+       function getPart($partNumber, $encoding) {
+
+               $data = imap_fetchbody($this->connection, $this->messageNumber, $partNumber);
+
+               switch($encoding) {
+
+                       case 0: return $data; // 7BIT
+                       case 1: return $data; // 8BIT
+                       case 2: return $data; // BINARY
+                       case 3: return base64_decode($data); // BASE64
+                       case 4: return quoted_printable_decode($data); // QUOTED_PRINTABLE
+                       case 5: return $data; // OTHER
+               }
+       }
+      
+       function getFilenameFromPart($part) {
+
+               $filename = '';
+
+               if ($part->ifdparameters) {
+
+                       foreach ($part->dparameters as $object) {
+
+                               if (strtolower($object->attribute) == 'filename') {
+                                       $filename = $object->value;
+                               }
+                       }
+               }
+
+               if (!$filename && $part->ifparameters) {
+
+                       foreach ($part->parameters as $object) {
+
+                               if (strtolower($object->attribute) == 'name') {
+                                       $filename = $object->value;
+                               }
+                       }
+               }
+               return $filename;
+       }
+}
+
 ?>
diff --git a/folders.php b/folders.php
index d351752..f04cb1d 100644
--- a/folders.php
+++ b/folders.php
@@ -27,7 +27,6 @@ if (!isset($_POST['get']) and !isset($_POST['rep'])) {
                         echo "<input type=\"hidden\" name=\"imap_search_where\" value=\"{$_POST['imap_search_where']}\">";
                 }
 
-               //echo "<tr><td width=\"32\"><input type=\"image\" src=\"images/mail-next.png\"></td><td>Prev $mbox_ppg Msgs</td></tr>";
                echo "<tr><td width=\"32\"><input type=\"image\" src=\"images/mail-next.png\"></td><td>Prev</td></tr>";
                echo "</form>";
        }
@@ -49,7 +48,6 @@ if (!isset($_POST['get']) and !isset($_POST['rep'])) {
                        echo "<input type=\"hidden\" name=\"imap_search_where\" value=\"{$_POST['imap_search_where']}\">";
                }
 
-               //echo "<tr><td width=\"32\"><input type=\"image\" src=\"images/mail-prev.png\"></td><td>Next $mbox_ppg Msgs</td></tr>";
                echo "<tr><td width=\"32\"><input type=\"image\" src=\"images/mail-prev.png\"></td><td>Next</td></tr>";
                echo "</form>";
        }
diff --git a/preload.php b/preload.php
index 9f1ae4f..8df500c 100644
--- a/preload.php
+++ b/preload.php
@@ -1,21 +1,9 @@
-<img src="images/ajax-loader.gif">
-<img src="images/attach.png">
-<img src="images/disable.png">
-<img src="images/enable.png">
-<img src="images/file.png">
-<img src="images/folder-close.png">
-<img src="images/folder-open.png">
-<img src="images/mail-forward.png">
-<img src="images/mail-new.png">
-<img src="images/mail-next.png">
-<img src="images/mail-prev.png">
-<img src="images/mail-read.png">
-<img src="images/mail-replied.png">
-<img src="images/mail-reply-all.png">
-<img src="images/mail-reply.png">
-<img src="images/mail-search.png">
-<img src="images/mail-settings.png">
-<img src="images/mail-unread.png">
-<img src="images/trashcan_empty.png">
-<img src="images/trashcan_full.png">
-<img src="images/trashcan_purge.png">
+<?php
+
+$preload_images = glob("images/{*.gif,*.jpg,*.png}",GLOB_BRACE);
+
+foreach ($preload_images as $preload_image) {
+       echo "<img src=\"$preload_image\">";
+}
+
+?>
diff --git a/read.php b/read.php
index 6b71992..2ba6b31 100644
--- a/read.php
+++ b/read.php
@@ -292,101 +292,58 @@ if (isset($_POST['msg']) and !empty($_POST['msg']) and is_numeric($_POST['msg'])
 
        $filePath = "attach/o/$fileUsr/$fileDir";
 
-       $struct = imap_fetchstructure($mbox, $msgno, FT_UID);
+       $emailMessage = new EmailMessage($mbox, imap_msgno($mbox,$msgno));
+       $emailMessage->fetch();
 
-       $contentParts = count($struct->parts);
+       if (count($emailMessage->attachments > 0)) {
 
-       for ($n = 0; $n <= $contentParts; $n++) {
-      
-               $contentPart = imap_bodystruct($mbox,imap_msgno($mbox,$msgno),$n);
-
-               if (($contentPart->disposition == "attachment") or ($contentPart->disposition == "inline")) {
-      
-                       if ($contentPart->bytes > 0) {
-      
-                               $contentDP = $contentPart->dparameters;
-      
-                               if ($contentDP[0]->attribute == "filename") {
-      
-                                       $fileName = $contentDP[0]->value;
-                                       $fileName = preg_replace("/[^a-z0-9_\-\.]/i","",$fileName);
-                      
-                                       $fileContent = base64_decode(imap_fetchbody($mbox,$msgno,$n,FT_UID));
-      
-                                       if (!file_exists($filePath)) {
-                                               mkdir($filePath,0700,1);
-                                       }
-      
-                                       if (!file_exists("$filePath/$fileName")) {
-                                               file_put_contents("$filePath/$fileName",$fileContent);
-                                       }
-                               }
-                       }
+               if (!file_exists($filePath)) {
+                       mkdir($filePath,0700,1);
                }
+      
+               foreach ($emailMessage->attachments as $key => $attachment) {
 
-                if (($contentPart->subtype == "GIF") or ($contentPart->subtype == "JPEG") or ($contentPart->subtype == "PNG")) {
-
-                        if ($contentPart->bytes > 0) {
-
-                                $contentDP = $contentPart->parameters;
+                       $fileContent = $attachment[data];
 
-                                if ($contentDP[0]->attribute == "name") {
+                       if (($fileContent != "") and (($attachment[inline] == 1) or ($attachment[filename] == ""))) {
+                               $fileName = $key;
+                       }      
+                       else {
+                               $fileName = $attachment[filename];
+                       }
 
-                                        $fileName = $contentDP[0]->value;
-                                        $fileName = preg_replace("/[^a-z0-9_\-\.]/i","",$fileName);
+                       if (!file_exists("$filePath/$fileName")) {
+                               file_put_contents("$filePath/$fileName",$fileContent);
+                       }
+               }
+       }
 
-                                        $fileContent = base64_decode(imap_fetchbody($mbox,$msgno,$n,FT_UID));
+       $bodyTEXT = get_part($mbox, $msgno, "TEXT/PLAIN");
+       $bodyHTML = get_part($mbox, $msgno, "TEXT/HTML");
 
-                                        if (!file_exists($filePath)) {
-                                                mkdir($filePath,0700,1);
-                                        }
+       if ($bodyHTML != "") {
 
-                                        if (!file_exists("$filePath/$fileName")) {
-                                                file_put_contents("$filePath/$fileName",$fileContent);
-                                        }
+               $msgBody = $bodyHTML;
 
-                                       if (!is_image("$filePath/$fileName")) {
-                                               unlink("$filePath/$fileName");
-                                       }
-                                }
-                        }
-                }
-       }
+               if (stristr($msgBody,'src="cid:')) {
+                       $msgBody = str_ireplace('src="cid:',"src=\"$filePath/",$msgBody);
+               }
 
-       $dataTxt = get_part($mbox, $msgno, "TEXT/PLAIN");
-       $dataHtml = get_part($mbox, $msgno, "TEXT/HTML");
-  
-       if ($dataHtml != "") {
-               $msgBody = $dataHtml;
+               if (stristr($msgBody,'src=cid:')) {
+                       $msgBody = str_ireplace('src=cid:',"src=$filePath/",$msgBody);
+               }
        }
        else {
-               $msgBody = trim($dataTxt);
-               $msgBody = ereg_replace("\n","<br>",$msgBody);
+               $msgBody = trim($bodyTEXT);
+               $msgBody = nl2br($msgBody);
                $msgBody = preg_replace("/([^\w\/])(www\.[a-z0-9\-]+\.[a-z0-9\-]+)/i","$1http://$2",$msgBody);
                $msgBody = preg_replace("/([\w]+:\/\/[\w-?&;#~=\.\/\@]+[\w\/])/i","<a target=\"_blank\" href=\"$1\">$1</a>",$msgBody);
                $msgBody = preg_replace("/([\w-?&;#~=\.\/]+\@(\[?)[a-zA-Z0-9\-\.]+\.([a-zA-Z]{2,3}|[0-9]{1,3})(\]?))/i","<a href=\"mailto:$1\">$1</a>",$msgBody);
        }
 
-       // http://www.phpclasses.org/discuss/package/3324/thread/11/
-      
-       if (stristr($msgBody,'src="cid:')) {
-      
-               $cid_pass1 = '/src="cid:(.*?)"/si';
-               preg_match($cid_pass1,$msgBody,$cid_out1);
-      
-               $cid_pass2 = '/@(.*?)"/si';
-               preg_match($cid_pass2,$cid_out1[0],$cid_out2);
-      
-               $msgBody = str_ireplace($cid_out2[0],'"',$msgBody);
-               $msgBody = str_ireplace('src="cid:',"src=\"$filePath/",$msgBody);
-       }
-
        $msgBody = mb_convert_encoding($msgBody,"UTF-8","auto");
        $msgBody = mb_convert_encoding($msgBody,"UTF-8","UTF-8");
 
-//echo nl2br(htmlentities(imap_fetchheader($mbox,$msgno,FT_UID)));
-//echo nl2br(htmlentities(imap_body($mbox,$msgno,FT_UID)));
-
        $get_fromaddress = extract_emails_from($header->fromaddress);
        $get_fromaddress = explode("@",$get_fromaddress[0]);
 
 
filedropkartero.git-41992ae.tar.bz2 new
412.12 KB
697 downloads
filedropkartero.git-41992ae.zip
448.41 KB
605 downloads
filedropkartero.git-b404ba2.tar.bz2
411.70 KB
201 downloads
filedropkartero.git-b404ba2.zip
447.96 KB
263 downloads
filedropkartero.git-a7684d9.tar.bz2
411.72 KB
242 downloads
filedropkartero.git-a7684d9.zip
447.96 KB
268 downloads
filedropkartero.git-83512be.tar.bz2
410.26 KB
227 downloads
filedropkartero.git-83512be.zip
445.30 KB
247 downloads
filedropkartero.git-1954b25.tar.bz2
410.21 KB
238 downloads
filedropkartero.git-1954b25.zip
445.30 KB
251 downloads
filedropkartero.git-2f7c910.tar.bz2
410.25 KB
226 downloads
filedropkartero.git-2f7c910.zip
445.29 KB
264 downloads
filedropkartero.git-6317ffb.tar.bz2
410.40 KB
249 downloads
filedropkartero.git-6317ffb.zip
445.28 KB
264 downloads
filedropkartero.git-60ccd7a.tar.bz2
410.40 KB
247 downloads
filedropkartero.git-60ccd7a.zip
445.20 KB
252 downloads
filedropkartero.git-ea6f885.tar.bz2
410.47 KB
238 downloads
filedropkartero.git-ea6f885.zip
445.26 KB
243 downloads
filedropkartero.git-7f580e5.zip
445.17 KB
260 downloads
filedropkartero.git-7f580e5.tar.bz2
410.18 KB
246 downloads
filedropkartero.git-b9364de.tar.bz2
409.41 KB
282 downloads
filedropkartero.git-b9364de.zip
444.09 KB
271 downloads
filedropkartero.git-e9bcd78.zip
444.03 KB
263 downloads
filedropkartero.git-e9bcd78.tar.bz2
409.39 KB
250 downloads
filedropkartero.git-96c60ff.tar.bz2
407.96 KB
259 downloads
filedropkartero.git-96c60ff.zip
441.87 KB
267 downloads
filedropkartero.git-4357b59.tar.bz2
407.17 KB
274 downloads
filedropkartero.git-4357b59.zip
440.69 KB
281 downloads
filedropkartero.git-c6ff319.tar.bz2
407.28 KB
281 downloads
filedropkartero.git-c6ff319.zip
440.70 KB
272 downloads
filedropkartero.git-8b87a29.tar.bz2
407.27 KB
269 downloads
filedropkartero.git-8b87a29.zip
440.71 KB
285 downloads
filedropkartero.git-ee42942.tar.bz2
406.49 KB
240 downloads
filedropkartero.git-ee42942.zip
439.92 KB
267 downloads
filedropkartero.git-867e7e6.tar.bz2
406.75 KB
265 downloads
filedropkartero.git-867e7e6.zip
440.03 KB
274 downloads
filedropkartero.git-3f3fc02.tar.bz2
406.38 KB
262 downloads
filedropkartero.git-3f3fc02.zip
439.71 KB
301 downloads
filedropkartero.git-b6f779d.tar.bz2
406.55 KB
293 downloads
filedropkartero.git-b6f779d.zip
440.00 KB
271 downloads
filedropkartero.git-83f24b0.zip
439.12 KB
253 downloads
filedropkartero.git-52316ec.tar.bz2
406.17 KB
255 downloads
filedropkartero.git-52316ec.zip
439.18 KB
277 downloads
filedropkartero.git-83f24b0.tar.bz2
405.84 KB
252 downloads
filedropkartero.git-8a42d47.tar.bz2
405.73 KB
253 downloads
filedropkartero.git-8a42d47.zip
439.02 KB
251 downloads
filedropkartero.git-830c9cb.tar.bz2
406.08 KB
257 downloads
filedropkartero.git-830c9cb.zip
439.08 KB
257 downloads
filedropkartero.git-ebec1be.tar.bz2
406.16 KB
254 downloads
filedropkartero.git-ebec1be.zip
439.09 KB
287 downloads
filedropkartero.git-7c0b70f.tar.bz2
402.43 KB
249 downloads
filedropkartero.git-7c0b70f.zip
435.91 KB
251 downloads
filedropkartero.git-80edc03.tar.bz2
402.75 KB
261 downloads
filedropkartero.git-80edc03.zip
435.84 KB
264 downloads
filedropkartero.git-b408c23.tar.bz2
402.19 KB
253 downloads
filedropkartero.git-b408c23.zip
435.59 KB
269 downloads
filedropkartero.git-29c0e1f.tar.bz2
401.84 KB
258 downloads
filedropkartero.git-29c0e1f.zip
435.25 KB
279 downloads
filedropkartero.git-9086094.tar.bz2
401.94 KB
260 downloads
filedropkartero.git-9086094.zip
435.34 KB
279 downloads
filedropkartero.git-47ca624.tar.bz2
402.10 KB
261 downloads
filedropkartero.git-47ca624.zip
435.51 KB
249 downloads
filedropkartero.git-81314a5.zip
435.53 KB
268 downloads
filedropkartero.git-81314a5.tar.bz2
402.25 KB
256 downloads
filedropkartero.git-cae7074.zip
435.20 KB
265 downloads
filedropkartero.git-cae7074.tar.bz2
401.98 KB
275 downloads
filedropkartero.git-cc68e56.tar.bz2
402.07 KB
261 downloads
filedropkartero.git-cc68e56.zip
435.16 KB
292 downloads
filedropkartero.git-230f35d.tar.bz2
401.43 KB
245 downloads
filedropkartero.git-230f35d.zip
434.68 KB
283 downloads
filedropkartero.git-5ae58a2.tar.bz2
401.54 KB
248 downloads
filedropkartero.git-5ae58a2.zip
434.68 KB
252 downloads
filedropkartero.git-a591f4b.tar.bz2
401.76 KB
249 downloads
filedropkartero.git-a591f4b.zip
435.17 KB
259 downloads
filedropkartero.git-36876c8.tar.bz2
400.44 KB
247 downloads
filedropkartero.git-36876c8.zip
432.36 KB
285 downloads
filedropkartero.git-a34c9ed.tar.bz2
400.57 KB
270 downloads
filedropkartero.git-a34c9ed.zip
432.27 KB
272 downloads
filedropkartero.git-e828148.zip
433.58 KB
255 downloads
filedropkartero.git-e828148.tar.bz2
400.88 KB
257 downloads
filedropkartero.git-476cdda.tar.bz2
400.60 KB
287 downloads
filedropkartero.git-476cdda.zip
432.26 KB
267 downloads
filedropkartero.git-054c286.tar.bz2
98.09 KB
312 downloads
filedropkartero.git-054c286.zip
109.53 KB
324 downloads
filedropkartero.git-071b099.tar.bz2
98.76 KB
314 downloads
filedropkartero.git-071b099.zip
110.21 KB
325 downloads
filedropkartero.git-551c38d.tar.bz2
98.51 KB
322 downloads
filedropkartero.git-551c38d.zip
110.20 KB
314 downloads
filedropkartero.git-569dc0c.tar.bz2
98.40 KB
317 downloads
filedropkartero.git-569dc0c.zip
109.86 KB
305 downloads
filedropkartero.git-58a052b.tar.bz2
97.95 KB
313 downloads
filedropkartero.git-58a052b.zip
109.36 KB
319 downloads
filedropkartero.git-43a5af3.tar.bz2
97.80 KB
308 downloads
filedropkartero.git-43a5af3.zip
109.30 KB
315 downloads
filedropkartero.git-bbe069d.tar.bz2
98.03 KB
318 downloads
filedropkartero.git-bbe069d.zip
109.19 KB
322 downloads
filedropkartero.git-02f97e1.tar.bz2
97.76 KB
288 downloads
filedropkartero.git-02f97e1.zip
109.24 KB
412 downloads
filedropkartero.git-d82e393.tar.bz2
97.74 KB
308 downloads
filedropkartero.git-d82e393.zip
109.24 KB
321 downloads
filedropkartero.git-7cdd1f5.tar.bz2
98.03 KB
304 downloads
filedropkartero.git-7cdd1f5.zip
109.24 KB
306 downloads
filedropkartero.git-40825aa.tar.bz2
97.71 KB
302 downloads
filedropkartero.git-40825aa.zip
109.16 KB
340 downloads
filedropkartero.git-3dd941b.tar.bz2
97.69 KB
302 downloads
filedropkartero.git-3dd941b.zip
109.12 KB
313 downloads
filedropkartero.git-50f1e46.tar.bz2
97.65 KB
312 downloads
filedropkartero.git-50f1e46.zip
109.02 KB
318 downloads
filedropkartero.git-fdf9225.tar.bz2
93.19 KB
343 downloads
filedropkartero.git-fdf9225.zip
104.25 KB
329 downloads
filedropkartero.git-21415da.tar.bz2
93.24 KB
299 downloads
filedropkartero.git-21415da.zip
104.22 KB
328 downloads
filedropkartero.git-aff5e89.tar.bz2
93.17 KB
318 downloads
filedropkartero.git-aff5e89.zip
104.22 KB
316 downloads
filedropkartero.git-b27ef39.tar.bz2
91.97 KB
320 downloads
filedropkartero.git-b27ef39.zip
102.80 KB
343 downloads
filedropkartero.git-3d6e8a2.tar.bz2
91.99 KB
303 downloads
filedropkartero.git-3d6e8a2.zip
102.77 KB
338 downloads
filedropkartero.git-1442b69.tar.bz2
91.79 KB
295 downloads
filedropkartero.git-1442b69.zip
102.50 KB
345 downloads
filedropkartero.git-6d15918.tar.bz2
91.56 KB
316 downloads
filedropkartero.git-6d15918.zip
102.28 KB
311 downloads
filedropkartero.git-45140d8.tar.bz2
91.52 KB
321 downloads
filedropkartero.git-45140d8.zip
102.23 KB
316 downloads
filedropkartero.git-d5b48e5.tar.bz2
91.35 KB
308 downloads
filedropkartero.git-d5b48e5.zip
102.01 KB
329 downloads
filedropkartero.git-e007e55.tar.bz2
91.35 KB
317 downloads
filedropkartero.git-e007e55.zip
102.01 KB
300 downloads
filedropkartero.git-30fd7e3.tar.bz2
90.87 KB
295 downloads
filedropkartero.git-30fd7e3.zip
101.44 KB
328 downloads
filedropkartero.git-421a4a7.tar.bz2
88.02 KB
36 downloads
filedropkartero.git-421a4a7.zip
97.96 KB
307 downloads
filedropkartero.git-b49b8bc.tar.bz2
88.09 KB
340 downloads
filedropkartero.git-b49b8bc.zip
97.99 KB
322 downloads
filedropkartero.git-1cc9571.tar.bz2
87.74 KB
319 downloads
filedropkartero.git-1cc9571.zip
97.70 KB
326 downloads
filedropkartero.git-159152f.tar.bz2
87.60 KB
316 downloads
filedropkartero.git-159152f.zip
97.52 KB
330 downloads
filedropkartero.git-35caaf3.tar.bz2
87.74 KB
299 downloads
filedropkartero.git-35caaf3.zip
97.57 KB
307 downloads
filedropkartero.git-3c9d305.zip
96.67 KB
316 downloads
filedropkartero.git-3c9d305.tar.bz2
86.77 KB
308 downloads
filedropkartero.git-14cb2af.tar.bz2
86.41 KB
305 downloads
filedropkartero.git-14cb2af.zip
96.13 KB
322 downloads
filedropkartero.git-e8f00cb.tar.bz2
86.46 KB
321 downloads
filedropkartero.git-e8f00cb.zip
96.21 KB
310 downloads
filedropkartero.git-bdab380.tar.bz2
86.14 KB
318 downloads
filedropkartero.git-bdab380.zip
95.79 KB
315 downloads
filedropkartero.git-48f9134.tar.bz2
85.78 KB
326 downloads
filedropkartero.git-48f9134.zip
95.48 KB
324 downloads
filedropkartero.git-adb9757.tar.bz2
85.67 KB
310 downloads
filedropkartero.git-adb9757.zip
95.37 KB
316 downloads
filedropkartero.git-1601cbd.zip
95.30 KB
329 downloads
filedropkartero.git-1601cbd.tar.bz2
85.69 KB
291 downloads
filedropkartero.git-18a5106.tar.bz2
85.72 KB
291 downloads
filedropkartero.git-18a5106.zip
95.48 KB
329 downloads
filedropkartero.git-a5b1caa.tar.bz2
85.61 KB
327 downloads
filedropkartero.git-a5b1caa.zip
95.36 KB
323 downloads
filedropkartero.git-effff82.zip
97.06 KB
334 downloads
filedropkartero.git-effff82.tar.bz2
87.13 KB
317 downloads
filedropkartero.git-b70d364.tar.bz2
84.09 KB
355 downloads
filedropkartero.git-b70d364.zip
93.67 KB
329 downloads
filedropkartero.git-48f0e53.tar.bz2
84.16 KB
330 downloads
filedropkartero.git-48f0e53.zip
93.66 KB
324 downloads
filedropkartero.git-c17135e.tar.bz2
84.09 KB
311 downloads
filedropkartero.git-c17135e.zip
93.57 KB
311 downloads
filedropkartero.git-a2e2848.tar.bz2
85.59 KB
314 downloads
filedropkartero.git-a2e2848.zip
100.10 KB
322 downloads
filedropkartero.git-1f683db.tar.bz2
83.55 KB
312 downloads
filedropkartero.git-1f683db.zip
93.24 KB
316 downloads
filedropkartero.git-d342596.tar.bz2
83.57 KB
310 downloads
filedropkartero.git-d342596.zip
93.28 KB
312 downloads
filedropkartero.git-e0131d5.tar.bz2
83.55 KB
315 downloads
filedropkartero.git-e0131d5.zip
93.27 KB
327 downloads
filedropkartero.git-ad467e8.tar.bz2
83.13 KB
325 downloads
filedropkartero.git-ad467e8.zip
92.78 KB
315 downloads
filedropkartero.git-b20e27d.tar.bz2
83.46 KB
329 downloads
filedropkartero.git-b20e27d.zip
93.19 KB
343 downloads
filedropkartero.git-eefd8fe.zip
92.67 KB
336 downloads
filedropkartero.git-eefd8fe.tar.bz2
83.01 KB
312 downloads
filedropkartero.git-bea685a.zip
96.88 KB
324 downloads
filedropkartero.git-bea685a.tar.bz2
84.44 KB
308 downloads
filedropkartero.git-a8bd019.tar.bz2
84.25 KB
322 downloads
filedropkartero.git-a8bd019.zip
96.60 KB
317 downloads
filedropkartero.git-cbc914d.tar.bz2
84.38 KB
318 downloads
filedropkartero.git-cbc914d.zip
96.64 KB
306 downloads
filedropkartero.git-09a2e70.tar.bz2
84.40 KB
295 downloads
filedropkartero.git-09a2e70.zip
96.70 KB
328 downloads
filedropkartero.git-641dc05.tar.bz2
84.37 KB
315 downloads
filedropkartero.git-641dc05.zip
96.73 KB
320 downloads
filedropkartero.git-cde49c6.tar.bz2
84.26 KB
325 downloads
filedropkartero.git-cde49c6.zip
96.59 KB
322 downloads
filedropkartero.git-1d004e0.tar.bz2
77.42 KB
323 downloads
filedropkartero.git-1d004e0.zip
87.56 KB
619 downloads
filedropkartero.git-1f0bf17.tar.bz2
77.47 KB
322 downloads
filedropkartero.git-1f0bf17.zip
87.56 KB
313 downloads
filedropkartero.git-265e63c.tar.bz2
77.43 KB
302 downloads
filedropkartero.git-265e63c.zip
87.52 KB
351 downloads
filedropkartero.git-635a5db.zip
87.60 KB
318 downloads
filedropkartero.git-a041f85.tar.bz2
77.37 KB
318 downloads
filedropkartero.git-a041f85.zip
87.52 KB
339 downloads
filedropkartero.git-ae049a7.tar.bz2
77.44 KB
312 downloads
filedropkartero.git-ae049a7.zip
87.52 KB
309 downloads
filedropkartero.git-eef571a.tar.bz2
20.56 KB
421 downloads
filedropkartero.git-eef571a.zip
25.69 KB
433 downloads
filedropkartero.git-0bc16f5.tar.bz2
82.61 KB
306 downloads
filedropkartero.git-0bc16f5.zip
94.75 KB
333 downloads
filedropkartero.git-2afc0f7.tar.bz2
83.61 KB
319 downloads
filedropkartero.git-2afc0f7.zip
96.00 KB
344 downloads
filedropkartero.git-3529bdf.tar.bz2
77.72 KB
280 downloads
filedropkartero.git-3529bdf.zip
87.92 KB
312 downloads
filedropkartero.git-49aac92.tar.bz2
78.98 KB
318 downloads
filedropkartero.git-49aac92.zip
90.01 KB
308 downloads
filedropkartero.git-5d48f21.tar.bz2
78.65 KB
316 downloads
filedropkartero.git-5d48f21.zip
89.51 KB
330 downloads
filedropkartero.git-635a5db.tar.bz2
77.50 KB
304 downloads
filedropkartero.git-6e34786.tar.bz2
77.76 KB
311 downloads
filedropkartero.git-6e34786.zip
88.09 KB
323 downloads
filedropkartero.git-7dc2fd2.tar.bz2
83.51 KB
332 downloads
filedropkartero.git-7dc2fd2.zip
95.99 KB
306 downloads
filedropkartero.git-9cad005.tar.bz2
78.85 KB
317 downloads
filedropkartero.git-9cad005.zip
90.00 KB
327 downloads
filedropkartero.git-b303f61.tar.bz2
82.57 KB
324 downloads
filedropkartero.git-b303f61.zip
94.78 KB
357 downloads
filedropkartero.git-c15ef85.tar.bz2
77.76 KB
320 downloads
filedropkartero.git-c15ef85.zip
88.16 KB
41 downloads
filedropkartero.git-c99e84d.tar.bz2
83.58 KB
352 downloads
filedropkartero.git-c99e84d.zip
96.01 KB
341 downloads
filedropkartero.git-e5009e6.tar.bz2
78.73 KB
317 downloads
filedropkartero.git-e5009e6.zip
89.69 KB
315 downloads
filedropkartero.git-0502d01.tar.bz2
83.54 KB
318 downloads
filedropkartero.git-0502d01.zip
96.00 KB
354 downloads
filedropkartero.git-44ca46d.tar.bz2
83.73 KB
319 downloads
filedropkartero.git-44ca46d.zip
96.20 KB
307 downloads
filedropkartero.git-834f923.tar.bz2
83.75 KB
317 downloads
filedropkartero.git-834f923.zip
96.14 KB
317 downloads