----boundary-LibPST-iamunique-2052516265_-_-
Content-type: text/plain
Hello,
I am jumping into the middle of this discussion so my comments may not be appropriate.
The way I handle keystrokes is to "Wap" a view (see GftWrappers on CPC). When you
wrap a view you specify a KeyHandler that is called every time the view is the focus and
a key is typed. If the view is not the focus then nothing happens for that view and the rest
of the framework keeps running.
I don't do any Windows programming. Just use the BB framework.
-Doug Danforth
On 3/29/2011 1:26 PM, Rex Couture wrote:
At 06:42 PM 3/28/2011, Stephen Troy wrote:
Thanks, Rex, but it seems as though the application is really, really freezing, and it doesn't seem to respond to anything, up to and including a sledgehammer.
Yes, I know. At this point I'm trying to understand it myself. This shows my profound ignorance of Windows programming, but beyond that, I'm trying to find a ReadKey method that works. With just the line
REPEAT UNTIL ORD(XYplane.ReadKey()) #0
the display freezes solid if you change focus with the mouse, but it still reponds to the keystroke if you
through windows.
With
REPEAT
ProcessMessages
UNTIL ORD(k.ReadKey()) # 0;
ReadKey is unresponsive, and there are bizarre, unpredictable effects on the BB GUI. (Complete program below)
Does BB have any simple, unfailing procedure to read input directly from the keyboard? Evidently XYplane.ReadKey doesn't work. There has to be something.
Rex Couture
MODULE TestReadKey; (* Not working *)
IMPORT k:=XYplane,StdLog, Win:= WinApi;
PROCEDURE ProcessMessages;
VAR msg: Win.MSG; res: INTEGER;
BEGIN
WHILE Win.PeekMessage(msg, 0, 0, 0, Win.PM_REMOVE) # 0 DO
res := Win.TranslateMessage(msg);
res := Win.DispatchMessageA(msg)
END
END ProcessMessages;
PROCEDURE P*;
VAR c: CHAR;
BEGIN
REPEAT
ProcessMessages
UNTIL ORD(k.ReadKey()) # 0;
StdLog.Ln;
StdLog.String( 'If you see this, it works');
END P;
END TestReadKey.
----
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-2052516265_-_-
Content-type: application/rtf
Content-transfer-encoding: base64
Content-Disposition: attachment; filename="rtf-body.rtf"
e1xydGYxXGFuc2lcYW5zaWNwZzEyNTJcZnJvbWh0bWwxIFxkZWZmMHtcZm9udHRibA0Ke1xmMFxm
c3dpc3NcZmNoYXJzZXQwIEFyaWFsO30NCntcZjFcZm1vZGVybiBDb3VyaWVyIE5ldzt9DQp7XGYy
XGZuaWxcZmNoYXJzZXQyIFN5bWJvbDt9DQp7XGYzXGZtb2Rlcm5cZmNoYXJzZXQwIENvdXJpZXIg
TmV3O319DQp7XGNvbG9ydGJsXHJlZDBcZ3JlZW4wXGJsdWUwO1xyZWQwXGdyZWVuMFxibHVlMjU1
O30NClx1YzFccGFyZFxwbGFpblxkZWZ0YWIzNjAgXGYwXGZzMjQgDQp7XCpcaHRtbHRhZzI0MyA8
IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL1czQy8vRFREIEhUTUwgNC4wMSBUcmFuc2l0aW9uYWwv
L0VOIj59DQp7XCpcaHRtbHRhZzMgXHBhciB9DQp7XCpcaHRtbHRhZzE5IDxodG1sPn0NCntcKlxo
dG1sdGFnMiBccGFyIH0NCntcKlxodG1sdGFnMjQyICAgfQ0Ke1wqXGh0bWx0YWczNCA8aGVhZD59
DQp7XCpcaHRtbHRhZzEgXHBhciB9DQp7XCpcaHRtbHRhZzI0MSAgICAgfQ0Ke1wqXGh0bWx0YWcx
IFxwYXIgfQ0Ke1wqXGh0bWx0YWcyNDEgICAgIH0NCntcKlxodG1sdGFnMTc3IDx0aXRsZT59DQp7
XCpcaHRtbHRhZzI0MSB9DQp7XCpcaHRtbHRhZzE4NSA8L3RpdGxlPn0NCntcKlxodG1sdGFnMSBc
cGFyIH0NCntcKlxodG1sdGFnMjQxICAgfQ0Ke1wqXGh0bWx0YWc0MSA8L2hlYWQ+fQ0Ke1wqXGh0
bWx0YWcyIFxwYXIgfQ0Ke1wqXGh0bWx0YWcyNDIgICB9DQp7XCpcaHRtbHRhZzUwIDxib2R5IHRl
eHQ9IiMwMDAwMDAiIGJnY29sb3I9IiNmZmZmZmYiPn1caHRtbHJ0ZiBcdmlld2tpbmQ1DQp7XCpc
YmFja2dyb3VuZCB7XHNocHtcKlxzaHBpbnN0e1xzcHtcc24gZmlsbENvbG9yfXtcc3YgMTY3Nzcy
MTV9fXtcc3B7XHNuIGZGaWxsZWR9e1xzdiAxfX19fX1caHRtbHJ0ZjAgDQp7XCpcaHRtbHRhZzAg
XHBhciB9DQp7XCpcaHRtbHRhZzI0MCAgICAgfXtcKlxodG1sdGFnNjR9XGh0bWxydGYge1xodG1s
cnRmMCBIZWxsbywNCntcKlxodG1sdGFnMTE2IDxicj59XGh0bWxydGYgXGxpbmUNClxodG1scnRm
MCANCntcKlxodG1sdGFnNCBccGFyIH0NCntcKlxodG1sdGFnODQgICAgIH0NCntcKlxodG1sdGFn
MTE2IDxicj59XGh0bWxydGYgXGxpbmUNClxodG1scnRmMCANCntcKlxodG1sdGFnNCBccGFyIH0N
CntcKlxodG1sdGFnODQgICAgIH1JIGFtIGp1bXBpbmcgaW50byB0aGUgbWlkZGxlIG9mIHRoaXMg
ZGlzY3Vzc2lvbiBzbyBteSBjb21tZW50cyBtYXkNCntcKlxodG1sdGFnNCBccGFyIH1caHRtbHJ0
ZiAgXGh0bWxydGYwIA0Ke1wqXGh0bWx0YWc4NCAgICAgfW5vdCBiZSBhcHByb3ByaWF0ZS4NCntc
KlxodG1sdGFnMTE2IDxicj59XGh0bWxydGYgXGxpbmUNClxodG1scnRmMCANCntcKlxodG1sdGFn
NCBccGFyIH0NCntcKlxodG1sdGFnODQgICAgIH0NCntcKlxodG1sdGFnMTE2IDxicj59XGh0bWxy
dGYgXGxpbmUNClxodG1scnRmMCANCntcKlxodG1sdGFnNCBccGFyIH0NCntcKlxodG1sdGFnODQg
ICAgIH1UaGUgd2F5IEkgaGFuZGxlIGtleXN0cm9rZXMgaXMgdG8gIldhcCIgYSB2aWV3IChzZWUg
R2Z0V3JhcHBlcnMgb24NCntcKlxodG1sdGFnNCBccGFyIH1caHRtbHJ0ZiAgXGh0bWxydGYwIA0K
e1wqXGh0bWx0YWc4NCAgICAgfUNQQykuDQp7XCpcaHRtbHRhZzg0ICZuYnNwO31caHRtbHJ0ZiBc
J2EwXGh0bWxydGYwICBXaGVuIHlvdQ0Ke1wqXGh0bWx0YWcxMTYgPGJyPn1caHRtbHJ0ZiBcbGlu
ZQ0KXGh0bWxydGYwIA0Ke1wqXGh0bWx0YWc0IFxwYXIgfQ0Ke1wqXGh0bWx0YWc4NCAgICAgfXdy
YXAgYSB2aWV3IHlvdSBzcGVjaWZ5IGEgS2V5SGFuZGxlciB0aGF0IGlzIGNhbGxlZCBldmVyeSB0
aW1lIHRoZQ0Ke1wqXGh0bWx0YWc0IFxwYXIgfVxodG1scnRmICBcaHRtbHJ0ZjAgDQp7XCpcaHRt
bHRhZzg0ICAgICB9dmlldyBpcyB0aGUgZm9jdXMgYW5kDQp7XCpcaHRtbHRhZzExNiA8YnI+fVxo
dG1scnRmIFxsaW5lDQpcaHRtbHJ0ZjAgDQp7XCpcaHRtbHRhZzQgXHBhciB9DQp7XCpcaHRtbHRh
Zzg0ICAgICB9YSBrZXkgaXMgdHlwZWQuDQp7XCpcaHRtbHRhZzg0ICZuYnNwO31caHRtbHJ0ZiBc
J2EwXGh0bWxydGYwICBJZiB0aGUgdmlldyBpcyBub3QgdGhlIGZvY3VzIHRoZW4gbm90aGluZyBo
YXBwZW5zDQp7XCpcaHRtbHRhZzQgXHBhciB9XGh0bWxydGYgIFxodG1scnRmMCANCntcKlxodG1s
dGFnODQgICAgIH1mb3IgdGhhdCB2aWV3IGFuZCB0aGUgcmVzdA0Ke1wqXGh0bWx0YWcxMTYgPGJy
Pn1caHRtbHJ0ZiBcbGluZQ0KXGh0bWxydGYwIA0Ke1wqXGh0bWx0YWc0IFxwYXIgfQ0Ke1wqXGh0
bWx0YWc4NCAgICAgfW9mIHRoZSBmcmFtZXdvcmsga2VlcHMgcnVubmluZy4NCntcKlxodG1sdGFn
ODQgJm5ic3A7fVxodG1scnRmIFwnYTBcaHRtbHJ0ZjAgIA0Ke1wqXGh0bWx0YWcxMTYgPGJyPn1c
aHRtbHJ0ZiBcbGluZQ0KXGh0bWxydGYwIA0Ke1wqXGh0bWx0YWc0IFxwYXIgfQ0Ke1wqXGh0bWx0
YWc4NCAgICAgfQ0Ke1wqXGh0bWx0YWcxMTYgPGJyPn1caHRtbHJ0ZiBcbGluZQ0KXGh0bWxydGYw
IA0Ke1wqXGh0bWx0YWc0IFxwYXIgfQ0Ke1wqXGh0bWx0YWc4NCAgICAgfUkgZG9uJ3QgZG8gYW55
IFdpbmRvd3MgcHJvZ3JhbW1pbmcuDQp7XCpcaHRtbHRhZzg0ICZuYnNwO31caHRtbHJ0ZiBcJ2Ew
XGh0bWxydGYwICBKdXN0IHVzZSB0aGUgQkIgZnJhbWV3b3JrLg0Ke1wqXGh0bWx0YWcxMTYgPGJy
Pn1caHRtbHJ0ZiBcbGluZQ0KXGh0bWxydGYwIA0Ke1wqXGh0bWx0YWc0IFxwYXIgfQ0Ke1wqXGh0
bWx0YWc4NCAgICAgfQ0Ke1wqXGh0bWx0YWcxMTYgPGJyPn1caHRtbHJ0ZiBcbGluZQ0KXGh0bWxy
dGYwIA0Ke1wqXGh0bWx0YWc0IFxwYXIgfQ0Ke1wqXGh0bWx0YWc4NCAgICAgfS1Eb3VnIERhbmZv
cnRoDQp7XCpcaHRtbHRhZzExNiA8YnI+fVxodG1scnRmIFxsaW5lDQpcaHRtbHJ0ZjAgDQp7XCpc
aHRtbHRhZzQgXHBhciB9DQp7XCpcaHRtbHRhZzg0ICAgICB9DQp7XCpcaHRtbHRhZzExNiA8YnI+
fVxodG1scnRmIFxsaW5lDQpcaHRtbHJ0ZjAgDQp7XCpcaHRtbHRhZzQgXHBhciB9DQp7XCpcaHRt
bHRhZzg0ICAgICB9DQp7XCpcaHRtbHRhZzExNiA8YnI+fVxodG1scnRmIFxsaW5lDQpcaHRtbHJ0
ZjAgDQp7XCpcaHRtbHRhZzQgXHBhciB9DQp7XCpcaHRtbHRhZzg0ICAgICB9T24gMy8yOS8yMDEx
IDE6MjYgUE0sIFJleCBDb3V0dXJlIHdyb3RlOg0Ke1wqXGh0bWx0YWc0IFxwYXIgfVxodG1scnRm
ICBcaHRtbHJ0ZjAgDQp7XCpcaHRtbHRhZzg0ICAgICB9e1wqXGh0bWx0YWc3Mn1caHRtbHJ0Zlxw
YXJ9XGh0bWxydGYwDQoNCntcKlxodG1sdGFnOTYgPGJsb2NrcXVvdGVccGFyICAgICAgIGNpdGU9
Im1pZDo3LjAuMS4wLjEuMjAxMTAzMjkxNDE0NDYuMDFjNGM4YTBAbGV2ZWUud3VzdGwuZWR1Ilxw
YXIgICAgICAgdHlwZT0iY2l0ZSI+fVxodG1scnRmIFxwYXINCntcaHRtbHJ0ZjAgDQp7XCpcaHRt
bHRhZzAgXHBhciB9DQp7XCpcaHRtbHRhZzI0MCAgICAgICB9DQp7XCpcaHRtbHRhZzEyOCA8cHJl
IHdyYXA9IiI+fVxodG1scnRmIHtccGFyZFxwbGFpblxmMVxmczIwIFxodG1scnRmMCBcaHRtbHJ0
ZiB7XGh0bWxydGYwIFxsaTM2MCBBdCAwNjo0MiBQTSAzLzI4LzIwMTEsIFN0ZXBoZW4gVHJveSB3
cm90ZTpccGFyXGh0bWxydGZ9XGh0bWxydGYwDQoNCntcKlxodG1sdGFnMTM2IDwvcHJlPn1caHRt
bHJ0ZiB9XGh0bWxydGYwIA0Ke1wqXGh0bWx0YWcwIFxwYXIgfQ0Ke1wqXGh0bWx0YWcyNDAgICAg
ICAgfQ0Ke1wqXGh0bWx0YWc5NiA8YmxvY2txdW90ZSB0eXBlPSJjaXRlIj59XGh0bWxydGYgXHBh
cg0Ke1xodG1scnRmMCANCntcKlxodG1sdGFnMCBccGFyIH0NCntcKlxodG1sdGFnMjQwICAgICAg
ICAgfQ0Ke1wqXGh0bWx0YWcxMjggPHByZSB3cmFwPSIiPn1caHRtbHJ0ZiB7XHBhcmRccGxhaW5c
ZjFcZnMyMCBcaHRtbHJ0ZjAgXGh0bWxydGYge1xodG1scnRmMCBcbGk3MjAgVGhhbmtzLCBSZXgs
IGJ1dCBpdCBzZWVtcyBhcyB0aG91Z2ggdGhlIGFwcGxpY2F0aW9uIGlzIHJlYWxseSwgcmVhbGx5
IGZyZWV6aW5nLCBhbmQgaXQgZG9lc24ndCBzZWVtIHRvIHJlc3BvbmQgdG8gYW55dGhpbmcsIHVw
IHRvIGFuZCBpbmNsdWRpbmcgYSBzbGVkZ2VoYW1tZXIuXHBhclxodG1scnRmfVxodG1scnRmMA0K
DQp7XCpcaHRtbHRhZzEzNiA8L3ByZT59XGh0bWxydGYgfVxodG1scnRmMCANCntcKlxodG1sdGFn
MCBccGFyIH0NCntcKlxodG1sdGFnMjQwICAgICAgIH0NCntcKlxodG1sdGFnMTA0IDwvYmxvY2tx
dW90ZT59XGh0bWxydGYgfVxwYXINClxodG1scnRmMCANCntcKlxodG1sdGFnMCBccGFyIH0NCntc
KlxodG1sdGFnMjQwICAgICAgIH0NCntcKlxodG1sdGFnMTI4IDxwcmUgd3JhcD0iIj59XGh0bWxy
dGYge1xwYXJkXHBsYWluXGYxXGZzMjAgXGh0bWxydGYwIFxodG1scnRmIHtcaHRtbHJ0ZjAgXGxp
MzYwIFxsaW5lDQpcbGluZQ0KICAgICAgICBZZXMsIEkga25vdy4gIEF0IHRoaXMgcG9pbnQgSSdt
IHRyeWluZyB0byB1bmRlcnN0YW5kIGl0IG15c2VsZi4gIFRoaXMgc2hvd3MgbXkgcHJvZm91bmQg
aWdub3JhbmNlIG9mIFdpbmRvd3MgcHJvZ3JhbW1pbmcsIGJ1dCBiZXlvbmQgdGhhdCwgSSdtIHRy
eWluZyB0byBmaW5kIGEgUmVhZEtleSBtZXRob2QgdGhhdCB3b3Jrcy4gIFdpdGgganVzdCB0aGUg
bGluZVxsaW5lDQpcbGluZQ0KUkVQRUFUIFVOVElMIE9SRChYWXBsYW5lLlJlYWRLZXkoKSkgIzBc
bGluZQ0KXGxpbmUNCnRoZSBkaXNwbGF5IGZyZWV6ZXMgc29saWQgaWYgeW91IGNoYW5nZSBmb2N1
cyB3aXRoIHRoZSBtb3VzZSwgYnV0IGl0IHN0aWxsIHJlcG9uZHMgdG8gdGhlIGtleXN0cm9rZSBp
ZiB5b3UgDQp7XCpcaHRtbHRhZzg0ICZsdDt9XGh0bWxydGYgPFxodG1scnRmMCBBbHQNCntcKlxo
dG1sdGFnODQgJmd0O31caHRtbHJ0ZiA+XGh0bWxydGYwIA0Ke1wqXGh0bWx0YWc4NCAmbHQ7fVxo
dG1scnRmIDxcaHRtbHJ0ZjAgVGFiDQp7XCpcaHRtbHRhZzg0ICZndDt9XGh0bWxydGYgPlxodG1s
cnRmMCAgdGhyb3VnaCB3aW5kb3dzLlxsaW5lDQpcbGluZQ0KV2l0aFxsaW5lDQpcbGluZQ0KUkVQ
RUFUXGxpbmUNCiAgICAgICAgUHJvY2Vzc01lc3NhZ2VzXGxpbmUNClVOVElMIE9SRChrLlJlYWRL
ZXkoKSkgIyAwO1xsaW5lDQpcbGluZQ0KUmVhZEtleSBpcyB1bnJlc3BvbnNpdmUsIGFuZCB0aGVy
ZSBhcmUgYml6YXJyZSwgdW5wcmVkaWN0YWJsZSBlZmZlY3RzIG9uIHRoZSBCQiBHVUkuICAoQ29t
cGxldGUgcHJvZ3JhbSBiZWxvdylcbGluZQ0KXGxpbmUNCiAgICAgICAgRG9lcyBCQiBoYXZlIGFu
eSBzaW1wbGUsIHVuZmFpbGluZyBwcm9jZWR1cmUgdG8gcmVhZCBpbnB1dCBkaXJlY3RseSBmcm9t
IHRoZSBrZXlib2FyZD8gIEV2aWRlbnRseSBYWXBsYW5lLlJlYWRLZXkgZG9lc24ndCB3b3JrLiAg
VGhlcmUgaGFzIHRvIGJlIHNvbWV0aGluZy5cbGluZQ0KXGxpbmUNClJleCBDb3V0dXJlXGxpbmUN
ClxsaW5lDQpcbGluZQ0KTU9EVUxFIFRlc3RSZWFkS2V5OyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAoKiBOb3Qgd29ya2luZyAqKVxsaW5lDQpJTVBPUlQgazo9WFlwbGFuZSxTdGRM
b2csIFdpbjo9IFdpbkFwaTtcbGluZQ0KXGxpbmUNClBST0NFRFVSRSBQcm9jZXNzTWVzc2FnZXM7
XGxpbmUNCiAgVkFSIG1zZzogV2luLk1TRzsgcmVzOiBJTlRFR0VSO1xsaW5lDQpCRUdJTlxsaW5l
DQogIFdISUxFIFdpbi5QZWVrTWVzc2FnZShtc2csIDAsIDAsIDAsIFdpbi5QTV9SRU1PVkUpICMg
MCBET1xsaW5lDQogICAgcmVzIDo9IFdpbi5UcmFuc2xhdGVNZXNzYWdlKG1zZyk7XGxpbmUNCiAg
ICByZXMgOj0gV2luLkRpc3BhdGNoTWVzc2FnZUEobXNnKVxsaW5lDQogIEVORFxsaW5lDQpFTkQg
UHJvY2Vzc01lc3NhZ2VzO1xsaW5lDQpcbGluZQ0KUFJPQ0VEVVJFIFAqO1xsaW5lDQogICAgICAg
IFZBUiBjOiBDSEFSO1xsaW5lDQogICAgICAgIEJFR0lOXGxpbmUNCiAgICAgICAgUkVQRUFUXGxp
bmUNCiAgICAgICAgICAgICAgICBQcm9jZXNzTWVzc2FnZXNcbGluZQ0KICAgICAgICBVTlRJTCBP
UkQoay5SZWFkS2V5KCkpICMgMDtcbGluZQ0KICAgICAgICBTdGRMb2cuTG47XGxpbmUNCiAgICAg
ICAgU3RkTG9nLlN0cmluZyggJ0lmIHlvdSBzZWUgdGhpcywgaXQgd29ya3MnKTtcbGluZQ0KICAg
ICAgICBFTkQgUDtcbGluZQ0KRU5EIFRlc3RSZWFkS2V5LiBcbGluZQ0KXGxpbmUNClxsaW5lDQot
LS0tXGxpbmUNClRvIHVuc3Vic2NyaWJlLCBzZW5kIGEgbWVzc2FnZSB3aXRoIGJvZHkgIlNJR05P
RkYgQkxBQ0tCT1giIHRvIHt9DQp7XCpcaHRtbHRhZzg0IDxhIGNsYXNzPSJtb3otdHh0LWxpbmst
YWJicmV2aWF0ZWQiIGhyZWY9Im1haWx0bzpMSVNUU0VSVkBMSVNUUy5PQkVST04uQ0giPn1caHRt
bHJ0ZiB7XGZpZWxke1wqXGZsZGluc3R7SFlQRVJMSU5LICJtYWlsdG86TElTVFNFUlZATElTVFMu
T0JFUk9OLkNIIn19e1xmbGRyc2x0XGNmMVx1bCBcaHRtbHJ0ZjAgTElTVFNFUlZATElTVFMuT0JF
Uk9OLkNIXGh0bWxydGYgfVxodG1scnRmMCBcaHRtbHJ0ZiB9XGh0bWxydGYwIA0Ke1wqXGh0bWx0
YWc5MiA8L2E+fVxsaW5lDQpcbGluZQ0KXHBhclxodG1scnRmfVxodG1scnRmMA0KDQp7XCpcaHRt
bHRhZzEzNiA8L3ByZT59XGh0bWxydGYgfVxodG1scnRmMCANCntcKlxodG1sdGFnMCBccGFyIH0N
CntcKlxodG1sdGFnMjQwICAgICB9DQp7XCpcaHRtbHRhZzEwNCA8L2Jsb2NrcXVvdGU+fVxodG1s
cnRmIH1ccGFyDQpcaHRtbHJ0ZjAgDQp7XCpcaHRtbHRhZzAgXHBhciB9DQp7XCpcaHRtbHRhZzI0
MCAgIH0NCntcKlxodG1sdGFnNTggPC9ib2R5Pn0NCntcKlxodG1sdGFnMiBccGFyIH0NCntcKlxo
dG1sdGFnMjcgPC9odG1sPn0NCntcKlxodG1sdGFnMyBccGFyIH0NCntcKlxodG1sdGFnNjQgPHA+
fVxodG1scnRmIHtcaHRtbHJ0ZjAgDQp7XCpcaHRtbHRhZzQgXHBhciB9LS0tLQ0Ke1wqXGh0bWx0
YWc0IFxwYXIgfVxodG1scnRmICBcaHRtbHJ0ZjAgVG8gdW5zdWJzY3JpYmUsIHNlbmQgYSBtZXNz
YWdlIHdpdGggYm9keSAiU0lHTk9GRiBCTEFDS0JPWCIgdG8gTElTVFNFUlZATElTVFMuT0JFUk9O
LkNIDQp7XCpcaHRtbHRhZzQgXHBhciB9XGh0bWxydGYgIFxodG1scnRmMCBcaHRtbHJ0Zn19ACBQ
TSwgUmV4IENvdXR1
----boundary-LibPST-iamunique-2052516265_-_---
Received on Tue Mar 29 2011 - 23:08:15 UTC