Re: [BLACKBOX] LibVector question

From: Douglas G. Danforth <"Douglas>
Date: Fri, 27 Mar 2009 15:16:17 -0700

----boundary-LibPST-iamunique-666486847_-_- Content-type: text/plain Robert "It is not 'completely safe'; to do that Vectors would have to be immutable with their components set to be Read-only (somehow)." Here is a knee jerk reaction to your comment. It is possible to make the components of a vector read-only by using "IN". If , say, TYPE vector = POINTER TO ARRAY OF REAL; then operations on a vector need to pass through procedures that take IN arguments PROCEDURE DoSomething (IN x: ARRAY OF REAL): REAL; BEGIN .... END DoSomething; and call VAR v: Vector; r: REAL; r := DoSomething(v) so that even though v is a pointer its elements can not be changed. If the components of the vectors are themselves pointers to other structures then again the operations on those components would have to pass through procedures that take IN args. -Doug Danforth Robert wrote: Wojtek Skulski wrote: Meanwhile I have a question. Your function LibVectors.Neg is allocating a new vector. Why? Flipping the sign of every vector element can be done in situ. Why are you calling NEW? And the same comment applies to other functions, such as Abs, Mag, Map etc. One has to make design choices, which usually have pros & cons. It is rare that one choice is superior from every aspect. I assume you have read the section in the Docu called "Assignments". The issue is: VAR a, b : LibVectors.Vector; BEGIN a := .....; b := a; LibVectors.Neg (b); If this was in-place it would also negate the 'a', whereas with my design: b := LibVectors.Neg (b); (* Neg inclueds a NEW *) I have negated b without the non-obvious side effect of negating a. I think this is safer, less prone to accidental error. It is not 'completely safe'; to do that Vectors would have to be immutable with their components set to be Read-only (somehow). This I considered too inconvenient and inefficient, hence the design compromise you see. By contrast the design philosophy for the type LibComplex.Complex is 'safe'; the type is immutable, the fields are read-only, and 'Big' sums with Complexes generate a lot of garbage. I am sure there are applications where these design choices are sub-optimal, if not unacceptable. But that would be true of any choice. C'est la vie. Cheers Robert ---- 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-666486847_-_- 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 XCpcaHRtbHRhZzY0fVxodG1scnRmIHtcaHRtbHJ0ZjAgUm9iZXJ0DQp7XCpcaHRtbHRhZzExNiA8 YnI+fVxodG1scnRmIFxsaW5lDQpcaHRtbHJ0ZjAgDQp7XCpcaHRtbHRhZzQgXHBhciB9DQp7XCpc aHRtbHRhZzExNiA8YnI+fVxodG1scnRmIFxsaW5lDQpcaHRtbHJ0ZjAgDQp7XCpcaHRtbHRhZzQg XHBhciB9Ikl0IGlzIG5vdCAnY29tcGxldGVseSBzYWZlJzsgdG8gZG8gdGhhdCBWZWN0b3JzIHdv dWxkIGhhdmUgdG8gYmUNCntcKlxodG1sdGFnNCBccGFyIH1caHRtbHJ0ZiAgXGh0bWxydGYwIGlt bXV0YWJsZSB3aXRoIHRoZWlyIGNvbXBvbmVudHMgc2V0IHRvIGJlIFJlYWQtb25seSAoc29tZWhv dykuIg0Ke1wqXGh0bWx0YWcxMTYgPGJyPn1caHRtbHJ0ZiBcbGluZQ0KXGh0bWxydGYwIA0Ke1wq XGh0bWx0YWc0IFxwYXIgfQ0Ke1wqXGh0bWx0YWcxMTYgPGJyPn1caHRtbHJ0ZiBcbGluZQ0KXGh0 bWxydGYwIA0Ke1wqXGh0bWx0YWc0IFxwYXIgfUhlcmUgaXMgYSBrbmVlIGplcmsgcmVhY3Rpb24g dG8geW91ciBjb21tZW50Lg0Ke1wqXGh0bWx0YWcxMTYgPGJyPn1caHRtbHJ0ZiBcbGluZQ0KXGh0 bWxydGYwIA0Ke1wqXGh0bWx0YWc0IFxwYXIgfUl0IGlzIHBvc3NpYmxlIHRvIG1ha2UgdGhlIGNv bXBvbmVudHMgb2YgYSB2ZWN0b3IgcmVhZC1vbmx5IGJ5IHVzaW5nDQp7XCpcaHRtbHRhZzQgXHBh ciB9XGh0bWxydGYgIFxodG1scnRmMCAiSU4iLg0Ke1wqXGh0bWx0YWcxMTYgPGJyPn1caHRtbHJ0 ZiBcbGluZQ0KXGh0bWxydGYwIA0Ke1wqXGh0bWx0YWc0IFxwYXIgfQ0Ke1wqXGh0bWx0YWcxMTYg PGJyPn1caHRtbHJ0ZiBcbGluZQ0KXGh0bWxydGYwIA0Ke1wqXGh0bWx0YWc0IFxwYXIgfUlmICwg c2F5LA0Ke1wqXGh0bWx0YWcxMTYgPGJyPn1caHRtbHJ0ZiBcbGluZQ0KXGh0bWxydGYwIA0Ke1wq XGh0bWx0YWc0IFxwYXIgfQ0Ke1wqXGh0bWx0YWc4NCAmbmJzcDt9XGh0bWxydGYgXCdhMFxodG1s cnRmMCANCntcKlxodG1sdGFnODQgJm5ic3A7fVxodG1scnRmIFwnYTBcaHRtbHJ0ZjAgDQp7XCpc aHRtbHRhZzg0ICZuYnNwO31caHRtbHJ0ZiBcJ2EwXGh0bWxydGYwICBUWVBFIHZlY3RvciA9IFBP SU5URVIgVE8gQVJSQVkgT0YgUkVBTDsNCntcKlxodG1sdGFnMTE2IDxicj59XGh0bWxydGYgXGxp bmUNClxodG1scnRmMCANCntcKlxodG1sdGFnNCBccGFyIH10aGVuIG9wZXJhdGlvbnMgb24gYSB2 ZWN0b3IgbmVlZCB0byBwYXNzIHRocm91Z2ggcHJvY2VkdXJlcyB0aGF0IHRha2UNCntcKlxodG1s dGFnNCBccGFyIH1caHRtbHJ0ZiAgXGh0bWxydGYwIElOIGFyZ3VtZW50cw0Ke1wqXGh0bWx0YWcx MTYgPGJyPn1caHRtbHJ0ZiBcbGluZQ0KXGh0bWxydGYwIA0Ke1wqXGh0bWx0YWc0IFxwYXIgfQ0K e1wqXGh0bWx0YWc4NCAmbmJzcDt9XGh0bWxydGYgXCdhMFxodG1scnRmMCANCntcKlxodG1sdGFn ODQgJm5ic3A7fVxodG1scnRmIFwnYTBcaHRtbHJ0ZjAgDQp7XCpcaHRtbHRhZzg0ICZuYnNwO31c aHRtbHJ0ZiBcJ2EwXGh0bWxydGYwICANCntcKlxodG1sdGFnMTE2IDxicj59XGh0bWxydGYgXGxp bmUNClxodG1scnRmMCANCntcKlxodG1sdGFnNCBccGFyIH0NCntcKlxodG1sdGFnODQgJm5ic3A7 fVxodG1scnRmIFwnYTBcaHRtbHJ0ZjAgDQp7XCpcaHRtbHRhZzg0ICZuYnNwO31caHRtbHJ0ZiBc J2EwXGh0bWxydGYwIA0Ke1wqXGh0bWx0YWc4NCAmbmJzcDt9XGh0bWxydGYgXCdhMFxodG1scnRm MCAgUFJPQ0VEVVJFIERvU29tZXRoaW5nIChJTiB4OiBBUlJBWSBPRiBSRUFMKTogUkVBTDsNCntc KlxodG1sdGFnMTE2IDxicj59XGh0bWxydGYgXGxpbmUNClxodG1scnRmMCANCntcKlxodG1sdGFn NCBccGFyIH0NCntcKlxodG1sdGFnODQgJm5ic3A7fVxodG1scnRmIFwnYTBcaHRtbHJ0ZjAgDQp7 XCpcaHRtbHRhZzg0ICZuYnNwO31caHRtbHJ0ZiBcJ2EwXGh0bWxydGYwIA0Ke1wqXGh0bWx0YWc4 NCAmbmJzcDt9XGh0bWxydGYgXCdhMFxodG1scnRmMCAgQkVHSU4NCntcKlxodG1sdGFnMTE2IDxi cj59XGh0bWxydGYgXGxpbmUNClxodG1scnRmMCANCntcKlxodG1sdGFnNCBccGFyIH0NCntcKlxo dG1sdGFnODQgJm5ic3A7fVxodG1scnRmIFwnYTBcaHRtbHJ0ZjAgDQp7XCpcaHRtbHRhZzg0ICZu YnNwO31caHRtbHJ0ZiBcJ2EwXGh0bWxydGYwIA0Ke1wqXGh0bWx0YWc4NCAmbmJzcDt9XGh0bWxy dGYgXCdhMFxodG1scnRmMCAgDQp7XCpcaHRtbHRhZzg0ICZuYnNwO31caHRtbHJ0ZiBcJ2EwXGh0 bWxydGYwIA0Ke1wqXGh0bWx0YWc4NCAmbmJzcDt9XGh0bWxydGYgXCdhMFxodG1scnRmMCAgLi4u Lg0Ke1wqXGh0bWx0YWcxMTYgPGJyPn1caHRtbHJ0ZiBcbGluZQ0KXGh0bWxydGYwIA0Ke1wqXGh0 bWx0YWc0IFxwYXIgfQ0Ke1wqXGh0bWx0YWc4NCAmbmJzcDt9XGh0bWxydGYgXCdhMFxodG1scnRm MCANCntcKlxodG1sdGFnODQgJm5ic3A7fVxodG1scnRmIFwnYTBcaHRtbHJ0ZjAgDQp7XCpcaHRt bHRhZzg0ICZuYnNwO31caHRtbHJ0ZiBcJ2EwXGh0bWxydGYwICBFTkQgRG9Tb21ldGhpbmc7DQp7 XCpcaHRtbHRhZzExNiA8YnI+fVxodG1scnRmIFxsaW5lDQpcaHRtbHJ0ZjAgDQp7XCpcaHRtbHRh ZzQgXHBhciB9DQp7XCpcaHRtbHRhZzExNiA8YnI+fVxodG1scnRmIFxsaW5lDQpcaHRtbHJ0ZjAg DQp7XCpcaHRtbHRhZzQgXHBhciB9YW5kIGNhbGwNCntcKlxodG1sdGFnMTE2IDxicj59XGh0bWxy dGYgXGxpbmUNClxodG1scnRmMCANCntcKlxodG1sdGFnNCBccGFyIH0NCntcKlxodG1sdGFnODQg Jm5ic3A7fVxodG1scnRmIFwnYTBcaHRtbHJ0ZjAgDQp7XCpcaHRtbHRhZzg0ICZuYnNwO31caHRt bHJ0ZiBcJ2EwXGh0bWxydGYwIA0Ke1wqXGh0bWx0YWc4NCAmbmJzcDt9XGh0bWxydGYgXCdhMFxo dG1scnRmMCAgVkFSIHY6IFZlY3RvcjsgcjogUkVBTDsNCntcKlxodG1sdGFnMTE2IDxicj59XGh0 bWxydGYgXGxpbmUNClxodG1scnRmMCANCntcKlxodG1sdGFnNCBccGFyIH0NCntcKlxodG1sdGFn ODQgJm5ic3A7fVxodG1scnRmIFwnYTBcaHRtbHJ0ZjAgDQp7XCpcaHRtbHRhZzg0ICZuYnNwO31c aHRtbHJ0ZiBcJ2EwXGh0bWxydGYwIA0Ke1wqXGh0bWx0YWc4NCAmbmJzcDt9XGh0bWxydGYgXCdh MFxodG1scnRmMCAgciA6PSBEb1NvbWV0aGluZyh2KQ0Ke1wqXGh0bWx0YWcxMTYgPGJyPn1caHRt bHJ0ZiBcbGluZQ0KXGh0bWxydGYwIA0Ke1wqXGh0bWx0YWc0IFxwYXIgfXNvIHRoYXQgZXZlbiB0 aG91Z2ggdiBpcyBhIHBvaW50ZXIgaXRzIGVsZW1lbnRzIGNhbiBub3QgYmUgY2hhbmdlZC4NCntc KlxodG1sdGFnMTE2IDxicj59XGh0bWxydGYgXGxpbmUNClxodG1scnRmMCANCntcKlxodG1sdGFn NCBccGFyIH0NCntcKlxodG1sdGFnMTE2IDxicj59XGh0bWxydGYgXGxpbmUNClxodG1scnRmMCAN CntcKlxodG1sdGFnNCBccGFyIH1JZiB0aGUgY29tcG9uZW50cyBvZiB0aGUgdmVjdG9ycyBhcmUg dGhlbXNlbHZlcyBwb2ludGVycyB0byBvdGhlcg0Ke1wqXGh0bWx0YWc0IFxwYXIgfVxodG1scnRm ICBcaHRtbHJ0ZjAgc3RydWN0dXJlcw0Ke1wqXGh0bWx0YWcxMTYgPGJyPn1caHRtbHJ0ZiBcbGlu ZQ0KXGh0bWxydGYwIA0Ke1wqXGh0bWx0YWc0IFxwYXIgfXRoZW4gYWdhaW4gdGhlIG9wZXJhdGlv bnMgb24gdGhvc2UgY29tcG9uZW50cyB3b3VsZCBoYXZlIHRvIHBhc3MNCntcKlxodG1sdGFnNCBc cGFyIH1caHRtbHJ0ZiAgXGh0bWxydGYwIHRocm91Z2ggcHJvY2VkdXJlcw0Ke1wqXGh0bWx0YWcx MTYgPGJyPn1caHRtbHJ0ZiBcbGluZQ0KXGh0bWxydGYwIA0Ke1wqXGh0bWx0YWc0IFxwYXIgfXRo YXQgdGFrZSBJTiBhcmdzLg0Ke1wqXGh0bWx0YWcxMTYgPGJyPn1caHRtbHJ0ZiBcbGluZQ0KXGh0 bWxydGYwIA0Ke1wqXGh0bWx0YWc0IFxwYXIgfQ0Ke1wqXGh0bWx0YWcxMTYgPGJyPn1caHRtbHJ0 ZiBcbGluZQ0KXGh0bWxydGYwIA0Ke1wqXGh0bWx0YWc0IFxwYXIgfS1Eb3VnIERhbmZvcnRoDQp7 XCpcaHRtbHRhZzExNiA8YnI+fVxodG1scnRmIFxsaW5lDQpcaHRtbHJ0ZjAgDQp7XCpcaHRtbHRh ZzQgXHBhciB9DQp7XCpcaHRtbHRhZzExNiA8YnI+fVxodG1scnRmIFxsaW5lDQpcaHRtbHJ0ZjAg DQp7XCpcaHRtbHRhZzQgXHBhciB9DQp7XCpcaHRtbHRhZzExNiA8YnI+fVxodG1scnRmIFxsaW5l DQpcaHRtbHJ0ZjAgDQp7XCpcaHRtbHRhZzQgXHBhciB9DQp7XCpcaHRtbHRhZzExNiA8YnI+fVxo dG1scnRmIFxsaW5lDQpcaHRtbHJ0ZjAgDQp7XCpcaHRtbHRhZzQgXHBhciB9Um9iZXJ0IHdyb3Rl Og0Ke1wqXGh0bWx0YWc0IFxwYXIgfVxodG1scnRmICBcaHRtbHJ0ZjAge1wqXGh0bWx0YWc3Mn1c aHRtbHJ0ZlxwYXJ9XGh0bWxydGYwDQoNCntcKlxodG1sdGFnOTYgPGJsb2NrcXVvdGUgY2l0ZT0i bWlkOjQ5Q0Q0MTkyLjIwNDAyMDlAdGlzY2FsaS5jby51ayIgdHlwZT0iY2l0ZSI+fVxodG1scnRm IFxwYXINCntcaHRtbHJ0ZjAge1wqXGh0bWx0YWc2NH1caHRtbHJ0ZiB7XGh0bWxydGYwIFxsaTM2 MCBXb2p0ZWsNCntcKlxodG1sdGFnNCBccGFyIH1caHRtbHJ0ZiAgXGh0bWxydGYwIFNrdWxza2kg d3JvdGU6DQp7XCpcaHRtbHRhZzQgXHBhciB9XGh0bWxydGYgIFxodG1scnRmMCANCntcKlxodG1s dGFnODQgICB9DQp7XCpcaHRtbHRhZzExNiA8YnI+fVxodG1scnRmIFxsaW5lDQpcaHRtbHJ0ZjAg DQp7XCpcaHRtbHRhZzQgXHBhciB9DQp7XCpcaHRtbHRhZzg0ICAgfQ0Ke1wqXGh0bWx0YWcxMTYg PGJyPn1caHRtbHJ0ZiBcbGluZQ0KXGh0bWxydGYwIA0Ke1wqXGh0bWx0YWc0IFxwYXIgfQ0Ke1wq XGh0bWx0YWc4NCAgIH17XCpcaHRtbHRhZzcyfVxodG1scnRmXHBhcn1caHRtbHJ0ZjANCg0Ke1wq XGh0bWx0YWc5NiA8YmxvY2txdW90ZSB0eXBlPSJjaXRlIj59XGh0bWxydGYgXHBhcg0Ke1xodG1s cnRmMCB7XCpcaHRtbHRhZzY0fVxodG1scnRmIHtcaHRtbHJ0ZjAgXGxpNzIwIE1lYW53aGlsZSBJ IGhhdmUgYSBxdWVzdGlvbi4gWW91ciBmdW5jdGlvbg0Ke1wqXGh0bWx0YWc0IFxwYXIgfVxodG1s cnRmICBcaHRtbHJ0ZjAgTGliVmVjdG9ycy5OZWcgaXMgYWxsb2NhdGluZw0Ke1wqXGh0bWx0YWc0 IFxwYXIgfVxodG1scnRmICBcaHRtbHJ0ZjAgDQp7XCpcaHRtbHRhZzg0ICAgICB9DQp7XCpcaHRt bHRhZzExNiA8YnI+fVxodG1scnRmIFxsaW5lDQpcaHRtbHJ0ZjAgDQp7XCpcaHRtbHRhZzQgXHBh ciB9YSBuZXcgdmVjdG9yLiBXaHk/IEZsaXBwaW5nIHRoZSBzaWduIG9mIGV2ZXJ5IHZlY3RvciBl bGVtZW50IGNhbiBiZQ0Ke1wqXGh0bWx0YWc0IFxwYXIgfVxodG1scnRmICBcaHRtbHJ0ZjAgZG9u ZQ0Ke1wqXGh0bWx0YWc0IFxwYXIgfVxodG1scnRmICBcaHRtbHJ0ZjAgDQp7XCpcaHRtbHRhZzg0 ICAgICB9DQp7XCpcaHRtbHRhZzExNiA8YnI+fVxodG1scnRmIFxsaW5lDQpcaHRtbHJ0ZjAgDQp7 XCpcaHRtbHRhZzQgXHBhciB9aW4gc2l0dS4gV2h5IGFyZSB5b3UgY2FsbGluZyBORVc/DQp7XCpc aHRtbHRhZzQgXHBhciB9XGh0bWxydGYgIFxodG1scnRmMCANCntcKlxodG1sdGFnODQgICAgIH0N CntcKlxodG1sdGFnMTE2IDxicj59XGh0bWxydGYgXGxpbmUNClxodG1scnRmMCANCntcKlxodG1s dGFnNCBccGFyIH0NCntcKlxodG1sdGFnODQgICB9e1wqXGh0bWx0YWc3Mn1caHRtbHJ0ZlxwYXJ9 XGh0bWxydGYwDQoNCntcKlxodG1sdGFnMTA0IDwvYmxvY2txdW90ZT59XGh0bWxydGYgfVxwYXIN ClxodG1scnRmMCANCntcKlxodG1sdGFnMCBccGFyIH0NCntcKlxodG1sdGFnMjQwICAgfQ0Ke1wq XGh0bWx0YWcxMTIgPGJyPn1caHRtbHJ0ZiBccGFyDQpcaHRtbHJ0ZjAgDQp7XCpcaHRtbHRhZzAg XHBhciB9e1wqXGh0bWx0YWc2NH1caHRtbHJ0ZiB7XGh0bWxydGYwIFxsaTM2MCBBbmQgdGhlIHNh bWUgY29tbWVudCBhcHBsaWVzIHRvIG90aGVyIGZ1bmN0aW9ucywgc3VjaCBhcyBBYnMsIE1hZywg TWFwDQp7XCpcaHRtbHRhZzQgXHBhciB9XGh0bWxydGYgIFxodG1scnRmMCBldGMuDQp7XCpcaHRt bHRhZzQgXHBhciB9XGh0bWxydGYgIFxodG1scnRmMCANCntcKlxodG1sdGFnODQgICB9DQp7XCpc aHRtbHRhZzExNiA8YnI+fVxodG1scnRmIFxsaW5lDQpcaHRtbHJ0ZjAgDQp7XCpcaHRtbHRhZzQg XHBhciB9DQp7XCpcaHRtbHRhZzg0ICAgfQ0Ke1wqXGh0bWx0YWcxMTYgPGJyPn1caHRtbHJ0ZiBc bGluZQ0KXGh0bWxydGYwIA0Ke1wqXGh0bWx0YWc0IFxwYXIgfU9uZSBoYXMgdG8gbWFrZSBkZXNp Z24gY2hvaWNlcywgd2hpY2ggdXN1YWxseSBoYXZlIHByb3MgDQp7XCpcaHRtbHRhZzg0ICZhbXA7 fVxodG1scnRmICZcaHRtbHJ0ZjAgIGNvbnMuIEl0DQp7XCpcaHRtbHRhZzQgXHBhciB9XGh0bWxy dGYgIFxodG1scnRmMCBpcyByYXJlIHRoYXQgb25lIGNob2ljZSBpcyBzdXBlcmlvciBmcm9tIGV2 ZXJ5IGFzcGVjdC4NCntcKlxodG1sdGFnNCBccGFyIH1caHRtbHJ0ZiAgXGh0bWxydGYwIA0Ke1wq XGh0bWx0YWc4NCAgIH0NCntcKlxodG1sdGFnMTE2IDxicj59XGh0bWxydGYgXGxpbmUNClxodG1s cnRmMCANCntcKlxodG1sdGFnNCBccGFyIH0NCntcKlxodG1sdGFnODQgICB9DQp7XCpcaHRtbHRh ZzExNiA8YnI+fVxodG1scnRmIFxsaW5lDQpcaHRtbHJ0ZjAgDQp7XCpcaHRtbHRhZzQgXHBhciB9 SSBhc3N1bWUgeW91IGhhdmUgcmVhZCB0aGUgc2VjdGlvbiBpbiB0aGUgRG9jdSBjYWxsZWQgIkFz c2lnbm1lbnRzIi4NCntcKlxodG1sdGFnNCBccGFyIH1caHRtbHJ0ZiAgXGh0bWxydGYwIA0Ke1wq XGh0bWx0YWc4NCAgIH0NCntcKlxodG1sdGFnMTE2IDxicj59XGh0bWxydGYgXGxpbmUNClxodG1s cnRmMCANCntcKlxodG1sdGFnNCBccGFyIH0NCntcKlxodG1sdGFnODQgICB9DQp7XCpcaHRtbHRh ZzExNiA8YnI+fVxodG1scnRmIFxsaW5lDQpcaHRtbHJ0ZjAgDQp7XCpcaHRtbHRhZzQgXHBhciB9 VGhlIGlzc3VlIGlzOg0Ke1wqXGh0bWx0YWc0IFxwYXIgfVxodG1scnRmICBcaHRtbHJ0ZjAgDQp7 XCpcaHRtbHRhZzg0ICAgfQ0Ke1wqXGh0bWx0YWcxMTYgPGJyPn1caHRtbHJ0ZiBcbGluZQ0KXGh0 bWxydGYwIA0Ke1wqXGh0bWx0YWc0IFxwYXIgfQ0Ke1wqXGh0bWx0YWc4NCAgIH0NCntcKlxodG1s dGFnMTE2IDxicj59XGh0bWxydGYgXGxpbmUNClxodG1scnRmMCANCntcKlxodG1sdGFnNCBccGFy IH1WQVINCntcKlxodG1sdGFnNCBccGFyIH1caHRtbHJ0ZiAgXGh0bWxydGYwIA0Ke1wqXGh0bWx0 YWc4NCAgIH0NCntcKlxodG1sdGFnMTE2IDxicj59XGh0bWxydGYgXGxpbmUNClxodG1scnRmMCAN CntcKlxodG1sdGFnNCBccGFyIH0NCntcKlxodG1sdGFnODQgJm5ic3A7fVxodG1scnRmIFwnYTBc aHRtbHJ0ZjAgIGEsIGINCntcKlxodG1sdGFnODQgJm5ic3A7fVxodG1scnRmIFwnYTBcaHRtbHJ0 ZjAgIDoNCntcKlxodG1sdGFnODQgJm5ic3A7fVxodG1scnRmIFwnYTBcaHRtbHJ0ZjAgIExpYlZl Y3RvcnMuVmVjdG9yOw0Ke1wqXGh0bWx0YWc0IFxwYXIgfVxodG1scnRmICBcaHRtbHJ0ZjAgDQp7 XCpcaHRtbHRhZzg0ICAgfQ0Ke1wqXGh0bWx0YWcxMTYgPGJyPn1caHRtbHJ0ZiBcbGluZQ0KXGh0 bWxydGYwIA0Ke1wqXGh0bWx0YWc0IFxwYXIgfUJFR0lODQp7XCpcaHRtbHRhZzQgXHBhciB9XGh0 bWxydGYgIFxodG1scnRmMCANCntcKlxodG1sdGFnODQgICB9DQp7XCpcaHRtbHRhZzExNiA8YnI+ fVxodG1scnRmIFxsaW5lDQpcaHRtbHJ0ZjAgDQp7XCpcaHRtbHRhZzQgXHBhciB9DQp7XCpcaHRt bHRhZzg0ICZuYnNwO31caHRtbHJ0ZiBcJ2EwXGh0bWxydGYwICBhDQp7XCpcaHRtbHRhZzg0ICZu YnNwO31caHRtbHJ0ZiBcJ2EwXGh0bWxydGYwICA6PQ0Ke1wqXGh0bWx0YWc4NCAmbmJzcDt9XGh0 bWxydGYgXCdhMFxodG1scnRmMCAgLi4uLi47DQp7XCpcaHRtbHRhZzQgXHBhciB9XGh0bWxydGYg IFxodG1scnRmMCANCntcKlxodG1sdGFnODQgICB9DQp7XCpcaHRtbHRhZzExNiA8YnI+fVxodG1s cnRmIFxsaW5lDQpcaHRtbHJ0ZjAgDQp7XCpcaHRtbHRhZzQgXHBhciB9DQp7XCpcaHRtbHRhZzg0 ICZuYnNwO31caHRtbHJ0ZiBcJ2EwXGh0bWxydGYwICBiDQp7XCpcaHRtbHRhZzg0ICZuYnNwO31c aHRtbHJ0ZiBcJ2EwXGh0bWxydGYwICA6PQ0Ke1wqXGh0bWx0YWc4NCAmbmJzcDt9XGh0bWxydGYg XCdhMFxodG1scnRmMCAgYTsNCntcKlxodG1sdGFnNCBccGFyIH1caHRtbHJ0ZiAgXGh0bWxydGYw IA0Ke1wqXGh0bWx0YWc4NCAgIH0NCntcKlxodG1sdGFnMTE2IDxicj59XGh0bWxydGYgXGxpbmUN ClxodG1scnRmMCANCntcKlxodG1sdGFnNCBccGFyIH0NCntcKlxodG1sdGFnODQgICB9DQp7XCpc aHRtbHRhZzExNiA8YnI+fVxodG1scnRmIFxsaW5lDQpcaHRtbHJ0ZjAgDQp7XCpcaHRtbHRhZzQg XHBhciB9DQp7XCpcaHRtbHRhZzg0ICZuYnNwO31caHRtbHJ0ZiBcJ2EwXGh0bWxydGYwICBMaWJW ZWN0b3JzLk5lZyAoYik7DQp7XCpcaHRtbHRhZzQgXHBhciB9XGh0bWxydGYgIFxodG1scnRmMCAN CntcKlxodG1sdGFnODQgICB9DQp7XCpcaHRtbHRhZzExNiA8YnI+fVxodG1scnRmIFxsaW5lDQpc aHRtbHJ0ZjAgDQp7XCpcaHRtbHRhZzQgXHBhciB9DQp7XCpcaHRtbHRhZzg0ICAgfQ0Ke1wqXGh0 bWx0YWcxMTYgPGJyPn1caHRtbHJ0ZiBcbGluZQ0KXGh0bWxydGYwIA0Ke1wqXGh0bWx0YWc0IFxw YXIgfQ0Ke1wqXGh0bWx0YWc4NCAgIH0NCntcKlxodG1sdGFnMTE2IDxicj59XGh0bWxydGYgXGxp bmUNClxodG1scnRmMCANCntcKlxodG1sdGFnNCBccGFyIH1JZiB0aGlzIHdhcyBpbi1wbGFjZSBp dCB3b3VsZCBhbHNvIG5lZ2F0ZSB0aGUgJ2EnLCB3aGVyZWFzIHdpdGgNCntcKlxodG1sdGFnNCBc cGFyIH1caHRtbHJ0ZiAgXGh0bWxydGYwIA0Ke1wqXGh0bWx0YWc4NCAgIH0NCntcKlxodG1sdGFn MTE2IDxicj59XGh0bWxydGYgXGxpbmUNClxodG1scnRmMCANCntcKlxodG1sdGFnNCBccGFyIH1t eSBkZXNpZ246DQp7XCpcaHRtbHRhZzQgXHBhciB9XGh0bWxydGYgIFxodG1scnRmMCANCntcKlxo dG1sdGFnODQgICB9DQp7XCpcaHRtbHRhZzExNiA8YnI+fVxodG1scnRmIFxsaW5lDQpcaHRtbHJ0 ZjAgDQp7XCpcaHRtbHRhZzQgXHBhciB9DQp7XCpcaHRtbHRhZzg0ICAgfQ0Ke1wqXGh0bWx0YWcx MTYgPGJyPn1caHRtbHJ0ZiBcbGluZQ0KXGh0bWxydGYwIA0Ke1wqXGh0bWx0YWc0IFxwYXIgfQ0K e1wqXGh0bWx0YWc4NCAmbmJzcDt9XGh0bWxydGYgXCdhMFxodG1scnRmMCAgYg0Ke1wqXGh0bWx0 YWc4NCAmbmJzcDt9XGh0bWxydGYgXCdhMFxodG1scnRmMCAgOj0NCntcKlxodG1sdGFnODQgJm5i c3A7fVxodG1scnRmIFwnYTBcaHRtbHJ0ZjAgIExpYlZlY3RvcnMuTmVnIChiKTsNCntcKlxodG1s dGFnODQgJm5ic3A7fVxodG1scnRmIFwnYTBcaHRtbHJ0ZjAgDQp7XCpcaHRtbHRhZzg0ICZuYnNw O31caHRtbHJ0ZiBcJ2EwXGh0bWxydGYwIA0Ke1wqXGh0bWx0YWc4NCAmbmJzcDt9XGh0bWxydGYg XCdhMFxodG1scnRmMCAgKCoNCntcKlxodG1sdGFnODQgJm5ic3A7fVxodG1scnRmIFwnYTBcaHRt bHJ0ZjAgIE5lZyBpbmNsdWVkcyBhIE5FVw0Ke1wqXGh0bWx0YWc4NCAmbmJzcDt9XGh0bWxydGYg XCdhMFxodG1scnRmMCAgKikNCntcKlxodG1sdGFnNCBccGFyIH1caHRtbHJ0ZiAgXGh0bWxydGYw IA0Ke1wqXGh0bWx0YWc4NCAgIH0NCntcKlxodG1sdGFnMTE2IDxicj59XGh0bWxydGYgXGxpbmUN ClxodG1scnRmMCANCntcKlxodG1sdGFnNCBccGFyIH0NCntcKlxodG1sdGFnODQgICB9DQp7XCpc aHRtbHRhZzExNiA8YnI+fVxodG1scnRmIFxsaW5lDQpcaHRtbHJ0ZjAgDQp7XCpcaHRtbHRhZzQg XHBhciB9SSBoYXZlIG5lZ2F0ZWQgYiB3aXRob3V0IHRoZSBub24tb2J2aW91cyBzaWRlIGVmZmVj dCBvZiBuZWdhdGluZyBhLg0Ke1wqXGh0bWx0YWc0IFxwYXIgfVxodG1scnRmICBcaHRtbHJ0ZjAg DQp7XCpcaHRtbHRhZzg0ICAgfQ0Ke1wqXGh0bWx0YWcxMTYgPGJyPn1caHRtbHJ0ZiBcbGluZQ0K XGh0bWxydGYwIA0Ke1wqXGh0bWx0YWc0IFxwYXIgfQ0Ke1wqXGh0bWx0YWc4NCAgIH0NCntcKlxo dG1sdGFnMTE2IDxicj59XGh0bWxydGYgXGxpbmUNClxodG1scnRmMCANCntcKlxodG1sdGFnNCBc cGFyIH1JIHRoaW5rIHRoaXMgaXMgc2FmZXIsIGxlc3MgcHJvbmUgdG8gYWNjaWRlbnRhbCBlcnJv ci4NCntcKlxodG1sdGFnNCBccGFyIH1caHRtbHJ0ZiAgXGh0bWxydGYwIA0Ke1wqXGh0bWx0YWc4 NCAgIH0NCntcKlxodG1sdGFnMTE2IDxicj59XGh0bWxydGYgXGxpbmUNClxodG1scnRmMCANCntc KlxodG1sdGFnNCBccGFyIH0NCntcKlxodG1sdGFnODQgICB9DQp7XCpcaHRtbHRhZzExNiA8YnI+ fVxodG1scnRmIFxsaW5lDQpcaHRtbHJ0ZjAgDQp7XCpcaHRtbHRhZzQgXHBhciB9SXQgaXMgbm90 ICdjb21wbGV0ZWx5IHNhZmUnOyB0byBkbyB0aGF0IFZlY3RvcnMgd291bGQgaGF2ZSB0byBiZQ0K e1wqXGh0bWx0YWc0IFxwYXIgfVxodG1scnRmICBcaHRtbHJ0ZjAgaW1tdXRhYmxlIHdpdGggdGhl aXIgY29tcG9uZW50cyBzZXQgdG8gYmUgUmVhZC1vbmx5IChzb21laG93KS4gVGhpcyBJDQp7XCpc aHRtbHRhZzQgXHBhciB9XGh0bWxydGYgIFxodG1scnRmMCBjb25zaWRlcmVkIHRvbyBpbmNvbnZl bmllbnQgYW5kIGluZWZmaWNpZW50LCBoZW5jZSB0aGUgZGVzaWduDQp7XCpcaHRtbHRhZzQgXHBh ciB9XGh0bWxydGYgIFxodG1scnRmMCBjb21wcm9taXNlIHlvdSBzZWUuDQp7XCpcaHRtbHRhZzQg XHBhciB9XGh0bWxydGYgIFxodG1scnRmMCANCntcKlxodG1sdGFnODQgICB9DQp7XCpcaHRtbHRh ZzExNiA8YnI+fVxodG1scnRmIFxsaW5lDQpcaHRtbHJ0ZjAgDQp7XCpcaHRtbHRhZzQgXHBhciB9 DQp7XCpcaHRtbHRhZzg0ICAgfQ0Ke1wqXGh0bWx0YWcxMTYgPGJyPn1caHRtbHJ0ZiBcbGluZQ0K XGh0bWxydGYwIA0Ke1wqXGh0bWx0YWc0IFxwYXIgfQ0Ke1wqXGh0bWx0YWc4NCAgIH0NCntcKlxo dG1sdGFnMTE2IDxicj59XGh0bWxydGYgXGxpbmUNClxodG1scnRmMCANCntcKlxodG1sdGFnNCBc cGFyIH1CeSBjb250cmFzdCB0aGUgZGVzaWduIHBoaWxvc29waHkgZm9yIHRoZSB0eXBlIExpYkNv bXBsZXguQ29tcGxleCBpcw0Ke1wqXGh0bWx0YWc0IFxwYXIgfVxodG1scnRmICBcaHRtbHJ0ZjAg J3NhZmUnOyB0aGUgdHlwZSBpcyBpbW11dGFibGUsIHRoZSBmaWVsZHMgYXJlIHJlYWQtb25seSwg YW5kICdCaWcnIHN1bXMNCntcKlxodG1sdGFnNCBccGFyIH1caHRtbHJ0ZiAgXGh0bWxydGYwIHdp dGggQ29tcGxleGVzIGdlbmVyYXRlIGEgbG90IG9mIGdhcmJhZ2UuDQp7XCpcaHRtbHRhZzQgXHBh ciB9XGh0bWxydGYgIFxodG1scnRmMCANCntcKlxodG1sdGFnODQgICB9DQp7XCpcaHRtbHRhZzEx NiA8YnI+fVxodG1scnRmIFxsaW5lDQpcaHRtbHJ0ZjAgDQp7XCpcaHRtbHRhZzQgXHBhciB9DQp7 XCpcaHRtbHRhZzg0ICAgfQ0Ke1wqXGh0bWx0YWcxMTYgPGJyPn1caHRtbHJ0ZiBcbGluZQ0KXGh0 bWxydGYwIA0Ke1wqXGh0bWx0YWc0IFxwYXIgfQ0Ke1wqXGh0bWx0YWc4NCAgIH0NCntcKlxodG1s dGFnMTE2IDxicj59XGh0bWxydGYgXGxpbmUNClxodG1scnRmMCANCntcKlxodG1sdGFnNCBccGFy IH1JIGFtIHN1cmUgdGhlcmUgYXJlIGFwcGxpY2F0aW9ucyB3aGVyZSB0aGVzZSBkZXNpZ24gY2hv aWNlcyBhcmUNCntcKlxodG1sdGFnNCBccGFyIH1caHRtbHJ0ZiAgXGh0bWxydGYwIHN1Yi1vcHRp bWFsLCBpZiBub3QgdW5hY2NlcHRhYmxlLiBCdXQgdGhhdCB3b3VsZCBiZSB0cnVlIG9mIGFueSBj aG9pY2UuDQp7XCpcaHRtbHRhZzQgXHBhciB9XGh0bWxydGYgIFxodG1scnRmMCBDJ2VzdCBsYSB2 aWUuDQp7XCpcaHRtbHRhZzQgXHBhciB9XGh0bWxydGYgIFxodG1scnRmMCANCntcKlxodG1sdGFn ODQgICB9DQp7XCpcaHRtbHRhZzExNiA8YnI+fVxodG1scnRmIFxsaW5lDQpcaHRtbHJ0ZjAgDQp7 XCpcaHRtbHRhZzQgXHBhciB9DQp7XCpcaHRtbHRhZzg0ICAgfQ0Ke1wqXGh0bWx0YWcxMTYgPGJy Pn1caHRtbHJ0ZiBcbGluZQ0KXGh0bWxydGYwIA0Ke1wqXGh0bWx0YWc0IFxwYXIgfQ0Ke1wqXGh0 bWx0YWc4NCAgIH0NCntcKlxodG1sdGFnMTE2IDxicj59XGh0bWxydGYgXGxpbmUNClxodG1scnRm MCANCntcKlxodG1sdGFnNCBccGFyIH1DaGVlcnMNCntcKlxodG1sdGFnNCBccGFyIH1caHRtbHJ0 ZiAgXGh0bWxydGYwIA0Ke1wqXGh0bWx0YWc4NCAgIH0NCntcKlxodG1sdGFnMTE2IDxicj59XGh0 bWxydGYgXGxpbmUNClxodG1scnRmMCANCntcKlxodG1sdGFnNCBccGFyIH0NCntcKlxodG1sdGFn ODQgICB9DQp7XCpcaHRtbHRhZzExNiA8YnI+fVxodG1scnRmIFxsaW5lDQpcaHRtbHJ0ZjAgDQp7 XCpcaHRtbHRhZzQgXHBhciB9Um9iZXJ0DQp7XCpcaHRtbHRhZzQgXHBhciB9XGh0bWxydGYgIFxo dG1scnRmMCANCntcKlxodG1sdGFnODQgICB9DQp7XCpcaHRtbHRhZzExNiA8YnI+fVxodG1scnRm IFxsaW5lDQpcaHRtbHJ0ZjAgDQp7XCpcaHRtbHRhZzQgXHBhciB9DQp7XCpcaHRtbHRhZzg0ICAg fQ0Ke1wqXGh0bWx0YWcxMTYgPGJyPn1caHRtbHJ0ZiBcbGluZQ0KXGh0bWxydGYwIA0Ke1wqXGh0 bWx0YWc0IFxwYXIgfQ0Ke1wqXGh0bWx0YWc4NCAgIH0NCntcKlxodG1sdGFnMTE2IDxicj59XGh0 bWxydGYgXGxpbmUNClxodG1scnRmMCANCntcKlxodG1sdGFnNCBccGFyIH0tLS0tDQp7XCpcaHRt bHRhZzQgXHBhciB9XGh0bWxydGYgIFxodG1scnRmMCANCntcKlxodG1sdGFnODQgICB9DQp7XCpc aHRtbHRhZzExNiA8YnI+fVxodG1scnRmIFxsaW5lDQpcaHRtbHJ0ZjAgDQp7XCpcaHRtbHRhZzQg XHBhciB9VG8gdW5zdWJzY3JpYmUsIHNlbmQgYSBtZXNzYWdlIHdpdGggYm9keSAiU0lHTk9GRiBC TEFDS0JPWCIgdG8NCntcKlxodG1sdGFnNCBccGFyIH1caHRtbHJ0ZiAgXGh0bWxydGYwIHt9DQp7 XCpcaHRtbHRhZzg0IDxhIGNsYXNzPSJtb3otdHh0LWxpbmstYWJicmV2aWF0ZWQiIGhyZWY9Im1h aWx0bzpMSVNUU0VSVkBMSVNUUy5PQkVST04uQ0giPn1caHRtbHJ0ZiB7XGZpZWxke1wqXGZsZGlu c3R7SFlQRVJMSU5LICJtYWlsdG86TElTVFNFUlZATElTVFMuT0JFUk9OLkNIIn19e1xmbGRyc2x0 XGNmMVx1bCBcaHRtbHJ0ZjAgTElTVFNFUlZATElTVFMuT0JFUk9OLkNIXGh0bWxydGYgfVxodG1s cnRmMCBcaHRtbHJ0ZiB9XGh0bWxydGYwIA0Ke1wqXGh0bWx0YWc5MiA8L2E+fQ0Ke1wqXGh0bWx0 YWc0IFxwYXIgfVxodG1scnRmICBcaHRtbHJ0ZjAgDQp7XCpcaHRtbHRhZzg0ICAgfQ0Ke1wqXGh0 bWx0YWcxMTYgPGJyPn1caHRtbHJ0ZiBcbGluZQ0KXGh0bWxydGYwIA0Ke1wqXGh0bWx0YWc0IFxw YXIgfQ0Ke1wqXGh0bWx0YWc4NCAgIH0NCntcKlxodG1sdGFnMTE2IDxicj59XGh0bWxydGYgXGxp bmUNClxodG1scnRmMCANCntcKlxodG1sdGFnNCBccGFyIH0NCntcKlxodG1sdGFnODQgICB9DQp7 XCpcaHRtbHRhZzExNiA8YnI+fVxodG1scnRmIFxsaW5lDQpcaHRtbHJ0ZjAgDQp7XCpcaHRtbHRh ZzQgXHBhciB9e1wqXGh0bWx0YWc3Mn1caHRtbHJ0ZlxwYXJ9XGh0bWxydGYwDQoNCntcKlxodG1s dGFnMTA0IDwvYmxvY2txdW90ZT59XGh0bWxydGYgfVxwYXINClxodG1scnRmMCANCntcKlxodG1s dGFnMCBccGFyIH0NCntcKlxodG1sdGFnNTggPC9ib2R5Pn0NCntcKlxodG1sdGFnMiBccGFyIH0N CntcKlxodG1sdGFnMjcgPC9odG1sPn0NCntcKlxodG1sdGFnMyBccGFyIH0NCntcKlxodG1sdGFn NjQgPHA+fVxodG1scnRmIHtcaHRtbHJ0ZjAgDQp7XCpcaHRtbHRhZzQgXHBhciB9LS0tLQ0Ke1wq XGh0bWx0YWc0IFxwYXIgfVxodG1scnRmICBcaHRtbHJ0ZjAgVG8gdW5zdWJzY3JpYmUsIHNlbmQg YSBtZXNzYWdlIHdpdGggYm9keSAiU0lHTk9GRiBCTEFDS0JPWCIgdG8gTElTVFNFUlZATElTVFMu T0JFUk9OLkNIDQp7XCpcaHRtbHRhZzQgXHBhciB9XGh0bWxydGYgIFxodG1scnRmMCBcaHRtbHJ0 ZlxwYXJ9XGh0bWxydGYwDQp9 ----boundary-LibPST-iamunique-666486847_-_--- Received on Fri Mar 27 2009 - 23:16:17 UTC

This archive was generated by hypermail 2.3.0 : Thu Sep 26 2013 - 06:30:48 UTC