JavaScriptCore:
authormjs <mjs@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Wed, 25 Jul 2007 21:50:00 +0000 (21:50 +0000)
committermjs <mjs@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Wed, 25 Jul 2007 21:50:00 +0000 (21:50 +0000)
        Reviewed by Darin.

        - JavaScriptCore part of fix for <rdar://problem/5300291> Optimize GC to reclaim big, temporary objects (like XMLHttpRequest.responseXML) quickly

        Also, as a side effect of optimizations included in this patch:
        - 7% speedup on JavaScript iBench
        - 4% speedup on "Celtic Kane" JS benchmark

        The basic idea is explained in a big comment in collector.cpp. When unusually
        large objecs are allocated, we push the next GC closer on the assumption that
        most objects are short-lived.

        I also did the following two optimizations in the course of tuning
        this not to be a performance regression:

        1) Change UString::Rep to hold a self-pointer as the baseString in
        the unshared case, instead of a null pointer; this removes a
        number of null checks in hot code because many places already
        wanted to use the rep itself or the baseString as appropriate.

        2) Avoid creating duplicate StringImpls when creating a
        StringInstance (the object wrapper for a JS string) or calling
        their methods. Since a temporary wrapper object is made every time
        a string method is called, this resulted in two useless extra
        StringImpls being allocated for no reason whenever a String method
        was invoked on a string value. Now we bypass those.

        * kjs/collector.cpp:
        (KJS::):
        (KJS::Collector::recordExtraCost): Basics of the extra cost mechanism.
        (KJS::Collector::allocate): ditto
        (KJS::Collector::collect): ditto
        * kjs/collector.h:
        (KJS::Collector::reportExtraMemoryCost): ditto
        * kjs/array_object.cpp:
        (ArrayInstance::ArrayInstance): record extra cost
        * kjs/internal.cpp:
        (KJS::StringImp::toObject): don't create a whole new StringImpl just
        to be the internal value of a StringInstance! StringImpls are immutable
        so there's no point tot his.
        * kjs/internal.h:
        (KJS::StringImp::StringImp): report extra cost
        * kjs/string_object.cpp:
        (KJS::StringInstance::StringInstance): new version that takes a StringImp
        (KJS::StringProtoFunc::callAsFunction): don't create a whole new StringImpl
        just to convert self to string! we already have one in the internal value
        * kjs/string_object.h: report extra cost
        * kjs/ustring.cpp: All changes to handle baseString being self instead of null in the
        unshared case.
        (KJS::):
        (KJS::UString::Rep::create):
        (KJS::UString::Rep::destroy):
        (KJS::UString::usedCapacity):
        (KJS::UString::usedPreCapacity):
        (KJS::UString::expandCapacity):
        (KJS::UString::expandPreCapacity):
        (KJS::UString::UString):
        (KJS::UString::append):
        (KJS::UString::operator=):
        (KJS::UString::copyForWriting):
        * kjs/ustring.h:
        (KJS::UString::Rep::baseIsSelf): new method, now that baseString is
        self instead of null in the unshared case we can't just null check.
        (KJS::UString::Rep::data): adjusted as mentioned above
        (KJS::UString::cost): new method to compute the cost for a UString, for
        use by StringImpl.

        * kjs/value.cpp:
        (KJS::jsString): style fixups.
        (KJS::jsOwnedString): new method, use this for strings allocated from UStrings
        held by the parse tree. Tracking their cost as part of string cost is pointless,
        because garbage collecting them will not actually free the relevant string buffer.
        * kjs/value.h: prototyped jsOwnedString.
        * kjs/nodes.cpp:
        (StringNode::evaluate): use jsOwnedString as appropriate
        (RegExpNode::evaluate): ditto
        (PropertyNameNode::evaluate): ditto
        (ForInNode::execute): ditto

        * JavaScriptCore.exp: Exported some new symbols.

WebCore:

        Reviewed by Darin.

        - fixed <rdar://problem/5300291> Optimize GC to reclaim big, temporary objects (like XMLHttpRequest.responseXML) quickly

        With this plus related JavaScriptCore changes, a number of XMLHttpRequest situations that
        result in huge data sets are addressed, including a single huge responseXML on an XMR done
        repeatedly, or accessing responseText repeatedly during loading of a single large XHR.

        In addition to the GC changes in JavaScriptCore, I changed responseText to be stored as a
        KJS::UString instead of a WebCore::String so that the JavaScript responseText value can
        share the buffer (indeed multiple intermediate responseTexts can share its buffer).

        First of all, here's some manual test cases that will each blow out the process VM without this fix,
        but will settle into decent steady state with.

        * manual-tests/memory: Added.
        * manual-tests/memory/MessageUidsAlreadyDownloaded2: Added.
        * manual-tests/memory/string-growth.html: Added.
        * manual-tests/memory/xhr-multiple-requests-responseText.html: Added.
        * manual-tests/memory/xhr-multiple-requests-responseXML.html: Added.
        * manual-tests/memory/xhr-multiple-requests.html: Added.
        * manual-tests/memory/xhr-repeated-string-access.xml: Added.

        And here's the actual code changes:

        * WebCore.xcodeproj/project.pbxproj:
        * bindings/js/JSDocumentCustom.cpp:
        (WebCore::toJS): Record extra cost if the document is frameless (counting the nodes
        doesn't make a measurable performance difference here in any case I could find)
        * bindings/js/JSXMLHttpRequest.cpp:
        (KJS::JSXMLHttpRequest::getValueProperty): Adjust for the fact that ressponseText
        is now stored as a UString.
        * bindings/js/kjs_binding.cpp:
        (KJS::jsOwnedStringOrNull): New helper.
        * bindings/js/kjs_binding.h:
        * xml/XMLHttpRequest.cpp:
        (WebCore::XMLHttpRequest::getResponseText): It's a UString!
        (WebCore::XMLHttpRequest::getResponseXML): handle the fact that m_responseText
        is a UString.
        (WebCore::XMLHttpRequest::XMLHttpRequest): ditto.
        (WebCore::XMLHttpRequest::abort): call dropProtection
        (WebCore::XMLHttpRequest::didFinishLoading): call dropProtection
        (WebCore::XMLHttpRequest::dropProtection): after removing our GC protection,
        report extra cost of this XHR's responseText buffer.
        * xml/XMLHttpRequest.h:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@24633 268f45cc-cd09-0410-ab3c-d52691b4dbfc

27 files changed:
JavaScriptCore/ChangeLog
JavaScriptCore/JavaScriptCore.exp
JavaScriptCore/kjs/array_object.cpp
JavaScriptCore/kjs/collector.cpp
JavaScriptCore/kjs/collector.h
JavaScriptCore/kjs/internal.cpp
JavaScriptCore/kjs/internal.h
JavaScriptCore/kjs/nodes.cpp
JavaScriptCore/kjs/string_object.cpp
JavaScriptCore/kjs/string_object.h
JavaScriptCore/kjs/ustring.cpp
JavaScriptCore/kjs/ustring.h
JavaScriptCore/kjs/value.cpp
JavaScriptCore/kjs/value.h
WebCore/ChangeLog
WebCore/bindings/js/JSDocumentCustom.cpp
WebCore/bindings/js/JSXMLHttpRequest.cpp
WebCore/bindings/js/kjs_binding.cpp
WebCore/bindings/js/kjs_binding.h
WebCore/manual-tests/memory/MessageUidsAlreadyDownloaded2 [new file with mode: 0644]
WebCore/manual-tests/memory/string-growth.html [new file with mode: 0644]
WebCore/manual-tests/memory/xhr-multiple-requests-responseText.html [new file with mode: 0644]
WebCore/manual-tests/memory/xhr-multiple-requests-responseXML.html [new file with mode: 0644]
WebCore/manual-tests/memory/xhr-multiple-requests.html [new file with mode: 0644]
WebCore/manual-tests/memory/xhr-repeated-string-access.xml [new file with mode: 0644]
WebCore/xml/XMLHttpRequest.cpp
WebCore/xml/XMLHttpRequest.h

index 5cd6dcc..ca11d41 100644 (file)
@@ -1,3 +1,86 @@
+2007-07-25  Maciej Stachowiak  <mjs@apple.com>
+
+        Reviewed by Darin.
+        
+        - JavaScriptCore part of fix for <rdar://problem/5300291> Optimize GC to reclaim big, temporary objects (like XMLHttpRequest.responseXML) quickly
+        
+        Also, as a side effect of optimizations included in this patch:
+        - 7% speedup on JavaScript iBench
+        - 4% speedup on "Celtic Kane" JS benchmark
+        
+        The basic idea is explained in a big comment in collector.cpp. When unusually 
+        large objecs are allocated, we push the next GC closer on the assumption that
+        most objects are short-lived.
+        
+        I also did the following two optimizations in the course of tuning
+        this not to be a performance regression:
+
+        1) Change UString::Rep to hold a self-pointer as the baseString in
+        the unshared case, instead of a null pointer; this removes a
+        number of null checks in hot code because many places already
+        wanted to use the rep itself or the baseString as appropriate.
+        
+        2) Avoid creating duplicate StringImpls when creating a
+        StringInstance (the object wrapper for a JS string) or calling
+        their methods. Since a temporary wrapper object is made every time
+        a string method is called, this resulted in two useless extra
+        StringImpls being allocated for no reason whenever a String method
+        was invoked on a string value. Now we bypass those.
+        
+        * kjs/collector.cpp:
+        (KJS::):
+        (KJS::Collector::recordExtraCost): Basics of the extra cost mechanism.
+        (KJS::Collector::allocate): ditto
+        (KJS::Collector::collect): ditto
+        * kjs/collector.h:
+        (KJS::Collector::reportExtraMemoryCost): ditto
+        * kjs/array_object.cpp:
+        (ArrayInstance::ArrayInstance): record extra cost
+        * kjs/internal.cpp:
+        (KJS::StringImp::toObject): don't create a whole new StringImpl just
+        to be the internal value of a StringInstance! StringImpls are immutable
+        so there's no point tot his.
+        * kjs/internal.h:
+        (KJS::StringImp::StringImp): report extra cost
+        * kjs/string_object.cpp:
+        (KJS::StringInstance::StringInstance): new version that takes a StringImp
+        (KJS::StringProtoFunc::callAsFunction): don't create a whole new StringImpl
+        just to convert self to string! we already have one in the internal value
+        * kjs/string_object.h: report extra cost        
+        * kjs/ustring.cpp: All changes to handle baseString being self instead of null in the 
+        unshared case.
+        (KJS::):
+        (KJS::UString::Rep::create):
+        (KJS::UString::Rep::destroy):
+        (KJS::UString::usedCapacity):
+        (KJS::UString::usedPreCapacity):
+        (KJS::UString::expandCapacity):
+        (KJS::UString::expandPreCapacity):
+        (KJS::UString::UString):
+        (KJS::UString::append):
+        (KJS::UString::operator=):
+        (KJS::UString::copyForWriting):
+        * kjs/ustring.h:
+        (KJS::UString::Rep::baseIsSelf): new method, now that baseString is
+        self instead of null in the unshared case we can't just null check.
+        (KJS::UString::Rep::data): adjusted as mentioned above
+        (KJS::UString::cost): new method to compute the cost for a UString, for
+        use by StringImpl.
+
+        * kjs/value.cpp:
+        (KJS::jsString): style fixups.
+        (KJS::jsOwnedString): new method, use this for strings allocated from UStrings
+        held by the parse tree. Tracking their cost as part of string cost is pointless,
+        because garbage collecting them will not actually free the relevant string buffer.
+        * kjs/value.h: prototyped jsOwnedString.
+        * kjs/nodes.cpp:
+        (StringNode::evaluate): use jsOwnedString as appropriate
+        (RegExpNode::evaluate): ditto
+        (PropertyNameNode::evaluate): ditto
+        (ForInNode::execute): ditto
+        
+        * JavaScriptCore.exp: Exported some new symbols.
+
 2007-07-23  Anders Carlsson  <andersca@apple.com>
 
         Reviewed by Geoff.
index a133afc..8e2949f 100644 (file)
@@ -185,7 +185,6 @@ __ZN3KJS8Bindings10RootObjectD1Ev
 __ZN3KJS8Bindings10throwErrorEPNS_9ExecStateENS_9ErrorTypeEP8NSString
 __ZN3KJS8Bindings23convertObjcValueToValueEPNS_9ExecStateEPvNS0_13ObjcValueTypeEPNS0_10RootObjectE
 __ZN3KJS8Bindings23convertValueToObjcValueEPNS_9ExecStateEPNS_7JSValueENS0_13ObjcValueTypeE
-__ZNK3KJS8Bindings8Instance10rootObjectEv
 __ZN3KJS8Bindings8Instance18didExecuteFunctionEv
 __ZN3KJS8Bindings8Instance21setDidExecuteFunctionEPFvPNS_9ExecStateEPNS_8JSObjectEE
 __ZN3KJS8Bindings8Instance32createBindingForLanguageInstanceENS1_15BindingLanguageEPvN3WTF10PassRefPtrINS0_10RootObjectEEE
@@ -211,7 +210,9 @@ __ZN3KJS8JSObject9putDirectERKNS_10IdentifierEPNS_7JSValueEi
 __ZN3KJS8JSObject9putDirectERKNS_10IdentifierEii
 __ZN3KJS8jsStringEPKc
 __ZN3KJS8jsStringERKNS_7UStringE
+__ZN3KJS13jsOwnedStringERKNS_7UStringE
 __ZN3KJS9Collector15numInterpretersEv
+__ZN3KJS9Collector15recordExtraCostEm
 __ZN3KJS9Collector19numProtectedObjectsEv
 __ZN3KJS9Collector20rootObjectTypeCountsEv
 __ZN3KJS9Collector23collectOnMainThreadOnlyEPNS_7JSValueE
@@ -257,6 +258,7 @@ __ZNK3KJS7UString6is8BitEv
 __ZNK3KJS7UString8toUInt32EPb
 __ZNK3KJS7UString8toUInt32EPbb
 __ZNK3KJS8Bindings10RootObject11interpreterEv
+__ZNK3KJS8Bindings8Instance10rootObjectEv
 __ZNK3KJS8JSObject11hasPropertyEPNS_9ExecStateERKNS_10IdentifierE
 __ZNK3KJS8JSObject12defaultValueEPNS_9ExecStateENS_6JSTypeE
 __ZNK3KJS8JSObject14implementsCallEv
index 4785c5e..bbf04e7 100644 (file)
@@ -77,6 +77,7 @@ ArrayInstance::ArrayInstance(JSObject *proto, unsigned initialLength)
   , storageLength(initialLength < sparseArrayCutoff ? initialLength : 0)
   , storage(allocateStorage(storageLength))
 {
+  Collector::reportExtraMemoryCost(storageLength * sizeof(JSValue*));
 }
 
 ArrayInstance::ArrayInstance(JSObject *proto, const List &list)
@@ -90,6 +91,8 @@ ArrayInstance::ArrayInstance(JSObject *proto, const List &list)
   for (unsigned i = 0; i < l; ++i) {
     storage[i] = it++;
   }
+  // When the array is created non-empty its cells are filled so it's really no worse than
+  // a property map. Therefore don't report extra memory cost.
 }
 
 ArrayInstance::~ArrayInstance()
index 712e43e..c6ff638 100644 (file)
@@ -81,9 +81,10 @@ struct CollectorHeap {
   
   size_t numLiveObjects;
   size_t numLiveObjectsAtLastCollect;
+  size_t extraCost;
 };
 
-static CollectorHeap heap = {NULL, 0, 0, 0, 0, 0};
+static CollectorHeap heap = {NULL, 0, 0, 0, 0, 0, 0};
 
 size_t Collector::mainThreadOnlyObjectCount = 0;
 bool Collector::memoryFull = false;
@@ -162,6 +163,22 @@ static void freeBlock(CollectorBlock* block)
 #endif
 }
 
