Re: [BLACKBOX] Variant Records vs. Component Pascal
----boundary-LibPST-iamunique-1246949549_-_-
Content-type: text/plain
Stephen,
Did your original sort routine operated on a common variable of each variant?
If so then by using a pointer to an EXTENSIBLE record for your base type
and by grouping all variables that are common in the variants into the base record
then you can write a single sort routine for the base record pointer which will sort
all variants.
MODULE PrivVariant;
TYPE
Base = POINTER TO EXTENSIBLE RECORD;
(* ... variables comment to all variants ... *)
END;
Variant = POINTER TO RECORD(Base) (* ... specific variables of variant ... *) END;
PROCEDURE (base: Base) Sort, NEW;
BEGIN
(* sorting routine on common variables *)
END Sort;
PROCEDURE (v: Variant) Init, NEW;
BEGIN
(* initialization of variant variables *)
END Init;
PROCEDURE Do*;
VAR v: Variant;
BEGIN
NEW(v); v.Init;
v.Sort;
END Do;
END PrivVariant.
Try that and tell us whether I am way off base or whether that is what
you want to do.
Best regards,
Doug Danforth
Stephen R. Troy wrote:
Hello List,
This is my first post to this list. To help you reply, I started programming digital computers, in machine language, in 1957. Since then I have done scientific and engineering programming in FORTRAN, BASIC, Pascal, and then Modula-2 for many years. I have only limited familiarity with C. Now retired, recently I have moved to Oberon and now Component Pascal, writing programs to support hobbies.
I have a program I have been evolving for several years, which reads in a database which is in a structured ASCII text file using a third-party database schema. The program develops several index files, performs various sorting and filtering operations on these indexes, and the uses the modified indexes to write out reports using the same database schema. There are three main types of records, and I was able to write very efficient sorting and filtering procedures in Modula-2 by writing the records as variant records of a basic type, then instantiating the records by pointers. My indexes were linked lists of the pointers, both linear and binary trees, and so I could find, sort, and filter each of the three types of records using the same very efficient code, because I manipulated only the pointers' "next-record" pointer in the linked lists, not moving any records in memory.
But I apparently I can't use this method in Component Pascal because variant records are not allowed. I tried defining a basic record as an ABSTRACT type, then defining each of my three record types as extensions. However, I can't instantiate a record as a NEW(pointer to basic type), and I can't use a single sort routine with each of the three (pointer to extension type) -- I need three separate routines, which is clumsy at best, and seems contrary to the basic intent of Component Pascal. I tried defining the basic record type as EXTENSIBLE, but that made no difference. I found an obscure section in the Component Pascal documentation that said that using a RECORD [union] system flag, which allowed a "C-type" union data structure, it was possible to simulate Pascal- and Modula-style variant records, but the example in the documentation will not compile -- it gives an "invalid system flag" error message on the [union] flag.
Any suggestions would be welcome at this point.
Thanks,
Steve Troy
---- To unsubscribe, send a message with body "SIGNOFF BLACKBOX" to LISTSERV{([at]})nowhere.xy
---- To unsubscribe, send a message with body "SIGNOFF BLACKBOX" to LISTSERV{([at]})nowhere.xy
----boundary-LibPST-iamunique-1246949549_-_-
Content-type: application/rtf
Content-transfer-encoding: base64
Content-Disposition: attachment; filename="rtf-body.rtf"
e1xydGYxXGFuc2lcYW5zaWNwZzEyNTJcZnJvbWh0bWwxIFxkZWZmMHtcZm9udHRibA0Ke1xmMFxm
c3dpc3NcZmNoYXJzZXQwIEFyaWFsO30NCntcZjFcZm1vZGVybiBDb3VyaWVyIE5ldzt9DQp7XGYy
XGZuaWxcZmNoYXJzZXQyIFN5bWJvbDt9DQp7XGYzXGZtb2Rlcm5cZmNoYXJzZXQwIENvdXJpZXIg
TmV3O319DQp7XGNvbG9ydGJsXHJlZDBcZ3JlZW4wXGJsdWUwO1xyZWQwXGdyZWVuMFxibHVlMjU1
O30NClx1YzFccGFyZFxwbGFpblxkZWZ0YWIzNjAgXGYwXGZzMjQgDQp7XCpcaHRtbHRhZzI0MyA8
IURPQ1RZUEUgaHRtbCBQVUJMSUMgIi0vL1czQy8vRFREIEhUTUwgNC4wMSBUcmFuc2l0aW9uYWwv
L0VOIj59DQp7XCpcaHRtbHRhZzMgXHBhciB9DQp7XCpcaHRtbHRhZzE5IDxodG1sPn0NCntcKlxo
dG1sdGFnMiBccGFyIH0NCntcKlxodG1sdGFnMzQgPGhlYWQ+fQ0Ke1wqXGh0bWx0YWcxIFxwYXIg
fQ0Ke1wqXGh0bWx0YWcyNDEgICB9DQp7XCpcaHRtbHRhZzEgXHBhciB9DQp7XCpcaHRtbHRhZzI0
MSAgIH0NCntcKlxodG1sdGFnMTc3IDx0aXRsZT59DQp7XCpcaHRtbHRhZzI0MSB9DQp7XCpcaHRt
bHRhZzE4NSA8L3RpdGxlPn0NCntcKlxodG1sdGFnMSBccGFyIH0NCntcKlxodG1sdGFnNDEgPC9o
ZWFkPn0NCntcKlxodG1sdGFnMiBccGFyIH0NCntcKlxodG1sdGFnNTAgPGJvZHkgYmdjb2xvcj0i
I2ZmZmZmZiIgdGV4dD0iIzAwMDAwMCI+fVxodG1scnRmIFx2aWV3a2luZDUNCntcKlxiYWNrZ3Jv
dW5kIHtcc2hwe1wqXHNocGluc3R7XHNwe1xzbiBmaWxsQ29sb3J9e1xzdiAxNjc3NzIxNX19e1xz
cHtcc24gZkZpbGxlZH17XHN2IDF9fX19fVxodG1scnRmMCANCntcKlxodG1sdGFnMCBccGFyIH17
XCpcaHRtbHRhZzY0fVxodG1scnRmIHtcaHRtbHJ0ZjAgU3RlcGhlbiwNCntcKlxodG1sdGFnMTE2
IDxicj59XGh0bWxydGYgXGxpbmUNClxodG1scnRmMCANCntcKlxodG1sdGFnNCBccGFyIH0NCntc
KlxodG1sdGFnMTE2IDxicj59XGh0bWxydGYgXGxpbmUNClxodG1scnRmMCANCntcKlxodG1sdGFn
NCBccGFyIH1EaWQgeW91ciBvcmlnaW5hbCBzb3J0IHJvdXRpbmUgb3BlcmF0ZWQgb24gYSBjb21t
b24gdmFyaWFibGUgb2YgZWFjaA0Ke1wqXGh0bWx0YWc0IFxwYXIgfVxodG1scnRmICBcaHRtbHJ0
ZjAgdmFyaWFudD8NCntcKlxodG1sdGFnMTE2IDxicj59XGh0bWxydGYgXGxpbmUNClxodG1scnRm
MCANCntcKlxodG1sdGFnNCBccGFyIH1JZiBzbyB0aGVuIGJ5IHVzaW5nIGEgcG9pbnRlciB0byBh
biBFWFRFTlNJQkxFIHJlY29yZCBmb3IgeW91ciBiYXNlIHR5cGUNCntcKlxodG1sdGFnMTE2IDxi
cj59XGh0bWxydGYgXGxpbmUNClxodG1scnRmMCANCntcKlxodG1sdGFnNCBccGFyIH1hbmQgYnkg
Z3JvdXBpbmcgYWxsIHZhcmlhYmxlcyB0aGF0IGFyZSBjb21tb24gaW4gdGhlIHZhcmlhbnRzIGlu
dG8gdGhlDQp7XCpcaHRtbHRhZzQgXHBhciB9XGh0bWxydGYgIFxodG1scnRmMCBiYXNlIHJlY29y
ZA0Ke1wqXGh0bWx0YWcxMTYgPGJyPn1caHRtbHJ0ZiBcbGluZQ0KXGh0bWxydGYwIA0Ke1wqXGh0
bWx0YWc0IFxwYXIgfXRoZW4geW91IGNhbiB3cml0ZSBhIHNpbmdsZSBzb3J0IHJvdXRpbmUgZm9y
IHRoZSBiYXNlIHJlY29yZCBwb2ludGVyDQp7XCpcaHRtbHRhZzQgXHBhciB9XGh0bWxydGYgIFxo
dG1scnRmMCB3aGljaCB3aWxsIHNvcnQNCntcKlxodG1sdGFnMTE2IDxicj59XGh0bWxydGYgXGxp
bmUNClxodG1scnRmMCANCntcKlxodG1sdGFnNCBccGFyIH1hbGwgdmFyaWFudHMuDQp7XCpcaHRt
bHRhZzExNiA8YnI+fVxodG1scnRmIFxsaW5lDQpcaHRtbHJ0ZjAgDQp7XCpcaHRtbHRhZzQgXHBh
ciB9DQp7XCpcaHRtbHRhZzExNiA8YnI+fVxodG1scnRmIFxsaW5lDQpcaHRtbHJ0ZjAgDQp7XCpc
aHRtbHRhZzQgXHBhciB9TU9EVUxFIFByaXZWYXJpYW50Ow0Ke1wqXGh0bWx0YWcxMTYgPGJyPn1c
aHRtbHJ0ZiBcbGluZQ0KXGh0bWxydGYwIA0Ke1wqXGh0bWx0YWc0IFxwYXIgfVwnYTBcJ2EwXCdh
MCBUWVBFDQp7XCpcaHRtbHRhZzExNiA8YnI+fVxodG1scnRmIFxsaW5lDQpcaHRtbHJ0ZjAgDQp7
XCpcaHRtbHRhZzQgXHBhciB9XCdhMFwnYTBcJ2EwIFwnYTBcJ2EwXCdhMCBCYXNlID0gUE9JTlRF
UiBUTyBFWFRFTlNJQkxFIFJFQ09SRDsNCntcKlxodG1sdGFnMTE2IDxicj59XGh0bWxydGYgXGxp
bmUNClxodG1scnRmMCANCntcKlxodG1sdGFnNCBccGFyIH1cJ2EwXCdhMFwnYTAgXCdhMFwnYTBc
J2EwIFwnYTBcJ2EwXCdhMCAoKiAuLi4gdmFyaWFibGVzIGNvbW1lbnQgdG8gYWxsIHZhcmlhbnRz
IC4uLiAqKQ0Ke1wqXGh0bWx0YWcxMTYgPGJyPn1caHRtbHJ0ZiBcbGluZQ0KXGh0bWxydGYwIA0K
e1wqXGh0bWx0YWc0IFxwYXIgfVwnYTBcJ2EwXCdhMCBcJ2EwXCdhMFwnYTAgRU5EOw0Ke1wqXGh0
bWx0YWcxMTYgPGJyPn1caHRtbHJ0ZiBcbGluZQ0KXGh0bWxydGYwIA0Ke1wqXGh0bWx0YWc0IFxw
YXIgfVwnYTBcJ2EwXCdhMCBWYXJpYW50ID0gUE9JTlRFUiBUTyBSRUNPUkQoQmFzZSkgKCogLi4u
XCdhMCBzcGVjaWZpYyB2YXJpYWJsZXMgb2YNCntcKlxodG1sdGFnNCBccGFyIH1caHRtbHJ0ZiAg
XGh0bWxydGYwIHZhcmlhbnQgLi4uICopIEVORDsNCntcKlxodG1sdGFnMTE2IDxicj59XGh0bWxy
dGYgXGxpbmUNClxodG1scnRmMCANCntcKlxodG1sdGFnNCBccGFyIH0NCntcKlxodG1sdGFnMTE2
IDxicj59XGh0bWxydGYgXGxpbmUNClxodG1scnRmMCANCntcKlxodG1sdGFnNCBccGFyIH1cJ2Ew
XCdhMFwnYTAgUFJPQ0VEVVJFIChiYXNlOiBCYXNlKSBTb3J0LCBORVc7DQp7XCpcaHRtbHRhZzEx
NiA8YnI+fVxodG1scnRmIFxsaW5lDQpcaHRtbHJ0ZjAgDQp7XCpcaHRtbHRhZzQgXHBhciB9XCdh
MFwnYTBcJ2EwIEJFR0lODQp7XCpcaHRtbHRhZzExNiA8YnI+fVxodG1scnRmIFxsaW5lDQpcaHRt
bHJ0ZjAgDQp7XCpcaHRtbHRhZzQgXHBhciB9XCdhMFwnYTBcJ2EwIFwnYTBcJ2EwXCdhMCAoKlwn
YTAgc29ydGluZyByb3V0aW5lIG9uIGNvbW1vbiB2YXJpYWJsZXMgKikNCntcKlxodG1sdGFnMTE2
IDxicj59XGh0bWxydGYgXGxpbmUNClxodG1scnRmMCANCntcKlxodG1sdGFnNCBccGFyIH1cJ2Ew
XCdhMFwnYTAgRU5EIFNvcnQ7DQp7XCpcaHRtbHRhZzExNiA8YnI+fVxodG1scnRmIFxsaW5lDQpc
aHRtbHJ0ZjAgDQp7XCpcaHRtbHRhZzQgXHBhciB9DQp7XCpcaHRtbHRhZzExNiA8YnI+fVxodG1s
cnRmIFxsaW5lDQpcaHRtbHJ0ZjAgDQp7XCpcaHRtbHRhZzQgXHBhciB9XCdhMFwnYTBcJ2EwIFBS
T0NFRFVSRSAodjogVmFyaWFudCkgSW5pdCwgTkVXOw0Ke1wqXGh0bWx0YWcxMTYgPGJyPn1caHRt
bHJ0ZiBcbGluZQ0KXGh0bWxydGYwIA0Ke1wqXGh0bWx0YWc0IFxwYXIgfVwnYTBcJ2EwXCdhMCBC
RUdJTg0Ke1wqXGh0bWx0YWcxMTYgPGJyPn1caHRtbHJ0ZiBcbGluZQ0KXGh0bWxydGYwIA0Ke1wq
XGh0bWx0YWc0IFxwYXIgfVwnYTBcJ2EwXCdhMCBcJ2EwXCdhMFwnYTAgKCogaW5pdGlhbGl6YXRp
b24gb2YgdmFyaWFudCB2YXJpYWJsZXMgKikNCntcKlxodG1sdGFnMTE2IDxicj59XGh0bWxydGYg
XGxpbmUNClxodG1scnRmMCANCntcKlxodG1sdGFnNCBccGFyIH1cJ2EwXCdhMFwnYTAgRU5EIElu
aXQ7DQp7XCpcaHRtbHRhZzExNiA8YnI+fVxodG1scnRmIFxsaW5lDQpcaHRtbHJ0ZjAgDQp7XCpc
aHRtbHRhZzQgXHBhciB9XCdhMFwnYTBcJ2EwIA0Ke1wqXGh0bWx0YWcxMTYgPGJyPn1caHRtbHJ0
ZiBcbGluZQ0KXGh0bWxydGYwIA0Ke1wqXGh0bWx0YWc0IFxwYXIgfVwnYTBcJ2EwXCdhMCBQUk9D
RURVUkUgRG8qOw0Ke1wqXGh0bWx0YWcxMTYgPGJyPn1caHRtbHJ0ZiBcbGluZQ0KXGh0bWxydGYw
IA0Ke1wqXGh0bWx0YWc0IFxwYXIgfVwnYTBcJ2EwXCdhMCBcJ2EwXCdhMFwnYTAgVkFSIHY6IFZh
cmlhbnQ7DQp7XCpcaHRtbHRhZzExNiA8YnI+fVxodG1scnRmIFxsaW5lDQpcaHRtbHJ0ZjAgDQp7
XCpcaHRtbHRhZzQgXHBhciB9XCdhMFwnYTBcJ2EwIEJFR0lODQp7XCpcaHRtbHRhZzExNiA8YnI+
fVxodG1scnRmIFxsaW5lDQpcaHRtbHJ0ZjAgDQp7XCpcaHRtbHRhZzQgXHBhciB9XCdhMFwnYTBc
J2EwIFwnYTBcJ2EwXCdhMCBORVcodik7IHYuSW5pdDsNCntcKlxodG1sdGFnMTE2IDxicj59XGh0
bWxydGYgXGxpbmUNClxodG1scnRmMCANCntcKlxodG1sdGFnNCBccGFyIH1cJ2EwXCdhMFwnYTAg
XCdhMFwnYTBcJ2EwIHYuU29ydDsNCntcKlxodG1sdGFnMTE2IDxicj59XGh0bWxydGYgXGxpbmUN
ClxodG1scnRmMCANCntcKlxodG1sdGFnNCBccGFyIH1cJ2EwXCdhMFwnYTAgRU5EIERvOw0Ke1wq
XGh0bWx0YWcxMTYgPGJyPn1caHRtbHJ0ZiBcbGluZQ0KXGh0bWxydGYwIA0Ke1wqXGh0bWx0YWc0
IFxwYXIgfQ0Ke1wqXGh0bWx0YWcxMTYgPGJyPn1caHRtbHJ0ZiBcbGluZQ0KXGh0bWxydGYwIA0K
e1wqXGh0bWx0YWc0IFxwYXIgfUVORCBQcml2VmFyaWFudC4NCntcKlxodG1sdGFnMTE2IDxicj59
XGh0bWxydGYgXGxpbmUNClxodG1scnRmMCANCntcKlxodG1sdGFnNCBccGFyIH0NCntcKlxodG1s
dGFnMTE2IDxicj59XGh0bWxydGYgXGxpbmUNClxodG1scnRmMCANCntcKlxodG1sdGFnNCBccGFy
IH1UcnkgdGhhdCBhbmQgdGVsbCB1cyB3aGV0aGVyIEkgYW0gd2F5IG9mZiBiYXNlIG9yIHdoZXRo
ZXIgdGhhdCBpcyB3aGF0DQp7XCpcaHRtbHRhZzExNiA8YnI+fVxodG1scnRmIFxsaW5lDQpcaHRt
bHJ0ZjAgDQp7XCpcaHRtbHRhZzQgXHBhciB9eW91IHdhbnQgdG8gZG8uDQp7XCpcaHRtbHRhZzEx
NiA8YnI+fVxodG1scnRmIFxsaW5lDQpcaHRtbHJ0ZjAgDQp7XCpcaHRtbHRhZzQgXHBhciB9DQp7
XCpcaHRtbHRhZzExNiA8YnI+fVxodG1scnRmIFxsaW5lDQpcaHRtbHJ0ZjAgDQp7XCpcaHRtbHRh
ZzQgXHBhciB9QmVzdCByZWdhcmRzLA0Ke1wqXGh0bWx0YWcxMTYgPGJyPn1caHRtbHJ0ZiBcbGlu
ZQ0KXGh0bWxydGYwIA0Ke1wqXGh0bWx0YWc0IFxwYXIgfURvdWcgRGFuZm9ydGgNCntcKlxodG1s
dGFnMTE2IDxicj59XGh0bWxydGYgXGxpbmUNClxodG1scnRmMCANCntcKlxodG1sdGFnNCBccGFy
IH0NCntcKlxodG1sdGFnMTE2IDxicj59XGh0bWxydGYgXGxpbmUNClxodG1scnRmMCANCntcKlxo
dG1sdGFnNCBccGFyIH0NCntcKlxodG1sdGFnMTE2IDxicj59XGh0bWxydGYgXGxpbmUNClxodG1s
cnRmMCANCntcKlxodG1sdGFnNCBccGFyIH1TdGVwaGVuIFIuIFRyb3kgd3JvdGU6DQp7XCpcaHRt
bHRhZzQgXHBhciB9XGh0bWxydGYgIFxodG1scnRmMCB7XCpcaHRtbHRhZzcyfVxodG1scnRmXHBh
cn1caHRtbHJ0ZjANCg0Ke1wqXGh0bWx0YWc5NiA8YmxvY2txdW90ZVxwYXIgIGNpdGU9Im1pZDoy
MDA5MTIzMTE0MTIwNC41Yjc2MzNhZWFhZDI2OTJlYjEyOTUxY2I1NTI5NWI1Zi4zZGZhODYyOGZl
LndiZUBlbWFpbC5zZWN1cmVzZXJ2ZXIubmV0IlxwYXIgIHR5cGU9ImNpdGUiPn1caHRtbHJ0ZiBc
cGFyDQp7XGh0bWxydGYwIHtcKlxodG1sdGFnNjR9XGh0bWxydGYge1xodG1scnRmMCBcbGkzNjAg
DQp7XCpcaHRtbHRhZzg0IDxzcGFuXHBhciAgc3R5bGU9ImZvbnQtZmFtaWx5OiBWZXJkYW5hOyBj
b2xvcjogcmdiKDAsIDAsIDApOyBmb250LXNpemU6IDEwcHQ7Ij59XGh0bWxydGYge1xodG1scnRm
MCANCntcKlxodG1sdGFnNCBccGFyIH0NCntcKlxodG1sdGFnODQgICB9XGh0bWxydGYgfVxodG1s
cnRmMCB7XCpcaHRtbHRhZzcyfVxodG1scnRmXHBhcn1caHRtbHJ0ZjANCg0Ke1wqXGh0bWx0YWc5
NiA8ZGl2Pn1caHRtbHJ0ZiB7XGh0bWxydGYwIHtcKlxodG1sdGFnNjR9XGh0bWxydGYge1xodG1s
cnRmMCBcbGkzNjAgXGh0bWxydGYge1xodG1scnRmMCBIZWxsbyBMaXN0LFxodG1scnRmIH1caHRt
bHJ0ZjAge1wqXGh0bWx0YWc3Mn1caHRtbHJ0ZlxwYXJ9XGh0bWxydGYwDQoNCntcKlxodG1sdGFn
MTA0IDwvZGl2Pn1caHRtbHJ0ZiB9XGh0bWxydGYwIA0Ke1wqXGh0bWx0YWcwIFxwYXIgfQ0Ke1wq
XGh0bWx0YWcyNDAgICB9DQp7XCpcaHRtbHRhZzk2IDxkaXY+fVxodG1scnRmIHtcaHRtbHJ0ZjAg
e1wqXGh0bWx0YWc2NH1caHRtbHJ0ZiB7XGh0bWxydGYwIFxsaTM2MCBcaHRtbHJ0ZiB7XGh0bWxy
dGYwIFRoaXMgaXMgbXkgZmlyc3QgcG9zdCB0byB0aGlzIGxpc3QuXCdhMCBUbyBoZWxwIHlvdSBy
ZXBseSwgSQ0Ke1wqXGh0bWx0YWc0IFxwYXIgfVxodG1scnRmICBcaHRtbHJ0ZjAgc3RhcnRlZCBw
cm9ncmFtbWluZyBkaWdpdGFsIGNvbXB1dGVycywgaW4gbWFjaGluZSBsYW5ndWFnZSwgaW4gMTk1
Ny5cJ2EwDQp7XCpcaHRtbHRhZzQgXHBhciB9XGh0bWxydGYgIFxodG1scnRmMCBTaW5jZSB0aGVu
IEkgaGF2ZSBkb25lIHNjaWVudGlmaWMgYW5kIGVuZ2luZWVyaW5nIHByb2dyYW1taW5nIGluDQp7
XCpcaHRtbHRhZzQgXHBhciB9XGh0bWxydGYgIFxodG1scnRmMCBGT1JUUkFOLCBCQVNJQywgUGFz
Y2FsLCBhbmQgdGhlbiBNb2R1bGEtMiBmb3IgbWFueSB5ZWFycy4gSSBoYXZlIG9ubHkNCntcKlxo
dG1sdGFnNCBccGFyIH1caHRtbHJ0ZiAgXGh0bWxydGYwIGxpbWl0ZWQgZmFtaWxpYXJpdHkgd2l0
aCBDLlwnYTAgTm93IHJldGlyZWQsIHJlY2VudGx5IEkgaGF2ZSBtb3ZlZCB0bw0Ke1wqXGh0bWx0
YWc0IFxwYXIgfVxodG1scnRmICBcaHRtbHJ0ZjAgT2Jlcm9uIGFuZCBub3cgQ29tcG9uZW50IFBh
c2NhbCwgd3JpdGluZyBwcm9ncmFtcyB0byBzdXBwb3J0IGhvYmJpZXMuXCdhMCBcaHRtbHJ0ZiB9
XGh0bWxydGYwIHtcKlxodG1sdGFnNzJ9XGh0bWxydGZccGFyfVxodG1scnRmMA0KDQp7XCpcaHRt
bHRhZzEwNCA8L2Rpdj59XGh0bWxydGYgfVxodG1scnRmMCANCntcKlxodG1sdGFnMCBccGFyIH0N
CntcKlxodG1sdGFnMjQwICAgfQ0Ke1wqXGh0bWx0YWc5NiA8ZGl2Pn1caHRtbHJ0ZiB7XGh0bWxy
dGYwIA0Ke1wqXGh0bWx0YWcxMTIgPGJyPn1caHRtbHJ0ZiBccGFyDQpcaHRtbHJ0ZjAgDQp7XCpc
aHRtbHRhZzAgXHBhciB9DQp7XCpcaHRtbHRhZzI0MCAgIH0NCntcKlxodG1sdGFnMTA0IDwvZGl2
Pn1caHRtbHJ0ZiB9XGh0bWxydGYwIA0Ke1wqXGh0bWx0YWcwIFxwYXIgfQ0Ke1wqXGh0bWx0YWcy
NDAgICB9DQp7XCpcaHRtbHRhZzk2IDxkaXY+fVxodG1scnRmIHtcaHRtbHJ0ZjAge1wqXGh0bWx0
YWc2NH1caHRtbHJ0ZiB7XGh0bWxydGYwIFxsaTM2MCBcaHRtbHJ0ZiB7XGh0bWxydGYwIEkgaGF2
ZSBhIHByb2dyYW0gSSBoYXZlIGJlZW4gZXZvbHZpbmcgZm9yIHNldmVyYWwgeWVhcnMsIHdoaWNo
DQp7XCpcaHRtbHRhZzQgXHBhciB9XGh0bWxydGYgIFxodG1scnRmMCByZWFkcyBpbiBhIGRhdGFi
YXNlIHdoaWNoIGlzIGluIGEgc3RydWN0dXJlZCBBU0NJSSB0ZXh0IGZpbGUgdXNpbmcgYQ0Ke1wq
XGh0bWx0YWc0IFxwYXIgfVxodG1scnRmICBcaHRtbHJ0ZjAgdGhpcmQtcGFydHkgZGF0YWJhc2Ug
c2NoZW1hLlwnYTAgVGhlIHByb2dyYW0gZGV2ZWxvcHMgc2V2ZXJhbCBpbmRleCBmaWxlcywNCntc
KlxodG1sdGFnNCBccGFyIH1caHRtbHJ0ZiAgXGh0bWxydGYwIHBlcmZvcm1zIHZhcmlvdXMgc29y
dGluZyBhbmQgZmlsdGVyaW5nIG9wZXJhdGlvbnMgb24gdGhlc2UgaW5kZXhlcywgYW5kDQp7XCpc
aHRtbHRhZzQgXHBhciB9XGh0bWxydGYgIFxodG1scnRmMCB0aGUgdXNlcyB0aGUgbW9kaWZpZWQg
aW5kZXhlcyB0byB3cml0ZSBvdXQgcmVwb3J0cyB1c2luZyB0aGUgc2FtZQ0Ke1wqXGh0bWx0YWc0
IFxwYXIgfVxodG1scnRmICBcaHRtbHJ0ZjAgZGF0YWJhc2Ugc2NoZW1hLlwnYTAgVGhlcmUgYXJl
IHRocmVlIG1haW4gdHlwZXMgb2YgcmVjb3JkcywgYW5kIEkgd2FzIGFibGUNCntcKlxodG1sdGFn
NCBccGFyIH1caHRtbHJ0ZiAgXGh0bWxydGYwIHRvIHdyaXRlIHZlcnkgZWZmaWNpZW50IHNvcnRp
bmcgYW5kIGZpbHRlcmluZyBwcm9jZWR1cmVzIGluIE1vZHVsYS0yIGJ5DQp7XCpcaHRtbHRhZzQg
XHBhciB9XGh0bWxydGYgIFxodG1scnRmMCB3cml0aW5nIHRoZSByZWNvcmRzIGFzIHZhcmlhbnQg
cmVjb3JkcyBvZiBhIGJhc2ljIHR5cGUsIHRoZW4NCntcKlxodG1sdGFnNCBccGFyIH1caHRtbHJ0
ZiAgXGh0bWxydGYwIGluc3RhbnRpYXRpbmcgdGhlIHJlY29yZHMgYnkgcG9pbnRlcnMuXCdhMCBN
eSBpbmRleGVzIHdlcmUgbGlua2VkIGxpc3RzIG9mDQp7XCpcaHRtbHRhZzQgXHBhciB9XGh0bWxy
dGYgIFxodG1scnRmMCB0aGUgcG9pbnRlcnMsIGJvdGggbGluZWFyIGFuZCBiaW5hcnkgdHJlZXMs
IGFuZCBzbyBJIGNvdWxkIGZpbmQsIHNvcnQsDQp7XCpcaHRtbHRhZzQgXHBhciB9XGh0bWxydGYg
IFxodG1scnRmMCBhbmQgZmlsdGVyIGVhY2ggb2YgdGhlIHRocmVlIHR5cGVzIG9mIHJlY29yZHMg
dXNpbmcgdGhlIHNhbWUgdmVyeQ0Ke1wqXGh0bWx0YWc0IFxwYXIgfVxodG1scnRmICBcaHRtbHJ0
ZjAgZWZmaWNpZW50IGNvZGUsIGJlY2F1c2UgSSBtYW5pcHVsYXRlZCBvbmx5IHRoZSBwb2ludGVy
cycgIm5leHQtcmVjb3JkIg0Ke1wqXGh0bWx0YWc0IFxwYXIgfVxodG1scnRmICBcaHRtbHJ0ZjAg
cG9pbnRlciBpbiB0aGUgbGlua2VkIGxpc3RzLCBub3QgbW92aW5nIGFueSByZWNvcmRzIGluIG1l
bW9yeS5cJ2EwIFxodG1scnRmIH1caHRtbHJ0ZjAge1wqXGh0bWx0YWc3Mn1caHRtbHJ0ZlxwYXJ9
XGh0bWxydGYwDQoNCntcKlxodG1sdGFnMTA0IDwvZGl2Pn1caHRtbHJ0ZiB9XGh0bWxydGYwIA0K
e1wqXGh0bWx0YWcwIFxwYXIgfQ0Ke1wqXGh0bWx0YWcyNDAgICB9DQp7XCpcaHRtbHRhZzk2IDxk
aXY+fVxodG1scnRmIHtcaHRtbHJ0ZjAgDQp7XCpcaHRtbHRhZzExMiA8YnI+fVxodG1scnRmIFxw
YXINClxodG1scnRmMCANCntcKlxodG1sdGFnMCBccGFyIH0NCntcKlxodG1sdGFnMjQwICAgfQ0K
e1wqXGh0bWx0YWcxMDQgPC9kaXY+fVxodG1scnRmIH1caHRtbHJ0ZjAgDQp7XCpcaHRtbHRhZzAg
XHBhciB9DQp7XCpcaHRtbHRhZzI0MCAgIH0NCntcKlxodG1sdGFnOTYgPGRpdj59XGh0bWxydGYg
e1xodG1scnRmMCB7XCpcaHRtbHRhZzY0fVxodG1scnRmIHtcaHRtbHJ0ZjAgXGxpMzYwIFxodG1s
cnRmIHtcaHRtbHJ0ZjAgQnV0IEkgYXBwYXJlbnRseSBJIGNhbid0IHVzZSB0aGlzIG1ldGhvZCBp
biBDb21wb25lbnQgUGFzY2FsDQp7XCpcaHRtbHRhZzQgXHBhciB9XGh0bWxydGYgIFxodG1scnRm
MCBiZWNhdXNlIHZhcmlhbnQgcmVjb3JkcyBhcmUgbm90IGFsbG93ZWQuXCdhMCBJIHRyaWVkIGRl
ZmluaW5nIGEgYmFzaWMNCntcKlxodG1sdGFnNCBccGFyIH1caHRtbHJ0ZiAgXGh0bWxydGYwIHJl
Y29yZCBhcyBhbiBBQlNUUkFDVCB0eXBlLCB0aGVuIGRlZmluaW5nIGVhY2ggb2YgbXkgdGhyZWUg
cmVjb3JkIHR5cGVzDQp7XCpcaHRtbHRhZzQgXHBhciB9XGh0bWxydGYgIFxodG1scnRmMCBhcyBl
eHRlbnNpb25zLlwnYTAgSG93ZXZlciwgSSBjYW4ndCBpbnN0YW50aWF0ZSBhIHJlY29yZCBhcyBh
IE5FVyhwb2ludGVyDQp7XCpcaHRtbHRhZzQgXHBhciB9XGh0bWxydGYgIFxodG1scnRmMCB0byBi
YXNpYyB0eXBlKSwgYW5kIEkgY2FuJ3QgdXNlIGEgc2luZ2xlIHNvcnQgcm91dGluZSB3aXRoIGVh
Y2ggb2YgdGhlDQp7XCpcaHRtbHRhZzQgXHBhciB9XGh0bWxydGYgIFxodG1scnRmMCB0aHJlZSAo
cG9pbnRlciB0byBleHRlbnNpb24gdHlwZSkgLS0gSSBuZWVkIHRocmVlIHNlcGFyYXRlIHJvdXRp
bmVzLA0Ke1wqXGh0bWx0YWc0IFxwYXIgfVxodG1scnRmICBcaHRtbHJ0ZjAgd2hpY2ggaXMgY2x1
bXN5IGF0IGJlc3QsIGFuZCBzZWVtcyBjb250cmFyeSB0byB0aGUgYmFzaWMgaW50ZW50IG9mDQp7
XCpcaHRtbHRhZzQgXHBhciB9XGh0bWxydGYgIFxodG1scnRmMCBDb21wb25lbnQgUGFzY2FsLlwn
YTAgSSB0cmllZCBkZWZpbmluZyB0aGUgYmFzaWMgcmVjb3JkIHR5cGUgYXMNCntcKlxodG1sdGFn
NCBccGFyIH1caHRtbHJ0ZiAgXGh0bWxydGYwIEVYVEVOU0lCTEUsIGJ1dCB0aGF0IG1hZGUgbm8g
ZGlmZmVyZW5jZS5cJ2EwIEkgZm91bmQgYW4gb2JzY3VyZSBzZWN0aW9uIGluDQp7XCpcaHRtbHRh
ZzQgXHBhciB9XGh0bWxydGYgIFxodG1scnRmMCB0aGUgQ29tcG9uZW50IFBhc2NhbCBkb2N1bWVu
dGF0aW9uIHRoYXQgc2FpZCB0aGF0IHVzaW5nIGEgUkVDT1JEDQp7XCpcaHRtbHRhZzQgXHBhciB9
XGh0bWxydGYgIFxodG1scnRmMCBbdW5pb25dIHN5c3RlbSBmbGFnLCB3aGljaCBhbGxvd2VkIGEg
IkMtdHlwZSIgdW5pb24gZGF0YSBzdHJ1Y3R1cmUsIGl0DQp7XCpcaHRtbHRhZzQgXHBhciB9XGh0
bWxydGYgIFxodG1scnRmMCB3YXMgcG9zc2libGUgdG8gc2ltdWxhdGUgUGFzY2FsLSBhbmQgTW9k
dWxhLXN0eWxlIHZhcmlhbnQgcmVjb3JkcywgYnV0DQp7XCpcaHRtbHRhZzQgXHBhciB9XGh0bWxy
dGYgIFxodG1scnRmMCB0aGUgZXhhbXBsZSBpbiB0aGUgZG9jdW1lbnRhdGlvbiB3aWxsIG5vdCBj
b21waWxlIC0tIGl0IGdpdmVzIGFuDQp7XCpcaHRtbHRhZzQgXHBhciB9XGh0bWxydGYgIFxodG1s
cnRmMCAiaW52YWxpZCBzeXN0ZW0gZmxhZyIgZXJyb3IgbWVzc2FnZSBvbiB0aGUgW3VuaW9uXSBm
bGFnLlwnYTAgXGh0bWxydGYgfVxodG1scnRmMCB7XCpcaHRtbHRhZzcyfVxodG1scnRmXHBhcn1c
aHRtbHJ0ZjANCg0Ke1wqXGh0bWx0YWcxMDQgPC9kaXY+fVxodG1scnRmIH1caHRtbHJ0ZjAgDQp7
XCpcaHRtbHRhZzAgXHBhciB9DQp7XCpcaHRtbHRhZzI0MCAgIH0NCntcKlxodG1sdGFnOTYgPGRp
dj59XGh0bWxydGYge1xodG1scnRmMCANCntcKlxodG1sdGFnMTEyIDxicj59XGh0bWxydGYgXHBh
cg0KXGh0bWxydGYwIA0Ke1wqXGh0bWx0YWcwIFxwYXIgfQ0Ke1wqXGh0bWx0YWcyNDAgICB9DQp7
XCpcaHRtbHRhZzEwNCA8L2Rpdj59XGh0bWxydGYgfVxodG1scnRmMCANCntcKlxodG1sdGFnMCBc
cGFyIH0NCntcKlxodG1sdGFnMjQwICAgfQ0Ke1wqXGh0bWx0YWc5NiA8ZGl2Pn1caHRtbHJ0ZiB7
XGh0bWxydGYwIHtcKlxodG1sdGFnNjR9XGh0bWxydGYge1xodG1scnRmMCBcbGkzNjAgXGh0bWxy
dGYge1xodG1scnRmMCBBbnkgc3VnZ2VzdGlvbnMgd291bGQgYmUgd2VsY29tZSBhdCB0aGlzIHBv
aW50LlxodG1scnRmIH1caHRtbHJ0ZjAge1wqXGh0bWx0YWc3Mn1caHRtbHJ0ZlxwYXJ9XGh0bWxy
dGYwDQoNCntcKlxodG1sdGFnMTA0IDwvZGl2Pn1caHRtbHJ0ZiB9XGh0bWxydGYwIA0Ke1wqXGh0
bWx0YWcwIFxwYXIgfQ0Ke1wqXGh0bWx0YWcyNDAgICB9DQp7XCpcaHRtbHRhZzk2IDxkaXY+fVxo
dG1scnRmIHtcaHRtbHJ0ZjAge1wqXGh0bWx0YWc2NH1caHRtbHJ0ZiB7XGh0bWxydGYwIFxsaTM2
MCBcaHRtbHJ0ZiB7XGh0bWxydGYwIFRoYW5rcyxcaHRtbHJ0ZiB9XGh0bWxydGYwIHtcKlxodG1s
dGFnNzJ9XGh0bWxydGZccGFyfVxodG1scnRmMA0KDQp7XCpcaHRtbHRhZzEwNCA8L2Rpdj59XGh0
bWxydGYgfVxodG1scnRmMCANCntcKlxodG1sdGFnMCBccGFyIH0NCntcKlxodG1sdGFnMjQwICAg
fQ0Ke1wqXGh0bWx0YWc5NiA8ZGl2Pn1caHRtbHJ0ZiB7XGh0bWxydGYwIHtcKlxodG1sdGFnNjR9
XGh0bWxydGYge1xodG1scnRmMCBcbGkzNjAgXGh0bWxydGYge1xodG1scnRmMCBTdGV2ZSBUcm95
DQp7XCpcaHRtbHRhZzExNiA8YnI+fVxodG1scnRmIFxsaW5lDQpcaHRtbHJ0ZjAgDQp7XCpcaHRt
bHRhZzQgXHBhciB9DQp7XCpcaHRtbHRhZzg0ICAgfVxodG1scnRmIH1caHRtbHJ0ZjAge1wqXGh0
bWx0YWc3Mn1caHRtbHJ0ZlxwYXJ9XGh0bWxydGYwDQoNCntcKlxodG1sdGFnMTA0IDwvZGl2Pn1c
aHRtbHJ0ZiB9XGh0bWxydGYwIA0Ke1wqXGh0bWx0YWcwIFxwYXIgfQ0Ke1wqXGh0bWx0YWcyNDAg
ICB9DQp7XCpcaHRtbHRhZzI0OCA8L3NwYW4+fQ0Ke1wqXGh0bWx0YWcwIFxwYXIgfQ0Ke1wqXGh0
bWx0YWcyNDAgICB9DQp7XCpcaHRtbHRhZzY0IDxwPn1caHRtbHJ0ZiBccGFyDQpcaHRtbHJ0ZjAg
XGh0bWxydGYge1xodG1scnRmMCBcbGkzNjAgLS0tLQ0Ke1wqXGh0bWx0YWc0IFxwYXIgfVxodG1s
cnRmICBcaHRtbHJ0ZjAgVG8gdW5zdWJzY3JpYmUsIHNlbmQgYSBtZXNzYWdlIHdpdGggYm9keSAi
U0lHTk9GRiBCTEFDS0JPWCIgdG8NCntcKlxodG1sdGFnNCBccGFyIH1caHRtbHJ0ZiAgXGh0bWxy
dGYwIHt9DQp7XCpcaHRtbHRhZzg0IDxhIGNsYXNzPSJtb3otdHh0LWxpbmstYWJicmV2aWF0ZWQi
IGhyZWY9Im1haWx0bzpMSVNUU0VSVkBMSVNUUy5PQkVST04uQ0giPn1caHRtbHJ0ZiB7XGZpZWxk
e1wqXGZsZGluc3R7SFlQRVJMSU5LICJtYWlsdG86TElTVFNFUlZATElTVFMuT0JFUk9OLkNIIn19
e1xmbGRyc2x0XGNmMVx1bCBcaHRtbHJ0ZjAgTElTVFNFUlZATElTVFMuT0JFUk9OLkNIXGh0bWxy
dGYgfVxodG1scnRmMCBcaHRtbHJ0ZiB9XGh0bWxydGYwIA0Ke1wqXGh0bWx0YWc5MiA8L2E+fQ0K
e1wqXGh0bWx0YWc0IFxwYXIgfVxodG1scnRmICBcaHRtbHJ0ZjAgDQp7XCpcaHRtbHRhZzg0ICAg
fVxodG1scnRmXHBhcn1caHRtbHJ0ZjANClxodG1scnRmIFxwYXINClxodG1scnRmMCANCntcKlxo
dG1sdGFnNzIgPC9wPn0NCntcKlxodG1sdGFnMCBccGFyIH0NCntcKlxodG1sdGFnMTA0IDwvYmxv
Y2txdW90ZT59XGh0bWxydGYgfVxodG1scnRmMCANCntcKlxodG1sdGFnMCBccGFyIH0NCntcKlxo
dG1sdGFnNTggPC9ib2R5Pn0NCntcKlxodG1sdGFnMiBccGFyIH0NCntcKlxodG1sdGFnMjcgPC9o
dG1sPn0NCntcKlxodG1sdGFnMyBccGFyIH0NCntcKlxodG1sdGFnNjQgPHA+fVxodG1scnRmIHtc
aHRtbHJ0ZjAgDQp7XCpcaHRtbHRhZzQgXHBhciB9LS0tLQ0Ke1wqXGh0bWx0YWc0IFxwYXIgfVxo
dG1scnRmICBcaHRtbHJ0ZjAgVG8gdW5zdWJzY3JpYmUsIHNlbmQgYSBtZXNzYWdlIHdpdGggYm9k
eSAiU0lHTk9GRiBCTEFDS0JPWCIgdG8gTElTVFNFUlZATElTVFMuT0JFUk9OLkNIDQp7XCpcaHRt
bHRhZzQgXHBhciB9XGh0bWxydGYgIFxodG1scnRmMCBcaHRtbHJ0Zn19AFpSaVhGZmFxbVNydHVH
----boundary-LibPST-iamunique-1246949549_-_---
Received on Fri Jan 01 2010 - 01:26:31 UTC
This archive was generated by hypermail 2.3.0
: Thu Sep 26 2013 - 06:30:38 UTC