--- /dev/null
+Some notes of the format of DL files:
+
+
+
+DL file format:
+
+All offsets are relative to the start of the section they are in.
+All fileds are uint32 (4 bytes) unless otherwise specified. All other fields are aligned on 4 bytes boundries.
+
+Header Section
+ Magic
+ File Format Version Number
+ Auth Section Offset
+ Schema Section Offset
+
+Auth Section
+ Auth Info Size
+ Auth Info Data
+
+Schema Section # This section is always read entirely into memory
+ Schema Section Size (uint32)
+ Tables
+ Table Count (uint32)
+ Table Offset 0 # Relative to start of Schema Section
+ Table Offset 1
+ ...
+ Table Offset N
+
+# Information about parsing modules is read directly from the meta tables
+Table Section
+ Table Section Size
+ Table ID (uint32)
+ Records Count # Number of Records in record section.
+ Record 0 Offset # Relative to start of Table Section.
+ Index SubSection Offset # Relative to start of Table Section
+ Head of Free List # Table Section relative first free
+ # recordNumber slot (with bit 0 set)
+ # Or 0 if there are no free records
+ Record Number Count # Start of range of unused record numbers
+ Record 0 offset # Relative to start of Table Section.
+ Record 1 offset
+ Record 2 freelist # If Bit zero is set this is Table Section
+ # relative offset to next free recordNumber
+ # 0 indicates the last free record slot.
+ ...
+ Record n offset
+ Record
+ Record Size # Rounded up to nearest mulitple of 4
+ Record Number
+ Creation File Version
+ Record Version
+ Data Size
+ SemanticInformation
+ Attribute 0 Offset
+ Attribute 1 Offset
+ Attribute 2 Offset
+ ...
+ Attribute m Offset
+ Data
+ Data
+ Attribute 0
+ Size
+ Data
+ Attribute 1
+ Value
+ ...
+ Attribute m
+ Value Count
+ Value 0
+ Value 1
+ ...
+ Value p
+ Record
+ ...
+ Record
+ Index SubSection
+ Index SubSection Size
+ Index TOC # This is part of the Schema
+ Record Type
+ Attribute Type
+ Index Offset
+ Index 1
+ Index Size
+ Index Offsets
+ Index Offset Count
+ Index Data 1 Offset
+ Index Data 2 Offset
+ ...
+ Index Data m OFFSET
+ Index Data
+ Index Data 1
+ Record Offset
+ Attribute Size
+ Attribute Data
+ Index Data 2
+ ...
+ Index Data N
+ Index 2
+ ...
+ Index n
+
+Version Section # Maintained by AtomicFile code
+ 4 byte version number
+
+old Schema Section # This section is always read entirely into memory
+ Schema Section Size (uint32)
+ Releations
+ Relation Count (uint32)
+ Relation
+ Relation ID (uint32)
+ Record Section Offset
+ Relation Name Size
+ Relation Name Data
+ Attributes
+ Attribute Count (uint32)
+ Attribute
+ Releation ID (uint32)
+ Attribute ID (uint32)
+ Attribute Format (uint32)
+ Attribute Name Format (uint32)
+ Attribute Name Size
+ Attribute Name Data
+ Attribute Name ID Size
+ Attribute Name ID Data
+ ParsingModule
+ Parsion Module Present (bool)
+ Module ID (GUID)
+ SSID (uint32)
+ SubService Type (uint32)
+ Addin Version Major (uint32)
+ Addin Version Minor (uint32)
+ Attribute
+ ...
+ Attribute
+ Indexes
+ Index Count (uint32)
+ Index
+ Relation ID (uint32)
+ Index ID (uint32)
+ Index Type (uint32)
+ Indexed Data Location (uint32)
+ Index Attribute Count (uint32)
+ Attribute ID (uint32)
+ Attribute ID (uint32)
+ ...
+ Attribute ID (uint32)
+ Index
+ ...
+ Index
+ Relation
+ ...
+ Relation
+