From: Michael_Hecht@mac.sas.com (Michael Hecht)
Subject: Re: Error Number to String Conversion
    <MHALL.92Apr15144310@occs.cs.oberlin.edu>
Organization: SAS Institute Inc.
Date: Thu, 16 Apr 1992 15:04:30 GMT
X-Bytes: 11698

In article <MHALL.92Apr15144310@occs.cs.oberlin.edu>,
   mhall@occs.cs.oberlin.edu (Matthew Hall) writes:
> In article <1992Apr14.205433.1@tesla.njit.edu>,
     erh0362@tesla.njit.edu writes:
> 
> 
> >	   Is there a toolbox call that will convert an error number into an 
> >   appropriate string?
> 
> I say, someone with an inordinate amount of time on there hands,
> should enter in the error codes into a STR# resource, [...].  What might
> be really nice is if you created different resources for different
> managers (mem manager resource, SI manager resource) so that you don't
> need to load a massive resource if all you're going to be checking is
> mem errors and reserrors.  

I did this a while back, for American English, anyway. I also devised an
ERR# resource that contains a list of error ranges and the STR# ID that has
messages for that range. It's easily localizeable and exstensible, and you
can add your own app-specific errors to the list.

I've packaged up the source and the resources, and appended them here, since
they're rather short (11K). I also included a TMPL for the ERR# resource, to
make it easy to edit.

Note that you might want to make a special case for memFullErr, since you
probably won't be able to load in a STR# to inform the user that he's out
of memory.

Enjoy!

--Michael

=======================================================================
Michael P. Hecht                 | Internet:  Michael_Hecht@mac.sas.com
SAS Institute Inc.; Cary, NC USA | AppleLink: SAS.HECHT


