-- 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> > > > > --- BlackBox --- send subject HELP or UNSUBSCRIBE to blackbox{([at]})nowhere.xy----boundary-LibPST-iamunique-131795604_-_- 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 cg0KXHBhcg0KLS0tIEJsYWNrQm94XHBhcg0KLS0tIHNlbmQgc3ViamVjdCBIRUxQIG9yIFVOU1VC U0NSSUJFIHRvIGJsYWNrYm94QG9iZXJvbn19AL9wN1E3UGk ----boundary-LibPST-iamunique-131795604_-_---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