[CI] Support for UML
Brian J. Watson
bjbrew@power.net
Sat, 18 Aug 2001 21:26:51 -0700
--============_-1213927283==_============
Content-Type: text/plain; charset="us-ascii"
Kitrick-
These are the latest instructions I've been using to set up CI on UML.
They are by no means set in stone, seeing as how I haven't succeeded yet
(due more to lack of trying than any fundamental difficulties).
I'll be on the road at Caldera Forum and LinuxWorld until the 31st.
During this time, I'll only be checking my work e-mail, and not
necessarily every day.
I'm sending this e-mail from my home address. If for some reason you
want to reply only to me, please use my work address:
Brian.J.Watson@compaq.com
Thanks. Good luck!
-Brian
==
1) Apply ci-linux-2.4.6-v0.5.6 to vanilla 2.4.6 source:
tar jxvf linux-2.4.6.tar.bz2
tar jxvf ci-linux-2.4.6-v0.5.6.tar.bz2
cp -al linux ci-uml
cd ci-uml
patch -p1 <../ci-linux-2.4.6-v0.5.6/ci-linux-2.4.6-v0.5.6.patch
cd ..
2) Check out tag v_2_4_6_5 from the UML repository:
export CVSROOT=':pserver:anonymous@cvs.user-mode-linux.sf.net:
/cvsroot/user-mode-linux'
cvs login
cvs -z9 co -rv_2_4_6_5 -duml linux
3) Generate a patch against the vanilla 2.4.6 source:
diff -Pru --exclude=CVS linux uml | grep -v '^Only in '
>patch-uml
4) Apply the UML patch against ci-linux:
cd ci-uml
patch -p1 <../patch-uml
(resolve conflicts, if any)
5) Apply the attached patch which adds CI support to UML:
patch -p1 <../patch-ci-uml
6) Copy the attached config file into place and build:
cp ../config-ci-uml .config
make oldconfig bzImage modules ARCH=um
cd ..
7) Get the RedHat 7.0 root image from:
http://prdownloads.sourceforge.net/user-mode-linux/
root_fs_redhat_7.0_big.bz2
8) Make a copy of the root image for node 1:
mkdir 1
cp root_fs_redhat_7.0_big.bz2 1/root_fs
9) Mount the root:
mkdir mnt
mount ../1/root_fs mnt -o loop
10) Install your modules into the root:
cd ci-uml
make modules_install INSTALL_MOD_PATH=`pwd`/../mnt
cd ..
11) Install Cluster Tools 0.5.6 or later into the root. Follow the
instructions for Cluster Tools to do this. Be sure to add a line
like the following to cmd/Makefile and libcluster/Makefile:
PREFIX = ../mnt
12) Edit the /etc/cluster.conf to specify whatever virtual network
addresses you want, then unmount the root:
umount mnt
13) Copy the root for node 2:
mkdir 2
cp 1/root_fs 2
You'll need to change node 2's /etc/cluster.conf accordingly.
14) Install the UML tools, which includes the uml_router networking
daemon. Start the daemon. As an alternative, UML supports a virtual
network using multicast. Play around.
15) Bring up CI under UML:
cd 1
../ci-uml/linux eth0=daemon
Last time I tried this, it panicked early in the boot. I haven't
figured out why. Probably something boneheaded. ;)
16) Once you get a prompt for node 1, try running the cluster_start
command. It'll set up your network interface, as well as
initializing ICS and CLMS.
17) When you got this far, bring up node 2 in a similar fashion. Once
you run cluster_start on node 2, you should see messages on node
1's console about it joining. Run the following on either node:
clusternode_setstate 1 UP
clusternode_setstate 2 UP
Now try running 'cluster -v' on either node, and you should see
that both nodes are up. They should also be able to ping each
other.
18) Declare success with CI. Please let us know how you did it.
19) Tackle SSI. There's more new system calls for which to add entries
to UML. Adrian Cox will have a recipe for how to use GFS over UML.
SSI requires the use of a ramdisk to join the cluster and mount
the GFS shared root. This will have to be faked somehow. There's
probably other issues, as well.
--============_-1213927283==_============
Content-Type: application/mac-binhex40; name="config-ci-uml"
Content-Disposition: attachment; filename="config-ci-uml"
(This file must be converted with BinHex 4.0)
:$@0[EQCTCbeMD5eeE@`!2cmr2cmr2cm"!!!!&)!!!!!!m@BM#L-J3A9dEfeKG'P
MB@aXH5"RC@jPFQ&dC@3JE@&VC5"MEfjQD@Fk)'4[ELGd)'9NDA3+)`T$6dj'58G
I990&8Ne24%8pH3SM)%026NC*4ep*8d%JDA-JEQpd)(0PG!SM)%026NC*4ep63P9
6)'Pc)'j[G#"cCA3+)b"$6dj'58GI8%0*)'Pc)'j[G#"cCA3+3dp14NP(Ae9*4$%
f2AN+3dp14NP(Ae*A8d90AeK$5%G"4%4I38a(6e**9%K02AN+#L-+)b"$Ef4P)'e
KG(9bDA4j)'aPGQ9X)'p`G'P[ER-+)`T$6dj'58GI49K349**68919%&-2AN+#L-
+)b"(C@jPFQ&X)&0PG(9`#L-+3dp14NP(Ae084%P2Ad026P026%8pH3T$6dj'58G
I6N982AN+3dp14NP(Ae0C8eC*8%-pH3T$6dj'58GI3P0%Ae"56d0&8e0I380$9$e
j#N026NC*4ep6@90$9%`pH3T$6dj'58GI3NP14Ne8Ad&2993pH3T$6dj'58GI3NP
14Ne8Ad9-4Mej#N026NC*4ep#58j'694I68P63cej#N026NC*4ep96NPB16KI8&4
C8cej#N026NC*4ep96NPB16KI8&4CAd0298j826)e0JT$6dj'58GI8e0-2AN+3dp
14NP(AdK28e4'8ceY#L-J3dp14NP(Ade$6dj66da&)'Pc)'j[G#"cCA3+#L-+)b"
-Ef&NB@*XC5"YEf4eE'8JFh9`F'pbG!SM#N026NC*4ep06d496%962AN+3dp14NP
(AdY06d3pH3S+)`SM)%4PGQPMCA-+)`T$6dj'58GI3Na,Ad4&9Pp93N3pH3SM)%0
26NC*4ep#6%YI4%9@Ae9#4&p6@8j$)'Pc)'j[G#"cCA3+3dp14NP(Ad*-5ep%49C
I6%p28$ej#N026NC*4ep#6%YI4%9@Adj#4$ej#N026NC*4ep#6%YI4%9@Ae*"66e
j#N026NC*4ep#6%YI4%9@Ae*"69p659T&263`16B+3dp14NP(Ad*-5ep%49CI58j
*9&*%2AN+)b"$6dj'58GI68e"8&"&8L"TFb"ZEh3JFf9d#JSM#L-J6Q9dGfpbDfP
ZCb"[F(4TEfjc#L-+)b"$6dj'58GI8%&$5d98)'Pc)'j[G#"cCA3+)b"$6dj'58G
I6N986%P15b"TFb"ZEh3JFf9d#L-J3dp14NP(Adj&9%C*6&4&8L"TFb"ZEh3JFf9
d#L-J3dp14NP(AdC*6&4&8L"TFb"ZEh3JFf9d#N026NC*4ep96NPB2AN+3dp14NP
(AdP1493pH3SM)%026NC*4ep*8&p098a8580"8e3JDA-JEQpd)(0PG!SM)%026NC
*4ep*8&p"4&C"6N0&4&p56e9849)JDA-JEQpd)(0PG!SM)%026NC*4ep*8&p36P!
JDA-JEQpd)(0PG!SM)%026NC*4ep1494I59"*8#"TFb"ZEh3JFf9d#L-J3dp14NP
(Adj&9&p*8%G545"TFb"ZEh3JFf9d#L-J3dp14NP(AdP1494I4801)'Pc)'j[G#"
cCA3+)b"$6dj'58GI8eP1Ad026dY*49-JDA-JEQpd)(0PG!SM)%026NC*4ep*8&B
f)'Pc)'j[G#"cCA3+)b"$6dj'58GI5dK89&"%)'Pc)'j[G#"cCA3+)b"$6dj'58G
I3940)'Pc)'j[G#"cCA3+#L-+)b!J#L-+)b"$6dj'58GI59"B)'Pc)'j[G#"cCA3
+)b"$6dj'58GI394"6%XJDA-JEQpd)(0PG!SM)%026NC*4ep%4801493JDA-JEQp
d)(0PG!SM)%026NC*4ep#8NP%4d8JDA-JEQpd)(0PG!SM)%026NC*4epB-M8JDA-
JEQpd)(0PG!SM)%026NC*4ep-39"#)'Pc)'j[G#"cCA3+)b"$6dj'58GI6%a$)'P
c)'j[G#"cCA3+)b"$6dj'58GI6N98Ad4*9N959#"TFb"ZEh3JFf9d#L-J3dp14NP
(Ad9$6dj&9#"TFb"ZEh3JFf9d#L-J3dp14NP(AeG"6Pp56e9849)JDA-JEQpd)(0
PG!SM)%026NC*4ep1494I4N&69&*2994&)'Pc)'j[G#"cCA3+)b"$6dj'58GI6N9
8AdKAAdC-6eG$6dj88Np-)'Pc)'j[G#"cCA3+#L-+)b"4Ee-JB@jN,fpb)'CKDA)
JFA9PG@9TEQF+)`SM)%026NC*4ep1494I8d0)483JDA-JEQpd)(0PG!S+)`SM)%j
PG(G[FQXJC'9fD@0P)(0eF("[FR3+)`T$6dj'58GI6N984%9@580&8cej#N026NC
*4ep968aI6N982AN+)b"$6dj'58GI98e-Adj&9&p&9%K&8P4"8#"TFb"ZEh3JFf9
d#L-J3dp14NP(Ae906&p1494I8da*8#"TFb"ZEh3JFf9d#N026NC*4ep968aI6N9
8Ad4"48e26Mej#L-J3dp14NP(Ae906&p1494I680"8e3JDA-JEQpd)(0PG!SM)%0
26NC*4ep&9%K&8P4"8#"TFb"ZEh3JFf9d#L-J3dp14NP(Ae496L"TFb"ZEh3JFf9
d#JSM#L-J4QPXC5"cHA0dC@ec#L-+3dp14NP(Ae&96e4"2AN+3dp14NP(Ad&99%p
'8ep'8ceY#N026NC*4ep"99424P-dAdC62@d+3dp14NP(Ae*&590&8NC6AdC62@d
+)b"$6dj'58GI8N9*8d954P0I3dK&3dXJDA-JEQpd)(0PG!SM)%026NC*4ep"4%C
6AdC6)'Pc)'j[G#"cCA3+)b"$6dj'58GI384'8ep'8ep59b"TFb"ZEh3JFf9d#L-
J3dp14NP(Ad&'4P0I4P-JDA-JEQpd)(0PG!SM)%026NC*4ep)4P0I4P-JDA-JEQp
d)(0PG!SM)%026NC*4ep#4P0I4P-JDA-JEQpd)(0PG!T$6dj'58GI4N&8AdC62@d
+3dp14NP(Ade64%p6AdC62@d+3dp14NP(Ae908d428ep'8ceY#N026NC*4ep@4N&
8AdC62@d+)b"$6dj'58GI48C6AdC6)'Pc)'j[G#"cCA3+)b"$6dj'58GI5NC'8ep
'8b"TFb"ZEh3JFf9d#L-J3dp14NP(Ad0538e'8b"TFb"ZEh3JFf9d#L-J3dp14NP
(Ae408%C6)'Pc)'j[G#"cCA3+)b"$6dj'58GI8N&04P-JDA-JEQpd)(0PG!T$6dj
'58GI590216Bf-&p'8ceY#L-J3dp14NP(AdT26%P&9#"TFb"ZEh3JFf9d#N026NC
*4ep058j*@&p'8ceY#L-J3dp14NP(AeCB4P0I4P-JDA-JEQpd)(0PG!SM)%026NC
*4ep19%C6AdC6)'Pc)'j[G#"cCA3+)b"$6dj'58GI6P4'8ep59b"TFb"ZEh3JFf9
d#L-J3dp14NP(AdK34P0I4P-JDA-JEQpd)(0PG!T$6dj'58GI8&*23ep'8cej#N0
26NC*4ep%49C'8ep'8cej#N026NC*4ep%49C'8ep06e919$ej#L-J3dp14NP(Ad4
&9NC6Ad4&3P9()'Pc)'j[G#"cCA3+3dp14NP(Ad4&9P"88ep'8cej#L-J3dp14NP
(Ae&1@$4'8ep'8b"TFb"ZEh3JFf9d#L-J3dp14NP(Ae&1@$4'8ep59b"TFb"ZEh3
JFf9d#L-J3dp14NP(Ae*268C6AdC6)'Pc)'j[G#"cCA3+3dp14NP(Ad9B9$*I4P-
pH3SM)%026NC*4ep6@90@AdC6)'Pc)'j[G#"cCA3+)b"$6dj'58GI984'AdC6)'P
c)'j[G#"cCA3+)b"$6dj'58GI984'Ae*A)'Pc)'j[G#"cCA3+)b"$6dj'58GI98C
6AdC6)'Pc)'j[G#"cCA3+)b"$6dj'58GI98C6AdC6AeG5594&)'Pc)'j[G#"cCA3
+#L-+)b"1CA4hEh*V)%CTE'8J8hPcG'9YF`SM#L-J3dp14NP(Ad024%&I4P-JDA-
JEQpd)(0PG!SM)%026NC*4ep14P0I4P-JDA-JEQpd)(0PG!SM)%026NC*4ep14P0
I9M-JDA-JEQpd)(0PG!SM)%026NC*4ep56dp8Adj'8b"TFb"ZEh3JFf9d#L-J3dp
14NP(Adj'8d3JDA-JEQpd)(0PG!SM)%026NC*4ep14P0%AeBc)'Pc)'j[G#"cCA3
+)b"$6dj'58GI8e918P"$)'Pc)'j[G#"cCA3+)b"$6dj'58GI6%p$5d3JDA-JEQp
d)(0PG!SM)%026NC*4ep668*I4P-JDA-JEQpd)(0PG!SM)%026NC*4ep13e"I4P-
JDA-JEQpd)(0PG!SM)%026NC*4ep13e"'8ep3380,494I8dP(6NP14b"TFb"ZEh3
JFf9d#L-J3dp14NP(Adj$8%C6AdP23e4-Ada23dY*6NFJDA-JEQpd)(0PG!SM)%0
26NC*4ep13e"'8ep69&*26NFJDA-JEQpd)(0PG!SM)%026NC*4ep13e"'8ep14P0
I6P-JDA-JEQpd)(0PG!SM)%026NC*4ep13e"'8ep28c*I6P-JDA-JEQpd)(0PG!S
M)%026NC*4ep13e"'8ep668&-6%428b"TFb"ZEh3JFf9d#L-J3dp14NP(Adj$8%C
6Adj-8b"TFb"ZEh3JFf9d#L-J3dp14NP(Adj$8%C6Ad9B9&*"8b"TFb"ZEh3JFf9
d#JSM#L-J8'&bG'PdD@pZ)&4jF'9c#L-+)b"$6dj'58GI8%&59%P858p1Ad&%9N&
13d9%)'Pc)'j[G#"cCA3+3dp14NP(Ade64%p6Ae""8P4*9%P26Mej#L-J3dp14NP
(Ae003Pp16&-JDA-JEQpd)(0PG!T$6dj'58GI6Na62AN+#L-+)b"1BA4TGQ8J6'&
ZCh9KCf8J8h9`F'pbG!SM#N026NC*4ep16&0I4%9'399-9$dLDA0[1$Je15da)JS
M)%026NC*4ep16&0I3dp%49""4d9I0$-h)'Pc)'j[G#"cCA3+)b"$6dj'58GI6Na
6Ad024%9338G&AcFc0b"TFb"ZEh3JFf9d#L-J3dp14NP(Adj-8ep$6d4&8%&(49m
h0c8JDA-JEQpd)(0PG!SM)%026NC*4ep16&0I3dp%49""4d9I1$8`)'Pc)'j[G#"
cCA3+)b"$6dj'58GI6Na6Ad024%9338G&AcJe-L"TFb"ZEh3JFf9d#L-J3dp14NP
(Adj-8ep$6d4&8%&(49mi068JDA-JEQpd)(0PG!SM)%026NC*4ep16&0I3dp%49"
"4d9I1$8h)'Pc)'j[G#"cCA3+)b"$6dj'58GI6Na6Ad024%9338G&AcJf-#"TFb"
ZEh3JFf9d#L-J3dp14NP(Adj-8ep$6d4&8%&(49mi0M%JDA-JEQpd)(0PG!SM)%0
26NC*4ep16&0I3dp%49""4d9I1$Bb)'Pc)'j[G#"cCA3+)b"$6dj'58GI6Na6Ad0
24%9338G&AcJf-b"TFb"ZEh3JFf9d#L-J3dp14NP(Adj-8ep$6d4&8%&(49mi0M3
JDA-JEQpd)(0PG!SM)%026NC*4ep16&0I3dp%49""4d9I1$Be)'Pc)'j[G#"cCA3
+)b"$6dj'58GI6Na6Ad024%9338G&AcJf0L"TFb"ZEh3JFf9d#L-J3dp14NP(Adj
-8ep$6d4&8%&(49mi0MNJDA-JEQpd)(0PG!SM)%026NC*4ep16&0I3dp%49""4d9
I16-f)'Pc)'j[G#"cCA3+)b"$6dj'58GI6Na6Ad024%9338G&AcNe-#"TFb"ZEh3
JFf9d#L-J3dp14NP(Adj-8ep$6d4&8%&(49mj-c)JDA-JEQpd)(0PG!SM)%026NC
*4ep16&0I3dp%49""4d9I163j)'Pc)'j[G#"cCA3+)b"$6dj'58GI6Na6Ad024%9
338G&AcJh0#"TFb"ZEh3JFf9d#L-J3dp14NP(Adj-8ep*8dmi1$8jAcJJDA-JEQp
d)(0PG!SM)%026NC*4ep16&0I3dp%49""4d9I-6)e-5"TFb"ZEh3JFf9d#L-J3dp
14NP(Adj-8ep*8dmi1$8jAc%JDA-JEQpd)(0PG!SM)%026NC*4ep16&0I59021$J
e19mb)'Pc)'j[G#"cCA3+)b"$6dj'58GI6Na6AdP66cJi06PI-b"TFb"ZEh3JFf9
d#L-J3dp14NP(Adj-8ep*8dmi1$8jAc3JDA-JEQpd)(0PG!SM)%026NC*4ep16&0
I59021$Je19me)'Pc)'j[G#"cCA3+)b"$6dj'58GI6Na6AdP66cJi06PI0L"TFb"
ZEh3JFf9d#L-J3dp14NP(Adj-8ep*8dmi1$8jAcFJDA-JEQpd)(0PG!SM)%026NC
*4ep16&0I59021$Je19mj)'Pc)'j[G#"cCA3+)b"$6dj'58GI6Na6AdP66cJi06P
I-6-JDA-JEQpd)(0PG!SM)%026NC*4ep16&0I59021$Je19ma0#"TFb"ZEh3JFf9
d#L-J3dp14NP(Adj-8ep*8dmi1$8jAc%e)'Pc)'j[G#"cCA3+)b"$6dj'58GI6Na
6AdY256KI8L"TFb"ZEh3JFf9d#L-J3dp14NP(Adj-8ep,6dNiAe8JDA-JEQpd)(0
PG!SM)%026NC*4ep16&0I994'1#"TFb"ZEh3JFf9d#JSM#L-J5f9bEQ9X)'KKBfY
TEQF+)`T$6dj'58GI4%9#98G6@8dpH3T$6dj'58GI8&4I8&*2@&NpH3SM)%026NC
*4ep(8&*24L"TFb"ZEh3JFf9d#L-J3dp14NP(AdG$6eBJDA-JEQpd)(0PG!S+)`S
M)%0XGA0dCA*TEQF+)`T$6dj'58GI@$JfAd008&K$5%FpH3T$6dj'58GI3da98e4
&8Mej#N026NC*4ep$6%e62AN+#L-+)b"*ER4PFQj[C'8J3fpYEA9ZD@0KG'P[EL"
6G@*cHA0dC@dJ+%P$8bNJDA-JFQ9aG@PbC@3JCQpb)%0-69-+)`T$6dj'58GI580
62AN+Z*m!!!:
--============_-1213927283==_============
Content-Type: application/mac-binhex40; name="patch-ci-uml"
Content-Disposition: attachment; filename="patch-ci-uml"
(This file must be converted with BinHex 4.0)
:$("KG'0S,@0T,A9YE!!r2cmr2cmr2`%!!!!(L!!!!!"3I'4TCQBJ,8jeFL"MD5e
eE@`[BA*MD#peE5pMEfjQD@FZD@iJBfNYG@eX,A4PFh3[BA*MD#peE5pMEfjQD@F
ZD@i+,5dY)'0T,A9YE#pKFQ0S,h9Y,f0[EQCTCbjTEJP8G@8J5R9X)$-a)$%a1M8
i1M%`)$)`-$%++bXV)'0T,A9YE#edCA0d,f&bBfJ[G@d[BfpZCQPR,QPZ#94eC5"
+G@`J-c%J-6Bk0$3k063J-M!`-3T!3#!Y16FX-b!V16FX-6FJ3%!+)'4PF&pLEfp
X)#G&EQ&LE'8JCh"bEfBJFh9`F'pbG#FJ3dp14NP(AdG38Np')#4$6dj'58GI4%9
#98G6@8d+)'4PF&pLEfpX)#G&EQ&LE'8JCf0[GL"cGA"`Eh*d*b"$6dj'58GI4d0
29L!N3dp14NP(Ad4&3P9(8eP0#L"PEQ4YC@je#LX++feKD@jYC@jeAfp`G'P[EL"
ZCAKdAf0[E@ePER3++f0[E@ePER3J*d0XGA0dCA*TEQFR#LYNC@CTEQ9IBQp[E#"
$6dj'58GI@$JfAd008&K$5%FJH3SVBQp[E#!R3faeFh4PFQPZCbFJ3dp14NP(Ad0
-990849)++fPQ)&XJ)L4$6dj'58GI3da98e4&8L)J25!LH5)JA6XJG'KPEJSV)#"
LEfpX)#G$6(9cG'9b)%ePE@*PFR0SDA!J8f9bGQPMC5!S3da08bNR)%026NC*4ep
$6%e6#LXJ)'PQ)&XJ)L4$6dj'58GI3da08b)J25!LH5)JA6XJG'KPEJSV)#!J)'0
[E@ePER3J*dPZG'9bEQpNC5"$EfeYG@jTBf&dD@pZ)&0eBR0jFh4PE5!S5806+5"
TFb"bCA&eDA*PC#"QEh)J3da08bF++b!J)#"NC@CTEQ9IBQp[E#"$6dj'58GI580
6)(N++b!JCQN++fCT#LX++f9ZC'ePER8+C'PQCL!Y6R9b)'0T,A9YE#pKFQ0S,h9
Y,fPZBfaeC'8[FhPcC'9`,@Nc1$B[FhPcBf&XE(-ZD#"MD5eeE@`YG'9cG#pKFQ0
S,h9Y,fPZBfaeC'8[FhPcC'9`,@Nc1$B[FhPcBf&XE(-ZD!SY,5dJBfNYG@eX,f&
bBfJ[G@d[D@jME(9NC5pcHA0NCA!YD6-i0LpcHA0MB@aXFbjS#94eC5"+G@`J-c%
J-6%k06Jk-6!J-M!`-3SV+bXJBfNYG@eX,A4PFh3[BA*MD#peE5pTEQ0XG@4P,h0
jFf4PF#eT-cJf,h0jFf0KE'ac,QJ*9(9P)%TeE#!c-5!a1$Sb1$Sa-5!b-$!a#N"
!)#dc15`j)#Xc15`a-L"!3!SJ#9XJAep18PpcCA4QFfGTC$-b)&dJ25"cHA0IFf9
dCR0RD@3X)&`+)!PE)&pI6P*IF'PfEh4IFQp[G#"G)$dJFhPcAh"TGQpdAh*[Eh3
X)&`+)!PE)&pI6P*IE@PZBfpbC5"G)$dJFhPcAfeTEQ0[FQ8X)&`+,3PE)&pI6P*
IE@&NGQPcC5"G)$dJFhPcAfeKC(CTFf8X#LX*@b"IAdj5AfeKC(CTFf8JA5!p)(0
jFepYB@4fDA0P,#"F#LX*@b"IAdj5AfCMER4X0M3J+b!a)#iZ,L"IAdj5Ah0cDA0
jFb!Y)$%JA5!p)&`++`N*+(0jFf0KE'aID'&ZC'aPFPpd)#ST)(0jFepZD9pcHA0
MB@aX,#"F#LX*@b"IAdj5Ah0cDA0jFb"G)$dJFhPcAh0cDA0jFb`+)!SY)f4PCQP
ZC5"-3908Ae0C8d0"6%`JAep18PpQBfjdE$Bd#LXMC'9QD@jP)%a"8e4I8eP63d&
-6#"IAdj5Ah0cDA0jF`SJ#L![+JSJ)#SJ6hCPFR*TC'9c)'C[FL"&E@&MFb"cEb"
dD'&d)(GP)'C[E'a[Gb"-D@jeFbGc)(4KBQ*TEQFJFh4jE'8Z#Q4TCQBJ,8jeFL"
MD5eeE@`[BA*MD#peE5pVCA*ZC@`[FhPcAf0KE'aIG'&LE'8ZBb"MD5eeE@`YG'9
cG#pKFQ0S,h9Y,fYPFQjPE#pcHA0IBf&XE&pdB@*XC5jM#LdY,5"MD5eeE@`[BA*
MD#peE5pVCA*ZC@`[FhPcAf0KE'aIG'&LE'8ZB`P8G@8J5R9X)$-a)$%a1M8i1M%
a)$)`-$%++bXV)'0T,A9YE#edCA0d,f&bBfJ[G@d[Df9bEQ9X,h0jFepMB@aXAh4
KBQaP,Q-*9(9P)%TeE#!c-5!a0MSe06S`05!b-$!a#N"!)#db-6FX0L!V-M%h,$F
J3%!+)'9iG'9bEL"cHA0MB@aXAfKKEQ4XCA*IG#"cHA0IE@&NGQPcC6X+)'9iG'9
bEL"cHA0MB@aXAfKKEQ4XCA*IG#"cHA0ICQ0ZG'`f0$X+)'9iG'9bEL"cHA0MB@a
XAfKKEQ4XCA*IG#"cHA0ICf9dC'9ZG(-f0$X++f9iG'9bEL"cHA0MB@aXAfKKEQ4
XCA*IG#"cHA0IFh0TFhPc1`SJ#L"PH(4PFQiJFhPcBf&XE&pSB@jNE'9bAh3JG@e
IE@peER3l#L"PH(4PFQiJFhPcBf&XE&pSB@jNE'9bAh3JG@eIG'PYC6X+Bf-!!!:
--============_-1213927283==_============--