[comp.binaries.mac] Macintosh Technical Notes - 160 Key Mapping

bytebug@dhw68k.cts.com (Roger L. Long) (10/15/90)

[10/90 Macintosh Technical Notes - 160 Key Mapping]

Revised by: Imran Sayeed				    October 1990
Written by: Cameron Birse				  September 1987

This Technical Note describes the  Macintosh  family  key  code  mapping
scheme  when running System file 4.1 and later.  This Note also provides
a "safe" method for remapping keyboards.

Changes  since  March  1988:   Added  a  section  on  hardware-dependent
differences  and  updated  the  Note  to  reflect  the current Macintosh
family.  Also removed MPW-dependent references.

---
(This file must be converted with BinHex 4.0)

:#941-6B`,R0TG!"6593K8dP8)3#3"#IP!*!%9l06593K!!%!!#IPFNaKG3%!N!J
#%P41,M%f-#j,CANJ6@&`F'PZC`%!HGI-!(RB+J"fLf3!N!B$1J"fLf3!!Fm!J!1
A)!"`p-i!N!FH9dp54%e"3d%"!+-VV'bM,-El!*!'4$`!N!BRA`!!CYX!N!D!d!!
-!2!$)!!!!J!5rP[iMer"K%1S!8!c-4N!)Gi!)0#BX'2#!4f4!"$C8B!f!5MqKIX
R6N!q!8B'(#Q!BS"$!5&(HM5*mQ&#-Kd0"KJDp-5$K`Bp+ZfS!%#'!*!!P!*C'T5
UeB3'Zcc8LM8K$Pi!TJ+i)C%#!!`"E[f6"i$HfJ$#rR&6b(#KclX!l!,!i4!#9LN
!"+`&B'+`@hP`jADXq`m!RBk225EG3Hm!Z)3j'!K!0lJ`fm0`26CQN!$3E'!1!`a
H'"($"J`G)%!X+C-(4*-`F1#NFA-Q`4Xc)'LB#CL`+3$6aXd'D*!!8##!j!UY!A!
``"H!"Nf#(%Nb"!Vh#!(q%5V)R$J!dXI6HrR#[Vhlpr$Mbjp2[llpqqbC1dmHJ%Q
p*4$3mm`6p,ac"$fI1&%2%%'m8-F3'4`!#"X1U[&+(J,F8mF$-Fcc4J[fR!$#-Q5
`%3)5!N"K6`J1B"%#*'J%F%mB-J!Lcb0ei'JKKV%Xm-FCX0Mc3KiK&!#0"FY)H%m
S4FMc#3Xq!UPK%Jh3)BJmi$`3"!%5h%0&$*!!h'2'+h9!d-8$HP!!a4`"b"%,%&-
L8-Xp@N"5!`JVYKM#*bkd9F3!8L6J`34KHM'&!,%mF!F9N!$-SHJYbb$+J#e'#%1
"K!dqQ-%mX26aJ"K5`$)P)'4!)1BT6b)+``S3h',2(SSbZXJAGD6b+36P#**"P9H
q`j`%#D&R&J(S@3$!!X)#m!4qc$EVE,-0k"GXDA[Tmd8#p%ab5#320-('(#8X)Jm
`pC4"TMh42'$&Z2p"8%m4@YK6`Mf!d21&(41!3)me0YJ6aa2P!AXHY3*SPTi%b8j
!caYe#2&Q25&%%`32(qJ!$c60"@Z3!&N*a"CE%8i3X80jcL@3!*!!X3Ti$-)36cJ
a"4A5!Q!b!-BQ%%!h5L8J`!%lpmcccci(r6-!%l"4KKPdJ"#'((+mF8F#*0`J"03
df%$bY1N0mHc@A-mAVAR*XN"2,2G!3Nm3M"`K6KdrB2X"%I6S5cBR@Ab!E6NrY%$
2fh'2I3rG(m6-`-ENC6a`HSYBQd#lpj`Ka$e@J',2h&PJd!!9NRTC#"#6hi1*!6P
FMX!AE8$3Z5GT&"#1%59`6[ER3563Km3b&,"UJ(cM5IBRBPL4"#"M3-*U$AR[$EI
Zpr$Zqb-@BqaFXXXCRUc@A9GIrG@(QlA$k@NJB-SL$k!JccmT`2-*#I-m)B6jk$p
"42Mhh,(#!e2F)XfRFL!J`3%`f&20*GHJ`#2+jcbXQF8%%'YF)#!KT$c-iaABqN3
EM!#$HYMJ(T()J2QH))`[L)%#(*V(*h)`M`GJ,eQ5D8"MRNHYjH#%KHPa)GLSeB!
NZ)%1650$(FC!Kc5m`3dU0)m$#,HF&4T3!(DB3KlQ3)FbY!%%CNL$dB,MJKL!B$F
iI)-1ae!'-LJ0"'0!3aKi8iBVZJ%%G%"$'GG!'bBfMBdJD!0ZG-1E1*BKM'0-`ab
HD)Bhb!'0DV40'-D!a6I-!3e3$%-ET*J(&m6Q#A*)`aPf%`BfX#%2,2JL'jHB46L
1)3aeQ%-APAC',*D"DA@!!adb18B[TV'-TN5P+N%J4MH8k*3J))-Hi4!'1S4aP+m
%`5E(S-8bdZ%0Am6K'1I!KPlkm)a0Ud-2h9"'1,c"P+j%TKKU%`B3X-&T,@L$%re
B'f['%J3SQ%dHBN!&15`6"(k8$@eNd-jPTX#4)+"#)*A)4#H#)*6!41CZQ&K*0J"
5Mb#)jM6,f%X3L1%0EdKD$mA*5P[QXJaf+--hiA$+1B$J$JaMJaI28!CUZY15YC&
$'H$36#jH-@Ql!3%[jC!!Y(L@Y)FU[53DNDP51F)"N!"VT-e$PdB'I&j"M@F-jM#
,qG%`H05R(#9$*Y13!,3l1$@KCD"$(H4!c@`#eBa0P'A5DRP,1@6b$QK)3aL"HNC
VpY19JF6S6I'Tcc,bXiPmP')CLAR$-1aQP!p0ieH9k3CQ1[1(#@AB3NN*ek$@aUG
Q"-%*NZ#%*&""4#UG!m2N`%@2*S%))1J"#'$!@""m0V3JL)%,Q#-%!`+J(m8+J!'
%&3!&a(B#`K+!&)SP!#cNGJbm980ZhF"E1N$[K+8*`#"XU$4,JZ#ZrSbLd6`kKpf
iP!C9c'3`[hQ(F)j6$Z@mjJdlUM59JS#*8M6S+e9DdFB+NT!!0c3N)U(!KP#HYiI
1rD3P2IV+0Zb!PNk6UeRI@mK$RTH66[4S'H*3Kc6NCT4hS#SLJd!%)H35Q@k)+"J
,#P44HK1FiQ`$1@8UhV$1JDll42!6iC!!f90QP,pUI+*QPCBE0UMeX)8&C%2eUpi
BErL-k(8Z3)(ka'1LdCf&E@B6K8NEBT+K$(2)T"LNH9lVfPA&803V&@1JA6@'&iX
lrD*#rkTMQ,D"T8kmU8HlU8XcQ1'80l8M(YfJacDX9RSY41ja"'#!+dJiMR9J3`r
4$))Je,L-4)$b'Slj8b(B&`88&N)+Q*b(SFU"$&(qSMMRA1FVHT5DA3aS(((ce6D
r@D8h6'JBlN"T*d-jc0dNU#f*#J)lT)'QGDKNUjQDaKf2dD&PK+USJc#&)53K#D@
G!dF*U@XmZT1(Z"3P(8iF'hdL&+Ul1B1R,dc0b2lkD(fNDCK9ZNA(@YU,BVbd9Fh
lC)lDXU4FE1pAhFPUE0Gac0d'k*V4'!Ba6"'YDN8N3M1EKLHR1UE"K1i66l#%l%!
"Xe$H,"Ia+35RhKLPA5iM[AIpj'd$e+ZlH6)H`)V-B$,Fi5+L3lq0pYpJfU'5G@#
S4!-CmM,JBC6Ir'32%B[`3*im#!rI0PSE5Y*TBe@VA"hP99eqDkhUHUP2[V-+$"L
!+F3f#l694'a"3GYSa2BDamAcF3)`"Mm,0ShA[Q-Ykjaa5V[a$Ci%T5MAA-VaLPA
H`BbP(&)jePBDlBmqKE('9meaBb+cQp+`0DiV1Bh#Jq#XD9dV3Pm*j$JE1CKI8'F
pFka-1+"imZlmDH#rURLR'a6UKLGPSBYpl&V$[)`S#'@fqHh[9`0mV36[H-r,b2!
K)%%+%0IX9PhkQkmU2-Y'Qh3VMlj9cSXaD5q[EqU$5GDrIc6bL(5VdB-Tea[H'3!
HF+h@6`D!8G#fB#F,!!,#2X2d--%)9A$#%+L3!)5@b6-2Qjm$#JJl"b,d-J`k!!8
iY!1ST`18439&F!4&)!8lB!9")!Ahe8YP!"Y-d$,Ei348N!!#1P#"6R#"-'-H-f-
XdG0q&"!!aP"A4lC-rUGb-V8dLT49Z)43h@41GKGQ*VF%[JGm9b4(*"9C)8C1+1C
BVYD#lL41BE9Y[fC+*29(a(4QKM4+a4G-)YCQDB",CY"-Cq"4-58'919410!#-9!
$&I922a92C1!d30C*CA5&BD"Y@dK9)(!$k"3$2C!!5LQ!Gi&8HVPfHV3"4NceKNC
R!bd!!d%BJ8Xf8bpiK$,SHY)(9UIN"VTQC*P('rPhI3&hAQJ38PiN"YA8BR+3!&&
H0%K0-`FHa@0D#"a2&JCHY%PVaQj3GQYGK%p*!&-He@iPCA!eP93qKi1r*b+l%@j
bY(0ZN!"*-jB'`('$1HL,T9K,*#99KPK'Kk5*`)C9dKCQHR"+Eh"R@Z"Da%*q$4!
fa3)!-T!!,%N3MP#3!#cX%)la3&ZiPAiF3&Yf%&Ym3&Z8%&[M&d0k9S*CS$Mr33%
3J!F')$Zdm`"f3!F9mJ"Vm!&j8!b4F$Q)mJ"&)!-JP*!!H5!S%h!*2h!'YR-2Hb!
"Eb)(%R)SL8+4jJ!*mQ!)J##5hI)YiI)!8%!QJ0!jbT-%S2-!EB!&qT)l-YNl56"
!"3!%+YN'C`!$J5!-G3!$AI#3!"3T,f4JNLLTNYi#,Z$6)5q!!r33*,[$Nk$cN!"
33!8QB!mUB$TCk6Y1dLIY`Md%53'(-!8,J!B)UC!!$2N!l6-%im+4HJ!"V')2eZ!
S5eN#66NM5(#8YK#6P!-"m[!%-j!!2Lj`-@*R&XYL2C!!'CR[m68`C"E'JLajeTJ
#3!C8`&014'T+*94[3&5Cp%2"&NT*-`HTa&,F*&QmU)1C*A%-C9&LP&('Kf9$4PA
i9!5$K%Lpei[8+*ZdG&@rjP5Da@a0j%8R-!AFi36"*jZ&Z*c0qCc$eiP[B'Y2YQp
R%(U4Ke8X"Q8hK@2`G)b"0!CEK@T*XdRR0QUjN@f1C!3fK3H+K'CYC`5SYPEU1CU
AjNeKN!!(LM@FqbDG3q#FirP&pJP[L-5'fQCNf5P*N!#iC,f@0$293qEC6)"(DJK
PRNac8cSe5$f88G(*R!0+RC`&MCNBD*X)M@mJ6YlCBRdPM!8D6"1U9S'f0&MP8r,
@KDB&@Qj3"fh!LB#(QY-B6(2`JNS$B`d9KEZBM0(jQL6U8QdJT*`)!T!!+%kKQ"Y
0`f*T))'Aa%TDQ$5IG%C6UN[+eNaj-%Sa&@YMd$5@0(XfaN54&8cUY*j$m%0CC&"
3-%BDG@I$N6d!N!!#iIJ#bE)&i4J'bG)(i6J)b6)*iCJ*Y%8"XD8"Y(8'XG8'Y!8
1X@81Y081X682l&HCK81#0)-%4,9ZL,C5Y`K[96J(-60%q0LB!0!035"S*hS'L#5
MNH3'K%4SGI"ZFR"*XkH(6pGNaD5&r)9-YFP3%6KVqiPk8"42hH4X(ST,+R8'4$9
G(U@N$-9$HdKTkrPaa,LLCC4ZC'#U&q9ZZ*K,aRKUm2CU5`10q'93hbP+0b4[a*4
4j"DRD89GGb5-h`HUXd!21c!'rJ))Km!$!@)06!!,mr!"*23)1$!2S+!PQC!!!3D
!!"b`R,CM#dP`$hB3"2+3!!f$%JNb)*!!%i-"09N(k5!''I#3!%iJ"4"3!J63!D%
J$*P$"8%J!bXTP3f`SRU3!$ap3JmD8!J%m!&YF#mCd#hem!"A%,)M+`-c5`%6%!b
2X*JBFcL$NaiCN!!X+9!21"3#r6-N$i3Yr4)043!$p(!#5'!hp4!$iQ#d+`)%$IZ
`0m#BS&S,ri%($d!&($!,I+!'$r#b%"!*DE-LJ-!Uqh)--S!&X'!0pR!0&r+@HF!
!@@!keZ!1Ff!2F-!)XB!ZLK),-2!%G6!$Q3X(pI!$H5!)4YX!GkQBm`!"`@-+)I!
%CVN%HLZiDP!)$P!%M4-*J!!'rB!#EI!"df#6%P!,N!"3$3bLPjLVZ6Zj2&BVUU"
+!C&NUdQc0%hc0&%c"&3M!i*$,40`KRG`4YMV0&"c!d4!06L3!)m!%!'T9&lCHlj
&3$9%`,irX%Qmj%8XC9r9G3CRK!)VN!!#9&-$9'-$k"4KJM8&DB8d$J@(e4K68fL
-95J(Fj!!!ZcV!rLVLNFD9RUd"ZLN!J*-!M3`!pel`(qQ`-DB0&bBQPRPJeSN`4e
P`D)+""RX43[@VIhl[cd3`M83!qTV`JQm`#VX`#d-`5mF46(m[HRa![`B"-Y`!mB
!#[43$L(`!#-`$bpJ!r2`!bc`!%NJN6D`R)!l"'-3$+H3!*'-+DV,d45J1S+JDM2
GN!!8#D%c3&2(3R2("m#qkC!!!%i38@TP6-m(6fH8B@l3!T(QVIU*D@f(HKi9EPp
9`r$%8Hjd6"6X6AU8R,Q85MDQFi!XK-AkV(m86"UU@Ar%L[Md",S)RSK-9*Q@L5)
eHbM-`-XhVp994da`0%N6"%cM0$+93c[8b6*9Ap6PS'#8EY2k4`"mKk!-!MBhRdE
cVklPaUle#U@3!!!SH"[`G8`'&J-bJ!0,B&Tfpk$20+b9PXLP&8a*-!928'J9YXU
AjP(*URSfTdb89QEEPQ%5kU+j@'VLLPjMi-kBpRNHY8QpV%@rl&(#bSGj-)3N!!0
"!-eq+Xeq5Jl92)[EjPE99A[M9JE'5Fa-YhJ+l@U0(%m**m5Cp!5Up%cb9UFha+C
Z*mMc*NPSN!#D"9G'fXV1&PB%H0"%llD+SXR+q%4I(1eK+R9UB@C$eG9af&aJD*!
!59B!KMN`!jQ%JThj"Qc`8#0A""Q9DVF"L8ZB5BlmEAM!8Q1%BhFQ--R##3CM&Uc
`UDiea`"!"6F6!$Ka!!"JeeX3!1N!(U!!!),3ei`3#J"J#3&4!#8"!i+Y#4Va$r6
3%4U3!""pM3N'd44fMGGk$4)8`"``J!)!B!-")!X"!!ppR3PpI3Q!,GL%E3#'R4!
#J0J!S0JEi4`!%!@3!!d!Q-!F'-$C($!G#V$8mA9)$6$DLEhBlY!4Y!d!NDd#',#
hDNGRqJ8#IGa%Fc$DTBhDKAhB`id!$G%4E&$EY`d!%V!#mI!"'j!!D"Qe8EK%"Fe
pFFqeQRj%"p30!*GJecJK!#!!!$iJ-rJG!0R3eihJhhdp#)ha!cF$%Ke"ahLFi(8
FUU!D"38ZacE$#!SqiAB0a`Bqaa41iH$0'UkK!`QJ6S,8RV`4-a*!1#d3!,P`i3#
`!3%`$LfHiACXea*pA!C4QH$a$i4p!9,`Q5+qS)%dTiQ-2DkU(2NS!21`irEQiqC
QcQ%kM@IBEA3!8Nfe4,$"c"+'5`he8"Sf86Ep4fE30%q%`'P&[Z4EBcIQVl'"j(-
dHeqqSKmPB@PDjLaejXrdBp-S4adRbA*%6DN@HcFN49p&66[Y8""&"j-@6cqN8ik
mAFCSdq6*8'DZFmp8L$fejR8NJf23K(0q5)$e@%HF"l2A6Em*Qa&ARHHX86C@4`Q
(C8BfC-&%6D`fkLI3T-N)D(!Dclpf@MhkSc'BbUT'4M%D5(18TC%NJHHeTJjf[4B
9TEFH"VCCR+6i"XJj5J*+S,&TkQ,q98A+SVVZSd"DL&+`SVmf"mLZ5Q!GRmjF"TQ
NEr-f4Me)@NE@'M1!!e*pcS%NDf4!Dl+qSb2p4abp9X68UcM%6HC&T%DkG1A*-#e
G'd1)!QAJ!QIJ!TP8"91!@M#3!%N(UUZ)*&TF"J*(F%TlMPSbN!"*@68',R"2Ml4
H)"$Z)CqIV)b*dKM2Z`kNe#@ZD!9RqJU0jCid50D$$Jra%Jm#dN!%GZ"(BE!'MGG
3Te8$-!!$pe3HVC8pY49E%%"E3""E4N"E64"E9TGFVK"EY*!!@b2!@i#DQD)k!@V
q8d'3!$4#81MjP!ELG%*%P)m"B!qGHD1J'8JZ[jpCl[CFRR(QaH`UV+`4M-6+kD6
"DHUlpeaB*PePP1fjcU2HhZ[Y$Z`h2Ha[S+A'6Zk40%[,"qh(ZD@BA1e2q[KrC[$
F,[Qm,JGdK8ab"%HVhNp2j1U"92K9H2Leh[GE$[IU,XLR#DGceS2Fep+VQ[15499
AAIV'Ihb1[p&Af+pIG9ShEI[8M[M,4rU*Ak,8Y[*(JdZA&dK+"QA3ee&eARa0!!9
A8!dHa8p8N!!(((9LAUjPLajAmXP$S"b-`Fjlb#m'TDq0VY8$i@J)*)Y9%)jL3E,
)"q(S(p#@'""EEJ!mNNHd*4$%PN0!@mT"E&N(am@)5,feC'8+cD&4Iia2pMfAha$
PhK8)B!*rV,$-(QZbb@T$Z1&#Q!B614JkSQfk#IAc)Xa2Vf353d0S90-C)#P-a+2
)(P8A5*!!QXUa*0j2S"5@)pKMbJLXbhkG4D#C%B*L5F460%*44bU("ESb`'UZRIB
$+VH'hcN8Tc*+8JPL'6Ud#)bF*`j9'aCI$T`L4XECAC03P&pqb"95+p-'Rq`iSfC
Ne&XBF@kk*VU9N4&`!m53!!G%-b#`#35D(N+Q2*J4,#K@+*k)'&HNFU4)YMSM20"
SJ-"(L!6r#)Yj!pY*N8!dYqDR,%$D+c4)!jHd23e$"ALIi*Kl'M#h))+l9qPq5QJ
UCl3Q$+6#2k,P*!V[!hbrEr"TQL0fqea6VI1#,X800MiY%dm@hacCC1)*mTf4EVI
kM&r2Fh4I"I0T[LA$qC*GD3&pdNld86X4CHe+ABPkFfIRhKNTD[MY(NQh%Ac0CFE
`'11cm`5*9dZ#jk@&[5pFPIQSP6RX,+I1ZF3q["*QD*m6`5G'i0B!2`lc"DC!9TN
#pG$)9+1%8`ql@KXk*5$`$(`6-D"VANkadfMcMrFJ2Q4B4Mj,aMNMml!K2X4kf)E
m5P*"*K-aN!"Sa$I!%3f+4pa5)*'Nq4abU2`q#clTBk`Q*DS6L0Mj*!Sbq5BD,*L
3!%5kid@Ud6j--5+`eAQBrP+)qSJPF4UcCpX4QL(dC%6-%TaNVqD9H"K6T!1B`cE
b8eH2r'3pDN%-`T%bS#eJ),B)Pq6b#@*,+D!Y[5#f(!2DXSl5cch),3q!YfbY2'2
A308#1(pA!!6N+A*A5H3H2SU&CJp8P3cbB`&84Q`JHNC[$C`@dF,dB-$)!%(NTiL
!4TUK%95'!j)#-5-%J6I,b-bB"Qai!P1J#$#0ccJC5D0%8idT`f-)J34%@9)MqFN
"V2'8r"%G)&SF)KdJLXN1"H`4PMG'L&%E3)kU4*eN'XcS6M3M%8J"Rh%d'J[JD"Q
&)`JJMXpP*4C&jGJ'Q1-`1Lr2FHFP!Ek55DMMdIXXf"&lU-B0`"V[$h5N!q642-C
(`k%D6eb+``N*S38!!&%!!2K"LhYa-3k2!3$rU1)f!)a6F"eK)jL!!3!2VN0ff!l
Gi6Z%"dZ!)Eh$%,Ka1@lIl6MKF`lKNa`)4N(%13`j"ZGD@S'ei9FmT-jp3ZcNVN!
!56%TZLBllEcbpqL-)A!LLIH[PrbASSB2YiX%JP2iUVSJ&[1(rN!Jqh0r8-B&a,m
T%K+C@Ie,'X!S5IA)I8F5[`pDSaCUMIb)!P+B@e3"#Z+5rh#[r*!!kK)%#e3hLA)
IBTXXQ54CjfCH*,b+Gk$6I4%C8!-%NC`-0X63qkfFhTINQSY"iC-'$+1P!Be'rIi
)3C&ZX)Ef6"%lbIUUcEk5P,"NT1&*2INQ38S,q*0q51$&U%'CD@k2`-Nd#+IjR,Y
0ZBPU3i3D0@kJ0R#c,`3ULBfa36BUTrCX2a4N+eY2VT`Zl)Rd0*eZjDcL)#CN2FJ
QqX5Frh+0QND9m9m`E0qN)Tq'58T,cmP3C,$8F$4UL5PYR6!8*8[MPa395eP'TQ8
pqj@CdJmj)9(L4BT2Y&*i0389EFYkTP+)b6Y$*h$5SH3"kDCm,-UVh(1e`9`5Y(V
T4`*DE!J#&d@$$F`l8M$pN!!+E*2Zd[GpbReT6!BPPCTm!kDEQ+D*15H(*6PVH',
Z2rfDpf@'d&!$-h5X4&fL'8U'+H900mN`iD5A!$aM"QeBhkrJ4Z()YN4'UM-+MNT
*!3'6#2mJ'Ai9,Y@)i%QBh**J[V1T!UE8b"KB!re1dmK-4*,YJJQk[*M9F2RF3PF
MLakGH8%S'@E8q*+QpP,ZQBCK-r0bNlK-%0!X"BT(85P)TkYd6D$b0IG0-!SM6(2
E+-dRid8@hk-X)cGa8-j0A)94I)Kp)@K@49UQ6GV3GM5Gd@#C9a1KJ%[1SNE'C6j
*H'IQFC)dLjQK9T5@BTGZ-P5QQZ,M1,0+20QEQFBUFKFpq5STCB%UR5`6GAT*ee)
!`T%$)*2*"@HT6-hj4rEQYUNZQE-eU5BaJ&kd#Sak8eJbR[4+C#1YDZEf5`)pFRN
@-aG8-mAQ,cQD8B5#U6#+DIaJjqPNQ*HQlBJ5[Y)UPicNV!2%XiFBce(Lb(46E2#
CUDaZ8LQBL$k,Tc5TFdCQ5Z'jhKG-r)JNS53'4ASf6dAN8Ei6&q'EqM,3ZEkT16f
Ic4(U)ldU&-dFQI09EP(q3jVd%R`@&59'j'$9M+-@&q$R"*d4+Ca-*)Sd(#[bJkB
(&hNTabH-QT%e66Z9P&15)k(-MPb5@l,K!"hPPbAT`*!!l(kKV15![b-jrLJBMl3
06A,p,C(fprkN*2*C3cUaM$3cqpG$,kJ)lArP)IciU4N3MM)$Q!a(Bh*R5MeYF#C
eD0!"NJ5&TRJ8b)G'2#@S0)R2LP8Qd%iC*lNRR83XP$))H4J)bJXTCLZ#SR*dQhb
9@FNa29R(+C6S-T2Sb%M#LI5A5V%e$)1C0"*bf5d4LZS--+hbLb$2!Q9cZ%K+@j1
&L*!!JXV)1Fb#jaICQ-HN"CJQpN3$#j4+qCLIc-JNY-)c"eT1)-QHF!T86Timj$&
$'P0aC!hYiQNlKQP4J#N-k(JPVa#P&9Ye-LrS,(9@1Db5d"dVk8PKe%d",mD[Nkk
8ihR*lN`E+h+`!!9Tddpk4MBT3[NiBDDN@-aJmQ4XM8XK!j%%Ai@Ch8"9a+'kM&+
!%%C9c8$56[rBZP00"F99)K0*"Sbqb0qFRQ5N%)e6ETT,bm!Nb6&X&%i@8UaL,le
)`%XePc42CY*r18C5LJEGPEI8Mq#rQlC3kjc[P%%[4iT`6Pq('%-J%if58r,K8G+
0ikafU5&P+"lP4Y*36#C)f@RKR$L8&!Xm!3Ld`X`)-$UDm$30b&-MXa[`e34p4KH
8S!f8*U,"LXm39(*3&BBLd*iD5-L9UC+#6@j+S9-MSe8G#j*+'MR(Jm88cB)d[QT
X3'SeMF$m0V*T"DbDMbSM9Q#U"C*-H+VQ`+,*I#$!d@5D4ESS`q*HE@HCMf['KS3
)L6"1UINrpb9AZD&pXaLIQaZC2Dm5SI!58L4U-%qN3@NTb2-`KkNMpHBLc3J!PUS
d#!$FJK-SJ!!BHkV9r*`-!C!!#R"RHV"`(J("*FMGkM0N4S(,V3pbYdC)!2!'++5
&e!lF`81#50rD$95FEJfZ[IA%09H2i#"jUhAG'8'"!C!!KJ#JA3Y#Ge8+D`fm*3X
D80&8S&)E*%c0UGP9&T9A,fFCiDXJ)0(i98B6@%2*cI46"D1eLPGU)31UQ4p%!i$
3S!K#%%!)$5&I6B5,X1"d-("'"Im1"r@Yr#!e(,J!B!kZJSA0V3pZ`YSX%b!!6-#
&rE"G3!9`JK'`&a5E#1J)k!%!G!%@3!T)E!"!""0"&4J%dN!DZ%!r`!!Z&JZF"aN
l-$!!!,#aZ-$&`J!!)!*iV%H`XBL!a1)!2%"NU3*h6E%"B!*-!1m+CE[VNk@bJB%
"#))XZf8,aTDpXQ$@bMk!Sh"P$i#@E3##i-`bKbYE--E$PDfGJ`$0@YRZ5LcN,*B
0!!YJ!@"C![#0'X!JZ,2GG3"m)d@&CI0BQZfcFhDlLPNbfed,aTqpXUa0bf*CV*!
!D!'YSVfdPME63PSXkfJj,30iY)hfdhVD3T!!A6&Y!"Lc"3(9AYRC)JJD!#'3!,4
K&Y-+J!CJ#$bYQkfdElE2[PT6@fQa3TiY#,m@cqTCB3YXKff`2EE'0YN@fk#JDP9
YU&fcJIBE88!X+fJC`+ZeYCV@fC+'@IYP3bfT,E1IpKZe@Pa,EUXXVm@d(cEGUYY
ebflEVEYpYr!fhXVEH3Y[E5`4#!&1!5HFf,c!#MT#L18#B'$&kB2DJQ,MfSrp"h3
!hf)!Hh!H9S%F#lKFJ"mJJr[@!4###'J&1'(+3Y``J'-"3!H`!`#!!f$FJ6%(IL`
r)!BNYJ0i@!EJF$[#(c#j`)$LbJ!Lfh**`mX0X34J"3#!!N$BB%$0"3#,i-H'!5#
JFbf!-3!!2RI'bVH$L`C)E!'3!!iX9ik0JKm,"Z+'ak8#00FJq0LTDf0C30&PZ)L
JjIVBAD"L@3!(+,T6`4#XJQNa$95X$+!%*$B#B!-!S!9qlMIiXId!"cKGCG"`PHi
k8,%V!1@H"AA3G`(!8EJ(+PB&m!'R@p``!#[!#B0$)%4F@%"L$B"!L,S!i!S%!'"
KBi&!jC8!!S!A50M"N3C-,MiJX3M!'44H'"!!kJ$JK3DS9aX%!%G3F`0!+A#l)rB
j8!6-U`3#3#c!Zcb!a#S!1L!!D-$S$3$l31M5!",,!&""iC8"f0A'%J,Q5`X#J#%
B[3)J"j4G!%"L(B!1+,`,3!!8JF3,GkH$%3!!$QM'TJLmQhXG!#FS[%"!!(#"a$Y
pT`-U%!!N!2Zqhbk`!T!!!BQ&!-bJlki&!H"mq5miZ'm"!#KBJ*BE!l!#r`8'1MH
dYBA4#`"L3!$J![m!%*!!@!R`I6'[MZd"!5$%BS%0E!3%J$1J`*8J",-!6%"L+i"
C`,bN)45%B"A!JJ&!"EK[Q2FSY))3[!,i33YQ!3!!"$cHJF%,,R!r)!-YQ!N8AK)
!!*!!`381!dLJ"HYBG2"cfB%44J"10eLdh)5!$ji`&+#iNL$VRJ8!d)9A,!E3Z33
J$,Z"fJX",M!rB!FNPJ$8@XaE%$M!$!B#pbd&S!1D#hN$J"ffX5!!$@0G'E!+qM!
+i-(d)!i,"#G3HfQ!%Dl"!f!2Hi$D#`4i-$NJX4HJeNlL'GXI9$!S`-5N!2c8ALc
!JlN"*KB')EIfNJ%M6!!`F8C3!V8A$XcJ6h`@1"X5U,em`!K$!"+,!H!!!)$&R"J
4''%fS(-,`$EL!E@A%XaJ4R$IDLF!B-4*)3#!!KAmK3'!#QJ+)U$f6Z-9'hahVMK
B`J'!&4KK"N"L-d$3UVh3`!h$!a+V!8iXjL8"!B!Em1$6#`!d3*r3"68A*r"JG-#
1pr!l,KJK@!BNfAVFf26"fMd2VFd0mq-99p``,`m3!$a!"9-"R3X"X)&"f-)#!!m
mB3T`hfk!$4$$QN%MVeM2kh'"3H(9$)6!#01"P%X,"2"*J!3UQ!Z3!&J9!)5048)
i#S("aX+!P)Xa4-!3*Jd23!"d!4R!#&)Z@m#m3-&"FS%`J!*5VMmB!$U!![m"SF`
#)!'*$3%ii#3$AINE"NM!95B#SKMbbMHU6!'ZXKJS[%kJr&"P!JX!3S!E%!"8J!,
(!k'X![3ZpdA&Q(I)pJ1Uc!T)l!K`"J&!%Y6H&L"rrm(L"3!P)1$#i!#3!!1Sm[*
&c0d0""6Lma!!LS"36J&`'$%cJX+E"3*!&1$+GVN%B!)"B!k1VbS3bLZ!&j!!@"4
!%"Dc,H$+@"J!S!"&3$-Qmq#`@6Df,m[Q[ND(!i!cS-Xdi,i0J+-V!S+!39J![TN
Z8`(K,!Z1Jh%q&[b0+YGI&'#5#mea$J$NJ#UcJ09m'4M!FdE1li!U0fACc!l!fhF
1!2T!r[)$f#ZEr8()rFi#S!"3C56mTakEGcl1!J!#8'983'*6J)HP!2$C3DlB`kb
"!!!4J-mFGLR[j$p&%!idISi"A*NYT`"8E!,Jmd2Q[pL!a!i!6q#FNi)!1!*8'3&
dC"flErp"*2M39*RbMJ8p3"T[mNH)Z04J*LYKRbb@(m!!L,Mmf4UlJF+E!9EF!&L
a'YJDXfKL3)'0liTP!L4f"H3hc"X'`X+0lJG)'J#X!#8J!)!""3i&2jS&J!%5k`+
D!ZEY!3#J&@4T1-#P,8!!d!88@"dmDG8-!&i!aXM,!-!Hh'KqN!#Kfl3mpJ+eGd+
Zf)%F!cT`lC8"@EVmaS$cQi-$J!qBdf`k"J!''NfCQm#0$J2G1!Bm"XbV!3*!&XM
5Z6F'!!)!!!f1lac)dJYD"N#"`KZ4rd#@EVVLL!YJjpUl#qBd-b#a0'!UB&ia%!#
13CBZbJ#!"M!"!H!0$*aQ5!'2HM[,jRi,J`9!$AM8(-$&XZKL(33H04E3Z30J2'J
!fb`!(295*XH"J4c3ABamUIN[0HM)c6NEUpp,E@2j!,61EdEJ)'Z'-M#R6I&BB!Z
`1&J)J$M`U,R[AZ!"!!!CUpmqN!#P'B$1a3#k!1PLj%6`T!&"4ii+qaBVN!"@ma!
!X'j#3!J&SGDbYS43!)lZ`di)%Q$Q*S50!!!Z!%(Bf!NK!c$KiT!!%$T!!,lBXKN
A$&GV(2@H3d+i!3XE2Gb!28bb$65qGJ9c3"m!IA-!!!:
---