Oops... I Inadvertently lost their cvs files...

This commit is contained in:
Jack Jansen 1996-03-18 14:21:15 +00:00
parent 0f7af3f795
commit bb653772f5
4 changed files with 908 additions and 0 deletions

View File

@ -0,0 +1,219 @@
"""AEservertest - Test AppleEvent server interface
(adapted from Guido's 'echo' program).
Build an applet from this source, and include the aete resource that you
want to test. Use the AEservertest script to try things.
"""
import addpack
addpack.addpack('Tools')
addpack.addpack('bgen')
addpack.addpack('ae')
addpack.addpack('evt')
#addpack.addpack('menu')
addpack.addpack('win')
import sys
sys.stdout = sys.stderr
import traceback
import MacOS
import AE
from AppleEvents import *
import Evt
from Events import *
import Menu
import Dlg
import Win
from Windows import *
import Qd
import macfs
import aetools
import EasyDialogs
kHighLevelEvent = 23 # Not defined anywhere for Python yet?
Quit='Quit'
def mymessage(str):
err = AE.AEInteractWithUser(kAEDefaultTimeout)
if err:
print str
EasyDialogs.Message(str)
def myaskstring(str, default=''):
err = AE.AEInteractWithUser(kAEDefaultTimeout)
if err:
return default
return EasyDialogs.AskString(str, default)
def main():
echo = EchoServer()
yield = MacOS.EnableAppswitch(-1) # Disable Python's own "event handling"
try:
try:
echo.mainloop(everyEvent, 0)
except Quit:
pass
finally:
MacOS.EnableAppswitch(yield) # Let Python have a go at events
echo.close()
class EchoServer:
suites = ['aevt', 'core', 'reqd']
def __init__(self):
self.active = 0
#
# Install the handlers
#
for suite in self.suites:
AE.AEInstallEventHandler(suite, typeWildCard, self.aehandler)
print (suite, typeWildCard, self.aehandler)
self.active = 1
#
# Setup the apple menu and file/quit
#
self.appleid = 1
self.fileid = 2
Menu.ClearMenuBar()
self.applemenu = applemenu = Menu.NewMenu(self.appleid, "\024")
applemenu.AppendMenu("All about echo...;(-")
applemenu.AppendResMenu('DRVR')
applemenu.InsertMenu(0)
self.filemenu = Menu.NewMenu(self.fileid, 'File')
self.filemenu.AppendMenu("Quit/Q")
self.filemenu.InsertMenu(0)
Menu.DrawMenuBar()
#
# Set interaction allowed (for the return values)
#
AE.AESetInteractionAllowed(kAEInteractWithAll)
def __del__(self):
self.close()
def close(self):
if self.active:
self.active = 0
for suite in self.suites:
AE.AERemoveEventHandler(suite, typeWildCard)
def mainloop(self, mask = everyEvent, timeout = 60*60):
while 1:
self.dooneevent(mask, timeout)
def dooneevent(self, mask = everyEvent, timeout = 60*60):
got, event = Evt.WaitNextEvent(mask, timeout)
if got:
self.lowlevelhandler(event)
def lowlevelhandler(self, event):
what, message, when, where, modifiers = event
h, v = where
if what == kHighLevelEvent:
msg = "High Level Event: %s %s" % \
(`code(message)`, `code(h | (v<<16))`)
self.handled_by_us = 0
try:
AE.AEProcessAppleEvent(event)
except AE.Error, err:
mymessage(msg + "\015AEProcessAppleEvent error: %s" % str(err))
traceback.print_exc()
else:
if self.handled_by_us == 0:
print msg, "Handled by AE, somehow"
else:
print msg, 'Handled by us.'
elif what == keyDown:
c = chr(message & charCodeMask)
if modifiers & cmdKey:
if c == '.':
raise KeyboardInterrupt, "Command-period"
else:
self.menuhit(Menu.MenuKey(message&charCodeMask))
##MacOS.HandleEvent(event)
elif what == mouseDown:
partcode, window = Win.FindWindow(where)
if partcode == inMenuBar:
result = Menu.MenuSelect(where)
self.menuhit(result)
elif what <> autoKey:
print "Event:", (eventname(what), message, when, (h, v), modifiers)
## MacOS.HandleEvent(event)
def menuhit(self, result):
id = (result>>16) & 0xffff # Hi word
item = result & 0xffff # Lo word
if id == self.appleid:
if item == 1:
mymessage("Echo -- echo AppleEvents")
elif item > 1:
name = self.applemenu.GetItem(item)
Qd.OpenDeskAcc(name)
elif id == self.fileid:
if item == 1:
raise Quit
def aehandler(self, request, reply):
print "Apple Event!"
self.handled_by_us = 1
parameters, attributes = aetools.unpackevent(request)
print "class =", `attributes['evcl'].type`,
print "id =", `attributes['evid'].type`
print "Parameters:"
keys = parameters.keys()
keys.sort()
for key in keys:
print "%s: %.150s" % (`key`, `parameters[key]`)
print " :", str(parameters[key])
print "Attributes:"
keys = attributes.keys()
keys.sort()
for key in keys:
print "%s: %.150s" % (`key`, `attributes[key]`)
parameters['----'] = self.askreplyvalue()
aetools.packevent(reply, parameters)
def askreplyvalue(self):
while 1:
str = myaskstring('Reply value to send (python-style)', 'None')
try:
rv = eval(str)
break
except:
pass
return rv
_eventnames = {
keyDown: 'keyDown',
autoKey: 'autoKey',
mouseDown: 'mouseDown',
mouseUp: 'mouseUp',
updateEvt: 'updateEvt',
diskEvt: 'diskEvt',
activateEvt: 'activateEvt',
osEvt: 'osEvt',
}
def eventname(what):
if _eventnames.has_key(what): return _eventnames[what]
else: return `what`
def code(x):
"Convert a long int to the 4-character code it really is"
s = ''
for i in range(4):
x, c = divmod(x, 256)
s = chr(c) + s
return s
if __name__ == '__main__':
main()

View File

