more progress
[pspp] / spo-notes
1 Exactly one NavRoot is always present
2
3 Exactly one NavHead is present except for .spo files that are (mostly)
4 empty, which have none
5
6 The Nav* strings only appear once per file, as:
7 ffff 0000 xxyy string
8 Sometimes there is zero spacing between these.
9
10 File begins with:
11         (00 | 0[1234] i0)
12         "SPSS Output Document"
13         (i0? | i1 63) ffff 0000
14         "NavHead"     # or any other "Nav*"
15         02 int32[x] int32[y] i24 int32[z] int32[w] int32[v]
16         (i0 | i1 | i2 | i3 | i4)
17         (i0| i1 | i2 | i3)
18         ffff 0000
19         "DspSimpleText"
20         00 (i0 (i0 | i1) 00)? ffff 0000
21         ("IndexedCollection" | "DspString")
22 and then with the IndexedCollection case:
23         00*14 ffff 0000
24 and the DspString case:
25         01 02 28 (00|05) 00 (00|01)
26         often followed by a string
27
28 The first byte might be a version number.  "Save As" or "Save" has the effect:
29     00 -> 00 (tried 1 out of 3)
30     01 -> 04 (tried 3 out of 3)
31     02 -> 04 (tried 1 out of many: deska, regress)
32     03 -> 04 (tried 1 out of many: 3d67bb)
33     04 -> 04 (tried 1 out of many: detailer2)
34
35 Charset numbers come from the list for \fcharset in the RTF
36 specification:
37 http://latex2rtf.sourceforge.net/rtfspec_6.html#rtfspec_10 The charset
38 number appears 4 bytes before the font name string, e.g. here it is
39 0xb2 or 178 (Arabic):
40
41      01 01 ed ff ff ff 00 00 00 00 00 00 00 00 00 00 00 00 bc 02 00 00 00 00 00 b2 00 00 00 22 41 72 61 62 69 63 20 54 72 61 6e 73 70 61 72 65 6e 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 50 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 ............................."Arabic Transparent..............P...............
42
43 and here it is 0xee or 238 (Polish):
44
45      01 01 ed ff ff ff 00 00 00 00 00 00 00 00 00 00 00 00 bc 02 00 00 00 00 00 ee 00 00 00 22 41 72 69 61 6c 00 61 00 6c 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 50 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 ............................."Arial.a.l.......................P...............
46
47 It is usually 0 for "ANSI".
48
49 DspString is the label of the object that is currently selected.
50
51 The currently selected object is always the first in the file
52 regardless of the output hierarchy and order
53
54 The entire rec:NavPivot contents, minus the final 00 byte, appear
55 later in the file to identify the selected object.  However, the
56 initial 02 02*8 can disappear into a "float 0.0" if there's a leading
57 80.
58
59 Each object has a small negative number, e.g. 0xfffffe91 == -390.
60
61 Objects:
62   NavRoot: root output object
63   NavLog: log object
64   NavHead: heading with subobjects
65     NavTreeViewItem: assocated with NavHead somehow
66   NavTitle: title within a heading
67   NavNote: notes table
68   NavPivot: table
69
70 The start of the file might be a version number
71
72 x and y are either 0 or 2-3 byte values, e.g. 0x670b or 0x3b989.
73 z is a 2-3 byte negative value, e.g. 0xffff8997
74 w is a 2-byte value or 0
75 v is a 2-byte negative value or 0
76
77
78
79 rtf:
80
81         "Factor Analysis"
82         01 01
83         table 1
84         00 00 00 f9 00 00 00
85         "\rtf..."
86         00 18 00 00 00 00 00 00 00 de ff ff ff 18 00 00 00 00 00 00 00 28 00 00 00 28 00 00 00 18 04 00 00 ae 73 01 00 00 00 00 00 00 34 21 00 00 f8 2a 00 00 01 00 07 00 01 00 f6 04 00 00 f6 04 00 00 f6 04 00 00 f6 04 00 00 00 00 f0 00 00 00 00 00 01 00
87         "(Continued)"
88
89
90 rtf2:
91
92         "Factor Analysis"
93         01 01
94         table 1
95         00 00 00 da 00 00 00
96         "\rtf..."
97         00 ffff 0000
98
99 rtf3:
100
101         ...
102         00 1f 80 02 00 00 00 00 00 00 00 00 18 00 00 00 00 00 00 00 06 02 00 00 28 fd ff ff 02 00 00 00 01 00 00
103
104    1456  01 00 00 00 00 00 00 00 03 80 00 00 00 00 00 00-00 00 00 00 05 80 01 02 28 05 00 01    03 4c 6f 67-               07 80 00 02 00 00........................(....Log......
105       3  01 00 00 00 01 00 00 00 03 80 00 00 00 00 00 00-00 00 00 00 05 80 01 02 28 05 00 01    03 4c 6f 67-               07 80 00 02 00 00........................(....Log......
106      13     00 00 00 00 00 00 00 03 80 00 00 00 00 00 00 00-00 00 00 05 80 01 02 28 05 00 00 00 08 53 50 53-53 20 4c 6f 67 07.......................(.....SPSS Log.
107      13     00 00 00 00 00 00 00 03 80 00 00 00 00 00 00 00-00 00 00 07 80 01 02 28 05 00 00 00 08 53 50 53-53 20 4c 6f 67 09.......................(.....SPSS Log.
108      13  01 00 00 00 00 00 00 00 03 80 00 00 00 00 00 00-00 00 00 00 05 80 01 02 28 05 00 01    08 53 50 53-53 20 4c 6f 67 07........................(....SPSS Log.
109 notea.spo/Contents
110
111
112
113 PVPrintManager:
114
115         "PVPrintManager"
116         02 byte[x] 00 i2 (i0|i3) i1 00*7
117         sometimes 0000 ffff
118 where x is between 0a and 2e
119
120
121
122 regress, notea
123 --------------
124
125 ffff 0000 "NavPivot"
126         02 fa 3c 00 00 3b 5a 01 00
127         18 00 00 00 b4 35 ff ff 7f
128         02 00 00 13 28 ff ff
129         02 00 00 00
130         01 00 00 00
131
132         notea:
133         02 00 00 00 00 00 00 00 00
134         18 00 00 00 93 f0 ff ff dc
135         03 00 00 cd ef ff ff
136         02 00 00 00
137         01 00 00
138         missing terminator!
139
140 ffff 0000 "DspSimpleText"
141         00*10
142
143 ffff 0000 "DspString"
144         01 02 28 05 00 01 "Text Output"
145
146 ffff 0000 "NavOleItem"
147         00 01 00 00
148         07 00 00 00
149         01 00 00 00 00 00
150         01 00 00 00 00 00 00 00 00 00 00
151         01 00 00 00 00 00
152         "Regression"
153         01
154
155         notea:
156         00 01 00 00
157         01 00 00 00
158         01 00 00 00 00 00
159         01 00 00 00 00 00 00 00 00 00 00
160         01 00 00 00 00 00
161         00 01 01 f3 ff
162
163 ffff 0000 "PTPivotController"
164         02 67 02 00 00 a1 0d 00 00
165         64 00 00 00
166         64 00 00 00
167         64 00 00 00
168         64 00 00 00
169
170         notea:
171         02 29 20 69 31 38 28 66 38
172         64 00 00 00
173         64 00 00 00
174         64 00 00 00
175         64 00 00 00
176
177 ffff 0000 "PVPivotView"
178         04 00 00 00 00
179
180 ffff 0000 "PMPivotModel"
181         03
182
183 ffff 0000 "NDimensional__DspCell"
184         00 03 00 00 00
185
186 ffff 0000 "IndexedCollection"
187         00
188         05 00 00 00
189         01 00 13 80
190         00
191         0b 00 00 00
192         01 00 13 80
193         00
194         02 00 00 00
195         01 00
196
197 ffff 0000 "DspCell"
198         00 03 80 00*10
199
200 ffff 0000 "DspNumber"
201
202 NavTitle  02 00 00 00 00 00 00 00 00 18 00 00 00 03 .. .. .. 00 04 00 00 .. .. ff ff 02 00 00 00 01 00 00
203
204 80 02 <double>
205 80 01 02 28 05 00 01 <len1> <string>
206 80 01 02 28 05 00 01 ff <len2> <string>
207 80 01 03 28 05 80 02 <double> 
208
209 80 00 03
210 80 00 00 00 00 00 00 00 00 00 00 ..
211 80 01 .. .. .. ..
212
213 DspNumber:
214         01 <decimals> <width> <type>
215
216 NDimensional__DspCell:
217         00 int32[ndims]
218
219 IndexedCollection: 7+(9*ndims) bytes
220         00 0e 00 00 00 01 00
221
222         00 22 00 00 00 01 00
223   11 80 00 08 00 00 00 01 00
224
225         00 5c 00 00 00 01 00
226   13 80 00 5c 00 00 00 01 00
227   13 80 00 05 00 00 00 01 00
228
229         00 01 00 00 00 01 00
230   11 80 00 02 00 00 00 01 00
231   11 80 00 03 00 00 00 01 00
232   11 80 00 03 00 00 00 01 00
233
234            ^^ number of categories
235
236 ----------------------------------------------------------------------
237 ab1.dump
238
239 3 dimensions, 92x92x5:
240     NDimensional__DspCell  00 03 00 00 00
241
242     IndexedCollection  00 5c 00 00 00 01 00 13 80 00 5c 00 00 00 01 00 13 80 00 05 00 00 00 01 00
243
244 The cells are in order last dimension changes most quickly.
245
246 ----------------------------------------------------------------------
247
248 ZMAW_zaj3.dump
249
250 4-dimensions, 1x2x3x3, 18 cells
251
252 16 80 -> next 4th dim
253 11 80 00 03 00 00 00 01 00 -> increment another dim
254
255 ----------------------------------------------------------------------
256
257 rec:PMModelItemInfo 00
258  .. .. .. .. .. .. .. .. .. .. .. .. cell F40.2 "Contents"                           07 .. .. .. 55 80 .. 57 80 .. 
259  00 .. .. .. .. .. .. .. 07 .. 74 0e cell F40.2   "Output Created"                   .. .. .. .. 55 80 .. 57 80 ..
260  01 .. .. .. .. .. .. .. 08 .. 74 0e cell F40.2   "Comments"                         .. .. .. .. 55 80 .. 57 80 ..
261  .. .. .. .. .. .. .. .. .. .. .. .. cell F40.2   "Input"                            06 .. .. .. 55 80 .. 57 80 ..
262  02 .. .. .. .. .. .. .. 0a .. 74 0e cell F40.2     "Data"                           .. .. .. .. 55 80 .. 57 80 ..
263  03 .. .. .. .. .. .. .. .. .. .. .. cell F40.2     "Active Dataset"                 .. .. .. .. 55 80 .. 57 80 ..
264  04 .. .. .. .. .. .. .. 0e .. 74 0e cell F40.2     "Filter"                         .. .. .. .. 55 80 .. 57 80 ..
265  05 .. .. .. .. .. .. .. 11 .. 74 0e cell F40.2     "Weight"                         .. .. .. .. 55 80 .. 57 80 ..
266  06 .. .. .. .. .. .. .. 12 .. 74 0e cell F40.2     "Split File"                     .. .. .. .. 55 80 .. 57 80 ..
267  07 .. .. .. .. .. .. .. 13 .. 74 0e cell F40.2     "N of Rows in Working Data File" .. .. .. .. 55 80 .. 57 80 .. 
268  .. .. .. .. .. .. .. .. .. .. .. .. cell F40.2   "Missing Value Handling"           02 .. .. .. 55 80 .. 57 80 ..
269  08 .. .. .. .. .. .. .. .. .. .. .. cell F40.2     "Definition of Missing"          .. .. .. .. 55 80 .. 57 80 ..
270  09 .. .. .. .. .. .. .. .. .. .. .. cell F40.2     "Cases Used"                     .. .. .. .. 55 80 .. 57 80 ..
271  0a .. .. .. .. .. .. .. 17 .. 74 0e cell F40.2   "Weight Handling"                  .. .. .. .. 55 80 .. 57 80 ..
272  0b .. .. .. .. .. .. .. 18 .. 74 0e cell F40.2   "Syntax"                           .. .. .. .. 55 80 .. 57 80 ..
273  .. .. .. .. .. .. .. .. .. .. .. .. cell F40.2   "Resources"                        03 .. .. .. 55 80 .. 57 80 ..
274  0c .. .. .. .. .. .. .. 1b .. 74 0e cell F40.2     "Elapsed Time"                   .. .. .. .. 55 80 .. 57 80 ..
275  0d .. .. .. .. .. .. .. .. .. .. .. cell F40.2     "Maximum Memory Required"        .. .. .. .. 55 80 .. 57 80 ..
276  0e .. .. .. .. .. .. .. .. .. .. .. cell F40.2     "Processor Time"
277
278 ab1:
279
280 rec:PMModelItemInfo ..
281  .. .. .. .. 01 .. .. .. 91 1a 74 0e cell F40.2 "Statistics"                         05 .. .. .. ff 7f 51 19 02 80 .. ff 7f 53 19 02 80 ..
282  00 .. .. .. .. .. .. .. 98 1a 74 0e cell F40.2 "Pearson Correlation"                .. .. .. .. ff 7f 51 19 02 80 .. ff 7f 53 19 02 80 ..
283  01 .. .. .. .. .. .. .. 99 1a 74 0e cell F40.2 "Sig. (2-tailed)"                    .. .. .. .. ff 7f 51 19 02 80 .. ff 7f 53 19 02 80 ..
284  02 .. .. .. .. .. .. .. 96 1a 74 0e cell F40.2 "Sum of Squares and Cross-products"  .. .. .. .. ff 7f 51 19 02 80 .. ff 7f 53 19 02 80 ..
285  03 .. .. .. .. .. .. .. 97 1a 74 0e cell F40.2 "Covariance"                         .. .. .. .. ff 7f 51 19 02 80 .. ff 7f 53 19 02 80 ..
286  04 .. .. .. .. .. .. .. 94 1a 74 0e cell F40.2 "N"                                  .. .. .. .. .. .. .. .. .. ..
287  05 .. .. .. 01 .. ff 7f 57 19 02 .. ff 7f 5b 19 02 .. ff 7f 5f 19 02 .. ff 7f 63 19 02 .. ff 7f 67 19 02 .. .. 05 .. .. .. .. .. .. .. .. .. 01 .. .. .. 02 .. .. .. 03 .. .. .. 04 .. .. .. ff 7f 4f 19 02 80 ..
288  ff 7f 51 19 02 80 .. ff 7f 53 19 02 80 ..
289  .. .. .. .. 01 .. .. .. 90 1a 74 0e
290
291 rec:PMModelItemInfo .. ..
292  .. .. .. 01 .. .. .. ff ff ff ff cell F40.2       "score"      01 .. .. .. 86 80 .. 88 80 .. ..
293  .. .. .. .. .. .. .. f4 0e 74 0e cell F40.2         "Valid"    09 .. .. .. 86 80 .. 88 80 .. ..
294  .. .. .. .. .. .. .. ff ff ff ff cell F40.2 xxx19     "17..."  .. .. .. .. 86 80 .. 88 80 .. 01
295  .. .. .. .. .. .. .. ff ff ff ff cell F40.2 xxx19     "22..."  .. .. .. .. 86 80 .. 88 80 .. 02
296  .. .. .. .. .. .. .. ff ff ff ff cell F40.2 xxx19     "26..."  .. .. .. .. 86 80 .. 88 80 .. 03
297  .. .. .. .. .. .. .. ff ff ff ff cell F40.2 xxx19     "29..."  .. .. .. .. 86 80 .. 88 80 .. 04
298  .. .. .. .. .. .. .. ff ff ff ff cell F40.2 xxx19     "33..."  .. .. .. .. 86 80 .. 88 80 .. 05
299  .. .. .. .. .. .. .. ff ff ff ff cell F40.2 xxx19     "37..."  .. .. .. .. 86 80 .. 88 80 .. 06
300  .. .. .. .. .. .. .. ff ff ff ff cell F40.2 xxx19     "40..."  .. .. .. .. 86 80 .. 88 80 .. 07
301  .. .. .. .. .. .. .. ff ff ff ff cell F40.2 xxx19     "48..."  .. .. .. .. 86 80 .. 88 80 .. 08
302  .. .. .. .. .. .. .. f2 0e 74 0e cell F40.2         "Total"    .. .. .. .. .. .. .. .. .. .. 09
303  .. .. .. 01 .. 90 .. 94 .. 98 .. 9c .. a0 .. a4 .. a8 .. ac .. b0 .. .. 09 .. .. .. .. .. .. .. .. .. 01 .. .. .. 02 .. .. .. 03 .. .. .. 04 .. .. .. 05 .. .. .. 06 .. .. .. 07 .. .. .. 08 .. ..
304  .. 84 80 .. 86 80 .. 88 80 .. .. .. .. .. 01 .. .. .. eb 0e 74 0e cell F40.2       "Statistics"
305  04 .. .. .. 86 80 .. 88 80 .. .. .. .. .. .. .. .. .. dc 0e 74 0e cell F40.2         "Frequency"
306  .. .. .. .. 86 80 .. 88 80 .. 01 .. .. .. .. .. .. .. e6 0e 74 0e cell F40.2         "Percent"
307  .. .. .. .. 86 80 .. 88 80 .. 02 .. .. .. .. .. .. .. f5 0e 74 0e cell F40.2         "Valid Percent"
308  .. .. .. .. 86 80 .. 88 80 .. 03 .. .. .. .. .. .. .. da 0e 74 0e cell F40.2         "Cumulative Percent"
309  .. .. .. .. .. .. .. .. .. .. 04 .. .. .. 01 .. b9 .. bd .. c1 .. c5 .. .. 04 .. .. .. .. .. .. .. .. .. 01 .. .. .. 02 .. .. .. 03 .. .. .. .. .. .. .. .. 01 .. .. 11 .. .. .. .. .. .. .. .. .. 4b .. .. .. .. .. .. .. .. .. .. ..
310
311 Output_201B:
312
313 rec:PMModelItemInfo       00
314 00 00 00 00 01 00 00 00 00 00 00 00 cell F40.2 "Variables" 5a 00 00 00 64 85 00 66 85 00
315 00 00 00 00 00 00 00 00 ff ff ff ff cell F40.2 "i10149"    00 00 00 00 64 85 00 66 85 00
316 01 00 00 00 00 00 00 00 ff ff ff ff cell F40.2 "i10150"    00 00 00 00 64 85 00 66 85 00
317 02 00 00 00 00 00 00 00 ff ff ff ff cell F40.2 "i10154"    00 00 00 00 64 85 00 66 85 00
318 03 00 00 00 00 00 00 00 ff ff ff ff cell F40.2 "i10168"    00 00 00 00 64 85 00 66 85 00
319 04 00 00 00 00 00 00 00 ff ff ff ff cell F40.2 "i10171"    00 00 00 00 64 85 00 66 85 00
320 05 00 00 00 00 00 00 00 ff ff ff ff
321 cell F40.2 "i10183"
322  00 00 00 00 64 85 00 66 85 00 06 00 00 00 00 00 00 00 ff ff ff ff
323 cell F40.2 "i10184"
324  00 00 00 00 64 85 00 66 85 00 07 00 00 00 00 00 00 00 ff ff ff ff
325 cell F40.2 "i10212"
326  00 00 00 00 64 85 00 66 85 00 08 00 00 00 00 00 00 00 ff ff ff ff
327 cell F40.2 "i10220"
328  00 00 00 00 64 85 00 66 85 00 09 00 00 00 00 00 00 00 ff ff ff ff ....d..f..............
329 cell F40.2 "i10222"
330  00 00 00 00 64 85 00 66 85 00 0a 00 00 00 00 00 00 00 ff ff ff ff ....d..f..............
331 cell F40.2 "i10226"
332  00 00 00 00 64 85 00 66 85 00 0b 00 00 00 00 00 00 00 ff ff ff ff
333 cell F40.2 "i10228"
334  00 00 00 00 64 85 00 66 85 00 0c 00 00 00 00 00 00 00 ff ff ff ff
335 cell F40.2 "i10229"
336  00 00 00 00 64 85 00 66 85 00 0d 00 00 00 00 00 00 00 ff ff ff ff ....d..f..............
337 cell F40.2 "i10230"
338  00 00 00 00 64 85 00 66 85 00 0e 00 00 00 00 00 00 00 ff ff ff ff
339 cell F40.2 "i10234"
340  00 00 00 00 64 85 00 66 85 00 0f 00 00 00 00 00 00 00 ff ff ff ff
341 cell F40.2 "i10244"
342  00 00 00 00 64 85 00 66 85 00 10 00 00 00 00 00 00 00 ff ff ff ff
343 cell F40.2 "i10247"
344  00 00 00 00 64 85 00 66 85 00 11 00 00 00 00 00 00 00 ff ff ff ff
345 cell F40.2 "i10250"
346  00 00 00 00 64 85 00 66 85 00 12 00 00 00 00 00 00 00 ff ff ff ff
347 cell F40.2 "i10265"
348  00 00 00 00 64 85 00 66 85 00 13 00 00 00 00 00 00 00 ff ff ff ff
349 cell F40.2 "i10266"
350  00 00 00 00 64 85 00 66 85 00 14 00 00 00 00 00 00 00 ff ff ff ff
351 cell F40.2 "i10269"
352  00 00 00 00 64 85 00 66 85 00 15 00 00 00 00 00 00 00 ff ff ff ff
353 cell F40.2 "i10270"
354  00 00 00 00 64 85 00 66 85 00 16 00 00 00 00 00 00 00 ff ff ff ff
355 cell F40.2 "i10272"
356  00 00 00 00 64 85 00 66 85 00 17 00 00 00 00 00 00 00 ff ff ff ff
357 cell F40.2 "i10286"
358  00 00 00 00 64 85 00 66 85 00 18 00 00 00 00 00 00 00 ff ff ff ff
359
360
361
362 ff is a way to say that there's a 4-byte number instead of 1-byte?
363
364
365 01 01 ed ff ff ff 00 00 00 00 00 00 00 00 00 00 00 00 bc 02 00 00 00 00 00 00 00 00 00 22 41 72 69 61 6c 00 61 00 6c 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 50 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00
366 07 80 00 02 00 00 00 0a 00 01 00 00 00 00 00 00 00 00 00 01 00 00 00 00 00 00
367 01 01 0a 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 01 00 00 00 00 00 00 00 00 00 22 43 6f 75 72 69 65 72 20 4e 65 77 00 72 00 20 00 4e 00 65 00 77 00 00 00 00 00 00 00 00 00 00 00 50 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00
368 07 80 00 00 00 00 00 0f 00 01 00 00 00 00 00 00 00 00 00 01 00 00 00 00 00 00
369 00
370
371
372  .. .. .. .. .. .. a9 80 .. 01 .. .. .. .. .. ff ff ff .. .. .. ab 80 .. 01 .. .. .. c8 .. 78 .. 78 .. 14 .. 14 .. .. .. 01 .. f3 ff ff ff .. .. .. .. .. .. .. .. .. .. .. .. 90 01 .. .. .. .. .. .. .. .. .. 22
373  .. .. .. .. .. .. a9 80 .. 01 .. .. .. .. .. ff ff ff .. .. .. ab 80 .. 01 .. .. .. c8 .. 78 .. a0 .. 14 .. 14 .. .. .. 01 .. ef ff ff ff .. .. .. .. .. .. .. .. .. .. .. .. 90 01 .. .. .. .. .. .. .. .. .. 22
374  .. .. .. .. .. .. a9 80 .. 01 .. .. .. .. .. ff ff ff .. .. .. ab 80 .. 01 .. .. .. c8 .. 78 .. a0 .. 14 .. 14 .. .. .. 01 .. f2 ff ff ff .. .. .. .. .. .. .. .. .. .. .. .. bc 02 .. .. 01 .. .. .. .. .. .. 12
375  .. .. .. .. .. .. a9 80 .. 01 .. .. .. .. .. ff ff ff .. .. .. ab 80 .. 01 .. .. .. c8 .. 78 .. a0 .. 14 .. 14 .. .. .. 01 .. f2 ff ff ff .. .. .. .. .. .. .. .. .. .. .. .. 90 01 .. .. .. .. .. .. .. .. .. 22
376  80 .. 80 .. .. .. a9 80 .. 01 .. .. .. .. .. ff ff ff .. .. .. ab 80 .. 01 .. .. .. c8 .. 78 .. a0 .. 14 .. 14 .. .. .. 01 .. f3 ff ff ff .. .. .. .. .. .. .. .. .. .. .. .. 90 01 .. .. .. .. .. .. .. .. .. 22
377
378
379
380 record type 02
381 ==============
382
383 02 int16*4 int32*4
384
385
386
387 rec:NavLog
388
389 02 .. .. .. .. .. .. .. ..
390 18 .. .. .. .. .. .. .. b3 02 .. .. 30 f8 ff ff 01 .. .. .. 01 .. .. cell F40.2 "LogA" 07 80 .. 02 .. .. .. 0f .. 01 .. .. .. .. .. .. .. .. .. 01 .. .. .. .. .. .. 01 01 f5 ff ff ff .. .. .. .. .. .. .. .. .. .. .. .. 90 01 .. .. .. .. .. .. .. .. .. 22 41 72 69 61 6c .. .. .. .. .. .. .. .. .. .. .. .. .. .. rtf .. 0e float 0.......
391 18 .. .. .. 0e f8 ff ff b3 02 .. .. 3e f0 ff ff 01 .. .. .. 01 .. .. cell F40.2 "LogB" 07 80 .. 02 .. .. .. 13 .. 01 .. .. .. .. .. .. .. .. .. 01 .. .. .. .. .. .. 01 01 f5 ff ff ff .. .. .. .. .. .. .. .. .. .. .. .. 90 01 .. .. .. .. .. .. .. .. .. 22 41 72 69 61 6c .. .. .. .. .. .. .. .. .. .. .. .. .. .. rtf .. 0e float 0.......
392 18 .. .. .. 1c f0 ff ff 5f 02 .. .. 4c e8 ff ff 01 .. .. .. 01 .. .. cell F40.2 "LogC" 07 80 .. 02 .. .. .. 17 .. 01 .. .. .. .. .. .. .. .. .. 01 .. .. .. .. .. .. 01 01 f5 ff ff ff .. .. .. .. .. .. .. .. .. .. .. .. 90 01 .. .. .. .. .. .. .. .. .. 22 41 72 69 61 6c .. .. .. .. .. .. .. .. .. .. .. .. .. .. rtf .. 0e float 0.......
393 18 .. .. .. 2a e8 ff ff 5f 02 .. .. 5a e0 ff ff 01 .. .. .. 01 .. .. cell F40.2 "LogD" 07 80 .. 02 .. .. .. 1b .. 01 .. .. .. .. .. .. .. .. .. 01 .. .. .. .. .. .. 01 01 f5 ff ff ff .. .. .. .. .. .. .. .. .. .. .. .. 90 01 .. .. .. .. .. .. .. .. .. 22 41 72 69 61 6c .. .. .. .. .. .. .. .. .. .. .. .. .. .. rtf .. 0e float 0.......
394 18 .. .. .. 38 e0 ff ff 5f 02 .. .. 68 d8 ff ff 01 .. .. .. 01 .. .. cell F40.2 "LogE" 07 80 .. 02 .. .. .. 1f .. 01 .. .. .. .. .. .. .. .. .. 01 .. .. .. .. .. .. 01 01 f5 ff ff ff .. .. .. .. .. .. .. .. .. .. .. .. 90 01 .. .. .. .. .. .. .. .. .. 22 41 72 69 61 6c .. .. .. .. .. .. .. .. .. .. .. .. .. .. rtf .. 02 .. 02 .. .. ..
395
396
397 NavTreeViewItem:
398
399 last bit is the number of children plus one, e.g. here it has 0x12+1
400 children.  It's actually the total number of nodes including the root
401 Output node.
402
403 rec:NavTreeViewItem       .. .. .. .. .. 02 .. 01 .. .. .. .. .. .. .. .. .. 01 .. .. .. .. .. .. .. .. .. 18 .. .. .. .. .. .. .. de ff ff ff 18 .. .. .. .. .. .. .. 28 .. .. .. 28 .. .. .. cb 02 .. .. f0 86 .. .. .. .. .. .. .. f8 2a .. .. 34 21 .. .. 01 .. 0f .. 02 .. f6 04 .. .. f6 04 .. .. f6 04 .. .. f6 04 .. .. .. .. f0 .. .. .. 7c 02 01 .. ...............................................(...(.................*..4!..............................|...
404 "(Continued)"
405  01 01 .. .. ..
406 rtf
407  01 01 .. .. ..
408 rtf
409  .. 13 ..
410
411
412 Node depth:
413
414 The "04 00 00 00 04 00 00" is the number of nodes above the node, in
415 this case 4, three Headings and the Output node.  The first 04 is
416 reliable, the second one is sometimes 01.
417
418     00 01
419     float 0.000000
420      18 00 00 00
421     -46782  5f 02 00 00
422     -48782  04 00 00 00 04 00 00
423     cell F40.2 "LogZ"
424      07 80 00 02 00 00 00 7b 00 01 00 00 00 00 00 00 00 00 00 01 00 00 00 00 00 00 01 01 08 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90
425     font
426     rtf
427
428 The node numbering is insane: in decimal each node's number decreases
429 (these numbers are negative) by 2000 then by 34 alternately, except
430 that if a node is collapsed it *increases* by 2000 then decreases by
431 2000.  Below (test15.spo), LogI and LogN are collapsed:
432
433     5:rec:NavLog                02 00 00 00 00 00 00 00 00 18 00 00 00
434     6:-83394 (-83394)  5f 02 00 00
435     7:-85394 (-2000)  04 00 00 00 04 00 00 00
436     12:"LogAC"
437     18:-34 (+85360)  18 00 00 00 00 00 00 00 28 00 00 00 28 00 00 00 cb 02 00 00 92 4d 01 00 00 00 00 00 00 f8 2a 00 00 34 21 00 00 01 00 0f 00 02 00 f6 04 00 00 f6 04 00 00 f6 04 00 00 f6 04 00 00 00 00 f0 00 00 00 7c 02 01 00 ........(...(........M........*..4!..............................|...
438     31:-2000 (-1966)  01 00 00 00 01 00 00
439     32:cell F40.2 "LogA"
440     39:-2034 (-34)  b3 02 00 00
441     40:-4034 (-2000)  01 00 00 00 01 00 00
442     41:cell F40.2 "LogB"
443     48:-4068 (-34)  5f 02 00 00
444     49:-6068 (-2000)  01 00 00 00 01 00 00
445     50:cell F40.2 "LogC"
446     57:-6102 (-34)  5f 02 00 00
447     58:-8102 (-2000)  01 00 00 00 01 00 00
448     59:cell F40.2 "LogD"
449     66:-8136 (-34)  5f 02 00 00
450     67:-10136 (-2000)  01 00 00 00 01 00 00
451     68:cell F40.2 "LogE"
452     75:-10170 (-34)  5f 02 00 00
453     76:-12170 (-2000)  01 00 00 00 01 00 00
454     77:cell F40.2 "LogF"
455     88:-12204 (-34)  5f 02 00 00
456     89:-14204 (-2000)  02 00 00 00 02 00 00
457     90:cell F40.2 "LogG"
458     97:-14238 (-34)  5f 02 00 00
459     98:-16238 (-2000)  02 00 00 00 02 00 00
460     99:cell F40.2 "LogH"
461     106:-16272 (-34)  5f 02 00 00
462     107:-18272 (-2000)  02 00 00 00 02 00 00
463     108:cell F40.2 "LogI"
464     115:-16272 (+2000)  5f 02 00 00
465     116:-18272 (-2000)  02 00 00 00 02 00 00
466     117:cell F40.2 "LogJ"
467     124:-18306 (-34)  5f 02 00 00
468     125:-20306 (-2000)  02 00 00 00 02 00 00
469     126:cell F40.2 "LogK"
470     133:-20340 (-34)  5f 02 00 00
471     134:-22340 (-2000)  02 00 00 00 02 00 00
472     135:cell F40.2 "LogL"
473     142:-22374 (-34)  5f 02 00 00
474     143:-24374 (-2000)  02 00 00 00 02 00 00
475     144:cell F40.2 "LogM"
476     151:-24408 (-34)  5f 02 00 00
477     152:-26408 (-2000)  02 00 00 00 02 00 00
478     153:cell F40.2 "LogN"
479     160:-24408 (+2000)  5f 02 00 00
480     161:-26408 (-2000)  02 00 00 00 02 00 00
481     162:cell F40.2 "LogO"
482     169:-26442 (-34)  5f 02 00 00
483     170:-28442 (-2000)  02 00 00 00 02 00 00
484     171:cell F40.2 "LogP"
485     178:-28476 (-34)  5f 02 00 00
486     179:-30476 (-2000)  02 00 00 00 02 00 00
487     180:cell F40.2 "LogQ"
488     187:-30510 (-34)  5f 02 00 00
489     188:-32510 (-2000)  02 00 00 00 02 00 00
490     189:cell F40.2 "LogR"
491     196:-32544 (-34)  5f 02 00 00
492     197:-34544 (-2000)  02 00 00 00 02 00 00
493     198:cell F40.2 "LogS"
494     205:-34578 (-34)  5f 02 00 00
495     206:-36578 (-2000)  02 00 00 00 02 00 00
496     207:cell F40.2 "LogT"
497     214:-36612 (-34)  5f 02 00 00
498     215:-38612 (-2000)  02 00 00 00 02 00 00
499     216:cell F40.2 "LogU"
500     223:-38646 (-34)  5f 02 00 00
501     224:-40646 (-2000)  02 00 00 00 01 00 00
502     225:cell F40.2 "LogV"
503     236:-40680 (-34)  5f 02 00 00
504     237:-42680 (-2000)  03 00 00 00 03 00 00
505     238:cell F40.2 "LogW"
506     245:-42714 (-34)  5f 02 00 00
507     246:-44714 (-2000)  03 00 00 00 03 00 00
508     247:cell F40.2 "LogX"
509     254:-44748 (-34)  5f 02 00 00
510     255:-46748 (-2000)  03 00 00 00 03 00 00
511     256:cell F40.2 "LogY"
512     267:-46782 (-34)  5f 02 00 00
513     268:-48782 (-2000)  04 00 00 00 04 00 00
514     269:cell F40.2 "LogZ"
515     276:-48816 (-34)  5f 02 00 00
516     277:-50816 (-2000)  04 00 00 00 04 00 00
517     278:cell F40.2 "LogAA"
518     285:-50850 (-34)  5f 02 00 00
519     286:-52850 (-2000)  04 00 00 00 04 00 00
520     287:cell F40.2 "LogAB"
521     294:-52884 (-34)  5f 02 00 00
522     295:-54884 (-2000)  04 00 00 00 01 00 00
523     296:cell F40.2 "LogAC"
524     303:-54918 (-34)  5f 02 00 00
525     304:-56918 (-2000)  04 00 00 00 04 00 00
526     305:cell F40.2 "LogAC"
527     312:-56952 (-34)  5f 02 00 00
528     313:-58952 (-2000)  04 00 00 00 04 00 00
529     314:cell F40.2 "LogAC"
530     321:-58986 (-34)  5f 02 00 00
531     322:-60986 (-2000)  04 00 00 00 04 00 00
532     323:cell F40.2 "LogAC"
533     330:-61020 (-34)  5f 02 00 00
534     331:-63020 (-2000)  04 00 00 00 04 00 00
535     332:cell F40.2 "LogAC"
536     339:-63054 (-34)  5f 02 00 00
537     340:-65054 (-2000)  04 00 00 00 04 00 00
538     341:cell F40.2 "LogAC"
539     348:-65088 (-34)  5f 02 00 00
540     349:-67088 (-2000)  04 00 00 00 04 00 00
541     350:cell F40.2 "LogAC"
542     357:-67122 (-34)  5f 02 00 00
543     358:-69122 (-2000)  04 00 00 00 04 00 00
544     359:cell F40.2 "LogAC"
545     366:-69156 (-34)  5f 02 00 00
546     367:-71156 (-2000)  04 00 00 00 04 00 00
547     368:cell F40.2 "LogAC"
548     375:-71190 (-34)  5f 02 00 00
549     376:-73190 (-2000)  04 00 00 00 04 00 00
550     377:cell F40.2 "LogAC"
551     384:-73224 (-34)  5f 02 00 00
552     385:-75224 (-2000)  04 00 00 00 04 00 00
553     386:cell F40.2 "LogAC"
554     393:-75258 (-34)  5f 02 00 00
555     394:-77258 (-2000)  04 00 00 00 04 00 00
556     395:cell F40.2 "LogAC"
557     402:-77292 (-34)  5f 02 00 00
558     403:-79292 (-2000)  04 00 00 00 04 00 00
559     404:cell F40.2 "LogAC"
560     411:-79326 (-34)  5f 02 00 00
561     412:-81326 (-2000)  04 00 00 00 04 00 00
562     413:cell F40.2 "LogAC"
563     420:-81360 (-34)  5f 02 00 00
564     421:-83360 (-2000)  04 00 00 00 04 00 00
565     422:cell F40.2 "LogAC"
566
567
568 ZMAW_zaj3:
569
570 rec:PVTextStyle
571 .. 02 .. 02
572 .. c8 .. LM .. RM .. TM .. BM .. .. .. 01 .. yy yy yy yy ww ww .. .. xx xx xx xx .. .. .. .. zz zz zz zz ii uu ss cc cc cc cc 22 "Arial" FF FF FF .. .. .. a7 80 .. 01 .. .. .. .. .. BB BB BB .. SS .. a9 80 .. 01 .. ..
573 .. c8 .. 78 .. a0 .. 14 .. 14 .. .. .. 01 .. f3 ff ff ff .. .. .. .. .. .. .. .. .. .. .. .. 90 01 .. .. .. .. .. ee 00 00 00 22 "Arial" .. .. .. .. .. .. a7 80 .. 01 .. .. .. .. .. ff ff ff .. .. .. a9 80 .. 01 .. ..
574 .. c8 .. 78 .. a0 .. 14 .. 14 .. .. .. 01 .. f3 ff ff ff .. .. .. .. .. .. .. .. .. .. .. .. 90 01 .. .. .. .. .. ee 00 00 00 22 "Arial" .. .. .. .. .. .. a7 80 .. 01 .. .. .. .. .. ff ff ff .. .. .. a9 80 .. .. .. ..
575 .. c8 .. 78 .. a0 .. 14 .. 14 .. .. .. 01 .. f3 ff ff ff .. .. .. .. .. .. .. .. .. .. .. .. 90 01 .. .. .. .. .. ee 00 00 00 22 "Arial" .. .. .. .. .. .. a7 80 .. 01 .. .. .. .. .. ff ff ff .. .. .. a9 80 .. 01 .. 02
576 .. c8 .. 78 .. a0 .. 14 .. 14 .. .. .. 01 .. f3 ff ff ff .. .. .. .. .. .. .. .. .. .. .. .. 90 01 .. .. .. .. .. ee 00 00 00 22 "Arial" .. .. .. .. .. .. a7 80 .. 01 .. .. .. .. .. ff ff ff .. .. .. a9 80 .. 02 .. 03
577 .. c8 .. 78 .. a0 .. 14 .. 14 .. .. .. 01 .. f3 ff ff ff .. .. .. .. .. .. .. .. .. .. .. .. 90 01 .. .. .. .. .. ee 00 00 00 22 "Arial" .. .. .. .. .. .. a7 80 .. 01 .. .. .. .. .. ff ff ff .. .. .. a9 80 .. 01 .. ..
578 .. c8 .. 78 .. a0 .. 14 .. 14 .. .. .. 01 .. f3 ff ff ff .. .. .. .. .. .. .. .. .. .. .. .. 90 01 .. .. .. .. .. ee 00 00 00 22 "Arial" .. .. .. .. .. .. a7 80 .. 01 .. .. .. .. .. ff ff ff .. .. .. a9 80 .. 01 .. ..
579 .. c8 .. 68 01 68 01 28 .. 28 .. .. .. 01 .. f3 ff ff ff .. .. .. .. .. .. .. .. .. .. .. .. 90 01 .. .. .. .. .. ee 00 00 00 22 "Arial" .. .. .. .. .. .. .. .. 01 .. .. .. .. .. .. .. 01 .. 01 .. .. .. .. .. .. .. 01
580 .. 01 .. .. .. .. .. .. .. 01 .. 01 .. .. .. .. .. .. .. 01 .. .. .. .. .. .. .. .. .. 01 .. .. .. .. .. .. .. 01 .. 01 .. .. .. .. .. .. .. 01 ..
581
582 yy: font size, f2ffffff or f3ffffff is normalish, f8ffffff is tiny,
583 f0ffffff is big
584 ww: something to do with font size or stretch. 01 is normal, 02+ gets weird
585 xx: rotation angle
586 zz: 400 is normal weight, 700+ is bold
587 ii: 1+ is italic
588 uu: 1+ is underline
589 ss: 1+ is strikethrough
590 cc: RTF charset number, e.g. 0 for ANSI, 238 for Polish
591 FF: RGB foreground
592 BB: RGB background
593 SS: shade fraction from 0=unshaded to 0xa=opaque
594 LT, RM, TM, BM: margins, 20=1 point
595
596 Some confusion on separation, BB and later seem to correspond to the next area
597
598 Areas:
599 0. title
600 1. layers
601 2. corner
602 3. row heads
603 4. column heads
604 5. data
605 6. caption
606 7. footnotes
607
608  rr gg bb 00 00 00 ss 00 01
609  ff 00 ff 00 00 00 01 00 01 00
610  ff 00 ff 00 00 00 01 00 01 00
611  ff 00 ff 00 00 00 01 00 01 00
612  ff 00 ff 00 00 00 01 00 00 00
613  00 00 00 00 00 00 01 00
614  ff 00 ff 00 00 00 01 00 01 00
615  ff 00 ff 00 00 00 01 00
616
617 rr gg bb: stroke color
618 ss: style, 0=thin, 1=normal, 2=thick, 3=very thick, otherwise weird
619
620 Borders:
621 - horizontal category columns
622 - vertical category columns
623 ...
624 - left inner frame
625 - right inner frame
626 - top inner frame
627 - bottom inner frame
628 - left data area
629 - top data area
630
631
632 ..
633 01 .. ff .. ff .. .. .. .. ..
634 .. .. .. .. .. .. 03 80 ..
635 01 .. ff .. ff .. .. .. .. ..
636 01 .. ff .. ff .. .. .. .. ..
637 01 .. ff .. ff .. .. .. .. ..
638 01 .. ff .. ff .. .. .. .. ..
639
640 ..
641 01 .. .. .. .. .. .. .. .. ..
642 .. .. .. .. .. .. 03 80 ..
643 01 .. .. .. .. .. .. .. .. .. .. ..
644 01 .. .. .. .. .. .. .. .. .. .. ..
645
646 ..
647 01 .. 80 80 80 .. .. .. 01 ..
648 01 .. 80 80 80 .. .. .. 01 ..
649 01 .. 80 80 80 .. .. .. .. ..
650 01 .. 80 80 80 .. .. .. .. ..
651 ba 80 ..
652 01 .. 80 80 80 .. .. .. 01 ..
653 01 .. 80 80 80 .. .. .. 01 ..
654 01 .. 80 80 80 .. .. .. .. ..
655 01 .. 80 80 80 .. .. .. .. ..
656
657 class {00000319-0000-0000-c000-000000000046}: Enhanced Metafile
658    For these, dropping the first 4 bytes of Embedding*/CONTENTS file
659    yields an EMF file that the printemf program can dissect.
660
661 class {62078ae0-e4fe-11cd-838d-0000c0f17248}:
662     harder to pin down what's in these
663
664 view-spo can Edit|copy notes and tables for pasting into other applications
665
666 rigger: contains working graph!
667
668 correspondence:
669  1/01 80 ? "NavRoot"
670  3/03 80 -> "DspSimpleText"
671  5/05 80 -> "DspString" 01 02 28 (00|05) 00 01 b"string"
672  7/07 80 -> "NavTreeViewItem"
673  9/09 80 -> "NavLog"
674 11/0b 80 ?  "NavHead"
675 13/0d 80 ?  "NavTitle"
676 15/0f 80 ???
677 17/11 80 ???
678 19/13 80 ???
679 21/15 80 ???
680 24 18 80 -> "NavNote"
681 29 1d 80 -> "PTPivotController"
682 31 1f 80 -> "PTPivotView"
683 33/21 80 -> "PMPivotModel"
684 35/23 80 -> "NDimensional__DspCell"
685 37/25 80 -> "IndexedCollection"
686 39/27 80 -> "DspCell"
687 41/29 80 ? "DspNumber"
688   /50 80 -> "PMPivotItemTree"
689   /52 80 -> "AbstractTreeBranch"
690   /54 80 -> "PMModelItemInfo"
691
692
693 When the top-level "Output" node is selected for save:
694         04 i0
695         b"SPSS Output Document"
696         i1 63
697         ffff 0000 "NavRoot" 02 00*32
698         ffff 0000 "DspSimpleText" 00*10
699         ffff 0000 "DspString" 01 02 28 00 00 01 b"Output"
700         ffff 0000 "NavTreeViewItem"
701         00 i0 02 00 01 00*9 i1
702 00b0    (i0 | i24) (i24 | i-40) (i0 | i40 | i-40) (i40 | i-34)
703 00c0    i24 i0 i40 i40
704 00d0    (i1048 | some other 3-hex-digit number | i0)
705 00d4    (i0 | some 3 to 4-hex-digit number | i-40)
706 00d8    00*5
707 00dd    i8500           # paper width in 1000/inch (i11000 for landscape)
708 00e1    i11000          # paper length in 1000/inch (i8500 for landscape)
709 00e5    s1              # letter paper (5=legal, 9=A4, etc.)
710 00e7    s15             # s1, s7 also seen
711 00e9    s1              # portrait; s2 = landscape
712 00eb    i1270           # left margin in 2540/inch, e.g. 1270 = .5 inch
713 00ef    i1270           # top margin in 2540/inch
714 00f3    i1270           # right margin
715 00f7    i1270           # bottom margin
716 00fb    s0
717 00fd    s240            # object spacing in 1440/inch, e.g. 240 = 12 pt
718 00ff    s0              # charts: 0=asis, 1=full page, 2=half, 03=quarter
719 0101    s??
720 0103    s1              # starting page number
721 0105    b"(Continued)" 01 01 00*3
722 0116    w"{\rtf... pagetitle}"
723 01fd    01 01 00*3
724 0202    w"{\rtf... page number}"
725 02e9    00 short s2
726
727 (This is a valid spot for the file to contain 00000000 then eof)
728
729 02ee    ffff 0000 "NavLog"
730 02fa    02 i0*2 i24 
731 0307    (i0 | i-40) (i691 | i987) (2-3 digit negative int) i1
732 0317    i0
733 0318    03 80 00*10
734 0324    05 80 01 02 28 05 00 01 b"Log"
735
736 0333    07 80 00 02 00 00 00 0a 00 01 00 00 00 00 00 00 00 00 00 01 00 00 00 00 00 b"" 00
737 0347    01 01 (i-13 | i-12) 00*12 90 01 00*9 (22|31)
738 036b    32-bytes of null-padded font name, e.g. "Courier New".
739         Sometimes garbage after the first null.
740 038b    (i80 | i132) 00*8 i1
741 039b    w"{\rtf ... SPSS syntax...}"
742
743 Almost past SPSS syntax (only the } included):
744 0000    '}' 00
745
746 0002    ffff 0000 "NavHead" 02
747 0010    00*24 i1 i0
748 0030    03 80 00*10
749         05 80 01 02 28 05 00 01 b"Cluster|Crosstabs|..."
750
751 Just past the string:
752 0000    07 80 00 00 00 00 00 0f 00 01 00 00 00 00 00 00 00 00 00 01 00 00 00 00 00 b"Cluster|Crosstabs|..."
753
754 Just past the string again:
755 0000    00*3
756 0003    ffff 0000 "NavTitle"
757 0011    65 02 00 00 00 00 00 00  00 00 18 00 00 00 byte byte
758 0020    ff ff 00 04 00 00 byte byte
759 0028    ff ff 02 00 00 00 01 00  00 00
760 0032    03 80 00*10
761 003e    05 80  01 02 28 00 00 01 b"Title"
762 004c    07 80 00 08 00 00 00 14 00 01 00 00 00 00 00 00 00 00 00 01 00 00 00 00 00 b"Cluster|Crosstabs|..."
763
764 Just past the third string:
765 0000    01 01 i-19 00*12 bc 02 00*9 22
766 001e    32-bytes of buggy zero-padded string "Arial"
767 003e    i80 00*8 i1
768 004e    w"{\rtf...}"
769
770 Almost past the RTF (only } included):
771 0000    '}' 00
772
773 0002    ffff 0000 "NavNote"
774 0010    02 00*8 i24 (i0 | i-40)
775 0020    int int i2 i1
776 0030    03 80 00*10
777 003c    05 80 01 02 28 05 00 01 b"Notes"
778 004a    07 80 00 07 00*3 19 00 01 00*3 01 00*5 01 00*5 b"Cluster|Crosstabs|..."
779
780 Just past the fourth string:
781 0000    01
782
783 0001    ffff 0000 "PTPivotController"
784 0018    02
785 0019    byte*8    # weird ASCIIish garbage
786 0021    i100*4
787
788 0031    ffff 0000 "PVPivotView"
789 0042    05 00 00 00 00
790
791 0047    ffff 0000 "PMPivotModel"
792 0059    03
793
794 005a    ffff 0000 "NDimensional__DspCell"
795 0075    00 01 00 00 00
796
797 007a    ffff 0000 "IndexedCollection"
798 0091    00 byte 00 00 00 01 00
799
800 0098    ffff 0000 "DspCell"
801 00a6    00
802 00a7    03 80 00*10
803
804 Fork: cell contains number ("as-number"):
805 00b2    ffff 0000 "DspNumber"
806 00c1    01 00 14 16       # 00 14 16 is DATETIME20.0
807 00c5    80 02
808 00c7    double            # seconds since 1582...
809 00cf    b"16-APR-2007 15:20:00"    # or whatever
810 00e4    27 80 00
811         03 80 00*10
812 00f3    05 80 01 02 28 05 00 01 b" "
813         # Some files have extra 00 00 here
814         # but we're only considering as-number-nozeros
815 00fd    27 80 00
816 0100    03 80 00*10
817 010e    05 80 01 02 28 05 00 01
818 0114    # Either b"filename" with a length < 255
819         # or ff "filename" with a length >= 255
820
821 as-number-nozeros, after filename:
822 0000    27 80 00
823 0003    03 80 00*10
824 000a    05 80 01 02 28 05 00 01 b"<none> or DataSet1 or whatever"
825
826 as-number-nozeros, after dataset name:
827 0000    27 80 00
828 0003    03 80 00*10
829 000a    05 80 01 02 28 05 00 01 b"<none>"
830
831 # Some files have extra 00*8 here, we skip it:
832 0000    27 80 00
833 0003    03 80 00*5 (00|10) 00*4 05
834 0010    80 01 02 28 05 00 01 b"<none> or DATASET..."
835
836 as-number-nozeros-majority, after dataset name:
837 0000    27 80 00 03 80 00*10 05 80 01 02 28 05 00 01 b"<none>"
838 001e    27 80 00 03 80 00*10 2a 80 01 00 28 05 80 02 100.0 b"100"
839         # Followed by 6 optional zeros
840
841 as-number-nozeros-majority, after optional zeros:
842 0000    27 80 00 03 80 00*10 05 80 01 02 28 05 00 01 b"User-defined missing values..."
843                        ^ sixth 00 may be 10 instead
844
845 as-number-nozeros-majority, after "User-defined missing values...":
846 0000    27 80 00 03 80 00*10 (05|2a) 80 01 02 28 05 00 01 b"Statistics are based on..."
847
848 as-number-nozeros-majority, after "Statistics are based on...":
849 0000    00 00
850 0002    27 80 00 03 80 00*10 05 80 01 02 28 05 00 01 b"syntax fragment"
851                        ^ sixth 00 may be 10 instead
852
853 as-number-nozeros-majority, after syntax fragment:
854 0000    27 80 00 03 80 00*10 2a 80 01 02 0d 15 80 02 double b"0:00:00.02"
855 selecting for the ones that include Processor Time instead of RAM:
856 002a    27 80 00 03 80 00*10 2a 80 01 02 0d 15 80 02 double b"0:00:00.03"
857 0054    01 00 b"Notes" 00*4
858 0060    b"Cluster_Notes"
859
860 processor-time, after previous string:
861 0000    00 01 00 00 00 01 00
862
863 0007    ffff 0000 "PMPivotItemTree" 00
864 001d    ffff 0000 "AbstractTreeBranch" 00
865 0036    ffff 0000 "PMModelItemInfo"
866         00*9 byte*3 0e 00
867         03 80 00*10
868 0065    05 80 01 02 28 05 00 01 b"Contents" i7
869         52 80 00
870         54 80 00*9 07 00 74 0e 00
871         03 80 00*10
872 0099    05 80 01 02 28 05 00 01 b"Output Created" i0
873         52 80 00
874         54 80 00 01 00*7 08 00 74 0e 00
875         03 80 00*10
876 00d3    05 80 01 02 28 05 00 01 b"Comments" i0
877 00e8    52 80 00
878         54 80 00*9 09 00 74 0e 00
879         03 80 00*10
880         05 80 01 02 28 05 00 01 b"Input" i6
881         52 80 00
882         54 80 00 02 00*7 0a 00 74 0e 00 03 80 00*10
883 0138    05 80 01 02 28 05 00 01 b"Data" i0
884         52 80 00
885         54 80 00 03 00*12
886         03 80 00*10
887         05 80 01 02 28 05 00 01 b"Active Dataset" i0
888 0183    52 80 00
889         54 80 00 04 00*7 0e 00 74 0e 00 03 80 00*9
890 01a2    05 80 01 02 28 05 00 01 b"Filter" i0
891 01b5    52 80 00
892         54 80 00 05 00*7 11 00 74 0e 00 03 80 00*10
893 01d4    05 80 01 02 28 05 00 01 b"Weight" i0
894 01e7    52 80 00
895         54 80 00 06 00 00
896 01f0    00 00 00 00 00 12 00 74  0e 00 03 80 00 00 00 00
897 0200    00 00 00 00 00 00 05 80  01 02 28 05 00 01 b"Split File"
898 0219    00 00 00 00 52 80 00
899 0220    54 80 00 07 00 00 00 00  00 00 00 13 00 74 0e 00
900 0230    03 80 00 00 00 00 00 00  00 00 00 00 05 80 01 02
901 0240    28 05 00 01 b"N of Rows in Working Data File"
902 0263    00 00 00 00 52  80 00 54 80 00 00 00 00
903 0270    00 00 00 00 00 byte*2 74 0e 00 03 80 00 00 00 00
904 0280    00 00 00 00 00 00 05 80  01 02 28 05 00 01
905 028e    b"Missing Value Handling"
906 02a5    02 00 00  00 52 80 00 54 80 00 08
907 02b0    00 00 00 00 00 00 00 byte*2 74 0e 00 03 80 00 00
908 02c0    00 00 00 00 00 00 00 00  05 80 01 02 28 05 00 01
909 02d0    b"Definition of Missing"
910 02e6    00 00  00 00 52 80 00 54 80 00
911 02f0    09 00 00 00 00 00 00 00  byte*2 74 0e 00 03 80 00
912 0300    00 00 00 00 00 00 00 00  00 05 80 01 02 28 05 00
913 0310    01 b"Cases Used" 00*4
914 0320    52 80 00 54 80 00 0a 00  00 00 00 00 00 00 17 00
915 0330    74 0e 00 03 80 00 00 00  00 00 00 00 00 00 00 05
916 0340    80 01 02 28 05 00 01 b"Weight Handling"
917 0357    00 00 00 00 52 80 00 54 80
918 0360    00 0b 00 00 00 00 00 00  00 18 00 74 0e 00 03 80
919 0370    00 00 00 00 00 00 00 00  00 00 05 80 01 02 28 05
920 0380    00 01 b"Syntax" 00 00 00 00 52 80 00
921 0390    54 80 00 00 00 00 00 00  00 00 00 byte*2 74 0e 00
922 03a0    03 80 00 00 00 00 00 00  00 00 00 00 05 80 01 02
923 03b0    28 05 00 01 b"Resources" 02 00
924 03c0    00 00 52 80 00 54 80 00  0c 00 00 00 00 00 00 00
925 03d0    1b 00 74 0e 00 03 80 00  00 00 00 00 00 00 00 00
926 03e0    00 05 80 01 02 28 05 00  01 b"Elapsed Time"
927 03f6    00 00  00 00 52 80 00 54 80 00
928 0400    0d 00 00 00 00 00 00 00  00 00 00 00 00 03 80 00
929 0410    00 00 00 00 00 00 00 00  00 05 80 01 02 28 05 00
930 0420    01 b"Processor Time" i0
931
932 0434    00 00 00 00  00 00 0e 00 00 00 01 00
933 0440    58 00 5c 00 64 00 68 00  6c 00 70 00 74 00 78 00
934 0450    80 00 84 00 88 00 8c 00  94 00 98 00 00 0e 00 00
935 0460    00 00 00 00 00 00 00 01  00 00 00 02 00 00 00 03
936 0470    00 00 00 04 00 00 00 05  00 00 00 06 00 00 00 07
937 0480    00 00 00 08 00 00 00 09  00 00 00 0a 00 00 00 0b
938 0490    00 00 00 0c 00 00 00 0d  00 00 00 00 00 00 00 00
939 04a0    01 00 00 11 00 00 00 00  00 04 00 00 00 e1 00 00
940 04b0    00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00
941 04c0    00 00 00 00 01 00 00 00  00 00 00 00 00 00 00 00
942 04d0    00 00 00 00 00 00 00 00  00 00 00 00 00 01 00 00
943 04e0    00 01 00
944
945 04e3    ffff 0000 b"PVViewDimension"
946 04f8    00 51 00 00 00 00 00 00
947 0500    00 00 00 00 0e 00 00 00  00 00 69 00 00 00 54 00
948 0510    00 00 4b 00 00 00 63 00  00 00 4b 00 00 00 4b 00
949 0520    00 00 4b 00 00 00 7d 00  00 00 87 00 00 00 5c 00
950 0530    00 00 72 00 00 00 4b 00  00 00 63 00 00 00 6f 00
951 0540    00 00 00 03 00 00 00 00  00 00 00 00 00 00 00 00
952 0550    00 87 00 00 00 00 03 80  00 00 00 00 00 00 00 00
953 0560    00 00 05 80 01 02 28 05  00 01 b"Notes"
954 0570    00 03 80 00 00 00 00 00  00 00 00 00 00 05 80 01
955 0580    02 28 00 00 01 00 00 00  00 00 00 00 00 00 03 80
956 0590    00 00 00 00 00 00 00 00  00 00 05 80 01 02 28 00
957 05a0    00 01 00
958
959 05a3    ffff 0000 "PTTableLook"
960 05b4    02 02 00 00  00 00 00 00 00 36 00 00
961 05c0    00 12 00 00 00
962
963 05c5    ffff 0000 "PVSeparatorStyle"
964 05db    00 01 00 00 00
965 05e0    00 00 00 00 00 00 00 00  00 00 00 00 a6 80 00 01  |................|
966 05f0    00 00 00 00 00 00 00 00  00 01 00 00 00 00 00 00  |................|
967 0600    00 00 00 01 00 00 00 00  00 00 00 00 00 01 00 00  |................|
968 0610    00 00 00 00 00 00 00
969
970 0607    ffff 0000 "PVCellStyle"
971 0628    00 01 00 00 00 00 00 ff
972
973 0630    ffff 0000 00
974
975 0637    ffff 0000 "PVTextStyle"
976 0646    00 02 00 02 00 c8 00 78 00 a0
977 0650    00 14 00 78 00 00 00 01  00 f3 ff ff ff 00 00 00
978 0660    00 00 00 00 00 00 00 00  00 bc 02 00 00 00 00 00
979 0670    00 00 00 00 22 b"Arial" 00 00 00 00 00
980 0680    00 a9 80 00 01 00 00 00  00 00 ff ff ff 00 00 00
981 0690    ab 80 00 01 00 00 00 c8  00 78 00 a0 00 14 00 14
982 06a0    00 00 00 01 00 f3 ff ff  ff 00 00 00 00 00 00 00
983 06b0    00 00 00 00 00 90 01 00  00 00 00 00 00 00 00 00
984 06c0    22 b"Arial" 00  00 00 00 00 00 a9 80 00
985 06d0    01 00 00 00 00 00 ff ff  ff 00 00 00 ab 80 00 01
986 06e0    00 00 00 c8 00 78 00 a0  00 14 00 14 00 00 00 01
987 06f0    00 f3 ff ff ff 00 00 00  00 00 00 00 00 00 00 00
988 0700    00 90 01 00 00 00 00 00  00 00 00 00 22 b"Arial"
989 0713    00 00 00 00 00  00 a9 80 00 01 00 00 00
990 0720    00 00 ff ff ff 00 00 00  ab 80 00 00 00 00 00 c8
991 0730    00 78 00 a0 00 14 00 14  00 00 00 01 00 f3 ff ff
992 0740    ff 00 00 00 00 00 00 00  00 00 00 00 00 90 01 00
993 0750    00 00 00 00 00 00 00 00  22 b"Arial" 00
994 0760    00 00 00 00 00 a9 80 00  01 00 00 00 00 00 ff ff
995 0770    ff 00 00 00 ab 80 00 01  00 02 00 c8 00 78 00 a0
996 0780    00 14 00 14 00 00 00 01  00 f3 ff ff ff 00 00 00
997 0790    00 00 00 00 00 00 00 00  00 90 01 00 00 00 00 00
998 07a0    00 00 00 00 22 b"Arial" 00 00 00 00 00
999 07b0    00 a9 80 00 01 00 00 00  00 00 ff ff ff 00 00 00
1000 07c0    ab 80 00 02 00 03 00 c8  00 78 00 a0 00 14 00 14
1001 07d0    00 00 00 01 00 f3 ff ff  ff 00 00 00 00 00 00 00
1002 07e0    00 00 00 00 00 90 01 00  00 00 00 00 00 00 00 00
1003 07f0    22 b"Arial" 00  00 00 00 00 00 a9 80 00
1004 0800    01 00 00 00 00 00 ff ff  ff 00 00 00 ab 80 00 01
1005 0810    00 00 00 c8 00 78 00 a0  00 14 00 14 00 00 00 01
1006 0820    00 f3 ff ff ff 00 00 00  00 00 00 00 00 00 00 00
1007 0830    00 90 01 00 00 00 00 00  00 00 00 00 22 b"Arial"
1008 0843    00 00 00 00 00  00 a9 80 00 01 00 00 00
1009 0850    00 00 ff ff ff 00 00 00  ab 80 00 01 00 00 00 c8
1010 0860    00 68 01 68 01 28 00 28  00 00 00 01 00 f3 ff ff
1011 0870    ff 00 00 00 00 00 00 00  00 00 00 00 00 90 01 00
1012 0880    00 00 00 00 00 00 00 00  22 b"Arial" 00
1013 0890    00 00 00 00 00 00 00 01  00 00 00 00 00 00 00 01
1014 08a0    00 01 00 00 00 00 00 00  00 01 00 01 00 00 00 00
1015 08b0    00 00 00 01 00 01 00 00  00 00 00 00 00 01 00 00
1016 08c0    00 00 00 00 00 00 00 01  00 00 00 00 00 00 00 01
1017 08d0    00 01 00 00 00 00 00 00  00 01 00 b"(cont.)"
1018 08e3    24 00 00 00 48  00 00 00 24 00 00 00 78
1019 08f0    00 00 00 00 00 00 00 00  00 00 00
1020
1021 08fb    ffff 0000 "PVPrintManager" 02
1022 0910    1e 00 02 00 00 00 03 00  00 00 01 00 00 00 00 00
1023 0920    00 00 00 00 00 00 00
1024
1025 0927    ffff 0000 "NavText"
1026 0934    02 00 00 00  00 00 00 00 00 18 00 00
1027 0940    00 byte*2 ff ff byte*2 00  00 byte*2 ff ff 02 00 00
1028 0950    00 01 00 00 00 03 80 00  00 00 00 00 00 00 00 00
1029 0960    00 05 80 01 02 28 05 00  01 b"Active Dataset"
1030 0978    07 80 00 10 00 00 00 be
1031 0980    00 01 00 00 00 00 00 00  00 00 00 01 00 00 00 00
1032 0990    00 b"Cluster etc." 07 43 6c 75 73 74 65  72 01 01 f3 ff ff ff 00
1033 0990    00 0b 46 72 65 71 75 65  6e 63 69 65 73 01 01 f3
1034
1035 Just past "Cluster":
1036 0000    01 01 (f3|f4) ff ff ff 00 00  00 00 00 00 00 00 00 00
1037 0010    00 00 90 01 00 00 00 00  00 00 00 00 00 (22|31)
1038 001e    32-bytes of null-padded font name, e.g. "Courier New".
1039         Sometimes garbage after the first null.
1040 003e    byte 00*11 w"{\rtf... giving filesystem path}"
1041
1042 Almost past RTF (just trailing }):
1043 0000    '}' ffff 0000 "NavPivot" 02 int int i24 int
1044 0020    int int i2 i1
1045 0030    03 80 00*10 05 80 01 02
1046 0040    28 05 00 01 b"Statistics etc."
1047
1048 Just past "Statistics":
1049 0000    07 80 00 0c 00 00 00 c3  00 01 00 00 00 00 00 00
1050 0010    00 00 00 01 00 00 00 00  00 b"Cluster etc."
1051
1052 Just past "Cluster", using boot/Contents as exemplary:
1053 0000    01
1054 0001    1d 80 02 i0*2 i100*4        # 1d 80 corresponds to "PTPivotController"
1055 001c    1f 80 05 00*4               # 1f 80 corresponds to "PTPivotView"
1056 0023    21 80 03                    # 21 80 corresponds to "PMPivotModel"
1057 0026    23 80 00 (02|03) 00 00 00   # 23 80 corresponds to "NDimensional__DspCell"
1058 002d    25 80 00 i100 01 00         # 25 80 corresponds to "IndexedCollection"
1059 0036    25 80 00 i100 01 00
1060 003f    27 80 00 03 80 00*10 2a 80 01 F40.0 80 02 100.0 b"100"
1061 0062    27 80 00 03 80 00*10 2a 80 01 F40.0 80 02 100.0 b"100"
1062         ...repeats...
1063 0f03    25 80 00 6c 00 00 00 01 00
1064 0f0c    27 80 00 03 80 00*10 2a 80 01 F40.0 80 02 0.0 b"0"
1065         ...repeats...
1066 1cf8    25 80 00 6c 00 00 00 01 00
1067 1d01    27 80 00 03 80 00*10 2a 80 01 F40.8 1
1068
1069 Notes
1070 Output Created          16-JAN-2008 02:45:55
1071 Comments                 
1072 Input   Data    \\Ugly\amead\consulting\center\Dell\Exams\RE\analyses\Blended15\pilotdata-2008-01-15.csv
1073         Active Dataset  raw1
1074         Filter  <none>
1075         Weight  <none>
1076         Split File      <none>
1077         N of Rows in Working Data File  366
1078 Missing Value Handling  Definition of Missing   User-defined missing values are treated as missing.
1079         Cases Used      Statistics are based on all cases with valid data.
1080 Syntax          FREQUENCIES\r  VARIABLES=exam_id exam_name restarts\r  /ORDER=  ANALYSIS .\r
1081 Resources       Elapsed Time    0:00:00.02
1082         Processor Time  0:00:00.03