+void Collector::recordExtraCost(size_t cost)
+{
+    // Our frequency of garbage collection tries to balance memory use against speed
+    // by collecting based on the number of newly created values. However, for values
+    // that hold on to a great deal of memory that's not in the form of other JS values,
+    // that is not good enough - in some cases a lot of those objects can pile up and
+    // use crazy amounts of memory without a GC happening. So we track these extra
+    // memory costs. Only unusually large objects are noted, and we only keep track
+    // of this extra cost until the next GC. In garbage collected languages, most values
+    // are either very short lived temporaries, or have extremely long lifetimes. So
+    // if a large value survives one garbage collection, there is not much point to
+    // collecting more frequently as long as it stays alive.
+
+    heap.extraCost += cost;
+}
+
 void* Collector::allocate(size_t s)
 {
   ASSERT(JSLock::lockCount() > 0);
@@ -173,8 +190,9 @@ void* Collector::allocate(size_t s)
   size_t numLiveObjects = heap.numLiveObjects;
   size_t numLiveObjectsAtLastCollect = heap.numLiveObjectsAtLastCollect;
   size_t numNewObjects = numLiveObjects - numLiveObjectsAtLastCollect;
+  size_t newCost = numNewObjects + heap.extraCost;
 
-  if (numNewObjects >= ALLOCATIONS_PER_COLLECTION && numNewObjects >= numLiveObjectsAtLastCollect) {
+  if (newCost >= ALLOCATIONS_PER_COLLECTION && newCost >= numLiveObjectsAtLastCollect) {
     collect();
     numLiveObjects = heap.numLiveObjects;
   }
@@ -853,6 +871,7 @@ bool Collector::collect()
 
   heap.numLiveObjects = numLiveObjects;
   heap.numLiveObjectsAtLastCollect = numLiveObjects;
+  heap.extraCost = 0;
   
   memoryFull = (numLiveObjects >= KJS_MEM_LIMIT);
 
index d4929dd..59662fd 100644 (file)
@@ -39,6 +39,10 @@ namespace KJS {
     static void* allocate(size_t s);
     static bool collect();
 
+    static const size_t minExtraCostSize = 256;
+
+    static void reportExtraMemoryCost(size_t cost);
+
     static size_t size();
     static bool isOutOfMemory() { return memoryFull; }
 
@@ -69,14 +73,15 @@ namespace KJS {
   private:
     static const CollectorBlock* cellBlock(const JSCell*);
     static CollectorBlock* cellBlock(JSCell*);
-    static size_t cellOffset(const JSCell* cell);
+    static size_t cellOffset(const JSCell*);
 
     Collector();
 
+    static void recordExtraCost(size_t);
     static void markProtectedObjects();
     static void markMainThreadOnlyObjects();
     static void markCurrentThreadConservatively();
-    static void markOtherThreadConservatively(Thread* thread);
+    static void markOtherThreadConservatively(Thread*);
     static void markStackObjectsConservatively();
     static void markStackObjectsConservatively(void* start, void* end);
 
@@ -155,6 +160,12 @@ namespace KJS {
     cellBlock(cell)->marked.set(cellOffset(cell));
   }
 
+  inline void Collector::reportExtraMemoryCost(size_t cost)
+  { 
+    if (cost > minExtraCostSize) 
+      recordExtraCost(cost / (CELL_SIZE * 2)); 
+  }
+
 } // namespace KJS
 
 #endif /* KJSCOLLECTOR_H_ */
index d90cc14..48b4021 100644 (file)
@@ -76,13 +76,9 @@ UString StringImp::toString(ExecState *) const
   return val;
 }
 
-JSObject *StringImp::toObject(ExecState *exec) const
+JSObjectStringImp::toObject(ExecState *exec) const
 {
-    // Put the reference onto the stack so it is not subject to garbage collection.
-    // <http://bugs.webkit.org/show_bug.cgi?id=12535>
-    UString valCopy = val;
-
-    return new StringInstance(exec->lexicalInterpreter()->builtinStringPrototype(), valCopy);
+    return new StringInstance(exec->lexicalInterpreter()->builtinStringPrototype(), const_cast<StringImp*>(this));
 }
 
 // ------------------------------ NumberImp ------------------------------------
index 27cedac..cf99470 100644 (file)
@@ -47,7 +47,9 @@ namespace KJS {
 
   class StringImp : public JSCell {
   public:
-    StringImp(const UString& v) : val(v) { }
+    StringImp(const UString& v) : val(v) { Collector::reportExtraMemoryCost(v.cost()); }
+    enum HasOtherOwnerType { HasOtherOwner };
+    StringImp(const UString& value, HasOtherOwnerType) : val(value) { }
     UString value() const { return val; }
 
     JSType type() const { return StringType; }
index 622f4c3..b838a0c 100644 (file)
@@ -356,7 +356,7 @@ JSValue *NumberNode::evaluate(ExecState *)
 
 JSValue *StringNode::evaluate(ExecState *)
 {
-  return jsString(value);
+  return jsOwnedString(value);
 }
 
 // ------------------------------ RegExpNode -----------------------------------
@@ -364,8 +364,8 @@ JSValue *StringNode::evaluate(ExecState *)
 JSValue *RegExpNode::evaluate(ExecState *exec)
 {
   List list;
-  list.append(jsString(pattern));
-  list.append(jsString(flags));
+  list.append(jsOwnedString(pattern));
+  list.append(jsOwnedString(flags));
 
   JSObject *reg = exec->lexicalInterpreter()->builtinRegExp();
   return reg->construct(exec,list);
@@ -532,7 +532,7 @@ JSValue *PropertyNameNode::evaluate(ExecState*)
   if (str.isNull()) {
     s = jsString(UString::from(numeric));
   } else {
-    s = jsString(str.ustring());
+    s = jsOwnedString(str.ustring());
   }
 
   return s;
@@ -1988,7 +1988,7 @@ Completion ForInNode::execute(ExecState *exec)
       if (!v->hasProperty(exec, name))
           continue;
 
-      JSValue *str = jsString(name.ustring());
+      JSValue *str = jsOwnedString(name.ustring());
 
       if (lexpr->isResolveNode()) {
         const Identifier &ident = static_cast<ResolveNode *>(lexpr.get())->identifier();
index fa23729..5affa19 100644 (file)
@@ -51,6 +51,12 @@ StringInstance::StringInstance(JSObject *proto)
   setInternalValue(jsString(""));
 }
 
+StringInstance::StringInstance(JSObject *proto, StringImp* string)
+  : JSWrapperObject(proto)
+{
+  setInternalValue(string);
+}
+
 StringInstance::StringInstance(JSObject *proto, const UString &string)
   : JSWrapperObject(proto)
 {
@@ -424,7 +430,7 @@ JSValue* StringProtoFunc::callAsFunction(ExecState* exec, JSObject* thisObj, con
     if (!thisObj || !thisObj->inherits(&StringInstance::info))
       return throwError(exec, TypeError);
 
-    return jsString(static_cast<StringInstance*>(thisObj)->internalValue()->toString(exec));
+    return static_cast<StringInstance*>(thisObj)->internalValue();
   }
 
   UString u, u2, u3;
index 2c3f05d..9f07cf1 100644 (file)
 
 #include "function_object.h"
 #include "JSWrapperObject.h"
+#include "internal.h"
 
 namespace KJS {
 
   class StringInstance : public JSWrapperObject {
   public:
     StringInstance(JSObject *proto);
+    StringInstance(JSObject *proto, StringImp* string);
     StringInstance(JSObject *proto, const UString &string);
 
     virtual bool getOwnPropertySlot(ExecState*, const Identifier&, PropertySlot&);
index 9b3bd97..8bb7ec1 100644 (file)
@@ -26,6 +26,7 @@
 #include "ustring.h"
 
 #include "JSLock.h"
+#include "collector.h"
 #include "dtoa.h"
 #include "function.h"
 #include "identifier.h"
@@ -53,6 +54,15 @@ namespace KJS {
 extern const double NaN;
 extern const double Inf;
 
+// we'd rather not do shared substring append for small strings, since
+// this runs too much risk of a tiny initial string holding down a
+// huge buffer. This is also tuned to match the extra cost size, so we
+// don't ever share a buffer that wouldn't be over the extra cost
+// threshold already.
+// FIXME: this should be size_t but that would cause warnings until we
+// fix UString sizes to be size_t instad of int
+static const int minShareSize = Collector::minExtraCostSize / sizeof(UChar);
+
 COMPILE_ASSERT(sizeof(UChar) == 2, uchar_is_2_bytes)
 
 CString::CString(const char *c)
@@ -140,8 +150,8 @@ bool operator==(const CString& c1, const CString& c2)
 
 // Hack here to avoid a global with a constructor; point to an unsigned short instead of a UChar.
 static unsigned short almostUChar;
-UString::Rep UString::Rep::null = { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0 };
-UString::Rep UString::Rep::empty = { 0, 0, 1, 0, 0, 0, reinterpret_cast<UChar*>(&almostUChar), 0, 0, 0, 0 };
+UString::Rep UString::Rep::null = { 0, 0, 1, 0, 0, &UString::Rep::null, 0, 0, 0, 0, 0 };
+UString::Rep UString::Rep::empty = { 0, 0, 1, 0, 0, &UString::Rep::empty, reinterpret_cast<UChar*>(&almostUChar), 0, 0, 0, 0 };
 const int normalStatBufferSize = 4096;
 static char *statBuffer = 0;
 static int statBufferSize = 0;
@@ -182,13 +192,13 @@ PassRefPtr<UString::Rep> UString::Rep::create(UChar *d, int l)
 {
   ASSERT(JSLock::lockCount() > 0);
 
-  Rep *r = new Rep;
+  Repr = new Rep;
   r->offset = 0;
   r->len = l;
   r->rc = 1;
   r->_hash = 0;
   r->isIdentifier = 0;
-  r->baseString = 0;
+  r->baseString = r;
   r->buf = d;
   r->usedCapacity = l;
   r->capacity = l;
@@ -206,9 +216,7 @@ PassRefPtr<UString::Rep> UString::Rep::create(PassRefPtr<Rep> base, int offset,
 
   int baseOffset = base->offset;
 
-  if (base->baseString) {
-    base = base->baseString;
-  }
+  base = base->baseString;
 
   assert(-(offset + baseOffset) <= base->usedPreCapacity);
   assert(offset + baseOffset + length <= base->usedCapacity);
@@ -236,7 +244,7 @@ void UString::Rep::destroy()
 
   if (isIdentifier)
     Identifier::remove(this);
-  if (baseString) {
+  if (baseString != this) {
     baseString->deref();
   } else {
     fastFree(buf);
@@ -347,17 +355,17 @@ inline int UString::expandedSize(int size, int otherSize) const
 
 inline int UString::usedCapacity() const
 {
-  return m_rep->baseString ? m_rep->baseString->usedCapacity : m_rep->usedCapacity;
+  return m_rep->baseString->usedCapacity;
 }
 
 inline int UString::usedPreCapacity() const
 {
-  return m_rep->baseString ? m_rep->baseString->usedPreCapacity : m_rep->usedPreCapacity;
+  return m_rep->baseString->usedPreCapacity;
 }
 
 void UString::expandCapacity(int requiredLength)
 {
-  Rep *r = m_rep->baseString ? m_rep->baseString : rep();
+  Rep* r = m_rep->baseString;
 
   if (requiredLength > r->capacity) {
     int newCapacity = expandedSize(requiredLength, r->preCapacity);
@@ -371,7 +379,7 @@ void UString::expandCapacity(int requiredLength)
 
 void UString::expandPreCapacity(int requiredPreCap)
 {
-  Rep *r = m_rep->baseString ? m_rep->baseString : rep();
+  Rep* r = m_rep->baseString;
 
   if (requiredPreCap > r->preCapacity) {
     int newCapacity = expandedSize(requiredPreCap, r->capacity);
@@ -440,7 +448,7 @@ UString::UString(const UString &a, const UString &b)
   } else if (bSize == 0) {
     // b is empty
     m_rep = a.m_rep;
-  } else if (aOffset + aSize == a.usedCapacity() && 4 * aSize >= bSize &&
+  } else if (aOffset + aSize == a.usedCapacity() && aSize >= minShareSize && 4 * aSize >= bSize &&
              (-bOffset != b.usedPreCapacity() || aSize >= bSize)) {
     // - a reaches the end of its buffer so it qualifies for shared append
     // - also, it's at least a quarter the length of b - appending to a much shorter
@@ -453,7 +461,7 @@ UString::UString(const UString &a, const UString &b)
         m_rep = Rep::create(a.m_rep, 0, length);
     } else
         m_rep = &Rep::null;
-  } else if (-bOffset == b.usedPreCapacity() && 4 * bSize >= aSize) {
+  } else if (-bOffset == b.usedPreCapacity() && bSize >= minShareSize && 4 * bSize >= aSize) {
     // - b reaches the beginning of its buffer so it qualifies for shared prepend
     // - also, it's at least a quarter the length of a - prepending to a much shorter
     //   string does more harm than good
@@ -679,14 +687,14 @@ UString &UString::append(const UString &t)
     *this = t;
   } else if (tSize == 0) {
     // t is empty
-  } else if (!m_rep->baseString && m_rep->rc == 1) {
+  } else if (m_rep->baseIsSelf() && m_rep->rc == 1) {
     // this is direct and has refcount of 1 (so we can just alter it directly)
     expandCapacity(thisOffset + length);
     memcpy(const_cast<UChar *>(data() + thisSize), t.data(), tSize * sizeof(UChar));
     m_rep->len = length;
     m_rep->_hash = 0;
-  } else if (thisOffset + thisSize == usedCapacity()) {
-    // this reaches the end of the buffer - extend it
+  } else if (thisOffset + thisSize == usedCapacity() && thisSize >= minShareSize) {
+    // this reaches the end of the buffer - extend it if it's long enough to append to
     expandCapacity(thisOffset + length);
     memcpy(const_cast<UChar *>(data() + thisSize), t.data(), tSize * sizeof(UChar));
     m_rep = Rep::create(m_rep, 0, length);
@@ -716,7 +724,7 @@ UString &UString::append(const char *t)
     *this = t;
   } else if (tSize == 0) {
     // t is empty, we'll just return *this below.
-  } else if (!m_rep->baseString && m_rep->rc == 1) {
+  } else if (m_rep->baseIsSelf() && m_rep->rc == 1) {
     // this is direct and has refcount of 1 (so we can just alter it directly)
     expandCapacity(thisOffset + length);
     UChar *d = const_cast<UChar *>(data());
@@ -724,7 +732,7 @@ UString &UString::append(const char *t)
       d[thisSize+i] = t[i];
     m_rep->len = length;
     m_rep->_hash = 0;
-  } else if (thisOffset + thisSize == usedCapacity()) {
+  } else if (thisOffset + thisSize == usedCapacity() && thisSize >= minShareSize) {
     // this string reaches the end of the buffer - extend it
     expandCapacity(thisOffset + length);
     UChar *d = const_cast<UChar *>(data());
@@ -758,14 +766,14 @@ UString &UString::append(unsigned short c)
     d[0] = c;
     m_rep = Rep::create(d, 1);
     m_rep->capacity = newCapacity;
-  } else if (!m_rep->baseString && m_rep->rc == 1) {
+  } else if (m_rep->baseIsSelf() && m_rep->rc == 1) {
     // this is direct and has refcount of 1 (so we can just alter it directly)
     expandCapacity(thisOffset + length + 1);
     UChar *d = const_cast<UChar *>(data());
     d[length] = c;
     m_rep->len = length + 1;
     m_rep->_hash = 0;
-  } else if (thisOffset + length == usedCapacity()) {
+  } else if (thisOffset + length == usedCapacity() && length >= minShareSize) {
     // this reaches the end of the string - extend it and share
     expandCapacity(thisOffset + length + 1);
     UChar *d = const_cast<UChar *>(data());
@@ -830,7 +838,7 @@ UString &UString::operator=(const char *c)
 {
   int l = c ? static_cast<int>(strlen(c)) : 0;
   UChar *d;
-  if (m_rep->rc == 1 && l <= m_rep->capacity && !m_rep->baseString && m_rep->offset == 0 && m_rep->preCapacity == 0) {
+  if (m_rep->rc == 1 && l <= m_rep->capacity && m_rep->baseIsSelf() && m_rep->offset == 0 && m_rep->preCapacity == 0) {
     d = m_rep->buf;
     m_rep->_hash = 0;
   } else {
@@ -1128,7 +1136,7 @@ UString UString::substr(int pos, int len) const
 
 void UString::copyForWriting()
 {
-  if (m_rep->rc > 1 || m_rep->baseString) {
+  if (m_rep->rc > 1 || !m_rep->baseIsSelf()) {
     int l = size();
     UChar *n = static_cast<UChar *>(fastMalloc(sizeof(UChar) * l));
     memcpy(n, data(), l * sizeof(UChar));
index faddd8a..7f42d68 100644 (file)
@@ -25,6 +25,7 @@
 #define _KJS_USTRING_H_
 
 #include "JSLock.h"
+#include "collector.h"
 #include <stdint.h>
 #include <wtf/Assertions.h>
 #include <wtf/FastMalloc.h>
@@ -193,7 +194,8 @@ namespace KJS {
 
       void destroy();
       
-      UChar *data() const { return baseString ? (baseString->buf + baseString->preCapacity + offset) : (buf + preCapacity + offset); }
+      bool baseIsSelf() const { return baseString == this; }
+      UChar* data() const { return baseString->buf + baseString->preCapacity + offset; }
       int size() const { return len; }
       
       unsigned hash() const { if (_hash == 0) _hash = computeHash(data(), len); return _hash; }
@@ -209,7 +211,7 @@ namespace KJS {
       int rc;
       mutable unsigned _hash;
       bool isIdentifier;
-      UString::Rep *baseString;
+      UString::RepbaseString;
 
       // potentially shared data
       UChar *buf;
@@ -438,6 +440,8 @@ namespace KJS {
 
     void copyForWriting();
 
+    size_t cost() const;
+
   private:
     int expandedSize(int size, int otherSize) const;
     int usedCapacity() const;
@@ -498,6 +502,24 @@ inline unsigned UString::toArrayIndex(bool *ok) const
     return i;
 }
 
+inline size_t UString::cost() const
+{
+    // If this string is sharing with a base, then don't count any cost. We will never share
+    // with a base that wasn't already big enough to register extra cost, so a string holding that
+    // buffer has already paid extra cost at some point; and if we just
+    // enlarged it by a huge amount, it must have been by appending a string
+    // that itself paid extra cost, or a huge number of small strings. Either way, GC will come
+    // relatively soon.
+  
+    // If we didn't do this, the shared substring optimization would result
+    // in constantly garbage collecting when sharing with one big string.
+
+    if (!m_rep->baseIsSelf())
+        return 0;
+
+    return (m_rep->capacity + m_rep->preCapacity) * sizeof(UChar);
+}
+
 } // namespace
 
 #endif
index a853cfb..ed41af9 100644 (file)
@@ -169,16 +169,21 @@ const JSObject *JSCell::getObject() const
     return isObject() ? static_cast<const JSObject *>(this) : 0;
 }
 
-JSCell *jsString(const char *s)
+JSCell* jsString(const char* s)
 {
     return new StringImp(s ? s : "");
 }
 
-JSCell *jsString(const UString &s)
+JSCell* jsString(const UString& s)
 {
     return s.isNull() ? new StringImp("") : new StringImp(s);
 }
 
+JSCell* jsOwnedString(const UString& s)
+{
+    return s.isNull() ? new StringImp("", StringImp::HasOtherOwner) : new StringImp(s, StringImp::HasOtherOwner);
+}
+
 // This method includes a PIC branch to set up the NumberImp's vtable, so we quarantine
 // it in a separate function to keep the normal case speedy.
 JSValue *jsNumberCell(double d)
index f210d06..4670609 100644 (file)
@@ -162,8 +162,13 @@ public:
 
 JSValue *jsNumberCell(double);
 
-JSCell *jsString(const UString &); // returns empty string if passed null string
-JSCell *jsString(const char * = ""); // returns empty string if passed 0
+JSCell *jsString(const UString&); // returns empty string if passed null string
+JSCell *jsString(const char* = ""); // returns empty string if passed 0
+
+// should be used for strings that are owned by an object that will
+// likely outlive the JSValue this makes, such as the parse tree or a
+// DOM object that contains a UString
+JSCell *jsOwnedString(const UString&); 
 
 extern const double NaN;
 extern const double Inf;
index e397678..33a6ef9 100644 (file)
@@ -1,3 +1,52 @@
+2007-07-25  Maciej Stachowiak  <mjs@apple.com>
+
+        Reviewed by Darin.
+
+        - fixed <rdar://problem/5300291> Optimize GC to reclaim big, temporary objects (like XMLHttpRequest.responseXML) quickly
+        
+        With this plus related JavaScriptCore changes, a number of XMLHttpRequest situations that
+        result in huge data sets are addressed, including a single huge responseXML on an XMR done
+        repeatedly, or accessing responseText repeatedly during loading of a single large XHR.
+        
+        In addition to the GC changes in JavaScriptCore, I changed responseText to be stored as a
+        KJS::UString instead of a WebCore::String so that the JavaScript responseText value can
+        share the buffer (indeed multiple intermediate responseTexts can share its buffer).
+
+        
+        First of all, here's some manual test cases that will each blow out the process VM without this fix,
+        but will settle into decent steady state with.
+        
+        * manual-tests/memory: Added.
+        * manual-tests/memory/MessageUidsAlreadyDownloaded2: Added.
+        * manual-tests/memory/string-growth.html: Added.
+        * manual-tests/memory/xhr-multiple-requests-responseText.html: Added.
+        * manual-tests/memory/xhr-multiple-requests-responseXML.html: Added.
+        * manual-tests/memory/xhr-multiple-requests.html: Added.
+        * manual-tests/memory/xhr-repeated-string-access.xml: Added.
+
+        And here's the actual code changes:
+        
+        * WebCore.xcodeproj/project.pbxproj:
+        * bindings/js/JSDocumentCustom.cpp:
+        (WebCore::toJS): Record extra cost if the document is frameless (counting the nodes
+        doesn't make a measurable performance difference here in any case I could find)
+        * bindings/js/JSXMLHttpRequest.cpp:
+        (KJS::JSXMLHttpRequest::getValueProperty): Adjust for the fact that ressponseText
+        is now stored as a UString.
+        * bindings/js/kjs_binding.cpp:
+        (KJS::jsOwnedStringOrNull): New helper.
+        * bindings/js/kjs_binding.h:
+        * xml/XMLHttpRequest.cpp:
+        (WebCore::XMLHttpRequest::getResponseText): It's a UString!
+        (WebCore::XMLHttpRequest::getResponseXML): handle the fact that m_responseText
+        is a UString.
+        (WebCore::XMLHttpRequest::XMLHttpRequest): ditto.
+        (WebCore::XMLHttpRequest::abort): call dropProtection
+        (WebCore::XMLHttpRequest::didFinishLoading): call dropProtection
+        (WebCore::XMLHttpRequest::dropProtection): after removing our GC protection,
+        report extra cost of this XHR's responseText buffer.
+        * xml/XMLHttpRequest.h:
+
 2007-07-25  Timothy Hatcher  <timothy@apple.com>
 
         Reviewed by Brady.
index 57b7dc4..0f19300 100644 (file)
@@ -64,6 +64,13 @@ JSValue* toJS(ExecState* exec, Document* doc)
     // back/forward cache.
     if (doc->frame())
         Window::retrieveWindow(doc->frame())->putDirect("document", ret, DontDelete|ReadOnly);
+    else {
+        size_t nodeCount = 0;
+        for (Node* n = doc; n; n = n->traverseNextNode())
+            nodeCount++;
+        
+        Collector::reportExtraMemoryCost(nodeCount * sizeof(Node));
+    }
 
     interp->putDOMObject(doc, ret);
 
index 2a696c0..f4aab3b 100644 (file)
@@ -104,7 +104,7 @@ JSValue* JSXMLHttpRequest::getValueProperty(ExecState* exec, int token) const
         case ReadyState:
             return jsNumber(m_impl->getReadyState());
         case ResponseText:
-            return jsStringOrNull(m_impl->getResponseText());
+            return jsOwnedStringOrNull(m_impl->getResponseText());
         case ResponseXML:
             if (Document* responseXML = m_impl->getResponseXML())
                 return toJS(exec, responseXML);
index 516bf53..3dc5810 100644 (file)
@@ -298,6 +298,13 @@ JSValue* jsStringOrNull(const String& s)
     return jsString(s);
 }
 
+JSValue* jsOwnedStringOrNull(const KJS::UString& s)
+{
+    if (s.isNull())
+        return jsNull();
+    return jsOwnedString(s);
+}
+
 JSValue* jsStringOrUndefined(const String& s)
 {
     if (s.isNull())
index b97bad6..501e65c 100644 (file)
@@ -146,6 +146,11 @@ namespace KJS {
     JSValue* jsStringOrNull(const WebCore::String&); // null if the string is null
     JSValue* jsStringOrUndefined(const WebCore::String&); // undefined if the string is null
     JSValue* jsStringOrFalse(const WebCore::String&); // boolean false if the string is null
+
+    // see JavaScriptCore for explanation should be used for UString that is already owned
+    // by another object, so that collecting the JSString wrapper is unlikely to save memory.
+    JSValue* jsOwnedStringOrNull(const KJS::UString&); 
+
     WebCore::String valueToStringWithNullCheck(ExecState*, JSValue*); // null String if the value is null
     WebCore::String valueToStringWithUndefinedOrNullCheck(ExecState*, JSValue*); // null String if the value is null or undefined
 
diff --git a/WebCore/manual-tests/memory/MessageUidsAlreadyDownloaded2 b/WebCore/manual-tests/memory/MessageUidsAlreadyDownloaded2
new file mode 100644 (file)
index 0000000..57269f6
--- /dev/null
@@ -0,0 +1,4296 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+       <key>1154111803.H358449P19268.mbox1.freenet.de,S=22050,L=363</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-07-28T19:13:46Z</date>
+       </dict>
+       <key>1154117771.H461347P398.mbox1.freenet.de,S=2443,L=89</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-07-28T20:22:43Z</date>
+       </dict>
+       <key>1154118461.H845954P11540.mbox1.freenet.de,S=2073,L=60</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-07-28T20:34:37Z</date>
+       </dict>
+       <key>1154119399.H723288P24749.mbox1.freenet.de,S=3784,L=75</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-07-29T06:17:48Z</date>
+       </dict>
+       <key>1154120527.H499834P7002.mbox1.freenet.de,S=2428,L=49</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-07-29T06:17:49Z</date>
+       </dict>
+       <key>1154136928.H711235P7432.mbox1.freenet.de,S=2267,L=52</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-07-29T06:17:55Z</date>
+       </dict>
+       <key>1154141115.H278014P21772.mbox1.freenet.de,S=2648,L=94</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-07-29T06:17:55Z</date>
+       </dict>
+       <key>1154142404.H444143P13254.mbox1.freenet.de,S=26736,L=481</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-07-29T06:17:55Z</date>
+       </dict>
+       <key>1154143048.H4813P29876.mbox1.freenet.de,S=2432,L=57</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-07-29T06:17:55Z</date>
+       </dict>
+       <key>1154146079.H240331P27863.mbox1.freenet.de,S=3336,L=80</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-07-29T06:17:58Z</date>
+       </dict>
+       <key>1154148315.H16116P16385.mbox1.freenet.de,S=1973,L=56</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-07-29T06:17:58Z</date>
+       </dict>
+       <key>1154155911.H447952P8367.mbox1.freenet.de,S=9377,L=175</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-07-29T06:58:04Z</date>
+       </dict>
+       <key>1154156262.H931482P16302.mbox1.freenet.de,S=1467,L=39</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-07-29T06:58:04Z</date>
+       </dict>
+       <key>1154157562.H280906P1236.mbox1.freenet.de,S=35699,L=546</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-07-29T08:17:58Z</date>
+       </dict>
+       <key>1154157648.H144803P2338.mbox1.freenet.de,S=22613,L=370</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-07-29T08:17:58Z</date>
+       </dict>
+       <key>1154160958.H795942P22086.mbox1.freenet.de,S=2829,L=101</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-07-29T08:17:58Z</date>
+       </dict>
+       <key>1154164698.H624491P18335.mbox1.freenet.de,S=43702,L=1023</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-07-29T16:14:45Z</date>
+       </dict>
+       <key>1154167515.H972702P5030.mbox1.freenet.de,S=22467,L=368</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-07-29T16:14:46Z</date>
+       </dict>
+       <key>1154174670.H224050P30725.mbox1.freenet.de,S=3308,L=80</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-07-29T16:14:47Z</date>
+       </dict>
+       <key>1154176114.H743456P22579.mbox1.freenet.de,S=2006,L=57</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-07-29T16:14:47Z</date>
+       </dict>
+       <key>1154184971.H479935P25330.mbox1.freenet.de,S=2635,L=91</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-07-29T16:14:47Z</date>
+       </dict>
+       <key>1154185677.H789066P3851.mbox1.freenet.de,S=1167,L=34</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-07-29T16:14:47Z</date>
+       </dict>
+       <key>1154190799.H30721P17126.mbox1.freenet.de,S=3783,L=75</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-07-29T16:35:31Z</date>
+       </dict>
+       <key>1154194034.H891700P4354.mbox1.freenet.de,S=2153,L=51</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-07-29T17:35:31Z</date>
+       </dict>
+       <key>1154198323.H243017P9092.mbox1.freenet.de,S=1500,L=38</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-07-29T18:56:10Z</date>
+       </dict>
+       <key>1154201448.H521281P30530.mbox1.freenet.de,S=3766,L=110</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-07-29T19:35:34Z</date>
+       </dict>
+       <key>1154201733.H742067P3354.mbox1.freenet.de,S=1374,L=35</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-07-29T19:35:34Z</date>
+       </dict>
+       <key>1154202656.H351645P17823.mbox1.freenet.de,S=22871,L=370</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-07-29T19:55:49Z</date>
+       </dict>
+       <key>1154206406.H789099P8315.mbox1.freenet.de,S=1975,L=56</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-07-29T21:11:07Z</date>
+       </dict>
+       <key>1154207701.H462086P24032.mbox1.freenet.de,S=2628,L=92</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-07-29T21:54:47Z</date>
+       </dict>
+       <key>1154211428.H139331P11450.mbox1.freenet.de,S=1978,L=58</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-07-30T07:32:37Z</date>
+       </dict>
+       <key>1154211730.H16038P14828.mbox1.freenet.de,S=7500,L=226</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-07-30T07:32:39Z</date>
+       </dict>
+       <key>1154221130.H326563P6974.mbox1.freenet.de,S=2771,L=79</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-07-30T07:32:39Z</date>
+       </dict>
+       <key>1154222657.H751377P30045.mbox1.freenet.de,S=2197,L=48</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-07-30T07:32:39Z</date>
+       </dict>
+       <key>1154226264.H252785P28758.mbox1.freenet.de,S=2933,L=80</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-07-30T07:32:39Z</date>
+       </dict>
+       <key>1154230453.H837438P7526.mbox1.freenet.de,S=3571,L=78</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-07-30T07:32:41Z</date>
+       </dict>
+       <key>1154236571.H729085P28582.mbox1.freenet.de,S=2807,L=80</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-07-30T07:32:41Z</date>
+       </dict>
+       <key>1154236783.H955292P30199.mbox1.freenet.de,S=2188,L=62</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-07-30T07:32:41Z</date>
+       </dict>
+       <key>1154242354.H170494P14687.mbox1.freenet.de,S=9625,L=63</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-07-30T07:32:41Z</date>
+       </dict>
+       <key>1154242855.H757856P18626.mbox1.freenet.de,S=2672,L=91</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-07-30T07:32:41Z</date>
+       </dict>
+       <key>1154244551.H920942P2192.mbox1.freenet.de,S=2207,L=53</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-07-30T07:32:41Z</date>
+       </dict>
+       <key>1154263532.H193325P22924.mbox1.freenet.de,S=2039,L=57</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-07-30T12:46:38Z</date>
+       </dict>
+       <key>1154265275.H367713P16996.mbox1.freenet.de,S=2198,L=51</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-07-30T13:16:47Z</date>
+       </dict>
+       <key>1154282347.H20977P3823.mbox1.freenet.de,S=9587,L=199</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-06T14:33:16Z</date>
+       </dict>
+       <key>1154288804.H803763P8206.mbox1.freenet.de,S=2058,L=58</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-06T14:33:17Z</date>
+       </dict>
+       <key>1154299820.H477576P18033.mbox1.freenet.de,S=2618,L=93</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-06T14:33:18Z</date>
+       </dict>
+       <key>1154310315.H820113P1827.mbox1.freenet.de,S=3799,L=110</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-06T14:33:19Z</date>
+       </dict>
+       <key>1154311499.H546032P13891.mbox1.freenet.de,S=2233,L=52</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-06T14:33:19Z</date>
+       </dict>
+       <key>1154318224.H536896P14968.mbox1.freenet.de,S=8805,L=157</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-06T14:33:22Z</date>
+       </dict>
+       <key>1154319854.H210142P26288.mbox1.freenet.de,S=2446,L=56</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-06T14:33:22Z</date>
+       </dict>
+       <key>1154321361.H711271P5428.mbox1.freenet.de,S=2036,L=59</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-06T14:33:22Z</date>
+       </dict>
+       <key>1154322532.H550166P17256.mbox1.freenet.de,S=3144,L=110</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-06T14:33:22Z</date>
+       </dict>
+       <key>1154325187.H294135P17861.mbox1.freenet.de,S=3459,L=77</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-06T14:33:22Z</date>
+       </dict>
+       <key>1154330389.H180134P593.mbox1.freenet.de,S=2768,L=94</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-06T14:33:22Z</date>
+       </dict>
+       <key>1154330589.H853877P3916.mbox1.freenet.de,S=2048,L=58</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-06T14:33:22Z</date>
+       </dict>
+       <key>1154330917.H159606P9329.mbox1.freenet.de,S=28506,L=562</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-06T14:33:22Z</date>
+       </dict>
+       <key>1154335492.H583581P30769.mbox1.freenet.de,S=3134,L=110</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-06T14:33:22Z</date>
+       </dict>
+       <key>1154339191.H120444P8465.mbox1.freenet.de,S=3063,L=77</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-06T14:33:22Z</date>
+       </dict>
+       <key>1154339572.H788076P15350.mbox1.freenet.de,S=1586,L=45</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-06T14:33:22Z</date>
+       </dict>
+       <key>1154341116.H784100P13474.mbox1.freenet.de,S=9493,L=69</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-06T14:33:23Z</date>
+       </dict>
+       <key>1154350115.H216883P8871.mbox1.freenet.de,S=3376,L=81</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-06T14:33:23Z</date>
+       </dict>
+       <key>1154352077.H598131P13951.mbox1.freenet.de,S=2053,L=58</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-06T14:33:23Z</date>
+       </dict>
+       <key>1154357533.H427278P29986.mbox1.freenet.de,S=5214,L=126</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-06T14:33:23Z</date>
+       </dict>
+       <key>1154368111.H681374P21908.mbox1.freenet.de,S=3384,L=81</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-06T14:33:23Z</date>
+       </dict>
+       <key>1154372487.H589212P18160.mbox1.freenet.de,S=1805,L=47</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-06T14:33:23Z</date>
+       </dict>
+       <key>1154373426.H113666P5693.mbox1.freenet.de,S=1955,L=50</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-06T14:33:23Z</date>
+       </dict>
+       <key>1154374064.H646622P19789.mbox1.freenet.de,S=16327,L=260</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-06T14:33:27Z</date>
+       </dict>
+       <key>1154374390.H822597P26688.mbox1.freenet.de,S=29058,L=568</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-06T14:33:27Z</date>
+       </dict>
+       <key>1154374877.H443661P8856.mbox1.freenet.de,S=7478,L=144</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-06T14:33:27Z</date>
+       </dict>
+       <key>1154378335.H372820P17205.mbox1.freenet.de,S=29708,L=578</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-06T14:33:27Z</date>
+       </dict>
+       <key>1154380198.H919219P16039.mbox1.freenet.de,S=1617,L=41</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-06T14:33:27Z</date>
+       </dict>
+       <key>1154380266.H829510P17338.mbox1.freenet.de,S=3159,L=92</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-06T14:33:27Z</date>
+       </dict>
+       <key>1154381245.H781041P971.mbox1.freenet.de,S=29486,L=573</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-06T14:33:27Z</date>
+       </dict>
+       <key>1154383826.H581519P5619.mbox1.freenet.de,S=2491,L=58</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-06T14:33:27Z</date>
+       </dict>
+       <key>1154383907.H914484P6602.mbox1.freenet.de,S=2579,L=59</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-06T14:33:27Z</date>
+       </dict>
+       <key>1154389136.H486057P2884.mbox1.freenet.de,S=18921,L=508</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-06T14:33:27Z</date>
+       </dict>
+       <key>1154406313.H251951P16905.mbox1.freenet.de,S=8234,L=91</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-06T14:33:27Z</date>
+       </dict>
+       <key>1154406403.H74248P17793.mbox1.freenet.de,S=1468,L=39</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-06T14:33:27Z</date>
+       </dict>
+       <key>1154406904.H284040P25564.mbox1.freenet.de,S=1328,L=30</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-06T14:33:27Z</date>
+       </dict>
+       <key>1154410875.H702423P10666.mbox1.freenet.de,S=3436,L=95</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-06T14:33:27Z</date>
+       </dict>
+       <key>1154411027.H712871P13320.mbox1.freenet.de,S=2299,L=45</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-06T14:33:27Z</date>
+       </dict>
+       <key>1154412960.H909004P13832.mbox1.freenet.de,S=3304,L=92</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-06T14:33:30Z</date>
+       </dict>
+       <key>1154423513.H859512P10214.mbox1.freenet.de,S=2261,L=66</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-06T14:33:30Z</date>
+       </dict>
+       <key>1154432726.H69271P12439.mbox1.freenet.de,S=1774,L=41</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-06T14:33:30Z</date>
+       </dict>
+       <key>1154433859.H266614P4663.mbox1.freenet.de,S=61054,L=790</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-06T14:33:30Z</date>
+       </dict>
+       <key>1154437434.H599023P17039.mbox1.freenet.de,S=3191,L=92</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-06T14:33:30Z</date>
+       </dict>
+       <key>1154446410.H329415P18075.mbox1.freenet.de,S=1871,L=41</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-06T14:33:30Z</date>
+       </dict>
+       <key>1154446719.H706064P27099.mbox1.freenet.de,S=1666,L=40</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-06T14:33:30Z</date>
+       </dict>
+       <key>1154452994.H219957P9909.mbox1.freenet.de,S=3768,L=109</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-06T14:33:30Z</date>
+       </dict>
+       <key>1154456797.H410486P5536.mbox1.freenet.de,S=3808,L=112</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-06T14:33:30Z</date>
+       </dict>
+       <key>1154458368.H152307P9225.mbox1.freenet.de,S=2298,L=46</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-06T14:33:34Z</date>
+       </dict>
+       <key>1154459822.H574797P13606.mbox1.freenet.de,S=2294,L=44</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-06T14:33:34Z</date>
+       </dict>
+       <key>1154462619.H765747P10024.mbox1.freenet.de,S=2075,L=58</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-06T14:33:34Z</date>
+       </dict>
+       <key>1154464640.H274928P18932.mbox1.freenet.de,S=2051,L=59</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-06T14:33:34Z</date>
+       </dict>
+       <key>1154467696.H267955P13501.mbox1.freenet.de,S=26182,L=563</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-06T14:33:34Z</date>
+       </dict>
+       <key>1154467775.H548080P14727.mbox1.freenet.de,S=29184,L=578</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-06T14:33:34Z</date>
+       </dict>
+       <key>1154470343.H767624P26215.mbox1.freenet.de,S=2613,L=95</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-06T14:33:34Z</date>
+       </dict>
+       <key>1154479256.H884595P18388.mbox1.freenet.de,S=17010,L=293</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-06T14:33:34Z</date>
+       </dict>
+       <key>1154479329.H790239P19426.mbox1.freenet.de,S=29841,L=576</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-06T14:33:34Z</date>
+       </dict>
+       <key>1154482204.H318144P19613.mbox1.freenet.de,S=2919,L=80</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-06T14:33:34Z</date>
+       </dict>
+       <key>1154492754.H490902P13765.mbox1.freenet.de,S=3224,L=92</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-06T14:33:34Z</date>
+       </dict>
+       <key>1154496852.H422665P22937.mbox1.freenet.de,S=2168,L=61</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-06T14:33:34Z</date>
+       </dict>
+       <key>1154500305.H761267P3003.mbox1.freenet.de,S=2055,L=59</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-06T14:33:34Z</date>
+       </dict>
+       <key>1154502841.H481665P7299.mbox1.freenet.de,S=9029,L=158</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-06T14:33:37Z</date>
+       </dict>
+       <key>1154503390.H907552P21594.mbox1.freenet.de,S=1355,L=30</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-06T14:33:37Z</date>
+       </dict>
+       <key>1154506274.H963865P12453.mbox1.freenet.de,S=1538,L=33</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-06T14:33:37Z</date>
+       </dict>
+       <key>1154507112.H636295P4391.mbox1.freenet.de,S=1545,L=41</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-06T14:33:37Z</date>
+       </dict>
+       <key>1154510432.H500772P6353.mbox1.freenet.de,S=8098,L=136</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-06T14:33:37Z</date>
+       </dict>
+       <key>1154510812.H930961P17880.mbox1.freenet.de,S=3269,L=80</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-06T14:33:37Z</date>
+       </dict>
+       <key>1154511935.H742983P21884.mbox1.freenet.de,S=4303,L=63</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-06T14:33:37Z</date>
+       </dict>
+       <key>1154518569.H771158P3018.mbox1.freenet.de,S=3228,L=92</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-06T14:33:37Z</date>
+       </dict>
+       <key>1154518727.H778942P8528.mbox1.freenet.de,S=7727,L=181</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-06T14:33:37Z</date>
+       </dict>
+       <key>1154525091.H309996P14768.mbox1.freenet.de,S=1577,L=49</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-06T14:33:37Z</date>
+       </dict>
+       <key>1154527275.H61884P18991.mbox1.freenet.de,S=1629,L=50</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-06T14:33:37Z</date>
+       </dict>
+       <key>1154528083.H278774P12141.mbox1.freenet.de,S=3469,L=95</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-06T14:33:37Z</date>
+       </dict>
+       <key>1154531670.H161741P576.mbox1.freenet.de,S=17904,L=307</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-06T14:33:37Z</date>
+       </dict>
+       <key>1154540694.H424930P11508.mbox1.freenet.de,S=2100,L=46</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-06T14:33:37Z</date>
+       </dict>
+       <key>1154541967.H480715P24795.mbox1.freenet.de,S=34667,L=1135</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-06T14:33:37Z</date>
+       </dict>
+       <key>1154544700.H204133P16065.mbox1.freenet.de,S=7518,L=177</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-06T14:33:37Z</date>
+       </dict>
+       <key>1154545974.H878571P10429.mbox1.freenet.de,S=17643,L=304</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-06T14:33:37Z</date>
+       </dict>
+       <key>1154547134.H790776P6068.mbox1.freenet.de,S=2129,L=35</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-06T14:33:37Z</date>
+       </dict>
+       <key>1154547134.H791582P6082.mbox1.freenet.de,S=2109,L=35</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-06T14:33:37Z</date>
+       </dict>
+       <key>1154552079.H183013P26609.mbox1.freenet.de,S=1557,L=34</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-06T14:33:37Z</date>
+       </dict>
+       <key>1154558833.H680601P19873.mbox1.freenet.de,S=29014,L=565</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-06T14:33:41Z</date>
+       </dict>
+       <key>1154559443.H629394P27069.mbox1.freenet.de,S=28201,L=565</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-06T14:33:41Z</date>
+       </dict>
+       <key>1154559705.H963621P30624.mbox1.freenet.de,S=1658,L=52</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-06T14:33:41Z</date>
+       </dict>
+       <key>1154559903.H128255P635.mbox1.freenet.de,S=4293,L=115</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-06T14:33:41Z</date>
+       </dict>
+       <key>1154561841.H24917P22788.mbox1.freenet.de,S=1678,L=51</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-06T14:33:41Z</date>
+       </dict>
+       <key>1154565078.H552095P24820.mbox1.freenet.de,S=1571,L=49</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-06T14:33:41Z</date>
+       </dict>
+       <key>1154567656.H888068P19790.mbox1.freenet.de,S=28626,L=565</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-06T14:33:41Z</date>
+       </dict>
+       <key>1154577271.H344493P18097.mbox1.freenet.de,S=2687,L=94</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-06T14:33:41Z</date>
+       </dict>
+       <key>1154581483.H783928P29693.mbox1.freenet.de,S=1956,L=49</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-06T14:33:41Z</date>
+       </dict>
+       <key>1154592204.H40007P17630.mbox1.freenet.de,S=1723,L=37</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-06T14:33:41Z</date>
+       </dict>
+       <key>1154596091.H624074P1470.mbox1.freenet.de,S=1771,L=53</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-06T14:33:41Z</date>
+       </dict>
+       <key>1154596322.H41452P6095.mbox1.freenet.de,S=3290,L=93</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-06T14:33:41Z</date>
+       </dict>
+       <key>1154596653.H393287P14440.mbox1.freenet.de,S=1662,L=49</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-06T14:33:41Z</date>
+       </dict>
+       <key>1154602697.H48510P21068.mbox1.freenet.de,S=3294,L=81</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-06T14:33:41Z</date>
+       </dict>
+       <key>1154610123.H590789P10560.mbox1.freenet.de,S=5389,L=140</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-06T14:33:41Z</date>
+       </dict>
+       <key>1154611988.H804047P20437.mbox1.freenet.de,S=15159,L=234</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-06T14:33:41Z</date>
+       </dict>
+       <key>1154620474.H342588P28635.mbox1.freenet.de,S=8578,L=239</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-06T14:33:41Z</date>
+       </dict>
+       <key>1154624033.H534525P3741.mbox1.freenet.de,S=3097,L=109</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-06T14:33:41Z</date>
+       </dict>
+       <key>1154624721.H847487P16221.mbox1.freenet.de,S=1666,L=49</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-06T14:33:41Z</date>
+       </dict>
+       <key>1154625169.H409170P24163.mbox1.freenet.de,S=1810,L=52</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-06T14:33:41Z</date>
+       </dict>
+       <key>1154630617.H489240P18189.mbox1.freenet.de,S=15420,L=449</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-06T14:33:45Z</date>
+       </dict>
+       <key>1154630832.H617668P26506.mbox1.freenet.de,S=3275,L=92</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-06T14:33:45Z</date>
+       </dict>
+       <key>1154632455.H73886P5468.mbox1.freenet.de,S=41479,L=739</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-06T14:33:45Z</date>
+       </dict>
+       <key>1154636004.H213292P11542.mbox1.freenet.de,S=2073,L=43</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-06T14:33:45Z</date>
+       </dict>
+       <key>1154648684.H553339P9249.mbox1.freenet.de,S=1283,L=30</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-06T14:33:45Z</date>
+       </dict>
+       <key>1154654111.H342601P28367.mbox1.freenet.de,S=1749,L=51</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-06T14:33:45Z</date>
+       </dict>
+       <key>1154654548.H92597P32115.mbox1.freenet.de,S=1582,L=49</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-06T14:33:45Z</date>
+       </dict>
+       <key>1154663797.H236313P19106.mbox1.freenet.de,S=3212,L=91</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-06T14:33:45Z</date>
+       </dict>
+       <key>1154666007.H220170P15121.mbox1.freenet.de,S=2399,L=60</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-06T14:33:45Z</date>
+       </dict>
+       <key>1154674137.H953239P18937.mbox1.freenet.de,S=1780,L=44</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-06T14:33:45Z</date>
+       </dict>
+       <key>1154674539.H433913P29115.mbox1.freenet.de,S=1726,L=42</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-06T14:33:45Z</date>
+       </dict>
+       <key>1154678097.H775074P29674.mbox1.freenet.de,S=2118,L=50</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-06T14:33:45Z</date>
+       </dict>
+       <key>1154681470.H721664P30619.mbox1.freenet.de,S=1653,L=50</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-06T14:33:45Z</date>
+       </dict>
+       <key>1154681835.H440294P5887.mbox1.freenet.de,S=3303,L=92</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-06T14:33:45Z</date>
+       </dict>
+       <key>1154683329.H499060P3008.mbox1.freenet.de,S=2973,L=107</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-06T14:33:45Z</date>
+       </dict>
+       <key>1154683349.H475784P3421.mbox1.freenet.de,S=1635,L=49</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-06T14:33:45Z</date>
+       </dict>
+       <key>1154684133.H456313P20424.mbox1.freenet.de,S=16757,L=398</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-06T14:33:45Z</date>
+       </dict>
+       <key>1154686227.H264355P3267.mbox1.freenet.de,S=5053,L=132</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-06T14:33:45Z</date>
+       </dict>
+       <key>1154693255.H104812P23648.mbox1.freenet.de,S=3269,L=91</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-06T14:33:45Z</date>
+       </dict>
+       <key>1154701385.H313603P24878.mbox1.freenet.de,S=1747,L=53</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-06T14:33:45Z</date>
+       </dict>
+       <key>1154706438.H888975P28377.mbox1.freenet.de,S=8804,L=156</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-06T14:33:45Z</date>
+       </dict>
+       <key>1154709564.H133555P12044.mbox1.freenet.de,S=1687,L=50</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-06T14:33:45Z</date>
+       </dict>
+       <key>1154711177.H804272P9516.mbox1.freenet.de,S=3008,L=81</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-06T14:33:45Z</date>
+       </dict>
+       <key>1154711962.H906792P24181.mbox1.freenet.de,S=1714,L=51</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-06T14:33:45Z</date>
+       </dict>
+       <key>1154712249.H863087P31306.mbox1.freenet.de,S=1346,L=31</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-06T14:33:48Z</date>
+       </dict>
+       <key>1154713540.H686084P26445.mbox1.freenet.de,S=1553,L=38</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-06T14:33:48Z</date>
+       </dict>
+       <key>1154713751.H55777P30321.mbox1.freenet.de,S=1656,L=39</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-06T14:33:48Z</date>
+       </dict>
+       <key>1154714170.H614557P4421.mbox1.freenet.de,S=3281,L=92</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-06T14:33:48Z</date>
+       </dict>
+       <key>1154718674.H962131P20772.mbox1.freenet.de,S=2187,L=51</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-06T14:33:48Z</date>
+       </dict>
+       <key>1154736338.H750416P22092.mbox1.freenet.de,S=1653,L=52</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-06T14:33:48Z</date>
+       </dict>
+       <key>1154737824.H694419P4946.mbox1.freenet.de,S=3256,L=92</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-06T14:33:48Z</date>
+       </dict>
+       <key>1154739519.H564665P7297.mbox1.freenet.de,S=1480,L=48</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-06T14:33:48Z</date>
+       </dict>
+       <key>1154742580.H145981P16735.mbox1.freenet.de,S=3083,L=109</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-06T14:33:48Z</date>
+       </dict>
+       <key>1154748952.H268713P25433.mbox1.freenet.de,S=1582,L=28</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-06T14:33:48Z</date>
+       </dict>
+       <key>1154762163.H879963P5656.mbox1.freenet.de,S=1743,L=53</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-06T14:33:48Z</date>
+       </dict>
+       <key>1154762709.H416283P12536.mbox1.freenet.de,S=36151,L=651</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-06T14:33:48Z</date>
+       </dict>
+       <key>1154764703.H681259P13907.mbox1.freenet.de,S=5585,L=142</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-06T14:33:48Z</date>
+       </dict>
+       <key>1154765905.H451651P2578.mbox1.freenet.de,S=1823,L=52</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-06T14:33:48Z</date>
+       </dict>
+       <key>1154769448.H539772P24732.mbox1.freenet.de,S=30509,L=579</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-06T14:33:48Z</date>
+       </dict>
+       <key>1154771241.H958339P23393.mbox1.freenet.de,S=2643,L=48</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-06T14:33:48Z</date>
+       </dict>
+       <key>1154771454.H867661P26915.mbox1.freenet.de,S=3250,L=92</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-06T14:33:48Z</date>
+       </dict>
+       <key>1154772483.H759921P10662.mbox1.freenet.de,S=31161,L=584</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-06T14:33:48Z</date>
+       </dict>
+       <key>1154774590.H735607P14785.mbox1.freenet.de,S=1349,L=36</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-06T14:33:48Z</date>
+       </dict>
+       <key>1154780998.H350794P2186.mbox1.freenet.de,S=1476,L=37</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-06T14:33:48Z</date>
+       </dict>
+       <key>1154783729.H629301P24338.mbox1.freenet.de,S=1828,L=42</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-06T14:33:48Z</date>
+       </dict>
+       <key>1154787802.H457991P5386.mbox1.freenet.de,S=1693,L=51</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-06T14:33:48Z</date>
+       </dict>
+       <key>1154793287.H907122P26499.mbox1.freenet.de,S=1979,L=57</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-06T14:33:51Z</date>
+       </dict>
+       <key>1154796083.H582751P18038.mbox1.freenet.de,S=3393,L=94</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-06T14:33:51Z</date>
+       </dict>
+       <key>1154800164.H457883P20118.mbox1.freenet.de,S=1586,L=38</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-06T14:33:51Z</date>
+       </dict>
+       <key>1154802791.H175746P2813.mbox1.freenet.de,S=32753,L=593</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-06T14:33:51Z</date>
+       </dict>
+       <key>1154807187.H620176P8421.mbox1.freenet.de,S=2249,L=37</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-06T14:33:51Z</date>
+       </dict>
+       <key>1154808376.H73702P29758.mbox1.freenet.de,S=31175,L=583</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-06T14:33:51Z</date>
+       </dict>
+       <key>1154815352.H547663P23781.mbox1.freenet.de,S=2226,L=53</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-06T14:33:51Z</date>
+       </dict>
+       <key>1154815852.H497641P28672.mbox1.freenet.de,S=1640,L=52</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-06T14:33:51Z</date>
+       </dict>
+       <key>1154819844.H89068P3941.mbox1.freenet.de,S=1629,L=49</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-06T14:33:51Z</date>
+       </dict>
+       <key>1154824220.H394534P13505.mbox1.freenet.de,S=3228,L=91</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-06T14:33:51Z</date>
+       </dict>
+       <key>1154825688.H313706P30527.mbox1.freenet.de,S=1339,L=30</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-06T14:33:51Z</date>
+       </dict>
+       <key>1154833081.H437178P7263.mbox1.freenet.de,S=1671,L=51</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-06T14:33:51Z</date>
+       </dict>
+       <key>1154834629.H62247P20542.mbox1.freenet.de,S=32275,L=589</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-06T14:33:51Z</date>
+       </dict>
+       <key>1154834996.H616625P23803.mbox1.freenet.de,S=2314,L=50</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-06T14:33:51Z</date>
+       </dict>
+       <key>1154835617.H514035P28790.mbox1.freenet.de,S=32395,L=590</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-06T14:33:51Z</date>
+       </dict>
+       <key>1154838795.H268666P26334.mbox1.freenet.de,S=3237,L=112</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-06T14:33:52Z</date>
+       </dict>
+       <key>1154842431.H758835P9655.mbox1.freenet.de,S=1859,L=35</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-06T14:33:52Z</date>
+       </dict>
+       <key>1154842671.H909620P13204.mbox1.freenet.de,S=1899,L=36</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-06T14:33:52Z</date>
+       </dict>
+       <key>1154845999.H991416P17794.mbox1.freenet.de,S=1522,L=48</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-06T14:33:52Z</date>
+       </dict>
+       <key>1154847930.H731674P21637.mbox1.freenet.de,S=1682,L=52</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-06T14:33:52Z</date>
+       </dict>
+       <key>1154850230.H929566P13366.mbox1.freenet.de,S=2687,L=70</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-06T14:33:52Z</date>
+       </dict>
+       <key>1154853778.H392687P27949.mbox1.freenet.de,S=1510,L=30</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-06T14:33:52Z</date>
+       </dict>
+       <key>1154858210.H631452P8577.mbox1.freenet.de,S=1949,L=35</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-06T14:33:52Z</date>
+       </dict>
+       <key>1154866627.H35308P2473.mbox1.freenet.de,S=2118,L=52</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-06T14:33:52Z</date>
+       </dict>
+       <key>1154870895.H472229P15808.mbox1.freenet.de,S=1666,L=50</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-06T14:33:52Z</date>
+       </dict>
+       <key>1154873038.H830117P19580.mbox1.freenet.de,S=1821,L=53</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-06T14:33:52Z</date>
+       </dict>
+       <key>1154874938.H570736P20318.mbox1.freenet.de,S=9402,L=195</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-06T17:16:29Z</date>
+       </dict>
+       <key>1154879259.H913434P702.mbox1.freenet.de,S=5899,L=123</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-06T17:16:29Z</date>
+       </dict>
+       <key>1154892728.H872013P14934.mbox1.freenet.de,S=8171,L=176</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-06T20:03:30Z</date>
+       </dict>
+       <key>1154893187.H782991P23768.mbox1.freenet.de,S=2273,L=36</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-06T20:03:33Z</date>
+       </dict>
+       <key>1154896088.H57751P7859.mbox1.freenet.de,S=1746,L=51</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-06T20:29:21Z</date>
+       </dict>
+       <key>1154897034.H715417P27754.mbox1.freenet.de,S=1355,L=31</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-07T06:15:32Z</date>
+       </dict>
+       <key>1154897842.H192629P9304.mbox1.freenet.de,S=1775,L=51</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-07T06:15:34Z</date>
+       </dict>
+       <key>1154908466.H256444P4309.mbox1.freenet.de,S=9612,L=202</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-07T06:15:34Z</date>
+       </dict>
+       <key>1154913087.H603613P15691.mbox1.freenet.de,S=3458,L=95</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-07T06:15:34Z</date>
+       </dict>
+       <key>1154921729.H699962P10129.mbox1.freenet.de,S=32365,L=590</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-07T06:15:36Z</date>
+       </dict>
+       <key>1154925637.H501014P19587.mbox1.freenet.de,S=2030,L=34</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-07T06:15:36Z</date>
+       </dict>
+       <key>1154926530.H205520P969.mbox1.freenet.de,S=1497,L=39</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-07T06:15:36Z</date>
+       </dict>
+       <key>1154928611.H397993P27462.mbox1.freenet.de,S=1781,L=53</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-07T06:15:36Z</date>
+       </dict>
+       <key>1154930612.H415665P22794.mbox1.freenet.de,S=1608,L=50</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-07T06:15:36Z</date>
+       </dict>
+       <key>1154931196.H488624P31905.mbox1.freenet.de,S=31260,L=582</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-07T06:15:36Z</date>
+       </dict>
+       <key>1154933559.H443205P4635.mbox1.freenet.de,S=6551340,L=85105</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-07T06:58:36Z</date>
+       </dict>
+       <key>1154938322.H156182P23187.mbox1.freenet.de,S=2208,L=52</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-07T10:43:42Z</date>
+       </dict>
+       <key>1154939863.H828842P20902.mbox1.freenet.de,S=1646,L=39</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-07T10:43:43Z</date>
+       </dict>
+       <key>1154944050.H239620P3977.mbox1.freenet.de,S=1614,L=34</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-07T10:43:43Z</date>
+       </dict>
+       <key>1154944762.H411027P17426.mbox1.freenet.de,S=3329,L=93</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-07T10:43:43Z</date>
+       </dict>
+       <key>1154946936.H546750P29015.mbox1.freenet.de,S=16127,L=450</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-07T10:43:43Z</date>
+       </dict>
+       <key>1154950715.H932658P9753.mbox1.freenet.de,S=3123,L=57</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-07T11:44:24Z</date>
+       </dict>
+       <key>1154955826.H244494P25346.mbox1.freenet.de,S=1815,L=53</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-07T13:33:31Z</date>
+       </dict>
+       <key>1154956871.H53807P29765.mbox1.freenet.de,S=1631,L=49</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-07T13:33:31Z</date>
+       </dict>
+       <key>1154961414.H983301P10603.mbox1.freenet.de,S=3053,L=86</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-07T14:39:43Z</date>
+       </dict>
+       <key>1154964711.H449025P23281.mbox1.freenet.de,S=5168,L=133</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-07T15:39:27Z</date>
+       </dict>
+       <key>1154969887.H902776P18126.mbox1.freenet.de,S=3227,L=92</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-07T18:29:33Z</date>
+       </dict>
+       <key>1154973242.H36323P30035.mbox1.freenet.de,S=1313,L=31</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-07T18:29:33Z</date>
+       </dict>
+       <key>1154978298.H254629P25143.mbox1.freenet.de,S=33034,L=597</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-07T19:42:39Z</date>
+       </dict>
+       <key>1154979552.H889611P20200.mbox1.freenet.de,S=2261,L=54</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-07T19:42:39Z</date>
+       </dict>
+       <key>1154980568.H271316P9540.mbox1.freenet.de,S=31898,L=588</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-07T20:17:30Z</date>
+       </dict>
+       <key>1154981484.H87054P30587.mbox1.freenet.de,S=1497,L=38</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-07T20:17:31Z</date>
+       </dict>
+       <key>1154981702.H412110P4514.mbox1.freenet.de,S=8573,L=154</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-07T20:17:31Z</date>
+       </dict>
+       <key>1154981870.H420131P9009.mbox1.freenet.de,S=1651,L=29</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-07T20:26:09Z</date>
+       </dict>
+       <key>1154982355.H370141P21708.mbox1.freenet.de,S=1428,L=35</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-07T20:26:09Z</date>
+       </dict>
+       <key>1154984295.H419999P24736.mbox1.freenet.de,S=1710,L=58</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-07T21:02:39Z</date>
+       </dict>
+       <key>1154986457.H837808P23722.mbox1.freenet.de,S=1762,L=58</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-08T07:11:56Z</date>
+       </dict>
+       <key>1154989237.H324641P29504.mbox1.freenet.de,S=1665,L=56</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-08T07:11:57Z</date>
+       </dict>
+       <key>1154995803.H199883P16986.mbox1.freenet.de,S=3240,L=95</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-08T07:11:57Z</date>
+       </dict>
+       <key>1155007768.H677900P17429.mbox1.freenet.de,S=3429,L=106</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-08T07:11:57Z</date>
+       </dict>
+       <key>1155012524.H237704P28385.mbox1.freenet.de,S=1690,L=58</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-08T07:11:57Z</date>
+       </dict>
+       <key>1155015722.H329094P31095.mbox1.freenet.de,S=1598,L=55</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-08T07:11:57Z</date>
+       </dict>
+       <key>1155017688.H202986P2108.mbox1.freenet.de,S=2416,L=64</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-08T07:11:57Z</date>
+       </dict>
+       <key>1155019544.H171597P31071.mbox1.freenet.de,S=14875,L=204</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-08T07:11:57Z</date>
+       </dict>
+       <key>1155021858.H445423P4116.mbox1.freenet.de,S=2196,L=47</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-08T08:06:11Z</date>
+       </dict>
+       <key>1155026416.H676559P25807.mbox1.freenet.de,S=4593,L=81</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-08T09:07:42Z</date>
+       </dict>
+       <key>1155026481.H855058P27126.mbox1.freenet.de,S=1880,L=54</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-08T09:07:42Z</date>
+       </dict>
+       <key>1155031071.H398485P26147.mbox1.freenet.de,S=14897,L=204</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-08T11:24:37Z</date>
+       </dict>
+       <key>1155034969.H2428P30391.mbox1.freenet.de,S=159386,L=2162</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-08T11:24:38Z</date>
+       </dict>
+       <key>1155038195.H291065P15043.mbox1.freenet.de,S=1987,L=36</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-08T12:28:23Z</date>
+       </dict>
+       <key>1155038654.H448775P28113.mbox1.freenet.de,S=1691,L=56</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-08T12:28:23Z</date>
+       </dict>
+       <key>1155039123.H590017P6572.mbox1.freenet.de,S=3229,L=90</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-08T12:28:23Z</date>
+       </dict>
+       <key>1155039545.H801292P14681.mbox1.freenet.de,S=1715,L=56</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-08T12:28:23Z</date>
+       </dict>
+       <key>1155041106.H6125P17272.mbox1.freenet.de,S=25559,L=395</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-08T13:41:32Z</date>
+       </dict>
+       <key>1155047666.H906085P12577.mbox1.freenet.de,S=2136,L=42</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-08T14:39:06Z</date>
+       </dict>
+       <key>1155050012.H159989P29286.mbox1.freenet.de,S=1652,L=39</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-08T19:47:30Z</date>
+       </dict>
+       <key>1155050208.H193791P1203.mbox1.freenet.de,S=1683,L=40</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-08T19:47:30Z</date>
+       </dict>
+       <key>1155050754.H895485P13244.mbox1.freenet.de,S=1761,L=41</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-08T19:47:30Z</date>
+       </dict>
+       <key>1155054454.H613144P13074.mbox1.freenet.de,S=14663,L=205</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-08T19:47:30Z</date>
+       </dict>
+       <key>1155056216.H853320P28840.mbox1.freenet.de,S=1562,L=28</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-08T19:47:31Z</date>
+       </dict>
+       <key>1155060313.H287349P23272.mbox1.freenet.de,S=14987,L=206</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-08T19:47:31Z</date>
+       </dict>
+       <key>1155066043.H154047P5837.mbox1.freenet.de,S=1627,L=55</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-08T19:47:31Z</date>
+       </dict>
+       <key>1155071351.H344743P26441.mbox1.freenet.de,S=3238,L=92</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-09T06:51:24Z</date>
+       </dict>
+       <key>1155075396.H2838P11152.mbox1.freenet.de,S=2242,L=37</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-09T06:51:24Z</date>
+       </dict>
+       <key>1155087979.H908982P472.mbox1.freenet.de,S=3206,L=92</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-09T06:51:24Z</date>
+       </dict>
+       <key>1155102590.H596945P18125.mbox1.freenet.de,S=1665,L=28</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-09T06:51:24Z</date>
+       </dict>
+       <key>1155105219.H245947P23254.mbox1.freenet.de,S=1691,L=39</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-09T06:51:24Z</date>
+       </dict>
+       <key>1155114184.H181845P9641.mbox1.freenet.de,S=1365,L=31</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-09T12:29:40Z</date>
+       </dict>
+       <key>1155116990.H948623P3005.mbox1.freenet.de,S=1483,L=39</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-09T12:29:46Z</date>
+       </dict>
+       <key>1155121665.H11872P25431.mbox1.freenet.de,S=2077,L=52</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-09T12:29:46Z</date>
+       </dict>
+       <key>1155121962.H936848P2813.mbox1.freenet.de,S=3159,L=92</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-09T12:29:46Z</date>
+       </dict>
+       <key>1155122252.H501745P12050.mbox1.freenet.de,S=21210,L=353</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-09T12:29:46Z</date>
+       </dict>
+       <key>1155125174.H102411P11794.mbox1.freenet.de,S=1882,L=35</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-09T12:29:46Z</date>
+       </dict>
+       <key>1155127037.H36718P9860.mbox1.freenet.de,S=5025,L=132</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-09T12:47:47Z</date>
+       </dict>
+       <key>1155129246.H357155P25173.mbox1.freenet.de,S=28808,L=427</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-09T13:17:20Z</date>
+       </dict>
+       <key>1155134270.H946819P22490.mbox1.freenet.de,S=3105,L=91</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-09T15:38:09Z</date>
+       </dict>
+       <key>1155137071.H215601P6019.mbox1.freenet.de,S=2153,L=69</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-09T15:38:10Z</date>
+       </dict>
+       <key>1155140096.H731141P5353.mbox1.freenet.de,S=27117,L=947</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-09T19:20:10Z</date>
+       </dict>
+       <key>1155147435.H883142P16666.mbox1.freenet.de,S=3254,L=92</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-09T19:20:17Z</date>
+       </dict>
+       <key>1155149346.H483480P3230.mbox1.freenet.de,S=1742,L=29</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-09T19:20:20Z</date>
+       </dict>
+       <key>1155152041.H89754P29468.mbox1.freenet.de,S=13453,L=186</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-09T20:08:49Z</date>
+       </dict>
+       <key>1155152549.H938827P6615.mbox1.freenet.de,S=1654,L=39</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-09T20:08:49Z</date>
+       </dict>
+       <key>1155155667.H706656P27859.mbox1.freenet.de,S=1670,L=56</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-09T21:04:16Z</date>
+       </dict>
+       <key>1155155721.H806685P29134.mbox1.freenet.de,S=1723,L=56</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-09T21:04:17Z</date>
+       </dict>
+       <key>1155155861.H55151P32242.mbox1.freenet.de,S=1457,L=28</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-09T21:04:17Z</date>
+       </dict>
+       <key>1155156698.H850532P19416.mbox1.freenet.de,S=13623,L=186</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-09T21:04:17Z</date>
+       </dict>
+       <key>1155159422.H265424P29763.mbox1.freenet.de,S=5487,L=143</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-10T06:41:11Z</date>
+       </dict>
+       <key>1155161221.H794333P25451.mbox1.freenet.de,S=3397,L=95</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-10T06:41:12Z</date>
+       </dict>
+       <key>1155167903.H387503P8670.mbox1.freenet.de,S=5102,L=130</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-10T06:41:12Z</date>
+       </dict>
+       <key>1155178649.H955288P12079.mbox1.freenet.de,S=3277,L=93</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-10T06:41:12Z</date>
+       </dict>
+       <key>1155186315.H470476P5661.mbox1.freenet.de,S=3487,L=61</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-10T06:41:12Z</date>
+       </dict>
+       <key>1155186658.H670900P15406.mbox1.freenet.de,S=1989,L=34</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-10T06:41:12Z</date>
+       </dict>
+       <key>1155186997.H18542P21862.mbox1.freenet.de,S=2150,L=37</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-10T06:41:12Z</date>
+       </dict>
+       <key>1155187306.H580672P27067.mbox1.freenet.de,S=2039,L=36</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-10T06:41:12Z</date>
+       </dict>
+       <key>1155199565.H850171P22348.mbox1.freenet.de,S=1390,L=42</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-10T18:48:28Z</date>
+       </dict>
+       <key>1155200503.H856923P16842.mbox1.freenet.de,S=1755,L=60</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-10T18:48:29Z</date>
+       </dict>
+       <key>1155205799.H539866P8747.mbox1.freenet.de,S=1448,L=32</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-10T18:48:29Z</date>
+       </dict>
+       <key>1155210205.H954514P4886.mbox1.freenet.de,S=5059,L=130</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-10T18:48:29Z</date>
+       </dict>
+       <key>1155211504.H549185P762.mbox1.freenet.de,S=3250,L=92</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-10T18:48:29Z</date>
+       </dict>
+       <key>1155219619.H759780P2552.mbox1.freenet.de,S=1373,L=35</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-10T18:48:29Z</date>
+       </dict>
+       <key>1155224527.H270710P25060.mbox1.freenet.de,S=7736,L=305</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-10T18:48:29Z</date>
+       </dict>
+       <key>1155226024.H400337P22956.mbox1.freenet.de,S=34091,L=713</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-10T18:48:30Z</date>
+       </dict>
+       <key>1155230782.H443448P26737.mbox1.freenet.de,S=13144,L=186</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-10T18:48:30Z</date>
+       </dict>
+       <key>1155243694.H163572P15822.mbox1.freenet.de,S=5506,L=143</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-11T07:02:06Z</date>
+       </dict>
+       <key>1155244054.H318166P26053.mbox1.freenet.de,S=1531,L=29</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-11T07:02:15Z</date>
+       </dict>
+       <key>1155246379.H408080P2400.mbox1.freenet.de,S=2226,L=36</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-11T07:02:15Z</date>
+       </dict>
+       <key>1155248794.H746051P3848.mbox1.freenet.de,S=2052,L=45</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-11T07:02:15Z</date>
+       </dict>
+       <key>1155250978.H781606P2109.mbox1.freenet.de,S=1601,L=27</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-11T07:02:15Z</date>
+       </dict>
+       <key>1155251595.H386382P13425.mbox1.freenet.de,S=1574,L=27</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-11T07:02:15Z</date>
+       </dict>
+       <key>1155252375.H816725P24987.mbox1.freenet.de,S=1577,L=27</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-11T07:02:15Z</date>
+       </dict>
+       <key>1155253496.H489745P3333.mbox1.freenet.de,S=3120,L=91</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-11T07:02:15Z</date>
+       </dict>
+       <key>1155263997.H396439P1002.mbox1.freenet.de,S=1640,L=56</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-11T07:02:15Z</date>
+       </dict>
+       <key>1155267607.H85281P31359.mbox1.freenet.de,S=13158,L=185</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-11T07:02:15Z</date>
+       </dict>
+       <key>1155268846.H494747P10094.mbox1.freenet.de,S=1951,L=40</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-11T07:02:15Z</date>
+       </dict>
+       <key>1155271169.H140042P28629.mbox1.freenet.de,S=2760,L=97</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-11T07:02:15Z</date>
+       </dict>
+       <key>1155274958.H592129P2743.mbox1.freenet.de,S=16365,L=260</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-11T07:02:15Z</date>
+       </dict>
+       <key>1155278275.H114040P11873.mbox1.freenet.de,S=1723,L=59</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-11T07:02:15Z</date>
+       </dict>
+       <key>1155288724.H433494P24215.mbox1.freenet.de,S=3220,L=91</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-11T10:26:06Z</date>
+       </dict>
+       <key>1155293569.H411195P21139.mbox1.freenet.de,S=2721,L=76</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-11T11:11:15Z</date>
+       </dict>
+       <key>1155295204.H811233P22677.mbox1.freenet.de,S=1621,L=57</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-11T11:21:09Z</date>
+       </dict>
+       <key>1155296029.H99298P8943.mbox1.freenet.de,S=5011,L=132</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-11T11:55:47Z</date>
+       </dict>
+       <key>1155297301.H522378P5338.mbox1.freenet.de,S=19298,L=303</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-11T11:55:47Z</date>
+       </dict>
+       <key>1155297492.H795867P9124.mbox1.freenet.de,S=1373,L=35</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-11T12:01:07Z</date>
+       </dict>
+       <key>1155300909.H622250P20310.mbox1.freenet.de,S=194228,L=2683</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-11T12:55:49Z</date>
+       </dict>
+       <key>1155308792.H250936P22936.mbox1.freenet.de,S=2028,L=36</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-11T15:10:52Z</date>
+       </dict>
+       <key>1155309026.H629799P28442.mbox1.freenet.de,S=1621,L=29</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-11T15:10:52Z</date>
+       </dict>
+       <key>1155312703.H180117P16780.mbox1.freenet.de,S=13163,L=186</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-11T17:01:07Z</date>
+       </dict>
+       <key>1155341164.H110377P27980.mbox1.freenet.de,S=1470,L=39</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-12T05:57:14Z</date>
+       </dict>
+       <key>1155341478.H462941P2015.mbox1.freenet.de,S=1599,L=33</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-12T05:57:17Z</date>
+       </dict>
+       <key>1155342793.H314697P19120.mbox1.freenet.de,S=1724,L=58</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-12T05:57:17Z</date>
+       </dict>
+       <key>1155343779.H48544P30268.mbox1.freenet.de,S=3201,L=100</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-12T05:57:17Z</date>
+       </dict>
+       <key>1155344116.H268158P7799.mbox1.freenet.de,S=1411,L=36</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-12T05:57:17Z</date>
+       </dict>
+       <key>1155354546.H561532P28675.mbox1.freenet.de,S=1371,L=38</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-12T05:57:17Z</date>
+       </dict>
+       <key>1155356696.H995990P11509.mbox1.freenet.de,S=1764,L=40</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-12T05:57:17Z</date>
+       </dict>
+       <key>1155358818.H814534P27494.mbox1.freenet.de,S=2888,L=98</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-12T05:57:17Z</date>
+       </dict>
+       <key>1155362721.H710518P1102.mbox1.freenet.de,S=2762,L=74</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-12T06:07:28Z</date>
+       </dict>
+       <key>1155365332.H325159P29525.mbox1.freenet.de,S=1739,L=62</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-12T06:54:55Z</date>
+       </dict>
+       <key>1155372108.H319445P16165.mbox1.freenet.de,S=2708,L=62</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-12T08:46:45Z</date>
+       </dict>
+       <key>1155375874.H230704P3857.mbox1.freenet.de,S=2622,L=95</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-12T09:46:48Z</date>
+       </dict>
+       <key>1155381212.H468458P6801.mbox1.freenet.de,S=1936,L=45</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-12T11:52:04Z</date>
+       </dict>
+       <key>1155381681.H552427P18977.mbox1.freenet.de,S=5186,L=133</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-12T11:52:06Z</date>
+       </dict>
+       <key>1155382498.H369535P6941.mbox1.freenet.de,S=26692,L=477</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-12T11:52:06Z</date>
+       </dict>
+       <key>1155383606.H437045P30481.mbox1.freenet.de,S=1413,L=31</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-12T12:52:04Z</date>
+       </dict>
+       <key>1155383682.H553821P32262.mbox1.freenet.de,S=1712,L=61</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-12T12:52:04Z</date>
+       </dict>
+       <key>1155387642.H378906P31137.mbox1.freenet.de,S=1697,L=57</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-12T13:01:56Z</date>
+       </dict>
+       <key>1155389142.H64410P23467.mbox1.freenet.de,S=2791,L=96</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-12T14:20:15Z</date>
+       </dict>
+       <key>1155392313.H278709P4708.mbox1.freenet.de,S=3907,L=106</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-12T14:20:15Z</date>
+       </dict>
+       <key>1155392617.H994844P9195.mbox1.freenet.de,S=253915,L=3335</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-12T14:26:49Z</date>
+       </dict>
+       <key>1155394744.H831207P10676.mbox1.freenet.de,S=2793,L=104</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-12T15:02:13Z</date>
+       </dict>
+       <key>1155395369.H420233P21087.mbox1.freenet.de,S=36481,L=508</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-12T15:11:38Z</date>
+       </dict>
+       <key>1155395795.H180618P28398.mbox1.freenet.de,S=2038,L=69</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-12T15:16:41Z</date>
+       </dict>
+       <key>1155396396.H370822P4949.mbox1.freenet.de,S=4288,L=118</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-12T15:39:54Z</date>
+       </dict>
+       <key>1155396467.H347908P6065.mbox1.freenet.de,S=1666,L=42</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-12T15:39:54Z</date>
+       </dict>
+       <key>1155397346.H746437P19876.mbox1.freenet.de,S=232524,L=3830</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-12T15:47:28Z</date>
+       </dict>
+       <key>1155397550.H814414P23509.mbox1.freenet.de,S=1954,L=45</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-12T15:47:28Z</date>
+       </dict>
+       <key>1155397892.H161483P29827.mbox1.freenet.de,S=2137,L=67</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-12T15:54:14Z</date>
+       </dict>
+       <key>1155398368.H272840P5908.mbox1.freenet.de,S=1658,L=38</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-12T16:00:17Z</date>
+       </dict>
+       <key>1155398680.H95312P14345.mbox1.freenet.de,S=5500,L=141</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-12T16:12:37Z</date>
+       </dict>
+       <key>1155398690.H251433P14586.mbox1.freenet.de,S=2025,L=61</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-12T16:12:37Z</date>
+       </dict>
+       <key>1155399622.H294694P31838.mbox1.freenet.de,S=1643,L=38</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-13T09:07:20Z</date>
+       </dict>
+       <key>1155401459.H913217P28572.mbox1.freenet.de,S=2554,L=94</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-13T09:07:24Z</date>
+       </dict>
+       <key>1155404891.H231218P23227.mbox1.freenet.de,S=1675,L=58</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-13T09:07:24Z</date>
+       </dict>
+       <key>1155408089.H425332P10206.mbox1.freenet.de,S=2251,L=36</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-13T09:07:24Z</date>
+       </dict>
+       <key>1155412433.H747029P3760.mbox1.freenet.de,S=1912,L=35</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-13T09:07:24Z</date>
+       </dict>
+       <key>1155414118.H534159P31022.mbox1.freenet.de,S=2836,L=97</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-13T09:07:24Z</date>
+       </dict>
+       <key>1155425735.H926302P27336.mbox1.freenet.de,S=1580,L=58</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-13T09:07:24Z</date>
+       </dict>
+       <key>1155429421.H583293P26482.mbox1.freenet.de,S=2703,L=96</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-13T09:07:24Z</date>
+       </dict>
+       <key>1155432697.H707953P20293.mbox1.freenet.de,S=3295,L=100</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-13T09:07:27Z</date>
+       </dict>
+       <key>1155442908.H622889P29028.mbox1.freenet.de,S=15653,L=212</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-13T09:07:27Z</date>
+       </dict>
+       <key>1155447888.H964302P4158.mbox1.freenet.de,S=1773,L=60</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-13T09:07:27Z</date>
+       </dict>
+       <key>1155449311.H702848P16196.mbox1.freenet.de,S=2806,L=97</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-13T09:07:27Z</date>
+       </dict>
+       <key>1155452938.H544521P27881.mbox1.freenet.de,S=1319,L=31</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-13T09:07:27Z</date>
+       </dict>
+       <key>1155459240.H508185P13192.mbox1.freenet.de,S=1695,L=38</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-13T09:07:27Z</date>
+       </dict>
+       <key>1155466103.H392282P30143.mbox1.freenet.de,S=2893,L=101</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-13T10:54:42Z</date>
+       </dict>
+       <key>1155467153.H142108P13986.mbox1.freenet.de,S=1748,L=61</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-13T11:07:41Z</date>
+       </dict>
+       <key>1155468819.H15840P9570.mbox1.freenet.de,S=5005,L=132</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-13T11:36:45Z</date>
+       </dict>
+       <key>1155479457.H723406P8075.mbox1.freenet.de,S=2847,L=101</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-13T20:15:22Z</date>
+       </dict>
+       <key>1155482043.H738903P18244.mbox1.freenet.de,S=15708,L=213</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-13T20:15:25Z</date>
+       </dict>
+       <key>1155485750.H781909P19673.mbox1.freenet.de,S=5492,L=139</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-13T20:15:25Z</date>
+       </dict>
+       <key>1155487081.H464166P18373.mbox1.freenet.de,S=1571,L=31</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-13T20:15:25Z</date>
+       </dict>
+       <key>1155489196.H263823P4222.mbox1.freenet.de,S=2037,L=44</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-13T20:15:25Z</date>
+       </dict>
+       <key>1155489237.H334522P5149.mbox1.freenet.de,S=1672,L=57</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-13T20:15:25Z</date>
+       </dict>
+       <key>1155492259.H868827P2084.mbox1.freenet.de,S=2749,L=88</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-13T20:15:25Z</date>
+       </dict>
+       <key>1155494078.H223060P6524.mbox1.freenet.de,S=2068,L=37</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-13T20:15:25Z</date>
+       </dict>
+       <key>1155495377.H271409P8759.mbox1.freenet.de,S=2002,L=38</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-13T20:15:25Z</date>
+       </dict>
+       <key>1155499124.H310745P21654.mbox1.freenet.de,S=13691,L=203</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-13T20:15:25Z</date>
+       </dict>
+       <key>1155502236.H453831P28981.mbox1.freenet.de,S=1974,L=35</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-14T07:24:16Z</date>
+       </dict>
+       <key>1155502536.H4863P7134.mbox1.freenet.de,S=3423,L=103</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-14T07:24:16Z</date>
+       </dict>
+       <key>1155504322.H792521P10662.mbox1.freenet.de,S=2113,L=52</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-14T07:24:16Z</date>
+       </dict>
+       <key>1155505529.H281536P26985.mbox1.freenet.de,S=2625,L=87</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-14T07:24:16Z</date>
+       </dict>
+       <key>1155506205.H322296P1896.mbox1.freenet.de,S=1785,L=44</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-14T07:24:16Z</date>
+       </dict>
+       <key>1155506625.H931796P6990.mbox1.freenet.de,S=1673,L=38</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-14T07:24:17Z</date>
+       </dict>
+       <key>1155507649.H402055P18118.mbox1.freenet.de,S=2829,L=73</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-14T07:24:17Z</date>
+       </dict>
+       <key>1155510882.H358588P21362.mbox1.freenet.de,S=15722,L=213</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-14T07:24:17Z</date>
+       </dict>
+       <key>1155510919.H587150P21798.mbox1.freenet.de,S=1632,L=37</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-14T07:24:17Z</date>
+       </dict>
+       <key>1155511387.H485218P26769.mbox1.freenet.de,S=2659,L=101</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-14T07:24:17Z</date>
+       </dict>
+       <key>1155511644.H820998P29150.mbox1.freenet.de,S=31715,L=537</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-14T07:24:17Z</date>
+       </dict>
+       <key>1155520110.H948986P24237.mbox1.freenet.de,S=3381,L=100</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-14T07:24:17Z</date>
+       </dict>
+       <key>1155525640.H835576P13636.mbox1.freenet.de,S=1472,L=32</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-14T07:24:17Z</date>
+       </dict>
+       <key>1155539870.H521633P14256.mbox1.freenet.de,S=3752,L=161</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-14T07:24:17Z</date>
+       </dict>
+       <key>1155540611.H107641P28092.mbox1.freenet.de,S=2791,L=90</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-14T07:53:33Z</date>
+       </dict>
+       <key>1155547625.H571328P4725.mbox1.freenet.de,S=6181,L=138</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-14T14:32:37Z</date>
+       </dict>
+       <key>1155548287.H367423P19149.mbox1.freenet.de,S=2137,L=36</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-14T14:32:43Z</date>
+       </dict>
+       <key>1155554846.H614484P3380.mbox1.freenet.de,S=2672,L=86</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-14T14:32:43Z</date>
+       </dict>
+       <key>1155555174.H616170P9716.mbox1.freenet.de,S=4045,L=114</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-14T14:32:43Z</date>
+       </dict>
+       <key>1155555283.H376477P12879.mbox1.freenet.de,S=5019,L=130</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-14T14:32:43Z</date>
+       </dict>
+       <key>1155562611.H618120P10679.mbox1.freenet.de,S=1601,L=28</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-14T14:32:43Z</date>
+       </dict>
+       <key>1155567178.H899466P23120.mbox1.freenet.de,S=2537,L=85</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-14T15:32:41Z</date>
+       </dict>
+       <key>1155571046.H656123P19290.mbox1.freenet.de,S=15656,L=214</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-14T19:57:24Z</date>
+       </dict>
+       <key>1155572350.H939519P19072.mbox1.freenet.de,S=3646,L=103</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-14T19:57:25Z</date>
+       </dict>
+       <key>1155573494.H112844P11809.mbox1.freenet.de,S=10648,L=184</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-14T19:57:25Z</date>
+       </dict>
+       <key>1155573879.H715341P19888.mbox1.freenet.de,S=18996,L=392</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-14T19:57:25Z</date>
+       </dict>
+       <key>1155574584.H945804P2119.mbox1.freenet.de,S=4504,L=121</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-14T19:57:25Z</date>
+       </dict>
+       <key>1155575961.H332723P1198.mbox1.freenet.de,S=1510,L=27</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-14T19:57:25Z</date>
+       </dict>
+       <key>1155576490.H541871P15183.mbox1.freenet.de,S=1606,L=27</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-14T19:57:25Z</date>
+       </dict>
+       <key>1155579837.H72419P26294.mbox1.freenet.de,S=2002,L=47</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-14T19:57:26Z</date>
+       </dict>
+       <key>1155583115.H958331P27966.mbox1.freenet.de,S=1784,L=47</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-14T19:57:26Z</date>
+       </dict>
+       <key>1155584199.H239307P14726.mbox1.freenet.de,S=3479,L=108</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-14T19:57:26Z</date>
+       </dict>
+       <key>1155586181.H922796P27202.mbox1.freenet.de,S=1683,L=56</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-14T20:25:36Z</date>
+       </dict>
+       <key>1155588441.H876897P8510.mbox1.freenet.de,S=3823,L=162</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-14T20:53:00Z</date>
+       </dict>
+       <key>1155591961.H958739P27676.mbox1.freenet.de,S=8528,L=244</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-14T21:46:26Z</date>
+       </dict>
+       <key>1155592810.H178870P7600.mbox1.freenet.de,S=2443,L=86</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-15T07:16:51Z</date>
+       </dict>
+       <key>1155594577.H226466P30501.mbox1.freenet.de,S=1377,L=36</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-15T07:16:52Z</date>
+       </dict>
+       <key>1155594767.H359327P502.mbox1.freenet.de,S=2044,L=44</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-15T07:16:52Z</date>
+       </dict>
+       <key>1155595308.H206945P9299.mbox1.freenet.de,S=1539,L=28</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-15T07:16:52Z</date>
+       </dict>
+       <key>1155595714.H968683P18026.mbox1.freenet.de,S=1371,L=26</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-15T07:16:52Z</date>
+       </dict>
+       <key>1155605575.H514963P11444.mbox1.freenet.de,S=1582,L=51</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-15T07:16:52Z</date>
+       </dict>
+       <key>1155609054.H722461P26093.mbox1.freenet.de,S=1342,L=38</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-15T07:16:53Z</date>
+       </dict>
+       <key>1155609241.H114172P28491.mbox1.freenet.de,S=2377,L=86</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-15T07:16:53Z</date>
+       </dict>
+       <key>1155612954.H927628P8467.mbox1.freenet.de,S=14415,L=202</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-15T07:16:53Z</date>
+       </dict>
+       <key>1155613298.H183926P12165.mbox1.freenet.de,S=1594,L=54</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-15T07:16:54Z</date>
+       </dict>
+       <key>1155623498.H162605P23815.mbox1.freenet.de,S=18287,L=285</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-15T07:16:54Z</date>
+       </dict>
+       <key>1155627002.H454741P12744.mbox1.freenet.de,S=1289,L=33</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-15T07:31:50Z</date>
+       </dict>
+       <key>1155627889.H742535P26819.mbox1.freenet.de,S=2535,L=87</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-15T07:57:39Z</date>
+       </dict>
+       <key>1155634162.H456816P23232.mbox1.freenet.de,S=1713,L=54</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-15T09:31:47Z</date>
+       </dict>
+       <key>1155639133.H569323P26340.mbox1.freenet.de,S=52499,L=954</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-15T13:39:24Z</date>
+       </dict>
+       <key>1155642027.H16248P21003.mbox1.freenet.de,S=2468,L=77</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-15T13:39:29Z</date>
+       </dict>
+       <key>1155646523.H196753P28653.mbox1.freenet.de,S=4907,L=129</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-15T13:39:29Z</date>
+       </dict>
+       <key>1155647354.H345973P19847.mbox1.freenet.de,S=4138,L=70</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-15T13:39:29Z</date>
+       </dict>
+       <key>1155649003.H40740P30415.mbox1.freenet.de,S=14780,L=202</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-15T13:39:29Z</date>
+       </dict>
+       <key>1155655360.H224743P23901.mbox1.freenet.de,S=1751,L=54</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-15T15:23:49Z</date>
+       </dict>
+       <key>1155656257.H442639P10814.mbox1.freenet.de,S=12463,L=189</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-15T18:20:43Z</date>
+       </dict>
+       <key>1155658727.H21998P28019.mbox1.freenet.de,S=2629,L=55</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-15T18:20:47Z</date>
+       </dict>
+       <key>1155660222.H789857P31515.mbox1.freenet.de,S=1713,L=42</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-15T18:20:47Z</date>
+       </dict>
+       <key>1155660373.H539501P4119.mbox1.freenet.de,S=3977,L=61</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-15T18:20:47Z</date>
+       </dict>
+       <key>1155660849.H475683P18605.mbox1.freenet.de,S=1779,L=44</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-15T18:20:47Z</date>
+       </dict>
+       <key>1155661050.H849347P23410.mbox1.freenet.de,S=1723,L=54</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-15T18:20:47Z</date>
+       </dict>
+       <key>1155662519.H272115P25223.mbox1.freenet.de,S=4066,L=120</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-15T18:20:47Z</date>
+       </dict>
+       <key>1155663279.H93787P15524.mbox1.freenet.de,S=3286,L=99</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-15T18:20:47Z</date>
+       </dict>
+       <key>1155666170.H581264P16357.mbox1.freenet.de,S=1964,L=44</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-15T18:25:38Z</date>
+       </dict>
+       <key>1155672629.H698046P26779.mbox1.freenet.de,S=14858,L=202</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-15T20:13:32Z</date>
+       </dict>
+       <key>1155675970.H481059P829.mbox1.freenet.de,S=30101,L=568</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-15T21:14:42Z</date>
+       </dict>
+       <key>1155676427.H227690P9433.mbox1.freenet.de,S=28530,L=547</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-15T21:14:42Z</date>
+       </dict>
+       <key>1155679020.H360235P24199.mbox1.freenet.de,S=5379,L=138</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-16T06:32:57Z</date>
+       </dict>
+       <key>1155679259.H975948P30996.mbox1.freenet.de,S=1665,L=51</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-16T06:33:01Z</date>
+       </dict>
+       <key>1155679666.H222655P5397.mbox1.freenet.de,S=13472,L=194</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-16T06:33:01Z</date>
+       </dict>
+       <key>1155682595.H840883P17634.mbox1.freenet.de,S=2482,L=77</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-16T06:33:01Z</date>
+       </dict>
+       <key>1155683025.H4077P24194.mbox1.freenet.de,S=28912,L=550</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-16T06:33:01Z</date>
+       </dict>
+       <key>1155698954.H56251P20772.mbox1.freenet.de,S=1610,L=52</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-16T06:33:01Z</date>
+       </dict>
+       <key>1155699730.H136388P29061.mbox1.freenet.de,S=13510,L=194</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-16T06:33:01Z</date>
+       </dict>
+       <key>1155708190.H419348P27568.mbox1.freenet.de,S=1639,L=51</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-16T06:33:01Z</date>
+       </dict>
+       <key>1155708619.H61568P4130.mbox1.freenet.de,S=4824,L=73</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-16T06:33:02Z</date>
+       </dict>
+       <key>1155708934.H719113P13560.mbox1.freenet.de,S=4427,L=69</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-16T06:33:02Z</date>
+       </dict>
+       <key>1155709249.H561354P21490.mbox1.freenet.de,S=4621,L=68</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-16T06:33:02Z</date>
+       </dict>
+       <key>1155710073.H447832P6614.mbox1.freenet.de,S=2523,L=77</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-16T06:37:10Z</date>
+       </dict>
+       <key>1155712109.H228570P13737.mbox1.freenet.de,S=3950,L=163</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-16T07:16:49Z</date>
+       </dict>
+       <key>1155715259.H942469P29561.mbox1.freenet.de,S=4777,L=70</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-16T08:08:37Z</date>
+       </dict>
+       <key>1155726497.H229006P18946.mbox1.freenet.de,S=5076,L=132</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-16T11:27:53Z</date>
+       </dict>
+       <key>1155726841.H315888P31526.mbox1.freenet.de,S=2505,L=100</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-16T11:27:53Z</date>
+       </dict>
+       <key>1155731830.H203362P7473.mbox1.freenet.de,S=31693,L=579</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-16T12:40:23Z</date>
+       </dict>
+       <key>1155733467.H948324P28575.mbox1.freenet.de,S=29670,L=568</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-16T13:12:49Z</date>
+       </dict>
+       <key>1155740627.H596547P27213.mbox1.freenet.de,S=5489,L=143</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-16T19:17:33Z</date>
+       </dict>
+       <key>1155744035.H967627P7422.mbox1.freenet.de,S=1296,L=31</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-16T19:17:35Z</date>
+       </dict>
+       <key>1155745060.H914526P32159.mbox1.freenet.de,S=2595,L=79</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-16T19:17:35Z</date>
+       </dict>
+       <key>1155753499.H839663P19946.mbox1.freenet.de,S=1682,L=53</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-16T19:17:35Z</date>
+       </dict>
+       <key>1155754705.H760692P11736.mbox1.freenet.de,S=9002,L=379</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-16T19:17:35Z</date>
+       </dict>
+       <key>1155757129.H73453P26817.mbox1.freenet.de,S=3900,L=59</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-17T06:30:37Z</date>
+       </dict>
+       <key>1155762271.H271538P26592.mbox1.freenet.de,S=9158,L=380</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-17T06:30:40Z</date>
+       </dict>
+       <key>1155762960.H196055P6057.mbox1.freenet.de,S=2775,L=97</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-17T06:30:40Z</date>
+       </dict>
+       <key>1155764084.H509441P23252.mbox1.freenet.de,S=1709,L=53</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-17T06:30:40Z</date>
+       </dict>
+       <key>1155764556.H644385P29660.mbox1.freenet.de,S=14251,L=199</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-17T06:30:40Z</date>
+       </dict>
+       <key>1155774936.H450120P5009.mbox1.freenet.de,S=2777,L=103</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-17T06:30:40Z</date>
+       </dict>
+       <key>1155780523.H871720P4329.mbox1.freenet.de,S=3183,L=99</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-17T06:30:41Z</date>
+       </dict>
+       <key>1155783955.H51113P13218.mbox1.freenet.de,S=1799,L=54</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-17T06:30:41Z</date>
+       </dict>
+       <key>1155784022.H990661P14043.mbox1.freenet.de,S=14539,L=199</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-17T06:30:41Z</date>
+       </dict>
+       <key>1155793718.H955690P17050.mbox1.freenet.de,S=34755,L=632</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-17T06:30:41Z</date>
+       </dict>
+       <key>1155801361.H759607P6409.mbox1.freenet.de,S=2647,L=79</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-17T11:18:37Z</date>
+       </dict>
+       <key>1155802366.H621150P28413.mbox1.freenet.de,S=2917,L=66</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-17T11:18:40Z</date>
+       </dict>
+       <key>1155802717.H226200P5106.mbox1.freenet.de,S=2787,L=66</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-17T11:18:40Z</date>
+       </dict>
+       <key>1155803161.H223217P17067.mbox1.freenet.de,S=1569,L=55</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-17T11:18:40Z</date>
+       </dict>
+       <key>1155807606.H620116P11099.mbox1.freenet.de,S=23684,L=829</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-17T11:18:40Z</date>
+       </dict>
+       <key>1155808943.H257985P8125.mbox1.freenet.de,S=1803,L=54</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-17T11:18:40Z</date>
+       </dict>
+       <key>1155810163.H393619P4857.mbox1.freenet.de,S=5100,L=132</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-17T11:18:40Z</date>
+       </dict>
+       <key>1155813863.H756962P28805.mbox1.freenet.de,S=1731,L=53</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-17T11:35:21Z</date>
+       </dict>
+       <key>1155815032.H298878P28376.mbox1.freenet.de,S=2763,L=82</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-17T11:53:34Z</date>
+       </dict>
+       <key>1155818963.H747901P22963.mbox1.freenet.de,S=34712,L=634</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-17T20:32:22Z</date>
+       </dict>
+       <key>1155818984.H739984P23410.mbox1.freenet.de,S=34308,L=633</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-17T20:32:23Z</date>
+       </dict>
+       <key>1155821900.H745528P30523.mbox1.freenet.de,S=14637,L=199</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-17T20:32:26Z</date>
+       </dict>
+       <key>1155822043.H736444P1616.mbox1.freenet.de,S=5689,L=233</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-17T20:32:26Z</date>
+       </dict>
+       <key>1155823988.H367897P19251.mbox1.freenet.de,S=3639,L=105</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-17T20:32:26Z</date>
+       </dict>
+       <key>1155827411.H56325P7730.mbox1.freenet.de,S=4128,L=62</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-17T20:32:26Z</date>
+       </dict>
+       <key>1155830753.H802421P22648.mbox1.freenet.de,S=2696,L=95</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-17T20:32:26Z</date>
+       </dict>
+       <key>1155836839.H781658P6842.mbox1.freenet.de,S=3915,L=163</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-17T20:32:26Z</date>
+       </dict>
+       <key>1155837795.H23180P1296.mbox1.freenet.de,S=1773,L=54</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-17T20:32:26Z</date>
+       </dict>
+       <key>1155840734.H800798P4865.mbox1.freenet.de,S=1689,L=54</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-17T20:32:27Z</date>
+       </dict>
+       <key>1155841425.H808648P21505.mbox1.freenet.de,S=34988,L=634</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-17T20:32:27Z</date>
+       </dict>
+       <key>1155844693.H738830P5437.mbox1.freenet.de,S=1424,L=31</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-17T20:32:27Z</date>
+       </dict>
+       <key>1155849030.H181753P18909.mbox1.freenet.de,S=2563,L=82</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-17T21:32:40Z</date>
+       </dict>
+       <key>1155850140.H201004P7026.mbox1.freenet.de,S=5513,L=141</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-17T21:32:40Z</date>
+       </dict>
+       <key>1155856569.H774450P31180.mbox1.freenet.de,S=14378,L=201</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-18T06:27:09Z</date>
+       </dict>
+       <key>1155858413.H985113P19952.mbox1.freenet.de,S=43251,L=733</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-18T06:27:10Z</date>
+       </dict>
+       <key>1155866739.H628872P13661.mbox1.freenet.de,S=14587,L=200</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-18T06:27:11Z</date>
+       </dict>
+       <key>1155867521.H542305P24567.mbox1.freenet.de,S=1470,L=39</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-18T06:27:11Z</date>
+       </dict>
+       <key>1155867939.H526630P498.mbox1.freenet.de,S=3322,L=101</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-18T06:27:11Z</date>
+       </dict>
+       <key>1155875999.H983999P3123.mbox1.freenet.de,S=7921,L=133</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-18T06:27:11Z</date>
+       </dict>
+       <key>1155876166.H404276P5169.mbox1.freenet.de,S=14596,L=201</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-18T06:27:11Z</date>
+       </dict>
+       <key>1155880133.H13635P26998.mbox1.freenet.de,S=1438,L=37</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-18T06:27:12Z</date>
+       </dict>
+       <key>1155881575.H161964P21959.mbox1.freenet.de,S=2546,L=80</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-18T06:27:12Z</date>
+       </dict>
+       <key>1155883400.H255525P17617.mbox1.freenet.de,S=7693,L=142</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-18T08:49:03Z</date>
+       </dict>
+       <key>1155884435.H930535P2478.mbox1.freenet.de,S=3339,L=59</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-18T08:49:04Z</date>
+       </dict>
+       <key>1155886199.H865896P10437.mbox1.freenet.de,S=40408,L=703</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-18T08:49:06Z</date>
+       </dict>
+       <key>1155886812.H222537P23034.mbox1.freenet.de,S=34692,L=632</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-18T08:49:06Z</date>
+       </dict>
+       <key>1155888897.H165107P3093.mbox1.freenet.de,S=1728,L=56</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-18T08:49:06Z</date>
+       </dict>
+       <key>1155894239.H249312P22078.mbox1.freenet.de,S=35341,L=635</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-18T10:27:53Z</date>
+       </dict>
+       <key>1155896408.H218608P8208.mbox1.freenet.de,S=36962,L=888</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-18T10:27:54Z</date>
+       </dict>
+       <key>1155899834.H107315P29722.mbox1.freenet.de,S=5051,L=132</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-18T13:42:12Z</date>
+       </dict>
+       <key>1155900128.H579880P5438.mbox1.freenet.de,S=1796,L=54</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-18T13:42:13Z</date>
+       </dict>
+       <key>1155908232.H143450P24816.mbox1.freenet.de,S=2679,L=81</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-18T13:42:13Z</date>
+       </dict>
+       <key>1155908730.H379921P3969.mbox1.freenet.de,S=1839,L=48</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-18T13:47:16Z</date>
+       </dict>
+       <key>1155909184.H50144P16561.mbox1.freenet.de,S=2705,L=96</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-18T17:40:33Z</date>
+       </dict>
+       <key>1155919201.H953928P10247.mbox1.freenet.de,S=14635,L=200</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-18T17:40:36Z</date>
+       </dict>
+       <key>1155919500.H299571P18227.mbox1.freenet.de,S=2781,L=83</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-18T17:40:36Z</date>
+       </dict>
+       <key>1155922317.H155721P10234.mbox1.freenet.de,S=3723,L=59</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-18T17:40:36Z</date>
+       </dict>
+       <key>1155926157.H516665P26689.mbox1.freenet.de,S=3872,L=162</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-18T18:45:07Z</date>
+       </dict>
+       <key>1155930117.H43110P409.mbox1.freenet.de,S=1657,L=55</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-18T19:42:59Z</date>
+       </dict>
+       <key>1155930487.H459342P6935.mbox1.freenet.de,S=1810,L=55</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-18T19:52:18Z</date>
+       </dict>
+       <key>1155931871.H711403P31320.mbox1.freenet.de,S=2754,L=81</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-18T20:13:08Z</date>
+       </dict>
+       <key>1155940967.H661079P21403.mbox1.freenet.de,S=3892,L=82</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-19T06:32:11Z</date>
+       </dict>
+       <key>1155942954.H959054P13213.mbox1.freenet.de,S=2606,L=79</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-19T06:32:11Z</date>
+       </dict>
+       <key>1155943594.H830163P21738.mbox1.freenet.de,S=14496,L=199</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-19T06:32:11Z</date>
+       </dict>
+       <key>1155953941.H375532P22922.mbox1.freenet.de,S=37663,L=650</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-19T06:32:11Z</date>
+       </dict>
+       <key>1155955639.H224625P4873.mbox1.freenet.de,S=2534,L=79</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-19T06:32:11Z</date>
+       </dict>
+       <key>1155956770.H717876P16828.mbox1.freenet.de,S=1353,L=33</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-19T06:32:11Z</date>
+       </dict>
+       <key>1155958211.H395151P1885.mbox1.freenet.de,S=1575,L=50</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-19T06:32:11Z</date>
+       </dict>
+       <key>1155959154.H720265P12713.mbox1.freenet.de,S=1645,L=29</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-19T06:32:12Z</date>
+       </dict>
+       <key>1155962213.H850812P15620.mbox1.freenet.de,S=3313,L=99</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-19T06:32:12Z</date>
+       </dict>
+       <key>1155964530.H674989P10524.mbox1.freenet.de,S=2473,L=57</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-19T06:32:12Z</date>
+       </dict>
+       <key>1155971182.H958306P25902.mbox1.freenet.de,S=1764,L=55</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-19T07:09:18Z</date>
+       </dict>
+       <key>1155975654.H360857P32746.mbox1.freenet.de,S=24281,L=380</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-19T08:21:55Z</date>
+       </dict>
+       <key>1155978606.H882247P21614.mbox1.freenet.de,S=4750,L=215</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-19T09:20:11Z</date>
+       </dict>
+       <key>1155978609.H91622P21762.mbox1.freenet.de,S=2843,L=83</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-19T09:20:12Z</date>
+       </dict>
+       <key>1155983252.H142286P31396.mbox1.freenet.de,S=1725,L=52</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-19T14:01:58Z</date>
+       </dict>
+       <key>1155990327.H250456P14330.mbox1.freenet.de,S=40658,L=710</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-19T14:01:59Z</date>
+       </dict>
+       <key>1155992006.H268992P14095.mbox1.freenet.de,S=5002,L=131</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-19T14:01:59Z</date>
+       </dict>
+       <key>1155993464.H775200P5734.mbox1.freenet.de,S=2750,L=81</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-19T14:01:59Z</date>
+       </dict>
+       <key>1155993923.H23966P13335.mbox1.freenet.de,S=1806,L=56</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-19T14:02:00Z</date>
+       </dict>
+       <key>1155998626.H531558P24470.mbox1.freenet.de,S=2782,L=81</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-19T15:17:45Z</date>
+       </dict>
+       <key>1156000731.H835960P7899.mbox1.freenet.de,S=13307,L=218</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-19T15:24:13Z</date>
+       </dict>
+       <key>1156001862.H12790P29824.mbox1.freenet.de,S=42175,L=796</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-19T15:47:46Z</date>
+       </dict>
+       <key>1156002114.H868256P2154.mbox1.freenet.de,S=2789,L=61</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-19T15:47:47Z</date>
+       </dict>
+       <key>1156002227.H64014P4163.mbox1.freenet.de,S=1648,L=54</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-19T15:47:47Z</date>
+       </dict>
+       <key>1156005285.H611697P29480.mbox1.freenet.de,S=3484,L=102</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-19T16:47:49Z</date>
+       </dict>
+       <key>1156005955.H380622P10683.mbox1.freenet.de,S=1664,L=53</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-19T16:47:50Z</date>
+       </dict>
+       <key>1156006709.H199343P23552.mbox1.freenet.de,S=3596,L=84</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-19T17:24:01Z</date>
+       </dict>
+       <key>1156008044.H808442P12305.mbox1.freenet.de,S=2899,L=61</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-19T17:24:01Z</date>
+       </dict>
+       <key>1156008369.H960103P17621.mbox1.freenet.de,S=2836,L=61</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-19T17:28:01Z</date>
+       </dict>
+       <key>1156008381.H841515P17850.mbox1.freenet.de,S=3458,L=79</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-19T17:28:01Z</date>
+       </dict>
+       <key>1156008500.H671840P19682.mbox1.freenet.de,S=4883,L=107</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-19T17:32:47Z</date>
+       </dict>
+       <key>1156008786.H901063P24353.mbox1.freenet.de,S=1410,L=37</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-19T18:26:38Z</date>
+       </dict>
+       <key>1156014162.H151759P29462.mbox1.freenet.de,S=8207,L=211</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-20T09:54:30Z</date>
+       </dict>
+       <key>1156014181.H164973P29778.mbox1.freenet.de,S=2801,L=83</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-20T09:54:33Z</date>
+       </dict>
+       <key>1156014251.H352625P31015.mbox1.freenet.de,S=4357,L=103</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-20T09:54:35Z</date>
+       </dict>
+       <key>1156014340.H455048P320.mbox1.freenet.de,S=6468,L=159</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-20T09:54:35Z</date>
+       </dict>
+       <key>1156014743.H629783P6625.mbox1.freenet.de,S=53033,L=881</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-20T09:54:35Z</date>
+       </dict>
+       <key>1156018123.H961397P5943.mbox1.freenet.de,S=3905,L=163</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-20T09:54:35Z</date>
+       </dict>
+       <key>1156028379.H828505P27266.mbox1.freenet.de,S=2767,L=82</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-20T09:54:35Z</date>
+       </dict>
+       <key>1156028508.H894P29445.mbox1.freenet.de,S=1839,L=34</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-20T09:54:35Z</date>
+       </dict>
+       <key>1156030327.H474473P18724.mbox1.freenet.de,S=1649,L=55</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-20T09:54:35Z</date>
+       </dict>
+       <key>1156030963.H627766P28091.mbox1.freenet.de,S=2522,L=79</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-20T09:54:35Z</date>
+       </dict>
+       <key>1156031101.H865938P30784.mbox1.freenet.de,S=1884,L=34</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-20T09:54:35Z</date>
+       </dict>
+       <key>1156035905.H438180P20429.mbox1.freenet.de,S=16274,L=222</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-20T09:54:35Z</date>
+       </dict>
+       <key>1156038032.H113870P16352.mbox1.freenet.de,S=7836,L=156</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-20T09:54:35Z</date>
+       </dict>
+       <key>1156044240.H86659P12513.mbox1.freenet.de,S=1682,L=55</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-20T09:54:36Z</date>
+       </dict>
+       <key>1156051753.H810260P18368.mbox1.freenet.de,S=1558,L=27</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-20T09:54:36Z</date>
+       </dict>
+       <key>1156052106.H745766P25697.mbox1.freenet.de,S=1661,L=28</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-20T09:54:36Z</date>
+       </dict>
+       <key>1156052701.H989197P4642.mbox1.freenet.de,S=3779,L=57</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-20T09:54:36Z</date>
+       </dict>
+       <key>1156054400.H787458P23430.mbox1.freenet.de,S=1741,L=52</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-20T09:54:36Z</date>
+       </dict>
+       <key>1156058019.H137367P3773.mbox1.freenet.de,S=39348,L=700</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-20T09:54:36Z</date>
+       </dict>
+       <key>1156058731.H311112P14455.mbox1.freenet.de,S=39941,L=706</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-20T09:54:37Z</date>
+       </dict>
+       <key>1156060483.H441837P7720.mbox1.freenet.de,S=2072,L=46</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-20T09:54:37Z</date>
+       </dict>
+       <key>1156061154.H29866P20249.mbox1.freenet.de,S=3251,L=100</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-20T09:54:37Z</date>
+       </dict>
+       <key>1156061500.H245944P30226.mbox1.freenet.de,S=1849,L=47</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-20T09:54:37Z</date>
+       </dict>
+       <key>1156068184.H339810P27736.mbox1.freenet.de,S=2760,L=103</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-20T10:42:01Z</date>
+       </dict>
+       <key>1156069993.H861771P26685.mbox1.freenet.de,S=1731,L=55</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-20T10:42:02Z</date>
+       </dict>
+       <key>1156072809.H896197P13488.mbox1.freenet.de,S=2683,L=81</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-20T11:26:58Z</date>
+       </dict>
+       <key>1156073950.H741083P2725.mbox1.freenet.de,S=2736,L=81</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-20T13:46:06Z</date>
+       </dict>
+       <key>1156074277.H297055P12345.mbox1.freenet.de,S=4930,L=216</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-20T13:46:07Z</date>
+       </dict>
+       <key>1156074822.H289674P486.mbox1.freenet.de,S=1674,L=51</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-20T13:46:07Z</date>
+       </dict>
+       <key>1156076589.H226383P3006.mbox1.freenet.de,S=13122,L=182</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-20T13:46:07Z</date>
+       </dict>
+       <key>1156082622.H613666P8035.mbox1.freenet.de,S=1490,L=39</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-20T14:05:51Z</date>
+       </dict>
+       <key>1156084473.H524332P15040.mbox1.freenet.de,S=1386,L=36</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-20T14:36:01Z</date>
+       </dict>
+       <key>1156090742.H552842P4682.mbox1.freenet.de,S=1724,L=54</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-20T16:26:17Z</date>
+       </dict>
+       <key>1156090980.H629428P10269.mbox1.freenet.de,S=40061,L=704</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-20T16:26:18Z</date>
+       </dict>
+       <key>1156093399.H69021P27455.mbox1.freenet.de,S=2605,L=81</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-20T20:32:26Z</date>
+       </dict>
+       <key>1156093776.H964394P3345.mbox1.freenet.de,S=1648,L=52</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-20T20:32:28Z</date>
+       </dict>
+       <key>1156100633.H224315P22071.mbox1.freenet.de,S=6550,L=176</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-20T20:32:28Z</date>
+       </dict>
+       <key>1156100691.H592228P23082.mbox1.freenet.de,S=8705,L=235</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-20T20:32:28Z</date>
+       </dict>
+       <key>1156104739.H462735P1094.mbox1.freenet.de,S=2602,L=80</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-20T20:32:28Z</date>
+       </dict>
+       <key>1156109830.H17914P19227.mbox1.freenet.de,S=2492,L=78</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-21T06:48:49Z</date>
+       </dict>
+       <key>1156112101.H795367P17167.mbox1.freenet.de,S=2647,L=101</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-21T06:48:50Z</date>
+       </dict>
+       <key>1156113315.H343544P762.mbox1.freenet.de,S=1658,L=51</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-21T06:48:50Z</date>
+       </dict>
+       <key>1156114091.H694234P11549.mbox1.freenet.de,S=1772,L=56</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-21T06:48:50Z</date>
+       </dict>
+       <key>1156115165.H762268P24644.mbox1.freenet.de,S=14527,L=200</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-21T06:48:50Z</date>
+       </dict>
+       <key>1156116327.H660320P9489.mbox1.freenet.de,S=1460,L=38</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-21T06:48:50Z</date>
+       </dict>
+       <key>1156116534.H55291P13612.mbox1.freenet.de,S=1449,L=35</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-21T06:48:50Z</date>
+       </dict>
+       <key>1156119986.H882019P25652.mbox1.freenet.de,S=2823,L=104</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-21T06:48:50Z</date>
+       </dict>
+       <key>1156122853.H28178P27742.mbox1.freenet.de,S=2002,L=45</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-21T06:48:51Z</date>
+       </dict>
+       <key>1156131466.H176825P3041.mbox1.freenet.de,S=1708,L=52</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-21T06:48:51Z</date>
+       </dict>
+       <key>1156133130.H663462P20675.mbox1.freenet.de,S=2592,L=78</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-21T06:48:51Z</date>
+       </dict>
+       <key>1156133473.H468753P24781.mbox1.freenet.de,S=1739,L=55</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-21T06:48:51Z</date>
+       </dict>
+       <key>1156141359.H46959P9189.mbox1.freenet.de,S=1998,L=35</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-21T06:48:51Z</date>
+       </dict>
+       <key>1156141630.H425226P15434.mbox1.freenet.de,S=40631,L=707</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-21T06:48:52Z</date>
+       </dict>
+       <key>1156143777.H401918P28037.mbox1.freenet.de,S=37278,L=697</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-21T07:11:22Z</date>
+       </dict>
+       <key>1156145388.H594392P28582.mbox1.freenet.de,S=2833,L=97</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-21T07:47:00Z</date>
+       </dict>
+       <key>1156151885.H882182P30496.mbox1.freenet.de,S=1743,L=53</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-21T12:46:55Z</date>
+       </dict>
+       <key>1156153111.H998990P24464.mbox1.freenet.de,S=4674,L=114</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-21T12:46:56Z</date>
+       </dict>
+       <key>1156154981.H430092P31085.mbox1.freenet.de,S=2626,L=79</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-21T12:46:56Z</date>
+       </dict>
+       <key>1156155567.H266846P10396.mbox1.freenet.de,S=37062,L=649</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-21T12:46:57Z</date>
+       </dict>
+       <key>1156156653.H123786P1237.mbox1.freenet.de,S=1770,L=56</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-21T12:46:57Z</date>
+       </dict>
+       <key>1156170396.H551730P19808.mbox1.freenet.de,S=41193,L=711</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-21T15:18:19Z</date>
+       </dict>
+       <key>1156170466.H740758P21835.mbox1.freenet.de,S=51711,L=869</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-21T15:18:20Z</date>
+       </dict>
+       <key>1156171031.H926392P4585.mbox1.freenet.de,S=2822,L=82</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-21T15:18:20Z</date>
+       </dict>
+       <key>1156172230.H512316P6915.mbox1.freenet.de,S=24759,L=720</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-21T15:18:21Z</date>
+       </dict>
+       <key>1156172650.H717242P18326.mbox1.freenet.de,S=36601,L=652</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-21T15:18:21Z</date>
+       </dict>
+       <key>1156173039.H615099P28777.mbox1.freenet.de,S=1559,L=51</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-21T15:18:22Z</date>
+       </dict>
+       <key>1156177594.H375484P16541.mbox1.freenet.de,S=1656,L=30</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-21T17:44:50Z</date>
+       </dict>
+       <key>1156179152.H152794P24323.mbox1.freenet.de,S=4969,L=131</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-21T17:44:50Z</date>
+       </dict>
+       <key>1156179647.H207059P6245.mbox1.freenet.de,S=16092,L=443</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-21T17:44:51Z</date>
+       </dict>
+       <key>1156179723.H67824P7891.mbox1.freenet.de,S=15277,L=348</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-21T17:44:51Z</date>
+       </dict>
+       <key>1156180060.H346675P15430.mbox1.freenet.de,S=1685,L=55</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-21T17:44:51Z</date>
+       </dict>
+       <key>1156184445.H418632P10236.mbox1.freenet.de,S=4378,L=89</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-21T19:14:56Z</date>
+       </dict>
+       <key>1156186699.H700456P19447.mbox1.freenet.de,S=1233,L=33</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-21T19:14:56Z</date>
+       </dict>
+       <key>1156187075.H773717P27146.mbox1.freenet.de,S=6439,L=168</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-21T19:14:56Z</date>
+       </dict>
+       <key>1156187142.H119915P28764.mbox1.freenet.de,S=24952,L=729</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-21T19:14:57Z</date>
+       </dict>
+       <key>1156188434.H624660P25438.mbox1.freenet.de,S=1233,L=33</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-21T19:28:29Z</date>
+       </dict>
+       <key>1156190016.H585491P4204.mbox1.freenet.de,S=1233,L=33</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-21T20:10:45Z</date>
+       </dict>
+       <key>1156190229.H892273P10385.mbox1.freenet.de,S=31774,L=502</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-21T20:10:46Z</date>
+       </dict>
+       <key>1156191121.H58939P1014.mbox1.freenet.de,S=8464,L=170</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-21T20:15:48Z</date>
+       </dict>
+       <key>1156192210.H445719P28360.mbox1.freenet.de,S=3627,L=103</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-21T20:33:16Z</date>
+       </dict>
+       <key>1156193539.H965586P24560.mbox1.freenet.de,S=1691,L=51</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-21T20:53:33Z</date>
+       </dict>
+       <key>1156194052.H843898P1112.mbox1.freenet.de,S=1967,L=44</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-22T06:40:22Z</date>
+       </dict>
+       <key>1156196073.H946686P6609.mbox1.freenet.de,S=2988,L=69</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-22T06:40:24Z</date>
+       </dict>
+       <key>1156196215.H436396P8975.mbox1.freenet.de,S=7371,L=200</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-22T06:40:24Z</date>
+       </dict>
+       <key>1156196403.H875793P12311.mbox1.freenet.de,S=2590,L=95</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-22T06:40:24Z</date>
+       </dict>
+       <key>1156197011.H296928P21563.mbox1.freenet.de,S=3738,L=86</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-22T06:40:24Z</date>
+       </dict>
+       <key>1156200476.H48277P29045.mbox1.freenet.de,S=1986,L=34</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-22T06:40:25Z</date>
+       </dict>
+       <key>1156201055.H431831P10859.mbox1.freenet.de,S=1968,L=33</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-22T06:40:25Z</date>
+       </dict>
+       <key>1156203189.H194716P13945.mbox1.freenet.de,S=2412,L=64</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-22T06:40:25Z</date>
+       </dict>
+       <key>1156204076.H822392P25643.mbox1.freenet.de,S=1589,L=54</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-22T06:40:25Z</date>
+       </dict>
+       <key>1156204147.H248290P26727.mbox1.freenet.de,S=2650,L=81</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-22T06:40:25Z</date>
+       </dict>
+       <key>1156207011.H734989P30440.mbox1.freenet.de,S=30056,L=489</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-22T06:40:28Z</date>
+       </dict>
+       <key>1156210710.H728400P8151.mbox1.freenet.de,S=2498,L=79</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-22T06:40:28Z</date>
+       </dict>
+       <key>1156213391.H964402P5554.mbox1.freenet.de,S=5473,L=143</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-22T06:40:28Z</date>
+       </dict>
+       <key>1156215292.H927815P28287.mbox1.freenet.de,S=1586,L=51</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-22T06:40:28Z</date>
+       </dict>
+       <key>1156217397.H976068P19638.mbox1.freenet.de,S=1479,L=27</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-22T06:40:28Z</date>
+       </dict>
+       <key>1156229965.H933681P25828.mbox1.freenet.de,S=2421,L=77</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-22T07:14:03Z</date>
+       </dict>
+       <key>1156234060.H167927P7982.mbox1.freenet.de,S=3144,L=98</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-22T10:09:21Z</date>
+       </dict>
+       <key>1156240198.H552010P24198.mbox1.freenet.de,S=38144,L=593</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-22T10:09:21Z</date>
+       </dict>
+       <key>1156240239.H444189P25491.mbox1.freenet.de,S=38042,L=599</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-22T10:09:21Z</date>
+       </dict>
+       <key>1156243974.H843643P20009.mbox1.freenet.de,S=1676,L=53</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-22T13:10:59Z</date>
+       </dict>
+       <key>1156247073.H368328P32534.mbox1.freenet.de,S=36249,L=569</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-22T13:11:02Z</date>
+       </dict>
+       <key>1156247921.H894091P26986.mbox1.freenet.de,S=2596,L=79</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-22T13:11:03Z</date>
+       </dict>
+       <key>1156248662.H609680P13224.mbox1.freenet.de,S=37647,L=593</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-22T13:11:03Z</date>
+       </dict>
+       <key>1156254708.H669035P13799.mbox1.freenet.de,S=1542,L=27</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-22T13:56:52Z</date>
+       </dict>
+       <key>1156256353.H821648P30051.mbox1.freenet.de,S=3774,L=98</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-22T14:20:54Z</date>
+       </dict>
+       <key>1156256369.H12830P30457.mbox1.freenet.de,S=17408,L=480</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-22T14:20:55Z</date>
+       </dict>
+       <key>1156256982.H147690P13434.mbox1.freenet.de,S=1567,L=31</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-22T14:31:14Z</date>
+       </dict>
+       <key>1156260058.H608282P25599.mbox1.freenet.de,S=2984,L=66</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-22T19:53:04Z</date>
+       </dict>
+       <key>1156260534.H14160P5828.mbox1.freenet.de,S=3533,L=104</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-22T19:53:08Z</date>
+       </dict>
+       <key>1156265731.H362387P27705.mbox1.freenet.de,S=2127,L=35</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-22T19:53:08Z</date>
+       </dict>
+       <key>1156265942.H904452P1499.mbox1.freenet.de,S=2295,L=56</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-22T19:53:08Z</date>
+       </dict>
+       <key>1156273508.H146082P6958.mbox1.freenet.de,S=23332,L=624</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-22T19:53:08Z</date>
+       </dict>
+       <key>1156274107.H293316P22750.mbox1.freenet.de,S=5610,L=144</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-22T19:53:11Z</date>
+       </dict>
+       <key>1156275874.H463874P31726.mbox1.freenet.de,S=2711,L=81</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-22T19:53:11Z</date>
+       </dict>
+       <key>1156277419.H710606P2701.mbox1.freenet.de,S=2563,L=79</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-22T20:24:08Z</date>
+       </dict>
+       <key>1156285689.H685812P12554.mbox1.freenet.de,S=5035,L=121</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-23T06:41:04Z</date>
+       </dict>
+       <key>1156286221.H591132P20728.mbox1.freenet.de,S=1667,L=51</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-23T06:41:05Z</date>
+       </dict>
+       <key>1156286563.H445822P29014.mbox1.freenet.de,S=1444,L=34</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-23T06:41:05Z</date>
+       </dict>
+       <key>1156289183.H89604P29422.mbox1.freenet.de,S=1575,L=53</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-23T06:41:06Z</date>
+       </dict>
+       <key>1156289963.H647307P6913.mbox1.freenet.de,S=3304,L=100</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-23T06:41:06Z</date>
+       </dict>
+       <key>1156290394.H586113P16128.mbox1.freenet.de,S=5022,L=128</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-23T06:41:06Z</date>
+       </dict>
+       <key>1156293727.H129171P20060.mbox1.freenet.de,S=1420,L=31</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-23T06:41:06Z</date>
+       </dict>
+       <key>1156297635.H278548P20388.mbox1.freenet.de,S=1679,L=51</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-23T06:41:06Z</date>
+       </dict>
+       <key>1156300709.H183097P594.mbox1.freenet.de,S=2569,L=78</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-23T06:41:06Z</date>
+       </dict>
+       <key>1156305288.H901531P8596.mbox1.freenet.de,S=2933,L=47</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-23T06:41:06Z</date>
+       </dict>
+       <key>1156310085.H727481P21928.mbox1.freenet.de,S=1594,L=51</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-23T06:41:06Z</date>
+       </dict>
+       <key>1156311497.H823295P7719.mbox1.freenet.de,S=17437,L=292</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-23T06:41:07Z</date>
+       </dict>
+       <key>1156311960.H256277P16603.mbox1.freenet.de,S=1878,L=33</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-23T06:41:07Z</date>
+       </dict>
+       <key>1156315347.H730367P1334.mbox1.freenet.de,S=2576,L=79</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-23T06:48:34Z</date>
+       </dict>
+       <key>1156315856.H546199P10284.mbox1.freenet.de,S=5053,L=132</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-23T06:58:08Z</date>
+       </dict>
+       <key>1156316015.H836293P15059.mbox1.freenet.de,S=2637,L=80</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-23T06:58:08Z</date>
+       </dict>
+       <key>1156317490.H316128P12220.mbox1.freenet.de,S=1609,L=36</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-23T07:53:19Z</date>
+       </dict>
+       <key>1156323069.H397905P7644.mbox1.freenet.de,S=1731,L=55</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-23T12:01:31Z</date>
+       </dict>
+       <key>1156328305.H107557P11033.mbox1.freenet.de,S=2684,L=51</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-23T12:01:31Z</date>
+       </dict>
+       <key>1156328610.H899510P21236.mbox1.freenet.de,S=20398,L=332</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-23T12:01:32Z</date>
+       </dict>
+       <key>1156329141.H976121P6861.mbox1.freenet.de,S=22614,L=364</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-23T12:01:34Z</date>
+       </dict>
+       <key>1156329381.H661923P16478.mbox1.freenet.de,S=3571,L=102</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-23T12:01:34Z</date>
+       </dict>
+       <key>1156331767.H169951P4175.mbox1.freenet.de,S=19386,L=321</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-23T12:01:34Z</date>
+       </dict>
+       <key>1156333292.H687377P23174.mbox1.freenet.de,S=19034,L=316</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-23T12:01:35Z</date>
+       </dict>
+       <key>1156335065.H813527P25388.mbox1.freenet.de,S=1855,L=55</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-23T12:20:52Z</date>
+       </dict>
+       <key>1156335128.H506627P27897.mbox1.freenet.de,S=34219,L=596</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-23T12:20:52Z</date>
+       </dict>
+       <key>1156337693.H916709P26274.mbox1.freenet.de,S=1488,L=39</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-23T14:33:15Z</date>
+       </dict>
+       <key>1156339969.H201016P29226.mbox1.freenet.de,S=2729,L=80</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-23T14:33:16Z</date>
+       </dict>
+       <key>1156340983.H489572P1578.mbox1.freenet.de,S=5353,L=138</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-23T14:33:18Z</date>
+       </dict>
+       <key>1156343905.H613262P29822.mbox1.freenet.de,S=18033,L=871</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-23T14:42:42Z</date>
+       </dict>
+       <key>1156347308.H585921P10247.mbox1.freenet.de,S=2509,L=78</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-23T17:03:36Z</date>
+       </dict>
+       <key>1156348235.H605443P5820.mbox1.freenet.de,S=24063,L=831</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-23T17:03:37Z</date>
+       </dict>
+       <key>1156349535.H189526P13945.mbox1.freenet.de,S=2784,L=82</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-23T17:03:37Z</date>
+       </dict>
+       <key>1156349791.H518401P22732.mbox1.freenet.de,S=7069,L=186</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-23T17:03:38Z</date>
+       </dict>
+       <key>1156352330.H449068P8873.mbox1.freenet.de,S=6059,L=155</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-23T17:03:38Z</date>
+       </dict>
+       <key>1156352921.H600969P29626.mbox1.freenet.de,S=25063,L=716</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-23T17:18:15Z</date>
+       </dict>
+       <key>1156353931.H733759P28776.mbox1.freenet.de,S=9424,L=258</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-23T17:38:06Z</date>
+       </dict>
+       <key>1156354448.H385753P11448.mbox1.freenet.de,S=1666,L=30</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-23T17:38:06Z</date>
+       </dict>
+       <key>1156355946.H172785P26542.mbox1.freenet.de,S=3133,L=98</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-23T18:02:28Z</date>
+       </dict>
+       <key>1156356879.H751770P17495.mbox1.freenet.de,S=64948,L=1457</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-23T19:11:41Z</date>
+       </dict>
+       <key>1156357949.H742519P7828.mbox1.freenet.de,S=1742,L=55</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-23T19:11:41Z</date>
+       </dict>
+       <key>1156359742.H927083P11243.mbox1.freenet.de,S=8924,L=302</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-23T19:11:41Z</date>
+       </dict>
+       <key>1156359904.H859310P14363.mbox1.freenet.de,S=6729,L=173</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-23T19:11:41Z</date>
+       </dict>
+       <key>1156360217.H1360P19796.mbox1.freenet.de,S=1649,L=51</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-23T19:11:42Z</date>
+       </dict>
+       <key>1156360946.H982607P633.mbox1.freenet.de,S=39555,L=717</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-23T21:19:56Z</date>
+       </dict>
+       <key>1156363621.H577806P17175.mbox1.freenet.de,S=1587,L=31</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-23T21:20:00Z</date>
+       </dict>
+       <key>1156364087.H814559P31535.mbox1.freenet.de,S=1532,L=31</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-23T21:20:00Z</date>
+       </dict>
+       <key>1156364446.H917308P8932.mbox1.freenet.de,S=1621,L=32</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-23T21:20:00Z</date>
+       </dict>
+       <key>1156366127.H829818P8733.mbox1.freenet.de,S=1353,L=31</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-23T21:20:00Z</date>
+       </dict>
+       <key>1156369166.H442716P21101.mbox1.freenet.de,S=2562,L=70</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-24T05:58:44Z</date>
+       </dict>
+       <key>1156370291.H719P6952.mbox1.freenet.de,S=1616,L=36</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-24T05:58:45Z</date>
+       </dict>
+       <key>1156371667.H788296P29922.mbox1.freenet.de,S=4999,L=132</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-24T05:58:45Z</date>
+       </dict>
+       <key>1156375748.H902317P11345.mbox1.freenet.de,S=2497,L=77</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-24T05:58:45Z</date>
+       </dict>
+       <key>1156384457.H617314P16691.mbox1.freenet.de,S=1584,L=52</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-24T05:58:46Z</date>
+       </dict>
+       <key>1156389145.H523602P9740.mbox1.freenet.de,S=2575,L=80</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-24T05:58:46Z</date>
+       </dict>
+       <key>1156390322.H953020P24591.mbox1.freenet.de,S=2138,L=35</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-24T05:58:46Z</date>
+       </dict>
+       <key>1156391277.H842866P5178.mbox1.freenet.de,S=1573,L=53</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-24T05:58:46Z</date>
+       </dict>
+       <key>1156392812.H490436P26555.mbox1.freenet.de,S=1943,L=50</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-24T05:58:46Z</date>
+       </dict>
+       <key>1156409023.H275252P19047.mbox1.freenet.de,S=16951,L=282</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-24T10:16:05Z</date>
+       </dict>
+       <key>1156409406.H140046P26739.mbox1.freenet.de,S=1689,L=51</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-24T10:16:05Z</date>
+       </dict>
+       <key>1156415085.H201171P20387.mbox1.freenet.de,S=1814,L=48</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-24T10:25:52Z</date>
+       </dict>
+       <key>1156416657.H807142P26711.mbox1.freenet.de,S=312347,L=4119</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-24T10:56:18Z</date>
+       </dict>
+       <key>1156423141.H738283P9595.mbox1.freenet.de,S=8204,L=155</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-24T13:14:17Z</date>
+       </dict>
+       <key>1156423586.H986469P18910.mbox1.freenet.de,S=24526,L=378</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-24T13:14:19Z</date>
+       </dict>
+       <key>1156423766.H305574P22337.mbox1.freenet.de,S=1757,L=47</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-24T13:14:19Z</date>
+       </dict>
+       <key>1156426034.H411561P11292.mbox1.freenet.de,S=1751,L=55</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-24T14:53:56Z</date>
+       </dict>
+       <key>1156426257.H814508P17034.mbox1.freenet.de,S=2142,L=50</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-24T14:53:57Z</date>
+       </dict>
+       <key>1156432315.H944338P11912.mbox1.freenet.de,S=1689,L=37</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-24T15:40:00Z</date>
+       </dict>
+       <key>1156437064.H929760P27072.mbox1.freenet.de,S=1396,L=35</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-24T16:34:59Z</date>
+       </dict>
+       <key>1156437552.H24990P7839.mbox1.freenet.de,S=1772,L=47</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-24T18:00:14Z</date>
+       </dict>
+       <key>1156437671.H85068P11659.mbox1.freenet.de,S=1684,L=51</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-24T18:00:15Z</date>
+       </dict>
+       <key>1156441998.H409093P17815.mbox1.freenet.de,S=5785,L=139</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-24T18:00:15Z</date>
+       </dict>
+       <key>1156446198.H125878P7360.mbox1.freenet.de,S=8722,L=270</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-24T19:26:26Z</date>
+       </dict>
+       <key>1156446298.H279321P9602.mbox1.freenet.de,S=7215,L=203</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-24T19:26:26Z</date>
+       </dict>
+       <key>1156446397.H304492P11756.mbox1.freenet.de,S=20240,L=558</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-24T19:26:27Z</date>
+       </dict>
+       <key>1156450351.H298345P26939.mbox1.freenet.de,S=4133,L=115</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-24T21:15:59Z</date>
+       </dict>
+       <key>1156453995.H371780P29628.mbox1.freenet.de,S=1580,L=28</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-24T21:16:00Z</date>
+       </dict>
+       <key>1156460441.H902493P17252.mbox1.freenet.de,S=1585,L=52</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-25T06:39:53Z</date>
+       </dict>
+       <key>1156460928.H250512P22577.mbox1.freenet.de,S=2571,L=78</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-25T06:40:10Z</date>
+       </dict>
+       <key>1156468449.H428556P31977.mbox1.freenet.de,S=1758,L=47</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-25T06:40:10Z</date>
+       </dict>
+       <key>1156468701.H640830P2031.mbox1.freenet.de,S=2381,L=76</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-25T06:40:10Z</date>
+       </dict>
+       <key>1156471052.H538705P24970.mbox1.freenet.de,S=3245,L=90</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-25T06:40:10Z</date>
+       </dict>
+       <key>1156472233.H352865P4623.mbox1.freenet.de,S=542213,L=7800</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-25T06:40:13Z</date>
+       </dict>
+       <key>1156490541.H545396P8320.mbox1.freenet.de,S=96654,L=1346</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-25T07:25:02Z</date>
+       </dict>
+       <key>1156492596.H148223P20881.mbox1.freenet.de,S=1999,L=34</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-25T09:31:31Z</date>
+       </dict>
+       <key>1156493168.H185516P7060.mbox1.freenet.de,S=1816,L=33</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-25T09:31:31Z</date>
+       </dict>
+       <key>1156502823.H884919P26106.mbox1.freenet.de,S=1691,L=56</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-25T11:31:46Z</date>
+       </dict>
+       <key>1156507113.H321643P19255.mbox1.freenet.de,S=5378,L=140</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-25T12:35:04Z</date>
+       </dict>
+       <key>1156507414.H963810P28046.mbox1.freenet.de,S=2857,L=51</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-25T12:35:04Z</date>
+       </dict>
+       <key>1156513457.H597038P18199.mbox1.freenet.de,S=1486,L=39</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-25T18:39:22Z</date>
+       </dict>
+       <key>1156516574.H33272P14791.mbox1.freenet.de,S=6938,L=118</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-25T18:39:23Z</date>
+       </dict>
+       <key>1156517309.H650800P29358.mbox1.freenet.de,S=2982,L=75</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-25T18:39:23Z</date>
+       </dict>
+       <key>1156522127.H373876P2643.mbox1.freenet.de,S=1587,L=51</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-25T18:39:23Z</date>
+       </dict>
+       <key>1156522766.H246625P20682.mbox1.freenet.de,S=3333,L=100</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-25T18:39:23Z</date>
+       </dict>
+       <key>1156529537.H136065P26779.mbox1.freenet.de,S=3780,L=116</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-25T18:39:24Z</date>
+       </dict>
+       <key>1156530524.H954463P14172.mbox1.freenet.de,S=3712,L=115</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-25T18:39:24Z</date>
+       </dict>
+       <key>1156532587.H787648P19469.mbox1.freenet.de,S=16095,L=437</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-25T19:22:38Z</date>
+       </dict>
+       <key>1156532679.H554445P21183.mbox1.freenet.de,S=5584,L=162</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-25T19:22:38Z</date>
+       </dict>
+       <key>1156532748.H638119P22590.mbox1.freenet.de,S=9089,L=198</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-25T19:22:38Z</date>
+       </dict>
+       <key>1156534574.H270836P24004.mbox1.freenet.de,S=21643,L=350</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-25T21:09:33Z</date>
+       </dict>
+       <key>1156536377.H578706P25236.mbox1.freenet.de,S=8217,L=176</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-25T21:09:36Z</date>
+       </dict>
+       <key>1156538955.H25329P11731.mbox1.freenet.de,S=1765,L=55</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-25T21:09:36Z</date>
+       </dict>
+       <key>1156541102.H692666P12671.mbox1.freenet.de,S=1506,L=35</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-25T21:38:36Z</date>
+       </dict>
+       <key>1156544069.H856248P27072.mbox1.freenet.de,S=1562,L=29</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-26T07:15:58Z</date>
+       </dict>
+       <key>1156549318.H314695P5966.mbox1.freenet.de,S=1594,L=51</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-26T07:15:58Z</date>
+       </dict>
+       <key>1156552574.H442749P8681.mbox1.freenet.de,S=28405,L=522</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-26T07:15:58Z</date>
+       </dict>
+       <key>1156553161.H622189P14963.mbox1.freenet.de,S=23163,L=374</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-26T07:15:59Z</date>
+       </dict>
+       <key>1156561537.H227330P14836.mbox1.freenet.de,S=3759,L=116</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-26T07:15:59Z</date>
+       </dict>
+       <key>1156564400.H36368P11833.mbox1.freenet.de,S=3864,L=118</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-26T07:15:59Z</date>
+       </dict>
+       <key>1156574920.H627211P18312.mbox1.freenet.de,S=3010,L=86</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-26T07:15:59Z</date>
+       </dict>
+       <key>1156576237.H864144P3629.mbox1.freenet.de,S=3196,L=109</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-26T07:16:00Z</date>
+       </dict>
+       <key>1156576267.H974879P4022.mbox1.freenet.de,S=3065,L=107</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-26T07:16:00Z</date>
+       </dict>
+       <key>1156579309.H517997P12771.mbox1.freenet.de,S=1724,L=52</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-26T09:38:43Z</date>
+       </dict>
+       <key>1156580704.H8509P31929.mbox1.freenet.de,S=1648,L=54</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-26T09:38:43Z</date>
+       </dict>
+       <key>1156581378.H425638P8539.mbox1.freenet.de,S=3939,L=119</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-26T09:38:44Z</date>
+       </dict>
+       <key>1156581789.H721913P14216.mbox1.freenet.de,S=7053,L=123</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-26T09:38:44Z</date>
+       </dict>
+       <key>1156590749.H170677P27688.mbox1.freenet.de,S=3377,L=112</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-26T11:43:22Z</date>
+       </dict>
+       <key>1156590890.H501398P30491.mbox1.freenet.de,S=1507,L=36</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-26T11:43:23Z</date>
+       </dict>
+       <key>1156594169.H314422P20793.mbox1.freenet.de,S=3866,L=117</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-26T12:59:47Z</date>
+       </dict>
+       <key>1156598595.H104465P28754.mbox1.freenet.de,S=1695,L=53</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-26T13:59:46Z</date>
+       </dict>
+       <key>1156602381.H87196P22354.mbox1.freenet.de,S=1632,L=52</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-26T14:59:32Z</date>
+       </dict>
+       <key>1156607782.H396993P12508.mbox1.freenet.de,S=5154,L=133</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-26T16:23:15Z</date>
+       </dict>
+       <key>1156608275.H103212P28930.mbox1.freenet.de,S=1350,L=30</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-26T16:23:16Z</date>
+       </dict>
+       <key>1156610616.H638298P7490.mbox1.freenet.de,S=4018,L=111</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-26T17:05:52Z</date>
+       </dict>
+       <key>1156610763.H278725P10198.mbox1.freenet.de,S=3691,L=58</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-26T17:05:53Z</date>
+       </dict>
+       <key>1156617667.H152062P26956.mbox1.freenet.de,S=4704,L=89</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-26T19:30:56Z</date>
+       </dict>
+       <key>1156618965.H215788P16362.mbox1.freenet.de,S=24100,L=687</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-26T19:30:57Z</date>
+       </dict>
+       <key>1156619069.H69198P18118.mbox1.freenet.de,S=8816,L=240</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-26T19:30:57Z</date>
+       </dict>
+       <key>1156619142.H495546P19352.mbox1.freenet.de,S=5115,L=134</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-26T19:30:57Z</date>
+       </dict>
+       <key>1156622683.H623990P9695.mbox1.freenet.de,S=4462,L=119</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-26T20:55:10Z</date>
+       </dict>
+       <key>1156627302.H474172P6812.mbox1.freenet.de,S=1705,L=56</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-27T09:32:46Z</date>
+       </dict>
+       <key>1156629242.H605644P32006.mbox1.freenet.de,S=1683,L=43</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-27T09:32:47Z</date>
+       </dict>
+       <key>1156633050.H581303P13138.mbox1.freenet.de,S=1524,L=30</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-27T09:32:47Z</date>
+       </dict>
+       <key>1156633485.H534083P21169.mbox1.freenet.de,S=3805,L=116</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-27T09:32:47Z</date>
+       </dict>
+       <key>1156643912.H983156P23127.mbox1.freenet.de,S=3786,L=116</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-27T09:32:47Z</date>
+       </dict>
+       <key>1156645412.H702961P12524.mbox1.freenet.de,S=1590,L=37</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-27T09:32:47Z</date>
+       </dict>
+       <key>1156646412.H830885P22234.mbox1.freenet.de,S=3555,L=104</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-27T09:32:47Z</date>
+       </dict>
+       <key>1156648116.H733591P6025.mbox1.freenet.de,S=23089,L=370</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-27T09:32:48Z</date>
+       </dict>
+       <key>1156650850.H755558P2627.mbox1.freenet.de,S=1560,L=53</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-27T09:32:48Z</date>
+       </dict>
+       <key>1156657047.H587784P18251.mbox1.freenet.de,S=1699,L=56</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-27T09:32:48Z</date>
+       </dict>
+       <key>1156659804.H361202P11295.mbox1.freenet.de,S=4485,L=118</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-27T09:32:48Z</date>
+       </dict>
+       <key>1156677067.H165927P23712.mbox1.freenet.de,S=3816,L=116</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-27T11:22:35Z</date>
+       </dict>
+       <key>1156677789.H338206P3684.mbox1.freenet.de,S=3917,L=95</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-27T11:23:38Z</date>
+       </dict>
+       <key>1156678063.H539715P10854.mbox1.freenet.de,S=2414,L=48</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-27T11:33:05Z</date>
+       </dict>
+       <key>1156678360.H217893P18381.mbox1.freenet.de,S=1977,L=35</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-27T11:33:05Z</date>
+       </dict>
+       <key>1156679377.H960667P9014.mbox1.freenet.de,S=1780,L=33</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-27T11:59:11Z</date>
+       </dict>
+       <key>1156681141.H749219P15470.mbox1.freenet.de,S=1742,L=53</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-27T12:38:44Z</date>
+       </dict>
+       <key>1156682243.H802388P2173.mbox1.freenet.de,S=4615,L=120</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-27T12:38:44Z</date>
+       </dict>
+       <key>1156685948.H91108P27966.mbox1.freenet.de,S=1478,L=39</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-27T13:45:01Z</date>
+       </dict>
+       <key>1156686125.H586308P31263.mbox1.freenet.de,S=6825,L=95</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-27T13:45:02Z</date>
+       </dict>
+       <key>1156687202.H377173P17632.mbox1.freenet.de,S=1644,L=53</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-27T14:20:35Z</date>
+       </dict>
+       <key>1156690381.H436758P11593.mbox1.freenet.de,S=5589,L=144</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-27T17:50:01Z</date>
+       </dict>
+       <key>1156691746.H108969P4127.mbox1.freenet.de,S=20903,L=341</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-27T17:50:04Z</date>
+       </dict>
+       <key>1156692551.H254066P19430.mbox1.freenet.de,S=3873,L=117</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-27T17:50:04Z</date>
+       </dict>
+       <key>1156694718.H545079P28530.mbox1.freenet.de,S=21022,L=344</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-27T17:50:04Z</date>
+       </dict>
+       <key>1156696327.H98631P26821.mbox1.freenet.de,S=9038,L=120</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-27T17:50:04Z</date>
+       </dict>
+       <key>1156696693.H413970P1627.mbox1.freenet.de,S=2048,L=47</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-27T17:50:04Z</date>
+       </dict>
+       <key>1156697667.H784900P20074.mbox1.freenet.de,S=1723,L=42</key>
+       <dict>
+               <key>DateDownloaded</key>
+               <date>2006-08-27T17:50:04Z</date>
+       </dict>
+</dict>
+</plist>
diff --git a/WebCore/manual-tests/memory/string-growth.html b/WebCore/manual-tests/memory/string-growth.html
new file mode 100644 (file)
index 0000000..2f921d0
--- /dev/null
@@ -0,0 +1,16 @@
+<script>
+var x = "x";
+
+for (var i = 1; i < 23; ++i) {
+    x = x + x;
+}
+
+// x should now be a 2^23 character string, which is 16M in size.
+
+var y;
+
+// now append to it repeatedly in a way that prevents buffer sharing
+for (var i = 0; i < 1000; ++i) {
+    y = x + i;
+}    
+</script>
diff --git a/WebCore/manual-tests/memory/xhr-multiple-requests-responseText.html b/WebCore/manual-tests/memory/xhr-multiple-requests-responseText.html
new file mode 100644 (file)
index 0000000..463be57
--- /dev/null
@@ -0,0 +1,57 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+        <head>
+                <title>TestWidget 1.3</title>
+                <script type="text/javascript">
+                        var mainDiv;
+                        var widgetID = "12345678";
+                                        
+                        function init() {
+                                mainDiv = document.getElementById( "main" );
+                        
+                                if ( window.widget ) {
+                                        widget.setCloseBoxOffset( 304, 16 );
+                                        window.resizeTo( 640, 480 );
+                                        //widgetID = widget.identifier;
+                                }
+                        }
+                                        
+                        function getLocalMailIDList() {
+                                var storedLocalMailIDList = new Array();
+                                var xmlHttp = new XMLHttpRequest();
+                                xmlHttp.open("GET", "MessageUidsAlreadyDownloaded2", false);                                
+                                xmlHttp.send(null);
+                                
+                                if (xmlHttp.readyState == 4) {
+                                      xmlHttp.responseText;
+                                }
+                        }
+                        
+                        function getLocalMailIDList2() {
+                                var storedLocalMailIDList = new Array();
+                                var xmlHttp = new XMLHttpRequest();
+                                xmlHttp.open("GET", "MessageUidsAlreadyDownloaded2", false);                                
+                                xmlHttp.send(null);
+                                
+                                
+                                if (xmlHttp.readyState == 4) {
+                                      xmlHttp.responseText;
+                                }
+                        }
+                        
+                        function clear() {
+                                mainDiv.innerText = "C:\\>";
+                        }
+                        
+                        function fillMyRam() {
+                                getLocalMailIDList2();
+                                setTimeout( "fillMyRam();", 500 );
+                        }
+                </script>
+        </head>
+        
+        <body onLoad="init();">
+             <div><a href="javascript:fillMyRam();">fillMyRam</a></div>
+        </body>
+</html>
diff --git a/WebCore/manual-tests/memory/xhr-multiple-requests-responseXML.html b/WebCore/manual-tests/memory/xhr-multiple-requests-responseXML.html
new file mode 100644 (file)
index 0000000..939302a
--- /dev/null
@@ -0,0 +1,117 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+        <head>
+                <title>TestWidget 1.3</title>
+                <script type="text/javascript">
+                        var mainDiv;
+                        var widgetID = "12345678";
+                                        
+                        function init() {
+                                mainDiv = document.getElementById( "main" );
+                        
+                                if ( window.widget ) {
+                                        widget.setCloseBoxOffset( 304, 16 );
+                                        window.resizeTo( 640, 480 );
+                                        //widgetID = widget.identifier;
+                                }
+                        }
+                                        
+                        function getLocalMailIDList() {
+                                var storedLocalMailIDList = new Array();
+                                var xmlHttp = new XMLHttpRequest();
+                                xmlHttp.open("GET", "MessageUidsAlreadyDownloaded2", false);                                
+                                xmlHttp.send(null);
+                                
+                                if (xmlHttp.readyState == 4) {
+                                        var items = xmlHttp.responseXML;
+                                        var counter = 0;
+                                        
+                                        for ( var i = 0; i < items.childNodes.length; i++ ) {
+                                                counter++;
+                                                
+                                                if ( items.childNodes[i].nodeName == "plist" ) {
+                                                        counter++;
+                                                        //alert( items.childNodes[i].nodeName );
+                                                        
+                                                        for ( var j = 0; j < items.childNodes[i].childNodes.length; j++) {
+                                                                counter++;
+                                                                
+                                                                if ( items.childNodes[i].childNodes[j].nodeName == "dict" ) {
+                                                                        counter++;
+                                                                        //alert( items.childNodes[i].childNodes[j].nodeName );
+                                                                        
+                                                                        for ( var k = 0; k < items.childNodes[i].childNodes[j].childNodes.length; k++) {
+                                                                                counter++;
+                                                                                
+                                                                                if ( items.childNodes[i].childNodes[j].childNodes[k].nodeName == "key" ) {
+                                                                                        counter++;
+                                                                                        //alert( items.childNodes[i].childNodes[j].childNodes[k].nodeName );
+                                                                                        //alert( items.childNodes[i].childNodes[j].childNodes[k].firstChild.nodeValue );
+                                                                                        storedLocalMailIDList.push( items.childNodes[i].childNodes[j].childNodes[k].firstChild.nodeValue );
+                                                                                }
+                                                                        }
+                                                                }
+                                                        }
+                                                }
+                                        }
+                                        
+                                        /*
+                                        for ( var i = 0; i < storedLocalMailIDList.length; i++ ) {
+                                                counter++;
+                                                mainDiv.innerText = storedLocalMailIDList[i];
+                                        }
+                                        */
+                                        //alert(storedLocalMailIDList.length);
+                                        
+                                        
+                                        //storedLocalMailIDList.sort();
+                                        
+                                        alert(counter);
+                                }
+                        }
+                        
+                        function getLocalMailIDList2() {
+                                var storedLocalMailIDList = new Array();
+                                var xmlHttp = new XMLHttpRequest();
+                                xmlHttp.open("GET", "MessageUidsAlreadyDownloaded2", false);                                
+                                xmlHttp.send(null);
+                                
+                                
+                                if (xmlHttp.readyState == 4) {
+                                        var items = xmlHttp.responseXML; //.getElementsByTagName("key");
+                                        
+                                        /*
+                                        //alert(items.length);
+                                        
+                                        for ( var i = 0; i < items.length; i+= 2 ) {
+                                                //alert( items[i].firstChild.nodeValue );
+                                                //storedLocalMailIDList.push( items[i].firstChild.nodeValue );
+                                        }
+                                        
+                                        //for ( var i = 0; i < storedLocalMailIDList.length; i++ ) {
+                                        //        mainDiv.innerText = storedLocalMailIDList[i];
+                                        //}
+                                        
+                                        //alert(storedLocalMailIDList.length);
+                                        
+                                        //storedLocalMailIDList.sort();
+                                        */
+                                }
+                        }
+                        
+                        function clear() {
+                                mainDiv.innerText = "C:\\>";
+                        }
+                        
+                        function fillMyRam() {
+                                getLocalMailIDList2();
+                                setTimeout( "fillMyRam();", 500 );
+                        }
+                </script>
+        </head>
+        
+        <body onLoad="init();">
+             <div><a href="javascript:fillMyRam();">fillMyRam</a></div>
+        </body>
+</html>
diff --git a/WebCore/manual-tests/memory/xhr-multiple-requests.html b/WebCore/manual-tests/memory/xhr-multiple-requests.html
new file mode 100644 (file)
index 0000000..17518b9
--- /dev/null
@@ -0,0 +1,55 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+         <head>
+                  <title>TestWidget 1.3</title>
+                  <script type="text/javascript">
+                           var mainDiv;
+                           var widgetID = "12345678";
+                                             
+                           function init() {
+                                    mainDiv = document.getElementById( "main" );
+                           
+                                    if ( window.widget ) {
+                                             widget.setCloseBoxOffset( 304, 16 );
+                                             window.resizeTo( 640, 480 );
+                                             //widgetID = widget.identifier;
+                                    }
+                           }
+                                             
+                           function getLocalMailIDList() {
+                                    var storedLocalMailIDList = new Array();
+                                    var xmlHttp = new XMLHttpRequest();
+                                    xmlHttp.open("GET", "MessageUidsAlreadyDownloaded2", false);                                    
+                                    xmlHttp.send(null);
+                                    
+                                    if (xmlHttp.readyState == 4) {
+                                    }
+                           }
+                           
+                           function getLocalMailIDList2() {
+                                    var storedLocalMailIDList = new Array();
+                                    var xmlHttp = new XMLHttpRequest();
+                                    xmlHttp.open("GET", "MessageUidsAlreadyDownloaded2", false);                                    
+                                    xmlHttp.send(null);
+                                    
+                                    
+                                    if (xmlHttp.readyState == 4) {
+                                    }
+                           }
+                           
+                           function clear() {
+                                    mainDiv.innerText = "C:\\>";
+                           }
+                           
+                           function fillMyRam() {
+                                    getLocalMailIDList2();
+                                    setTimeout( "fillMyRam();", 500 );
+                           }
+                  </script>
+         </head>
+         
+         <body onLoad="init();">
+             <div><a href="javascript:fillMyRam();">fillMyRam</a></div>
+         </body>
+</html>
diff --git a/WebCore/manual-tests/memory/xhr-repeated-string-access.xml b/WebCore/manual-tests/memory/xhr-repeated-string-access.xml
new file mode 100644 (file)
index 0000000..efb8e35
--- /dev/null
@@ -0,0 +1,43 @@
+<html xmlns="http://www.w3.org/1999/xhtml">
+  
+  <head>
+    <title>Massive Memory Leak</title>
+    <script>
+      <![CDATA[
+
+        function loadVideo (videoURI) {
+          var xhr = new XMLHttpRequest();
+          xhr.open('GET', videoURI, true);
+          xhr.onreadystatechange = function (xhrEvent) {
+            if (xhr.readyState == 3) {
+              var currentLength = xhr.responseText.length;
+              var totalLength = parseInt(xhr.getResponseHeader('Content-Length'), 10);
+              print((Math.round((currentLength / totalLength) * 10000) / 100) + '%');
+            }
+            else if (xhr.readyState == 4) {
+              if (xhr.status == 200) {
+                alert('done loading');
+                alert(xhr.responseText.length);
+              }
+              else {
+                alert('NOK');
+              }
+            }
+          };
+          xhr.send(null);
+        }
+
+        function print (message) {
+          document.getElementById('outlet').textContent = message;
+        }
+
+      ]]>
+    </script>
+  </head>
+  
+  <body>
+    <a onclick="loadVideo('http://streamos.atlrec.com/download/atlantic/bjork/video/bjork_itunes1.m4v');">do it!</a>
+    <p id="outlet" />
+  </body>
+  
+</html>
index 681244e..178818e 100644 (file)
@@ -145,7 +145,7 @@ XMLHttpRequestState XMLHttpRequest::getReadyState() const
     return m_state;
 }
 
-String XMLHttpRequest::getResponseText() const
+KJS::UString XMLHttpRequest::getResponseText() const
 {
     return m_responseText;
 }
@@ -164,7 +164,7 @@ Document* XMLHttpRequest::getResponseXML() const
             m_responseXML->open();
             m_responseXML->setURL(m_url.url());
             // FIXME: set Last-Modified and cookies (currently, those are only available for HTMLDocuments).
-            m_responseXML->write(m_responseText);
+            m_responseXML->write(String(m_responseText));
             m_responseXML->finishParsing();
             m_responseXML->close();
             
@@ -252,7 +252,7 @@ XMLHttpRequest::XMLHttpRequest(Document* d)
     , m_async(true)
     , m_loader(0)
     , m_state(Uninitialized)
-    , m_responseText("", 0)
+    , m_responseText("")
     , m_createdDocument(false)
     , m_aborted(false)
 {
@@ -469,13 +469,29 @@ void XMLHttpRequest::abort()
 
     m_decoder = 0;
 
-    if (hadLoader) {
-        {
-            KJS::JSLock lock;
-            gcUnprotectNullTolerant(KJS::ScriptInterpreter::getDOMObject(this));
-        }
-        deref();
+    if (hadLoader)
+        dropProtection();
+}
+
+void XMLHttpRequest::dropProtection()        
+{
+    {
+        KJS::JSLock lock;
+        KJS::JSValue* wrapper = KJS::ScriptInterpreter::getDOMObject(this);
+        KJS::gcUnprotectNullTolerant(wrapper);
+    
+        // the XHR object itself holds on to the responseText, and
+        // thus has extra cost even independent of any
+        // responseText or responseXML objects it has handed
+        // out. But it is protected from GC while loading, so this
+        // can't be recouped until the load is done, so only
+        // report the extra cost at that point.
+    
+        if (wrapper)
+            KJS::Collector::reportExtraMemoryCost(m_responseText.size() * 2);
     }
+
+    deref();
 }
 
 void XMLHttpRequest::overrideMIMEType(const String& override)
@@ -636,13 +652,8 @@ void XMLHttpRequest::didFinishLoading(SubresourceLoader* loader)
     changeState(Loaded);
     m_decoder = 0;
 
-    if (hadLoader) {
-        {
-            KJS::JSLock lock;
-            gcUnprotectNullTolerant(KJS::ScriptInterpreter::getDOMObject(this));
-        }
-        deref();
-    }
+    if (hadLoader)
+        dropProtection();
 }
 
 void XMLHttpRequest::willSendRequest(SubresourceLoader*, ResourceRequest& request, const ResourceResponse& redirectResponse)
index 19346f4..e8e06ee 100644 (file)
@@ -29,6 +29,7 @@
 #include "ResourceResponse.h"
 #include "StringHash.h"
 #include "SubresourceLoaderClient.h"
+#include <kjs/ustring.h>
 
 #include <wtf/HashMap.h>
 #include <wtf/Vector.h>
@@ -81,7 +82,7 @@ public:
     void overrideMIMEType(const String& override);
     String getAllResponseHeaders() const;
     String getResponseHeader(const String& name) const;
-    String getResponseText() const;
+    KJS::UString getResponseText() const;
     Document* getResponseXML() const;
 
     void setOnReadyStateChangeListener(EventListener*);
@@ -122,6 +123,7 @@ private:
 
     void changeState(XMLHttpRequestState newState);
     void callReadyStateChangeListener();
+    void dropProtection();
 
     Document* m_doc;
 
@@ -142,7 +144,14 @@ private:
     String m_encoding;
 
     RefPtr<TextResourceDecoder> m_decoder;
-    String m_responseText;
+
+    // Unlike most strings in the DOM, we keep this as a KJS::UString, not a WebCore::String.
+    // That's because these strings can easily get huge (they are filled from the network with
+    // no parsing) and because JS can easily observe many intermediate states, so it's very useful
+    // to be able to share the buffer with JavaScript versions of the whole or partial string.
+    // In contrast, this string doesn't interact much with the rest of the engine so it's not that
+    // big a cost that it isn't a String.
+    KJS::UString m_responseText;
     mutable bool m_createdDocument;
     mutable RefPtr<Document> m_responseXML;