--
Bernhard Treutwein, IuK, Ref. III A 3
Bernhard.Treutwein(at)verwaltung uni-muenchen de
> -----Original Message-----
> From: blackbox{([at]})nowhere.xy> Behalf Of Bob Walkden
> Sent: Friday, June 15, 2007 8:28 AM
> To: BlackBox Mailing List
> Subject: [BlackBox] - Hiding abstract methods
>
>
> You can't simultaneously hide the methods of A and have A as
> an abstract type extensible from other modules - it's a
> contradiction. An abstract type can't be instantiated, it
> must be inherited and its inheritors must instantiate its
> parts. If the parts are hidden then it's impossible for its
> inheritors (in other modules) to instantiate them.
>
> --
> Regards,
> Bob
>
>
>
> _____
>
> From: blackbox{([at]})nowhere.xy> Behalf Of Douglas G. Danforth
> Sent: 15 June 2007 03:35
> To: BlackBox Mailing List
> Subject: [BlackBox] - Hiding abstract methods
>
>
> Bob,
> I am trying to keep the amount of stuff shown to a minimum.
>
> There is also a procedure Run that is exported from M
> that when called starts up and eventually calls the installed
> reader and writer (repeatedly).
> The reader and writer do not invoke the hidden
> procedures they are passive and are called by M when needed.
>
> How do I hide the methods of A, Bits, and Ints?
>
> -Doug Danforth
>
>
>
>
> Bob Walkden wrote:
>
> How and when are M's internal procedures
> invoked? If the client's reader is to invoke them directly
> then they must be made public. If you want M's hidden
> procedures to be invoked indirectly by the reader or writer
> you may need to provide a couple of Notifier procedures in M
> and have the reader or writer call them explicitly.
>
> --
> Regards,
> Bob
>
>
>
> _____
>
> From: blackbox{([at]})nowhere.xy> [mailto:blackbox{([at]})nowhere.xy> Sent: 14 June 2007 22:25
> To: BlackBox Mailing List
> Subject: [BlackBox] - Hiding abstract methods
>
>
> Chris,
>
> Here is what I would like the interface
> to module M to appear
>
> DEFINITION M;
>
> TYPE
> A = POINTER TO ABSTRACT RECORD END;
>
> Bits = POINTER TO RECORD (A)
> x: POINTER TO ARRAY OF SET
> END;
>
> Ints = POINTER TO RECORD (A)
> x: POINTER TO ARRAY OF INTEGER
> END;
>
> Reader = PROCEDURE (VAR a: A): BOOLEAN;
>
> Writer = PROCEDURE (a: A);
>
> PROCEDURE InstallReader (rd: Reader);
> PROCEDURE InstallWriter (wr: Writer);
>
> END M.
>
> One just installs a specific reader
> that generates a Bits or an Ints.
> Internally to M there are many
> procedures that take the abstract
> quantity 'a' when a read operation is
> done and operate on it with procedures
> that are methods of type either Bits or
> Ints whose definitions are given internally
> and are abstractions of the of type A.
> But the user of M need not know anything
> about this and BlackBox should not
> force the user to see these methods.
>
> How can this be accomplished?
>
> -Doug Danforth
>
>
> CFB Software wrote:
>
> Hi Doug,
>
> I don't know if I can help but
> as nobody else has responded yet I'm
> willing to give it a try. I'm
> interested in learning more about the
> finer details of issues like
> this. However, I'm not sure from your
> desription that I understand
> exactly what you are trying to do. Would it
> be possible for you to show
> complete minimal examples of:
>
> a) What you would like the code
> to look like
>
> b) How you think it needs to be
> written to make it acceptable to
> Blackbox
>
> Regards,
> Chris Burrows
> CFB Software
> http://www.cfbsoftware.com/gpcp
>
>
>
> -----Original Message-----
> From:
> blackbox{([at]})nowhere.xy> Behalf Of Douglas G. Danforth
> Sent: Wednesday, 13
> June 2007 10:22 AM
> To: BlackBox Mailing List
> Subject: [BlackBox] -
> Hiding abstract methods
>
>
> Folks,
>
> I have a conceptual
> problem on which I would like your advice.
>
> I have an ABSTRACT type
> A and two concrete types C1 and
> C2 which are extensions of A.
>
> TYPE
> A* = POINTER TO
> ABSTRACT RECORD END;
> C1* = POINTER TO
> RECORD(A) END;
> C2* = POINTER TO
> RECORD(A) END;
>
> I would like to export
> A (as shown with the '*'') but within the
> module M where A is
> defined I *do not want* to export its
> methods. I want them
> to be completely hidden so that the user
> of M only needs to
> create the instance Ci (and fill its
> fields (not shown))
> and pass Ci to the
> module M in which the specific methods
> appropriate to Ci
> are specified (but also
> not exported). Within M, procedures take 'a'
> (an instance of A which
> is either C1 or C2) and operates on it without
> knowledge of its
> concrete form. The methods of A are simply called
> and the concrete forms
> of those methods as C1 or C2 are actually
> run.
>
> Unfortunately, it seems
> that this scheme of things is not possible in
> BlackBox.
> I am forced to export
> the methods of A and also the methods of C1 and
> the methods of C2,
> greatly cluttering the interface to M when
> none of that
> information will be
> used by the person operating with M.
> Only the existence
> of A and the extensions
> C1 and C2 are needed.
>
> Is there a clean way to
> hide all of these methods?
>
> -Doug Danforth
>
> --- BlackBox
> --- send subject HELP
> or UNSUBSCRIBE to blackbox{([at]})nowhere.xy>
>
>
> --- BlackBox
> --- send subject HELP or
> UNSUBSCRIBE to blackbox{([at]})nowhere.xy>
>
>
>
>
----boundary-LibPST-iamunique-1834862327_-_-
Content-type: application/rtf
Content-transfer-encoding: base64
Content-Disposition: attachment; filename="rtf-body.rtf"
e1xydGYxXGFuc2lcYW5zaWNwZzEyNTJcZnJvbXRleHQgXGRlZmYwe1xmb250dGJsDQp7XGYwXGZz
d2lzcyBBcmlhbDt9DQp7XGYxXGZtb2Rlcm4gQ291cmllciBOZXc7fQ0Ke1xmMlxmbmlsXGZjaGFy
c2V0MiBTeW1ib2w7fQ0Ke1xmM1xmbW9kZXJuXGZjaGFyc2V0MCBDb3VyaWVyIE5ldzt9fQ0Ke1xj
b2xvcnRibFxyZWQwXGdyZWVuMFxibHVlMDtccmVkMFxncmVlbjBcYmx1ZTI1NTt9DQpcdWMxXHBh
cmRccGxhaW5cZGVmdGFiMzYwIFxmMFxmczIwIEhpIEJvYiAmIERvdWcsXHBhcg0KXHBhcg0Kd2hh
dCBhYm91dCBhIGhpZXJhcmNoeSBvZiBtb2R1bGVzIGxpa2UgdGhlIGFic3RyYWN0aW9uXHBhcg0K
bGF5ZXJzIGdpdmVuIGluIEJsYWNrQm94OlxwYXINClxwYXINCkFic3RyYWN0aW9ucyBpbiBhbG1v
c3QgcHVyZWx5IGFic3RyYWN0IG1vZHVsZXMgKGxpa2UgZS5nLlxwYXINCnRoZSBGaWxlcyBtb2R1
bGUgb2YgQmxhY2tCb3gpLCB3aGljaCByZXZlYWwgb25seSB0aGVccGFyDQp2ZXJ5IG5lY2Vzc2Fy
eSBkZXRhaWxzIGFuZCBwcm92aWRlIG1lY2hhbmlzbXMgZm9yXHBhcg0KZmFjdG9yaWVzIChkaXJl
Y3RvcmllcyBpbiBCQiB0ZXJtaW5vbG9neSkuIENvbmNyZXRlIFxwYXINCmltcGxlbWVudGF0aW9u
cyAobGlrZSBIb3N0RmlsZXMpIGltcG9ydCB0aGVzZSwgaW5pdGlhbGl6ZVxwYXINCnRoZSBmYWN0
b3JpZXMgYW5kIGhhdmUgKG1vcmUgb3IgbGVzcykgcHJpdmF0ZSBpbnRlcmZhY2VzLlxwYXINClxw
YXINCkFsdGhvdWdoIG5vdyB0aGUgZGV0YWlscyBhcmUgc3RpbGwgdmlzaWJsZSAoaW4gcHJpbmNp
cGxlXHBhcg0KdmlhIHRoZSBsb3cgbGV2ZWwgaW50ZXJmYWNlcykgeW91IGhhdmUgYSBsZWFzdCBh
IHNlcGFyYXRpb25ccGFyDQpvZiB0aGUgcHVibGlzaGVkIHN0dWZmLlxwYXINClxwYXINCnJlZ2Fy
ZHNccGFyDQotLVxwYXINClx0YWIgQmVybmhhcmQgVHJldXR3ZWluLCBJdUssIFJlZi4gSUlJIEEg
M1xwYXINClx0YWIgQmVybmhhcmQuVHJldXR3ZWluKGF0KXZlcndhbHR1bmcgdW5pLW11ZW5jaGVu
IGRlXHBhcg0KXHBhcg0KPiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLVxwYXINCj4gRnJvbTog
YmxhY2tib3hAb2Jlcm9uLmNoIFttYWlsdG86YmxhY2tib3hAb2Jlcm9uLmNoXSBPbiBccGFyDQo+
IEJlaGFsZiBPZiBCb2IgV2Fsa2RlblxwYXINCj4gU2VudDogRnJpZGF5LCBKdW5lIDE1LCAyMDA3
IDg6MjggQU1ccGFyDQo+IFRvOiBCbGFja0JveCBNYWlsaW5nIExpc3RccGFyDQo+IFN1YmplY3Q6
IFtCbGFja0JveF0gLSBIaWRpbmcgYWJzdHJhY3QgbWV0aG9kc1xwYXINCj4gXHBhcg0KPiBccGFy
DQo+IFlvdSBjYW4ndCBzaW11bHRhbmVvdXNseSBoaWRlIHRoZSBtZXRob2RzIG9mIEEgYW5kIGhh
dmUgQSBhcyBccGFyDQo+IGFuIGFic3RyYWN0IHR5cGUgZXh0ZW5zaWJsZSBmcm9tIG90aGVyIG1v
ZHVsZXMgLSBpdCdzIGEgXHBhcg0KPiBjb250cmFkaWN0aW9uLiBBbiBhYnN0cmFjdCB0eXBlIGNh
bid0IGJlIGluc3RhbnRpYXRlZCwgaXQgXHBhcg0KPiBtdXN0IGJlIGluaGVyaXRlZCBhbmQgaXRz
IGluaGVyaXRvcnMgbXVzdCBpbnN0YW50aWF0ZSBpdHMgXHBhcg0KPiBwYXJ0cy4gSWYgdGhlIHBh
cnRzIGFyZSBoaWRkZW4gdGhlbiBpdCdzIGltcG9zc2libGUgZm9yIGl0cyBccGFyDQo+IGluaGVy
aXRvcnMgKGluIG90aGVyIG1vZHVsZXMpIHRvIGluc3RhbnRpYXRlIHRoZW0uXHBhcg0KPiAgXHBh
cg0KPiAtLVxwYXINCj4gUmVnYXJkcyxccGFyDQo+ICBCb2IgXHBhcg0KPiAgXHBhcg0KPiBccGFy
DQo+IFxwYXINCj4gICBfX19fXyAgXHBhcg0KPiBccGFyDQo+IFx0YWIgRnJvbTogYmxhY2tib3hA
b2Jlcm9uLmNoIFttYWlsdG86YmxhY2tib3hAb2Jlcm9uLmNoXSBPbiBccGFyDQo+IEJlaGFsZiBP
ZiBEb3VnbGFzIEcuIERhbmZvcnRoXHBhcg0KPiBcdGFiIFNlbnQ6IDE1IEp1bmUgMjAwNyAwMzoz
NVxwYXINCj4gXHRhYiBUbzogQmxhY2tCb3ggTWFpbGluZyBMaXN0XHBhcg0KPiBcdGFiIFN1Ympl
Y3Q6IFtCbGFja0JveF0gLSBIaWRpbmcgYWJzdHJhY3QgbWV0aG9kc1xwYXINCj4gXHRhYiBccGFy
DQo+IFx0YWIgXHBhcg0KPiBcdGFiIEJvYixccGFyDQo+IFx0YWIgSSBhbSB0cnlpbmcgdG8ga2Vl
cCB0aGUgYW1vdW50IG9mIHN0dWZmIHNob3duIHRvIGEgbWluaW11bS5ccGFyDQo+IFx0YWIgXHBh
cg0KPiBcdGFiIFRoZXJlIGlzIGFsc28gYSBwcm9jZWR1cmUgUnVuIHRoYXQgaXMgZXhwb3J0ZWQg
ZnJvbSBNIFxwYXINCj4gdGhhdCB3aGVuIGNhbGxlZCBzdGFydHMgdXAgYW5kIGV2ZW50dWFsbHkg
Y2FsbHMgdGhlIGluc3RhbGxlZCBccGFyDQo+IHJlYWRlciBhbmQgd3JpdGVyIChyZXBlYXRlZGx5
KS5ccGFyDQo+IFx0YWIgVGhlIHJlYWRlciBhbmQgd3JpdGVyIGRvIG5vdCBpbnZva2UgdGhlIGhp
ZGRlbiBccGFyDQo+IHByb2NlZHVyZXMgdGhleSBhcmUgcGFzc2l2ZSBhbmQgYXJlIGNhbGxlZCBi
eSBNIHdoZW4gbmVlZGVkLlxwYXINCj4gXHRhYiBccGFyDQo+IFx0YWIgSG93IGRvIEkgaGlkZSB0
aGUgbWV0aG9kcyBvZiBBLCBCaXRzLCBhbmQgSW50cz9ccGFyDQo+IFx0YWIgXHBhcg0KPiBcdGFi
IC1Eb3VnIERhbmZvcnRoXHBhcg0KPiBcdGFiIFxwYXINCj4gXHRhYiBccGFyDQo+IFx0YWIgXHBh
cg0KPiBcdGFiIFxwYXINCj4gXHRhYiBCb2IgV2Fsa2RlbiB3cm90ZTogXHBhcg0KPiBccGFyDQo+
IFx0YWIgXHRhYiBIb3cgYW5kIHdoZW4gYXJlIE0ncyBpbnRlcm5hbCBwcm9jZWR1cmVzIFxwYXIN
Cj4gaW52b2tlZD8gSWYgdGhlIGNsaWVudCdzIHJlYWRlciBpcyB0byBpbnZva2UgdGhlbSBkaXJl
Y3RseSBccGFyDQo+IHRoZW4gdGhleSBtdXN0IGJlIG1hZGUgcHVibGljLiBJZiB5b3Ugd2FudCBN
J3MgaGlkZGVuIFxwYXINCj4gcHJvY2VkdXJlcyB0byBiZSBpbnZva2VkIGluZGlyZWN0bHkgYnkg
dGhlIHJlYWRlciBvciB3cml0ZXIgXHBhcg0KPiB5b3UgbWF5IG5lZWQgdG8gcHJvdmlkZSBhIGNv
dXBsZSBvZiBOb3RpZmllciBwcm9jZWR1cmVzIGluIE0gXHBhcg0KPiBhbmQgaGF2ZSB0aGUgcmVh
ZGVyIG9yIHdyaXRlciBjYWxsIHRoZW0gZXhwbGljaXRseS5ccGFyDQo+IFx0YWIgXHRhYiAgXHBh
cg0KPiBcdGFiIFx0YWIgLS1ccGFyDQo+IFx0YWIgXHRhYiBSZWdhcmRzLFxwYXINCj4gXHRhYiBc
dGFiICBCb2IgXHBhcg0KPiBcdGFiIFx0YWIgIFxwYXINCj4gXHBhcg0KPiBccGFyDQo+ICAgX19f
X18gIFxwYXINCj4gXHBhcg0KPiBcdGFiIFx0YWIgXHRhYiBGcm9tOiBibGFja2JveEBvYmVyb24u
Y2ggXHBhcg0KPiBbbWFpbHRvOmJsYWNrYm94QG9iZXJvbi5jaF0gT24gQmVoYWxmIE9mIERvdWds
YXMgRy4gRGFuZm9ydGhccGFyDQo+IFx0YWIgXHRhYiBcdGFiIFNlbnQ6IDE0IEp1bmUgMjAwNyAy
MjoyNVxwYXINCj4gXHRhYiBcdGFiIFx0YWIgVG86IEJsYWNrQm94IE1haWxpbmcgTGlzdFxwYXIN
Cj4gXHRhYiBcdGFiIFx0YWIgU3ViamVjdDogW0JsYWNrQm94XSAtIEhpZGluZyBhYnN0cmFjdCBt
ZXRob2RzXHBhcg0KPiBcdGFiIFx0YWIgXHRhYiBccGFyDQo+IFx0YWIgXHRhYiBcdGFiIFxwYXIN
Cj4gXHRhYiBcdGFiIFx0YWIgQ2hyaXMsXHBhcg0KPiBcdGFiIFx0YWIgXHRhYiBccGFyDQo+IFx0
YWIgXHRhYiBcdGFiIEhlcmUgaXMgd2hhdCBJIHdvdWxkIGxpa2UgdGhlIGludGVyZmFjZSBccGFy
DQo+IHRvIG1vZHVsZSBNIHRvIGFwcGVhclxwYXINCj4gXHRhYiBcdGFiIFx0YWIgXHBhcg0KPiBc
dGFiIFx0YWIgXHRhYiBERUZJTklUSU9OIE07XHBhcg0KPiBcdGFiIFx0YWIgXHRhYiBccGFyDQo+
IFx0YWIgXHRhYiBcdGFiICAgICBUWVBFXHBhcg0KPiBcdGFiIFx0YWIgXHRhYiAgICAgICAgIEEg
PSBQT0lOVEVSIFRPIEFCU1RSQUNUIFJFQ09SRCAgRU5EO1xwYXINCj4gXHRhYiBcdGFiIFx0YWIg
XHBhcg0KPiBcdGFiIFx0YWIgXHRhYiAgICAgICAgIEJpdHMgPSBQT0lOVEVSIFRPIFJFQ09SRCAo
QSlccGFyDQo+IFx0YWIgXHRhYiBcdGFiICAgICAgICAgICAgIHg6IFBPSU5URVIgVE8gQVJSQVkg
T0YgU0VUXHBhcg0KPiBcdGFiIFx0YWIgXHRhYiAgICAgICAgIEVORDtccGFyDQo+IFx0YWIgXHRh
YiBcdGFiIFxwYXINCj4gXHRhYiBcdGFiIFx0YWIgICAgICAgICBJbnRzID0gUE9JTlRFUiBUTyBS
RUNPUkQgKEEpXHBhcg0KPiBcdGFiIFx0YWIgXHRhYiAgICAgICAgICAgICB4OiBQT0lOVEVSIFRP
IEFSUkFZIE9GIElOVEVHRVJccGFyDQo+IFx0YWIgXHRhYiBcdGFiICAgICAgICAgRU5EO1xwYXIN
Cj4gXHRhYiBcdGFiIFx0YWIgXHBhcg0KPiBcdGFiIFx0YWIgXHRhYiAgICAgICAgIFJlYWRlciA9
IFBST0NFRFVSRSAoVkFSIGE6IEEpOiBCT09MRUFOO1xwYXINCj4gXHRhYiBcdGFiIFx0YWIgXHBh
cg0KPiBcdGFiIFx0YWIgXHRhYiAgICAgICAgIFdyaXRlciA9IFBST0NFRFVSRSAoYTogQSk7XHBh
cg0KPiBcdGFiIFx0YWIgXHRhYiBccGFyDQo+IFx0YWIgXHRhYiBcdGFiICAgICBQUk9DRURVUkUg
SW5zdGFsbFJlYWRlciAocmQ6IFJlYWRlcik7XHBhcg0KPiBcdGFiIFx0YWIgXHRhYiAgICAgUFJP
Q0VEVVJFIEluc3RhbGxXcml0ZXIgKHdyOiBXcml0ZXIpO1xwYXINCj4gXHRhYiBcdGFiIFx0YWIg
XHBhcg0KPiBcdGFiIFx0YWIgXHRhYiBFTkQgTS5ccGFyDQo+IFx0YWIgXHRhYiBcdGFiIFxwYXIN
Cj4gXHRhYiBcdGFiIFx0YWIgT25lIGp1c3QgaW5zdGFsbHMgYSBzcGVjaWZpYyByZWFkZXIgXHBh
cg0KPiB0aGF0IGdlbmVyYXRlcyBhIEJpdHMgb3IgYW4gSW50cy5ccGFyDQo+IFx0YWIgXHRhYiBc
dGFiIEludGVybmFsbHkgdG8gTSB0aGVyZSBhcmUgbWFueSBccGFyDQo+IHByb2NlZHVyZXMgdGhh
dCB0YWtlIHRoZSBhYnN0cmFjdFxwYXINCj4gXHRhYiBcdGFiIFx0YWIgcXVhbnRpdHkgJ2EnIHdo
ZW4gYSByZWFkIG9wZXJhdGlvbiBpcyBccGFyDQo+IGRvbmUgYW5kIG9wZXJhdGUgb24gaXQgd2l0
aCBwcm9jZWR1cmVzXHBhcg0KPiBcdGFiIFx0YWIgXHRhYiB0aGF0IGFyZSBtZXRob2RzIG9mIHR5
cGUgZWl0aGVyIEJpdHMgb3IgXHBhcg0KPiBJbnRzIHdob3NlIGRlZmluaXRpb25zIGFyZSBnaXZl
biBpbnRlcm5hbGx5XHBhcg0KPiBcdGFiIFx0YWIgXHRhYiBhbmQgYXJlIGFic3RyYWN0aW9ucyBv
ZiB0aGUgb2YgdHlwZSBBLiAgXHBhcg0KPiBCdXQgdGhlIHVzZXIgb2YgTSBuZWVkIG5vdCBrbm93
IGFueXRoaW5nXHBhcg0KPiBcdGFiIFx0YWIgXHRhYiBhYm91dCB0aGlzIGFuZCBCbGFja0JveCBz
aG91bGQgbm90IFxwYXINCj4gZm9yY2UgdGhlIHVzZXIgdG8gc2VlIHRoZXNlIG1ldGhvZHMuXHBh
cg0KPiBcdGFiIFx0YWIgXHRhYiBccGFyDQo+IFx0YWIgXHRhYiBcdGFiIEhvdyBjYW4gdGhpcyBi
ZSBhY2NvbXBsaXNoZWQ/XHBhcg0KPiBcdGFiIFx0YWIgXHRhYiBccGFyDQo+IFx0YWIgXHRhYiBc
dGFiIC1Eb3VnIERhbmZvcnRoXHBhcg0KPiBcdGFiIFx0YWIgXHRhYiBccGFyDQo+IFx0YWIgXHRh
YiBcdGFiIFxwYXINCj4gXHRhYiBcdGFiIFx0YWIgQ0ZCIFNvZnR3YXJlIHdyb3RlOiBccGFyDQo+
IFxwYXINCj4gXHRhYiBcdGFiIFx0YWIgXHRhYiBIaSBEb3VnLFxwYXINCj4gXHRhYiBcdGFiIFx0
YWIgXHRhYiBccGFyDQo+IFx0YWIgXHRhYiBcdGFiIFx0YWIgSSBkb24ndCBrbm93IGlmIEkgY2Fu
IGhlbHAgYnV0IFxwYXINCj4gYXMgbm9ib2R5IGVsc2UgaGFzIHJlc3BvbmRlZCB5ZXQgSSdtXHBh
cg0KPiBcdGFiIFx0YWIgXHRhYiBcdGFiIHdpbGxpbmcgdG8gZ2l2ZSBpdCBhIHRyeS4gSSdtIFxw
YXINCj4gaW50ZXJlc3RlZCBpbiBsZWFybmluZyBtb3JlIGFib3V0IHRoZVxwYXINCj4gXHRhYiBc
dGFiIFx0YWIgXHRhYiBmaW5lciBkZXRhaWxzIG9mIGlzc3VlcyBsaWtlIFxwYXINCj4gdGhpcy4g
SG93ZXZlciwgSSdtIG5vdCBzdXJlIGZyb20geW91clxwYXINCj4gXHRhYiBcdGFiIFx0YWIgXHRh
YiBkZXNyaXB0aW9uIHRoYXQgSSB1bmRlcnN0YW5kIFxwYXINCj4gZXhhY3RseSB3aGF0IHlvdSBh
cmUgdHJ5aW5nIHRvIGRvLiBXb3VsZCBpdFxwYXINCj4gXHRhYiBcdGFiIFx0YWIgXHRhYiBiZSBw
b3NzaWJsZSBmb3IgeW91IHRvIHNob3cgXHBhcg0KPiBjb21wbGV0ZSBtaW5pbWFsIGV4YW1wbGVz
IG9mOiBccGFyDQo+IFx0YWIgXHRhYiBcdGFiIFx0YWIgXHBhcg0KPiBcdGFiIFx0YWIgXHRhYiBc
dGFiIGEpIFdoYXQgeW91IHdvdWxkIGxpa2UgdGhlIGNvZGUgXHBhcg0KPiB0byBsb29rIGxpa2Ug
XHBhcg0KPiBcdGFiIFx0YWIgXHRhYiBcdGFiIFxwYXINCj4gXHRhYiBcdGFiIFx0YWIgXHRhYiBi
KSBIb3cgeW91IHRoaW5rIGl0IG5lZWRzIHRvIGJlIFxwYXINCj4gd3JpdHRlbiB0byBtYWtlIGl0
IGFjY2VwdGFibGUgdG9ccGFyDQo+IFx0YWIgXHRhYiBcdGFiIFx0YWIgQmxhY2tib3hccGFyDQo+
IFx0YWIgXHRhYiBcdGFiIFx0YWIgXHBhcg0KPiBcdGFiIFx0YWIgXHRhYiBcdGFiIFJlZ2FyZHMs
XHBhcg0KPiBcdGFiIFx0YWIgXHRhYiBcdGFiIENocmlzIEJ1cnJvd3NccGFyDQo+IFx0YWIgXHRh
YiBcdGFiIFx0YWIgQ0ZCIFNvZnR3YXJlXHBhcg0KPiBcdGFiIFx0YWIgXHRhYiBcdGFiIGh0dHA6
Ly93d3cuY2Zic29mdHdhcmUuY29tL2dwY3BccGFyDQo+IFx0YWIgXHRhYiBcdGFiIFx0YWIgXHBh
cg0KPiBcdGFiIFx0YWIgXHRhYiBcdGFiICAgXHBhcg0KPiBccGFyDQo+IFx0YWIgXHRhYiBcdGFi
IFx0YWIgXHRhYiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLVxwYXINCj4gXHRhYiBcdGFiIFx0
YWIgXHRhYiBcdGFiIEZyb206IFxwYXINCj4gYmxhY2tib3hAb2Jlcm9uLmNoIFttYWlsdG86Ymxh
Y2tib3hAb2Jlcm9uLmNoXSBPbiBccGFyDQo+IFx0YWIgXHRhYiBcdGFiIFx0YWIgXHRhYiBCZWhh
bGYgT2YgRG91Z2xhcyBHLiBEYW5mb3J0aFxwYXINCj4gXHRhYiBcdGFiIFx0YWIgXHRhYiBcdGFi
IFNlbnQ6IFdlZG5lc2RheSwgMTMgXHBhcg0KPiBKdW5lIDIwMDcgMTA6MjIgQU1ccGFyDQo+IFx0
YWIgXHRhYiBcdGFiIFx0YWIgXHRhYiBUbzogQmxhY2tCb3ggTWFpbGluZyBMaXN0XHBhcg0KPiBc
dGFiIFx0YWIgXHRhYiBcdGFiIFx0YWIgU3ViamVjdDogW0JsYWNrQm94XSAtIFxwYXINCj4gSGlk
aW5nIGFic3RyYWN0IG1ldGhvZHNccGFyDQo+IFx0YWIgXHRhYiBcdGFiIFx0YWIgXHRhYiBccGFy
DQo+IFx0YWIgXHRhYiBcdGFiIFx0YWIgXHRhYiBccGFyDQo+IFx0YWIgXHRhYiBcdGFiIFx0YWIg
XHRhYiBGb2xrcyxccGFyDQo+IFx0YWIgXHRhYiBcdGFiIFx0YWIgXHRhYiBccGFyDQo+IFx0YWIg
XHRhYiBcdGFiIFx0YWIgXHRhYiBJIGhhdmUgYSBjb25jZXB0dWFsIFxwYXINCj4gcHJvYmxlbSBv
biB3aGljaCBJIHdvdWxkIGxpa2UgeW91ciBhZHZpY2UuXHBhcg0KPiBcdGFiIFx0YWIgXHRhYiBc
dGFiIFx0YWIgXHBhcg0KPiBcdGFiIFx0YWIgXHRhYiBcdGFiIFx0YWIgSSBoYXZlIGFuIEFCU1RS
QUNUIHR5cGUgXHBhcg0KPiBBIGFuZCB0d28gY29uY3JldGUgdHlwZXMgQzEgYW5kXHBhcg0KPiBc
dGFiIFx0YWIgXHRhYiBcdGFiIFx0YWIgQzIgd2hpY2ggYXJlIGV4dGVuc2lvbnMgb2YgQS5ccGFy
DQo+IFx0YWIgXHRhYiBcdGFiIFx0YWIgXHRhYiBccGFyDQo+IFx0YWIgXHRhYiBcdGFiIFx0YWIg
XHRhYiAgICAgVFlQRVxwYXINCj4gXHRhYiBcdGFiIFx0YWIgXHRhYiBcdGFiICAgICAgICBBKiA9
IFBPSU5URVIgVE8gXHBhcg0KPiBBQlNUUkFDVCBSRUNPUkQgRU5EO1xwYXINCj4gXHRhYiBcdGFi
IFx0YWIgXHRhYiBcdGFiICAgICAgICBDMSogPSBQT0lOVEVSIFRPIFxwYXINCj4gUkVDT1JEKEEp
IEVORDtccGFyDQo+IFx0YWIgXHRhYiBcdGFiIFx0YWIgXHRhYiAgICAgICAgQzIqID0gUE9JTlRF
UiBUTyBccGFyDQo+IFJFQ09SRChBKSBFTkQ7XHBhcg0KPiBcdGFiIFx0YWIgXHRhYiBcdGFiIFx0
YWIgXHBhcg0KPiBcdGFiIFx0YWIgXHRhYiBcdGFiIFx0YWIgSSB3b3VsZCBsaWtlIHRvIGV4cG9y
dCBccGFyDQo+IEEgKGFzIHNob3duIHdpdGggdGhlICcqJycpIGJ1dCB3aXRoaW4gdGhlXHBhcg0K
PiBcdGFiIFx0YWIgXHRhYiBcdGFiIFx0YWIgbW9kdWxlIE0gd2hlcmUgQSBpcyBccGFyDQo+IGRl
ZmluZWQgSSAqZG8gbm90IHdhbnQqIHRvIGV4cG9ydCBpdHNccGFyDQo+IFx0YWIgXHRhYiBcdGFi
IFx0YWIgXHRhYiBtZXRob2RzLiAgSSB3YW50IHRoZW0gXHBhcg0KPiB0byBiZSBjb21wbGV0ZWx5
IGhpZGRlbiBzbyB0aGF0IHRoZSB1c2VyXHBhcg0KPiBcdGFiIFx0YWIgXHRhYiBcdGFiIFx0YWIg
b2YgTSBvbmx5IG5lZWRzIHRvIFxwYXINCj4gY3JlYXRlIHRoZSBpbnN0YW5jZSBDaSAoYW5kIGZp
bGwgaXRzIFxwYXINCj4gXHRhYiBcdGFiIFx0YWIgXHRhYiBcdGFiIGZpZWxkcyAobm90IHNob3du
KSlccGFyDQo+IFx0YWIgXHRhYiBcdGFiIFx0YWIgXHRhYiBhbmQgcGFzcyBDaSB0byB0aGUgXHBh
cg0KPiBtb2R1bGUgTSBpbiB3aGljaCB0aGUgc3BlY2lmaWMgbWV0aG9kcyBccGFyDQo+IFx0YWIg
XHRhYiBcdGFiIFx0YWIgXHRhYiBhcHByb3ByaWF0ZSB0byBDaVxwYXINCj4gXHRhYiBcdGFiIFx0
YWIgXHRhYiBcdGFiIGFyZSBzcGVjaWZpZWQgKGJ1dCBhbHNvIFxwYXINCj4gbm90IGV4cG9ydGVk
KS4gIFdpdGhpbiBNLCBwcm9jZWR1cmVzIHRha2UgJ2EnXHBhcg0KPiBcdGFiIFx0YWIgXHRhYiBc
dGFiIFx0YWIgKGFuIGluc3RhbmNlIG9mIEEgd2hpY2ggXHBhcg0KPiBpcyBlaXRoZXIgQzEgb3Ig
QzIpIGFuZCBvcGVyYXRlcyBvbiBpdCB3aXRob3V0XHBhcg0KPiBcdGFiIFx0YWIgXHRhYiBcdGFi
IFx0YWIga25vd2xlZGdlIG9mIGl0cyBccGFyDQo+IGNvbmNyZXRlIGZvcm0uICBUaGUgbWV0aG9k
cyBvZiBBIGFyZSBzaW1wbHkgY2FsbGVkXHBhcg0KPiBcdGFiIFx0YWIgXHRhYiBcdGFiIFx0YWIg
YW5kIHRoZSBjb25jcmV0ZSBmb3JtcyBccGFyDQo+IG9mIHRob3NlIG1ldGhvZHMgYXMgQzEgb3Ig
QzIgYXJlIGFjdHVhbGx5XHBhcg0KPiBcdGFiIFx0YWIgXHRhYiBcdGFiIFx0YWIgcnVuLlxwYXIN
Cj4gXHRhYiBcdGFiIFx0YWIgXHRhYiBcdGFiIFxwYXINCj4gXHRhYiBcdGFiIFx0YWIgXHRhYiBc
dGFiIFVuZm9ydHVuYXRlbHksIGl0IHNlZW1zIFxwYXINCj4gdGhhdCB0aGlzIHNjaGVtZSBvZiB0
aGluZ3MgaXMgbm90IHBvc3NpYmxlIGluIFxwYXINCj4gXHRhYiBcdGFiIFx0YWIgXHRhYiBcdGFi
IEJsYWNrQm94LlxwYXINCj4gXHRhYiBcdGFiIFx0YWIgXHRhYiBcdGFiIEkgYW0gZm9yY2VkIHRv
IGV4cG9ydCBccGFyDQo+IHRoZSBtZXRob2RzIG9mIEEgYW5kIGFsc28gdGhlIG1ldGhvZHMgb2Yg
QzEgYW5kXHBhcg0KPiBcdGFiIFx0YWIgXHRhYiBcdGFiIFx0YWIgdGhlIG1ldGhvZHMgb2YgQzIs
IFxwYXINCj4gZ3JlYXRseSBjbHV0dGVyaW5nIHRoZSBpbnRlcmZhY2UgdG8gTSB3aGVuIFxwYXIN
Cj4gXHRhYiBcdGFiIFx0YWIgXHRhYiBcdGFiIG5vbmUgb2YgdGhhdFxwYXINCj4gXHRhYiBcdGFi
IFx0YWIgXHRhYiBcdGFiIGluZm9ybWF0aW9uIHdpbGwgYmUgXHBhcg0KPiB1c2VkIGJ5IHRoZSBw
ZXJzb24gb3BlcmF0aW5nIHdpdGggTS4gIFxwYXINCj4gXHRhYiBcdGFiIFx0YWIgXHRhYiBcdGFi
IE9ubHkgdGhlIGV4aXN0ZW5jZVxwYXINCj4gXHRhYiBcdGFiIFx0YWIgXHRhYiBcdGFiIG9mIEEg
YW5kIHRoZSBleHRlbnNpb25zIFxwYXINCj4gQzEgYW5kIEMyIGFyZSBuZWVkZWQuXHBhcg0KPiBc
dGFiIFx0YWIgXHRhYiBcdGFiIFx0YWIgXHBhcg0KPiBcdGFiIFx0YWIgXHRhYiBcdGFiIFx0YWIg
SXMgdGhlcmUgYSBjbGVhbiB3YXkgdG8gXHBhcg0KPiBoaWRlIGFsbCBvZiB0aGVzZSBtZXRob2Rz
P1xwYXINCj4gXHRhYiBcdGFiIFx0YWIgXHRhYiBcdGFiIFxwYXINCj4gXHRhYiBcdGFiIFx0YWIg
XHRhYiBcdGFiIC1Eb3VnIERhbmZvcnRoXHBhcg0KPiBcdGFiIFx0YWIgXHRhYiBcdGFiIFx0YWIg
XHBhcg0KPiBcdGFiIFx0YWIgXHRhYiBcdGFiIFx0YWIgLS0tIEJsYWNrQm94XHBhcg0KPiBcdGFi
IFx0YWIgXHRhYiBcdGFiIFx0YWIgLS0tIHNlbmQgc3ViamVjdCBIRUxQIFxwYXINCj4gb3IgVU5T
VUJTQ1JJQkUgdG8gYmxhY2tib3hAb2Jlcm9uLmNoXHBhcg0KPiBcdGFiIFx0YWIgXHRhYiBcdGFi
IFx0YWIgICAgIFxwYXINCj4gXHBhcg0KPiBcdGFiIFx0YWIgXHRhYiBcdGFiIFxwYXINCj4gXHRh
YiBcdGFiIFx0YWIgXHRhYiAtLS0gQmxhY2tCb3hccGFyDQo+IFx0YWIgXHRhYiBcdGFiIFx0YWIg
LS0tIHNlbmQgc3ViamVjdCBIRUxQIG9yIFxwYXINCj4gVU5TVUJTQ1JJQkUgdG8gYmxhY2tib3hA
b2Jlcm9uLmNoXHBhcg0KPiBcdGFiIFx0YWIgXHRhYiBcdGFiIFxwYXINCj4gXHRhYiBcdGFiIFx0
YWIgXHRhYiBccGFyDQo+IFx0YWIgXHRhYiBcdGFiIFx0YWIgICBccGFyDQo+IFxwYXINCj4gXHBh
cg0KfQ==
----boundary-LibPST-iamunique-1834862327_-_---
Received on Fri Jun 15 2007 - 09:10:18 UTC
This archive was generated by hypermail 2.3.0 : Thu Sep 26 2013 - 06:31:32 UTC