[comp.binaries.mac] Macintosh Technical Notes - 238 Getting a Full Pathname

bytebug@dhw68k.cts.com (Roger L. Long) (06/29/89)

[Macintosh Technical Notes - 238 Getting a Full Pathname]

Written by:  Keith Rollin				       June 1989

This Technical Note describes how to generate  a  full  pathname,  given
either a  Working  Directory ID or a real vRefNum and a DirID.  By using
the techniques shown in this Note, you can find the full  pathname  from
information such as that returned by Standard File.

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

:#941-M-i,R0TG!"6593K8dP8)3#3"#KP!*!%[jj6593K!!%!!#KPFNaKG3%!N!J
#(P41,M)c1#j(CA4dD@jR)'%J4R9XE#"3BA4SEQ&YC3!!4$Md!!%!5D('!%E)c!"
+#h)$FJ$r!#B!!3#3!dQKi&G28N40380"!3#JNkU`S,#Bc3#3"N((!*!'*pm!!#p
k!*!'IAF!$!$i"L!!!!)!%[jEq)pI`B4"RJ$!-c%CJ#!3!#$3Q,"M`J%GN3!3f9'
!0J%SrSAl*dj!2J&'"K`TJ'+!3`%K4hSdLI*K3M)G$3BB'V423U%!F'5$P&3E"d!
M1LS!N!!K!&123$aU0DLeUeD3!#)!J!fDX-80!&N"Y)K+!3#'!,Mqb30!6fi!BIj
-+'5id+GI!(h92J#3!"&!!6%!"-J&B'*aAAPhmhENq`p!X)kA2A+GmD8"[)3ZIK3
!XEMah-Gh29EQQe!!K`%'4mMl)@2H$acc3$di)Z(%Mc-'(KLjT`9823-VE0L,"Um
5Y(P3%JS%-"9!@m$@!'3Ci!Y!JbC"ML3C!Q9mK!#9&@Dh`YdlH2(NcD-h!i"%J[Y
3`Y""ib4-Qc*'b2&''d5N)8F541M3Ja&eX-&'I[[eppm1$3588!)*@4"!%["m8S3
FX3$4K3#a"2*!'a,8JXQ*Eq64`"QJp"'F(9VFmd8E%0J#L$dK6%!!"L8%!3Ne0`B
R"K[fr&,(1bl30BN!YS"J6#$b!(02*IG!BFmepZ`"!Sm'f+-#"#8d-!FN+d"`65J
2L(%2*)'3!,(-(2E!FFmG+ab!3J2%J@*1FX[*!mi$58"cCCEAj%"L!hTm`-)!8N$
`aKPR`*!!*Me(2*%%25+5Q!!G(*6`4"i(J)$(!6q`B%!1#,aK"`4b0%!&Re,F3`8
%pf$a3C2dG%,!292Fm0X$GH4!`3-hb2-1$!8!B8S)6kL+#K3eK,"SSp8!3XmR4!a
JBaXm2Z%#20!N*%&#$#68&M2T!Q!"!0'dHpdrf@A3hRIKM9IH%1HPam4p#9b4""9
)J0"'(N+`mFBBDi"!a"-J3-LII`!+f-B9#IBJXB39$eMJJ85JN!$''aKrM#!,)f0
XK44PQ1&'(@fN81&d',S,3!dG*T!!mcf`M)%Q"%'Sm3!4G'a,a!'!"2&#(80NF!!
-GG6c"a'BDNU2Z!rd3Dk&!06mEK%jl`c,2@p)dF%2GGJ$MFp9EiSe&E%3B!%SC*Z
0YYTi%##"V6&!-XF"AeK46`M6I#[2-eUAblAA!)$pLFk2mdc2$Q2B%`H*$ea"K6f
h$%YdU+0kHb123-caJ"f$&hlM!6*!!8E3!'5p0FdC!L"$f)r$`p3P33K$a6fI1$(
J"cV-`md8aVb!!Zqq!bpm'il+mmF,dUF`cbmcAeLl$lMVc03p[a5k`UQ$b#-(!9@
!)-mKmS3MU$`[82p##P@k%8i1"L"JbL)2S#!ppAp)`6fqNEfZe8i!I5JJiaU3!!!
jP)%1GC!!JaY!J))jT)"#dY'Hc8V3)5'8iKPVS%FelK%'H5#L5LpJ3Ip+mCXjc1m
"+P!I,1Ea!H["BRBDI*F!pU$!fPN!@)H`aa`b`!"E!%%HU+L52%4a[4lDE!,,)!-
-hc%&%MJ$H#Ki"![QYlA&e5i!&I+Lc4$Sa(Fad)%3P#!&,BK"-EjV!3P3`4a!X))
HJ%!&G'JMl@c@JJjq-)3M,+%J(V##"m5J5S#3!!FXN!")5%-U84&6X-FGC#!25#a
4(TrB!3i0D$-!b#X!2D!#'Y)`4q(4S3`JJ)-$je!'0p"KMR5i`aY!)+!kd#%0ELM
$(&`!!K#)%T9Q-0!Fk%$,0pJ5PkJN*3M'%!B(PB%-%G22a2i6S!&KM*FJ5!)ak4#
'0HJ5"''B)"+--!83A1%0FPJ$,XrJ-!19B3ad3'FHXNN%F,S"QQL-S"YJL3CJ0SJ
0UC5Q'bJ'J[hSCjRSA#8FhR"2@-ib$A6!TMC"3)BhI(-rbK6$2*RTS(@#i!Y3%-)
4(SLa*,M"$,1-*`M1m-##pK-%GQ#C'C`!-hY#df6eI)-CA)T+"cD6SZk%Tc`PZXe
q6T!!SfbBimBS9Nd#'3K"0UAP!r8j4iM1FC80LQJ$+L-%G+N,!$jSelZB)#m!$%1
X!(K'@EH"9R'8p4aSCFFR*b$@!*!!S+aJc+!Re48!CLb9QKE$D8'lqFd`52@R-@d
C6GX39F-+0TciR+S%qHP2"`9d2`2pMdX21SD%kR+K$5hS3b2DbiP@p++MR+0'PpP
-0RJ8T#*pi"$dBe+8JJ#PFZ$T5Y0JKeB#eB&#PF-m)AYEA*,"SmBNTP9"N!"C9"*
h2kJ8V%j"X&`iK-'"VL3U6bF)Kc,)!EGYS#`)jN$30h4A$[SCf33CUP[VBTF1,"M
[,4RQdH8f&`3-95Pd35#'-T`"Pfj!lNlh'd`j$21hlibRF,%T5QAH!3e[B!-U9EN
`A9CeMTee*5lVm%`3e%($!,d$+Y%3KYkQ8N"MX(#(bp"Ei@,8$HbX!aa%UeX"[B'
Ba`@ZJZFT-M+dmTE"l2!G))S'F,B6C2MGU3a5i))+8F'V0SY!@6q!9K18Y39SP8&
C"B(@4j3e'@KeaLFh`!#$8#!!([MN,qT+$,b'F6TZeQYC%A#&k`BBaJ9dJ*N,mQB
SYb86$5lPMC1TfM*ie)%5$J-VSBP,UFi"Y+bNXBrE3&`c@)bL,#k$`XklbeiLi3d
LER&mFDYEP$S)e)FZJk)C1SIiXM5Ak,dPM'rlcmZLSENA"X%Sci!'0XccZ(2SE!6
$`&)bk##-jpUVG3$!L$)[qa*Ph@%Ch39%)4,4L%K8)K1ajdB!3&'++U!L#C+Aa5f
QB*1-bfZhSr!#&EMlhI#1YlcR6Hpkfr[Hq(j"RcRjVJ'dHpq-8pmr9!!25C5)!&q
S``PL!!Jb3)!FAl"$(M+J,)$AMJRb'$Jm-(%2,j4$#!q!JMb`33)ki8&3p*K%!C*
!!3&!)4a0f"`d"('%hc$!#h%!K-q+`3-a6%!-GF$"i5aZ-b4NR1#I#!)$%Ui1#(5
"@#Fia3[bJ(#&aq!4,RM!%*!!YS+%GdN&'!$%",bq"jIA!!4"Hd8H(M"YIkZ!k1p
LYlY6138kb)'Ca(`"hHdq"$M-%pq!$lcJhkh[DB24)(YmPlS6,jBqk$'(M@ZJC0f
!JVpfc+NJ3m("%VD`0EJJC86!+3XfVc#'ICjN4&LCBQ('!JYH%1jmeL[M2*!!J*!
!MT31*6hT'e"J!Y*hRJ9QD#BVAprYa82q""fL(LMDaUQmlBd+II[E&kj`0D)ClAf
[H!'kDkH%j-X$&'c,P0Zb$MHjdDeXCdXE0*c20lm"6R#%-a``I*DQS-%`ip2ZrLH
82lR+A5i@QE-jRA-'3`-UST)(SJ-Z)9!kTj-khm)kVQ0rU"0r0h*rr`"laXG[XFF
emL)!'P!+#I!%ZA4BFm"H2YCEQqCGFd4L*MC-qY&KT*C,cq44+V8'EJ"UT9CVeS9
C"%9UbP5#Qe98CE"4i549rp%'rC9Eqe9kkF9Hdf9BlM9I$A*Ga59Kf$3&*HC4KK9
-%PB0Ff3'1LK3"$8(%0BJd-43[XCIU&3(L`C1Ff4BE+"Sa,4+k%4DfE42Ta3'C""
IH@"-ie@'E""C4jL%ZL9G!rC51CCJmP4UD5"Ke&99%p4-$-913lBIe%8(AXKF&-0
JU38#Ga!'HF#(IMKNPM9-M3K3r3914i*++K9-p`3#I4K"9BK+Q6C"DA#)U*5)`69
2*&CS[Y8'V[*-f&3&pq4G)$!&H6"-CF"B0q!#-)"IZ4@(Tb3(m89H*NCJM9J'QIK
KD4!((!B#-b!$,5!'%%92c!8cK+KSRUKTE&#0+89La"5,V"@*569,VJK0f1L)Y8K
G1`94QAKI[EK-*!CM`PJK(Z"R!'!-cYB@mI*9pB"@qP"@'C!!!,jRHU!("5J'9AB
%!iqRJ4K!N3K6HTi(HLEPBhJ!!KZ*3Ba(Ha8jNQqJHM098hD8@$(C"LS*H4V3)@d
!2"i%3[*`$Pr`2"m!"56`!$d`!(V34,,h4E"A![H46a*8HG,%-8f&8bJJ!bc3!M(
3HLP!I0d@!JP`La4d"NLJD%&3"9J!!LCJ!K4%NiZ&NRDNP9f*JE!("0jR($A`!(F
!!DA`"@XJ+`*`#cS(#ED3!!3-N!!&%(!TiXFT2P-h(8!2lj!!0Yq3!(8UJ(rG4J!
*m'r&4jG,k5jZjJ3Fb&Ff!)+r9%c(P%Z&TM"h!%i1j)Pb!&'R0%%U"C86P"r"pP2
$p*S`0NFS!)HYG!D@U&'RG&X4TTSGYPVl&346-!4*N!!%!RPGB3"2+XKNRYC++4C
I5jJ'E9#1l,@%[fQ*6aK0Y`P3Z9PIFb3$0A"fBd"Lk#@G"SC0RaCUhK9I@jL0Q3L
'PV@$YdC3P$C2UDJ`"+Q%!`N#k+QHl"QGdpKTD1F'me4,XSC+mRJ(VcQFC'K-JDL
'*eB'lJ@$k145bT4KX[CUBj!!"dd@QXZ@JCq%$U6j8Mj9JK2dB21dAq69"R$JL!k
+6+Q*Jb,@QK)+QlieQj-RRK`PAlTj"VR@Amc%KU`)MjQiAjmBSbpP"0N)!Nd36X4
QM+lP6C69"[!*DTP'M@i)LhjiJkYTJk"'Rl0iRf()JjV9RaJ+S#`PS%9S8-38R5N
'"pbdLM5fAe,UL&8k8((+LGl9-ZK8"['eMf)TMa@e8Ld9I'i`SP'PT"kkQb#3!+8
M"PN5pSD[f!3I&UFd0JBq0Cb'"Bchp!E3)'%`CSPFf%S8)iTei)QR+&qabS+X1%[
Z&@RPL%XU"3GTm%lIP+Rm9)3&bPpjF%TIf+&m1U9rHU9+1%X$53C@f%Y6S*de1Np
XU)9("PA+")Fh"J+U0JHp+JFPQQbIe*!!lK)!e[#C*YS@5(#AA2!-G3!%8k"fHKN
,-!!'Dl)!D0!Q%3!$J4!+`Z!dPJ)"45!&R`)kDqFrrd!rl`"llETrhhF2CI!+D4-
0r6-(Q0-%598#Li!!%d!PN!$J-r1kGM'!2L$!2,rc#5`3Q)"J$$m`E3qVI$jcGQ"
`$hN`10rJ"2+h!K03+NV$0$YL"dmJ"T1b+`"3$cI!!a"!$ar`![A`"9LJV`@J!fp
#3p-Q!3&$"#(&-Q-!NTc(-$HTJG,@EFV@&LMk93[3"&"`"8,D62ZfN!!MFCIem!"
#3!pam!,8TbNDSb0JB!p,8bI!%JP!`,41#l@1p!k(0#L&iTL3!+PqH'!!jXHiN@N
2"05Clk)!#E#Hea9(Fa#fM2-!#3#R#H#@-014kFDChAB%#@!%9H!%3d!&5I!%6K"
0%F*8JI98)B061P#TNkLV1`"6-V9BZkZVrZ9G+E#lZ9QJTXZ8PKX3pf%&35!&dfB
"!21eDl#lc+Pl@rY1RPXl*`!`ZVKM(--#$1)JPSHmGUHmU-Yi#(!I3P!%iZ%%deB
"!&1q$c+9&+-J*h!#bfXc&`!`!N-`)'#p$J-alaZrX2F"!"1@Em!a8'"h#J)%i5Y
2(01rld+p!$-b4#!(q3%b#S*6h@XclAXI4H!%4"$#LJGlQ(XI8P!%8&!%36!VhID
4!$``"82!$c2!m*X%mYYY%lR!)`16`YX$T'Z6X)I"'I`'4Q!baBJ(#U+9+!`!B!R
%El$"ZYX$eRYk'pc"#',"AE2!*Ac#6ER!hL8(#Q*lXN9EZSF#3'#pj"X%6$!&4H#
9M*H"M+-"#j`%4V"5C6N(CjQ@"&2#1Sc!hCB##j`!HSaJZmJa@a!$AF!$2R!#,h!
#[S3%JRc!2!alcjPE+Q"j6B8a+&$%A'PiX-F!NTG'P-G'dkCpRp!(HRN,E))#BX)
&5H)#Pk#hAq!#G8!29,1B4r3"2G!!Mb!&,d!dQ+4*jF*i+```B4c&)dc#*MaYS-[
-F9`%Jjc*cIX#Kcc"`X8a#T*KH)F#h*`(ihX#1R!#G!ajKpc-X'F$#fbrjpX$i+`
IiKa8iYZUm)brrd&mM'FIpp'kX-X%&*6&'L`(108$CM!(8N!((m22N!$(!6NMEPI
d#H@'XXic20E$EB`R!!P332)5a3F!c@,F[(CF1e'!!R2Rb4D$-AFdH#lpd[3Q-b3
0Hc5`ZUhlZV%lZbTY65&$Nbr6"VX,TlTk[%5U[T[C[!E`[0%l[`$6NVZ,-GXl"Pj
FdL,X[M[F`h8-HdN!-&k#aVK(",APV1TS@%!ABm@B@dU$PL!3!bl!eU@e8dAmL%E
Q8`"9a!l,e9&eJhAUL@33[+bhACFS9DJm4fG`A@*`T5k3!!$6qULSP0CT'C!!D$K
2-6"Y@hdIAQ)(%3BcU#3bX[P596S'Z[S'C$KHV64m84ACDee-h6V1f0Q*c13'@Sh
A#c-'XSMD$qCEpHQ)!GPI[X9+%LDGM0EC2I8'Ufh2LiJ#me1Lh3B%H$d&Xb4L[2X
'$80U'+@Td-5Hd04C2PD)Z"Y94Fa,#A68hFB#!*2)+%#@CSQ@+B"f*Yb@-[A625#
APAc*9dh+cGX##lc6&j-aqQf9@#QA8`el)5h5X1F!e#c(eic9N!"(eHq#ac8X`#e
C`!R1e&6X`"$F!dk3!!4-i-8rR-4#$$-+iY1Pf`$4`AJ6F-JNfF3+`T&Ee@d8J1+
SKj%,Jb!V(XAVE-)"hVab&d2kcG)`rH0!VQr0#p'2)flNCY("-c`Xm!JC$AY6R!"
`8(Gh4mrM2,iL`!9`S!-LN!$1'MJZZ31abqF"pa-F'MX(()X!8aF+$+!&8p!rdU-
$e@1"k`Yj*N$'FQ$''K0EAah@E0b5Eec0$Uf"$%iG1`-0'Q!LX#F##acPGKI19Gk
U9`i(,l$P86cSB)33F2C9cmc1h3B#'Ea6pDaM&%`aMG`&)"!#GL6*k$aYC14'ErY
9"U#fE$X%(VeRh22P#A"dK!)0ih-!jA-qkE-qlI-qde-pp62QqX-rrP2X!56Rc8X
#18-"3$!2d$#hGAZh3b!'+9F0m[!)*M$,5F)#eS!+0D58M)FcM`2Z[f$,Z+c,[-a
md`i0kXlZ5G!$ZEc,4(!F9[-%b0aY)T!!-r0qbr9qlr43a88c#C&`$i"!lI,`$6'
JP0df![9JGb%!!hkE"r2`#JP!$l%J"l"3$b@J#R23)8S!,""!3cN`$iq3!!0GP1N
RfJ#)jfGHX`F!F0)TVFqA*eK![[1"*c0[d'faS!pIN!!!pE!%'%#`pb!&Fi!""S!
)hj+B%2!"H)!()D#d6iF%"6m&JV,VK`)&Fa!#15!V$j!!"`N("""h"NDJ0LA`+fe
H,-I5"&PI*6`lpJQ(!,9!(*!!B!r@B!qa3#)'i!j&3!jf%!)-%!XJ0*MhB(F3i!J
FB!HJ-#@!`!E&N!!%G+)(`$-ZbHaR!N!03Nrd##F'S@!2f'!!4f!LGf#[E"!-L%!
RGM+a&3X)+b!'a"))M!)"Mj!!"i,`!@d!#&)3)LX`"Jq!p@qJpB0L"&4`!$KJ!Mc
J+#%R"VmJP%C3"*4VIG`bqi$3Yd[$!V&3",Qb!%J##bA3*N[EY%q,"3e`""1J#CF
I1d'3!(&98!q!F!Tm$`L2N!!f+@#!4i!"#1!"C#!''G!QEd)4S)&B!!MQJ!&`!'*
J&LJj!L!'I0mB@(06!1XFV5@3!$F5cX)a!%R[4SJ"2U!'k&8G#!5!S"L8!Kc3,!3
J!83$qkrr8B%GB3)#!55B!TM$$UL"Ha!&#J#[J`$f3!pm!6%J0-i!26!%Mb!)P,q
Y4`8%8`lFJ8*M*k8P(R%!EX!*8!0r3!m3%5V31p31B"*-h%rTNBRD)`GJ(jhi!lb
L%0b$1%"#SN@Ei!$'*"$B`2'4!$c!")J%21"0`-"BF!!Z!4Di"j1!'+#"R0-&DYr
YbheY3)XmJ$-`!5L!''"phk!1U!)%U!$E!!D3!"8&B!@d(&X!!bk")c!&Eb)b13%
XJ!'3!-BPB!3**qh&J8a5+TD"rr%E*-)"&*PlX!FQ`!0SIrrJr3'#Hf!(!-%ID!2
U32G0J"#JXPC&UG"lEm)8@Si`B3IqaX"+K%XM#,LFqZF1U!!)k(e!B%dJJ(Z!#8+
!k*Z'A!!@l+XAGM@H3$e)&3qJ#Ac$&Y!0[b%,D"Ce3H[p!dV5X"+#$8")A3#YZ)&
2%JAU#KES3$"J)3Q!(G#"l)!q0!4P*3,F"l&dh[VB(eY[2+4j1D8%F#3kM`[)-@(
Yp(`iaM+6r*S4DelrlK1)J6mL$p,"`H0f31PK3!%bB$5-8J%b'K#2m5#GMHL621+
fqdP"DAJ3*D0dX!i326!(bm(F3CkNYUJ5BZ)T)hdJ!"L!SSF((J!9i!#cJ!-q!#F
3+5)")cJ#2!)3h$di%2i)S5'%!'!J%5l#"+MN"Z%IX!-6)!#!##!!"ZT"(AJ#Di$
eBBVHm6XJJG&S&Up$D%bJR28Y9N9`S(j%!19-(@*a#(i$LA!0Xq!2N!$"+!!)&X%
AZ!-`!'-**RT3$N*!PHKkaJ!'*)T&d5IqK(+)"Je!qN'$19!0RJ!5UJ-`S2iY!`-
!qm5!hQJr&qm"6!%6N!!$b)"E2!1KS1)NK)08YJ"!'d!VG+#Xl!'d!JMN4HFU)c6
[)dQj!R8I(Yf%Q$BR,RZKP+M'%%@5&rYpl1Q1p$IFK3*%$r"D2@fJ'XQdEZ-#1Pr
+1354)"aZV%93*HU"keX1K+)H[)%@S2*b3*@J"l!a((D@-p!@b09A%3!-!#I8al,
b",k!Irb2!$*!#XJ"55!,T)%mN!!)XJ&iY+mb!3TH(4!#)@*`4)-JX2ad3-Y$&hY
Qap'ZDC,cZK[2qj!!pNE)G4X[J#",T)NmN5Jb43V)!P)Gc0DVHhR0UcqUb"P*)fP
N!lJ#kkTV")"Z!")k3J)3!!F!5!V*)%NNKk54***I6)kJ*"$!iQCDc+Z0PJlQjFJ
"aqNfdj1--cR5!mb'fR!E-Yl'L`-LJ2@"!3HT#TTI)r`!"83#l"N)N!!!+T3FS!1
Mbb*'-He""ACN!-!*"`!!j-NY%!$5`AN!"3"!%!"+4K!+!)!P#!J&S#6!J%+T#66
#2k!((8%$*!4!L3N-`P6)NhZb6i)%#P!KB!!+!!!f)!$)JJ!!$`"P*J#8Pf"3&XT
$D3!5C@YBP!#J8@k%k9$c*L8!`!39!J0m5Ji!!"b!![KXSBd-03"6b5JGT6[S#&(
!9Q)#X'-8hmQY530$bT6S%P1*+PFPSP58a4)"0)51`!D8CB@3!!!V)"jmJ!e!"$*
0#XSY9-"C"TJK039Nc%*jNp35!&b#2)N6"!!)!#X'a!F%J'`!+"Y"[`58Jk!b(*i
FHECJj,UbB%CKB'De*pNLDpk1K!dq-J!`JL0*-BZNaG5420)Mr%L,@6%lCTlm!3p
6BhV-NBNN'BMS!Q'`T`8%J&c3)a2#"L#C*"0MYXbZ!6-jjX@-NR,QUb5!N!$T)fZ
Qam5Be-&(US9D@3F!3#B!!,d!!)5$!&!!!N!+#!"0)!"F$L5j-lY"d03H,B"S'Nf
NU65CTY1%QP*c5&+(c-@H1&HPHj&YB@aPYHC90ER#KI#C0K0)bNb4'6IVjT&8#cc
6CF,0LUNMq3(%["!"`"aiKF%j1+[Qhp54`N!!Q!$&56JETdI!!FF!!83&&V!-!%"
Bk!J@J1BG"3D3!#i#!1FX#*qcFH)!Bm!1*QFlX*`GS9dN"@5!!1lP#HJ(!!!05!+
$N!!ZdJ813!EBi&kUJ($J5@ERAX%!5D%BF)%98""J!!"3!EjcJC`bIE*'Z*cA5*L
NM!jdQ`QJZ6JCSlXlIUH#X!!k)$-U!q1a!"m'A*f"A*,GSU-FL5pi")A4[,c#H*b
5p@S#`8Kl&T6iJJ+%QLYCEhL%MUbe#`)#B-mC#9)9a(PQ#+1J'8*R3CJ!%`"dGXl
2k6NAU!-9#`bJ!6"3!pT!$i)%E3##3)&Dd%%3369S"3d!$f!`9&$mQ%%VD%)i!"'
8!3J##9S)(QJ"B!#$3)*b8!mk3G-&!9#K%P5$iNG#S%%(!!-S"!T5Km,3S&"$DDM
U$!!,B!%8K#5k4*8S%R@L625*0Y%T+N@VD"5pSP!dLe*4,,T&YDJ9pD*Fp)Yfd6%
U4XYS'$fMB$50NP%dZNE9U"PeSfcdMEE415T(2fJ40D&d0)lU86M+4r0S(kfMHp5
2#P*!qNF$+5%GT)BdN4E54BT)'HNKID4Kp)j+dJH+4afR*EfNQ$56DY*0bNNlU5I
pT+!dP)V588T+5kNT2D@SG($H6KJ3!J!!#bJ$U"-`X)+1J!1+!6)!!`!J"@b#!&!
GpXU6`3(,!"qd8K@3!$3C`#4`QlKdG,C1!,!#BS$PV!3i)B%Q8fH!#BKR#YJ#M!'
DlT8jN!!8P%(T"!!S!*BD8lIj"j,#-RK'ar0dLS"MZPI++3jJ"TMJ8iB!41"+f@Q
k@!4*B4JJJhXTdmCT4lJ%5F%BB)"lL3+Z35`&!#9!ALD&Bi!'2Q8*U!3!!"Y!c(6
"#aBU$)J++-!SD!&fQK#3!-&#K36hXT!!@%jl#J!mDLf&"&&""C3#6m*1C`!!S!B
"pD)D"M33!!M"4!d!H4)(l!)D%"8-!$YJU3B"#!5!"$SkZ8&2a3F#J!6db$)c"B)
R)BJ+#B"AqY-bm`@5`LkJ!&$e8rV6"a!!eN"5i!#m!+V5!!!J!5J"6LJcHL!T-!1
CZVU!UPX)!)C!VH)!U#S&!!!XQ!3BdK-%6c33&9+!42#R"8%9,&4'%&+pkMSe#(S
J!!M@f`N'L+F)1!8#`!8XeD5k1Z&!9'J!2X#Y9J%"B$a[je2e$NT!!2#!b9S)!LS
eL!S1`khQadJ32%P"90!!EJ#SrS0c)!!kJ6RGTiPKPVk,K1"-#`,Na!,%-`$3!J#
!$bBU!)J"!3!(i!)m%"8J`&c`TmDc"b4ABi!1QUXr#!"!J+5fJH5+$"K"9*!!!*R
9RbB"!*!!"lJV12LZ5L!!q!2M+JbQ+dqe$L,"Rj)!!1!-Z#XjF+bYe""`9!!!'Gi
T-@'QM@#NdNlqbPfaDLiG!US9!&aA($!-A#X!U!$KeClbdZ4D$%""9+J!5X"G2!P
2%J!d4#e&"C-c#,M9JL!#TLX[Z*FX3)Q+J"aJ%"C!!#La`*3Fh-X38!`!!"GJX3$
!aDV-f`N"lQ8&8!HH"-Hk@"a!B6Q"Ml8(!%!+#0N!-!3S,#@iPaBJ[LjC*j!!A)F
"0B#b6`B#,0NXN!"FP`%(J,*!!33X@6,3CGN"P1@K-Q$*[S(NkPHJV#d)XLdf!#6
@fdN!S+``)+Y,YK"3f),K,Q#UQ)fcN!!JZ4i$IJ"P)H@+ME1lY*B#JAYj!Gk&#PL
bTL#jiJ*F`'Lc`Tr0X3%J&R"Ah(S"F+N%@,+mJ,X#!dBV"q!XTMd'AEDA!)!,i!H
X`j+9"Qb@"c"D5@!jPf`hS,$eC0819a+`C0%"Gi8&M"BE!)",kf,R!AG&"B`@(lM
5*EYJN3%SZ*FBB,j5!#(,dEJV*S#f1!!!`!"UHfCZ*dKe#fM!e#i!!I!"+#`hJ,E
5NpHf@!'J!T+V-Q!'d"B6!!!D3'eV!(F&"*q5!'3%)%"YKDT143'IFJ!)@aa!ECF
!G`8S9!%d6GYeD`8S,,#P#SMKdklE-%"KLF'pc!$58`03@cC!B@R"aA8%!%!(80X
l3'%T,9A`U!Xha`S!38"K6ba9i!CSJGSf!JSlDJ'!"Z#9,S$D9NSF`!%mEN')UcP
hhBi##JY[E5i2PEJUea9-eiHV!3iP!a#b+KF(0)1dC(0&JBf&ZKC!!)a1C'YcrB'
iP@*D&aRme`d`&A`!e&eCY433h-X0)'9E,!#i!9Sh&`aE!,!"XLc8&3*DGaN8'ES
ECU&Z%`LlI'$YmY#RkhDa30ieXR5A+5"G*6S'Y#iZb*edeqS5hK`,!0b!eL8'0'$
YZJ)!3!@JEKl3ZXh!'3)!$S!6P+cE*34DpaK!JA[*!Cj-jh@lMd$V&J1%b`&3!HH
&ZTT!k`i$VXX"())5J,UP31Yb!(T`,cZ!%ILkX%$hQPN!d!(UUJf!ZVXJpDTGjNY
2*km503Dbplpf!%U3!"5JEM3![3Lh!c#$VmX0Y#ic3,`G30JZAJ"!@dFR0#Lq3"B
$3&ej%(BC`,hd!'F9k[D$[%X)lUm$U!p,&J()APN,!$b!$"Lf5hB#D0eGJ%ip3&e
9YjJ@rlj6`PU!l8!"AV)T32C#AJr!I6h!NU8"XKFHh&pCi'VMl!r)Za6B!aJ$F4X
!3LX`j3%"pe!+J5@l@A'!-X!(!4Fd)B%P#`EbEXJ3#m$cqFEC0C!!GdA["i!&,0J
1Q&p5F#mr3%AGYR%f%)"H9IX"IUVePCKKYqJ+J$YV"CEX*FLlI$CLi0Ni+`T!ll2
0TFi8k4D%9L"lm8&)23B#PX1biGY*#rTU3TfU+e2f-J(8DR8K`)BY-m8Jljj@CVS
,4Q`!q,kh-r-bdh43Dq-X)SiLVV03hYJi@hjV+4K!X9Q!"EIIBJ!1lU8*N!#l3KM
6dYrEL3K#DP19[h&frd,1q**,!i(0TEB#H(5Dh+a8JP@Z!JDQGGD90J&a+`!N-$)
iYiaK%ecJGCZ"EE#-C3ajS"'VA""F5pm[-hd&[2J%ep,PL`,b35dHYblB'-!$KlU
,Jkl+VF(1!"%ie&E+!PMX2e!&!U!([e0&(!$JJ,Z!ZQ,""TYF&9!0[Zi#'!#hdq5
@!*URCGfZ"F$(c-$LeSGiS'fKEJM!amX!$mK6,V"XhHkM'*hJ9)VG5ai!G@m!2Qi
'+)#ICS#[+`6`F5kJ!*m5"%$+FZafQ`!q,JD%YMl8B`i!GE%!2PB'a(IB)SC(khE
(!%+'!#'C"-pJYqX'm,%cq+mJ)&f3!'6+Li"'*`[iP"p!fDCF*@T6J5P)"J!IS0@
Q@GJ,N!"cm3HSUd0CL@S#J!a`SA+6J-"+Y"3!C&6`+69!KJA,GK8I)i-IR!'#-26
&amBJ*D1!12"eM3&#rUmC!#GB!1plN9Na#'!%j2FPqe`3N!"YV5rlaFI(3+#j"54
VQ1@"@[kb"9JDA&fhf`m!-JR`XGk!"51!LraY-F$iTFQBGJ)JC2[lB)R"+ikc(X!
MCq3(Li5AXY0mbDc!al)!&N`$%()T*JcLJ!Ar!(`m$,jY"FJ),$R1+J(Hh(m*3hD
i`P8!,KpM#1"4(3!29XYFi&0@!&`+"CEX'J$)51"68S$a5`5@V"e!c0RC1M!&LKb
&%A0ATJ"2KMaM@ND!MiN"&IL8%!!`UfFAH`PH-MUiPa!!%,"J8B#B#6!%H$*C13#
d!VMFL3R$I)A#Q"BAY1I,6"L!ja8H"VbC&Rc+"`!T`A)!F!D)1I$'M[',!TCX0S$
,N!$h!3M@3iYTb3&LjJ,hmJ(%93[p$Z#b3'i!"rJ+k`1%$!@d+T!!hF(VYJ#SCAD
J98d"!1M1kaB#)'BJS&8TJMFHYaX!,L0H"Y!YVDrL9-XaQ3%3!A"+E@-!A'E#RU3
`8p[4+R8AEBj&"`#J1UrE)m#EAHi#d!DpNYT+!E@XQ"H!-i#cr`#bGS'66(8$J"C
iaflh)1K89EX!lUaKAJ!%31THfaa,(bBajE8!JESB3*-FL`A5Y0X0!B'D!q##6lN
!*+ACGFL"QKL3!)&2U3"JlU@Q[$FJ8#X$@-#TGB%b9U*#)&![Jd'Y!'DTFbl*JGS
CL&i&%"d-Y4,&!T&D)#Z!+@fBad#JEJBr@!'SJ00-HGe!T+B'R2Vr"QHL(+MCaEe
8!2Rhp$EVTe`!CR-S9U+2)&!M!`CG!#iBlJh8aU$Q%J#[LiSTEbRie4UD!$aAU!X
,4$AN*3##dc$[!P%0$I+Y-KLp80FBJ'YNN!"[0qqb9U,4)&!I!d9-!#3[e18'i*U
#(!6THD6C,lL1b35!)CGV*5S2IMA"MJk60ehdJfD0F&9!,&#Y!5!""1TF-&#Pf(!
&V!'J!QMV4Fd#$X&)2DXT1e(cJ8pj!Pbf"[M$!3"53diFi$UcjNEP#J'J"36UB8#
"@8!U1+KP4QMA8PC!2%h!1`!VH28S$'Zp8J#!3N*!#)6K@&lYK&!"XUeHd3"T05&
8"a!JEm9f3JJ"`+!MB'f1*63C3a[S#%VdH&U%K"#h@m!(k!JpXJAFJBl3!FS#4%d
)9D!XV)11d&3[!UTG!GN"!RS!!!:
---

bytebug@dhw68k.cts.com (Roger L. Long) (10/22/89)

[10/89 Macintosh Technical Notes - 238 Getting a Full Pathname]

Revised by:	Keith Rollin				    October 1989
Written by:	Keith Rollin				       June 1989

This Technical Note describes how to generate  a  full  pathname,  given
either  a  Working Directory ID or a real vRefNum and a DirID.  By using
the techniques shown in this Note, you can find the full  pathname  from
information such as that returned by Standard File.

Changes since June 89:  Added a note on how to check  for  A/UX.   Fixed
bug  in  C  version:  BlockMove() parameters were reversed in pStrcpy();
added range checking to pStrCat(); changed references from `longint'  to
`long'.   Fixed  bug  in  Pascal  and  C  versions:   Changed fsRtDir to
fsRtdirID and made references to gHaveAUX consistent.

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

:#941-M-i,R0TG!"6593K8dP8)3#3"#TM!*!%q9Y6593K!!%!!#TMFNaKG3%!N!J
#(P41,M)c1#j(CA4dD@jR)'%J4R9XE#"3BA4SEQ&YC3!!2XlX!!%!4$I#!%&Hh!"
%S@i$EJ%3!#)!!3#3!d3hh&G28N40380"!3#JNkU`S99lc3#3"N@i!*!'+Gd!!0B
H!*!'d3S!$!!J"b!!!!)!%[jEq)pI`B4%X!%!0c%C!#%5d3$3#)#)'3!)!!a)#!"
*5C)!"'J6J1*IZ(rL"136B'6!N3)S"MJ830+N5C)U@6j-5)DN`3")MIC*H"4!'59
8R#S""fJ%538!-J5!K")!N!#Z+!f#(3ZdE0L%-64i6CM#!3!+!$!%f292(J"fG32
SmKG')F1&3`-$!!bJ"4d!%*L+59NAJ)I'H1ATj8[blcq4*%HH"@!$Ni1[!'*S+H#
Mm@1lNI@L[#c")0b#jJBFEF!LB%+XE`Xf5#J3!)1%F"mN'*kJ#*-T48!)+A)NLC-
'-f`$5*!!d!**%[*qb*Mh!mFm8!q15$Maiib""dEZD3&9cm!+'rDL`B28j8%0hVH
"!rK"I$J)+'(3JBB6BE44KK&b[0('&86Sd!1!!K*S)))+%T''(%N3J8)DEc"S)BC
%X-!KJeC)8BBCEY644JS0*0BEG3"B&m"Zd[f@fh69!4!&#LUSm&q!!aCiB)*YI*J
K#$dQUH556$ETj*03*XPLG#rQ')XqAb43ca)B3&$%29,-JB%"L0cc44X3V!$""hM
J%3)2%05("$e[6#%21!mN!FdpPG`$a4`Kj0!!&3rNm88G3*!!mm8C4YJ$63N%h$2
&!hAN3-%$6G"T*c!V6&$SS3M8SKiNpPKM6b`#a'+!1d@3!'0(#!c%mX`DJ)`"b6e
db!'")acB!BSaJ3$#4M&*c''2([GmiJ)md05Sh`Mej"S#$2DmN!$(2+mN3%mXFX"
56`QUc!(2*dT)#X%m(q3`cb-j-)ZIErTjN!$GGYeKUfdF)KJ,"aKdeU(+!e#)-BZ
#(qc@@fZjc9L&XcIUpUk0F#833$HD*C5!!!GJ,!!%'hI-mFFHHkb3!$8!Q$#!,`!
dd%33c3d"44*$4"$!2c$q3h)0*kHmFXX[ac`c$4!2B!1@@K,`K4LKf)10!8F%mX!
GXF$!4M#)k(Y2'Dr8%4mJ+iK"D5!0k!(")hN)mN%EJ%J4#a!VM2(!R(AHL4i9"q"
J!JmIX!#`',mi3E!44GMc$4&dd2-*%9m$!NDeGE!3bjGB,-#'2E#8m)!B%0$c`3[
eI)&&!dG-S%Qb,J$`3"$br&0&2B#FFLSJMfLG!KdFP(!%"JKi3)BB'9aq$b5+S"%
,)(-Bi)$!",0!J"KVYmf!&P-m8[U@H"KGa`Na'!$QQ@,`SFBVH54H6#Ni&!"%m-1
MNI[Z9!"LM`Q"3$*&UJrBSFBp843!M6er)2''(4m)3ZH`)$FU3'%C(+"F0GJ'!A*
JB!,"d*rQ11FjH3#$63UD!`6XF3)3c)-qEk[((iE`M6233`e[1)2d!%#26K`!"(K
!J!3Xb#FrN3%#6kM$$+`fK8J!BB)$,1!Yh+H(SkRK!@fi"aC!B)m3(1!'*e$$(r5
3!!%'8#%)`J$IS!3`a#q&#3)P5!!8j-!eBrfKG23Sa$hLF)m`2%&[BZ$!'qS3#2f
Y!!m*m-!%)X'$hmd[&JHi""EZ-3PLS#%1J1K#f-C@YV-p3QpRQ!!&a+#[ErMVH!0
V!`B'9B!98%!!YS$"*4aKLYqpS`j1`!)'$J#)5c$L8)f+`bGfm-*PM-%HFB$%(&,
P!$5!i"jlm"6U9-HkHpJ"%(pSJcV10S%3I))&"XM"#d[e1e[LdJ$fX--F$J!$09R
b"A8)JJ#J%$Yh8!%%DJ2#08+"J(YJ)J4+DbFAB)%'J"@"(Npi3MeqS,FQl,-&q03
R2me(MhrBk4mbN!$(1fMNK)4!$!"GX*&eh!#a!"K"SJ&`3N8,JG&(9$3C$("0!*S
"-3&))U4[%8!R5VS0P(jb("8e!28H3!81c-*l$h##&#!3#8BFSBQ!%"8F,"I*58)
!$*C8"5D6pi!cr-%1%`L!(0B'KRV8i3PVd"FpMS"&+[c1F%3`(aL#F%3le#-%hh#
#QGS3cI-3$UahSSHe+(@)mU4+!$Ep!aZM!)K&I1%1-0MP%1P4MK$3X%p3-!B-VT'
$9$9!2D!`ah[Ldi$!3@-1eAK#'m43"aM%EKN'i*SB###"He!K"U5Dka4-N!!$-N#
#(QF)K8*Tj!'(kUF0%J8!(4kkKp`#iU%EN!$8)H`aKbVD!JMb5!8'AU!h&4$L'6Y
`Ph4JC*d)*'!1D(L$(1J`($ZBb!a180%1D&5P'1RS"6hk8B5%4+%LAHK)8BU[I1I
ET"Fd3#$PYBi'PN%'iFM$&I@3!!%6a##24#bA"3KJJM`qB6#,j8J!HfJ`MXa,JIj
F)3P83!))fT!!"b'`i3eM@!-)L2!%#9-A!"mB9`*8I!pB"!'F3mJ!0qXJ3L*Xp3P
*`+F,(Y!(Gq8A!$03-BYG$'-C`i$'Ej!!3JGqS,9[3,1aX5#!"8"aia`$!3r5r6%
0K2b*",4iV'8pkc6@'Xd([29`GpS5"-KD2c'[p3#2)+q$c5XaLZ%'4b3i#4X!`"9
D!%!Lr!J!#!*!K!#J3@-(#!!*(MSM06#-!J&J"S5#0#%L'BN))+"$'0C3KMQ!)!`
JN!"$'F,!"K"ipd6KEF1Rh8#'6iri[CJ1!kY$A3Bke%%1E[#dJ-S!!M28J3fPKJ1
3!0`JT%bM)8!J')0f46d(1,b"eETq!`M53!FAJ!!%5D!$#-M`KNiE1`fH&N-HNNe
U0U6"$@F!`4HJ))3Me(S)!8U#'m`JEAV,`GLm2N-Dl&!'0fcl3Q8B!afd1fjCYpS
-jbE$ZG-p4fe6fp2%0Y#U@lhV9i-)"'m``l6Ti'PKLpS0eEjfY[(YEcL833lfES1
ZdF$V146l$5DA3i!ij1pRiaX%(Zmh(9J!JMR3)3dKA[M')IjbN!",Zq*L+)1qhH!
'S@ImjJLAJmrr,@U"%pcD)+!#'X!0JMYNP`fmKN1#aY"T6h0Gf5!rGah+d1SkT,h
8Gq$eXIQ0ml'ARHdJ+!1rjC!!"`%*[3j`b264@4lU0la"f`U[qX$j$S)0N8(RD8!
ihZp!E9q#qY)BelJ-8Z##h83&AZD0`%-rN!"E%cbd"EQ9`8-&N9Z2kJHN1A*'46I
JdJ"iS++r`#Ja'#eRd-0P4Jr6$`+Z%!CF,ec#$R#0`ai0J%aSRHYqS`1[ZCjdSBX
Dl''B!pl26HYQ2e[lJYpf'GTJm&i65IcmrR$-ji"erm9plcbh0p6I!1`h8"lGY-l
qphPqKRkII1Eijf[!KR2$*L4QjfPEG`CS`!EMTR"cS'bh&JEp4`Bk3#-5B&Zj`3J
Z"3#A8&&,3!mlF%Z)G!K`3JpC%`-2i"fIS!-XP!'4!!PJ8!-K8!!`)&3P%#Zc-LL
RNcUVXd+`G3ra`cMf!!Gcm!"$8$m8F!K6m"d2)!5P-#[d8!eY*!q2d"EFeJB53!'
!X%C"3!!IB!F8%$pci!!"aJ6[N!!(9*J#m`!,DI##4P!H%)"!pR!,GJ8&lc!&*%!
20[!#+,"J1m!!YP!H'8!!(8!"%!3)e(!Q$b!0T9!HFr!#dc"1rD!#8m!rdb!h4[!
(H0!lBQ!QCm"0lF%)DP"Q4`L'5[J),!L#)JJ*f&!2)V"93&!#$I!)8M!lB&9QEC!
!"QX@$8(!!aJ`6[cM2`!N3*l$!&0`#))`!5q`,-d#!*qhJ4A`8&Q3!&YNm&#"N!"
EL["3T*!!@ke383U!8D)((!%3MG9KHa9P!aMP!`rP!N4$$j0`#*'!+@``"b@`#"C
8$eLM0G'3!#Iem!BYX#ijB%'`&3UBSQaR!"FAk(XT`3!mJC!!$e9RBQ%aL"Bb)&1
4&%N5e%%&%a-!2(%!!1#4@a!!k5!cS!!!JP#5M"!+!'!*!9%!3!%$+UN*)2%2p%!
5DJ%!*BN*"S%9(JQ5)MN5&,!E-)!#R"%!XK!!m&#5Q9#5Pi#5+XQ5"Z#5#5%!-!N
!-KN5[D%M#C'6Zi%"4-N"!1!!#Y!%B6!'jcC`f08!5KQ6-qN1*"%&@`N!Q+!#'%"
6!BF'66F'T!B#dGGT5XQ86pQ5,mQ@#0!3*,&R1#QAZb%"+a!2(l!"4+"hCD"q*jG
eGjQAHcN&J1GXfr@A(1L42#%!)!!!2S!M2K!!f9#5MD#D*6N)Pa%&%b-E'"N!M$#
4L8%@C&&R&6-G%jNaYiQEB$%M"Y%E["GmZG%#!C!!#lZj!Efj-F!j&VU*%K)c$J%
`$KVcQmmjQhD'N3#3!'FQX@GppQF!%'L$9QL(PM%H152j`(`(-"a&i!4%-&l[FQ)
)d"r[533QPL-cFKNrYTq2*J!D8!S*m!4Z`'ZLTRrqpRMT"h-RKi"K3(Fq&b"i*hm
&bRC#0h!JX!CZB(p3pf["9S!5*hpF0`H$Kfbl0Qjkk@qLCL#E9CN9pf&kqA-fph5
JjR%r0`Dr9RbpPJCJKh96m+"#"fS)"hE9i'N#q+%#%R%YPefreQV2aS!JN!"d)&!
(fYGUfHGUE*!!IGV'E0S9FYL@Dp)A"Q6!FhN`4ch(T'c3DLXkINPhEa@(H8pAFBN
AF)XhEK8hT00RG[j'DXq@ET3R)"YAT##JT&MhI*jf"f'3!!GNDUD80i!qak1P*U9
K)!CJ&hi)0fYPHQXl@UQ5k@q4Gh0cDR@-GfcK9JEpYQ(r`hCB9`@X9TP6N!!(2MG
q)(!$,J!$'(G[@5TpFX"c,NGhGmUMC5#SETF'FE"f)$!$-Y!#BN"Yf)CT+G+LphD
PF3GX[&ULfTDTj,DRmeK[#3Ge`*Thr1DT'NGYJUUN)%#UbACXk+DUZe&E#QN-'aJ
0$e82ZD82[-HI'!KT59!FP9HCFFTbi'FJ![)'C1"Tj$GZCK!'2$TY'JGUGN"r+L*
h9jTdTmTXLcHKj`GUBP#@D`"i@#G[aSCXHUPpLeS('jB'#UKYNNUT[)DKPdTaK)H
R86TZfPGmBl"eq2HR[[4`[HDK"*LN3[+a'SHY,qZYB-Gc'bTpRhB'#ZY[E`TVQ3H
U!#HUimDXA(GZ2&Gq[6TpfLCr[QCVSMDPfLHdSHCf6BGrE[GipdDVYUTG)*!!UbH
AYGXkU)IAXM%,V)*k*-rDTTfA%!Rj8-b3!&[bUKmc3T6%+Bif)+"DCk!0GflHPR3
IGJHI&VCh)!I8*Re1+ffL"VEq"L!2Z*FqClRSjQNS!'TJKfk!+Qj+5fre&hHY*Qi
h&`46-!4*N!!%k9TmCDQVFm"jeiB%r8Cf22HLDC!!LpTQFbrDEfF!U$6k)jpEDU%
VG&`R!c93!lFVF`,AS1eRIj+jUkk'Ti*kT$q,Pm9fX&(+DaqfVQkUVL!J[G4lXlK
l[9+(G8(J"Z1@)(A`F`8+!YKDZG5fT(18TZ9EGf@3!(-(jlCqjfPSKlrpj`CMN!!
(IAZi#G-!'2"S!B!1LNYi"dULrZCeGNTi,YF'F&#TpSZrMcZC("ThP'ZjG)#jiEH
jYpDjfDHAcTXV#hH!jDZA9'Uh!5+S&BHS(FaV4[#YC%PXrBHVDF"T+cGqfIYqFIY
TRSDY'bUj'QTr@EZT`@UN2LYX3#Yaj#ZPje[%)HZdakCYC8PfF+"T,"Yq&4I%P6V
%%RKbKFTbSQC[CF"cRFU`qQZQh!B#rGHeXYE!%bHfGP[$Eh[%%XYUB1GTjGF%EJI
''$S'"kUdS0B'cmCYd(#kbHY,H+UN*GYeN!$DFcmhJ(2AXY,QFH"RY8D(FfN3F0k
@b#XRDqXl[6-VI8CU`)6(aVcQaSiXEHT+"MekE9-`[#%mEP3DT"Ch*&aRZSHAGpQ
hbR,3YhmVMS-E)`&J$FA*I0%jQp4TREkCR9fK!ecQCE#JLVK%2eG!"A0B(QC'1bA
`"(N`!'[94%"3K'B9!Q0f*JFJ!er3HbIQRa$mHrbXR`&0Cl%TRG9CRGITc5L"R-U
*%Xb*RJQYd%B4'a&C%03Jd@3"d-B*&`[3"&"`"F`V`lfhJESCN4)M$)L'd8E4!2L
UN!!#d!IjD9i3!!q88&T8!!-&YPaUq!XaE3%p!J!T-#j1#)95'!EbJ!J+"Jb4)!J
@*!q+8)PrN!!#$q"F`#!2X)!ZDJJ,2MCReM&K-M,3eR%%#@!%9H!%3d!&5I!%6U"
HP$BN&3*V+("T1[#fIAU@1f"Uhj9UFhf@5RGb+6$ASFZqipA5r3c@!6%F9K!%8Y$
6-8)F(JCLDc$AY$Y[Em"Z*M)'m[PM*d!FS9UR%P,(4Z#KNrECJ*dVJXh5dbA3K*d
MpCN!bp%Fcj(DjP8"a"(D`$ED3Z)J*h!#JbhEeR%"a(&K'DBF-#TL*+BFc1%FU2e
M(p!I(2,C8*!!+`i#"*e0F*rGfcpQ!Flp"N3J"`!#)JjbDCR0e5""(2FjhPkY'kY
YAJT!(&*3"&"3"%&!"Bb0!4D'B4Vff#%fBNq!h,$0f"R3(`R!)5@#DLVL)+F'AZ+
eh15YhGYY"%E5URMJ)#d3!qKpBL%Ji"c5hA,G!rUp"Lk`iGjGI"NbAPhJfp0KRr!
jAPH!iQ&%(#FR"`l#EZj'"r"'"r*'EbJ!""r1!NB3"-G4"#Q!hH6Ycq5p!If4"%E
!adM`S'83"&@`4"RfR[kYh1YY(5NJi%T1GA4Uh8+b"6(3"6cJ!bI`!Kddj@[pfPD
1iNR!CAX363-J"HGa"jqJC24`5S,$!UN#!h*!@UD&!de&"Zq$5h)c"A-3$$Y)6)"
J#i!`"H$c!$'`eHPY(6!Ji!P3hAa(fMf!GM'+!TLH"jr0!Q9q!N21f1fYi[(*f"$
'f-&eM-4PA-LPA-`eeFm9AFhiBr-3!'l"&!bHhLr0f"23,d+`0QI&LhJ$cVIZ8-V
h!J,qkCV1k3(Lk92Vf8)LkMT!kN5HhJ*qhVeqBME3(lE0"VKY)!i#lA3JlBVRj3E
Lik)0**pGkLKZ!X44eQM0")hhi5(1hA*`D6eJ"R-J"A4`DI$HRpfH)b4!(12ZeZi
&hMd3lJPri6R5RX@aiJ9[ANDHhMZ5AJRIAJb#*26em5!I*5abjHU0iM3`eQ9peQQ
peKY2*!b#!JRqV(2pa@Ijek!X"kH0iKGrBJD!f)V0f,3p("cfiA20)*BGF0PHf#6
IfQSHf`42m[Xk(([`(qe@D`b5ilamT4TE"qQ@YTAjBP%1!M(J!Q-[FKUAi+NfEBU
FIk@'pLT5mGD4BPd@cLhQ"Z'3!!-'J!#QX!J2d)Grm!,b%08m*ZQ&[G%LJ9k'23#
)2jmjBKe4R`"6rl"X%,'0ahd94jCQDA6BeA2pTRdT%-K21Qia8(M,r1R"Zh8),'Z
'rIK6$f)iHQqKhh8XYkG@I+i6DkVqTReJGlfYC[NBE(L)0qd%ehJ[`(Q'$36%-I9
6)'ea4pG[)',bGm#"I'abd'V+pRJhKhRPjrCYB'd`VI0`AaM%XH8SF!C0cQp3MJ@
I(`6`fAJaVb)p81'IMqC9rK`N2b-6r'-Yd"mYVb!--Z2ZMVeB'VJQ!eL!r*02i)r
aQ4H*0r(`N`+d$Jl![!@jqXIBJ!q+d`$hEEJ0[H,'hbJJLJYka1'j#BRS*Z0kJ"0
)!N`!!IkB!,IG#Tb#D`-)lVXm+a9)hLD!KZX34%$H2*i*e`0J!!e-Ea9QZaQpXC-
K()32C'cEMZ)p`1@MfF,CN!"T)9`%%1#"(p""LS!8k(YRj!2X'"'3!$Uii$-KI$R
##hb"-8J'bk!C2)0S-!fU`6A)"YZJ'ab$%JBh`!86F&EZ`4N)3YE#AQb,E[%Y`X@
iH!,#i'KFLKJ`$ck"#KTTK-Z`@8##Y`6P(Bb6!b@3!-CC[4a)fAEF"S4X2Jl))BH
"9q3-@`NB!BrR8Z8bje#k@)!Bq(`S)"@'J46!!e$!+8`"2k"dr69AQ!*Ba")F!(h
J"aBqm1H4XPYjFdp+F!AbPkPfKdL!-dJ@+'#T@C!!ja,8QX@2q8jm"M(30*Z'd`a
-mCX(2-fh243$i0&!fK#3!$!ED+Cp!K@`e"l!#TJ(d1!4-)%*J!d0@`X3DNpS$85
K+B68c#'NXb$PF!9-YAai$i'"1T`!ILM,F$8P!3$#b"IV18cJ928!%0!%5+%+Q!0
bB!c`(2B&!PS!NRJm2UI8N6a'L1,D"[9$%[e[i@@)Z!CVH!lhie@f%-9&`#mf(-4
E"3ar-f)&S$MVX!!5J2Z5!m2K)BkAqr$d8*`0R'cdjZL0J34!U5$EH#N%+-kq63(
60Vf'Jl-6%K$2iM@!))$LFU+R@BK(d#6m'"9!&)ZE#dJm@#rI3EGF!3)@iP-d%&(
41SL!VJMC[Z*lS@cjVVYpYb1a%&dLLPYe+)i!*)$&ea0r6(S,6R!2CXL-I`#9,Tf
dL6!ZEMJ8a4$M&M%%A#4`H8e&P%@mCZ$D`(Ka56pQ,E*&aJJ@(q-EJ("[F3G1aJU
A&J&!$9#-AV%cdTZiZ1qJeN*FM#"10Ei"eMJA8phpD`"F!-8G[!33ibDM*,4amDB
5QJ$Bb!)5eM`U!j``[8Q!iI#TbYrjHh*4l[-KaKm$!N+JaN&hA5l6IEN`"`*#`%)
FGEE`arL!rS"HX)h'NAlJaJfFJ#d&r#UI#bJ$eJBmCLdiB(*Q$DLC!ePUmk%!m)J
Nl!Z+dic$!3iXaBJBlFjL(4-"A!!1[!!4N!!F6mbTk`0jjcL#!-EQ!SK$H3`#p,(
I@#Q'@*E1dK[BI$iR$e3UCA1q'Xm*Z(DI6`Aiaaq6i3,NJ1ad"T)&)%JiS!-Bj(M
"#Mq'!lM)A!%MKCpfA(HlUc6Ub!3J)(NN(-J$+'!1X!!$f5"c4!a)!"$5kh`V9jJ
Dhq*U&('Bac[fQRmAm'#04J4r*)m"*!!AKQZ5C*-d,lm16+V*(a-&d)Z2#)NG,q6
*b6QC*1c,E54je3XN"X"+irmda%RFABa01,"%lTIdFN4lZiN*3#HUZZRB#8RHFM4
k3Z#b*B",''*+)e0J!,mK!'$+JV!TS9113!*lm8e@26T`p5LEl9YlR+AVYDTl!rD
@b0JVHqD4-Vj!YHGU$P6ELiaYJ,'"b[*BIT+@UlN$C!"ARVj6aDc)C+lKBm9RBr8
I(h9Zb!i)D*@R%Z1i!5J9!h4PU$3e%%[LE!JaPXXkT1Ec*GSReb"(d$FY44rT#hl
TMZqF[V1MqP$FV[34VNp6a6k[FkU%e,G#9a3VpddQ1V9pZ1@jj(*8LrJC2a5(r-V
MmZXkjX[`3$pEPXaQ$I@cIJ6,E[%Dl6GVZ*qe8C%[85CQaJ&h(FfINdYr)-!%Q!$
hKb[,iN+8Iq'4[,diBiN#3Z+P33%&X-+aJ0e9kR"NSlb!Nl,$H%84D#")i'4X1Qb
J0(U!R)R[)'0PR)b%XVi4cCf*!h9J'F!$Nr%)SVJ!4bP"h)JJ!Q-%a0"&%(!%6`%
[4(&+i&S1!AA9Ifl1&G!ZDd$SI)MX1'lf9QAL2Zp2eAM)@MPUEZ@*H&EpNE'&69i
jDbk0Y9PFE%p@iNfZBbcljE4j!bl`@@@Y@90aE'AH4('EV6aL(X*CDekBiEbDI[0
a*N!80c4rBkR8F5DJDKC(8Z2j5Z-L*'p&B%a@cM,T-Z&DeFah(U)N[XkVk3*6cFb
XKES`4i#!e+%#i)%NL!@"`(TJ$d"`3a5&(FJ$'@#f2%!5B!ciN!!b"!E-8##QYd-
!!%3"!1J&AH(*)31VF!&BN!!)5!L,clF04TE8*Y0,N553!0VQ"H#F!6N%MU6(Sj2
`-lli4a5Rq&5!B8-#k#8"")&N-dG#'+pj1[H,4e'EqY@i#K6l!3&$J&B1,+k("ZL
!+mXl'iU"KKpID5ZK&'0M![Pc$QbQ,[8I@X$c'Ph@"Q4T&l89IQ*1bVPj3NIC`)&
9TXKQMERV0c0Rrc!f%*!!2hF0q"PKMNZ4K5famcr5`1-K!`q-[092`eBqikF42D*
,BRlqQ#I`"TZS%hfL6K34[S86`d5KU"@pSPHd!H!"#YB$CST1D5!2"!8)J(Y3"i4
R$&JKDZBDD"J[SN(`!!03!k%!%V5(&8!2c%&mS!GNi%c8',PKZdc!kh!EF'05R,0
dGJE@@He`ChQ#(J!"@r&LkX!3i"S3)+NX&6640Da)%(!%8`!6M"-j`%G"3#Ai481
N@Z5"0hS+e0NAU!G0L"l%J4G`"I"*%RJ34%8#d)pkPPE)6!jBCf$&MU`C0C!!!0L
C1qZNRH+0SS+pd6Iq4Z!B()AMF%362dF&F-!"3!%%!!1SKf8NAB4![L*0ZB8*2*4
KN!"ERX&$D5Nj3K`mP(13!&[B38@C!"KPdHJ(P&!'K!!ai*k!!!"m6`cN&)!!,aK
0)3!-E!44B""q`fmS!d1!%)bQ!!!$I!-rK4F6l-PaMB*3&&6!33e1%f!#F%SE-9%
VUUDNU!1!!65!68N!0+T'YDJFGD-f!%&383P!!aJ%(r@L@Y3(m!!UUJ"J!#49T5B
%"1"4"F&)C3")8D8@!!B`#$BU5LfT-(@MZP3'3!JUDNBY"!eJ0kM8PcS)M-+Q9+P
3Y9-@K!@`!+CU93d!90@UDP@XHP@c+PIGUPieV(E9X3T@bHTA2DYLYDbU9E4U9Y-
U@efVEM@ZYY@j#PITkPZpUh+eVZT9['TAmbTIhDYqeDdqeF'D+CpUB1fVL"@`*YD
rbPJ2Uf*pV)eeX6V@b!TC*kYPPDbBYE*Q9XV+@5rVAL@X6V@`LYD+UY*+UfNpVDJ
eYDV@eFTD@kYVIDf`0EE+eYP+@l-R%8!')5"Pd!"jUK"B!8NS!d8!$1M6"Q!&!X#
G53K4SCdbJY%d!(#!2#d$2%'L*PFJ3!M@3%V!"b@M&2#%hh!'R-)3S!C@B3$8"JB
`#L,5((!+3J!'@!8(S%rR+E`iVf3!%j!!!jNB!T!!!3"`!H89A[`"Ta!%d)"-&!$
-!!#`J2ck'aB"HL8(iE@fN!$AL(3*[+Zf#8XN935-!B03!ML3!&-S!KK!BpB@E##
EC!!!i!AS&42)a!@!#M++C[J0EJQJfMX!m!*BN!!@),!!3"r8dbAL'!b"EmL[-b!
!#!5!LJjN)Z!,!$QKR`D!(&"2hbP)N!!%0pBJ!)%!8!63+bH`#JM!%`J!%R"L!`"
5"+JF`#SS!''3!'4p3`#)"2@8&'KCCp"P(d!!k!41380S@@d!!#3!+GLZ!F#h!P3
XS'AC3CH9#lL![c)$,BYGBF%S8(E0!U$LJ[8+#lTX3H!'k"8CM#B(!')PV%%i"!%
!dEC6F#!6"i!L%!#8i-3+J$'3!'BTJ&9i!&kJbeB"!I!',L`Aq,4U3!$`J"-E&`,
!JF!"9L%#Q))Z'`1kNkX0!S3JeKiP-##EIN-9F,9$`0-#J!P`J4BX!#LSB3$BmJ'
V-!%m3!!!!M!f%J"E&Q!9+%#S0EC*!!"d!Q#,!UUY'JJ!rU$A!J"c!'chE)c3#-B
fcdJ'J%S*rUX4!!#'),m@"![JDS8!+9LdhN#H6PJ[5frEkE)05k5JbiB8%H"UJ3!
ii*lAPX!'!"G`D`mZ!,J!MXB#M!)iU`-+l[BX#$c!d&S89rX$0)cT5!JL)!3BK!@
`F3m%&"LSkJ!!F)%F-()$!'`#U%"J0'%!V-!!@#i!),PFi0C#!TPV(D5!c5@jCk$
HmTbiJ'jrVP3"YTJQ,K`'#'"dq`#`T3%bYkL#!+1,#1SY!j!!Z3&A"KMG59"`cdP
F)"NeYq9kJS*lFZ1#1'Lc4MF9Z&SL3!*NENfDZLfA&J"E6M#D-J"F%!&'paHXADq
E!@`!!&!"4PFC!&YJ8(Ie+GbpZ3'J'VKD)a"iXN)mP3"'&a`!@`*3Gj&Xf%@mkk$
J0Yi-i!RHJY'e"m!@DQB&@5"2Iki!3!VYY04NKBY'!Na[5(Pbbc8VB0I$Z`!%`!8
!Y[4J0'Q!#FB#6#r"EDF)32F5!FmlFJ8!FQURS%$hBS&MDhTa3-(P!,SA%IJ'dcX
%J#dmd,f8S'5BALIJDSX!"0#pZJ!!d!$6Q`A@VPF#!01#q4CI-X"a0B4M#,8S`25
qJASEF`(!"[#l1X$dkS&Eqf!h!"`J[MGA!"5#YBX$4Y-$q!U3!(GQV!4)F'XT!(2
9!M(LjdkPGJS!"UT*d!!5Z2BHL+YVIp%"!-Lr)cG'#)!b!!5J`@ML!0q6!NMJ%$#
#K3!e1-&q&`K)B$eh)#J[!1J9k[IQ!S!E-)+$32+p`E2fmPC9)G#$BF%**VdZ3!)
hJ4&F"&V0$DB)#9J(Bi%4$!4``3Qf#d)B!)b"(JapEl!r8,N5f!e3BGAE!5"`&Xi
$2GMVGS#2i!-N-#&S`D+h!`6F,2`)@V!$"J!GS0!bh4#X#8E`$H$!(3!B9'!*V&h
EDH2Y!"3K#m-#+Pb"mE#GMF*9G4IdB()`QMV!&ml#aQ!%d`!6l"L`!K@3!-$4B!3
2JI1V!Gb5%C!!`0b!#UpB$e"S2h%)2JHLq0UJ')6JLR@`2'M"f'!dIB$PU`3NF$r
S`@"!&eY2)4`!%%!,6VSI`"8!!"aJG#H!+2Dk(m!F60q@k`&DX"9'-AD"'EIF&-#
%C6'5Q-D)P`C3B83`QN#!hiA%!H!(Y'"1$!*-!JB`ZNT!&!1#FUa2LI'SIA+Lpfe
e*k-,"UJ`+LM(A)(f"S!ed)+[E`8ZY+fhjGS"84al3F"&m`"'0a#)iPaFJHd#4'k
jY3QJiJ0mQKK8F-Zp"$dB!q$62%1-48%26S8aJLAa!+2E#RS`$L"+#-$$DQ2%L`Y
D-#8J5JIJ#irIPMX-4$%U`-NN)rkfA'FJLMQa#(!,a$JEM'!MJ!*'N`K3#c$!k*+
$%I`$bUi)8!,JQ15qJa&-",M!D$S!HIBL)ejp3*9&E`"`"!#J&aII!X#9Zl!)8-D
3!,KM!&4bE$T+4a41#FbTR4VK'(%B(+e[%!"jH3J`J%rl2BdY3cS"2CJE@!@VJ"J
QlPqH!93C&&L&!#!4M'e+8-FNQ"f-*J6JD2"ZmFA-2q3VHpL9@hcM-A$Gb!"J"-J
N)5`!lR%0k-)MB0ED!02EMpXT-aK0)`$4[Z2L5j!!fqNrrNM@J31BhS8-82R"D#)
"EX%#X0arX!`%J%3Z!cmJ')Z%rkZF3l")H(**p`$ieLbm!!E!Nf[%*+#JLZ@UDJ'
mXa$`Z#5JSAKQ(4`#[(-4d-cGkIpQB4CJRN9bGq)$!,LUhJ$[6!4@,!RJ#MYC"`X
"pibHLB'!9F,H'8-DB#Q3!*8"!"C)d,4J0*@!hEU(GI!Bm-j!`#XAa1%EP81`'c$
2h%"#(iEH'i,I@6X9U!@a*-RJ%%`)-$3PN!$3L9J#2i)%c3FNY*e0`R`i3G0B%k!
@K(-),J8*@[@D!,m,H%-`,2$13d$4PJapLJ3Nm#j!dK'kC+##!af#M3''PXiQi+*
jC"dF$IKc)cB"(RJQ9e9ZJ+5$,`$S)&4D"jm$mbbG6`!6d,iK@"iND)0m!Z3!R0E
"rF!m%picM3N!`%TZZ3JJ392N%h$4L2%%--qSq343K1U-H$d!KVl0CpSHC18!N!!
#%M3k'%eLG&,6J!3YLe%!8MDk2b""Af-8S"C)-q*9![bC!m1m59d&%[4[4J%NY8J
MAPlE6XXZ#[#Y',MPVJ(ch)94J$()c`(!$TKRq)`#f#`a$J3*fJQA!*TVG"Q"HAk
`IHJ''pe,B*lEERFLb8CA&#4SDdd#())$B-N*'M@R!+,NFeXZ,NM3,aUSk3%!8+i
4lc")d*`i"36BGNebR8'#aJ5M53A8&RU0QYbcQ9B"reFY)ejbi*eTJ*,1-j2k(@$
S%2ehIc@*(X[Q@4DV!,[3S30`!6$2hcFeeb6@$!'3!24HAJ'P)b%(i!f!T(r`#Q$
33MN!Qi`b3!5Nm`TBeqZjpXD!"2f#!F!+i!6lZ2LZfM*`!aUa##K*V2N)Q'G@-*T
@3)#YaE9A#VKRJcadNEB!k!,Hf3KiA4C`',4Zm88$jPP$Li$XbjVR304Za#b!p+E
XfZX(N!"daKB"fpAd*S)%6E3&V$5'!UBhdcijiba2EHbh,VkI`$[rJ0J,6l+b!&!
&52VHaSL8bjTV!C*ZfbdJqjVUUVS!#!!*RXH1!FRHE4eX!4ah%0M6,H!,df[dDlR
TlRf&!J$!#XaJabd%q!&4DJ&q0fE[B-F0"0Uf"bK*NhX)1fkX1CTF3,jGh!#J#9K
Z(M#D,%#qcF*BB(Ec!kXJ!Ua!$UkUBm"a&`%dB"9+3'%1`k6E[hiNY$bH!8!HB0f
d3'0+DYS,!!L"iai#UENl`B-'r3LqYhT0cBZKBPG96@#j#B"-(!%U32`5BY+0!Yj
hBXM91KJ@X'j')"0&!%(Bc6Ti&j!!EJ*J&6B!PmA%bM[,fPpEd+#M!HX@XI*8%&G
[EM#lhEIp$FJ5q"amEa*3`)YU&TB(haX+b-3,F0(80`$S"jDE&ic`m![!55i#X0c
Rq`)SimXE8LB!kDi+$hFB+p`2S,bCJ&@`!0*!iki!ard$),F&N!$8%KE1$R(S6!K
NiJBJXaV!-BH8'd$%dr8,k0-[9L`%J#&!ZRRh`jeJIMQNF('!#JPN)J13!03qi-m
bKIMp,J)!3AJA!i#0Ti5%-!"XE%*!###"%C!!K0j`!A,M9%S)Z--XE)$GqXFGJc)
Zj#,!Yb,b,ec)4`#5RDN*3Cd@mK,3eD4$#5JGl`)&5'--P!,FDfp3!H%A!kd!pfS
M9S!JaN!XB0DLFMD,J9U!2Nd)Zki&&0@%F*[H)8RBG5j!P5pMm*PplhK#+!)ef3-
$!%#*!!!:
---