@ -0,0 +1,514 @@
(This file must be converted with BinHex 4.0)
:%8&&Ff9bGQ9bG'9cG#jbFh*M!(*cFQ058d9%!3#3"f2$GSF!N!3"!!!!BVS!!''
k!!!"#6B8)&3JD!!8)&"p%E"S%3!k!@FQ%Lm-6VS#$!`k!&Tj%8&&Ff9bGQ9bG'9
cG#jbFh*M!J!!!$q3#!#3"$q3#!#3'+a8lVX!N!CM`rm4`+KT!4e!%Irc%h!!%#l
rmlh5%@B386Dq9@X"!8*%[D'q9@X"!6"4-J&R(N39$!!!('85F!!3,N-9$!!!(f)
'F!&J!!%"!LaD9#dZ4,d"!"Xm!@B`*e8q'NU!)&-#+!#r!#iL!1d*!J%!3)-Sfc3
6UGF[$%kk!3P+CfX"!+CA3cS!!!%!N")#!!!!!`!!!Irq!!($!J!#)J)!""!#!!J
J!L!33#FJ)-!R)((J!L"l-%q!4KK2N!"!$%q3!#!%(p!3""r!#!`I`!`B0@!H-$9
J1@!ri$(!!J!6J!)!$`!#!!3!!J!%!3)!"!-#!!IrrJ!!!`!!!!%!N"-#!!!!!`!
!!Irq!!($!J!$iJ)!"r!#!!rJ!L!I`#FJ2m!R)(rJ!L"rm%q!IrK2N!"rr%q3!$r
m(p!Ir"r!$r`I`!ri2q!Im$rJ2q!ri$r!!J!IJ!)!$`!#!!3!!J!%!3)!"!-#!!I
rrJ!!!`!!!!%!N!8+81!!2S!!!"p!!*!%"d&38%`!N!BF8&P8C`!!!!&'8N9'!*!
&J%P$6L-!N!3",!!!!%!)J#P!!L!%%#i)0!3Z!Qi"2`)I"#U)2j!!!L!"3!#!!!!
)J#R!!q!(m#ri2r`rrRrr2riIr$ri2r!$i!(!!)!!N!3%!*#2r`#3(rrr!*!Arj!
3!*!3rrrr!*!%rrm!N!Er!*!2r`!!prm!!!$r!*!(r`#3$[m!!#SUprm!N!Vr!*!
0r`!!+LVhr`#3#rm!!!#`!*!)r`!!+LVhr`#3#,!!!,#`X!!!X!#3"rm!!#SUprr
r!*!)X!!!X,#`!!#`!*!'rrrr!#VhrrVkr`#3#l!!!!#`!*!'rrVkrbVrqLSUq[m
!N!@`!!#`N!8!N!MrprFUrrSUN!6kr`#3",!!!,#3"3!!X!#3"Irf!#U3"J!Uq[m
!!!#`!!#`N!8!!,!!N!Er!!!UN!3!+J!Ur`#3"E#3"`#`!*!(r`!!+LS!+J!U+[m
!N!@`N!F!N!Vr!!!!+J!U+[Vr!*!&X*!(!*!+rrm!!!!U+[Vr!*!&X,!&X!@`"E#
`!*!)rrVkr`!U+[Vr!*!'X,!&X!@`"E#`!*!(rrVk+LVr+[Vr!*!(X*!*!*!(rrS
U+J$rq[m!N!cr!*!-r`!!q[rr!*!0r`#3$Iq3"!#3$[m!N!lr!*!3r`#3$[m!N!R
r!*!'r`#3$[m!N!Mrr`#3"[m!N!lrN")!N"Irr`#3(rm!N")#!*")m!#3$rm!N!X
2rj!(m!#3"`rr!!$r!!!!m!#3"r!-m!$`!!!!m!#3"Jm!c-m!N!A`!*!'m!c-m!#
3"I!!8!!!!!m!c-m!N!43"98!8!!!!2!-c2m!N!43"98!8!!!$rm-cph`!*!&8!"
3!!!2hIcpc0m!!!8!9993!!!!$mc2h-c0m!!&!&998!8!!!r!c-c-$0m!"3"999!
&!!!!m!c-`-$2!!!&9999"3!!!!m!c!`-c`!!"99993#3"I!!`-cI!!!&9999!*!
&r`!-cI!!!&89&493!!!!$ph`c0m!!!"9&4898!!!!2hFcmh`!!!!9C!%8!!!!2h
-$pm!N!E`!*!&$`$Im!#3"[!!N!Err`#3"r!!N!B2!*!)m!#3"Jm!N!32!!!!m!#
3"Jm!N!6r!!!!m!#3"JrrN!M`!*!,r`#3$`m!N!S"!*!&r`!!!2m!N!Rr!2m!!2m
!r`#3$2m!+`$r!*!+r`!V+bX!r`#3"[m!X,#`+j!%!2m!N!Arr`#`qINVN!3!r`#
3"2m!X,#`+j!'!2m!!2rr+l#`X2NVN!Ir!!$rX*!&q5Z3"2Rr!*!%X*!&q5XV+rR
r!*!%X!@`"E!&X2NVqIm!N!@`N!IjqIm!N!VrqIRjr`#3$2rjr`#3$[m!N"U!!!$
`!2!!N!6`m!m2!*!'m-$`!*!%$`c-$`!!!2"9A-c!m!!!r`AGc-`2!!$`99c-c-$
`$ra9AFc-c-m!p999h-c0m!!&99AFc0m!!&&489h0m!!!9999AGm!N!AphI!!N!8
2h`#3"r!!N!eBS!#3!!#3"3-18Q9aG@PbC@3J8h9TG'8V9'9bEA-JG'KKG#"PGQ9
bH5"KF("XD@0KG'P[EL"cD'peE'3JFh9`F'pbG!"bCA&N!!%!!3!%"'p`C@iF6h"
PEL"dD'8JFh"PBfPQD@9N)'pLDQ9MG#Kc+@&PGR4[C'pMER9XE!!!J!"KE'Pc&fa
TFh3JEfBJEf*UC@0dFb"dEb"[F'9Z8!!!!!9`FQPZG"e3FQPZG#"dD'8JFh"PBfP
QD@9N)'pLDQ9MG#Kc+@&PGR4`C'pMER9XE!!!J!"KE'Pc''aTFh3JEfBJEf*UC@0
dFb"dEb"`FQPZG!"!!!!""@PdC@ecCR0PE'aTFh4T4%mJ6Np8)&9646SJF(*[GQP
NC@3JCQpb)'*KBfYhBA*NFb"MEfe`BA4TBQPXDA4j)(GTG'JJEfaN)'9fC@jd)(0
eDA4P,L!J9fPXE#"LC5"bC@e[GQ9N)'PZ)'CeG(9bC5"'D@jNCA*cJ!!%FA9TG#T
4G@Pd)(4SC5"'D@jNCA)J+'4TFQ9MG#"`BA*KE@9dCA)JD@GZEh*PC#PKCACdFA9
TG'jeE'`!!)!!ER9XE"aZEb"NDA*PBh3JF'&bB@ePG'9b)(*PFA9TFQ9N!*!!!!!
!!h*eEM"6C@jd)(4[)'&Z)'&`F'aTBf&dD@pZ)(GSC@iJDA3JDA-JC'peBQaP,@0
XD@0VC@3!B@9fG'pKF("ZG@aX!!#!!'jeE'`FEQmJC'PbC@0d)("KFQ&YCA4PFL"
bCA&eDA*PC!#3!!#3#3j6G'&ZC'&bC#"6G@PdC5*$EfeYEfiJG'9bEA-JCQpb)'e
[Fh3JBA"`E'PMBA4TEfjcBfpbC3!"!!%!%3TME'&cFb"TEQC[*8GPG#"TEQC[FQe
KG'P[EL"KBQpeG#"KEL"[BQTPBh3JBfaKFh-!BfpbCA&[BQTRBfaT1'%JFQ9MEh*
N)'0[ER4KD@jTEQFJG'KP)'pLDQ9MG09c)("bEh"PFR4TCA-JB@jN)'9XC@ePER4
c!!!!G(P`C69dD'8JEf*UC@0d)'0XBA0c)'&LEh9d)(GSD@0S)'PZCQpbE@&dD@p
Z)'Pc)(*PFA9PFh4PC)!!!!%#D@i!Gh*MC'PZG'a$G'KP)'KeE@&Z)'aKEQGeB@G
P)'&ZC#"cBh*TF(3JFhPcG'9Y)'PZ)(GSD@0S)(4[)(*PG(9bEL"TEQC[FQeKG'P
[ES!!"@0XEh0P$d0XEh0P)'&Z)'pLDQ9MG'0[FQ9ME'pcER9XE!!!J!"[BQSJ%h4
SC5"[BQTPBh3JG'mJBfa[Ff83!!!#"R0KGQPZC`"cBAC[Ff&fEcKcF'9MD@CTCA-
JGfKPG'KPFL"MD'&ZCf9c)(0SEh9XC#"LC5"cBACPC#"LC@C[FQ8JBfa[FfPZC`#
J!!PcBACTEQFJD@jVCQPXB@aTFb4dD'8JCQPXC5"TEL"hD'PMD#"dEb"cBACP)(4
SC5"[BQTPBh3!J!!&BfpeER4%8Q9dGA*Z)(4SC5"ZG@eLCA)JEfBJC@aPE@9ZG(-
JEfBJB5"`BA*dD@0eE'&b)'0XBA0c)(GTG'KTEL"KEL"[BQTPBh3!BfpbC@0ZG'9
XEfjR&R4SC5"ZG@eLCA)JEfBJC@aPE@9ZG(-!!!"[BQSJ+h4SC5"[BQTPBh3JGfK
[Ff8JC@aPE@9ZG(-JBA*P)(4[)'*P)'0[G@jdC@3!!!!""'9KBfJ!DfpME(4jF'8
RG'KP)'0XBA0c)'pQ)(4SC5"PE'9YC@jdFb"dEb"LC5"MEh9ZG'9N!!!*C'&dB5"
cDATP*9*PG(9bEL"dD'8JFfPkC5"TEL"LHA4PFb"[CL"KEL"[BQTPBh4MEh*PC(0
THQa[EQFIG'KP)(0THQ8JEfBJG'KP)'pLDQ9MG#"TEL"LHA4PF`!!Ef*U)#adD'8
JEf*UC@0d)(GSEh0P)'4KG'%JFfPkC5"TFb"dEb"LC5"bCA4eFQjPC!#3"!%#BA-
!FR4jF(4jF'8ZG'KP)'4KG'%JG(P`C5"QEh)JGfKTBfJJG'KP)(0THQ8JDA-JBf&
XBh9XBA4PC!#!!!CNC@aPG'8J4'9XCA4P)'&Z)'9XC@ePER3JCR*[E5"KEL"[BQT
PBh4MEh*PC'9XEfjeE'`!!)!!Ef*U)"9dD'8JC@aPE@9ZG#"dEb"NC@aPG'83!!!
!#@4eF'aTBf&dC40%GA"XD@0KG'8JEf*UC@0d+(-TBfpbC@0XEfj[BQSJ'h4[)(4
SC5"NGA"XD@0KG'9N)'pLDQ9MG#Kc+3!!Ef*U)"TdD'8JEf*UC@0d+(-T)(4[)'4
eF'aTBf&dC3!3!!!%!R4[!'PZFfKTER0X)R4SC5"ZCAFJE'pMBA4TEfiJCQpb)(4
SC5"[BQTPBh3SFbN!J!!*FQ9`E'&MD@jRB@abF'*[EfaZ8h"PBfPQD@9c)(GSCA4
SCA)JEh)JEQpd)(4[)(*PF'aKBf8JDA4PEA-JD@iJG'KP)'4PFh4TEQ&dD@pZ)(4
SBA3JD'&fC5"dD'8JFf&YC5"ZB@eP)'&c)'PdC@ec)'*PD@jR)'4eF'aTBf&dC@3
!S!!0F'pcDA4TEfjPC#"KG'efF'aXDA0d88GTGQ9c)'%JE'PcG#!SD@iJE'pMB@`
JGfPZC'ph)'0[Eh*ND@jKG'9c+5"[CL"`Eh0TG'P[ER-JCQpb)(4SC5"NCA0dD@j
KG'P[EL"TG'9YFk!!"@PdC@ecCR0PE'aTFh4T4%mJ6Np8)&9646SJF(*[GQPNC@3
JCQpb)'*KBfYhBA*NFb"MEfe`BA4TBQPXDA4j)(GTG'JJEfaN)'9fC@jd)(0eDA4
P,L!J9fPXE#"LC5"bC@e[GQ9N)'PZ)'CeG(9bC5"'D@jNCA*cJ!!+CACPER3JD@j
QEc&(CA3JD@jQEh*YBA4TEfiJB@*[GA3JG'KP)%&`F'aP)'9fC@jdFb"TEL"K)(0
eDA4P!'0[FQ9RG'9TCACTEM0K)(*PBfpbC#"MEfjdB@PZD@jR)(4SC5"PGQ9ZG(-
JB@jN)(4SC@Pb)("KFQ&YCA4PFR0!!(4jF'9$G'KP)'9fC@jd)'0XBA0c)'pQ)(4
SC5""F("XC5"PGQ9ZG(-JCQpb)(GSD@0S)(4[)(*PG(9bEL"TEQC[FQeKG'P[EJ!
!!!%#D@i!Gh*MC'PZG'a$G'KP)'KeE@&Z)'aKEQGeB@GP)'&ZC#"cBh*TF(3JFhP
cG'9Y)'PZ)(GSD@0S)(4[)(*PG(9bEL"TEQC[FQeKG'P[ES!!"Q9iDA0dFaT@CA*
TCRNJD@BJB@iJEf*UC@0d)'9iDA0dFf0[FQ9NEf9iBQp[E"pdFR9P)'PQ)'Pd)'9
iDA0dFb`JCQ&XFf8JD@BJEQpd!!"[BQSJ&R4SC5"[BQTPBh3JD@iJFA9PFh4TEfi
!N!8$Cf9d'NGPG#"dD'8JC'&dB5"QEh)JB@iJEf*UC@0d!'0[FQ9RCA4N+T!%'(4
SC5"NBA4K)'CbEfdJG'KP)'pLDQ9MG!!!!'pLDL!RG'KP)'pLDQ9MG#"hD'pcC5"
NBA4K)'Pc)(4[)'*P)(*PG(9bEQ9N!!!!!3*KF`"bG(P`G(P`C6CdD'8JC'9cDA*
PC#"dHA"PFb"QEh)JG'KP)'4KG'%X)'PZ)'pbC'9b)'pQ)("bC@CPFQ9ZBf8!`!!
%E@&VC4*0B@YP)'%JEQ9h)'9XC@ePER4MEh*PBh*PE'pLDL!8G'mJG'KP)'jPGb"
[BQTPBh3SFbN!!!"ZG@aX!!#3!!!!"30ZCAGVEf0XG(P`C4adD'8JBfaKFh-JEfB
JG'KP)'jPGb"PE'9YC@jd!!!!!Q&d!'PZFfKTER0X+h4SC5"XEf0KG'P[EL"KG#"
hD'PMD#"dEb"TER0PFR3JG'KP)'9XC@ePER3!!!*dE`"dEb!JEf*U)%4hD'9Z)'0
bC@&dD@jR)'&Z)'&XD@&c)'CTE'8X)(4SC5"[FQPRD@jKE#"TG'9Y)(4[)'0bC@&
dC5"KEL"KE'PKFb"dE`#!!!PhDA4S)'4KG'&NBA4K+T!%)(4SC5"TEQPdD@&X)'4
KG'%JCQpb)(4SC5"PE'9YC@jd!)!!$hGTG'JJF(*[F'9bG'PPFh"bC(4bC@0[0(4
SC5"TEQPdD@&X)(CKE(9PFb"QEh)JG'KP)("bEh"PFR4TCA-JEfBJG'KP)'9XC@e
PER3!J!!%E@pfC5"0EhCP)'pLDQ9MG#Kc+5"dEb"K)'jPGb"XEf0KG'P[EQ0[FQ9
YEhCPEf*U)#YdEb"dD'8JEf*UC@0d+(-T)'&QG'9b)(4SCANJD'&fC5"LC@9Z)'e
[GQ9N!!"[BQSJ&A4SC5"[BQTPBh3SFbNJG'mJE@pfC4!!!!-#G'm!D@jcD'PZFf`
LG'KP)'jPGb"XEf0KG'P[EL"QEh)JG'KP)'pLDQ9MG#Kc+3!!!!PbCA"XB@0TEQG
KE(*`BQp[E'P6F'9MD@CTCA-JGfKPG'KPFL"[FL"ZEh3JG'mJFQ9`E'&MC5"TG'9
YFb"TEL"dD'8JC'9cG'PZBA4TEfiJG'KKG#"SBACP)(4SC5"cB@eP)'jKE@8JBA-
JDA4PEA-JBQ9TEQFJE@pfC@5J!!e`Eh0TG'P[EQ9N)'&dEAC`E'aTFh444fPfCA-
JB5"XDA0d)#KTEL"XEf0KE#"hD@jNEhFJBfp[FQ4TEQ&dCA-T)'pQ)("[FfPdD@p
ZFb"QEh)JG'KP)'4PFh4TEQ&dD@pZ)'PdC@ecS!!%Eh"PEKa2F'9Z)(4SC5"cF'9
MD@CTC@3JEf*UC@0d+(-TB@9fG'pNEf0ZG@aX!!#!!'pLDL!AE'PcG#"[CL"[BQT
PBh4c)(4[)'p`C@i3!!!#"A9cD@jRGA0TEQpLDL!XG'KP)'&`F'aTBf&dD@pZ)'C
TE'8JG'mJEh"PEL"dD'8JEf*UC@0d)(GTG'J!J!!&DA4PEA0QFf9XE'PcG'P%6b"
16e3J990&1L"`FQpfD@4PC#"QEh)JBQ&MDhGKFQ4c)'0[EA"KG'PLD@aTG(NJGfP
dD#"[E'3JCACPER3JFh9TG'8Z)#"AD@aX)'*P)(*PE@pfC@3JD@iJCR9dGA*P)%C
TEQ4PFR1!!!9`FQPZG"e3FQPZG#"dD'8JFh"PBfPQD@9N)'pLDQ9MG#Kc+@&PGR4
`C'pMER9XE!!!J!"[BQSJ''aTFh3JEfBJEf*UC@0dFb"dEb"`FQPZG!#3"!%&DA4
PEA0QFf9XE'PcG'P%6b"16e3J990&1L"`FQpfD@4PC#"QEh)JBQ&MDhGKFQ4c)'0
[EA"KG'PLD@aTG(NJGfPdD#"[E'3JCACPER3JFh9TG'8Z)#"AD@aX)'*P)(*PE@p
fC@3JD@iJCR9dGA*P)%CTEQ4PFR1!!!4aG@Pd+P&eDA3JG'KP)%CTEQ4PFL!SC'P
bC@0d)("KFQ&YCA4PFL"TCfj[FQ9N+@&PGR4aG@PdER9XE!!!J!"ZG@aX!!#3!!!
!!3CcBACTEQF!Ff&fEh0KGQp-Fh"PBfPQD@9c)(GSCA4SCA)JG'mJFf&fC5"MGA*
bC@jdE(NJEh"PEL"NEf0eE@9ZG(-J+'j[G#"cGA"`Eh*dC@3JBRNJ4QPZC'9b+3#
J!!4cBACP+&0KGQ8JB@iJEf*UC@0d)#K1Eh3JFh9`F'pbG'9N)'*j)%CTEQ4PFLP
MEh*PFf&fC@jeE'`!!)!!Ef*U)"*dD'8JEf*UC@0d)(4[)(0KGQ8!%!!!!J*TEJ"
VCQPXB@aTFcjdD'8JCQPXC5"TEL"hD'PMD#"dEb"cBACP)(4SC5"[BQTPBh3J+'j
[G#"cGA"`Eh*dC@3JBRNJ4QPZC'9b+3#!!!*KF`"QE(4`G(P`C9&dD'8JCQPXC5"
dHA"P)'pQ)(4SC5"NEf0eE@9ZG#"TEL"hD'PMD#"dEb"cBACP)(4SC5"NBA4K)#K
ZEh3JFh9`F'pbG'9N)'*j)%CTEQ4PFLQ!!!0cCA388f9d)'&Z)'pLDQ9MG#Gc)'4
KG'%!BfpbCA0PG'4ZG@aX!!#!!'pLDL!8G'KP)'pLDQ9MG#"dEb"MD'&ZCf8!%!!
!!3*dE`"NBA4K+T!%$A4SC5"ZCAFJGQ&XG@8!!!TcG@PdC5"TEQC[*%GPG#"TEQC
[FQeKG'P[EL"KBQpeG#"PGQ9ZG#"cG@PdC5Kc+@0[FQ9RG(0TFh9TEM&K)(*PBfp
bC#"MEfjdB@PZD@jR)(4SC5"cG@PdCA-JB@jN)(4SC@Pb)(CPFR0TEfjc3!"dHA"
P+A4SC5"cG@PdC5"QEh)JGfKTBfJJG'mJFQ9dGA*Z)'PZCQpbE@&dD@pZ!!!!!3*
TEJ"hFQ0ND@jdE%0dD'8JD(9YB@iJE'&ZCh9KCf8JB@jN)(0MFQP`G#"cHA0dC@d
JD@iJGfKTBfJJG'mJFQ9dGA*Z)'PZCQpbE@&dD@pZJ!#3"`a'D@jNCA)J8h9TG'8
K6f*UC@0dFb"KEQ3J4ACPER4c)'C[FL"dD'8J4QPZC'9b!'CZC()!!3!"!!d)Bfa
PB@iJGA!H3A*bB@jRC5"TG'9YFb"TEL"hD@jNEhFJEQPMC@ajCQjNFQCME(9ZG@a
X!!#!!'pLDL!@G'KP)(GTEQ4[Gb"dEb"ME'9KEL"eF!#3"!%#BRN!BRNJ)(4jF'8
UG'KP)'pbC'9b)'PZ)(GSD@0S)(4[)'0XC@&Z)(9`)(4SC5"[BQTPBh4c!)!!#'0
[EA"eG'9b)&4PFh3JBA4dFQPLGA4PFb"[CL"dD'Pc)'0[EA"eG'9bCQjNFQGcG'a
XEfjR&h4SC5"bCA0eE(3JEfBJG'KP)(&eCA*jJ!"dHA"P&A4SC5"KG(4bD@*eG'8
JG'mJG'9cG!!!!!%$D'&cD'&c)'a[EQFHG'9cG#"cF'9MD@CTBb"LDA4c)'pQ)(*
PFh"[ER0P!)!!"@9UC@0d889UC@0d)(4SC5"cF'9MD@CTC@3JC'PcDbKc+5`JEh)
JCACPFRNJC@TPBh4KBQaP)'4TFfXJD@BJEQmJF'&bB@ePG'9b)'Pc)(0`C@0TCQP
PC'CZC(*PDQ0dER9XE!!!J!"[BQSJ%R4SC5"TG'9YFb"dEb"PDQ9MG!#!!!!!"@9
YF(4j$d9YF(4j)(4SC5"dFQ&cD'CZC(*PEA"dER9XE!!!J!"[BQSJ-0*PEA"dHG-
JB@jN)0*PEA"dH5"dFQ&cD0-JBQpdD#"NEb"dD'8JFf&YC5"dD'PZC`#3!!!!!!9
PFQ&cC4Y&FQ&cC5"dD'8JFh"PBfPQD@9N)'4TFfXSFbPQEQ4bCQ9bB@jeE'`!!)!
!Ef*U)"*dD'8JDA4PEA-JG'mJCA*KFf8!N!8)F(9d)'&hBANJ8(9d)'&hBANJG'K
P)(0`C@0TCQPPC#"[BQTPBh3SFbPQEQ4bF(4hH@pLDL!XG'KP)'pLDQ9MG#"`GA3
JBAGKH5"TEL"TG(-JF(9d,@&hBANJE'pMBA4TEfi!!!"[BQSJ&A4SC5"TG'9YFb"
dEb"`GA3JBAGKH3!!!!%&DA4PEA0QFf9XE'PcG'P%6b"16e3J990&1L"`FQpfD@4
PC#"QEh)JBQ&MDhGKFQ4c)'0[EA"KG'PLD@aTG(NJGfPdD#"[E'3JCACPER3JFh9
TG'8Z)#"AD@aX)'*P)(*PE@pfC@3JD@iJCR9dGA*P)%CTEQ4PFR1!!!GbCA0dBA*
d&9*PFh4KFR3JG'KP)%eKBfPZG'pcD'CZC(*bCA0dER9XE!!!J!"ZG@aX!!#3!!!
!!!CbCACPB@`R3R*TEQFJG'KP)(0`C@0TCQPPC#"[BQTPBh3SFbNJD@jdEb"fD@9
h!'eTFf0YGQPcER9XE!!!J!"[BQSJ(A4SC5"[BQTPBh3JG'mJBQ8JE@&NC5"fDA0
TBQaP%!!!!!CcC@aPBh3H8f9XC@0d)(4SC5"cF'9MD@CTC@3JEf*UC@0d+(-TE@P
cBh0XBh4ZG@aX!!#!!'pLDL!8G'KP)'pLDQ9MG#"dEb"cC@aPBh3!%!!!!!PcD(9
d)'4[GfiA8fKeG#"%EhGZ)(4SC5"0B@0TER4[FfKQEQ4bFfKeG'jeE'`!!)!!ER9
XE!!!N!!!!!!&FfaPCA!68faPCA!JG'KP)%eKBfPZG'pcD'CZC(*cEQpkER9XE!!
!J!"ZG@aX!!#3!!!!!!4cEh*d,e*PG(9bEL"dD'8JFh"PBfPQD@9N)'pLDQ9MG#K
c+5"TEL"K)(0[FR4PC#"XDA0d!%4"9%&66e*8Ef*U)#0dD'8JFfpbG'9N)'PdC@e
c)'PZ)(4SC@Pb)'jPGb"[FQ4PFS!!Ef*U)#"K)'aTFh3JEfBJCQPZC'9b)'pLDQ9
MG(-JG'mJFfpbG!#3"!%#BRN!BRNJ)(4jF'8KG'KP)("bEh"PFR4j)(4[)(0[FR3
JG'KP)'PdC@ec)'*j!!!'GA"NBA4P8e9`C'&dC5"dD'8JC'PcF'aKH5"[CL"dD'8
JFh"PBfPQD@9N)'pLDQ9MG#Kc+5"dEb"YBA4MD#"dD'9TFL"[ELeNDA0V)(*PF(*
PFf9ZG'&dD@pZ!'CZC(*QGA"NER9XE!!!J!"[BQSJ%R4SC5"TG'9Y)(4[)(9`C'&
dC3#3"MS4B@0MCA0cEh*j)("bEf0PFh0`Bf4K,8%JF(*[Bf9cFb"XBA9ZBfKPC#"
QFQpY)'%JC'9cDb"KBf0PFh0[FRNJCQPXC3!"%f4PFfXJB@0MCA0cEh*j)'CTE'9
NB@CTEf*U)$adD'8JC'9cDb"KBf0PFh0[FRNJCQPXC5"QFQpY)(GSD@0S)(4SDA-
JF(*[Bf9cFb"hBA-JE'&eEQ0SC@3!N!86B@0MCA0cEh*j)("bEf0PFh0PFh"MC'%
ACACPFRNJB@0MCA0cEh*j)("bEf0PFh-!!3!!Bd!M)A4jF'8!!!!"!!!5B@0MCA0
cEh*j)(0eDA4MBA0P!'4cGA3C35"NCA0V)'&MBf9cFfpbH5"cG@PdBf&cC3!!!!&
MEf*U!!*TEQ4iEQ&YC40KBf0PFh0[FRNJFh9TG'0KFf9cC(0eG"KPGQ9bH5"KBf0
PFh0[FRNJFh9TG'0KFf8!!!%!!'0!)b&dHA"P!!!!!3!!#Q&XD@&c)'CTE'8!B@a
TB5P"EL"KE'PKFb"QD@aP)#KMFQ9KG'9N)(GTG'JJdNeKDf8J3@aTBA26+3!"$@p
bD@GTEQ&X)'PdC@e[FQPREf*U)#PdD'8JEh*TCfPZB@`JDA4PE5"`EfPZG'9N)(4
[)'*j)(4SC5"KE'PKF`#3"!YKE'PKFb"QD@aPFf&XD@%3CACPFRNJB@aTBA-JCQP
XC3!!!3!!Bd!M)A4jF'8!!!!"!!!,BA"`E'PMBA4TEfjMBA"`&N&Z)'&`F'aTBf&
dD@pZ)("bEfGbB@d!!"F8B@*[GA3JG'KTFb"YB@0TER4[FfJ!B@*LH'pLDL"8G'K
P)0*"BQpeG#"dD'Pc)%eKBfPZG'pcD0-JC'PKE'pR,#"KEQ3JG'KP)'aTFh3JEfB
JFR9ZEQPZCb"`FQpMCA0cCA-JC'PcF'aKH@9N)'PZ)'Pd!!!!&f&`F'aP)'ePER8
JDA4PEA-JCQpXC'9bB@eZG@pLDL"9G'KP)(0`C@0TB@`JCQpXC'9b)0*"F("XC5"
0C@je)%PdC@ec,0-JG'KP)'0[ER4PER4c)'pQ)(GSD@0S)'&`F'9KFL"TEL"dD'8
J3A"`E'8JE@9ZG3!!#@0XDA"LEf&bC("ME'P[BQSJ(A4SC5"'D@jNCA)RFb"ME'P
`BQpKFQ3JGfPZC'ph!!!9BfpZG(*[E#"`B@jPE(-JCQpXC'9bBh4bE'pLDL!MG'K
P)(0`C@0TB@`JCQpXC'9b)0*$EfjdFQpX)&"KEQ9XFp-!!!GNCA0VG'p`C'9cDfp
LDL!,G'KP)'4PFfYdEh!!!"&PH(4PER0TEfjc)'C[E'4PFQ9iG'j[BQSJ(h4SC5"
cF'9MD@&X)'C[E'4PFL$54AKdC@jcD@pZFp-!!!aQD@aP)(0SBA*TEQF!CR0SFQ*
[Ef`65A-JCQPXC5"cD'&bD@jR)'pZ2a!!$'C[ER4c)'C[E'4PFJ"QCQjdEf*U)"T
dD'8JFh"PBfPKE#"QEfaNCA)JdNC[ER4cd`!!!!PQFQpZG'e[Fh4`DA0QBQp[E#*
*Fb"dD'Pc)(4SC5"QFQpZG'e[Fh3JBA"`E'PMBA4TEfir!"!!%QPZFf9bG'P[EL"
XEf0KG'P[EJ"`D@jcEf*U)%adD'8JBfpZG'&TEQ9b)(4SBA3JB5"ZCAFJCQpXC'9
b)(G[G@aN)'&`F'9KFL"TEL"TCL$56Q9h)%C[E'4PFY-JGf&c)(0PE'9MG'9N!!!
!%QaKFQGPFh3JCR*PC5"LE'pMD`"YCR*PE'pZCdYdD'8JE'&bCf9cG#"QFQ9P)'*
XEf0V)'pQ)("bEf0PFh-JE@9YEh*j)'&fB@PXB@*XC5"dEb"XBA9ZBfJJB@iJBA"
`E'PMBA4TEfi!!"*`FQ9QCA*PEQ0PFb"QEfaNCA)!F(*PCQpLDL!JG'KP)(0`C@0
TB@`JCQpXC'9b)0*3FQ9QCA*PEQ0PFp-!!!!2F(*[C(9MG#"fCA*cD@pZGQ9b-QP
dH(3mG'KP)(CPFR0TEfiJEfBJG'KP)&0jFh4PE5"cEfCdGf&bC5"bG@jZD@jR)'p
Z)(4SDA-J6@&MD@jdEh0S!!!!#A0PE'9MG'P[ER0PE'9[BQSJ)A4SC5"cC@aPBh4
TEfiJGQPcD@*XC5"dEb"dD'8JGA0PFK!!%h0SBA*TEQFJFh4KFR4TEQFJGA"QFh9
`BQp[E%e*Fb"'D@aP)(0SBA*TEQFJD@iJG'KP)("bEf0PFh-JEfBJFh4KFR4TEQF
JGA!J+(0dD@aX)'pQCL`JBR9d)(0[EfiJG'mJBQ8JEfiT2`!!#A0SEh*dBh9dFh0
MGA4[BQSJ0A4SC5$54QPZC'9b)&0SEh*dBh9dFp-JDA4PE5"TEL"dD'8J4QPZC'9
b*h-JD'9XF#"YC@je!!!9FfKeG'4[GfiJDA4PEA-JCQpXC'9bFfKNCQpLDL!MG'K
P)(0`C@0TB@`JCQpXC'9b)0*6D(9dC'phEL"*G'9YFp-!!"4cG'&bG(9`)'PdC@e
c)'C[E'4PFJ"cG(*dEf*U)#*dD'8JFh"PBfPKE#"QEfaNCA)JdP0dBA*dGA!J5A4
PEA26!!!!$A0jFh4PE5"QEfaNCA*YB@0cEf*U)"&dD'8J8hPcG'9Y)'C[E'4PFJ!
!&R4PEA"[FQ&bH5"TG'9YFb"QEfaNCA)!G'9YF'pLDL!`G'KP)(0`C@0TB@`JCQp
XC'9b)0*8C@e`Eh*KFRNJ5A4PEA26)#KTERCTFfPLE'8T!!!!"hCPFR0TEfjfCA*
cDA4iG#edD'8JGQ9bFfP[EL"[CL"dD'8J4QPZC'9b)&0MFQP`G'PZCb"&H(4PER0
TEfi!!""fD@9h)("bC@CPFQ9ZBf9c!("fGh"[BQSJ)R4SC5"fD@9h)("bC@CPFQ9
ZBf9c)'0[ER4bEf`JF'&ZC@`!!!!(GQPcD@*XCA"fDA0LEfpX(NPc)(4SC5"'D@j
NCA)RFb"XBAPPFL"fDA0TBQaP2`!3!!!AC(0eG!!#D@jNH'jKE@9KE'PK!!*TEQ4
iEQ&YC@&`F'B!!fPZC(KZB@eP583J)'0dER)!!QPZC(KZB@ePBhGZC!!#D@jNH'j
KE@9NGfjN!!*TEQ4iEQ&YC@0MC(B!!QPZC(KZB@ePC'&QD3!#D@jNH'jKE@9MC(0
V!!*TEQ4iEQ&YC@0NDA-!!fPZC(KZB@eP583J)'4[BfB!!QPZC(KZB@ePCQPXC3!
#D@jNH'jKE@9MCQpX!!0TEQ4iEQ&YC8P%)#"QER4Q!!*TEQ4iEQ&YC@CcGA3!!QP
ZC(KZB@ePDAGZC!!#D@jNH'jKE@9MEf*U!!*TEQ4iEQ&YCA0MG()!!QPZC(KZB@e
PFhGZC!!#D@jNH'jKE@9cEQ4Q!!*TEQ4iEQ&YCA0dBh-!!QPZC(KZB@ePBh4bF`!
#D@jNH'jKE@9MGfPZ!!*TEQ4iEQ&YC4"KF("XD@0KG'P[EL"QD@aP!'&`F'BG3@i
JBA"`E'PMBA4TEfiRFb"QD@aP)'pZ)'4TFfX!""CYD@jTEA9Y)("KFR4TG'P[EL"
cDATP!'e`FR4XEfjR5h4SC5"cE@&XE'9cG#"YC@e[FRNJFfPkC5"dD'&d)(4SC5"
KF("XD@0KG'P[EL"MB@iJF'pcFfPLE(NJBQ8JE'&eEQ0SC@3JGfPdD"!!$R"KFR4
TG'P[EL"cDATP!'&`F(4XEfjR1R4SC5"YC@e[FRNJFfPkC5"dD'&d)(4SC5"KF("
XD@0KG'P[EL"hD@aX)'*P)'aKG@jMD'9N)(GTG'J!%!!+Ff0bDA"dB@*XC3"TFf&
LBQp[E'p*Fb"dD'Pc)'&`F'aTBf&dD@pZ)'KTCfJYE'9fC@`JCACPER3JBAGKFQ8
J+'&MBf9`G(-JEh"PEL"KF("XD@0KG'P[EL`JEh"PEL"NEf0eE@9ZG#`JF(*TER3
JC'pMG@ePER3X)'&ZC#"aG@Pd+6m!!"KcG@GRCA0dC@3JF'&bG'PdD@pZ)(0THQ8
!Fh"bG'a[EQGDG'KP)'ePE@pbH5"cDATP)(4SBA3JG'KP)'4PGQ9XEh"PFL"bC@0
[E@ePEQ4c)(4SBA3JG'KP)'&`F'aTBf&dD@pZ)(0SEh9XC#"LC5"XBA9ZBfKPC#"
hDA4S!*!&%@&`F'aTBf&dD@pZ)'CTE'9cBA"`CKCPGQ9bH5"KF("XD@0KG'P[EL"
QD@aP!!!"!!"M3#-KG(P`C3!!!!%!!"0KF("XD@0KG'P[EL"`FQpMCA0cF'0KF#Y
")("bEf0PFh-JE'&eEQ0SC@3JCR*[E5"KEL"KF("XD@0KG'P[EL"QD@aP!!%3BA"
`E'PMBA4TEfiJCQPXC3"KF("QBA"`CMPdD'8JBA"`E'PMBA4TEfiJCQPXC5"QFQp
Y)(GSD@0S)(4SDA-JF(*[Bf9cFb"hBA-JE'&eEQ0SC@3!N!39BA"`E'PMBA4TEfi
JF(*[Bf9cFf9cF'0KF"PPGQ9bH5"KF("XD@0KG'P[EL"`FQpMCA0c!!%!!'0!)b&
dHA"P!!!!!3!!#@0[ER4KD@jPFQ0dER)K3@iJDA4PE5"dD'&d)'0[ER4KD@jc)'p
dD'9b)'PdC@ec!!J6BfpYF'aPG'9XH5"PH("KEQ4PC("PH'0LEfpX2NPc)(4SC5"
MEfjdB@PZCA)JB@jN)'&XE#"[CL"TG(-JBfKTE'4bC@iJEh"PEL"TEL"[GA4XD@j
P)(CTCAFr!"!!%'0[ER4KD@jPFL"hD@jNEhF!BhGZC'pLDL!KG'KP)'eKD@iJGfP
ZC'ph)'C[FL"dD'8JBfpZG'&TEQ9b!!!2C@jdDA*P)'0[ER4PER4cC@0dFfpLDL"
-G'KP)'9ZG'PbC5"MEfjdC@jdFb"[CL"dD'8JBfpZG'&TEQ9b,#"TEQ0XG@4TEQF
JG'KP)'0[ER4PER4c)'pQ)'PdFb"MD'PXC(*PEJ!!!!TPH("KEQ4KBQaP!("PH'&
LEfpX28Pc)(4SC5"MEfjdB@PZCA)JBf&`B@*XC5"[CL"LC@PZCb"PH("KEQ4PC#"
TER4[)'peG'aTEQ8JGQPPGcm!!!KPH("KEQ4PC!"`CAK`BQp[E#C*Fb"dD'8JBfp
ZG'&TEQ9b)'p`C@iJD@iJEh9dE'PZC5"fD@9h2`!3!"*`FQ9fD@peFb"XDA0d)(C
TCAF!FhCPGfa[EQGfG'KP)'aKFh3JEQpZ,@PMEfiJGQPPGb!SBRNJEQ&YC5`JBRN
JC'&dC5`JCA4M,LNJFf9XC@0dC@3JCQpb)(4SC5"MEfjdB@PZCA)J+'C[FQG[G(4
PEL"KFb"cEfpZ)'&c)(4SC5"hD@jNEhFJDA-JBfa[Ff9N+3!!!!PcC@aPBh4TEfj
cC@aPEf*U)#&dD'8JFf9XC@0dD@pZ)(CTFfPLE'8JG'mJG'KP)(9cCA)3!!4fD@9
h!("fCAGXEfjR4A4SC5"fD@9h)(0PE'9MG'9N)'C[FL"dD'8JBfpZG'&TEQ9b)#K
LH5"TBfpZ,#"LH5"ZB@eP,#"LH5"NBA4P,#"PG'-Z+4!!!!pNFh9d!!*TEQ4iEQ&
YC@&XD@%!!QPZC(KZB@ePBA"`CJ!#D@jNH'jKE@9MG'jb!!*TEQ4iEQ&YC@0MC(B
!!QPZC(KZB@ePC'&QD3!#D@jNH'jKE@9NEf0Q!!*TEQ4iEQ&YC@CTE'8!!QPZC(K
ZB@ePBfC[E!!#D@jNH'jKE@9QER4Q!!*TEQ4iEQ&YC@CcGA3!!QPZC(KZB@ePBfp
LDJ!#D@jNH'jKE@9cBh4b!!*TEQ4iEQ&YCA0ZC'B!!QPZC(KZB@ePFh4MF`!#D@j
NH'jKE@8+BfpZG'&TEQ9bF`"MG'jb$f9fCA*j)'0[ER4KD@jPFJ!"!!"M3#-KG(P
`C3!!!!%!!""MEfjdB@PZCA)JGfPZC'ph!'0hEQ3F35"hD@jNEhFJG'KKG#"MEfj
dB@PZFb"TG'9YF`!!"`PMEfjdB@PZCA*MG'jbEf*U)#KdD'8JBfpZG'&TEQ9b)(4
SDA-JGfPZC'ph)'Pc)'p`C@jPC#"QFQpY!!!!"'4TFfX!Bf4TFfpLDL"!G'KP)'4
TFfXJEfiJGfKTBfJJG'KP)'PdC@dJG'KTFb"hD@jNEhFJGf&c)'p`C@jPC#"QFQp
Y)'Pc)(0dEh*PC!!!!!CQEfaNCA)!BfC[E'pLDL!PG'KP)'C[E'4PFL"dD'Pc)(G
TEQ4[Gb"TFb"[F'9ZC@3JCR*[E3!!"'PdC@d!BfpLDQpLDL!MG'KP)'PdC@dJG'K
TFb"hD@jNEhFJDA-JEh"PEQ9N)'CbEfd!!"*`FQ9fD@peFb"XDA0d)(CTCAF!FhC
PGfa[EQGcG'KP)'aKFh3JEQpZ,@PMEfiJGQPPGb!SBRNJEQ&YC5`JBRNJC'&dC5`
JCA4M,LNJFf9XC@0dC@3JCQpb)(4SC5"hD@jNEhFJ+'C[FQG[G(4PEL"KFb"cEfp
Z)'&c)(4SC5"hD@jNEhFJDA-JBfa[Ff9N+3!!#A0PE'9MG'P[ER0PE'9[BQSJ)A4
SC5"cC@aPBh4TEfiJGQPcD@*XC5"dEb"dD'8JGA0PFK!!"(CTCAF!F(CPGfa[EQG
#G'KP)(CTCAFJFf9XC@0dC@3JCQpb)(4SC5"hD@jNEhFJ+'*j)'PMEfiX)'*j)'j
KE@8X)'*j)'4KG'8X)'9dBbiT!"!!!!pNFh9d!!*TEQ4iEQ&YC@&XD@%!!QPZC(K
ZB@ePBA"`CJ!#D@jNH'jKE@9MG'jb!!*TEQ4iEQ&YC@0MC(B!!QPZC(KZB@ePC'&
QD3!#D@jNH'jKE@9NEf0Q!!*TEQ4iEQ&YC@CTE'8!!QPZC(KZB@ePBfC[E!!#D@j
NH'jKE@9QER4Q!!*TEQ4iEQ&YC@CcGA3!!QPZC(KZB@ePBfpLDJ!#D@jNH'jKE@9
cBh4b!!*TEQ4iEQ&YCA0ZC'B!!QPZC(KZB@ePFh4MF`!#D@jNH'jKE@84BfpZG'&
TEQ9b)(GTEQ4[Gh0MGfjN&Q9fCA*j)'0[ER4KD@jPFL"hD@jNEhF!!!%!!'0!)b&
dHA"P!!!!!3!!$@0[ER4PER3JFh"KBf9NGfjN@%&XE#"hD@jNEhGc,#"TEQ0XG@4
TEQFJG'KP)'4PFfYdEh!JGfPZC'ph)#M59fPZC'phdb"NEf9c)'j[G#"TEQ0XG@4
P)(4SC5"NCA0VG'p`)(GTEQ4[GbN!N!81BfpZG'9ZG#"cF'&MCA-!C(GZC"0&GQ9
bH5"MEfjdC@jd)(0`B@0P!!%!!'0!)b&dHA"P!!!!!3!!$@0[ER4bEf`JF'&ZC@a
MBf4f$d%JBfpZG(*[E#"`B@jPE!!0&Q0KE'0eE'&dC5"QEfaNCA)JFfPkCA-!FfC
cHQ*[Efa*+&CTCAGc+5""FQ8JCQpXC'9b)(0THQ9c)'0KE'0eE'&dC@3JB@jN)'4
TFh"XBAPPC#"TEL"'D@jNCA)JE'PcG#"hD@jNEhGc2a!!$f0[E@ePER3JD'9KC'P
ZCh0MEfeLEfpX0LK@D@9hFbNJ3A*P)'0[E@ePER4c)'4TFh"XBAPPC#"TEL"'D@j
NCA)JE'PcG#"hD@jNEhGc2`!3!!aNBA4P)'KPB@4TEQF!Ff4KG'*[Efa!+&CTCAG
c+5""FQ8JE@pND@CTBf&dD@pZ)'4KG'9c)'4TFh"XBAPPC#"TEL"'D@jNCA)JE'P
cG#"hD@jNEhGc2`!3!"KNDA0V)'PZCQpbE@&dD@pZ)'KPB@4TEQF!Ff4TEQ*[Efa
*+&CTCAGc+5"*Fb"TEQC[FQeKG'P[EL"KBQpeG#"dD'8JGQpXG@eP)'4TFh"XBAP
PC#"TEL"'D@jNCA)JE'PcG#"hD@jNEhGc2a!!#@PMEfiJFfPkC@afDA0XEfjR1LK
@D@9hFbNJG'KP)(0THQ8JEfBJD@0[ER-JC'PcF'aKH@9N)'PZ)%CTEQ4PFL"XDA0
d)(GTEQ4[Gh-!%!!-DfPZC#"SC@&ND@jR!(0VEQ4LEfpX2#K@D@9hFbNJ3A*P)'4
[Bh9YC@jd)'YTEQ4c)'4TFh"XBAPPC#"TEL"'D@jNCA)JE'PcG#"hD@jNEhGc2`!
3!!eXB@*PE#"SC@&ND@jRFfaLE'*[Ef`d+&CTCAGc+5""FQ8JE'&LC@ac)'4TFh"
XBAPPC#"TEL"'D@jNCA)JE'PcG#"hD@jNEhGc2`!3!!acDATP)'KPB@4TEQF!Fh0
THQ*[Ef`h+&CTCAGc+5""FQ8JCQPXC5"cDATPFb"NDA0`E'&jC@3JD@iJ4QPZC'9
b)'aTFh3JGfPZC'phFa!!$(0ZBA!JG'mJCh*TC!"QCh*NBQp[E%mS9QPPGh-T)%&
bC5"TG'9YFb"KE(GKHA-JFfjKF("PC#"dEb"dD'8JEQ9KFQ9cG#"RFQPN)("[D@j
d)(GSC@iJG'KPH5"KFQ8JE@pfC@3r%!!1Fh4KCfGPFQ9N)'GbD@3!CR0dCf*[Ef`
K+&CTCAGc+5""FQ8JCh*TC#"XD@jPFb"cG'&RCf9bC@3r%!!2GQ9bFfP[EL"SC@&
ND@jRFhCbFf*[Ef`l+&CTCAGc+5""FQ8JCQPXC5"fCA*cD@pZFb"NDA0`E'&jC@3
JD@iJ4QPZC'9b)'aTFh3JGfPZC'phFcm3!!PfD@9h)'C[ER4fCQjdE'pZCbmS9QP
PGh-T)(4SC5"TC#"[CL"dD'8JCQpZG#"eFf9N)'PZ)%CTEQ4PFL"fD@9hFa!!$RC
TCAFJCQpZG#"cDATP!(CQFhTXEfjR-5K@D@9hFbNJG'KP)(0THQ8JEfBJG'KP)'C
[ER3JGA0PC#"TEL"'D@jNCA)JGQPPGh-3!!!!$Q0[ER4bEf`JF'&ZC@ac!'0MC(B
6CACPFRNJBfpZG(*[E#"`B@jPE!!"!!"M3#-KG(P`C3!!!!%!!"0NCA0V)'&MBf9
cFfpbH5"QD@aPC'&QD49")'4PFfXJB@0MCA0cEh*j)'CTE'8!N!38C'9cDb"KBf0
PFh0[FRNJCQPXCA-!C'&QD4PPGQ9bH5"NCA0V)'&MBf9cFfpbH5"QD@aP!!%!!'0
!)b&dHA"P!!!!!3!!$Q4PFfYdEh!YEf*UC@0d!'0NFfXc4'9cDh4[F#e[BQTPBh3
JDA-JG'KP)'0XBA0c)'pQ)(4SC5$5C'9cDh4[F0-JEf*UC@0d!!)-Fh4KFR4eF#"
NDA0V!(0NFfY[BQSJ%(4SC5"cG'&bG(9`)'4TFfX!!!!&G(*KFfKdFR0SEf*U)!P
dD'8JG(*KFfJ!!!!2C(0eG!!#D@jNH'jKE@9KE'PK!!*TEQ4iEQ&YC@&`F'B!!QP
ZC(KZB@ePBh4ZFJ!#D@jNH'jKE@9MBf4f!!*TEQ4iEQ&YC@4KCQN!!QPZC(KZB@e
PC'pMCJ!#D@jNH'jKE@9QD@aP!!*TEQ4iEQ&YC@0QEf`!!QPZC(KZB@ePCQjdCJ!
#D@jNH'jKE@9QFh9d!!*TEQ4iEQ&YC@0[BQS!!QPZC(KZB@ePFf0dFJ!#D@jNH'j
KE@9cEQ4Q!!*TEQ4iEQ&YCA0dBh-!!QPZC(KZB@eP"'4TFfX!Bf4TF`C")'4TFfX
!!!8)Bf&`B@0TG(N!Bf&`B@a[EQFdG'KP)(4[G'&X)'jeE@*PFL"[CL"LHA4PFb!
SCR*PC5"[FL"eFf9N+5"[EL"dD'8JC'PcD`!!!!PPDQ9MG'&LE'9TFf9UBQp[E$G
$B@iJG'KP)'ePC'PK)'0KEL"LC5"PDQ9MG'9N)#KQE'p`F'PPFb`J3d3RFb`JFhP
aG@9cG#Nr!!!+CR*PC5"cF'&MC3"QFR0`E'pZCbPdD'8JER9YBQ9b)'pQ)'CbC@8
JBRPdCA-JE'9QG#"[EL"dD'8JC'PcD`!!$'a[Bf&X)(C[E(9YC3"TFh*fBQp[E$Y
*Fb"dD'8JE@9ND@%JDA-JB5"XEf0KE#"fEfaeE@8J+(*KG'KPFL"dD'&Z)'%JCQP
XC5"cCA*fCA)T2`!!"h0dBA*dGA"TFh4NBQp[E"Y*Fb"dD'Pc)'4TFfXJG'KP)'*
[Eh3JC'PcDcm!!!!2C(0eG!!#D@jNH'jKE@9KE'PK!!*TEQ4iEQ&YC@&`F'B!!QP
ZC(KZB@ePBh4ZFJ!#D@jNH'jKE@9MBf4f!!*TEQ4iEQ&YC@4KCQN!!QPZC(KZB@e
PC'pMCJ!#D@jNH'jKE@9QD@aP!!*TEQ4iEQ&YC@0QEf`!!fPZC(K*4#!JEQ&YC@C
ZG'B!!QPZC(KZB@ePCR0eG!!#D@jNH'jKE@9MEf*U!!*TEQ4iEQ&YCA0MG()!!QP
ZC(KZB@ePFfjNCJ!#D@jNH'jKE@9cG'0c!!*TEQ4iEQ&YC39NDA0VFf0NDA-+CAC
PFRNJC'PcD`!!!3!!Bd!M)A4jF'8!!!!"!!!0C'pMG@ePER3JCQPXC@4[BfB235"
NEf0eE@9ZG#"QD@aP!*!%$Q4[Bh9YC@jd)'CTE'9c!'4[BfB6CACPFRNJC'pMG@e
PER3JCQPXC3!"!!"M3#-KG(P`C3!!!!%!!!4QD@aP!'CTE'8'35"QD@aP!!!'$'0
bC@&dEh)JG(P`C3"QBh*dG(P`C6adD'8J6e08HA"P)'PNC@jdD@CjD@jR)(4SC5"
KF("XD@0KG'P[EL"dD'&d)'0bC@&dC@3JG'KP)'PdC@d!%!!*CQPXC5"dHA"PCQP
dF(4jF'8pG'KP)%p69(P`C5"TC'9ZG'PQH@PZCb"dD'8JG(P`C5"[CL"NBA4K)'0
[ER4KD@jPC#"TEL"dD'8JDA4PE4!!"Qa[BfYPC!"TFfaVBQp[E"0*Fb"dD'8JCQP
XC5"XEf0VC@3r%!!2F(*[C(9MG#"fCA*cD@pZGQ9b-QPdH(4)G'KP)(CPFR0TEfi
JEfBJG'KP)("bEf4eBh3J+(CTFfPLE'8JBA3JG'KP)(4[F#"[CL"dD'8JdNGPG#"
*EQC[db"ND@&XEfFT!!!!#R0dBA4TEfjPFRN!F(0`C'*[Ef`G5A-JG'KP)'PdC@d
JB5"cG'&dD@pZCA*j)("KC$m3!!GfCA*cD@pZGQ9bFfPdH(4)G'KP)(CPFR0TEfi
JEfBJG'KP)'CTE'8J+(CTFfPLE'8JBA3JG'KP)'*[G(4[E5"[CL"dD'8JdNGPG#"
*EQC[db"ND@&XEfFT!*!&"@CTE'9cCQPXC3TPGQ9bH5"QD@aP!!!"!!"M3#-KG(P
`C3!!!!%!!!CQEfaNCA)!BfC[E!K")'C[E'4PFJ#3"!pNFh9d!!*TEQ4iEQ&YC@&
XD@%!!QPZC(KZB@ePBA"`CJ!#D@jNH'jKE@9MG'jb!!*TEQ4iEQ&YC@0MC(B!!QP
ZC(KZB@ePC'&QD3!#D@jNH'jKE@9NEf0Q!!*TEQ4iEQ&YC@CTE'8!!QPZC(KZB@e
PBfC[E!!#D@jNH'jKE@9QER4Q!!*TEQ4iEQ&YC@CcGA3!!QPZC(KZB@ePBfpLDJ!
#D@jNH'jKE@9cBh4b!!*TEQ4iEQ&YCA0ZC'B!!QPZC(KZB@ePFh4MF`!#D@jNH'j
KE@8(CQpXC'9bFf0QEf`-CACPFRNJCQpXC'9b!!!"!!"M3#-KG(P`C3!!!!%!!!P
QEfjd)'CTE'9QER4Q#d%JCQpZG#"QD@aP!*!%#QC[ER3JCQPXCA-!CQjdCJpPGQ9
bH5"QEfjd)'CTE'8!!3!!Bd!M)A4jF'8!!!!"!!!0CQpZG#"cG@PdBf&cC@CcGA3
235"QEfjd)(0eDA4MBA0P!!!!!@0[BQS!!QPZC(KZB@eP$QC[ER3JFh9TG'0KFf9
c!'CcGA36CACPFRNJCQpZG#"cG@PdBf&cC3!"!!"M3#-KG(P`C3!!!!%!!!9RFQp
eF(0RFR!Y35"(FQpeF#"TEL"dD'8J9A0PFR-JB@jN)%GbEh9`Fb"MEfjdFQpX)("
KEQ9X!!8'BQpeEQ4c!("LEQ4aC(*d)h4SC5"LEh9ZC'PZCb"bC@0dB@jRE'8JEfB
JG'KP)'GbEh9`%!!%D@0[EJ"TD@eRD@CKE4adD'8JD@0[EL"LDA4YBA!JEfBJG'K
P)'GbEh9`!"!!#faKBQ9X)'PZC'9iE'&LD@a[EQF@G'KP)'aKBQ9X)'pQ)(4SC5"
RFQpeF!!3!!4ZB@eP!("ZB@eTG(Kd&A4SC5"ZB@eP)'pQ)(4SC5"RFQpeF"!!#("
[FfPdD@pZ!("[Ffj44("d-R4SC5"`Eh0TG'P[EL"[CL"dD'8JCh*[GA!JGfPdD'P
Z)'PdFb"`BA*PER3JGfPZC'ph!"!!!!!'Ch*[GA"c!(0RFR!,CACPFRNJCh*[GA!
!!3!!Bd!M)A4jF'8!!!!"!!!5D@jQEh*YBA4TEfiJGfPZC'ph!'PhEQ3Y3@iJD@j
QEh*YBA4TEfiJGfPZC'ph)#K[F'9ZC@3JBRNJdNGPG#"*EQC[bG-T!!m(BfpYE@9
ZG'0[EA4TG(Kd#h4SC5"MEfeYC@jd%!!0Bh*PBA4TEfiJC'&dC@0bG'4XC(3J*R4
SC5"NBA4P)'pZ)(GSD@0S)(4SC5"TG'9Y)(GKFb"MFQ9KG'9N!!!!"'PMEfi!D@P
YCfPQB@dEG'KP)'PMEfiJBQPdE@&`)'pQ)(4SC5"TG'9Y%!!%DA4PE3"MEf*UEf*
U)#4dD'8JDA4PE5"dD'Pc)(GTEQ4[Gb"hBA-JEh"PEQ9N)'CbEfd!!!!'E'pMDf9
N!'PcE'YLEfpX%dPc)(4SC5"TG'9Y)'a[BfYPC$m3!"CYD@jTEA9Y)("KFR4TG'P
[EL"cDATP!'e`FR4XEfjR5h4SC5"cE@&XE'9cG#"YC@e[FRNJFfPkC5"dD'&d)(4
SC5"KF("XD@0KG'P[EL"MB@iJF'pcFfPLE(NJBQ8JE'&eEQ0SC@3JGfPdD"!!%@e
[C'PQD@0KG'P[EL"NBA4PE@pNC'aNG#!XG'KP)'4KG'8JEfiJGfKTBfJJG'KP)'P
dC@dJGf&c)'aKFh3JE@pND@CTC@3!!!!1F'&bG'PdD@pZ)(0THQ8!BA"`G'a[EQF
kG'KP)'ePE@pbH5"cDATP)(4SBA3JG'KP)'&`F'aTBf&dD@pZ)(GTE'`JBQ8JE'&
eEQ0SC@3JGfPdD!!3!!e`D(PcD@0KE#"cDATPF'KjFfa[EQFTG'KP)'&MG(9KE#"
cF'&MC5"eFf9N)'*j)(4SC5"TG'9Y)'pZ)'4TFfX!!!p`FQpNG@0d)(CPFR0TEfj
fCA)bDA4iG%KdD'8JGQ9bFfP[EL"[CL"dD'8JF(*[C(9MG#!SGQPcD@*XC5"KG#"
dD'8JG'p`)'pQ)(4SC5$54f9d)%PZCQr6)'4TB@a[CbN!!!!%FfPkC3"`G(0kE'p
ZCaadD'8JE'pRD@0KE#"cDATP)'pQ)(4SC5"TG'9Y!!!!#R0dBA4TEfjPFRN!F(0
`C'*[Ef`G5A-JG'KP)'PdC@dJB5"cG'&dD@pZCA*j)("KC$m3!"KcG@GRCA0dC@3
JF'&bG'PdD@pZ)(0THQ8!Fh"bG'a[EQGDG'KP)'ePE@pbH5"cDATP)(4SBA3JG'K
P)'4PGQ9XEh"PFL"bC@0[E@ePEQ4c)(4SBA3JG'KP)'&`F'aTBf&dD@pZ)(0SEh9
XC#"LC5"XBA9ZBfKPC#"hDA4S!!!!"hCPFR0TEfjfCA*cDA4iG%KdD'8JGQ9bFfP
[EL"[CL"dD'8JCQPXC5!SGQPcD@*XC5"KG#"dD'8JBQpdG'pY)'pQ)(4SC5$54f9
d)%PZCQr6)'4TB@a[CbN!!!!8Gf&bEL"LC@C[FQ8JC@e`G(PTEQF!Gf&bEQ*[Ef`
f5A-JB5"ND@&XEfFJC'PcF'aKH@9N)(GSC@iJdN9YF(4j)(4bBA0SbG-JDA-JFf9
XC@0dC@3r!"!!!!!6D@jQEh*YBA4TEfiJGfPZC'phFfPhEQ3BCACPFRNJD@jQEh*
YBA4TEfiJGfPZC'ph!!!"!!"M3#-KG(P`C3!!!!%!!!4TG'9Y!'0[BQS(3@iJDA4
PE3!6"Q*[G@jNF`"`BQjNF@4bG#*dD'8JBQpeEQ4TEQFJFQ9MG'&ZCfaP)'pQ)(4
SC5"TG'9Y!"!!"f0[E@ePER4MEfedDA4iG$TdD'8JBfpYE@9ZG#"NDA0`E'&jC@3
JD@iJG'KP)0*(CA3J5@jQEp-JGfPZC'ph)'pQ)(4SC5"TG'9Y!"!!#@0[ER4KD@j
PFQ0dER*[BQSJ'R4SC5"MEfjdB@PZCA)JEfBJG'KTFb"TG'9Y!!!!$@0[ER4PER3
JFh"KBf9NGfjNC(GZC$&dD'8JGfPZC'ph)(4SBA3JGfpeE'3JEh"PEL"TCL"dD'8
JDA4PE5"hBA-JEh"PEQ9N!!!0Bh*PBA4TEfiJC'&dC@0bG'4XC(3J*R4SC5"NBA4
P)'pZ)(GSD@0S)(4SC5"TG'9Y)(GKFb"MFQ9KG'9N!!!!"'4TFfX!Bf4TFfpLDL!
NG'KP)'4TFfXJEfiJGfKTBfJJG'KP)'PdC@dJDA-JFh4[FQ9N!!!!"QC[E'4PFJ"
MCQpXEf*U)#CdD'8JCQpXC'9b)'PZ)(GSD@0S)(4SC5"TG'9Y)'Pc)(0dEh*PC!!
!!!4TBfpZ!'PTE@GTCQ&Y'h4SC5"TBfpZ)'*TG'eKF#"[CL"dD'8JDA4PE4!!!QP
N!%P%)#"XEfjR(Q&Z)'PN)(4SBA3JD@4PER4TCQPPFb"dD'8JDA4PE3!!!"*TEQC
[FQeKG'P[EL"hD@jNEhF!DAGZC'pLDL!MG'KP)'PZCQpbE@&dD@pZ)(GTEQ4[Gb"
QEh)JG'KP)'PdC@d!!!4VD@jN!'YTEQ4TG(Kd&(4SC5"VD@jN)'pQ)(4SC5"TG'9
Y!!!!#faKBQ9X)'PZC'9iE'&LD@a[EQF9G'KP)'aKBQ9X)'pQ)(4SC5"TG'9Y%!!
4E@pND@CTBf&dD@pZ)'4KG'9YEf4NE'4d)#adD'8JC'&dC5"[EL"hD'PMD#"dD'8
JDA4PE5"hBA-JE'&cG#"YEf4TCQPPC!!!!!4ZB@eP!("ZB@eTG(Kd&(4SC5"ZB@e
P)'pQ)(4SC5"TG'9Y!"!!$A"SHA0TBf&X)(0THQ9`D(PcE'pZCbPdD'8JB@0dG@&
X)(0`B@0P)(9cC@3JBRNJG'KP)'PdC@dJEfiJC'PcD`!!#("[FfPdD@pZ!("[Ffj
44("d-A4SC5"`Eh0TG'P[EL"[CL"dD'8JDA4PE5"hDA4SD@iJDA4c)("KFQ9ZG#"
hD@jNEhF3!!KcC@aPBh4PC!"TFh0XBQp[E"9*Fb"dD'8JDA4PE5"cC@aPBh4PC$m
3!!4cDATP!("dFhTXEfjR((4SC5"XEfGTBf&X)(0THQ8JEfBJG'KP)'PdC@d!!!!
'GfPZC'ph!'0hD@jMGfPZ-A4SC5"hD@jNEhFJG'KKG#"hEh9XC#"[F'9Z)'PQ)(4
SC5"TG'9Y)(GKFb"[F'9ZC@3!N!3&DA4PEA0MEf*U#Q9fCA*j)'PdC@d!!!%!!'0
!)b&dHA"P!!!!!3!!"h"bEf0PFh0`FQ0c)d%JF(*[Bf9cFb"bG@jZD@jR)'pZ)(4
SDA-J6@&MD@jdEh0S!!S-Bh*PBA4[FL"dHA"P!'CMFR4dHA"P)(4SC5"MFQ9KG'p
b)(4jF'8JEfBJG'KTFb"`FQpMCA0c!!!!"'CTE'8!CQPXC@pLDL!MG'KP)'CTE'8
JG'KKG#"XBA9ZBfKPC#"dD'Pc)("bEf0PFh-!!!PQD@aP)(4jF'9QDA4`G(P`C64
dD'8JCQPXC5"dHA"P)'pQ)(4SC5"QD@aP)(4SBA3JE'&eEQ0SC@3JG'KTFb"`FQp
MCA0c!!!!#@CbEfjdE@pcG("TFfCLEfpX)NPc)(4SDA-JG'KP)'CbEfjdE@pcG#"
KF("XD@0KG'P[EMm!%!!%EQ&YC3"`EQ&YDA4iG"GdD'8JEQ&YC5"[CL"dD'8JF(*
[Bf9cF`!!$R"KFR4TG'P[EL"cDATP!'&`F(4XEfjR3A4SC5"cDATP)'pQ)(4SC5"
`BA*dDA4TEfiJG'KKG#"dD'Pc)'&`F'aTBf&dD@pZ)(GKFb"XBA9ZBfKPC#"hDA4
S!!!8F'&bG'PdD@pZ)(0`B@0P)(9cC@3!F(9cC'a[EQFdG'KP)'jeE@*PFL"[CL"
LHA4PFb"MGA*bC@jdE(NJGA0PC#"TEL"dD'Pc)("KFR4TG'P[EJ!!!!ebC@e[G'8
JCACPER4cFQ9fG'*[Ef`S9fPXE#"dD'Pc)("bEf0PFh-JB@0MCA"dFb"bC@e[G'8
JCACPER4c2`!!!!TcBh*TF(4KBQaP!'PcB@*LEfpXDdPc)(4SDA-JF(*[Bf9cFb"
SD@GS,@aPGQ9X)'9fC@jd)'&hBA*P)#KKBf0PF(4c)'p`C@iJBA"`E'PMBA4TEfi
X)'p`C@iJC'pMG@ePER3X)("bD@jd)'4[Bh9YC@jd,#"KEQ3JFA9TG#Nr!!!(GQP
cD@*XCA"fDA0LEfpX(dPc)(4SDA-JF(*[Bf9cFbFJE'&jCA)JGQPcD@*XC6m3!!!
!#A"bEf0PFh0PFh"bBh-0CACPFRNJF(*[Bf9cF`!"!!"M3#-KG(P`C3!!!!%!!"*
cD'&bB@*XC5"MEfjdB@PZCA)!Ff0dFM*")'0[ER4KD@jPFL"dD'&d)'eKH5"LC5"
cD'&bC@3J+'4TFfYc)'&ZC#"QEfaNCA*c+3!!#`KPH("[FR4PC!"cCAK`BQp[E$9
*Fb"dD'Pc)'C[E'4PFL"K)(0SBA*P)("[D@jd)'pb)'PZFfPNC5"K)(0SBA*P)("
[D@jd2`!!"@GbEh9`FfGbF'PdH(3hG'KP)(9cCA)JEh)JCh*[GA!JG'KKG#"SBA-
JFh"PBfPKE#"KBf0PFh-JG'mJG'KP)'C[E'4PFK!!%'GbEh9`)("bDACTE'9RCA-
!Ch"`FR"bDABrG'KP)(0PC5"QEfaNCA*c,h0PC5"QD@aPFbpYB@YP)'0SB@jRCA-
JF(*TGQPXC@GPFb"QEh)JG'KP)'GbEh9`%!!3Ch9PFh3JF(*TGQPXC@GPF`"RFh4
`F(*TGMjdD'8JFf9P)'C[E'4PFR-[Ff9P)'CTE'9c,feKDf8JBfKKEQGPFb"`FQP
fD@aPCf9c)'C[FL"PGQ9bH@pZC3!3!"4TEQKPFQPdC@3JF(*TGQPXC@GPF`"TF(*
fBQp[E&&"FQ8JG'KP)("bDACTE'9RCA-JEfBJG'KTFb"TG'9Y)'&XGf&jFb"dD'8
JFf&YC5"KFb"dD'8JBfpZG'&TEQ9b)'Pd)'Pc)(0dEh*PC#"TEMm3!!GYEh9ZG'9
NFfe[G@*[Ef`d5A-JG'KTFb"QEfaNCA)JE@peER4PC#"[EL"KEQpdD'9b)'eKBfK
TEQ8RFb"NCA0VG'p`2`!!!!9[GfjPFR0[GfjTG(Kd(R4SC5"eFf9b)(4SBA3JEhG
ZFb"dD'Pc)'C[E'4PFJ!3!""[GfjPFL"`FQPfD@aPCf9c!'phER*`FQPf2h4SC5"
cC@8JCQpXC'9bFbpcC@8JCQPXCA-[E@&VC5"MD'&ZCf9c)("bDACTE'9RCA-JCQp
b)(4SC5"[GfjPFK!!#A"bEh4PBh4PC(0`FQpLEfpX2%Pc)'0[ER4KD@jPFL"`FQp
dC@0dC@3JCR*[E5"LC@PZCb"YEhCPC#`JFQ9ZB@ePC#"[FL"NC@aPG'9N2`!3!!C
cD'&bC@3!FfKKFQ*[Ef`E5A-JBfpZG'&TEQ9b)'%JFfKKFQ8JF'pTER3r%!!1FfK
KFQPZCb"hD@jNEhF!FhGZC'pLDL!NG'KP)(0SBA*TEQFJGfPZC'ph)'C[FL"dD'8
JBfpZG'&TEQ9b!*!%$f4cGA3!!QPZC(KZB@ePB@aTB3!#D@jNH'jKE@9KF("Q!!*
TEQ4iEQ&YC@0dER)!!QPZC(KZB@ePBf0NGJ!#D@jNH'jKE@9NB@CT!!*TEQ4iEQ&
YC@4[BfB!!QPZC(KZB@ePCQPXC3!#D@jNH'jKE@9MCQpX!!*TEQ4iEQ&YC@CZG'B
!!QPZC(KZB@ePCR0eG!!#D@jNH'jKE@9MEf*U!!*TEQ4iEQ&YCA0MG()!!QPZC(K
ZB@ePFfjNCJ!#D@jNH'jKE@9cG'0c!!*TEQ4iEQ&YC40cD'&bB@*XC5"MEfjdB@P
ZCA*cFf0dFKKPGQ9bH5"cD'&bB@*XC5"MEfjdB@PZCA)!!!%!!'0!)b&dHA"P!!!
!!3!!%R0SBA*TEQFJF(*TGQPXC@GPF`"`FQPf'd%JFf9d)'pQ)(0SBA*TEQFJF(*
[F'9bG'PPF`!$$'eKDf8JBfKKEQGPF`"`FRChBQp[E"T`FQPfD@aPCf9c)(4[)'e
KDf8JBfKKEQGPF`!3!!PcC@8JCQPXCA0`FRCbBQp[E"G`FQPfD@aPCf9c)(4[)(0
PC5"QD@aPFa!!#h0PC5"QEfaNCA*cF(*fFf*[Ef`CF(*TGQPXC@GPFb"dEb"cC@8
JCQpXC'9bFa!!!!!1FfKKFQPZCb"hD@jNEhF!FhGZC#G")(0SBA*TEQFJGfPZC'p
h)#K[F'9ZC@3JBRNJdP0SBA*TEQI*dbN!$JPMEfjdB@PZCA*MG'jbEf*U)#jdD'8
JBfpZG'&TEQ9b)(4SBA3JG'KTFb"hD@jNEhFJGf&c)'p`C@jPC#"QFQpY!!!!#'9
iF'pbG'9N!(0PH("LEfpX1%Pc)(4SDA-JBfpZG'&TEQ9b)'%JFfKKFQ8JF'pTER3
JEh)JD@jcD@4P)'%JFfKKFQ8JF'pTER3r!!!!"QC[E'4PFJ"MCQpXEf*U)#YdD'8
JCQpXC'9b)(4SBA3JG'KTFb"hD@jNEhFJGf&c)'p`C@jPC#"QFQpY!!!&Ch*[GA"
cCh*`DA4iG$TdD'8JGA0PFL"[FL"RFQpeF#"dD'&d)'KKFb"cF'9MD@&X)'&MBf9
cFb"dEb"dD'8JBfpZG'&TEQ9b!"!!%'GbEh9`)("bDACTE'9RCA-!Ch"`FR"bDAB
rG'KP)(0PC5"QEfaNCA*c,h0PC5"QD@aPFbpYB@YP)'0SB@jRCA-JF(*TGQPXC@G
PFb"QEh)JG'KP)'GbEh9`%!!3Ch9PFh3JF(*TGQPXC@GPF`"RFh4`F(*TGMjdD'8
JFf9P)'C[E'4PFR-[Ff9P)'CTE'9c,feKDf8JBfKKEQGPFb"`FQPfD@aPCf9c)'C
[FL"PGQ9bH@pZC3!3!"4TEQKPFQPdC@3JF(*TGQPXC@GPF`"TF(*fBQp[E&&"FQ8
JG'KP)("bDACTE'9RCA-JEfBJG'KTFb"TG'9Y)'&XGf&jFb"dD'8JFf&YC5"KFb"
dD'8JBfpZG'&TEQ9b)'Pd)'Pc)(0dEh*PC#"TEMm3!!4TG'9Y!'0[BQT[BQSJ+A4
SC5"TG'9Y)(4SBA3JG'KTFb"hD@jNEhFJGf&c)'p`C@jPC#"QFQpY!!!(E@peER4
PC(0YEh9LEfpX0dPc)(4SDA-JBfpZG'&TEQ9b)'e[G@jdC@3JEfiJB@j[G'KPFL"
YB@0SD@jP*h-JC'9cDh4[F$m!!!9[GfjPFR0[GfjTG(Kd)(4SC5"eFf9b)(4SBA3
JEhGZFb"dD'8JBfpZG'&TEQ9b!"!!%'phEQ9b)("bDACTE'9RCA-!EhGZFR"bDAB
rG'KP)(0PC5"QEfaNCA*c,h0PC5"QD@aPFbpYB@YP)'0SB@jRCA-JF(*TGQPXC@G
PFb"QEh)JG'KP)'phEQ9b%!!*F(*[G'9MG'9NFh"bEf*[Ef`m5A-JBfpZG'&TEQ9
b)("bEh4PBh4PC#"QFQpY)'*PD@jR)'e[GQ9N,#"bC@jKE@9N)'pb)'4PE'9dC@3
r!"!!%R0SBA*KBQaP)'0[ER4KD@jPFJ"cBh4bEf*U)$GdD'8JFfKKFQ&LE'8JBfp
ZG'&TEQ9b)(4SBA3JG'KTFb"hD@jNEhFJGf&c)'p`C@jPC#"QFQpY!!!'FfKKFQ9
N!(0SBA*LEfpX'dPc)'0[ER4KD@jPFL"K)(0SBA*P)("[D@jd2a!!!!!2FfKKFQP
ZCb"hD@jNEhGcFhGZC"4PGQ9bH5"cD'&bD@jR)(GTEQ4[G`!!!3!!Bd!M)A4jF'8
!!!!"!!!+FfpeEQ3JCQPXC3"cEQ4Q)94SDA-JBfaKFh-JFQ9`FQ9cC@jdFb"cEh9
ZC#"QD@aPF`#3"!YcEh9ZC#"QD@aPFh0ZC'B3CACPFRNJFfpeEQ3JCQPXC3!!!3!
!Bd!M)A4jF'8!!!!"!!!0Fh4KG(9c)(GTEQ4[Gh&hEQ4A9'KPFf8JGfPZC'phFb"
KFQ8JF(*[Ch*PFh-JC'PKE'pRFb!SBfp`H5"hD@jNEhFX)(*PBR9TE'3JC'9cDh4
[F#"NBA4KBQ&cC5`JC@e`G(NJG(*KFfJT!*!%$R0dBA4eFb"hD@jNEhGc!(&hEQ3
6CACPFRNJFh4KG(9c)(GTEQ4[G`!"!!"M3#-KG(P`C3!!!!%!!!KcG@PdBf&cC3"
cG'0c)8%JCQpZG#"[FL"NCA0V)'&MBf9cFfpbH5"cG@PdBf&cC3!!!!&MEf*U!!*
TEQ4iEQ&YC3PcG@PdBf&cCA0cG'0c$Q9fCA*j)(0eDA4MBA0P!!!"!!"M3#-KG(P
`C3!!!!%!!!adFQ&cD#e[BQTPBh3!Bh4bFbp8FQ&cD#e[BQTPBh3JDA-JG'KP)'0
XBA0c)'pQ)(4SC5$5G(*KFfM6)'pLDQ9MG!!"&(GKFQiJBQ9QEh*P)'9YF(4jD@j
R!(GKFQjLEfpX0NPc)'%JC'PKE'pR)'4TFh"XBAPPC#"hD'9Z)0*&EA"dH5"dFQ&
cD-R6)'Pc)(0PE'9MG'9N2`!3!!!2C(0eG!!#D@jNH'jKE@9KE'PK!!*TEQ4iEQ&
YC@&`F'B!!QPZC(KZB@ePBh4ZFJ!#D@jNH'jKE@9MBf4f!!*TEQ4iEQ&YC@4KCQN
!!QPZC(KZB@ePC'pMCJ!#D@jNH'jKE@9QD@aP!!*TEQ4iEQ&YC@0QEf`!!QPZC(K
ZB@ePCQjdCJ!#D@jNH'jKE@9QFh9d!!*TEQ4iEQ&YC@0[BQS!!QPZC(KZB@ePFf0
dFJ!#D@jNH'jKE@9cEQ4Q!!*TEQ4iEQ&YCA0dBh-!!QPZC(KZB@eP"(9cCA)!Bh9
cC5a")&9cCA)JD@iJG'KP)&9cCA*c)'&ZC#"(FQpeF(-JBfpZG(*[E#"`B@jPE!!
!"3CLEh9ZC(-!F'*ZC(&NFR3LG'KP)'*[G@jND@jR)(*PBh4KEQGXC5"[CL"dD'8
JGA0PFJ!3!!4TBfpZ!'PTE@GTCQ&Y'h4SC5"TBfpZ)'*TG'eKF#"[CL"dD'8JGA0
PFK!!#faKBQ9X)'PZC'9iE'&LD@a[EQF9G'KP)'aKBQ9X)'pQ)(4SC5"eFf9b%!!
%EQ&YC3"`EQ&YDA4iG"4dD'8JEQ&YC5"[CL"dD'8JGA0PFJ!3!!K`Eh0TG'P[EJ"
`Eh0Z884`G$&dD'8JF'pcDA4TEfiJEfBJG'KP)(9cCA)JGfPdD'PZ)'PdFb"`BA*
PER3JGfPZC'ph%!!!!!9eFf9bFf0eFf8+CACPFRNJGA0PFJ!!!3!!Bd!M)A4jF'8
!!!!"!!!'GfPZC'ph!'0hD@i)35"hD@jNEhF!N!8(GfPZC'phFf0hD@i-CACPFRN
JGfPZC'ph!!!"!!"M3#-KG(P`C3!!!!%!N!8#GRGLH3!%#@0[EQCXD@0dFf0QE'-
!!!jPH'PcG'PZCb"TG'9YF`"PH(0T!!!+FfeKE'`JD@0[EJ"cE@PM!!!$B@aXDhP
KE!!!Ch0PEJ!)!d039A"bEf-!!!0'8&9QF(8J!!!$68e9E@ee)!!!#'KKFQ4hBA*
P!'KNGh)!!""[F'9bBA4TEQFJFhPcG'9Y!'pc)#!!!!acEh9ZC#"cHA0dC@d!Ffj
N)!!!%'ePE@pbH5"KGQ&TE'&LE'8!E(*KE3!!%'ePE@pbH5"TER0dB@aXC@3!FQ&
Y)!#3"3%!!!!"!!!!BVS!!''k!!!"#3$%HY344!!!!"`!qJ!+3Nj%6!!!!&T*3di
M!!!!CP0*@N8!!!"b4P*&4J!!!(jTBh-M!!!!LQPME$J!!!#@D@0X0!!!!+*TBh-
i!!!!VQPMFc3!!!#kB@9dC3!!!-C3@94R!!!!dJ#!rrm!!!%G!-4jV!%Xrrm!N!A
%H'$rN!3!!!%%!-4hV!#!rrm!!!%5!-4iC!%Xrrm!!!%p!-4i&!%Xrrm!!!'"!-4
i'!%Xrrm!!!@&!-4i)!%Xrrm!!!H*!-4i%!%Xrrm!!!L0!-4i(!!!rrm!!!N4!*!
+BE8!a'5-$NphEQ9b)(*PFfpeFQ0P6M`:

112
Mac/Lib/test/tae.py Normal file
View File

@ -0,0 +1,112 @@
# The oldest AppleEvent test program.
# Its function has been overtaken by echo.py and tell.py.
import AE
from AppleEvents import *
import Evt
from Events import *
import struct
import aetools
import macfs
import sys
import MacOS
MacOS.EnableAppswitch(0)
def aehandler(request, reply):
tosend = []
print 'request:', aetools.unpackevent(request)
param = request.AEGetParamDesc(keyDirectObject, typeWildCard)
if param.type == typeAEList:
n = param.AECountItems()
print 'List has', n, 'items'
for i in range(1, 1+n):
type, item = param.AEGetNthDesc(i, typeFSS)
data = item.data
print 'item', i, ':', type, item.type, len(data), 'bytes'
vol, dir, fnlen = struct.unpack('hlb', data[:7])
filename = data[7:7+fnlen]
print 'vol:', vol, '; dir:', dir, '; filename:', `filename`
print 'full path:', macfs.FSSpec((vol,dir,filename)).as_pathname()
tosend.append(item)
else:
pass
print 'param:', (param.type, param.data[:20]), param.data[20:] and '...'
if tosend:
passtothink(tosend)
def passtothink(list):
target = AE.AECreateDesc(typeApplSignature, 'KAHL')
event = AE.AECreateAppleEvent(kCoreEventClass,
kAEOpenDocuments,
target,
kAutoGenerateReturnID,
kAnyTransactionID)
aetools.packevent(event, {keyDirectObject: list})
reply = event.AESend(kAENoReply | kAEAlwaysInteract | kAECanSwitchLayer,
kAENormalPriority,
kAEDefaultTimeout)
#print "Reply:", aetools.unpackevent(reply)
return
event = AE.AECreateAppleEvent(kCoreEventClass,
kAEOpenApplication,
target,
kAutoGenerateReturnID,
kAnyTransactionID)
reply = event.AESend(kAENoReply | kAEAlwaysInteract | kAECanSwitchLayer,
kAENormalPriority,
kAEDefaultTimeout)
def unihandler(req, rep):
print 'unihandler'
aehandler(req, rep)
quit = 0
def quithandler(req, rep):
global quit
quit = 1
def corehandler(req, rep):
print 'core event!'
parameters, attributes = aetools.unpackevent(req)
print "event class =", attributes['evcl']
print "event id =", attributes['evid']
print 'parameters:', parameters
# echo the arguments, to see how Script Editor formats them
aetools.packevent(rep, parameters)
def wildhandler(req, rep):
print 'wildcard event!'
parameters, attributes = aetools.unpackevent(req)
print "event class =", attributes['evcl']
print "event id =", attributes['evid']
print 'parameters:', parameters
AE.AEInstallEventHandler(typeAppleEvent, kAEOpenApplication, aehandler)
AE.AEInstallEventHandler(typeAppleEvent, kAEOpenDocuments, aehandler)
AE.AEInstallEventHandler(typeAppleEvent, kAEPrintDocuments, aehandler)
AE.AEInstallEventHandler(typeAppleEvent, kAEQuitApplication, quithandler)
AE.AEInstallEventHandler(typeAppleEvent, typeWildCard, unihandler)
AE.AEInstallEventHandler('core', typeWildCard, corehandler)
#AE.AEInstallEventHandler(typeWildCard, typeWildCard, wildhandler)
def main():
global quit
quit = 0
while not quit:
ok, e = Evt.WaitNextEvent(-1, 60)
if ok:
print 'Event:', e
if e[0] == 23: # kHighLevelEvent
AE.AEProcessAppleEvent(e)
elif e[0] == keyDown and chr(e[1]&0xff) == '.' and e[4]&cmdKey:
raise KeyboardInterrupt, "Command-Period"
else:
MacOS.HandleEvent(e)
if __name__ == '__main__':
main()
print "This module is obsolete -- use echo.py or tell.py ..."

63
Mac/Lib/test/tell.py Normal file
View File

@ -0,0 +1,63 @@
# (Slightly less) primitive operations for sending Apple Events to applications.
# This could be the basis of a Script Editor like application.
from AE import *
from AppleEvents import *
import aetools
import types
class TalkTo:
def __init__(self, signature):
"""Create a communication channel with a particular application.
For now, the application must be given by its 4-character signature
(because I don't know yet how to do other target types).
"""
if type(signature) != types.StringType or len(signature) != 4:
raise TypeError, "signature should be 4-char string"
self.target = AECreateDesc(typeApplSignature, signature)
self.send_flags = kAEWaitReply
self.send_priority = kAENormalPriority
self.send_timeout = kAEDefaultTimeout
def newevent(self, code, subcode, parameters = {}, attributes = {}):
event = AECreateAppleEvent(code, subcode, self.target,
kAutoGenerateReturnID, kAnyTransactionID)
aetools.packevent(event, parameters, attributes)
return event
def sendevent(self, event):
reply = event.AESend(self.send_flags, self.send_priority,
self.send_timeout)
parameters, attributes = aetools.unpackevent(reply)
return reply, parameters, attributes
def send(self, code, subcode, parameters = {}, attributes = {}):
return self.sendevent(self.newevent(code, subcode, parameters, attributes))
def activate(self):
# Send undocumented but easily reverse engineered 'activate' command
self.send('misc', 'actv')
# This object is equivalent to "selection" in AppleScript
# (in the core suite, if that makes a difference):
get_selection = aetools.Property('sele', None)
# Test program. You can make it do what you want by passing parameters.
# The default gets the selection from Quill (Scriptable Text Editor).
def test(app = 'quil', suite = 'core', id = 'getd', arg = get_selection):
t = TalkTo(app)
t.activate()
if arg:
dict = {'----': arg}
else:
dict = {}
reply, parameters, attributes = t.send(suite, id, dict)
print reply, parameters
if parameters.has_key('----'): print "returns:", str(parameters['----'])
test()
# So we can see it:
import sys
sys.exit(1)