(This file must be converted with BinHex 4.0)
:#89bFQpb,R0TG!"6593K8dP8)3!!!!!Fk!!!!!$*1&0*9#%!!J!!(1Kb6'&e!G!
!!!!@!$!!!JG&FR*[FLjMEh9ZC(-ZFfPd!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!!!!!!!!!!!!!!!!!!@Z!!!!!!!!!!"849K85d&)6!%!TK-,@kB6$2m!!!!!!!!
*#3!!!!!!!!8S!!!CG!!!!!!!!,,+,e3d!+%L3B)LFZ5mNH0Lc%#""!dQD0%#K*J
m)*UN'B-Q6"Nf)*!!P1&)"`3+M4`pX[NLNL53!$CKaVLB%fC1`cGY8Mb8#+)RR$T
Lf'`%33CRQ$4Z(VjS`$3J##TSdX`"!5H-R**RhT5CLK4%'""SbS3K8dB1#$0Tf*3
"-3GR'6KXBUj9XG61Qc4N3%`"1SG1'MTek*4"SCH1(+4RS"J'3FIUQ6*dTKKQ!@,
)'cGp*FZ48D-'&+YKfTa&5SDbCFb4$A2f$&UdR,Gaaka0XD1"AE`JMN"'U&#1CX5
%RdcK$D+X(-Urh54HE(bKCK#dQCCa8dIdRJB*e["fETL*e*)p3-53!)'$"IEX9Gb
XFI2QMT[Y[KH(Mp'J6qfQ+N!`H6-QM'$'BB%J!PTZN!!K!PZ')3C#9h3%+%*MFMb
@QK`(KP%J#+r"*GH#*Gha&aS#CKKE'3I5CGYGHHdP4Ppr"6CBBBFTTjKC%%USQ@Q
ACDCDCjr*%GTS"H+)QQDVpILML"[UG&d#bCf"K)9NU*9!MC!!eFCN'RU8)4'9N@&
CaRhBF3P#H%k8F8H6K((jA(3*T'%'B5')UC0"V`%QKa[h*H!8&'@CXC!!D!fZ03G
IIJ(Qef8%,C9!%h8S9aB+K$eCS&V3F8PC$*34Q0F+iP'QJUD8)5NE#*aL5T!!U,2
PZ@GJ(&S8daS,ZJ'JS!NUPbKf51`haKU3!)B%*D8Tb'QPQPk1Q4YNNNCCaK4HpTS
XX(+#8&%-9VUCTQ13!$'E*3JqJ,!DG1F4ZfeiUeQTJJTLKLIZPpJ*`3CrDc6aKKd
[SSXY(C5T14PMpfUl9UR3@8Q%9(#m-FHcJdAkkfc#eSFI#%583H"ID5$kKKQcJR"
#%9*)-F)*''le4KebM0UA((@-BHGF5p'4"aaPN!#&mFNTPl5NF,a*p+i8&Mj'@93
m1eUY'h4)P-$*54"4@amJ`0G%'(")-G*#T4(N003chZFbc$)ML,,+)#b*90%5M6%
bd9CH(IA8FT!!N8"cFQc4aG*0*l53!(Gp5@effjl#KcFG-hUUJYrI)3cQEART4JG
mD)+!Fd,&*B4FVFZC"IHD$5a*H&m)EaR@jR4BqGSChj89+pPY8SBRGU1AETED-lj
Y*C'G'6eP'@h!S4QBHZBAa"b$YV(@(F0IGN**QRS&J[$!Kr(BV3QSF,Pm)-#JUZp
Mb!CmaR![$c8F#JV9&r5"JQiXBD!M$*hL-8MG&XQb%ECaaapI5Pl!f&NlUrNTK-f
838kC!Q4!8!FiR'8K)(MA'`aS)S2)+Mb%3GIRl#D([d'R"6i`@k0#Gjke3*!!)1@
MS!96J%'ijDPhZAN$J"45Kc1!+&!*r!i),SDKRQd&HJR`Na`)N`CM@@p")1!"#2#
dS"@XJ$*P-#*dr(FH&#B"Bq`T#B1L-K8I1BSbFeK$'KLS+)2SccMF+Ji'J@C$F"R
0E%4$5KhBe85R2,''MKVL'j!!GlDULH%eBB"9!lhiTXLC4BKP`1$1bMJRLGa4,'X
i)3U08%F1KH"B*B%KmfMb[$dQ3(&*+&$MTRFF-IS!D84!)Z3U%NJI$$+1!'1633k
C4bXPS!rBJ59fh!K&&8l5H@@J6"hQX"B40'SplC%9h!jdbdSU5Rr5Sq"cHK!H'#c
a1ZI"T#BT4aK18NBlbZc1GkkC(Q#kKh',LFjj!NLS&[d(KYfM6K[%B,UaU9#5@k%
NbmlMK1T3i3eS)XblE*8#iq3,GlS,TbY9a#*$*3a'L*N4G+aT%S6++*`Li!)F[-!
a+BMJRlPENj9J#8X#!!T&FR*[FLjbFh*MC(-ZFfPd!!!!!!!!!!!!!!!!!!!!!!!
!!!!!!!!!!!!!!!!!!!!!!"B!!!!!!!!!!!!!!!"bFh*M8P0&4!%!TK-+!+B6$9m
!!#G2!!!!!!!!&XS!!!!!8U-!!!!!!!!!!0R$!!!%#!L!",f!)`i#%,$P%!!V!)B
4-$!NM*XaCGJ3$"J#`!F!0!!SJr$!5"SfC8!S+#*(cKXj,Z6-N60QM!##-QP+Q9+
%b-#!2h(1(,1cCp#J4&"YA,V8e!3&6!'FH&,($4Q#+`$8!-!&`"%!dS#+$CKJ)i8
TD0lF!C&Nb"-R)-,3!6'(6KJjG1V!)9K#+`"VAJ-!'4Zd,%%(D0@#-&+($4X36FU
iU80`!`!P!&ja"F#0-%'S"!N`#91AB)I,!-)"E3-JJC-JFr*F4125cCXkFd#-#H-
iVTLAG-U3!!%KTXaZh#RR["QcTXcF1k4eXhNc4cMa-QCHTYcG'hVZ-@rD`%%CR)b
,#8'%5$(qFVMYZGQVQZmJ*-a`1@AQ`(RMTMS)-bke!8)39%#aAKaej%H(#am3#!8
)q1R(RhpYj$G(''HN4-FEEi$!aPdCZQ$$&-Xe0pG,)-$KdSEJ28C((R#NP)BEG[#
@aR!S[[IIE9D"-#-)GSQ"%S01#2(JEQj8!pq-`q8eRSaZ%&H('@D8!9-%4"$aS"M
fkBD'F@[-88FE,Q63""32NL&('RCB#B+1-pE&'dVQ'4%%%d%m#'!B&3,*SBFJTT5
G(&*5D58,)+#BCCTbB5J(Rhjfq+%F'Hj)U"K69JN68#m!S!!%"bCBPfr!#FFJ&Aq
fB9%HLGC"Kja@cAM'J!AU0ZFF,SMJB""NN!!KKAiqcL'QGF80QT+$8eMe+a`ZF1#
JE[c4iG*M3TEijK[`m@JH"XrD"Q&'CC!!PK*q',&T+VHeFMPFG3K+KY'EBaB(N`E
2U[ZYK,'k-DYbc$RR!Ud2EYLKUQk`'Z&qqHjESR1iK[#X`#!3c#Ti&pA4NQ4ciGG
ZAELZJ+bbC@`-AaJR#DI$Yp*1c10FCH#"NA#Q%M3,!!D-815$E[#CRipZ$+SU(@R
`4pI#,,IddRNh[kRcYGR+Pf[5C1M&4KUl"DGdRlcKCaqV,DI"X3XS**ecRa5ENBB
F&3ih+!KNT'%SIQl-aDq*,P`JpY)kPReffLj3N!!dTQmRfUBFCNahK`Y!h3(!!bB
JB4%C+2N*!M9cp&M0[EI4P**h20FipAa*d'MMF'1JBC%E'B(3ES)H5RB'(@L8#B9
,3TBKi(6fbBUja4Lj8)%6(ES8(Xp!IUPkJJNLrJ,`%@[RjHNCjEBfl-R&1)EED9J
A@paIcT''(PDk)!2cTXY""R6idDAAIRKC@RceaQ'[[@c8H`mq6"id%3BFE,qaXii
a3PXD6K4!Z360$5iJ34$S)+ddB-TUC2"IEJ"ST6B--&%&""Tr%%F"+E5K6HY4$Zm
%46)k)3ip[3TKjYjPKK+H5i8Mr%r*Q,BMTdd!KTUMBAbXJMLDY3!!0S#!%+E$R'"
jD'(QfFL!''Jl1-aP3bQb@+A#F-4q$DGDc(("#"BB(2%mX80[b'"+K%C&!*8K*9K
F``QGN!!%*N5-0-%Ke(jQ&%FAD)*%,FN$SULA2UmPL@@fUF-Cd"!aflf%99#-B2(
NmLmUb'&Ldr'H[SE@TcX`55fj3G%Cf+3l*C`T,S#LP*[f0akU'9"S&@V$)HRb[Fd
0N!#3!04E$*1X9)hF51-)cQ&,cpi`$@LeJ@"*h)J(Q%H'4LA+$1rlPXLXmk)B)Di
$4-M2'ZJbKNIacip+iYN!df!Mm*R(!dr)i!%6&58UDSd-,H!2'eLP"rk8`38l)-+
D"JH#F%S'"&CbL4`3aEkjj)drCMZ$aD`c264i$9TZ30dB0)M!%mM6A)5bCj6bq4*
q!LFZE$JRUhk%(-5Yi8jjZKB)KN#&+AbVA'dD6KM-%%F3c%!')*!!3NPVL5J863e
eG*&-GBE$8Iqm&%KTU&"Z8+!MK9VS,LHC@"L3!(0&P6R'D`HF3`TFi!b3!$k)SS5
5Lee+*kXAN!$"1@(JkL5YQU)9,HF0,S*4'8kQeE!5%UXJZ-1ASN4@&@(VV)mj+1V
1B-!f)3T18AU8[XT3dkaQ0&aNf'L8JS55`XCeVN!+3qf-D)E'X'%(E!0VkI"T0%,
*pCje0@Z,J+6@B2f4H)ap*`5B*iBeND&51c42#KE&YNDGi9%#3K&CLfQAeZN,GT%
L6KV1i))ld(CZZF6UbC!!1jHX)CC9B39DQc#V)bVH)50XD-%DE(1(+$%AXmb0l'3
VkaM-cSPYXZ%6eBE@,hr'bdUjkHNl!l)"+iaZJ+b58elL1d&XJ8#"1(""#D"`&jf
e9!T"D%*Fem6%+,A02IiGR0[bd#`U"(9c$!k1Jfp%3`QEJF)9U%,1*J[&FdUR4$d
%J!3UFPUcpDJk#cfD"4lD*XlU%`3SU%iCeX!518a9"#c1*RJZYY"eaS8-DX$0A0S
fKfRUjicQZB%MXpHNi#'@P9m&!8cIJ%`U-RQD2k+L*-q!NKCilk[$8C1jA'##)-p
P4Y[XCNUqM&"TS48PK1)UXbEJCKRf5&TKR5B-A+!"'UF%VLK!%KfQ%"`ip(LU',J
#Je-LRha@*9%eX4Kqc+1"qU6CQ+U5`c44S#iL#'(4E)$$9$[G*Gj5-G5M,[83`M5
QU9kJcbj@D@el#fX'HIV)DV,3'd@0Bh@GHJUTIV3,22"Vq`4E@-11YAeQ2BFf+2Z
'L'f"KeR9`T+CC`1iCP*FbYQV#1@QeaFJJYI!R"ZlFNP)V"+54G3B!@+ZQhKUET-
,CMa2'991b2a4D(PkH)"4!+!$8FM#EH+5[ZSk4Lh-l0!G*Ldjf"dd1fci+Na'QKE
UT-3Lf2S5S6#ZmA%hkC&aiHZ-A,!(+KK29A9a8p[)Y5'8Tp')3jD$AKB%!M`q%P%
2"%%H&Yi'*Am,cN#6Fc,YJ0Ba8AV-b65*9@KT5jD)#`6UER)[`I2,aqelGQqSRB#
LYUC*`NeR,MK$%I!3aj`paQb4Ldh-fi"CZ*I"c(QBZiqq'MIj%8U[r,RI'a`,"lN
3%MqDFPG+*Y-'H4RaYZ&U+H`X!S)B`%!'0(#"$i$AA-L%PBl8)H5A-FYd0MJG8-c
*MIkZ&lI3Ym"RFQ(EfBa6F`T,JAPLfQbqb`"HkmN[cIf'9q0P,X(6rQbcUa+qihm
8bpdIV`c*Jm%8I'mfkj6qp!GelYDD9jAbQ*bF,EMT1kIJFN(0m+"%E)j+Hi3N(48
(Jj)K+)SQ[Nepr8[%k8qQhEqIXT56$)&)8(iJF(epFP"FCJEK0b2["!*3J"*A&bG
@mN6'3i"3-Ql395-R)9Q4XhZqdf-S3RDkJdYdB!433"dZJ!-%"Pb)Cb@+ThaZmQ6
A8hhpK6Tii$8DeP`e)@b&"cXZX!3%KP[1!9rpFeS`1'(MKNme@"Hk3i')mMM[Jaq
e*&*Ie8+0-4F8b(*2i!C'jNja!3HP9$AM&(Y8"$4N3hRdCc930(P,-L5HeacUdh"
Ja%GGq)@R&#8(GBDkNiE'Xhp1f(mBmRmZJ'!b&$Q@"&aUH$8IGeMEec9IJhAJJSE
'`iK!-dPmq'H3!1@(+SG!M##!qhG3Q")Erj)%ErBGQSBa@aJMU-06jI3H)MH(8`1
''b4,2A)Ecf%kcH@&VeL()'!kQB5+eR&"6MJ'ND3KHeJbMA5*+2H(+eF%!NKRk)G
%pqFIX54e'KH&Yj4,SC-G@aFH`#3j9C&r!q3#c&L-NI1-9K50a*J5e%Ke)(#0Fj'
0[14,h3K&hfJYi5J)cAK[jUKqre)%DN"lb84R6UK+04C,ChKhGK8F#b9H&@Fmp@K
&+8)Gfa5,j4GBG`H"lG0mppD(bCL*,P!5-k3MXH8#2k"`GE#,B9#3!+Q5I(EALj,
a,d-`M*3d4XK%23,#NG$PN3#3!!*Fe%4I&*(H`e$AB5adB4IY`f@$q%ib`!4[X%R
FJ8p@N8i)Z(pD8cV@!B*QGf9KC#9ek!)1B"+4Sb0EL8"&dLAl0cCM4#KdKTBi&N#
Q!`Hj)AMKjcU`N`,Qa84H*$N%#5939%E'U!"*m!*2B'0(S`A6&cr9PfEh&N(jF9U
5q#m0'#lqJC%51'IkZ)SA@%)D1'I"Kj2qYh)iN!#268CCP[8[d83H(eF`)&!96*@
8ZH'CbSK!3X#*-c4cY,G+&eHDMSLD&VLDNl&6VXPr(3Q)3)%-!-!!%Q"SIrG["25
5&"#BJkNaSY*F[i%ATY*QYj&a,5CZZrGh&LP#1@4h,Z!`H1P%NS-IHhQ%BmNfrEB
T4a!U#Q)Gjr3#"jNL&H3ehL-dM-QFEd3(ZYHH8ELH!@4"`R*!m+5Fhj*i&l&ild8
S45L$)-"'EQ3k9P'189)9&j4D,K!$#,U#F2-ZM1GiqfPmFV&C'2T%QjP!#)SNfA3
`r&&P)#"T!l3GYk*&+fS4,CSI#!1Mkp%Ph-%'Z$*El@NVTq@LIpBK&TFEM#BAZ'%
VMZ%#+R#M4DUM,pU3!!Fe"0%b,8l+"Md8!#-!!!L`!D(6GVb4P(54Gee%Q*X#!'D
!T3P&Hq1NKmPK*I4%J5LC'm9a6da'-3)R(%$R+XPN"8-J"%DNK,ea&pVbIE"Q(3F
SIL6CNhQC5"eL8&a*%`EeP&[j+%)T0,EK"T6k+*CU5SpaKH6C48i8FFe6Bk"h6'D
J(f9(A#5!+J16I(I`%QZJ1lBCBfZb-f0T+K5JEM5h5L+T,6eN!*V4!mmT1Tp$&p2
KAX1hTNc"!ZXaC"$@0$h#I-D$E2k&3qp#"5RD!GSk&pbD%Yik@@m`1)@M&J,'2'1
C'pH92VQ(%F*#AUKP20-44SMM!VmQ"(N3(+1"1VRK1Dc$1B8R,+K+H90!"!VfSbl
J-F64*A03JR6N*J3E)4KcX$fRX&[U!M!3""29@CJf"U@BCKDM1beM(+ib6NMj"A-
JJ[*N"c!a!FbM5[!kVVJ#%KkVTL%lXQa6XT0dXL+lUFM%XLiV"c$V"'KR!NZkAmI
%V2lPL9f#!U%c3%Z,'em3"#aJ"5N!!$+3!,0`Y4`LHc%NqkT)L,*##`*Ii!4PF!F
5'cIKS`&6!#kkDN5df,5r)4qi8J-#Z%PYiPh0'PI48EG)HEG@-93I+%%d*)P6"3-
##!GSN!"hSNSFq@Fr+B%#5%PjFc"%*C)#J"ZA9[)'8#U!%IX'%lZF%GT'*q-Y8c-
U"r@J91B#2##!3`!&95"$'B%M0@Nmi*&P824q31XUa**IDfFFREYJr%&F1b#!q'%
(8#8d5"P,ZkXK(H+lH'#f`8XA`cX'a6YaalYX3A![G%T3fC0aaDXMJLFL!TJ%4""
ILf8mI(Y2Fm!%0XK`LrHdj63('*%`L@)qiG-#kk'Jlk+qjHYIX9@[+I'q8E+k#a)
9@#%%Eh!A`b(!R-1pqS*Cq)&db@3J#AC5lH%#,4#ZRTFc'8)S55BHiK8ji0%BeAS
GZU%e!eF%AJZbB-ZcFM9$+C1((B*dh$3ei*0-)$bZ)&#Z3b*PaM1eLfBAqr8&9Q#
lj-XjHp9A(mG5EM)l3A8AV',%[P0qIG4Ia2(!jX-@4#!q-AaM-laT28Zf[hZf41X
F'Y`%deTK)ZG[)[8E%%`AiqS#06$'+&,'CSb9Xj,'+MZd@EFISeZk,X!#!QJ%,B!
%L18Q0jI#j1YqPLNK`-PP!TE)Lpc)Pj*rN!#m`Zph6Qcf[Cl$BIcUVaDa-pAAa0%
aV%lM-"G+JpEMI8,3T"j)+(aX+MR`[4CVY1*lZdhEI-Ba+ESS"8qJB*c6QLM33RE
""P1P!`+BX-BF(9@aQC)c*mXK&bQ45UY88-N"M`ch+"5Q!3)i(C08UemF(+25E5C
N!9SXapk5UlAR`FTE"XbERe(b[-Ec9F*BB%**c!TfKl9"A#[!L5ra-lqFcm(-cq2
NcdC%`F39!8-J"82J*@$b(bjN(Vr6)E[aaGMDZXhDT3'K!"h!2%%`"%Y!6R(4B%)
TR3U#+a%JUfqNQX+B2A'$+aD!T9hA)cF(-@)`A"mCY`8U0-,SFHBa!R(,bhPf1[k
eRL!RKp84e!J%!6pSB'k#95k`!EJA[M+4dS[8A19Q)9FpXmlce2DF5GkPe5i3!E-
F1""6EA2L!LG`e268I[iP*Pji88Nk)&2`))0McbNQ#c66!96XYS6#bPEK@%1p8hA
MTJ)h6NNf+SPY+KBJSeE$dU2#dcjp!I!j+YUA@('a8'X'!Vr'Th!U0"lDJL%D2LR
!2'D8%S`0N!"ZDQH2SEQT&aFBq#'edkA6!!!@8!498"eC9ClH"d@6'ajTL9'2FEN
3BK'9FSMCTiLHRAkQBJ5rl5DmQ0+Q1Y`GmT!!df41c%f-XHI%rLAG698m"i8Fd!S
!8e$+ir,G9A5VNh6GkN`XaV&8dQJm`$hA5MdAqCGmcMD4EVIFJh@c8I%(!TLTZLM
I&hdGah(I+6'Jq+QbDLNCV+*+@9BfVrJUFI9+b@6K&9M$Qa9,Jc*0ephCmAC'pqb
,`833AR$JiL3d#ZjY$'lIkELD`0drrq0ITP13!,Vl%M6hfI+D'h+DP#p!FZ&$%2d
!!!1!!j[YIAdGb$fAGd9!)fFc)9Xk`-eefbNk"0rEUB5m66Afj*cDS-9EX$X9$Gi
b)l!RP!H&(hNK"kRS!Rd`"9*1jE8Kj0C%3bU5(aL$Bh5ZGrXA,R)`0@ibH9%LjP'
5H6&JPb"!CUcMjKE6(`2)'k,L2ZH9bQ53!"XYJa(Q+AGGC!A`CD!")3!m!!!1`,K
&l!B$C'S%9N59G4&#HGdkNJHjP+G4mU1Q8J'5GV`$'1TMrU`Zd!6YE%6H3U'3!1-
Q"A93VNCD-F)cFZ)BmNFSd&Z+FH1+TX43Z4)kSc`FK3H%,A9cVQXUbC[2MF)PrY%
b'QE210jIFV-q&d8DXP%kYA%Ehe'MB)#P+VbGPJJr-8KPZbCC9iIZ1R9!M[@eQ5D
fa$1@Z&VZ!Fpf!lp"&k$YSj0681f#-'%"3+hZ!Ra3-l,YK"B&#B*bB3XhG'"NJ'a
r%m!BX"kR&iBMVJ+PDXYfrqiMD5U@b'6ChVIXcI41'9$,C4ZdZ[2US,e"Xf9-+DQ
CjZUJGC!!Jr0U@3EM(,ZD8RA6M-BdS`,#18j3"8c!"#N'%3kJ$S+J$S33!!c!$Q2
!$RJ3!![`$[X!$`+K!21`$I-`$J1a$kq`$lJ3!!'`$mf`$pB3!!Q`$r[!$`)K!2`
`$I`!$J(3!2k!#Ij!$3'!!2q!!rm!"!%`!2m3#2q!#!&`!2q`#2m!$!&!!2m`$2r
`$3&3!2p!$[r`$J&J!!3""DY&jNJT@"Nb"dm`"%j!"35J!Vk[!Na!IN13!!"-Z4D
fA`C%F!953!3+J!6$GAMIRIc,I`$N*`8M!-E56`5prr["6`9&3"!F)"!C)',ET4B
IUdq)%Vdpi!9&)!95!0)"B4!)S4!-!3"C)!@F`!"q!2i"F"-#82eIbJ%!!!h3rU`
I3A!'91"--!'#S!f#!JMB#&N!,HJp!'!#(Q!!L!2fE`U!JIi(!0c)3L!&'4!1A$i
!3#L8h"E)J'aJp!%!4I!!#3"JL)"d)28"!&$`!"I!!FL!J1$e!3"Dm!!PJ#[)J'2
["LU$"dJ"p%!'j(`)!!#)J`GB!8*""Q3%J!m!f)-(b!'S3!D%"!&!!DLp"pJ"X)$
pN`*F31d&!!r`!$f!!)b!R)$X"3!Em!!r3$Q`Ic-!"bbq!*!!""iJ#$!(F*!!"3!
!32!2rX%$(!(8i!X5JMhB"rqJ#9J+JL!!8)%r#!Jf3JRJ&@f$SC5T))#,bS#hBJ2
64(q)-$G4bh*$$(L%[3,!6F*+H!NcS8A!%*b`Xq3''3!+)q%"'B92SK5'-&4)+$U
K5p&Xq@'&T!405!Y"3#HX!*'"CV%+AMM#I+%U6(NcK"LQ3Rdb"bT!0'&Hld)CeN*
9H!(!dLimKF83#4J"Np)**`!)NiE'N!!C8J"+'!Yj`c3*!RXY(,k%15!"4J0`Sfc
,F"e@`f5)$6QKc1Z%%Z$266RQGHI8S8a3!%4JJh9#!P!!4`$S)!!!:

Organization: H&SS Dean's Office, Carnegie Mellon, Pittsburgh, PA