diff options
author | josh.macdonald <jmacd@users.noreply.github.com> | 2007-01-28 01:27:04 +0000 |
---|---|---|
committer | josh.macdonald <jmacd@users.noreply.github.com> | 2007-01-28 01:27:04 +0000 |
commit | 08b0a40be19b61725ac74d5fddbfa7deff0e75b9 (patch) | |
tree | d4592cdc1b53b8a9cc5234895833cb7ef513b7c3 /xdelta1/doc | |
parent | 0393a6cd5bdd8b67fc0b7dcaf7e304d442a0c837 (diff) |
Delete junk imported by accident.
Diffstat (limited to 'xdelta1/doc')
63 files changed, 0 insertions, 12145 deletions
diff --git a/xdelta1/doc/CVS/Entries b/xdelta1/doc/CVS/Entries deleted file mode 100755 index d029e40..0000000 --- a/xdelta1/doc/CVS/Entries +++ /dev/null | |||
@@ -1,4 +0,0 @@ | |||
1 | /Makefile.am/1.2/Sun Jun 24 07:21:50 2001/-ko/ | ||
2 | /xdelta.cat/1.2/Fri Jun 29 11:35:34 2001/-ko/ | ||
3 | /xdelta.1/1.5/Mon Sep 24 06:59:18 2001/-ko/ | ||
4 | D | ||
diff --git a/xdelta1/doc/CVS/Repository b/xdelta1/doc/CVS/Repository deleted file mode 100755 index 0e1072e..0000000 --- a/xdelta1/doc/CVS/Repository +++ /dev/null | |||
@@ -1 +0,0 @@ | |||
1 | xdelta11/xdelta11/doc | ||
diff --git a/xdelta1/doc/CVS/Root b/xdelta1/doc/CVS/Root deleted file mode 100755 index 645ccf1..0000000 --- a/xdelta1/doc/CVS/Root +++ /dev/null | |||
@@ -1 +0,0 @@ | |||
1 | :ext:jmacd@cvs.xdelta.sourceforge.net:/cvsroot/xdelta | ||
diff --git a/xdelta1/doc/old/dcc99/CVS/Entries b/xdelta1/doc/old/dcc99/CVS/Entries deleted file mode 100755 index 658871c..0000000 --- a/xdelta1/doc/old/dcc99/CVS/Entries +++ /dev/null | |||
@@ -1,14 +0,0 @@ | |||
1 | D/data//// | ||
2 | D/exact-delta//// | ||
3 | D/figs//// | ||
4 | /Makefile/1.1.1.1/Tue Jun 12 03:16:38 2001/-ko/ | ||
5 | /dcc99.bib/1.1.1.1/Tue Jun 12 03:16:39 2001/-ko/ | ||
6 | /dcc99.sty/1.1.1.1/Tue Jun 12 03:16:39 2001/-ko/ | ||
7 | /dcc99.tex/1.1.1.1/Tue Jun 12 03:16:39 2001/-ko/ | ||
8 | /dead.code/1.1.1.1/Tue Jun 12 03:16:39 2001/-ko/ | ||
9 | /lcs.c/1.1.1.1/Tue Jun 12 03:16:39 2001/-ko/ | ||
10 | /llncs.cls/1.1.1.1/Tue Jun 12 03:16:39 2001/-ko/ | ||
11 | /mkex.c/1.1.1.1/Tue Jun 12 03:16:39 2001/-ko/ | ||
12 | /mkex2.c/1.1.1.1/Tue Jun 12 03:16:39 2001/-ko/ | ||
13 | /vdelta/1.1.1.1/Tue Jun 12 03:16:39 2001/-ko/ | ||
14 | /vupdate/1.1.1.1/Tue Jun 12 03:16:40 2001/-ko/ | ||
diff --git a/xdelta1/doc/old/dcc99/CVS/Repository b/xdelta1/doc/old/dcc99/CVS/Repository deleted file mode 100755 index add325d..0000000 --- a/xdelta1/doc/old/dcc99/CVS/Repository +++ /dev/null | |||
@@ -1 +0,0 @@ | |||
1 | xdelta11/xdelta11/doc/dcc99 | ||
diff --git a/xdelta1/doc/old/dcc99/CVS/Root b/xdelta1/doc/old/dcc99/CVS/Root deleted file mode 100755 index 645ccf1..0000000 --- a/xdelta1/doc/old/dcc99/CVS/Root +++ /dev/null | |||
@@ -1 +0,0 @@ | |||
1 | :ext:jmacd@cvs.xdelta.sourceforge.net:/cvsroot/xdelta | ||
diff --git a/xdelta1/doc/old/dcc99/Makefile b/xdelta1/doc/old/dcc99/Makefile deleted file mode 100755 index 5fdb623..0000000 --- a/xdelta1/doc/old/dcc99/Makefile +++ /dev/null | |||
@@ -1,19 +0,0 @@ | |||
1 | all: dcc99.dvi | ||
2 | |||
3 | # mkex mkex2 lcs | ||
4 | |||
5 | # mkex: mkex.c | ||
6 | # gcc -o mkex -Wall `glib-config --cflags` `glib-config --libs` -g mkex.c -lglib | ||
7 | |||
8 | # mkex2: mkex2.c | ||
9 | # gcc -o mkex2 -Wall `glib-config --cflags` `glib-config --libs` -g mkex2.c -lglib | ||
10 | |||
11 | # lcs: lcs.c | ||
12 | # gcc -o lcs -Wall -O lcs.c -lglib | ||
13 | |||
14 | LATEX=latex | ||
15 | |||
16 | dcc99.dvi: dcc99.tex dcc99.bib | ||
17 | $(LATEX) dcc99.tex | ||
18 | bibtex dcc99 | ||
19 | $(LATEX) dcc99.tex | ||
diff --git a/xdelta1/doc/old/dcc99/data/CVS/Entries b/xdelta1/doc/old/dcc99/data/CVS/Entries deleted file mode 100755 index 23d6bb1..0000000 --- a/xdelta1/doc/old/dcc99/data/CVS/Entries +++ /dev/null | |||
@@ -1,11 +0,0 @@ | |||
1 | /analyze.l/1.1.1.1/Tue Jun 12 03:16:40 2001/-ko/ | ||
2 | /fig1.data/1.1.1.1/Tue Jun 12 03:16:40 2001/-ko/ | ||
3 | /fig1.m/1.1.1.1/Tue Jun 12 03:16:40 2001/-ko/ | ||
4 | /fig2.data/1.1.1.1/Tue Jun 12 03:16:40 2001/-ko/ | ||
5 | /fig2.m/1.1.1.1/Tue Jun 12 03:16:40 2001/-ko/ | ||
6 | /mytime.c/1.1.1.1/Tue Jun 12 03:16:40 2001/-ko/ | ||
7 | /runtest/1.1.1.1/Tue Jun 12 03:16:40 2001/-ko/ | ||
8 | /runtest-one/1.1.1.1/Tue Jun 12 03:16:40 2001/-ko/ | ||
9 | /runtest-versions/1.1.1.1/Tue Jun 12 03:16:40 2001/-ko/ | ||
10 | /tclean.l/1.1.1.1/Tue Jun 12 03:16:40 2001/-ko/ | ||
11 | D | ||
diff --git a/xdelta1/doc/old/dcc99/data/CVS/Repository b/xdelta1/doc/old/dcc99/data/CVS/Repository deleted file mode 100755 index 33526a2..0000000 --- a/xdelta1/doc/old/dcc99/data/CVS/Repository +++ /dev/null | |||
@@ -1 +0,0 @@ | |||
1 | xdelta11/xdelta11/doc/dcc99/data | ||
diff --git a/xdelta1/doc/old/dcc99/data/CVS/Root b/xdelta1/doc/old/dcc99/data/CVS/Root deleted file mode 100755 index 645ccf1..0000000 --- a/xdelta1/doc/old/dcc99/data/CVS/Root +++ /dev/null | |||
@@ -1 +0,0 @@ | |||
1 | :ext:jmacd@cvs.xdelta.sourceforge.net:/cvsroot/xdelta | ||
diff --git a/xdelta1/doc/old/dcc99/data/analyze.l b/xdelta1/doc/old/dcc99/data/analyze.l deleted file mode 100755 index ba41df0..0000000 --- a/xdelta1/doc/old/dcc99/data/analyze.l +++ /dev/null | |||
@@ -1,438 +0,0 @@ | |||
1 | /* -*- C -*- */ | ||
2 | |||
3 | %{ | ||
4 | #include <glib.h> | ||
5 | #include <string.h> | ||
6 | #include <math.h> | ||
7 | |||
8 | |||
9 | #define BIG 1 | ||
10 | |||
11 | void fromfile(); | ||
12 | void tofile(); | ||
13 | void tool(); | ||
14 | void normal(); | ||
15 | void reverse(); | ||
16 | void onetime(); | ||
17 | |||
18 | char* _from; | ||
19 | int _fromsize; | ||
20 | char* _to; | ||
21 | int _tosize; | ||
22 | char* _tool; | ||
23 | |||
24 | GArray* runs; | ||
25 | GArray* pairs; | ||
26 | |||
27 | #define FORWARD 0 | ||
28 | #define REVERSE 1 | ||
29 | |||
30 | typedef struct { | ||
31 | char* from; | ||
32 | int from_size; | ||
33 | |||
34 | char* to; | ||
35 | int to_size; | ||
36 | |||
37 | char* tool; | ||
38 | |||
39 | double forward_delta_size; | ||
40 | double reverse_delta_size; | ||
41 | |||
42 | double forward_delta_time; | ||
43 | double reverse_delta_time; | ||
44 | |||
45 | gboolean missing_time; | ||
46 | } Run; | ||
47 | |||
48 | #define PAIRS 6 | ||
49 | |||
50 | #define BUCKET_SIZE 10000 | ||
51 | |||
52 | typedef struct { | ||
53 | Run* runs[PAIRS]; | ||
54 | int run_count; | ||
55 | } Pair; | ||
56 | |||
57 | int time_index; | ||
58 | int time_stage; | ||
59 | GSList** buckets[PAIRS]; | ||
60 | |||
61 | %} | ||
62 | |||
63 | dig [0-9] | ||
64 | num {dig}+("."{dig}+)? | ||
65 | space [\v\f\r\t\n ] | ||
66 | ws {space}+ | ||
67 | filename [^\v\f\r\t\n ]+ | ||
68 | |||
69 | %% | ||
70 | |||
71 | {ws} { } | ||
72 | "FromFile:".* { fromfile(); } | ||
73 | "ToFile:".* { tofile(); } | ||
74 | "Tool:".* { tool(); } | ||
75 | "Normal:".* { normal(); } | ||
76 | "Reverse:".* { reverse(); } | ||
77 | "Time:".* { onetime(); } | ||
78 | |||
79 | %% | ||
80 | |||
81 | char* | ||
82 | first_nonspace (char* p) | ||
83 | { | ||
84 | while (*p == ' ') | ||
85 | p += 1; | ||
86 | |||
87 | return p; | ||
88 | } | ||
89 | |||
90 | void | ||
91 | fromfile() | ||
92 | { | ||
93 | char** toks = g_strsplit (first_nonspace(yytext + strlen("FromFile:")), " ", -1); | ||
94 | |||
95 | _from = g_strdup(toks[0]); | ||
96 | _fromsize = atoi (toks[2]); | ||
97 | |||
98 | g_free (toks); | ||
99 | } | ||
100 | |||
101 | void | ||
102 | tofile() | ||
103 | { | ||
104 | char** toks = g_strsplit (first_nonspace(yytext + strlen("ToFile:")), " ", -1); | ||
105 | |||
106 | _to = g_strdup(toks[0]); | ||
107 | _tosize = atoi(toks[2]); | ||
108 | |||
109 | g_free (toks); | ||
110 | } | ||
111 | |||
112 | void | ||
113 | tool() | ||
114 | { | ||
115 | char** toks = g_strsplit (first_nonspace(yytext + strlen("Tool:")), " ", -1); | ||
116 | |||
117 | _tool = g_strdup (toks[0]); | ||
118 | |||
119 | g_free (toks); | ||
120 | } | ||
121 | |||
122 | void | ||
123 | normal() | ||
124 | { | ||
125 | char** toks = g_strsplit (first_nonspace(yytext + strlen("Normal:")), " ", -1); | ||
126 | Run r; | ||
127 | |||
128 | g_assert (toks[0]); | ||
129 | |||
130 | r.forward_delta_size = atoi (toks[0]); | ||
131 | |||
132 | r.from = _from; | ||
133 | r.from_size = _fromsize; | ||
134 | |||
135 | r.to = _to; | ||
136 | r.to_size = _tosize; | ||
137 | |||
138 | r.tool = _tool; | ||
139 | |||
140 | g_array_append_val(runs, r); | ||
141 | |||
142 | g_free (toks); | ||
143 | } | ||
144 | |||
145 | void | ||
146 | reverse() | ||
147 | { | ||
148 | char** toks = g_strsplit (first_nonspace(yytext + strlen("Reverse:")), " ", -1); | ||
149 | int size = atoi (toks[0]); | ||
150 | |||
151 | g_array_index (runs, Run, runs->len-1).reverse_delta_size = size; | ||
152 | |||
153 | g_free (toks); | ||
154 | } | ||
155 | |||
156 | void | ||
157 | onetime() | ||
158 | { | ||
159 | char** toks = g_strsplit (first_nonspace(yytext + strlen("Time:")), " ", -1); | ||
160 | char** names = g_strsplit (toks[0], "-", -1); | ||
161 | char* tool = names[0]; | ||
162 | char* dir = names[1]; | ||
163 | |||
164 | Run* r = &g_array_index (runs, Run, time_index); | ||
165 | |||
166 | double t; | ||
167 | |||
168 | int time_stage_max; | ||
169 | |||
170 | sscanf (toks[1], "%lf", &t); | ||
171 | |||
172 | g_assert (strncmp (tool, r->tool, 2) == 0); | ||
173 | |||
174 | if (strncmp (tool, "dz", 2) == 0) | ||
175 | time_stage_max = 4; | ||
176 | else | ||
177 | time_stage_max = 2; | ||
178 | |||
179 | if (strcmp (dir, "forward") == 0) | ||
180 | r->forward_delta_time += t; | ||
181 | else if (strcmp (dir, "reverse") == 0) | ||
182 | r->reverse_delta_time += t; | ||
183 | else | ||
184 | r->missing_time = TRUE; | ||
185 | |||
186 | if (time_stage < (time_stage_max-1)) | ||
187 | { | ||
188 | time_stage += 1; | ||
189 | } | ||
190 | else | ||
191 | { | ||
192 | time_stage = 0; | ||
193 | time_index += 1; | ||
194 | } | ||
195 | } | ||
196 | |||
197 | void | ||
198 | add (int j, int size, double* dsize) | ||
199 | { | ||
200 | g_assert (*dsize > 0.0); | ||
201 | buckets[j][size / BUCKET_SIZE] = g_slist_prepend (buckets[j][size / BUCKET_SIZE], dsize); | ||
202 | } | ||
203 | |||
204 | void | ||
205 | compute_stats (GSList* dlist, double* mean, double* min, double* max) | ||
206 | { | ||
207 | GSList* dlist0 = dlist; | ||
208 | gint c = 0; | ||
209 | |||
210 | double m, s = 0, s2 = 0; | ||
211 | |||
212 | /*(*max) = 0.0; | ||
213 | (*min) = 1000000000.0;*/ | ||
214 | |||
215 | for (; dlist; dlist = dlist->next) | ||
216 | { | ||
217 | double d = * (double*) dlist->data; | ||
218 | |||
219 | g_assert (d > 0.0); | ||
220 | |||
221 | s += d; | ||
222 | c += 1; | ||
223 | |||
224 | /*(*min) = MIN (*min, d); | ||
225 | (*max) = MAX (*max, d);*/ | ||
226 | } | ||
227 | |||
228 | m = (*mean) = s / (double) c; | ||
229 | |||
230 | g_assert (m > 0.0); | ||
231 | |||
232 | if (c == 1) | ||
233 | { | ||
234 | /*(*stddev) = 0.0;*/ | ||
235 | (*min) = m; | ||
236 | (*max) = m; | ||
237 | } | ||
238 | else | ||
239 | { | ||
240 | for (dlist = dlist0; dlist; dlist = dlist->next) | ||
241 | { | ||
242 | double d = * (double*) dlist->data; | ||
243 | double ds = d-m; | ||
244 | |||
245 | s2 += ds*ds; | ||
246 | } | ||
247 | |||
248 | s2 /= (double) (c-1); | ||
249 | |||
250 | /*(*stddev) = sqrt (s2);*/ | ||
251 | |||
252 | (*min) = MIN(sqrt (s2), m); | ||
253 | (*max) = sqrt (s2); | ||
254 | } | ||
255 | } | ||
256 | |||
257 | double* | ||
258 | copyd (double d) | ||
259 | { | ||
260 | double* dp = g_new (double, 1); | ||
261 | |||
262 | *dp = d; | ||
263 | |||
264 | return dp; | ||
265 | } | ||
266 | |||
267 | #if 0 | ||
268 | void | ||
269 | test() | ||
270 | { | ||
271 | double avg, std; | ||
272 | GSList* l = NULL; | ||
273 | |||
274 | l = g_slist_prepend (l, copyd (3)); | ||
275 | l = g_slist_prepend (l, copyd (4)); | ||
276 | l = g_slist_prepend (l, copyd (5)); | ||
277 | l = g_slist_prepend (l, copyd (6)); | ||
278 | l = g_slist_prepend (l, copyd (7)); | ||
279 | l = g_slist_prepend (l, copyd (8)); | ||
280 | |||
281 | compute_stats (l, &avg, &std); | ||
282 | |||
283 | fprintf (stderr, "test %f %f\n", avg, std); | ||
284 | } | ||
285 | #endif | ||
286 | |||
287 | int main() | ||
288 | { | ||
289 | FILE* one = fopen ("runtest.out", "r"); | ||
290 | FILE* two = fopen ("runtest.errs", "r"); | ||
291 | GHashTable* pair_table = g_hash_table_new (g_str_hash, g_str_equal); | ||
292 | GPtrArray* pair_array = g_ptr_array_new (); | ||
293 | int i; | ||
294 | int skipped = 0; | ||
295 | int max_size = 0; | ||
296 | |||
297 | g_assert (one && two); | ||
298 | |||
299 | runs = g_array_new (FALSE, TRUE, sizeof(Run)); | ||
300 | pairs = g_array_new (FALSE, TRUE, sizeof(Pair)); | ||
301 | |||
302 | yyin = one; | ||
303 | while (yylex ()) ; | ||
304 | yyin = two; | ||
305 | while (yylex ()) ; | ||
306 | |||
307 | /*printf ("%d runs found\n", runs->len); | ||
308 | printf ("%d runs timed\n", time_index);*/ | ||
309 | |||
310 | for (i = 0; i < runs->len; i += 1) | ||
311 | { | ||
312 | Run* r = &g_array_index (runs, Run, i); | ||
313 | Pair* p; | ||
314 | |||
315 | if (strcmp (r->tool, "cim") != 0) | ||
316 | { | ||
317 | continue; | ||
318 | } | ||
319 | |||
320 | if (r->missing_time) | ||
321 | { | ||
322 | skipped += 1; | ||
323 | #ifndef BIG | ||
324 | continue; | ||
325 | #endif | ||
326 | } | ||
327 | |||
328 | p = g_new0 (Pair, 1); | ||
329 | |||
330 | g_ptr_array_add (pair_array, p); | ||
331 | g_hash_table_insert (pair_table, r->from, p); | ||
332 | |||
333 | p->run_count = 1; | ||
334 | p->runs[0] = r; | ||
335 | |||
336 | max_size = MAX(max_size, r->to_size); | ||
337 | max_size = MAX(max_size, r->from_size); | ||
338 | } | ||
339 | |||
340 | /*printf ("%d runs skipped\n", skipped);*/ | ||
341 | |||
342 | for (i = 0; i < runs->len; i += 1) | ||
343 | { | ||
344 | Run* r = &g_array_index (runs, Run, i); | ||
345 | Pair* p; | ||
346 | |||
347 | if (strcmp (r->tool, "cim") == 0) | ||
348 | continue; | ||
349 | |||
350 | p = g_hash_table_lookup (pair_table, r->from); | ||
351 | |||
352 | if (! p) | ||
353 | continue; | ||
354 | |||
355 | p->runs[p->run_count++] = r; | ||
356 | } | ||
357 | |||
358 | #ifndef BIG | ||
359 | g_assert (pair_array->len == (runs->len / PAIRS) - skipped); | ||
360 | #endif | ||
361 | |||
362 | for (i = 0; i < PAIRS; i += 1) | ||
363 | buckets[i] = g_new0 (GSList*, max_size / BUCKET_SIZE); | ||
364 | |||
365 | for (i = 0; i < pair_array->len; i += 1) | ||
366 | { | ||
367 | Pair* p = pair_array->pdata[i]; | ||
368 | int j; | ||
369 | double cim_reverse_size = p->runs[0]->reverse_delta_size; | ||
370 | double cim_forward_size = p->runs[0]->forward_delta_size; | ||
371 | |||
372 | #ifdef BIG | ||
373 | if (p->runs[0]->missing_time) | ||
374 | { | ||
375 | printf ("%d, %f, %f\n", p->runs[0]->to_size, p->runs[1]->forward_delta_size, p->runs[2]->forward_delta_size); | ||
376 | printf ("%d, %f, %f\n", p->runs[0]->from_size, p->runs[1]->reverse_delta_size, p->runs[2]->reverse_delta_size); | ||
377 | } | ||
378 | #else | ||
379 | |||
380 | if (cim_reverse_size == 0.0) | ||
381 | continue; | ||
382 | if (cim_forward_size == 0.0) | ||
383 | continue; | ||
384 | |||
385 | for (j = 0; j < PAIRS; j += 1) | ||
386 | { | ||
387 | if (p->runs[j]->tool[0] == 'x') | ||
388 | { | ||
389 | /* take out the xdelta header */ | ||
390 | int len = strlen (p->runs[j]->from) + strlen (p->runs[j]->to); | ||
391 | |||
392 | p->runs[j]->forward_delta_size -= 28 + len; | ||
393 | p->runs[j]->reverse_delta_size -= 28 + len; | ||
394 | |||
395 | g_assert (p->runs[j]->reverse_delta_size > 0.0); | ||
396 | g_assert (p->runs[j]->forward_delta_size > 0.0); | ||
397 | } | ||
398 | |||
399 | p->runs[j]->forward_delta_size /= cim_forward_size; | ||
400 | p->runs[j]->reverse_delta_size /= cim_reverse_size; | ||
401 | |||
402 | add (j, p->runs[0]->to_size, &p->runs[j]->forward_delta_size); | ||
403 | add (j, p->runs[0]->from_size, &p->runs[j]->reverse_delta_size); | ||
404 | } | ||
405 | } | ||
406 | |||
407 | for (i = 0; i < max_size / BUCKET_SIZE; i += 1) | ||
408 | { | ||
409 | int j, found = 0; | ||
410 | |||
411 | for (j = 0; j < PAIRS; j += 1) | ||
412 | { | ||
413 | if (buckets[j][i]) | ||
414 | { | ||
415 | printf ("%d, ", (i * BUCKET_SIZE) + BUCKET_SIZE/2); | ||
416 | found = 1; | ||
417 | break; | ||
418 | } | ||
419 | } | ||
420 | |||
421 | if (found) | ||
422 | { | ||
423 | for (j = 0; j < PAIRS; j += 1) | ||
424 | { | ||
425 | double avg, min, max; | ||
426 | |||
427 | compute_stats (buckets[j][i], &avg, &min, &max); | ||
428 | |||
429 | printf ("%f, %f, %f, ", avg, min, max); | ||
430 | } | ||
431 | |||
432 | printf ("\n"); | ||
433 | } | ||
434 | #endif | ||
435 | } | ||
436 | |||
437 | return 0; | ||
438 | } | ||
diff --git a/xdelta1/doc/old/dcc99/data/fig1.data b/xdelta1/doc/old/dcc99/data/fig1.data deleted file mode 100755 index e585750..0000000 --- a/xdelta1/doc/old/dcc99/data/fig1.data +++ /dev/null | |||
@@ -1,29 +0,0 @@ | |||
1 | 5000, 1.000000, 0.000000, 0.000000, 2.247578, 1.494850, 1.494850, 4.513087, 3.841368, 3.841368, 5.150437, 3.945593, 3.945593, 4.883296, 4.762887, 4.762887, 5.354498, 4.662331, 4.662331, | ||
2 | 15000, 1.000000, 0.000000, 0.000000, 1.935773, 1.107924, 1.107924, 3.776800, 2.806186, 2.806186, 4.442599, 2.775799, 2.775799, 4.862028, 3.163344, 3.163344, 4.542423, 3.507239, 3.507239, | ||
3 | 25000, 1.000000, 0.000000, 0.000000, 1.992891, 1.203505, 1.203505, 3.918552, 2.910202, 2.910202, 4.594742, 2.878777, 2.878777, 4.944386, 3.107605, 3.107605, 4.409800, 3.406593, 3.406593, | ||
4 | 35000, 1.000000, 0.000000, 0.000000, 1.869683, 1.116450, 1.116450, 3.693352, 2.777232, 2.777232, 4.391966, 2.674814, 2.674814, 4.966845, 2.964413, 2.964413, 4.127713, 3.142258, 3.142258, | ||
5 | 45000, 1.000000, 0.000000, 0.000000, 1.847218, 1.142778, 1.142778, 3.383056, 2.298025, 2.298025, 4.093188, 2.135231, 2.135231, 5.198964, 3.207633, 3.207633, 4.289643, 3.599258, 3.599258, | ||
6 | 55000, 1.000000, 0.000000, 0.000000, 1.770871, 1.131038, 1.131038, 3.358432, 2.460521, 2.460521, 4.147034, 2.266551, 2.266551, 5.256925, 2.971032, 2.971032, 3.816856, 2.768544, 2.768544, | ||
7 | 65000, 1.000000, 0.000000, 0.000000, 1.556571, 0.913805, 0.913805, 2.911364, 1.943752, 1.943752, 3.845784, 1.739544, 1.739544, 5.641156, 2.550957, 2.550957, 3.582800, 2.612439, 2.612439, | ||
8 | 75000, 1.000000, 0.000000, 0.000000, 1.615948, 0.999812, 0.999812, 2.879092, 1.850208, 1.850208, 3.809982, 1.636014, 1.636014, 4.794411, 2.124749, 2.124749, 3.164612, 1.948221, 1.948221, | ||
9 | 85000, 1.000000, 0.000000, 0.000000, 1.825609, 1.013160, 1.013160, 3.430278, 2.071402, 2.071402, 4.121070, 1.931381, 1.931381, 4.852611, 2.869002, 2.869002, 3.908317, 2.625903, 2.625903, | ||
10 | 95000, 1.000000, 0.000000, 0.000000, 1.670724, 1.143832, 1.143832, 2.940294, 2.024779, 2.024779, 3.876037, 1.753694, 1.753694, 5.853093, 3.516541, 3.516541, 4.043364, 4.043364, 4.284600, | ||
11 | 105000, 1.000000, 0.000000, 0.000000, 2.158986, 1.369352, 1.369352, 3.614015, 2.034547, 2.034547, 4.216942, 1.858502, 1.858502, 4.965549, 3.036721, 3.036721, 4.185543, 2.586688, 2.586688, | ||
12 | 115000, 1.000000, 0.000000, 0.000000, 1.360088, 0.616350, 0.616350, 2.551459, 1.964894, 1.964894, 3.234822, 1.605634, 1.605634, 4.322613, 1.545842, 1.545842, 3.228285, 1.964847, 1.964847, | ||
13 | 125000, 1.000000, 0.000000, 0.000000, 1.529777, 0.848630, 0.848630, 2.945658, 2.014869, 2.014869, 3.900222, 1.974606, 1.974606, 5.478995, 1.905685, 1.905685, 3.434508, 2.093207, 2.093207, | ||
14 | 135000, 1.000000, 0.000000, 0.000000, 1.059016, 0.247858, 0.247858, 1.500279, 0.759026, 0.759026, 3.022245, 0.432389, 0.432389, 5.186137, 0.139577, 0.139577, 1.741970, 0.525337, 0.525337, | ||
15 | 145000, 1.000000, 0.000000, 0.000000, 1.949116, 1.676826, 1.676826, 2.800988, 2.189285, 2.189285, 3.939680, 1.756528, 1.756528, 4.947291, 1.224407, 1.224407, 3.418648, 2.731867, 2.731867, | ||
16 | 155000, 1.000000, 0.000000, 0.000000, 3.292208, 2.802525, 2.802525, 3.851028, 2.003085, 2.003085, 4.287683, 1.861235, 1.861235, 3.926793, 2.032467, 2.032467, 4.297426, 2.102505, 2.102505, | ||
17 | 165000, 1.000000, 1.000000, 1.000000, 2.113117, 2.113117, 2.113117, 1.966306, 1.966306, 1.966306, 3.229242, 3.229242, 3.229242, 6.534296, 6.534296, 6.534296, 2.446450, 2.446450, 2.446450, | ||
18 | 175000, 1.000000, 0.000000, 0.000000, 1.751311, 1.444948, 1.444948, 2.852141, 2.756114, 2.756114, 3.847896, 2.101695, 2.101695, 3.943581, 1.230728, 1.230728, 2.211612, 1.706203, 1.706203, | ||
19 | 185000, 1.000000, 1.000000, 1.000000, 1.632011, 1.632011, 1.632011, 1.461468, 1.461468, 1.461468, 2.628363, 2.628363, 2.628363, 4.902417, 4.902417, 4.902417, 1.831281, 1.831281, 1.831281, | ||
20 | 195000, 1.000000, 0.000000, 0.000000, 1.202820, 0.214820, 0.214820, 1.753262, 0.815314, 0.815314, 3.025649, 0.847447, 0.847447, 3.710422, 0.867004, 0.867004, 1.685907, 0.581806, 0.581806, | ||
21 | 205000, 1.000000, 0.000000, 0.000000, 3.371956, 3.371956, 5.627443, 3.747549, 2.970076, 2.970076, 4.492117, 2.761550, 2.761550, 5.074542, 2.563123, 2.563123, 4.404258, 3.013979, 3.013979, | ||
22 | 215000, 1.000000, 0.000000, 0.000000, 1.647549, 0.554709, 0.554709, 1.755538, 0.334468, 0.334468, 2.940955, 0.166030, 0.166030, 5.886149, 0.878080, 0.878080, 2.304068, 0.125165, 0.125165, | ||
23 | 235000, 1.000000, 0.000000, 0.000000, 5.656103, 5.656103, 11.862490, 2.597165, 1.876097, 1.876097, 3.387417, 1.601737, 1.601737, 4.513242, 2.991713, 2.991713, 3.069354, 1.750298, 1.750298, | ||
24 | 245000, 1.000000, 0.000000, 0.000000, 2.566175, 1.888322, 1.888322, 3.882325, 2.612144, 2.612144, 4.388008, 2.461386, 2.461386, 7.744080, 7.744080, 10.722341, 6.220723, 5.914358, 5.914358, | ||
25 | 255000, 1.000000, 0.000000, 0.000000, 1.506253, 0.664362, 0.664362, 1.687721, 0.540915, 0.540915, 3.125387, 0.292466, 0.292466, 5.703524, 1.929671, 1.929671, 2.030101, 0.199591, 0.199591, | ||
26 | 265000, 1.000000, 0.000000, 0.000000, 3.088008, 2.850353, 2.850353, 2.303957, 1.042549, 1.042549, 3.139581, 0.615099, 0.615099, 7.694560, 3.638420, 3.638420, 4.130421, 2.551056, 2.551056, | ||
27 | 325000, 1.000000, 1.000000, 1.000000, 4.122605, 4.122605, 4.122605, 2.144636, 2.144636, 2.144636, 3.645594, 3.645594, 3.645594, 6.508621, 6.508621, 6.508621, 2.496169, 2.496169, 2.496169, | ||
28 | 335000, 1.000000, 0.000000, 0.000000, 1.510913, 0.732142, 0.732142, 1.547070, 0.460837, 0.460837, 3.064122, 0.336828, 0.336828, 4.668883, 0.871269, 0.871269, 1.659188, 0.539544, 0.539544, | ||
29 | 355000, 1.000000, 1.000000, 1.000000, 0.251797, 0.251797, 0.251797, 0.183558, 0.183558, 0.183558, 1.007455, 1.007455, 1.007455, 1.007573, 1.007573, 1.007573, 0.183841, 0.183841, 0.183841, | ||
diff --git a/xdelta1/doc/old/dcc99/data/fig1.m b/xdelta1/doc/old/dcc99/data/fig1.m deleted file mode 100755 index 7521631..0000000 --- a/xdelta1/doc/old/dcc99/data/fig1.m +++ /dev/null | |||
@@ -1,20 +0,0 @@ | |||
1 | function graphit(name) | ||
2 | |||
3 | errorbar (name(:,1) - 2000, name(:, 5), name(:, 6), name(:, 7), 'ro') | ||
4 | hold | ||
5 | |||
6 | errorbar (name(:,1) , name(:, 8), name(:, 9), name(:, 10), 'bs') | ||
7 | hold | ||
8 | |||
9 | legend ('Vdelta standard deviation', 'Vdelta mean', 'Xdelta standard deviation', 'Xdelta mean') | ||
10 | set(gca, 'XTickLabel', [0,50000,100000,150000,200000,250000,300000,350000,400000]) | ||
11 | ylabel ('Delta Size Ratio') | ||
12 | xlabel ('To File Size (bytes)') | ||
13 | |||
14 | plot (name(:,1) - 2000, name(:, 5), 'r-') | ||
15 | hold | ||
16 | hold | ||
17 | |||
18 | plot (name(:,1) , name(:, 8), 'b-') | ||
19 | hold | ||
20 | hold | ||
diff --git a/xdelta1/doc/old/dcc99/data/fig2.data b/xdelta1/doc/old/dcc99/data/fig2.data deleted file mode 100755 index e1d38c3..0000000 --- a/xdelta1/doc/old/dcc99/data/fig2.data +++ /dev/null | |||
@@ -1,114 +0,0 @@ | |||
1 | 24545280, 86416.000000, 14748.000000 | ||
2 | 24535040, 87078.000000, 12624.000000 | ||
3 | 24545280, 86416.000000, 14748.000000 | ||
4 | 24535040, 87078.000000, 12624.000000 | ||
5 | 24565760, 580866.000000, 25254.000000 | ||
6 | 24545280, 594341.000000, 18693.000000 | ||
7 | 24565760, 580866.000000, 25254.000000 | ||
8 | 24545280, 594341.000000, 18693.000000 | ||
9 | 24576000, 570711.000000, 16047.000000 | ||
10 | 24565760, 595705.000000, 11194.000000 | ||
11 | 24576000, 570711.000000, 16047.000000 | ||
12 | 24565760, 595705.000000, 11194.000000 | ||
13 | 24616960, 1217651.000000, 61225.000000 | ||
14 | 24576000, 1247992.000000, 49980.000000 | ||
15 | 24616960, 1217651.000000, 61225.000000 | ||
16 | 24576000, 1247992.000000, 49980.000000 | ||
17 | 24668160, 1826667.000000, 14993.000000 | ||
18 | 24616960, 1869542.000000, 6412.000000 | ||
19 | 24668160, 1826667.000000, 14993.000000 | ||
20 | 24616960, 1869542.000000, 6412.000000 | ||
21 | 24678400, 839641.000000, 108137.000000 | ||
22 | 24668160, 835891.000000, 98220.000000 | ||
23 | 24678400, 839641.000000, 108137.000000 | ||
24 | 24668160, 835891.000000, 98220.000000 | ||
25 | 24780800, 3876954.000000, 42104.000000 | ||
26 | 24678400, 3918457.000000, 24561.000000 | ||
27 | 24780800, 3876954.000000, 42104.000000 | ||
28 | 24678400, 3918457.000000, 24561.000000 | ||
29 | 25169920, 2640520.000000, 171675.000000 | ||
30 | 24780800, 2586986.000000, 87922.000000 | ||
31 | 25169920, 2640520.000000, 171675.000000 | ||
32 | 24780800, 2586986.000000, 87922.000000 | ||
33 | 25589760, 6738090.000000, 180254.000000 | ||
34 | 25169920, 6667429.000000, 87609.000000 | ||
35 | 25589760, 6738090.000000, 180254.000000 | ||
36 | 25169920, 6667429.000000, 87609.000000 | ||
37 | 25589760, 1039716.000000, 35248.000000 | ||
38 | 25589760, 1002712.000000, 39366.000000 | ||
39 | 25589760, 1039716.000000, 35248.000000 | ||
40 | 25589760, 1002712.000000, 39366.000000 | ||
41 | 25784320, 4862543.000000, 71029.000000 | ||
42 | 25589760, 4872708.000000, 20363.000000 | ||
43 | 25784320, 4862543.000000, 71029.000000 | ||
44 | 25589760, 4872708.000000, 20363.000000 | ||
45 | 25815040, 653867.000000, 29446.000000 | ||
46 | 25784320, 670899.000000, 23979.000000 | ||
47 | 25815040, 653867.000000, 29446.000000 | ||
48 | 25784320, 670899.000000, 23979.000000 | ||
49 | 25804800, 147471.000000, 12049.000000 | ||
50 | 25815040, 138851.000000, 14661.000000 | ||
51 | 25804800, 147471.000000, 12049.000000 | ||
52 | 25815040, 138851.000000, 14661.000000 | ||
53 | 25794560, 760784.000000, 43758.000000 | ||
54 | 25804800, 774757.000000, 44445.000000 | ||
55 | 25794560, 760784.000000, 43758.000000 | ||
56 | 25804800, 774757.000000, 44445.000000 | ||
57 | 26583040, 6286263.000000, 318882.000000 | ||
58 | 25794560, 6091237.000000, 156185.000000 | ||
59 | 26583040, 6286263.000000, 318882.000000 | ||
60 | 25794560, 6091237.000000, 156185.000000 | ||
61 | 27555840, 6913260.000000, 315703.000000 | ||
62 | 26583040, 6705831.000000, 113159.000000 | ||
63 | 27555840, 6913260.000000, 315703.000000 | ||
64 | 26583040, 6705831.000000, 113159.000000 | ||
65 | 28262400, 7113085.000000, 295105.000000 | ||
66 | 27555840, 6983847.000000, 149050.000000 | ||
67 | 28262400, 7113085.000000, 295105.000000 | ||
68 | 27555840, 6983847.000000, 149050.000000 | ||
69 | 28252160, 529053.000000, 58262.000000 | ||
70 | 28262400, 544997.000000, 64953.000000 | ||
71 | 28252160, 529053.000000, 58262.000000 | ||
72 | 28262400, 544997.000000, 64953.000000 | ||
73 | 28631040, 6480127.000000, 71249.000000 | ||
74 | 28252160, 6420172.000000, 45890.000000 | ||
75 | 28631040, 6480127.000000, 71249.000000 | ||
76 | 28252160, 6420172.000000, 45890.000000 | ||
77 | 28753920, 2134350.000000, 89255.000000 | ||
78 | 28631040, 2170438.000000, 65201.000000 | ||
79 | 28753920, 2134350.000000, 89255.000000 | ||
80 | 28631040, 2170438.000000, 65201.000000 | ||
81 | 28651520, 2369727.000000, 30326.000000 | ||
82 | 28753920, 2372283.000000, 45047.000000 | ||
83 | 28651520, 2369727.000000, 30326.000000 | ||
84 | 28753920, 2372283.000000, 45047.000000 | ||
85 | 28661760, 740340.000000, 57676.000000 | ||
86 | 28651520, 754161.000000, 52499.000000 | ||
87 | 28661760, 740340.000000, 57676.000000 | ||
88 | 28651520, 754161.000000, 52499.000000 | ||
89 | 29194240, 7591422.000000, 237318.000000 | ||
90 | 28661760, 7504794.000000, 104630.000000 | ||
91 | 29194240, 7591422.000000, 237318.000000 | ||
92 | 28661760, 7504794.000000, 104630.000000 | ||
93 | 29194240, 46036.000000, 10714.000000 | ||
94 | 29194240, 47276.000000, 9377.000000 | ||
95 | 29194240, 46036.000000, 10714.000000 | ||
96 | 29194240, 47276.000000, 9377.000000 | ||
97 | 29634560, 6674584.000000, 183120.000000 | ||
98 | 29194240, 6587975.000000, 73595.000000 | ||
99 | 29634560, 6674584.000000, 183120.000000 | ||
100 | 29194240, 6587975.000000, 73595.000000 | ||
101 | 29634560, 112022.000000, 18621.000000 | ||
102 | 29634560, 115749.000000, 16434.000000 | ||
103 | 29634560, 112022.000000, 18621.000000 | ||
104 | 29634560, 115749.000000, 16434.000000 | ||
105 | 30177280, 5052730.000000, 192939.000000 | ||
106 | 29634560, 4979842.000000, 94495.000000 | ||
107 | 30177280, 5052730.000000, 192939.000000 | ||
108 | 29634560, 4979842.000000, 94495.000000 | ||
109 | 30658560, 3855336.000000, 183959.000000 | ||
110 | 30177280, 3781299.000000, 82085.000000 | ||
111 | 30658560, 3855336.000000, 183959.000000 | ||
112 | 30177280, 3781299.000000, 82085.000000 | ||
113 | 30883840, 6090180.000000, 96952.000000 | ||
114 | 30658560, 6105737.000000, 45032.000000 | ||
diff --git a/xdelta1/doc/old/dcc99/data/fig2.m b/xdelta1/doc/old/dcc99/data/fig2.m deleted file mode 100755 index 2ceb91b..0000000 --- a/xdelta1/doc/old/dcc99/data/fig2.m +++ /dev/null | |||
@@ -1,9 +0,0 @@ | |||
1 | function graphit(name) | ||
2 | |||
3 | plot (name(:,1), name(:, 2), 'ro') | ||
4 | hold | ||
5 | plot (name(:,1) , name(:, 3), 'bs') | ||
6 | |||
7 | legend ('Vdelta', 'Xdelta') | ||
8 | ylabel ('Delta Size (bytes)') | ||
9 | xlabel ('To File Size (bytes)') | ||
diff --git a/xdelta1/doc/old/dcc99/data/mytime.c b/xdelta1/doc/old/dcc99/data/mytime.c deleted file mode 100755 index b80c2bd..0000000 --- a/xdelta1/doc/old/dcc99/data/mytime.c +++ /dev/null | |||
@@ -1,61 +0,0 @@ | |||
1 | #include <glib.h> | ||
2 | #include <stdio.h> | ||
3 | #include <unistd.h> | ||
4 | #include <sys/types.h> | ||
5 | #include <sys/wait.h> | ||
6 | #include <sys/time.h> | ||
7 | #include <sys/resource.h> | ||
8 | |||
9 | int main(int argc, char** argv) | ||
10 | { | ||
11 | int pid, npid, status = 0; | ||
12 | char* argv1 = argv[1]; | ||
13 | |||
14 | argv += 2; | ||
15 | argc -= 2; | ||
16 | |||
17 | if ((pid = fork())) | ||
18 | { | ||
19 | struct rusage ru; | ||
20 | long t = 0; | ||
21 | |||
22 | if (pid != (npid = wait4 (pid, &status, 0, &ru))) | ||
23 | { | ||
24 | fprintf (stderr, "wait failed: %d\n", npid); | ||
25 | abort (); | ||
26 | } | ||
27 | |||
28 | if (! WIFEXITED(status)) | ||
29 | { | ||
30 | fprintf (stderr, "process did not exit\n"); | ||
31 | exit (1); | ||
32 | } | ||
33 | |||
34 | if (WEXITSTATUS(status) == 127) | ||
35 | { | ||
36 | fprintf (stderr, "exec failed\n"); | ||
37 | exit (1); | ||
38 | } | ||
39 | |||
40 | if (WEXITSTATUS(status) > 1) | ||
41 | { | ||
42 | fprintf (stderr, "process exited %d\n", WEXITSTATUS(status)); | ||
43 | exit (1); | ||
44 | } | ||
45 | |||
46 | t += 1000000*ru.ru_utime.tv_sec; | ||
47 | t += 1000000*ru.ru_stime.tv_sec; | ||
48 | t += ru.ru_utime.tv_usec; | ||
49 | t += ru.ru_stime.tv_usec; | ||
50 | |||
51 | fprintf (stderr, "Time: %s %f\n", argv1, (double)t / 1000000.0); | ||
52 | |||
53 | exit (0); | ||
54 | } | ||
55 | else | ||
56 | { | ||
57 | execvp (argv[0], argv); | ||
58 | _exit (127); | ||
59 | } | ||
60 | exit (0); | ||
61 | } | ||
diff --git a/xdelta1/doc/old/dcc99/data/runtest b/xdelta1/doc/old/dcc99/data/runtest deleted file mode 100755 index 3b25060..0000000 --- a/xdelta1/doc/old/dcc99/data/runtest +++ /dev/null | |||
@@ -1,38 +0,0 @@ | |||
1 | #!/bin/sh | ||
2 | |||
3 | trap "rm -rf tmp.files" 0 | ||
4 | |||
5 | tar -xzf linux-kernels/linux-2.1.0.tar.gz | ||
6 | |||
7 | mv linux linux-2.1.0 | ||
8 | |||
9 | (cd linux-2.1.0 && tar -cf linux.tar.gz *) | ||
10 | |||
11 | LASTVER=0 | ||
12 | |||
13 | for VER in `cat runtest-versions`; do | ||
14 | echo Creating version 2.1.$VER | ||
15 | mkdir linux-2.1.$VER | ||
16 | (cd linux-2.1.$LASTVER && tar -cf - .) | (cd linux-2.1.$VER && tar -xf -) | ||
17 | gzip -dc linux-kernels/patch-2.1.$VER.gz | (cd linux-2.1.$VER && patch -s -f -p1) | ||
18 | find linux-2.1.$VER -name \*.orig | xargs rm -rf | ||
19 | find linux-2.1.$VER -name \*.rej | xargs rm -rf | ||
20 | (cd linux-2.1.$VER && tar -cf linux.tar.gz *) | ||
21 | |||
22 | FILES="" | ||
23 | |||
24 | for f in `(cd linux-2.1.$VER; find . -type f)`; do | ||
25 | if test -f linux-2.1.$LASTVER/$f; then | ||
26 | FILES="$FILES $f" | ||
27 | fi | ||
28 | done | ||
29 | |||
30 | echo $FILES > tmp.files | ||
31 | |||
32 | ./runtest-one linux-2.1.$LASTVER linux-2.1.$VER tmp.files \ | ||
33 | 2>> runtest.errs 1>>runtest.out | ||
34 | |||
35 | rm -rf linux-2.1.$LASTVER | ||
36 | rm -rf linux-2.1.$LASTVER.tar.gz | ||
37 | LASTVER=$VER | ||
38 | done | ||
diff --git a/xdelta1/doc/old/dcc99/data/runtest-one b/xdelta1/doc/old/dcc99/data/runtest-one deleted file mode 100755 index 77b24bd..0000000 --- a/xdelta1/doc/old/dcc99/data/runtest-one +++ /dev/null | |||
@@ -1,71 +0,0 @@ | |||
1 | #!/bin/sh | ||
2 | |||
3 | ODIR=$1 | ||
4 | NDIR=$2 | ||
5 | FILES=`cat $3` | ||
6 | |||
7 | for i in $FILES; do | ||
8 | FROM=$ODIR/$i | ||
9 | TO=$NDIR/$i | ||
10 | |||
11 | if cmp -s $FROM $TO; then | ||
12 | FOO=bar | ||
13 | else | ||
14 | |||
15 | echo "FromFile: " $FROM `wc -c -l $FROM` | ||
16 | echo "ToFile: " $TO `wc -c -l $TO` | ||
17 | |||
18 | # 1 | ||
19 | echo "Tool: cim" | ||
20 | |||
21 | ./mytime cim-forward ../exact-delta/delta $FROM $TO > tmp.out | ||
22 | echo "Normal: " `cat tmp.out` | ||
23 | ./mytime cim-reverse ../exact-delta/delta $TO $FROM > tmp.out | ||
24 | echo "Reverse: " `cat tmp.out` | ||
25 | |||
26 | # 2 | ||
27 | echo "Tool: vdelta" | ||
28 | |||
29 | ./mytime vdelta-forward ../vdelta $FROM < $TO > tmp.out | ||
30 | echo "Normal: " `wc -c tmp.out` | ||
31 | ./mytime vdelta-reverse ../vdelta $TO < $FROM > tmp.out | ||
32 | echo "Reverse: " `wc -c tmp.out` | ||
33 | |||
34 | # 3 | ||
35 | echo "Tool: xdelta" | ||
36 | |||
37 | ./mytime xdelta-forward ../../../xdelta delta -0 -n $FROM $TO tmp.out | ||
38 | echo "Normal: " `wc -c tmp.out` | ||
39 | ./mytime xdelta-reverse ../../../xdelta delta -0 -n $TO $FROM tmp.out | ||
40 | echo "Reverse: " `wc -c tmp.out` | ||
41 | |||
42 | # 4 | ||
43 | echo "Tool: xz" | ||
44 | |||
45 | ./mytime xz-forward ../../../xdelta delta -n $FROM $TO tmp.out | ||
46 | echo "Normal: " `wc -c tmp.out` | ||
47 | ./mytime xz-reverse ../../../xdelta delta -n $TO $FROM tmp.out | ||
48 | echo "Reverse: " `wc -c tmp.out` | ||
49 | |||
50 | # 5 | ||
51 | echo "Tool: diff" | ||
52 | |||
53 | ./mytime diff-forward gdiff --rcs -a $FROM $TO > tmp.out | ||
54 | echo "Normal: " `wc -c tmp.out` | ||
55 | ./mytime diff-reverse gdiff --rcs -a $TO $FROM > tmp.out | ||
56 | echo "Reverse: " `wc -c tmp.out` | ||
57 | |||
58 | # 6 | ||
59 | echo "Tool: dz" | ||
60 | |||
61 | ./mytime dz1-forward gdiff --rcs -a $FROM $TO > tmp.out | ||
62 | rm -f tmp.out.gz | ||
63 | ./mytime dz2-forward gzip tmp.out | ||
64 | echo "Normal: " `wc -c tmp.out.gz` | ||
65 | ./mytime dz1-reverse gdiff --rcs -a $TO $FROM > tmp.out | ||
66 | rm -f tmp.out.gz | ||
67 | ./mytime dz2-reverse gzip tmp.out | ||
68 | echo "Reverse: " `wc -c tmp.out.gz` | ||
69 | |||
70 | fi | ||
71 | done | ||
diff --git a/xdelta1/doc/old/dcc99/data/runtest-versions b/xdelta1/doc/old/dcc99/data/runtest-versions deleted file mode 100755 index 310c96c..0000000 --- a/xdelta1/doc/old/dcc99/data/runtest-versions +++ /dev/null | |||
@@ -1,127 +0,0 @@ | |||
1 | 1 | ||
2 | 2 | ||
3 | 3 | ||
4 | 4 | ||
5 | 5 | ||
6 | 6 | ||
7 | 7 | ||
8 | 8 | ||
9 | 9 | ||
10 | 10 | ||
11 | 11 | ||
12 | 12 | ||
13 | 13 | ||
14 | 14 | ||
15 | 15 | ||
16 | 16 | ||
17 | 17 | ||
18 | 18 | ||
19 | 19 | ||
20 | 20 | ||
21 | 21 | ||
22 | 22 | ||
23 | 23 | ||
24 | 24 | ||
25 | 25 | ||
26 | 26 | ||
27 | 27 | ||
28 | 28 | ||
29 | 29 | ||
30 | 30 | ||
31 | 31 | ||
32 | 32 | ||
33 | 33 | ||
34 | 34 | ||
35 | 35 | ||
36 | 36 | ||
37 | 37 | ||
38 | 38 | ||
39 | 39 | ||
40 | 40 | ||
41 | 41 | ||
42 | 42 | ||
43 | 43 | ||
44 | 44 | ||
45 | 45 | ||
46 | 46 | ||
47 | 47 | ||
48 | 48 | ||
49 | 49 | ||
50 | 50 | ||
51 | 51 | ||
52 | 52 | ||
53 | 53 | ||
54 | 54 | ||
55 | 55 | ||
56 | 56 | ||
57 | 57 | ||
58 | 58 | ||
59 | 59 | ||
60 | 60 | ||
61 | 61 | ||
62 | 62 | ||
63 | 63 | ||
64 | 64 | ||
65 | 65 | ||
66 | 66 | ||
67 | 67 | ||
68 | 68 | ||
69 | 69 | ||
70 | 70 | ||
71 | 71 | ||
72 | 72 | ||
73 | 73 | ||
74 | 74 | ||
75 | 75 | ||
76 | 76 | ||
77 | 77 | ||
78 | 78 | ||
79 | 79 | ||
80 | 80 | ||
81 | 81 | ||
82 | 82 | ||
83 | 83 | ||
84 | 84 | ||
85 | 85 | ||
86 | 86 | ||
87 | 87 | ||
88 | 88 | ||
89 | 89 | ||
90 | 90 | ||
91 | 91 | ||
92 | 92 | ||
93 | 93 | ||
94 | 94 | ||
95 | 95 | ||
96 | 96 | ||
97 | 97 | ||
98 | 98 | ||
99 | 99 | ||
100 | 100 | ||
101 | 101 | ||
102 | 102 | ||
103 | 103 | ||
104 | 104 | ||
105 | 105 | ||
106 | 106 | ||
107 | 107 | ||
108 | 108 | ||
109 | 109 | ||
110 | 110 | ||
111 | 111 | ||
112 | 112 | ||
113 | 113 | ||
114 | 114 | ||
115 | 115 | ||
116 | 116 | ||
117 | 117 | ||
118 | 118 | ||
119 | 119 | ||
120 | 120 | ||
121 | 121 | ||
122 | 122 | ||
123 | 123 | ||
124 | 124 | ||
125 | 125 | ||
126 | 126 | ||
127 | 127 | ||
diff --git a/xdelta1/doc/old/dcc99/data/tclean.l b/xdelta1/doc/old/dcc99/data/tclean.l deleted file mode 100755 index b440e30..0000000 --- a/xdelta1/doc/old/dcc99/data/tclean.l +++ /dev/null | |||
@@ -1,38 +0,0 @@ | |||
1 | /* -*-Mode: C++;-*- | ||
2 | * PRCS - The Project Revision Control System | ||
3 | * Copyright (C) 1997 Josh MacDonald | ||
4 | * | ||
5 | * This program is free software; you can redistribute it and/or | ||
6 | * modify it under the terms of the GNU General Public License | ||
7 | * as published by the Free Software Foundation; either version 2 | ||
8 | * of the License, or (at your option) any later version. | ||
9 | * | ||
10 | * This program is distributed in the hope that it will be useful, | ||
11 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
12 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
13 | * GNU General Public License for more details. | ||
14 | * | ||
15 | * You should have received a copy of the GNU General Public License | ||
16 | * along with this program; if not, write to the Free Software | ||
17 | * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. | ||
18 | * | ||
19 | * $Id$ | ||
20 | */ | ||
21 | |||
22 | %{ | ||
23 | double r,u,s; | ||
24 | %} | ||
25 | |||
26 | dig [0-9] | ||
27 | num {dig}+("."{dig}+)? | ||
28 | space [\v\f\r\t\n ] | ||
29 | ws {space}+ | ||
30 | |||
31 | %% | ||
32 | |||
33 | {ws} { } | ||
34 | "real"{ws}{num} { sscanf (yytext, "real %lf", &r); } | ||
35 | "user"{ws}{num} { sscanf (yytext, "user %lf", &u);} | ||
36 | "sys"{ws}{num} { sscanf (yytext, "sys %lf", &s); printf ("Time: %f\n", u+s); } | ||
37 | |||
38 | %% | ||
diff --git a/xdelta1/doc/old/dcc99/dcc99.bib b/xdelta1/doc/old/dcc99/dcc99.bib deleted file mode 100755 index 09d3d3c..0000000 --- a/xdelta1/doc/old/dcc99/dcc99.bib +++ /dev/null | |||
@@ -1,502 +0,0 @@ | |||
1 | @String{pub-USENIX = "USENIX"} | ||
2 | @String{pub-USENIX-EL-CERRITO:adr = "P.O. Box 7, El Cerrito 94530, CA, | ||
3 | USA"} | ||
4 | @String{pub-USENIX:adr = "Berkeley, CA, USA"} | ||
5 | |||
6 | @String{j-LECT-NOTES-COMP-SCI = "Lecture Notes in Computer Science"} | ||
7 | @String{j-SPE = "Software---Practice and Experience"} | ||
8 | |||
9 | @Article{Severance:1976:TODS, | ||
10 | title = "Differential Files: Their Application to the | ||
11 | Maintenance of Large Databases", | ||
12 | author = "Dennis S. Severance and Guy M. Lohman", | ||
13 | journal = "ACM Transactions on Database Systems", | ||
14 | month = sep, | ||
15 | year = "1976", | ||
16 | publisher = "ACM, New York", | ||
17 | pages = "256--267", | ||
18 | } | ||
19 | |||
20 | @Article{Vo:1996:SCM, | ||
21 | author = "J. J. Hunt and K.-P. Vo and W. F. Tichy", | ||
22 | title = "An Empirical Study of Delta Algorithms", | ||
23 | journal = j-LECT-NOTES-COMP-SCI, | ||
24 | volume = "1167", | ||
25 | pages = "49--66", | ||
26 | month = "July", | ||
27 | year = "1996", | ||
28 | CODEN = "LNCSD9", | ||
29 | ISSN = "0302-9743", | ||
30 | bibdate = "Fri Aug 22 11:59:49 MDT 1997", | ||
31 | acknowledgement = ack-nhfb, | ||
32 | } | ||
33 | |||
34 | @Article{MacDonald:1998:SCM, | ||
35 | author = "Josh MacDonald and Paul N. Hilfinger and Luigi Semenzato", | ||
36 | title = "PRCS: The Project Revision Control System", | ||
37 | journal = j-LECT-NOTES-COMP-SCI, | ||
38 | volume = "1439", | ||
39 | pages = "33--45", | ||
40 | month = "July", | ||
41 | year = "1998", | ||
42 | } | ||
43 | |||
44 | @Article{Alderson:1988:JSE, | ||
45 | author = "Albert Alderson", | ||
46 | title = "A Space-Efficient Technique for Recording Versions of Data", | ||
47 | journal = "Software Engineering Journal", | ||
48 | volume = "3", | ||
49 | number = "6", | ||
50 | pages = "240--246", | ||
51 | month = nov, | ||
52 | year = "1988", | ||
53 | } | ||
54 | |||
55 | @Article{Tichy:1985:RSV, | ||
56 | author = "Walter F. Tichy", | ||
57 | title = "{RCS}: {A} System for Version Control", | ||
58 | journal = j-SPE, | ||
59 | volume = "15", | ||
60 | number = "7", | ||
61 | pages = "637--654", | ||
62 | month = jul, | ||
63 | year = "1985", | ||
64 | CODEN = "SPEXBL", | ||
65 | ISSN = "0038-0644", | ||
66 | bibdate = "Sat May 31 13:36:16 MDT 1997", | ||
67 | acknowledgement = ack-nhfb, | ||
68 | keywords = "algorithms; management; performance; measurement", | ||
69 | review = "ACM CR 8604-0320", | ||
70 | subject = "D.2.7 Software, SOFTWARE ENGINEERING, Distribution and | ||
71 | Maintenance, Version control \\ D.2.9 Software, | ||
72 | SOFTWARE ENGINEERING, Management, Software | ||
73 | configuration management \\ D.4.0 Software, OPERATING | ||
74 | SYSTEMS, General, UNIX \\ K.6.3 Computing Milieux, | ||
75 | MANAGEMENT OF COMPUTING AND INFORMATION SYSTEMS, | ||
76 | Software Management, Software maintenance", | ||
77 | } | ||
78 | |||
79 | |||
80 | |||
81 | |||
82 | @Article{Rochkind:ieee:tose:1975, | ||
83 | author = "Marc J. Rochkind", | ||
84 | title = "The Source Code Control System", | ||
85 | journal = "IEEE Transactions on Software Engineering", | ||
86 | volume = "1", | ||
87 | number = "4", | ||
88 | pages = "364--370", | ||
89 | month = dec, | ||
90 | year = "1975", | ||
91 | refs = "10", | ||
92 | checked = "19940609", | ||
93 | source = "Main library", | ||
94 | keywords = "configuration management, program maintenance, | ||
95 | software control, software project management, revision | ||
96 | control, source control, SCCS", | ||
97 | abstract = "The Source Code Control System (SCCS) is a software | ||
98 | tool designed to help programming projects control | ||
99 | changes to source code. It provides facilities for | ||
100 | storing, updating, and retrieving all versions of | ||
101 | modules, for controlling updating privilges, for | ||
102 | identifying load modules by version number, and for | ||
103 | recording who made each software change, when and where | ||
104 | it was made, and why. This paper discusses the SCCS | ||
105 | approach to source code control, shows how it is used | ||
106 | and explains how it is implemented.", | ||
107 | reffrom = "Kernighan:Mashey:ieee:c:1981", | ||
108 | reffrom = "Tichy:acm:toplas:1986", | ||
109 | } | ||
110 | |||
111 | @Article{Miller:1985:FCP, | ||
112 | author = "Webb Miller and Eugene W. Myers", | ||
113 | title = "A File Comparison Program", | ||
114 | journal = j-SPE, | ||
115 | volume = "15", | ||
116 | number = "11", | ||
117 | pages = "1025--1040", | ||
118 | month = nov, | ||
119 | year = "1985", | ||
120 | coden = "SPEXBL", | ||
121 | ISSN = "0038-0644", | ||
122 | bibdate = "Sat May 31 13:36:16 MDT 1997", | ||
123 | acknowledgement = ack-nhfb, | ||
124 | keywords = "design; algorithms; performance", | ||
125 | subject = "D.4.3 Software, OPERATING SYSTEMS, File Systems | ||
126 | Management, File organization \\ E.5 Data, FILES, | ||
127 | Organization/structure \\ I.1.2 Computing | ||
128 | Methodologies, ALGEBRAIC MANIPULATION, Algorithms, | ||
129 | Analysis of algorithms", | ||
130 | } | ||
131 | |||
132 | @Article{Tichy84, | ||
133 | author = "W. F. Tichy", | ||
134 | title = "The string-to-string correction problem with block moves.", | ||
135 | journal = "ACM Transactions on Computer Systems", | ||
136 | volume = "2", | ||
137 | number = "4", | ||
138 | pages = "309--321", | ||
139 | month = nov, | ||
140 | year = "1984", | ||
141 | keywords = "longest common subsequence, LCS, LCSS, edit distance, | ||
142 | block, move, TOCS, string to strings, sequence, | ||
143 | alignment, linear, algorithm", | ||
144 | abstract = "Uses block moves as the edit operation, seeks min' | ||
145 | number, gets a O(n) linear algorithm if P.Weiner's | ||
146 | data-structure used. S source string, T target string. | ||
147 | Algorithm: find longest prefix of T that is a substring | ||
148 | of S, this gives the first block move; repeat until | ||
149 | done. Proof: by induction on number of block moves. One | ||
150 | block move - T must obviously be a substring of S, alg' | ||
151 | finds this. Suppose optimal is i block moves and alg' | ||
152 | fails, i.e. finds j $>$ i moves. | ||
153 | T:----Opt1----$|$--Opt2--$|$---Opt3---$|$.....$|$--Algi-- | ||
154 | T:-----Alg1-----$|$---Alg2---$|$.....$|$-----Algj------ | ||
155 | NB. $|$Alg1$|$ $>$= $|$Opt1$|$ Delete the substring | ||
156 | Alg1. By induction the alg' would find the opt' | ||
157 | explanation of the rest of T - but it doesn't :- | ||
158 | contradiction.", | ||
159 | } | ||
160 | |||
161 | @Book{Knuth:V3:73, | ||
162 | author = "D. E. Knuth", | ||
163 | year = "1998", | ||
164 | title = "The Art of Computer Programming {III}: Sorting and | ||
165 | Searching", | ||
166 | publisher = "Addison--Wesley", | ||
167 | address = "Reading, Massachusetts", | ||
168 | kwds = "cs, book, sorting, searching", | ||
169 | } | ||
170 | |||
171 | @InCollection{Hunt77, | ||
172 | author = "Hunt and Szymanski", | ||
173 | title = "A Fast Algorithm for Computing Longest Common | ||
174 | Subsequences", | ||
175 | booktitle = "Communications of the ACM", | ||
176 | publisher = "ACM, New York", | ||
177 | volume = "20", | ||
178 | year = "1977", | ||
179 | } | ||
180 | |||
181 | @TECHREPORT{Rsync, | ||
182 | AUTHOR = {Andrew Tridgell and Paul Mackerras}, | ||
183 | TITLE = {The {Rsync} Algorithm}, | ||
184 | INSTITUTION = "The Australian National University", | ||
185 | YEAR = "1996", | ||
186 | NUMBER = "TR-CS-96-05", | ||
187 | MONTH = "June" | ||
188 | } | ||
189 | |||
190 | @Article{Yu:1994:LTS, | ||
191 | author = "Lin Yu and Daniel J. Rosenkrantz", | ||
192 | title = "A Linear-Time Scheme for Version Reconstruction", | ||
193 | journal = "ACM Transactions on Programming Languages and | ||
194 | Systems", | ||
195 | volume = "16", | ||
196 | number = "3", | ||
197 | pages = "775--797", | ||
198 | month = may, | ||
199 | year = "1994", | ||
200 | coden = "ATPSDT", | ||
201 | ISSN = "0164-0925", | ||
202 | url = "http://www.acm.org/pubs/toc/Abstracts/0164-0925/177705.html", | ||
203 | abstract = "An efficient scheme to store and reconstruct versions | ||
204 | of sequential files is presented. The reconstruction | ||
205 | scheme involves building a data structure representing | ||
206 | a complete version, and then successively modifying | ||
207 | this data structure by applying a sequence of specially | ||
208 | formatted differential files to it. Each application of | ||
209 | a differential file produces a representation of an | ||
210 | intermediate version, with the final data structure | ||
211 | representing the requested version.\par The scheme uses | ||
212 | a linked list to represent an intermediate version, | ||
213 | instead of a sequential array, as is used | ||
214 | traditionally. A new format for differential files | ||
215 | specifying changes to this linked list data structure | ||
216 | is presented. The specification of each change points | ||
217 | directly to where the change is to take place, thereby | ||
218 | obviating a search. Algorithms are presented for using | ||
219 | such a new format differential file to transform the | ||
220 | representation of a version, and for reconstructing a | ||
221 | requested version. Algorithms are also presented for | ||
222 | generating the new format differential files, both for | ||
223 | the case of a forward differential specifying how to | ||
224 | transform the representation of an old version to the | ||
225 | representation of a new version, and for the case of a | ||
226 | reverse differential specifying how to transform the | ||
227 | representation of a new version to the representation | ||
228 | of an old version.\par The new version reconstruction | ||
229 | scheme takes time linear in the sum of the size of the | ||
230 | initial complete version and the sizes of the file | ||
231 | differences involved in reconstructing the requested | ||
232 | version. In contrast, the classical scheme for | ||
233 | reconstructing versions takes time proportional to the | ||
234 | sum of the sizes of the sequence of versions involved | ||
235 | in the reconstruction, and therefore has a worst-case | ||
236 | time that is quadratic in the sum of the size of the | ||
237 | initial complete version and the sizes of the file | ||
238 | differences. The time cost of the new differential file | ||
239 | generation scheme is comparable to the time cost of the | ||
240 | classical differential file generation scheme.", | ||
241 | acknowledgement = ack-pb, | ||
242 | keywords = "algorithms; languages", | ||
243 | subject = "{\bf H.2.5}: Information Systems, DATABASE MANAGEMENT, | ||
244 | Heterogeneous Databases, Program translation. {\bf | ||
245 | H.3.2}: Information Systems, INFORMATION STORAGE AND | ||
246 | RETRIEVAL, Information Storage, File organization. {\bf | ||
247 | H.2.1}: Information Systems, DATABASE MANAGEMENT, | ||
248 | Logical Design. {\bf H.2.0}: Information Systems, | ||
249 | DATABASE MANAGEMENT, General, Security, integrity, and | ||
250 | protection. {\bf H.2.5}: Information Systems, DATABASE | ||
251 | MANAGEMENT, Heterogeneous Databases, Data translation. | ||
252 | {\bf D.2.7}: Software, SOFTWARE ENGINEERING, | ||
253 | Distribution and Maintenance.", | ||
254 | } | ||
255 | |||
256 | @InProceedings{Burns:InPlace, | ||
257 | author = "Randal C. Burns and Darrell D. E. Long", | ||
258 | title = "In-Place Reconstruction of Delta Compressed Files", | ||
259 | booktitle = "Proceedings of the Seventeenth ACM Symposium on Principles of Distributed Computing", | ||
260 | month = "June", | ||
261 | year = "1998" | ||
262 | } | ||
263 | |||
264 | @InProceedings{Burns:Backup, | ||
265 | author = "Randal C. Burns and Darrell D. E. Long", | ||
266 | title = "Efficient Distributed Backup with Delta Compression", | ||
267 | booktitle = "Proceedings of the Fifth Workshop on I/O in Parallel and Distributed Systems", | ||
268 | month = "November", | ||
269 | year = "1997" | ||
270 | } | ||
271 | |||
272 | @MASTERSTHESIS{Burns:Thesis, | ||
273 | AUTHOR = {Randal C. Burns}, | ||
274 | TITLE = "Differential Compression: A Generalized Solution for Binary Files", | ||
275 | SCHOOL = "University of California at Santa Cruz, Department of Computer Science", | ||
276 | YEAR = "1997" | ||
277 | } | ||
278 | |||
279 | @Book{clr, | ||
280 | author = "Thomas H. Cormen and Charles E. Leiserson and Ronald L. Rivest", | ||
281 | title = "Introduction to Algorithms", | ||
282 | publisher = "MIT Press", | ||
283 | year = 1993 | ||
284 | } | ||
285 | |||
286 | @Article{Myers:Editor, | ||
287 | author = "Christopher W. Fraser and Eugene W. Myers", | ||
288 | title = "An Editor for Revision Control", | ||
289 | journal = "ACM Transactions on Programming Languages and | ||
290 | Systems", | ||
291 | volume = "9", | ||
292 | number = "2", | ||
293 | pages = "277--295", | ||
294 | month = apr, | ||
295 | year = "1987" | ||
296 | } | ||
297 | |||
298 | @Misc{mozillaCvs, | ||
299 | author = "Webmaster", | ||
300 | date = "1998", | ||
301 | howpublished = "http://www.mozilla.org/cvs.html", | ||
302 | title = "Mozilla CVS Usage Instructions" | ||
303 | } | ||
304 | |||
305 | @Misc{w3, | ||
306 | title = "The HTTP Distribution and Replication Protocol", | ||
307 | month = aug, | ||
308 | year = "1997", | ||
309 | howpublished = "http://www.w3.org", | ||
310 | author = "Aurthur van Hoff and John Giannandrea and Mark Hapner and Steve Carter and Milo Medin" | ||
311 | } | ||
312 | |||
313 | @Misc{gdiff, | ||
314 | title = "Generic Diff Format Specification", | ||
315 | month = aug, | ||
316 | year = "1997", | ||
317 | howpublished = "http://www.w3.org", | ||
318 | author = "Aurthur van Hoff and Jonathan Payne" | ||
319 | } | ||
320 | |||
321 | @InProceedings{SIGCOMM97*181, | ||
322 | author = "Jeffrey C. Mogul and Fred Douglis and Anja Feldmann | ||
323 | and Balachander Krishnamurthy", | ||
324 | title = "Potential benefits of delta-encoding and data | ||
325 | compression for {HTTP}", | ||
326 | pages = "181--196", | ||
327 | ISSN = "0146-4833", | ||
328 | booktitle = "Proceedings of the {ACM} {SIGCOMM} Conference : | ||
329 | Applications, Technologies, Architectures, and | ||
330 | Protocols for Computer Communication ({SIGCOMM}-97)", | ||
331 | month = sep # "14--18~", | ||
332 | series = "Computer Communication Review", | ||
333 | volume = "27,4", | ||
334 | publisher = "ACM Press", | ||
335 | address = "New York", | ||
336 | year = "1997", | ||
337 | } | ||
338 | |||
339 | @Misc{RFC1321, | ||
340 | author = "R. Rivest", | ||
341 | title = "{RFC 1321}: The {MD5} Message-Digest Algorithm", | ||
342 | month = apr, | ||
343 | year = "1992", | ||
344 | bibdate = "Thu Oct 16 09:34:09 MDT 1997", | ||
345 | note = "Status: INFORMATIONAL.", | ||
346 | URL = "ftp://ftp.internic.net/rfc/rfc1321.txt, | ||
347 | ftp://ftp.math.utah.edu/pub/rfc/rfc1321.txt", | ||
348 | acknowledgement = ack-nhfb, | ||
349 | format = "TXT=35222 bytes", | ||
350 | online = "yes", | ||
351 | status = "INFORMATIONAL", | ||
352 | } | ||
353 | |||
354 | @MISC{Polstra96, | ||
355 | Author = "J. Polstra", | ||
356 | Title = "Program source for {CVSup}", | ||
357 | HowPublished = "ftp://ftp.cvsup.freebsd.org/pub/CVSup", | ||
358 | Year = 1996} | ||
359 | |||
360 | @Misc{RFC1036, | ||
361 | author = "M. R. Horton and R. Adams", | ||
362 | title = "{RFC 1036}: Standard for interchange of {USENET} | ||
363 | messages", | ||
364 | day = "1", | ||
365 | month = dec, | ||
366 | year = "1987", | ||
367 | bibdate = "Thu Oct 16 09:34:09 MDT 1997", | ||
368 | note = "Obsoletes RFC0850 \cite{RFC0850}. Status: UNKNOWN.", | ||
369 | URL = "ftp://ftp.internic.net/rfc/rfc1036.txt, | ||
370 | ftp://ftp.internic.net/rfc/rfc850.txt, | ||
371 | ftp://ftp.math.utah.edu/pub/rfc/rfc1036.txt, | ||
372 | ftp://ftp.math.utah.edu/pub/rfc/rfc850.txt", | ||
373 | acknowledgement = ack-nhfb, | ||
374 | format = "TXT=46891 bytes", | ||
375 | obsoletes = "Obsoletes RFC0850 \cite{RFC0850}.", | ||
376 | online = "yes", | ||
377 | status = "UNKNOWN", | ||
378 | } | ||
379 | |||
380 | |||
381 | @Misc{RFC0977, | ||
382 | author = "B. Kantor and P. Lapsley", | ||
383 | title = "{RFC 977}: Network News Transfer Protocol: {A} | ||
384 | Proposed Standard for the Stream-Based Transmission of | ||
385 | News", | ||
386 | day = "1", | ||
387 | month = feb, | ||
388 | year = "1986", | ||
389 | bibdate = "Thu Oct 16 09:34:09 MDT 1997", | ||
390 | note = "Status: PROPOSED STANDARD.", | ||
391 | URL = "ftp://ftp.internic.net/rfc/rfc977.txt, | ||
392 | ftp://ftp.math.utah.edu/pub/rfc/rfc977.txt", | ||
393 | acknowledgement = ack-nhfb, | ||
394 | format = "TXT=55062 bytes", | ||
395 | online = "yes", | ||
396 | status = "PROPOSED STANDARD", | ||
397 | } | ||
398 | |||
399 | @Misc{RFC0850, | ||
400 | author = "M. R. Horton", | ||
401 | title = "{RFC 850}: Standard for interchange of {USENET} | ||
402 | messages", | ||
403 | day = "1", | ||
404 | month = jun, | ||
405 | year = "1983", | ||
406 | bibdate = "Thu Oct 16 09:34:09 MDT 1997", | ||
407 | note = "Obsoleted by RFC1036 \cite{RFC1036}. Status: | ||
408 | UNKNOWN.", | ||
409 | URL = "ftp://ftp.internic.net/rfc/rfc1036.txt, | ||
410 | ftp://ftp.internic.net/rfc/rfc850.txt, | ||
411 | ftp://ftp.math.utah.edu/pub/rfc/rfc1036.txt, | ||
412 | ftp://ftp.math.utah.edu/pub/rfc/rfc850.txt", | ||
413 | acknowledgement = ack-nhfb, | ||
414 | format = "TXT=43871 bytes", | ||
415 | obsoletedby = "Obsoleted by RFC1036 \cite{RFC1036}.", | ||
416 | online = "yes", | ||
417 | status = "UNKNOWN", | ||
418 | } | ||
419 | |||
420 | @InProceedings{Salz:1992:IUT, | ||
421 | author = "Rich Salz", | ||
422 | title = "{InterNetNews: Usenet} Transport for {Internet} | ||
423 | Sites", | ||
424 | crossref = "USENIX:1992:PSU", | ||
425 | pages = "93--98", | ||
426 | month = "Summer", | ||
427 | year = "1992", | ||
428 | bibdate = "Fri Oct 18 07:24:24 MDT 1996", | ||
429 | bibsource = "ftp://ftp.uu.net/library/bibliography", | ||
430 | acknowledgement = ack-nhfb, | ||
431 | affiliation = "BBN Systems and Technologies", | ||
432 | } | ||
433 | |||
434 | @Proceedings{USENIX:1992:PSU, | ||
435 | editor = "{USENIX Association}", | ||
436 | booktitle = "Proceedings of the Summer 1992 {USENIX} Conference: | ||
437 | June 8--12, 1992, San Antonio, Texas, USA", | ||
438 | title = "Proceedings of the Summer 1992 {USENIX} Conference: | ||
439 | June 8--12, 1992, San Antonio, Texas, {USA}", | ||
440 | publisher = pub-USENIX, | ||
441 | address = pub-USENIX:adr, | ||
442 | pages = "vii + 253", | ||
443 | year = "1992", | ||
444 | ISBN = "1-880446-44-8", | ||
445 | LCCN = "QA 76.76 O63 U83 1992", | ||
446 | bibdate = "Sun Feb 18 07:46:09 MST 1996", | ||
447 | acknowledgement = ack-nhfb, | ||
448 | annote = "Spine title: San Antonio conference proceedings.", | ||
449 | keywords = "UNIX (Computer operating system) --- Congresses.", | ||
450 | } | ||
451 | |||
452 | @InProceedings{Berliner:1990:CIP, | ||
453 | author = "Brian Berliner", | ||
454 | title = "{CVS II}: Parallelizing Software Development", | ||
455 | crossref = "USENIX:1990:PWU", | ||
456 | pages = "341--352", | ||
457 | day = "22--26", | ||
458 | month = jan, | ||
459 | year = "1990", | ||
460 | bibdate = "Fri Oct 18 07:24:24 MDT 1996", | ||
461 | bibsource = "ftp://ftp.uu.net/library/bibliography", | ||
462 | acknowledgement = ack-nhfb, | ||
463 | affiliation = "Prisma, Inc.", | ||
464 | } | ||
465 | |||
466 | @Proceedings{USENIX:1990:PWU, | ||
467 | editor = "{USENIX Association}", | ||
468 | key = "USENIX Winter '90", | ||
469 | booktitle = "Proceedings of the Winter 1990 {USENIX} Conference, | ||
470 | January 22--26, 1990, Washington, {DC}, {USA}", | ||
471 | title = "Proceedings of the Winter 1990 {USENIX} Conference, | ||
472 | January 22--26, 1990, Washington, {DC}, {USA}", | ||
473 | publisher = pub-USENIX, | ||
474 | address = pub-USENIX:adr, | ||
475 | pages = "xvi + 374", | ||
476 | year = "1990", | ||
477 | LCCN = "QA76.8.U65 U82 1990", | ||
478 | bibdate = "Thu Sep 15 18:50:55 1994", | ||
479 | acknowledgement = ack-nhfb, | ||
480 | keywords = "UNIX (Computer operating system) --- Congresses; UNIX | ||
481 | (OPERATING SYSTEM); OPERATING SYSTEMS (COMPUTERS); | ||
482 | CONFERENCES; CHECKOUT", | ||
483 | xxISBN = "none", | ||
484 | } | ||
485 | |||
486 | @InProceedings{soda92*367, | ||
487 | author = "J. Ian Munro and Thomas Papadakis and Robert | ||
488 | Sedgewick", | ||
489 | title = "Deterministic Skip Lists", | ||
490 | pages = "367--375", | ||
491 | ISBN = "0-89871-293-9", | ||
492 | editor = "Frances {Frederickson, Grag; Graham, Ron; Hochbaum, | ||
493 | Dorit S.; Johnson, Ellis; Kosaraju, S. Rao; Luby, | ||
494 | Michael; Megiddo, Nimrod; Schieber, Baruch; Vaidya, | ||
495 | Pravin; Yao}", | ||
496 | booktitle = "Proceedings of the 3rd Annual {ACM}-{SIAM} Symposium | ||
497 | on Discrete Algorithms ({SODA} '92)", | ||
498 | address = "Orlando, FL, USA", | ||
499 | month = jan, | ||
500 | year = "1992", | ||
501 | publisher = "SIAM", | ||
502 | } | ||
diff --git a/xdelta1/doc/old/dcc99/dcc99.sty b/xdelta1/doc/old/dcc99/dcc99.sty deleted file mode 100755 index ba27dc7..0000000 --- a/xdelta1/doc/old/dcc99/dcc99.sty +++ /dev/null | |||
@@ -1,56 +0,0 @@ | |||
1 | \usepackage{xspace} | ||
2 | \usepackage{epsf} | ||
3 | %\usepackage{amsthm} | ||
4 | %\usepackage{amstex} | ||
5 | \usepackage{amsmath} | ||
6 | |||
7 | \newenvironment{program}{\begin{itemize}\item[]\tt\hfill\begin{tabbing}}{\end{tabbing}\end{itemize}} | ||
8 | |||
9 | \newcommand{\myfigure}[2]{ | ||
10 | \begin{figure*} | ||
11 | \begin{center} | ||
12 | \def\@captype{figure} | ||
13 | \leavevmode | ||
14 | %\epsfxsize=8cm | ||
15 | \epsfbox{figs/#1.eps} | ||
16 | \caption{#2} \label{#1} | ||
17 | \end{center} | ||
18 | \end{figure*} | ||
19 | } | ||
20 | |||
21 | \newcommand{\medfigure}[2]{ | ||
22 | \begin{figure*} | ||
23 | \begin{center} | ||
24 | \def\@captype{figure} | ||
25 | \leavevmode | ||
26 | \epsfxsize=8cm | ||
27 | \epsfbox{figs/#1.eps} | ||
28 | \caption{#2} \label{#1} | ||
29 | \end{center} | ||
30 | \end{figure*} | ||
31 | } | ||
32 | |||
33 | \newcommand{\bigfigure}[2]{ | ||
34 | \begin{figure*} | ||
35 | \begin{center} | ||
36 | \def\@captype{figure} | ||
37 | \leavevmode | ||
38 | \epsfxsize=8cm | ||
39 | \epsfbox{figs/#1.eps} | ||
40 | \caption{#2} \label{#1} | ||
41 | \end{center} | ||
42 | \end{figure*} | ||
43 | } | ||
44 | |||
45 | \def\xd{{\sc Xdelta}} | ||
46 | \def\records{\textrm{\emph{records}}} | ||
47 | \def\nil{\textrm{\emph{nil}}} | ||
48 | \def\fingerprint{\textrm{\emph{fingerprint}}} | ||
49 | \def\size{\textrm{\emph{size}}} | ||
50 | \def\lmat{\textrm{\emph{match}}} | ||
51 | \def\lcs{\text{{\textrm{\emph{lcs}}}}} | ||
52 | \def\difference{\textrm{{\emph{difference}}}} | ||
53 | \def\intervals{\textrm{{\emph{intervals}}}} | ||
54 | \def\icpy#1#2#3{\texttt{copy} \; #1 \; #2 \; #3} | ||
55 | \def\iins#1{\texttt{insert} \; #1} | ||
56 | \def\inv#1{#1^{-1}} | ||
diff --git a/xdelta1/doc/old/dcc99/dcc99.tex b/xdelta1/doc/old/dcc99/dcc99.tex deleted file mode 100755 index 27ab7e1..0000000 --- a/xdelta1/doc/old/dcc99/dcc99.tex +++ /dev/null | |||
@@ -1,1297 +0,0 @@ | |||
1 | \documentclass{llncs} | ||
2 | |||
3 | \title{Versioned File Archiving, Compression, and Distribution} | ||
4 | \titlerunning{Versioned File Archiving and Compression} | ||
5 | |||
6 | \usepackage{dcc99} | ||
7 | \usepackage{enumerate} | ||
8 | |||
9 | \author{Josh MacDonald\inst{1}} | ||
10 | |||
11 | \authorrunning{Josh MacDonald} | ||
12 | |||
13 | \tocauthor{Josh MacDonald (University of California at Berkeley, | ||
14 | Department of Electrical Engineering and Computer Sciences.) } | ||
15 | |||
16 | \institute{University of California at Berkeley, Department of | ||
17 | Electrical Engineering and Computer Sciences, Berkeley CA 94720, USA | ||
18 | } | ||
19 | |||
20 | \date{29 Oct 1998} | ||
21 | |||
22 | \nonfrenchspacing | ||
23 | |||
24 | %\theoremstyle{marginbreak} | ||
25 | |||
26 | \newtheorem{thrm}{{\sc Theorem}} | ||
27 | \newtheorem{clm}{{\sc Claim}} | ||
28 | \newtheorem{lemm}{{\sc Lemma}} | ||
29 | \newtheorem{alg}{{\sc Algorithm}} | ||
30 | |||
31 | %\Alph{alg} | ||
32 | \renewcommand{\thealg}{\Alph{alg}} | ||
33 | |||
34 | \begin{document} | ||
35 | \bibliographystyle{acm} | ||
36 | |||
37 | \maketitle | ||
38 | \begin{abstract} | ||
39 | The \xd {} system implements a technique for archiving and compressing | ||
40 | collections of many similar file versions. It stores only the | ||
41 | differences between certain versions. I describe and discuss an | ||
42 | algorithm for computing \emph{file deltas}, present measurements, and | ||
43 | demonstrate its application to versioned file-archival and efficient | ||
44 | file-distribution network protocols. | ||
45 | \end{abstract} | ||
46 | |||
47 | % Put up your benchmark, whatever it is, on a ftp site somewhere, and | ||
48 | % INCLUDE A MD5 CHECKSUM, traceability, etc. | ||
49 | |||
50 | \section{Overview} | ||
51 | |||
52 | The \emph{file delta} problem is to compute a small set of | ||
53 | instructions for transforming one file into another---one that is | ||
54 | expected to be a function of the file's changes, not its content. | ||
55 | This technique is well established for versioned file-archival. | ||
56 | Though the advantages of using file deltas to transmit changes over a | ||
57 | network are clear, specifying and widely deploying such a system | ||
58 | efficient enough to justify itself is not as easy as it seems. There | ||
59 | are a number of issues to overcome. First, the execution cost of | ||
60 | computing and compressing deltas can be prohibitive--a site | ||
61 | administrator might rather let everyone on the network suffer through | ||
62 | a congested network condition than be CPU-bound while delivering | ||
63 | efficient deltas to an uncongested network. Second, efficiently a | ||
64 | integrating delta transmission into an application requires work; a | ||
65 | server must store and name multiple versions of a file, compute deltas | ||
66 | when requested, complicate existing protocols, and be fair---these are | ||
67 | not always compatible. | ||
68 | |||
69 | Recently there have been advances in delta algorithms, but their use | ||
70 | in network delta communication has been slow to follow. This work | ||
71 | addresses many of these issues, and finishes with a few new challenges | ||
72 | that I am currently working on. I have designed and implemented a | ||
73 | decentralized scheme for highly-available, versioned file-archival, | ||
74 | with which I have implemented a delta-based distribution and | ||
75 | replication protocol built upon a simple, distributed file-archive | ||
76 | abstraction. The system, called \xd, is implemented as the basis of | ||
77 | multiple server, distributed version control in PRCS, the Project | ||
78 | Revision Control System \cite{MacDonald:1998:SCM}. | ||
79 | |||
80 | This paper outlines the \xd {} system in three sections: delta | ||
81 | algorithms (\S\ref{sec:delta}), file-archival (\S\ref{sec:archival}), | ||
82 | and distribution protocols (\S\ref{sec:distribution}). Each section | ||
83 | will detail related work, discuss previous implementations, outline a | ||
84 | part of the system and measure it, and suggest future work. | ||
85 | |||
86 | \section{Delta Algorithms}\label{sec:delta} | ||
87 | |||
88 | The \emph{file delta problem} is to efficiently compute a delta $d$ | ||
89 | that can be stored compactly and used to construct a \emph{To} file | ||
90 | $t^d$ from the set of $k^d$ \emph{From} files $F^d = \left\{ f^d_0 | ||
91 | \ldots f^d_{k^d} \right\}$. The \emph{generate} operation computes | ||
92 | $d$ from $F^d$ and $t^d$: | ||
93 | |||
94 | \begin{equation} | ||
95 | d = t^d \ominus F^d | ||
96 | \end{equation} | ||
97 | |||
98 | \noindent while the \emph{apply} operation computes the reverse: | ||
99 | |||
100 | \begin{equation} | ||
101 | t^d = d \oplus F^d | ||
102 | \end{equation} | ||
103 | |||
104 | For our purposes, a file will be defined to be a sequence of bytes. | ||
105 | For a file $f$, $\size(f)$ denotes the length of $f$ in bytes and set | ||
106 | of files $F$, $\size(F) = \sum_{f \in F} \size(f)$. The notation, | ||
107 | $f[i]$, denotes the byte at offset $i$ of $f$, where $0 \le i < | ||
108 | size(f)$. | ||
109 | |||
110 | A good solution should be fast, perform well on large inputs, and | ||
111 | expect to benefit from preprocessing $F$ for repeated computations. | ||
112 | Performance considerations for real files and memory systems make it | ||
113 | desirable to operate in a single, sequential pass through $t$. | ||
114 | |||
115 | The \emph{copy/insert} class of delta algorithms are those that | ||
116 | produce a common delta encoding consisting of \emph{copy} and | ||
117 | \emph{insert} operations. This class of algorithms is useful because | ||
118 | there is a straightforward definition of an optimal solution, and the | ||
119 | implementation of \emph{apply} is extremely simple. For reasons to | ||
120 | come, this type of delta will be represented in two separate parts: | ||
121 | the \emph{control} $C^d$ and \emph{insert-data} $I^d$. The control | ||
122 | contains a sequence of instructions $c^d_1 \ldots c^d_{z^d}$. The | ||
123 | insert-data is represented as a file containing the concatenation of | ||
124 | the data inserted by each insert instruction. Each instruction $c_i$ | ||
125 | is one of the two operations: | ||
126 | |||
127 | \begin{align} | ||
128 | &\icpy{m}{o}{l} \\ | ||
129 | &\iins{l} | ||
130 | \end{align} | ||
131 | |||
132 | \noindent These are executed in order to construct the \emph{To} file, | ||
133 | where \texttt{copy} inserts the substring $f_m[o] \ldots f_m[o+l-1]$, | ||
134 | and \texttt{insert} inserts the next $l$ bytes from $I^d$. | ||
135 | |||
136 | The \emph{insert/delete} class of algorithms is characterized by | ||
137 | \emph{insert} and \emph{delete} instructions. Many existing tools for | ||
138 | computing file deltas use this type of encoding, as it produces a form | ||
139 | which is easy for humans to read. | ||
140 | |||
141 | Existing work on delta algorithms uses \emph{paired} | ||
142 | algorithms---those in which there is a single \emph{From} file. For | ||
143 | reasons which will become clear, the definition used here is more | ||
144 | general than other presentations in allowing $F$ to be a set of files | ||
145 | rather than a single file. Of course, $F$ can be reduced to a single | ||
146 | file by concatenation, but attempting to generalize paired algorithms | ||
147 | to multiple \emph{From} files violates many of the assumptions made to | ||
148 | improve these algorithms. | ||
149 | |||
150 | \subsection{Related Work} | ||
151 | |||
152 | Work on delta algorithms has been influenced by related work on the | ||
153 | longest common subsequence problem, data compression, and pattern | ||
154 | matching. | ||
155 | |||
156 | The first technique for computing file deltas used an insert/delete | ||
157 | algorithm based upon finding the longest common subsequence (LCS) of | ||
158 | two files. Among these, the UNIX \texttt{diff} utility was first used | ||
159 | to list changes between two files in a line-by-line summary | ||
160 | \cite{Miller:1985:FCP}. The \texttt{diff} utility is | ||
161 | \emph{line-oriented}---each insertion and deletion involves only | ||
162 | complete lines. It was adopted by the early version control tools | ||
163 | SCCS \cite{Rochkind:ieee:tose:1975} and RCS \cite{Tichy:1985:RSV}. | ||
164 | Line-oriented algorithms, however, perform poorly on files which are | ||
165 | not line terminated such as images, rich-text data, and object files. | ||
166 | |||
167 | Tichy developed a linear time and space, greedy copy/insert algorithm | ||
168 | \cite{Tichy84} using a suffix tree to search for matching substrings | ||
169 | of the files in question. This simple greedy approach will be | ||
170 | discussed next, and is easily shown to be optimal for copy/insert | ||
171 | deltas under certain assumptions. | ||
172 | |||
173 | Burns \cite{Burns:Thesis} presents a recent summary of previous work | ||
174 | and discusses several paired, copy/insert algorithms based upon a | ||
175 | greedy approach using hashed Rabin-Karp fingerprints for string | ||
176 | matching. He then refines it in several ways, because the simplest | ||
177 | greedy algorithm requires space linear in the length of the file. He | ||
178 | analyzes constant-space versions of this algorithm, making the | ||
179 | assumption that changes between the files are the result of only | ||
180 | insertions and deletions, for example. When $F$ is a set of files, | ||
181 | however, many of these improvements fail. | ||
182 | |||
183 | Hunt, Tichy, and Vo present an impressive paired delta algorithm | ||
184 | called \emph{vdelta} \cite{Vo:1996:SCM}, which mixes Lempel-Ziv | ||
185 | compression and differential compression to compute a compressed delta | ||
186 | by using $F$ as a dictionary to compress $t$. This particular | ||
187 | approach is difficult to compare with others, because most delta | ||
188 | algorithms compute uncompressed deltas. | ||
189 | |||
190 | A delta can be applied in-place if application can be performed using | ||
191 | the space containing the data to which the delta is applied. An | ||
192 | \emph{insert/delete} delta can always be applied in-place, but an | ||
193 | arbitrary \emph{copy/insert} delta cannot. Burns and Long have shown | ||
194 | techniques for computing \emph{copy/insert} deltas that can be applied | ||
195 | \emph{in-place} \cite{Burns:InPlace}. | ||
196 | |||
197 | \subsection{Difference Metrics} \label{sec:metrics} | ||
198 | |||
199 | Comparison of algorithms has been a difficult subject, as algorithms | ||
200 | are studied variously in terms of delta size, compressed delta size, | ||
201 | and optimality with a particular encoding. A solution that is optimal | ||
202 | in one encoding cannot be easily compared with another encoding, | ||
203 | without an absolute metric. Hunt, Tichy, and Vo suggest comparing | ||
204 | delta algorithms with a difference metric based upon the length of the | ||
205 | longest common subsequence \cite{Vo:1996:SCM}: | ||
206 | |||
207 | \begin{equation} | ||
208 | \difference = \frac{\size(f)+\size(t)}{2} - \size(\lcs(f,t)) | ||
209 | \end{equation} | ||
210 | |||
211 | \noindent where $f$ is the single from input. The $\difference$ value | ||
212 | is compared to the size of a delta produced by an algorithm, allowing | ||
213 | its performance to be judged relative to results of other algorithms. | ||
214 | This is troublesome for several reasons: there is no linear time and | ||
215 | space algorithm for computing the exact LCS; it does not apply to | ||
216 | multiple input files---since it does not allow permuted or repeated | ||
217 | copy regions; and it is not even the most appropriate dynamic | ||
218 | programming style of solution since it weighs an \emph{insert} the | ||
219 | same a \emph{delete} instruction. | ||
220 | |||
221 | The copy/insert encoding is not optimal either; but it allows for | ||
222 | permuted and repeated copied regions while the metric based on LCS | ||
223 | does not. Additionally: | ||
224 | |||
225 | \begin{itemize} | ||
226 | \item An exact solution is known that requires $O(\size(F))$ space \cite{Tichy84} | ||
227 | \item It characterizes non-paired delta algorithms | ||
228 | \item The particular, uncompressed encoding is useful in practice | ||
229 | \end{itemize} | ||
230 | |||
231 | For these reasons, it seems appropriate to use the size of the | ||
232 | unencoded, optimal \emph{copy/insert} solution as a metric for | ||
233 | comparing all delta algorithms. Also, using an encoding-independent | ||
234 | metric allows algorithm designers to study encoding separately from | ||
235 | search and pattern matching issues. | ||
236 | |||
237 | More precisely, the \emph{copy/insert metric} $m$ measures the upper | ||
238 | bound on the size of the optimal sequence of \emph{copy/insert} | ||
239 | instructions, described next. Assuming an 8-bit byte, this metric | ||
240 | estimates the total delta size in bits: | ||
241 | |||
242 | \begin{align} | ||
243 | m (C^d, I^d) &= \sum_{i = 1}^{z^d} m(c^d_i) \\ | ||
244 | m (\icpy{m}{o}{l}) &= 1 + \lceil\lg l\rceil + \lceil{\lg k^d}\rceil + \lceil{\lg o}\rceil \\ | ||
245 | m (\iins{l}) &= 1 + \lceil\lg l\rceil + 8 l | ||
246 | \end{align} | ||
247 | |||
248 | Earlier work on copy/insert algorithms has used a simpler metric, | ||
249 | treating all copies with unit cost. It then suffices to show that a | ||
250 | simple greedy algorithm is optimal \cite{Burns:Thesis}. The unit-cost | ||
251 | copy metric is not an accurate estimate of the file difference, so I | ||
252 | propose the above. The greedy solution is not optimal for the refined | ||
253 | metric. | ||
254 | |||
255 | \subsection{The Greedy Algorithm for Copy/Insert Deltas} \label{sec:greedy} | ||
256 | |||
257 | The greedy algorithm simply scans through the \emph{To} file, finding | ||
258 | the longest match at each position and generating a copy instruction. | ||
259 | All unmatched strings produce an insert instruction. | ||
260 | |||
261 | \begin{alg}\label{alg:generate} | ||
262 | Compute $(C^d, I^d) = t^d \ominus F^d$ where $d$ has a copy/insert | ||
263 | encoding | ||
264 | \end{alg} | ||
265 | |||
266 | Assume that match $(m, o, l) = \lmat (F,t,i)$, where the longest match | ||
267 | to $t$ starting at index $i$ in $F$ is $f_m[o] \ldots f_m[o+l-1]$. | ||
268 | Another parameter, $s$, is used as a lower bound on the length of a | ||
269 | copy instruction. For now, assume $s=0$. Given these, a program to | ||
270 | compute greedy copy/insert deltas is given in Figure | ||
271 | \ref{fig:generate}. | ||
272 | |||
273 | \begin{figure*} | ||
274 | \begin{program} | ||
275 | ge\= ne\= ra\= te\= De\= lta($t^d$, $F^d$) \\ | ||
276 | \> $i \leftarrow 0$; $z \leftarrow 0$; $I^d \leftarrow$ \textrm{\emph{empty}} \>\>\>\> \hspace{6cm} \= $\triangleright$ \hbox{Step 1: Initialize.} \\ | ||
277 | \> while ($i < \size(t)$) \>\>\>\>\> $\triangleright$ \hbox{Step 2: Loop.} \\ | ||
278 | \>\> $(m,o,l) \leftarrow \lmat (F^d,t^t,i)$ \\ | ||
279 | \>\> if ($l \le s$) \\ | ||
280 | \>\>\> if ($z > 0$ \textrm{\emph{and}} $c_z^d = \iins{j}$) \>\>\> $\triangleright$ \hbox{Step 3: Insert.} \\ | ||
281 | \>\>\>\> $c_z^d \leftarrow \iins{j+1}$ \\ | ||
282 | \>\>\> else \\ | ||
283 | \>\>\>\> $z \leftarrow z + 1$; $c_z^d \leftarrow \iins{1}$ \\ | ||
284 | \>\>\> $I^d \leftarrow I^d$ \textrm{\emph{append}} $t^d[i]$; $i \leftarrow i + 1$ \\ | ||
285 | \>\> else \\ | ||
286 | \>\>\> $z \leftarrow z + 1$; $c_z^d \leftarrow \icpy{m}{o}{l}$; $i \leftarrow i + 1$ \>\>\> $\triangleright$ \hbox{Step 4: Copy.} \\ | ||
287 | \> $z^d \leftarrow z$ \>\>\>\>\> $\triangleright$ \hbox{Step 5: Finish.} | ||
288 | \end{program} | ||
289 | \caption{Algorithm \ref{alg:generate}}\label{fig:generate} | ||
290 | \end{figure*} | ||
291 | |||
292 | Steps 1 and 5 execute once in $O(1)$ steps. In the worst case, the | ||
293 | loop beginning in step 2 is executed $\size(t)$ times. Each execution | ||
294 | of the loop requires $O(1)$ steps, plus the time taken by $\lmat$. | ||
295 | Altogether, he algorithm runs in $O(\size(t) \cdot M)$ steps, where | ||
296 | $M$ is the time complexity of the $\lmat$ operation. | ||
297 | |||
298 | Burns \cite{Burns:Thesis} shows that this algorithm is optimal when | ||
299 | copies are treated with unit cost. Burns and also Tichy | ||
300 | \cite{Tichy84} demonstrate various $\lmat$ functions that all require | ||
301 | linear time and space. An algorithm requiring only constant space is | ||
302 | required to operate on arbitrarily large files. | ||
303 | |||
304 | None of the available constant-space improvements, however, apply for | ||
305 | multiple input files, which will be used for file archiving. As a | ||
306 | result, \xd {} uses a linear-space approximation of the greedy | ||
307 | algorithm. | ||
308 | |||
309 | \subsection{The \xd {} Delta Algorithm} | ||
310 | |||
311 | \xd {} uses a fast, linear time and space approximation to the greedy | ||
312 | algorithm. The actual space required is chosen to be a fraction of | ||
313 | the input size less than approximately 0.5. A \emph{fingerprint} | ||
314 | function is a hashing function for fixed-length strings for which | ||
315 | collisions are unlikely. The algorithm uses a hashed index of the | ||
316 | value of a fingerprint function at regular offsets in the \emph{From} | ||
317 | data to perform string matching. It then scans the \emph{To} file | ||
318 | performing the greedy algorithm. The approximation arises from hash | ||
319 | and fingerprint collisions, and the approximate nature of the | ||
320 | string-matching function. | ||
321 | |||
322 | For some constant $s$ chosen to be a small power of 2, the algorithm | ||
323 | computes a fingerprint on segments of length $s$ in each file $f$ at | ||
324 | all offsets $i$ divisible by $s$ except, possibly, the last if $s$ | ||
325 | does not divide $\size(f)$---in this case the segment is too short. | ||
326 | The fingerprint function $a_{fi} = \fingerprint(f, i)$ is evaluated in | ||
327 | each file and inserted into a hash table, $B$, with hash function $H$. | ||
328 | The number of such records is denoted $\records(F) = \sum_{f \in F} | ||
329 | \lfloor \frac{\size(f)}{s} \rfloor$. The hash table does not chain | ||
330 | hash collisions. Only a single $(f,i)$ pair or $\nil$ is recorded for | ||
331 | each bucket. The hash table is implemented as an array of 32-bit | ||
332 | words of length $\records(F)$. The $\nil$ value is encoded as the | ||
333 | value 0, and $(f,i)$ is mapped into the remaining values. Since $i$ | ||
334 | is bounded by $\lfloor \frac{\size(f)}{s} \rfloor$, $(f,i)$ can be | ||
335 | easily fit into a 32-bit word provided that the number of files in $F$ | ||
336 | is less than $s$ and the length of $f$ is less than $2^{32}$. Another | ||
337 | array of words $c_{f}$ is used for each file to index $c_{f}[i] = | ||
338 | a_{fi}$ so that a fingerprint collision can be easily detected. The | ||
339 | sum of lengths for these arrays is also $\records(F)$, so in bytes the | ||
340 | algorithm requires: | ||
341 | |||
342 | \begin{equation} | ||
343 | O\left(\sum_{f \in F} 8 \lfloor \frac{\size(f)}{s} \rfloor\right) | ||
344 | \end{equation} | ||
345 | |||
346 | \noindent for the two arrays, where 8 is the sum of 4 bytes per 32-bit | ||
347 | word for each of the separate data structures. The choice of $s$ will | ||
348 | be discussed later, but should be chosen to be at least $2^4$, so the | ||
349 | space required to run the algorithm is bounded by: | ||
350 | |||
351 | \begin{equation} | ||
352 | O\left(\frac{8 \cdot \size(F)}{s}\right) \le O\left(\frac{\size(F)}{2}\right) = O(\size(F)) \label{action-bound} | ||
353 | \end{equation} | ||
354 | |||
355 | Algorithm \ref{alg:match} locates matching strings at each offset in | ||
356 | the \emph{To} file, supplying the match function used in algorithm | ||
357 | \ref{alg:generate}. | ||
358 | |||
359 | \begin{alg}\label{alg:match} | ||
360 | Compute $(m,o,l) = \lmat (F,t,i)$. | ||
361 | \end{alg} | ||
362 | |||
363 | \begin{figure*} | ||
364 | \begin{program} | ||
365 | ma\=tc\=h($t^d$, $F^d$) \\ | ||
366 | \> $x \leftarrow \fingerprint(t,i)$ \> \hspace{9cm} \= $\triangleright$ \hbox{Step 1: Fingerprint. } \\ | ||
367 | \> if ($B[H(x)] = \nil$) \>\> $\triangleright$ \hbox{Step 2: Lookup.} \\ | ||
368 | \>\> \textrm{\emph{return no match}} \\ | ||
369 | \> else \\ | ||
370 | \>\> $(m,o) \leftarrow B[H(x)]$ \\ | ||
371 | \> if ($c_{f_m}[o] \not = x$) \textrm{\emph{return no match}} \>\> $\triangleright$ \hbox{Step 3: Test for collision.} \\ | ||
372 | \> $l \leftarrow$ \textrm{\emph{length of longest matching substring at offsets $o$ and $i$}} \>\> $\triangleright$ \hbox{Step 4: Grow.} \\ | ||
373 | \> if ($l < s$) \textrm{\emph{return no} match} \\ | ||
374 | \> \textrm{\emph{return}} $(m,o,l)$ \\ | ||
375 | \end{program} | ||
376 | \caption{Algorithm \ref{alg:match}}\label{fig:match} | ||
377 | \end{figure*} | ||
378 | |||
379 | The fingerprint can be efficiently computed incrementally while | ||
380 | advancing through the \emph{To} file. The two characters entering and | ||
381 | leaving the fingerprint range are used to advance the result in $O(1)$ | ||
382 | steps. Locating string matches at each index takes, in the worst | ||
383 | case, $O(s) = O(1)$ steps for a failed match and $O(\size(t))$ for a | ||
384 | successful one, but the total number of steps expended during all | ||
385 | successful matches is bounded by $O(\size(t))$. Using the result of | ||
386 | \S\ref{sec:greedy}, this gives a total time complexity of | ||
387 | $O(\size(t))$ for scanning the \emph{To} input, plus $O(\size(F))$ for | ||
388 | constructing the index. | ||
389 | |||
390 | \xd {} uses the \texttt{adler32} fingerprint function originally used | ||
391 | in gzip \cite{Rsync}. | ||
392 | |||
393 | \subsection{Analysis} | ||
394 | |||
395 | A large value of $s$ reduces the work done and space used by the | ||
396 | algorithm, but will locate fewer matches. Too small a value of $s$ | ||
397 | can lead to copies so small that they they are less efficient than an | ||
398 | equivalent insert encoding. This last consideration gives a lower | ||
399 | bound on $s$: | ||
400 | |||
401 | \begin{align} | ||
402 | m (\iins{s}) &> m (\icpy{f}{o}{s}) \\ | ||
403 | 8 s &> \lceil{\lg k^d}\rceil + \lceil{\lg o}\rceil \label{eqn:s} | ||
404 | \end{align} | ||
405 | |||
406 | \noindent The right-hand-side of (\ref{eqn:s}) is bounded by $\lceil | ||
407 | \lg \size(F) \rceil$, yielding $s > \frac{1}{8}\lceil \lg \size(F) | ||
408 | \rceil$. | ||
409 | |||
410 | Assuming the inputs, hash values, and fingerprint values have uniform | ||
411 | distributions, the approximations made so far can be expected to | ||
412 | perform well, as I will show. The key insight is that if a long match | ||
413 | fails at one position due to a hashing collision, then it is likely to | ||
414 | succeed at the next matching offsets. That is, a failure to match | ||
415 | $t[i \ldots i+s-1]$ at $f_m[sk \ldots s(k+1)-1]$ because $(m,k)$ is | ||
416 | collides in the hash table is not a disaster because the next matching | ||
417 | pair $t[i+s \ldots i+2s-1]$ and $f_m[s(k+1) \ldots s(k+2)-1]$ may | ||
418 | succeed. The expected number of misses for a long match is | ||
419 | proportional to the expected number of hash collisions, and therefore, | ||
420 | the match is expected to fail asymptotically $O(1)$ times before the | ||
421 | match is discovered. This causes an expected degradation that is | ||
422 | linear only in the number of instructions. | ||
423 | |||
424 | The hash function and fingerprint function, composed, reduce segments | ||
425 | in $F$ to integers less than $\records(F)$, which is chosen as the | ||
426 | table size. When a conflict occurs during hashing, the algorithm must | ||
427 | choose a winner. Several policies could be chosen. For example, a | ||
428 | match appearing first in a file is potentially more valuable to the | ||
429 | matching procedure since it may locate a match that contains | ||
430 | colliding matches that occur later in the same file. Here, I will | ||
431 | analyze a uniform random trial to decide whether to replace the | ||
432 | incumbent record or not. By selecting the winner at random, the | ||
433 | distribution of the hashing functions discussed above is not altered. | ||
434 | Contrary to this analysis, however, simpler policies that never or | ||
435 | always replace the colliding record seem to work equally well. | ||
436 | |||
437 | Another array $trials[i]$ is required to contain the number of | ||
438 | collisions which have occured in the $i^{th}$ bucket. The incumbent | ||
439 | record or $\nil$ in bucket $j$ is replaced with probability | ||
440 | $P(\textrm{\emph{replace}}) = \frac{1}{trials[j]+1}$. The additional | ||
441 | array increases the space required by the algorithm in | ||
442 | (\ref{action-bound}) by at most a factor of $3/2$, since it brings the | ||
443 | number of arrays from 2 to 3. The probability $P_k(i)$ represents the | ||
444 | probability of the $k^{th}$ record surviving the $i^{th}$ trial. | ||
445 | Then, | ||
446 | |||
447 | \begin{equation} | ||
448 | P_k(n) = \frac{1}{k} \cdot \frac{k}{k+1} \cdots \frac{n-2}{n-1} \cdot \frac{n-1}{n} = \frac{1}{n} | ||
449 | \end{equation} | ||
450 | |||
451 | \noindent so the probability of survival is uniform. | ||
452 | |||
453 | The string matching function \emph{fails} when a record that would | ||
454 | have matched was discarded in a collision. The probability of failure | ||
455 | is determined by assuming the hash functions behave randomly and | ||
456 | computing the expected number of hash collisions. After hashing $M = | ||
457 | \records(F)$ records into $N$ buckets, the expected number of of empty | ||
458 | buckets is: | ||
459 | |||
460 | \begin{equation} | ||
461 | E(\emph{\# of empty buckets}) = N \left( 1 - \frac{1}{N} \right) | ||
462 | \end{equation} | ||
463 | |||
464 | \noindent By choosing $N=M$, the expected number of empty buckets, and | ||
465 | therefore collisions, is asymptotically $N \inv{e} \approx 0.63 N$. | ||
466 | The expected number of trials before a successful match is found is | ||
467 | the expected number of failures $E(failed) = \frac{e}{e-1}$. For | ||
468 | files relatively large compared to $s$, the matching algorithm is | ||
469 | expected to succeed after $\frac{e}{e-1}$ failures. | ||
470 | |||
471 | In addition to losing matches from hash collisions, matches are lost | ||
472 | from only searching at a fraction of the offsets in $F$. For matches | ||
473 | of length $l \ge s$, the match can be expected to be discovered at one | ||
474 | of the $\lfloor \frac{l}{s} \rfloor$ interior points recorded in $F$. | ||
475 | The first such point may be offset at most $s-1$ bytes from the true | ||
476 | beginning, and the $q^th$ such point is located at most $s q + s - 1$ | ||
477 | bytes from the true beginning. From the above, we expect $q = | ||
478 | \frac{e}{e-1}$, so the approximations produce matches which are | ||
479 | expected to shorter than their true length by $\frac{s e}{e-1} - s - | ||
480 | 1$ bytes due to hash collisions. Thus, the expected penalty is linear | ||
481 | in the number of copies, not the length of the inputs. | ||
482 | |||
483 | \subsection{Inversion of Copy/Insert Deltas} \label{sec:invert} | ||
484 | |||
485 | Given file $f$ and paired delta $d$ that computes $t$ from $f$, we | ||
486 | would like to compute a delta $\inv{d}$ that computes $f$ from $t$. | ||
487 | The solution will set up more general, direct delta manipulation in | ||
488 | the next section. One might possess $f$ and $d$, and want to inform a | ||
489 | peer possessing $t$ how to construct $f$ by sending $\inv{d}$. | ||
490 | |||
491 | \begin{alg}\label{alg:invert} | ||
492 | Compute $\inv{d}$ from $d$ and $f$. | ||
493 | \end{alg} | ||
494 | |||
495 | I use a balanced interval tree to construct the reverse mapping for | ||
496 | copy instructions in $d$. The tree supports insertion, deletion, and | ||
497 | location of elements in $O(\lg V)$ steps for $V$, the number of | ||
498 | intervals (see, for example, Cormen, Leiserson, and Rivest | ||
499 | \cite{clr}). The program in Figure \ref{fig:invert} computes the | ||
500 | interval table $R$. | ||
501 | |||
502 | \begin{figure*} | ||
503 | \begin{program} | ||
504 | in\= ve\= rt\= Copies ($f$, $d$) \\ | ||
505 | \> $i \leftarrow 0$ \>\> \hspace{6cm} \= $\triangleright$ \hbox{Current instruction in $d$.} \\ | ||
506 | \> $o_t \leftarrow 0$ \>\>\> $\triangleright$ \hbox{Current offset in $t$.} \\ | ||
507 | \> $R \leftarrow \textrm{\emph{empth}}$ \>\>\> $\triangleright$ \hbox{Empty interval tree.} \\ | ||
508 | \> while ($i < z^d$) \\ | ||
509 | \>\> if ($c_i^d = \icpy{f}{o}{l}$) \\ | ||
510 | \>\>\> $R([o_t \ldots o_t + l)) \leftarrow [o \ldots o + l)$ \\ | ||
511 | \>\>\> $o_t \leftarrow o_t + l$; $i \leftarrow i + 1$ \\ | ||
512 | \>\> else ($c_i^d = \iins{l}$) \\ | ||
513 | \>\>\> $o_t \leftarrow o_t + l$; $i \leftarrow i + 1$ \\ | ||
514 | \end{program} | ||
515 | \caption{Invert Copies in $d$ from $f$}\label{fig:invert} | ||
516 | \end{figure*} | ||
517 | |||
518 | Using \texttt{invertCopies} to construct $R$, $\inv{d}$ is constructed | ||
519 | with an in-order traversal of $R$. Each range $r$ records a mapping | ||
520 | from $[o_f \ldots o_f + l)$ in $f$ to $[o_t \ldots o_t + l)$ in $t$. | ||
521 | Each such range may be used to construct $\icpy{t}{o_t}{l}$. Insert | ||
522 | instructions are generated for all ranges not covered by $R$. | ||
523 | |||
524 | The performance of this algorithm depends on $z^d$, $z^{\inv{d}}$, and | ||
525 | the $\size(I^{\inv{d}})$. First, however, $z^d$ and $z^{\inv{d}}$ can | ||
526 | be related. | ||
527 | |||
528 | \begin{thrm} \label{thrm:zrel} | ||
529 | $z^{\inv{d}}$ is bounded according to: | ||
530 | \begin{equation} | ||
531 | z^{\inv{d}} \le 2 z^d + 1 | ||
532 | \end{equation} | ||
533 | \end{thrm} | ||
534 | |||
535 | {\sc Proof} Let $z^{\inv{d}}_i$ by the number of instructions in | ||
536 | $\inv{d}$ as a function of the number of instructions $i$ processed so | ||
537 | far in $d$. Observe that $z^{\inv{d}}_0 = 1$, corresponding to a | ||
538 | single insert instruction in $\inv{d}$. In the worst case, each | ||
539 | copied range may remove one existing instruction and create three; the | ||
540 | induction hypothesis is $z^{\inv{d}}_{i+1} = 2 + z^{\inv{d}}_{i}$. \qed | ||
541 | |||
542 | The algorithm given does not produce an optimal delta, however. Its | ||
543 | performance degrades when $t$'s copied segments overlap in $f$--the | ||
544 | previous analysis also suffers from repeated segments of length | ||
545 | greater than $s$. Neglecting this case, the size of the delta is | ||
546 | $\size(\inv{d}) \approx \size(f) - (\size(t) - \size(d))$. | ||
547 | |||
548 | The \texttt{invertCopies} procedure executes a loop $z^d$ times, each | ||
549 | requiring $O(\lg z^d)$ steps. The final construction, given $R$, | ||
550 | requires $O(z^{\inv{d}} + \size(I^{\inv{d}}))$ steps to compute the | ||
551 | instructions in $\inv{d}$. Together, and using the results of theorem | ||
552 | \ref{thrm:zrel}, the algorithm requires $O(z^d \lg z^d + | ||
553 | \size(I^{\inv{d}}))$. This time bound is acceptable, since $z^d$ is | ||
554 | expected to be small--it corresponds to the number of non-overlapping, | ||
555 | longest matching substrings between $t$ and $f$. | ||
556 | |||
557 | \subsection{Applying Copy/Insert Deltas} | ||
558 | |||
559 | A simple implementation of \emph{apply} for copy/insert deltas is | ||
560 | straightforward and requires $O(\size(t))$ steps to apply $d$. The | ||
561 | \emph{reconstruct} operation takes a number of deltas and applies them | ||
562 | all at once. Reconstruct accepts a tree of deltas in which each leaf | ||
563 | is represented by a literal file and each internal node is represented | ||
564 | by a delta, and constructs the file that the root node's delta | ||
565 | constructs. It can be easily extended to operate on DAGs. | ||
566 | Reconstruct can be considerably more efficient than simply applying | ||
567 | each delta in sequence. | ||
568 | |||
569 | The technique for reconstruction resembles the inversion algorithm | ||
570 | above. Suppose that $t_r$ is being reconstructed from the delta tree | ||
571 | rooted at $d_r$, where interior delta nodes are denoted $d_i$ and | ||
572 | leaf, literal nodes are denoted $l_i$. Algorithm | ||
573 | \ref{alg:reconstruct} computes an interval tree mapping ranges in | ||
574 | $t_r$ to the literal data it is ultimately constructed from: files | ||
575 | $l_i$ and insert data $I^{d_i}$. It computes in a bottom-up traversal | ||
576 | of the tree. A range $[l \ldots h)_{f,o_f}$ indicates the mapping | ||
577 | from $[l \ldots h)$ to $[o_f \ldots o_f + h - l)$ in $f$, where $f$ | ||
578 | can also be the insert-data of some delta $I^d_i$, which is treated as | ||
579 | just another literal file. Finally, the computed interval tree for | ||
580 | $d_r$ is used to write out the result in $O(\size(t_r))$ steps. | ||
581 | |||
582 | \begin{alg}\label{alg:reconstruct} | ||
583 | Reconstruct $t_r$ from $d_r$. | ||
584 | \end{alg} | ||
585 | |||
586 | The program for computing $t_r$ is given in Figure | ||
587 | \ref{fig:reconstruct}. The function \texttt{translate} translates the | ||
588 | interval $[o \ldots o + l)$ from interval tree $R_f$ to interval tree | ||
589 | $R_t$. Each call to \texttt{reconstructRange} requires, in addition | ||
590 | to the recursive calls, $O(z \lg z)$ steps and $O(z)$ space to insert | ||
591 | $z$ ranges into the resulting interval tree. For literal files, the | ||
592 | call executes in constant time. For each delta $d$, $z$ is bounded by | ||
593 | $z^d$ times the maximum of the number of ranges in each child's | ||
594 | interval map. | ||
595 | |||
596 | The maximum number of ranges for delta $d_1$ due to the path $d_1 | ||
597 | \rightarrow \ldots d_n \rightarrow l_i$ is $\prod_{i=1}^{n}{z^i}$, but | ||
598 | is bounded by $O(\size(t^{d_1}))$ since there are only so many | ||
599 | intervals. The worst case occurs when a copy instruction copies from | ||
600 | a range being constructed from the child delta which includes the | ||
601 | range of every copy instruction in the child, and is unlikely in | ||
602 | practice. | ||
603 | |||
604 | Let value $z^*$ be the maximum such product for $d_r$. The | ||
605 | intermediate storage required is the size of the largest interval | ||
606 | table, which is $O(z^*)$. The time to reconstruct $t_r$ from a tree | ||
607 | of $n$ deltas is $O(n z^* \lg z^* + \size(t_r))$. This time | ||
608 | complexity will be further examined for the archival scheme based upon | ||
609 | it which follows. | ||
610 | |||
611 | \begin{figure*} | ||
612 | \begin{program} | ||
613 | re\= construct($d_r$) \\ | ||
614 | \> $R$ = reconstructRange($d_r$) \\ | ||
615 | \> fo\= r (increasing ranges $r = [r_l \ldots r_h)_{l_r}$ in $R$) \\ | ||
616 | \>\> output the segment beginning at $r_l$ in $l_r$ \\ | ||
617 | re\= co\= ns\= tructRange($d_i$) \hspace{3cm} \= $\triangleright$ \hbox{for a delta} \\ | ||
618 | \> $R =$ \textrm{\emph{empty interval tree}} \\ | ||
619 | \> $o_i = 0$ \>\>\> $\triangleright$ \hbox{offset in $I^{d_i}$} \\ | ||
620 | \> $o_t = 0$ \>\>\> $\triangleright$ \hbox{offset in $t^{d_i}$} \\ | ||
621 | \> for ($f \in F^{d_i}$) \\ | ||
622 | \>\> $\intervals[f] =$ reconstructRange($f$) \\ | ||
623 | \> for (each instruction $c_i$) \\ | ||
624 | \>\> if ($c_i = \icpy{f}{o}{l}$) \\ | ||
625 | \>\>\> translate ($R, intervals[f], o, l$) \\ | ||
626 | \>\>\> $o_t = o_t + l$ \\ | ||
627 | \>\> else if ($c_i = \iins{l}$) \\ | ||
628 | \>\>\> insert ($R$, $[o_t \ldots o_t + l)_{I^{d_i},o_i}$) \\ | ||
629 | \>\>\> $o_i = o_i + l$ \\ | ||
630 | \>\>\> $o_t = o_t + l$ \\ | ||
631 | \> for ($f \in F^{d_i}$) \\ | ||
632 | \>\> free $\intervals[f]$ \>\> $\triangleright$ \hbox{no longer required} \\ | ||
633 | re\= co\> ns\> tructRange($l_i$) \> $\triangleright$ \hbox{for a literal file} \\ | ||
634 | \> $R$ = \textrm{\emph{empty interval tree}} \\ | ||
635 | \> insert ($R, [0 \ldots \size(l_i))_{l_i,0}$) \\ | ||
636 | \> return $R$ \\ | ||
637 | \end{program} | ||
638 | \caption{Reconstruct}\label{fig:reconstruct} | ||
639 | \end{figure*} | ||
640 | |||
641 | Observe that this procedure allows a version to be partially | ||
642 | extracted. The time complexity to extract a partial version of length | ||
643 | $p$ is still governed by $\size(t)$ from the $z^* \lg z^*$ term, but | ||
644 | only in the worst cast. Otherwise, the additional $\size(t)$ term is | ||
645 | reduced to $\size(p)$, which is potentially significant. | ||
646 | |||
647 | \subsection{Experimental Results} | ||
648 | |||
649 | Several programs for computing file deltas are compared to evaluate | ||
650 | their performance relative to the copy/insert metric $m$ defined in | ||
651 | \S\ref{sec:metrics}. A total of 25584 file pairs that changed | ||
652 | in the Linux kernel releases between versions 2.1.0 and 2.1.28 were | ||
653 | used; both forward and reverse deltas were computed and the ratio of a | ||
654 | program's delta size to the metric is plotted against the \emph{To} | ||
655 | file size in Figure \ref{sizes}. The results are averaged on the | ||
656 | graph, with error bars indicating the standard deviation. | ||
657 | |||
658 | For the purposes of this abstract, only the results \xd {} and | ||
659 | \emph{vdelta} are shown. | ||
660 | |||
661 | \medfigure{sizes}{Relative delta sizes.} | ||
662 | |||
663 | For small files, \emph{vdelta} outperforms \xd, but as the file size | ||
664 | increases its performance degrades. In fact, \xd's relative | ||
665 | performance continues to improve as input size grows, but the | ||
666 | copy/insert metric was too expensive to compute for larger files so | ||
667 | these results could not be included in the same plot. The performance | ||
668 | of \xd {} and \emph{vdelta} are, therefore, directly compared in Figure | ||
669 | \ref{bigsizes} for files from 25 to 30 megabytes in size. These | ||
670 | files were the tarred contents of each of the Linux kernel releases | ||
671 | used above. This test is especially relevant for determining how | ||
672 | practical it is to release software package changes as a delta against | ||
673 | the previous release, not on a file-by-file basis, but from the old | ||
674 | package to the new package. | ||
675 | |||
676 | \medfigure{bigsizes}{Delta sizes for large files.} | ||
677 | |||
678 | The linear-space approach has paid off on large input files. | ||
679 | \emph{Vdelta}'s delta size is close to the compressed size of the | ||
680 | \emph{To} file for many of the files in Figure \ref{bigsizes}, little | ||
681 | space has been saved over simply compressing the \emph{To} file. This | ||
682 | is likely to be a result of the constant-space assumptions failing, | ||
683 | and because the contents of the files may have been reordered. | ||
684 | |||
685 | \emph{Unfinished}. | ||
686 | |||
687 | \subsection{Future Work} | ||
688 | |||
689 | Improvements in the space required by multi-input delta functions are | ||
690 | necessary future work. | ||
691 | |||
692 | The reconstruct algorithm given has a similarity to the nearly linear | ||
693 | time scheme presented for an editor with built-in version control by | ||
694 | Fraser and Myers \cite{Myers:Editor}, though it does not directly | ||
695 | apply. | ||
696 | |||
697 | The results achieved by the \emph{vdelta} algorithm are very | ||
698 | promising, but do not directly extend to all of the techniques | ||
699 | presented here. Along these lines, the techniques presented below | ||
700 | suggest that considering the delta problem in isolation is not the | ||
701 | best way to proceed. There are strong connections to data compression | ||
702 | and text retrieval, here; these can be taken advantage of when | ||
703 | applying delta algorithms to particular application domains. | ||
704 | |||
705 | \section{Versioned-File Archives}\label{sec:archival} | ||
706 | |||
707 | A versioned file archive supports the \emph{get}, \emph{put}, and | ||
708 | \emph{delete} operations. \emph{Put} inserts a file into the archive, | ||
709 | returning a name by which to retrieve it, and \emph{get} retrieves the | ||
710 | file. \emph{Delete} indicates that a file will never be required | ||
711 | again and that it's storage may be reclaimed. | ||
712 | |||
713 | The archive stores multiple versions of a \emph{family} of files that | ||
714 | are expected to be similar. Typically, an ancestry tree is imposed | ||
715 | upon the archive; every version except the root has a parent. Changes | ||
716 | between parent and child are stored as a delta. Requiring an | ||
717 | application to know the ancestry proves difficult and inefficient, as | ||
718 | this information is not always available and the storage model can | ||
719 | lead to unpredictable performance. This mechanism has succeeded | ||
720 | because the version control utilities which use it trusts users make | ||
721 | the right decision by understanding the model, version naming | ||
722 | conventions, and performance implications. Implementing efficient | ||
723 | storage management on top of RCS, for example, proves difficult for | ||
724 | these reasons \cite{MacDonald:1998:SCM}. | ||
725 | |||
726 | The goal is to reduce the space required to store many versions in a | ||
727 | family by taking advantage of their similarity and possibly their | ||
728 | ancestry, while maintaining high performance and reliability for the | ||
729 | \emph{get}, \emph{put}, and \emph{delete} operations. | ||
730 | |||
731 | \subsection{Related Work} | ||
732 | |||
733 | Compact, versioned-file archiving can be achieved by storing literal | ||
734 | files along with delta chains or trees, but other solutions are | ||
735 | possible. Techniques for storing multiple versions have been studied | ||
736 | and applied in several application areas: database management systems, | ||
737 | programming language environments, version-control, and file-backup. | ||
738 | |||
739 | Both SCCS and RCS store an ancestry tree of versions where each vertex | ||
740 | represents a version and each edge represents a delta. One version is | ||
741 | stored as a literal file $L$ and the rest are reconstructed by the | ||
742 | application of deltas to the literal file. An archive using this | ||
743 | organization often has unpredictable performance because the | ||
744 | efficiency of an operation often depends on its distance from $L$. | ||
745 | |||
746 | SCCS doesn't actually store a literal file with separate deltas, but | ||
747 | merges them together. Any version can be extracted in a single pass | ||
748 | through the archive, collecting only those lines that are present in | ||
749 | the version being extracted. This requires time linear in the size of | ||
750 | the archive, including all deltas, not the file being extracted. | ||
751 | |||
752 | RCS improves upon this model by storing the literal file and deltas | ||
753 | separately. The literal file is chosen to be a particular leaf node, | ||
754 | causing retrieval and insertion on other branches to be much more | ||
755 | expensive than on the distinguished \emph{trunk}, which contains the | ||
756 | literal file. Accessing any other branch requires the application of | ||
757 | a series of deltas---the reconstruct problem. RCS builds a data | ||
758 | structure representing a series of lines and applies each delta in | ||
759 | succession. Let $L$ be the sum of line counts for the deltas being | ||
760 | applied. Reconstruct requires at least $O(L \lg L)$ steps using a | ||
761 | balanced tree, though RCS in fact uses an $O(L^2)$ algorithm for | ||
762 | simplicity\cite{Yu:1994:LTS}. | ||
763 | |||
764 | Rosenkrantz and Yu demonstrate a reconstruct algorithm requiring | ||
765 | $O(L)$ steps by computing a special form of the insert/delete delta | ||
766 | \cite{Yu:1994:LTS}. | ||
767 | |||
768 | Severance and Lohman show how to use file deltas for the storage of | ||
769 | versions of large objects in databases and, more generally, for | ||
770 | implementing transactions \cite{Severance:1976:TODS}. Alderson | ||
771 | presents a space-efficient technique based on B-trees and file deltas | ||
772 | that allows partial records to be retrieved without fully constructing | ||
773 | the entire record, and for which the get operation has a predictable | ||
774 | time-complexity for all versions \cite{Alderson:1988:JSE}. Fraser and | ||
775 | Myers demonstrate an editor with built-in version-control capabilities | ||
776 | that uses AVL dags. It too has a nearly linear-time reconstruct | ||
777 | operation \cite{Myers:Editor}. These other storage schemes apply | ||
778 | equally well to the file-archiving problem as presented, but | ||
779 | constructing an archive out of deltas allows for the efficient | ||
780 | transfer of archive components. | ||
781 | |||
782 | Burns and Long describe a technique for distributed backup based on | ||
783 | delta compression \cite{Burns:Backup}. Instead of a version tree, | ||
784 | however, they use a technique called \emph{version jumping} which | ||
785 | involves storing a number of \emph{clusters} consisting of one | ||
786 | literal file and unit-length delta chains. This allows them to | ||
787 | guarantee a file can be reconstructed with only two file accesses, | ||
788 | which is important when slow storage is used. Analysis is performed | ||
789 | to decide when a new literal file should be created, rather than a | ||
790 | delta. | ||
791 | |||
792 | %\subsection{Problems With RCS} | ||
793 | |||
794 | %PRCS uses RCS to implement efficient storage for a higher-level | ||
795 | %version control system. During its development, many problems with | ||
796 | %RCS were encountered. | ||
797 | |||
798 | %The \emph{version tree} storage model is flawed for two reasons: | ||
799 | |||
800 | %\begin{itemize} | ||
801 | %\item It discriminates against versions which are not $L$'s direct | ||
802 | %ancestors. The cost of inserting or extracting a file depends upon | ||
803 | %its ancestry, not its age. This can often be integrated into the | ||
804 | %application so that the user is aware of the penalties, as with RCS, | ||
805 | %but just as often not. | ||
806 | %\item Higher level version control utilities which do not wish to | ||
807 | %present this implementation detail and performance penalty to the user | ||
808 | %must arbitrarily choose new versions, as it cannot guess what the user | ||
809 | %will do in the future from the previous insertion or retrieval | ||
810 | %operations. | ||
811 | %\end{itemize} | ||
812 | |||
813 | %\noindent The semantics of a version tree do not make for a good | ||
814 | %implementation of the required interface since the performance is | ||
815 | %unpredictable. In addition to problems with the version tree storage | ||
816 | %model: | ||
817 | |||
818 | %\begin{itemize} | ||
819 | %\item The delta mechanism is line-oriented and therefore unacceptable | ||
820 | %\item Until the recently there was no complete library implementation | ||
821 | %of RCS. Even so, the interface is cluttered by features implementing | ||
822 | %a particular version control policy | ||
823 | %\item Archive compression is expensive to achieve, since RCS does not | ||
824 | %directly support compression. An archive could be compressed in such | ||
825 | %a way that only the necessary portions needed uncompression | ||
826 | %\item There is no guarantee that deleted space is reclaimed. A | ||
827 | %version may remain necessary because it is on a path linking other, | ||
828 | %live versions. Though it may be desirable to automatically discard | ||
829 | %versions as they reach a certain age, this restriction makes it | ||
830 | %difficult. | ||
831 | %\end{itemize} | ||
832 | |||
833 | %\noindent These considerations and more to come called for a new | ||
834 | %archival technique. | ||
835 | |||
836 | \subsection{File Archiving With \xd} | ||
837 | |||
838 | The \xd {} archive organization was originally designed as a | ||
839 | replacement for RCS to be used in a distributed version control | ||
840 | system. It stores a DAG of both literal files and deltas. Using an | ||
841 | extension to the techniques discussed in \S\ref{sec:delta}, it | ||
842 | also allows new versions to be efficiently transferred between | ||
843 | archives as deltas. The internal organization is described here, and | ||
844 | network communication is described in the next section. | ||
845 | |||
846 | \xd {} does not depend on a file's ancestry for organizational | ||
847 | purposes. The archive consists only of a series of versions in | ||
848 | increasing order of age. As branches of the family tree diverge, even | ||
849 | though deltas between a version and its parent may be small, deltas | ||
850 | between two leaves of the family tree may be quite large. Therefore, | ||
851 | storing deltas in a simple series threatens to be quite inefficient | ||
852 | since these \emph{branch-crossing} deltas between leaves may require | ||
853 | much more storage than the equivalent encoding using only deltas | ||
854 | between parent and child. However, performance is critical, so | ||
855 | storing versions as a simple series is appealing because it makes the | ||
856 | time to retrieve a version to grow with its age, not as a function of | ||
857 | its ancestry. | ||
858 | |||
859 | This suggests the organization of the \xd {} archive--simply a series | ||
860 | \emph{clusters} as in the \emph{version-jumping} technique. The | ||
861 | organization allows the time to retrieve any version to be bounded, | ||
862 | while still addressing the diverging branch issue, using a combination | ||
863 | of version-jumping and DAGs of deltas. When the time to retrieve the | ||
864 | eldest version in a cluster reaches some threshold, its growth is | ||
865 | halted. As with version-jumping, new literal files are occasionally | ||
866 | introduced into storage to maintain several invariants. | ||
867 | |||
868 | \bigfigure{dependency}{Sample \xd {} Cluster} | ||
869 | |||
870 | When inserting a version, either a \emph{forward} delta is inserted to | ||
871 | produce the new version from the most recent literal file in the | ||
872 | archive, or the new version becomes the literal file and a | ||
873 | \emph{reverse} delta replaces the previous literal file. The decision | ||
874 | to choose one over the other will be addressed later. In either case, | ||
875 | the contents of the insert-data of recent deltas are used as | ||
876 | additional sources for \emph{copy} instructions for the new delta, as | ||
877 | illustrated in Figure \ref{dependency}. | ||
878 | |||
879 | \bigfigure{onestep}{Sample Deltas} | ||
880 | |||
881 | Figure \ref{onestep} illustrates the process on eight string versions | ||
882 | $F1 \ldots F8$. The one literal file is $F7$. For demonstration, the | ||
883 | example uses a simpler delta algorithm that only copies similar | ||
884 | characters when they occur at the same offset in both files. In a | ||
885 | realistic example, each character would also be represented by a | ||
886 | longer, matching segment. The first column represents the full text | ||
887 | of each string; these strings were derived according to the ancestry | ||
888 | tree in Figure \ref{strings}--each parent-child relation contains at | ||
889 | least six matching characters. | ||
890 | |||
891 | \bigfigure{strings}{String Relations in Figure \ref{onestep}} | ||
892 | |||
893 | When the first version is inserted into the archive, it becomes the | ||
894 | literal file. Subsequent versions produce reverse deltas for some | ||
895 | period of time until the time to extract the first file becomes | ||
896 | excessive, at which point the literal file is \emph{frozen}. Forward | ||
897 | deltas may then be inserted until the storage efficiency degrades, as | ||
898 | measured by relative delta size, for example. | ||
899 | |||
900 | The time required to insert a version is always just the time to | ||
901 | compute a single delta. Deletion requires $O(1)$ time. Retrieval is | ||
902 | implemented with reconstruct, whose time complexity is $O(n z^* \lg | ||
903 | z^* + \size(t))$ to compute version $t$ from $n$ deltas, where $z^*$ | ||
904 | is bounded by the maximum product of the instruction counts on all | ||
905 | paths from root to leaf and also by $\size(t)$. Even assuming a small | ||
906 | number of changes in each version, the time to retrieve a version is | ||
907 | still $O(n \size(t))$, which is an unacceptable rate of growth, left | ||
908 | unchecked. The maximum depth of a reverse delta DAG effects the time | ||
909 | required to retrieve the oldest version in a cluster, and therefore | ||
910 | determines when the literal file should be frozen. | ||
911 | |||
912 | Burns and Long show that version jumping does not result in a great | ||
913 | loss of storage efficiency \cite{Burns:Backup}, and derive a | ||
914 | worst-case analytic point at which storing a new literal file should | ||
915 | be introduced as a function of the \emph{compressibility}, or | ||
916 | fractional size, of the delta. A simple heuristic for deciding to | ||
917 | introduce a new literal file is used: introduce a new literal file | ||
918 | when inserting a delta will increase the compression ratio of the | ||
919 | cluster measured as the total size of all versions divided by the | ||
920 | total size of all deltas and the literal file. The cycle of reverse | ||
921 | deltas, followed by a literal file, followed by forward deltas, | ||
922 | followed by a version jump repeats indefinitely. | ||
923 | |||
924 | %The storage efficiency in \xd {} is improved over the version jumping | ||
925 | %scheme, and slightly different, since previous deltas' insert-data | ||
926 | %were not used in Burn's calculations--these only improve forward delta | ||
927 | %storage efficiency. | ||
928 | |||
929 | In Figure \ref{onestep}, the columns illustrate the relation between | ||
930 | each file and the delta that constitutes it. In the control and | ||
931 | insert-data columns, a shaded region indicates that the text is either | ||
932 | copied or inserted at that position in the file. In the control | ||
933 | column, two shadings are used to distinguish copies from the | ||
934 | subsequent literal file and copies from previous deltas. For | ||
935 | instance, the characters \texttt{EN} in \texttt{ESSELENIAN} are copied | ||
936 | from the insert-data segment of the delta representing | ||
937 | \texttt{DISELENIDE}. The \texttt{DIS} in \texttt{DISELENIDE} is | ||
938 | copied from the literal file \texttt{DISULPHONE} which follows it. | ||
939 | This illustrates how using previous deltas handles diverging files. | ||
940 | The intervening insertion of \texttt{DISULPHINE}, on a different | ||
941 | branch, does not disturb the encoding efficiency. The number of | ||
942 | previous deltas used must be somehow chosen and limited in number. A | ||
943 | window size $w$ is chosen according to available space. Increasing | ||
944 | $w$ promises more available matches, but at the same time unrelated | ||
945 | data threatens to evict matching data from the hash table. The | ||
946 | previous deltas chosen are the most recent, but other strategies for | ||
947 | locating possibly related files can be used. The ancestry of a | ||
948 | version can be used, in addition, to select the most recent delta | ||
949 | computed \emph{to} an ancestor of the one being inserted, it is likely | ||
950 | related. | ||
951 | |||
952 | In addition to these properties, | ||
953 | |||
954 | \begin{itemize} | ||
955 | \item \xd {} uses an efficient, non-line-oriented delta mechanism | ||
956 | \item The archive can trade time for space by precomputing and | ||
957 | adjusting the delta DAG depth | ||
958 | \item The number of deltas that must be applied to retrieve a version | ||
959 | is proportional to the number of put operations since that version was | ||
960 | created; RCS does not have this property, for example | ||
961 | \item Knowledge of a versions ancestry is not required for | ||
962 | organizational purposes | ||
963 | \item Partial compression is possible--older versions may be | ||
964 | compressed without affecting the retrieval time of newer versions, and | ||
965 | when combined with precomputed indices, they may be lazily | ||
966 | uncompressed | ||
967 | \item Obsolete deltas may be simply deleted as soon as no other live | ||
968 | deltas reference their insert-data. | ||
969 | \end{itemize} | ||
970 | |||
971 | %\item Higher level tools are free from organizational concerns when a version's ancestry is unavailable | ||
972 | %\item The implementation was designed for use as a library, and includes no policy | ||
973 | |||
974 | \subsection{Experimental Results} | ||
975 | |||
976 | \emph{Unfinished}. | ||
977 | |||
978 | %%Ideally: Compare storage, put, and get measurements for my scheme | ||
979 | %%vs. version jumping vs. forward/reverse chaining vs. store each. on | ||
980 | %%branch, off branch, other positions. compressed or uncompressed. On | ||
981 | %%two random, evolving files, then on the FreeBSD source dir. | ||
982 | |||
983 | %%Begin with an RCS file. | ||
984 | %%Run once compressed, once uncompressed. | ||
985 | %%Have an API for each checkin. One client per policy. | ||
986 | %%The API computes the scores. | ||
987 | |||
988 | %An experiment was done comparing the RCS and {\sc Xdelta} archives for | ||
989 | %each of the RCS files extracted from FreeBSD's CVS repository in the | ||
990 | %\texttt{src/sys/vm} subdirectory, taken on May 3, 1998. The | ||
991 | %collection totaled 35 files and 1608 versions, of which only 134 | ||
992 | %versions were off the RCS trunk. The average number of versions per | ||
993 | %file is 45.9, with a standard deviation of 39.6. The resulting | ||
994 | %uncompressed archive sizes are as follows: | ||
995 | |||
996 | %\begin{center} | ||
997 | %\begin{tabular}{|l|l|} \hline | ||
998 | %Archive size & (bytes) \\ \hline | ||
999 | %RCS & 1617850 \\ \hline | ||
1000 | %{\sc Xdelta} $(w=10)$ & 1686808 \\ \hline | ||
1001 | %\end{tabular} | ||
1002 | %\end{center} | ||
1003 | |||
1004 | %Due to space limitations in the abstract, more complete results are | ||
1005 | %omitted. The results show that the new scheme is not much worse than | ||
1006 | %RCS in terms of storage space, yet the \xd {} archive can exploit | ||
1007 | %compression, where RCS cannot. | ||
1008 | |||
1009 | %The results show that for an uncompressed archive, the performance of | ||
1010 | %{\sc Xdelta} is not much worse than RCS. However, {\sc Xdelta} is | ||
1011 | %capable of efficiently operating on compressed archives and RCS is | ||
1012 | %not, so the advantages seem to outweigh the disadvantages. The | ||
1013 | %difference in compressed archive sizes is so great because the | ||
1014 | %compression of many small files is not likely to be as good as the | ||
1015 | %single compression of one large file. | ||
1016 | |||
1017 | \subsection{Future Work} | ||
1018 | |||
1019 | Delta compression techniques have proven successful, but archival | ||
1020 | techniques have received little exploration. As computers become more | ||
1021 | and more dependent upon network communication and distributed data, | ||
1022 | distributed file-archival techniques will increase in importance. | ||
1023 | |||
1024 | A popular method for viewing the history of a version-controlled | ||
1025 | document involves attributing each line with the name of the author | ||
1026 | and how recently it was changed or introduced. Directly constructing | ||
1027 | such an annotation from copy/insert deltas is not as | ||
1028 | straight-forward, and more difficult to present since it is not | ||
1029 | line-oriented. Another type of annotation allows a file to be viewed | ||
1030 | in a particular context, allowing not only how each line was authored, | ||
1031 | but the author of the next modification or deletion. More advanced | ||
1032 | tools for viewing (or querying) relations between files in a | ||
1033 | file-archive are needed. | ||
1034 | |||
1035 | The windowing technique technique presented for determining a set of | ||
1036 | input files could be replaced with a coarse text retrieval algorithm | ||
1037 | to determine the set of files likely to contain substrings of the | ||
1038 | output file. | ||
1039 | |||
1040 | \section{Distribution Protocols}\label{sec:distribution} | ||
1041 | |||
1042 | There is a broad class of applications that operate on large | ||
1043 | quantities of data, often highly similar or version controlled, and | ||
1044 | need to move that data across slow networks frequently. Delta | ||
1045 | compression can be used both for versioned file archival, for reducing | ||
1046 | network transmission, as a network data cache. The effort required to | ||
1047 | implement these operations efficiently, however, is considerable, and | ||
1048 | has hindered advances so far. In this section, I propose a simple, | ||
1049 | yet powerful, abstraction for the purposes of constructing application | ||
1050 | protocols, according to the following considerations: | ||
1051 | |||
1052 | \begin{itemize} | ||
1053 | \item Data should be named by content. The MD5 checksum | ||
1054 | \cite{RFC1321}, for example, can be used to name a file; doing so | ||
1055 | removes the need for any global consistency. | ||
1056 | \item Versions are read-only and should be highly available; therefore | ||
1057 | replication is required | ||
1058 | \item Disk space is more available than network bandwidth | ||
1059 | \item A moderate amount of computation for each client connection is | ||
1060 | permitted, but should be minimized | ||
1061 | \item Compressing data on a per-connection, per-transfer basis heavily | ||
1062 | loads a server, and is undesirable, as evidenced by the maintainers of | ||
1063 | popular CVS servers \cite{mozillaCvs} | ||
1064 | \item Each server should be autonomous, so there are no global | ||
1065 | consistency issues; deltas must be receivable out of order | ||
1066 | \item Servers must be allowed to store disjoint sets of files | ||
1067 | \item Servers should transfer files using a minimum of network | ||
1068 | bandwidth | ||
1069 | \item Pairwise peer synchronization should be used to exchange archive | ||
1070 | contents; at the application level, synchronization can be pushed or | ||
1071 | pulled, since the protocol is symmetric | ||
1072 | \item A server should be easily usable as a proxy-cache. | ||
1073 | \end{itemize} | ||
1074 | |||
1075 | \noindent A scheme that allows the direct exchange of pre-compressed | ||
1076 | deltas is desirable. Each archive maintains a set of versions for | ||
1077 | each family in a hierarchically named set of file families. The | ||
1078 | application is responsible for deciding which files should be stored | ||
1079 | at each server. The underlying storage mechanism only provides | ||
1080 | efficient delta-storage and push/pull delta-transfer. Aside from | ||
1081 | efficiency issues, this type of service resembles the operation of | ||
1082 | NNTP servers for news transport as described in RFC 1036 | ||
1083 | \cite{RFC1036}. This is a nice abstraction for building application | ||
1084 | servers; an application may co-reside with a distribution server, | ||
1085 | leaving the details of efficient transfer to the abstraction and only | ||
1086 | implementing application specific control and policy. Since the | ||
1087 | service can be easily proxied, it reside on a client machine or a slow | ||
1088 | network boundary. This allows all the details of efficient transport | ||
1089 | to be left to a decentralized, and thus locally administered, service, | ||
1090 | so client to server protocols need not be effected. | ||
1091 | |||
1092 | All of this requires a small modification to the copy/insert delta | ||
1093 | format, described next. | ||
1094 | |||
1095 | \subsection{Normalized Copy/Insert Deltas} | ||
1096 | |||
1097 | According to the above list of considerations, each server may store a | ||
1098 | different set of files, and have received them in a different order | ||
1099 | from everyone else. Deltas depending on the insert-data of other | ||
1100 | deltas, however, cannot be easily exchanged because a server's peer is | ||
1101 | not guaranteed to have the same set of deltas, or to have received its | ||
1102 | versions in the same order. A \emph{normalized} copy/insert delta | ||
1103 | includes additional information to avoid this problem. The header for | ||
1104 | delta $d$ names each dependent file $f^d_i \in F^d$ by its MD5 | ||
1105 | checksum. Additionally, when $f^d_i$ is the insert-data of delta | ||
1106 | $d_i$, it also includes the MD5 checksum of the file constructed by | ||
1107 | $d_i$, $t^{d_i}$. An alternate sequence of copy instructions is | ||
1108 | included for each copy instruction in $d_i$, allowing the copy to be | ||
1109 | performed either from the insert-data of the delta or the literal | ||
1110 | file, whichever is available. This allows, in many cases, a server to | ||
1111 | send its peer a version by simply sending its existing delta, perhaps | ||
1112 | pre-compressed. | ||
1113 | |||
1114 | These modifications increases the cost of a copy instruction by a | ||
1115 | small constant factor, except in pathological cases where one version | ||
1116 | contains literal copies of another delta in the archive. A single | ||
1117 | copy instruction may be followed by one or more normalized copy | ||
1118 | instructions because copies from the insert-data of a delta may be | ||
1119 | fragmented in the file it constructs. | ||
1120 | |||
1121 | \subsection{Related Work} | ||
1122 | |||
1123 | Douglis and others have studied the addition of delta compression to | ||
1124 | \texttt{http} \cite{SIGCOMM97*181}. Their results are encouraging, | ||
1125 | showing substantial decreases in both end-to-end latency and network | ||
1126 | transmission for several delta transfer strategies. There is an | ||
1127 | official W3 Consortium proposal for the distribution and replication | ||
1128 | of \texttt{http} \cite{w3}. It includes the specification of a | ||
1129 | standard copy/insert delta format for exchange \cite{gdiff}. The | ||
1130 | protocol includes extension for replicating content versions using | ||
1131 | delta transfers. Content is also named by a configurable message | ||
1132 | digest, such as MD5. This work has not dealt directly with | ||
1133 | implementation issues, but has specified an exchange protocol. | ||
1134 | |||
1135 | The \emph{rsync} algorithm, due to Tridgell and Mackerras, is for | ||
1136 | remotely synchronizing the contents of a pair of files \cite{Rsync}. | ||
1137 | It does this using a computation similar to algorithm | ||
1138 | \ref{alg:generate}, but transfers a table of checksums for one file to | ||
1139 | the peer who performs string matching in the other file using MD5 | ||
1140 | checksums rather than direct string comparison. The peer then replies | ||
1141 | with a request for the list of blocks that it is missing. This is | ||
1142 | quite effective for synchronizing files between two peers that do not | ||
1143 | share any versions in common. | ||
1144 | |||
1145 | \emph{CVSup} \cite{Polstra96} is a distribution protocol for CVS that | ||
1146 | globally synchronizes the contents of client CVS repositories with a | ||
1147 | mirror or the master repository. This is accomplished primarily by | ||
1148 | decomposing RCS files in the repository and transferring only the | ||
1149 | deltas that are missing on the client side. This model requires | ||
1150 | centralized control. | ||
1151 | |||
1152 | \subsection{A Distributed Archive} | ||
1153 | |||
1154 | A distributed archive consists of a network of autonomous archives as | ||
1155 | described above. An application is responsible for controlling each | ||
1156 | archive appropriately. I'll analyze a simple arrangement first, as it | ||
1157 | demonstrates an important special case. Once the simple arrangement | ||
1158 | has been described, I will extend the results for less constrained | ||
1159 | circumstances. | ||
1160 | |||
1161 | Suppose that for a file family being archived, the policy of the | ||
1162 | application running on client $S_c$ is to replicate every version in | ||
1163 | server $S_s$. Then $S_s$ can efficiently send $S_c$ new versions as a | ||
1164 | delta with little computation. Only the literal file, for which no | ||
1165 | delta is immediately available, requires processing, and the result | ||
1166 | can be cached. If the version being sent is already available as a | ||
1167 | delta, it can just be sent. If the distributed storage can be | ||
1168 | arranged as a tree in which each child replicates at least its | ||
1169 | parent's set of versions, this situation applies. | ||
1170 | |||
1171 | All of this relies on the normalized delta--it allows copies from both | ||
1172 | a \emph{site-specific}, readily available segment and a | ||
1173 | \emph{universal}, but perhaps not physically present, segment. When | ||
1174 | transferring a delta the site-specific segment may be missing at the | ||
1175 | receiver. All the sender need do is verify that the receiver can | ||
1176 | construct each of the necessary universal segments, allowing it to | ||
1177 | internalize the delta by translating it to depend upon its own | ||
1178 | site-specific segments. The client, therefore, is responsible for the | ||
1179 | majority of the work required to receive. Suppose that before | ||
1180 | synchronization $S_c$ contains the set of versions $F_c$, and $S_s$ | ||
1181 | contains the set of versions $F_s$. $S_c$ requests a transfer of the | ||
1182 | difference $F_t = F_s - F_c$. | ||
1183 | |||
1184 | \begin{clm} | ||
1185 | For each version $f$ to be sent, if $S_s$ is storing $f$ as delta | ||
1186 | $d_f$ it can simply send $d_f$. Otherwise $f$ is stored as a literal | ||
1187 | file, and $S_s$ can compute and send a forward delta $f \ominus f_c$, | ||
1188 | for some recent $f_c \in F_c$. | ||
1189 | \end{clm} | ||
1190 | |||
1191 | {\sc Proof} Each delta that was sent must be applicable by the | ||
1192 | receiver after the complete transmission. Since the client requested | ||
1193 | all versions, those that were stored and sent as deltas depend on | ||
1194 | either a version that the client already has, one of the other deltas | ||
1195 | that was sent, or a literal file for which a forward delta was sent. | ||
1196 | Since the forward deltas that were computed depend only on versions | ||
1197 | already in $F_c$, no cyclic dependencies are introduced at the | ||
1198 | client. \qed | ||
1199 | |||
1200 | Assuming archives synchronize with each other with period $p$ and | ||
1201 | versions are deleted when their age surpasses $a$, then an archive may | ||
1202 | pre-compute only a single, forward delta for each literal file in the | ||
1203 | archive. The \emph{From} input for this computation should be the | ||
1204 | first version whose age is greater than $p$ and less than $a-p$. Each | ||
1205 | server can also keep a record of its peers' contents to allow | ||
1206 | incremental log updates and each archive to compute a forward delta | ||
1207 | that the greatest number of its peers will be capable of applying. | ||
1208 | |||
1209 | \subsection{Arbitrary Policies} | ||
1210 | |||
1211 | The previous section dealt only with the case where the client's | ||
1212 | policy is to archive every file archived by the server. This special | ||
1213 | case allows many new deltas to be sent uninterpreted because the | ||
1214 | client replicates every version in the server. The case of a literal | ||
1215 | file is no different, but when a server must send an existing delta to | ||
1216 | a peer replicating fewer versions than itself, it must translate out | ||
1217 | the peer's missing references before sending. Suppose that $S_c$ | ||
1218 | requests $F_t$, where $F_t \cup F_c$ is a subset of the server's set | ||
1219 | of files $F_s$ and therefore $S_s$ may not be able to directly send a | ||
1220 | delta. | ||
1221 | |||
1222 | Computing such a delta is essentially similar to the reconstruct | ||
1223 | operation. First, \texttt{reconstructRange} is used to construct an | ||
1224 | interval tree $R$. Each copied range in $R$ is used to either | ||
1225 | construct a copy instruction, if $S_s$ has the necessary reference, or | ||
1226 | is translated into an insert instruction if $S_s$ does not have the | ||
1227 | reference. This procedure reduces to the above special case when the | ||
1228 | client has requested every file that the server contains. Again, the | ||
1229 | time complexity does not directly depend on the size of the version | ||
1230 | involved, but on the number of changes and deltas between them. | ||
1231 | |||
1232 | \subsection{Receiving Normalized Deltas} | ||
1233 | |||
1234 | It is guaranteed that when an archive receives a delta from a peer, it | ||
1235 | can apply that delta, though not as efficiently as possible. In fact, | ||
1236 | \texttt{reconstruct} will operate as given by simply using the | ||
1237 | normalized copy indices when a segment is missing. However, the | ||
1238 | reconstruct algorithm given assumed that all cross-edges in the DAG's | ||
1239 | depth-first-subtree were directed at literal files, allowing the | ||
1240 | recursive algorithm to free a node's interval table immediately after | ||
1241 | its parent has used it. Foreign deltas do not maintain this | ||
1242 | invariant; so an efficient implementation of \texttt{reconstructRange} | ||
1243 | must instead compute interval trees in a bottom-up DAG traversal; each | ||
1244 | node's interval tree can be discarded after each parent's | ||
1245 | interval-tree has been computed. This increases the space required by | ||
1246 | the algorithm by, at most, a factor of 2, since one additional | ||
1247 | interval-tree may required. | ||
1248 | |||
1249 | Given an implementation of \texttt{reconstructRange}, a delta can be | ||
1250 | internalized by computing the range table mapping copy ranges to local | ||
1251 | segment ranges, and re-generated as in algorithm \ref{alg:invert}. | ||
1252 | |||
1253 | \subsection{Future Work} | ||
1254 | |||
1255 | I have implemented the system described as the basis of a distributed | ||
1256 | version-control system. The synchronize operation is extended to use | ||
1257 | the \emph{rsync} algorithm when peers share no files in common, and to | ||
1258 | send the literal file when one peer contains no files. Future work | ||
1259 | will include a complete experimental analysis of the system's | ||
1260 | performance and behavior. Making such an archive operate securely and | ||
1261 | with minimum trust requirement is a future challenge. | ||
1262 | |||
1263 | \section{Conclusion} | ||
1264 | |||
1265 | The file delta problem and several applications have been examined. | ||
1266 | Many applications desires both compression, differential compression, | ||
1267 | and other features which complicate the direct application of | ||
1268 | available delta algorithms. These additional considerations | ||
1269 | influenced the design of a new system with a new delta algorithm. | ||
1270 | |||
1271 | The \xd {} delta algorithm requires linear space, but requires less space | ||
1272 | than the size of the inputs, meaning the algorithm is feasible for | ||
1273 | files which are required to reside in memory by other applications. | ||
1274 | The algorithm trades space to improve delta size, and approximates the | ||
1275 | exact algorithm to reduce execution space and time. It handles | ||
1276 | multiple inputs, a subject which has not previously been studied, and | ||
1277 | performs especially well on large inputs. | ||
1278 | |||
1279 | The \xd {} archiving scheme was designed as a replacement for RCS with | ||
1280 | network distribution in mind. It replaces the ancestry tree with a | ||
1281 | serial model using a combination of version-jumping, forward deltas, | ||
1282 | and reverse deltas. Multiple \emph{From} inputs are used when | ||
1283 | computing deltas, allowing the contents of more than one previous | ||
1284 | version to be referenced by copy instructions. | ||
1285 | |||
1286 | Finally, a scheme for decentralized network file archiving was | ||
1287 | presented. The copy/insert delta encoding is altered so that each | ||
1288 | copy instruction is replaced by two sets of instructions, allowing a | ||
1289 | two machines to directly exchange deltas without any computation in | ||
1290 | some cases. I propose the distributed file archive as a abstraction | ||
1291 | for efficiently implementing certain types of distributed | ||
1292 | applications, such as version-control, software-update, groupware, and | ||
1293 | \texttt{http} caching and replication. | ||
1294 | |||
1295 | \bibliography{dcc99} | ||
1296 | |||
1297 | \end{document} | ||
diff --git a/xdelta1/doc/old/dcc99/dead.code b/xdelta1/doc/old/dcc99/dead.code deleted file mode 100755 index 340b151..0000000 --- a/xdelta1/doc/old/dcc99/dead.code +++ /dev/null | |||
@@ -1,518 +0,0 @@ | |||
1 | The first technique for computing file deltas was based upon finding | ||
2 | the longest common subsequence (LCS) of two files \cite{Hunt77}. | ||
3 | Improvements to the file delta problem have been influenced by | ||
4 | compression techniques, but have been much slower in being adopted for | ||
5 | file-archival and transmition, perhaps because the market for such | ||
6 | improvements has been small. Recently, these techniques have become | ||
7 | feasible and the growth of the internet has renewed interest in these | ||
8 | approaches. | ||
9 | |||
10 | Systems for distributed file-backup have been built upon the storage | ||
11 | of file deltas \cite{Burns:Backup}, this work applies for a single, | ||
12 | centralized server. Protocols for the delta-based distribution and | ||
13 | replication of \texttt{http} have been proposed \cite{w3}. The | ||
14 | present work describes a decentralized protocol with several features | ||
15 | required for an efficient implementation. These compressed transport | ||
16 | protocols have applications to version control, file backup, | ||
17 | \texttt{http}, software update, groupware applications, and many more. | ||
18 | |||
19 | |||
20 | \begin{appendix} | ||
21 | \section{Optimality of Algorithm \ref{alg:generate}} \label{app:proof} | ||
22 | |||
23 | This is B.S. | ||
24 | |||
25 | You know that the new encoding is not optimal because copies are not | ||
26 | unit cost. BUT, we do know that this encoding is no more than a | ||
27 | factor of $min(s)$ greater than a similar metric for the unit-cost | ||
28 | solution. | ||
29 | |||
30 | Also, for the min copy length solution, its another factor of $s$ | ||
31 | worst, PER INSTRUCTION, this is good. | ||
32 | |||
33 | The proof uses the number of copy instructions encoded by a greedy | ||
34 | algorithm $g$ and an optimal algorithm $h$ for prefixes of the file | ||
35 | being constructed. $g_i$ and $h_i$ are partial solutions which | ||
36 | consist of a sequence of instructions which contains exactly $i$ copy | ||
37 | instructions and no more than $i+1$ insert instructions. $m$ is the | ||
38 | copy/insert metric for delta size developed in section | ||
39 | \ref{sec:greedy} and $e(g_i)$ denotes the sum of the length operands | ||
40 | to each instruction. Initially, we know: | ||
41 | |||
42 | \begin{align} | ||
43 | m(g_0) &= 0 \\ | ||
44 | m(h_0) &= 0 \\ | ||
45 | e(g_0) &= 0 \\ | ||
46 | e(h_0) &= 0 | ||
47 | \end{align} | ||
48 | |||
49 | \noindent and the following lemma: | ||
50 | |||
51 | \begin{lemm} | ||
52 | Suppose that $e(g_i) = e(h_j)$ and $m(g_i) \le m(h_j)$. Then for all | ||
53 | $k>i$, $l>j$ such that $e(g_k) = e(h_l)$, $m(g_k) \le m(h_l)$ must | ||
54 | hold. | ||
55 | \end{lemm} | ||
56 | |||
57 | \noindent {\sc Proof} This is demonstrated by case analysis. FILL ME | ||
58 | IN: PICTURES HELP! | ||
59 | |||
60 | \end{appendix} | ||
61 | |||
62 | |||
63 | |||
64 | |||
65 | A distributed \xd {} file-archive is set of \xd {} file-archives. These | ||
66 | archives may require significant space, and should be placed at the | ||
67 | border of a slow network link to reduce communication across the slow | ||
68 | link. The archive stores multiple file families named in a | ||
69 | hierarchical fashion. Versions inside a particular family are named | ||
70 | by their MD5 checksum. The contents of each of the archives may be | ||
71 | disjoint--the application must decide at each particular node which | ||
72 | versions of which families should be stored, but the distributed | ||
73 | archive does not, as presented, require any centralized control. | ||
74 | |||
75 | This model suggests a two-level transport protocol: an efficient | ||
76 | server-to-server communication is used to reduce transport over slow | ||
77 | links, while a simpler protocol is used for the client-server | ||
78 | interaction. This greatly reduces application complexity, and fits | ||
79 | common network topologies--server-proxies should be placed at the | ||
80 | gateway between a high-speed LAN and a slow internet or modem link. | ||
81 | |||
82 | A \emph{synchronize} operation between two servers allows them to | ||
83 | exchange each other's state and request copies of desired files. | ||
84 | Since it is a symmetric operation, it allows for both push and pull | ||
85 | configurations. The goal is to implement synchronize efficiently and | ||
86 | minimize network transfer. | ||
87 | |||
88 | There is an immediate obstacle. Since the set of files and order they | ||
89 | were received in may differ on each server, they cannot simply | ||
90 | exchange their deltas. We would like to synchronize servers by | ||
91 | exchanging as many un-interpreted files as possible, as they can be | ||
92 | efficiently copied to the network. Ideally, each server would simply | ||
93 | send a precomputed delta for each file the peer is lacking, but the | ||
94 | deltas cannot be easily exchanged because they depend on \emph{other} | ||
95 | deltas which the peer may not have. | ||
96 | A \emph{normalized copy/insert delta} contains additional information | ||
97 | for each instruction which copies from another delta. Each delta | ||
98 | contains the MD5 checksum of each input file, and for each input file | ||
99 | which is also a delta, the MD5 checksum of the file the delta | ||
100 | represents. This allows the normalized delta $d_1$ which copies from | ||
101 | another delta $d_2$ to be applied by someone who posseses either the | ||
102 | actual delta $d_2$ or the file which $d_2$ constructs. The copy | ||
103 | instruction for $d_2$ is followed by an alternate instruction sequence | ||
104 | to be used when $d_2$ is not present, these index the actual file. | ||
105 | |||
106 | |||
107 | A normalized copy/insert delta can be transmitted if the receiving | ||
108 | peer will, at the end of the transmission, have enough files to apply | ||
109 | it. The resulting protocol places most of the computation required to | ||
110 | accept a new file version on the receiver-side of the connection. | ||
111 | |||
112 | At synchronization, each server sends an incremental log update of | ||
113 | file additions since the last synchronize. Global deletion policy | ||
114 | must be handled by the application. After synchronizing logs, each | ||
115 | server transmits a list of file versions it wants to receive. For | ||
116 | each family requested, the server knows: $S$, the set of versions it | ||
117 | has; $P_b$, the set of versions the peer has before the transfer; $W$, | ||
118 | the set of files the peer wants; and $P_a = P_b+W$, the set of files | ||
119 | the peer will have after the transfer. Then, for each file $f$ in | ||
120 | $W$, it computes a strategy for sending $f$: | ||
121 | |||
122 | \begin{itemize} | ||
123 | \item If $f$ is not stored literally, then it is stored as a reverse | ||
124 | delta $d$. If $P_a$ contains every MD5 checksum that $d$ depends on, | ||
125 | then send the literal delta (or a pre-compressed copy). | ||
126 | \item If $f$ is stored literally, and $P_b \cap S \not = \emptyset$, a | ||
127 | forward delta must be computed for sending the peer. The server is | ||
128 | required to reconstruct a recent version which the peer has then | ||
129 | compute the forward delta. This forward delta may be cached, and the | ||
130 | number of such forward deltas required is limited by how recently its | ||
131 | peers last synchronized. | ||
132 | \item If $S$ and $P_b$ contain no common elements and $P_b$ is not | ||
133 | empty, the rsync algorithm may be applied. | ||
134 | \item Otherwise, the literal file must be sent. | ||
135 | \end{itemize} | ||
136 | |||
137 | For a peer who's policy is to request every file version in $S-P_b$, | ||
138 | sending $n$ file versions from the same family always results in | ||
139 | sending at least $n-1$ pre-computed deltas and at most one forward | ||
140 | delta (which can be cached). This suggests that a tree network | ||
141 | topology where each file archive contains at least the contents of its | ||
142 | parent will produce efficient delta transfers. | ||
143 | |||
144 | |||
145 | |||
146 | |||
147 | |||
148 | |||
149 | |||
150 | |||
151 | |||
152 | |||
153 | |||
154 | Network transmissions can be reduced in size by sending file deltas | ||
155 | rather than literal files. It can improve protocols for file-backup, | ||
156 | software-update, distributed version-control, and http. This section | ||
157 | will describe a protocol for the efficient peer-to-peer | ||
158 | synchronization of two \xd {} file archives. This suggests a framework | ||
159 | for implementing the server and proxy-cache of a generic application | ||
160 | requiring delta communication, high availability, and replicated, | ||
161 | compressed file-archival. | ||
162 | |||
163 | |||
164 | There are two modes of operation possible, one when forward deltas are | ||
165 | being inserted and one | ||
166 | |||
167 | Instead of using a version tree organization, it stores only the | ||
168 | youngest version of the file family and reverse deltas. Since there | ||
169 | are no branches, each version of a file is simply identified by a | ||
170 | serial number. The deltas computed are not the same as the reverse | ||
171 | deltas used in RCS, instead they are computed from the set consisting | ||
172 | of the youngest file and a window of previous deltas' insert-data to | ||
173 | the second youngest file. Figure \ref{fig:onestep} illustrates this | ||
174 | process. Each delta encodes the residual data required to construct | ||
175 | it from the deltas which came before it and the version which follows | ||
176 | it in time. Suppose the archive $A$ consists of an ordered set of $n$ | ||
177 | versions labelled $a_i$. For each $0 \le i < n-1$, $a_i$ is stored as | ||
178 | a delta $d_i$, otherwise it is stored as the literal file $a_{n-1}$. | ||
179 | Logically, the $A$ contains each of $n$ files, but is physically | ||
180 | stored as $n-1$ deltas and a literal file. | ||
181 | |||
182 | \begin{equation} | ||
183 | d_i = generate ( \left\{ d_j | j < i \wedge j \ge i-w \right\} \cup a_{i+1}, a_i ) | ||
184 | \end{equation} | ||
185 | |||
186 | Here, $w$ is the \emph{window-size} parameter, and limits the number | ||
187 | of deltas presented to {\tt generate}. Conceptually, files are | ||
188 | retrieved by the repeated application of these deltas. The $i^{th}$ | ||
189 | version put into an archive of $n$ versions requires the application | ||
190 | of $n-i$ deltas. | ||
191 | |||
192 | $O(\underset{\textrm{\emph{all paths}} d_r \rightarrow d_1 \rightarrow \ldots d_n \rightarrow l_i}{\max} 1)$. | ||
193 | |||
194 | The implementation of apply is straightforward. Reconstruct can be | ||
195 | made quite efficient. When multiple from inputs are allowed to the | ||
196 | delta algorithm, a delta chain measured in length becomes a delta-dag | ||
197 | measured in depth. For the purposes of analysis, let $copies(d)$ be | ||
198 | the number of copy instructions in delta $d$, $inserts(d)$ be the | ||
199 | number of insert instructions, and $instructions(d)$ be the sum. | ||
200 | |||
201 | An interval tree $intervals(d)$ can be built for locating the | ||
202 | instruction of a particular offset in the file $d$ constructs. In | ||
203 | addition, it maps each insert-instruction into an appropriate offset | ||
204 | in the delta's insert-data. Constructing the interval table requires | ||
205 | in $O(instructions(d) \lg instructions(d))$ steps and | ||
206 | $O(instructions(d))$ space \cite{clr}. | ||
207 | |||
208 | A recursive function Reconstruct-Range outputs | ||
209 | |||
210 | $(d_i, r_l, r_h)$ | ||
211 | outputs a range $r_l \ldots r_h$ from file $f_i$ which is represented | ||
212 | by delta $d_i$. $f_0$ is represented by a literal file. | ||
213 | |||
214 | Reconstruct-Range( | ||
215 | |||
216 | |||
217 | |||
218 | |||
219 | |||
220 | For each instruction in $d_i$ containing elements in the range, | ||
221 | |||
222 | \begin{itemize} | ||
223 | \item If the instruction is $\texttt{copy} \; f_k \; o_k \; l_k$ and | ||
224 | $k > 0$ recurse on the appropriate offset and length in $d_k$, | ||
225 | otherwise copy the appropriate range out of the literal file $f_0$. | ||
226 | \item If the instruction is $\texttt{insert} \; l$, output the | ||
227 | appropriate range in $d_i$'s insert-data. | ||
228 | \end{itemize} | ||
229 | |||
230 | It takes $O(\lg instructions(d))$ steps to locate the instruction | ||
231 | containing $r_l$. If the instruction is {\tt copy}, | ||
232 | |||
233 | |||
234 | We can compute $reconstruct(d_1 \ldots | ||
235 | d_n)$ with the following function: | ||
236 | |||
237 | \begin{tabbing} | ||
238 | reconstructRange (d, o, l) \{ \\ | ||
239 | /* Output length $l$ beginning at offset $o$ from the file \\ | ||
240 | * which delta $d$ constructs. */ \\ | ||
241 | \\ | ||
242 | while (l > 0) \{ \\ | ||
243 | $i \leftarrow \emph{instruction containing} o$ \\ | ||
244 | if ($i = \texttt{copy} \; f \; o_f \; l_f$) \{ \\ | ||
245 | reconstructRange (deltaWhichConstructs(f), | ||
246 | |||
247 | |||
248 | |||
249 | \end{tabbing} | ||
250 | An additional operation $index$ precomputes an index for the set of | ||
251 | input files the {\tt generate} operation will later use. The $index$ | ||
252 | operation computes the $adler32$ function on short segments of each $f | ||
253 | \in F$. The checksum length $l$ is chosen as a small power of | ||
254 | 2--values of between $2^4$ and $2^7$ have been used. An array of | ||
255 | checksum values $c_{f}[i]$ is built for each $f$ where $i$ indexes the | ||
256 | checksum beginning at an offset $il$. For each distinct set $F$ that | ||
257 | will be used during {\tt generate}, an additional hash table is built. | ||
258 | The table $t_F$ contains the data $(f,i)$ for each checksum offset $i$ | ||
259 | in $f$ keyed by $c_{f}[i]$. The table is easy to compute from the $c$ | ||
260 | arrays so it is often left until {\tt generate}. | ||
261 | |||
262 | During {\tt generate}, the file $t$ is scanned. At each offset $j$ | ||
263 | the same checksum is computed and tested in the table. When a match | ||
264 | for $(f,i)$ is found the files are compared at offset $f$'s offset | ||
265 | $il$ and $t$'s offset $j$. A record of the match is constructed out | ||
266 | of the longest matching substrings of $f$ and $t$ at those alignments. | ||
267 | These records are used to emit a sequence of instructions for | ||
268 | constructing $t$ from $p$ and $F$ and the scan is resumed after the | ||
269 | match. For each match $(f, t, i, j)$ a {\tt copy} instruction is | ||
270 | emitted, and for each range $k..l$ that was not matched an | ||
271 | {\tt insert} instruction is emitted along with the missing segment. | ||
272 | |||
273 | \subsection{Encoding} | ||
274 | |||
275 | % informal here... | ||
276 | |||
277 | So far, the issue of encoding has not been raised. Since there are | ||
278 | many encoding approaches and I must choose one to measure with, I will | ||
279 | define a class of {\tt generate} functions that produce patches for | ||
280 | the pre-defined instruction set of a standard apply function. This is | ||
281 | a fair assumption, as it has arisen in practice \cite{w3} and since it | ||
282 | is simple to implement {\tt apply}, making applications of the delta | ||
283 | algorithm easier to write and standardize. | ||
284 | |||
285 | Abstractly, the \emph{copy/insert} class of deltas are represented by | ||
286 | a sequence of instructions and a segment, {\tt insert-data}. For | ||
287 | these deltas, {\tt apply} constructs its output by executing a | ||
288 | sequence of the following instructions: | ||
289 | |||
290 | \begin{itemize} | ||
291 | \item {\tt copy} $f$ $o$ $l$ | ||
292 | |||
293 | Copy $l$ bytes at offset $o$ of file $f$ into the output file. | ||
294 | \item {\tt insert} $l$ | ||
295 | |||
296 | Read $l$ bytes from {\tt insert-data} and insert them into the output | ||
297 | file. | ||
298 | \end{itemize} | ||
299 | |||
300 | For reasons that will be discussed in the following section, \xd | ||
301 | encodes deltas in two seperate parts: the control instructions, and | ||
302 | {\tt insert-data}, the concatenation of each {\tt insert} | ||
303 | instruction's data. This turns out to be useful in two ways: {\tt | ||
304 | insert-data} may be treated as a file for inputs to other | ||
305 | computations, and {\tt apply} can efficiently produce a partial output | ||
306 | by seeking through the control segment without reading the entire data | ||
307 | segment. This does not exactly specify a format for the | ||
308 | \emph{copy/insert} delta, leaving the exact storage up to the | ||
309 | application. Another encoding that appears in the W3 Consortium's | ||
310 | proposed standard delta format, named \emph{GDIFF}, is to simply | ||
311 | append the data for each {\tt insert} instruction after the | ||
312 | instruction itself, making the delta a single stream. Other encodings | ||
313 | are more compressed, such the one used by Vo's \emph{vdelta} | ||
314 | algorithm. Again, using a simple, uncompressed format proves useful | ||
315 | for file-archival, suggesting that general compression techniques be | ||
316 | used orthogonally to delta-encoding for a complete system. | ||
317 | |||
318 | \subsection{Analysis} | ||
319 | |||
320 | % need some diagrams here | ||
321 | |||
322 | By pre-defining an abstract delta format the comparison of algorithms | ||
323 | is much easier. The algorithm described above computes a | ||
324 | \emph{copy/insert} delta. {\tt index} first computes an array for | ||
325 | each file then the hash table. | ||
326 | |||
327 | \begin{tabbing} | ||
328 | preprocess ($F$) \\ | ||
329 | $T \leftarrow$ \emph{empty hash table} | ||
330 | for each $f \in F$ \\ | ||
331 | $c_f$ = generateChecksums ($f$) \\ | ||
332 | for each $f \in F$ \\ | ||
333 | addToTable ($T$, $c_f$, $f$) \\ | ||
334 | \\ | ||
335 | generateChecksums($f$) \\ | ||
336 | $count \leftarrow (length(f)-1)/l$ \\ | ||
337 | $array \leftarrow new checksum[count]$ \\ | ||
338 | for $i = 0..count$ \\ | ||
339 | $array[i] \leftarrow$ adler32 ($f$, $i*l$, $l$) \\ | ||
340 | return $array$ \\ | ||
341 | addToTable($T$, $c$, $f$) \\ | ||
342 | $count \leftarrow (length(f)-1)/l$ \\ | ||
343 | for $i = 0..count$ \\ | ||
344 | $insert (T, c[i], [i,f])$ | ||
345 | \end{tabbing} | ||
346 | |||
347 | The {\tt generateChecksums} function fills in an array of length | ||
348 | $floor(length(f) / l)$. Each entry is the 32-bit adler32 checksum for | ||
349 | the range of length $l$ for a particular offset. Let $length(F) = | ||
350 | \sum_{f \in F} length(f)$. This step has $O(length(F))$ time | ||
351 | complexity and requires $length(F)/l = O(length(F))$ space. | ||
352 | |||
353 | The {\tt addToTable} function inserts $length(F)/l$ checksums into a | ||
354 | table in $length(F)/l$ time and space as well. All together, {\tt | ||
355 | apreprocess} requires $O(length(F)/l)$ time and space and has small | ||
356 | coefficients. | ||
357 | |||
358 | % Take a look at how rsync deals with this. | ||
359 | |||
360 | \begin{tabbing} | ||
361 | generate ($F$, $t$) \\ | ||
362 | for $i = 0..length(t)-l$ \\ | ||
363 | $a \leftarrow $ adler32($t$, $i$, $l$) \\ | ||
364 | if ($(f, j) \leftarrow$ lookup ($T$, $a$) $\wedge$ \\ | ||
365 | $c_f[j] = a$ $\wedge$ \\ | ||
366 | $f$ and $t$ match at $jl$ and $i$) \\ | ||
367 | emitMatch ($f$, $t$, $jl$, $i$) | ||
368 | \end{tabbing} | ||
369 | |||
370 | The {\tt generate} operation searches for matching checksums in $t$. | ||
371 | It requires constant additional space and $length(t)$ operations to | ||
372 | scan $t$ and in the worse case, $2 length(t)$ operations for finding | ||
373 | matches by literally comparing files. The resulting | ||
374 | \emph{copy/insert} {\tt generate} algorithm is linear in both time and | ||
375 | space. The linear space requirement is not ideal. For $l=16$, the | ||
376 | algorithm requires a memory approximately $1/2$ the size of the | ||
377 | inputs. | ||
378 | |||
379 | In practice, {\tt generate} is implemented in a single page-by-page | ||
380 | pass through $t$. Therefore, when a partial match is found, the match | ||
381 | is grown as far forward in the files as possible, but will only grow | ||
382 | backwards up to the first page boundary. | ||
383 | |||
384 | For speed and space concerns, the hash table is implemented as a | ||
385 | single integer array with length chosen to be approximately the size | ||
386 | of the input. Each bucket contains $f$ and $i$, and no duplicate | ||
387 | records are kept. This leads to a clobbering decision--how to handle | ||
388 | multiple checksums with the same hash code. By keeping only one | ||
389 | record for each bucket the inner {\tt generate} loop is quite | ||
390 | efficient and lengthy, repeated segments in the inputs do not produce | ||
391 | over-full buckets. Several policies have been used: | ||
392 | |||
393 | \begin{itemize} | ||
394 | \item ordered winner | ||
395 | |||
396 | If the checksums are in the same file, the first to appear wins, | ||
397 | otherwise an arbitrary order is placed on $F$ to determine the winner. | ||
398 | |||
399 | \item random winner | ||
400 | |||
401 | At each collision, a random trial is performed to determine the | ||
402 | winner. By setting the probability of clobbering in the $k^{th}$ | ||
403 | trial to $P(k) = 1/(k+1)$, the winner is uniformely distributed over | ||
404 | all like checksum hash values. | ||
405 | |||
406 | \item weighted winner | ||
407 | |||
408 | A match occuring earlier in a file rather than later is desirable | ||
409 | since matches grow foward and not backward. This can be encoded in | ||
410 | the above decision's trial probability to favor earlier matches, for | ||
411 | example. | ||
412 | \end{itemize} | ||
413 | |||
414 | How confident can we be that this algorithm computes a compact delta? | ||
415 | There are many approximations and assumptions that have been made, but | ||
416 | the following property may be shown: | ||
417 | |||
418 | \begin{theorem} | ||
419 | For a match to be discovered between files $f$ and $t$ of length $k | ||
420 | \ge 2l$, the probability of emitting a copy instruction is | ||
421 | $\frac{1}{number of}$. | ||
422 | \end{theorem} | ||
423 | |||
424 | [I'd like to show that it is not much worse than optimal.] And since | ||
425 | it is fast and performs well in practice, it seems very good. | ||
426 | |||
427 | \subsection{The \emph{copy/insert} Delta}\label{sec:copyinsert} | ||
428 | |||
429 | % Move this section? Pull it out of analysis? | ||
430 | |||
431 | Deletions are cheap, insertion is expensive. This could be done as a | ||
432 | better dynamic program, but more expensive than the LCS algorithms. | ||
433 | |||
434 | This simple encoding | ||
435 | |||
436 | |||
437 | |||
438 | |||
439 | |||
440 | |||
441 | |||
442 | |||
443 | |||
444 | |||
445 | |||
446 | |||
447 | |||
448 | storage mechanism does not use branches and never | ||
449 | stores forward deltas. To avoid accumulating multiple copies of | ||
450 | deltas transforming one diverging branch into another, {\sc Xdelta} | ||
451 | computes a new delta based not only on two input files, but on | ||
452 | previous deltas as well. The equivalent {\sc Xdelta} encoding is | ||
453 | illustrated in figure \ref{xdelta}. The delta algorithm employed by | ||
454 | {\sc Xdelta} encodes deltas as a sequence of \texttt{copy} and | ||
455 | \texttt{insert} instructions. A copy instruction occupies $O(1)$ | ||
456 | space, while an insertion of length $N$ requires $O(N)$ space. Note | ||
457 | that forward insertions are encoded as reverse deletions and forward | ||
458 | deletions are encoded as reverse insertions. We are only concerned | ||
459 | with insertions, since deletions are not reflected in the sequence of | ||
460 | \texttt{copy} and \texttt{insert} instructions. | ||
461 | |||
462 | %RCS succeeds at efficiently storing | ||
463 | %these five versions because files on the $1.1.1.x$ branch do not | ||
464 | %interfere with deltas computed for files on the $1.x$ branch. The | ||
465 | %next delta computed on either branch is not affected by the | ||
466 | %differences between files at the head of either branch. In this way, | ||
467 | %parallel development does not impact the storage mechanism. The RCS | ||
468 | %mechanism does, however, have a great impact on the amount of work | ||
469 | %required to extract each version: files checked in on the $1.x$ branch | ||
470 | %are available in time proportional to the distance from the head, | ||
471 | %while files checked in on the $1.1.1.x$ branch are available in time | ||
472 | %proportional to the distance from the root version ($1.1$) plus the | ||
473 | %number of files on the $1.x$ branch. Unfortunately, this type of | ||
474 | %scenario degrades the performance of the RCS storage mechanism and is | ||
475 | %exactly what version control utilities are designed to handle. This | ||
476 | %feature of the RCS storage mechanism makes efficient allocation of new | ||
477 | %version numbers difficult for both users and higher level version | ||
478 | %control utilities. | ||
479 | |||
480 | %\section{Delta Algorithms} | ||
481 | |||
482 | %\section{And Compression...} | ||
483 | |||
484 | %\section{Encoding/Matching (Empirical) Gripe} | ||
485 | |||
486 | %\section{Delta Algorithm} | ||
487 | |||
488 | %\section{Empirical Results on Delta Algorithm} | ||
489 | |||
490 | %\section{Storage Model} | ||
491 | |||
492 | %\section{Empirical Results on Storage Model} | ||
493 | |||
494 | %\section{Comparison to RCS} | ||
495 | |||
496 | %* Ability to delete old files | ||
497 | %* Usage of a binary delta | ||
498 | %* Freedom from version tree: | ||
499 | % performance implications | ||
500 | % lack of information | ||
501 | %* Available as a library without the clutter | ||
502 | %* file retrieval time is always proportional to its age, not ancestry | ||
503 | %* partial compression, late decompression | ||
504 | %* cached indices | ||
505 | |||
506 | %\section{Distribution Model} | ||
507 | |||
508 | %What to solve. What are the network applications. | ||
509 | |||
510 | %\section{Normalized Deltas} | ||
511 | |||
512 | %How to achive it. | ||
513 | |||
514 | %\section{Implementation of DRP} | ||
515 | |||
516 | %Complete 4-method protocol description. | ||
517 | |||
518 | %\section{Conclusion} | ||
diff --git a/xdelta1/doc/old/dcc99/exact-delta/CVS/Entries b/xdelta1/doc/old/dcc99/exact-delta/CVS/Entries deleted file mode 100755 index ae08c72..0000000 --- a/xdelta1/doc/old/dcc99/exact-delta/CVS/Entries +++ /dev/null | |||
@@ -1,4 +0,0 @@ | |||
1 | /delta.cc/1.1.1.1/Tue Jun 12 03:16:40 2001/-ko/ | ||
2 | /suffix.cc/1.1.1.1/Tue Jun 12 03:16:40 2001/-ko/ | ||
3 | /suffix.h/1.1.1.1/Tue Jun 12 03:16:40 2001/-ko/ | ||
4 | D | ||
diff --git a/xdelta1/doc/old/dcc99/exact-delta/CVS/Repository b/xdelta1/doc/old/dcc99/exact-delta/CVS/Repository deleted file mode 100755 index ef5ef48..0000000 --- a/xdelta1/doc/old/dcc99/exact-delta/CVS/Repository +++ /dev/null | |||
@@ -1 +0,0 @@ | |||
1 | xdelta11/xdelta11/doc/dcc99/exact-delta | ||
diff --git a/xdelta1/doc/old/dcc99/exact-delta/CVS/Root b/xdelta1/doc/old/dcc99/exact-delta/CVS/Root deleted file mode 100755 index 645ccf1..0000000 --- a/xdelta1/doc/old/dcc99/exact-delta/CVS/Root +++ /dev/null | |||
@@ -1 +0,0 @@ | |||
1 | :ext:jmacd@cvs.xdelta.sourceforge.net:/cvsroot/xdelta | ||
diff --git a/xdelta1/doc/old/dcc99/exact-delta/delta.cc b/xdelta1/doc/old/dcc99/exact-delta/delta.cc deleted file mode 100755 index ed27060..0000000 --- a/xdelta1/doc/old/dcc99/exact-delta/delta.cc +++ /dev/null | |||
@@ -1,176 +0,0 @@ | |||
1 | /* $Header: /home/tully/hilfingr/work/delta/RCS/delta.cc,v 1.6 1995/08/11 02:06:27 hilfingr Exp $ */ | ||
2 | /* delta.c: Produce a delta indicating how to convert one file to */ | ||
3 | /* another. */ | ||
4 | |||
5 | /* Copyright (C) 1995, Paul N. Hilfinger. All Rights Reserved. */ | ||
6 | |||
7 | #include <stdio.h> | ||
8 | #include <sys/types.h> | ||
9 | #include <sys/stat.h> | ||
10 | #include <iostream.h> | ||
11 | #include <fstream.h> | ||
12 | #include <strstream.h> | ||
13 | #include "suffix.h" | ||
14 | |||
15 | int/*waslong*/ cim = 0; | ||
16 | int/*waslong*/ ilen = 0; | ||
17 | |||
18 | int/*waslong*/ | ||
19 | ilog2 (int/*waslong*/ arg) | ||
20 | { | ||
21 | int/*waslong*/ log = 0; | ||
22 | |||
23 | while (arg >>= 1) log += 1; | ||
24 | |||
25 | return log; | ||
26 | } | ||
27 | |||
28 | void | ||
29 | measureInsert (int/*waslong*/ len) | ||
30 | { | ||
31 | ilen += len; | ||
32 | } | ||
33 | |||
34 | void | ||
35 | measureCopy (int/*waslong*/ len, int/*waslong*/ at) | ||
36 | { | ||
37 | if (ilen > 0) | ||
38 | { | ||
39 | cim += 1 + ilog2 (ilen) + 8*ilen; | ||
40 | #if 0 | ||
41 | printf ("insert %ld %ld\n", ilen, cim); | ||
42 | #endif | ||
43 | ilen = 0; | ||
44 | } | ||
45 | |||
46 | if (len > 0) | ||
47 | { | ||
48 | cim += 1 + ilog2 (len) + ilog2(at); | ||
49 | #if 0 | ||
50 | printf ("copy %ld %ld\n", len, cim); | ||
51 | #endif | ||
52 | } | ||
53 | } | ||
54 | |||
55 | /* Usage: */ | ||
56 | /* delta file1 file2 */ | ||
57 | /* Produces on standard output a sequence of commands for converting */ | ||
58 | /* the contents of FILE1 to those of FILE2. Each command has the */ | ||
59 | /* following form: */ | ||
60 | /* <p><n0><n1><x> */ | ||
61 | /* where <p> is a signed number, <n0> and <n1> are nonnegative */ | ||
62 | /* numbers, and <x> is a sequence of <n1> characters. This command */ | ||
63 | /* means "Append <x> and then append <n0> characters starting from */ | ||
64 | /* position P+<p> in FILE1. Set P to P+<p>+<n0>." Initially, P is 0 */ | ||
65 | /* (characters in FILE1 are numbered from 0). Numbers are */ | ||
66 | /* represented in base 32 (see num32.h and num32.cc). */ | ||
67 | |||
68 | /* Don't bother to generate a move for any block less than */ | ||
69 | /* MOVE_THRESHOLD long. */ | ||
70 | const int/*waslong*/ MOVE_THRESHOLD = 6; | ||
71 | |||
72 | /* Output on cout the delta between the string */ | ||
73 | /* T.string()[0..T.length()-1] and S1[0..N1-1], using P0 as the value */ | ||
74 | /* of P (above), and setting it to the final value of P when done. */ | ||
75 | /* Add OFFST to the positions of moved strings within S0. */ | ||
76 | void diffSegment(SuffixTree& T, const byte* S1, int N1, | ||
77 | int /*waslong*/ offst, int /*waslong*/& P0) | ||
78 | { | ||
79 | int /*waslong*/ P; | ||
80 | int L; | ||
81 | |||
82 | P = P0; | ||
83 | L = N1; | ||
84 | while (L > 0) { | ||
85 | int/*waslong*/ start; | ||
86 | int/*waslong*/ len, i; | ||
87 | |||
88 | i = 0; | ||
89 | while (true) { | ||
90 | start = P - offst; len = 0; | ||
91 | if (i >= L) | ||
92 | break; | ||
93 | T.longestPrefix(S1+i, L-i, start, len); | ||
94 | if (len >= MOVE_THRESHOLD) | ||
95 | break; | ||
96 | i += 1; | ||
97 | } | ||
98 | |||
99 | measureInsert (i); | ||
100 | measureCopy (len, start + offst + P); | ||
101 | |||
102 | L -= i; | ||
103 | while (i > 0) { | ||
104 | S1 += 1; i -= 1; | ||
105 | } | ||
106 | S1 += len; | ||
107 | L -= len; | ||
108 | P = start + offst + len; | ||
109 | } | ||
110 | |||
111 | P0 = P; | ||
112 | } | ||
113 | |||
114 | |||
115 | main(int argc, char* argv[]) | ||
116 | { | ||
117 | ifstream F1, F2; | ||
118 | byte *S1; | ||
119 | byte *S2; | ||
120 | int /*waslong*/ N1, N2; | ||
121 | int /*waslong*/ P, offst; | ||
122 | struct stat buf1, buf2; | ||
123 | SuffixTree T; | ||
124 | |||
125 | if (argc < 3) { | ||
126 | cerr << "Usage: " << argv[0] << " from to" << "\n"; | ||
127 | exit(1); | ||
128 | } | ||
129 | |||
130 | F1.open(argv[1]); | ||
131 | if (F1.fail()) { | ||
132 | cerr << "Could not open " << argv[1] << ".\n"; | ||
133 | exit(1); | ||
134 | } | ||
135 | |||
136 | F2.open(argv[2]); | ||
137 | if (F2.fail()) { | ||
138 | cerr << "Could not open " << argv[2] << ".\n"; | ||
139 | exit(1); | ||
140 | } | ||
141 | |||
142 | if (stat (argv[1], &buf1)) { | ||
143 | cerr << "Could not stat " << argv[1] << ".\n"; | ||
144 | exit(1); | ||
145 | } | ||
146 | |||
147 | if (stat (argv[2], &buf2)) { | ||
148 | cerr << "Could not stat " << argv[2] << ".\n"; | ||
149 | exit(1); | ||
150 | } | ||
151 | |||
152 | N1 = buf1.st_size; | ||
153 | N2 = buf2.st_size; | ||
154 | |||
155 | S1 = (byte*)allocate(N1); | ||
156 | S2 = (byte*)allocate(N2); | ||
157 | |||
158 | F1.read(S1, N1); | ||
159 | F2.read(S2, N2); | ||
160 | |||
161 | if (F2.fail() || F1.fail()) { | ||
162 | cerr << "Read failed.\n"; | ||
163 | exit(1); | ||
164 | } | ||
165 | |||
166 | P = 0; offst = 0; | ||
167 | T.init(S1, N1); | ||
168 | |||
169 | diffSegment(T, S2, N2, 0, P); | ||
170 | |||
171 | measureCopy (0, 0); | ||
172 | |||
173 | printf ("%d\n", (cim+4)/8); /* into bytes */ | ||
174 | |||
175 | exit(0); | ||
176 | } | ||
diff --git a/xdelta1/doc/old/dcc99/exact-delta/suffix.cc b/xdelta1/doc/old/dcc99/exact-delta/suffix.cc deleted file mode 100755 index cf31e90..0000000 --- a/xdelta1/doc/old/dcc99/exact-delta/suffix.cc +++ /dev/null | |||
@@ -1,427 +0,0 @@ | |||
1 | /* $Header: /home/tully/hilfingr/work/delta/RCS/suffix.cc,v 1.6 1995/08/11 07:24:10 hilfingr Exp hilfingr $ */ | ||
2 | /* suffix.cc: */ | ||
3 | |||
4 | /* Copyright (C) 1995, Paul N. Hilfinger. All Rights Reserved. */ | ||
5 | |||
6 | #include <iostream.h> | ||
7 | |||
8 | #include <stdio.h> | ||
9 | #include <stddef.h> | ||
10 | #include <stdlib.h> | ||
11 | #include <limits.h> | ||
12 | #include <string.h> | ||
13 | #include "suffix.h" | ||
14 | |||
15 | /* This file has been grossly hacked by Josh. */ | ||
16 | |||
17 | /* Notionally, the string theString has appended to it a sentinel */ | ||
18 | /* character that is unequal to any other character. This value can't */ | ||
19 | /* be represented directly in a byte, however, so we must take care */ | ||
20 | /* throughout to avoid actually trying to look at or compare the */ | ||
21 | /* sentinel character directly. */ | ||
22 | |||
23 | /* Each SuffixTree contains nonterminal nodes identified by integers */ | ||
24 | /* in the range 0 .. N and terminal nodes identified by integers in */ | ||
25 | /* the range N+1 .. 2N. Each node represents a string, and is said to */ | ||
26 | /* be the LOCUS of that string. Nonterminal node 0 represents the */ | ||
27 | /* null string. Nonterminal node k>1, if it exists, is the locus of */ | ||
28 | /* the longest prefix of theString[k-1 .. N-1] that is present in */ | ||
29 | /* theString[j..N-1], 0<=j<k-1; there is at most one nonterminal node */ | ||
30 | /* for each prefix. The prefix itself (whether or not a nonterminal */ | ||
31 | /* node exists for it) is called head(k). Terminal node N+k, k>0, */ | ||
32 | /* represents the suffix theString[k-1..N-1]. There is one terminal */ | ||
33 | /* node for each suffix. */ | ||
34 | |||
35 | /* The EXTENDED LOCUS of a string is the locus of the shortest string */ | ||
36 | /* in the tree that has that string as a prefix. The CONTRACTED LOCUS */ | ||
37 | /* of a string is the locus of the longest string in the tree that is */ | ||
38 | /* a prefix of that string. */ | ||
39 | |||
40 | /* Each edge of the tree is labeled with a non-null string such that */ | ||
41 | /* the concatenation of the strings on all edges leading from the root */ | ||
42 | /* to a node is the string represented by that node. For each */ | ||
43 | /* nonterminal node k, inArcLen[k] is the length of the string */ | ||
44 | /* labeling the edge incoming to k. All nonterminal nodes have at */ | ||
45 | /* least two edges leading from them, each beginning with a distinct */ | ||
46 | /* character. */ | ||
47 | |||
48 | /* For nonterminal node m and character c, the hash table edgeMap maps */ | ||
49 | /* (m,c) to the edge from m whose label begins with c, if there is */ | ||
50 | /* one. The member array edges contains all edges, and each edge is */ | ||
51 | /* represented by its index in edges. Each bin in edgeMap is linked */ | ||
52 | /* through the next fields of the edges. The hash function is such */ | ||
53 | /* that at most one entry whose source is a given node can appear on a */ | ||
54 | /* given hash chain. */ | ||
55 | |||
56 | /* This data structure and the algorithm for createSuffixTree, below, */ | ||
57 | /* were originally described in Edward M. McCreight, ``A */ | ||
58 | /* Space-Economical Suffix Tree Construction Algorithm'', JACM 23, 2 */ | ||
59 | /* (April, 1976), pp 262-272. */ | ||
60 | |||
61 | const NodeNum Root = 0; | ||
62 | const int TERMINAL_FLAG = 0x40000000; | ||
63 | const xbyte SENTINEL_CHAR = 0x1ff; | ||
64 | |||
65 | void bail (void) | ||
66 | { | ||
67 | printf ("-1\n"); | ||
68 | exit (2); | ||
69 | } | ||
70 | |||
71 | void* allocate(int size) | ||
72 | { | ||
73 | void* p = malloc (size); | ||
74 | static int total = 0; | ||
75 | |||
76 | total += size; | ||
77 | |||
78 | if (total >= 1<<30) | ||
79 | bail (); | ||
80 | |||
81 | if (! p) | ||
82 | bail (); | ||
83 | |||
84 | return p; | ||
85 | } | ||
86 | |||
87 | extern Edge _NULL_EDGE; | ||
88 | Edge _NULL_EDGE(Root, Root, -1); | ||
89 | static Edge* const NULL_EDGE = &_NULL_EDGE; | ||
90 | |||
91 | inline NodeNum hash(xbyte c, NodeNum n) | ||
92 | { | ||
93 | return (c | (c << 8)) ^ n; | ||
94 | } | ||
95 | |||
96 | #define member SuffixTree:: | ||
97 | |||
98 | member SuffixTree() | ||
99 | { | ||
100 | theString = (byte*) ""; | ||
101 | N = 1; | ||
102 | inArcLen = NULL; | ||
103 | nextEdge = NULL; | ||
104 | edges = NULL; | ||
105 | edgeMap = NULL; | ||
106 | } | ||
107 | |||
108 | member ~SuffixTree() | ||
109 | { | ||
110 | delete [] inArcLen; | ||
111 | delete [] edges; | ||
112 | delete [] edgeMap; | ||
113 | inArcLen = NULL; edges = NULL; edgeMap = NULL; | ||
114 | } | ||
115 | |||
116 | void member init(const byte* S, int/*waslong*/ L) | ||
117 | { | ||
118 | this->~SuffixTree(); | ||
119 | |||
120 | N = L + 1; | ||
121 | theString = S; | ||
122 | |||
123 | createSuffixTree(); | ||
124 | } | ||
125 | |||
126 | /* The step (in createSuffixTree: see below) at which node M>0 was */ | ||
127 | /* created. Step k>0 considers the suffix beginning at theString[k-1]. */ | ||
128 | inline int member toStep(NodeNum m) const | ||
129 | { | ||
130 | return m & ~TERMINAL_FLAG; | ||
131 | } | ||
132 | |||
133 | /* The leaf node corresponding to the suffix beginning at character M. */ | ||
134 | inline NodeNum member toLeaf(int m) const | ||
135 | { | ||
136 | return m | TERMINAL_FLAG; | ||
137 | } | ||
138 | |||
139 | |||
140 | /* The length of a suffix of which node M is a part. If M is a */ | ||
141 | /* terminal node, there is only one such suffix. */ | ||
142 | inline Length member suffixLength(NodeNum m) const | ||
143 | { | ||
144 | return N - toStep(m) + 1; | ||
145 | } | ||
146 | |||
147 | /* True iff M is a terminal node */ | ||
148 | inline bool member isTerminal(NodeNum M) const | ||
149 | { | ||
150 | return (M & TERMINAL_FLAG) != 0; | ||
151 | } | ||
152 | |||
153 | /* The length of the arc incoming to M, given that L is the length of */ | ||
154 | /* the string associated with M's parent. */ | ||
155 | inline Length member inLength(NodeNum m, Length L) const | ||
156 | { | ||
157 | if (isTerminal(m)) | ||
158 | return suffixLength(m) - L; | ||
159 | else | ||
160 | return inArcLen[m]; | ||
161 | } | ||
162 | |||
163 | /* The starting position in string() of the string associated with */ | ||
164 | /* m>0. */ | ||
165 | inline int member suffixStart(NodeNum m) const | ||
166 | { | ||
167 | return toStep(m)-1; | ||
168 | } | ||
169 | |||
170 | /* Create a new edge from n0 to n1 whose label begins with string x. */ | ||
171 | inline void member createEdge(NodeNum n0, NodeNum n1, xbyte x) | ||
172 | { | ||
173 | assert (n0 >= 0 && n1 >= 0); | ||
174 | assert (nextNode(n0, x) == Root); | ||
175 | assert (nextEdge - edges < 2*N); | ||
176 | int h = hash(x, n0); | ||
177 | |||
178 | if (edgeMap[h] == NULL_EDGE) | ||
179 | *nextEdge = Edge(n0, n1, -1); | ||
180 | else | ||
181 | *nextEdge = Edge(n0, n1, edgeMap[h] - edges); | ||
182 | |||
183 | edgeMap[h] = nextEdge; | ||
184 | |||
185 | nextEdge += 1; | ||
186 | } | ||
187 | |||
188 | /* Insert new node N2 on edge E, where the source of E */ | ||
189 | /* represents a string of length L0 and L2 is the length of the string */ | ||
190 | /* between the source of E and N2. */ | ||
191 | inline void member splitEdge(Edge* e, NodeNum n2, Length L0, Length L2) | ||
192 | { | ||
193 | NodeNum n0 = e->from, n1 = e->to; | ||
194 | |||
195 | assert( e != NULL_EDGE && ! isTerminal(n0) && | ||
196 | ! isTerminal(n2) && L2 < inLength(n1, L0)); | ||
197 | |||
198 | assert (n0 >= 0 && n1 >= 0 && n2 >= 0); | ||
199 | |||
200 | inArcLen[n2] = L2; | ||
201 | if (! isTerminal(n1)) | ||
202 | inArcLen[n1] -= L2; | ||
203 | e->to = n2; | ||
204 | createEdge(n2, n1, theString[suffixStart(n1) + L0 + L2]); | ||
205 | } | ||
206 | |||
207 | /* Insert edge to new leaf node N1 from N0, where N0 represents a */ | ||
208 | /* string of length L. */ | ||
209 | inline void member addLeaf(NodeNum n0, NodeNum n1, Length L) | ||
210 | { | ||
211 | assert(isTerminal(n1) && ! isTerminal(n0) && suffixStart(n1)+L < N); | ||
212 | assert (n0 >= 0); | ||
213 | assert (n1 >= 0); | ||
214 | if (suffixStart(n1) + L == N-1) | ||
215 | createEdge(n0, n1, SENTINEL_CHAR); | ||
216 | else | ||
217 | createEdge(n0, n1, theString[suffixStart(n1)+L]); | ||
218 | } | ||
219 | |||
220 | /* The edge from SRC labeled with a string beginning with C, if any, */ | ||
221 | /* or NULL_EDGE otherwise. */ | ||
222 | inline Edge* edge(NodeNum src, xbyte c, Edge* const edgeMap[], Edge* edges) | ||
223 | { | ||
224 | Edge* e; | ||
225 | |||
226 | e = edgeMap[hash(c, src)]; | ||
227 | |||
228 | for (;; e = edges + e->next) | ||
229 | { | ||
230 | if (e->from == src) | ||
231 | return e; | ||
232 | |||
233 | if (e->next == -1) | ||
234 | return NULL_EDGE; | ||
235 | } | ||
236 | |||
237 | return NULL_EDGE; | ||
238 | } | ||
239 | |||
240 | /* Node arrived at by following the arc whose label begins with C, if */ | ||
241 | /* any, from nonterminal node SRC. Returns Root if there is no such */ | ||
242 | /* node. */ | ||
243 | inline NodeNum member nextNode(NodeNum src, xbyte c) const | ||
244 | { | ||
245 | return edge(src, c, edgeMap, edges) -> to; | ||
246 | } | ||
247 | |||
248 | void member longestPrefix(const byte* S1, int/*waslong*/ N1, | ||
249 | int/*waslong*/& start, int/*waslong*/& length) const | ||
250 | { | ||
251 | int N0 = N-1; | ||
252 | int L; /* Length of S1 scanned so far. */ | ||
253 | NodeNum m; /* Extended locus of S1[0..L-1]. */ | ||
254 | int r; /* Characters remaining in current arc */ | ||
255 | /* (incoming to node m). */ | ||
256 | int s; /* Start of current prefix in S. */ | ||
257 | |||
258 | L = 0; r = 0; m = Root; s = 0; | ||
259 | while (true) { | ||
260 | while (r > 0) { | ||
261 | if (S1[L] != theString[s+L]) { | ||
262 | start = s; length = L; | ||
263 | return; | ||
264 | } | ||
265 | r -= 1; L += 1; | ||
266 | } | ||
267 | |||
268 | if (L == N1 || s+L == N0) { | ||
269 | start = s; length = L; | ||
270 | return; | ||
271 | } | ||
272 | |||
273 | m = nextNode(m, S1[L]); | ||
274 | if (m == Root) { | ||
275 | start = s; length = L; | ||
276 | return; | ||
277 | } else if (isTerminal(m)) | ||
278 | /* r := remaining length - 2 (so as not to include the */ | ||
279 | /* sentinel character or the first character on the arc). */ | ||
280 | r = suffixLength(m) - L - 2; | ||
281 | else | ||
282 | /* r := arc length - 1 (so as not to include the first */ | ||
283 | /* character on the arc). */ | ||
284 | r = inArcLen[m] - 1; | ||
285 | s = suffixStart(m); | ||
286 | L += 1; /* Skip first character on arc. */ | ||
287 | if (L+r > N1) | ||
288 | r = N1 - L; | ||
289 | } | ||
290 | } | ||
291 | |||
292 | /* Assuming that N and theString are set correctly, set edgeMap, */ | ||
293 | /* edges, and inArcLen to represent a tree corresponding to the */ | ||
294 | /* suffixes of theString, as described above. */ | ||
295 | void member createSuffixTree() | ||
296 | { | ||
297 | if (N == 1) | ||
298 | return; | ||
299 | |||
300 | inArcLen = (Length*) allocate (sizeof(Length) * (N+1)); | ||
301 | nextEdge = edges = (Edge*) allocate (sizeof(Edge) * (2*N)); | ||
302 | edgeMap = (Edge**) allocate (sizeof(Edge*) * (0x20000+N+1)); | ||
303 | |||
304 | /* For nonterminal node 0<m<k-1 (where k is the current step in the */ | ||
305 | /* algorithm---the step at which node k or node N+k is created), */ | ||
306 | /* with m the locus of string xS (x a character, S a string), */ | ||
307 | /* suffix[m] is the locus of S. */ | ||
308 | NodeNum* suffix = (NodeNum*) allocate (sizeof(NodeNum) * (N+1)); | ||
309 | memset(suffix, '\000', sizeof(NodeNum) * (N+1)); | ||
310 | |||
311 | for (int/*waslong*/ y = 0x20000+N+1; y >= 0; y -= 1) | ||
312 | edgeMap[y] = NULL_EDGE; | ||
313 | inArcLen[Root] = 0; | ||
314 | |||
315 | /* Step 1. */ | ||
316 | addLeaf(Root, toLeaf(1), 0); | ||
317 | /* The tree now contains the trivial suffix theString[0..N-1]. */ | ||
318 | |||
319 | NodeNum nextPrefix; /* At the beginning of step k, a */ | ||
320 | /* nonterminal node representing a prefix */ | ||
321 | /* of head(k). */ | ||
322 | int nextPrefixLen; /* At the beginning of step k, the */ | ||
323 | /* length of the prefix denoted by */ | ||
324 | /* nextPrefix. */ | ||
325 | NodeNum lastHead; /* At the beginning of step k, the */ | ||
326 | /* locus of head(k-1). */ | ||
327 | int lastHeadLen; /* At the beginning of step k, the */ | ||
328 | /* length of head(k-1). */ | ||
329 | |||
330 | |||
331 | lastHead = Root; lastHeadLen = 0; | ||
332 | nextPrefix = Root; nextPrefixLen = 0; | ||
333 | /* Steps 2 to N. */ | ||
334 | for (NodeNum k = 2; k <= N; k += 1) { | ||
335 | /* The tree now contains the strings theString[j..N-1], */ | ||
336 | /* 0 <= j< k-1 (call this tree T(k-1)). */ | ||
337 | NodeNum d0, d1; | ||
338 | int/*waslong*/ r, L; | ||
339 | |||
340 | /* The suffix theString[k-1..N-1]; */ | ||
341 | const byte* const suff_k = theString+k-1; | ||
342 | /* Its length. */ | ||
343 | const int/*waslong*/ suff_k_len = N - k; | ||
344 | |||
345 | /* tail(head(k-1)) == theString[k-1 .. k-3+lastHeadLen] is */ | ||
346 | /* guaranteed to be a prefix of some string currently in the */ | ||
347 | /* tree. Rescan to find (or if necessary, create) the locus */ | ||
348 | /* of tail(head(k-1)) in the tree, setting d1 to that locus. */ | ||
349 | /* Set nextPrefix and nextPrefixLen for the next iteration. */ | ||
350 | /* The sentinel character is guaranteed not to be a part of */ | ||
351 | /* head(k-1). */ | ||
352 | |||
353 | d0 = d1= nextPrefix; | ||
354 | L = nextPrefixLen; | ||
355 | nextPrefix = Root; nextPrefixLen = 0; | ||
356 | while (L < lastHeadLen-1) { | ||
357 | Edge* e = edge(d0, suff_k[L], edgeMap, edges); | ||
358 | assert(e != NULL_EDGE); | ||
359 | d1 = e->to; | ||
360 | assert (d1 != Root); | ||
361 | r = inLength(d1, L); | ||
362 | if (r + L >= lastHeadLen) { | ||
363 | r = lastHeadLen - 1 - L; | ||
364 | splitEdge(e, k, L, r); | ||
365 | d1 = k; | ||
366 | break; | ||
367 | } | ||
368 | L += r; | ||
369 | d0 = d1; | ||
370 | assert (d1 <= N); | ||
371 | nextPrefix = suffix[d1]; | ||
372 | nextPrefixLen = L-1; | ||
373 | assert(! isTerminal(nextPrefix) && | ||
374 | (nextPrefix == Root) == (nextPrefixLen == 0)); | ||
375 | } | ||
376 | |||
377 | /* Estabish the suffix link for head(k-1). */ | ||
378 | assert (lastHead <= N); | ||
379 | if (suffix[lastHead] == Root) { | ||
380 | assert( !isTerminal(d1)); | ||
381 | suffix[lastHead] = d1; | ||
382 | } | ||
383 | |||
384 | /* Now scan down the tree from d1 until we "fall out" of the */ | ||
385 | /* tree. Insert a new leaf pointer (to a node representing */ | ||
386 | /* suff_k) at that point, also creating, if necessary, a */ | ||
387 | /* new nonterminal node if we fall out in the middle of an */ | ||
388 | /* edge. The node from which we insert the new leaf pointer */ | ||
389 | /* is the locus of head(k). Here, it is possible to run off */ | ||
390 | /* the end of suff_k. When this happens, we act as if */ | ||
391 | /* SENTINEL_CHAR were the offending character. */ | ||
392 | L = lastHeadLen == 0 ? 0 : lastHeadLen - 1; | ||
393 | d0 = d1; | ||
394 | while (true) { | ||
395 | int r0, i; | ||
396 | |||
397 | Edge* e = edge(d0, suff_k[L], edgeMap, edges); | ||
398 | d1 = e->to; | ||
399 | if (d1 == Root) | ||
400 | break; | ||
401 | r0 = inLength(d1, L); | ||
402 | |||
403 | if (r0+L > suff_k_len) | ||
404 | r = suff_k_len - L; | ||
405 | else | ||
406 | r = r0; | ||
407 | const byte* const suff_d1 = theString + suffixStart(d1); | ||
408 | for (i = 1; i < r && suff_k[L+i] == suff_d1[L+i]; i += 1) | ||
409 | {} | ||
410 | if (i == r0) { | ||
411 | L += r; | ||
412 | d0 = d1; | ||
413 | assert (d1 <= N); | ||
414 | nextPrefix = suffix[d1]; nextPrefixLen = L-1; | ||
415 | } else { | ||
416 | splitEdge(e, k, L, i); | ||
417 | d0 = d1 = k; | ||
418 | L += i; | ||
419 | break; | ||
420 | } | ||
421 | } | ||
422 | addLeaf(d0, toLeaf(k), L); | ||
423 | lastHead = d0; lastHeadLen = L; | ||
424 | } | ||
425 | |||
426 | delete [] suffix; | ||
427 | } | ||
diff --git a/xdelta1/doc/old/dcc99/exact-delta/suffix.h b/xdelta1/doc/old/dcc99/exact-delta/suffix.h deleted file mode 100755 index 249f0ad..0000000 --- a/xdelta1/doc/old/dcc99/exact-delta/suffix.h +++ /dev/null | |||
@@ -1,117 +0,0 @@ | |||
1 | /* -*-Mode: c++;-*- */ | ||
2 | |||
3 | /* $Header: /home/tully/hilfingr/work/delta/RCS/suffix.h,v 1.6 1995/08/11 07:24:10 hilfingr Exp $ */ | ||
4 | /* suffix.h: Definitions for suffix-tree data type. */ | ||
5 | |||
6 | /* Copyright (C) 1995, Paul N. Hilfinger. All Rights Reserved. */ | ||
7 | |||
8 | |||
9 | #ifndef _SUFFIX_H_ | ||
10 | #define _SUFFIX_H_ | ||
11 | |||
12 | #include <assert.h> | ||
13 | |||
14 | typedef unsigned char byte; | ||
15 | |||
16 | class Edge; /* Edge between two nodes. */ | ||
17 | |||
18 | void* allocate(int size); | ||
19 | |||
20 | class SuffixTree { | ||
21 | /* A suffix tree is the set of all suffixes of a particular string. */ | ||
22 | public: | ||
23 | /* The set { "" } (all suffixes of the empty string). Sets */ | ||
24 | /* string() to "" and length() to 0. */ | ||
25 | SuffixTree(); | ||
26 | |||
27 | SuffixTree(const SuffixTree& T); | ||
28 | |||
29 | ~SuffixTree(); | ||
30 | |||
31 | /* Set *this to a suffix tree for S[0..L-1]. */ | ||
32 | /* The string S must continue to exist and its contents remain */ | ||
33 | /* unchanged until the next application of init or until *this is */ | ||
34 | /* destroyed. Sets string() to S and length() to L. */ | ||
35 | void init(const byte* S, int/*waslong*/ L); | ||
36 | |||
37 | /* See definitions of default constructor and init (above). */ | ||
38 | const byte* string() const; | ||
39 | const int/*waslong*/ length() const; | ||
40 | |||
41 | /* Set LENGTH to the length of the longest prefix of S1[0..N1-1] that */ | ||
42 | /* occurs in string(), and START to an index in S1 of the */ | ||
43 | /* beginning of that prefix. */ | ||
44 | void longestPrefix(const byte* S1, int/*waslong*/ N1, | ||
45 | int/*waslong*/& start, int/*waslong*/& length) const; | ||
46 | private: | ||
47 | |||
48 | /* See suffix.cc for an explanation of the data structure. */ | ||
49 | |||
50 | typedef int/*waslong*/ NodeNum; | ||
51 | typedef int/*waslong*/ Length; | ||
52 | |||
53 | /* Extended bytes: Includes the notional end-of-string character. */ | ||
54 | typedef int xbyte; | ||
55 | |||
56 | const byte* theString; | ||
57 | /* Value of string(). */ | ||
58 | |||
59 | int N; /* strlen(theString)+1. */ | ||
60 | |||
61 | Length* inArcLen; /* inArcLen[k] is the length of the */ | ||
62 | /* string labeling the arc leading to */ | ||
63 | /* nonterminal node k. */ | ||
64 | |||
65 | Edge* edges; /* Array of all edges */ | ||
66 | Edge* nextEdge; /* Next free edge in edges */ | ||
67 | Edge** edgeMap; /* Hash table: NodeNum x char -> NodeNum. */ | ||
68 | |||
69 | /* See definitions in suffix.cc */ | ||
70 | |||
71 | Length suffixLength(NodeNum m) const; | ||
72 | bool isTerminal(NodeNum m) const; | ||
73 | int toStep(NodeNum m) const; | ||
74 | NodeNum toLeaf(int m) const; | ||
75 | Length inLength(NodeNum m, Length L) const; | ||
76 | NodeNum nextNode(NodeNum src, xbyte c) const; | ||
77 | int suffixStart(NodeNum m) const; | ||
78 | void splitEdge(Edge* e, NodeNum n2, Length L0, Length L2); | ||
79 | void addLeaf(NodeNum n0, NodeNum n1, Length L); | ||
80 | void createEdge(NodeNum n0, NodeNum n1, xbyte x); | ||
81 | |||
82 | void createSuffixTree(); | ||
83 | }; | ||
84 | |||
85 | inline const byte* SuffixTree::string() const | ||
86 | { | ||
87 | return theString; | ||
88 | } | ||
89 | |||
90 | void bail (void); | ||
91 | |||
92 | inline const int/*waslong*/ SuffixTree::length() const | ||
93 | { | ||
94 | return N-1; | ||
95 | } | ||
96 | |||
97 | typedef SuffixTree::NodeNum NodeNum; | ||
98 | typedef SuffixTree::xbyte xbyte; | ||
99 | typedef SuffixTree::Length Length; | ||
100 | |||
101 | class Edge { | ||
102 | public: | ||
103 | Edge() {} | ||
104 | Edge(NodeNum from0, NodeNum to0, int next0) | ||
105 | : from(from0), to(to0), next(next0) | ||
106 | { | ||
107 | assert (to0 >= 0); | ||
108 | assert (from0 >= 0); | ||
109 | } | ||
110 | |||
111 | NodeNum from, to; /* Source and sink nodes. */ | ||
112 | |||
113 | int next; | ||
114 | }; | ||
115 | |||
116 | |||
117 | #endif | ||
diff --git a/xdelta1/doc/old/dcc99/figs/CVS/Entries b/xdelta1/doc/old/dcc99/figs/CVS/Entries deleted file mode 100755 index ee36796..0000000 --- a/xdelta1/doc/old/dcc99/figs/CVS/Entries +++ /dev/null | |||
@@ -1,23 +0,0 @@ | |||
1 | /bigsizes.eps/1.1.1.1/Tue Jun 12 03:16:40 2001/-ko/ | ||
2 | /dependency.eps/1.1.1.1/Tue Jun 12 03:16:40 2001/-ko/ | ||
3 | /dependency.fig/1.1.1.1/Tue Jun 12 03:16:40 2001/-ko/ | ||
4 | /dependency.fig.normalsize/1.1.1.1/Tue Jun 12 03:16:40 2001/-ko/ | ||
5 | /jumping.eps/1.1.1.1/Tue Jun 12 03:16:40 2001/-ko/ | ||
6 | /jumping.fig/1.1.1.1/Tue Jun 12 03:16:40 2001/-ko/ | ||
7 | /normalize.fig/1.1.1.1/Tue Jun 12 03:16:40 2001/-ko/ | ||
8 | /onestep.eps/1.1.1.1/Tue Jun 12 03:16:40 2001/-ko/ | ||
9 | /onestep.fig/1.1.1.1/Tue Jun 12 03:16:40 2001/-ko/ | ||
10 | /onestep.fig.normalsize/1.1.1.1/Tue Jun 12 03:16:40 2001/-ko/ | ||
11 | /rcs.eps/1.1.1.1/Tue Jun 12 03:16:40 2001/-ko/ | ||
12 | /rcs.fig/1.1.1.1/Tue Jun 12 03:16:40 2001/-ko/ | ||
13 | /sizes.eps/1.1.1.1/Tue Jun 12 03:16:40 2001/-ko/ | ||
14 | /strings.eps/1.1.1.1/Tue Jun 12 03:16:40 2001/-ko/ | ||
15 | /strings.fig/1.1.1.1/Tue Jun 12 03:16:40 2001/-ko/ | ||
16 | /strings.fig.normalsize/1.1.1.1/Tue Jun 12 03:16:40 2001/-ko/ | ||
17 | /strings.fig.normalsize.eps/1.1.1.1/Tue Jun 12 03:16:40 2001/-ko/ | ||
18 | /xdarchive.eps/1.1.1.1/Tue Jun 12 03:16:40 2001/-ko/ | ||
19 | /xdarchive.fig/1.1.1.1/Tue Jun 12 03:16:40 2001/-ko/ | ||
20 | /xdarchive.fig.normalsize/1.1.1.1/Tue Jun 12 03:16:40 2001/-ko/ | ||
21 | /xdelta.eps/1.1.1.1/Tue Jun 12 03:16:40 2001/-ko/ | ||
22 | /xdelta.fig/1.1.1.1/Tue Jun 12 03:16:40 2001/-ko/ | ||
23 | D | ||
diff --git a/xdelta1/doc/old/dcc99/figs/CVS/Repository b/xdelta1/doc/old/dcc99/figs/CVS/Repository deleted file mode 100755 index 878929c..0000000 --- a/xdelta1/doc/old/dcc99/figs/CVS/Repository +++ /dev/null | |||
@@ -1 +0,0 @@ | |||
1 | xdelta11/xdelta11/doc/dcc99/figs | ||
diff --git a/xdelta1/doc/old/dcc99/figs/CVS/Root b/xdelta1/doc/old/dcc99/figs/CVS/Root deleted file mode 100755 index 645ccf1..0000000 --- a/xdelta1/doc/old/dcc99/figs/CVS/Root +++ /dev/null | |||
@@ -1 +0,0 @@ | |||
1 | :ext:jmacd@cvs.xdelta.sourceforge.net:/cvsroot/xdelta | ||
diff --git a/xdelta1/doc/old/dcc99/figs/bigsizes.eps b/xdelta1/doc/old/dcc99/figs/bigsizes.eps deleted file mode 100755 index 271f7f9..0000000 --- a/xdelta1/doc/old/dcc99/figs/bigsizes.eps +++ /dev/null | |||
@@ -1,766 +0,0 @@ | |||
1 | %!PS-Adobe-3.0 EPSF-3.0 | ||
2 | %%Creator: MATLAB, The Mathworks, Inc. | ||
3 | %%Title: ../figs/bigsizes.eps | ||
4 | %%CreationDate: 11/14/98 05:04:11 | ||
5 | %%DocumentNeededFonts: Helvetica | ||
6 | %%DocumentProcessColors: Cyan Magenta Yellow Black | ||
7 | %%LanguageLevel: 2 | ||
8 | %%Pages: 1 | ||
9 | %%BoundingBox: 70 196 550 600 | ||
10 | %%EndComments | ||
11 | |||
12 | %%BeginProlog | ||
13 | |||
14 | % MathWorks dictionary | ||
15 | /MathWorks 150 dict begin | ||
16 | |||
17 | % definition operators | ||
18 | /bdef {bind def} bind def | ||
19 | /ldef {load def} bind def | ||
20 | /xdef {exch def} bdef | ||
21 | /xstore {exch store} bdef | ||
22 | |||
23 | % operator abbreviations | ||
24 | /c /clip ldef | ||
25 | /cc /concat ldef | ||
26 | /cp /closepath ldef | ||
27 | /gr /grestore ldef | ||
28 | /gs /gsave ldef | ||
29 | /mt /moveto ldef | ||
30 | /np /newpath ldef | ||
31 | /cm /currentmatrix ldef | ||
32 | /sm /setmatrix ldef | ||
33 | /rc {rectclip} bdef | ||
34 | /rf {rectfill} bdef | ||
35 | /rm /rmoveto ldef | ||
36 | /rl /rlineto ldef | ||
37 | /s /show ldef | ||
38 | /sc {setcmykcolor} bdef | ||
39 | /sr /setrgbcolor ldef | ||
40 | /sg /setgray ldef | ||
41 | /w /setlinewidth ldef | ||
42 | /j /setlinejoin ldef | ||
43 | /cap /setlinecap ldef | ||
44 | |||
45 | % page state control | ||
46 | /pgsv () def | ||
47 | /bpage {/pgsv save def} bdef | ||
48 | /epage {pgsv restore} bdef | ||
49 | /bplot /gsave ldef | ||
50 | /eplot {stroke grestore} bdef | ||
51 | |||
52 | % orientation switch | ||
53 | /portraitMode 0 def | ||
54 | /landscapeMode 1 def | ||
55 | |||
56 | % coordinate system mappings | ||
57 | /dpi2point 0 def | ||
58 | |||
59 | % font control | ||
60 | /FontSize 0 def | ||
61 | /FMS { | ||
62 | /FontSize xstore %save size off stack | ||
63 | findfont | ||
64 | [FontSize 0 0 FontSize neg 0 0] | ||
65 | makefont | ||
66 | setfont | ||
67 | }bdef | ||
68 | |||
69 | /reencode { | ||
70 | exch dup where | ||
71 | {pop load} {pop StandardEncoding} ifelse | ||
72 | exch | ||
73 | dup 3 1 roll | ||
74 | findfont dup length dict begin | ||
75 | { 1 index /FID ne {def}{pop pop} ifelse } forall | ||
76 | /Encoding exch def | ||
77 | currentdict | ||
78 | end | ||
79 | definefont pop | ||
80 | } bdef | ||
81 | |||
82 | /isroman { | ||
83 | findfont /CharStrings get | ||
84 | /Agrave known | ||
85 | } bdef | ||
86 | |||
87 | /FMSR { | ||
88 | 3 1 roll 1 index | ||
89 | dup isroman | ||
90 | {reencode} {pop pop} ifelse | ||
91 | exch FMS | ||
92 | } bdef | ||
93 | |||
94 | /csm { | ||
95 | 1 dpi2point div -1 dpi2point div scale | ||
96 | neg translate | ||
97 | landscapeMode eq {90 rotate} if | ||
98 | } bdef | ||
99 | |||
100 | % line types: solid, dotted, dashed, dotdash | ||
101 | /SO { [] 0 setdash } bdef | ||
102 | /DO { [.5 dpi2point mul 4 dpi2point mul] 0 setdash } bdef | ||
103 | /DA { [6 dpi2point mul] 0 setdash } bdef | ||
104 | /DD { [.5 dpi2point mul 4 dpi2point mul 6 dpi2point mul 4 dpi2point mul] 0 setdash } bdef | ||
105 | |||
106 | % macros for lines and objects | ||
107 | /L { | ||
108 | lineto | ||
109 | stroke | ||
110 | } bdef | ||
111 | /MP { | ||
112 | 3 1 roll moveto | ||
113 | 1 sub {rlineto} repeat | ||
114 | } bdef | ||
115 | /AP { | ||
116 | {rlineto} repeat | ||
117 | } bdef | ||
118 | /PP { | ||
119 | closepath eofill | ||
120 | } bdef | ||
121 | /DP { | ||
122 | closepath stroke | ||
123 | } bdef | ||
124 | /MR { | ||
125 | 4 -2 roll moveto | ||
126 | dup 0 exch rlineto | ||
127 | exch 0 rlineto | ||
128 | neg 0 exch rlineto | ||
129 | closepath | ||
130 | } bdef | ||
131 | /FR { | ||
132 | MR stroke | ||
133 | } bdef | ||
134 | /PR { | ||
135 | MR fill | ||
136 | } bdef | ||
137 | /L1i { | ||
138 | { currentfile picstr readhexstring pop } image | ||
139 | } bdef | ||
140 | |||
141 | /tMatrix matrix def | ||
142 | /MakeOval { | ||
143 | newpath | ||
144 | tMatrix currentmatrix pop | ||
145 | translate scale | ||
146 | 0 0 1 0 360 arc | ||
147 | tMatrix setmatrix | ||
148 | } bdef | ||
149 | /FO { | ||
150 | MakeOval | ||
151 | stroke | ||
152 | } bdef | ||
153 | /PO { | ||
154 | MakeOval | ||
155 | fill | ||
156 | } bdef | ||
157 | |||
158 | /PD { | ||
159 | currentlinecap 1 setlinecap 3 1 roll 2 copy moveto lineto stroke setlinecap | ||
160 | } bdef | ||
161 | |||
162 | /FA { | ||
163 | newpath | ||
164 | tMatrix currentmatrix pop | ||
165 | translate scale | ||
166 | 0 0 1 5 -2 roll arc | ||
167 | tMatrix setmatrix | ||
168 | stroke | ||
169 | } bdef | ||
170 | /PA { | ||
171 | newpath | ||
172 | tMatrix currentmatrix pop | ||
173 | translate 0 0 moveto scale | ||
174 | 0 0 1 5 -2 roll arc | ||
175 | closepath | ||
176 | tMatrix setmatrix | ||
177 | fill | ||
178 | } bdef | ||
179 | |||
180 | |||
181 | /FAn { | ||
182 | newpath | ||
183 | tMatrix currentmatrix pop | ||
184 | translate scale | ||
185 | 0 0 1 5 -2 roll arcn | ||
186 | tMatrix setmatrix | ||
187 | stroke | ||
188 | } bdef | ||
189 | /PAn { | ||
190 | newpath | ||
191 | tMatrix currentmatrix pop | ||
192 | translate 0 0 moveto scale | ||
193 | 0 0 1 5 -2 roll arcn | ||
194 | closepath | ||
195 | tMatrix setmatrix | ||
196 | fill | ||
197 | } bdef | ||
198 | |||
199 | |||
200 | |||
201 | currentdict end def | ||
202 | %%EndProlog | ||
203 | |||
204 | %%BeginSetup | ||
205 | MathWorks begin | ||
206 | |||
207 | 0 cap | ||
208 | |||
209 | end | ||
210 | %%EndSetup | ||
211 | |||
212 | %%Page: 1 1 | ||
213 | %%BeginPageSetup | ||
214 | %%PageBoundingBox: 70 196 550 600 | ||
215 | MathWorks begin | ||
216 | bpage | ||
217 | %%EndPageSetup | ||
218 | |||
219 | %%BeginObject: graph1 1 | ||
220 | bplot | ||
221 | |||
222 | /dpi2point 12 def | ||
223 | portraitMode 0216 7344 csm | ||
224 | |||
225 | 633 133 5756 4856 rc | ||
226 | 88 dict begin %Colortable dictionary | ||
227 | /c0 { 0 0 0 sr} bdef | ||
228 | /c1 { 1 1 1 sr} bdef | ||
229 | /c2 { 1 0 0 sr} bdef | ||
230 | /c3 { 0 1 0 sr} bdef | ||
231 | /c4 { 0 0 1 sr} bdef | ||
232 | /c5 { 1 1 0 sr} bdef | ||
233 | /c6 { 1 0 1 sr} bdef | ||
234 | /c7 { 0 1 1 sr} bdef | ||
235 | 1 j | ||
236 | 1 sg | ||
237 | 0 0 6916 5185 rf | ||
238 | 6 w | ||
239 | 0 4225 5358 0 0 -4225 899 4613 4 MP | ||
240 | PP | ||
241 | -5358 0 0 4225 5358 0 0 -4225 899 4613 5 MP stroke | ||
242 | DO | ||
243 | 4 w | ||
244 | SO | ||
245 | 6 w | ||
246 | 0 sg | ||
247 | 899 4613 mt 6257 4613 L | ||
248 | 899 388 mt 6257 388 L | ||
249 | 899 4613 mt 899 388 L | ||
250 | 6257 4613 mt 6257 388 L | ||
251 | 899 4613 mt 6257 4613 L | ||
252 | 899 4613 mt 899 388 L | ||
253 | 899 4613 mt 899 4559 L | ||
254 | 899 388 mt 899 442 L | ||
255 | %%IncludeResource: font Helvetica | ||
256 | /Helvetica /ISOLatin1Encoding 120 FMSR | ||
257 | |||
258 | 816 4759 mt | ||
259 | (2.4) s | ||
260 | 1664 4613 mt 1664 4559 L | ||
261 | 1664 388 mt 1664 442 L | ||
262 | 1581 4759 mt | ||
263 | (2.5) s | ||
264 | 2430 4613 mt 2430 4559 L | ||
265 | 2430 388 mt 2430 442 L | ||
266 | 2347 4759 mt | ||
267 | (2.6) s | ||
268 | 3195 4613 mt 3195 4559 L | ||
269 | 3195 388 mt 3195 442 L | ||
270 | 3112 4759 mt | ||
271 | (2.7) s | ||
272 | 3961 4613 mt 3961 4559 L | ||
273 | 3961 388 mt 3961 442 L | ||
274 | 3878 4759 mt | ||
275 | (2.8) s | ||
276 | 4726 4613 mt 4726 4559 L | ||
277 | 4726 388 mt 4726 442 L | ||
278 | 4643 4759 mt | ||
279 | (2.9) s | ||
280 | 5492 4613 mt 5492 4559 L | ||
281 | 5492 388 mt 5492 442 L | ||
282 | 5459 4759 mt | ||
283 | (3) s | ||
284 | 6257 4613 mt 6257 4559 L | ||
285 | 6257 388 mt 6257 442 L | ||
286 | 6174 4759 mt | ||
287 | (3.1) s | ||
288 | 5987 4961 mt | ||
289 | (x 10) s | ||
290 | %%IncludeResource: font Helvetica | ||
291 | /Helvetica /ISOLatin1Encoding 80 FMSR | ||
292 | |||
293 | 6213 4887 mt | ||
294 | (7) s | ||
295 | 899 4613 mt 953 4613 L | ||
296 | 6257 4613 mt 6203 4613 L | ||
297 | %%IncludeResource: font Helvetica | ||
298 | /Helvetica /ISOLatin1Encoding 120 FMSR | ||
299 | |||
300 | 798 4657 mt | ||
301 | (0) s | ||
302 | 899 4085 mt 953 4085 L | ||
303 | 6257 4085 mt 6203 4085 L | ||
304 | 798 4129 mt | ||
305 | (1) s | ||
306 | 899 3557 mt 953 3557 L | ||
307 | 6257 3557 mt 6203 3557 L | ||
308 | 798 3601 mt | ||
309 | (2) s | ||
310 | 899 3029 mt 953 3029 L | ||
311 | 6257 3029 mt 6203 3029 L | ||
312 | 798 3073 mt | ||
313 | (3) s | ||
314 | 899 2501 mt 953 2501 L | ||
315 | 6257 2501 mt 6203 2501 L | ||
316 | 798 2545 mt | ||
317 | (4) s | ||
318 | 899 1972 mt 953 1972 L | ||
319 | 6257 1972 mt 6203 1972 L | ||
320 | 798 2016 mt | ||
321 | (5) s | ||
322 | 899 1444 mt 953 1444 L | ||
323 | 6257 1444 mt 6203 1444 L | ||
324 | 798 1488 mt | ||
325 | (6) s | ||
326 | 899 916 mt 953 916 L | ||
327 | 6257 916 mt 6203 916 L | ||
328 | 798 960 mt | ||
329 | (7) s | ||
330 | 899 388 mt 953 388 L | ||
331 | 6257 388 mt 6203 388 L | ||
332 | 798 432 mt | ||
333 | (8) s | ||
334 | 899 334 mt | ||
335 | (x 10) s | ||
336 | %%IncludeResource: font Helvetica | ||
337 | /Helvetica /ISOLatin1Encoding 80 FMSR | ||
338 | |||
339 | 1125 260 mt | ||
340 | (6) s | ||
341 | 899 4613 mt 6257 4613 L | ||
342 | 899 388 mt 6257 388 L | ||
343 | 899 4613 mt 899 388 L | ||
344 | 6257 4613 mt 6257 388 L | ||
345 | gs 899 388 5359 4226 rc | ||
346 | |||
347 | gr | ||
348 | /c8 { 1.000000 0.000000 0.000000 sr} bdef | ||
349 | c8 | ||
350 | 36 36 1316 4567 FO | ||
351 | 36 36 1309 4567 FO | ||
352 | 36 36 1316 4567 FO | ||
353 | 36 36 1309 4567 FO | ||
354 | 36 36 1332 4306 FO | ||
355 | 36 36 1316 4299 FO | ||
356 | 36 36 1332 4306 FO | ||
357 | 36 36 1316 4299 FO | ||
358 | 36 36 1340 4312 FO | ||
359 | 36 36 1332 4298 FO | ||
360 | 36 36 1340 4312 FO | ||
361 | 36 36 1332 4298 FO | ||
362 | 36 36 1371 3970 FO | ||
363 | 36 36 1340 3954 FO | ||
364 | 36 36 1371 3970 FO | ||
365 | 36 36 1340 3954 FO | ||
366 | 36 36 1410 3648 FO | ||
367 | 36 36 1371 3626 FO | ||
368 | 36 36 1410 3648 FO | ||
369 | 36 36 1371 3626 FO | ||
370 | 36 36 1418 4170 FO | ||
371 | 36 36 1410 4172 FO | ||
372 | 36 36 1418 4170 FO | ||
373 | 36 36 1410 4172 FO | ||
374 | 36 36 1497 2565 FO | ||
375 | 36 36 1418 2544 FO | ||
376 | 36 36 1497 2565 FO | ||
377 | 36 36 1418 2544 FO | ||
378 | 36 36 1794 3218 FO | ||
379 | 36 36 1497 3247 FO | ||
380 | 36 36 1794 3218 FO | ||
381 | 36 36 1497 3247 FO | ||
382 | 36 36 2116 1054 FO | ||
383 | 36 36 1794 1092 FO | ||
384 | 36 36 2116 1054 FO | ||
385 | 36 36 1794 1092 FO | ||
386 | 36 36 2116 4064 FO | ||
387 | 36 36 2116 4083 FO | ||
388 | 36 36 2116 4064 FO | ||
389 | 36 36 2116 4083 FO | ||
390 | 36 36 2265 2045 FO | ||
391 | 36 36 2116 2040 FO | ||
392 | 36 36 2265 2045 FO | ||
393 | 36 36 2116 2040 FO | ||
394 | 36 36 2288 4268 FO | ||
395 | 36 36 2265 4259 FO | ||
396 | 36 36 2288 4268 FO | ||
397 | 36 36 2265 4259 FO | ||
398 | 36 36 2280 4535 FO | ||
399 | 36 36 2288 4540 FO | ||
400 | 36 36 2280 4535 FO | ||
401 | 36 36 2288 4540 FO | ||
402 | 36 36 2273 4211 FO | ||
403 | 36 36 2280 4204 FO | ||
404 | 36 36 2273 4211 FO | ||
405 | 36 36 2280 4204 FO | ||
406 | 36 36 2876 1293 FO | ||
407 | 36 36 2273 1396 FO | ||
408 | 36 36 2876 1293 FO | ||
409 | 36 36 2273 1396 FO | ||
410 | 36 36 3621 962 FO | ||
411 | 36 36 2876 1071 FO | ||
412 | 36 36 3621 962 FO | ||
413 | 36 36 2876 1071 FO | ||
414 | 36 36 4162 856 FO | ||
415 | 36 36 3621 925 FO | ||
416 | 36 36 4162 856 FO | ||
417 | 36 36 3621 925 FO | ||
418 | 36 36 4154 4334 FO | ||
419 | 36 36 4162 4325 FO | ||
420 | 36 36 4154 4334 FO | ||
421 | 36 36 4162 4325 FO | ||
422 | 36 36 4444 1191 FO | ||
423 | 36 36 4154 1222 FO | ||
424 | 36 36 4444 1191 FO | ||
425 | 36 36 4154 1222 FO | ||
426 | 36 36 4538 3486 FO | ||
427 | 36 36 4444 3467 FO | ||
428 | 36 36 4538 3486 FO | ||
429 | 36 36 4444 3467 FO | ||
430 | 36 36 4459 3361 FO | ||
431 | 36 36 4538 3360 FO | ||
432 | 36 36 4459 3361 FO | ||
433 | 36 36 4538 3360 FO | ||
434 | 36 36 4467 4222 FO | ||
435 | 36 36 4459 4215 FO | ||
436 | 36 36 4467 4222 FO | ||
437 | 36 36 4459 4215 FO | ||
438 | 36 36 4875 604 FO | ||
439 | 36 36 4467 650 FO | ||
440 | 36 36 4875 604 FO | ||
441 | 36 36 4467 650 FO | ||
442 | 36 36 4875 4589 FO | ||
443 | 36 36 4875 4588 FO | ||
444 | 36 36 4875 4589 FO | ||
445 | 36 36 4875 4588 FO | ||
446 | 36 36 5212 1088 FO | ||
447 | 36 36 4875 1134 FO | ||
448 | 36 36 5212 1088 FO | ||
449 | 36 36 4875 1134 FO | ||
450 | 36 36 5212 4554 FO | ||
451 | 36 36 5212 4552 FO | ||
452 | 36 36 5212 4554 FO | ||
453 | 36 36 5212 4552 FO | ||
454 | 36 36 5627 1945 FO | ||
455 | 36 36 5212 1983 FO | ||
456 | 36 36 5627 1945 FO | ||
457 | 36 36 5212 1983 FO | ||
458 | 36 36 5996 2577 FO | ||
459 | 36 36 5627 2616 FO | ||
460 | 36 36 5996 2577 FO | ||
461 | 36 36 5627 2616 FO | ||
462 | 36 36 6168 1397 FO | ||
463 | 36 36 5996 1388 FO | ||
464 | gs 899 388 5359 4226 rc | ||
465 | |||
466 | gr | ||
467 | 0 j | ||
468 | 0 -58 -58 0 0 58 58 0 1287 4576 5 MP | ||
469 | /c9 { 0.000000 0.000000 1.000000 sr} bdef | ||
470 | c9 | ||
471 | DP | ||
472 | 0 -58 -58 0 0 58 58 0 1280 4577 5 MP | ||
473 | DP | ||
474 | 0 -58 -58 0 0 58 58 0 1287 4576 5 MP | ||
475 | DP | ||
476 | 0 -58 -58 0 0 58 58 0 1280 4577 5 MP | ||
477 | DP | ||
478 | 0 -58 -58 0 0 58 58 0 1303 4571 5 MP | ||
479 | DP | ||
480 | 0 -58 -58 0 0 58 58 0 1287 4574 5 MP | ||
481 | DP | ||
482 | 0 -58 -58 0 0 58 58 0 1303 4571 5 MP | ||
483 | DP | ||
484 | 0 -58 -58 0 0 58 58 0 1287 4574 5 MP | ||
485 | DP | ||
486 | 0 -58 -58 0 0 58 58 0 1311 4576 5 MP | ||
487 | DP | ||
488 | 0 -58 -58 0 0 58 58 0 1303 4578 5 MP | ||
489 | DP | ||
490 | 0 -58 -58 0 0 58 58 0 1311 4576 5 MP | ||
491 | DP | ||
492 | 0 -58 -58 0 0 58 58 0 1303 4578 5 MP | ||
493 | DP | ||
494 | 0 -58 -58 0 0 58 58 0 1342 4552 5 MP | ||
495 | DP | ||
496 | 0 -58 -58 0 0 58 58 0 1311 4558 5 MP | ||
497 | DP | ||
498 | 0 -58 -58 0 0 58 58 0 1342 4552 5 MP | ||
499 | DP | ||
500 | 0 -58 -58 0 0 58 58 0 1311 4558 5 MP | ||
501 | DP | ||
502 | 0 -58 -58 0 0 58 58 0 1381 4576 5 MP | ||
503 | DP | ||
504 | 0 -58 -58 0 0 58 58 0 1342 4581 5 MP | ||
505 | DP | ||
506 | 0 -58 -58 0 0 58 58 0 1381 4576 5 MP | ||
507 | DP | ||
508 | 0 -58 -58 0 0 58 58 0 1342 4581 5 MP | ||
509 | DP | ||
510 | 0 -58 -58 0 0 58 58 0 1389 4527 5 MP | ||
511 | DP | ||
512 | 0 -58 -58 0 0 58 58 0 1381 4532 5 MP | ||
513 | DP | ||
514 | 0 -58 -58 0 0 58 58 0 1389 4527 5 MP | ||
515 | DP | ||
516 | 0 -58 -58 0 0 58 58 0 1381 4532 5 MP | ||
517 | DP | ||
518 | 0 -58 -58 0 0 58 58 0 1468 4562 5 MP | ||
519 | DP | ||
520 | 0 -58 -58 0 0 58 58 0 1389 4571 5 MP | ||
521 | DP | ||
522 | 0 -58 -58 0 0 58 58 0 1468 4562 5 MP | ||
523 | DP | ||
524 | 0 -58 -58 0 0 58 58 0 1389 4571 5 MP | ||
525 | DP | ||
526 | 0 -58 -58 0 0 58 58 0 1765 4493 5 MP | ||
527 | DP | ||
528 | 0 -58 -58 0 0 58 58 0 1468 4538 5 MP | ||
529 | DP | ||
530 | 0 -58 -58 0 0 58 58 0 1765 4493 5 MP | ||
531 | DP | ||
532 | 0 -58 -58 0 0 58 58 0 1468 4538 5 MP | ||
533 | DP | ||
534 | 0 -58 -58 0 0 58 58 0 2087 4489 5 MP | ||
535 | DP | ||
536 | 0 -58 -58 0 0 58 58 0 1765 4538 5 MP | ||
537 | DP | ||
538 | 0 -58 -58 0 0 58 58 0 2087 4489 5 MP | ||
539 | DP | ||
540 | 0 -58 -58 0 0 58 58 0 1765 4538 5 MP | ||
541 | DP | ||
542 | 0 -58 -58 0 0 58 58 0 2087 4565 5 MP | ||
543 | DP | ||
544 | 0 -58 -58 0 0 58 58 0 2087 4563 5 MP | ||
545 | DP | ||
546 | 0 -58 -58 0 0 58 58 0 2087 4565 5 MP | ||
547 | DP | ||
548 | 0 -58 -58 0 0 58 58 0 2087 4563 5 MP | ||
549 | DP | ||
550 | 0 -58 -58 0 0 58 58 0 2236 4546 5 MP | ||
551 | DP | ||
552 | 0 -58 -58 0 0 58 58 0 2087 4573 5 MP | ||
553 | DP | ||
554 | 0 -58 -58 0 0 58 58 0 2236 4546 5 MP | ||
555 | DP | ||
556 | 0 -58 -58 0 0 58 58 0 2087 4573 5 MP | ||
557 | DP | ||
558 | 0 -58 -58 0 0 58 58 0 2259 4568 5 MP | ||
559 | DP | ||
560 | 0 -58 -58 0 0 58 58 0 2236 4571 5 MP | ||
561 | DP | ||
562 | 0 -58 -58 0 0 58 58 0 2259 4568 5 MP | ||
563 | DP | ||
564 | 0 -58 -58 0 0 58 58 0 2236 4571 5 MP | ||
565 | DP | ||
566 | 0 -58 -58 0 0 58 58 0 2251 4578 5 MP | ||
567 | DP | ||
568 | 0 -58 -58 0 0 58 58 0 2259 4576 5 MP | ||
569 | DP | ||
570 | 0 -58 -58 0 0 58 58 0 2251 4578 5 MP | ||
571 | DP | ||
572 | 0 -58 -58 0 0 58 58 0 2259 4576 5 MP | ||
573 | DP | ||
574 | 0 -58 -58 0 0 58 58 0 2244 4561 5 MP | ||
575 | DP | ||
576 | 0 -58 -58 0 0 58 58 0 2251 4561 5 MP | ||
577 | DP | ||
578 | 0 -58 -58 0 0 58 58 0 2244 4561 5 MP | ||
579 | DP | ||
580 | 0 -58 -58 0 0 58 58 0 2251 4561 5 MP | ||
581 | DP | ||
582 | 0 -58 -58 0 0 58 58 0 2847 4416 5 MP | ||
583 | DP | ||
584 | 0 -58 -58 0 0 58 58 0 2244 4502 5 MP | ||
585 | DP | ||
586 | 0 -58 -58 0 0 58 58 0 2847 4416 5 MP | ||
587 | DP | ||
588 | 0 -58 -58 0 0 58 58 0 2244 4502 5 MP | ||
589 | DP | ||
590 | 0 -58 -58 0 0 58 58 0 3592 4417 5 MP | ||
591 | DP | ||
592 | 0 -58 -58 0 0 58 58 0 2847 4524 5 MP | ||
593 | DP | ||
594 | 0 -58 -58 0 0 58 58 0 3592 4417 5 MP | ||
595 | DP | ||
596 | 0 -58 -58 0 0 58 58 0 2847 4524 5 MP | ||
597 | DP | ||
598 | 0 -58 -58 0 0 58 58 0 4133 4428 5 MP | ||
599 | DP | ||
600 | 0 -58 -58 0 0 58 58 0 3592 4505 5 MP | ||
601 | DP | ||
602 | 0 -58 -58 0 0 58 58 0 4133 4428 5 MP | ||
603 | DP | ||
604 | 0 -58 -58 0 0 58 58 0 3592 4505 5 MP | ||
605 | DP | ||
606 | 0 -58 -58 0 0 58 58 0 4125 4553 5 MP | ||
607 | DP | ||
608 | 0 -58 -58 0 0 58 58 0 4133 4550 5 MP | ||
609 | DP | ||
610 | 0 -58 -58 0 0 58 58 0 4125 4553 5 MP | ||
611 | DP | ||
612 | 0 -58 -58 0 0 58 58 0 4133 4550 5 MP | ||
613 | DP | ||
614 | 0 -58 -58 0 0 58 58 0 4415 4546 5 MP | ||
615 | DP | ||
616 | 0 -58 -58 0 0 58 58 0 4125 4560 5 MP | ||
617 | DP | ||
618 | 0 -58 -58 0 0 58 58 0 4415 4546 5 MP | ||
619 | DP | ||
620 | 0 -58 -58 0 0 58 58 0 4125 4560 5 MP | ||
621 | DP | ||
622 | 0 -58 -58 0 0 58 58 0 4509 4537 5 MP | ||
623 | DP | ||
624 | 0 -58 -58 0 0 58 58 0 4415 4550 5 MP | ||
625 | DP | ||
626 | 0 -58 -58 0 0 58 58 0 4509 4537 5 MP | ||
627 | DP | ||
628 | 0 -58 -58 0 0 58 58 0 4415 4550 5 MP | ||
629 | DP | ||
630 | 0 -58 -58 0 0 58 58 0 4430 4568 5 MP | ||
631 | DP | ||
632 | 0 -58 -58 0 0 58 58 0 4509 4560 5 MP | ||
633 | DP | ||
634 | 0 -58 -58 0 0 58 58 0 4430 4568 5 MP | ||
635 | DP | ||
636 | 0 -58 -58 0 0 58 58 0 4509 4560 5 MP | ||
637 | DP | ||
638 | 0 -58 -58 0 0 58 58 0 4438 4554 5 MP | ||
639 | DP | ||
640 | 0 -58 -58 0 0 58 58 0 4430 4556 5 MP | ||
641 | DP | ||
642 | 0 -58 -58 0 0 58 58 0 4438 4554 5 MP | ||
643 | DP | ||
644 | 0 -58 -58 0 0 58 58 0 4430 4556 5 MP | ||
645 | DP | ||
646 | 0 -58 -58 0 0 58 58 0 4846 4459 5 MP | ||
647 | DP | ||
648 | 0 -58 -58 0 0 58 58 0 4438 4529 5 MP | ||
649 | DP | ||
650 | 0 -58 -58 0 0 58 58 0 4846 4459 5 MP | ||
651 | DP | ||
652 | 0 -58 -58 0 0 58 58 0 4438 4529 5 MP | ||
653 | DP | ||
654 | 0 -58 -58 0 0 58 58 0 4846 4578 5 MP | ||
655 | DP | ||
656 | 0 -58 -58 0 0 58 58 0 4846 4579 5 MP | ||
657 | DP | ||
658 | 0 -58 -58 0 0 58 58 0 4846 4578 5 MP | ||
659 | DP | ||
660 | 0 -58 -58 0 0 58 58 0 4846 4579 5 MP | ||
661 | DP | ||
662 | 0 -58 -58 0 0 58 58 0 5183 4487 5 MP | ||
663 | DP | ||
664 | 0 -58 -58 0 0 58 58 0 4846 4545 5 MP | ||
665 | DP | ||
666 | 0 -58 -58 0 0 58 58 0 5183 4487 5 MP | ||
667 | DP | ||
668 | 0 -58 -58 0 0 58 58 0 4846 4545 5 MP | ||
669 | DP | ||
670 | 0 -58 -58 0 0 58 58 0 5183 4574 5 MP | ||
671 | DP | ||
672 | 0 -58 -58 0 0 58 58 0 5183 4575 5 MP | ||
673 | DP | ||
674 | 0 -58 -58 0 0 58 58 0 5183 4574 5 MP | ||
675 | DP | ||
676 | 0 -58 -58 0 0 58 58 0 5183 4575 5 MP | ||
677 | DP | ||
678 | 0 -58 -58 0 0 58 58 0 5598 4482 5 MP | ||
679 | DP | ||
680 | 0 -58 -58 0 0 58 58 0 5183 4534 5 MP | ||
681 | DP | ||
682 | 0 -58 -58 0 0 58 58 0 5598 4482 5 MP | ||
683 | DP | ||
684 | 0 -58 -58 0 0 58 58 0 5183 4534 5 MP | ||
685 | DP | ||
686 | 0 -58 -58 0 0 58 58 0 5967 4487 5 MP | ||
687 | DP | ||
688 | 0 -58 -58 0 0 58 58 0 5598 4541 5 MP | ||
689 | DP | ||
690 | 0 -58 -58 0 0 58 58 0 5967 4487 5 MP | ||
691 | DP | ||
692 | 0 -58 -58 0 0 58 58 0 5598 4541 5 MP | ||
693 | DP | ||
694 | 0 -58 -58 0 0 58 58 0 6139 4533 5 MP | ||
695 | DP | ||
696 | 0 -58 -58 0 0 58 58 0 5967 4560 5 MP | ||
697 | DP | ||
698 | gs 899 388 5359 4226 rc | ||
699 | |||
700 | gr | ||
701 | 0 sg | ||
702 | %%IncludeResource: font Helvetica | ||
703 | /Helvetica /ISOLatin1Encoding 120 FMSR | ||
704 | |||
705 | 744 2970 mt -90 rotate | ||
706 | (Delta Size \(bytes\)) s | ||
707 | 90 rotate | ||
708 | 3066 4901 mt | ||
709 | (To File Size \(bytes\)) s | ||
710 | 1 sg | ||
711 | 0 369 1239 0 0 -369 4880 861 4 MP | ||
712 | PP | ||
713 | -1239 0 0 369 1239 0 0 -369 4880 861 5 MP stroke | ||
714 | DO | ||
715 | 4 w | ||
716 | SO | ||
717 | 6 w | ||
718 | 0 sg | ||
719 | 4880 861 mt 6119 861 L | ||
720 | 4880 492 mt 6119 492 L | ||
721 | 4880 861 mt 4880 492 L | ||
722 | 6119 861 mt 6119 492 L | ||
723 | 4880 861 mt 6119 861 L | ||
724 | 4880 861 mt 4880 492 L | ||
725 | 4880 861 mt 6119 861 L | ||
726 | 4880 492 mt 6119 492 L | ||
727 | 4880 861 mt 4880 492 L | ||
728 | 6119 861 mt 6119 492 L | ||
729 | 5683 659 mt | ||
730 | (Vdelta) s | ||
731 | gs 4880 492 1240 370 rc | ||
732 | |||
733 | gr | ||
734 | c8 | ||
735 | 36 36 4987 615 FO | ||
736 | 36 36 5415 615 FO | ||
737 | gs 4880 492 1240 370 rc | ||
738 | |||
739 | gr | ||
740 | 0 sg | ||
741 | 5683 782 mt | ||
742 | (Xdelta) s | ||
743 | gs 4880 492 1240 370 rc | ||
744 | |||
745 | gr | ||
746 | 0 -58 -58 0 0 58 58 0 4958 709 5 MP | ||
747 | c9 | ||
748 | DP | ||
749 | 0 -58 -58 0 0 58 58 0 5386 709 5 MP | ||
750 | DP | ||
751 | gs 4880 492 1240 370 rc | ||
752 | |||
753 | gr | ||
754 | |||
755 | end | ||
756 | |||
757 | eplot | ||
758 | %%EndObject graph 1 | ||
759 | |||
760 | epage | ||
761 | end | ||
762 | |||
763 | showpage | ||
764 | |||
765 | %%Trailer | ||
766 | %%EOF | ||
diff --git a/xdelta1/doc/old/dcc99/figs/dependency.eps b/xdelta1/doc/old/dcc99/figs/dependency.eps deleted file mode 100755 index 7a04029..0000000 --- a/xdelta1/doc/old/dcc99/figs/dependency.eps +++ /dev/null | |||
@@ -1,463 +0,0 @@ | |||
1 | %!PS-Adobe-2.0 EPSF-2.0 | ||
2 | %%Title: dependency.fig | ||
3 | %%Creator: fig2dev Version 3.1 Patchlevel 2 | ||
4 | %%CreationDate: Sun Nov 8 19:15:14 1998 | ||
5 | %%For: jmacd@axis.hip.berkeley.edu (Josh) | ||
6 | %%Orientation: Portrait | ||
7 | %%BoundingBox: 0 0 282 272 | ||
8 | %%Pages: 0 | ||
9 | %%BeginSetup | ||
10 | %%IncludeFeature: *PageSize Letter | ||
11 | %%EndSetup | ||
12 | %Magnification: 1.00 | ||
13 | %%EndComments | ||
14 | /$F2psDict 200 dict def | ||
15 | $F2psDict begin | ||
16 | $F2psDict /mtrx matrix put | ||
17 | /col-1 {0 setgray} bind def | ||
18 | /col0 {0.000 0.000 0.000 srgb} bind def | ||
19 | /col1 {0.000 0.000 1.000 srgb} bind def | ||
20 | /col2 {0.000 1.000 0.000 srgb} bind def | ||
21 | /col3 {0.000 1.000 1.000 srgb} bind def | ||
22 | /col4 {1.000 0.000 0.000 srgb} bind def | ||
23 | /col5 {1.000 0.000 1.000 srgb} bind def | ||
24 | /col6 {1.000 1.000 0.000 srgb} bind def | ||
25 | /col7 {1.000 1.000 1.000 srgb} bind def | ||
26 | /col8 {0.000 0.000 0.560 srgb} bind def | ||
27 | /col9 {0.000 0.000 0.690 srgb} bind def | ||
28 | /col10 {0.000 0.000 0.820 srgb} bind def | ||
29 | /col11 {0.530 0.810 1.000 srgb} bind def | ||
30 | /col12 {0.000 0.560 0.000 srgb} bind def | ||
31 | /col13 {0.000 0.690 0.000 srgb} bind def | ||
32 | /col14 {0.000 0.820 0.000 srgb} bind def | ||
33 | /col15 {0.000 0.560 0.560 srgb} bind def | ||
34 | /col16 {0.000 0.690 0.690 srgb} bind def | ||
35 | /col17 {0.000 0.820 0.820 srgb} bind def | ||
36 | /col18 {0.560 0.000 0.000 srgb} bind def | ||
37 | /col19 {0.690 0.000 0.000 srgb} bind def | ||
38 | /col20 {0.820 0.000 0.000 srgb} bind def | ||
39 | /col21 {0.560 0.000 0.560 srgb} bind def | ||
40 | /col22 {0.690 0.000 0.690 srgb} bind def | ||
41 | /col23 {0.820 0.000 0.820 srgb} bind def | ||
42 | /col24 {0.500 0.190 0.000 srgb} bind def | ||
43 | /col25 {0.630 0.250 0.000 srgb} bind def | ||
44 | /col26 {0.750 0.380 0.000 srgb} bind def | ||
45 | /col27 {1.000 0.500 0.500 srgb} bind def | ||
46 | /col28 {1.000 0.630 0.630 srgb} bind def | ||
47 | /col29 {1.000 0.750 0.750 srgb} bind def | ||
48 | /col30 {1.000 0.880 0.880 srgb} bind def | ||
49 | /col31 {1.000 0.840 0.000 srgb} bind def | ||
50 | |||
51 | end | ||
52 | save | ||
53 | 0.0 271.0 translate | ||
54 | 1 -1 scale | ||
55 | |||
56 | /cp {closepath} bind def | ||
57 | /ef {eofill} bind def | ||
58 | /gr {grestore} bind def | ||
59 | /gs {gsave} bind def | ||
60 | /sa {save} bind def | ||
61 | /rs {restore} bind def | ||
62 | /l {lineto} bind def | ||
63 | /m {moveto} bind def | ||
64 | /rm {rmoveto} bind def | ||
65 | /n {newpath} bind def | ||
66 | /s {stroke} bind def | ||
67 | /sh {show} bind def | ||
68 | /slc {setlinecap} bind def | ||
69 | /slj {setlinejoin} bind def | ||
70 | /slw {setlinewidth} bind def | ||
71 | /srgb {setrgbcolor} bind def | ||
72 | /rot {rotate} bind def | ||
73 | /sc {scale} bind def | ||
74 | /sd {setdash} bind def | ||
75 | /ff {findfont} bind def | ||
76 | /sf {setfont} bind def | ||
77 | /scf {scalefont} bind def | ||
78 | /sw {stringwidth} bind def | ||
79 | /tr {translate} bind def | ||
80 | /tnt {dup dup currentrgbcolor | ||
81 | 4 -2 roll dup 1 exch sub 3 -1 roll mul add | ||
82 | 4 -2 roll dup 1 exch sub 3 -1 roll mul add | ||
83 | 4 -2 roll dup 1 exch sub 3 -1 roll mul add srgb} | ||
84 | bind def | ||
85 | /shd {dup dup currentrgbcolor 4 -2 roll mul 4 -2 roll mul | ||
86 | 4 -2 roll mul srgb} bind def | ||
87 | /DrawEllipse { | ||
88 | /endangle exch def | ||
89 | /startangle exch def | ||
90 | /yrad exch def | ||
91 | /xrad exch def | ||
92 | /y exch def | ||
93 | /x exch def | ||
94 | /savematrix mtrx currentmatrix def | ||
95 | x y tr xrad yrad sc 0 0 1 startangle endangle arc | ||
96 | closepath | ||
97 | savematrix setmatrix | ||
98 | } def | ||
99 | |||
100 | /$F2psBegin {$F2psDict begin /$F2psEnteredState save def} def | ||
101 | /$F2psEnd {$F2psEnteredState restore end} def | ||
102 | %%EndProlog | ||
103 | |||
104 | $F2psBegin | ||
105 | 10 setmiterlimit | ||
106 | n 0 792 m 0 0 l 612 0 l 612 792 l cp clip | ||
107 | 0.06000 0.06000 sc | ||
108 | /Times-Roman ff 165.00 scf sf | ||
109 | 286 4486 m | ||
110 | gs 1 -1 sc (contents) col-1 sh gr | ||
111 | 7.500 slw | ||
112 | % Polyline | ||
113 | gs clippath | ||
114 | 2888 314 m 2983 235 l 2936 350 l 3033 220 l 2985 184 l cp clip | ||
115 | n 2143 1357 m 3000 214 l gs col7 0.75 shd ef gr gs col-1 s gr gr | ||
116 | |||
117 | % arrowhead | ||
118 | n 2888 314 m 2983 235 l 2936 350 l 2912 332 l 2888 314 l cp gs 0.00 setgray ef gr col-1 s | ||
119 | % Polyline | ||
120 | gs clippath | ||
121 | 2867 279 m 2983 236 l 2900 329 l 3035 239 l 3002 189 l cp clip | ||
122 | n 2148 794 m 3006 222 l gs col7 0.75 shd ef gr gs col-1 s gr gr | ||
123 | |||
124 | % arrowhead | ||
125 | n 2867 279 m 2983 236 l 2900 329 l 2884 304 l 2867 279 l cp gs 0.00 setgray ef gr col-1 s | ||
126 | % Polyline | ||
127 | gs clippath | ||
128 | 2935 349 m 2993 240 l 2993 364 l 3033 207 l 2975 192 l cp clip | ||
129 | n 2143 3643 m 3000 214 l gs col7 0.75 shd ef gr gs col-1 s gr gr | ||
130 | |||
131 | % arrowhead | ||
132 | n 2935 349 m 2993 240 l 2993 364 l 2964 357 l 2935 349 l cp gs 0.00 setgray ef gr col-1 s | ||
133 | % Polyline | ||
134 | gs clippath | ||
135 | 2929 346 m 2992 239 l 2986 363 l 3033 208 l 2976 191 l cp clip | ||
136 | n 2143 3071 m 3000 214 l gs col7 0.75 shd ef gr gs col-1 s gr gr | ||
137 | |||
138 | % arrowhead | ||
139 | n 2929 346 m 2992 239 l 2986 363 l 2958 355 l 2929 346 l cp gs 0.00 setgray ef gr col-1 s | ||
140 | % Polyline | ||
141 | gs clippath | ||
142 | 2920 341 m 2990 239 l 2976 362 l 3033 210 l 2977 189 l cp clip | ||
143 | n 2143 2500 m 3000 214 l gs col7 0.75 shd ef gr gs col-1 s gr gr | ||
144 | |||
145 | % arrowhead | ||
146 | n 2920 341 m 2990 239 l 2976 362 l 2948 352 l 2920 341 l cp gs 0.00 setgray ef gr col-1 s | ||
147 | % Polyline | ||
148 | gs clippath | ||
149 | 2853 2470 m 2973 2500 l 2853 2530 l 3015 2530 l 3015 2470 l cp clip | ||
150 | n 2143 2500 m 3000 2500 l gs col7 0.75 shd ef gr gs col-1 s gr gr | ||
151 | |||
152 | % arrowhead | ||
153 | n 2853 2470 m 2973 2500 l 2853 2530 l 2853 2500 l 2853 2470 l cp gs 0.00 setgray ef gr col-1 s | ||
154 | % Polyline | ||
155 | gs clippath | ||
156 | 2888 2600 m 2983 2521 l 2936 2636 l 3033 2506 l 2985 2470 l cp clip | ||
157 | n 2143 3643 m 3000 2500 l gs col7 0.75 shd ef gr gs col-1 s gr gr | ||
158 | |||
159 | % arrowhead | ||
160 | n 2888 2600 m 2983 2521 l 2936 2636 l 2912 2618 l 2888 2600 l cp gs 0.00 setgray ef gr col-1 s | ||
161 | % Polyline | ||
162 | gs clippath | ||
163 | 2867 2565 m 2983 2522 l 2900 2615 l 3035 2525 l 3002 2475 l cp clip | ||
164 | n 2148 3080 m 3006 2508 l gs col7 0.75 shd ef gr gs col-1 s gr gr | ||
165 | |||
166 | % arrowhead | ||
167 | n 2867 2565 m 2983 2522 l 2900 2615 l 2884 2590 l 2867 2565 l cp gs 0.00 setgray ef gr col-1 s | ||
168 | % Polyline | ||
169 | gs clippath | ||
170 | 2853 756 m 2973 786 l 2853 816 l 3015 816 l 3015 756 l cp clip | ||
171 | n 2143 786 m 3000 786 l gs col7 0.75 shd ef gr gs col-1 s gr gr | ||
172 | |||
173 | % arrowhead | ||
174 | n 2853 756 m 2973 786 l 2853 816 l 2853 786 l 2853 756 l cp gs 0.00 setgray ef gr col-1 s | ||
175 | % Polyline | ||
176 | gs clippath | ||
177 | 2867 850 m 2983 808 l 2900 900 l 3035 811 l 3002 761 l cp clip | ||
178 | n 2148 1365 m 3006 794 l gs col7 0.75 shd ef gr gs col-1 s gr gr | ||
179 | |||
180 | % arrowhead | ||
181 | n 2867 850 m 2983 808 l 2900 900 l 2884 875 l 2867 850 l cp gs 0.00 setgray ef gr col-1 s | ||
182 | % Polyline | ||
183 | gs clippath | ||
184 | 2929 918 m 2992 811 l 2986 935 l 3033 780 l 2976 763 l cp clip | ||
185 | n 2143 3643 m 3000 786 l gs col7 0.75 shd ef gr gs col-1 s gr gr | ||
186 | |||
187 | % arrowhead | ||
188 | n 2929 918 m 2992 811 l 2986 935 l 2958 927 l 2929 918 l cp gs 0.00 setgray ef gr col-1 s | ||
189 | % Polyline | ||
190 | gs clippath | ||
191 | 2920 913 m 2990 811 l 2976 934 l 3033 782 l 2977 761 l cp clip | ||
192 | n 2143 3071 m 3000 786 l gs col7 0.75 shd ef gr gs col-1 s gr gr | ||
193 | |||
194 | % arrowhead | ||
195 | n 2920 913 m 2990 811 l 2976 934 l 2948 924 l 2920 913 l cp gs 0.00 setgray ef gr col-1 s | ||
196 | % Polyline | ||
197 | gs clippath | ||
198 | 2853 1327 m 2973 1357 l 2853 1387 l 3015 1387 l 3015 1327 l cp clip | ||
199 | n 2143 1357 m 3000 1357 l gs col7 0.75 shd ef gr gs col-1 s gr gr | ||
200 | |||
201 | % arrowhead | ||
202 | n 2853 1327 m 2973 1357 l 2853 1387 l 2853 1357 l 2853 1327 l cp gs 0.00 setgray ef gr col-1 s | ||
203 | % Polyline | ||
204 | gs clippath | ||
205 | 2888 1457 m 2983 1378 l 2936 1493 l 3033 1363 l 2985 1327 l cp clip | ||
206 | n 2143 2500 m 3000 1357 l gs col7 0.75 shd ef gr gs col-1 s gr gr | ||
207 | |||
208 | % arrowhead | ||
209 | n 2888 1457 m 2983 1378 l 2936 1493 l 2912 1475 l 2888 1457 l cp gs 0.00 setgray ef gr col-1 s | ||
210 | % Polyline | ||
211 | gs clippath | ||
212 | 2920 1484 m 2990 1382 l 2976 1505 l 3033 1353 l 2977 1332 l cp clip | ||
213 | n 2143 3643 m 3000 1357 l gs col7 0.75 shd ef gr gs col-1 s gr gr | ||
214 | |||
215 | % arrowhead | ||
216 | n 2920 1484 m 2990 1382 l 2976 1505 l 2948 1495 l 2920 1484 l cp gs 0.00 setgray ef gr col-1 s | ||
217 | % Polyline | ||
218 | gs clippath | ||
219 | 2853 3041 m 2973 3071 l 2853 3101 l 3015 3101 l 3015 3041 l cp clip | ||
220 | n 2143 3071 m 3000 3071 l gs col7 0.75 shd ef gr gs col-1 s gr gr | ||
221 | |||
222 | % arrowhead | ||
223 | n 2853 3041 m 2973 3071 l 2853 3101 l 2853 3071 l 2853 3041 l cp gs 0.00 setgray ef gr col-1 s | ||
224 | % Polyline | ||
225 | gs clippath | ||
226 | 2867 3136 m 2983 3094 l 2900 3186 l 3035 3097 l 3002 3047 l cp clip | ||
227 | n 2148 3651 m 3006 3080 l gs col7 0.75 shd ef gr gs col-1 s gr gr | ||
228 | |||
229 | % arrowhead | ||
230 | n 2867 3136 m 2983 3094 l 2900 3186 l 2884 3161 l 2867 3136 l cp gs 0.00 setgray ef gr col-1 s | ||
231 | % Polyline | ||
232 | gs clippath | ||
233 | 2853 3613 m 2973 3643 l 2853 3673 l 3015 3673 l 3015 3613 l cp clip | ||
234 | n 2143 3643 m 3000 3643 l gs col7 0.75 shd ef gr gs col-1 s gr gr | ||
235 | |||
236 | % arrowhead | ||
237 | n 2853 3613 m 2973 3643 l 2853 3673 l 2853 3643 l 2853 3613 l cp gs 0.00 setgray ef gr col-1 s | ||
238 | % Ellipse | ||
239 | n 2071 214 80 80 0 360 DrawEllipse gs col-1 s gr | ||
240 | |||
241 | % Ellipse | ||
242 | n 2071 786 80 80 0 360 DrawEllipse gs col-1 s gr | ||
243 | |||
244 | % Ellipse | ||
245 | n 2071 1357 80 80 0 360 DrawEllipse gs col-1 s gr | ||
246 | |||
247 | % Ellipse | ||
248 | n 2071 2500 80 80 0 360 DrawEllipse gs col-1 s gr | ||
249 | |||
250 | % Ellipse | ||
251 | n 2071 3071 80 80 0 360 DrawEllipse gs col-1 s gr | ||
252 | |||
253 | % Ellipse | ||
254 | n 2071 3643 80 80 0 360 DrawEllipse gs col-1 s gr | ||
255 | |||
256 | % Polyline | ||
257 | n 286 143 m 1143 143 l 1143 286 l 286 286 l cp gs col-1 s gr | ||
258 | % Polyline | ||
259 | n 286 714 m 1143 714 l 1143 857 l 286 857 l cp gs col-1 s gr | ||
260 | % Polyline | ||
261 | n 286 1286 m 1143 1286 l 1143 1429 l 286 1429 l cp gs col-1 s gr | ||
262 | % Polyline | ||
263 | n 286 2429 m 1143 2429 l 1143 2571 l 286 2571 l cp gs col-1 s gr | ||
264 | % Polyline | ||
265 | n 286 3000 m 1143 3000 l 1143 3143 l 286 3143 l cp gs col-1 s gr | ||
266 | % Polyline | ||
267 | n 286 3571 m 1143 3571 l 1143 3714 l 286 3714 l cp gs col-1 s gr | ||
268 | % Polyline | ||
269 | n 3000 143 m 3428 143 l 3428 286 l 3000 286 l cp gs col7 0.75 shd ef gr gs col-1 s gr | ||
270 | % Polyline | ||
271 | n 3000 714 m 3428 714 l 3428 857 l 3000 857 l cp gs col7 0.75 shd ef gr gs col-1 s gr | ||
272 | % Polyline | ||
273 | n 3000 1286 m 3428 1286 l 3428 1429 l 3000 1429 l cp gs col7 0.75 shd ef gr gs col-1 s gr | ||
274 | % Polyline | ||
275 | n 3000 2429 m 3428 2429 l 3428 2571 l 3000 2571 l cp gs col7 0.75 shd ef gr gs col-1 s gr | ||
276 | % Polyline | ||
277 | n 3000 3000 m 3428 3000 l 3428 3143 l 3000 3143 l cp gs col7 0.75 shd ef gr gs col-1 s gr | ||
278 | % Polyline | ||
279 | n 3000 3571 m 3428 3571 l 3428 3714 l 3000 3714 l cp gs col7 0.75 shd ef gr gs col-1 s gr | ||
280 | % Polyline | ||
281 | gs clippath | ||
282 | 1282 729 m 1165 771 l 1249 679 l 1114 769 l 1147 819 l cp clip | ||
283 | n 2000 214 m 1143 786 l gs col7 0.75 shd ef gr gs col-1 s gr gr | ||
284 | |||
285 | % arrowhead | ||
286 | n 1282 729 m 1165 771 l 1249 679 l 1265 704 l 1282 729 l cp gs 0.00 setgray ef gr col-1 s | ||
287 | % Polyline | ||
288 | gs clippath | ||
289 | 1282 1300 m 1165 1342 l 1249 1251 l 1114 1340 l 1147 1390 l cp clip | ||
290 | n 2000 786 m 1143 1357 l gs col7 0.75 shd ef gr gs col-1 s gr gr | ||
291 | |||
292 | % arrowhead | ||
293 | n 1282 1300 m 1165 1342 l 1249 1251 l 1265 1275 l 1282 1300 l cp gs 0.00 setgray ef gr col-1 s | ||
294 | % Polyline | ||
295 | gs clippath | ||
296 | 1282 1872 m 1165 1914 l 1249 1822 l 1114 1912 l 1147 1962 l cp clip | ||
297 | n 2000 1357 m 1143 1929 l gs col7 0.75 shd ef gr gs col-1 s gr gr | ||
298 | |||
299 | % arrowhead | ||
300 | n 1282 1872 m 1165 1914 l 1249 1822 l 1265 1847 l 1282 1872 l cp gs 0.00 setgray ef gr col-1 s | ||
301 | % Polyline | ||
302 | gs clippath | ||
303 | 1249 2035 m 1165 1943 l 1282 1986 l 1147 1896 l 1114 1946 l cp clip | ||
304 | n 2000 2500 m 1143 1929 l gs col7 0.75 shd ef gr gs col-1 s gr gr | ||
305 | |||
306 | % arrowhead | ||
307 | n 1249 2035 m 1165 1943 l 1282 1986 l 1265 2011 l 1249 2035 l cp gs 0.00 setgray ef gr col-1 s | ||
308 | % Polyline | ||
309 | gs clippath | ||
310 | 1207 2065 m 1159 1950 l 1255 2029 l 1158 1899 l 1110 1935 l cp clip | ||
311 | n 2000 3071 m 1143 1929 l gs col7 0.75 shd ef gr gs col-1 s gr gr | ||
312 | |||
313 | % arrowhead | ||
314 | n 1207 2065 m 1159 1950 l 1255 2029 l 1231 2047 l 1207 2065 l cp gs 0.00 setgray ef gr col-1 s | ||
315 | % Polyline | ||
316 | gs clippath | ||
317 | 1182 2074 m 1155 1953 l 1236 2047 l 1163 1902 l 1109 1929 l cp clip | ||
318 | n 2000 3643 m 1143 1929 l gs col7 0.75 shd ef gr gs col-1 s gr gr | ||
319 | |||
320 | % arrowhead | ||
321 | n 1182 2074 m 1155 1953 l 1236 2047 l 1209 2060 l 1182 2074 l cp gs 0.00 setgray ef gr col-1 s | ||
322 | % Polyline | ||
323 | n 286 1857 m 1143 1857 l 1143 2000 l 286 2000 l cp gs col7 0.75 shd ef gr gs col-1 s gr | ||
324 | % Polyline | ||
325 | gs clippath | ||
326 | 4291 1147 m 4321 1027 l 4351 1147 l 4351 985 l 4291 985 l cp clip | ||
327 | n 4321 1286 m 4321 1000 l gs col7 0.75 shd ef gr gs col-1 s gr gr | ||
328 | |||
329 | % arrowhead | ||
330 | n 4291 1147 m 4321 1027 l 4351 1147 l 4321 1147 l 4291 1147 l cp gs 0.00 setgray ef gr col-1 s | ||
331 | % Polyline | ||
332 | gs clippath | ||
333 | 4351 2746 m 4321 2866 l 4291 2746 l 4291 2908 l 4351 2908 l cp clip | ||
334 | n 4321 2893 m 4321 2607 l gs col7 0.75 shd ef gr gs col-1 s gr gr | ||
335 | |||
336 | % arrowhead | ||
337 | n 4351 2746 m 4321 2866 l 4291 2746 l 4321 2746 l 4351 2746 l cp gs 0.00 setgray ef gr col-1 s | ||
338 | /Times-Roman ff 165.00 scf sf | ||
339 | 4143 1429 m | ||
340 | gs 1 -1 sc (reverse) col-1 sh gr | ||
341 | /Times-Roman ff 165.00 scf sf | ||
342 | 4143 2571 m | ||
343 | gs 1 -1 sc (forward) col-1 sh gr | ||
344 | /Times-Roman ff 165.00 scf sf | ||
345 | 4143 2000 m | ||
346 | gs 1 -1 sc (literal) col-1 sh gr | ||
347 | % Polyline | ||
348 | n 1902 0 m 1857 0 1857 384 45 arcto 4 {pop} repeat | ||
349 | 1857 429 3526 429 45 arcto 4 {pop} repeat | ||
350 | 3571 429 3571 45 45 arcto 4 {pop} repeat | ||
351 | 3571 0 1902 0 45 arcto 4 {pop} repeat | ||
352 | cp gs col-1 s gr | ||
353 | % Polyline | ||
354 | n 1902 571 m 1857 571 1857 955 45 arcto 4 {pop} repeat | ||
355 | 1857 1000 3526 1000 45 arcto 4 {pop} repeat | ||
356 | 3571 1000 3571 616 45 arcto 4 {pop} repeat | ||
357 | 3571 571 1902 571 45 arcto 4 {pop} repeat | ||
358 | cp gs col-1 s gr | ||
359 | % Polyline | ||
360 | n 1902 1143 m 1857 1143 1857 1526 45 arcto 4 {pop} repeat | ||
361 | 1857 1571 3526 1571 45 arcto 4 {pop} repeat | ||
362 | 3571 1571 3571 1188 45 arcto 4 {pop} repeat | ||
363 | 3571 1143 1902 1143 45 arcto 4 {pop} repeat | ||
364 | cp gs col-1 s gr | ||
365 | % Polyline | ||
366 | n 1902 2286 m 1857 2286 1857 2669 45 arcto 4 {pop} repeat | ||
367 | 1857 2714 3526 2714 45 arcto 4 {pop} repeat | ||
368 | 3571 2714 3571 2331 45 arcto 4 {pop} repeat | ||
369 | 3571 2286 1902 2286 45 arcto 4 {pop} repeat | ||
370 | cp gs col-1 s gr | ||
371 | % Polyline | ||
372 | n 1902 2857 m 1857 2857 1857 3241 45 arcto 4 {pop} repeat | ||
373 | 1857 3286 3526 3286 45 arcto 4 {pop} repeat | ||
374 | 3571 3286 3571 2902 45 arcto 4 {pop} repeat | ||
375 | 3571 2857 1902 2857 45 arcto 4 {pop} repeat | ||
376 | cp gs col-1 s gr | ||
377 | % Polyline | ||
378 | n 1902 3429 m 1857 3429 1857 3812 45 arcto 4 {pop} repeat | ||
379 | 1857 3857 3526 3857 45 arcto 4 {pop} repeat | ||
380 | 3571 3857 3571 3474 45 arcto 4 {pop} repeat | ||
381 | 3571 3429 1902 3429 45 arcto 4 {pop} repeat | ||
382 | cp gs col-1 s gr | ||
383 | /Times-Roman ff 165.00 scf sf | ||
384 | 0 286 m | ||
385 | gs 1 -1 sc (F1) col-1 sh gr | ||
386 | /Times-Roman ff 165.00 scf sf | ||
387 | 0 857 m | ||
388 | gs 1 -1 sc (F2) col-1 sh gr | ||
389 | /Times-Roman ff 165.00 scf sf | ||
390 | 0 1429 m | ||
391 | gs 1 -1 sc (F3) col-1 sh gr | ||
392 | /Times-Roman ff 165.00 scf sf | ||
393 | 0 2000 m | ||
394 | gs 1 -1 sc (F4) col-1 sh gr | ||
395 | /Times-Roman ff 165.00 scf sf | ||
396 | 0 2571 m | ||
397 | gs 1 -1 sc (F5) col-1 sh gr | ||
398 | /Times-Roman ff 165.00 scf sf | ||
399 | 0 3143 m | ||
400 | gs 1 -1 sc (F6) col-1 sh gr | ||
401 | /Times-Roman ff 165.00 scf sf | ||
402 | 0 3714 m | ||
403 | gs 1 -1 sc (F7) col-1 sh gr | ||
404 | /Times-Roman ff 165.00 scf sf | ||
405 | 3714 286 m | ||
406 | gs 1 -1 sc (D1) col-1 sh gr | ||
407 | /Times-Roman ff 165.00 scf sf | ||
408 | 3714 857 m | ||
409 | gs 1 -1 sc (D2) col-1 sh gr | ||
410 | /Times-Roman ff 165.00 scf sf | ||
411 | 3714 1429 m | ||
412 | gs 1 -1 sc (D3) col-1 sh gr | ||
413 | /Times-Roman ff 165.00 scf sf | ||
414 | 3714 2571 m | ||
415 | gs 1 -1 sc (D5) col-1 sh gr | ||
416 | /Times-Roman ff 165.00 scf sf | ||
417 | 3714 3143 m | ||
418 | gs 1 -1 sc (D6) col-1 sh gr | ||
419 | /Times-Roman ff 165.00 scf sf | ||
420 | 3714 3714 m | ||
421 | gs 1 -1 sc (D7) col-1 sh gr | ||
422 | % Polyline | ||
423 | gs clippath | ||
424 | 2041 3861 m 2071 3741 l 2101 3861 l 2101 3699 l 2041 3699 l cp clip | ||
425 | n 2071 4143 m 2071 3714 l gs col-1 s gr gr | ||
426 | |||
427 | % arrowhead | ||
428 | n 2041 3861 m 2071 3741 l 2101 3861 l 2071 3861 l 2041 3861 l cp gs 0.00 setgray ef gr col-1 s | ||
429 | % Polyline | ||
430 | gs clippath | ||
431 | 3041 3861 m 3071 3741 l 3101 3861 l 3101 3699 l 3041 3699 l cp clip | ||
432 | n 3071 4143 m 3071 3714 l gs col-1 s gr gr | ||
433 | |||
434 | % arrowhead | ||
435 | n 3041 3861 m 3071 3741 l 3101 3861 l 3071 3861 l 3041 3861 l cp gs 0.00 setgray ef gr col-1 s | ||
436 | % Polyline | ||
437 | gs clippath | ||
438 | 327 3861 m 357 3741 l 387 3861 l 387 3699 l 327 3699 l cp clip | ||
439 | n 357 4143 m 357 3714 l gs col-1 s gr gr | ||
440 | |||
441 | % arrowhead | ||
442 | n 327 3861 m 357 3741 l 387 3861 l 357 3861 l 327 3861 l cp gs 0.00 setgray ef gr col-1 s | ||
443 | /Times-Roman ff 165.00 scf sf | ||
444 | 2000 4286 m | ||
445 | gs 1 -1 sc (control) col-1 sh gr | ||
446 | /Times-Roman ff 165.00 scf sf | ||
447 | 3000 4486 m | ||
448 | gs 1 -1 sc (data) col-1 sh gr | ||
449 | /Times-Roman ff 165.00 scf sf | ||
450 | 3000 4286 m | ||
451 | gs 1 -1 sc (insert) col-1 sh gr | ||
452 | /Times-Roman ff 165.00 scf sf | ||
453 | 286 4286 m | ||
454 | gs 1 -1 sc (version) col-1 sh gr | ||
455 | % Polyline | ||
456 | gs clippath | ||
457 | 2853 184 m 2973 214 l 2853 244 l 3015 244 l 3015 184 l cp clip | ||
458 | n 2143 214 m 3000 214 l gs col7 0.75 shd ef gr gs col-1 s gr gr | ||
459 | |||
460 | % arrowhead | ||
461 | n 2853 184 m 2973 214 l 2853 244 l 2853 214 l 2853 184 l cp gs 0.00 setgray ef gr col-1 s | ||
462 | $F2psEnd | ||
463 | rs | ||
diff --git a/xdelta1/doc/old/dcc99/figs/dependency.fig b/xdelta1/doc/old/dcc99/figs/dependency.fig deleted file mode 100755 index eaf2e6f..0000000 --- a/xdelta1/doc/old/dcc99/figs/dependency.fig +++ /dev/null | |||
@@ -1,174 +0,0 @@ | |||
1 | #FIG 3.1 | ||
2 | Portrait | ||
3 | Center | ||
4 | Inches | ||
5 | 1200 2 | ||
6 | 6 0 0 4714 4500 | ||
7 | 6 0 0 4714 3857 | ||
8 | 6 286 0 3428 3857 | ||
9 | 6 2143 179 3036 3679 | ||
10 | 6 2143 179 3036 3643 | ||
11 | 2 1 0 1 -1 7 0 0 15 0.000 0 0 -1 1 0 2 | ||
12 | 1 1 1.00 60.00 120.00 | ||
13 | 2143 214 3000 214 | ||
14 | 2 1 0 1 -1 7 0 0 15 0.000 0 0 -1 1 0 2 | ||
15 | 1 1 1.00 60.00 120.00 | ||
16 | 2143 1357 3000 214 | ||
17 | 2 1 0 1 -1 7 0 0 15 0.000 0 0 -1 1 0 2 | ||
18 | 1 1 1.00 60.00 120.00 | ||
19 | 2148 794 3006 222 | ||
20 | 2 1 0 1 -1 7 0 0 15 0.000 0 0 -1 1 0 2 | ||
21 | 1 1 1.00 60.00 120.00 | ||
22 | 2143 3643 3000 214 | ||
23 | 2 1 0 1 -1 7 0 0 15 0.000 0 0 -1 1 0 2 | ||
24 | 1 1 1.00 60.00 120.00 | ||
25 | 2143 3071 3000 214 | ||
26 | 2 1 0 1 -1 7 0 0 15 0.000 0 0 -1 1 0 2 | ||
27 | 1 1 1.00 60.00 120.00 | ||
28 | 2143 2500 3000 214 | ||
29 | -6 | ||
30 | 6 2143 2464 3036 3643 | ||
31 | 2 1 0 1 -1 7 0 0 15 0.000 0 0 -1 1 0 2 | ||
32 | 1 1 1.00 60.00 120.00 | ||
33 | 2143 2500 3000 2500 | ||
34 | 2 1 0 1 -1 7 0 0 15 0.000 0 0 -1 1 0 2 | ||
35 | 1 1 1.00 60.00 120.00 | ||
36 | 2143 3643 3000 2500 | ||
37 | 2 1 0 1 -1 7 0 0 15 0.000 0 0 -1 1 0 2 | ||
38 | 1 1 1.00 60.00 120.00 | ||
39 | 2148 3080 3006 2508 | ||
40 | -6 | ||
41 | 2 1 0 1 -1 7 0 0 15 0.000 0 0 -1 1 0 2 | ||
42 | 1 1 1.00 60.00 120.00 | ||
43 | 2143 786 3000 786 | ||
44 | 2 1 0 1 -1 7 0 0 15 0.000 0 0 -1 1 0 2 | ||
45 | 1 1 1.00 60.00 120.00 | ||
46 | 2148 1365 3006 794 | ||
47 | 2 1 0 1 -1 7 0 0 15 0.000 0 0 -1 1 0 2 | ||
48 | 1 1 1.00 60.00 120.00 | ||
49 | 2143 3643 3000 786 | ||
50 | 2 1 0 1 -1 7 0 0 15 0.000 0 0 -1 1 0 2 | ||
51 | 1 1 1.00 60.00 120.00 | ||
52 | 2143 3071 3000 786 | ||
53 | 2 1 0 1 -1 7 0 0 15 0.000 0 0 -1 1 0 2 | ||
54 | 1 1 1.00 60.00 120.00 | ||
55 | 2143 1357 3000 1357 | ||
56 | 2 1 0 1 -1 7 0 0 15 0.000 0 0 -1 1 0 2 | ||
57 | 1 1 1.00 60.00 120.00 | ||
58 | 2143 2500 3000 1357 | ||
59 | 2 1 0 1 -1 7 0 0 15 0.000 0 0 -1 1 0 2 | ||
60 | 1 1 1.00 60.00 120.00 | ||
61 | 2143 3643 3000 1357 | ||
62 | 2 1 0 1 -1 7 0 0 15 0.000 0 0 -1 1 0 2 | ||
63 | 1 1 1.00 60.00 120.00 | ||
64 | 2143 3071 3000 3071 | ||
65 | 2 1 0 1 -1 7 0 0 15 0.000 0 0 -1 1 0 2 | ||
66 | 1 1 1.00 60.00 120.00 | ||
67 | 2148 3651 3006 3080 | ||
68 | 2 1 0 1 -1 7 0 0 15 0.000 0 0 -1 1 0 2 | ||
69 | 1 1 1.00 60.00 120.00 | ||
70 | 2143 3643 3000 3643 | ||
71 | -6 | ||
72 | 1 3 0 1 -1 7 0 0 -1 0.000 1 0.0000 2071 214 80 80 2071 214 2107 286 | ||
73 | 1 3 0 1 -1 7 0 0 -1 0.000 1 0.0000 2071 786 80 80 2071 786 2107 857 | ||
74 | 1 3 0 1 -1 7 0 0 -1 0.000 1 0.0000 2071 1357 80 80 2071 1357 2107 1429 | ||
75 | 1 3 0 1 -1 7 0 0 -1 0.000 1 0.0000 2071 2500 80 80 2071 2500 2107 2571 | ||
76 | 1 3 0 1 -1 7 0 0 -1 0.000 1 0.0000 2071 3071 80 80 2071 3071 2107 3143 | ||
77 | 1 3 0 1 -1 7 0 0 -1 0.000 1 0.0000 2071 3643 80 80 2071 3643 2107 3714 | ||
78 | 2 2 0 1 -1 7 0 0 -1 0.000 0 0 -1 0 0 5 | ||
79 | 286 143 1143 143 1143 286 286 286 286 143 | ||
80 | 2 2 0 1 -1 7 0 0 -1 0.000 0 0 -1 0 0 5 | ||
81 | 286 714 1143 714 1143 857 286 857 286 714 | ||
82 | 2 2 0 1 -1 7 0 0 -1 0.000 0 0 -1 0 0 5 | ||
83 | 286 1286 1143 1286 1143 1429 286 1429 286 1286 | ||
84 | 2 2 0 1 -1 7 0 0 -1 0.000 0 0 -1 0 0 5 | ||
85 | 286 2429 1143 2429 1143 2571 286 2571 286 2429 | ||
86 | 2 2 0 1 -1 7 0 0 -1 0.000 0 0 -1 0 0 5 | ||
87 | 286 3000 1143 3000 1143 3143 286 3143 286 3000 | ||
88 | 2 2 0 1 -1 7 0 0 -1 0.000 0 0 -1 0 0 5 | ||
89 | 286 3571 1143 3571 1143 3714 286 3714 286 3571 | ||
90 | 2 2 0 1 -1 7 0 0 15 0.000 0 0 -1 0 0 5 | ||
91 | 3000 143 3428 143 3428 286 3000 286 3000 143 | ||
92 | 2 2 0 1 -1 7 0 0 15 0.000 0 0 -1 0 0 5 | ||
93 | 3000 714 3428 714 3428 857 3000 857 3000 714 | ||
94 | 2 2 0 1 -1 7 0 0 15 0.000 0 0 -1 0 0 5 | ||
95 | 3000 1286 3428 1286 3428 1429 3000 1429 3000 1286 | ||
96 | 2 2 0 1 -1 7 0 0 15 0.000 0 0 -1 0 0 5 | ||
97 | 3000 2429 3428 2429 3428 2571 3000 2571 3000 2429 | ||
98 | 2 2 0 1 -1 7 0 0 15 0.000 0 0 -1 0 0 5 | ||
99 | 3000 3000 3428 3000 3428 3143 3000 3143 3000 3000 | ||
100 | 2 2 0 1 -1 7 0 0 15 0.000 0 0 -1 0 0 5 | ||
101 | 3000 3571 3428 3571 3428 3714 3000 3714 3000 3571 | ||
102 | 2 1 0 1 -1 7 0 0 15 0.000 0 0 -1 1 0 2 | ||
103 | 1 1 1.00 60.00 120.00 | ||
104 | 2000 214 1143 786 | ||
105 | 2 1 0 1 -1 7 0 0 15 0.000 0 0 -1 1 0 2 | ||
106 | 1 1 1.00 60.00 120.00 | ||
107 | 2000 786 1143 1357 | ||
108 | 2 1 0 1 -1 7 0 0 15 0.000 0 0 -1 1 0 2 | ||
109 | 1 1 1.00 60.00 120.00 | ||
110 | 2000 1357 1143 1929 | ||
111 | 2 1 0 1 -1 7 0 0 15 0.000 0 0 -1 1 0 2 | ||
112 | 1 1 1.00 60.00 120.00 | ||
113 | 2000 2500 1143 1929 | ||
114 | 2 1 0 1 -1 7 0 0 15 0.000 0 0 -1 1 0 2 | ||
115 | 1 1 1.00 60.00 120.00 | ||
116 | 2000 3071 1143 1929 | ||
117 | 2 1 0 1 -1 7 0 0 15 0.000 0 0 -1 1 0 2 | ||
118 | 1 1 1.00 60.00 120.00 | ||
119 | 2000 3643 1143 1929 | ||
120 | 2 2 0 1 -1 7 0 0 15 0.000 0 0 -1 0 0 5 | ||
121 | 286 1857 1143 1857 1143 2000 286 2000 286 1857 | ||
122 | -6 | ||
123 | 6 4143 857 4714 3000 | ||
124 | 2 1 0 1 -1 7 0 0 15 0.000 0 0 -1 1 0 2 | ||
125 | 1 1 1.00 60.00 120.00 | ||
126 | 4321 1286 4321 1000 | ||
127 | 2 1 0 1 -1 7 0 0 15 0.000 0 0 -1 0 1 2 | ||
128 | 1 1 1.00 60.00 120.00 | ||
129 | 4321 2893 4321 2607 | ||
130 | 4 0 -1 0 0 0 11 0.0000 0 86 500 4143 1429 reverse\001 | ||
131 | 4 0 -1 0 0 0 11 0.0000 0 121 536 4143 2571 forward\001 | ||
132 | 4 0 -1 0 0 0 11 0.0000 0 121 393 4143 2000 literal\001 | ||
133 | -6 | ||
134 | 2 4 0 1 -1 7 0 0 -1 0.000 0 0 3 0 0 5 | ||
135 | 3571 429 3571 0 1857 0 1857 429 3571 429 | ||
136 | 2 4 0 1 -1 7 0 0 -1 0.000 0 0 3 0 0 5 | ||
137 | 3571 1000 3571 571 1857 571 1857 1000 3571 1000 | ||
138 | 2 4 0 1 -1 7 0 0 -1 0.000 0 0 3 0 0 5 | ||
139 | 3571 1571 3571 1143 1857 1143 1857 1571 3571 1571 | ||
140 | 2 4 0 1 -1 7 0 0 -1 0.000 0 0 3 0 0 5 | ||
141 | 3571 2714 3571 2286 1857 2286 1857 2714 3571 2714 | ||
142 | 2 4 0 1 -1 7 0 0 -1 0.000 0 0 3 0 0 5 | ||
143 | 3571 3286 3571 2857 1857 2857 1857 3286 3571 3286 | ||
144 | 2 4 0 1 -1 7 0 0 -1 0.000 0 0 3 0 0 5 | ||
145 | 3571 3857 3571 3429 1857 3429 1857 3857 3571 3857 | ||
146 | 4 0 -1 0 0 0 11 0.0000 0 121 186 0 286 F1\001 | ||
147 | 4 0 -1 0 0 0 11 0.0000 0 121 186 0 857 F2\001 | ||
148 | 4 0 -1 0 0 0 11 0.0000 0 121 186 0 1429 F3\001 | ||
149 | 4 0 -1 0 0 0 11 0.0000 0 121 186 0 2000 F4\001 | ||
150 | 4 0 -1 0 0 0 11 0.0000 0 121 186 0 2571 F5\001 | ||
151 | 4 0 -1 0 0 0 11 0.0000 0 121 186 0 3143 F6\001 | ||
152 | 4 0 -1 0 0 0 11 0.0000 0 121 186 0 3714 F7\001 | ||
153 | 4 0 -1 0 0 0 11 0.0000 0 121 207 3714 286 D1\001 | ||
154 | 4 0 -1 0 0 0 11 0.0000 0 121 207 3714 857 D2\001 | ||
155 | 4 0 -1 0 0 0 11 0.0000 0 121 207 3714 1429 D3\001 | ||
156 | 4 0 -1 0 0 0 11 0.0000 0 121 207 3714 2571 D5\001 | ||
157 | 4 0 -1 0 0 0 11 0.0000 0 121 207 3714 3143 D6\001 | ||
158 | 4 0 -1 0 0 0 11 0.0000 0 121 207 3714 3714 D7\001 | ||
159 | -6 | ||
160 | 2 1 0 1 -1 7 0 0 -1 0.000 0 0 -1 1 0 2 | ||
161 | 1 1 1.00 60.00 120.00 | ||
162 | 2071 4143 2071 3714 | ||
163 | 2 1 0 1 -1 7 0 0 -1 0.000 0 0 -1 1 0 2 | ||
164 | 1 1 1.00 60.00 120.00 | ||
165 | 3071 4143 3071 3714 | ||
166 | 2 1 0 1 -1 7 0 0 -1 0.000 0 0 -1 1 0 2 | ||
167 | 1 1 1.00 60.00 120.00 | ||
168 | 357 4143 357 3714 | ||
169 | 4 0 -1 0 0 0 11 0.0000 0 121 493 2000 4286 control\001 | ||
170 | 4 0 -1 0 0 0 11 0.0000 0 121 293 3000 4486 data\001 | ||
171 | 4 0 -1 0 0 0 11 0.0000 0 121 393 3000 4286 insert\001 | ||
172 | 4 0 -1 0 0 0 11 0.0000 0 121 507 286 4286 version\001 | ||
173 | 4 0 -1 0 0 0 11 0.0000 0 107 600 286 4486 contents\001 | ||
174 | -6 | ||
diff --git a/xdelta1/doc/old/dcc99/figs/dependency.fig.normalsize b/xdelta1/doc/old/dcc99/figs/dependency.fig.normalsize deleted file mode 100755 index 83ce9ea..0000000 --- a/xdelta1/doc/old/dcc99/figs/dependency.fig.normalsize +++ /dev/null | |||
@@ -1,174 +0,0 @@ | |||
1 | #FIG 3.1 | ||
2 | Landscape | ||
3 | Center | ||
4 | Inches | ||
5 | 1200 2 | ||
6 | 6 0 0 9900 9450 | ||
7 | 6 0 0 9900 8100 | ||
8 | 6 600 0 7200 8100 | ||
9 | 6 4500 375 6375 7725 | ||
10 | 6 4500 375 6375 7650 | ||
11 | 2 1 0 1 -1 7 0 0 15 0.000 0 0 -1 1 0 2 | ||
12 | 1 1 1.00 60.00 120.00 | ||
13 | 4500 450 6300 450 | ||
14 | 2 1 0 1 -1 7 0 0 15 0.000 0 0 -1 1 0 2 | ||
15 | 1 1 1.00 60.00 120.00 | ||
16 | 4500 2850 6300 450 | ||
17 | 2 1 0 1 -1 7 0 0 15 0.000 0 0 -1 1 0 2 | ||
18 | 1 1 1.00 60.00 120.00 | ||
19 | 4512 1667 6312 467 | ||
20 | 2 1 0 1 -1 7 0 0 15 0.000 0 0 -1 1 0 2 | ||
21 | 1 1 1.00 60.00 120.00 | ||
22 | 4500 7650 6300 450 | ||
23 | 2 1 0 1 -1 7 0 0 15 0.000 0 0 -1 1 0 2 | ||
24 | 1 1 1.00 60.00 120.00 | ||
25 | 4500 6450 6300 450 | ||
26 | 2 1 0 1 -1 7 0 0 15 0.000 0 0 -1 1 0 2 | ||
27 | 1 1 1.00 60.00 120.00 | ||
28 | 4500 5250 6300 450 | ||
29 | -6 | ||
30 | 6 4500 5175 6375 7650 | ||
31 | 2 1 0 1 -1 7 0 0 15 0.000 0 0 -1 1 0 2 | ||
32 | 1 1 1.00 60.00 120.00 | ||
33 | 4500 5250 6300 5250 | ||
34 | 2 1 0 1 -1 7 0 0 15 0.000 0 0 -1 1 0 2 | ||
35 | 1 1 1.00 60.00 120.00 | ||
36 | 4500 7650 6300 5250 | ||
37 | 2 1 0 1 -1 7 0 0 15 0.000 0 0 -1 1 0 2 | ||
38 | 1 1 1.00 60.00 120.00 | ||
39 | 4512 6467 6312 5267 | ||
40 | -6 | ||
41 | 2 1 0 1 -1 7 0 0 15 0.000 0 0 -1 1 0 2 | ||
42 | 1 1 1.00 60.00 120.00 | ||
43 | 4500 1650 6300 1650 | ||
44 | 2 1 0 1 -1 7 0 0 15 0.000 0 0 -1 1 0 2 | ||
45 | 1 1 1.00 60.00 120.00 | ||
46 | 4512 2867 6312 1667 | ||
47 | 2 1 0 1 -1 7 0 0 15 0.000 0 0 -1 1 0 2 | ||
48 | 1 1 1.00 60.00 120.00 | ||
49 | 4500 7650 6300 1650 | ||
50 | 2 1 0 1 -1 7 0 0 15 0.000 0 0 -1 1 0 2 | ||
51 | 1 1 1.00 60.00 120.00 | ||
52 | 4500 6450 6300 1650 | ||
53 | 2 1 0 1 -1 7 0 0 15 0.000 0 0 -1 1 0 2 | ||
54 | 1 1 1.00 60.00 120.00 | ||
55 | 4500 2850 6300 2850 | ||
56 | 2 1 0 1 -1 7 0 0 15 0.000 0 0 -1 1 0 2 | ||
57 | 1 1 1.00 60.00 120.00 | ||
58 | 4500 5250 6300 2850 | ||
59 | 2 1 0 1 -1 7 0 0 15 0.000 0 0 -1 1 0 2 | ||
60 | 1 1 1.00 60.00 120.00 | ||
61 | 4500 7650 6300 2850 | ||
62 | 2 1 0 1 -1 7 0 0 15 0.000 0 0 -1 1 0 2 | ||
63 | 1 1 1.00 60.00 120.00 | ||
64 | 4500 6450 6300 6450 | ||
65 | 2 1 0 1 -1 7 0 0 15 0.000 0 0 -1 1 0 2 | ||
66 | 1 1 1.00 60.00 120.00 | ||
67 | 4512 7667 6312 6467 | ||
68 | 2 1 0 1 -1 7 0 0 15 0.000 0 0 -1 1 0 2 | ||
69 | 1 1 1.00 60.00 120.00 | ||
70 | 4500 7650 6300 7650 | ||
71 | -6 | ||
72 | 1 3 0 1 -1 7 0 0 -1 0.000 1 0.0000 4350 450 168 168 4350 450 4425 600 | ||
73 | 1 3 0 1 -1 7 0 0 -1 0.000 1 0.0000 4350 1650 168 168 4350 1650 4425 1800 | ||
74 | 1 3 0 1 -1 7 0 0 -1 0.000 1 0.0000 4350 2850 168 168 4350 2850 4425 3000 | ||
75 | 1 3 0 1 -1 7 0 0 -1 0.000 1 0.0000 4350 5250 168 168 4350 5250 4425 5400 | ||
76 | 1 3 0 1 -1 7 0 0 -1 0.000 1 0.0000 4350 6450 168 168 4350 6450 4425 6600 | ||
77 | 1 3 0 1 -1 7 0 0 -1 0.000 1 0.0000 4350 7650 168 168 4350 7650 4425 7800 | ||
78 | 2 2 0 1 -1 7 0 0 -1 0.000 0 0 -1 0 0 5 | ||
79 | 600 300 2400 300 2400 600 600 600 600 300 | ||
80 | 2 2 0 1 -1 7 0 0 -1 0.000 0 0 -1 0 0 5 | ||
81 | 600 1500 2400 1500 2400 1800 600 1800 600 1500 | ||
82 | 2 2 0 1 -1 7 0 0 -1 0.000 0 0 -1 0 0 5 | ||
83 | 600 2700 2400 2700 2400 3000 600 3000 600 2700 | ||
84 | 2 2 0 1 -1 7 0 0 -1 0.000 0 0 -1 0 0 5 | ||
85 | 600 5100 2400 5100 2400 5400 600 5400 600 5100 | ||
86 | 2 2 0 1 -1 7 0 0 -1 0.000 0 0 -1 0 0 5 | ||
87 | 600 6300 2400 6300 2400 6600 600 6600 600 6300 | ||
88 | 2 2 0 1 -1 7 0 0 -1 0.000 0 0 -1 0 0 5 | ||
89 | 600 7500 2400 7500 2400 7800 600 7800 600 7500 | ||
90 | 2 2 0 1 -1 7 0 0 15 0.000 0 0 -1 0 0 5 | ||
91 | 6300 300 7200 300 7200 600 6300 600 6300 300 | ||
92 | 2 2 0 1 -1 7 0 0 15 0.000 0 0 -1 0 0 5 | ||
93 | 6300 1500 7200 1500 7200 1800 6300 1800 6300 1500 | ||
94 | 2 2 0 1 -1 7 0 0 15 0.000 0 0 -1 0 0 5 | ||
95 | 6300 2700 7200 2700 7200 3000 6300 3000 6300 2700 | ||
96 | 2 2 0 1 -1 7 0 0 15 0.000 0 0 -1 0 0 5 | ||
97 | 6300 5100 7200 5100 7200 5400 6300 5400 6300 5100 | ||
98 | 2 2 0 1 -1 7 0 0 15 0.000 0 0 -1 0 0 5 | ||
99 | 6300 6300 7200 6300 7200 6600 6300 6600 6300 6300 | ||
100 | 2 2 0 1 -1 7 0 0 15 0.000 0 0 -1 0 0 5 | ||
101 | 6300 7500 7200 7500 7200 7800 6300 7800 6300 7500 | ||
102 | 2 1 0 1 -1 7 0 0 15 0.000 0 0 -1 1 0 2 | ||
103 | 1 1 1.00 60.00 120.00 | ||
104 | 4200 450 2400 1650 | ||
105 | 2 1 0 1 -1 7 0 0 15 0.000 0 0 -1 1 0 2 | ||
106 | 1 1 1.00 60.00 120.00 | ||
107 | 4200 1650 2400 2850 | ||
108 | 2 1 0 1 -1 7 0 0 15 0.000 0 0 -1 1 0 2 | ||
109 | 1 1 1.00 60.00 120.00 | ||
110 | 4200 2850 2400 4050 | ||
111 | 2 1 0 1 -1 7 0 0 15 0.000 0 0 -1 1 0 2 | ||
112 | 1 1 1.00 60.00 120.00 | ||
113 | 4200 5250 2400 4050 | ||
114 | 2 1 0 1 -1 7 0 0 15 0.000 0 0 -1 1 0 2 | ||
115 | 1 1 1.00 60.00 120.00 | ||
116 | 4200 6450 2400 4050 | ||
117 | 2 1 0 1 -1 7 0 0 15 0.000 0 0 -1 1 0 2 | ||
118 | 1 1 1.00 60.00 120.00 | ||
119 | 4200 7650 2400 4050 | ||
120 | 2 2 0 1 -1 7 0 0 15 0.000 0 0 -1 0 0 5 | ||
121 | 600 3900 2400 3900 2400 4200 600 4200 600 3900 | ||
122 | -6 | ||
123 | 6 8700 1800 9900 6300 | ||
124 | 2 1 0 1 -1 7 0 0 15 0.000 0 0 -1 1 0 2 | ||
125 | 1 1 1.00 60.00 120.00 | ||
126 | 9075 2700 9075 2100 | ||
127 | 2 1 0 1 -1 7 0 0 15 0.000 0 0 -1 0 1 2 | ||
128 | 1 1 1.00 60.00 120.00 | ||
129 | 9075 6075 9075 5475 | ||
130 | 4 0 -1 0 0 0 24 0.0000 0 180 1050 8700 3000 reverse\001 | ||
131 | 4 0 -1 0 0 0 24 0.0000 0 255 1125 8700 5400 forward\001 | ||
132 | 4 0 -1 0 0 0 24 0.0000 0 255 825 8700 4200 literal\001 | ||
133 | -6 | ||
134 | 2 4 0 1 -1 7 0 0 -1 0.000 0 0 7 0 0 5 | ||
135 | 7500 900 7500 0 3900 0 3900 900 7500 900 | ||
136 | 2 4 0 1 -1 7 0 0 -1 0.000 0 0 7 0 0 5 | ||
137 | 7500 2100 7500 1200 3900 1200 3900 2100 7500 2100 | ||
138 | 2 4 0 1 -1 7 0 0 -1 0.000 0 0 7 0 0 5 | ||
139 | 7500 3300 7500 2400 3900 2400 3900 3300 7500 3300 | ||
140 | 2 4 0 1 -1 7 0 0 -1 0.000 0 0 7 0 0 5 | ||
141 | 7500 5700 7500 4800 3900 4800 3900 5700 7500 5700 | ||
142 | 2 4 0 1 -1 7 0 0 -1 0.000 0 0 7 0 0 5 | ||
143 | 7500 6900 7500 6000 3900 6000 3900 6900 7500 6900 | ||
144 | 2 4 0 1 -1 7 0 0 -1 0.000 0 0 7 0 0 5 | ||
145 | 7500 8100 7500 7200 3900 7200 3900 8100 7500 8100 | ||
146 | 4 0 -1 0 0 0 24 0.0000 0 255 390 0 600 F1\001 | ||
147 | 4 0 -1 0 0 0 24 0.0000 0 255 390 0 1800 F2\001 | ||
148 | 4 0 -1 0 0 0 24 0.0000 0 255 390 0 3000 F3\001 | ||
149 | 4 0 -1 0 0 0 24 0.0000 0 255 390 0 4200 F4\001 | ||
150 | 4 0 -1 0 0 0 24 0.0000 0 255 390 0 5400 F5\001 | ||
151 | 4 0 -1 0 0 0 24 0.0000 0 255 390 0 6600 F6\001 | ||
152 | 4 0 -1 0 0 0 24 0.0000 0 255 390 0 7800 F7\001 | ||
153 | 4 0 -1 0 0 0 24 0.0000 0 255 435 7800 600 D1\001 | ||
154 | 4 0 -1 0 0 0 24 0.0000 0 255 435 7800 1800 D2\001 | ||
155 | 4 0 -1 0 0 0 24 0.0000 0 255 435 7800 3000 D3\001 | ||
156 | 4 0 -1 0 0 0 24 0.0000 0 255 435 7800 5400 D5\001 | ||
157 | 4 0 -1 0 0 0 24 0.0000 0 255 435 7800 6600 D6\001 | ||
158 | 4 0 -1 0 0 0 24 0.0000 0 255 435 7800 7800 D7\001 | ||
159 | -6 | ||
160 | 2 1 0 1 -1 7 0 0 -1 0.000 0 0 -1 1 0 2 | ||
161 | 1 1 1.00 60.00 120.00 | ||
162 | 4350 8700 4350 7800 | ||
163 | 2 1 0 1 -1 7 0 0 -1 0.000 0 0 -1 1 0 2 | ||
164 | 1 1 1.00 60.00 120.00 | ||
165 | 6450 8700 6450 7800 | ||
166 | 2 1 0 1 -1 7 0 0 -1 0.000 0 0 -1 1 0 2 | ||
167 | 1 1 1.00 60.00 120.00 | ||
168 | 750 8700 750 7800 | ||
169 | 4 0 -1 0 0 0 24 0.0000 0 255 1035 4200 9000 control\001 | ||
170 | 4 0 -1 0 0 0 24 0.0000 0 255 615 6300 9420 data\001 | ||
171 | 4 0 -1 0 0 0 24 0.0000 0 255 825 6300 9000 insert\001 | ||
172 | 4 0 -1 0 0 0 24 0.0000 0 255 1065 600 9000 version\001 | ||
173 | 4 0 -1 0 0 0 24 0.0000 0 225 1260 600 9420 contents\001 | ||
174 | -6 | ||
diff --git a/xdelta1/doc/old/dcc99/figs/jumping.eps b/xdelta1/doc/old/dcc99/figs/jumping.eps deleted file mode 100755 index f3e3715..0000000 --- a/xdelta1/doc/old/dcc99/figs/jumping.eps +++ /dev/null | |||
@@ -1,154 +0,0 @@ | |||
1 | %!PS-Adobe-2.0 EPSF-2.0 | ||
2 | %%Title: jumping.fig | ||
3 | %%Creator: fig2dev Version 3.1 Patchlevel 2 | ||
4 | %%CreationDate: Sun Nov 8 08:25:36 1998 | ||
5 | %%For: jmacd@axis.hip.berkeley.edu (Josh) | ||
6 | %%Orientation: Portrait | ||
7 | %%BoundingBox: 0 0 194 30 | ||
8 | %%Pages: 0 | ||
9 | %%BeginSetup | ||
10 | %%IncludeFeature: *PageSize Letter | ||
11 | %%EndSetup | ||
12 | %Magnification: 1.00 | ||
13 | %%EndComments | ||
14 | /$F2psDict 200 dict def | ||
15 | $F2psDict begin | ||
16 | $F2psDict /mtrx matrix put | ||
17 | /col-1 {0 setgray} bind def | ||
18 | /col0 {0.000 0.000 0.000 srgb} bind def | ||
19 | /col1 {0.000 0.000 1.000 srgb} bind def | ||
20 | /col2 {0.000 1.000 0.000 srgb} bind def | ||
21 | /col3 {0.000 1.000 1.000 srgb} bind def | ||
22 | /col4 {1.000 0.000 0.000 srgb} bind def | ||
23 | /col5 {1.000 0.000 1.000 srgb} bind def | ||
24 | /col6 {1.000 1.000 0.000 srgb} bind def | ||
25 | /col7 {1.000 1.000 1.000 srgb} bind def | ||
26 | /col8 {0.000 0.000 0.560 srgb} bind def | ||
27 | /col9 {0.000 0.000 0.690 srgb} bind def | ||
28 | /col10 {0.000 0.000 0.820 srgb} bind def | ||
29 | /col11 {0.530 0.810 1.000 srgb} bind def | ||
30 | /col12 {0.000 0.560 0.000 srgb} bind def | ||
31 | /col13 {0.000 0.690 0.000 srgb} bind def | ||
32 | /col14 {0.000 0.820 0.000 srgb} bind def | ||
33 | /col15 {0.000 0.560 0.560 srgb} bind def | ||
34 | /col16 {0.000 0.690 0.690 srgb} bind def | ||
35 | /col17 {0.000 0.820 0.820 srgb} bind def | ||
36 | /col18 {0.560 0.000 0.000 srgb} bind def | ||
37 | /col19 {0.690 0.000 0.000 srgb} bind def | ||
38 | /col20 {0.820 0.000 0.000 srgb} bind def | ||
39 | /col21 {0.560 0.000 0.560 srgb} bind def | ||
40 | /col22 {0.690 0.000 0.690 srgb} bind def | ||
41 | /col23 {0.820 0.000 0.820 srgb} bind def | ||
42 | /col24 {0.500 0.190 0.000 srgb} bind def | ||
43 | /col25 {0.630 0.250 0.000 srgb} bind def | ||
44 | /col26 {0.750 0.380 0.000 srgb} bind def | ||
45 | /col27 {1.000 0.500 0.500 srgb} bind def | ||
46 | /col28 {1.000 0.630 0.630 srgb} bind def | ||
47 | /col29 {1.000 0.750 0.750 srgb} bind def | ||
48 | /col30 {1.000 0.880 0.880 srgb} bind def | ||
49 | /col31 {1.000 0.840 0.000 srgb} bind def | ||
50 | |||
51 | end | ||
52 | save | ||
53 | 1.0 29.0 translate | ||
54 | 1 -1 scale | ||
55 | |||
56 | /cp {closepath} bind def | ||
57 | /ef {eofill} bind def | ||
58 | /gr {grestore} bind def | ||
59 | /gs {gsave} bind def | ||
60 | /sa {save} bind def | ||
61 | /rs {restore} bind def | ||
62 | /l {lineto} bind def | ||
63 | /m {moveto} bind def | ||
64 | /rm {rmoveto} bind def | ||
65 | /n {newpath} bind def | ||
66 | /s {stroke} bind def | ||
67 | /sh {show} bind def | ||
68 | /slc {setlinecap} bind def | ||
69 | /slj {setlinejoin} bind def | ||
70 | /slw {setlinewidth} bind def | ||
71 | /srgb {setrgbcolor} bind def | ||
72 | /rot {rotate} bind def | ||
73 | /sc {scale} bind def | ||
74 | /sd {setdash} bind def | ||
75 | /ff {findfont} bind def | ||
76 | /sf {setfont} bind def | ||
77 | /scf {scalefont} bind def | ||
78 | /sw {stringwidth} bind def | ||
79 | /tr {translate} bind def | ||
80 | /tnt {dup dup currentrgbcolor | ||
81 | 4 -2 roll dup 1 exch sub 3 -1 roll mul add | ||
82 | 4 -2 roll dup 1 exch sub 3 -1 roll mul add | ||
83 | 4 -2 roll dup 1 exch sub 3 -1 roll mul add srgb} | ||
84 | bind def | ||
85 | /shd {dup dup currentrgbcolor 4 -2 roll mul 4 -2 roll mul | ||
86 | 4 -2 roll mul srgb} bind def | ||
87 | /$F2psBegin {$F2psDict begin /$F2psEnteredState save def} def | ||
88 | /$F2psEnd {$F2psEnteredState restore end} def | ||
89 | %%EndProlog | ||
90 | |||
91 | $F2psBegin | ||
92 | 10 setmiterlimit | ||
93 | n 0 792 m 0 0 l 612 0 l 612 792 l cp clip | ||
94 | 0.06000 0.06000 sc | ||
95 | 7.500 slw | ||
96 | % Polyline | ||
97 | gs clippath | ||
98 | 2737 425 m 2857 455 l 2737 485 l 2899 485 l 2899 425 l cp clip | ||
99 | n 304 455 m 2884 455 l gs col-1 s gr gr | ||
100 | |||
101 | % arrowhead | ||
102 | n 2737 425 m 2857 455 l 2737 485 l 2737 455 l 2737 425 l cp gs 0.00 setgray ef gr col-1 s | ||
103 | /Times-Roman ff 255.00 scf sf | ||
104 | 382 227 m | ||
105 | gs 1 -1 sc (R) col-1 sh gr | ||
106 | % Polyline | ||
107 | n 609 0 m 915 0 l 915 303 l 609 303 l cp gs col-1 s gr | ||
108 | /Times-Roman ff 255.00 scf sf | ||
109 | 685 227 m | ||
110 | gs 1 -1 sc (L) col-1 sh gr | ||
111 | % Polyline | ||
112 | n 915 0 m 1221 0 l 1221 303 l 915 303 l cp gs col-1 s gr | ||
113 | /Times-Roman ff 255.00 scf sf | ||
114 | 992 227 m | ||
115 | gs 1 -1 sc (F) col-1 sh gr | ||
116 | % Polyline | ||
117 | n 0 0 m 306 0 l 306 303 l 0 303 l cp gs col-1 s gr | ||
118 | /Times-Roman ff 255.00 scf sf | ||
119 | 76 227 m | ||
120 | gs 1 -1 sc (R) col-1 sh gr | ||
121 | % Polyline | ||
122 | n 1221 0 m 1527 0 l 1527 303 l 1221 303 l cp gs col-1 s gr | ||
123 | /Times-Roman ff 255.00 scf sf | ||
124 | 1297 227 m | ||
125 | gs 1 -1 sc (F) col-1 sh gr | ||
126 | % Polyline | ||
127 | n 1983 0 m 2289 0 l 2289 303 l 1983 303 l cp gs col-1 s gr | ||
128 | /Times-Roman ff 255.00 scf sf | ||
129 | 2059 227 m | ||
130 | gs 1 -1 sc (R) col-1 sh gr | ||
131 | % Polyline | ||
132 | n 2289 0 m 2595 0 l 2595 303 l 2289 303 l cp gs col-1 s gr | ||
133 | /Times-Roman ff 255.00 scf sf | ||
134 | 2365 227 m | ||
135 | gs 1 -1 sc (L) col-1 sh gr | ||
136 | % Polyline | ||
137 | n 2595 0 m 2898 0 l 2898 303 l 2595 303 l cp gs col-1 s gr | ||
138 | /Times-Roman ff 255.00 scf sf | ||
139 | 2669 227 m | ||
140 | gs 1 -1 sc (F) col-1 sh gr | ||
141 | % Polyline | ||
142 | n 1677 0 m 1983 0 l 1983 303 l 1677 303 l cp gs col-1 s gr | ||
143 | /Times-Roman ff 255.00 scf sf | ||
144 | 1753 227 m | ||
145 | gs 1 -1 sc (R) col-1 sh gr | ||
146 | % Polyline | ||
147 | n 2898 0 m 3204 0 l 3204 303 l 2898 303 l cp gs col-1 s gr | ||
148 | /Times-Roman ff 255.00 scf sf | ||
149 | 2975 227 m | ||
150 | gs 1 -1 sc (F) col-1 sh gr | ||
151 | % Polyline | ||
152 | n 306 0 m 609 0 l 609 303 l 306 303 l cp gs col-1 s gr | ||
153 | $F2psEnd | ||
154 | rs | ||
diff --git a/xdelta1/doc/old/dcc99/figs/jumping.fig b/xdelta1/doc/old/dcc99/figs/jumping.fig deleted file mode 100755 index 7157399..0000000 --- a/xdelta1/doc/old/dcc99/figs/jumping.fig +++ /dev/null | |||
@@ -1,70 +0,0 @@ | |||
1 | #FIG 3.1 | ||
2 | Portrait | ||
3 | Center | ||
4 | Inches | ||
5 | 1200 2 | ||
6 | 6 0 0 3225 493 | ||
7 | 6 0 0 3204 303 | ||
8 | 6 0 0 1527 303 | ||
9 | 6 0 0 1527 303 | ||
10 | 6 306 0 609 303 | ||
11 | 2 2 0 1 -1 7 0 0 -1 0.000 0 0 -1 0 0 5 | ||
12 | 306 0 609 0 609 303 306 303 306 0 | ||
13 | 4 0 -1 0 0 0 17 0.0000 0 177 168 382 227 R\001 | ||
14 | -6 | ||
15 | 6 609 0 915 303 | ||
16 | 2 2 0 1 -1 7 0 0 -1 0.000 0 0 -1 0 0 5 | ||
17 | 609 0 915 0 915 303 609 303 609 0 | ||
18 | 4 0 -1 0 0 0 17 0.0000 0 177 153 685 227 L\001 | ||
19 | -6 | ||
20 | 6 915 0 1221 303 | ||
21 | 2 2 0 1 -1 7 0 0 -1 0.000 0 0 -1 0 0 5 | ||
22 | 915 0 1221 0 1221 303 915 303 915 0 | ||
23 | 4 0 -1 0 0 0 17 0.0000 0 177 137 992 227 F\001 | ||
24 | -6 | ||
25 | 6 0 0 306 303 | ||
26 | 2 2 0 1 -1 7 0 0 -1 0.000 0 0 -1 0 0 5 | ||
27 | 0 0 306 0 306 303 0 303 0 0 | ||
28 | 4 0 -1 0 0 0 17 0.0000 0 177 168 76 227 R\001 | ||
29 | -6 | ||
30 | 6 1221 0 1527 303 | ||
31 | 2 2 0 1 -1 7 0 0 -1 0.000 0 0 -1 0 0 5 | ||
32 | 1221 0 1527 0 1527 303 1221 303 1221 0 | ||
33 | 4 0 -1 0 0 0 17 0.0000 0 177 137 1297 227 F\001 | ||
34 | -6 | ||
35 | -6 | ||
36 | -6 | ||
37 | 6 1677 0 3204 303 | ||
38 | 6 1677 0 3204 303 | ||
39 | 6 1983 0 2289 303 | ||
40 | 2 2 0 1 -1 7 0 0 -1 0.000 0 0 -1 0 0 5 | ||
41 | 1983 0 2289 0 2289 303 1983 303 1983 0 | ||
42 | 4 0 -1 0 0 0 17 0.0000 0 177 168 2059 227 R\001 | ||
43 | -6 | ||
44 | 6 2289 0 2595 303 | ||
45 | 2 2 0 1 -1 7 0 0 -1 0.000 0 0 -1 0 0 5 | ||
46 | 2289 0 2595 0 2595 303 2289 303 2289 0 | ||
47 | 4 0 -1 0 0 0 17 0.0000 0 177 153 2365 227 L\001 | ||
48 | -6 | ||
49 | 6 2595 0 2898 303 | ||
50 | 2 2 0 1 -1 7 0 0 -1 0.000 0 0 -1 0 0 5 | ||
51 | 2595 0 2898 0 2898 303 2595 303 2595 0 | ||
52 | 4 0 -1 0 0 0 17 0.0000 0 177 137 2669 227 F\001 | ||
53 | -6 | ||
54 | 6 1677 0 1983 303 | ||
55 | 2 2 0 1 -1 7 0 0 -1 0.000 0 0 -1 0 0 5 | ||
56 | 1677 0 1983 0 1983 303 1677 303 1677 0 | ||
57 | 4 0 -1 0 0 0 17 0.0000 0 177 168 1753 227 R\001 | ||
58 | -6 | ||
59 | 6 2898 0 3204 303 | ||
60 | 2 2 0 1 -1 7 0 0 -1 0.000 0 0 -1 0 0 5 | ||
61 | 2898 0 3204 0 3204 303 2898 303 2898 0 | ||
62 | 4 0 -1 0 0 0 17 0.0000 0 177 137 2975 227 F\001 | ||
63 | -6 | ||
64 | -6 | ||
65 | -6 | ||
66 | -6 | ||
67 | 2 1 0 1 -1 7 0 0 -1 0.000 0 0 -1 1 0 2 | ||
68 | 1 1 1.00 60.00 120.00 | ||
69 | 304 455 2884 455 | ||
70 | -6 | ||
diff --git a/xdelta1/doc/old/dcc99/figs/normalize.fig b/xdelta1/doc/old/dcc99/figs/normalize.fig deleted file mode 100755 index 4bcf428..0000000 --- a/xdelta1/doc/old/dcc99/figs/normalize.fig +++ /dev/null | |||
@@ -1,256 +0,0 @@ | |||
1 | #FIG 3.1 | ||
2 | Landscape | ||
3 | Center | ||
4 | Inches | ||
5 | 1200 2 | ||
6 | 6 2100 9900 15300 10875 | ||
7 | 4 0 -1 0 0 12 34 0.0000 4 300 2100 2100 10275 Actual \001 | ||
8 | 4 0 -1 0 0 12 34 0.0000 4 300 1200 2100 10755 File\001 | ||
9 | 4 0 -1 0 0 12 34 0.0000 4 375 1200 5700 10275 Copy\001 | ||
10 | 4 0 -1 0 0 12 34 0.0000 4 375 2400 5700 10755 Segments\001 | ||
11 | 4 0 -1 0 0 12 34 0.0000 4 285 1800 9300 10200 Insert\001 | ||
12 | 4 0 -1 0 0 12 34 0.0000 4 375 2400 9300 10680 Segments\001 | ||
13 | 4 0 -1 0 0 12 34 0.0000 4 390 2400 12900 10275 Physical\001 | ||
14 | 4 0 -1 0 0 12 34 0.0000 4 375 2100 12900 10755 Storage\001 | ||
15 | -6 | ||
16 | 2 2 2 1 -1 7 0 0 -1 3.000 0 0 -1 0 0 5 | ||
17 | 1500 600 4500 600 4500 1200 1500 1200 1500 600 | ||
18 | 2 2 2 1 -1 7 0 0 -1 3.000 0 0 -1 0 0 5 | ||
19 | 1500 1800 4500 1800 4500 2400 1500 2400 1500 1800 | ||
20 | 2 2 2 1 -1 7 0 0 -1 3.000 0 0 -1 0 0 5 | ||
21 | 1500 3000 4500 3000 4500 3600 1500 3600 1500 3000 | ||
22 | 2 2 2 1 -1 7 0 0 -1 3.000 0 0 -1 0 0 5 | ||
23 | 1500 4200 4500 4200 4500 4800 1500 4800 1500 4200 | ||
24 | 2 2 2 1 -1 7 0 0 -1 3.000 0 0 -1 0 0 5 | ||
25 | 1500 5400 4500 5400 4500 6000 1500 6000 1500 5400 | ||
26 | 2 2 0 1 -1 7 0 0 41 0.000 0 0 -1 0 0 5 | ||
27 | 1500 5400 4500 5400 4500 6000 1500 6000 1500 5400 | ||
28 | 2 2 0 1 -1 7 0 0 41 0.000 0 0 -1 0 0 5 | ||
29 | 1500 4200 4500 4200 4500 4800 1500 4800 1500 4200 | ||
30 | 2 2 0 1 -1 7 0 0 41 0.000 0 0 -1 0 0 5 | ||
31 | 1500 3000 4500 3000 4500 3600 1500 3600 1500 3000 | ||
32 | 2 2 0 1 -1 7 0 0 41 0.000 0 0 -1 0 0 5 | ||
33 | 1500 1800 4500 1800 4500 2400 1500 2400 1500 1800 | ||
34 | 2 2 0 1 -1 7 0 0 41 0.000 0 0 -1 0 0 5 | ||
35 | 1500 600 4500 600 4500 1200 1500 1200 1500 600 | ||
36 | 2 2 0 1 -1 7 0 0 41 0.000 0 0 -1 0 0 5 | ||
37 | 1500 6600 4500 6600 4500 7200 1500 7200 1500 6600 | ||
38 | 2 2 0 1 -1 7 0 0 -1 0.000 0 0 -1 0 0 5 | ||
39 | 5100 600 8100 600 8100 1200 5100 1200 5100 600 | ||
40 | 2 2 0 1 -1 7 0 0 -1 0.000 0 0 -1 0 0 5 | ||
41 | 5100 1800 8100 1800 8100 2400 5100 2400 5100 1800 | ||
42 | 2 2 0 1 -1 7 0 0 -1 0.000 0 0 -1 0 0 5 | ||
43 | 5100 3000 8100 3000 8100 3600 5100 3600 5100 3000 | ||
44 | 2 2 0 1 -1 7 0 0 -1 0.000 0 0 -1 0 0 5 | ||
45 | 5100 4200 8100 4200 8100 4800 5100 4800 5100 4200 | ||
46 | 2 2 0 1 -1 7 0 0 -1 0.000 0 0 -1 0 0 5 | ||
47 | 5100 5400 8100 5400 8100 6000 5100 6000 5100 5400 | ||
48 | 2 2 0 1 -1 7 0 0 -1 0.000 0 0 -1 0 0 5 | ||
49 | 5100 6600 8100 6600 8100 7200 5100 7200 5100 6600 | ||
50 | 2 2 0 1 -1 7 0 0 -1 0.000 0 0 -1 0 0 5 | ||
51 | 8700 600 11700 600 11700 1200 8700 1200 8700 600 | ||
52 | 2 2 0 1 -1 7 0 0 -1 0.000 0 0 -1 0 0 5 | ||
53 | 8700 1800 11700 1800 11700 2400 8700 2400 8700 1800 | ||
54 | 2 2 0 1 -1 7 0 0 -1 0.000 0 0 -1 0 0 5 | ||
55 | 8700 3000 11700 3000 11700 3600 8700 3600 8700 3000 | ||
56 | 2 2 0 1 -1 7 0 0 -1 0.000 0 0 -1 0 0 5 | ||
57 | 8700 4200 11700 4200 11700 4800 8700 4800 8700 4200 | ||
58 | 2 2 0 1 -1 7 0 0 -1 0.000 0 0 -1 0 0 5 | ||
59 | 8700 5400 11700 5400 11700 6000 8700 6000 8700 5400 | ||
60 | 2 2 0 1 -1 7 0 0 -1 0.000 0 0 -1 0 0 5 | ||
61 | 8700 6600 11700 6600 11700 7200 8700 7200 8700 6600 | ||
62 | 2 2 0 1 -1 7 0 0 41 0.000 0 0 -1 0 0 5 | ||
63 | 5400 600 8100 600 8100 1200 5400 1200 5400 600 | ||
64 | 2 2 0 1 -1 7 0 0 41 0.000 0 0 -1 0 0 5 | ||
65 | 8700 600 9000 600 9000 1200 8700 1200 8700 600 | ||
66 | 2 2 0 1 -1 7 0 0 41 0.000 0 0 -1 0 0 5 | ||
67 | 5400 1800 6000 1800 6000 2400 5400 2400 5400 1800 | ||
68 | 2 2 0 1 -1 7 0 0 41 0.000 0 0 -1 0 0 5 | ||
69 | 6300 1800 6600 1800 6600 2400 6300 2400 6300 1800 | ||
70 | 2 2 0 1 -1 7 0 0 41 0.000 0 0 -1 0 0 5 | ||
71 | 7200 1800 8100 1800 8100 2400 7200 2400 7200 1800 | ||
72 | 2 2 0 1 -1 7 0 0 41 0.000 0 0 -1 0 0 5 | ||
73 | 8700 1800 9000 1800 9000 2400 8700 2400 8700 1800 | ||
74 | 2 2 0 1 -1 7 0 0 41 0.000 0 0 -1 0 0 5 | ||
75 | 9600 1800 9900 1800 9900 2400 9600 2400 9600 1800 | ||
76 | 2 2 0 1 -1 7 0 0 41 0.000 0 0 -1 0 0 5 | ||
77 | 10200 1800 10800 1800 10800 2400 10200 2400 10200 1800 | ||
78 | 2 2 0 1 -1 7 0 0 41 0.000 0 0 -1 0 0 5 | ||
79 | 5100 3000 6000 3000 6000 3600 5100 3600 5100 3000 | ||
80 | 2 2 0 1 -1 7 0 0 41 0.000 0 0 -1 0 0 5 | ||
81 | 6300 3000 6600 3000 6600 3600 6300 3600 6300 3000 | ||
82 | 2 2 0 1 -1 7 0 0 41 0.000 0 0 -1 0 0 5 | ||
83 | 7200 3000 7500 3000 7500 3600 7200 3600 7200 3000 | ||
84 | 2 2 0 1 -1 7 0 0 41 0.000 0 0 -1 0 0 5 | ||
85 | 7800 3000 8100 3000 8100 3600 7800 3600 7800 3000 | ||
86 | 2 2 0 1 -1 7 0 0 41 0.000 0 0 -1 0 0 5 | ||
87 | 9600 3000 9900 3000 9900 3600 9600 3600 9600 3000 | ||
88 | 2 2 0 1 -1 7 0 0 41 0.000 0 0 -1 0 0 5 | ||
89 | 10200 3000 10800 3000 10800 3600 10200 3600 10200 3000 | ||
90 | 2 2 0 1 -1 7 0 0 41 0.000 0 0 -1 0 0 5 | ||
91 | 11100 3000 11400 3000 11400 3600 11100 3600 11100 3000 | ||
92 | 2 2 0 1 -1 7 0 0 41 0.000 0 0 -1 0 0 5 | ||
93 | 6900 4200 7200 4200 7200 4200 6900 4200 6900 4200 | ||
94 | 2 2 0 1 -1 7 0 0 41 0.000 0 0 -1 0 0 5 | ||
95 | 5700 4200 6000 4200 6000 4800 5700 4800 5700 4200 | ||
96 | 2 2 0 1 -1 7 0 0 41 0.000 0 0 -1 0 0 5 | ||
97 | 6300 4200 6600 4200 6600 4800 6300 4800 6300 4200 | ||
98 | 2 2 0 1 -1 7 0 0 61 0.000 0 0 -1 0 0 5 | ||
99 | 5100 4200 5400 4200 5400 4800 5100 4800 5100 4200 | ||
100 | 2 2 0 1 -1 7 0 0 41 0.000 0 0 -1 0 0 5 | ||
101 | 7200 4200 7500 4200 7500 4800 7200 4800 7200 4200 | ||
102 | 2 2 0 1 -1 7 0 0 61 0.000 0 0 -1 0 0 5 | ||
103 | 6000 4200 6300 4200 6300 4800 6000 4800 6000 4200 | ||
104 | 2 2 0 1 -1 7 0 0 61 0.000 0 0 -1 0 0 5 | ||
105 | 6600 4200 7200 4200 7200 4800 6600 4800 6600 4200 | ||
106 | 2 2 0 1 -1 7 0 0 41 0.000 0 0 -1 0 0 5 | ||
107 | 5700 5400 6000 5400 6000 6000 5700 6000 5700 5400 | ||
108 | 2 2 0 1 -1 7 0 0 41 0.000 0 0 -1 0 0 5 | ||
109 | 6300 5400 6600 5400 6600 6000 6300 6000 6300 5400 | ||
110 | 2 2 0 1 -1 7 0 0 61 0.000 0 0 -1 0 0 5 | ||
111 | 6000 5400 6300 5400 6300 6000 6000 6000 6000 5400 | ||
112 | 2 2 0 1 -1 7 0 0 61 0.000 0 0 -1 0 0 5 | ||
113 | 6600 5400 7200 5400 7200 6000 6600 6000 6600 5400 | ||
114 | 2 2 0 1 -1 7 0 0 41 0.000 0 0 -1 0 0 5 | ||
115 | 10800 5400 11700 5400 11700 6000 10800 6000 10800 5400 | ||
116 | 2 2 0 1 -1 7 0 0 41 0.000 0 0 -1 0 0 5 | ||
117 | 8700 5400 9300 5400 9300 6000 8700 6000 8700 5400 | ||
118 | 2 2 0 1 -1 7 0 0 41 0.000 0 0 -1 0 0 5 | ||
119 | 11100 4200 11700 4200 11700 4800 11100 4800 11100 4200 | ||
120 | 2 2 0 1 -1 7 0 0 61 0.000 0 0 -1 0 0 5 | ||
121 | 5100 6600 5400 6600 5400 7200 5100 7200 5100 6600 | ||
122 | 2 2 0 1 -1 7 0 0 61 0.000 0 0 -1 0 0 5 | ||
123 | 6000 6600 6300 6600 6300 7200 6000 7200 6000 6600 | ||
124 | 2 2 0 1 -1 7 0 0 61 0.000 0 0 -1 0 0 5 | ||
125 | 6600 7200 7200 7200 7200 6600 6600 6600 6600 7200 | ||
126 | 2 2 0 1 -1 7 0 0 61 0.000 0 0 -1 0 0 5 | ||
127 | 7500 6600 8100 6600 8100 7200 7500 7200 7500 6600 | ||
128 | 2 2 0 1 -1 7 0 0 41 0.000 0 0 -1 0 0 5 | ||
129 | 9000 6600 9600 6600 9600 7200 9000 7200 9000 6600 | ||
130 | 2 2 0 1 -1 7 0 0 41 0.000 0 0 -1 0 0 5 | ||
131 | 9900 6600 10200 6600 10200 7200 9900 7200 9900 6600 | ||
132 | 2 2 0 1 -1 7 0 0 41 0.000 0 0 -1 0 0 5 | ||
133 | 10800 6600 11100 6600 11100 7200 10800 7200 10800 6600 | ||
134 | 2 2 0 1 -1 7 0 0 41 0.000 0 0 -1 0 0 5 | ||
135 | 12300 6600 13500 6600 13500 7200 12300 7200 12300 6600 | ||
136 | 2 2 0 1 -1 7 0 0 41 0.000 0 0 -1 0 0 5 | ||
137 | 12300 4800 12900 4800 12900 4200 12300 4200 12300 4800 | ||
138 | 2 2 0 1 -1 7 0 0 41 0.000 0 0 -1 0 0 5 | ||
139 | 12300 3600 13500 3600 13500 3000 12300 3000 12300 3600 | ||
140 | 2 2 0 1 -1 7 0 0 41 0.000 0 0 -1 0 0 5 | ||
141 | 12300 2400 13500 2400 13500 1800 12300 1800 12300 2400 | ||
142 | 2 2 0 1 -1 7 0 0 41 0.000 0 0 -1 0 0 5 | ||
143 | 12300 600 12600 600 12600 1200 12300 1200 12300 600 | ||
144 | 2 2 0 1 -1 7 0 0 -1 0.000 0 0 -1 0 0 5 | ||
145 | 1500 7800 4500 7800 4500 8400 1500 8400 1500 7800 | ||
146 | 2 2 0 1 -1 7 0 0 20 0.000 0 0 -1 0 0 5 | ||
147 | 1500 7800 4500 7800 4500 8400 1500 8400 1500 7800 | ||
148 | 2 2 0 1 -1 7 0 0 41 0.000 0 0 -1 0 0 5 | ||
149 | 1500 7800 4500 7800 4500 8400 1500 8400 1500 7800 | ||
150 | 2 2 0 1 -1 7 0 0 -1 0.000 0 0 -1 0 0 5 | ||
151 | 5100 7800 8100 7800 8100 8400 5100 8400 5100 7800 | ||
152 | 2 2 0 1 -1 7 0 0 -1 0.000 0 0 -1 0 0 5 | ||
153 | 8700 7800 11700 7800 11700 8400 8700 8400 8700 7800 | ||
154 | 2 2 0 1 -1 7 0 0 41 0.000 0 0 -1 0 0 5 | ||
155 | 8700 7800 11700 7800 11700 8400 8700 8400 8700 7800 | ||
156 | 2 2 0 1 -1 7 0 0 41 0.000 0 0 -1 0 0 5 | ||
157 | 12300 7800 15300 7800 15300 8400 12300 8400 12300 7800 | ||
158 | 2 2 0 1 -1 7 0 0 -1 0.000 0 0 -1 0 0 5 | ||
159 | 1496 8996 4496 8996 4496 9596 1496 9596 1496 8996 | ||
160 | 2 2 0 1 -1 7 0 0 20 0.000 0 0 -1 0 0 5 | ||
161 | 1496 8996 4496 8996 4496 9596 1496 9596 1496 8996 | ||
162 | 2 2 0 1 -1 7 0 0 -1 0.000 0 0 -1 0 0 5 | ||
163 | 5096 8996 8096 8996 8096 9596 5096 9596 5096 8996 | ||
164 | 2 2 0 1 -1 7 0 0 41 0.000 0 0 -1 0 0 5 | ||
165 | 1496 8996 4496 8996 4496 9596 1496 9596 1496 8996 | ||
166 | 2 2 0 1 -1 7 0 0 61 0.000 0 0 -1 0 0 5 | ||
167 | 5100 9000 5400 9000 5400 9600 5100 9600 5100 9000 | ||
168 | 2 2 0 1 -1 7 0 0 61 0.000 0 0 -1 0 0 5 | ||
169 | 5400 9000 5700 9000 5700 9600 5400 9600 5400 9000 | ||
170 | 2 2 0 1 -1 7 0 0 61 0.000 0 0 -1 0 0 5 | ||
171 | 5700 9000 6000 9000 6000 9600 5700 9600 5700 9000 | ||
172 | 2 2 0 1 -1 7 0 0 61 0.000 0 0 -1 0 0 5 | ||
173 | 6000 9000 6300 9000 6300 9600 6000 9600 6000 9000 | ||
174 | 2 2 0 1 -1 7 0 0 61 0.000 0 0 -1 0 0 5 | ||
175 | 6600 9000 7200 9000 7200 9600 6600 9600 6600 9000 | ||
176 | 2 2 0 1 -1 7 0 0 41 0.000 0 0 -1 0 0 5 | ||
177 | 9900 9000 10200 9000 10200 9600 9900 9600 9900 9000 | ||
178 | 2 2 0 1 -1 7 0 0 61 0.000 0 0 -1 0 0 5 | ||
179 | 7200 9000 7500 9000 7500 9600 7200 9600 7200 9000 | ||
180 | 2 2 0 1 -1 7 0 0 41 0.000 0 0 -1 0 0 5 | ||
181 | 11100 9000 11700 9000 11700 9600 11100 9600 11100 9000 | ||
182 | 2 2 0 1 -1 7 0 0 41 0.000 0 0 -1 0 0 5 | ||
183 | 12300 9000 13200 9000 13200 9600 12300 9600 12300 9000 | ||
184 | 2 2 0 1 -1 7 0 0 -1 0.000 0 0 -1 0 0 5 | ||
185 | 8696 8996 11696 8996 11696 9596 8696 9596 8696 8996 | ||
186 | 2 2 0 1 -1 7 0 0 41 0.000 0 0 -1 0 0 5 | ||
187 | 12300 5400 13800 5400 13800 6000 12300 6000 12300 5400 | ||
188 | 2 4 0 1 -1 7 0 0 -1 0.000 0 0 7 0 0 5 | ||
189 | 13950 6150 13950 450 4950 450 4950 6150 13950 6150 | ||
190 | 4 0 -1 0 0 0 34 0.0000 0 345 1035 300 8250 F7 = \001 | ||
191 | 4 0 -1 0 0 0 34 0.0000 0 345 915 300 7050 F6 =\001 | ||
192 | 4 0 -1 0 0 0 34 0.0000 0 345 915 300 5850 F5 =\001 | ||
193 | 4 0 -1 0 0 0 34 0.0000 0 345 915 300 3450 F3 =\001 | ||
194 | 4 0 -1 0 0 0 34 0.0000 0 345 915 300 2250 F2 =\001 | ||
195 | 4 0 -1 0 0 0 34 0.0000 0 345 915 300 1050 F1 =\001 | ||
196 | 4 0 -1 0 0 0 34 0.0000 0 345 915 300 9450 F8 =\001 | ||
197 | 4 0 -1 0 0 5 34 0.0000 0 285 3000 1500 1200 DISULPHIDE\001 | ||
198 | 4 0 -1 0 0 5 34 0.0000 0 285 3000 1500 2400 BISULPHIDE\001 | ||
199 | 4 0 -1 0 0 5 34 0.0000 0 285 3000 1500 3600 DISELENIDE\001 | ||
200 | 4 0 -1 0 0 5 34 0.0000 0 285 3000 1500 4800 DISULPHINE\001 | ||
201 | 4 0 -1 0 0 5 34 0.0000 0 285 3000 1500 6000 ESSELENIAN\001 | ||
202 | 4 0 -1 0 0 5 34 0.0000 0 285 3000 1500 7200 DISULPHONE\001 | ||
203 | 4 0 -1 0 0 5 34 0.0000 0 285 2700 5400 1200 ISULPHIDE\001 | ||
204 | 4 0 -1 0 0 5 34 0.0000 0 285 300 8700 1200 D\001 | ||
205 | 4 0 -1 0 0 5 34 0.0000 0 285 600 5400 2400 IS\001 | ||
206 | 4 0 -1 0 0 5 34 0.0000 0 285 300 6300 2400 L\001 | ||
207 | 4 0 -1 0 0 5 34 0.0000 0 285 900 7200 2400 IDE\001 | ||
208 | 4 0 -1 0 0 5 34 0.0000 0 285 300 8700 2400 B\001 | ||
209 | 4 0 -1 0 0 5 34 0.0000 0 285 300 9600 2400 U\001 | ||
210 | 4 0 -1 0 0 5 34 0.0000 0 285 600 10200 2400 PH\001 | ||
211 | 4 0 -1 0 0 5 34 0.0000 0 285 1800 9600 3600 E EN D\001 | ||
212 | 4 0 -1 0 0 5 34 0.0000 0 285 3000 5100 3600 DIS L I E\001 | ||
213 | 4 0 -1 0 0 5 34 0.0000 0 285 600 8700 6000 ES\001 | ||
214 | 4 0 -1 0 0 5 34 0.0000 0 285 900 10800 6000 IAN\001 | ||
215 | 4 0 -1 0 0 5 34 0.0000 0 285 1500 5700 6000 SELEN\001 | ||
216 | 4 0 -1 0 0 5 34 0.0000 0 285 2400 5100 4800 DISULPHI\001 | ||
217 | 4 0 -1 0 0 5 34 0.0000 0 285 600 11100 4800 NE\001 | ||
218 | 4 0 -1 0 0 5 34 0.0000 0 285 3000 5100 7200 D U PH NE\001 | ||
219 | 4 0 -1 0 0 5 34 0.0000 0 285 2400 8700 7200 IS U O\001 | ||
220 | 4 0 -1 0 0 5 34 0.0000 0 285 3000 1500 8400 TROEZENIAN\001 | ||
221 | 4 0 -1 0 0 5 34 0.0000 0 285 3000 8700 8400 TROEZENIAN\001 | ||
222 | 4 0 -1 0 0 12 34 0.0000 4 285 3000 1496 9521 ESSELENIST\001 | ||
223 | 4 0 -1 0 0 0 34 0.0000 0 135 285 4650 9450 =\001 | ||
224 | 4 0 -1 0 0 0 34 0.0000 0 135 285 4650 8250 =\001 | ||
225 | 4 0 -1 0 0 0 34 0.0000 0 135 285 4650 7050 =\001 | ||
226 | 4 0 -1 0 0 0 34 0.0000 0 135 285 4650 5850 =\001 | ||
227 | 4 0 -1 0 0 0 34 0.0000 0 135 285 4650 4650 =\001 | ||
228 | 4 0 -1 0 0 0 34 0.0000 0 135 285 4650 3450 =\001 | ||
229 | 4 0 -1 0 0 0 34 0.0000 0 135 285 4650 2250 =\001 | ||
230 | 4 0 -1 0 0 0 34 0.0000 0 135 285 4650 1050 =\001 | ||
231 | 4 0 -1 0 0 0 34 0.0000 0 240 285 8250 9450 +\001 | ||
232 | 4 0 -1 0 0 0 34 0.0000 0 240 285 8250 7050 +\001 | ||
233 | 4 0 -1 0 0 0 34 0.0000 0 240 285 8250 5850 +\001 | ||
234 | 4 0 -1 0 0 0 34 0.0000 0 240 285 8250 4650 +\001 | ||
235 | 4 0 -1 0 0 0 34 0.0000 0 240 285 8250 3450 +\001 | ||
236 | 4 0 -1 0 0 0 34 0.0000 0 240 285 8250 2250 +\001 | ||
237 | 4 0 -1 0 0 0 34 0.0000 0 240 285 8250 1050 +\001 | ||
238 | 4 0 -1 0 0 0 34 0.0000 0 240 285 8250 8250 +\001 | ||
239 | 4 0 -1 0 0 0 34 0.0000 0 345 915 300 4650 F4 =\001 | ||
240 | 4 0 -1 0 0 0 34 0.0000 0 135 285 11850 9450 =\001 | ||
241 | 4 0 -1 0 0 0 34 0.0000 0 135 285 11850 8250 =\001 | ||
242 | 4 0 -1 0 0 0 34 0.0000 0 135 285 11850 6975 =\001 | ||
243 | 4 0 -1 0 0 0 34 0.0000 0 135 285 11850 5850 =\001 | ||
244 | 4 0 -1 0 0 0 34 0.0000 0 135 285 11850 4575 =\001 | ||
245 | 4 0 -1 0 0 0 34 0.0000 0 135 285 11850 3450 =\001 | ||
246 | 4 0 -1 0 0 0 34 0.0000 0 135 285 11850 2250 =\001 | ||
247 | 4 0 -1 0 0 0 34 0.0000 0 135 285 11850 1050 =\001 | ||
248 | 4 0 -1 0 0 5 34 0.0000 0 285 6600 5100 9600 ESSE ENI L ST\001 | ||
249 | 4 0 -1 0 0 5 34 0.0000 0 285 300 12300 1200 D\001 | ||
250 | 4 0 -1 0 0 5 34 0.0000 0 285 1200 12300 2400 BUPH\001 | ||
251 | 4 0 -1 0 0 5 34 0.0000 0 285 1200 12300 3600 EEND\001 | ||
252 | 4 0 -1 0 0 5 34 0.0000 0 285 600 12300 4800 NE\001 | ||
253 | 4 0 -1 0 0 5 34 0.0000 0 285 1500 12300 6000 ESIAN\001 | ||
254 | 4 0 -1 0 0 5 34 0.0000 0 285 1200 12300 7200 ISUO\001 | ||
255 | 4 0 -1 0 0 5 34 0.0000 0 285 3000 12300 8400 TROEZENIAN\001 | ||
256 | 4 0 -1 0 0 5 34 0.0000 0 285 900 12300 9600 LST\001 | ||
diff --git a/xdelta1/doc/old/dcc99/figs/onestep.eps b/xdelta1/doc/old/dcc99/figs/onestep.eps deleted file mode 100755 index 80f4ed8..0000000 --- a/xdelta1/doc/old/dcc99/figs/onestep.eps +++ /dev/null | |||
@@ -1,930 +0,0 @@ | |||
1 | %!PS-Adobe-2.0 EPSF-2.0 | ||
2 | %%Title: onestep.fig | ||
3 | %%Creator: fig2dev Version 3.1 Patchlevel 2 | ||
4 | %%CreationDate: Sun Nov 8 03:20:13 1998 | ||
5 | %%For: jmacd@axis.hip.berkeley.edu (Josh) | ||
6 | %%Orientation: Portrait | ||
7 | %%BoundingBox: 0 0 336 229 | ||
8 | %%Pages: 0 | ||
9 | %%BeginSetup | ||
10 | %%IncludeFeature: *PageSize Letter | ||
11 | %%EndSetup | ||
12 | %Magnification: 1.00 | ||
13 | %%EndComments | ||
14 | /MyAppDict 100 dict dup begin def | ||
15 | /$F2psDict 200 dict def | ||
16 | $F2psDict begin | ||
17 | $F2psDict /mtrx matrix put | ||
18 | /col-1 {0 setgray} bind def | ||
19 | /col0 {0.000 0.000 0.000 srgb} bind def | ||
20 | /col1 {0.000 0.000 1.000 srgb} bind def | ||
21 | /col2 {0.000 1.000 0.000 srgb} bind def | ||
22 | /col3 {0.000 1.000 1.000 srgb} bind def | ||
23 | /col4 {1.000 0.000 0.000 srgb} bind def | ||
24 | /col5 {1.000 0.000 1.000 srgb} bind def | ||
25 | /col6 {1.000 1.000 0.000 srgb} bind def | ||
26 | /col7 {1.000 1.000 1.000 srgb} bind def | ||
27 | /col8 {0.000 0.000 0.560 srgb} bind def | ||
28 | /col9 {0.000 0.000 0.690 srgb} bind def | ||
29 | /col10 {0.000 0.000 0.820 srgb} bind def | ||
30 | /col11 {0.530 0.810 1.000 srgb} bind def | ||
31 | /col12 {0.000 0.560 0.000 srgb} bind def | ||
32 | /col13 {0.000 0.690 0.000 srgb} bind def | ||
33 | /col14 {0.000 0.820 0.000 srgb} bind def | ||
34 | /col15 {0.000 0.560 0.560 srgb} bind def | ||
35 | /col16 {0.000 0.690 0.690 srgb} bind def | ||
36 | /col17 {0.000 0.820 0.820 srgb} bind def | ||
37 | /col18 {0.560 0.000 0.000 srgb} bind def | ||
38 | /col19 {0.690 0.000 0.000 srgb} bind def | ||
39 | /col20 {0.820 0.000 0.000 srgb} bind def | ||
40 | /col21 {0.560 0.000 0.560 srgb} bind def | ||
41 | /col22 {0.690 0.000 0.690 srgb} bind def | ||
42 | /col23 {0.820 0.000 0.820 srgb} bind def | ||
43 | /col24 {0.500 0.190 0.000 srgb} bind def | ||
44 | /col25 {0.630 0.250 0.000 srgb} bind def | ||
45 | /col26 {0.750 0.380 0.000 srgb} bind def | ||
46 | /col27 {1.000 0.500 0.500 srgb} bind def | ||
47 | /col28 {1.000 0.630 0.630 srgb} bind def | ||
48 | /col29 {1.000 0.750 0.750 srgb} bind def | ||
49 | /col30 {1.000 0.880 0.880 srgb} bind def | ||
50 | /col31 {1.000 0.840 0.000 srgb} bind def | ||
51 | |||
52 | end | ||
53 | save | ||
54 | 0.0 228.0 translate | ||
55 | 1 -1 scale | ||
56 | .9 .9 scale % to make patterns same scale as in xfig | ||
57 | |||
58 | % This junk string is used by the show operators | ||
59 | /PATsstr 1 string def | ||
60 | /PATawidthshow { % cx cy cchar rx ry string | ||
61 | % Loop over each character in the string | ||
62 | { % cx cy cchar rx ry char | ||
63 | % Show the character | ||
64 | dup % cx cy cchar rx ry char char | ||
65 | PATsstr dup 0 4 -1 roll put % cx cy cchar rx ry char (char) | ||
66 | false charpath % cx cy cchar rx ry char | ||
67 | /clip load PATdraw | ||
68 | % Move past the character (charpath modified the | ||
69 | % current point) | ||
70 | currentpoint % cx cy cchar rx ry char x y | ||
71 | newpath | ||
72 | moveto % cx cy cchar rx ry char | ||
73 | % Reposition by cx,cy if the character in the string is cchar | ||
74 | 3 index eq { % cx cy cchar rx ry | ||
75 | 4 index 4 index rmoveto | ||
76 | } if | ||
77 | % Reposition all characters by rx ry | ||
78 | 2 copy rmoveto % cx cy cchar rx ry | ||
79 | } forall | ||
80 | pop pop pop pop pop % - | ||
81 | currentpoint | ||
82 | newpath | ||
83 | moveto | ||
84 | } bind def | ||
85 | /PATcg { | ||
86 | 7 dict dup begin | ||
87 | /lw currentlinewidth def | ||
88 | /lc currentlinecap def | ||
89 | /lj currentlinejoin def | ||
90 | /ml currentmiterlimit def | ||
91 | /ds [ currentdash ] def | ||
92 | /cc [ currentrgbcolor ] def | ||
93 | /cm matrix currentmatrix def | ||
94 | end | ||
95 | } bind def | ||
96 | % PATdraw - calculates the boundaries of the object and | ||
97 | % fills it with the current pattern | ||
98 | /PATdraw { % proc | ||
99 | save exch | ||
100 | PATpcalc % proc nw nh px py | ||
101 | 5 -1 roll exec % nw nh px py | ||
102 | newpath | ||
103 | PATfill % - | ||
104 | restore | ||
105 | } bind def | ||
106 | % PATfill - performs the tiling for the shape | ||
107 | /PATfill { % nw nh px py PATfill - | ||
108 | PATDict /CurrentPattern get dup begin | ||
109 | setfont | ||
110 | % Set the coordinate system to Pattern Space | ||
111 | PatternGState PATsg | ||
112 | % Set the color for uncolored pattezns | ||
113 | PaintType 2 eq { PATDict /PColor get PATsc } if | ||
114 | % Create the string for showing | ||
115 | 3 index string % nw nh px py str | ||
116 | % Loop for each of the pattern sources | ||
117 | 0 1 Multi 1 sub { % nw nh px py str source | ||
118 | % Move to the starting location | ||
119 | 3 index 3 index % nw nh px py str source px py | ||
120 | moveto % nw nh px py str source | ||
121 | % For multiple sources, set the appropriate color | ||
122 | Multi 1 ne { dup PC exch get PATsc } if | ||
123 | % Set the appropriate string for the source | ||
124 | 0 1 7 index 1 sub { 2 index exch 2 index put } for pop | ||
125 | % Loop over the number of vertical cells | ||
126 | 3 index % nw nh px py str nh | ||
127 | { % nw nh px py str | ||
128 | currentpoint % nw nh px py str cx cy | ||
129 | 2 index show % nw nh px py str cx cy | ||
130 | YStep add moveto % nw nh px py str | ||
131 | } repeat % nw nh px py str | ||
132 | } for | ||
133 | 5 { pop } repeat | ||
134 | end | ||
135 | } bind def | ||
136 | |||
137 | % PATkshow - kshow with the current pattezn | ||
138 | /PATkshow { % proc string | ||
139 | exch bind % string proc | ||
140 | 1 index 0 get % string proc char | ||
141 | % Loop over all but the last character in the string | ||
142 | 0 1 4 index length 2 sub { | ||
143 | % string proc char idx | ||
144 | % Find the n+1th character in the string | ||
145 | 3 index exch 1 add get % string proe char char+1 | ||
146 | exch 2 copy % strinq proc char+1 char char+1 char | ||
147 | % Now show the nth character | ||
148 | PATsstr dup 0 4 -1 roll put % string proc chr+1 chr chr+1 (chr) | ||
149 | false charpath % string proc char+1 char char+1 | ||
150 | /clip load PATdraw | ||
151 | % Move past the character (charpath modified the current point) | ||
152 | currentpoint newpath moveto | ||
153 | % Execute the user proc (should consume char and char+1) | ||
154 | mark 3 1 roll % string proc char+1 mark char char+1 | ||
155 | 4 index exec % string proc char+1 mark... | ||
156 | cleartomark % string proc char+1 | ||
157 | } for | ||
158 | % Now display the last character | ||
159 | PATsstr dup 0 4 -1 roll put % string proc (char+1) | ||
160 | false charpath % string proc | ||
161 | /clip load PATdraw | ||
162 | neewath | ||
163 | pop pop % - | ||
164 | } bind def | ||
165 | % PATmp - the makepattern equivalent | ||
166 | /PATmp { % patdict patmtx PATmp patinstance | ||
167 | exch dup length 7 add % We will add 6 new entries plus 1 FID | ||
168 | dict copy % Create a new dictionary | ||
169 | begin | ||
170 | % Matrix to install when painting the pattern | ||
171 | TilingType PATtcalc | ||
172 | /PatternGState PATcg def | ||
173 | PatternGState /cm 3 -1 roll put | ||
174 | % Check for multi pattern sources (Level 1 fast color patterns) | ||
175 | currentdict /Multi known not { /Multi 1 def } if | ||
176 | % Font dictionary definitions | ||
177 | /FontType 3 def | ||
178 | % Create a dummy encoding vector | ||
179 | /Encoding 256 array def | ||
180 | 3 string 0 1 255 { | ||
181 | Encoding exch dup 3 index cvs cvn put } for pop | ||
182 | /FontMatrix matrix def | ||
183 | /FontBBox BBox def | ||
184 | /BuildChar { | ||
185 | mark 3 1 roll % mark dict char | ||
186 | exch begin | ||
187 | Multi 1 ne {PaintData exch get}{pop} ifelse % mark [paintdata] | ||
188 | PaintType 2 eq Multi 1 ne or | ||
189 | { XStep 0 FontBBox aload pop setcachedevice } | ||
190 | { XStep 0 setcharwidth } ifelse | ||
191 | currentdict % mark [paintdata] dict | ||
192 | /PaintProc load % mark [paintdata] dict paintproc | ||
193 | end | ||
194 | gsave | ||
195 | false PATredef exec true PATredef | ||
196 | grestore | ||
197 | cleartomark % - | ||
198 | } bind def | ||
199 | currentdict | ||
200 | end % newdict | ||
201 | /foo exch % /foo newlict | ||
202 | definefont % newfont | ||
203 | } bind def | ||
204 | % PATpcalc - calculates the starting point and width/height | ||
205 | % of the tile fill for the shape | ||
206 | /PATpcalc { % - PATpcalc nw nh px py | ||
207 | PATDict /CurrentPattern get begin | ||
208 | gsave | ||
209 | % Set up the coordinate system to Pattern Space | ||
210 | % and lock down pattern | ||
211 | PatternGState /cm get setmatrix | ||
212 | BBox aload pop pop pop translate | ||
213 | % Determine the bounding box of the shape | ||
214 | pathbbox % llx lly urx ury | ||
215 | grestore | ||
216 | % Determine (nw, nh) the # of cells to paint width and height | ||
217 | PatHeight div ceiling % llx lly urx qh | ||
218 | 4 1 roll % qh llx lly urx | ||
219 | PatWidth div ceiling % qh llx lly qw | ||
220 | 4 1 roll % qw qh llx lly | ||
221 | PatHeight div floor % qw qh llx ph | ||
222 | 4 1 roll % ph qw qh llx | ||
223 | PatWidth div floor % ph qw qh pw | ||
224 | 4 1 roll % pw ph qw qh | ||
225 | 2 index sub cvi abs % pw ph qs qh-ph | ||
226 | exch 3 index sub cvi abs exch % pw ph nw=qw-pw nh=qh-ph | ||
227 | % Determine the starting point of the pattern fill | ||
228 | %(px, py) | ||
229 | 4 2 roll % nw nh pw ph | ||
230 | PatHeight mul % nw nh pw py | ||
231 | exch % nw nh py pw | ||
232 | PatWidth mul exch % nw nh px py | ||
233 | end | ||
234 | } bind def | ||
235 | |||
236 | % Save the original routines so that we can use them later on | ||
237 | /oldfill /fill load def | ||
238 | /oldeofill /eofill load def | ||
239 | /oldstroke /stroke load def | ||
240 | /oldshow /show load def | ||
241 | /oldashow /ashow load def | ||
242 | /oldwidthshow /widthshow load def | ||
243 | /oldawidthshow /awidthshow load def | ||
244 | /oldkshow /kshow load def | ||
245 | |||
246 | % These defs are necessary so that subsequent procs don't bind in | ||
247 | % the originals | ||
248 | /fill { oldfill } bind def | ||
249 | /eofill { oldeofill } bind def | ||
250 | /stroke { oldstroke } bind def | ||
251 | /show { oldshow } bind def | ||
252 | /ashow { oldashow } bind def | ||
253 | /widthshow { oldwidthshow } bind def | ||
254 | /awidthshow { oldawidthshow } bind def | ||
255 | /kshow { oldkshow } bind def | ||
256 | /PATredef { | ||
257 | MyAppDict begin | ||
258 | { | ||
259 | /fill { /clip load PATdraw newpath } bind def | ||
260 | /eofill { /eoclip load PATdraw newpath } bind def | ||
261 | /stroke { PATstroke } bind def | ||
262 | /show { 0 0 null 0 0 6 -1 roll PATawidthshow } bind def | ||
263 | /ashow { 0 0 null 6 3 roll PATawidthshow } | ||
264 | bind def | ||
265 | /widthshow { 0 0 3 -1 roll PATawidthshow } | ||
266 | bind def | ||
267 | /awidthshow { PATawidthshow } bind def | ||
268 | /kshow { PATkshow } bind def | ||
269 | } { | ||
270 | /fill { oldfill } bind def | ||
271 | /eofill { oldeofill } bind def | ||
272 | /stroke { oldstroke } bind def | ||
273 | /show { oldshow } bind def | ||
274 | /ashow { oldashow } bind def | ||
275 | /widthshow { oldwidthshow } bind def | ||
276 | /awidthshow { oldawidthshow } bind def | ||
277 | /kshow { oldkshow } bind def | ||
278 | } ifelse | ||
279 | end | ||
280 | } bind def | ||
281 | false PATredef | ||
282 | % Conditionally define setcmykcolor if not available | ||
283 | /setcmykcolor where { pop } { | ||
284 | /setcmykcolor { | ||
285 | 1 sub 4 1 roll | ||
286 | 3 { | ||
287 | 3 index add neg dup 0 lt { pop 0 } if 3 1 roll | ||
288 | } repeat | ||
289 | setrgbcolor - pop | ||
290 | } bind def | ||
291 | } ifelse | ||
292 | /PATsc { % colorarray | ||
293 | aload length % c1 ... cn length | ||
294 | dup 1 eq { pop setgray } { 3 eq { setrgbcolor } { setcmykcolor | ||
295 | } ifelse } ifelse | ||
296 | } bind def | ||
297 | /PATsg { % dict | ||
298 | begin | ||
299 | lw setlinewidth | ||
300 | lc setlinecap | ||
301 | lj setlinejoin | ||
302 | ml setmiterlimit | ||
303 | ds aload pop setdash | ||
304 | cc aload pop setrgbcolor | ||
305 | cm setmatrix | ||
306 | end | ||
307 | } bind def | ||
308 | |||
309 | /PATDict 3 dict def | ||
310 | /PATsp { | ||
311 | true PATredef | ||
312 | PATDict begin | ||
313 | /CurrentPattern exch def | ||
314 | % If it's an uncolored pattern, save the color | ||
315 | CurrentPattern /PaintType get 2 eq { | ||
316 | /PColor exch def | ||
317 | } if | ||
318 | /CColor [ currentrgbcolor ] def | ||
319 | end | ||
320 | } bind def | ||
321 | % PATstroke - stroke with the current pattern | ||
322 | /PATstroke { | ||
323 | countdictstack | ||
324 | save | ||
325 | mark | ||
326 | { | ||
327 | currentpoint strokepath moveto | ||
328 | PATpcalc % proc nw nh px py | ||
329 | clip newpath PATfill | ||
330 | } stopped { | ||
331 | (*** PATstroke Warning: Path is too complex, stroking | ||
332 | with gray) = | ||
333 | cleartomark | ||
334 | restore | ||
335 | countdictstack exch sub dup 0 gt | ||
336 | { { end } repeat } { pop } ifelse | ||
337 | gsave 0.5 setgray oldstroke grestore | ||
338 | } { pop restore pop } ifelse | ||
339 | newpath | ||
340 | } bind def | ||
341 | /PATtcalc { % modmtx tilingtype PATtcalc tilematrix | ||
342 | % Note: tiling types 2 and 3 are not supported | ||
343 | gsave | ||
344 | exch concat % tilingtype | ||
345 | matrix currentmatrix exch % cmtx tilingtype | ||
346 | % Tiling type 1 and 3: constant spacing | ||
347 | 2 ne { | ||
348 | % Distort the pattern so that it occupies | ||
349 | % an integral number of device pixels | ||
350 | dup 4 get exch dup 5 get exch % tx ty cmtx | ||
351 | XStep 0 dtransform | ||
352 | round exch round exch % tx ty cmtx dx.x dx.y | ||
353 | XStep div exch XStep div exch % tx ty cmtx a b | ||
354 | 0 YStep dtransform | ||
355 | round exch round exch % tx ty cmtx a b dy.x dy.y | ||
356 | YStep div exch YStep div exch % tx ty cmtx a b c d | ||
357 | 7 -3 roll astore % { a b c d tx ty } | ||
358 | } if | ||
359 | grestore | ||
360 | } bind def | ||
361 | /PATusp { | ||
362 | false PATredef | ||
363 | PATDict begin | ||
364 | CColor PATsc | ||
365 | end | ||
366 | } bind def | ||
367 | |||
368 | % this is the pattern fill program from the Second edition Reference Manual | ||
369 | % with changes to call the above pattern fill | ||
370 | % left30 | ||
371 | 11 dict begin | ||
372 | /PaintType 1 def | ||
373 | /PatternType 1 def | ||
374 | /TilingType 1 def | ||
375 | /BBox [0 0 1 1] def | ||
376 | /XStep 1 def | ||
377 | /YStep 1 def | ||
378 | /PatWidth 1 def | ||
379 | /PatHeight 1 def | ||
380 | /Multi 2 def | ||
381 | /PaintData [ | ||
382 | { clippath } bind | ||
383 | { 32 16 true [ 32 0 0 -16 0 16 ] | ||
384 | {<c000c000300030000c000c000300030000c000c000300030 | ||
385 | 000c000c00030003c000c000300030000c000c0003000300 | ||
386 | 00c000c000300030000c000c00030003>} | ||
387 | imagemask } bind | ||
388 | ] def | ||
389 | /PaintProc { | ||
390 | pop | ||
391 | exec fill | ||
392 | } def | ||
393 | currentdict | ||
394 | end | ||
395 | /P1 exch def | ||
396 | |||
397 | % horizontal sawtooth lines | ||
398 | 11 dict begin | ||
399 | /PaintType 1 def | ||
400 | /PatternType 1 def | ||
401 | /TilingType 1 def | ||
402 | /BBox [0 0 1 1] def | ||
403 | /XStep 1 def | ||
404 | /YStep 1 def | ||
405 | /PatWidth 1 def | ||
406 | /PatHeight 1 def | ||
407 | /Multi 2 def | ||
408 | /PaintData [ | ||
409 | { clippath } bind | ||
410 | { 32 16 true [ 32 0 0 -16 0 16 ] | ||
411 | {<000000000000000000000000000000000000000000000000 | ||
412 | 000000000100010002800280044004400820082010101010 | ||
413 | 20082008400440048002800200010001>} | ||
414 | imagemask } bind | ||
415 | ] def | ||
416 | /PaintProc { | ||
417 | pop | ||
418 | exec fill | ||
419 | } def | ||
420 | currentdict | ||
421 | end | ||
422 | /P21 exch def | ||
423 | 1.1111 1.1111 scale %restore scale | ||
424 | |||
425 | /cp {closepath} bind def | ||
426 | /ef {eofill} bind def | ||
427 | /gr {grestore} bind def | ||
428 | /gs {gsave} bind def | ||
429 | /sa {save} bind def | ||
430 | /rs {restore} bind def | ||
431 | /l {lineto} bind def | ||
432 | /m {moveto} bind def | ||
433 | /rm {rmoveto} bind def | ||
434 | /n {newpath} bind def | ||
435 | /s {stroke} bind def | ||
436 | /sh {show} bind def | ||
437 | /slc {setlinecap} bind def | ||
438 | /slj {setlinejoin} bind def | ||
439 | /slw {setlinewidth} bind def | ||
440 | /srgb {setrgbcolor} bind def | ||
441 | /rot {rotate} bind def | ||
442 | /sc {scale} bind def | ||
443 | /sd {setdash} bind def | ||
444 | /ff {findfont} bind def | ||
445 | /sf {setfont} bind def | ||
446 | /scf {scalefont} bind def | ||
447 | /sw {stringwidth} bind def | ||
448 | /tr {translate} bind def | ||
449 | /tnt {dup dup currentrgbcolor | ||
450 | 4 -2 roll dup 1 exch sub 3 -1 roll mul add | ||
451 | 4 -2 roll dup 1 exch sub 3 -1 roll mul add | ||
452 | 4 -2 roll dup 1 exch sub 3 -1 roll mul add srgb} | ||
453 | bind def | ||
454 | /shd {dup dup currentrgbcolor 4 -2 roll mul 4 -2 roll mul | ||
455 | 4 -2 roll mul srgb} bind def | ||
456 | /$F2psBegin {$F2psDict begin /$F2psEnteredState save def} def | ||
457 | /$F2psEnd {$F2psEnteredState restore end} def | ||
458 | %%EndProlog | ||
459 | |||
460 | $F2psBegin | ||
461 | 10 setmiterlimit | ||
462 | n 0 792 m 0 0 l 612 0 l 612 792 l cp clip | ||
463 | 0.06000 0.06000 sc | ||
464 | /Courier ff 195.00 scf sf | ||
465 | 4457 3343 m | ||
466 | gs 1 -1 sc (LST) col-1 sh gr | ||
467 | /Courier ff 195.00 scf sf | ||
468 | 669 3772 m | ||
469 | gs 1 -1 sc (File) col-1 sh gr | ||
470 | /Courier ff 195.00 scf sf | ||
471 | 2006 3594 m | ||
472 | gs 1 -1 sc (Copy) col-1 sh gr | ||
473 | /Courier ff 195.00 scf sf | ||
474 | 2006 3772 m | ||
475 | gs 1 -1 sc (Segments) col-1 sh gr | ||
476 | /Courier ff 195.00 scf sf | ||
477 | 3343 3566 m | ||
478 | gs 1 -1 sc (Insert) col-1 sh gr | ||
479 | /Courier ff 195.00 scf sf | ||
480 | 3343 3744 m | ||
481 | gs 1 -1 sc (Segments) col-1 sh gr | ||
482 | /Courier ff 195.00 scf sf | ||
483 | 4680 3594 m | ||
484 | gs 1 -1 sc (Physical) col-1 sh gr | ||
485 | /Courier ff 195.00 scf sf | ||
486 | 4680 3772 m | ||
487 | gs 1 -1 sc (Storage) col-1 sh gr | ||
488 | 7.500 slw | ||
489 | % Polyline | ||
490 | [15 50.0] 50.0 sd | ||
491 | n 446 0 m 1560 0 l 1560 223 l 446 223 l cp gs col-1 s gr [] 0 sd | ||
492 | % Polyline | ||
493 | [15 50.0] 50.0 sd | ||
494 | n 446 446 m 1560 446 l 1560 669 l 446 669 l cp gs col-1 s gr [] 0 sd | ||
495 | % Polyline | ||
496 | [15 50.0] 50.0 sd | ||
497 | n 446 891 m 1560 891 l 1560 1114 l 446 1114 l cp gs col-1 s gr [] 0 sd | ||
498 | % Polyline | ||
499 | [15 50.0] 50.0 sd | ||
500 | n 446 1337 m 1560 1337 l 1560 1560 l 446 1560 l cp gs col-1 s gr [] 0 sd | ||
501 | % Polyline | ||
502 | [15 50.0] 50.0 sd | ||
503 | n 446 1783 m 1560 1783 l 1560 2006 l 446 2006 l cp gs col-1 s gr [] 0 sd | ||
504 | % Polyline | ||
505 | n 446 1783 m 1560 1783 l 1560 2006 l 446 2006 l cp gs /PC [[1.00 1.00 1.00] [0.00 0.00 0.00]] def | ||
506 | 15.00 15.00 sc P1 [16 0 0 -8 29.73 118.87] PATmp PATsp ef gr PATusp gs col-1 s gr | ||
507 | % Polyline | ||
508 | n 446 1337 m 1560 1337 l 1560 1560 l 446 1560 l cp gs /PC [[1.00 1.00 1.00] [0.00 0.00 0.00]] def | ||
509 | 15.00 15.00 sc P1 [16 0 0 -8 29.73 89.13] PATmp PATsp ef gr PATusp gs col-1 s gr | ||
510 | % Polyline | ||
511 | n 446 891 m 1560 891 l 1560 1114 l 446 1114 l cp gs /PC [[1.00 1.00 1.00] [0.00 0.00 0.00]] def | ||
512 | 15.00 15.00 sc P1 [16 0 0 -8 29.73 59.40] PATmp PATsp ef gr PATusp gs col-1 s gr | ||
513 | % Polyline | ||
514 | n 446 446 m 1560 446 l 1560 669 l 446 669 l cp gs /PC [[1.00 1.00 1.00] [0.00 0.00 0.00]] def | ||
515 | 15.00 15.00 sc P1 [16 0 0 -8 29.73 29.73] PATmp PATsp ef gr PATusp gs col-1 s gr | ||
516 | % Polyline | ||
517 | n 446 0 m 1560 0 l 1560 223 l 446 223 l cp gs /PC [[1.00 1.00 1.00] [0.00 0.00 0.00]] def | ||
518 | 15.00 15.00 sc P1 [16 0 0 -8 29.73 0.00] PATmp PATsp ef gr PATusp gs col-1 s gr | ||
519 | % Polyline | ||
520 | n 446 2229 m 1560 2229 l 1560 2451 l 446 2451 l cp gs /PC [[1.00 1.00 1.00] [0.00 0.00 0.00]] def | ||
521 | 15.00 15.00 sc P1 [16 0 0 -8 29.73 148.60] PATmp PATsp ef gr PATusp gs col-1 s gr | ||
522 | % Polyline | ||
523 | n 1783 0 m 2897 0 l 2897 223 l 1783 223 l cp gs col-1 s gr | ||
524 | % Polyline | ||
525 | n 1783 446 m 2897 446 l 2897 669 l 1783 669 l cp gs col-1 s gr | ||
526 | % Polyline | ||
527 | n 1783 891 m 2897 891 l 2897 1114 l 1783 1114 l cp gs col-1 s gr | ||
528 | % Polyline | ||
529 | n 1783 1337 m 2897 1337 l 2897 1560 l 1783 1560 l cp gs col-1 s gr | ||
530 | % Polyline | ||
531 | n 1783 1783 m 2897 1783 l 2897 2006 l 1783 2006 l cp gs col-1 s gr | ||
532 | % Polyline | ||
533 | n 1783 2229 m 2897 2229 l 2897 2451 l 1783 2451 l cp gs col-1 s gr | ||
534 | % Polyline | ||
535 | n 3120 0 m 4234 0 l 4234 223 l 3120 223 l cp gs col-1 s gr | ||
536 | % Polyline | ||
537 | n 3120 446 m 4234 446 l 4234 669 l 3120 669 l cp gs col-1 s gr | ||
538 | % Polyline | ||
539 | n 3120 891 m 4234 891 l 4234 1114 l 3120 1114 l cp gs col-1 s gr | ||
540 | % Polyline | ||
541 | n 3120 1337 m 4234 1337 l 4234 1560 l 3120 1560 l cp gs col-1 s gr | ||
542 | % Polyline | ||
543 | n 3120 1783 m 4234 1783 l 4234 2006 l 3120 2006 l cp gs col-1 s gr | ||
544 | % Polyline | ||
545 | n 3120 2229 m 4234 2229 l 4234 2451 l 3120 2451 l cp gs col-1 s gr | ||
546 | % Polyline | ||
547 | n 1894 0 m 2897 0 l 2897 223 l 1894 223 l cp gs /PC [[1.00 1.00 1.00] [0.00 0.00 0.00]] def | ||
548 | 15.00 15.00 sc P1 [16 0 0 -8 126.27 0.00] PATmp PATsp ef gr PATusp gs col-1 s gr | ||
549 | % Polyline | ||
550 | n 3120 0 m 3231 0 l 3231 223 l 3120 223 l cp gs /PC [[1.00 1.00 1.00] [0.00 0.00 0.00]] def | ||
551 | 15.00 15.00 sc P1 [16 0 0 -8 208.00 0.00] PATmp PATsp ef gr PATusp gs col-1 s gr | ||
552 | % Polyline | ||
553 | n 1894 446 m 2117 446 l 2117 669 l 1894 669 l cp gs /PC [[1.00 1.00 1.00] [0.00 0.00 0.00]] def | ||
554 | 15.00 15.00 sc P1 [16 0 0 -8 126.27 29.73] PATmp PATsp ef gr PATusp gs col-1 s gr | ||
555 | % Polyline | ||
556 | n 2228 446 m 2340 446 l 2340 669 l 2228 669 l cp gs /PC [[1.00 1.00 1.00] [0.00 0.00 0.00]] def | ||
557 | 15.00 15.00 sc P1 [16 0 0 -8 148.53 29.73] PATmp PATsp ef gr PATusp gs col-1 s gr | ||
558 | % Polyline | ||
559 | n 2563 446 m 2897 446 l 2897 669 l 2563 669 l cp gs /PC [[1.00 1.00 1.00] [0.00 0.00 0.00]] def | ||
560 | 15.00 15.00 sc P1 [16 0 0 -8 170.87 29.73] PATmp PATsp ef gr PATusp gs col-1 s gr | ||
561 | % Polyline | ||
562 | n 3120 446 m 3231 446 l 3231 669 l 3120 669 l cp gs /PC [[1.00 1.00 1.00] [0.00 0.00 0.00]] def | ||
563 | 15.00 15.00 sc P1 [16 0 0 -8 208.00 29.73] PATmp PATsp ef gr PATusp gs col-1 s gr | ||
564 | % Polyline | ||
565 | n 3454 446 m 3565 446 l 3565 669 l 3454 669 l cp gs /PC [[1.00 1.00 1.00] [0.00 0.00 0.00]] def | ||
566 | 15.00 15.00 sc P1 [16 0 0 -8 230.27 29.73] PATmp PATsp ef gr PATusp gs col-1 s gr | ||
567 | % Polyline | ||
568 | n 3677 446 m 3900 446 l 3900 669 l 3677 669 l cp gs /PC [[1.00 1.00 1.00] [0.00 0.00 0.00]] def | ||
569 | 15.00 15.00 sc P1 [16 0 0 -8 245.13 29.73] PATmp PATsp ef gr PATusp gs col-1 s gr | ||
570 | % Polyline | ||
571 | n 1783 891 m 2117 891 l 2117 1114 l 1783 1114 l cp gs /PC [[1.00 1.00 1.00] [0.00 0.00 0.00]] def | ||
572 | 15.00 15.00 sc P1 [16 0 0 -8 118.87 59.40] PATmp PATsp ef gr PATusp gs col-1 s gr | ||
573 | % Polyline | ||
574 | n 2228 891 m 2340 891 l 2340 1114 l 2228 1114 l cp gs /PC [[1.00 1.00 1.00] [0.00 0.00 0.00]] def | ||
575 | 15.00 15.00 sc P1 [16 0 0 -8 148.53 59.40] PATmp PATsp ef gr PATusp gs col-1 s gr | ||
576 | % Polyline | ||
577 | n 2563 891 m 2674 891 l 2674 1114 l 2563 1114 l cp gs /PC [[1.00 1.00 1.00] [0.00 0.00 0.00]] def | ||
578 | 15.00 15.00 sc P1 [16 0 0 -8 170.87 59.40] PATmp PATsp ef gr PATusp gs col-1 s gr | ||
579 | % Polyline | ||
580 | n 2785 891 m 2897 891 l 2897 1114 l 2785 1114 l cp gs /PC [[1.00 1.00 1.00] [0.00 0.00 0.00]] def | ||
581 | 15.00 15.00 sc P1 [16 0 0 -8 185.67 59.40] PATmp PATsp ef gr PATusp gs col-1 s gr | ||
582 | % Polyline | ||
583 | n 3454 891 m 3565 891 l 3565 1114 l 3454 1114 l cp gs /PC [[1.00 1.00 1.00] [0.00 0.00 0.00]] def | ||
584 | 15.00 15.00 sc P1 [16 0 0 -8 230.27 59.40] PATmp PATsp ef gr PATusp gs col-1 s gr | ||
585 | % Polyline | ||
586 | n 3677 891 m 3900 891 l 3900 1114 l 3677 1114 l cp gs /PC [[1.00 1.00 1.00] [0.00 0.00 0.00]] def | ||
587 | 15.00 15.00 sc P1 [16 0 0 -8 245.13 59.40] PATmp PATsp ef gr PATusp gs col-1 s gr | ||
588 | % Polyline | ||
589 | n 4011 891 m 4123 891 l 4123 1114 l 4011 1114 l cp gs /PC [[1.00 1.00 1.00] [0.00 0.00 0.00]] def | ||
590 | 15.00 15.00 sc P1 [16 0 0 -8 267.40 59.40] PATmp PATsp ef gr PATusp gs col-1 s gr | ||
591 | % Polyline | ||
592 | n 2451 1337 m 2563 1337 l 2563 1337 l 2451 1337 l cp gs /PC [[1.00 1.00 1.00] [0.00 0.00 0.00]] def | ||
593 | 15.00 15.00 sc P1 [16 0 0 -8 163.40 89.13] PATmp PATsp ef gr PATusp gs col-1 s gr | ||
594 | % Polyline | ||
595 | n 2006 1337 m 2117 1337 l 2117 1560 l 2006 1560 l cp gs /PC [[1.00 1.00 1.00] [0.00 0.00 0.00]] def | ||
596 | 15.00 15.00 sc P1 [16 0 0 -8 133.73 89.13] PATmp PATsp ef gr PATusp gs col-1 s gr | ||
597 | % Polyline | ||
598 | n 2228 1337 m 2340 1337 l 2340 1560 l 2228 1560 l cp gs /PC [[1.00 1.00 1.00] [0.00 0.00 0.00]] def | ||
599 | 15.00 15.00 sc P1 [16 0 0 -8 148.53 89.13] PATmp PATsp ef gr PATusp gs col-1 s gr | ||
600 | % Polyline | ||
601 | n 1783 1337 m 1894 1337 l 1894 1560 l 1783 1560 l cp gs /PC [[1.00 1.00 1.00] [0.00 0.00 0.00]] def | ||
602 | 15.00 15.00 sc P21 [16 0 0 -8 118.87 89.13] PATmp PATsp ef gr PATusp gs col-1 s gr | ||
603 | % Polyline | ||
604 | n 2563 1337 m 2674 1337 l 2674 1560 l 2563 1560 l cp gs /PC [[1.00 1.00 1.00] [0.00 0.00 0.00]] def | ||
605 | 15.00 15.00 sc P1 [16 0 0 -8 170.87 89.13] PATmp PATsp ef gr PATusp gs col-1 s gr | ||
606 | % Polyline | ||
607 | n 2117 1337 m 2228 1337 l 2228 1560 l 2117 1560 l cp gs /PC [[1.00 1.00 1.00] [0.00 0.00 0.00]] def | ||
608 | 15.00 15.00 sc P21 [16 0 0 -8 141.13 89.13] PATmp PATsp ef gr PATusp gs col-1 s gr | ||
609 | % Polyline | ||
610 | n 2340 1337 m 2563 1337 l 2563 1560 l 2340 1560 l cp gs /PC [[1.00 1.00 1.00] [0.00 0.00 0.00]] def | ||
611 | 15.00 15.00 sc P21 [16 0 0 -8 156.00 89.13] PATmp PATsp ef gr PATusp gs col-1 s gr | ||
612 | % Polyline | ||
613 | n 2006 1783 m 2117 1783 l 2117 2006 l 2006 2006 l cp gs /PC [[1.00 1.00 1.00] [0.00 0.00 0.00]] def | ||
614 | 15.00 15.00 sc P1 [16 0 0 -8 133.73 118.87] PATmp PATsp ef gr PATusp gs col-1 s gr | ||
615 | % Polyline | ||
616 | n 2228 1783 m 2340 1783 l 2340 2006 l 2228 2006 l cp gs /PC [[1.00 1.00 1.00] [0.00 0.00 0.00]] def | ||
617 | 15.00 15.00 sc P1 [16 0 0 -8 148.53 118.87] PATmp PATsp ef gr PATusp gs col-1 s gr | ||
618 | % Polyline | ||
619 | n 2117 1783 m 2228 1783 l 2228 2006 l 2117 2006 l cp gs /PC [[1.00 1.00 1.00] [0.00 0.00 0.00]] def | ||
620 | 15.00 15.00 sc P21 [16 0 0 -8 141.13 118.87] PATmp PATsp ef gr PATusp gs col-1 s gr | ||
621 | % Polyline | ||
622 | n 2340 1783 m 2563 1783 l 2563 2006 l 2340 2006 l cp gs /PC [[1.00 1.00 1.00] [0.00 0.00 0.00]] def | ||
623 | 15.00 15.00 sc P21 [16 0 0 -8 156.00 118.87] PATmp PATsp ef gr PATusp gs col-1 s gr | ||
624 | % Polyline | ||
625 | n 3900 1783 m 4234 1783 l 4234 2006 l 3900 2006 l cp gs /PC [[1.00 1.00 1.00] [0.00 0.00 0.00]] def | ||
626 | 15.00 15.00 sc P1 [16 0 0 -8 260.00 118.87] PATmp PATsp ef gr PATusp gs col-1 s gr | ||
627 | % Polyline | ||
628 | n 3120 1783 m 3343 1783 l 3343 2006 l 3120 2006 l cp gs /PC [[1.00 1.00 1.00] [0.00 0.00 0.00]] def | ||
629 | 15.00 15.00 sc P1 [16 0 0 -8 208.00 118.87] PATmp PATsp ef gr PATusp gs col-1 s gr | ||
630 | % Polyline | ||
631 | n 4011 1337 m 4234 1337 l 4234 1560 l 4011 1560 l cp gs /PC [[1.00 1.00 1.00] [0.00 0.00 0.00]] def | ||
632 | 15.00 15.00 sc P1 [16 0 0 -8 267.40 89.13] PATmp PATsp ef gr PATusp gs col-1 s gr | ||
633 | % Polyline | ||
634 | n 1783 2229 m 1894 2229 l 1894 2451 l 1783 2451 l cp gs /PC [[1.00 1.00 1.00] [0.00 0.00 0.00]] def | ||
635 | 15.00 15.00 sc P21 [16 0 0 -8 118.87 148.60] PATmp PATsp ef gr PATusp gs col-1 s gr | ||
636 | % Polyline | ||
637 | n 2117 2229 m 2228 2229 l 2228 2451 l 2117 2451 l cp gs /PC [[1.00 1.00 1.00] [0.00 0.00 0.00]] def | ||
638 | 15.00 15.00 sc P21 [16 0 0 -8 141.13 148.60] PATmp PATsp ef gr PATusp gs col-1 s gr | ||
639 | % Polyline | ||
640 | n 2340 2451 m 2563 2451 l 2563 2229 l 2340 2229 l cp gs /PC [[1.00 1.00 1.00] [0.00 0.00 0.00]] def | ||
641 | 15.00 15.00 sc P21 [16 0 0 -8 156.00 148.60] PATmp PATsp ef gr PATusp gs col-1 s gr | ||
642 | % Polyline | ||
643 | n 2674 2229 m 2897 2229 l 2897 2451 l 2674 2451 l cp gs /PC [[1.00 1.00 1.00] [0.00 0.00 0.00]] def | ||
644 | 15.00 15.00 sc P21 [16 0 0 -8 178.27 148.60] PATmp PATsp ef gr PATusp gs col-1 s gr | ||
645 | % Polyline | ||
646 | n 3231 2229 m 3454 2229 l 3454 2451 l 3231 2451 l cp gs /PC [[1.00 1.00 1.00] [0.00 0.00 0.00]] def | ||
647 | 15.00 15.00 sc P1 [16 0 0 -8 215.40 148.60] PATmp PATsp ef gr PATusp gs col-1 s gr | ||
648 | % Polyline | ||
649 | n 3565 2229 m 3677 2229 l 3677 2451 l 3565 2451 l cp gs /PC [[1.00 1.00 1.00] [0.00 0.00 0.00]] def | ||
650 | 15.00 15.00 sc P1 [16 0 0 -8 237.67 148.60] PATmp PATsp ef gr PATusp gs col-1 s gr | ||
651 | % Polyline | ||
652 | n 3900 2229 m 4011 2229 l 4011 2451 l 3900 2451 l cp gs /PC [[1.00 1.00 1.00] [0.00 0.00 0.00]] def | ||
653 | 15.00 15.00 sc P1 [16 0 0 -8 260.00 148.60] PATmp PATsp ef gr PATusp gs col-1 s gr | ||
654 | % Polyline | ||
655 | n 4457 2229 m 4902 2229 l 4902 2451 l 4457 2451 l cp gs /PC [[1.00 1.00 1.00] [0.00 0.00 0.00]] def | ||
656 | 15.00 15.00 sc P1 [16 0 0 -8 297.13 148.60] PATmp PATsp ef gr PATusp gs col-1 s gr | ||
657 | % Polyline | ||
658 | n 4457 1560 m 4680 1560 l 4680 1337 l 4457 1337 l cp gs /PC [[1.00 1.00 1.00] [0.00 0.00 0.00]] def | ||
659 | 15.00 15.00 sc P1 [16 0 0 -8 297.13 89.13] PATmp PATsp ef gr PATusp gs col-1 s gr | ||
660 | % Polyline | ||
661 | n 4457 1114 m 4902 1114 l 4902 891 l 4457 891 l cp gs /PC [[1.00 1.00 1.00] [0.00 0.00 0.00]] def | ||
662 | 15.00 15.00 sc P1 [16 0 0 -8 297.13 59.40] PATmp PATsp ef gr PATusp gs col-1 s gr | ||
663 | % Polyline | ||
664 | n 4457 669 m 4902 669 l 4902 446 l 4457 446 l cp gs /PC [[1.00 1.00 1.00] [0.00 0.00 0.00]] def | ||
665 | 15.00 15.00 sc P1 [16 0 0 -8 297.13 29.73] PATmp PATsp ef gr PATusp gs col-1 s gr | ||
666 | % Polyline | ||
667 | n 4457 0 m 4568 0 l 4568 223 l 4457 223 l cp gs /PC [[1.00 1.00 1.00] [0.00 0.00 0.00]] def | ||
668 | 15.00 15.00 sc P1 [16 0 0 -8 297.13 0.00] PATmp PATsp ef gr PATusp gs col-1 s gr | ||
669 | % Polyline | ||
670 | n 446 2674 m 1560 2674 l 1560 2897 l 446 2897 l cp gs col-1 s gr | ||
671 | % Polyline | ||
672 | n 446 2674 m 1560 2674 l 1560 2897 l 446 2897 l cp gs col7 1.00 shd ef gr gs col-1 s gr | ||
673 | % Polyline | ||
674 | n 446 2674 m 1560 2674 l 1560 2897 l 446 2897 l cp gs /PC [[1.00 1.00 1.00] [0.00 0.00 0.00]] def | ||
675 | 15.00 15.00 sc P1 [16 0 0 -8 29.73 178.27] PATmp PATsp ef gr PATusp gs col-1 s gr | ||
676 | % Polyline | ||
677 | n 1783 2674 m 2897 2674 l 2897 2897 l 1783 2897 l cp gs col-1 s gr | ||
678 | % Polyline | ||
679 | n 3120 2674 m 4234 2674 l 4234 2897 l 3120 2897 l cp gs col-1 s gr | ||
680 | % Polyline | ||
681 | n 3120 2674 m 4234 2674 l 4234 2897 l 3120 2897 l cp gs /PC [[1.00 1.00 1.00] [0.00 0.00 0.00]] def | ||
682 | 15.00 15.00 sc P1 [16 0 0 -8 208.00 178.27] PATmp PATsp ef gr PATusp gs col-1 s gr | ||
683 | % Polyline | ||
684 | n 4457 2674 m 5571 2674 l 5571 2897 l 4457 2897 l cp gs /PC [[1.00 1.00 1.00] [0.00 0.00 0.00]] def | ||
685 | 15.00 15.00 sc P1 [16 0 0 -8 297.13 178.27] PATmp PATsp ef gr PATusp gs col-1 s gr | ||
686 | % Polyline | ||
687 | n 444 3118 m 1558 3118 l 1558 3341 l 444 3341 l cp gs col-1 s gr | ||
688 | % Polyline | ||
689 | n 444 3118 m 1558 3118 l 1558 3341 l 444 3341 l cp gs col7 1.00 shd ef gr gs col-1 s gr | ||
690 | % Polyline | ||
691 | n 1781 3118 m 2895 3118 l 2895 3341 l 1781 3341 l cp gs col-1 s gr | ||
692 | % Polyline | ||
693 | n 444 3118 m 1558 3118 l 1558 3341 l 444 3341 l cp gs /PC [[1.00 1.00 1.00] [0.00 0.00 0.00]] def | ||
694 | 15.00 15.00 sc P1 [16 0 0 -8 29.60 207.87] PATmp PATsp ef gr PATusp gs col-1 s gr | ||
695 | % Polyline | ||
696 | n 1783 3120 m 1894 3120 l 1894 3343 l 1783 3343 l cp gs /PC [[1.00 1.00 1.00] [0.00 0.00 0.00]] def | ||
697 | 15.00 15.00 sc P21 [16 0 0 -8 118.87 208.00] PATmp PATsp ef gr PATusp gs col-1 s gr | ||
698 | % Polyline | ||
699 | n 1894 3120 m 2006 3120 l 2006 3343 l 1894 3343 l cp gs /PC [[1.00 1.00 1.00] [0.00 0.00 0.00]] def | ||
700 | 15.00 15.00 sc P21 [16 0 0 -8 126.27 208.00] PATmp PATsp ef gr PATusp gs col-1 s gr | ||
701 | % Polyline | ||
702 | n 2006 3120 m 2117 3120 l 2117 3343 l 2006 3343 l cp gs /PC [[1.00 1.00 1.00] [0.00 0.00 0.00]] def | ||
703 | 15.00 15.00 sc P21 [16 0 0 -8 133.73 208.00] PATmp PATsp ef gr PATusp gs col-1 s gr | ||
704 | % Polyline | ||
705 | n 2117 3120 m 2228 3120 l 2228 3343 l 2117 3343 l cp gs /PC [[1.00 1.00 1.00] [0.00 0.00 0.00]] def | ||
706 | 15.00 15.00 sc P21 [16 0 0 -8 141.13 208.00] PATmp PATsp ef gr PATusp gs col-1 s gr | ||
707 | % Polyline | ||
708 | n 2340 3120 m 2563 3120 l 2563 3343 l 2340 3343 l cp gs /PC [[1.00 1.00 1.00] [0.00 0.00 0.00]] def | ||
709 | 15.00 15.00 sc P21 [16 0 0 -8 156.00 208.00] PATmp PATsp ef gr PATusp gs col-1 s gr | ||
710 | % Polyline | ||
711 | n 3565 3120 m 3677 3120 l 3677 3343 l 3565 3343 l cp gs /PC [[1.00 1.00 1.00] [0.00 0.00 0.00]] def | ||
712 | 15.00 15.00 sc P1 [16 0 0 -8 237.67 208.00] PATmp PATsp ef gr PATusp gs col-1 s gr | ||
713 | % Polyline | ||
714 | n 2563 3120 m 2674 3120 l 2674 3343 l 2563 3343 l cp gs /PC [[1.00 1.00 1.00] [0.00 0.00 0.00]] def | ||
715 | 15.00 15.00 sc P21 [16 0 0 -8 170.87 208.00] PATmp PATsp ef gr PATusp gs col-1 s gr | ||
716 | % Polyline | ||
717 | n 4011 3120 m 4234 3120 l 4234 3343 l 4011 3343 l cp gs /PC [[1.00 1.00 1.00] [0.00 0.00 0.00]] def | ||
718 | 15.00 15.00 sc P1 [16 0 0 -8 267.40 208.00] PATmp PATsp ef gr PATusp gs col-1 s gr | ||
719 | % Polyline | ||
720 | n 4457 3120 m 4791 3120 l 4791 3343 l 4457 3343 l cp gs /PC [[1.00 1.00 1.00] [0.00 0.00 0.00]] def | ||
721 | 15.00 15.00 sc P1 [16 0 0 -8 297.13 208.00] PATmp PATsp ef gr PATusp gs col-1 s gr | ||
722 | % Polyline | ||
723 | n 3118 3118 m 4232 3118 l 4232 3341 l 3118 3341 l cp gs col-1 s gr | ||
724 | % Polyline | ||
725 | n 4457 1783 m 5014 1783 l 5014 2006 l 4457 2006 l cp gs /PC [[1.00 1.00 1.00] [0.00 0.00 0.00]] def | ||
726 | 15.00 15.00 sc P1 [16 0 0 -8 297.13 118.87] PATmp PATsp ef gr PATusp gs col-1 s gr | ||
727 | /Times-Roman ff 195.00 scf sf | ||
728 | 0 2841 m | ||
729 | gs 1 -1 sc (F7 = ) col-1 sh gr | ||
730 | /Times-Roman ff 195.00 scf sf | ||
731 | 0 2396 m | ||
732 | gs 1 -1 sc (F6 =) col-1 sh gr | ||
733 | /Times-Roman ff 195.00 scf sf | ||
734 | 0 1950 m | ||
735 | gs 1 -1 sc (F5 =) col-1 sh gr | ||
736 | /Times-Roman ff 195.00 scf sf | ||
737 | 0 1059 m | ||
738 | gs 1 -1 sc (F3 =) col-1 sh gr | ||
739 | /Times-Roman ff 195.00 scf sf | ||
740 | 0 613 m | ||
741 | gs 1 -1 sc (F2 =) col-1 sh gr | ||
742 | /Times-Roman ff 195.00 scf sf | ||
743 | 0 167 m | ||
744 | gs 1 -1 sc (F1 =) col-1 sh gr | ||
745 | /Times-Roman ff 195.00 scf sf | ||
746 | 0 3287 m | ||
747 | gs 1 -1 sc (F8 =) col-1 sh gr | ||
748 | /Courier ff 195.00 scf sf | ||
749 | 446 223 m | ||
750 | gs 1 -1 sc (DISULPHIDE) col-1 sh gr | ||
751 | /Courier ff 195.00 scf sf | ||
752 | 446 669 m | ||
753 | gs 1 -1 sc (BISULPHIDE) col-1 sh gr | ||
754 | /Courier ff 195.00 scf sf | ||
755 | 446 1114 m | ||
756 | gs 1 -1 sc (DISELENIDE) col-1 sh gr | ||
757 | /Courier ff 195.00 scf sf | ||
758 | 446 1560 m | ||
759 | gs 1 -1 sc (DISULPHINE) col-1 sh gr | ||
760 | /Courier ff 195.00 scf sf | ||
761 | 446 2006 m | ||
762 | gs 1 -1 sc (ESSELENIAN) col-1 sh gr | ||
763 | /Courier ff 195.00 scf sf | ||
764 | 446 2451 m | ||
765 | gs 1 -1 sc (DISULPHONE) col-1 sh gr | ||
766 | /Courier ff 195.00 scf sf | ||
767 | 1894 223 m | ||
768 | gs 1 -1 sc (ISULPHIDE) col-1 sh gr | ||
769 | /Courier ff 195.00 scf sf | ||
770 | 3120 223 m | ||
771 | gs 1 -1 sc (D) col-1 sh gr | ||
772 | /Courier ff 195.00 scf sf | ||
773 | 1894 669 m | ||
774 | gs 1 -1 sc (IS) col-1 sh gr | ||
775 | /Courier ff 195.00 scf sf | ||
776 | 2228 669 m | ||
777 | gs 1 -1 sc (L) col-1 sh gr | ||
778 | /Courier ff 195.00 scf sf | ||
779 | 2563 669 m | ||
780 | gs 1 -1 sc (IDE) col-1 sh gr | ||
781 | /Courier ff 195.00 scf sf | ||
782 | 3120 669 m | ||
783 | gs 1 -1 sc (B) col-1 sh gr | ||
784 | /Courier ff 195.00 scf sf | ||
785 | 3454 669 m | ||
786 | gs 1 -1 sc (U) col-1 sh gr | ||
787 | /Courier ff 195.00 scf sf | ||
788 | 3677 669 m | ||
789 | gs 1 -1 sc (PH) col-1 sh gr | ||
790 | /Courier ff 195.00 scf sf | ||
791 | 3454 1114 m | ||
792 | gs 1 -1 sc (E EN D) col-1 sh gr | ||
793 | /Courier ff 195.00 scf sf | ||
794 | 1783 1114 m | ||
795 | gs 1 -1 sc (DIS L I E) col-1 sh gr | ||
796 | /Courier ff 195.00 scf sf | ||
797 | 3120 2006 m | ||
798 | gs 1 -1 sc (ES) col-1 sh gr | ||
799 | /Courier ff 195.00 scf sf | ||
800 | 3900 2006 m | ||
801 | gs 1 -1 sc (IAN) col-1 sh gr | ||
802 | /Courier ff 195.00 scf sf | ||
803 | 2006 2006 m | ||
804 | gs 1 -1 sc (SELEN) col-1 sh gr | ||
805 | /Courier ff 195.00 scf sf | ||
806 | 1783 1560 m | ||
807 | gs 1 -1 sc (DISULPHI) col-1 sh gr | ||
808 | /Courier ff 195.00 scf sf | ||
809 | 4011 1560 m | ||
810 | gs 1 -1 sc (NE) col-1 sh gr | ||
811 | /Courier ff 195.00 scf sf | ||
812 | 1783 2451 m | ||
813 | gs 1 -1 sc (D U PH NE) col-1 sh gr | ||
814 | /Courier ff 195.00 scf sf | ||
815 | 3120 2451 m | ||
816 | gs 1 -1 sc ( IS U O) col-1 sh gr | ||
817 | /Courier ff 195.00 scf sf | ||
818 | 446 2897 m | ||
819 | gs 1 -1 sc (TROEZENIAN) col-1 sh gr | ||
820 | /Courier ff 195.00 scf sf | ||
821 | 3120 2897 m | ||
822 | gs 1 -1 sc (TROEZENIAN) col-1 sh gr | ||
823 | /Courier ff 195.00 scf sf | ||
824 | 444 3313 m | ||
825 | gs 1 -1 sc (ESSELENIST) col-1 sh gr | ||
826 | /Times-Roman ff 195.00 scf sf | ||
827 | 1616 3287 m | ||
828 | gs 1 -1 sc (=) col-1 sh gr | ||
829 | /Times-Roman ff 195.00 scf sf | ||
830 | 1616 2841 m | ||
831 | gs 1 -1 sc (=) col-1 sh gr | ||
832 | /Times-Roman ff 195.00 scf sf | ||
833 | 1616 2396 m | ||
834 | gs 1 -1 sc (=) col-1 sh gr | ||
835 | /Times-Roman ff 195.00 scf sf | ||
836 | 1616 1950 m | ||
837 | gs 1 -1 sc (=) col-1 sh gr | ||
838 | /Times-Roman ff 195.00 scf sf | ||
839 | 1616 1504 m | ||
840 | gs 1 -1 sc (=) col-1 sh gr | ||
841 | /Times-Roman ff 195.00 scf sf | ||
842 | 1616 1059 m | ||
843 | gs 1 -1 sc (=) col-1 sh gr | ||
844 | /Times-Roman ff 195.00 scf sf | ||
845 | 1616 613 m | ||
846 | gs 1 -1 sc (=) col-1 sh gr | ||
847 | /Times-Roman ff 195.00 scf sf | ||
848 | 1616 167 m | ||
849 | gs 1 -1 sc (=) col-1 sh gr | ||
850 | /Times-Roman ff 195.00 scf sf | ||
851 | 2953 3287 m | ||
852 | gs 1 -1 sc (+) col-1 sh gr | ||
853 | /Times-Roman ff 195.00 scf sf | ||
854 | 2953 2396 m | ||
855 | gs 1 -1 sc (+) col-1 sh gr | ||
856 | /Times-Roman ff 195.00 scf sf | ||
857 | 2953 1950 m | ||
858 | gs 1 -1 sc (+) col-1 sh gr | ||
859 | /Times-Roman ff 195.00 scf sf | ||
860 | 2953 1504 m | ||
861 | gs 1 -1 sc (+) col-1 sh gr | ||
862 | /Times-Roman ff 195.00 scf sf | ||
863 | 2953 1059 m | ||
864 | gs 1 -1 sc (+) col-1 sh gr | ||
865 | /Times-Roman ff 195.00 scf sf | ||
866 | 2953 613 m | ||
867 | gs 1 -1 sc (+) col-1 sh gr | ||
868 | /Times-Roman ff 195.00 scf sf | ||
869 | 2953 167 m | ||
870 | gs 1 -1 sc (+) col-1 sh gr | ||
871 | /Times-Roman ff 195.00 scf sf | ||
872 | 2953 2841 m | ||
873 | gs 1 -1 sc (+) col-1 sh gr | ||
874 | /Times-Roman ff 195.00 scf sf | ||
875 | 0 1504 m | ||
876 | gs 1 -1 sc (F4 =) col-1 sh gr | ||
877 | /Times-Roman ff 195.00 scf sf | ||
878 | 4290 3287 m | ||
879 | gs 1 -1 sc (=) col-1 sh gr | ||
880 | /Times-Roman ff 195.00 scf sf | ||
881 | 4290 2841 m | ||
882 | gs 1 -1 sc (=) col-1 sh gr | ||
883 | /Times-Roman ff 195.00 scf sf | ||
884 | 4290 2368 m | ||
885 | gs 1 -1 sc (=) col-1 sh gr | ||
886 | /Times-Roman ff 195.00 scf sf | ||
887 | 4290 1950 m | ||
888 | gs 1 -1 sc (=) col-1 sh gr | ||
889 | /Times-Roman ff 195.00 scf sf | ||
890 | 4290 1476 m | ||
891 | gs 1 -1 sc (=) col-1 sh gr | ||
892 | /Times-Roman ff 195.00 scf sf | ||
893 | 4290 1059 m | ||
894 | gs 1 -1 sc (=) col-1 sh gr | ||
895 | /Times-Roman ff 195.00 scf sf | ||
896 | 4290 613 m | ||
897 | gs 1 -1 sc (=) col-1 sh gr | ||
898 | /Times-Roman ff 195.00 scf sf | ||
899 | 4290 167 m | ||
900 | gs 1 -1 sc (=) col-1 sh gr | ||
901 | /Courier ff 195.00 scf sf | ||
902 | 1783 3343 m | ||
903 | gs 1 -1 sc (ESSE ENI L ST) col-1 sh gr | ||
904 | /Courier ff 195.00 scf sf | ||
905 | 4457 223 m | ||
906 | gs 1 -1 sc (D) col-1 sh gr | ||
907 | /Courier ff 195.00 scf sf | ||
908 | 4457 669 m | ||
909 | gs 1 -1 sc (BUPH) col-1 sh gr | ||
910 | /Courier ff 195.00 scf sf | ||
911 | 4457 1114 m | ||
912 | gs 1 -1 sc (EEND) col-1 sh gr | ||
913 | /Courier ff 195.00 scf sf | ||
914 | 4457 1560 m | ||
915 | gs 1 -1 sc (NE) col-1 sh gr | ||
916 | /Courier ff 195.00 scf sf | ||
917 | 4457 2006 m | ||
918 | gs 1 -1 sc (ESIAN) col-1 sh gr | ||
919 | /Courier ff 195.00 scf sf | ||
920 | 4457 2451 m | ||
921 | gs 1 -1 sc (ISUO) col-1 sh gr | ||
922 | /Courier ff 195.00 scf sf | ||
923 | 4457 2897 m | ||
924 | gs 1 -1 sc (TROEZENIAN) col-1 sh gr | ||
925 | /Courier ff 195.00 scf sf | ||
926 | 669 3594 m | ||
927 | gs 1 -1 sc (Actual ) col-1 sh gr | ||
928 | $F2psEnd | ||
929 | rs | ||
930 | end | ||
diff --git a/xdelta1/doc/old/dcc99/figs/onestep.fig b/xdelta1/doc/old/dcc99/figs/onestep.fig deleted file mode 100755 index 48c1a5b..0000000 --- a/xdelta1/doc/old/dcc99/figs/onestep.fig +++ /dev/null | |||
@@ -1,256 +0,0 @@ | |||
1 | #FIG 3.1 | ||
2 | Portrait | ||
3 | Center | ||
4 | Inches | ||
5 | 1200 2 | ||
6 | 6 0 0 5571 3900 | ||
7 | 6 669 3454 5571 3816 | ||
8 | 4 0 -1 0 0 12 13 0.0000 4 111 780 669 3594 Actual \001 | ||
9 | 4 0 -1 0 0 12 13 0.0000 4 111 446 669 3772 File\001 | ||
10 | 4 0 -1 0 0 12 13 0.0000 4 139 446 2006 3594 Copy\001 | ||
11 | 4 0 -1 0 0 12 13 0.0000 4 139 891 2006 3772 Segments\001 | ||
12 | 4 0 -1 0 0 12 13 0.0000 4 106 669 3343 3566 Insert\001 | ||
13 | 4 0 -1 0 0 12 13 0.0000 4 139 891 3343 3744 Segments\001 | ||
14 | 4 0 -1 0 0 12 13 0.0000 4 144 891 4680 3594 Physical\001 | ||
15 | 4 0 -1 0 0 12 13 0.0000 4 139 780 4680 3772 Storage\001 | ||
16 | -6 | ||
17 | 2 2 2 1 -1 7 0 0 -1 3.000 0 0 -1 0 0 5 | ||
18 | 446 0 1560 0 1560 223 446 223 446 0 | ||
19 | 2 2 2 1 -1 7 0 0 -1 3.000 0 0 -1 0 0 5 | ||
20 | 446 446 1560 446 1560 669 446 669 446 446 | ||
21 | 2 2 2 1 -1 7 0 0 -1 3.000 0 0 -1 0 0 5 | ||
22 | 446 891 1560 891 1560 1114 446 1114 446 891 | ||
23 | 2 2 2 1 -1 7 0 0 -1 3.000 0 0 -1 0 0 5 | ||
24 | 446 1337 1560 1337 1560 1560 446 1560 446 1337 | ||
25 | 2 2 2 1 -1 7 0 0 -1 3.000 0 0 -1 0 0 5 | ||
26 | 446 1783 1560 1783 1560 2006 446 2006 446 1783 | ||
27 | 2 2 0 1 -1 7 0 0 41 0.000 0 0 -1 0 0 5 | ||
28 | 446 1783 1560 1783 1560 2006 446 2006 446 1783 | ||
29 | 2 2 0 1 -1 7 0 0 41 0.000 0 0 -1 0 0 5 | ||
30 | 446 1337 1560 1337 1560 1560 446 1560 446 1337 | ||
31 | 2 2 0 1 -1 7 0 0 41 0.000 0 0 -1 0 0 5 | ||
32 | 446 891 1560 891 1560 1114 446 1114 446 891 | ||
33 | 2 2 0 1 -1 7 0 0 41 0.000 0 0 -1 0 0 5 | ||
34 | 446 446 1560 446 1560 669 446 669 446 446 | ||
35 | 2 2 0 1 -1 7 0 0 41 0.000 0 0 -1 0 0 5 | ||
36 | 446 0 1560 0 1560 223 446 223 446 0 | ||
37 | 2 2 0 1 -1 7 0 0 41 0.000 0 0 -1 0 0 5 | ||
38 | 446 2229 1560 2229 1560 2451 446 2451 446 2229 | ||
39 | 2 2 0 1 -1 7 0 0 -1 0.000 0 0 -1 0 0 5 | ||
40 | 1783 0 2897 0 2897 223 1783 223 1783 0 | ||
41 | 2 2 0 1 -1 7 0 0 -1 0.000 0 0 -1 0 0 5 | ||
42 | 1783 446 2897 446 2897 669 1783 669 1783 446 | ||
43 | 2 2 0 1 -1 7 0 0 -1 0.000 0 0 -1 0 0 5 | ||
44 | 1783 891 2897 891 2897 1114 1783 1114 1783 891 | ||
45 | 2 2 0 1 -1 7 0 0 -1 0.000 0 0 -1 0 0 5 | ||
46 | 1783 1337 2897 1337 2897 1560 1783 1560 1783 1337 | ||
47 | 2 2 0 1 -1 7 0 0 -1 0.000 0 0 -1 0 0 5 | ||
48 | 1783 1783 2897 1783 2897 2006 1783 2006 1783 1783 | ||
49 | 2 2 0 1 -1 7 0 0 -1 0.000 0 0 -1 0 0 5 | ||
50 | 1783 2229 2897 2229 2897 2451 1783 2451 1783 2229 | ||
51 | 2 2 0 1 -1 7 0 0 -1 0.000 0 0 -1 0 0 5 | ||
52 | 3120 0 4234 0 4234 223 3120 223 3120 0 | ||
53 | 2 2 0 1 -1 7 0 0 -1 0.000 0 0 -1 0 0 5 | ||
54 | 3120 446 4234 446 4234 669 3120 669 3120 446 | ||
55 | 2 2 0 1 -1 7 0 0 -1 0.000 0 0 -1 0 0 5 | ||
56 | 3120 891 4234 891 4234 1114 3120 1114 3120 891 | ||
57 | 2 2 0 1 -1 7 0 0 -1 0.000 0 0 -1 0 0 5 | ||
58 | 3120 1337 4234 1337 4234 1560 3120 1560 3120 1337 | ||
59 | 2 2 0 1 -1 7 0 0 -1 0.000 0 0 -1 0 0 5 | ||
60 | 3120 1783 4234 1783 4234 2006 3120 2006 3120 1783 | ||
61 | 2 2 0 1 -1 7 0 0 -1 0.000 0 0 -1 0 0 5 | ||
62 | 3120 2229 4234 2229 4234 2451 3120 2451 3120 2229 | ||
63 | 2 2 0 1 -1 7 0 0 41 0.000 0 0 -1 0 0 5 | ||
64 | 1894 0 2897 0 2897 223 1894 223 1894 0 | ||
65 | 2 2 0 1 -1 7 0 0 41 0.000 0 0 -1 0 0 5 | ||
66 | 3120 0 3231 0 3231 223 3120 223 3120 0 | ||
67 | 2 2 0 1 -1 7 0 0 41 0.000 0 0 -1 0 0 5 | ||
68 | 1894 446 2117 446 2117 669 1894 669 1894 446 | ||
69 | 2 2 0 1 -1 7 0 0 41 0.000 0 0 -1 0 0 5 | ||
70 | 2228 446 2340 446 2340 669 2228 669 2228 446 | ||
71 | 2 2 0 1 -1 7 0 0 41 0.000 0 0 -1 0 0 5 | ||
72 | 2563 446 2897 446 2897 669 2563 669 2563 446 | ||
73 | 2 2 0 1 -1 7 0 0 41 0.000 0 0 -1 0 0 5 | ||
74 | 3120 446 3231 446 3231 669 3120 669 3120 446 | ||
75 | 2 2 0 1 -1 7 0 0 41 0.000 0 0 -1 0 0 5 | ||
76 | 3454 446 3565 446 3565 669 3454 669 3454 446 | ||
77 | 2 2 0 1 -1 7 0 0 41 0.000 0 0 -1 0 0 5 | ||
78 | 3677 446 3900 446 3900 669 3677 669 3677 446 | ||
79 | 2 2 0 1 -1 7 0 0 41 0.000 0 0 -1 0 0 5 | ||
80 | 1783 891 2117 891 2117 1114 1783 1114 1783 891 | ||
81 | 2 2 0 1 -1 7 0 0 41 0.000 0 0 -1 0 0 5 | ||
82 | 2228 891 2340 891 2340 1114 2228 1114 2228 891 | ||
83 | 2 2 0 1 -1 7 0 0 41 0.000 0 0 -1 0 0 5 | ||
84 | 2563 891 2674 891 2674 1114 2563 1114 2563 891 | ||
85 | 2 2 0 1 -1 7 0 0 41 0.000 0 0 -1 0 0 5 | ||
86 | 2785 891 2897 891 2897 1114 2785 1114 2785 891 | ||
87 | 2 2 0 1 -1 7 0 0 41 0.000 0 0 -1 0 0 5 | ||
88 | 3454 891 3565 891 3565 1114 3454 1114 3454 891 | ||
89 | 2 2 0 1 -1 7 0 0 41 0.000 0 0 -1 0 0 5 | ||
90 | 3677 891 3900 891 3900 1114 3677 1114 3677 891 | ||
91 | 2 2 0 1 -1 7 0 0 41 0.000 0 0 -1 0 0 5 | ||
92 | 4011 891 4123 891 4123 1114 4011 1114 4011 891 | ||
93 | 2 2 0 1 -1 7 0 0 41 0.000 0 0 -1 0 0 5 | ||
94 | 2451 1337 2563 1337 2563 1337 2451 1337 2451 1337 | ||
95 | 2 2 0 1 -1 7 0 0 41 0.000 0 0 -1 0 0 5 | ||
96 | 2006 1337 2117 1337 2117 1560 2006 1560 2006 1337 | ||
97 | 2 2 0 1 -1 7 0 0 41 0.000 0 0 -1 0 0 5 | ||
98 | 2228 1337 2340 1337 2340 1560 2228 1560 2228 1337 | ||
99 | 2 2 0 1 -1 7 0 0 61 0.000 0 0 -1 0 0 5 | ||
100 | 1783 1337 1894 1337 1894 1560 1783 1560 1783 1337 | ||
101 | 2 2 0 1 -1 7 0 0 41 0.000 0 0 -1 0 0 5 | ||
102 | 2563 1337 2674 1337 2674 1560 2563 1560 2563 1337 | ||
103 | 2 2 0 1 -1 7 0 0 61 0.000 0 0 -1 0 0 5 | ||
104 | 2117 1337 2228 1337 2228 1560 2117 1560 2117 1337 | ||
105 | 2 2 0 1 -1 7 0 0 61 0.000 0 0 -1 0 0 5 | ||
106 | 2340 1337 2563 1337 2563 1560 2340 1560 2340 1337 | ||
107 | 2 2 0 1 -1 7 0 0 41 0.000 0 0 -1 0 0 5 | ||
108 | 2006 1783 2117 1783 2117 2006 2006 2006 2006 1783 | ||
109 | 2 2 0 1 -1 7 0 0 41 0.000 0 0 -1 0 0 5 | ||
110 | 2228 1783 2340 1783 2340 2006 2228 2006 2228 1783 | ||
111 | 2 2 0 1 -1 7 0 0 61 0.000 0 0 -1 0 0 5 | ||
112 | 2117 1783 2228 1783 2228 2006 2117 2006 2117 1783 | ||
113 | 2 2 0 1 -1 7 0 0 61 0.000 0 0 -1 0 0 5 | ||
114 | 2340 1783 2563 1783 2563 2006 2340 2006 2340 1783 | ||
115 | 2 2 0 1 -1 7 0 0 41 0.000 0 0 -1 0 0 5 | ||
116 | 3900 1783 4234 1783 4234 2006 3900 2006 3900 1783 | ||
117 | 2 2 0 1 -1 7 0 0 41 0.000 0 0 -1 0 0 5 | ||
118 | 3120 1783 3343 1783 3343 2006 3120 2006 3120 1783 | ||
119 | 2 2 0 1 -1 7 0 0 41 0.000 0 0 -1 0 0 5 | ||
120 | 4011 1337 4234 1337 4234 1560 4011 1560 4011 1337 | ||
121 | 2 2 0 1 -1 7 0 0 61 0.000 0 0 -1 0 0 5 | ||
122 | 1783 2229 1894 2229 1894 2451 1783 2451 1783 2229 | ||
123 | 2 2 0 1 -1 7 0 0 61 0.000 0 0 -1 0 0 5 | ||
124 | 2117 2229 2228 2229 2228 2451 2117 2451 2117 2229 | ||
125 | 2 2 0 1 -1 7 0 0 61 0.000 0 0 -1 0 0 5 | ||
126 | 2340 2451 2563 2451 2563 2229 2340 2229 2340 2451 | ||
127 | 2 2 0 1 -1 7 0 0 61 0.000 0 0 -1 0 0 5 | ||
128 | 2674 2229 2897 2229 2897 2451 2674 2451 2674 2229 | ||
129 | 2 2 0 1 -1 7 0 0 41 0.000 0 0 -1 0 0 5 | ||
130 | 3231 2229 3454 2229 3454 2451 3231 2451 3231 2229 | ||
131 | 2 2 0 1 -1 7 0 0 41 0.000 0 0 -1 0 0 5 | ||
132 | 3565 2229 3677 2229 3677 2451 3565 2451 3565 2229 | ||
133 | 2 2 0 1 -1 7 0 0 41 0.000 0 0 -1 0 0 5 | ||
134 | 3900 2229 4011 2229 4011 2451 3900 2451 3900 2229 | ||
135 | 2 2 0 1 -1 7 0 0 41 0.000 0 0 -1 0 0 5 | ||
136 | 4457 2229 4902 2229 4902 2451 4457 2451 4457 2229 | ||
137 | 2 2 0 1 -1 7 0 0 41 0.000 0 0 -1 0 0 5 | ||
138 | 4457 1560 4680 1560 4680 1337 4457 1337 4457 1560 | ||
139 | 2 2 0 1 -1 7 0 0 41 0.000 0 0 -1 0 0 5 | ||
140 | 4457 1114 4902 1114 4902 891 4457 891 4457 1114 | ||
141 | 2 2 0 1 -1 7 0 0 41 0.000 0 0 -1 0 0 5 | ||
142 | 4457 669 4902 669 4902 446 4457 446 4457 669 | ||
143 | 2 2 0 1 -1 7 0 0 41 0.000 0 0 -1 0 0 5 | ||
144 | 4457 0 4568 0 4568 223 4457 223 4457 0 | ||
145 | 2 2 0 1 -1 7 0 0 -1 0.000 0 0 -1 0 0 5 | ||
146 | 446 2674 1560 2674 1560 2897 446 2897 446 2674 | ||
147 | 2 2 0 1 -1 7 0 0 20 0.000 0 0 -1 0 0 5 | ||
148 | 446 2674 1560 2674 1560 2897 446 2897 446 2674 | ||
149 | 2 2 0 1 -1 7 0 0 41 0.000 0 0 -1 0 0 5 | ||
150 | 446 2674 1560 2674 1560 2897 446 2897 446 2674 | ||
151 | 2 2 0 1 -1 7 0 0 -1 0.000 0 0 -1 0 0 5 | ||
152 | 1783 2674 2897 2674 2897 2897 1783 2897 1783 2674 | ||
153 | 2 2 0 1 -1 7 0 0 -1 0.000 0 0 -1 0 0 5 | ||
154 | 3120 2674 4234 2674 4234 2897 3120 2897 3120 2674 | ||
155 | 2 2 0 1 -1 7 0 0 41 0.000 0 0 -1 0 0 5 | ||
156 | 3120 2674 4234 2674 4234 2897 3120 2897 3120 2674 | ||
157 | 2 2 0 1 -1 7 0 0 41 0.000 0 0 -1 0 0 5 | ||
158 | 4457 2674 5571 2674 5571 2897 4457 2897 4457 2674 | ||
159 | 2 2 0 1 -1 7 0 0 -1 0.000 0 0 -1 0 0 5 | ||
160 | 444 3118 1558 3118 1558 3341 444 3341 444 3118 | ||
161 | 2 2 0 1 -1 7 0 0 20 0.000 0 0 -1 0 0 5 | ||
162 | 444 3118 1558 3118 1558 3341 444 3341 444 3118 | ||
163 | 2 2 0 1 -1 7 0 0 -1 0.000 0 0 -1 0 0 5 | ||
164 | 1781 3118 2895 3118 2895 3341 1781 3341 1781 3118 | ||
165 | 2 2 0 1 -1 7 0 0 41 0.000 0 0 -1 0 0 5 | ||
166 | 444 3118 1558 3118 1558 3341 444 3341 444 3118 | ||
167 | 2 2 0 1 -1 7 0 0 61 0.000 0 0 -1 0 0 5 | ||
168 | 1783 3120 1894 3120 1894 3343 1783 3343 1783 3120 | ||
169 | 2 2 0 1 -1 7 0 0 61 0.000 0 0 -1 0 0 5 | ||
170 | 1894 3120 2006 3120 2006 3343 1894 3343 1894 3120 | ||
171 | 2 2 0 1 -1 7 0 0 61 0.000 0 0 -1 0 0 5 | ||
172 | 2006 3120 2117 3120 2117 3343 2006 3343 2006 3120 | ||
173 | 2 2 0 1 -1 7 0 0 61 0.000 0 0 -1 0 0 5 | ||
174 | 2117 3120 2228 3120 2228 3343 2117 3343 2117 3120 | ||
175 | 2 2 0 1 -1 7 0 0 61 0.000 0 0 -1 0 0 5 | ||
176 | 2340 3120 2563 3120 2563 3343 2340 3343 2340 3120 | ||
177 | 2 2 0 1 -1 7 0 0 41 0.000 0 0 -1 0 0 5 | ||
178 | 3565 3120 3677 3120 3677 3343 3565 3343 3565 3120 | ||
179 | 2 2 0 1 -1 7 0 0 61 0.000 0 0 -1 0 0 5 | ||
180 | 2563 3120 2674 3120 2674 3343 2563 3343 2563 3120 | ||
181 | 2 2 0 1 -1 7 0 0 41 0.000 0 0 -1 0 0 5 | ||
182 | 4011 3120 4234 3120 4234 3343 4011 3343 4011 3120 | ||
183 | 2 2 0 1 -1 7 0 0 41 0.000 0 0 -1 0 0 5 | ||
184 | 4457 3120 4791 3120 4791 3343 4457 3343 4457 3120 | ||
185 | 2 2 0 1 -1 7 0 0 -1 0.000 0 0 -1 0 0 5 | ||
186 | 3118 3118 4232 3118 4232 3341 3118 3341 3118 3118 | ||
187 | 2 2 0 1 -1 7 0 0 41 0.000 0 0 -1 0 0 5 | ||
188 | 4457 1783 5014 1783 5014 2006 4457 2006 4457 1783 | ||
189 | 4 0 -1 0 0 0 13 0.0000 0 128 384 0 2841 F7 = \001 | ||
190 | 4 0 -1 0 0 0 13 0.0000 0 128 340 0 2396 F6 =\001 | ||
191 | 4 0 -1 0 0 0 13 0.0000 0 128 340 0 1950 F5 =\001 | ||
192 | 4 0 -1 0 0 0 13 0.0000 0 128 340 0 1059 F3 =\001 | ||
193 | 4 0 -1 0 0 0 13 0.0000 0 128 340 0 613 F2 =\001 | ||
194 | 4 0 -1 0 0 0 13 0.0000 0 128 340 0 167 F1 =\001 | ||
195 | 4 0 -1 0 0 0 13 0.0000 0 128 340 0 3287 F8 =\001 | ||
196 | 4 0 -1 0 0 5 13 0.0000 0 106 1114 446 223 DISULPHIDE\001 | ||
197 | 4 0 -1 0 0 5 13 0.0000 0 106 1114 446 669 BISULPHIDE\001 | ||
198 | 4 0 -1 0 0 5 13 0.0000 0 106 1114 446 1114 DISELENIDE\001 | ||
199 | 4 0 -1 0 0 5 13 0.0000 0 106 1114 446 1560 DISULPHINE\001 | ||
200 | 4 0 -1 0 0 5 13 0.0000 0 106 1114 446 2006 ESSELENIAN\001 | ||
201 | 4 0 -1 0 0 5 13 0.0000 0 106 1114 446 2451 DISULPHONE\001 | ||
202 | 4 0 -1 0 0 5 13 0.0000 0 106 1003 1894 223 ISULPHIDE\001 | ||
203 | 4 0 -1 0 0 5 13 0.0000 0 106 111 3120 223 D\001 | ||
204 | 4 0 -1 0 0 5 13 0.0000 0 106 223 1894 669 IS\001 | ||
205 | 4 0 -1 0 0 5 13 0.0000 0 106 111 2228 669 L\001 | ||
206 | 4 0 -1 0 0 5 13 0.0000 0 106 334 2563 669 IDE\001 | ||
207 | 4 0 -1 0 0 5 13 0.0000 0 106 111 3120 669 B\001 | ||
208 | 4 0 -1 0 0 5 13 0.0000 0 106 111 3454 669 U\001 | ||
209 | 4 0 -1 0 0 5 13 0.0000 0 106 223 3677 669 PH\001 | ||
210 | 4 0 -1 0 0 5 13 0.0000 0 106 669 3454 1114 E EN D\001 | ||
211 | 4 0 -1 0 0 5 13 0.0000 0 106 1114 1783 1114 DIS L I E\001 | ||
212 | 4 0 -1 0 0 5 13 0.0000 0 106 223 3120 2006 ES\001 | ||
213 | 4 0 -1 0 0 5 13 0.0000 0 106 334 3900 2006 IAN\001 | ||
214 | 4 0 -1 0 0 5 13 0.0000 0 106 557 2006 2006 SELEN\001 | ||
215 | 4 0 -1 0 0 5 13 0.0000 0 106 891 1783 1560 DISULPHI\001 | ||
216 | 4 0 -1 0 0 5 13 0.0000 0 106 223 4011 1560 NE\001 | ||
217 | 4 0 -1 0 0 5 13 0.0000 0 106 1114 1783 2451 D U PH NE\001 | ||
218 | 4 0 -1 0 0 5 13 0.0000 0 106 891 3120 2451 IS U O\001 | ||
219 | 4 0 -1 0 0 5 13 0.0000 0 106 1114 446 2897 TROEZENIAN\001 | ||
220 | 4 0 -1 0 0 5 13 0.0000 0 106 1114 3120 2897 TROEZENIAN\001 | ||
221 | 4 0 -1 0 0 12 13 0.0000 4 106 1114 444 3313 ESSELENIST\001 | ||
222 | 4 0 -1 0 0 0 13 0.0000 0 50 106 1616 3287 =\001 | ||
223 | 4 0 -1 0 0 0 13 0.0000 0 50 106 1616 2841 =\001 | ||
224 | 4 0 -1 0 0 0 13 0.0000 0 50 106 1616 2396 =\001 | ||
225 | 4 0 -1 0 0 0 13 0.0000 0 50 106 1616 1950 =\001 | ||
226 | 4 0 -1 0 0 0 13 0.0000 0 50 106 1616 1504 =\001 | ||
227 | 4 0 -1 0 0 0 13 0.0000 0 50 106 1616 1059 =\001 | ||
228 | 4 0 -1 0 0 0 13 0.0000 0 50 106 1616 613 =\001 | ||
229 | 4 0 -1 0 0 0 13 0.0000 0 50 106 1616 167 =\001 | ||
230 | 4 0 -1 0 0 0 13 0.0000 0 89 106 2953 3287 +\001 | ||
231 | 4 0 -1 0 0 0 13 0.0000 0 89 106 2953 2396 +\001 | ||
232 | 4 0 -1 0 0 0 13 0.0000 0 89 106 2953 1950 +\001 | ||
233 | 4 0 -1 0 0 0 13 0.0000 0 89 106 2953 1504 +\001 | ||
234 | 4 0 -1 0 0 0 13 0.0000 0 89 106 2953 1059 +\001 | ||
235 | 4 0 -1 0 0 0 13 0.0000 0 89 106 2953 613 +\001 | ||
236 | 4 0 -1 0 0 0 13 0.0000 0 89 106 2953 167 +\001 | ||
237 | 4 0 -1 0 0 0 13 0.0000 0 89 106 2953 2841 +\001 | ||
238 | 4 0 -1 0 0 0 13 0.0000 0 128 340 0 1504 F4 =\001 | ||
239 | 4 0 -1 0 0 0 13 0.0000 0 50 106 4290 3287 =\001 | ||
240 | 4 0 -1 0 0 0 13 0.0000 0 50 106 4290 2841 =\001 | ||
241 | 4 0 -1 0 0 0 13 0.0000 0 50 106 4290 2368 =\001 | ||
242 | 4 0 -1 0 0 0 13 0.0000 0 50 106 4290 1950 =\001 | ||
243 | 4 0 -1 0 0 0 13 0.0000 0 50 106 4290 1476 =\001 | ||
244 | 4 0 -1 0 0 0 13 0.0000 0 50 106 4290 1059 =\001 | ||
245 | 4 0 -1 0 0 0 13 0.0000 0 50 106 4290 613 =\001 | ||
246 | 4 0 -1 0 0 0 13 0.0000 0 50 106 4290 167 =\001 | ||
247 | 4 0 -1 0 0 5 13 0.0000 0 106 2451 1783 3343 ESSE ENI L ST\001 | ||
248 | 4 0 -1 0 0 5 13 0.0000 0 106 111 4457 223 D\001 | ||
249 | 4 0 -1 0 0 5 13 0.0000 0 106 446 4457 669 BUPH\001 | ||
250 | 4 0 -1 0 0 5 13 0.0000 0 106 446 4457 1114 EEND\001 | ||
251 | 4 0 -1 0 0 5 13 0.0000 0 106 223 4457 1560 NE\001 | ||
252 | 4 0 -1 0 0 5 13 0.0000 0 106 557 4457 2006 ESIAN\001 | ||
253 | 4 0 -1 0 0 5 13 0.0000 0 106 446 4457 2451 ISUO\001 | ||
254 | 4 0 -1 0 0 5 13 0.0000 0 106 1114 4457 2897 TROEZENIAN\001 | ||
255 | 4 0 -1 0 0 5 13 0.0000 0 106 334 4457 3343 LST\001 | ||
256 | -6 | ||
diff --git a/xdelta1/doc/old/dcc99/figs/onestep.fig.normalsize b/xdelta1/doc/old/dcc99/figs/onestep.fig.normalsize deleted file mode 100755 index 75d6712..0000000 --- a/xdelta1/doc/old/dcc99/figs/onestep.fig.normalsize +++ /dev/null | |||
@@ -1,254 +0,0 @@ | |||
1 | #FIG 3.1 | ||
2 | Landscape | ||
3 | Center | ||
4 | Inches | ||
5 | 1200 2 | ||
6 | 6 2100 9900 15300 10875 | ||
7 | 4 0 -1 0 0 12 34 0.0000 4 300 2100 2100 10275 Actual \001 | ||
8 | 4 0 -1 0 0 12 34 0.0000 4 300 1200 2100 10755 File\001 | ||
9 | 4 0 -1 0 0 12 34 0.0000 4 375 1200 5700 10275 Copy\001 | ||
10 | 4 0 -1 0 0 12 34 0.0000 4 375 2400 5700 10755 Segments\001 | ||
11 | 4 0 -1 0 0 12 34 0.0000 4 285 1800 9300 10200 Insert\001 | ||
12 | 4 0 -1 0 0 12 34 0.0000 4 375 2400 9300 10680 Segments\001 | ||
13 | 4 0 -1 0 0 12 34 0.0000 4 390 2400 12900 10275 Physical\001 | ||
14 | 4 0 -1 0 0 12 34 0.0000 4 375 2100 12900 10755 Storage\001 | ||
15 | -6 | ||
16 | 2 2 2 1 -1 7 0 0 -1 3.000 0 0 -1 0 0 5 | ||
17 | 1500 600 4500 600 4500 1200 1500 1200 1500 600 | ||
18 | 2 2 2 1 -1 7 0 0 -1 3.000 0 0 -1 0 0 5 | ||
19 | 1500 1800 4500 1800 4500 2400 1500 2400 1500 1800 | ||
20 | 2 2 2 1 -1 7 0 0 -1 3.000 0 0 -1 0 0 5 | ||
21 | 1500 3000 4500 3000 4500 3600 1500 3600 1500 3000 | ||
22 | 2 2 2 1 -1 7 0 0 -1 3.000 0 0 -1 0 0 5 | ||
23 | 1500 4200 4500 4200 4500 4800 1500 4800 1500 4200 | ||
24 | 2 2 2 1 -1 7 0 0 -1 3.000 0 0 -1 0 0 5 | ||
25 | 1500 5400 4500 5400 4500 6000 1500 6000 1500 5400 | ||
26 | 2 2 0 1 -1 7 0 0 41 0.000 0 0 -1 0 0 5 | ||
27 | 1500 5400 4500 5400 4500 6000 1500 6000 1500 5400 | ||
28 | 2 2 0 1 -1 7 0 0 41 0.000 0 0 -1 0 0 5 | ||
29 | 1500 4200 4500 4200 4500 4800 1500 4800 1500 4200 | ||
30 | 2 2 0 1 -1 7 0 0 41 0.000 0 0 -1 0 0 5 | ||
31 | 1500 3000 4500 3000 4500 3600 1500 3600 1500 3000 | ||
32 | 2 2 0 1 -1 7 0 0 41 0.000 0 0 -1 0 0 5 | ||
33 | 1500 1800 4500 1800 4500 2400 1500 2400 1500 1800 | ||
34 | 2 2 0 1 -1 7 0 0 41 0.000 0 0 -1 0 0 5 | ||
35 | 1500 600 4500 600 4500 1200 1500 1200 1500 600 | ||
36 | 2 2 0 1 -1 7 0 0 41 0.000 0 0 -1 0 0 5 | ||
37 | 1500 6600 4500 6600 4500 7200 1500 7200 1500 6600 | ||
38 | 2 2 0 1 -1 7 0 0 -1 0.000 0 0 -1 0 0 5 | ||
39 | 5100 600 8100 600 8100 1200 5100 1200 5100 600 | ||
40 | 2 2 0 1 -1 7 0 0 -1 0.000 0 0 -1 0 0 5 | ||
41 | 5100 1800 8100 1800 8100 2400 5100 2400 5100 1800 | ||
42 | 2 2 0 1 -1 7 0 0 -1 0.000 0 0 -1 0 0 5 | ||
43 | 5100 3000 8100 3000 8100 3600 5100 3600 5100 3000 | ||
44 | 2 2 0 1 -1 7 0 0 -1 0.000 0 0 -1 0 0 5 | ||
45 | 5100 4200 8100 4200 8100 4800 5100 4800 5100 4200 | ||
46 | 2 2 0 1 -1 7 0 0 -1 0.000 0 0 -1 0 0 5 | ||
47 | 5100 5400 8100 5400 8100 6000 5100 6000 5100 5400 | ||
48 | 2 2 0 1 -1 7 0 0 -1 0.000 0 0 -1 0 0 5 | ||
49 | 5100 6600 8100 6600 8100 7200 5100 7200 5100 6600 | ||
50 | 2 2 0 1 -1 7 0 0 -1 0.000 0 0 -1 0 0 5 | ||
51 | 8700 600 11700 600 11700 1200 8700 1200 8700 600 | ||
52 | 2 2 0 1 -1 7 0 0 -1 0.000 0 0 -1 0 0 5 | ||
53 | 8700 1800 11700 1800 11700 2400 8700 2400 8700 1800 | ||
54 | 2 2 0 1 -1 7 0 0 -1 0.000 0 0 -1 0 0 5 | ||
55 | 8700 3000 11700 3000 11700 3600 8700 3600 8700 3000 | ||
56 | 2 2 0 1 -1 7 0 0 -1 0.000 0 0 -1 0 0 5 | ||
57 | 8700 4200 11700 4200 11700 4800 8700 4800 8700 4200 | ||
58 | 2 2 0 1 -1 7 0 0 -1 0.000 0 0 -1 0 0 5 | ||
59 | 8700 5400 11700 5400 11700 6000 8700 6000 8700 5400 | ||
60 | 2 2 0 1 -1 7 0 0 -1 0.000 0 0 -1 0 0 5 | ||
61 | 8700 6600 11700 6600 11700 7200 8700 7200 8700 6600 | ||
62 | 2 2 0 1 -1 7 0 0 41 0.000 0 0 -1 0 0 5 | ||
63 | 5400 600 8100 600 8100 1200 5400 1200 5400 600 | ||
64 | 2 2 0 1 -1 7 0 0 41 0.000 0 0 -1 0 0 5 | ||
65 | 8700 600 9000 600 9000 1200 8700 1200 8700 600 | ||
66 | 2 2 0 1 -1 7 0 0 41 0.000 0 0 -1 0 0 5 | ||
67 | 5400 1800 6000 1800 6000 2400 5400 2400 5400 1800 | ||
68 | 2 2 0 1 -1 7 0 0 41 0.000 0 0 -1 0 0 5 | ||
69 | 6300 1800 6600 1800 6600 2400 6300 2400 6300 1800 | ||
70 | 2 2 0 1 -1 7 0 0 41 0.000 0 0 -1 0 0 5 | ||
71 | 7200 1800 8100 1800 8100 2400 7200 2400 7200 1800 | ||
72 | 2 2 0 1 -1 7 0 0 41 0.000 0 0 -1 0 0 5 | ||
73 | 8700 1800 9000 1800 9000 2400 8700 2400 8700 1800 | ||
74 | 2 2 0 1 -1 7 0 0 41 0.000 0 0 -1 0 0 5 | ||
75 | 9600 1800 9900 1800 9900 2400 9600 2400 9600 1800 | ||
76 | 2 2 0 1 -1 7 0 0 41 0.000 0 0 -1 0 0 5 | ||
77 | 10200 1800 10800 1800 10800 2400 10200 2400 10200 1800 | ||
78 | 2 2 0 1 -1 7 0 0 41 0.000 0 0 -1 0 0 5 | ||
79 | 5100 3000 6000 3000 6000 3600 5100 3600 5100 3000 | ||
80 | 2 2 0 1 -1 7 0 0 41 0.000 0 0 -1 0 0 5 | ||
81 | 6300 3000 6600 3000 6600 3600 6300 3600 6300 3000 | ||
82 | 2 2 0 1 -1 7 0 0 41 0.000 0 0 -1 0 0 5 | ||
83 | 7200 3000 7500 3000 7500 3600 7200 3600 7200 3000 | ||
84 | 2 2 0 1 -1 7 0 0 41 0.000 0 0 -1 0 0 5 | ||
85 | 7800 3000 8100 3000 8100 3600 7800 3600 7800 3000 | ||
86 | 2 2 0 1 -1 7 0 0 41 0.000 0 0 -1 0 0 5 | ||
87 | 9600 3000 9900 3000 9900 3600 9600 3600 9600 3000 | ||
88 | 2 2 0 1 -1 7 0 0 41 0.000 0 0 -1 0 0 5 | ||
89 | 10200 3000 10800 3000 10800 3600 10200 3600 10200 3000 | ||
90 | 2 2 0 1 -1 7 0 0 41 0.000 0 0 -1 0 0 5 | ||
91 | 11100 3000 11400 3000 11400 3600 11100 3600 11100 3000 | ||
92 | 2 2 0 1 -1 7 0 0 41 0.000 0 0 -1 0 0 5 | ||
93 | 6900 4200 7200 4200 7200 4200 6900 4200 6900 4200 | ||
94 | 2 2 0 1 -1 7 0 0 41 0.000 0 0 -1 0 0 5 | ||
95 | 5700 4200 6000 4200 6000 4800 5700 4800 5700 4200 | ||
96 | 2 2 0 1 -1 7 0 0 41 0.000 0 0 -1 0 0 5 | ||
97 | 6300 4200 6600 4200 6600 4800 6300 4800 6300 4200 | ||
98 | 2 2 0 1 -1 7 0 0 61 0.000 0 0 -1 0 0 5 | ||
99 | 5100 4200 5400 4200 5400 4800 5100 4800 5100 4200 | ||
100 | 2 2 0 1 -1 7 0 0 41 0.000 0 0 -1 0 0 5 | ||
101 | 7200 4200 7500 4200 7500 4800 7200 4800 7200 4200 | ||
102 | 2 2 0 1 -1 7 0 0 61 0.000 0 0 -1 0 0 5 | ||
103 | 6000 4200 6300 4200 6300 4800 6000 4800 6000 4200 | ||
104 | 2 2 0 1 -1 7 0 0 61 0.000 0 0 -1 0 0 5 | ||
105 | 6600 4200 7200 4200 7200 4800 6600 4800 6600 4200 | ||
106 | 2 2 0 1 -1 7 0 0 41 0.000 0 0 -1 0 0 5 | ||
107 | 5700 5400 6000 5400 6000 6000 5700 6000 5700 5400 | ||
108 | 2 2 0 1 -1 7 0 0 41 0.000 0 0 -1 0 0 5 | ||
109 | 6300 5400 6600 5400 6600 6000 6300 6000 6300 5400 | ||
110 | 2 2 0 1 -1 7 0 0 61 0.000 0 0 -1 0 0 5 | ||
111 | 6000 5400 6300 5400 6300 6000 6000 6000 6000 5400 | ||
112 | 2 2 0 1 -1 7 0 0 61 0.000 0 0 -1 0 0 5 | ||
113 | 6600 5400 7200 5400 7200 6000 6600 6000 6600 5400 | ||
114 | 2 2 0 1 -1 7 0 0 41 0.000 0 0 -1 0 0 5 | ||
115 | 10800 5400 11700 5400 11700 6000 10800 6000 10800 5400 | ||
116 | 2 2 0 1 -1 7 0 0 41 0.000 0 0 -1 0 0 5 | ||
117 | 8700 5400 9300 5400 9300 6000 8700 6000 8700 5400 | ||
118 | 2 2 0 1 -1 7 0 0 41 0.000 0 0 -1 0 0 5 | ||
119 | 11100 4200 11700 4200 11700 4800 11100 4800 11100 4200 | ||
120 | 2 2 0 1 -1 7 0 0 61 0.000 0 0 -1 0 0 5 | ||
121 | 5100 6600 5400 6600 5400 7200 5100 7200 5100 6600 | ||
122 | 2 2 0 1 -1 7 0 0 61 0.000 0 0 -1 0 0 5 | ||
123 | 6000 6600 6300 6600 6300 7200 6000 7200 6000 6600 | ||
124 | 2 2 0 1 -1 7 0 0 61 0.000 0 0 -1 0 0 5 | ||
125 | 6600 7200 7200 7200 7200 6600 6600 6600 6600 7200 | ||
126 | 2 2 0 1 -1 7 0 0 61 0.000 0 0 -1 0 0 5 | ||
127 | 7500 6600 8100 6600 8100 7200 7500 7200 7500 6600 | ||
128 | 2 2 0 1 -1 7 0 0 41 0.000 0 0 -1 0 0 5 | ||
129 | 9000 6600 9600 6600 9600 7200 9000 7200 9000 6600 | ||
130 | 2 2 0 1 -1 7 0 0 41 0.000 0 0 -1 0 0 5 | ||
131 | 9900 6600 10200 6600 10200 7200 9900 7200 9900 6600 | ||
132 | 2 2 0 1 -1 7 0 0 41 0.000 0 0 -1 0 0 5 | ||
133 | 10800 6600 11100 6600 11100 7200 10800 7200 10800 6600 | ||
134 | 2 2 0 1 -1 7 0 0 41 0.000 0 0 -1 0 0 5 | ||
135 | 12300 6600 13500 6600 13500 7200 12300 7200 12300 6600 | ||
136 | 2 2 0 1 -1 7 0 0 41 0.000 0 0 -1 0 0 5 | ||
137 | 12300 4800 12900 4800 12900 4200 12300 4200 12300 4800 | ||
138 | 2 2 0 1 -1 7 0 0 41 0.000 0 0 -1 0 0 5 | ||
139 | 12300 3600 13500 3600 13500 3000 12300 3000 12300 3600 | ||
140 | 2 2 0 1 -1 7 0 0 41 0.000 0 0 -1 0 0 5 | ||
141 | 12300 2400 13500 2400 13500 1800 12300 1800 12300 2400 | ||
142 | 2 2 0 1 -1 7 0 0 41 0.000 0 0 -1 0 0 5 | ||
143 | 12300 600 12600 600 12600 1200 12300 1200 12300 600 | ||
144 | 2 2 0 1 -1 7 0 0 -1 0.000 0 0 -1 0 0 5 | ||
145 | 1500 7800 4500 7800 4500 8400 1500 8400 1500 7800 | ||
146 | 2 2 0 1 -1 7 0 0 20 0.000 0 0 -1 0 0 5 | ||
147 | 1500 7800 4500 7800 4500 8400 1500 8400 1500 7800 | ||
148 | 2 2 0 1 -1 7 0 0 41 0.000 0 0 -1 0 0 5 | ||
149 | 1500 7800 4500 7800 4500 8400 1500 8400 1500 7800 | ||
150 | 2 2 0 1 -1 7 0 0 -1 0.000 0 0 -1 0 0 5 | ||
151 | 5100 7800 8100 7800 8100 8400 5100 8400 5100 7800 | ||
152 | 2 2 0 1 -1 7 0 0 -1 0.000 0 0 -1 0 0 5 | ||
153 | 8700 7800 11700 7800 11700 8400 8700 8400 8700 7800 | ||
154 | 2 2 0 1 -1 7 0 0 41 0.000 0 0 -1 0 0 5 | ||
155 | 8700 7800 11700 7800 11700 8400 8700 8400 8700 7800 | ||
156 | 2 2 0 1 -1 7 0 0 41 0.000 0 0 -1 0 0 5 | ||
157 | 12300 7800 15300 7800 15300 8400 12300 8400 12300 7800 | ||
158 | 2 2 0 1 -1 7 0 0 -1 0.000 0 0 -1 0 0 5 | ||
159 | 1496 8996 4496 8996 4496 9596 1496 9596 1496 8996 | ||
160 | 2 2 0 1 -1 7 0 0 20 0.000 0 0 -1 0 0 5 | ||
161 | 1496 8996 4496 8996 4496 9596 1496 9596 1496 8996 | ||
162 | 2 2 0 1 -1 7 0 0 -1 0.000 0 0 -1 0 0 5 | ||
163 | 5096 8996 8096 8996 8096 9596 5096 9596 5096 8996 | ||
164 | 2 2 0 1 -1 7 0 0 41 0.000 0 0 -1 0 0 5 | ||
165 | 1496 8996 4496 8996 4496 9596 1496 9596 1496 8996 | ||
166 | 2 2 0 1 -1 7 0 0 61 0.000 0 0 -1 0 0 5 | ||
167 | 5100 9000 5400 9000 5400 9600 5100 9600 5100 9000 | ||
168 | 2 2 0 1 -1 7 0 0 61 0.000 0 0 -1 0 0 5 | ||
169 | 5400 9000 5700 9000 5700 9600 5400 9600 5400 9000 | ||
170 | 2 2 0 1 -1 7 0 0 61 0.000 0 0 -1 0 0 5 | ||
171 | 5700 9000 6000 9000 6000 9600 5700 9600 5700 9000 | ||
172 | 2 2 0 1 -1 7 0 0 61 0.000 0 0 -1 0 0 5 | ||
173 | 6000 9000 6300 9000 6300 9600 6000 9600 6000 9000 | ||
174 | 2 2 0 1 -1 7 0 0 61 0.000 0 0 -1 0 0 5 | ||
175 | 6600 9000 7200 9000 7200 9600 6600 9600 6600 9000 | ||
176 | 2 2 0 1 -1 7 0 0 41 0.000 0 0 -1 0 0 5 | ||
177 | 9900 9000 10200 9000 10200 9600 9900 9600 9900 9000 | ||
178 | 2 2 0 1 -1 7 0 0 61 0.000 0 0 -1 0 0 5 | ||
179 | 7200 9000 7500 9000 7500 9600 7200 9600 7200 9000 | ||
180 | 2 2 0 1 -1 7 0 0 41 0.000 0 0 -1 0 0 5 | ||
181 | 11100 9000 11700 9000 11700 9600 11100 9600 11100 9000 | ||
182 | 2 2 0 1 -1 7 0 0 41 0.000 0 0 -1 0 0 5 | ||
183 | 12300 9000 13200 9000 13200 9600 12300 9600 12300 9000 | ||
184 | 2 2 0 1 -1 7 0 0 -1 0.000 0 0 -1 0 0 5 | ||
185 | 8696 8996 11696 8996 11696 9596 8696 9596 8696 8996 | ||
186 | 2 2 0 1 -1 7 0 0 41 0.000 0 0 -1 0 0 5 | ||
187 | 12300 5400 13800 5400 13800 6000 12300 6000 12300 5400 | ||
188 | 4 0 -1 0 0 0 34 0.0000 0 345 1035 300 8250 F7 = \001 | ||
189 | 4 0 -1 0 0 0 34 0.0000 0 345 915 300 7050 F6 =\001 | ||
190 | 4 0 -1 0 0 0 34 0.0000 0 345 915 300 5850 F5 =\001 | ||
191 | 4 0 -1 0 0 0 34 0.0000 0 345 915 300 3450 F3 =\001 | ||
192 | 4 0 -1 0 0 0 34 0.0000 0 345 915 300 2250 F2 =\001 | ||
193 | 4 0 -1 0 0 0 34 0.0000 0 345 915 300 1050 F1 =\001 | ||
194 | 4 0 -1 0 0 0 34 0.0000 0 345 915 300 9450 F8 =\001 | ||
195 | 4 0 -1 0 0 5 34 0.0000 0 285 3000 1500 1200 DISULPHIDE\001 | ||
196 | 4 0 -1 0 0 5 34 0.0000 0 285 3000 1500 2400 BISULPHIDE\001 | ||
197 | 4 0 -1 0 0 5 34 0.0000 0 285 3000 1500 3600 DISELENIDE\001 | ||
198 | 4 0 -1 0 0 5 34 0.0000 0 285 3000 1500 4800 DISULPHINE\001 | ||
199 | 4 0 -1 0 0 5 34 0.0000 0 285 3000 1500 6000 ESSELENIAN\001 | ||
200 | 4 0 -1 0 0 5 34 0.0000 0 285 3000 1500 7200 DISULPHONE\001 | ||
201 | 4 0 -1 0 0 5 34 0.0000 0 285 2700 5400 1200 ISULPHIDE\001 | ||
202 | 4 0 -1 0 0 5 34 0.0000 0 285 300 8700 1200 D\001 | ||
203 | 4 0 -1 0 0 5 34 0.0000 0 285 600 5400 2400 IS\001 | ||
204 | 4 0 -1 0 0 5 34 0.0000 0 285 300 6300 2400 L\001 | ||
205 | 4 0 -1 0 0 5 34 0.0000 0 285 900 7200 2400 IDE\001 | ||
206 | 4 0 -1 0 0 5 34 0.0000 0 285 300 8700 2400 B\001 | ||
207 | 4 0 -1 0 0 5 34 0.0000 0 285 300 9600 2400 U\001 | ||
208 | 4 0 -1 0 0 5 34 0.0000 0 285 600 10200 2400 PH\001 | ||
209 | 4 0 -1 0 0 5 34 0.0000 0 285 1800 9600 3600 E EN D\001 | ||
210 | 4 0 -1 0 0 5 34 0.0000 0 285 3000 5100 3600 DIS L I E\001 | ||
211 | 4 0 -1 0 0 5 34 0.0000 0 285 600 8700 6000 ES\001 | ||
212 | 4 0 -1 0 0 5 34 0.0000 0 285 900 10800 6000 IAN\001 | ||
213 | 4 0 -1 0 0 5 34 0.0000 0 285 1500 5700 6000 SELEN\001 | ||
214 | 4 0 -1 0 0 5 34 0.0000 0 285 2400 5100 4800 DISULPHI\001 | ||
215 | 4 0 -1 0 0 5 34 0.0000 0 285 600 11100 4800 NE\001 | ||
216 | 4 0 -1 0 0 5 34 0.0000 0 285 3000 5100 7200 D U PH NE\001 | ||
217 | 4 0 -1 0 0 5 34 0.0000 0 285 2400 8700 7200 IS U O\001 | ||
218 | 4 0 -1 0 0 5 34 0.0000 0 285 3000 1500 8400 TROEZENIAN\001 | ||
219 | 4 0 -1 0 0 5 34 0.0000 0 285 3000 8700 8400 TROEZENIAN\001 | ||
220 | 4 0 -1 0 0 12 34 0.0000 4 285 3000 1496 9521 ESSELENIST\001 | ||
221 | 4 0 -1 0 0 0 34 0.0000 0 135 285 4650 9450 =\001 | ||
222 | 4 0 -1 0 0 0 34 0.0000 0 135 285 4650 8250 =\001 | ||
223 | 4 0 -1 0 0 0 34 0.0000 0 135 285 4650 7050 =\001 | ||
224 | 4 0 -1 0 0 0 34 0.0000 0 135 285 4650 5850 =\001 | ||
225 | 4 0 -1 0 0 0 34 0.0000 0 135 285 4650 4650 =\001 | ||
226 | 4 0 -1 0 0 0 34 0.0000 0 135 285 4650 3450 =\001 | ||
227 | 4 0 -1 0 0 0 34 0.0000 0 135 285 4650 2250 =\001 | ||
228 | 4 0 -1 0 0 0 34 0.0000 0 135 285 4650 1050 =\001 | ||
229 | 4 0 -1 0 0 0 34 0.0000 0 240 285 8250 9450 +\001 | ||
230 | 4 0 -1 0 0 0 34 0.0000 0 240 285 8250 7050 +\001 | ||
231 | 4 0 -1 0 0 0 34 0.0000 0 240 285 8250 5850 +\001 | ||
232 | 4 0 -1 0 0 0 34 0.0000 0 240 285 8250 4650 +\001 | ||
233 | 4 0 -1 0 0 0 34 0.0000 0 240 285 8250 3450 +\001 | ||
234 | 4 0 -1 0 0 0 34 0.0000 0 240 285 8250 2250 +\001 | ||
235 | 4 0 -1 0 0 0 34 0.0000 0 240 285 8250 1050 +\001 | ||
236 | 4 0 -1 0 0 0 34 0.0000 0 240 285 8250 8250 +\001 | ||
237 | 4 0 -1 0 0 0 34 0.0000 0 345 915 300 4650 F4 =\001 | ||
238 | 4 0 -1 0 0 0 34 0.0000 0 135 285 11850 9450 =\001 | ||
239 | 4 0 -1 0 0 0 34 0.0000 0 135 285 11850 8250 =\001 | ||
240 | 4 0 -1 0 0 0 34 0.0000 0 135 285 11850 6975 =\001 | ||
241 | 4 0 -1 0 0 0 34 0.0000 0 135 285 11850 5850 =\001 | ||
242 | 4 0 -1 0 0 0 34 0.0000 0 135 285 11850 4575 =\001 | ||
243 | 4 0 -1 0 0 0 34 0.0000 0 135 285 11850 3450 =\001 | ||
244 | 4 0 -1 0 0 0 34 0.0000 0 135 285 11850 2250 =\001 | ||
245 | 4 0 -1 0 0 0 34 0.0000 0 135 285 11850 1050 =\001 | ||
246 | 4 0 -1 0 0 5 34 0.0000 0 285 6600 5100 9600 ESSE ENI L ST\001 | ||
247 | 4 0 -1 0 0 5 34 0.0000 0 285 300 12300 1200 D\001 | ||
248 | 4 0 -1 0 0 5 34 0.0000 0 285 1200 12300 2400 BUPH\001 | ||
249 | 4 0 -1 0 0 5 34 0.0000 0 285 1200 12300 3600 EEND\001 | ||
250 | 4 0 -1 0 0 5 34 0.0000 0 285 600 12300 4800 NE\001 | ||
251 | 4 0 -1 0 0 5 34 0.0000 0 285 1500 12300 6000 ESIAN\001 | ||
252 | 4 0 -1 0 0 5 34 0.0000 0 285 1200 12300 7200 ISUO\001 | ||
253 | 4 0 -1 0 0 5 34 0.0000 0 285 3000 12300 8400 TROEZENIAN\001 | ||
254 | 4 0 -1 0 0 5 34 0.0000 0 285 900 12300 9600 LST\001 | ||
diff --git a/xdelta1/doc/old/dcc99/figs/rcs.eps b/xdelta1/doc/old/dcc99/figs/rcs.eps deleted file mode 100755 index 4a07e10..0000000 --- a/xdelta1/doc/old/dcc99/figs/rcs.eps +++ /dev/null | |||
@@ -1,180 +0,0 @@ | |||
1 | %!PS-Adobe-2.0 EPSF-2.0 | ||
2 | %%Title: rcs.fig | ||
3 | %%Creator: fig2dev Version 3.1 Patchlevel 2 | ||
4 | %%CreationDate: Mon May 4 03:13:08 1998 | ||
5 | %%For: jmacd@icw.EECS.Berkeley.EDU (Josh MacDonald,,,,ARN) | ||
6 | %Magnification: 1.00 | ||
7 | %%Orientation: Portrait | ||
8 | %%BoundingBox: 0 0 121 162 | ||
9 | %%Pages: 0 | ||
10 | %%BeginSetup | ||
11 | %%IncludeFeature: *PageSize Letter | ||
12 | %%EndSetup | ||
13 | %%EndComments | ||
14 | /$F2psDict 200 dict def | ||
15 | $F2psDict begin | ||
16 | $F2psDict /mtrx matrix put | ||
17 | /col-1 {0 setgray} bind def | ||
18 | /col0 {0.000 0.000 0.000 srgb} bind def | ||
19 | /col1 {0.000 0.000 1.000 srgb} bind def | ||
20 | /col2 {0.000 1.000 0.000 srgb} bind def | ||
21 | /col3 {0.000 1.000 1.000 srgb} bind def | ||
22 | /col4 {1.000 0.000 0.000 srgb} bind def | ||
23 | /col5 {1.000 0.000 1.000 srgb} bind def | ||
24 | /col6 {1.000 1.000 0.000 srgb} bind def | ||
25 | /col7 {1.000 1.000 1.000 srgb} bind def | ||
26 | /col8 {0.000 0.000 0.560 srgb} bind def | ||
27 | /col9 {0.000 0.000 0.690 srgb} bind def | ||
28 | /col10 {0.000 0.000 0.820 srgb} bind def | ||
29 | /col11 {0.530 0.810 1.000 srgb} bind def | ||
30 | /col12 {0.000 0.560 0.000 srgb} bind def | ||
31 | /col13 {0.000 0.690 0.000 srgb} bind def | ||
32 | /col14 {0.000 0.820 0.000 srgb} bind def | ||
33 | /col15 {0.000 0.560 0.560 srgb} bind def | ||
34 | /col16 {0.000 0.690 0.690 srgb} bind def | ||
35 | /col17 {0.000 0.820 0.820 srgb} bind def | ||
36 | /col18 {0.560 0.000 0.000 srgb} bind def | ||
37 | /col19 {0.690 0.000 0.000 srgb} bind def | ||
38 | /col20 {0.820 0.000 0.000 srgb} bind def | ||
39 | /col21 {0.560 0.000 0.560 srgb} bind def | ||
40 | /col22 {0.690 0.000 0.690 srgb} bind def | ||
41 | /col23 {0.820 0.000 0.820 srgb} bind def | ||
42 | /col24 {0.500 0.190 0.000 srgb} bind def | ||
43 | /col25 {0.630 0.250 0.000 srgb} bind def | ||
44 | /col26 {0.750 0.380 0.000 srgb} bind def | ||
45 | /col27 {1.000 0.500 0.500 srgb} bind def | ||
46 | /col28 {1.000 0.630 0.630 srgb} bind def | ||
47 | /col29 {1.000 0.750 0.750 srgb} bind def | ||
48 | /col30 {1.000 0.880 0.880 srgb} bind def | ||
49 | /col31 {1.000 0.840 0.000 srgb} bind def | ||
50 | |||
51 | end | ||
52 | save | ||
53 | -31.0 178.0 translate | ||
54 | 1 -1 scale | ||
55 | |||
56 | /cp {closepath} bind def | ||
57 | /ef {eofill} bind def | ||
58 | /gr {grestore} bind def | ||
59 | /gs {gsave} bind def | ||
60 | /sa {save} bind def | ||
61 | /rs {restore} bind def | ||
62 | /l {lineto} bind def | ||
63 | /m {moveto} bind def | ||
64 | /rm {rmoveto} bind def | ||
65 | /n {newpath} bind def | ||
66 | /s {stroke} bind def | ||
67 | /sh {show} bind def | ||
68 | /slc {setlinecap} bind def | ||
69 | /slj {setlinejoin} bind def | ||
70 | /slw {setlinewidth} bind def | ||
71 | /srgb {setrgbcolor} bind def | ||
72 | /rot {rotate} bind def | ||
73 | /sc {scale} bind def | ||
74 | /sd {setdash} bind def | ||
75 | /ff {findfont} bind def | ||
76 | /sf {setfont} bind def | ||
77 | /scf {scalefont} bind def | ||
78 | /sw {stringwidth} bind def | ||
79 | /tr {translate} bind def | ||
80 | /tnt {dup dup currentrgbcolor | ||
81 | 4 -2 roll dup 1 exch sub 3 -1 roll mul add | ||
82 | 4 -2 roll dup 1 exch sub 3 -1 roll mul add | ||
83 | 4 -2 roll dup 1 exch sub 3 -1 roll mul add srgb} | ||
84 | bind def | ||
85 | /shd {dup dup currentrgbcolor 4 -2 roll mul 4 -2 roll mul | ||
86 | 4 -2 roll mul srgb} bind def | ||
87 | /DrawEllipse { | ||
88 | /endangle exch def | ||
89 | /startangle exch def | ||
90 | /yrad exch def | ||
91 | /xrad exch def | ||
92 | /y exch def | ||
93 | /x exch def | ||
94 | /savematrix mtrx currentmatrix def | ||
95 | x y tr xrad yrad sc 0 0 1 startangle endangle arc | ||
96 | closepath | ||
97 | savematrix setmatrix | ||
98 | } def | ||
99 | |||
100 | /$F2psBegin {$F2psDict begin /$F2psEnteredState save def} def | ||
101 | /$F2psEnd {$F2psEnteredState restore end} def | ||
102 | %%EndProlog | ||
103 | |||
104 | $F2psBegin | ||
105 | 10 setmiterlimit | ||
106 | n 0 792 m 0 0 l 612 0 l 612 792 l cp clip | ||
107 | 0.06000 0.06000 sc | ||
108 | 7.500 slw | ||
109 | % Ellipse | ||
110 | n 742 2767 54 54 0 360 DrawEllipse gs col7 0.00 shd ef gr gs col-1 s gr | ||
111 | |||
112 | % Ellipse | ||
113 | n 764 418 54 54 0 360 DrawEllipse gs col7 0.00 shd ef gr gs col-1 s gr | ||
114 | |||
115 | % Ellipse | ||
116 | n 1942 1582 54 54 0 360 DrawEllipse gs col7 0.00 shd ef gr gs col-1 s gr | ||
117 | |||
118 | % Ellipse | ||
119 | n 1950 360 54 54 0 360 DrawEllipse gs col7 0.00 shd ef gr gs col-1 s gr | ||
120 | |||
121 | % Ellipse | ||
122 | n 742 1567 54 54 0 360 DrawEllipse gs col7 0.00 shd ef gr gs col-1 s gr | ||
123 | |||
124 | % Polyline | ||
125 | gs clippath | ||
126 | 780 2628 m 750 2748 l 720 2628 l 720 2790 l 780 2790 l cp clip | ||
127 | n 750 2775 m 750 1650 l gs col7 0.00 shd ef gr gs col-1 s gr gr | ||
128 | |||
129 | % arrowhead | ||
130 | n 780 2628 m 750 2748 l 720 2628 l 750 2628 l 780 2628 l cp gs 0.00 setgray ef gr col-1 s | ||
131 | % Polyline | ||
132 | gs clippath | ||
133 | 780 1428 m 750 1548 l 720 1428 l 720 1590 l 780 1590 l cp clip | ||
134 | n 750 1575 m 750 450 l gs col7 0.00 shd ef gr gs col-1 s gr gr | ||
135 | |||
136 | % arrowhead | ||
137 | n 780 1428 m 750 1548 l 720 1428 l 750 1428 l 780 1428 l cp gs 0.00 setgray ef gr col-1 s | ||
138 | % Polyline | ||
139 | gs clippath | ||
140 | 1920 522 m 1950 402 l 1980 522 l 1980 360 l 1920 360 l cp clip | ||
141 | n 1950 1500 m 1950 375 l gs col7 0.00 shd ef gr gs col-1 s gr gr | ||
142 | |||
143 | % arrowhead | ||
144 | n 1920 522 m 1950 402 l 1980 522 l 1950 522 l 1920 522 l cp gs 0.00 setgray ef gr col-1 s | ||
145 | % Polyline | ||
146 | gs clippath | ||
147 | 1765 1703 m 1870 1639 l 1807 1745 l 1922 1631 l 1879 1588 l cp clip | ||
148 | n 765 2745 m 1890 1620 l gs col7 0.00 shd ef gr gs col-1 s gr gr | ||
149 | |||
150 | % arrowhead | ||
151 | n 1765 1703 m 1870 1639 l 1807 1745 l 1786 1724 l 1765 1703 l cp gs 0.00 setgray ef gr col-1 s | ||
152 | /Times-Roman ff 180.00 scf sf | ||
153 | 825 2925 m | ||
154 | gs 1 -1 sc (1.1) col-1 sh gr | ||
155 | /Times-Roman ff 180.00 scf sf | ||
156 | 2025 1575 m | ||
157 | gs 1 -1 sc (1.1.1.1) col-1 sh gr | ||
158 | /Times-Roman ff 180.00 scf sf | ||
159 | 2025 375 m | ||
160 | gs 1 -1 sc (1.1.1.2) col-1 sh gr | ||
161 | /Times-Roman ff 180.00 scf sf | ||
162 | 825 375 m | ||
163 | gs 1 -1 sc (1.3) col-1 sh gr | ||
164 | /Times-Roman ff 180.00 scf sf | ||
165 | 825 1575 m | ||
166 | gs 1 -1 sc (1.2) col-1 sh gr | ||
167 | /Times-Roman ff 180.00 scf sf | ||
168 | 525 2100 m | ||
169 | gs 1 -1 sc (d1) col-1 sh gr | ||
170 | /Times-Roman ff 180.00 scf sf | ||
171 | 1500 2325 m | ||
172 | gs 1 -1 sc (d2) col-1 sh gr | ||
173 | /Times-Roman ff 180.00 scf sf | ||
174 | 525 975 m | ||
175 | gs 1 -1 sc (d3) col-1 sh gr | ||
176 | /Times-Roman ff 180.00 scf sf | ||
177 | 2025 975 m | ||
178 | gs 1 -1 sc (d4) col-1 sh gr | ||
179 | $F2psEnd | ||
180 | rs | ||
diff --git a/xdelta1/doc/old/dcc99/figs/rcs.fig b/xdelta1/doc/old/dcc99/figs/rcs.fig deleted file mode 100755 index 94004af..0000000 --- a/xdelta1/doc/old/dcc99/figs/rcs.fig +++ /dev/null | |||
@@ -1,31 +0,0 @@ | |||
1 | #FIG 3.1 | ||
2 | Portrait | ||
3 | Center | ||
4 | Inches | ||
5 | 1200 2 | ||
6 | 1 4 0 1 -1 7 0 0 0 0.000 1 0.0000 742 2767 54 54 705 2730 780 2805 | ||
7 | 1 4 0 1 -1 7 0 0 0 0.000 1 0.0000 764 418 54 54 727 381 802 456 | ||
8 | 1 4 0 1 -1 7 0 0 0 0.000 1 0.0000 1942 1582 54 54 1905 1545 1980 1620 | ||
9 | 1 4 0 1 -1 7 0 0 0 0.000 1 0.0000 1950 360 54 54 1913 323 1988 398 | ||
10 | 1 4 0 1 -1 7 0 0 0 0.000 1 0.0000 742 1567 54 54 705 1530 780 1605 | ||
11 | 2 1 0 1 -1 7 0 0 0 0.000 0 0 -1 0 1 2 | ||
12 | 1 1 1.00 60.00 120.00 | ||
13 | 750 2775 750 1650 | ||
14 | 2 1 0 1 -1 7 0 0 0 0.000 0 0 -1 0 1 2 | ||
15 | 1 1 1.00 60.00 120.00 | ||
16 | 750 1575 750 450 | ||
17 | 2 1 0 1 -1 7 0 0 0 0.000 0 0 -1 1 0 2 | ||
18 | 1 1 1.00 60.00 120.00 | ||
19 | 1950 1500 1950 375 | ||
20 | 2 1 0 1 -1 7 0 0 0 0.000 0 0 -1 1 0 2 | ||
21 | 1 1 1.00 60.00 120.00 | ||
22 | 765 2745 1890 1620 | ||
23 | 4 0 -1 0 0 0 12 0.0000 4 135 225 825 2925 1.1\001 | ||
24 | 4 0 -1 0 0 0 12 0.0000 4 135 495 2025 1575 1.1.1.1\001 | ||
25 | 4 0 -1 0 0 0 12 0.0000 4 135 495 2025 375 1.1.1.2\001 | ||
26 | 4 0 -1 0 0 0 12 0.0000 4 135 225 825 375 1.3\001 | ||
27 | 4 0 -1 0 0 0 12 0.0000 4 135 225 825 1575 1.2\001 | ||
28 | 4 0 -1 0 0 0 12 0.0000 4 135 180 525 2100 d1\001 | ||
29 | 4 0 -1 0 0 0 12 0.0000 4 135 180 1500 2325 d2\001 | ||
30 | 4 0 -1 0 0 0 12 0.0000 4 135 180 525 975 d3\001 | ||
31 | 4 0 -1 0 0 0 12 0.0000 4 135 180 2025 975 d4\001 | ||
diff --git a/xdelta1/doc/old/dcc99/figs/sizes.eps b/xdelta1/doc/old/dcc99/figs/sizes.eps deleted file mode 100755 index b1183e1..0000000 --- a/xdelta1/doc/old/dcc99/figs/sizes.eps +++ /dev/null | |||
@@ -1,707 +0,0 @@ | |||
1 | %!PS-Adobe-3.0 EPSF-3.0 | ||
2 | %%Creator: MATLAB, The Mathworks, Inc. | ||
3 | %%Title: ../figs/sizes.eps | ||
4 | %%CreationDate: 11/14/98 04:51:39 | ||
5 | %%DocumentNeededFonts: Helvetica | ||
6 | %%DocumentProcessColors: Cyan Magenta Yellow Black | ||
7 | %%LanguageLevel: 2 | ||
8 | %%Pages: 1 | ||
9 | %%BoundingBox: 65 196 560 616 | ||
10 | %%EndComments | ||
11 | |||
12 | %%BeginProlog | ||
13 | |||
14 | % MathWorks dictionary | ||
15 | /MathWorks 150 dict begin | ||
16 | |||
17 | % definition operators | ||
18 | /bdef {bind def} bind def | ||
19 | /ldef {load def} bind def | ||
20 | /xdef {exch def} bdef | ||
21 | /xstore {exch store} bdef | ||
22 | |||
23 | % operator abbreviations | ||
24 | /c /clip ldef | ||
25 | /cc /concat ldef | ||
26 | /cp /closepath ldef | ||
27 | /gr /grestore ldef | ||
28 | /gs /gsave ldef | ||
29 | /mt /moveto ldef | ||
30 | /np /newpath ldef | ||
31 | /cm /currentmatrix ldef | ||
32 | /sm /setmatrix ldef | ||
33 | /rc {rectclip} bdef | ||
34 | /rf {rectfill} bdef | ||
35 | /rm /rmoveto ldef | ||
36 | /rl /rlineto ldef | ||
37 | /s /show ldef | ||
38 | /sc {setcmykcolor} bdef | ||
39 | /sr /setrgbcolor ldef | ||
40 | /sg /setgray ldef | ||
41 | /w /setlinewidth ldef | ||
42 | /j /setlinejoin ldef | ||
43 | /cap /setlinecap ldef | ||
44 | |||
45 | % page state control | ||
46 | /pgsv () def | ||
47 | /bpage {/pgsv save def} bdef | ||
48 | /epage {pgsv restore} bdef | ||
49 | /bplot /gsave ldef | ||
50 | /eplot {stroke grestore} bdef | ||
51 | |||
52 | % orientation switch | ||
53 | /portraitMode 0 def | ||
54 | /landscapeMode 1 def | ||
55 | |||
56 | % coordinate system mappings | ||
57 | /dpi2point 0 def | ||
58 | |||
59 | % font control | ||
60 | /FontSize 0 def | ||
61 | /FMS { | ||
62 | /FontSize xstore %save size off stack | ||
63 | findfont | ||
64 | [FontSize 0 0 FontSize neg 0 0] | ||
65 | makefont | ||
66 | setfont | ||
67 | }bdef | ||
68 | |||
69 | /reencode { | ||
70 | exch dup where | ||
71 | {pop load} {pop StandardEncoding} ifelse | ||
72 | exch | ||
73 | dup 3 1 roll | ||
74 | findfont dup length dict begin | ||
75 | { 1 index /FID ne {def}{pop pop} ifelse } forall | ||
76 | /Encoding exch def | ||
77 | currentdict | ||
78 | end | ||
79 | definefont pop | ||
80 | } bdef | ||
81 | |||
82 | /isroman { | ||
83 | findfont /CharStrings get | ||
84 | /Agrave known | ||
85 | } bdef | ||
86 | |||
87 | /FMSR { | ||
88 | 3 1 roll 1 index | ||
89 | dup isroman | ||
90 | {reencode} {pop pop} ifelse | ||
91 | exch FMS | ||
92 | } bdef | ||
93 | |||
94 | /csm { | ||
95 | 1 dpi2point div -1 dpi2point div scale | ||
96 | neg translate | ||
97 | landscapeMode eq {90 rotate} if | ||
98 | } bdef | ||
99 | |||
100 | % line types: solid, dotted, dashed, dotdash | ||
101 | /SO { [] 0 setdash } bdef | ||
102 | /DO { [.5 dpi2point mul 4 dpi2point mul] 0 setdash } bdef | ||
103 | /DA { [6 dpi2point mul] 0 setdash } bdef | ||
104 | /DD { [.5 dpi2point mul 4 dpi2point mul 6 dpi2point mul 4 dpi2point mul] 0 setdash } bdef | ||
105 | |||
106 | % macros for lines and objects | ||
107 | /L { | ||
108 | lineto | ||
109 | stroke | ||
110 | } bdef | ||
111 | /MP { | ||
112 | 3 1 roll moveto | ||
113 | 1 sub {rlineto} repeat | ||
114 | } bdef | ||
115 | /AP { | ||
116 | {rlineto} repeat | ||
117 | } bdef | ||
118 | /PP { | ||
119 | closepath eofill | ||
120 | } bdef | ||
121 | /DP { | ||
122 | closepath stroke | ||
123 | } bdef | ||
124 | /MR { | ||
125 | 4 -2 roll moveto | ||
126 | dup 0 exch rlineto | ||
127 | exch 0 rlineto | ||
128 | neg 0 exch rlineto | ||
129 | closepath | ||
130 | } bdef | ||
131 | /FR { | ||
132 | MR stroke | ||
133 | } bdef | ||
134 | /PR { | ||
135 | MR fill | ||
136 | } bdef | ||
137 | /L1i { | ||
138 | { currentfile picstr readhexstring pop } image | ||
139 | } bdef | ||
140 | |||
141 | /tMatrix matrix def | ||
142 | /MakeOval { | ||
143 | newpath | ||
144 | tMatrix currentmatrix pop | ||
145 | translate scale | ||
146 | 0 0 1 0 360 arc | ||
147 | tMatrix setmatrix | ||
148 | } bdef | ||
149 | /FO { | ||
150 | MakeOval | ||
151 | stroke | ||
152 | } bdef | ||
153 | /PO { | ||
154 | MakeOval | ||
155 | fill | ||
156 | } bdef | ||
157 | |||
158 | /PD { | ||
159 | currentlinecap 1 setlinecap 3 1 roll 2 copy moveto lineto stroke setlinecap | ||
160 | } bdef | ||
161 | |||
162 | /FA { | ||
163 | newpath | ||
164 | tMatrix currentmatrix pop | ||
165 | translate scale | ||
166 | 0 0 1 5 -2 roll arc | ||
167 | tMatrix setmatrix | ||
168 | stroke | ||
169 | } bdef | ||
170 | /PA { | ||
171 | newpath | ||
172 | tMatrix currentmatrix pop | ||
173 | translate 0 0 moveto scale | ||
174 | 0 0 1 5 -2 roll arc | ||
175 | closepath | ||
176 | tMatrix setmatrix | ||
177 | fill | ||
178 | } bdef | ||
179 | |||
180 | |||
181 | /FAn { | ||
182 | newpath | ||
183 | tMatrix currentmatrix pop | ||
184 | translate scale | ||
185 | 0 0 1 5 -2 roll arcn | ||
186 | tMatrix setmatrix | ||
187 | stroke | ||
188 | } bdef | ||
189 | /PAn { | ||
190 | newpath | ||
191 | tMatrix currentmatrix pop | ||
192 | translate 0 0 moveto scale | ||
193 | 0 0 1 5 -2 roll arcn | ||
194 | closepath | ||
195 | tMatrix setmatrix | ||
196 | fill | ||
197 | } bdef | ||
198 | |||
199 | |||
200 | |||
201 | currentdict end def | ||
202 | %%EndProlog | ||
203 | |||
204 | %%BeginSetup | ||
205 | MathWorks begin | ||
206 | |||
207 | 0 cap | ||
208 | |||
209 | end | ||
210 | %%EndSetup | ||
211 | |||
212 | %%Page: 1 1 | ||
213 | %%BeginPageSetup | ||
214 | %%PageBoundingBox: 65 196 560 616 | ||
215 | MathWorks begin | ||
216 | bpage | ||
217 | %%EndPageSetup | ||
218 | |||
219 | %%BeginObject: graph1 1 | ||
220 | bplot | ||
221 | |||
222 | /dpi2point 12 def | ||
223 | portraitMode 0216 7344 csm | ||
224 | |||
225 | 566 -48 5940 5037 rc | ||
226 | 88 dict begin %Colortable dictionary | ||
227 | /c0 { 0 0 0 sr} bdef | ||
228 | /c1 { 1 1 1 sr} bdef | ||
229 | /c2 { 1 0 0 sr} bdef | ||
230 | /c3 { 0 1 0 sr} bdef | ||
231 | /c4 { 0 0 1 sr} bdef | ||
232 | /c5 { 1 1 0 sr} bdef | ||
233 | /c6 { 1 0 1 sr} bdef | ||
234 | /c7 { 0 1 1 sr} bdef | ||
235 | 1 j | ||
236 | 1 sg | ||
237 | 0 0 6916 5185 rf | ||
238 | 6 w | ||
239 | 0 4225 5358 0 0 -4225 899 4613 4 MP | ||
240 | PP | ||
241 | -5358 0 0 4225 5358 0 0 -4225 899 4613 5 MP stroke | ||
242 | DO | ||
243 | 4 w | ||
244 | SO | ||
245 | 6 w | ||
246 | 0 sg | ||
247 | 899 4613 mt 6257 4613 L | ||
248 | 899 388 mt 6257 388 L | ||
249 | 899 4613 mt 899 388 L | ||
250 | 6257 4613 mt 6257 388 L | ||
251 | 899 4613 mt 6257 4613 L | ||
252 | 899 4613 mt 899 388 L | ||
253 | 899 4613 mt 899 4559 L | ||
254 | 899 388 mt 899 442 L | ||
255 | %%IncludeResource: font Helvetica | ||
256 | /Helvetica /ISOLatin1Encoding 120 FMSR | ||
257 | |||
258 | 866 4759 mt | ||
259 | (0) s | ||
260 | 1569 4613 mt 1569 4559 L | ||
261 | 1569 388 mt 1569 442 L | ||
262 | 1403 4759 mt | ||
263 | (50000) s | ||
264 | 2239 4613 mt 2239 4559 L | ||
265 | 2239 388 mt 2239 442 L | ||
266 | 2039 4759 mt | ||
267 | (100000) s | ||
268 | 2908 4613 mt 2908 4559 L | ||
269 | 2908 388 mt 2908 442 L | ||
270 | 2708 4759 mt | ||
271 | (150000) s | ||
272 | 3578 4613 mt 3578 4559 L | ||
273 | 3578 388 mt 3578 442 L | ||
274 | 3378 4759 mt | ||
275 | (200000) s | ||
276 | 4248 4613 mt 4248 4559 L | ||
277 | 4248 388 mt 4248 442 L | ||
278 | 4048 4759 mt | ||
279 | (250000) s | ||
280 | 4918 4613 mt 4918 4559 L | ||
281 | 4918 388 mt 4918 442 L | ||
282 | 4718 4759 mt | ||
283 | (300000) s | ||
284 | 5587 4613 mt 5587 4559 L | ||
285 | 5587 388 mt 5587 442 L | ||
286 | 5387 4759 mt | ||
287 | (350000) s | ||
288 | 6257 4613 mt 6257 4559 L | ||
289 | 6257 388 mt 6257 442 L | ||
290 | 6057 4759 mt | ||
291 | (400000) s | ||
292 | 899 4613 mt 953 4613 L | ||
293 | 6257 4613 mt 6203 4613 L | ||
294 | 798 4657 mt | ||
295 | (0) s | ||
296 | 899 4144 mt 953 4144 L | ||
297 | 6257 4144 mt 6203 4144 L | ||
298 | 798 4188 mt | ||
299 | (2) s | ||
300 | 899 3674 mt 953 3674 L | ||
301 | 6257 3674 mt 6203 3674 L | ||
302 | 798 3718 mt | ||
303 | (4) s | ||
304 | 899 3205 mt 953 3205 L | ||
305 | 6257 3205 mt 6203 3205 L | ||
306 | 798 3249 mt | ||
307 | (6) s | ||
308 | 899 2735 mt 953 2735 L | ||
309 | 6257 2735 mt 6203 2735 L | ||
310 | 798 2779 mt | ||
311 | (8) s | ||
312 | 899 2266 mt 953 2266 L | ||
313 | 6257 2266 mt 6203 2266 L | ||
314 | 731 2310 mt | ||
315 | (10) s | ||
316 | 899 1796 mt 953 1796 L | ||
317 | 6257 1796 mt 6203 1796 L | ||
318 | 731 1840 mt | ||
319 | (12) s | ||
320 | 899 1327 mt 953 1327 L | ||
321 | 6257 1327 mt 6203 1327 L | ||
322 | 731 1371 mt | ||
323 | (14) s | ||
324 | 899 857 mt 953 857 L | ||
325 | 6257 857 mt 6203 857 L | ||
326 | 731 901 mt | ||
327 | (16) s | ||
328 | 899 388 mt 953 388 L | ||
329 | 6257 388 mt 6203 388 L | ||
330 | 731 432 mt | ||
331 | (18) s | ||
332 | 899 4613 mt 6257 4613 L | ||
333 | 899 388 mt 6257 388 L | ||
334 | 899 4613 mt 899 388 L | ||
335 | 6257 4613 mt 6257 388 L | ||
336 | gs 899 388 5359 4226 rc | ||
337 | /c8 { 1.000000 0.000000 0.000000 sr} bdef | ||
338 | c8 | ||
339 | 0 701 939 3735 2 MP stroke | ||
340 | 94 0 892 3735 2 MP stroke | ||
341 | 94 0 892 4436 2 MP stroke | ||
342 | 0 520 1073 3899 2 MP stroke | ||
343 | 94 0 1026 3899 2 MP stroke | ||
344 | 94 0 1026 4419 2 MP stroke | ||
345 | 0 565 1207 3863 2 MP stroke | ||
346 | 94 0 1160 3863 2 MP stroke | ||
347 | 94 0 1160 4428 2 MP stroke | ||
348 | 0 524 1341 3912 2 MP stroke | ||
349 | 94 0 1294 3912 2 MP stroke | ||
350 | 94 0 1294 4436 2 MP stroke | ||
351 | 0 537 1475 3911 2 MP stroke | ||
352 | 94 0 1428 3911 2 MP stroke | ||
353 | 94 0 1428 4448 2 MP stroke | ||
354 | 0 531 1609 3932 2 MP stroke | ||
355 | 94 0 1562 3932 2 MP stroke | ||
356 | 94 0 1562 4463 2 MP stroke | ||
357 | 0 429 1743 4033 2 MP stroke | ||
358 | 94 0 1696 4033 2 MP stroke | ||
359 | 94 0 1696 4462 2 MP stroke | ||
360 | 0 469 1877 3999 2 MP stroke | ||
361 | 94 0 1830 3999 2 MP stroke | ||
362 | 94 0 1830 4468 2 MP stroke | ||
363 | 0 475 2011 3947 2 MP stroke | ||
364 | 94 0 1964 3947 2 MP stroke | ||
365 | 94 0 1964 4422 2 MP stroke | ||
366 | 0 537 2145 3952 2 MP stroke | ||
367 | 94 0 2098 3952 2 MP stroke | ||
368 | 94 0 2098 4489 2 MP stroke | ||
369 | 0 643 2279 3785 2 MP stroke | ||
370 | 94 0 2232 3785 2 MP stroke | ||
371 | 94 0 2232 4428 2 MP stroke | ||
372 | 0 289 2413 4149 2 MP stroke | ||
373 | 94 0 2366 4149 2 MP stroke | ||
374 | 94 0 2366 4438 2 MP stroke | ||
375 | 0 398 2547 4055 2 MP stroke | ||
376 | 93 0 2500 4055 2 MP stroke | ||
377 | 93 0 2500 4453 2 MP stroke | ||
378 | 0 117 2681 4306 2 MP stroke | ||
379 | 93 0 2634 4306 2 MP stroke | ||
380 | 93 0 2634 4423 2 MP stroke | ||
381 | 0 787 2814 3762 2 MP stroke | ||
382 | 93 0 2768 3762 2 MP stroke | ||
383 | 93 0 2768 4549 2 MP stroke | ||
384 | 0 1316 2948 3182 2 MP stroke | ||
385 | 93 0 2902 3182 2 MP stroke | ||
386 | 93 0 2902 4498 2 MP stroke | ||
387 | 0 992 3082 3621 2 MP stroke | ||
388 | 93 0 3036 3621 2 MP stroke | ||
389 | 93 0 3036 4613 2 MP stroke | ||
390 | 0 678 3216 3863 2 MP stroke | ||
391 | 94 0 3169 3863 2 MP stroke | ||
392 | 94 0 3169 4541 2 MP stroke | ||
393 | 0 766 3350 3847 2 MP stroke | ||
394 | 94 0 3303 3847 2 MP stroke | ||
395 | 94 0 3303 4613 2 MP stroke | ||
396 | 0 101 3484 4280 2 MP stroke | ||
397 | 94 0 3437 4280 2 MP stroke | ||
398 | 94 0 3437 4381 2 MP stroke | ||
399 | 0 2112 3618 2501 2 MP stroke | ||
400 | 94 0 3571 2501 2 MP stroke | ||
401 | 94 0 3571 4613 2 MP stroke | ||
402 | 0 260 3752 4096 2 MP stroke | ||
403 | 94 0 3705 4096 2 MP stroke | ||
404 | 94 0 3705 4356 2 MP stroke | ||
405 | 0 4112 4020 501 2 MP stroke | ||
406 | 94 0 3973 501 2 MP stroke | ||
407 | 94 0 3973 4613 2 MP stroke | ||
408 | 0 887 4154 3567 2 MP stroke | ||
409 | 94 0 4107 3567 2 MP stroke | ||
410 | 94 0 4107 4454 2 MP stroke | ||
411 | 0 311 4288 4104 2 MP stroke | ||
412 | 94 0 4241 4104 2 MP stroke | ||
413 | 94 0 4241 4415 2 MP stroke | ||
414 | 0 1338 4422 3219 2 MP stroke | ||
415 | 94 0 4375 3219 2 MP stroke | ||
416 | 94 0 4375 4557 2 MP stroke | ||
417 | 0 1935 5226 2678 2 MP stroke | ||
418 | 93 0 5179 2678 2 MP stroke | ||
419 | 93 0 5179 4613 2 MP stroke | ||
420 | 0 343 5360 4087 2 MP stroke | ||
421 | 93 0 5313 4087 2 MP stroke | ||
422 | 93 0 5313 4430 2 MP stroke | ||
423 | 0 118 5627 4495 2 MP stroke | ||
424 | 93 0 5581 4495 2 MP stroke | ||
425 | 93 0 5581 4613 2 MP stroke | ||
426 | |||
427 | gr | ||
428 | c8 | ||
429 | 36 36 939 4085 FO | ||
430 | 36 36 1073 4159 FO | ||
431 | 36 36 1207 4145 FO | ||
432 | 36 36 1341 4174 FO | ||
433 | 36 36 1475 4179 FO | ||
434 | 36 36 1609 4197 FO | ||
435 | 36 36 1743 4248 FO | ||
436 | 36 36 1877 4234 FO | ||
437 | 36 36 2011 4184 FO | ||
438 | 36 36 2145 4221 FO | ||
439 | 36 36 2279 4106 FO | ||
440 | 36 36 2413 4294 FO | ||
441 | 36 36 2547 4254 FO | ||
442 | 36 36 2681 4364 FO | ||
443 | 36 36 2814 4155 FO | ||
444 | 36 36 2948 3840 FO | ||
445 | 36 36 3082 4117 FO | ||
446 | 36 36 3216 4202 FO | ||
447 | 36 36 3350 4230 FO | ||
448 | 36 36 3484 4331 FO | ||
449 | 36 36 3618 3822 FO | ||
450 | 36 36 3752 4226 FO | ||
451 | 36 36 4020 3285 FO | ||
452 | 36 36 4154 4011 FO | ||
453 | 36 36 4288 4259 FO | ||
454 | 36 36 4422 3888 FO | ||
455 | 36 36 5226 3645 FO | ||
456 | 36 36 5360 4258 FO | ||
457 | 36 36 5627 4554 FO | ||
458 | gs 899 388 5359 4226 rc | ||
459 | /c9 { 0.000000 0.000000 1.000000 sr} bdef | ||
460 | c9 | ||
461 | 0 1803 966 2652 2 MP stroke | ||
462 | 94 0 919 2652 2 MP stroke | ||
463 | 94 0 919 4455 2 MP stroke | ||
464 | 0 1317 1100 3068 2 MP stroke | ||
465 | 94 0 1053 3068 2 MP stroke | ||
466 | 94 0 1053 4385 2 MP stroke | ||
467 | 0 1366 1234 3010 2 MP stroke | ||
468 | 94 0 1187 3010 2 MP stroke | ||
469 | 94 0 1187 4376 2 MP stroke | ||
470 | 0 1304 1368 3094 2 MP stroke | ||
471 | 94 0 1321 3094 2 MP stroke | ||
472 | 94 0 1321 4398 2 MP stroke | ||
473 | 0 1078 1502 3280 2 MP stroke | ||
474 | 94 0 1455 3280 2 MP stroke | ||
475 | 94 0 1455 4358 2 MP stroke | ||
476 | 0 1155 1636 3247 2 MP stroke | ||
477 | 94 0 1589 3247 2 MP stroke | ||
478 | 94 0 1589 4402 2 MP stroke | ||
479 | 0 913 1770 3473 2 MP stroke | ||
480 | 94 0 1723 3473 2 MP stroke | ||
481 | 94 0 1723 4386 2 MP stroke | ||
482 | 0 868 1904 3503 2 MP stroke | ||
483 | 94 0 1857 3503 2 MP stroke | ||
484 | 94 0 1857 4371 2 MP stroke | ||
485 | 0 972 2038 3322 2 MP stroke | ||
486 | 93 0 1991 3322 2 MP stroke | ||
487 | 93 0 1991 4294 2 MP stroke | ||
488 | 0 950 2172 3448 2 MP stroke | ||
489 | 93 0 2125 3448 2 MP stroke | ||
490 | 93 0 2125 4398 2 MP stroke | ||
491 | 0 955 2305 3287 2 MP stroke | ||
492 | 93 0 2259 3287 2 MP stroke | ||
493 | 93 0 2259 4242 2 MP stroke | ||
494 | 0 922 2439 3553 2 MP stroke | ||
495 | 93 0 2393 3553 2 MP stroke | ||
496 | 93 0 2393 4475 2 MP stroke | ||
497 | 0 946 2573 3449 2 MP stroke | ||
498 | 94 0 2526 3449 2 MP stroke | ||
499 | 94 0 2526 4395 2 MP stroke | ||
500 | 0 356 2707 4083 2 MP stroke | ||
501 | 94 0 2660 4083 2 MP stroke | ||
502 | 94 0 2660 4439 2 MP stroke | ||
503 | 0 1027 2841 3442 2 MP stroke | ||
504 | 94 0 2794 3442 2 MP stroke | ||
505 | 94 0 2794 4469 2 MP stroke | ||
506 | 0 940 2975 3239 2 MP stroke | ||
507 | 94 0 2928 3239 2 MP stroke | ||
508 | 94 0 2928 4179 2 MP stroke | ||
509 | 0 923 3109 3690 2 MP stroke | ||
510 | 94 0 3062 3690 2 MP stroke | ||
511 | 94 0 3062 4613 2 MP stroke | ||
512 | 0 1293 3243 3297 2 MP stroke | ||
513 | 94 0 3196 3297 2 MP stroke | ||
514 | 94 0 3196 4590 2 MP stroke | ||
515 | 0 686 3377 3927 2 MP stroke | ||
516 | 94 0 3330 3927 2 MP stroke | ||
517 | 94 0 3330 4613 2 MP stroke | ||
518 | 0 383 3511 4010 2 MP stroke | ||
519 | 94 0 3464 4010 2 MP stroke | ||
520 | 94 0 3464 4393 2 MP stroke | ||
521 | 0 1395 3645 3036 2 MP stroke | ||
522 | 94 0 3598 3036 2 MP stroke | ||
523 | 94 0 3598 4431 2 MP stroke | ||
524 | 0 157 3779 4122 2 MP stroke | ||
525 | 94 0 3732 4122 2 MP stroke | ||
526 | 94 0 3732 4279 2 MP stroke | ||
527 | 0 881 4047 3563 2 MP stroke | ||
528 | 94 0 4000 3563 2 MP stroke | ||
529 | 94 0 4000 4444 2 MP stroke | ||
530 | 0 1226 4181 3089 2 MP stroke | ||
531 | 94 0 4134 3089 2 MP stroke | ||
532 | 94 0 4134 4315 2 MP stroke | ||
533 | 0 254 4315 4090 2 MP stroke | ||
534 | 94 0 4268 4090 2 MP stroke | ||
535 | 94 0 4268 4344 2 MP stroke | ||
536 | 0 489 4449 3828 2 MP stroke | ||
537 | 94 0 4402 3828 2 MP stroke | ||
538 | 94 0 4402 4317 2 MP stroke | ||
539 | 0 1007 5252 3606 2 MP stroke | ||
540 | 94 0 5205 3606 2 MP stroke | ||
541 | 94 0 5205 4613 2 MP stroke | ||
542 | 0 216 5386 4142 2 MP stroke | ||
543 | 94 0 5339 4142 2 MP stroke | ||
544 | 94 0 5339 4358 2 MP stroke | ||
545 | 0 86 5654 4527 2 MP stroke | ||
546 | 94 0 5607 4527 2 MP stroke | ||
547 | 94 0 5607 4613 2 MP stroke | ||
548 | |||
549 | gr | ||
550 | c9 | ||
551 | 0 j | ||
552 | 0 -58 -58 0 0 58 58 0 937 3525 5 MP | ||
553 | DP | ||
554 | 0 -58 -58 0 0 58 58 0 1071 3698 5 MP | ||
555 | DP | ||
556 | 0 -58 -58 0 0 58 58 0 1205 3664 5 MP | ||
557 | DP | ||
558 | 0 -58 -58 0 0 58 58 0 1339 3717 5 MP | ||
559 | DP | ||
560 | 0 -58 -58 0 0 58 58 0 1473 3790 5 MP | ||
561 | DP | ||
562 | 0 -58 -58 0 0 58 58 0 1607 3796 5 MP | ||
563 | DP | ||
564 | 0 -58 -58 0 0 58 58 0 1741 3901 5 MP | ||
565 | DP | ||
566 | 0 -58 -58 0 0 58 58 0 1875 3908 5 MP | ||
567 | DP | ||
568 | 0 -58 -58 0 0 58 58 0 2009 3779 5 MP | ||
569 | DP | ||
570 | 0 -58 -58 0 0 58 58 0 2143 3894 5 MP | ||
571 | DP | ||
572 | 0 -58 -58 0 0 58 58 0 2276 3736 5 MP | ||
573 | DP | ||
574 | 0 -58 -58 0 0 58 58 0 2410 3985 5 MP | ||
575 | DP | ||
576 | 0 -58 -58 0 0 58 58 0 2544 3893 5 MP | ||
577 | DP | ||
578 | 0 -58 -58 0 0 58 58 0 2678 4232 5 MP | ||
579 | DP | ||
580 | 0 -58 -58 0 0 58 58 0 2812 3927 5 MP | ||
581 | DP | ||
582 | 0 -58 -58 0 0 58 58 0 2946 3680 5 MP | ||
583 | DP | ||
584 | 0 -58 -58 0 0 58 58 0 3080 4122 5 MP | ||
585 | DP | ||
586 | 0 -58 -58 0 0 58 58 0 3214 3915 5 MP | ||
587 | DP | ||
588 | 0 -58 -58 0 0 58 58 0 3348 4241 5 MP | ||
589 | DP | ||
590 | 0 -58 -58 0 0 58 58 0 3482 4172 5 MP | ||
591 | DP | ||
592 | 0 -58 -58 0 0 58 58 0 3616 3704 5 MP | ||
593 | DP | ||
594 | 0 -58 -58 0 0 58 58 0 3750 4172 5 MP | ||
595 | DP | ||
596 | 0 -58 -58 0 0 58 58 0 4018 3974 5 MP | ||
597 | DP | ||
598 | 0 -58 -58 0 0 58 58 0 4152 3673 5 MP | ||
599 | DP | ||
600 | 0 -58 -58 0 0 58 58 0 4286 4188 5 MP | ||
601 | DP | ||
602 | 0 -58 -58 0 0 58 58 0 4420 4043 5 MP | ||
603 | DP | ||
604 | 0 -58 -58 0 0 58 58 0 5223 4081 5 MP | ||
605 | DP | ||
606 | 0 -58 -58 0 0 58 58 0 5357 4221 5 MP | ||
607 | DP | ||
608 | 0 -58 -58 0 0 58 58 0 5625 4541 5 MP | ||
609 | DP | ||
610 | gs 899 388 5359 4226 rc | ||
611 | |||
612 | gr | ||
613 | 0 sg | ||
614 | 677 2927 mt -90 rotate | ||
615 | (Delta Size Ratio) s | ||
616 | 90 rotate | ||
617 | 3066 4901 mt | ||
618 | (To File Size \(bytes\)) s | ||
619 | gs 899 388 5359 4226 rc | ||
620 | c8 | ||
621 | 267 296 134 613 804 -243 134 -371 134 248 134 726 268 -941 134 404 | ||
622 | 134 -509 134 101 134 28 134 85 134 277 134 -315 133 -209 134 110 | ||
623 | 134 -40 134 188 134 -115 134 37 134 -50 134 -14 134 51 134 18 | ||
624 | 134 5 134 29 134 -14 134 74 939 4085 29 MP stroke | ||
625 | c9 | ||
626 | 268 320 134 140 803 38 134 -145 134 515 134 -301 268 -198 134 468 | ||
627 | 134 -468 134 -69 134 326 134 -207 134 442 134 -247 134 -305 134 339 | ||
628 | 134 -92 134 249 133 -158 134 115 134 -129 134 7 134 105 134 6 | ||
629 | 134 73 134 53 134 -34 134 173 966 3554 29 MP stroke | ||
630 | |||
631 | gr | ||
632 | c9 | ||
633 | 1 sg | ||
634 | 0 710 2338 0 0 -710 3781 1202 4 MP | ||
635 | PP | ||
636 | -2338 0 0 710 2338 0 0 -710 3781 1202 5 MP stroke | ||
637 | DO | ||
638 | 4 w | ||
639 | SO | ||
640 | 6 w | ||
641 | 0 sg | ||
642 | 3781 1202 mt 6119 1202 L | ||
643 | 3781 492 mt 6119 492 L | ||
644 | 3781 1202 mt 3781 492 L | ||
645 | 6119 1202 mt 6119 492 L | ||
646 | 3781 1202 mt 6119 1202 L | ||
647 | 3781 1202 mt 3781 492 L | ||
648 | 3781 1202 mt 6119 1202 L | ||
649 | 3781 492 mt 6119 492 L | ||
650 | 3781 1202 mt 3781 492 L | ||
651 | 6119 1202 mt 6119 492 L | ||
652 | 4584 678 mt | ||
653 | (Vdelta standard deviation) s | ||
654 | gs 3781 492 2339 711 rc | ||
655 | c8 | ||
656 | 429 0 3888 634 2 MP stroke | ||
657 | |||
658 | gr | ||
659 | c8 | ||
660 | 0 sg | ||
661 | 4584 820 mt | ||
662 | (Vdelta mean ) s | ||
663 | gs 3781 492 2339 711 rc | ||
664 | |||
665 | gr | ||
666 | c8 | ||
667 | 36 36 3888 776 FO | ||
668 | 36 36 4317 776 FO | ||
669 | gs 3781 492 2339 711 rc | ||
670 | |||
671 | gr | ||
672 | 0 sg | ||
673 | 4584 962 mt | ||
674 | (Xdelta standard deviation) s | ||
675 | gs 3781 492 2339 711 rc | ||
676 | c9 | ||
677 | 429 0 3888 918 2 MP stroke | ||
678 | |||
679 | gr | ||
680 | c9 | ||
681 | 0 sg | ||
682 | 4584 1104 mt | ||
683 | (Xdelta mean ) s | ||
684 | gs 3781 492 2339 711 rc | ||
685 | |||
686 | gr | ||
687 | 0 -58 -58 0 0 58 58 0 3859 1031 5 MP | ||
688 | c9 | ||
689 | DP | ||
690 | 0 -58 -58 0 0 58 58 0 4288 1031 5 MP | ||
691 | DP | ||
692 | gs 3781 492 2339 711 rc | ||
693 | |||
694 | gr | ||
695 | |||
696 | end | ||
697 | |||
698 | eplot | ||
699 | %%EndObject graph 1 | ||
700 | |||
701 | epage | ||
702 | end | ||
703 | |||
704 | showpage | ||
705 | |||
706 | %%Trailer | ||
707 | %%EOF | ||
diff --git a/xdelta1/doc/old/dcc99/figs/strings.eps b/xdelta1/doc/old/dcc99/figs/strings.eps deleted file mode 100755 index ef2c00a..0000000 --- a/xdelta1/doc/old/dcc99/figs/strings.eps +++ /dev/null | |||
@@ -1,194 +0,0 @@ | |||
1 | %!PS-Adobe-2.0 EPSF-2.0 | ||
2 | %%Title: strings.fig.normalsize | ||
3 | %%Creator: fig2dev Version 3.1 Patchlevel 2 | ||
4 | %%CreationDate: Sun Nov 8 04:04:15 1998 | ||
5 | %%For: jmacd@axis.hip.berkeley.edu (Josh) | ||
6 | %%Orientation: Portrait | ||
7 | %%BoundingBox: 0 0 161 153 | ||
8 | %%Pages: 0 | ||
9 | %%BeginSetup | ||
10 | %%IncludeFeature: *PageSize Letter | ||
11 | %%EndSetup | ||
12 | %Magnification: 1.00 | ||
13 | %%EndComments | ||
14 | /$F2psDict 200 dict def | ||
15 | $F2psDict begin | ||
16 | $F2psDict /mtrx matrix put | ||
17 | /col-1 {0 setgray} bind def | ||
18 | /col0 {0.000 0.000 0.000 srgb} bind def | ||
19 | /col1 {0.000 0.000 1.000 srgb} bind def | ||
20 | /col2 {0.000 1.000 0.000 srgb} bind def | ||
21 | /col3 {0.000 1.000 1.000 srgb} bind def | ||
22 | /col4 {1.000 0.000 0.000 srgb} bind def | ||
23 | /col5 {1.000 0.000 1.000 srgb} bind def | ||
24 | /col6 {1.000 1.000 0.000 srgb} bind def | ||
25 | /col7 {1.000 1.000 1.000 srgb} bind def | ||
26 | /col8 {0.000 0.000 0.560 srgb} bind def | ||
27 | /col9 {0.000 0.000 0.690 srgb} bind def | ||
28 | /col10 {0.000 0.000 0.820 srgb} bind def | ||
29 | /col11 {0.530 0.810 1.000 srgb} bind def | ||
30 | /col12 {0.000 0.560 0.000 srgb} bind def | ||
31 | /col13 {0.000 0.690 0.000 srgb} bind def | ||
32 | /col14 {0.000 0.820 0.000 srgb} bind def | ||
33 | /col15 {0.000 0.560 0.560 srgb} bind def | ||
34 | /col16 {0.000 0.690 0.690 srgb} bind def | ||
35 | /col17 {0.000 0.820 0.820 srgb} bind def | ||
36 | /col18 {0.560 0.000 0.000 srgb} bind def | ||
37 | /col19 {0.690 0.000 0.000 srgb} bind def | ||
38 | /col20 {0.820 0.000 0.000 srgb} bind def | ||
39 | /col21 {0.560 0.000 0.560 srgb} bind def | ||
40 | /col22 {0.690 0.000 0.690 srgb} bind def | ||
41 | /col23 {0.820 0.000 0.820 srgb} bind def | ||
42 | /col24 {0.500 0.190 0.000 srgb} bind def | ||
43 | /col25 {0.630 0.250 0.000 srgb} bind def | ||
44 | /col26 {0.750 0.380 0.000 srgb} bind def | ||
45 | /col27 {1.000 0.500 0.500 srgb} bind def | ||
46 | /col28 {1.000 0.630 0.630 srgb} bind def | ||
47 | /col29 {1.000 0.750 0.750 srgb} bind def | ||
48 | /col30 {1.000 0.880 0.880 srgb} bind def | ||
49 | /col31 {1.000 0.840 0.000 srgb} bind def | ||
50 | |||
51 | end | ||
52 | save | ||
53 | 0.0 155.0 translate | ||
54 | 1 -1 scale | ||
55 | |||
56 | /cp {closepath} bind def | ||
57 | /ef {eofill} bind def | ||
58 | /gr {grestore} bind def | ||
59 | /gs {gsave} bind def | ||
60 | /sa {save} bind def | ||
61 | /rs {restore} bind def | ||
62 | /l {lineto} bind def | ||
63 | /m {moveto} bind def | ||
64 | /rm {rmoveto} bind def | ||
65 | /n {newpath} bind def | ||
66 | /s {stroke} bind def | ||
67 | /sh {show} bind def | ||
68 | /slc {setlinecap} bind def | ||
69 | /slj {setlinejoin} bind def | ||
70 | /slw {setlinewidth} bind def | ||
71 | /srgb {setrgbcolor} bind def | ||
72 | /rot {rotate} bind def | ||
73 | /sc {scale} bind def | ||
74 | /sd {setdash} bind def | ||
75 | /ff {findfont} bind def | ||
76 | /sf {setfont} bind def | ||
77 | /scf {scalefont} bind def | ||
78 | /sw {stringwidth} bind def | ||
79 | /tr {translate} bind def | ||
80 | /tnt {dup dup currentrgbcolor | ||
81 | 4 -2 roll dup 1 exch sub 3 -1 roll mul add | ||
82 | 4 -2 roll dup 1 exch sub 3 -1 roll mul add | ||
83 | 4 -2 roll dup 1 exch sub 3 -1 roll mul add srgb} | ||
84 | bind def | ||
85 | /shd {dup dup currentrgbcolor 4 -2 roll mul 4 -2 roll mul | ||
86 | 4 -2 roll mul srgb} bind def | ||
87 | /$F2psBegin {$F2psDict begin /$F2psEnteredState save def} def | ||
88 | /$F2psEnd {$F2psEnteredState restore end} def | ||
89 | %%EndProlog | ||
90 | |||
91 | $F2psBegin | ||
92 | 10 setmiterlimit | ||
93 | n 0 792 m 0 0 l 612 0 l 612 792 l cp clip | ||
94 | 0.06000 0.06000 sc | ||
95 | /Times-Roman ff 135.00 scf sf | ||
96 | 1579 1135 m | ||
97 | gs 1 -1 sc (DISULPHONE) col-1 sh gr | ||
98 | 7.500 slw | ||
99 | % Polyline | ||
100 | gs clippath | ||
101 | 326 1339 m 262 1233 l 368 1297 l 254 1182 l 211 1225 l cp clip | ||
102 | n 479 1450 m 243 1214 l gs col-1 s gr gr | ||
103 | |||
104 | % arrowhead | ||
105 | n 326 1339 m 262 1233 l 368 1297 l 347 1318 l 326 1339 l cp gs 0.00 setgray ef gr col-1 s | ||
106 | % Polyline | ||
107 | gs clippath | ||
108 | 1690 1768 m 1795 1704 l 1732 1810 l 1847 1696 l 1804 1653 l cp clip | ||
109 | n 1579 1921 m 1815 1685 l gs col-1 s gr gr | ||
110 | |||
111 | % arrowhead | ||
112 | n 1690 1768 m 1795 1704 l 1732 1810 l 1711 1789 l 1690 1768 l cp gs 0.00 setgray ef gr col-1 s | ||
113 | % Polyline | ||
114 | gs clippath | ||
115 | 354 746 m 459 682 l 396 788 l 511 674 l 468 631 l cp clip | ||
116 | n 243 899 m 479 663 l gs col-1 s gr gr | ||
117 | |||
118 | % arrowhead | ||
119 | n 354 746 m 459 682 l 396 788 l 375 767 l 354 746 l cp gs 0.00 setgray ef gr col-1 s | ||
120 | % Polyline | ||
121 | gs clippath | ||
122 | 1741 1339 m 1677 1233 l 1783 1297 l 1669 1182 l 1626 1225 l cp clip | ||
123 | n 1894 1450 m 1658 1214 l gs col-1 s gr gr | ||
124 | |||
125 | % arrowhead | ||
126 | n 1741 1339 m 1677 1233 l 1783 1297 l 1762 1318 l 1741 1339 l cp gs 0.00 setgray ef gr col-1 s | ||
127 | % Polyline | ||
128 | gs clippath | ||
129 | 606 339 m 636 219 l 666 339 l 666 177 l 606 177 l cp clip | ||
130 | n 636 428 m 636 192 l gs col-1 s gr gr | ||
131 | |||
132 | % arrowhead | ||
133 | n 606 339 m 636 219 l 666 339 l 636 339 l 606 339 l cp gs 0.00 setgray ef gr col-1 s | ||
134 | % Polyline | ||
135 | gs clippath | ||
136 | 1078 2275 m 1014 2169 l 1120 2233 l 1006 2118 l 963 2161 l cp clip | ||
137 | n 1231 2386 m 995 2150 l gs col-1 s gr gr | ||
138 | |||
139 | % arrowhead | ||
140 | n 1078 2275 m 1014 2169 l 1120 2233 l 1099 2254 l 1078 2275 l cp gs 0.00 setgray ef gr col-1 s | ||
141 | /Times-Roman ff 135.00 scf sf | ||
142 | 15 1131 m | ||
143 | gs 1 -1 sc (5.) col-1 sh gr | ||
144 | /Times-Roman ff 135.00 scf sf | ||
145 | 1410 1123 m | ||
146 | gs 1 -1 sc (6.) col-1 sh gr | ||
147 | /Times-Roman ff 135.00 scf sf | ||
148 | 381 1607 m | ||
149 | gs 1 -1 sc (3.) col-1 sh gr | ||
150 | /Times-Roman ff 135.00 scf sf | ||
151 | 1725 1607 m | ||
152 | gs 1 -1 sc (4.) col-1 sh gr | ||
153 | /Times-Roman ff 135.00 scf sf | ||
154 | 715 2067 m | ||
155 | gs 1 -1 sc (2.) col-1 sh gr | ||
156 | /Times-Roman ff 135.00 scf sf | ||
157 | 1033 2542 m | ||
158 | gs 1 -1 sc (1.) col-1 sh gr | ||
159 | /Times-Roman ff 135.00 scf sf | ||
160 | 420 585 m | ||
161 | gs 1 -1 sc (7.) col-1 sh gr | ||
162 | /Times-Roman ff 135.00 scf sf | ||
163 | 388 109 m | ||
164 | gs 1 -1 sc (8.) col-1 sh gr | ||
165 | /Times-Roman ff 135.00 scf sf | ||
166 | 557 113 m | ||
167 | gs 1 -1 sc (ESSELENIST) col-1 sh gr | ||
168 | /Times-Roman ff 135.00 scf sf | ||
169 | 557 1607 m | ||
170 | gs 1 -1 sc (DISELENIDE) col-1 sh gr | ||
171 | /Times-Roman ff 135.00 scf sf | ||
172 | 872 2078 m | ||
173 | gs 1 -1 sc (BISULPHIDE) col-1 sh gr | ||
174 | /Times-Roman ff 135.00 scf sf | ||
175 | 1186 2550 m | ||
176 | gs 1 -1 sc (DISULPHIDE) col-1 sh gr | ||
177 | /Times-Roman ff 135.00 scf sf | ||
178 | 164 1135 m | ||
179 | gs 1 -1 sc (ESSELENIAN) col-1 sh gr | ||
180 | /Times-Roman ff 135.00 scf sf | ||
181 | 1894 1607 m | ||
182 | gs 1 -1 sc (DISULPHINE) col-1 sh gr | ||
183 | /Times-Roman ff 135.00 scf sf | ||
184 | 557 585 m | ||
185 | gs 1 -1 sc (TROEZENIAN) col-1 sh gr | ||
186 | % Polyline | ||
187 | gs clippath | ||
188 | 719 1810 m 655 1704 l 761 1768 l 647 1653 l 604 1696 l cp clip | ||
189 | n 872 1921 m 636 1685 l gs col-1 s gr gr | ||
190 | |||
191 | % arrowhead | ||
192 | n 719 1810 m 655 1704 l 761 1768 l 740 1789 l 719 1810 l cp gs 0.00 setgray ef gr col-1 s | ||
193 | $F2psEnd | ||
194 | rs | ||
diff --git a/xdelta1/doc/old/dcc99/figs/strings.fig b/xdelta1/doc/old/dcc99/figs/strings.fig deleted file mode 100755 index f8c8fb0..0000000 --- a/xdelta1/doc/old/dcc99/figs/strings.fig +++ /dev/null | |||
@@ -1,36 +0,0 @@ | |||
1 | #FIG 3.1 | ||
2 | Portrait | ||
3 | Center | ||
4 | Inches | ||
5 | 1200 2 | ||
6 | 6 0 0 2658 2700 | ||
7 | 2 1 0 1 -1 7 0 0 -1 0.000 0 0 -1 1 0 2 | ||
8 | 0 0 1.00 60.00 120.00 | ||
9 | 1088 2533 837 2281 | ||
10 | 2 1 0 1 -1 7 0 0 -1 0.000 0 0 -1 1 0 2 | ||
11 | 1 1 1.00 60.00 120.00 | ||
12 | 753 2030 502 1779 | ||
13 | 2 1 0 1 -1 7 0 0 -1 0.000 0 0 -1 1 0 2 | ||
14 | 1 1 1.00 60.00 120.00 | ||
15 | 335 1528 84 1277 | ||
16 | 2 1 0 1 -1 7 0 0 -1 0.000 0 0 -1 1 0 2 | ||
17 | 1 1 1.00 60.00 120.00 | ||
18 | 1507 2030 1758 1779 | ||
19 | 2 1 0 1 -1 7 0 0 -1 0.000 0 0 -1 1 0 2 | ||
20 | 1 1 1.00 60.00 120.00 | ||
21 | 84 942 335 691 | ||
22 | 2 1 0 1 -1 7 0 0 -1 0.000 0 0 -1 1 0 2 | ||
23 | 1 1 1.00 60.00 120.00 | ||
24 | 1842 1528 1591 1277 | ||
25 | 2 1 0 1 -1 7 0 0 -1 0.000 0 0 -1 1 0 2 | ||
26 | 1 1 1.00 60.00 120.00 | ||
27 | 502 440 502 188 | ||
28 | 4 0 -1 0 0 0 9 0.0000 0 96 791 419 105 ESSELENIST\001 | ||
29 | 4 0 -1 0 0 0 9 0.0000 0 96 804 419 1695 DISELENIDE\001 | ||
30 | 4 0 -1 0 0 0 9 0.0000 0 96 804 753 2198 BISULPHIDE\001 | ||
31 | 4 0 -1 0 0 0 9 0.0000 0 96 812 1088 2700 DISULPHIDE\001 | ||
32 | 4 0 -1 0 0 0 9 0.0000 0 96 833 0 1193 ESSELENIAN\001 | ||
33 | 4 0 -1 0 0 0 9 0.0000 0 96 812 1842 1695 DISULPHINE\001 | ||
34 | 4 0 -1 0 0 0 9 0.0000 0 96 875 419 607 TROEZENIAN\001 | ||
35 | 4 0 -1 0 0 0 9 0.0000 0 96 866 1507 1193 DISULPHONE\001 | ||
36 | -6 | ||
diff --git a/xdelta1/doc/old/dcc99/figs/strings.fig.normalsize b/xdelta1/doc/old/dcc99/figs/strings.fig.normalsize deleted file mode 100755 index 175f721..0000000 --- a/xdelta1/doc/old/dcc99/figs/strings.fig.normalsize +++ /dev/null | |||
@@ -1,42 +0,0 @@ | |||
1 | #FIG 3.1 | ||
2 | Portrait | ||
3 | Center | ||
4 | Inches | ||
5 | 1200 2 | ||
6 | 2 1 0 1 -1 7 0 0 -1 0.000 0 0 -1 1 0 2 | ||
7 | 1 1 1.00 60.00 120.00 | ||
8 | 872 1921 636 1685 | ||
9 | 2 1 0 1 -1 7 0 0 -1 0.000 0 0 -1 1 0 2 | ||
10 | 1 1 1.00 60.00 120.00 | ||
11 | 479 1450 243 1214 | ||
12 | 2 1 0 1 -1 7 0 0 -1 0.000 0 0 -1 1 0 2 | ||
13 | 1 1 1.00 60.00 120.00 | ||
14 | 1579 1921 1815 1685 | ||
15 | 2 1 0 1 -1 7 0 0 -1 0.000 0 0 -1 1 0 2 | ||
16 | 1 1 1.00 60.00 120.00 | ||
17 | 243 899 479 663 | ||
18 | 2 1 0 1 -1 7 0 0 -1 0.000 0 0 -1 1 0 2 | ||
19 | 1 1 1.00 60.00 120.00 | ||
20 | 1894 1450 1658 1214 | ||
21 | 2 1 0 1 -1 7 0 0 -1 0.000 0 0 -1 1 0 2 | ||
22 | 1 1 1.00 60.00 120.00 | ||
23 | 636 428 636 192 | ||
24 | 2 1 0 1 -1 7 0 0 -1 0.000 0 0 -1 1 0 2 | ||
25 | 1 1 1.00 60.00 120.00 | ||
26 | 1231 2386 995 2150 | ||
27 | 4 0 -1 0 0 0 9 0.0000 0 90 94 15 1131 5.\001 | ||
28 | 4 0 -1 0 0 0 9 0.0000 0 90 94 1410 1123 6.\001 | ||
29 | 4 0 -1 0 0 0 9 0.0000 0 90 94 381 1607 3.\001 | ||
30 | 4 0 -1 0 0 0 9 0.0000 0 90 94 1725 1607 4.\001 | ||
31 | 4 0 -1 0 0 0 9 0.0000 0 90 94 715 2067 2.\001 | ||
32 | 4 0 -1 0 0 0 9 0.0000 0 90 94 1033 2542 1.\001 | ||
33 | 4 0 -1 0 0 0 9 0.0000 0 90 94 420 585 7.\001 | ||
34 | 4 0 -1 0 0 0 9 0.0000 0 90 94 388 109 8.\001 | ||
35 | 4 0 -1 0 0 0 9 0.0000 0 90 743 557 113 ESSELENIST\001 | ||
36 | 4 0 -1 0 0 0 9 0.0000 0 90 755 557 1607 DISELENIDE\001 | ||
37 | 4 0 -1 0 0 0 9 0.0000 0 90 755 872 2078 BISULPHIDE\001 | ||
38 | 4 0 -1 0 0 0 9 0.0000 0 90 762 1186 2550 DISULPHIDE\001 | ||
39 | 4 0 -1 0 0 0 9 0.0000 0 90 782 164 1135 ESSELENIAN\001 | ||
40 | 4 0 -1 0 0 0 9 0.0000 0 90 762 1894 1607 DISULPHINE\001 | ||
41 | 4 0 -1 0 0 0 9 0.0000 0 90 821 557 585 TROEZENIAN\001 | ||
42 | 4 0 -1 0 0 0 9 0.0000 0 90 814 1579 1135 DISULPHONE\001 | ||
diff --git a/xdelta1/doc/old/dcc99/figs/strings.fig.normalsize.eps b/xdelta1/doc/old/dcc99/figs/strings.fig.normalsize.eps deleted file mode 100755 index dcd9f79..0000000 --- a/xdelta1/doc/old/dcc99/figs/strings.fig.normalsize.eps +++ /dev/null | |||
@@ -1,194 +0,0 @@ | |||
1 | %!PS-Adobe-2.0 EPSF-2.0 | ||
2 | %%Title: strings.fig.normalsize | ||
3 | %%Creator: fig2dev Version 3.1 Patchlevel 2 | ||
4 | %%CreationDate: Sun Nov 8 04:02:56 1998 | ||
5 | %%For: jmacd@axis.hip.berkeley.edu (Josh) | ||
6 | %%Orientation: Portrait | ||
7 | %%BoundingBox: 0 0 161 153 | ||
8 | %%Pages: 0 | ||
9 | %%BeginSetup | ||
10 | %%IncludeFeature: *PageSize Letter | ||
11 | %%EndSetup | ||
12 | %Magnification: 1.00 | ||
13 | %%EndComments | ||
14 | /$F2psDict 200 dict def | ||
15 | $F2psDict begin | ||
16 | $F2psDict /mtrx matrix put | ||
17 | /col-1 {0 setgray} bind def | ||
18 | /col0 {0.000 0.000 0.000 srgb} bind def | ||
19 | /col1 {0.000 0.000 1.000 srgb} bind def | ||
20 | /col2 {0.000 1.000 0.000 srgb} bind def | ||
21 | /col3 {0.000 1.000 1.000 srgb} bind def | ||
22 | /col4 {1.000 0.000 0.000 srgb} bind def | ||
23 | /col5 {1.000 0.000 1.000 srgb} bind def | ||
24 | /col6 {1.000 1.000 0.000 srgb} bind def | ||
25 | /col7 {1.000 1.000 1.000 srgb} bind def | ||
26 | /col8 {0.000 0.000 0.560 srgb} bind def | ||
27 | /col9 {0.000 0.000 0.690 srgb} bind def | ||
28 | /col10 {0.000 0.000 0.820 srgb} bind def | ||
29 | /col11 {0.530 0.810 1.000 srgb} bind def | ||
30 | /col12 {0.000 0.560 0.000 srgb} bind def | ||
31 | /col13 {0.000 0.690 0.000 srgb} bind def | ||
32 | /col14 {0.000 0.820 0.000 srgb} bind def | ||
33 | /col15 {0.000 0.560 0.560 srgb} bind def | ||
34 | /col16 {0.000 0.690 0.690 srgb} bind def | ||
35 | /col17 {0.000 0.820 0.820 srgb} bind def | ||
36 | /col18 {0.560 0.000 0.000 srgb} bind def | ||
37 | /col19 {0.690 0.000 0.000 srgb} bind def | ||
38 | /col20 {0.820 0.000 0.000 srgb} bind def | ||
39 | /col21 {0.560 0.000 0.560 srgb} bind def | ||
40 | /col22 {0.690 0.000 0.690 srgb} bind def | ||
41 | /col23 {0.820 0.000 0.820 srgb} bind def | ||
42 | /col24 {0.500 0.190 0.000 srgb} bind def | ||
43 | /col25 {0.630 0.250 0.000 srgb} bind def | ||
44 | /col26 {0.750 0.380 0.000 srgb} bind def | ||
45 | /col27 {1.000 0.500 0.500 srgb} bind def | ||
46 | /col28 {1.000 0.630 0.630 srgb} bind def | ||
47 | /col29 {1.000 0.750 0.750 srgb} bind def | ||
48 | /col30 {1.000 0.880 0.880 srgb} bind def | ||
49 | /col31 {1.000 0.840 0.000 srgb} bind def | ||
50 | |||
51 | end | ||
52 | save | ||
53 | 0.0 155.0 translate | ||
54 | 1 -1 scale | ||
55 | |||
56 | /cp {closepath} bind def | ||
57 | /ef {eofill} bind def | ||
58 | /gr {grestore} bind def | ||
59 | /gs {gsave} bind def | ||
60 | /sa {save} bind def | ||
61 | /rs {restore} bind def | ||
62 | /l {lineto} bind def | ||
63 | /m {moveto} bind def | ||
64 | /rm {rmoveto} bind def | ||
65 | /n {newpath} bind def | ||
66 | /s {stroke} bind def | ||
67 | /sh {show} bind def | ||
68 | /slc {setlinecap} bind def | ||
69 | /slj {setlinejoin} bind def | ||
70 | /slw {setlinewidth} bind def | ||
71 | /srgb {setrgbcolor} bind def | ||
72 | /rot {rotate} bind def | ||
73 | /sc {scale} bind def | ||
74 | /sd {setdash} bind def | ||
75 | /ff {findfont} bind def | ||
76 | /sf {setfont} bind def | ||
77 | /scf {scalefont} bind def | ||
78 | /sw {stringwidth} bind def | ||
79 | /tr {translate} bind def | ||
80 | /tnt {dup dup currentrgbcolor | ||
81 | 4 -2 roll dup 1 exch sub 3 -1 roll mul add | ||
82 | 4 -2 roll dup 1 exch sub 3 -1 roll mul add | ||
83 | 4 -2 roll dup 1 exch sub 3 -1 roll mul add srgb} | ||
84 | bind def | ||
85 | /shd {dup dup currentrgbcolor 4 -2 roll mul 4 -2 roll mul | ||
86 | 4 -2 roll mul srgb} bind def | ||
87 | /$F2psBegin {$F2psDict begin /$F2psEnteredState save def} def | ||
88 | /$F2psEnd {$F2psEnteredState restore end} def | ||
89 | %%EndProlog | ||
90 | |||
91 | $F2psBegin | ||
92 | 10 setmiterlimit | ||
93 | n 0 792 m 0 0 l 612 0 l 612 792 l cp clip | ||
94 | 0.06000 0.06000 sc | ||
95 | /Times-Roman ff 135.00 scf sf | ||
96 | 388 109 m | ||
97 | gs 1 -1 sc (8.) col-1 sh gr | ||
98 | 7.500 slw | ||
99 | % Polyline | ||
100 | gs clippath | ||
101 | 719 1810 m 655 1704 l 761 1768 l 647 1653 l 604 1696 l cp clip | ||
102 | n 872 1921 m 636 1685 l gs col-1 s gr gr | ||
103 | |||
104 | % arrowhead | ||
105 | n 719 1810 m 655 1704 l 761 1768 l 740 1789 l 719 1810 l cp gs 0.00 setgray ef gr col-1 s | ||
106 | % Polyline | ||
107 | gs clippath | ||
108 | 326 1339 m 262 1233 l 368 1297 l 254 1182 l 211 1225 l cp clip | ||
109 | n 479 1450 m 243 1214 l gs col-1 s gr gr | ||
110 | |||
111 | % arrowhead | ||
112 | n 326 1339 m 262 1233 l 368 1297 l 347 1318 l 326 1339 l cp gs 0.00 setgray ef gr col-1 s | ||
113 | % Polyline | ||
114 | gs clippath | ||
115 | 1690 1768 m 1795 1704 l 1732 1810 l 1847 1696 l 1804 1653 l cp clip | ||
116 | n 1579 1921 m 1815 1685 l gs col-1 s gr gr | ||
117 | |||
118 | % arrowhead | ||
119 | n 1690 1768 m 1795 1704 l 1732 1810 l 1711 1789 l 1690 1768 l cp gs 0.00 setgray ef gr col-1 s | ||
120 | % Polyline | ||
121 | gs clippath | ||
122 | 354 746 m 459 682 l 396 788 l 511 674 l 468 631 l cp clip | ||
123 | n 243 899 m 479 663 l gs col-1 s gr gr | ||
124 | |||
125 | % arrowhead | ||
126 | n 354 746 m 459 682 l 396 788 l 375 767 l 354 746 l cp gs 0.00 setgray ef gr col-1 s | ||
127 | % Polyline | ||
128 | gs clippath | ||
129 | 1741 1339 m 1677 1233 l 1783 1297 l 1669 1182 l 1626 1225 l cp clip | ||
130 | n 1894 1450 m 1658 1214 l gs col-1 s gr gr | ||
131 | |||
132 | % arrowhead | ||
133 | n 1741 1339 m 1677 1233 l 1783 1297 l 1762 1318 l 1741 1339 l cp gs 0.00 setgray ef gr col-1 s | ||
134 | % Polyline | ||
135 | gs clippath | ||
136 | 606 339 m 636 219 l 666 339 l 666 177 l 606 177 l cp clip | ||
137 | n 636 428 m 636 192 l gs col-1 s gr gr | ||
138 | |||
139 | % arrowhead | ||
140 | n 606 339 m 636 219 l 666 339 l 636 339 l 606 339 l cp gs 0.00 setgray ef gr col-1 s | ||
141 | /Times-Roman ff 135.00 scf sf | ||
142 | 557 113 m | ||
143 | gs 1 -1 sc (ESSELENIST) col-1 sh gr | ||
144 | /Times-Roman ff 135.00 scf sf | ||
145 | 557 1607 m | ||
146 | gs 1 -1 sc (DISELENIDE) col-1 sh gr | ||
147 | /Times-Roman ff 135.00 scf sf | ||
148 | 872 2078 m | ||
149 | gs 1 -1 sc (BISULPHIDE) col-1 sh gr | ||
150 | /Times-Roman ff 135.00 scf sf | ||
151 | 1186 2550 m | ||
152 | gs 1 -1 sc (DISULPHIDE) col-1 sh gr | ||
153 | /Times-Roman ff 135.00 scf sf | ||
154 | 164 1135 m | ||
155 | gs 1 -1 sc (ESSELENIAN) col-1 sh gr | ||
156 | /Times-Roman ff 135.00 scf sf | ||
157 | 1894 1607 m | ||
158 | gs 1 -1 sc (DISULPHINE) col-1 sh gr | ||
159 | /Times-Roman ff 135.00 scf sf | ||
160 | 557 585 m | ||
161 | gs 1 -1 sc (TROEZENIAN) col-1 sh gr | ||
162 | /Times-Roman ff 135.00 scf sf | ||
163 | 1579 1135 m | ||
164 | gs 1 -1 sc (DISULPHONE) col-1 sh gr | ||
165 | /Times-Roman ff 135.00 scf sf | ||
166 | 15 1131 m | ||
167 | gs 1 -1 sc (5.) col-1 sh gr | ||
168 | /Times-Roman ff 135.00 scf sf | ||
169 | 1410 1123 m | ||
170 | gs 1 -1 sc (6.) col-1 sh gr | ||
171 | /Times-Roman ff 135.00 scf sf | ||
172 | 381 1607 m | ||
173 | gs 1 -1 sc (3.) col-1 sh gr | ||
174 | /Times-Roman ff 135.00 scf sf | ||
175 | 1725 1607 m | ||
176 | gs 1 -1 sc (4.) col-1 sh gr | ||
177 | /Times-Roman ff 135.00 scf sf | ||
178 | 715 2067 m | ||
179 | gs 1 -1 sc (2.) col-1 sh gr | ||
180 | /Times-Roman ff 135.00 scf sf | ||
181 | 1033 2542 m | ||
182 | gs 1 -1 sc (1.) col-1 sh gr | ||
183 | /Times-Roman ff 135.00 scf sf | ||
184 | 420 585 m | ||
185 | gs 1 -1 sc (7.) col-1 sh gr | ||
186 | % Polyline | ||
187 | gs clippath | ||
188 | 1033 2282 m 969 2176 l 1075 2240 l 961 2125 l 918 2168 l cp clip | ||
189 | n 1186 2393 m 950 2157 l gs col-1 s gr gr | ||
190 | |||
191 | % arrowhead | ||
192 | n 1033 2282 m 969 2176 l 1075 2240 l col-1 s | ||
193 | $F2psEnd | ||
194 | rs | ||
diff --git a/xdelta1/doc/old/dcc99/figs/xdarchive.eps b/xdelta1/doc/old/dcc99/figs/xdarchive.eps deleted file mode 100755 index 5d70278..0000000 --- a/xdelta1/doc/old/dcc99/figs/xdarchive.eps +++ /dev/null | |||
@@ -1,808 +0,0 @@ | |||
1 | %!PS-Adobe-2.0 EPSF-2.0 | ||
2 | %%Title: xdarchive.fig | ||
3 | %%Creator: fig2dev Version 3.1 Patchlevel 2 | ||
4 | %%CreationDate: Sat Nov 7 02:45:24 1998 | ||
5 | %%For: jmacd@axis.hip.berkeley.edu (Josh) | ||
6 | %%Orientation: Portrait | ||
7 | %%BoundingBox: 0 0 285 182 | ||
8 | %%Pages: 0 | ||
9 | %%BeginSetup | ||
10 | %%IncludeFeature: *PageSize Letter | ||
11 | %%EndSetup | ||
12 | %Magnification: 1.00 | ||
13 | %%EndComments | ||
14 | /MyAppDict 100 dict dup begin def | ||
15 | /$F2psDict 200 dict def | ||
16 | $F2psDict begin | ||
17 | $F2psDict /mtrx matrix put | ||
18 | /col-1 {0 setgray} bind def | ||
19 | /col0 {0.000 0.000 0.000 srgb} bind def | ||
20 | /col1 {0.000 0.000 1.000 srgb} bind def | ||
21 | /col2 {0.000 1.000 0.000 srgb} bind def | ||
22 | /col3 {0.000 1.000 1.000 srgb} bind def | ||
23 | /col4 {1.000 0.000 0.000 srgb} bind def | ||
24 | /col5 {1.000 0.000 1.000 srgb} bind def | ||
25 | /col6 {1.000 1.000 0.000 srgb} bind def | ||
26 | /col7 {1.000 1.000 1.000 srgb} bind def | ||
27 | /col8 {0.000 0.000 0.560 srgb} bind def | ||
28 | /col9 {0.000 0.000 0.690 srgb} bind def | ||
29 | /col10 {0.000 0.000 0.820 srgb} bind def | ||
30 | /col11 {0.530 0.810 1.000 srgb} bind def | ||
31 | /col12 {0.000 0.560 0.000 srgb} bind def | ||
32 | /col13 {0.000 0.690 0.000 srgb} bind def | ||
33 | /col14 {0.000 0.820 0.000 srgb} bind def | ||
34 | /col15 {0.000 0.560 0.560 srgb} bind def | ||
35 | /col16 {0.000 0.690 0.690 srgb} bind def | ||
36 | /col17 {0.000 0.820 0.820 srgb} bind def | ||
37 | /col18 {0.560 0.000 0.000 srgb} bind def | ||
38 | /col19 {0.690 0.000 0.000 srgb} bind def | ||
39 | /col20 {0.820 0.000 0.000 srgb} bind def | ||
40 | /col21 {0.560 0.000 0.560 srgb} bind def | ||
41 | /col22 {0.690 0.000 0.690 srgb} bind def | ||
42 | /col23 {0.820 0.000 0.820 srgb} bind def | ||
43 | /col24 {0.500 0.190 0.000 srgb} bind def | ||
44 | /col25 {0.630 0.250 0.000 srgb} bind def | ||
45 | /col26 {0.750 0.380 0.000 srgb} bind def | ||
46 | /col27 {1.000 0.500 0.500 srgb} bind def | ||
47 | /col28 {1.000 0.630 0.630 srgb} bind def | ||
48 | /col29 {1.000 0.750 0.750 srgb} bind def | ||
49 | /col30 {1.000 0.880 0.880 srgb} bind def | ||
50 | /col31 {1.000 0.840 0.000 srgb} bind def | ||
51 | |||
52 | end | ||
53 | save | ||
54 | 0.0 184.0 translate | ||
55 | 1 -1 scale | ||
56 | .9 .9 scale % to make patterns same scale as in xfig | ||
57 | |||
58 | % This junk string is used by the show operators | ||
59 | /PATsstr 1 string def | ||
60 | /PATawidthshow { % cx cy cchar rx ry string | ||
61 | % Loop over each character in the string | ||
62 | { % cx cy cchar rx ry char | ||
63 | % Show the character | ||
64 | dup % cx cy cchar rx ry char char | ||
65 | PATsstr dup 0 4 -1 roll put % cx cy cchar rx ry char (char) | ||
66 | false charpath % cx cy cchar rx ry char | ||
67 | /clip load PATdraw | ||
68 | % Move past the character (charpath modified the | ||
69 | % current point) | ||
70 | currentpoint % cx cy cchar rx ry char x y | ||
71 | newpath | ||
72 | moveto % cx cy cchar rx ry char | ||
73 | % Reposition by cx,cy if the character in the string is cchar | ||
74 | 3 index eq { % cx cy cchar rx ry | ||
75 | 4 index 4 index rmoveto | ||
76 | } if | ||
77 | % Reposition all characters by rx ry | ||
78 | 2 copy rmoveto % cx cy cchar rx ry | ||
79 | } forall | ||
80 | pop pop pop pop pop % - | ||
81 | currentpoint | ||
82 | newpath | ||
83 | moveto | ||
84 | } bind def | ||
85 | /PATcg { | ||
86 | 7 dict dup begin | ||
87 | /lw currentlinewidth def | ||
88 | /lc currentlinecap def | ||
89 | /lj currentlinejoin def | ||
90 | /ml currentmiterlimit def | ||
91 | /ds [ currentdash ] def | ||
92 | /cc [ currentrgbcolor ] def | ||
93 | /cm matrix currentmatrix def | ||
94 | end | ||
95 | } bind def | ||
96 | % PATdraw - calculates the boundaries of the object and | ||
97 | % fills it with the current pattern | ||
98 | /PATdraw { % proc | ||
99 | save exch | ||
100 | PATpcalc % proc nw nh px py | ||
101 | 5 -1 roll exec % nw nh px py | ||
102 | newpath | ||
103 | PATfill % - | ||
104 | restore | ||
105 | } bind def | ||
106 | % PATfill - performs the tiling for the shape | ||
107 | /PATfill { % nw nh px py PATfill - | ||
108 | PATDict /CurrentPattern get dup begin | ||
109 | setfont | ||
110 | % Set the coordinate system to Pattern Space | ||
111 | PatternGState PATsg | ||
112 | % Set the color for uncolored pattezns | ||
113 | PaintType 2 eq { PATDict /PColor get PATsc } if | ||
114 | % Create the string for showing | ||
115 | 3 index string % nw nh px py str | ||
116 | % Loop for each of the pattern sources | ||
117 | 0 1 Multi 1 sub { % nw nh px py str source | ||
118 | % Move to the starting location | ||
119 | 3 index 3 index % nw nh px py str source px py | ||
120 | moveto % nw nh px py str source | ||
121 | % For multiple sources, set the appropriate color | ||
122 | Multi 1 ne { dup PC exch get PATsc } if | ||
123 | % Set the appropriate string for the source | ||
124 | 0 1 7 index 1 sub { 2 index exch 2 index put } for pop | ||
125 | % Loop over the number of vertical cells | ||
126 | 3 index % nw nh px py str nh | ||
127 | { % nw nh px py str | ||
128 | currentpoint % nw nh px py str cx cy | ||
129 | 2 index show % nw nh px py str cx cy | ||
130 | YStep add moveto % nw nh px py str | ||
131 | } repeat % nw nh px py str | ||
132 | } for | ||
133 | 5 { pop } repeat | ||
134 | end | ||
135 | } bind def | ||
136 | |||
137 | % PATkshow - kshow with the current pattezn | ||
138 | /PATkshow { % proc string | ||
139 | exch bind % string proc | ||
140 | 1 index 0 get % string proc char | ||
141 | % Loop over all but the last character in the string | ||
142 | 0 1 4 index length 2 sub { | ||
143 | % string proc char idx | ||
144 | % Find the n+1th character in the string | ||
145 | 3 index exch 1 add get % string proe char char+1 | ||
146 | exch 2 copy % strinq proc char+1 char char+1 char | ||
147 | % Now show the nth character | ||
148 | PATsstr dup 0 4 -1 roll put % string proc chr+1 chr chr+1 (chr) | ||
149 | false charpath % string proc char+1 char char+1 | ||
150 | /clip load PATdraw | ||
151 | % Move past the character (charpath modified the current point) | ||
152 | currentpoint newpath moveto | ||
153 | % Execute the user proc (should consume char and char+1) | ||
154 | mark 3 1 roll % string proc char+1 mark char char+1 | ||
155 | 4 index exec % string proc char+1 mark... | ||
156 | cleartomark % string proc char+1 | ||
157 | } for | ||
158 | % Now display the last character | ||
159 | PATsstr dup 0 4 -1 roll put % string proc (char+1) | ||
160 | false charpath % string proc | ||
161 | /clip load PATdraw | ||
162 | neewath | ||
163 | pop pop % - | ||
164 | } bind def | ||
165 | % PATmp - the makepattern equivalent | ||
166 | /PATmp { % patdict patmtx PATmp patinstance | ||
167 | exch dup length 7 add % We will add 6 new entries plus 1 FID | ||
168 | dict copy % Create a new dictionary | ||
169 | begin | ||
170 | % Matrix to install when painting the pattern | ||
171 | TilingType PATtcalc | ||
172 | /PatternGState PATcg def | ||
173 | PatternGState /cm 3 -1 roll put | ||
174 | % Check for multi pattern sources (Level 1 fast color patterns) | ||
175 | currentdict /Multi known not { /Multi 1 def } if | ||
176 | % Font dictionary definitions | ||
177 | /FontType 3 def | ||
178 | % Create a dummy encoding vector | ||
179 | /Encoding 256 array def | ||
180 | 3 string 0 1 255 { | ||
181 | Encoding exch dup 3 index cvs cvn put } for pop | ||
182 | /FontMatrix matrix def | ||
183 | /FontBBox BBox def | ||
184 | /BuildChar { | ||
185 | mark 3 1 roll % mark dict char | ||
186 | exch begin | ||
187 | Multi 1 ne {PaintData exch get}{pop} ifelse % mark [paintdata] | ||
188 | PaintType 2 eq Multi 1 ne or | ||
189 | { XStep 0 FontBBox aload pop setcachedevice } | ||
190 | { XStep 0 setcharwidth } ifelse | ||
191 | currentdict % mark [paintdata] dict | ||
192 | /PaintProc load % mark [paintdata] dict paintproc | ||
193 | end | ||
194 | gsave | ||
195 | false PATredef exec true PATredef | ||
196 | grestore | ||
197 | cleartomark % - | ||
198 | } bind def | ||
199 | currentdict | ||
200 | end % newdict | ||
201 | /foo exch % /foo newlict | ||
202 | definefont % newfont | ||
203 | } bind def | ||
204 | % PATpcalc - calculates the starting point and width/height | ||
205 | % of the tile fill for the shape | ||
206 | /PATpcalc { % - PATpcalc nw nh px py | ||
207 | PATDict /CurrentPattern get begin | ||
208 | gsave | ||
209 | % Set up the coordinate system to Pattern Space | ||
210 | % and lock down pattern | ||
211 | PatternGState /cm get setmatrix | ||
212 | BBox aload pop pop pop translate | ||
213 | % Determine the bounding box of the shape | ||
214 | pathbbox % llx lly urx ury | ||
215 | grestore | ||
216 | % Determine (nw, nh) the # of cells to paint width and height | ||
217 | PatHeight div ceiling % llx lly urx qh | ||
218 | 4 1 roll % qh llx lly urx | ||
219 | PatWidth div ceiling % qh llx lly qw | ||
220 | 4 1 roll % qw qh llx lly | ||
221 | PatHeight div floor % qw qh llx ph | ||
222 | 4 1 roll % ph qw qh llx | ||
223 | PatWidth div floor % ph qw qh pw | ||
224 | 4 1 roll % pw ph qw qh | ||
225 | 2 index sub cvi abs % pw ph qs qh-ph | ||
226 | exch 3 index sub cvi abs exch % pw ph nw=qw-pw nh=qh-ph | ||
227 | % Determine the starting point of the pattern fill | ||
228 | %(px, py) | ||
229 | 4 2 roll % nw nh pw ph | ||
230 | PatHeight mul % nw nh pw py | ||
231 | exch % nw nh py pw | ||
232 | PatWidth mul exch % nw nh px py | ||
233 | end | ||
234 | } bind def | ||
235 | |||
236 | % Save the original routines so that we can use them later on | ||
237 | /oldfill /fill load def | ||
238 | /oldeofill /eofill load def | ||
239 | /oldstroke /stroke load def | ||
240 | /oldshow /show load def | ||
241 | /oldashow /ashow load def | ||
242 | /oldwidthshow /widthshow load def | ||
243 | /oldawidthshow /awidthshow load def | ||
244 | /oldkshow /kshow load def | ||
245 | |||
246 | % These defs are necessary so that subsequent procs don't bind in | ||
247 | % the originals | ||
248 | /fill { oldfill } bind def | ||
249 | /eofill { oldeofill } bind def | ||
250 | /stroke { oldstroke } bind def | ||
251 | /show { oldshow } bind def | ||
252 | /ashow { oldashow } bind def | ||
253 | /widthshow { oldwidthshow } bind def | ||
254 | /awidthshow { oldawidthshow } bind def | ||
255 | /kshow { oldkshow } bind def | ||
256 | /PATredef { | ||
257 | MyAppDict begin | ||
258 | { | ||
259 | /fill { /clip load PATdraw newpath } bind def | ||
260 | /eofill { /eoclip load PATdraw newpath } bind def | ||
261 | /stroke { PATstroke } bind def | ||
262 | /show { 0 0 null 0 0 6 -1 roll PATawidthshow } bind def | ||
263 | /ashow { 0 0 null 6 3 roll PATawidthshow } | ||
264 | bind def | ||
265 | /widthshow { 0 0 3 -1 roll PATawidthshow } | ||
266 | bind def | ||
267 | /awidthshow { PATawidthshow } bind def | ||
268 | /kshow { PATkshow } bind def | ||
269 | } { | ||
270 | /fill { oldfill } bind def | ||
271 | /eofill { oldeofill } bind def | ||
272 | /stroke { oldstroke } bind def | ||
273 | /show { oldshow } bind def | ||
274 | /ashow { oldashow } bind def | ||
275 | /widthshow { oldwidthshow } bind def | ||
276 | /awidthshow { oldawidthshow } bind def | ||
277 | /kshow { oldkshow } bind def | ||
278 | } ifelse | ||
279 | end | ||
280 | } bind def | ||
281 | false PATredef | ||
282 | % Conditionally define setcmykcolor if not available | ||
283 | /setcmykcolor where { pop } { | ||
284 | /setcmykcolor { | ||
285 | 1 sub 4 1 roll | ||
286 | 3 { | ||
287 | 3 index add neg dup 0 lt { pop 0 } if 3 1 roll | ||
288 | } repeat | ||
289 | setrgbcolor - pop | ||
290 | } bind def | ||
291 | } ifelse | ||
292 | /PATsc { % colorarray | ||
293 | aload length % c1 ... cn length | ||
294 | dup 1 eq { pop setgray } { 3 eq { setrgbcolor } { setcmykcolor | ||
295 | } ifelse } ifelse | ||
296 | } bind def | ||
297 | /PATsg { % dict | ||
298 | begin | ||
299 | lw setlinewidth | ||
300 | lc setlinecap | ||
301 | lj setlinejoin | ||
302 | ml setmiterlimit | ||
303 | ds aload pop setdash | ||
304 | cc aload pop setrgbcolor | ||
305 | cm setmatrix | ||
306 | end | ||
307 | } bind def | ||
308 | |||
309 | /PATDict 3 dict def | ||
310 | /PATsp { | ||
311 | true PATredef | ||
312 | PATDict begin | ||
313 | /CurrentPattern exch def | ||
314 | % If it's an uncolored pattern, save the color | ||
315 | CurrentPattern /PaintType get 2 eq { | ||
316 | /PColor exch def | ||
317 | } if | ||
318 | /CColor [ currentrgbcolor ] def | ||
319 | end | ||
320 | } bind def | ||
321 | % PATstroke - stroke with the current pattern | ||
322 | /PATstroke { | ||
323 | countdictstack | ||
324 | save | ||
325 | mark | ||
326 | { | ||
327 | currentpoint strokepath moveto | ||
328 | PATpcalc % proc nw nh px py | ||
329 | clip newpath PATfill | ||
330 | } stopped { | ||
331 | (*** PATstroke Warning: Path is too complex, stroking | ||
332 | with gray) = | ||
333 | cleartomark | ||
334 | restore | ||
335 | countdictstack exch sub dup 0 gt | ||
336 | { { end } repeat } { pop } ifelse | ||
337 | gsave 0.5 setgray oldstroke grestore | ||
338 | } { pop restore pop } ifelse | ||
339 | newpath | ||
340 | } bind def | ||
341 | /PATtcalc { % modmtx tilingtype PATtcalc tilematrix | ||
342 | % Note: tiling types 2 and 3 are not supported | ||
343 | gsave | ||
344 | exch concat % tilingtype | ||
345 | matrix currentmatrix exch % cmtx tilingtype | ||
346 | % Tiling type 1 and 3: constant spacing | ||
347 | 2 ne { | ||
348 | % Distort the pattern so that it occupies | ||
349 | % an integral number of device pixels | ||
350 | dup 4 get exch dup 5 get exch % tx ty cmtx | ||
351 | XStep 0 dtransform | ||
352 | round exch round exch % tx ty cmtx dx.x dx.y | ||
353 | XStep div exch XStep div exch % tx ty cmtx a b | ||
354 | 0 YStep dtransform | ||
355 | round exch round exch % tx ty cmtx a b dy.x dy.y | ||
356 | YStep div exch YStep div exch % tx ty cmtx a b c d | ||
357 | 7 -3 roll astore % { a b c d tx ty } | ||
358 | } if | ||
359 | grestore | ||
360 | } bind def | ||
361 | /PATusp { | ||
362 | false PATredef | ||
363 | PATDict begin | ||
364 | CColor PATsc | ||
365 | end | ||
366 | } bind def | ||
367 | |||
368 | % this is the pattern fill program from the Second edition Reference Manual | ||
369 | % with changes to call the above pattern fill | ||
370 | % left30 | ||
371 | 11 dict begin | ||
372 | /PaintType 1 def | ||
373 | /PatternType 1 def | ||
374 | /TilingType 1 def | ||
375 | /BBox [0 0 1 1] def | ||
376 | /XStep 1 def | ||
377 | /YStep 1 def | ||
378 | /PatWidth 1 def | ||
379 | /PatHeight 1 def | ||
380 | /Multi 2 def | ||
381 | /PaintData [ | ||
382 | { clippath } bind | ||
383 | { 32 16 true [ 32 0 0 -16 0 16 ] | ||
384 | {<c000c000300030000c000c000300030000c000c000300030 | ||
385 | 000c000c00030003c000c000300030000c000c0003000300 | ||
386 | 00c000c000300030000c000c00030003>} | ||
387 | imagemask } bind | ||
388 | ] def | ||
389 | /PaintProc { | ||
390 | pop | ||
391 | exec fill | ||
392 | } def | ||
393 | currentdict | ||
394 | end | ||
395 | /P1 exch def | ||
396 | |||
397 | % horizontal sawtooth lines | ||
398 | 11 dict begin | ||
399 | /PaintType 1 def | ||
400 | /PatternType 1 def | ||
401 | /TilingType 1 def | ||
402 | /BBox [0 0 1 1] def | ||
403 | /XStep 1 def | ||
404 | /YStep 1 def | ||
405 | /PatWidth 1 def | ||
406 | /PatHeight 1 def | ||
407 | /Multi 2 def | ||
408 | /PaintData [ | ||
409 | { clippath } bind | ||
410 | { 32 16 true [ 32 0 0 -16 0 16 ] | ||
411 | {<000000000000000000000000000000000000000000000000 | ||
412 | 000000000100010002800280044004400820082010101010 | ||
413 | 20082008400440048002800200010001>} | ||
414 | imagemask } bind | ||
415 | ] def | ||
416 | /PaintProc { | ||
417 | pop | ||
418 | exec fill | ||
419 | } def | ||
420 | currentdict | ||
421 | end | ||
422 | /P21 exch def | ||
423 | 1.1111 1.1111 scale %restore scale | ||
424 | |||
425 | /cp {closepath} bind def | ||
426 | /ef {eofill} bind def | ||
427 | /gr {grestore} bind def | ||
428 | /gs {gsave} bind def | ||
429 | /sa {save} bind def | ||
430 | /rs {restore} bind def | ||
431 | /l {lineto} bind def | ||
432 | /m {moveto} bind def | ||
433 | /rm {rmoveto} bind def | ||
434 | /n {newpath} bind def | ||
435 | /s {stroke} bind def | ||
436 | /sh {show} bind def | ||
437 | /slc {setlinecap} bind def | ||
438 | /slj {setlinejoin} bind def | ||
439 | /slw {setlinewidth} bind def | ||
440 | /srgb {setrgbcolor} bind def | ||
441 | /rot {rotate} bind def | ||
442 | /sc {scale} bind def | ||
443 | /sd {setdash} bind def | ||
444 | /ff {findfont} bind def | ||
445 | /sf {setfont} bind def | ||
446 | /scf {scalefont} bind def | ||
447 | /sw {stringwidth} bind def | ||
448 | /tr {translate} bind def | ||
449 | /tnt {dup dup currentrgbcolor | ||
450 | 4 -2 roll dup 1 exch sub 3 -1 roll mul add | ||
451 | 4 -2 roll dup 1 exch sub 3 -1 roll mul add | ||
452 | 4 -2 roll dup 1 exch sub 3 -1 roll mul add srgb} | ||
453 | bind def | ||
454 | /shd {dup dup currentrgbcolor 4 -2 roll mul 4 -2 roll mul | ||
455 | 4 -2 roll mul srgb} bind def | ||
456 | /$F2psBegin {$F2psDict begin /$F2psEnteredState save def} def | ||
457 | /$F2psEnd {$F2psEnteredState restore end} def | ||
458 | %%EndProlog | ||
459 | |||
460 | $F2psBegin | ||
461 | 10 setmiterlimit | ||
462 | n 0 792 m 0 0 l 612 0 l 612 792 l cp clip | ||
463 | 0.06000 0.06000 sc | ||
464 | /Courier ff 165.00 scf sf | ||
465 | 3921 3035 m | ||
466 | gs 1 -1 sc (Storage) col-1 sh gr | ||
467 | 7.500 slw | ||
468 | % Polyline | ||
469 | [15 50.0] 50.0 sd | ||
470 | n 101 461 m 1105 461 l 1105 662 l 101 662 l cp gs col-1 s gr [] 0 sd | ||
471 | % Polyline | ||
472 | [15 50.0] 50.0 sd | ||
473 | n 101 863 m 1105 863 l 1105 1064 l 101 1064 l cp gs col-1 s gr [] 0 sd | ||
474 | % Polyline | ||
475 | [15 50.0] 50.0 sd | ||
476 | n 101 1265 m 1105 1265 l 1105 1466 l 101 1466 l cp gs col-1 s gr [] 0 sd | ||
477 | % Polyline | ||
478 | [15 50.0] 50.0 sd | ||
479 | n 101 1668 m 1105 1668 l 1105 1869 l 101 1869 l cp gs col-1 s gr [] 0 sd | ||
480 | % Polyline | ||
481 | n 101 2472 m 1105 2472 l 1105 2673 l 101 2673 l cp gs col-1 s gr | ||
482 | % Polyline | ||
483 | n 101 1668 m 1105 1668 l 1105 1869 l 101 1869 l cp gs /PC [[1.00 1.00 1.00] [0.00 0.00 0.00]] def | ||
484 | 15.00 15.00 sc P1 [16 0 0 -8 6.73 111.20] PATmp PATsp ef gr PATusp gs col-1 s gr | ||
485 | % Polyline | ||
486 | n 101 1265 m 1105 1265 l 1105 1466 l 101 1466 l cp gs /PC [[1.00 1.00 1.00] [0.00 0.00 0.00]] def | ||
487 | 15.00 15.00 sc P1 [16 0 0 -8 6.73 84.33] PATmp PATsp ef gr PATusp gs col-1 s gr | ||
488 | % Polyline | ||
489 | n 101 863 m 1105 863 l 1105 1064 l 101 1064 l cp gs /PC [[1.00 1.00 1.00] [0.00 0.00 0.00]] def | ||
490 | 15.00 15.00 sc P1 [16 0 0 -8 6.73 57.53] PATmp PATsp ef gr PATusp gs col-1 s gr | ||
491 | % Polyline | ||
492 | n 101 461 m 1105 461 l 1105 662 l 101 662 l cp gs /PC [[1.00 1.00 1.00] [0.00 0.00 0.00]] def | ||
493 | 15.00 15.00 sc P1 [16 0 0 -8 6.73 30.73] PATmp PATsp ef gr PATusp gs col-1 s gr | ||
494 | % Polyline | ||
495 | n 101 59 m 1105 59 l 1105 260 l 101 260 l cp gs /PC [[1.00 1.00 1.00] [0.00 0.00 0.00]] def | ||
496 | 15.00 15.00 sc P1 [16 0 0 -8 6.73 3.93] PATmp PATsp ef gr PATusp gs col-1 s gr | ||
497 | % Polyline | ||
498 | n 101 2472 m 1105 2472 l 1105 2673 l 101 2673 l cp gs col7 1.00 shd ef gr gs col-1 s gr | ||
499 | % Polyline | ||
500 | n 101 2472 m 1105 2472 l 1105 2673 l 101 2673 l cp gs /PC [[1.00 1.00 1.00] [0.00 0.00 0.00]] def | ||
501 | 15.00 15.00 sc P1 [16 0 0 -8 6.73 164.80] PATmp PATsp ef gr PATusp gs col-1 s gr | ||
502 | % Polyline | ||
503 | n 101 2070 m 1105 2070 l 1105 2271 l 101 2271 l cp gs /PC [[1.00 1.00 1.00] [0.00 0.00 0.00]] def | ||
504 | 15.00 15.00 sc P1 [16 0 0 -8 6.73 138.00] PATmp PATsp ef gr PATusp gs col-1 s gr | ||
505 | % Polyline | ||
506 | n 1306 59 m 2312 59 l 2312 260 l 1306 260 l cp gs col-1 s gr | ||
507 | % Polyline | ||
508 | n 1306 461 m 2312 461 l 2312 662 l 1306 662 l cp gs col-1 s gr | ||
509 | % Polyline | ||
510 | n 1306 863 m 2312 863 l 2312 1064 l 1306 1064 l cp gs col-1 s gr | ||
511 | % Polyline | ||
512 | n 1306 1265 m 2312 1265 l 2312 1466 l 1306 1466 l cp gs col-1 s gr | ||
513 | % Polyline | ||
514 | n 1306 1668 m 2312 1668 l 2312 1869 l 1306 1869 l cp gs col-1 s gr | ||
515 | % Polyline | ||
516 | n 1306 2070 m 2312 2070 l 2312 2271 l 1306 2271 l cp gs col-1 s gr | ||
517 | % Polyline | ||
518 | n 1306 2472 m 2312 2472 l 2312 2673 l 1306 2673 l cp gs col-1 s gr | ||
519 | % Polyline | ||
520 | n 2513 59 m 3518 59 l 3518 260 l 2513 260 l cp gs col-1 s gr | ||
521 | % Polyline | ||
522 | n 2513 461 m 3518 461 l 3518 662 l 2513 662 l cp gs col-1 s gr | ||
523 | % Polyline | ||
524 | n 2513 863 m 3518 863 l 3518 1064 l 2513 1064 l cp gs col-1 s gr | ||
525 | % Polyline | ||
526 | n 2513 1265 m 3518 1265 l 3518 1466 l 2513 1466 l cp gs col-1 s gr | ||
527 | % Polyline | ||
528 | n 2513 1668 m 3518 1668 l 3518 1869 l 2513 1869 l cp gs col-1 s gr | ||
529 | % Polyline | ||
530 | n 2513 2070 m 3518 2070 l 3518 2271 l 2513 2271 l cp gs col-1 s gr | ||
531 | % Polyline | ||
532 | n 2513 2472 m 3518 2472 l 3518 2673 l 2513 2673 l cp gs col-1 s gr | ||
533 | % Polyline | ||
534 | n 1408 59 m 2312 59 l 2312 260 l 1408 260 l cp gs /PC [[1.00 1.00 1.00] [0.00 0.00 0.00]] def | ||
535 | 15.00 15.00 sc P1 [16 0 0 -8 93.87 3.93] PATmp PATsp ef gr PATusp gs col-1 s gr | ||
536 | % Polyline | ||
537 | n 2513 59 m 2614 59 l 2614 260 l 2513 260 l cp gs /PC [[1.00 1.00 1.00] [0.00 0.00 0.00]] def | ||
538 | 15.00 15.00 sc P1 [16 0 0 -8 167.53 3.93] PATmp PATsp ef gr PATusp gs col-1 s gr | ||
539 | % Polyline | ||
540 | n 1408 461 m 1609 461 l 1609 662 l 1408 662 l cp gs /PC [[1.00 1.00 1.00] [0.00 0.00 0.00]] def | ||
541 | 15.00 15.00 sc P1 [16 0 0 -8 93.87 30.73] PATmp PATsp ef gr PATusp gs col-1 s gr | ||
542 | % Polyline | ||
543 | n 1709 461 m 1810 461 l 1810 662 l 1709 662 l cp gs /PC [[1.00 1.00 1.00] [0.00 0.00 0.00]] def | ||
544 | 15.00 15.00 sc P1 [16 0 0 -8 113.93 30.73] PATmp PATsp ef gr PATusp gs col-1 s gr | ||
545 | % Polyline | ||
546 | n 2011 461 m 2312 461 l 2312 662 l 2011 662 l cp gs /PC [[1.00 1.00 1.00] [0.00 0.00 0.00]] def | ||
547 | 15.00 15.00 sc P1 [16 0 0 -8 134.07 30.73] PATmp PATsp ef gr PATusp gs col-1 s gr | ||
548 | % Polyline | ||
549 | n 2513 461 m 2614 461 l 2614 662 l 2513 662 l cp gs /PC [[1.00 1.00 1.00] [0.00 0.00 0.00]] def | ||
550 | 15.00 15.00 sc P1 [16 0 0 -8 167.53 30.73] PATmp PATsp ef gr PATusp gs col-1 s gr | ||
551 | % Polyline | ||
552 | n 2815 461 m 2915 461 l 2915 662 l 2815 662 l cp gs /PC [[1.00 1.00 1.00] [0.00 0.00 0.00]] def | ||
553 | 15.00 15.00 sc P1 [16 0 0 -8 187.67 30.73] PATmp PATsp ef gr PATusp gs col-1 s gr | ||
554 | % Polyline | ||
555 | n 3016 461 m 3218 461 l 3218 662 l 3016 662 l cp gs /PC [[1.00 1.00 1.00] [0.00 0.00 0.00]] def | ||
556 | 15.00 15.00 sc P1 [16 0 0 -8 201.07 30.73] PATmp PATsp ef gr PATusp gs col-1 s gr | ||
557 | % Polyline | ||
558 | n 1306 863 m 1609 863 l 1609 1064 l 1306 1064 l cp gs /PC [[1.00 1.00 1.00] [0.00 0.00 0.00]] def | ||
559 | 15.00 15.00 sc P1 [16 0 0 -8 87.07 57.53] PATmp PATsp ef gr PATusp gs col-1 s gr | ||
560 | % Polyline | ||
561 | n 1709 863 m 1810 863 l 1810 1064 l 1709 1064 l cp gs /PC [[1.00 1.00 1.00] [0.00 0.00 0.00]] def | ||
562 | 15.00 15.00 sc P1 [16 0 0 -8 113.93 57.53] PATmp PATsp ef gr PATusp gs col-1 s gr | ||
563 | % Polyline | ||
564 | n 2011 863 m 2111 863 l 2111 1064 l 2011 1064 l cp gs /PC [[1.00 1.00 1.00] [0.00 0.00 0.00]] def | ||
565 | 15.00 15.00 sc P1 [16 0 0 -8 134.07 57.53] PATmp PATsp ef gr PATusp gs col-1 s gr | ||
566 | % Polyline | ||
567 | n 2212 863 m 2312 863 l 2312 1064 l 2212 1064 l cp gs /PC [[1.00 1.00 1.00] [0.00 0.00 0.00]] def | ||
568 | 15.00 15.00 sc P1 [16 0 0 -8 147.47 57.53] PATmp PATsp ef gr PATusp gs col-1 s gr | ||
569 | % Polyline | ||
570 | n 2815 863 m 2915 863 l 2915 1064 l 2815 1064 l cp gs /PC [[1.00 1.00 1.00] [0.00 0.00 0.00]] def | ||
571 | 15.00 15.00 sc P1 [16 0 0 -8 187.67 57.53] PATmp PATsp ef gr PATusp gs col-1 s gr | ||
572 | % Polyline | ||
573 | n 3016 863 m 3218 863 l 3218 1064 l 3016 1064 l cp gs /PC [[1.00 1.00 1.00] [0.00 0.00 0.00]] def | ||
574 | 15.00 15.00 sc P1 [16 0 0 -8 201.07 57.53] PATmp PATsp ef gr PATusp gs col-1 s gr | ||
575 | % Polyline | ||
576 | n 3317 863 m 3419 863 l 3419 1064 l 3317 1064 l cp gs /PC [[1.00 1.00 1.00] [0.00 0.00 0.00]] def | ||
577 | 15.00 15.00 sc P1 [16 0 0 -8 221.13 57.53] PATmp PATsp ef gr PATusp gs col-1 s gr | ||
578 | % Polyline | ||
579 | n 1910 1265 m 2011 1265 l 2011 1265 l 1910 1265 l cp gs /PC [[1.00 1.00 1.00] [0.00 0.00 0.00]] def | ||
580 | 15.00 15.00 sc P1 [16 0 0 -8 127.33 84.33] PATmp PATsp ef gr PATusp gs col-1 s gr | ||
581 | % Polyline | ||
582 | n 2513 2472 m 3518 2472 l 3518 2673 l 2513 2673 l cp gs /PC [[1.00 1.00 1.00] [0.00 0.00 0.00]] def | ||
583 | 15.00 15.00 sc P1 [16 0 0 -8 167.53 164.80] PATmp PATsp ef gr PATusp gs col-1 s gr | ||
584 | % Polyline | ||
585 | n 1507 1265 m 1609 1265 l 1609 1466 l 1507 1466 l cp gs /PC [[1.00 1.00 1.00] [0.00 0.00 0.00]] def | ||
586 | 15.00 15.00 sc P1 [16 0 0 -8 100.47 84.33] PATmp PATsp ef gr PATusp gs col-1 s gr | ||
587 | % Polyline | ||
588 | n 1709 1265 m 1810 1265 l 1810 1466 l 1709 1466 l cp gs /PC [[1.00 1.00 1.00] [0.00 0.00 0.00]] def | ||
589 | 15.00 15.00 sc P1 [16 0 0 -8 113.93 84.33] PATmp PATsp ef gr PATusp gs col-1 s gr | ||
590 | % Polyline | ||
591 | n 1306 1265 m 1408 1265 l 1408 1466 l 1306 1466 l cp gs /PC [[1.00 1.00 1.00] [0.00 0.00 0.00]] def | ||
592 | 15.00 15.00 sc P21 [16 0 0 -8 87.07 84.33] PATmp PATsp ef gr PATusp gs col-1 s gr | ||
593 | % Polyline | ||
594 | n 2011 1265 m 2111 1265 l 2111 1466 l 2011 1466 l cp gs /PC [[1.00 1.00 1.00] [0.00 0.00 0.00]] def | ||
595 | 15.00 15.00 sc P1 [16 0 0 -8 134.07 84.33] PATmp PATsp ef gr PATusp gs col-1 s gr | ||
596 | % Polyline | ||
597 | n 1609 1265 m 1709 1265 l 1709 1466 l 1609 1466 l cp gs /PC [[1.00 1.00 1.00] [0.00 0.00 0.00]] def | ||
598 | 15.00 15.00 sc P21 [16 0 0 -8 107.27 84.33] PATmp PATsp ef gr PATusp gs col-1 s gr | ||
599 | % Polyline | ||
600 | n 1810 1265 m 2011 1265 l 2011 1466 l 1810 1466 l cp gs /PC [[1.00 1.00 1.00] [0.00 0.00 0.00]] def | ||
601 | 15.00 15.00 sc P21 [16 0 0 -8 120.67 84.33] PATmp PATsp ef gr PATusp gs col-1 s gr | ||
602 | % Polyline | ||
603 | n 1507 1668 m 1609 1668 l 1609 1869 l 1507 1869 l cp gs /PC [[1.00 1.00 1.00] [0.00 0.00 0.00]] def | ||
604 | 15.00 15.00 sc P1 [16 0 0 -8 100.47 111.20] PATmp PATsp ef gr PATusp gs col-1 s gr | ||
605 | % Polyline | ||
606 | n 1709 1668 m 1810 1668 l 1810 1869 l 1709 1869 l cp gs /PC [[1.00 1.00 1.00] [0.00 0.00 0.00]] def | ||
607 | 15.00 15.00 sc P1 [16 0 0 -8 113.93 111.20] PATmp PATsp ef gr PATusp gs col-1 s gr | ||
608 | % Polyline | ||
609 | n 1609 1668 m 1709 1668 l 1709 1869 l 1609 1869 l cp gs /PC [[1.00 1.00 1.00] [0.00 0.00 0.00]] def | ||
610 | 15.00 15.00 sc P21 [16 0 0 -8 107.27 111.20] PATmp PATsp ef gr PATusp gs col-1 s gr | ||
611 | % Polyline | ||
612 | n 1810 1668 m 2011 1668 l 2011 1869 l 1810 1869 l cp gs /PC [[1.00 1.00 1.00] [0.00 0.00 0.00]] def | ||
613 | 15.00 15.00 sc P21 [16 0 0 -8 120.67 111.20] PATmp PATsp ef gr PATusp gs col-1 s gr | ||
614 | % Polyline | ||
615 | n 3218 1668 m 3518 1668 l 3518 1869 l 3218 1869 l cp gs /PC [[1.00 1.00 1.00] [0.00 0.00 0.00]] def | ||
616 | 15.00 15.00 sc P1 [16 0 0 -8 214.53 111.20] PATmp PATsp ef gr PATusp gs col-1 s gr | ||
617 | % Polyline | ||
618 | n 2513 1668 m 2714 1668 l 2714 1869 l 2513 1869 l cp gs /PC [[1.00 1.00 1.00] [0.00 0.00 0.00]] def | ||
619 | 15.00 15.00 sc P1 [16 0 0 -8 167.53 111.20] PATmp PATsp ef gr PATusp gs col-1 s gr | ||
620 | % Polyline | ||
621 | n 3317 1265 m 3518 1265 l 3518 1466 l 3317 1466 l cp gs /PC [[1.00 1.00 1.00] [0.00 0.00 0.00]] def | ||
622 | 15.00 15.00 sc P1 [16 0 0 -8 221.13 84.33] PATmp PATsp ef gr PATusp gs col-1 s gr | ||
623 | % Polyline | ||
624 | n 1306 2070 m 1408 2070 l 1408 2271 l 1306 2271 l cp gs /PC [[1.00 1.00 1.00] [0.00 0.00 0.00]] def | ||
625 | 15.00 15.00 sc P21 [16 0 0 -8 87.07 138.00] PATmp PATsp ef gr PATusp gs col-1 s gr | ||
626 | % Polyline | ||
627 | n 1609 2070 m 1709 2070 l 1709 2271 l 1609 2271 l cp gs /PC [[1.00 1.00 1.00] [0.00 0.00 0.00]] def | ||
628 | 15.00 15.00 sc P21 [16 0 0 -8 107.27 138.00] PATmp PATsp ef gr PATusp gs col-1 s gr | ||
629 | % Polyline | ||
630 | n 1810 2271 m 2011 2271 l 2011 2070 l 1810 2070 l cp gs /PC [[1.00 1.00 1.00] [0.00 0.00 0.00]] def | ||
631 | 15.00 15.00 sc P21 [16 0 0 -8 120.67 138.00] PATmp PATsp ef gr PATusp gs col-1 s gr | ||
632 | % Polyline | ||
633 | n 2111 2070 m 2312 2070 l 2312 2271 l 2111 2271 l cp gs /PC [[1.00 1.00 1.00] [0.00 0.00 0.00]] def | ||
634 | 15.00 15.00 sc P21 [16 0 0 -8 140.73 138.00] PATmp PATsp ef gr PATusp gs col-1 s gr | ||
635 | % Polyline | ||
636 | n 2614 2070 m 2815 2070 l 2815 2271 l 2614 2271 l cp gs /PC [[1.00 1.00 1.00] [0.00 0.00 0.00]] def | ||
637 | 15.00 15.00 sc P1 [16 0 0 -8 174.27 138.00] PATmp PATsp ef gr PATusp gs col-1 s gr | ||
638 | % Polyline | ||
639 | n 2915 2070 m 3016 2070 l 3016 2271 l 2915 2271 l cp gs /PC [[1.00 1.00 1.00] [0.00 0.00 0.00]] def | ||
640 | 15.00 15.00 sc P1 [16 0 0 -8 194.33 138.00] PATmp PATsp ef gr PATusp gs col-1 s gr | ||
641 | % Polyline | ||
642 | n 3218 2070 m 3317 2070 l 3317 2271 l 3218 2271 l cp gs /PC [[1.00 1.00 1.00] [0.00 0.00 0.00]] def | ||
643 | 15.00 15.00 sc P1 [16 0 0 -8 214.53 138.00] PATmp PATsp ef gr PATusp gs col-1 s gr | ||
644 | % Polyline | ||
645 | n 3720 2472 m 4725 2472 l 4725 2673 l 3720 2673 l cp gs /PC [[1.00 1.00 1.00] [0.00 0.00 0.00]] def | ||
646 | 15.00 15.00 sc P1 [16 0 0 -8 248.00 164.80] PATmp PATsp ef gr PATusp gs col-1 s gr | ||
647 | % Polyline | ||
648 | n 3720 2070 m 4122 2070 l 4122 2271 l 3720 2271 l cp gs /PC [[1.00 1.00 1.00] [0.00 0.00 0.00]] def | ||
649 | 15.00 15.00 sc P1 [16 0 0 -8 248.00 138.00] PATmp PATsp ef gr PATusp gs col-1 s gr | ||
650 | % Polyline | ||
651 | n 3720 1869 m 4122 1869 l 4122 1668 l 3720 1668 l cp gs /PC [[1.00 1.00 1.00] [0.00 0.00 0.00]] def | ||
652 | 15.00 15.00 sc P1 [16 0 0 -8 248.00 111.20] PATmp PATsp ef gr PATusp gs col-1 s gr | ||
653 | % Polyline | ||
654 | n 3720 1466 m 3921 1466 l 3921 1265 l 3720 1265 l cp gs /PC [[1.00 1.00 1.00] [0.00 0.00 0.00]] def | ||
655 | 15.00 15.00 sc P1 [16 0 0 -8 248.00 84.33] PATmp PATsp ef gr PATusp gs col-1 s gr | ||
656 | % Polyline | ||
657 | n 3720 1064 m 4122 1064 l 4122 863 l 3720 863 l cp gs /PC [[1.00 1.00 1.00] [0.00 0.00 0.00]] def | ||
658 | 15.00 15.00 sc P1 [16 0 0 -8 248.00 57.53] PATmp PATsp ef gr PATusp gs col-1 s gr | ||
659 | % Polyline | ||
660 | n 3720 662 m 4122 662 l 4122 461 l 3720 461 l cp gs /PC [[1.00 1.00 1.00] [0.00 0.00 0.00]] def | ||
661 | 15.00 15.00 sc P1 [16 0 0 -8 248.00 30.73] PATmp PATsp ef gr PATusp gs col-1 s gr | ||
662 | % Polyline | ||
663 | n 3720 59 m 3820 59 l 3820 260 l 3720 260 l cp gs /PC [[1.00 1.00 1.00] [0.00 0.00 0.00]] def | ||
664 | 15.00 15.00 sc P1 [16 0 0 -8 248.00 3.93] PATmp PATsp ef gr PATusp gs col-1 s gr | ||
665 | /Times-Roman ff 60.00 scf sf | ||
666 | 1207 2170 m | ||
667 | gs 1 -1 sc (=) col-1 sh gr | ||
668 | /Times-Roman ff 60.00 scf sf | ||
669 | 1207 1768 m | ||
670 | gs 1 -1 sc (=) col-1 sh gr | ||
671 | /Times-Roman ff 60.00 scf sf | ||
672 | 1207 1366 m | ||
673 | gs 1 -1 sc (=) col-1 sh gr | ||
674 | /Times-Roman ff 60.00 scf sf | ||
675 | 1207 964 m | ||
676 | gs 1 -1 sc (=) col-1 sh gr | ||
677 | /Times-Roman ff 60.00 scf sf | ||
678 | 1207 562 m | ||
679 | gs 1 -1 sc (=) col-1 sh gr | ||
680 | /Times-Roman ff 60.00 scf sf | ||
681 | 1207 160 m | ||
682 | gs 1 -1 sc (=) col-1 sh gr | ||
683 | /Times-Roman ff 60.00 scf sf | ||
684 | 0 160 m | ||
685 | gs 1 -1 sc (F0) col-1 sh gr | ||
686 | /Times-Roman ff 60.00 scf sf | ||
687 | 0 562 m | ||
688 | gs 1 -1 sc (F1) col-1 sh gr | ||
689 | /Times-Roman ff 60.00 scf sf | ||
690 | 0 964 m | ||
691 | gs 1 -1 sc (F2) col-1 sh gr | ||
692 | /Times-Roman ff 60.00 scf sf | ||
693 | 0 1366 m | ||
694 | gs 1 -1 sc (F4) col-1 sh gr | ||
695 | /Times-Roman ff 60.00 scf sf | ||
696 | 0 1768 m | ||
697 | gs 1 -1 sc (F5) col-1 sh gr | ||
698 | /Times-Roman ff 60.00 scf sf | ||
699 | 0 2170 m | ||
700 | gs 1 -1 sc (F6) col-1 sh gr | ||
701 | /Times-Roman ff 60.00 scf sf | ||
702 | 0 2572 m | ||
703 | gs 1 -1 sc (F7) col-1 sh gr | ||
704 | /Times-Roman ff 60.00 scf sf | ||
705 | 1207 2572 m | ||
706 | gs 1 -1 sc (=) col-1 sh gr | ||
707 | /Courier ff 165.00 scf sf | ||
708 | 101 260 m | ||
709 | gs 1 -1 sc (DISULPHIDE) col-1 sh gr | ||
710 | /Courier ff 165.00 scf sf | ||
711 | 101 662 m | ||
712 | gs 1 -1 sc (BISULPHIDE) col-1 sh gr | ||
713 | /Courier ff 165.00 scf sf | ||
714 | 101 1064 m | ||
715 | gs 1 -1 sc (DISELENIDE) col-1 sh gr | ||
716 | /Courier ff 165.00 scf sf | ||
717 | 101 1466 m | ||
718 | gs 1 -1 sc (DISULPHINE) col-1 sh gr | ||
719 | /Courier ff 165.00 scf sf | ||
720 | 101 1869 m | ||
721 | gs 1 -1 sc (ESSELENIAN) col-1 sh gr | ||
722 | /Courier ff 165.00 scf sf | ||
723 | 101 2271 m | ||
724 | gs 1 -1 sc (DISULPHONE) col-1 sh gr | ||
725 | /Courier ff 165.00 scf sf | ||
726 | 101 2673 m | ||
727 | gs 1 -1 sc (TROEZENIAN) col-1 sh gr | ||
728 | /Courier ff 165.00 scf sf | ||
729 | 1408 260 m | ||
730 | gs 1 -1 sc (ISULPHIDE) col-1 sh gr | ||
731 | /Courier ff 165.00 scf sf | ||
732 | 2513 260 m | ||
733 | gs 1 -1 sc (D) col-1 sh gr | ||
734 | /Courier ff 165.00 scf sf | ||
735 | 1408 662 m | ||
736 | gs 1 -1 sc (IS) col-1 sh gr | ||
737 | /Courier ff 165.00 scf sf | ||
738 | 1709 662 m | ||
739 | gs 1 -1 sc (L) col-1 sh gr | ||
740 | /Courier ff 165.00 scf sf | ||
741 | 2011 662 m | ||
742 | gs 1 -1 sc (IDE) col-1 sh gr | ||
743 | /Courier ff 165.00 scf sf | ||
744 | 2513 662 m | ||
745 | gs 1 -1 sc (B) col-1 sh gr | ||
746 | /Courier ff 165.00 scf sf | ||
747 | 2815 662 m | ||
748 | gs 1 -1 sc (U) col-1 sh gr | ||
749 | /Courier ff 165.00 scf sf | ||
750 | 3016 662 m | ||
751 | gs 1 -1 sc (PH) col-1 sh gr | ||
752 | /Courier ff 165.00 scf sf | ||
753 | 2815 1064 m | ||
754 | gs 1 -1 sc (E EN D) col-1 sh gr | ||
755 | /Courier ff 165.00 scf sf | ||
756 | 1306 1064 m | ||
757 | gs 1 -1 sc (DIS L I E) col-1 sh gr | ||
758 | /Courier ff 165.00 scf sf | ||
759 | 2513 2673 m | ||
760 | gs 1 -1 sc (TROEZENIAN) col-1 sh gr | ||
761 | /Courier ff 165.00 scf sf | ||
762 | 2513 1869 m | ||
763 | gs 1 -1 sc (ES) col-1 sh gr | ||
764 | /Courier ff 165.00 scf sf | ||
765 | 3218 1869 m | ||
766 | gs 1 -1 sc (IAN) col-1 sh gr | ||
767 | /Courier ff 165.00 scf sf | ||
768 | 1507 1869 m | ||
769 | gs 1 -1 sc (SELEN) col-1 sh gr | ||
770 | /Courier ff 165.00 scf sf | ||
771 | 1306 1466 m | ||
772 | gs 1 -1 sc (DISULPHI) col-1 sh gr | ||
773 | /Courier ff 165.00 scf sf | ||
774 | 3317 1466 m | ||
775 | gs 1 -1 sc (NE) col-1 sh gr | ||
776 | /Courier ff 165.00 scf sf | ||
777 | 1306 2271 m | ||
778 | gs 1 -1 sc (D U PH NE) col-1 sh gr | ||
779 | /Courier ff 165.00 scf sf | ||
780 | 2513 2271 m | ||
781 | gs 1 -1 sc ( IS U O) col-1 sh gr | ||
782 | /Courier ff 165.00 scf sf | ||
783 | 302 2874 m | ||
784 | gs 1 -1 sc (Actual ) col-1 sh gr | ||
785 | /Courier ff 165.00 scf sf | ||
786 | 302 3035 m | ||
787 | gs 1 -1 sc (File) col-1 sh gr | ||
788 | /Courier ff 165.00 scf sf | ||
789 | 1507 2874 m | ||
790 | gs 1 -1 sc (Copy) col-1 sh gr | ||
791 | /Courier ff 165.00 scf sf | ||
792 | 1507 3035 m | ||
793 | gs 1 -1 sc (Segments) col-1 sh gr | ||
794 | /Courier ff 165.00 scf sf | ||
795 | 2714 2849 m | ||
796 | gs 1 -1 sc (Insert) col-1 sh gr | ||
797 | /Courier ff 165.00 scf sf | ||
798 | 2714 3010 m | ||
799 | gs 1 -1 sc (Segments) col-1 sh gr | ||
800 | /Courier ff 165.00 scf sf | ||
801 | 3921 2874 m | ||
802 | gs 1 -1 sc (Physical) col-1 sh gr | ||
803 | % Polyline | ||
804 | [15 50.0] 50.0 sd | ||
805 | n 101 59 m 1105 59 l 1105 260 l 101 260 l cp gs col-1 s gr [] 0 sd | ||
806 | $F2psEnd | ||
807 | rs | ||
808 | end | ||
diff --git a/xdelta1/doc/old/dcc99/figs/xdarchive.fig b/xdelta1/doc/old/dcc99/figs/xdarchive.fig deleted file mode 100755 index 238b675..0000000 --- a/xdelta1/doc/old/dcc99/figs/xdarchive.fig +++ /dev/null | |||
@@ -1,198 +0,0 @@ | |||
1 | #FIG 3.1 | ||
2 | Portrait | ||
3 | Center | ||
4 | Inches | ||
5 | 1200 2 | ||
6 | 6 0 59 4725 3075 | ||
7 | 2 2 2 1 -1 7 0 0 -1 3.000 0 0 -1 0 0 5 | ||
8 | 101 59 1105 59 1105 260 101 260 101 59 | ||
9 | 2 2 2 1 -1 7 0 0 -1 3.000 0 0 -1 0 0 5 | ||
10 | 101 461 1105 461 1105 662 101 662 101 461 | ||
11 | 2 2 2 1 -1 7 0 0 -1 3.000 0 0 -1 0 0 5 | ||
12 | 101 863 1105 863 1105 1064 101 1064 101 863 | ||
13 | 2 2 2 1 -1 7 0 0 -1 3.000 0 0 -1 0 0 5 | ||
14 | 101 1265 1105 1265 1105 1466 101 1466 101 1265 | ||
15 | 2 2 2 1 -1 7 0 0 -1 3.000 0 0 -1 0 0 5 | ||
16 | 101 1668 1105 1668 1105 1869 101 1869 101 1668 | ||
17 | 2 2 0 1 -1 7 0 0 -1 0.000 0 0 -1 0 0 5 | ||
18 | 101 2472 1105 2472 1105 2673 101 2673 101 2472 | ||
19 | 2 2 0 1 -1 7 0 0 41 0.000 0 0 -1 0 0 5 | ||
20 | 101 1668 1105 1668 1105 1869 101 1869 101 1668 | ||
21 | 2 2 0 1 -1 7 0 0 41 0.000 0 0 -1 0 0 5 | ||
22 | 101 1265 1105 1265 1105 1466 101 1466 101 1265 | ||
23 | 2 2 0 1 -1 7 0 0 41 0.000 0 0 -1 0 0 5 | ||
24 | 101 863 1105 863 1105 1064 101 1064 101 863 | ||
25 | 2 2 0 1 -1 7 0 0 41 0.000 0 0 -1 0 0 5 | ||
26 | 101 461 1105 461 1105 662 101 662 101 461 | ||
27 | 2 2 0 1 -1 7 0 0 41 0.000 0 0 -1 0 0 5 | ||
28 | 101 59 1105 59 1105 260 101 260 101 59 | ||
29 | 2 2 0 1 -1 7 0 0 20 0.000 0 0 -1 0 0 5 | ||
30 | 101 2472 1105 2472 1105 2673 101 2673 101 2472 | ||
31 | 2 2 0 1 -1 7 0 0 41 0.000 0 0 -1 0 0 5 | ||
32 | 101 2472 1105 2472 1105 2673 101 2673 101 2472 | ||
33 | 2 2 0 1 -1 7 0 0 41 0.000 0 0 -1 0 0 5 | ||
34 | 101 2070 1105 2070 1105 2271 101 2271 101 2070 | ||
35 | 2 2 0 1 -1 7 0 0 -1 0.000 0 0 -1 0 0 5 | ||
36 | 1306 59 2312 59 2312 260 1306 260 1306 59 | ||
37 | 2 2 0 1 -1 7 0 0 -1 0.000 0 0 -1 0 0 5 | ||
38 | 1306 461 2312 461 2312 662 1306 662 1306 461 | ||
39 | 2 2 0 1 -1 7 0 0 -1 0.000 0 0 -1 0 0 5 | ||
40 | 1306 863 2312 863 2312 1064 1306 1064 1306 863 | ||
41 | 2 2 0 1 -1 7 0 0 -1 0.000 0 0 -1 0 0 5 | ||
42 | 1306 1265 2312 1265 2312 1466 1306 1466 1306 1265 | ||
43 | 2 2 0 1 -1 7 0 0 -1 0.000 0 0 -1 0 0 5 | ||
44 | 1306 1668 2312 1668 2312 1869 1306 1869 1306 1668 | ||
45 | 2 2 0 1 -1 7 0 0 -1 0.000 0 0 -1 0 0 5 | ||
46 | 1306 2070 2312 2070 2312 2271 1306 2271 1306 2070 | ||
47 | 2 2 0 1 -1 7 0 0 -1 0.000 0 0 -1 0 0 5 | ||
48 | 1306 2472 2312 2472 2312 2673 1306 2673 1306 2472 | ||
49 | 2 2 0 1 -1 7 0 0 -1 0.000 0 0 -1 0 0 5 | ||
50 | 2513 59 3518 59 3518 260 2513 260 2513 59 | ||
51 | 2 2 0 1 -1 7 0 0 -1 0.000 0 0 -1 0 0 5 | ||
52 | 2513 461 3518 461 3518 662 2513 662 2513 461 | ||
53 | 2 2 0 1 -1 7 0 0 -1 0.000 0 0 -1 0 0 5 | ||
54 | 2513 863 3518 863 3518 1064 2513 1064 2513 863 | ||
55 | 2 2 0 1 -1 7 0 0 -1 0.000 0 0 -1 0 0 5 | ||
56 | 2513 1265 3518 1265 3518 1466 2513 1466 2513 1265 | ||
57 | 2 2 0 1 -1 7 0 0 -1 0.000 0 0 -1 0 0 5 | ||
58 | 2513 1668 3518 1668 3518 1869 2513 1869 2513 1668 | ||
59 | 2 2 0 1 -1 7 0 0 -1 0.000 0 0 -1 0 0 5 | ||
60 | 2513 2070 3518 2070 3518 2271 2513 2271 2513 2070 | ||
61 | 2 2 0 1 -1 7 0 0 -1 0.000 0 0 -1 0 0 5 | ||
62 | 2513 2472 3518 2472 3518 2673 2513 2673 2513 2472 | ||
63 | 2 2 0 1 -1 7 0 0 41 0.000 0 0 -1 0 0 5 | ||
64 | 1408 59 2312 59 2312 260 1408 260 1408 59 | ||
65 | 2 2 0 1 -1 7 0 0 41 0.000 0 0 -1 0 0 5 | ||
66 | 2513 59 2614 59 2614 260 2513 260 2513 59 | ||
67 | 2 2 0 1 -1 7 0 0 41 0.000 0 0 -1 0 0 5 | ||
68 | 1408 461 1609 461 1609 662 1408 662 1408 461 | ||
69 | 2 2 0 1 -1 7 0 0 41 0.000 0 0 -1 0 0 5 | ||
70 | 1709 461 1810 461 1810 662 1709 662 1709 461 | ||
71 | 2 2 0 1 -1 7 0 0 41 0.000 0 0 -1 0 0 5 | ||
72 | 2011 461 2312 461 2312 662 2011 662 2011 461 | ||
73 | 2 2 0 1 -1 7 0 0 41 0.000 0 0 -1 0 0 5 | ||
74 | 2513 461 2614 461 2614 662 2513 662 2513 461 | ||
75 | 2 2 0 1 -1 7 0 0 41 0.000 0 0 -1 0 0 5 | ||
76 | 2815 461 2915 461 2915 662 2815 662 2815 461 | ||
77 | 2 2 0 1 -1 7 0 0 41 0.000 0 0 -1 0 0 5 | ||
78 | 3016 461 3218 461 3218 662 3016 662 3016 461 | ||
79 | 2 2 0 1 -1 7 0 0 41 0.000 0 0 -1 0 0 5 | ||
80 | 1306 863 1609 863 1609 1064 1306 1064 1306 863 | ||
81 | 2 2 0 1 -1 7 0 0 41 0.000 0 0 -1 0 0 5 | ||
82 | 1709 863 1810 863 1810 1064 1709 1064 1709 863 | ||
83 | 2 2 0 1 -1 7 0 0 41 0.000 0 0 -1 0 0 5 | ||
84 | 2011 863 2111 863 2111 1064 2011 1064 2011 863 | ||
85 | 2 2 0 1 -1 7 0 0 41 0.000 0 0 -1 0 0 5 | ||
86 | 2212 863 2312 863 2312 1064 2212 1064 2212 863 | ||
87 | 2 2 0 1 -1 7 0 0 41 0.000 0 0 -1 0 0 5 | ||
88 | 2815 863 2915 863 2915 1064 2815 1064 2815 863 | ||
89 | 2 2 0 1 -1 7 0 0 41 0.000 0 0 -1 0 0 5 | ||
90 | 3016 863 3218 863 3218 1064 3016 1064 3016 863 | ||
91 | 2 2 0 1 -1 7 0 0 41 0.000 0 0 -1 0 0 5 | ||
92 | 3317 863 3419 863 3419 1064 3317 1064 3317 863 | ||
93 | 2 2 0 1 -1 7 0 0 41 0.000 0 0 -1 0 0 5 | ||
94 | 1910 1265 2011 1265 2011 1265 1910 1265 1910 1265 | ||
95 | 2 2 0 1 -1 7 0 0 41 0.000 0 0 -1 0 0 5 | ||
96 | 2513 2472 3518 2472 3518 2673 2513 2673 2513 2472 | ||
97 | 2 2 0 1 -1 7 0 0 41 0.000 0 0 -1 0 0 5 | ||
98 | 1507 1265 1609 1265 1609 1466 1507 1466 1507 1265 | ||
99 | 2 2 0 1 -1 7 0 0 41 0.000 0 0 -1 0 0 5 | ||
100 | 1709 1265 1810 1265 1810 1466 1709 1466 1709 1265 | ||
101 | 2 2 0 1 -1 7 0 0 61 0.000 0 0 -1 0 0 5 | ||
102 | 1306 1265 1408 1265 1408 1466 1306 1466 1306 1265 | ||
103 | 2 2 0 1 -1 7 0 0 41 0.000 0 0 -1 0 0 5 | ||
104 | 2011 1265 2111 1265 2111 1466 2011 1466 2011 1265 | ||
105 | 2 2 0 1 -1 7 0 0 61 0.000 0 0 -1 0 0 5 | ||
106 | 1609 1265 1709 1265 1709 1466 1609 1466 1609 1265 | ||
107 | 2 2 0 1 -1 7 0 0 61 0.000 0 0 -1 0 0 5 | ||
108 | 1810 1265 2011 1265 2011 1466 1810 1466 1810 1265 | ||
109 | 2 2 0 1 -1 7 0 0 41 0.000 0 0 -1 0 0 5 | ||
110 | 1507 1668 1609 1668 1609 1869 1507 1869 1507 1668 | ||
111 | 2 2 0 1 -1 7 0 0 41 0.000 0 0 -1 0 0 5 | ||
112 | 1709 1668 1810 1668 1810 1869 1709 1869 1709 1668 | ||
113 | 2 2 0 1 -1 7 0 0 61 0.000 0 0 -1 0 0 5 | ||
114 | 1609 1668 1709 1668 1709 1869 1609 1869 1609 1668 | ||
115 | 2 2 0 1 -1 7 0 0 61 0.000 0 0 -1 0 0 5 | ||
116 | 1810 1668 2011 1668 2011 1869 1810 1869 1810 1668 | ||
117 | 2 2 0 1 -1 7 0 0 41 0.000 0 0 -1 0 0 5 | ||
118 | 3218 1668 3518 1668 3518 1869 3218 1869 3218 1668 | ||
119 | 2 2 0 1 -1 7 0 0 41 0.000 0 0 -1 0 0 5 | ||
120 | 2513 1668 2714 1668 2714 1869 2513 1869 2513 1668 | ||
121 | 2 2 0 1 -1 7 0 0 41 0.000 0 0 -1 0 0 5 | ||
122 | 3317 1265 3518 1265 3518 1466 3317 1466 3317 1265 | ||
123 | 2 2 0 1 -1 7 0 0 61 0.000 0 0 -1 0 0 5 | ||
124 | 1306 2070 1408 2070 1408 2271 1306 2271 1306 2070 | ||
125 | 2 2 0 1 -1 7 0 0 61 0.000 0 0 -1 0 0 5 | ||
126 | 1609 2070 1709 2070 1709 2271 1609 2271 1609 2070 | ||
127 | 2 2 0 1 -1 7 0 0 61 0.000 0 0 -1 0 0 5 | ||
128 | 1810 2271 2011 2271 2011 2070 1810 2070 1810 2271 | ||
129 | 2 2 0 1 -1 7 0 0 61 0.000 0 0 -1 0 0 5 | ||
130 | 2111 2070 2312 2070 2312 2271 2111 2271 2111 2070 | ||
131 | 2 2 0 1 -1 7 0 0 41 0.000 0 0 -1 0 0 5 | ||
132 | 2614 2070 2815 2070 2815 2271 2614 2271 2614 2070 | ||
133 | 2 2 0 1 -1 7 0 0 41 0.000 0 0 -1 0 0 5 | ||
134 | 2915 2070 3016 2070 3016 2271 2915 2271 2915 2070 | ||
135 | 2 2 0 1 -1 7 0 0 41 0.000 0 0 -1 0 0 5 | ||
136 | 3218 2070 3317 2070 3317 2271 3218 2271 3218 2070 | ||
137 | 2 2 0 1 -1 7 0 0 41 0.000 0 0 -1 0 0 5 | ||
138 | 3720 2472 4725 2472 4725 2673 3720 2673 3720 2472 | ||
139 | 2 2 0 1 -1 7 0 0 41 0.000 0 0 -1 0 0 5 | ||
140 | 3720 2070 4122 2070 4122 2271 3720 2271 3720 2070 | ||
141 | 2 2 0 1 -1 7 0 0 41 0.000 0 0 -1 0 0 5 | ||
142 | 3720 1869 4122 1869 4122 1668 3720 1668 3720 1869 | ||
143 | 2 2 0 1 -1 7 0 0 41 0.000 0 0 -1 0 0 5 | ||
144 | 3720 1466 3921 1466 3921 1265 3720 1265 3720 1466 | ||
145 | 2 2 0 1 -1 7 0 0 41 0.000 0 0 -1 0 0 5 | ||
146 | 3720 1064 4122 1064 4122 863 3720 863 3720 1064 | ||
147 | 2 2 0 1 -1 7 0 0 41 0.000 0 0 -1 0 0 5 | ||
148 | 3720 662 4122 662 4122 461 3720 461 3720 662 | ||
149 | 2 2 0 1 -1 7 0 0 41 0.000 0 0 -1 0 0 5 | ||
150 | 3720 59 3820 59 3820 260 3720 260 3720 59 | ||
151 | 4 0 -1 0 0 0 4 0.0000 4 15 36 1207 2170 =\001 | ||
152 | 4 0 -1 0 0 0 4 0.0000 4 15 36 1207 1768 =\001 | ||
153 | 4 0 -1 0 0 0 4 0.0000 4 15 36 1207 1366 =\001 | ||
154 | 4 0 -1 0 0 0 4 0.0000 4 15 36 1207 964 =\001 | ||
155 | 4 0 -1 0 0 0 4 0.0000 4 15 36 1207 562 =\001 | ||
156 | 4 0 -1 0 0 0 4 0.0000 4 15 36 1207 160 =\001 | ||
157 | 4 0 -1 0 0 0 4 0.0000 4 46 65 0 160 F0\001 | ||
158 | 4 0 -1 0 0 0 4 0.0000 4 46 65 0 562 F1\001 | ||
159 | 4 0 -1 0 0 0 4 0.0000 4 46 65 0 964 F2\001 | ||
160 | 4 0 -1 0 0 0 4 0.0000 4 46 65 0 1366 F4\001 | ||
161 | 4 0 -1 0 0 0 4 0.0000 4 46 65 0 1768 F5\001 | ||
162 | 4 0 -1 0 0 0 4 0.0000 4 46 65 0 2170 F6\001 | ||
163 | 4 0 -1 0 0 0 4 0.0000 4 46 65 0 2572 F7\001 | ||
164 | 4 0 -1 0 0 0 4 0.0000 4 15 36 1207 2572 =\001 | ||
165 | 4 0 -1 0 0 5 11 0.0000 0 95 1005 101 260 DISULPHIDE\001 | ||
166 | 4 0 -1 0 0 5 11 0.0000 0 95 1005 101 662 BISULPHIDE\001 | ||
167 | 4 0 -1 0 0 5 11 0.0000 0 95 1005 101 1064 DISELENIDE\001 | ||
168 | 4 0 -1 0 0 5 11 0.0000 0 95 1005 101 1466 DISULPHINE\001 | ||
169 | 4 0 -1 0 0 5 11 0.0000 0 95 1005 101 1869 ESSELENIAN\001 | ||
170 | 4 0 -1 0 0 5 11 0.0000 0 95 1005 101 2271 DISULPHONE\001 | ||
171 | 4 0 -1 0 0 5 11 0.0000 0 95 1005 101 2673 TROEZENIAN\001 | ||
172 | 4 0 -1 0 0 5 11 0.0000 0 95 905 1408 260 ISULPHIDE\001 | ||
173 | 4 0 -1 0 0 5 11 0.0000 0 95 101 2513 260 D\001 | ||
174 | 4 0 -1 0 0 5 11 0.0000 0 95 201 1408 662 IS\001 | ||
175 | 4 0 -1 0 0 5 11 0.0000 0 95 101 1709 662 L\001 | ||
176 | 4 0 -1 0 0 5 11 0.0000 0 95 302 2011 662 IDE\001 | ||
177 | 4 0 -1 0 0 5 11 0.0000 0 95 101 2513 662 B\001 | ||
178 | 4 0 -1 0 0 5 11 0.0000 0 95 101 2815 662 U\001 | ||
179 | 4 0 -1 0 0 5 11 0.0000 0 95 201 3016 662 PH\001 | ||
180 | 4 0 -1 0 0 5 11 0.0000 0 95 603 2815 1064 E EN D\001 | ||
181 | 4 0 -1 0 0 5 11 0.0000 0 95 1005 1306 1064 DIS L I E\001 | ||
182 | 4 0 -1 0 0 5 11 0.0000 0 95 1005 2513 2673 TROEZENIAN\001 | ||
183 | 4 0 -1 0 0 5 11 0.0000 0 95 201 2513 1869 ES\001 | ||
184 | 4 0 -1 0 0 5 11 0.0000 0 95 302 3218 1869 IAN\001 | ||
185 | 4 0 -1 0 0 5 11 0.0000 0 95 503 1507 1869 SELEN\001 | ||
186 | 4 0 -1 0 0 5 11 0.0000 0 95 804 1306 1466 DISULPHI\001 | ||
187 | 4 0 -1 0 0 5 11 0.0000 0 95 201 3317 1466 NE\001 | ||
188 | 4 0 -1 0 0 5 11 0.0000 0 95 1005 1306 2271 D U PH NE\001 | ||
189 | 4 0 -1 0 0 5 11 0.0000 0 95 804 2513 2271 IS U O\001 | ||
190 | 4 0 -1 0 0 12 11 0.0000 4 101 704 302 2874 Actual \001 | ||
191 | 4 0 -1 0 0 12 11 0.0000 4 101 402 302 3035 File\001 | ||
192 | 4 0 -1 0 0 12 11 0.0000 4 125 402 1507 2874 Copy\001 | ||
193 | 4 0 -1 0 0 12 11 0.0000 4 125 804 1507 3035 Segments\001 | ||
194 | 4 0 -1 0 0 12 11 0.0000 4 95 603 2714 2849 Insert\001 | ||
195 | 4 0 -1 0 0 12 11 0.0000 4 125 804 2714 3010 Segments\001 | ||
196 | 4 0 -1 0 0 12 11 0.0000 4 131 804 3921 2874 Physical\001 | ||
197 | 4 0 -1 0 0 12 11 0.0000 4 125 704 3921 3035 Storage\001 | ||
198 | -6 | ||
diff --git a/xdelta1/doc/old/dcc99/figs/xdarchive.fig.normalsize b/xdelta1/doc/old/dcc99/figs/xdarchive.fig.normalsize deleted file mode 100755 index 2a97991..0000000 --- a/xdelta1/doc/old/dcc99/figs/xdarchive.fig.normalsize +++ /dev/null | |||
@@ -1,196 +0,0 @@ | |||
1 | #FIG 3.1 | ||
2 | Landscape | ||
3 | Center | ||
4 | Inches | ||
5 | 1200 2 | ||
6 | 2 2 2 1 -1 7 0 0 -1 3.000 0 0 -1 0 0 5 | ||
7 | 600 600 3600 600 3600 1200 600 1200 600 600 | ||
8 | 2 2 2 1 -1 7 0 0 -1 3.000 0 0 -1 0 0 5 | ||
9 | 600 1800 3600 1800 3600 2400 600 2400 600 1800 | ||
10 | 2 2 2 1 -1 7 0 0 -1 3.000 0 0 -1 0 0 5 | ||
11 | 600 3000 3600 3000 3600 3600 600 3600 600 3000 | ||
12 | 2 2 2 1 -1 7 0 0 -1 3.000 0 0 -1 0 0 5 | ||
13 | 600 4200 3600 4200 3600 4800 600 4800 600 4200 | ||
14 | 2 2 2 1 -1 7 0 0 -1 3.000 0 0 -1 0 0 5 | ||
15 | 600 5400 3600 5400 3600 6000 600 6000 600 5400 | ||
16 | 2 2 0 1 -1 7 0 0 -1 0.000 0 0 -1 0 0 5 | ||
17 | 600 7800 3600 7800 3600 8400 600 8400 600 7800 | ||
18 | 2 2 0 1 -1 7 0 0 41 0.000 0 0 -1 0 0 5 | ||
19 | 600 5400 3600 5400 3600 6000 600 6000 600 5400 | ||
20 | 2 2 0 1 -1 7 0 0 41 0.000 0 0 -1 0 0 5 | ||
21 | 600 4200 3600 4200 3600 4800 600 4800 600 4200 | ||
22 | 2 2 0 1 -1 7 0 0 41 0.000 0 0 -1 0 0 5 | ||
23 | 600 3000 3600 3000 3600 3600 600 3600 600 3000 | ||
24 | 2 2 0 1 -1 7 0 0 41 0.000 0 0 -1 0 0 5 | ||
25 | 600 1800 3600 1800 3600 2400 600 2400 600 1800 | ||
26 | 2 2 0 1 -1 7 0 0 41 0.000 0 0 -1 0 0 5 | ||
27 | 600 600 3600 600 3600 1200 600 1200 600 600 | ||
28 | 2 2 0 1 -1 7 0 0 20 0.000 0 0 -1 0 0 5 | ||
29 | 600 7800 3600 7800 3600 8400 600 8400 600 7800 | ||
30 | 2 2 0 1 -1 7 0 0 41 0.000 0 0 -1 0 0 5 | ||
31 | 600 7800 3600 7800 3600 8400 600 8400 600 7800 | ||
32 | 2 2 0 1 -1 7 0 0 41 0.000 0 0 -1 0 0 5 | ||
33 | 600 6600 3600 6600 3600 7200 600 7200 600 6600 | ||
34 | 2 2 0 1 -1 7 0 0 -1 0.000 0 0 -1 0 0 5 | ||
35 | 4200 600 7200 600 7200 1200 4200 1200 4200 600 | ||
36 | 2 2 0 1 -1 7 0 0 -1 0.000 0 0 -1 0 0 5 | ||
37 | 4200 1800 7200 1800 7200 2400 4200 2400 4200 1800 | ||
38 | 2 2 0 1 -1 7 0 0 -1 0.000 0 0 -1 0 0 5 | ||
39 | 4200 3000 7200 3000 7200 3600 4200 3600 4200 3000 | ||
40 | 2 2 0 1 -1 7 0 0 -1 0.000 0 0 -1 0 0 5 | ||
41 | 4200 4200 7200 4200 7200 4800 4200 4800 4200 4200 | ||
42 | 2 2 0 1 -1 7 0 0 -1 0.000 0 0 -1 0 0 5 | ||
43 | 4200 5400 7200 5400 7200 6000 4200 6000 4200 5400 | ||
44 | 2 2 0 1 -1 7 0 0 -1 0.000 0 0 -1 0 0 5 | ||
45 | 4200 6600 7200 6600 7200 7200 4200 7200 4200 6600 | ||
46 | 2 2 0 1 -1 7 0 0 -1 0.000 0 0 -1 0 0 5 | ||
47 | 4200 7800 7200 7800 7200 8400 4200 8400 4200 7800 | ||
48 | 2 2 0 1 -1 7 0 0 -1 0.000 0 0 -1 0 0 5 | ||
49 | 7800 600 10800 600 10800 1200 7800 1200 7800 600 | ||
50 | 2 2 0 1 -1 7 0 0 -1 0.000 0 0 -1 0 0 5 | ||
51 | 7800 1800 10800 1800 10800 2400 7800 2400 7800 1800 | ||
52 | 2 2 0 1 -1 7 0 0 -1 0.000 0 0 -1 0 0 5 | ||
53 | 7800 3000 10800 3000 10800 3600 7800 3600 7800 3000 | ||
54 | 2 2 0 1 -1 7 0 0 -1 0.000 0 0 -1 0 0 5 | ||
55 | 7800 4200 10800 4200 10800 4800 7800 4800 7800 4200 | ||
56 | 2 2 0 1 -1 7 0 0 -1 0.000 0 0 -1 0 0 5 | ||
57 | 7800 5400 10800 5400 10800 6000 7800 6000 7800 5400 | ||
58 | 2 2 0 1 -1 7 0 0 -1 0.000 0 0 -1 0 0 5 | ||
59 | 7800 6600 10800 6600 10800 7200 7800 7200 7800 6600 | ||
60 | 2 2 0 1 -1 7 0 0 -1 0.000 0 0 -1 0 0 5 | ||
61 | 7800 7800 10800 7800 10800 8400 7800 8400 7800 7800 | ||
62 | 2 2 0 1 -1 7 0 0 41 0.000 0 0 -1 0 0 5 | ||
63 | 4500 600 7200 600 7200 1200 4500 1200 4500 600 | ||
64 | 2 2 0 1 -1 7 0 0 41 0.000 0 0 -1 0 0 5 | ||
65 | 7800 600 8100 600 8100 1200 7800 1200 7800 600 | ||
66 | 2 2 0 1 -1 7 0 0 41 0.000 0 0 -1 0 0 5 | ||
67 | 4500 1800 5100 1800 5100 2400 4500 2400 4500 1800 | ||
68 | 2 2 0 1 -1 7 0 0 41 0.000 0 0 -1 0 0 5 | ||
69 | 5400 1800 5700 1800 5700 2400 5400 2400 5400 1800 | ||
70 | 2 2 0 1 -1 7 0 0 41 0.000 0 0 -1 0 0 5 | ||
71 | 6300 1800 7200 1800 7200 2400 6300 2400 6300 1800 | ||
72 | 2 2 0 1 -1 7 0 0 41 0.000 0 0 -1 0 0 5 | ||
73 | 7800 1800 8100 1800 8100 2400 7800 2400 7800 1800 | ||
74 | 2 2 0 1 -1 7 0 0 41 0.000 0 0 -1 0 0 5 | ||
75 | 8700 1800 9000 1800 9000 2400 8700 2400 8700 1800 | ||
76 | 2 2 0 1 -1 7 0 0 41 0.000 0 0 -1 0 0 5 | ||
77 | 9300 1800 9900 1800 9900 2400 9300 2400 9300 1800 | ||
78 | 2 2 0 1 -1 7 0 0 41 0.000 0 0 -1 0 0 5 | ||
79 | 4200 3000 5100 3000 5100 3600 4200 3600 4200 3000 | ||
80 | 2 2 0 1 -1 7 0 0 41 0.000 0 0 -1 0 0 5 | ||
81 | 5400 3000 5700 3000 5700 3600 5400 3600 5400 3000 | ||
82 | 2 2 0 1 -1 7 0 0 41 0.000 0 0 -1 0 0 5 | ||
83 | 6300 3000 6600 3000 6600 3600 6300 3600 6300 3000 | ||
84 | 2 2 0 1 -1 7 0 0 41 0.000 0 0 -1 0 0 5 | ||
85 | 6900 3000 7200 3000 7200 3600 6900 3600 6900 3000 | ||
86 | 2 2 0 1 -1 7 0 0 41 0.000 0 0 -1 0 0 5 | ||
87 | 8700 3000 9000 3000 9000 3600 8700 3600 8700 3000 | ||
88 | 2 2 0 1 -1 7 0 0 41 0.000 0 0 -1 0 0 5 | ||
89 | 9300 3000 9900 3000 9900 3600 9300 3600 9300 3000 | ||
90 | 2 2 0 1 -1 7 0 0 41 0.000 0 0 -1 0 0 5 | ||
91 | 10200 3000 10500 3000 10500 3600 10200 3600 10200 3000 | ||
92 | 2 2 0 1 -1 7 0 0 41 0.000 0 0 -1 0 0 5 | ||
93 | 6000 4200 6300 4200 6300 4200 6000 4200 6000 4200 | ||
94 | 2 2 0 1 -1 7 0 0 41 0.000 0 0 -1 0 0 5 | ||
95 | 7800 7800 10800 7800 10800 8400 7800 8400 7800 7800 | ||
96 | 2 2 0 1 -1 7 0 0 41 0.000 0 0 -1 0 0 5 | ||
97 | 4800 4200 5100 4200 5100 4800 4800 4800 4800 4200 | ||
98 | 2 2 0 1 -1 7 0 0 41 0.000 0 0 -1 0 0 5 | ||
99 | 5400 4200 5700 4200 5700 4800 5400 4800 5400 4200 | ||
100 | 2 2 0 1 -1 7 0 0 61 0.000 0 0 -1 0 0 5 | ||
101 | 4200 4200 4500 4200 4500 4800 4200 4800 4200 4200 | ||
102 | 2 2 0 1 -1 7 0 0 41 0.000 0 0 -1 0 0 5 | ||
103 | 6300 4200 6600 4200 6600 4800 6300 4800 6300 4200 | ||
104 | 2 2 0 1 -1 7 0 0 61 0.000 0 0 -1 0 0 5 | ||
105 | 5100 4200 5400 4200 5400 4800 5100 4800 5100 4200 | ||
106 | 2 2 0 1 -1 7 0 0 61 0.000 0 0 -1 0 0 5 | ||
107 | 5700 4200 6300 4200 6300 4800 5700 4800 5700 4200 | ||
108 | 2 2 0 1 -1 7 0 0 41 0.000 0 0 -1 0 0 5 | ||
109 | 4800 5400 5100 5400 5100 6000 4800 6000 4800 5400 | ||
110 | 2 2 0 1 -1 7 0 0 41 0.000 0 0 -1 0 0 5 | ||
111 | 5400 5400 5700 5400 5700 6000 5400 6000 5400 5400 | ||
112 | 2 2 0 1 -1 7 0 0 61 0.000 0 0 -1 0 0 5 | ||
113 | 5100 5400 5400 5400 5400 6000 5100 6000 5100 5400 | ||
114 | 2 2 0 1 -1 7 0 0 61 0.000 0 0 -1 0 0 5 | ||
115 | 5700 5400 6300 5400 6300 6000 5700 6000 5700 5400 | ||
116 | 2 2 0 1 -1 7 0 0 41 0.000 0 0 -1 0 0 5 | ||
117 | 9900 5400 10800 5400 10800 6000 9900 6000 9900 5400 | ||
118 | 2 2 0 1 -1 7 0 0 41 0.000 0 0 -1 0 0 5 | ||
119 | 7800 5400 8400 5400 8400 6000 7800 6000 7800 5400 | ||
120 | 2 2 0 1 -1 7 0 0 41 0.000 0 0 -1 0 0 5 | ||
121 | 10200 4200 10800 4200 10800 4800 10200 4800 10200 4200 | ||
122 | 2 2 0 1 -1 7 0 0 61 0.000 0 0 -1 0 0 5 | ||
123 | 4200 6600 4500 6600 4500 7200 4200 7200 4200 6600 | ||
124 | 2 2 0 1 -1 7 0 0 61 0.000 0 0 -1 0 0 5 | ||
125 | 5100 6600 5400 6600 5400 7200 5100 7200 5100 6600 | ||
126 | 2 2 0 1 -1 7 0 0 61 0.000 0 0 -1 0 0 5 | ||
127 | 5700 7200 6300 7200 6300 6600 5700 6600 5700 7200 | ||
128 | 2 2 0 1 -1 7 0 0 61 0.000 0 0 -1 0 0 5 | ||
129 | 6600 6600 7200 6600 7200 7200 6600 7200 6600 6600 | ||
130 | 2 2 0 1 -1 7 0 0 41 0.000 0 0 -1 0 0 5 | ||
131 | 8100 6600 8700 6600 8700 7200 8100 7200 8100 6600 | ||
132 | 2 2 0 1 -1 7 0 0 41 0.000 0 0 -1 0 0 5 | ||
133 | 9000 6600 9300 6600 9300 7200 9000 7200 9000 6600 | ||
134 | 2 2 0 1 -1 7 0 0 41 0.000 0 0 -1 0 0 5 | ||
135 | 9900 6600 10200 6600 10200 7200 9900 7200 9900 6600 | ||
136 | 2 2 0 1 -1 7 0 0 41 0.000 0 0 -1 0 0 5 | ||
137 | 11400 7800 14400 7800 14400 8400 11400 8400 11400 7800 | ||
138 | 2 2 0 1 -1 7 0 0 41 0.000 0 0 -1 0 0 5 | ||
139 | 11400 6600 12600 6600 12600 7200 11400 7200 11400 6600 | ||
140 | 2 2 0 1 -1 7 0 0 41 0.000 0 0 -1 0 0 5 | ||
141 | 11400 6000 12600 6000 12600 5400 11400 5400 11400 6000 | ||
142 | 2 2 0 1 -1 7 0 0 41 0.000 0 0 -1 0 0 5 | ||
143 | 11400 4800 12000 4800 12000 4200 11400 4200 11400 4800 | ||
144 | 2 2 0 1 -1 7 0 0 41 0.000 0 0 -1 0 0 5 | ||
145 | 11400 3600 12600 3600 12600 3000 11400 3000 11400 3600 | ||
146 | 2 2 0 1 -1 7 0 0 41 0.000 0 0 -1 0 0 5 | ||
147 | 11400 2400 12600 2400 12600 1800 11400 1800 11400 2400 | ||
148 | 2 2 0 1 -1 7 0 0 41 0.000 0 0 -1 0 0 5 | ||
149 | 11400 600 11700 600 11700 1200 11400 1200 11400 600 | ||
150 | 4 0 -1 0 0 0 12 0.0000 4 45 105 3900 6900 =\001 | ||
151 | 4 0 -1 0 0 0 12 0.0000 4 45 105 3900 5700 =\001 | ||
152 | 4 0 -1 0 0 0 12 0.0000 4 45 105 3900 4500 =\001 | ||
153 | 4 0 -1 0 0 0 12 0.0000 4 45 105 3900 3300 =\001 | ||
154 | 4 0 -1 0 0 0 12 0.0000 4 45 105 3900 2100 =\001 | ||
155 | 4 0 -1 0 0 0 12 0.0000 4 45 105 3900 900 =\001 | ||
156 | 4 0 -1 0 0 0 12 0.0000 4 135 195 300 900 F0\001 | ||
157 | 4 0 -1 0 0 0 12 0.0000 4 135 195 300 2100 F1\001 | ||
158 | 4 0 -1 0 0 0 12 0.0000 4 135 195 300 3300 F2\001 | ||
159 | 4 0 -1 0 0 0 12 0.0000 4 135 195 300 4500 F4\001 | ||
160 | 4 0 -1 0 0 0 12 0.0000 4 135 195 300 5700 F5\001 | ||
161 | 4 0 -1 0 0 0 12 0.0000 4 135 195 300 6900 F6\001 | ||
162 | 4 0 -1 0 0 0 12 0.0000 4 135 195 300 8100 F7\001 | ||
163 | 4 0 -1 0 0 0 12 0.0000 4 45 105 3900 8100 =\001 | ||
164 | 4 0 -1 0 0 5 34 0.0000 0 285 3000 600 1200 DISULPHIDE\001 | ||
165 | 4 0 -1 0 0 5 34 0.0000 0 285 3000 600 2400 BISULPHIDE\001 | ||
166 | 4 0 -1 0 0 5 34 0.0000 0 285 3000 600 3600 DISELENIDE\001 | ||
167 | 4 0 -1 0 0 5 34 0.0000 0 285 3000 600 4800 DISULPHINE\001 | ||
168 | 4 0 -1 0 0 5 34 0.0000 0 285 3000 600 6000 ESSELENIAN\001 | ||
169 | 4 0 -1 0 0 5 34 0.0000 0 285 3000 600 7200 DISULPHONE\001 | ||
170 | 4 0 -1 0 0 5 34 0.0000 0 285 3000 600 8400 TROEZENIAN\001 | ||
171 | 4 0 -1 0 0 5 34 0.0000 0 285 2700 4500 1200 ISULPHIDE\001 | ||
172 | 4 0 -1 0 0 5 34 0.0000 0 285 300 7800 1200 D\001 | ||
173 | 4 0 -1 0 0 5 34 0.0000 0 285 600 4500 2400 IS\001 | ||
174 | 4 0 -1 0 0 5 34 0.0000 0 285 300 5400 2400 L\001 | ||
175 | 4 0 -1 0 0 5 34 0.0000 0 285 900 6300 2400 IDE\001 | ||
176 | 4 0 -1 0 0 5 34 0.0000 0 285 300 7800 2400 B\001 | ||
177 | 4 0 -1 0 0 5 34 0.0000 0 285 300 8700 2400 U\001 | ||
178 | 4 0 -1 0 0 5 34 0.0000 0 285 600 9300 2400 PH\001 | ||
179 | 4 0 -1 0 0 5 34 0.0000 0 285 1800 8700 3600 E EN D\001 | ||
180 | 4 0 -1 0 0 5 34 0.0000 0 285 3000 4200 3600 DIS L I E\001 | ||
181 | 4 0 -1 0 0 5 34 0.0000 0 285 3000 7800 8400 TROEZENIAN\001 | ||
182 | 4 0 -1 0 0 5 34 0.0000 0 285 600 7800 6000 ES\001 | ||
183 | 4 0 -1 0 0 5 34 0.0000 0 285 900 9900 6000 IAN\001 | ||
184 | 4 0 -1 0 0 5 34 0.0000 0 285 1500 4800 6000 SELEN\001 | ||
185 | 4 0 -1 0 0 5 34 0.0000 0 285 2400 4200 4800 DISULPHI\001 | ||
186 | 4 0 -1 0 0 5 34 0.0000 0 285 600 10200 4800 NE\001 | ||
187 | 4 0 -1 0 0 5 34 0.0000 0 285 3000 4200 7200 D U PH NE\001 | ||
188 | 4 0 -1 0 0 5 34 0.0000 0 285 2400 7800 7200 IS U O\001 | ||
189 | 4 0 -1 0 0 12 34 0.0000 4 300 2100 1200 9000 Actual \001 | ||
190 | 4 0 -1 0 0 12 34 0.0000 4 300 1200 1200 9480 File\001 | ||
191 | 4 0 -1 0 0 12 34 0.0000 4 375 1200 4800 9000 Copy\001 | ||
192 | 4 0 -1 0 0 12 34 0.0000 4 375 2400 4800 9480 Segments\001 | ||
193 | 4 0 -1 0 0 12 34 0.0000 4 285 1800 8400 8925 Insert\001 | ||
194 | 4 0 -1 0 0 12 34 0.0000 4 375 2400 8400 9405 Segments\001 | ||
195 | 4 0 -1 0 0 12 34 0.0000 4 390 2400 12000 9000 Physical\001 | ||
196 | 4 0 -1 0 0 12 34 0.0000 4 375 2100 12000 9480 Storage\001 | ||
diff --git a/xdelta1/doc/old/dcc99/figs/xdelta.eps b/xdelta1/doc/old/dcc99/figs/xdelta.eps deleted file mode 100755 index 7950f15..0000000 --- a/xdelta1/doc/old/dcc99/figs/xdelta.eps +++ /dev/null | |||
@@ -1,200 +0,0 @@ | |||
1 | %!PS-Adobe-2.0 EPSF-2.0 | ||
2 | %%Title: xdelta.fig | ||
3 | %%Creator: fig2dev Version 3.1 Patchlevel 2 | ||
4 | %%CreationDate: Mon May 4 03:46:54 1998 | ||
5 | %%For: jmacd@icw.EECS.Berkeley.EDU (Josh MacDonald,,,,ARN) | ||
6 | %Magnification: 1.00 | ||
7 | %%Orientation: Portrait | ||
8 | %%BoundingBox: 0 0 302 29 | ||
9 | %%Pages: 0 | ||
10 | %%BeginSetup | ||
11 | %%IncludeFeature: *PageSize Letter | ||
12 | %%EndSetup | ||
13 | %%EndComments | ||
14 | /$F2psDict 200 dict def | ||
15 | $F2psDict begin | ||
16 | $F2psDict /mtrx matrix put | ||
17 | /col-1 {0 setgray} bind def | ||
18 | /col0 {0.000 0.000 0.000 srgb} bind def | ||
19 | /col1 {0.000 0.000 1.000 srgb} bind def | ||
20 | /col2 {0.000 1.000 0.000 srgb} bind def | ||
21 | /col3 {0.000 1.000 1.000 srgb} bind def | ||
22 | /col4 {1.000 0.000 0.000 srgb} bind def | ||
23 | /col5 {1.000 0.000 1.000 srgb} bind def | ||
24 | /col6 {1.000 1.000 0.000 srgb} bind def | ||
25 | /col7 {1.000 1.000 1.000 srgb} bind def | ||
26 | /col8 {0.000 0.000 0.560 srgb} bind def | ||
27 | /col9 {0.000 0.000 0.690 srgb} bind def | ||
28 | /col10 {0.000 0.000 0.820 srgb} bind def | ||
29 | /col11 {0.530 0.810 1.000 srgb} bind def | ||
30 | /col12 {0.000 0.560 0.000 srgb} bind def | ||
31 | /col13 {0.000 0.690 0.000 srgb} bind def | ||
32 | /col14 {0.000 0.820 0.000 srgb} bind def | ||
33 | /col15 {0.000 0.560 0.560 srgb} bind def | ||
34 | /col16 {0.000 0.690 0.690 srgb} bind def | ||
35 | /col17 {0.000 0.820 0.820 srgb} bind def | ||
36 | /col18 {0.560 0.000 0.000 srgb} bind def | ||
37 | /col19 {0.690 0.000 0.000 srgb} bind def | ||
38 | /col20 {0.820 0.000 0.000 srgb} bind def | ||
39 | /col21 {0.560 0.000 0.560 srgb} bind def | ||
40 | /col22 {0.690 0.000 0.690 srgb} bind def | ||
41 | /col23 {0.820 0.000 0.820 srgb} bind def | ||
42 | /col24 {0.500 0.190 0.000 srgb} bind def | ||
43 | /col25 {0.630 0.250 0.000 srgb} bind def | ||
44 | /col26 {0.750 0.380 0.000 srgb} bind def | ||
45 | /col27 {1.000 0.500 0.500 srgb} bind def | ||
46 | /col28 {1.000 0.630 0.630 srgb} bind def | ||
47 | /col29 {1.000 0.750 0.750 srgb} bind def | ||
48 | /col30 {1.000 0.880 0.880 srgb} bind def | ||
49 | /col31 {1.000 0.840 0.000 srgb} bind def | ||
50 | |||
51 | end | ||
52 | save | ||
53 | -8.0 39.0 translate | ||
54 | 1 -1 scale | ||
55 | |||
56 | /cp {closepath} bind def | ||
57 | /ef {eofill} bind def | ||
58 | /gr {grestore} bind def | ||
59 | /gs {gsave} bind def | ||
60 | /sa {save} bind def | ||
61 | /rs {restore} bind def | ||
62 | /l {lineto} bind def | ||
63 | /m {moveto} bind def | ||
64 | /rm {rmoveto} bind def | ||
65 | /n {newpath} bind def | ||
66 | /s {stroke} bind def | ||
67 | /sh {show} bind def | ||
68 | /slc {setlinecap} bind def | ||
69 | /slj {setlinejoin} bind def | ||
70 | /slw {setlinewidth} bind def | ||
71 | /srgb {setrgbcolor} bind def | ||
72 | /rot {rotate} bind def | ||
73 | /sc {scale} bind def | ||
74 | /sd {setdash} bind def | ||
75 | /ff {findfont} bind def | ||
76 | /sf {setfont} bind def | ||
77 | /scf {scalefont} bind def | ||
78 | /sw {stringwidth} bind def | ||
79 | /tr {translate} bind def | ||
80 | /tnt {dup dup currentrgbcolor | ||
81 | 4 -2 roll dup 1 exch sub 3 -1 roll mul add | ||
82 | 4 -2 roll dup 1 exch sub 3 -1 roll mul add | ||
83 | 4 -2 roll dup 1 exch sub 3 -1 roll mul add srgb} | ||
84 | bind def | ||
85 | /shd {dup dup currentrgbcolor 4 -2 roll mul 4 -2 roll mul | ||
86 | 4 -2 roll mul srgb} bind def | ||
87 | /DrawEllipse { | ||
88 | /endangle exch def | ||
89 | /startangle exch def | ||
90 | /yrad exch def | ||
91 | /xrad exch def | ||
92 | /y exch def | ||
93 | /x exch def | ||
94 | /savematrix mtrx currentmatrix def | ||
95 | x y tr xrad yrad sc 0 0 1 startangle endangle arc | ||
96 | closepath | ||
97 | savematrix setmatrix | ||
98 | } def | ||
99 | |||
100 | /$F2psBegin {$F2psDict begin /$F2psEnteredState save def} def | ||
101 | /$F2psEnd {$F2psEnteredState restore end} def | ||
102 | %%EndProlog | ||
103 | |||
104 | $F2psBegin | ||
105 | 10 setmiterlimit | ||
106 | n 0 792 m 0 0 l 612 0 l 612 792 l cp clip | ||
107 | 0.06000 0.06000 sc | ||
108 | 7.500 slw | ||
109 | % Rotated Ellipse | ||
110 | gs | ||
111 | 265 433 tr | ||
112 | -90.000 rot | ||
113 | n 0 0 54 54 0 360 DrawEllipse gs col7 0.00 shd ef gr gs col-1 s gr | ||
114 | gr | ||
115 | |||
116 | % Rotated Ellipse | ||
117 | gs | ||
118 | 1432 435 tr | ||
119 | -90.000 rot | ||
120 | n 0 0 54 54 0 360 DrawEllipse gs col7 0.00 shd ef gr gs col-1 s gr | ||
121 | gr | ||
122 | |||
123 | % Rotated Ellipse | ||
124 | gs | ||
125 | 2632 435 tr | ||
126 | -90.000 rot | ||
127 | n 0 0 54 54 0 360 DrawEllipse gs col7 0.00 shd ef gr gs col-1 s gr | ||
128 | gr | ||
129 | |||
130 | % Rotated Ellipse | ||
131 | gs | ||
132 | 3832 427 tr | ||
133 | -90.000 rot | ||
134 | n 0 0 54 54 0 360 DrawEllipse gs col7 0.00 shd ef gr gs col-1 s gr | ||
135 | gr | ||
136 | |||
137 | % Rotated Ellipse | ||
138 | gs | ||
139 | 5039 428 tr | ||
140 | -90.000 rot | ||
141 | n 0 0 54 54 0 360 DrawEllipse gs col7 0.00 shd ef gr gs col-1 s gr | ||
142 | gr | ||
143 | |||
144 | % Polyline | ||
145 | gs clippath | ||
146 | 4825 390 m 4945 420 l 4825 450 l 4987 450 l 4987 390 l cp clip | ||
147 | n 4972 420 m 3847 420 l gs col7 0.00 shd ef gr gs col-1 s gr gr | ||
148 | |||
149 | % arrowhead | ||
150 | n 4825 390 m 4945 420 l 4825 450 l 4825 420 l 4825 390 l cp gs 0.00 setgray ef gr col-1 s | ||
151 | % Polyline | ||
152 | gs clippath | ||
153 | 3625 390 m 3745 420 l 3625 450 l 3787 450 l 3787 390 l cp clip | ||
154 | n 3772 420 m 2647 420 l gs col7 0.00 shd ef gr gs col-1 s gr gr | ||
155 | |||
156 | % arrowhead | ||
157 | n 3625 390 m 3745 420 l 3625 450 l 3625 420 l 3625 390 l cp gs 0.00 setgray ef gr col-1 s | ||
158 | % Polyline | ||
159 | gs clippath | ||
160 | 2425 390 m 2545 420 l 2425 450 l 2587 450 l 2587 390 l cp clip | ||
161 | n 2572 420 m 1447 420 l gs col7 0.00 shd ef gr gs col-1 s gr gr | ||
162 | |||
163 | % arrowhead | ||
164 | n 2425 390 m 2545 420 l 2425 450 l 2425 420 l 2425 390 l cp gs 0.00 setgray ef gr col-1 s | ||
165 | % Polyline | ||
166 | gs clippath | ||
167 | 1225 390 m 1345 420 l 1225 450 l 1387 450 l 1387 390 l cp clip | ||
168 | n 1372 420 m 247 420 l gs col7 0.00 shd ef gr gs col-1 s gr gr | ||
169 | |||
170 | % arrowhead | ||
171 | n 1225 390 m 1345 420 l 1225 450 l 1225 420 l 1225 390 l cp gs 0.00 setgray ef gr col-1 s | ||
172 | /Times-Roman ff 180.00 scf sf | ||
173 | 1957 615 m | ||
174 | gs 1 -1 sc (d3) col-1 sh gr | ||
175 | /Times-Roman ff 180.00 scf sf | ||
176 | 750 607 m | ||
177 | gs 1 -1 sc (d4) col-1 sh gr | ||
178 | /Times-Roman ff 180.00 scf sf | ||
179 | 3157 607 m | ||
180 | gs 1 -1 sc (d2) col-1 sh gr | ||
181 | /Times-Roman ff 180.00 scf sf | ||
182 | 4349 608 m | ||
183 | gs 1 -1 sc (d1) col-1 sh gr | ||
184 | /Times-Roman ff 180.00 scf sf | ||
185 | 2527 277 m | ||
186 | gs 1 -1 sc (1.2) col-1 sh gr | ||
187 | /Times-Roman ff 180.00 scf sf | ||
188 | 1200 286 m | ||
189 | gs 1 -1 sc (1.1.1.2) col-1 sh gr | ||
190 | /Times-Roman ff 180.00 scf sf | ||
191 | 135 285 m | ||
192 | gs 1 -1 sc (1.3) col-1 sh gr | ||
193 | /Times-Roman ff 180.00 scf sf | ||
194 | 3599 285 m | ||
195 | gs 1 -1 sc (1.1.1.1) col-1 sh gr | ||
196 | /Times-Roman ff 180.00 scf sf | ||
197 | 4934 293 m | ||
198 | gs 1 -1 sc (1.1) col-1 sh gr | ||
199 | $F2psEnd | ||
200 | rs | ||
diff --git a/xdelta1/doc/old/dcc99/figs/xdelta.fig b/xdelta1/doc/old/dcc99/figs/xdelta.fig deleted file mode 100755 index 7562273..0000000 --- a/xdelta1/doc/old/dcc99/figs/xdelta.fig +++ /dev/null | |||
@@ -1,33 +0,0 @@ | |||
1 | #FIG 3.1 | ||
2 | Landscape | ||
3 | Center | ||
4 | Inches | ||
5 | 1200 2 | ||
6 | 6 135 142 5159 615 | ||
7 | 1 4 0 1 -1 7 0 0 0 0.000 1 1.5708 265 433 54 54 228 470 303 395 | ||
8 | 1 4 0 1 -1 7 0 0 0 0.000 1 1.5708 1432 435 54 54 1395 472 1470 397 | ||
9 | 1 4 0 1 -1 7 0 0 0 0.000 1 1.5708 2632 435 54 54 2595 472 2670 397 | ||
10 | 1 4 0 1 -1 7 0 0 0 0.000 1 1.5708 3832 427 54 54 3795 464 3870 389 | ||
11 | 1 4 0 1 -1 7 0 0 0 0.000 1 1.5708 5039 428 54 54 5002 465 5077 390 | ||
12 | 2 1 0 1 -1 7 0 0 0 0.000 0 0 -1 0 1 2 | ||
13 | 1 1 1.00 60.00 120.00 | ||
14 | 4972 420 3847 420 | ||
15 | 2 1 0 1 -1 7 0 0 0 0.000 0 0 -1 0 1 2 | ||
16 | 1 1 1.00 60.00 120.00 | ||
17 | 3772 420 2647 420 | ||
18 | 2 1 0 1 -1 7 0 0 0 0.000 0 0 -1 0 1 2 | ||
19 | 1 1 1.00 60.00 120.00 | ||
20 | 2572 420 1447 420 | ||
21 | 2 1 0 1 -1 7 0 0 0 0.000 0 0 -1 0 1 2 | ||
22 | 1 1 1.00 60.00 120.00 | ||
23 | 1372 420 247 420 | ||
24 | 4 0 -1 0 0 0 12 0.0000 4 135 180 1957 615 d3\001 | ||
25 | 4 0 -1 0 0 0 12 0.0000 4 135 180 750 607 d4\001 | ||
26 | 4 0 -1 0 0 0 12 0.0000 4 135 180 3157 607 d2\001 | ||
27 | 4 0 -1 0 0 0 12 0.0000 4 135 180 4349 608 d1\001 | ||
28 | 4 0 -1 0 0 0 12 0.0000 4 135 225 2527 277 1.2\001 | ||
29 | 4 0 -1 0 0 0 12 0.0000 4 135 495 1200 286 1.1.1.2\001 | ||
30 | 4 0 -1 0 0 0 12 0.0000 4 135 225 135 285 1.3\001 | ||
31 | 4 0 -1 0 0 0 12 0.0000 4 135 495 3599 285 1.1.1.1\001 | ||
32 | 4 0 -1 0 0 0 12 0.0000 4 135 225 4934 293 1.1\001 | ||
33 | -6 | ||
diff --git a/xdelta1/doc/old/dcc99/lcs.c b/xdelta1/doc/old/dcc99/lcs.c deleted file mode 100755 index 438a78f..0000000 --- a/xdelta1/doc/old/dcc99/lcs.c +++ /dev/null | |||
@@ -1,159 +0,0 @@ | |||
1 | /* * Last edited: Jun 9 11:06 1997 (jjh) */ | ||
2 | /* computes the length of the longest common subsequence of two files, | ||
3 | byte by byte. Outputs the length of the two files, the length | ||
4 | of the LCS, and the fragmentation of both files. | ||
5 | */ | ||
6 | |||
7 | #include <stdlib.h> | ||
8 | #include <stdio.h> | ||
9 | #include <sys/types.h> | ||
10 | #include <sys/stat.h> | ||
11 | #include <malloc.h> | ||
12 | |||
13 | #define EXIT_FAILURE 1 | ||
14 | #define EXIT_SUCCESS 0 | ||
15 | |||
16 | main(int argc, char *argv[]) | ||
17 | { | ||
18 | FILE *file1, *file2; | ||
19 | struct stat file1_stat, file2_stat; | ||
20 | off_t j, file1_size, file2_size; | ||
21 | off_t file1_fragmentation, file2_fragmentation; | ||
22 | int fileswitched; /* indicates whether the order of files was changed.*/ | ||
23 | |||
24 | unsigned char *file1_data; | ||
25 | off_t *LCS; | ||
26 | off_t oldbest; | ||
27 | register off_t newbest; | ||
28 | register int ci; | ||
29 | |||
30 | if (argc != 3) | ||
31 | { | ||
32 | fprintf(stderr, "%s file1 file2\n", argv[0]); | ||
33 | fprintf(stderr, "outputs on stdout the lengths of file1 and file2, \n"); | ||
34 | fprintf(stderr, "followed by the length of the "); | ||
35 | fprintf(stderr, "longest common subsequence of file1 and file2,\n"); | ||
36 | fprintf(stderr, "followed by the fragmentation (number of segments)\n"); | ||
37 | fprintf(stderr, | ||
38 | "induced by the longest common subsequence on both files.\n"); | ||
39 | exit(EXIT_FAILURE); | ||
40 | } | ||
41 | else if ((file1 = fopen(argv[1],"r")) == NULL) | ||
42 | { | ||
43 | fprintf(stderr, "Can't open %s\n", argv[1]); | ||
44 | exit(EXIT_FAILURE); | ||
45 | } | ||
46 | else if ((file2 = fopen(argv[2],"r")) == NULL) | ||
47 | { | ||
48 | fprintf(stderr,"Can't open %s\n",argv[2]); | ||
49 | exit(EXIT_FAILURE); | ||
50 | } | ||
51 | |||
52 | fstat(fileno(file1),&file1_stat); | ||
53 | fstat(fileno(file2),&file2_stat); | ||
54 | file1_size=file1_stat.st_size; | ||
55 | file2_size=file2_stat.st_size; | ||
56 | |||
57 | if (file1_stat.st_size > file2_stat.st_size) | ||
58 | { | ||
59 | /* swap file to save space--size of file1 determines the space */ | ||
60 | FILE *filetmp; | ||
61 | off_t filetmp_size; | ||
62 | filetmp = file1; file1 = file2; file2 = filetmp; | ||
63 | filetmp_size = file1_size; file1_size = file2_size; | ||
64 | file2_size = filetmp_size; | ||
65 | fileswitched = 1; | ||
66 | } | ||
67 | else | ||
68 | { | ||
69 | fileswitched = 0; | ||
70 | } | ||
71 | |||
72 | if ((NULL == (LCS = (off_t *)malloc((unsigned)((file1_size + 1) * | ||
73 | sizeof(off_t)))))) | ||
74 | { | ||
75 | fprintf(stderr,"Can't allocate enough space (%d bytes needed)\n", | ||
76 | (file1_size + 1)*sizeof(off_t)); | ||
77 | exit(EXIT_FAILURE); | ||
78 | } | ||
79 | else if (NULL == (file1_data=(unsigned char *)malloc((unsigned)file1_size))) | ||
80 | { | ||
81 | fprintf(stderr,"Can't allocate enough space to load file.\n"); | ||
82 | exit(EXIT_FAILURE); | ||
83 | } | ||
84 | else if (fread(file1_data, 1, file1_size, file1) != file1_size) | ||
85 | { | ||
86 | fprintf(stderr, "File reading failed\n"); | ||
87 | exit(EXIT_FAILURE); | ||
88 | } | ||
89 | |||
90 | /* here starts the LCS algorithm */ | ||
91 | |||
92 | |||
93 | /* Initialize the array for computing the length */ | ||
94 | for (j = 0; j <= file1_size; j++) LCS[j] = 0; | ||
95 | file1_fragmentation = file2_fragmentation = 1; | ||
96 | oldbest = 1; /* sentinel to control counting of fragmentation */ | ||
97 | |||
98 | # ifdef DEBUG | ||
99 | printf(" "); | ||
100 | for (j = 0; j <= file1_size; j++) printf("%3c", file1_data[j]); | ||
101 | printf(" segments\n "); | ||
102 | for (j = 0; j <= file1_size; j++) printf("%3d", LCS[j]); | ||
103 | putchar('\n'); | ||
104 | # endif | ||
105 | |||
106 | while ((ci = getc(file2)) != EOF) | ||
107 | { | ||
108 | register off_t *jptr; | ||
109 | register unsigned char *current, *stop; | ||
110 | |||
111 | newbest = 0; | ||
112 | jptr = LCS; | ||
113 | # ifdef DEBUG | ||
114 | printf("%c %3d",ci,newbest); | ||
115 | # endif | ||
116 | for (current = file1_data, stop = file1_data + file1_size; | ||
117 | current < stop; | ||
118 | current++) | ||
119 | { | ||
120 | register off_t extendlength; | ||
121 | extendlength = *jptr + (ci == *current); | ||
122 | *jptr = newbest; /* write best value from last iter. */ | ||
123 | if (newbest < extendlength) newbest = extendlength; | ||
124 | jptr++; | ||
125 | if (newbest < *jptr) newbest = *jptr; | ||
126 | # ifdef DEBUG | ||
127 | printf("%3d", newbest); | ||
128 | # endif | ||
129 | } | ||
130 | |||
131 | /* update fragmentation of file2 */ | ||
132 | if (((*jptr == newbest) && (oldbest<*jptr)) || | ||
133 | ((*jptr < newbest) && (oldbest == *jptr))) | ||
134 | file2_fragmentation++; | ||
135 | |||
136 | oldbest = *jptr; | ||
137 | *jptr = newbest; | ||
138 | # ifdef DEBUG | ||
139 | printf(" %3d\n", file2_fragmentation); | ||
140 | # endif | ||
141 | } | ||
142 | |||
143 | /* determine fragmentation of file1*/ | ||
144 | for (j = 1;j<file1_size;j++) | ||
145 | { | ||
146 | if (((LCS[j] == LCS[j + 1]) && (LCS[j - 1] != LCS[j])) || | ||
147 | ((LCS[j] != LCS[j + 1]) && (LCS[j - 1] == LCS[j]))) | ||
148 | file1_fragmentation++; | ||
149 | } | ||
150 | |||
151 | if (!fileswitched) | ||
152 | printf("%d %d %d %d %d\n", file1_size, file2_size, | ||
153 | newbest, file1_fragmentation, file2_fragmentation); | ||
154 | else | ||
155 | printf("%d %d %d %d %d\n", file2_size, file1_size, | ||
156 | newbest, file2_fragmentation, file1_fragmentation); | ||
157 | |||
158 | exit(EXIT_SUCCESS); | ||
159 | } | ||
diff --git a/xdelta1/doc/old/dcc99/llncs.cls b/xdelta1/doc/old/dcc99/llncs.cls deleted file mode 100755 index 9a8d63b..0000000 --- a/xdelta1/doc/old/dcc99/llncs.cls +++ /dev/null | |||
@@ -1,1004 +0,0 @@ | |||
1 | % LLNCS DOCUMENT CLASS -- version 2.3 | ||
2 | % for LaTeX2e | ||
3 | % | ||
4 | \NeedsTeXFormat{LaTeX2e}[1995/12/01] | ||
5 | \ProvidesClass{llncs}[1998/03/25 v2.3 | ||
6 | ^^JLaTeX document class for Lecture Notes in Computer Science] | ||
7 | % Options | ||
8 | \let\if@envcntreset\iffalse | ||
9 | \DeclareOption{envcountreset}{\let\if@envcntreset\iftrue} | ||
10 | \DeclareOption{citeauthoryear}{\let\citeauthoryear=Y} | ||
11 | \DeclareOption{oribibl}{\let\oribibl=Y} | ||
12 | \let\if@envcntsame\iffalse | ||
13 | \DeclareOption{envcountsame}{\let\if@envcntsame\iftrue} | ||
14 | \let\if@envcntsect\iffalse | ||
15 | \DeclareOption{envcountsect}{\let\if@envcntsect\iftrue} | ||
16 | \let\if@runhead\iffalse | ||
17 | \DeclareOption{runningheads}{\let\if@runhead\iftrue} | ||
18 | |||
19 | \let\if@openbib\iffalse | ||
20 | \DeclareOption{openbib}{\let\if@openbib\iftrue} | ||
21 | |||
22 | \DeclareOption*{\PassOptionsToClass{\CurrentOption}{article}} | ||
23 | |||
24 | \ProcessOptions | ||
25 | |||
26 | \LoadClass[twoside]{article} | ||
27 | \RequirePackage{multicol} % needed for the list of participants, index | ||
28 | |||
29 | \setlength{\textwidth}{12.2cm} | ||
30 | \setlength{\textheight}{19.3cm} | ||
31 | |||
32 | \renewcommand\small{% | ||
33 | \@setfontsize\small\@ixpt{11}% | ||
34 | \abovedisplayskip 8.5\p@ \@plus3\p@ \@minus4\p@ | ||
35 | \abovedisplayshortskip \z@ \@plus2\p@ | ||
36 | \belowdisplayshortskip 4\p@ \@plus2\p@ \@minus2\p@ | ||
37 | \def\@listi{\leftmargin\leftmargini | ||
38 | \parsep 0\p@ \@plus1\p@ \@minus\p@ | ||
39 | \topsep 8\p@ \@plus2\p@ \@minus4\p@ | ||
40 | \itemsep0\p@}% | ||
41 | \belowdisplayskip \abovedisplayskip | ||
42 | } | ||
43 | |||
44 | \frenchspacing | ||
45 | \widowpenalty=10000 | ||
46 | \clubpenalty=10000 | ||
47 | |||
48 | \setlength\oddsidemargin {63\p@} | ||
49 | \setlength\evensidemargin {63\p@} | ||
50 | \setlength\marginparwidth {90\p@} | ||
51 | |||
52 | \setlength\headsep {16\p@} | ||
53 | |||
54 | \setlength\footnotesep{7.7\p@} | ||
55 | \setlength\textfloatsep{8mm\@plus 2\p@ \@minus 4\p@} | ||
56 | \setlength\intextsep {8mm\@plus 2\p@ \@minus 2\p@} | ||
57 | |||
58 | |||
59 | %% JOSH SAYS | ||
60 | \setlength{\oddsidemargin}{0in} | ||
61 | \setlength{\evensidemargin}{0in} | ||
62 | \setlength{\headsep}{0pt} | ||
63 | \setlength{\topmargin}{0in} | ||
64 | \setlength{\textheight}{8.75in} | ||
65 | \setlength{\textwidth}{6.5in} | ||
66 | \setlength{\parindent}{1em} | ||
67 | \setlength{\parskip}{0.5ex} | ||
68 | %% END JOSH SAYS | ||
69 | |||
70 | \setcounter{secnumdepth}{2} | ||
71 | |||
72 | \newcounter {chapter} | ||
73 | \renewcommand\thechapter {\@arabic\c@chapter} | ||
74 | |||
75 | \newif\if@mainmatter \@mainmattertrue | ||
76 | \newcommand\frontmatter{\cleardoublepage | ||
77 | \@mainmatterfalse\pagenumbering{Roman}} | ||
78 | \newcommand\mainmatter{\cleardoublepage | ||
79 | \@mainmattertrue\pagenumbering{arabic}} | ||
80 | \newcommand\backmatter{\if@openright\cleardoublepage\else\clearpage\fi | ||
81 | \@mainmatterfalse} | ||
82 | |||
83 | \renewcommand\part{\cleardoublepage | ||
84 | \thispagestyle{empty}% | ||
85 | \if@twocolumn | ||
86 | \onecolumn | ||
87 | \@tempswatrue | ||
88 | \else | ||
89 | \@tempswafalse | ||
90 | \fi | ||
91 | \null\vfil | ||
92 | \secdef\@part\@spart} | ||
93 | |||
94 | \def\@part[#1]#2{% | ||
95 | \ifnum \c@secnumdepth >-2\relax | ||
96 | \refstepcounter{part}% | ||
97 | \addcontentsline{toc}{part}{\thepart\hspace{1em}#1}% | ||
98 | \else | ||
99 | \addcontentsline{toc}{part}{#1}% | ||
100 | \fi | ||
101 | \markboth{}{}% | ||
102 | {\centering | ||
103 | \interlinepenalty \@M | ||
104 | \normalfont | ||
105 | \ifnum \c@secnumdepth >-2\relax | ||
106 | \huge\bfseries \partname~\thepart | ||
107 | \par | ||
108 | \vskip 20\p@ | ||
109 | \fi | ||
110 | \Huge \bfseries #2\par}% | ||
111 | \@endpart} | ||
112 | \def\@spart#1{% | ||
113 | {\centering | ||
114 | \interlinepenalty \@M | ||
115 | \normalfont | ||
116 | \Huge \bfseries #1\par}% | ||
117 | \@endpart} | ||
118 | \def\@endpart{\vfil\newpage | ||
119 | \if@twoside | ||
120 | \null | ||
121 | \thispagestyle{empty}% | ||
122 | \newpage | ||
123 | \fi | ||
124 | \if@tempswa | ||
125 | \twocolumn | ||
126 | \fi} | ||
127 | |||
128 | \newcommand\chapter{\clearpage | ||
129 | \thispagestyle{empty}% | ||
130 | \global\@topnum\z@ | ||
131 | \@afterindentfalse | ||
132 | \secdef\@chapter\@schapter} | ||
133 | \def\@chapter[#1]#2{\ifnum \c@secnumdepth >\m@ne | ||
134 | \if@mainmatter | ||
135 | \refstepcounter{chapter}% | ||
136 | \typeout{\@chapapp\space\thechapter.}% | ||
137 | \addcontentsline{toc}{chapter}% | ||
138 | {\protect\numberline{\thechapter}#1}% | ||
139 | \else | ||
140 | \addcontentsline{toc}{chapter}{#1}% | ||
141 | \fi | ||
142 | \else | ||
143 | \addcontentsline{toc}{chapter}{#1}% | ||
144 | \fi | ||
145 | \chaptermark{#1}% | ||
146 | \addtocontents{lof}{\protect\addvspace{10\p@}}% | ||
147 | \addtocontents{lot}{\protect\addvspace{10\p@}}% | ||
148 | \if@twocolumn | ||
149 | \@topnewpage[\@makechapterhead{#2}]% | ||
150 | \else | ||
151 | \@makechapterhead{#2}% | ||
152 | \@afterheading | ||
153 | \fi} | ||
154 | \def\@makechapterhead#1{% | ||
155 | % \vspace*{50\p@}% | ||
156 | {\centering | ||
157 | \ifnum \c@secnumdepth >\m@ne | ||
158 | \if@mainmatter | ||
159 | \large\bfseries \@chapapp{} \thechapter | ||
160 | \par\nobreak | ||
161 | \vskip 20\p@ | ||
162 | \fi | ||
163 | \fi | ||
164 | \interlinepenalty\@M | ||
165 | \Large \bfseries #1\par\nobreak | ||
166 | \vskip 40\p@ | ||
167 | }} | ||
168 | \def\@schapter#1{\if@twocolumn | ||
169 | \@topnewpage[\@makeschapterhead{#1}]% | ||
170 | \else | ||
171 | \@makeschapterhead{#1}% | ||
172 | \@afterheading | ||
173 | \fi} | ||
174 | \def\@makeschapterhead#1{% | ||
175 | % \vspace*{50\p@}% | ||
176 | {\centering | ||
177 | \normalfont | ||
178 | \interlinepenalty\@M | ||
179 | \Large \bfseries #1\par\nobreak | ||
180 | \vskip 40\p@ | ||
181 | }} | ||
182 | |||
183 | \renewcommand\section{\@startsection{section}{1}{\z@}% | ||
184 | {-18\p@ \@plus -4\p@ \@minus -4\p@}% | ||
185 | {12\p@ \@plus 4\p@ \@minus 4\p@}% | ||
186 | {\normalfont\large\bfseries\boldmath | ||
187 | \rightskip=\z@ \@plus 8em\pretolerance=10000 }} | ||
188 | \renewcommand\subsection{\@startsection{subsection}{2}{\z@}% | ||
189 | {-18\p@ \@plus -4\p@ \@minus -4\p@}% | ||
190 | {8\p@ \@plus 4\p@ \@minus 4\p@}% | ||
191 | {\normalfont\normalsize\bfseries\boldmath | ||
192 | \rightskip=\z@ \@plus 8em\pretolerance=10000 }} | ||
193 | \renewcommand\subsubsection{\@startsection{subsubsection}{3}{\z@}% | ||
194 | {-18\p@ \@plus -4\p@ \@minus -4\p@}% | ||
195 | {-0.5em \@plus -0.22em \@minus -0.1em}% | ||
196 | {\normalfont\normalsize\bfseries\boldmath}} | ||
197 | \renewcommand\paragraph{\@startsection{paragraph}{4}{\z@}% | ||
198 | {-12\p@ \@plus -4\p@ \@minus -4\p@}% | ||
199 | {-0.5em \@plus -0.22em \@minus -0.1em}% | ||
200 | {\normalfont\normalsize\itshape}} | ||
201 | \renewcommand\subparagraph[1]{\typeout{LLNCS warning: You should not use | ||
202 | \string\subparagraph\space with this class}\vskip0.5cm | ||
203 | You should not use \verb|\subparagraph| with this class.\vskip0.5cm} | ||
204 | |||
205 | \DeclareMathSymbol{\Gamma}{\mathalpha}{letters}{"00} | ||
206 | \DeclareMathSymbol{\Delta}{\mathalpha}{letters}{"01} | ||
207 | \DeclareMathSymbol{\Theta}{\mathalpha}{letters}{"02} | ||
208 | \DeclareMathSymbol{\Lambda}{\mathalpha}{letters}{"03} | ||
209 | \DeclareMathSymbol{\Xi}{\mathalpha}{letters}{"04} | ||
210 | \DeclareMathSymbol{\Pi}{\mathalpha}{letters}{"05} | ||
211 | \DeclareMathSymbol{\Sigma}{\mathalpha}{letters}{"06} | ||
212 | \DeclareMathSymbol{\Upsilon}{\mathalpha}{letters}{"07} | ||
213 | \DeclareMathSymbol{\Phi}{\mathalpha}{letters}{"08} | ||
214 | \DeclareMathSymbol{\Psi}{\mathalpha}{letters}{"09} | ||
215 | \DeclareMathSymbol{\Omega}{\mathalpha}{letters}{"0A} | ||
216 | |||
217 | \let\footnotesize\small | ||
218 | |||
219 | \def\vec#1{\mathchoice{\mbox{\boldmath$\displaystyle#1$}} | ||
220 | {\mbox{\boldmath$\textstyle#1$}} | ||
221 | {\mbox{\boldmath$\scriptstyle#1$}} | ||
222 | {\mbox{\boldmath$\scriptscriptstyle#1$}}} | ||
223 | |||
224 | \def\squareforqed{\hbox{\rlap{$\sqcap$}$\sqcup$}} | ||
225 | \def\qed{\ifmmode\squareforqed\else{\unskip\nobreak\hfil | ||
226 | \penalty50\hskip1em\null\nobreak\hfil\squareforqed | ||
227 | \parfillskip=0pt\finalhyphendemerits=0\endgraf}\fi} | ||
228 | |||
229 | \def\getsto{\mathrel{\mathchoice {\vcenter{\offinterlineskip | ||
230 | \halign{\hfil | ||
231 | $\displaystyle##$\hfil\cr\gets\cr\to\cr}}} | ||
232 | {\vcenter{\offinterlineskip\halign{\hfil$\textstyle##$\hfil\cr\gets | ||
233 | \cr\to\cr}}} | ||
234 | {\vcenter{\offinterlineskip\halign{\hfil$\scriptstyle##$\hfil\cr\gets | ||
235 | \cr\to\cr}}} | ||
236 | {\vcenter{\offinterlineskip\halign{\hfil$\scriptscriptstyle##$\hfil\cr | ||
237 | \gets\cr\to\cr}}}}} | ||
238 | \def\lid{\mathrel{\mathchoice {\vcenter{\offinterlineskip\halign{\hfil | ||
239 | $\displaystyle##$\hfil\cr<\cr\noalign{\vskip1.2pt}=\cr}}} | ||
240 | {\vcenter{\offinterlineskip\halign{\hfil$\textstyle##$\hfil\cr<\cr | ||
241 | \noalign{\vskip1.2pt}=\cr}}} | ||
242 | {\vcenter{\offinterlineskip\halign{\hfil$\scriptstyle##$\hfil\cr<\cr | ||
243 | \noalign{\vskip1pt}=\cr}}} | ||
244 | {\vcenter{\offinterlineskip\halign{\hfil$\scriptscriptstyle##$\hfil\cr | ||
245 | <\cr | ||
246 | \noalign{\vskip0.9pt}=\cr}}}}} | ||
247 | \def\gid{\mathrel{\mathchoice {\vcenter{\offinterlineskip\halign{\hfil | ||
248 | $\displaystyle##$\hfil\cr>\cr\noalign{\vskip1.2pt}=\cr}}} | ||
249 | {\vcenter{\offinterlineskip\halign{\hfil$\textstyle##$\hfil\cr>\cr | ||
250 | \noalign{\vskip1.2pt}=\cr}}} | ||
251 | {\vcenter{\offinterlineskip\halign{\hfil$\scriptstyle##$\hfil\cr>\cr | ||
252 | \noalign{\vskip1pt}=\cr}}} | ||
253 | {\vcenter{\offinterlineskip\halign{\hfil$\scriptscriptstyle##$\hfil\cr | ||
254 | >\cr | ||
255 | \noalign{\vskip0.9pt}=\cr}}}}} | ||
256 | \def\grole{\mathrel{\mathchoice {\vcenter{\offinterlineskip | ||
257 | \halign{\hfil | ||
258 | $\displaystyle##$\hfil\cr>\cr\noalign{\vskip-1pt}<\cr}}} | ||
259 | {\vcenter{\offinterlineskip\halign{\hfil$\textstyle##$\hfil\cr | ||
260 | >\cr\noalign{\vskip-1pt}<\cr}}} | ||
261 | {\vcenter{\offinterlineskip\halign{\hfil$\scriptstyle##$\hfil\cr | ||
262 | >\cr\noalign{\vskip-0.8pt}<\cr}}} | ||
263 | {\vcenter{\offinterlineskip\halign{\hfil$\scriptscriptstyle##$\hfil\cr | ||
264 | >\cr\noalign{\vskip-0.3pt}<\cr}}}}} | ||
265 | \def\bbbr{{\rm I\!R}} %reelle Zahlen | ||
266 | \def\bbbm{{\rm I\!M}} | ||
267 | \def\bbbn{{\rm I\!N}} %natuerliche Zahlen | ||
268 | \def\bbbf{{\rm I\!F}} | ||
269 | \def\bbbh{{\rm I\!H}} | ||
270 | \def\bbbk{{\rm I\!K}} | ||
271 | \def\bbbp{{\rm I\!P}} | ||
272 | \def\bbbone{{\mathchoice {\rm 1\mskip-4mu l} {\rm 1\mskip-4mu l} | ||
273 | {\rm 1\mskip-4.5mu l} {\rm 1\mskip-5mu l}}} | ||
274 | \def\bbbc{{\mathchoice {\setbox0=\hbox{$\displaystyle\rm C$}\hbox{\hbox | ||
275 | to0pt{\kern0.4\wd0\vrule height0.9\ht0\hss}\box0}} | ||
276 | {\setbox0=\hbox{$\textstyle\rm C$}\hbox{\hbox | ||
277 | to0pt{\kern0.4\wd0\vrule height0.9\ht0\hss}\box0}} | ||
278 | {\setbox0=\hbox{$\scriptstyle\rm C$}\hbox{\hbox | ||
279 | to0pt{\kern0.4\wd0\vrule height0.9\ht0\hss}\box0}} | ||
280 | {\setbox0=\hbox{$\scriptscriptstyle\rm C$}\hbox{\hbox | ||
281 | to0pt{\kern0.4\wd0\vrule height0.9\ht0\hss}\box0}}}} | ||
282 | \def\bbbq{{\mathchoice {\setbox0=\hbox{$\displaystyle\rm | ||
283 | Q$}\hbox{\raise | ||
284 | 0.15\ht0\hbox to0pt{\kern0.4\wd0\vrule height0.8\ht0\hss}\box0}} | ||
285 | {\setbox0=\hbox{$\textstyle\rm Q$}\hbox{\raise | ||
286 | 0.15\ht0\hbox to0pt{\kern0.4\wd0\vrule height0.8\ht0\hss}\box0}} | ||
287 | {\setbox0=\hbox{$\scriptstyle\rm Q$}\hbox{\raise | ||
288 | 0.15\ht0\hbox to0pt{\kern0.4\wd0\vrule height0.7\ht0\hss}\box0}} | ||
289 | {\setbox0=\hbox{$\scriptscriptstyle\rm Q$}\hbox{\raise | ||
290 | 0.15\ht0\hbox to0pt{\kern0.4\wd0\vrule height0.7\ht0\hss}\box0}}}} | ||
291 | \def\bbbt{{\mathchoice {\setbox0=\hbox{$\displaystyle\rm | ||
292 | T$}\hbox{\hbox to0pt{\kern0.3\wd0\vrule height0.9\ht0\hss}\box0}} | ||
293 | {\setbox0=\hbox{$\textstyle\rm T$}\hbox{\hbox | ||
294 | to0pt{\kern0.3\wd0\vrule height0.9\ht0\hss}\box0}} | ||
295 | {\setbox0=\hbox{$\scriptstyle\rm T$}\hbox{\hbox | ||
296 | to0pt{\kern0.3\wd0\vrule height0.9\ht0\hss}\box0}} | ||
297 | {\setbox0=\hbox{$\scriptscriptstyle\rm T$}\hbox{\hbox | ||
298 | to0pt{\kern0.3\wd0\vrule height0.9\ht0\hss}\box0}}}} | ||
299 | \def\bbbs{{\mathchoice | ||
300 | {\setbox0=\hbox{$\displaystyle \rm S$}\hbox{\raise0.5\ht0\hbox | ||
301 | to0pt{\kern0.35\wd0\vrule height0.45\ht0\hss}\hbox | ||
302 | to0pt{\kern0.55\wd0\vrule height0.5\ht0\hss}\box0}} | ||
303 | {\setbox0=\hbox{$\textstyle \rm S$}\hbox{\raise0.5\ht0\hbox | ||
304 | to0pt{\kern0.35\wd0\vrule height0.45\ht0\hss}\hbox | ||
305 | to0pt{\kern0.55\wd0\vrule height0.5\ht0\hss}\box0}} | ||
306 | {\setbox0=\hbox{$\scriptstyle \rm S$}\hbox{\raise0.5\ht0\hbox | ||
307 | to0pt{\kern0.35\wd0\vrule height0.45\ht0\hss}\raise0.05\ht0\hbox | ||
308 | to0pt{\kern0.5\wd0\vrule height0.45\ht0\hss}\box0}} | ||
309 | {\setbox0=\hbox{$\scriptscriptstyle\rm S$}\hbox{\raise0.5\ht0\hbox | ||
310 | to0pt{\kern0.4\wd0\vrule height0.45\ht0\hss}\raise0.05\ht0\hbox | ||
311 | to0pt{\kern0.55\wd0\vrule height0.45\ht0\hss}\box0}}}} | ||
312 | \def\bbbz{{\mathchoice {\hbox{$\mathsf\textstyle Z\kern-0.4em Z$}} | ||
313 | {\hbox{$\mathsf\textstyle Z\kern-0.4em Z$}} | ||
314 | {\hbox{$\mathsf\scriptstyle Z\kern-0.3em Z$}} | ||
315 | {\hbox{$\mathsf\scriptscriptstyle Z\kern-0.2em Z$}}}} | ||
316 | |||
317 | \let\ts\, | ||
318 | |||
319 | \setlength\leftmargini {17\p@} | ||
320 | \setlength\leftmargin {\leftmargini} | ||
321 | \setlength\leftmarginii {\leftmargini} | ||
322 | \setlength\leftmarginiii {\leftmargini} | ||
323 | \setlength\leftmarginiv {\leftmargini} | ||
324 | \setlength \labelsep {.5em} | ||
325 | \setlength \labelwidth{\leftmargini} | ||
326 | \addtolength\labelwidth{-\labelsep} | ||
327 | |||
328 | \def\@listI{\leftmargin\leftmargini | ||
329 | \parsep 0\p@ \@plus1\p@ \@minus\p@ | ||
330 | \topsep 8\p@ \@plus2\p@ \@minus4\p@ | ||
331 | \itemsep0\p@} | ||
332 | \let\@listi\@listI | ||
333 | \@listi | ||
334 | \def\@listii {\leftmargin\leftmarginii | ||
335 | \labelwidth\leftmarginii | ||
336 | \advance\labelwidth-\labelsep | ||
337 | \topsep 0\p@ \@plus2\p@ \@minus\p@} | ||
338 | \def\@listiii{\leftmargin\leftmarginiii | ||
339 | \labelwidth\leftmarginiii | ||
340 | \advance\labelwidth-\labelsep | ||
341 | \topsep 0\p@ \@plus\p@\@minus\p@ | ||
342 | \parsep \z@ | ||
343 | \partopsep \p@ \@plus\z@ \@minus\p@} | ||
344 | |||
345 | \renewcommand\labelitemi{\normalfont\bfseries --} | ||
346 | \renewcommand\labelitemii{$\m@th\bullet$} | ||
347 | |||
348 | \setlength\arraycolsep{1.4\p@} | ||
349 | \setlength\tabcolsep{1.4\p@} | ||
350 | |||
351 | \def\tableofcontents{\chapter*{\contentsname\@mkboth{{\contentsname}}% | ||
352 | {{\contentsname}}} | ||
353 | \def\authcount##1{\setcounter{auco}{##1}\setcounter{@auth}{1}} | ||
354 | \def\lastand{\ifnum\value{auco}=2\relax | ||
355 | \unskip{} \andname\ | ||
356 | \else | ||
357 | \unskip \lastandname\ | ||
358 | \fi}% | ||
359 | \def\and{\stepcounter{@auth}\relax | ||
360 | \ifnum\value{@auth}=\value{auco}% | ||
361 | \lastand | ||
362 | \else | ||
363 | \unskip, | ||
364 | \fi}% | ||
365 | \@starttoc{toc}\if@restonecol\twocolumn\fi} | ||
366 | |||
367 | \def\l@part#1#2{\addpenalty{\@secpenalty}% | ||
368 | \addvspace{2em plus\p@}% % space above part line | ||
369 | \begingroup | ||
370 | \parindent \z@ | ||
371 | \rightskip \z@ plus 5em | ||
372 | \hrule\vskip5pt | ||
373 | \bfseries\boldmath % set line in boldface | ||
374 | \leavevmode % TeX command to enter horizontal mode. | ||
375 | #1\par | ||
376 | \vskip5pt | ||
377 | \hrule | ||
378 | \vskip1pt | ||
379 | \nobreak % Never break after part entry | ||
380 | \endgroup} | ||
381 | |||
382 | \def\@dotsep{2} | ||
383 | |||
384 | \def\hyperhrefextend{\ifx\hyper@anchor\@undefined\else | ||
385 | {chapter.\thechapter}\fi} | ||
386 | |||
387 | \def\addnumcontentsmark#1#2#3{% | ||
388 | \addtocontents{#1}{\protect\contentsline{#2}{\protect\numberline | ||
389 | {\thechapter}#3}{\thepage}\hyperhrefextend}} | ||
390 | \def\addcontentsmark#1#2#3{% | ||
391 | \addtocontents{#1}{\protect\contentsline{#2}{#3}{\thepage}\hyperhrefextend}} | ||
392 | \def\addcontentsmarkwop#1#2#3{% | ||
393 | \addtocontents{#1}{\protect\contentsline{#2}{#3}{0}\hyperhrefextend}} | ||
394 | |||
395 | \def\@adcmk[#1]{\ifcase #1 \or | ||
396 | \def\@gtempa{\addnumcontentsmark}% | ||
397 | \or \def\@gtempa{\addcontentsmark}% | ||
398 | \or \def\@gtempa{\addcontentsmarkwop}% | ||
399 | \fi\@gtempa{toc}{chapter}} | ||
400 | \def\addtocmark{\@ifnextchar[{\@adcmk}{\@adcmk[3]}} | ||
401 | |||
402 | \def\l@chapter#1#2{\addpenalty{-\@highpenalty} | ||
403 | \vskip 1.0em plus 1pt \@tempdima 1.5em \begingroup | ||
404 | \parindent \z@ \rightskip \@pnumwidth | ||
405 | \parfillskip -\@pnumwidth | ||
406 | \leavevmode \advance\leftskip\@tempdima \hskip -\leftskip | ||
407 | {\large\bfseries\boldmath#1}\ifx0#2\hfil\null | ||
408 | \else | ||
409 | \nobreak | ||
410 | \leaders\hbox{$\m@th \mkern \@dotsep mu.\mkern | ||
411 | \@dotsep mu$}\hfill | ||
412 | \nobreak\hbox to\@pnumwidth{\hss #2}% | ||
413 | \fi\par | ||
414 | \penalty\@highpenalty \endgroup} | ||
415 | |||
416 | \def\l@title#1#2{\addpenalty{-\@highpenalty} | ||
417 | \addvspace{8pt plus 1pt} | ||
418 | \@tempdima \z@ | ||
419 | \begingroup | ||
420 | \parindent \z@ \rightskip \@tocrmarg | ||
421 | \parfillskip -\@tocrmarg | ||
422 | \leavevmode \advance\leftskip\@tempdima \hskip -\leftskip | ||
423 | #1\nobreak | ||
424 | \leaders\hbox{$\m@th \mkern \@dotsep mu.\mkern | ||
425 | \@dotsep mu$}\hfill | ||
426 | \nobreak\hbox to\@pnumwidth{\hss #2}\par | ||
427 | \penalty\@highpenalty \endgroup} | ||
428 | |||
429 | \setcounter{tocdepth}{0} | ||
430 | \newdimen\tocchpnum | ||
431 | \newdimen\tocsecnum | ||
432 | \newdimen\tocsectotal | ||
433 | \newdimen\tocsubsecnum | ||
434 | \newdimen\tocsubsectotal | ||
435 | \newdimen\tocsubsubsecnum | ||
436 | \newdimen\tocsubsubsectotal | ||
437 | \newdimen\tocparanum | ||
438 | \newdimen\tocparatotal | ||
439 | \newdimen\tocsubparanum | ||
440 | \tocchpnum=\z@ % no chapter numbers | ||
441 | \tocsecnum=15\p@ % section 88. plus 2.222pt | ||
442 | \tocsubsecnum=23\p@ % subsection 88.8 plus 2.222pt | ||
443 | \tocsubsubsecnum=27\p@ % subsubsection 88.8.8 plus 1.444pt | ||
444 | \tocparanum=35\p@ % paragraph 88.8.8.8 plus 1.666pt | ||
445 | \tocsubparanum=43\p@ % subparagraph 88.8.8.8.8 plus 1.888pt | ||
446 | \def\calctocindent{% | ||
447 | \tocsectotal=\tocchpnum | ||
448 | \advance\tocsectotal by\tocsecnum | ||
449 | \tocsubsectotal=\tocsectotal | ||
450 | \advance\tocsubsectotal by\tocsubsecnum | ||
451 | \tocsubsubsectotal=\tocsubsectotal | ||
452 | \advance\tocsubsubsectotal by\tocsubsubsecnum | ||
453 | \tocparatotal=\tocsubsubsectotal | ||
454 | \advance\tocparatotal by\tocparanum} | ||
455 | \calctocindent | ||
456 | |||
457 | \def\l@section{\@dottedtocline{1}{\tocchpnum}{\tocsecnum}} | ||
458 | \def\l@subsection{\@dottedtocline{2}{\tocsectotal}{\tocsubsecnum}} | ||
459 | \def\l@subsubsection{\@dottedtocline{3}{\tocsubsectotal}{\tocsubsubsecnum}} | ||
460 | \def\l@paragraph{\@dottedtocline{4}{\tocsubsubsectotal}{\tocparanum}} | ||
461 | \def\l@subparagraph{\@dottedtocline{5}{\tocparatotal}{\tocsubparanum}} | ||
462 | |||
463 | \def\listoffigures{\@restonecolfalse\if@twocolumn\@restonecoltrue\onecolumn | ||
464 | \fi\section*{\listfigurename\@mkboth{{\listfigurename}}{{\listfigurename}}} | ||
465 | \@starttoc{lof}\if@restonecol\twocolumn\fi} | ||
466 | \def\l@figure{\@dottedtocline{1}{0em}{1.5em}} | ||
467 | |||
468 | \def\listoftables{\@restonecolfalse\if@twocolumn\@restonecoltrue\onecolumn | ||
469 | \fi\section*{\listtablename\@mkboth{{\listtablename}}{{\listtablename}}} | ||
470 | \@starttoc{lot}\if@restonecol\twocolumn\fi} | ||
471 | \let\l@table\l@figure | ||
472 | |||
473 | \renewcommand\listoffigures{% | ||
474 | \section*{\listfigurename | ||
475 | \@mkboth{\listfigurename}{\listfigurename}}% | ||
476 | \@starttoc{lof}% | ||
477 | } | ||
478 | |||
479 | \renewcommand\listoftables{% | ||
480 | \section*{\listtablename | ||
481 | \@mkboth{\listtablename}{\listtablename}}% | ||
482 | \@starttoc{lot}% | ||
483 | } | ||
484 | |||
485 | \ifx\oribibl\undefined | ||
486 | \ifx\citeauthoryear\undefined | ||
487 | \renewenvironment{thebibliography}[1] | ||
488 | {\section*{\refname} | ||
489 | \def\@biblabel##1{##1.} | ||
490 | \small | ||
491 | \list{\@biblabel{\@arabic\c@enumiv}}% | ||
492 | {\settowidth\labelwidth{\@biblabel{#1}}% | ||
493 | \leftmargin\labelwidth | ||
494 | \advance\leftmargin\labelsep | ||
495 | \if@openbib | ||
496 | \advance\leftmargin\bibindent | ||
497 | \itemindent -\bibindent | ||
498 | \listparindent \itemindent | ||
499 | \parsep \z@ | ||
500 | \fi | ||
501 | \usecounter{enumiv}% | ||
502 | \let\p@enumiv\@empty | ||
503 | \renewcommand\theenumiv{\@arabic\c@enumiv}}% | ||
504 | \if@openbib | ||
505 | \renewcommand\newblock{\par}% | ||
506 | \else | ||
507 | \renewcommand\newblock{\hskip .11em \@plus.33em \@minus.07em}% | ||
508 | \fi | ||
509 | \sloppy\clubpenalty4000\widowpenalty4000% | ||
510 | \sfcode`\.=\@m} | ||
511 | {\def\@noitemerr | ||
512 | {\@latex@warning{Empty `thebibliography' environment}}% | ||
513 | \endlist} | ||
514 | \def\@lbibitem[#1]#2{\item[{[#1]}\hfill]\if@filesw | ||
515 | {\let\protect\noexpand\immediate | ||
516 | \write\@auxout{\string\bibcite{#2}{#1}}}\fi\ignorespaces} | ||
517 | \newcount\@tempcntc | ||
518 | \def\@citex[#1]#2{\if@filesw\immediate\write\@auxout{\string\citation{#2}}\fi | ||
519 | \@tempcnta\z@\@tempcntb\m@ne\def\@citea{}\@cite{\@for\@citeb:=#2\do | ||
520 | {\@ifundefined | ||
521 | {b@\@citeb}{\@citeo\@tempcntb\m@ne\@citea\def\@citea{,}{\bfseries | ||
522 | ?}\@warning | ||
523 | {Citation `\@citeb' on page \thepage \space undefined}}% | ||
524 | {\setbox\z@\hbox{\global\@tempcntc0\csname b@\@citeb\endcsname\relax}% | ||
525 | \ifnum\@tempcntc=\z@ \@citeo\@tempcntb\m@ne | ||
526 | \@citea\def\@citea{,}\hbox{\csname b@\@citeb\endcsname}% | ||
527 | \else | ||
528 | \advance\@tempcntb\@ne | ||
529 | \ifnum\@tempcntb=\@tempcntc | ||
530 | \else\advance\@tempcntb\m@ne\@citeo | ||
531 | \@tempcnta\@tempcntc\@tempcntb\@tempcntc\fi\fi}}\@citeo}{#1}} | ||
532 | \def\@citeo{\ifnum\@tempcnta>\@tempcntb\else | ||
533 | \@citea\def\@citea{,\,\hskip\z@skip}% | ||
534 | \ifnum\@tempcnta=\@tempcntb\the\@tempcnta\else | ||
535 | {\advance\@tempcnta\@ne\ifnum\@tempcnta=\@tempcntb \else | ||
536 | \def\@citea{--}\fi | ||
537 | \advance\@tempcnta\m@ne\the\@tempcnta\@citea\the\@tempcntb}\fi\fi} | ||
538 | \else | ||
539 | \renewenvironment{thebibliography}[1] | ||
540 | {\section*{\refname} | ||
541 | \small | ||
542 | \list{}% | ||
543 | {\settowidth\labelwidth{}% | ||
544 | \leftmargin\parindent | ||
545 | \itemindent=-\parindent | ||
546 | \labelsep=\z@ | ||
547 | \if@openbib | ||
548 | \advance\leftmargin\bibindent | ||
549 | \itemindent -\bibindent | ||
550 | \listparindent \itemindent | ||
551 | \parsep \z@ | ||
552 | \fi | ||
553 | \usecounter{enumiv}% | ||
554 | \let\p@enumiv\@empty | ||
555 | \renewcommand\theenumiv{}}% | ||
556 | \if@openbib | ||
557 | \renewcommand\newblock{\par}% | ||
558 | \else | ||
559 | \renewcommand\newblock{\hskip .11em \@plus.33em \@minus.07em}% | ||
560 | \fi | ||
561 | \sloppy\clubpenalty4000\widowpenalty4000% | ||
562 | \sfcode`\.=\@m} | ||
563 | {\def\@noitemerr | ||
564 | {\@latex@warning{Empty `thebibliography' environment}}% | ||
565 | \endlist} | ||
566 | \def\@cite#1{#1}% | ||
567 | \def\@lbibitem[#1]#2{\item[]\if@filesw | ||
568 | {\def\protect##1{\string ##1\space}\immediate | ||
569 | \write\@auxout{\string\bibcite{#2}{#1}}}\fi\ignorespaces} | ||
570 | \fi | ||
571 | \else | ||
572 | \@cons\@openbib@code{\noexpand\small} | ||
573 | \fi | ||
574 | |||
575 | \def\idxquad{\hskip 10\p@}% space that divides entry from number | ||
576 | |||
577 | \def\@idxitem{\par\hangindent 10\p@} | ||
578 | |||
579 | \def\subitem{\par\setbox0=\hbox{--\enspace}% second order | ||
580 | \noindent\hangindent\wd0\box0}% index entry | ||
581 | |||
582 | \def\subsubitem{\par\setbox0=\hbox{--\,--\enspace}% third | ||
583 | \noindent\hangindent\wd0\box0}% order index entry | ||
584 | |||
585 | \def\indexspace{\par \vskip 10\p@ plus5\p@ minus3\p@\relax} | ||
586 | |||
587 | \renewenvironment{theindex} | ||
588 | {\@mkboth{\indexname}{\indexname}% | ||
589 | \thispagestyle{empty}\parindent\z@ | ||
590 | \parskip\z@ \@plus .3\p@\relax | ||
591 | \let\item\par | ||
592 | \def\,{\relax\ifmmode\mskip\thinmuskip | ||
593 | \else\hskip0.2em\ignorespaces\fi}% | ||
594 | \normalfont\small | ||
595 | \begin{multicols}{2}[\@makeschapterhead{\indexname}]% | ||
596 | } | ||
597 | {\end{multicols}} | ||
598 | |||
599 | \renewcommand\footnoterule{% | ||
600 | \kern-3\p@ | ||
601 | \hrule\@width 2truecm | ||
602 | \kern2.6\p@} | ||
603 | \long\def\@makefntext#1{% | ||
604 | \parindent 1em% | ||
605 | \leftskip 1em% | ||
606 | \noindent | ||
607 | \llap{\hb@xt@1em{\hss\@makefnmark\ }}\ignorespaces#1} | ||
608 | |||
609 | \long\def\@makecaption#1#2{% | ||
610 | \vskip\abovecaptionskip | ||
611 | \sbox\@tempboxa{{\bfseries #1.} #2}% | ||
612 | \ifdim \wd\@tempboxa >\hsize | ||
613 | {\bfseries #1.} #2\par | ||
614 | \else | ||
615 | \global \@minipagefalse | ||
616 | \hb@xt@\hsize{\hfil\box\@tempboxa\hfil}% | ||
617 | \fi | ||
618 | \vskip\belowcaptionskip} | ||
619 | |||
620 | \def\fps@figure{htbp} | ||
621 | \def\fnum@figure{\figurename\thefigure} | ||
622 | \def \@floatboxreset {% | ||
623 | \reset@font | ||
624 | \small | ||
625 | \@setnobreak | ||
626 | \@setminipage | ||
627 | } | ||
628 | \def\fps@table{htbp} | ||
629 | \def\fnum@table{\tablename\thetable} | ||
630 | \renewenvironment{table} | ||
631 | {\setlength\abovecaptionskip{0\p@}% | ||
632 | \setlength\belowcaptionskip{10\p@}% | ||
633 | \@float{table}} | ||
634 | {\end@float} | ||
635 | \renewenvironment{table*} | ||
636 | {\setlength\abovecaptionskip{0\p@}% | ||
637 | \setlength\belowcaptionskip{10\p@}% | ||
638 | \@dblfloat{table}} | ||
639 | {\end@dblfloat} | ||
640 | |||
641 | \long\def\@caption#1[#2]#3{\par\addcontentsline{\csname | ||
642 | ext@#1\endcsname}{#1}{\protect\numberline{\csname | ||
643 | the#1\endcsname}{\ignorespaces #2}}\begingroup | ||
644 | \@parboxrestore | ||
645 | \@makecaption{\csname fnum@#1\endcsname}{\ignorespaces #3}\par | ||
646 | \endgroup} | ||
647 | |||
648 | % LaTeX does not provide a command to enter the authors institute | ||
649 | % addresses. The \institute command is defined here. | ||
650 | |||
651 | \newcounter{@inst} | ||
652 | \newcounter{@auth} | ||
653 | \newcounter{auco} | ||
654 | \def\andname{and} | ||
655 | \def\lastandname{\unskip, and} | ||
656 | \newdimen\instindent | ||
657 | \newbox\authrun | ||
658 | \newtoks\authorrunning | ||
659 | \newtoks\tocauthor | ||
660 | \newbox\titrun | ||
661 | \newtoks\titlerunning | ||
662 | \newtoks\toctitle | ||
663 | |||
664 | \def\clearheadinfo{\gdef\@author{No Author Given}% | ||
665 | \gdef\@title{No Title Given}% | ||
666 | \gdef\@subtitle{}% | ||
667 | \gdef\@institute{No Institute Given}% | ||
668 | \gdef\@thanks{}% | ||
669 | \global\titlerunning={}\global\authorrunning={}% | ||
670 | \global\toctitle={}\global\tocauthor={}} | ||
671 | |||
672 | \def\institute#1{\gdef\@institute{#1}} | ||
673 | |||
674 | \def\institutename{\par | ||
675 | \begingroup | ||
676 | \parskip=\z@ | ||
677 | \parindent=\z@ | ||
678 | \setcounter{@inst}{1}% | ||
679 | \def\and{\par\stepcounter{@inst}% | ||
680 | \noindent$^{\the@inst}$\enspace\ignorespaces}% | ||
681 | \setbox0=\vbox{\def\thanks##1{}\@institute}% | ||
682 | \ifnum\c@@inst=1\relax | ||
683 | \else | ||
684 | \setcounter{footnote}{\c@@inst}% | ||
685 | \setcounter{@inst}{1}% | ||
686 | \noindent$^{\the@inst}$\enspace | ||
687 | \fi | ||
688 | \ignorespaces | ||
689 | \@institute\par | ||
690 | \endgroup} | ||
691 | |||
692 | \def\@fnsymbol#1{\ensuremath{\ifcase#1\or\star\or{\star\star}\or | ||
693 | {\star\star\star}\or \dagger\or \ddagger\or | ||
694 | \mathchar "278\or \mathchar "27B\or \|\or **\or \dagger\dagger | ||
695 | \or \ddagger\ddagger \else\@ctrerr\fi}} | ||
696 | |||
697 | \def\inst#1{\unskip$^{#1}$} | ||
698 | \def\fnmsep{\unskip$^,$} | ||
699 | \def\email#1{{\tt#1}} | ||
700 | \def\homedir{\~{ }} | ||
701 | |||
702 | \def\subtitle#1{\gdef\@subtitle{#1}} | ||
703 | \clearheadinfo | ||
704 | |||
705 | \renewcommand\maketitle{\newpage | ||
706 | \refstepcounter{chapter}% | ||
707 | \stepcounter{section}% | ||
708 | \setcounter{section}{0}% | ||
709 | \setcounter{subsection}{0}% | ||
710 | \setcounter{figure}{0} | ||
711 | \setcounter{table}{0} | ||
712 | \setcounter{equation}{0} | ||
713 | \setcounter{footnote}{0}% | ||
714 | \begingroup | ||
715 | \parindent=\z@ | ||
716 | \renewcommand\thefootnote{\@fnsymbol\c@footnote}% | ||
717 | \if@twocolumn | ||
718 | \ifnum \col@number=\@ne | ||
719 | \@maketitle | ||
720 | \else | ||
721 | \twocolumn[\@maketitle]% | ||
722 | \fi | ||
723 | \else | ||
724 | \newpage | ||
725 | \global\@topnum\z@ % Prevents figures from going at top of page. | ||
726 | \@maketitle | ||
727 | \fi | ||
728 | \thispagestyle{empty}\@thanks | ||
729 | % | ||
730 | \def\\{\unskip\ \ignorespaces}\def\inst##1{\unskip{}}% | ||
731 | \def\thanks##1{\unskip{}}\def\fnmsep{\unskip}% | ||
732 | \instindent=\hsize | ||
733 | \advance\instindent by-\headlineindent | ||
734 | \if!\the\toctitle!\addcontentsline{toc}{title}{\@title}\else | ||
735 | \addcontentsline{toc}{title}{\the\toctitle}\fi | ||
736 | \if@runhead | ||
737 | \if!\the\titlerunning!\else | ||
738 | \edef\@title{\the\titlerunning}% | ||
739 | \fi | ||
740 | \global\setbox\titrun=\hbox{\small\rm\unboldmath\ignorespaces\@title}% | ||
741 | \ifdim\wd\titrun>\instindent | ||
742 | \typeout{Title too long for running head. Please supply}% | ||
743 | \typeout{a shorter form with \string\titlerunning\space prior to | ||
744 | \string\maketitle}% | ||
745 | \global\setbox\titrun=\hbox{\small\rm | ||
746 | Title Suppressed Due to Excessive Length}% | ||
747 | \fi | ||
748 | \xdef\@title{\copy\titrun}% | ||
749 | \fi | ||
750 | % | ||
751 | \if!\the\tocauthor!\relax | ||
752 | {\def\and{\noexpand\protect\noexpand\and}% | ||
753 | \protected@xdef\toc@uthor{\@author}}% | ||
754 | \else | ||
755 | \def\\{\noexpand\protect\noexpand\newline}% | ||
756 | \protected@xdef\scratch{\the\tocauthor}% | ||
757 | \protected@xdef\toc@uthor{\scratch}% | ||
758 | \fi | ||
759 | \addtocontents{toc}{{\protect\raggedright\protect\leftskip15\p@ | ||
760 | \protect\rightskip\@tocrmarg | ||
761 | \protect\itshape\toc@uthor\protect\endgraf}}% | ||
762 | \if@runhead | ||
763 | \if!\the\authorrunning! | ||
764 | \value{@inst}=\value{@auth}% | ||
765 | \setcounter{@auth}{1}% | ||
766 | \else | ||
767 | \edef\@author{\the\authorrunning}% | ||
768 | \fi | ||
769 | \global\setbox\authrun=\hbox{\small\unboldmath\@author\unskip}% | ||
770 | \ifdim\wd\authrun>\instindent | ||
771 | \typeout{Names of authors too long for running head. Please supply}% | ||
772 | \typeout{a shorter form with \string\authorrunning\space prior to | ||
773 | \string\maketitle}% | ||
774 | \global\setbox\authrun=\hbox{\small\rm | ||
775 | Authors Suppressed Due to Excessive Length}% | ||
776 | \fi | ||
777 | \xdef\@author{\copy\authrun}% | ||
778 | \markboth{\@author}{\@title}% | ||
779 | \fi | ||
780 | \endgroup | ||
781 | \setcounter{footnote}{0}% | ||
782 | \clearheadinfo} | ||
783 | % | ||
784 | \def\@maketitle{\newpage | ||
785 | \markboth{}{}% | ||
786 | \def\lastand{\ifnum\value{@inst}=2\relax | ||
787 | \unskip{} \andname\ | ||
788 | \else | ||
789 | \unskip \lastandname\ | ||
790 | \fi}% | ||
791 | \def\and{\stepcounter{@auth}\relax | ||
792 | \ifnum\value{@auth}=\value{@inst}% | ||
793 | \lastand | ||
794 | \else | ||
795 | \unskip, | ||
796 | \fi}% | ||
797 | \begin{center}% | ||
798 | {\Large \bfseries\boldmath | ||
799 | \pretolerance=10000 | ||
800 | \@title \par}\vskip .8cm | ||
801 | \if!\@subtitle!\else {\large \bfseries\boldmath | ||
802 | \vskip -.65cm | ||
803 | \pretolerance=10000 | ||
804 | \@subtitle \par}\vskip .8cm\fi | ||
805 | \setbox0=\vbox{\setcounter{@auth}{1}\def\and{\stepcounter{@auth}}% | ||
806 | \def\thanks##1{}\@author}% | ||
807 | \global\value{@inst}=\value{@auth}% | ||
808 | \global\value{auco}=\value{@auth}% | ||
809 | \setcounter{@auth}{1}% | ||
810 | {\lineskip .5em | ||
811 | \noindent\ignorespaces | ||
812 | \@author\vskip.35cm} | ||
813 | {\small\institutename} | ||
814 | \end{center}% | ||
815 | } | ||
816 | |||
817 | % definition of the "\spnewtheorem" command. | ||
818 | % | ||
819 | % Usage: | ||
820 | % | ||
821 | % \spnewtheorem{env_nam}{caption}[within]{cap_font}{body_font} | ||
822 | % or \spnewtheorem{env_nam}[numbered_like]{caption}{cap_font}{body_font} | ||
823 | % or \spnewtheorem*{env_nam}{caption}{cap_font}{body_font} | ||
824 | % | ||
825 | % New is "cap_font" and "body_font". It stands for | ||
826 | % fontdefinition of the caption and the text itself. | ||
827 | % | ||
828 | % "\spnewtheorem*" gives a theorem without number. | ||
829 | % | ||
830 | % A defined spnewthoerem environment is used as described | ||
831 | % by Lamport. | ||
832 | % | ||
833 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% | ||
834 | |||
835 | \def\@thmcountersep{} | ||
836 | \def\@thmcounterend{.} | ||
837 | |||
838 | \def\spnewtheorem{\@ifstar{\@sthm}{\@Sthm}} | ||
839 | |||
840 | % definition of \spnewtheorem with number | ||
841 | |||
842 | \def\@spnthm#1#2{% | ||
843 | \@ifnextchar[{\@spxnthm{#1}{#2}}{\@spynthm{#1}{#2}}} | ||
844 | \def\@Sthm#1{\@ifnextchar[{\@spothm{#1}}{\@spnthm{#1}}} | ||
845 | |||
846 | \def\@spxnthm#1#2[#3]#4#5{\expandafter\@ifdefinable\csname #1\endcsname | ||
847 | {\@definecounter{#1}\@addtoreset{#1}{#3}% | ||
848 | \expandafter\xdef\csname the#1\endcsname{\expandafter\noexpand | ||
849 | \csname the#3\endcsname \noexpand\@thmcountersep \@thmcounter{#1}}% | ||
850 | \expandafter\xdef\csname #1name\endcsname{#2}% | ||
851 | \global\@namedef{#1}{\@spthm{#1}{\csname #1name\endcsname}{#4}{#5}}% | ||
852 | \global\@namedef{end#1}{\@endtheorem}}} | ||
853 | |||
854 | \def\@spynthm#1#2#3#4{\expandafter\@ifdefinable\csname #1\endcsname | ||
855 | {\@definecounter{#1}% | ||
856 | \expandafter\xdef\csname the#1\endcsname{\@thmcounter{#1}}% | ||
857 | \expandafter\xdef\csname #1name\endcsname{#2}% | ||
858 | \global\@namedef{#1}{\@spthm{#1}{\csname #1name\endcsname}{#3}{#4}}% | ||
859 | \global\@namedef{end#1}{\@endtheorem}}} | ||
860 | |||
861 | \def\@spothm#1[#2]#3#4#5{% | ||
862 | \@ifundefined{c@#2}{\@latexerr{No theorem environment `#2' defined}\@eha}% | ||
863 | {\expandafter\@ifdefinable\csname #1\endcsname | ||
864 | {\global\@namedef{the#1}{\@nameuse{the#2}}% | ||
865 | \expandafter\xdef\csname #1name\endcsname{#3}% | ||
866 | \global\@namedef{#1}{\@spthm{#2}{\csname #1name\endcsname}{#4}{#5}}% | ||
867 | \global\@namedef{end#1}{\@endtheorem}}}} | ||
868 | |||
869 | \def\@spthm#1#2#3#4{\topsep 7\p@ \@plus2\p@ \@minus4\p@ | ||
870 | \refstepcounter{#1}% | ||
871 | \@ifnextchar[{\@spythm{#1}{#2}{#3}{#4}}{\@spxthm{#1}{#2}{#3}{#4}}} | ||
872 | |||
873 | \def\@spxthm#1#2#3#4{\@spbegintheorem{#2}{\csname the#1\endcsname}{#3}{#4}% | ||
874 | \ignorespaces} | ||
875 | |||
876 | \def\@spythm#1#2#3#4[#5]{\@spopargbegintheorem{#2}{\csname | ||
877 | the#1\endcsname}{#5}{#3}{#4}\ignorespaces} | ||
878 | |||
879 | \def\@spbegintheorem#1#2#3#4{\trivlist | ||
880 | \item[\hskip\labelsep{#3#1\ #2\@thmcounterend}]#4} | ||
881 | |||
882 | \def\@spopargbegintheorem#1#2#3#4#5{\trivlist | ||
883 | \item[\hskip\labelsep{#4#1\ #2}]{#4(#3)\@thmcounterend\ }#5} | ||
884 | |||
885 | % definition of \spnewtheorem* without number | ||
886 | |||
887 | \def\@sthm#1#2{\@Ynthm{#1}{#2}} | ||
888 | |||
889 | \def\@Ynthm#1#2#3#4{\expandafter\@ifdefinable\csname #1\endcsname | ||
890 | {\global\@namedef{#1}{\@Thm{\csname #1name\endcsname}{#3}{#4}}% | ||
891 | \expandafter\xdef\csname #1name\endcsname{#2}% | ||
892 | \global\@namedef{end#1}{\@endtheorem}}} | ||
893 | |||
894 | \def\@Thm#1#2#3{\topsep 7\p@ \@plus2\p@ \@minus4\p@ | ||
895 | \@ifnextchar[{\@Ythm{#1}{#2}{#3}}{\@Xthm{#1}{#2}{#3}}} | ||
896 | |||
897 | \def\@Xthm#1#2#3{\@Begintheorem{#1}{#2}{#3}\ignorespaces} | ||
898 | |||
899 | \def\@Ythm#1#2#3[#4]{\@Opargbegintheorem{#1} | ||
900 | {#4}{#2}{#3}\ignorespaces} | ||
901 | |||
902 | \def\@Begintheorem#1#2#3{#3\trivlist | ||
903 | \item[\hskip\labelsep{#2#1\@thmcounterend}]} | ||
904 | |||
905 | \def\@Opargbegintheorem#1#2#3#4{#4\trivlist | ||
906 | \item[\hskip\labelsep{#3#1}]{#3(#2)\@thmcounterend\ }} | ||
907 | |||
908 | \if@envcntsect | ||
909 | \def\@thmcountersep{.} | ||
910 | \spnewtheorem{theorem}{Theorem}[section]{\bfseries}{\itshape} | ||
911 | \else | ||
912 | \spnewtheorem{theorem}{Theorem}{\bfseries}{\itshape} | ||
913 | \if@envcntreset | ||
914 | \@addtoreset{theorem}{section} | ||
915 | \else | ||
916 | \@addtoreset{theorem}{chapter} | ||
917 | \fi | ||
918 | \fi | ||
919 | |||
920 | %definition of divers theorem environments | ||
921 | \spnewtheorem*{claim}{Claim}{\itshape}{\rmfamily} | ||
922 | \spnewtheorem*{proof}{Proof}{\itshape}{\rmfamily} | ||
923 | \if@envcntsame % alle Umgebungen wie Theorem. | ||
924 | \def\spn@wtheorem#1#2#3#4{\@spothm{#1}[theorem]{#2}{#3}{#4}} | ||
925 | \else % alle Umgebungen mit eigenem Zaehler | ||
926 | \if@envcntsect % mit section numeriert | ||
927 | \def\spn@wtheorem#1#2#3#4{\@spxnthm{#1}{#2}[section]{#3}{#4}} | ||
928 | \else % nicht mit section numeriert | ||
929 | \if@envcntreset | ||
930 | \def\spn@wtheorem#1#2#3#4{\@spynthm{#1}{#2}{#3}{#4} | ||
931 | \@addtoreset{#1}{section}} | ||
932 | \else | ||
933 | \let\spn@wtheorem=\@spynthm | ||
934 | \fi | ||
935 | \fi | ||
936 | \fi | ||
937 | \spn@wtheorem{case}{Case}{\itshape}{\rmfamily} | ||
938 | \spn@wtheorem{conjecture}{Conjecture}{\itshape}{\rmfamily} | ||
939 | \spn@wtheorem{corollary}{Corollary}{\bfseries}{\itshape} | ||
940 | \spn@wtheorem{definition}{Definition}{\bfseries}{\itshape} | ||
941 | \spn@wtheorem{example}{Example}{\itshape}{\rmfamily} | ||
942 | \spn@wtheorem{exercise}{Exercise}{\itshape}{\rmfamily} | ||
943 | \spn@wtheorem{lemma}{Lemma}{\bfseries}{\itshape} | ||
944 | \spn@wtheorem{note}{Note}{\itshape}{\rmfamily} | ||
945 | \spn@wtheorem{problem}{Problem}{\itshape}{\rmfamily} | ||
946 | \spn@wtheorem{property}{Property}{\itshape}{\rmfamily} | ||
947 | \spn@wtheorem{proposition}{Proposition}{\bfseries}{\itshape} | ||
948 | \spn@wtheorem{question}{Question}{\itshape}{\rmfamily} | ||
949 | \spn@wtheorem{solution}{Solution}{\itshape}{\rmfamily} | ||
950 | \spn@wtheorem{remark}{Remark}{\itshape}{\rmfamily} | ||
951 | |||
952 | \def\@takefromreset#1#2{% | ||
953 | \def\@tempa{#1}% | ||
954 | \let\@tempd\@elt | ||
955 | \def\@elt##1{% | ||
956 | \def\@tempb{##1}% | ||
957 | \ifx\@tempa\@tempb\else | ||
958 | \@addtoreset{##1}{#2}% | ||
959 | \fi}% | ||
960 | \expandafter\expandafter\let\expandafter\@tempc\csname cl@#2\endcsname | ||
961 | \expandafter\def\csname cl@#2\endcsname{}% | ||
962 | \@tempc | ||
963 | \let\@elt\@tempd} | ||
964 | |||
965 | \def\theopargself{\def\@spopargbegintheorem##1##2##3##4##5{\trivlist | ||
966 | \item[\hskip\labelsep{##4##1\ ##2}]{##4##3\@thmcounterend\ }##5} | ||
967 | \def\@Opargbegintheorem##1##2##3##4{##4\trivlist | ||
968 | \item[\hskip\labelsep{##3##1}]{##3##2\@thmcounterend\ }} | ||
969 | } | ||
970 | |||
971 | \renewenvironment{abstract}{% | ||
972 | \list{}{\advance\topsep by0.35cm\relax\small | ||
973 | \leftmargin=1cm | ||
974 | \labelwidth=\z@ | ||
975 | \listparindent=\z@ | ||
976 | \itemindent\listparindent | ||
977 | \rightmargin\leftmargin}\item[\hskip\labelsep | ||
978 | \bfseries\abstractname]} | ||
979 | {\endlist} | ||
980 | \renewcommand{\abstractname}{Abstract.} | ||
981 | \renewcommand{\contentsname}{Table of Contents} | ||
982 | \renewcommand{\figurename}{Fig.\thinspace} | ||
983 | \renewcommand{\tablename}{Table~} | ||
984 | |||
985 | \newdimen\headlineindent % dimension for space between | ||
986 | \headlineindent=1.166cm % number and text of headings. | ||
987 | |||
988 | \def\ps@headings{\let\@mkboth\@gobbletwo | ||
989 | \let\@oddfoot\@empty\let\@evenfoot\@empty | ||
990 | \def\@evenhead{\normalfont\small\rlap{\thepage}\hspace{\headlineindent}% | ||
991 | \leftmark\hfil} | ||
992 | \def\@oddhead{\normalfont\small\hfil\rightmark\hspace{\headlineindent}% | ||
993 | \llap{\thepage}} | ||
994 | \def\chaptermark##1{}% | ||
995 | \def\sectionmark##1{}% | ||
996 | \def\subsectionmark##1{}} | ||
997 | |||
998 | \if@runhead\ps@headings\else | ||
999 | \ps@empty\fi | ||
1000 | |||
1001 | \setlength\arraycolsep{1.4\p@} | ||
1002 | \setlength\tabcolsep{1.4\p@} | ||
1003 | |||
1004 | \endinput | ||
diff --git a/xdelta1/doc/old/dcc99/mkex.c b/xdelta1/doc/old/dcc99/mkex.c deleted file mode 100755 index 5daf003..0000000 --- a/xdelta1/doc/old/dcc99/mkex.c +++ /dev/null | |||
@@ -1,118 +0,0 @@ | |||
1 | #include <stdio.h> | ||
2 | #include <stdlib.h> | ||
3 | #include <glib.h> | ||
4 | #include <ctype.h> | ||
5 | |||
6 | #define LEN 10 | ||
7 | #define COUNT 7 | ||
8 | #define THRESH 5 | ||
9 | |||
10 | char example[LEN+1][COUNT]; | ||
11 | int example_no; | ||
12 | |||
13 | char* words[1<<20]; | ||
14 | int word_no; | ||
15 | |||
16 | int frag_count = 2; | ||
17 | |||
18 | int main() | ||
19 | { | ||
20 | int i, j, k; | ||
21 | char * buf = g_new0 (char,2048); | ||
22 | |||
23 | example_no = 1; | ||
24 | g_assert (strlen ("difference") == LEN); | ||
25 | memcpy (example[0], "difference", LEN); | ||
26 | |||
27 | while (fgets (buf, 2048, stdin)) | ||
28 | { | ||
29 | if (strlen(buf) < (LEN+1)) | ||
30 | continue; | ||
31 | |||
32 | buf[LEN] = 0; | ||
33 | |||
34 | for (i = 0; i < LEN; i += 1) | ||
35 | buf[i] = tolower(buf[i]); | ||
36 | |||
37 | words[word_no++] = g_strdup (buf); | ||
38 | } | ||
39 | |||
40 | for (i = 0; i < word_no; i += 1) | ||
41 | { | ||
42 | for (j = 0; j < word_no; j += 1) | ||
43 | { | ||
44 | char* w1 = words[i]; | ||
45 | char* w2 = words[j]; | ||
46 | int in_match = TRUE, m = 0, f = 0; | ||
47 | |||
48 | if (i == j) | ||
49 | continue; | ||
50 | |||
51 | if (w1[0] == w2[0]) | ||
52 | continue; | ||
53 | |||
54 | for (k = 0; k < LEN; k += 1) | ||
55 | { | ||
56 | if (w1[k] == w2[k]) | ||
57 | { | ||
58 | if (! in_match) | ||
59 | f += 1; | ||
60 | |||
61 | m += 1; | ||
62 | in_match = TRUE; | ||
63 | } | ||
64 | else | ||
65 | in_match = FALSE; | ||
66 | } | ||
67 | |||
68 | if (f == frag_count && m > THRESH && m < LEN) | ||
69 | { | ||
70 | if (frag_count == 3) | ||
71 | frag_count = 1; | ||
72 | else | ||
73 | frag_count += 1; | ||
74 | |||
75 | printf ("%s %s\n", w1, w2); | ||
76 | } | ||
77 | } | ||
78 | } | ||
79 | |||
80 | #if 0 | ||
81 | for (i = 0; example_no < COUNT; i = (i + 1) % word_no) | ||
82 | { | ||
83 | int k = 0, m = 0, f = 0; | ||
84 | int in_match = TRUE; | ||
85 | char* w; | ||
86 | |||
87 | w = example[i]; | ||
88 | |||
89 | if (buf[0] == w[0]) | ||
90 | continue; | ||
91 | |||
92 | for (; k < LEN; k += 1) | ||
93 | { | ||
94 | if (buf[k] == w[k]) | ||
95 | { | ||
96 | if (! in_match) | ||
97 | f += 1; | ||
98 | |||
99 | m += 1; | ||
100 | in_match = TRUE; | ||
101 | } | ||
102 | else | ||
103 | in_match = FALSE; | ||
104 | } | ||
105 | |||
106 | if (m > 2) | ||
107 | printf ("m is %d\n", m); | ||
108 | |||
109 | if (m >= THRESH && m < LEN && f == frag_count) | ||
110 | { | ||
111 | printf ("frag_count was: %d\n", frag_count); | ||
112 | frag_count = 1 + (frag_count + 1) % 2; | ||
113 | printf ("frag_count now: %d\n\n", frag_count); | ||
114 | } | ||
115 | } | ||
116 | #endif | ||
117 | exit (0); | ||
118 | } | ||
diff --git a/xdelta1/doc/old/dcc99/mkex2.c b/xdelta1/doc/old/dcc99/mkex2.c deleted file mode 100755 index d48d196..0000000 --- a/xdelta1/doc/old/dcc99/mkex2.c +++ /dev/null | |||
@@ -1,242 +0,0 @@ | |||
1 | #include <stdio.h> | ||
2 | #include <string.h> | ||
3 | #include <stdlib.h> | ||
4 | #include <glib.h> | ||
5 | #include <ctype.h> | ||
6 | |||
7 | GHashTable* node_table; | ||
8 | GStringChunk* chunk; | ||
9 | |||
10 | typedef struct _Node Node; | ||
11 | typedef struct _IntPair IntPair; | ||
12 | typedef struct _Edge Edge; | ||
13 | |||
14 | struct _IntPair { | ||
15 | int d1; | ||
16 | int d2; | ||
17 | }; | ||
18 | |||
19 | struct _Node { | ||
20 | int mark[3]; | ||
21 | int finish; | ||
22 | char *name; | ||
23 | Edge *edges; | ||
24 | }; | ||
25 | |||
26 | struct _Edge { | ||
27 | char* pict; | ||
28 | int frags; | ||
29 | int copy; | ||
30 | Node* node; | ||
31 | Edge* next; | ||
32 | }; | ||
33 | |||
34 | Node* get_node (char* name) | ||
35 | { | ||
36 | Node* n = g_hash_table_lookup (node_table, name); | ||
37 | |||
38 | if (n) | ||
39 | return n; | ||
40 | |||
41 | n = g_new0 (Node, 1); | ||
42 | n->name = name; | ||
43 | |||
44 | g_hash_table_insert (node_table, name, n); | ||
45 | |||
46 | return n; | ||
47 | } | ||
48 | |||
49 | void connect (Node* n1, Node* n2) | ||
50 | { | ||
51 | Edge* nedge = g_new0 (Edge, 1); | ||
52 | |||
53 | nedge->node = n1; | ||
54 | nedge->next = n2->edges; | ||
55 | n2->edges = nedge; | ||
56 | |||
57 | nedge = g_new0 (Edge, 1); | ||
58 | |||
59 | nedge->node = n2; | ||
60 | nedge->next = n1->edges; | ||
61 | n1->edges = nedge; | ||
62 | } | ||
63 | |||
64 | int global_count = 0; | ||
65 | int global_e_count = 0; | ||
66 | int global_depth = 0; | ||
67 | int global_fragments = 0; | ||
68 | int global_longest = 0; | ||
69 | int global_longest2 = 0; | ||
70 | |||
71 | void | ||
72 | count_fragments (Node* n1, Node* n2, Edge* e) | ||
73 | { | ||
74 | int i, l = strlen (n1->name); | ||
75 | int in_match = TRUE; | ||
76 | int m = 0, f = 0; | ||
77 | char buf1[16]; | ||
78 | |||
79 | memset (buf1, ' ', l); | ||
80 | |||
81 | buf1[l] = 0; | ||
82 | |||
83 | for (i = 0; i < l; i += 1) | ||
84 | { | ||
85 | if (n1->name[i] == n2->name[i]) | ||
86 | { | ||
87 | if (! in_match) | ||
88 | { | ||
89 | global_fragments += 1; | ||
90 | f += 1; | ||
91 | } | ||
92 | |||
93 | in_match = TRUE; | ||
94 | m += 1; | ||
95 | buf1[i] = 'x'; | ||
96 | } | ||
97 | else | ||
98 | in_match = FALSE; | ||
99 | } | ||
100 | |||
101 | e->pict = g_strdup (buf1); | ||
102 | e->copy = m; | ||
103 | e->frags = f; | ||
104 | } | ||
105 | |||
106 | int | ||
107 | dfs (Node* n, gint phase, gint print, gint depth) | ||
108 | { | ||
109 | int d1 = 0, d2 = 0, c; | ||
110 | Edge* e; | ||
111 | |||
112 | global_depth = MAX(depth, global_depth); | ||
113 | |||
114 | if (n->mark[phase]) | ||
115 | { | ||
116 | return 1; | ||
117 | } | ||
118 | |||
119 | n->mark[phase] = TRUE; | ||
120 | |||
121 | for (e = n->edges; e; e = e->next) | ||
122 | { | ||
123 | int od1; | ||
124 | |||
125 | global_e_count += 1; | ||
126 | |||
127 | count_fragments (n, e->node, e); | ||
128 | |||
129 | c = dfs (e->node, phase, print, depth + 1); | ||
130 | |||
131 | od1 = d1; | ||
132 | d1 = MAX (d1, c); | ||
133 | |||
134 | if (d1 == od1) | ||
135 | { | ||
136 | d2 = MAX (d2, c); | ||
137 | } | ||
138 | else | ||
139 | d2 = od1; | ||
140 | } | ||
141 | |||
142 | global_count += 1; | ||
143 | |||
144 | if (print) | ||
145 | { | ||
146 | g_print ("%s ->\n", n->name); | ||
147 | |||
148 | for (e = n->edges; e; e = e->next) | ||
149 | g_print (" %s %s %d %d\n", e->node->name, e->pict, e->copy, e->frags); | ||
150 | |||
151 | g_print ("\n\n"); | ||
152 | } | ||
153 | |||
154 | if (! print && depth == 0 && d1 + d2 == 8) | ||
155 | { | ||
156 | g_print ("found a graph of size nodes=%d, edges=%d, depth=%d, frags=%d:\n", global_count, global_e_count, d1+d2, global_fragments); | ||
157 | |||
158 | dfs (n, 1, TRUE, 0); | ||
159 | |||
160 | g_print ("\n"); | ||
161 | g_print ("\n"); | ||
162 | } | ||
163 | |||
164 | return d1 + 1; | ||
165 | } | ||
166 | |||
167 | void | ||
168 | find (gpointer key, | ||
169 | gpointer value, | ||
170 | gpointer user_data) | ||
171 | { | ||
172 | Node* n = value; | ||
173 | |||
174 | global_fragments = 0; | ||
175 | global_count = 0; | ||
176 | global_e_count = 0; | ||
177 | global_depth = 0; | ||
178 | |||
179 | dfs (n, 0, FALSE, 0); | ||
180 | |||
181 | global_e_count /= 2; | ||
182 | |||
183 | if (global_count == 0) | ||
184 | return; | ||
185 | |||
186 | /*g_assert (global_count != global_e_count);*/ | ||
187 | |||
188 | if (FALSE && global_depth > 7) | ||
189 | { | ||
190 | g_print ("found a graph of size nodes=%d, edges=%d, depth=%d, %d:\n", global_count, global_e_count, global_depth, global_fragments); | ||
191 | |||
192 | dfs (n, 1, TRUE, 0); | ||
193 | |||
194 | g_print ("\n"); | ||
195 | g_print ("\n"); | ||
196 | } | ||
197 | } | ||
198 | |||
199 | int main() | ||
200 | { | ||
201 | char from_buf[2048]; | ||
202 | char to_buf[2048]; | ||
203 | |||
204 | node_table = g_hash_table_new (g_direct_hash, g_direct_equal); | ||
205 | chunk = g_string_chunk_new (1024); | ||
206 | |||
207 | while (scanf ("%s %s", from_buf, to_buf) == 2) | ||
208 | { | ||
209 | Node* nfrom; | ||
210 | Node* nto; | ||
211 | Edge* e; | ||
212 | |||
213 | char* from = g_string_chunk_insert_const (chunk, from_buf); | ||
214 | char* to = g_string_chunk_insert_const (chunk, to_buf); | ||
215 | |||
216 | nfrom = get_node (from); | ||
217 | nto = get_node (to); | ||
218 | |||
219 | if (! nfrom->edges) | ||
220 | { | ||
221 | connect (nfrom, nto); | ||
222 | continue; | ||
223 | } | ||
224 | |||
225 | for (e = nfrom->edges; e; e = e->next) | ||
226 | { | ||
227 | if (e->node == nto) | ||
228 | { | ||
229 | break; | ||
230 | } | ||
231 | |||
232 | if (e->next == NULL) | ||
233 | { | ||
234 | connect (nfrom, nto); | ||
235 | } | ||
236 | } | ||
237 | } | ||
238 | |||
239 | g_hash_table_foreach (node_table, find, NULL); | ||
240 | |||
241 | exit (1); | ||
242 | } | ||
diff --git a/xdelta1/doc/old/dcc99/vdelta b/xdelta1/doc/old/dcc99/vdelta deleted file mode 100755 index 82f8246..0000000 --- a/xdelta1/doc/old/dcc99/vdelta +++ /dev/null | |||
Binary files differ | |||
diff --git a/xdelta1/doc/old/dcc99/vupdate b/xdelta1/doc/old/dcc99/vupdate deleted file mode 100755 index 6b5009d..0000000 --- a/xdelta1/doc/old/dcc99/vupdate +++ /dev/null | |||
Binary files differ | |||
diff --git a/xdelta1/doc/old/xdelta.gif b/xdelta1/doc/old/xdelta.gif deleted file mode 100755 index 4eb1c74..0000000 --- a/xdelta1/doc/old/xdelta.gif +++ /dev/null | |||
Binary files differ | |||
diff --git a/xdelta1/doc/old/xdelta.html b/xdelta1/doc/old/xdelta.html deleted file mode 100755 index 919752a..0000000 --- a/xdelta1/doc/old/xdelta.html +++ /dev/null | |||
@@ -1,183 +0,0 @@ | |||
1 | <html> <head> | ||
2 | <title>Xdelta</title> | ||
3 | </head> | ||
4 | |||
5 | <body bgcolor="#ffffff" text="#000000"> | ||
6 | <center><img src="xdelta.gif" alt="Xdelta"></center> | ||
7 | |||
8 | <center><h1>News</h1></center> | ||
9 | |||
10 | Version 1.1 has been released, see the <A | ||
11 | HREF="ftp://ftp.xcf.berkeley.edu/pub/xdelta/NEWS">NEWS</A>. | ||
12 | <P> | ||
13 | |||
14 | As of version 1.0.5, Xdelta supports Windows. A pre-built version is | ||
15 | available <A | ||
16 | HREF="ftp://ftp.xcf.berkeley.edu/pub/xdelta/xdelta-1.0.5.win32.zip"> | ||
17 | here.</A>. <P> | ||
18 | |||
19 | You can see a draft of a paper describing Xdelta <A | ||
20 | HREF="ftp://ftp.xcf.berkeley.edu/pub/xdelta/xdelta.ps"> here</A>. | ||
21 | |||
22 | <center><h1>About</h1></center> | ||
23 | |||
24 | Xdelta is a binary delta generator library. It was begun in February | ||
25 | 1997 as an experiment with the intent of replacing RCS in a future | ||
26 | version of <A HREF="http://www.xcf.berkeley.edu/~jmacd/prcs.html">PRCS</A>. | ||
27 | The 0.x series of releases were the resulting, experimental code base. | ||
28 | Several algorithms were experimented with; the final algorithm | ||
29 | resembles the Rsync algorithm (due to Andrew Tridgell and Paul | ||
30 | Mackerras), though implementation and interface considerations leave | ||
31 | the two programs quite distinct. Xdelta uses a fast, linear algorithm | ||
32 | and performs well on both binary and text files. | ||
33 | <P> | ||
34 | |||
35 | Xdelta is a library interface and application program designed to | ||
36 | compute changes between files. These changes (deltas) are similar to | ||
37 | the output of the "diff" program in that they may be used to store and | ||
38 | transmit only the changes between files. However, unlike diff, the | ||
39 | output of Xdelta is not expressed in a human-readable format and | ||
40 | cannot be reversed. Xdelta can also also apply these deltas to a copy | ||
41 | of the original file(s). Xdelta also includes a simple implementation | ||
42 | of the Rsync algorithm and several advanced features for implementing | ||
43 | RCS-like file-archival with. | ||
44 | <P> | ||
45 | |||
46 | Version 1.0, released on October 3, 1998, is greatly refined: It is | ||
47 | smaller, optimized, and has a clean interface. This version is a | ||
48 | complete rewrite, and uses less than 50% of the memory require by the | ||
49 | 0.x series, even greater reductions are seen in the application for | ||
50 | compressed files. Files are now stream-processed when possible, and | ||
51 | paged when seeking is required. The application now features a | ||
52 | --maxmem option to set the size of the internal buffers. No files are | ||
53 | ever completely read into memory. In addition, many features in the | ||
54 | 0.x series have been removed, leaving only the delta and patch | ||
55 | functions. The GDBM-archive support code has been reimplemented in | ||
56 | the new version of PRCS. | ||
57 | <P> | ||
58 | |||
59 | A file archival system has been built upon Xdelta. The 0.x series of | ||
60 | releases included a prototype of this system, which has since been | ||
61 | greatly improved. The original system used GDBM to store deltas. | ||
62 | GDBM was abandoned because it typically requires 5-10 times as much | ||
63 | space as actual data contained in its database, rendering all | ||
64 | advantages of delta-compression lost. The file archival system does | ||
65 | not use branches to store deltas according to their logical ancestry, | ||
66 | instead it uses a linear delta encoding and past deltas are included | ||
67 | as inputs to future delta computation. Though this may sound bad at | ||
68 | first, it actually works because past deltas contain the missing | ||
69 | branch's data. Conceptually, imagine computing a (reverse) delta | ||
70 | between the previous head (a literal file) and the new file plus the | ||
71 | old deltas (the entire archive). Computing a delta between the a file | ||
72 | and the entire archive relieves the branching requirement. This | ||
73 | process is described in more detail in this <A href="prcs2.ps">paper</A>. | ||
74 | It has many improvements over RCS, aside from the fact that RCS was | ||
75 | simply not designed to be used as a library. These are: | ||
76 | <P> | ||
77 | |||
78 | <ul> | ||
79 | <li> | ||
80 | The ability to easily discard old versions in date order, regardless | ||
81 | of ancestry. | ||
82 | </li> | ||
83 | <li> | ||
84 | The ability to retrieve all versions in time proportional to their age, | ||
85 | not ancestry. | ||
86 | </li> | ||
87 | <li> | ||
88 | Using a new file format allows individual deltas to be compressed as they age, | ||
89 | the entire archive need not be compressed at once. | ||
90 | </li> | ||
91 | <li> | ||
92 | Higher level applications (such as PRCS) are free from the hidden | ||
93 | performance implications of version-number allocation, since these tools | ||
94 | do not, in general, have enough information to make a good decision. | ||
95 | </li> | ||
96 | </ul> | ||
97 | <P> | ||
98 | |||
99 | The 0.x series had a <A HREF="http://www.gimp.org">GIMP</A> plugin | ||
100 | that stores multiple versions of an image in any Gimp-supported image | ||
101 | format. This plugin has not been ported to version 1.0, since 1.0 | ||
102 | removed the GDBM archival features. Interested parties may contact me | ||
103 | for help updating this plugin. | ||
104 | |||
105 | <P> | ||
106 | <center><h1>Simple Command-Line Use</h1></center> | ||
107 | |||
108 | To generate a delta between files <em>FROM</em> and <em>TO</em> and | ||
109 | write the delta to the file named <em>OUT</em>, run the command: | ||
110 | <P> | ||
111 | |||
112 | $ xdelta delta [options] FROM TO OUT | ||
113 | <P> | ||
114 | |||
115 | If you supply no options, the internals of OUT are compressed using | ||
116 | zlib's default compression. You do not need to post-compress its | ||
117 | output! The compression level can be set with the arguments -0 | ||
118 | through -9, with 0 indicating no compression. To apply the previously | ||
119 | generated delta with a copy of <em>FROM</em> and <em>OUT</em>: | ||
120 | <P> | ||
121 | |||
122 | $ xdelta patch [options] OUT FROM TO.RECONSTRUCTED | ||
123 | <P> | ||
124 | |||
125 | This will produce the file <em>TO.RECONSTRUCTED</em>. If this command | ||
126 | succeeds then you can be confident that Xdelta produced an exact copy | ||
127 | of the original file because it verifies the MD5 checksum of its | ||
128 | output. You can list information about a delta with the command: | ||
129 | <P> | ||
130 | |||
131 | $ xdelta info OUT | ||
132 | <P> | ||
133 | |||
134 | Sample output: | ||
135 | <P> | ||
136 | |||
137 | xdelta: version 1.1.0 found patch version 1.1 in out (compressed) <br> | ||
138 | xdelta: generated with a gzipped FROM file <br> | ||
139 | xdelta: generated with a gzipped TO file <br> | ||
140 | xdelta: output name: xdelta-1.0.1.tar.gz <br> | ||
141 | xdelta: output length: 798720 <br> | ||
142 | xdelta: output md5: c33f043e276ff3986dbab99f14213c44 <br> | ||
143 | xdelta: patch from segments: 2 <br> | ||
144 | xdelta: MD5 Length Copies Used Seq? Name <br> | ||
145 | xdelta: 11b99054e237b611db7d2ee7b090b4a4 16309 736 16309 yes (patch data) <br> | ||
146 | xdelta: 641b34f2630d66a346cee9893cfc01a6 788480 1550 782411 no xdelta-1.0.0.tar.gz <br> | ||
147 | |||
148 | <center><h1>Downloading</h1></center> | ||
149 | |||
150 | Xdelta is available <A | ||
151 | HREF="ftp://ftp.xcf.berkeley.edu/pub/xdelta">here</A>. The Xdelta | ||
152 | library is very portable. Xdelta depends on <A HREF="ftp://ftp.cdrom.com/pub/infozip/zlib">Zlib 1.1.x</A> | ||
153 | and <A HREF="ftp://ftp.gtk.org/pub/gtk/v1.1">GLIB 1.3.0</A>. | ||
154 | <P> | ||
155 | |||
156 | The latest version of Xdelta is version | ||
157 | <!-- $Format: "$ReleaseVersion$." $ --> | ||
158 | 1.1.2. | ||
159 | see the <A HREF="ftp://ftp.xcf.berkeley.edu/pub/xdelta/NEWS">NEWS</A>. <P> | ||
160 | <P> | ||
161 | |||
162 | Thanks to <A HREF="mailto:aklikins@eos.ncsu.edu">Adrian Likins</A> for the artwork. | ||
163 | |||
164 | <P> | ||
165 | |||
166 | <hr> | ||
167 | <center> | ||
168 | This page has been accessed | ||
169 | <IMG | ||
170 | SRC="/cgi-bin/Count.cgi?ft=0|frgb=0;0;0|tr=0|trgb=0;0;0|wxh=15;20|md=7|dd=B|st=1|sh=1|df=xdelta.dat" | ||
171 | ALT="a whole bunch of"> | ||
172 | times. | ||
173 | <!-- since August 16, 1998--> | ||
174 | <hr> | ||
175 | <!-- hhmts start --> | ||
176 | Last modified: Wed Apr 7 00:36:07 PDT 1999 | ||
177 | <!-- hhmts end --><br> | ||
178 | <a href="http://www.xcf.berkeley.edu/~jmacd/">Josh MacDonald</a> / | ||
179 | <i><a | ||
180 | HREF="mailto:jmacd@cs.berkeley.edu">jmacd@cs.berkeley.edu</a></i> | ||
181 | </center> | ||
182 | <img align=right src="gbg.gif" alt=""> | ||
183 | </body> </html> | ||