Date: Mon Apr 21 17:49:16 CEST 2003
User: Derick Rethans
Directory: www.derickrethans.nl/html/srm-montreal
Log Message:
[0.25]
- Added my SRM talk slides
Modified files:
www.derickrethans.nl/html/talks.php (version: 1.5)
Added files:
www.derickrethans.nl/html/srm-montreal/banana.html (new version: 1.1)
www.derickrethans.nl/html/srm-montreal/banana.jpg (new version: 1.1)
www.derickrethans.nl/html/srm-montreal/design.html (new version: 1.1)
www.derickrethans.nl/html/srm-montreal/extern_srm.html (new version: 1.1)
www.derickrethans.nl/html/srm-montreal/fin.html (new version: 1.1)
www.derickrethans.nl/html/srm-montreal/fireworks.jpg (new version: 1.1)
www.derickrethans.nl/html/srm-montreal/future1.html (new version: 1.1)
www.derickrethans.nl/html/srm-montreal/future2.html (new version: 1.1)
www.derickrethans.nl/html/srm-montreal/index.html (new version: 1.1)
www.derickrethans.nl/html/srm-montreal/interact.html (new version: 1.1)
www.derickrethans.nl/html/srm-montreal/intro.html (new version: 1.1)
www.derickrethans.nl/html/srm-montreal/nav.html (new version: 1.1)
www.derickrethans.nl/html/srm-montreal/online1.html (new version: 1.1)
www.derickrethans.nl/html/srm-montreal/online2.html (new version: 1.1)
www.derickrethans.nl/html/srm-montreal/opcode.html (new version: 1.1)
www.derickrethans.nl/html/srm-montreal/parts.html (new version: 1.1)
www.derickrethans.nl/html/srm-montreal/persistant1.html (new version: 1.1)
www.derickrethans.nl/html/srm-montreal/persistant2.html (new version: 1.1)
www.derickrethans.nl/html/srm-montreal/phphist.html (new version: 1.1)
www.derickrethans.nl/html/srm-montreal/protocols.html (new version: 1.1)
www.derickrethans.nl/html/srm-montreal/qmark.png (new version: 1.1)
www.derickrethans.nl/html/srm-montreal/questions.html (new version: 1.1)
www.derickrethans.nl/html/srm-montreal/resources.html (new version: 1.1)
www.derickrethans.nl/html/srm-montreal/srm-design.jpg (new version: 1.1)
www.derickrethans.nl/html/srm-montreal/srm-tree1.html (new version: 1.1)
www.derickrethans.nl/html/srm-montreal/srm-tree2.html (new version: 1.1)
www.derickrethans.nl/html/srm-montreal/srm-tree3.html (new version: 1.1)
www.derickrethans.nl/html/srm-montreal/style.css (new version: 1.1)
www.derickrethans.nl/html/srm-montreal/style2.css (new version: 1.1)
www.derickrethans.nl/html/srm-montreal/talk.html (new version: 1.1)
www.derickrethans.nl/html/srm-montreal/timeline.html (new version: 1.1)
www.derickrethans.nl/html/srm-montreal/tree1.html (new version: 1.1)
www.derickrethans.nl/html/srm-montreal/tree2.html (new version: 1.1)
www.derickrethans.nl/html/srm-montreal/welcome.html (new version: 1.1)
[FILE: /www.derickrethans.nl/html/talks.php]
--- www.derickrethans.nl/html/talks.php:1.4 Thu Jan 09 18:07:37 2003 GMT
+++ www.derickrethans.nl/html/talks.php Mon Apr 21 13:49:15 2003 GMT
@@ -12,6 +12,9 @@
<p><strong>TALKS & PRESENTATIONS</strong>
+<p><strong><a href='srm-montreal/talk.html'>SRM: Script Running Machine</a></strong>
+<span class='date'>[ Conférence PHP Québec - Montreal, Canada - March 20, 2003 ]</span></p>
+
<p><strong><a href='ze-ext/talk.html'>Zend and Extending PHP</a></strong>
<span class='date'>[ Forum du PHP 2002 - Paris, France - December 10, 2002 ]</span></p>
[FILE: /www.derickrethans.nl/html/srm-montreal/banana.html]
<?xml version="1.0" encoding="UTF-8"?>
<html>
<head>
<title>Bananas</title>
<link rel="stylesheet" href="style.css"/>
</head>
<body>
<h1>Bananas</h1>
<ul class="size5em">
<li>Persistent</li>
<li>Like J**a beans</li>
<li>Compiled only once</li>
</ul>
<p align="center">
<img align="center" src="banana.jpg"/>
</p>
</body>
</html>
[FILE: /www.derickrethans.nl/html/srm-montreal/banana.jpg]
#"""#''''''''''
!! !!'''''''''' !0@1"2A#hKc\&/soQ@ڸs:鲬A)R@î6;G:QW4ۉ[q:Xg⾢VfhxPu.G/Ӊorx}RGȝz/ezҟ\$/@Cϰ<ٻS ;^WwGFf9S6
{3\rs*tE~ɭWѹM27cM14m魓'/[WhN]{Or2u$M
m[QZUu寏o|)0+|WA2j&QYQ;9h(kil-ӫ]~SkC[ٮvǐ3fPVur+ȫ%)qlr:nNv-f5|3wH[\\x__~g#WygV&&U9Y/+Ckeuz?u:6}x?fUo?M&;㾁z'O>Ty@#p/ ^q\gݽNe-~cdO2[zژ8MDل
:=l|s~ѭ{^ ":+t;-bEݸD%wgҿk{I&g
O3)tb*rr3!YqvO`c9,0}
7ۍg3gbf+#IAc|9X &d5Wdj8c45Z!3>DV+ʨS/ P*p}xJv~XbiY3D"=1=j11?x>3<X 1K
1+SLrepeie[GډNbr
g
ǽN>a3p3c2q|̴`q0513
~11>=p!H&}82{d33D%}Fl}D@ӗϪB~1L'̜GQ
<PC?hAȆ|P> Rߌ.ah^ms:bilWXl$#8a<íA4~녙"Dzvm(PeĮWG)C$nskI39 Nk9 zSYW~[^5k|g:amn^Ym<<Z`t,^íZ%m[%;0]IR}){%ׅ1Ӕ9@<WqAWKֿ5ڭLmI^Vevdܥg.{ %ڋY^%$Y;*jsWbjjGHdՅՈtluRWq1^ZJi[lhdKL/۷>WsQWe`UM-ӣM9 NsUŚp%j+*jvyD8-Xi;oVEz=Kķ?Bkkvto5 O4f`x30iu&FƒZ_j-]:[ukA@aj^ʏ߲־o}kWe]]f24||DFjs#ml^hktȚ5s_hX>#(iKUp!:6+
._b_Gxf2W}RY;^WRMwȮ%; ~Bkja O:(ݷ
j[q֬xhՊqh0`&+Dx9Gڌ#3KuuֺUnFfU<1eBbMX
O!H,ZXK92fZuf+XVY,ՏD*G%Wr)cn>7RfݓgLl5Pڛ9kܻkaV^>ZY\
}*jl1/
k'n٪4U5ߛJu{ok$Vc^Y,֖k25o-6loki1u*NPE\W)ejeb4u\}~12s-]D\j>T;gbϖ|%]-OUǮ'P3 @>Ȯef_L\t}6*lv|Mi㍵댺]P:?[75)Ыw_6J,4߶cߜ
Qp__j]ǔAPR
-0pPi.bC\ÍƟ1tȅo)Z@HT9`퓐 KxK$u\iEW².T}rRS<ur-P5E>òuQrKPJr*
ϽITjls-O3.40{B=B+c˭Nm[0ẹ{JӆSf7^uåq4{bK<47!ٯb#q碃D;(]lՖ*m<DH$uˣsmcT[UUNEmpV#By]֫oكCЋV?lb3z"U{GςkgVͧ.3:qc̖s"AڡxK|$-,ݛ-0*\G<2lq-ppc:(K.84^_otqEtM.VS<7Z8uvlЦ 5 o[H8u??J4ǪJ">{U -ӫV>Upe D/+ޣ.n&hJޒ[g?HupsO1˴gȴTy[mcy㘏EEEɁ˽ QF˺F|,X^ΧtSpPwabb:'@""aS0:ڰy7ef苯zSZcxNz(:(;]Oqj.g4[CVS"6D\imGk!8n.fqMc5 RF`(\wÿ 5mIm3q!ۜD29G>>w,b0^H.[ILg韂:&ނ.3-Ϳh@h^sh]P1[M0ELh:(-3CDo2읮1OkH7%x^1#***pDS0ۄ1ݤbD-GXwy!'[,ė^OZ!]_s@G!
3HC
)s6!tcL($(T8(*CمLJ("WD4%$QA0Ld=vFEncQYlD7kc0iT L&7%e ({2>c{ؿw}LGOڃ{q.;@a^xT~Q]O4}5Xĥ뙶|g@l}IQw_0Oi
Lm`Q
K5 2`;K3Ր/P6[vƈSά|O2-)ܾ.v%JĦ7K%Y5v<E@˕)#ye;_K+w`XCe7ܟ_li"
rSdg4@&|JP&ʟXHռ8P#%i{{Ec^"eiP*~'0iӒP)AL
-8!0^g˗)3Z`f
Ӓ8* Tp!'qK>tOkЙ>_/ܡOó]l
Qli;2!#a9~oN!,Ғ.ߨ u{Vµs@p'cֈ!QHUl;l̤ xQYTJ!_1ZSGv&IRY 2<D?6:X4:tQ9=?,oG,yGNRT <8q1db(q.(B|FℤX>L0+^jiedQiRث0ߠT~]:c`*$hE270[U@7(bW#Oaz.12Dsa)i i0f
EEܸ0+.;bsʼ#cr0ek\P[~qھPz3/_89Z#ЭM?V<#<[IԥgDi]M'w},Oe\g~ ŁOt)ןmA wXm։R&Ox(GYWF;]MÚ=o ǏFGh~
ʜuzxB9eb~x5[~D*|+o`Hhܣ@y.i1Mjٟ;W''O1{xMB>3u،Pg2]iy6y~dS\9bRZsn[D8&H/߃#Ҭ^vL37YEq'>E^̎%\Kψq"̭i輇cygVp=TW|JF+}DoxX&C2~&`!ɿfBEvFP2|troT&
Ѽ:,/v+?@T=x%$Aeby::&".3~k篩
S:M`*ӂ u/LfeU k
ψۨi"^T@D1Qwd*ZL=#d16Dz\tY:;A
çg_U/fݣH@WӃQ.eǘz}X{/rHI%R5QJh{ƇGpXm:W|4Wy\0RhT[DP6cK-?0R&uYWKl^o9
GF\[
L|ޫF8.d$exǙ*px>uT;
އ"]0
w7[`CjQ=S}A~XG9h~̡?zIg-*B]_P6䉄ocA,?h_q,T^98~^ȯy[.<zh
n~ļ
3K7$CG멘Rm} o #7U,ꠀEi+>3+j ĸr#S#}/$D "v^b [WoY]v0\P@<J]chJט>3xäBup"1|gMԺZ%AӔu!1SaL.oEi_
>rQxXA<;ZB,bNIB*rN4Qr\?N9|Sfj"ZƸfe,"l厃C|*UYEzT'{=慨hɅ|!DKO͌* x㿛kXi|TϘwyi2x*B3LگuxHhe7]Bx,2R"cz@37NrBPQ%r?fX^@ta39_zT#{,CepG]`#3E!?)S\ol̨8MR܁ۇ[e%L Jc3+AG,Cec*1I1x_h$V}0tMGYJwwb#KdCA1,nں.Z<lM
Xmx7?=A1QP+#
q$2GY &)YD UqVv{iÙWC;!\6)nW<|\4JcS0ԅ)/
}
?(ԭA7LF!Z}9RzWw1!\1U.5
F-uOt%ZVkpY.,ұڡ%wrtp0p3DHjqZ&8ԡD8&zWZ"_8Xba]n9,b*|G֯p&"90}D]Q=iT`kڢ*UJ+--------------------------CVSSCRTIPSVLSRMNET
Content-Type: text/plain; charset=us-ascii;
name="/www.derickrethans.nl/html/srm-montreal/design.html"
Content-Transfer-Encoding: 7bit
Content-Disposition: inline;
filename="/www.derickrethans.nl/html/srm-montreal/design.html"
[FILE: /www.derickrethans.nl/html/srm-montreal/design.html]
<?xml version="1.0" encoding="UTF-8"?>
<html>
<head>
<title>Design diagram</title>
<link rel="stylesheet" href="style.css"/>
</head>
<body>
<h1>Design diagram</h1>
<p align="center">
<img align="center" src="srm-design.jpg"/>
</p>
</body>
</html>
[FILE: /www.derickrethans.nl/html/srm-montreal/extern_srm.html]
<?xml version="1.0" encoding="UTF-8"?>
<html>
<head>
<title>SRM: Script Running Machine</title>
<link rel="stylesheet" href="style.css"/>
</head>
<body>
<h1>SRM: Script Running Machine</h1>
<ul class="size4-5em">
<li>Functions to work with persistent Objects</li>
<li>Bridge between PHP Client and Objects</li>
<li>Objects run in threads</li>
<li>Manage persistent resources and data</li>
</ul>
<p align="center">
<img align="center" src="banana.jpg"/>
</p>
</body>
</html>
[FILE: /www.derickrethans.nl/html/srm-montreal/fin.html]
<?xml version="1.0" encoding="UTF-8"?>
<html>
<head>
<title> </title>
<link rel="stylesheet" href="style.css"/>
</head>
<body>
<h1> </h1>
<p class="blurb">
FIN </p>
<p align="center">
<img align="center" src="fireworks.jpg"/>
</p>
</body>
</html>
[FILE: /www.derickrethans.nl/html/srm-montreal/fireworks.jpg]
%# , #&')*)-0-(0%()(
(((((((((((((((((((((((((((((((((((((((((((((((((((b3r%4Dcs5u"a2QqBR#$3CRRRRRRR.=ǸV
ȥ)R@)@mԅi858i-DuhnP=OP5f7RBrN_Rmce_"iv-.Ppd-+~nry#ώA !DG#WO+(6ZgLl4u8Jl
њ,@CHJG7qnm
&n-jҭ뎳F<qWUH3v5nA5bTfxr<'%=0Zqgi
>H9M\:*>M\ul%ą$pJ5RjB?J[.md42<<-,=qNt@ Y#EҶnQL+;E5OO+()R@)@
R^RN07
kmZABN꤅(>~9U,:͓͂rQ{*hnRkq!: S9G4}
BPZNsM<2Vd=SĴ{?:9GN,J)?HZZ~cĔֱrz| ̋cgFuMZҢYy+|}N[ol~EikyԠ'&\z"UV2cjU%Q_,jV"NH-6i}vGURW}V<i`R9dU#GS$8<*ӖP JU
RR6(Nlw7|o{RqIH-JT Ey6t\'@G
%)8#j)FWdep-s(&mi`v147%$F1|
@'|f5%D͢d<M'M^8A+#ZzD/4
ojㄔJvNʇVܬV;?˃ZÔR@oÙIqZN5<In;JDB^mG II^t-+}h
Ha.l>҆JO
v}Akc+V[.ZL=rIQIywr"6J;.Y\-Fd0w6QֶRQ&X/K%%
i(*arw`<wx)*IޅcκJVd_ȊPwPG^KV?KsURᗅ.PIOH,=Im嚃豂ӖmqܔN7BlFҬnPlV?e5ɈeإG$Iq՜j*'εb&Hj+B)o8VEJُ}2ΧD
BRM[۲Z鈫
uu#7yTŜ~iݤnNAWQîP.IT՝&K=_
+ڗӶquDkJni]j5S/0ӪCnq+4mg.fm{2jO}Z9˰<)O2
Rcffb@Q'd'nV6Om#?G5Q³!(VLvTs4{9i?B;C^2/p>;Pgϵ>WC]O3b-%\cv:^:Yekl;I yģ[zYQf;RqJ(OUru5'ڥPT7<vK!&BYurؑKg;+IBDMG"jTlrkwmpya9
X${nQ 6j s-)gXEO+]G&Dn}s#y+ԧG[6EyYmՌ\##CTn^ǀe~Tw*mi敤L¾Ar裸6[Ԃ}Ε9&X>8t_uk"6u
gkio4~ҒAIG7FwK^TLi#e;ǎG554/-r};>TXDCGGp<GY
&krY#&ֹ/iEam +^qI
5{`-у6]fain6ZK=ݓ~8pJȟ.eذ=Çc܁7~"C^>&c(Ům8y!NEj;o;
ImI'MUIS48iPgi[)'9[jaE=t98fS\$orNQ7U7t$WH1goPNTyuGVu>jѦX
6q=r,H6~lȺ4Sio;@RRA2BdPW̚ꝐֵMh*tĒ欻Nqo6R=+IpK[-G$naۃR%Ih2$mpGηl'JMU)K/+\ː7E{),U2
#"Lq{iԩm5mIf-#VM_wlHSWi>#Ŵ*&dgb){LWmsG5F>`ԍQAEiB@4CWi4)6ۉHt aʊ^@G<EJü{ZidEOi!Ҵ#q-WL{;QSD䈠>ya}yU'hԒQ
~ GgocD K&8:!7b'ܐ0=>"/KLg8|KBȐxa;QY`J=d7tO욛i(-9C.<+\c'rX]~u82%) oJ;"U蓫*!cX!*jԋ<a\PIl{^=VIV!.F;z'!Sڍ2TF0쳓)H_k>rHۺ\#d~ݺ-V8)JJ%~2vqz@%2O*i~px܌`Z4
d.]Vw9hr5
:4JZZT[;ԥ,G*R{oujq|uhaݲTDI}iF&,59FJN\pL5nmY[0teSX}EE?u>dN}[xՎ>d\"'ipǫ'hyWu
1'vltl4|$֪odM,=jv$Rj(\sFn]Mrt{i'TI$2Is'E{_=ˢŢhDEKe֊L닋jR!p:ec`)H㊬VFհP\Έc<fc)JqRUʄ*2N?*MJFD}1XǶvK%&0ïa⻒2jt4r
~-Gk& >`"+[V[[55Et*m!<R0R=avrp?5ԺQiVx;.|/2t44|oyZ6cn{9ӗ$S|Pknj]SljGO?\Ffz[duj𐦔}VۚwU9u/B~DՉBe)v\#qV?]%arurwmN8H]Pӵ26^pzH兑u v"3P"IRA$>xZfUd,
/p+Lp+2s%D\VIFM=fydm̓Hxo|+bvHH;#]"զДk!$Xj3Sz0ֆjU'c/UMz3}+:{oCJ؎Y5}:Ŧi`lVK-lo'w.h,;%"RWu~hhM1yjBVwgՕRMøuqR$D]9yr!ڻ-8ڂ@㲔,?{_n_&dZLKG""IqT]H5.v\iԇX唨krp_n{qVK(7Y=&>:
ވ[o`xVmbXɆ-R3՛eÁvV+JJQ[%)l(xG+]V;$+<3?*!xUڤxr/_̤)W) @>'Wo-ۇ|=+%<k%A)ITйIWk6;s%,b
?K[/ں{$;:]!o?
B~yzv+oXhy$nL6$}۔fp?$jyֽ1ja$yN<uw*O{zOl;q[pPT6 7a-(#ALF>|*[Dڀ=Q<\VH_5rPZmpZ[^!z>ur4?xmsrZQOhkuzX:laN'8@Ùy
MjIt}indT<%Xb:@ے@gyt!EN *R?JW#Z>7:v
cDopѼ?,d>-NK @;8$R5p.l))#e!;#~GIݳVYYtqmҴd8W+3)r2IAPẛTm+v8ɰ&j:c$
2{vOA!Ɂ%q0#rJH5$&Xkꔦ^A)RH=@#6ˮ-u
o+{E|)@;7S0Ty9A'5oL>%V9DfF鹪wwTGִ{l:1 HoQژca'WGUy~ó'U
hM+NyaYCս)P4VY:kr+`+txϴҏxyVGRu2ZX)W+z F`8d]$"B2{N,
83Q2X[IQ#H>VⲥӎԚdx^q$Ցu$q6"[ M$}$qH;VCf{6Z=><Veꋙe\wt!' γLבE6;zccWt nrֲ\u+y4볔m,}Jn#T):p_0O9D*;WNۜ>Iq8՞ *S
' I;ՏqQ;
S,K@}<C
N7u nɪw4zz"E)h*JT09<ܰF%+Rt#k<2klrɶ5ol*-0BmLgm]>QL>+|'U{VvgzBI}RIQR2;o|vwoR
UAs${YHVݹJ_S]km)Q>|j,DƇ'>
' oYw ``ߟZujҾ?aV_I5#Of~z`>)'yK.gac+F52.iˈ8IX7gXtpě_-N-.1M@7wdZy2*./C.6G%ɱ!ʛ'z8)'#<r3PSw-a}~u9sRRA]T>5w{Kkr>긌p->%[KiR,`9VnVSnFĘ%̩5e[v9Sۜ^[r3h5)
A!C-W(%9a;_<Уͻ%oRR28+#.MmH(QT+$9Cc[dzf;#4SD^Oݧ"<H!95whӗhAE'N{5Zk7=~M[]tO%#yӪvoѯ'>^iFն9$GMcQJMsbdawqKZd*|cN:P2I5\J]DYR:hC/TxwEu[#6D4,pqm֜H~xΫp
iK,FMCr~<CMZZ(Uzz<oWTaxd]70բ{KGW`r%,&*ʵضCwan%ž#l˲̎}NQQ]mda'&F梼|.CSݼ줻%ǝոUQ;d(Q>Sy:.P{$;f+>VsjVq)zPN^U!I\yZ5ӯڥVphF2^hOXpEeF(:[SRrRA_l=ZNz ro5M5Y\ҙWX}Fp|A;lmؖ]eai#+T+&o雫oEYP zΤE i%1IBxԎyW:ε.nQRŤKxvǢ
JtwD7\PLV
u=ȤY[i]M5]Ot)xC}WZ=ښIǎOpP ݜuVPsNJR(ޓttꢤ0e#95JT(mE)JzNy
!ayŁk G#'}XdJہJ\twQbi%~1*{m}~UIӮY|#Tmk_&N¾
@9IV#"Tƫi쯴8rV^50)JbP6"&U튮Yy
&%!$,gAu]Vze2QPPBU+bcseJ2b-IA
OQU-ěg|7'ֵ 1՟U_SyJXX^K]^_jօlGʩD̄{ͬ+I%JIEix6<DJR$R)J
yJP1arR}ݢ*dw+TR5JT)JP^]OWc|yJRJR(JR(JR(JR()J--------------------------CVSSCRTIPSVLSRMNET
Content-Type: text/plain; charset=us-ascii;
name="/www.derickrethans.nl/html/srm-montreal/future1.html"
Content-Transfer-Encoding: 7bit
Content-Disposition: inline;
filename="/www.derickrethans.nl/html/srm-montreal/future1.html"
[FILE: /www.derickrethans.nl/html/srm-montreal/future1.html]
<?xml version="1.0" encoding="UTF-8"?>
<html>
<head>
<title>Future</title>
<link rel="stylesheet" href="style.css"/>
</head>
<body>
<h1>Future</h1>
<ul class="size5em">
<li>Periodic calling of functions</li>
<li>ACLs to Bananas</li>
<li>Load balancing</li>
</ul>
</body>
</html>
[FILE: /www.derickrethans.nl/html/srm-montreal/future2.html]
<?xml version="1.0" encoding="UTF-8"?>
<html>
<head>
<title>Future</title>
<link rel="stylesheet" href="style.css"/>
</head>
<body>
<h1>Future</h1>
<ul class="size5em">
<li>Zend Engine 2</li>
<li>$obj->foo = array (1, 2, 3, 4);</li>
<li>echo $obj->foo[1];</li>
</ul>
</body>
</html>
[FILE: /www.derickrethans.nl/html/srm-montreal/index.html]
<html>
<head>
<title>Script Running Machine</title>
</head>
<frameset cols="200,*">
<frame name="nav" src="nav.html" frameborder="0">
<frame name="content" src="welcome.html" frameborder="0">
</frameset>
</html>
[FILE: /www.derickrethans.nl/html/srm-montreal/interact.html]
<?xml version="1.0" encoding="UTF-8"?>
<html>
<head>
<title>Interaction</title>
<link rel="stylesheet" href="style.css"/>
</head>
<body>
<h1>Interaction</h1>
<ul class="size4-5em">
<li>With the SRM daemon</li>
</ul>
<ul class="size4em">
<li>UNIX domain sockets</li>
<li>$srm = new SRM ('/var/srm.socket');</li>
<li>TCP/IP sockets</li>
<li>$srm = new SRM ('localhost', 7777);</li>
</ul>
<ul class="size4-5em">
<li>With Bananas</li>
</ul>
<ul class="size4em">
<li>$binsearch = new SRMApp($srm, 'binsearch');</li>
<li>$binsearch->function('param1', 2);</li>
</ul>
</body>
</html>
[FILE: /www.derickrethans.nl/html/srm-montreal/intro.html]
<?xml version="1.0" encoding="UTF-8"?>
<html>
<head>
<title>Introduction</title>
<link rel="stylesheet" href="style.css"/>
</head>
<body>
<h1>Introduction</h1>
<ul class="size5em">
<li>History</li>
<li>SRM by example</li>
<li>Technology</li>
<li>Future</li>
</ul>
</body>
</html>
[FILE: /www.derickrethans.nl/html/srm-montreal/nav.html]
<html>
<head>
<title>Script Running Machine</title>
<link rel="stylesheet" href="style.css"/>
</head>
<body>
<span class="small">Script Running Machine</span>
<ol class="nav">
<li class="nav"><a class="nav" href="welcome.html" target="content">Welcome</a></li>
<li class='nav'><a class='nav' target='content' href='intro.html'> Introduction</a></li><li class='nav'><a class='nav' target='content' href='timeline.html'>PHP History (1 of 12)</a></li><li class='nav'><a class='nav' target='content' href='phphist.html'> PHP History (2 of 12)</a></li><li class='nav'><a class='nav' target='content' href='online1.html'> The Past: Users on-line</a></li><li class='nav'><a class='nav' target='content' href='online2.html'> The Past: Users on-line</a></li><li class='nav'><a class='nav' target='content' href='persistant1.html'> Persistent objects</a></li><li class='nav'><a class='nav' target='content' href='persistant2.html'> Persistent objects</a></li><li class='nav'><a class='nav' target='content' href='tree1.html'> The Past: Trees</a></li><li class='nav'><a class='nav' target='content' href='tree2.html'> The Past: Trees</a></li><li class='nav'><a class='nav' target='content' href='extern_srm.html'> SRM: Script Running Machine</a></li><li class='!
nav'><a class='nav' target='content' href='banana.html'> Bananas</a></li><li class='nav'><a class='nav' target='content' href='opcode.html'> Oparrays / Opcode</a></li><li class='nav'><a class='nav' target='content' href='interact.html'> Interaction</a></li><li class='nav'><a class='nav' target='content' href='protocols.html'> Protocols</a></li><li class='nav'><a class='nav' target='content' href='srm-tree1.html'> Persistent Tree</a></li><li class='nav'><a class='nav' target='content' href='srm-tree2.html'> Persistent Tree</a></li><li class='nav'><a class='nav' target='content' href='srm-tree3.html'> Persistent Tree</a></li><li class='nav'><a class='nav' target='content' href='parts.html'> Parts</a></li><li class='nav'><a class='nav' target='content' href='design.html'> Design diagram</a></li><li class='nav'><a class='nav' target='content' href='future1.html'> Future</a></li><li class='nav'><a class='nav' target='content' href='future2.html'> Future</a></li><li class='nav'><a!
class='nav' target='content' href='questions.html'> Questions</a></li><li class='nav'><a class='nav' target='content' href='fin.html'> </a></li><li class='nav'><a class='nav' target='content' href='resources.html'> Resources</a></li>
</ol>
</body>
</html>
[FILE: /www.derickrethans.nl/html/srm-montreal/online1.html]
<?xml version="1.0" encoding="UTF-8"?>
<html>
<head>
<title>The Past: Users on-line</title>
<link rel="stylesheet" href="style.css"/>
</head>
<body>
<h1>The Past: Users on-line</h1>
<p class="blurb">
Typical script to count the users 'online': </p>
<p class="example">
<code><font color="#000000">
<font color="#0000BB"><?php<br />$timeoutseconds </font><font color="#007700">= </font><font color="#0000BB">300</font><font color="#007700">;<br /><br /></font><font color="#0000BB">$timestamp </font><font color="#007700">= </font><font color="#0000BB">time</font><font color="#007700">();<br /></font><font color="#0000BB">$timeout </font><font color="#007700">= </font><font color="#0000BB">$timestamp </font><font color="#007700">- </font><font color="#0000BB">$timeoutseconds</font><font color="#007700">;<br /><br /></font><font color="#0000BB">mysql_connect</font><font color="#007700">();<br /></font><font color="#0000BB">mysql_select_db</font><font color="#007700">(</font><font color="#DD0000">'users'</font><font color="#007700">);<br /><br /></font><font color="#0000BB">$insert </font><font color="#007700">= </font><font color="#0000BB">mysql_query</font><font color="#007700">(<br /> </font><font color="#DD0000">"INSERT INTO online VALUES ('$time!
stamp', '$REMOTE_ADDR', '$PHP_SELF')"</font><font color="#007700">);<br /><br /></font><font color="#0000BB">$delete </font><font color="#007700">= </font><font color="#0000BB">mysql_query</font><font color="#007700">(<br /> </font><font color="#DD0000">"DELETE FROM online WHERE timestamp < $timeout"</font><font color="#007700">);<br /><br /></font><font color="#0000BB">$result </font><font color="#007700">= </font><font color="#0000BB">mysql_query</font><font color="#007700">(<br /> </font><font color="#DD0000">"SELECT DISTINCT ip FROM online WHERE file = '$PHP_SELF'"</font><font color="#007700">);<br /><br /></font><font color="#0000BB">$users </font><font color="#007700">= </font><font color="#0000BB">mysql_num_rows</font><font color="#007700">(</font><font color="#0000BB">$result</font><font color="#007700">);<br /></font><font color="#0000BB">?></font>
</font>
</code> </p>
</body>
</html>
[FILE: /www.derickrethans.nl/html/srm-montreal/online2.html]
<?xml version="1.0" encoding="UTF-8"?>
<html>
<head>
<title>The Past: Users on-line</title>
<link rel="stylesheet" href="style.css"/>
</head>
<body>
<h1>The Past: Users on-line</h1>
<ul class="size5em">
<li>3! queries per page</li>
<li>slow</li>
<li>inefficient</li>
<li>did I say it was slow?</li>
</ul>
</body>
</html>
[FILE: /www.derickrethans.nl/html/srm-montreal/opcode.html]
<?xml version="1.0" encoding="UTF-8"?>
<html>
<head>
<title>Oparrays / Opcode</title>
<link rel="stylesheet" href="style.css"/>
</head>
<body>
<h1>Oparrays / Opcode</h1>
<ul class="size5em">
<li>Oparrays</li>
</ul>
<ul class="size4em">
<li>Compiled code</li>
<li>One for every script element</li>
</ul>
<ul class="size5em">
<li>Opcode</li>
</ul>
<ul class="size4em">
<li>Basic execution unit</li>
<li>Two operands</li>
<li>One result</li>
</ul>
</body>
</html>
[FILE: /www.derickrethans.nl/html/srm-montreal/parts.html]
<?xml version="1.0" encoding="UTF-8"?>
<html>
<head>
<title>Parts</title>
<link rel="stylesheet" href="style.css"/>
</head>
<body>
<h1>Parts</h1>
<ul class="size5em">
<li>Daemon</li>
<li>SAPI for PHP</li>
<li>Extension for PHP</li>
</ul>
</body>
</html>
[FILE: /www.derickrethans.nl/html/srm-montreal/persistant1.html]
<?xml version="1.0" encoding="UTF-8"?>
<html>
<head>
<title>Persistent objects</title>
<link rel="stylesheet" href="style.css"/>
</head>
<body>
<h1>Persistent objects</h1>
<p class="blurb">
__sleep and __wakeup: </p>
<p class="example">
<code><font color="#000000">
// file.class.php<br /><font color="#0000BB"><?php<br /> </font><font color="#007700">class </font><font color="#0000BB">File </font><font color="#007700">{<br /> function </font><font color="#0000BB">File</font><font color="#007700">(</font><font color="#0000BB">$filename</font><font color="#007700">) {<br /> </font><font color="#0000BB">$this</font><font color="#007700">-></font><font color="#0000BB">filename </font><font color="#007700">= </font><font color="#0000BB">$filename</font><font color="#007700">;<br /> </font><font color="#0000BB">$this</font><font color="#007700">-></font><font color="#0000BB">fp </font><font color="#007700">= </font><font color="#0000BB">fopen</font><font color="#007700">(</font><font color="#0000BB">$filename</font><font colo!
r="#007700">, </font><font color="#DD0000">'rb'</font><font color="#007700">);<br /> }<br /><br /> function </font><font color="#0000BB">seek</font><font color="#007700">(</font><font color="#0000BB">$pos</font><font color="#007700">) {<br /> </font><font color="#0000BB">fseek</font><font color="#007700">(</font><font color="#0000BB">$this</font><font color="#007700">-></font><font color="#0000BB">fp</font><font color="#007700">, </font><font color="#0000BB">$pos</font><font color="#007700">);<br /> }<br /><br /> function </font><font color="#0000BB">__sleep</font><font color="#007700">() {<br /> </font><font color="#0000BB">$this</font><font color!
="#007700">-></font><font color="#0000BB">pos </font><font color="#007700">= </font><font color="#0000BB">ftell</font><font color="#007700">(</font><font color="#0000BB">$this</font><font color="#007700">-></font><font color="#0000BB">fp</font><font color="#007700">);<br /> return array(</font><font color="#DD0000">'fp'</font><font color="#007700">, </font><font color="#DD0000">'pos'</font><font color="#007700">, </font><font color="#DD0000">'filename'</font><font color="#007700">);<br /> } <br /><br /> function </font><font color="#0000BB">__wakeup</font><font color="#007700">() {<br /> </font><font color="#0000BB">$this</font><font color="#007700">-></font><font color="#0000BB">fp </font><font color="#007700">= </fo!
nt><font color="#0000BB">fopen</font><font color="#007700">(</font><font color="#0000BB">$this</font><font color="#007700">-></font><font color="#0000BB">filename</font><font color="#007700">, </font><font color="#DD0000">'rb'</font><font color="#007700">);<br /> </font><font color="#0000BB">fseek</font><font color="#007700">(</font><font color="#0000BB">$this</font><font color="#007700">-></font><font color="#0000BB">fp</font><font color="#007700">, </font><font color="#0000BB">$this</font><font color="#007700">-></font><font color="#0000BB">pos</font><font color="#007700">);<br /> } <br /> }<br /></font><font color="#0000BB">?></font>
</font>
</code> </p>
</body>
</html>
[FILE: /www.derickrethans.nl/html/srm-montreal/persistant2.html]
<?xml version="1.0" encoding="UTF-8"?>
<html>
<head>
<title>Persistent objects</title>
<link rel="stylesheet" href="style.css"/>
</head>
<body>
<h1>Persistent objects</h1>
<p class="blurb">
__sleep and __wakeup example: </p>
<p class="example">
<code><font color="#000000">
// example1.php<br /><font color="#0000BB"><?php<br /> </font><font color="#007700">require </font><font color="#DD0000">'file.class.php'</font><font color="#007700">;<br /> </font><font color="#0000BB">session_start</font><font color="#007700">();<br /><br /> </font><font color="#0000BB">$f </font><font color="#007700">= new </font><font color="#0000BB">File</font><font color="#007700">(</font><font color="#DD0000">'/etc/hosts'</font><font color="#007700">);<br /> </font><font color="#0000BB">$f</font><font color="#007700">-></font><font color="#0000BB">seek</font><font color="#007700">(</font><font color="#0000BB">20</font><font color="#007700">);<br /><br /> </font><font color="#0000BB">$_SESSION</font><font color="#007700">[</font><font color="#DD0000">'f'</font><font color="#007700">] = </font><font color="#0000BB">$f</font><font color="#007700">;<br !
/></font><font color="#0000BB">?></font>
</font>
</code> </p>
<p class="example">
<code><font color="#000000">
// example2.php<br /><font color="#0000BB"><?php<br /> </font><font color="#007700">require </font><font color="#DD0000">'file.class.php'</font><font color="#007700">;<br /> </font><font color="#0000BB">session_start</font><font color="#007700">();<br /><br /> </font><font color="#0000BB">var_dump</font><font color="#007700">(</font><font color="#0000BB">$_SESSION</font><font color="#007700">[</font><font color="#DD0000">'f'</font><font color="#007700">]);<br /></font><font color="#0000BB">?></font>
</font>
</code> </p>
</body>
</html>
[FILE: /www.derickrethans.nl/html/srm-montreal/phphist.html]
<?xml version="1.0" encoding="UTF-8"?>
<html>
<head>
<title>PHP History (2 of 12)</title>
<link rel="stylesheet" href="style.css"/>
</head>
<body>
<h1>PHP History (2 of 12)</h1>
<ul class="size5em">
<li>Loops in early versions</li>
<li>boring! let's go on with the cool stuff...</li>
</ul>
</body>
</html>
[FILE: /www.derickrethans.nl/html/srm-montreal/protocols.html]
<?xml version="1.0" encoding="UTF-8"?>
<html>
<head>
<title>Protocols</title>
<link rel="stylesheet" href="style.css"/>
</head>
<body>
<h1>Protocols</h1>
<p class="blurb">
SRM's support for protocols is extensible: </p>
<ul class="size4em">
<li>Native protocol: fast</li>
<li>XML-RPC: easy to use from other languages</li>
<li>SOAP: harder to use, but widespread support</li>
</ul>
</body>
</html>
[FILE: /www.derickrethans.nl/html/srm-montreal/qmark.png]
PNG
6{I1{yֺ+q}ld%moQ&߆%H:|T҄}m3KeIkޖy߶P187&%I~~\9I'vۚlKZ*驤ǒ{kHDTT`7PQχ$(&QI۹}6+RYmQ҂E#]rYfշMg Qc`ӗ#~L&bB3 iPR%He,O%He6_ф0lo,yZ)ҪGD
>
*Y0DkM9Ig=ut W59)鑧QKxxb$iwݣD
T*vģÞv$c oԅ&Ҡqn<~<wѽQJD4a.'|ö%"*N{qZҔG(&dz|{0q7C}ĐsD%'̪0xTUc]t̷wIQO'^Β0y1 3FG]4o#Q[?@f%II%&/Otww?o$]?kðϷW^ZsC2wȽ-nR3ҪdE$RHkTS^D%\!٨/T܋yf0Q=9)o$! ӕTLc8h.L[{3x,uDQi."v@r!9_ʛ&)1H<<FsQE
QƨG%"?b'!Y%IM([tWҏf1IHbկQp$}[ԘR2z2?@z=rIab"V1IHH']qA9C0Xr
C4Q%N3xa$䆤ULxJ*DT6qz?N=M8)3uc(
.M=yWү$}[:1K1h$&:N-2wGli"-*>"1yOD:|;b*1MZj~Ee.JFstJ&.$\\N}\W\h
(vCT2گvEҿH7dlJTP'Д5Y3U]&*я6dC)O8`Z#CiU^l5QKn2.yG$/)QsB%14>'e%uotUe~U?ȍɧg<2Y{W*ʨ?=REԖy[*G*=̼,;Hfƞ'DNQJDX-z3*O~IY@(=,ѧ#?
RQqehSܡ
eT%R٭U'~)^}PfUt`V>K_>gc.(gT(<,ٲ!ωTqCƿH嬿?&MC5RčHe@>ebVET.JWI#
YZ@U&7Ҡʛe!{UԚb]P}bа6f7gaJ~/YajP '2o|*PN@.diޖQTxt̔=Ls`*Gtc~N$Dz,[)YQ5ٺUppQYa/5*K3J7DeOSDQ)2bZN}}lSc-'²hrRE$ZMk?_.@ۄJ4>-xeBU.$͚l> >oQbg.4#[x,T:DzP)zQy[c lϵ(hKO1b5:^1fOaYeEO{EcuYPx,&BPZW?{2HQGBn7~Svm?~v9uA>m_[0e y+AV]\tSm%HKK.07\^\tAoH?$G*q]2 ;ʋ#=Ӳ:\\fk{U*=B4T42:Ĵ
[AFK)G:!*hiX2vEez)β[z+{4ioyJu..?[BC-Y_ʊ.t˚<ub&%Ģ:UOO~,ԓ붧Kt^s.-j턨Rg*'/rCV4iMe=rR'~BquR{hJfڶ3hRSe+yWJl;nMfDk]c+3'o(VyR_`TF]@{~a,(Qz_. _HOI_wLF YO{2zۊz\(%JJT&dnDT+S䖋wA̽'*DyݣY??1quO)B}
2Q<#sr^Eٔj~#|^fκ &H'/N}LE%o5$UT%!O~iYvΓCP~.*?x:-iO瘺Qꟳi߸?̎Ȯc~_D%'O\U
wTwAA_%IQ&F~CmʌSЪ)Řx8!3*lKy=+>.&|&.I7^uQiXr<=3#J媬mJyeF6R֓t7ԺllVV<i:9rA!T~#Mod>~s|ʗ.*an"(mI9wuz2N#{[f.̘WYҸ,7BPnIY1M;"0K
'JF~-ƈ
OLL\/'n{G*ϸ~>bC'7ްkێ?sAy"H嘤}b~OnOFS?|OH*c!ѡ
α貞璧rTcPrcSS(ϗ*a@g?m-$d#C]102(0։H%}GV͗et|ձT¨\KGT{9E,<qo]e3E%5ޓO5c!\N\Z)#-$bZ4~i9W>4UmI3Q=;hnOe_egvAV٧*o;)sO*ճ
Nf$(Ѿ fRv{2D
UTZy+?TH%=D-"\UW/dsyT5OW{ԙkmem4yT='Qg|imZ}S=kuפ}NLgDThsPUMi E_uQOz-gӟ#*OdÙ\dC7JAI"XyEe$}"ʹ|#q1{ӟ&.sKE1P`#97du+uMsO$B}JԤ̹roQ$ֱ~Y#*Z
Th;9i˭@O{N˪iēk۲ iݼWČyPnZvc1YlT(`)z+.$s|uˣG*/R籬I~boDVq6Ѧ^X@T<i<rQYrA(}K
E"*TUmY6|Ӟg=]ź?r_*1$3mOȦ$E"uPWfL슑J8g3
9T~POT҈ _J$RSUDT(MeiąqRJ-gIVt]Ԥ@aد%rHèzM')MxrTyH:
W{<۰oUNJ~϶!~De?l_JҟE"'mTf~$Fm>]XF+~lzTTfp?^l0ߌZEQ a9*鎈ʠG&Uy1*5>ۅO:S:-*Sj8wIgo7B2R8- YC.(]\>#9mop_@#k9Ac&6UBֈ
ƺQ*7bBDG
&ܜlMYp왊UXWzӑʀ0jc~ǒ_(s~G]\z<#Y{ IUT\T/
Q`R-3{QY<T.Rah-xr=}8TTe߫Ȍ;.*K7Mee
ST QrE1ԃlE%UXTzܺTRSâB{.rTnԶ頨>"U؏@aR6{M*b{"JHآ 7=}XUuMߋD|A"ad"AT`/P]yTF~GD%VWu=x,De$^hʶ#U2>ʛz*-'|8L6gDe,4ǚP{T'Uufrc5$ճpЇTJK5˛ DӞ2_eA5PbI}u*9tΧICx0fEeLO~!q'A<Jz.]ldqIzbҀ^\` ٢̹نp%!Q;?n\pUdC2o&VDFz8-*<~kH6Dt娬obtN:_G 8a6*ՓD>*@M"VDح$mX&W7sqx/T.wt£/Bx륃/+V>ۊ$%:ї<EI_@X\jh=QK¦wis_->k:rdSWdDuĪU^%̢&Z@yH#Udﱺ<xu#r5n/4}~/ E뵴eT_.`ے6
S$Ri\QpS%cMBTzQߒ%TzŮ}Ӗ~ͤ?㩣zvT)*=Q=3OTnI̔M \R>#*I4JU;.*+
@I:+]ߦ<rL\-2Q(|;jlgJEeQh0!K.zrQTnKk@73 G9.I)S[cVcDAY=){2ճ-+GTeeTL#Ò>CUnilzT2'G]M&C *-ys{sToil\wQyRW&"*Q=BSE쒤en?f&o *-LJ_Ld"(!*ճ]d:JlDg@Tfl瑤{<Pf$#*mlgRVJ\wQYeQpAT%ff&*K\T]N'>9rl}gKG*z>92%+jE=c{>`
B){Mo=B9#Ɂ6dݕt˷2|@Dr!5e?%RmmܐdMK{sƯZFbl)Gdgd(IY禬guD`*e?PѰzBy)2SvY> UWdQ);|CUt(ӇETJ־KA;O}{Q٭}A+J mi펿]ƓP'LiYK.*U/p7eI?HR63@yI,OyĒKXe>_pbh^rAeJsY~,Yw*Q=
UzʾLP6|+:lx
;@{FeUIQGtiʹl]wdKh-6C>+I0fUD&*.(-6eSIgY=mZԡK
TULjdGEt1"YU(+Dz5Ĭo✞eiP>.(]tb
SAT)OʼelYDzFKߪXYK"*?ZtSQW2s٨O[TGThK:+J1l3O}fd+
fJE/t&SG(7em7e}RVs9DͤoASw|w<vQv<S*IC6$ Sd{e'ϸͩseY
t"B(咧<]PNt1ڔET݄)Em<c)@IMKF(27ehW2SvTY
L.2ehu)e,SMYDZ l
"bSQf),͌P0e1eh
4LYLYD`b"*40e1ehZҭ쎬G!)VSvDždÅG)
n5e.(.(_xڃ)>Sn5e}[->#l}P0e#ln˖}*3c,'Id#?
쁚o.*hʮND偋{cXixAgʆM.0k @T`2W<2eg<:SYoFxC9+lƤeIwe<l6 騤2SVreG6z%i^.$'IsET`_\P&$]ly*v1MҷjYLYDx\T.KLD(3
?x[Q1)%re(]G&߸x
4 Jǫ2C/G\
ټ>Ye>!骋ER2M{RSOytAa1 &
yd+r\y/3e *<Q$}">t1eh1.(Ӓ'"7LYDH}(Mp1eh\5><gc"*bҖ'<yGw6)@E%Z
gSQ6QsA9rZŔETH:#sYy
c"*=:Xf$*
YLe
=9.P)@y)1q-~
tC.(g=R9&*
tBWb"*P2Qz,, =-RZے;\-Aʃ@D%gO<)
ʚl[*Vt#*>QўI*&r}}+lhy9!SuKӞm9#?NQa/D@tɿb*-iѷ[Ȍ
ꁀ@qY+fen7e>U,G
!IqQ9Om]f~#[<>FT0h ض7bQJDPuݶbMP1@DDʊ.(<BrTU<RYeF-(D*!F*Fu\TnH%Tt>wdɆɏD*
GTRRwAYUφl *^6
Up?eˊܞsQJ986aRENm>(TT=QĩET2YqQ3>
t?9D*!*J>Md[#>D*qQHjFm.5OH:DڪE*{vV&Kg\TP@T,*P@q!W-H
9g*631!RjE(=.".(U,.kfֈ
ta~r1ꃨ *s5_aQJD.CTcZua"*Qy.ZDJ!*Gd#yAaZ}TUPTd)O=D *z|"(*CJv|q *HCT!iQb,qAٔ)<
BT<tEpQAT\Sl3I%\P۶ʦh\LIJJZ4/iGҒG-@tAҧYI\Lf=zD,*әCI%shI:Q&iӹ1052iEҒG-[fDǖ9-:9z8:.i_k--------------------------CVSSCRTIPSVLSRMNET
Content-Type: text/plain; charset=us-ascii;
name="/www.derickrethans.nl/html/srm-montreal/questions.html"
Content-Transfer-Encoding: 7bit
Content-Disposition: inline;
filename="/www.derickrethans.nl/html/srm-montreal/questions.html"
[FILE: /www.derickrethans.nl/html/srm-montreal/questions.html]
<?xml version="1.0" encoding="UTF-8"?>
<html>
<head>
<title>Questions</title>
<link rel="stylesheet" href="style.css"/>
</head>
<body>
<h1>Questions</h1>
<p align="center">
<img align="center" src="qmark.png"/>
</p>
</body>
</html>
[FILE: /www.derickrethans.nl/html/srm-montreal/resources.html]
<?xml version="1.0" encoding="UTF-8"?>
<html>
<head>
<title>Resources</title>
<link rel="stylesheet" href="style.css"/>
</head>
<body>
<h1>Resources</h1>
<h2>These Slides: <a target="new" class="resource" href="http://pres.derickrethans.nl/srm-montreal">http://pres.derickrethans.nl/srm-montreal</a>
</h2>
<h2>SRM: <a target="new" class="resource" href="http://www.vl-srm.net">http://www.vl-srm.net</a>
</h2>
<h2>PHP: <a target="new" class="resource" href="http://www.php.net">http://www.php.net</a>
</h2>
</body>
</html>
[FILE: /www.derickrethans.nl/html/srm-montreal/srm-design.jpg]
$.' ",#(7),01444'9=82<.3422222222222222222222222222222222222222222t$CR8c%&DEFdeĺJgI>νhBS@A>ΜU}ğ[KS@A>ΜU}ğ[KS@A>ΜU}ğ[KS@A>ΜU}ğ[KS@A>ΜU}ğ[KS@A>ΜU}ğ[KS@A>ΜU}ğ[KS@A>ΜU}ğ[KS@A>ΜU}ğ[KS@A>ΜU}ğ[KS@A>ΜU}ğ[KS@A>ΜU}ğ[KS@A>ΜU}ğ[KS@A>ΜU}ğ[KS@A>ΜU}ğ[KS@A>ΜU}ğ[KS@A>ΜU}ğ[KS@A>ΜU}ğ[KS@A>ΜU}ğ[KS@A>ΜU}ğ[KS@A>ΜU}ğ[KS@A>ΜU}ğ[KS@A>ΜU}ğ[KS@A>ΜU}ğ[KS@A>ΜU}ğ[KS@A>ΜU}ğ[KS@A>ΜU}ğ[KS@A>ΜU}ğ[KS@A>ΜU}ğ[KS@A>ΜU}ğ[KS@A>ΜU}ğ[KS@A>ΜU}ğ[KS@A>ΜU}ğ[KS@A>ΜU}ğ[KS@A>!
ΜU}ğ[KS@A>ΜU}ğ[KS@A>ΜU}ğ[KS@A>ΜU}ğ[KS@A>ΜU}ğ[KS@A>ΜU}ğ[KS@A>ΜU}ğ[KS@A>ΜU}ğ[KS@A>ΜU}ğ[KS@A>ΜU}ğ[KS@W֬aCׇٕ]]%3fhBN_%5լDY{x۟ϗxsGX ~Boh<Mw{ZWm&2H"ZhgՍ+:8F7)i<~_b˔j02d v[MR:~L8Mr\y,sMʅ=ߢX ~z%~b-8nU1T5w;~#ν:JK'j{RWb^~&s)^b)i<~_m1F=8.U3pQT5Ś2re3w,Sxy=?
1.OP&ye"~=n4lˮY1HJ^ߍ4
怆5&ӹsn9: kuLmx=<qtkXZ\N$wvUQMTq5z>DE^Hw $*7ySal>\A99*GLz0`-uT!$Fdл54[<27VQcs9-`{dnQԢx<mmWuf6|/EMArsr^6r3_vwO<^_8x)8aC_Sct9/Sdl!wlIYkA'\7˻qy}RL#!
}5az;b/d 7g绝zkmU:JQ]Vdoȯ\;-V3<mhk**Zܵ.<]'RGEٯ;wd=nd6BhXr}HgӘg@μzcP
ݝ>cPM@k⭦}nd6VgK=YE-m5ʎzXA2s6//|Qo<m<mxŅLdA坕{-nG>d^13T2CGOxqy}RVa˳k}5\ˀ[v{sKYR8ҲZwM_+f[{F̿%m~LsL_|>(6MS#ݶF{|I&9Rﯾsxqy}];d::f[+\[{/=t5FQfj|{ij!sB;Τ=L-5>FaaoLYQ;6:7zۙ~Z*\3)"kj |:p/%!,7Kz/~Ls\篾c̴u0g܁;DmSQvfp47jR<ϊ(\$/FOuNDw+H¥:Sf.Q].ЈѰ""L_yF(t/M0rQYޏTz;C,oPrcI9dWFTze|Zɷuk:7igPPUS( sJY
=ͅK4p0F.-T0-*
G&3mX]M#\ܛߑzS:RWu9\sdҽyh?n2qd<{R"V8bᢆTca1s;RD^VNQJOGcDbS]̀"nF>2\ܳn̏ĺаM<?f4BO(O.\Ֆy}qD@]K9:6#0kô\5[Cn:/w+vrpC {]\[Nnii۽%lL:DWO=5js32s>V*owc91Z,ј[
0fԕKyEݦj:jH&~ΦJדB(T;0Ndg
MsA+妣=7^'"94og
xya,=L 0k'WfeY販$bvI4{v⍒ETR%B ʑ;^cp´
Ṣa 8V77>n5٬go9ήE19Vun\{mCw*2&QX!
[|m,\]'G5}mkmvə\go߰-.mu1p.hsCL;rKl|Ҙ&dː|\mϛrRU*j1ӡ.ډa_\1\3vF [7
*k&3x{s.͚ndga7&lX5FړqRlfGW.ncyn\Uv4|Ř%5(]kN50V/݂7~=M`ljL+f?>XD^̄D@""tC#c[fI//ssZ=k5Qniv|ûS1}gsvF|-ӝ\|o{}ͨQ^^sߖu9;kNz0W5DC9p-
ι˽MõCrwz|Y\(5TNɎx'=j0ѷ<u]Ѓt ͱke{jfsw7~]ׁuWnU:e`1?fJ=
mS'-R[L:1>V
+;S
L[9y{-Xq@pgGiu&N#pr,ݭTyn3C#02<ܣjKΎ\ֲ 8O|e0N3ҲR1?d1v\pm{r̭_Fqd[8^TZ=Ʀ̻ME!Kk3Z@J-ʆxmyZ8-n[n-c#mOø(]294}e\;]?Z8MMU7Қh#f93PZ[1(00=Hik !0-\{^l0}ĝBa<n}mr:vGسP1Kіy[]WCpRɚCZ2w48E+\@;*)CK+Z܁?KYnsZ=empMo&Q̴Pw+XðkgAvG!P۸3sj=iT:[$ԸѾ9Pchh%-ٖҧY<1o`dl,c5
Nuዠ.vbW>:`翎P'х7'uuAXں[\1EeT*Ivye͟>{yÖJk;tk5*G0aRATHs$6Ny*+XO8v4-v`
4psۓ]1=oibcؙo3ܸ|\
w9en?GSY3-5fxt$Ym9MIS
,[Xl8xS^fLEǓpy[9ysot~SŕpΨ-v^>:um_-~tkk]MSCOSohk7/7Qb{bZڡ1;5Zw5jsj*e s
3FGWYr~^c
mYi˵weW+FgGkUS]燅&=1xڣ!3VaDp\nlI!l7:2rz,$oROry|8fgTw#q<| }nۘ9s[c-Ni=ExwrFkb燭);P0gvVhF
Rf}ɑ
QZĹQ]7T9"[k}9seW£1U4Qi4K#q-`{m;VLB̕5rsTWH""<D@j@4?EriI,`;+\>iZ-G5߉}}n$JYζ,4P$쑲uyds(j558ay:NfRS+CE]u-<Ifk]Dr̜vx2hqF=ܙ9ꆈv|mkҴ:囤c^^
54|#9#/kh
54| צ9#9#/kh
54| צ9#9#/kh
54| צ9#9#/kh
54| צ9#9#/kh
54| צ9#9#/kh
54| צ9#9#/kh
54| צ9#9#/kh
54| צ9#9#/kh
54| צ9#9#/kh
54|
]26*k(+Ŗ:MuR&i{lN"lSxinN6JY;i3LѤ?3*Im]53TLwgQ?][I+W3ĕ;?DE*i
'v_1jn4|5w
[Brɤ"Rj+UbKdtdMUqFn{7suW/C8/힆v?? jyo%Ѻz j̀RJjkkXZ55۲)OSQ5CMyfr6P[ʠMˀ:3g=eVG.#kfmBae0ynnhvsN}3̼gЧ,k?z2XnQ,Ert~>GvG ؙ&ZZUb*k
fx5gwx.²_fEͦ!d^6
kpݛNF,Akn5;|rS؝#n&'9+[W&*[ؽX ˑ'39\ASim5tN
j 'ws6,kG)Iq5A 6*Vy6~Hr+RӾO$깧W숁s}L0!f̳RE`UWb#bٌn,ƩIwMB<[,Pro?7bVA[OHX x>m_#IJQ"ͦ kXCXѐy'ñKV']K߂,MvϹ--UQTpCQNڀ\v;N6y]{<_ vJF6ПAF¶}bNi^$RZDLO|e6~u(t7Bx([
뵣W[[n2\81cK,Ҷ<쉍W,y9:vusrzaEES1,w0gQ1<6n<Cu9Vd
(k
?svWbT
(t_mWZA0AI6矶>֧U[(;MJLL}|䓶]fZiaW<39Fmqbs{`YZ*$zɜB+/5toKolQgܲ!|5
-Lt16v=Cd{ß5uN{RIZ*8ߠf4G$Vࡧtqg̾3-,Xi.V٥ntWrl|0mwx糽6E\q++Ώn˛nlUsDT2I*E ƮW`+K%+)݆gr;u\St[]_VXhm[
R#";)`DqI>@F3fWP}"J,L_yF(t/M0rQYޏTzeTzezq"""6#[@
q?ǻ_?/~E/9)_p,kcƶVYN42
Y"'ps|;r#0r;v ^a?HX㑂-c˶5}qfsNN{J764Om5Aveh:iٷJdrg%mٔϔa˛a]A̙wv{aϒڍG6+ZY%/
Xu8,s=CZ"\~Ԍ3oo{٬n
WMrH}Net#':;to9 ~]l#=ŮAQpt噯tn.1FL-mZݍvfv/ur3˸vkR*1Ԝ5tcK-G\jtssM'eVKЌN
QƉ364e^Is.p`te{[7~IF{]NF˶sQu|iM<Y@F`۟xɥ__,/8W%/2&k
Z6p-QgzO|%:RPsseKYv0ǰW#ev7.et
ֲΩi<(9w,ݴ,em9xYʪjE%\zfDKuKlb.ܘx`۞NkmBXqH*&1LD2j9ٚ>/Cu/7gp
ߞ̲ŦGhuQ(L`A:gbK\[9wr+W j`fx-߶~\2U%04COEsO[k
)-3xrfa
-\6SBV9kٗФK\@[9wrj._Tg6p[ٳ_^W5NX^ςW[uJ-05@ANg<?du5l'|l
yWU,]ׄR'ݛz\x'd-gtl9+iQ]P\gΗY.|^8/CͶ|4-"1mI̝V2fJpQP`Z822Y%Z[yԖ0Dgs36䷫MR</3qjnxcqI*X\c93vn~X[vm\HDb#ev7$T{ÔyyL;s6IK+ZKKH Aӈ65Ww5GZʚ4r0c5Fs±p#[iiRwGw~<a9(:U>R`9m?l|'NRMѻ@0%N縹$ISko_$$ȈaD@a^S1f_A+&"판{80Uy!5g&A|gR[(k
Dtm3fFp|=sZˉ`F/Taچt⦙J@2̝\]]wONs
KEˆKa6Zn͔=^c[Vi}u1J5s[-lϝg*lR?4&r<'c8)8C58]S{nIt/ðʕ|Zò2cfJJJr/eTW
3Cpڦi =n$g5&>EdnR=Ɯz8<7lض[Qi} U6C:Kc{ٟ:Z~ѫrrЛZk)bJs.Nۇ(jFS1g7͞KI$D)JPRy=D@SeMUNMemP?zʆRix{ qU_*T_*TݤZ~".""_͎DFgcnj8^ǓSuNZv|/QvWfpoٺ6y}]JR&@|
ZA0AI6矶>֧U^wR}OIEVR*bZġ""$0̈́
`_#3qC`:OoR,u
oI$gh/>۟)wY$u
V]Y|J5Yg
WvYxai/,6H^Bn91oAQT-h۟~p-aHÖ瓽FnGe^i,U.$X_{X:lAE
$.=Xmߴ6"a^S1eOѷfXheOѷf_A+GUy!Հ6C}+:Z`jn&˷]\7CWo#eE][ً^vPQӃ[?
ZsJ7e,Ix?H,>-y%uS:CRW<9,bAP q\چo eue9?KVؾ@ѻ,]eNAam5$'o:sgҭ^7:}|CoSs#2RH/Rw>^Kw{bS~O=j3\r?;zce|g<l'WcA\9hd_H?J1zjЌ"UjW_wDEsv/zʕ(/zʕ.7ig"" ""c" ""ܔ\zh<P6q)mXS-(kueg]qެ>04pςN h F.+79X~8_M>#?0k1#0AhB]n$OV5sny65Lı0g#< -dUWi~1C Cex?MJ:MjP\Ta3e@mG1tQQB/onx|ɫ`Լ!8YZ~o0~<#įn,n5v*##lU/)*P+f?>0)MQ`_`bQo-_T)H
o$7Ho4so6gP[+Zm/BΠT+ĽU֓tnYV@?SwR,LXZ;`+X.2xRc덲ӍaMxۻ*"!<lr]3SG6jd%٫[>}QUWMCNꊺgu$
hUUsw__סJzJ9YYjNiiؑZ'xb[USK_fU:VbY{We;TPI}~!ߓ)Vcl#<c-<>c,NXmy6e?JRXf8v/3\l#<c-<>c/u-ur#~Fo;HFy[Tx|X8a~ !yErFsJ]^z;Nr3x/<<֪dGҳ'܉h>>n+D_(fKJO\=eJWO\=eJU_DEAD@,n_IXʋx#?&:U؎O1y +nJװsN`ޙQdqcrf0$8Ŗ\7io-n_<#m4l9f{R*[߱dO֩ߨz
\/r'+v]<5tC4uCv]7?o>?5ެ7GWX";k
ӷ%(c㚮4EǦ5`[YKг-D@W\RUu,#
jL+f?>XD^̄D@\YַKг-
/pAaegE8XtrZp
,d;:FLszݟ+Lh52r?1Յ=5 ɘ##wG;0gͫ^ko)W&u6&WFK|v_y zzi0T"@Y+q9Clb$ح^{3*ƶ_Sf[\*5ˆ-u55%uV*֊X;Qڂ6!Nt"w7&&+!51͈;ܵ0UWCL# 7P_*N9g<d0USsWQ4tt'^)spnDzˣ'?_'6m-skMS6Zj<y'5ѮW ~wM~M)&W$K)vtH l5kׯJz(b;PEfad[[n'Wn`]K θq[7Ѷi:kݞde#moWKCrMeXi|PQEM/{ƵhwVOz,OIIa{X\vm:Wn?/VR&SRw\B*m56
#aJVK5K%I\F0sw_DGqQO7sTWH""<v/zʕ(/zʕ.7ig""jҾ,#/rۑ:6hXcZj=V;_b]F&+FvC;SV
-$I+n+r4[7f ;W4]vͼc@*\dTk|>6<܂Fs3E<jvgua':Әs[c[kߚaۛdP$H9<'md-Q
Od0m;~3Tɐ0SYP(&^^&̲:snU)I?J_Sz,KX""=D@/4}p~/Bi0>=T1cliCJ]9q[_3iEhngܻ
dެuFzea1-]lrT:hF9G`,óoƦ>~IOX.Y5fo8}UTunŨ:ݻA4otޫh**
R[N#g}.a.}=MGeqciv %jYU[^LU:UJ%pJAg ͤ{QV^AG18WpTE%76˛[aLuccnM2T6s!큮f`g̦I|6_Kje5-c&&Mt,kIYgt!Qsul1p-ţTI92Khѕ&ϑTT<Tk5vgeĕ8n}NXgh@Ͻ___3 0u<J洲8#Fcq+ӣ[U+8]Ldn@
a
ZWw$i,Pv5fFrھwfUQbZ!/n@l
p<UQuk$"f3v3TW\RUu,jL+f?>XD^̄D@\YַKг-
/pAae5bfX2i6ܲՓwH劉c\j:y%N&:"s,$=40Op#61h
k@q5
Mcֺ)E;pӱrUqLk#cCZƌ@ܜN5v.MrUe]KJ+KKAe"" " "">njj%ꉳLR$DZn7=@{*Avnk{sٜ{k(b˵/Ȫ}<i2t|+m矄4kbqvJOV,
@gnQr+@`v%s
m*_kZ2hoÔ7^\[<<O?4mdWҒə#<|rv.?v
G|?m?j(M]yoaXDDږZYNn;^ĘbYGLivў^o-{Wi{Aꜵv5w2Xf5Amٳ68B~3Tɐ0SYP(&^^&̲:snU)I?J_Sz,KX""=D@YoV\}Jy*Nܔ\zh<U8,(pL/ݗ3D̠'{N|AbMP}"J,L_yF(t/M0rQYޏTzeTzezq"""o$7Kг-o6gP[*^᪂UI7u,
f)7u"̰e_<sai;Rե=zn چ2v۰R#b_e+O%JpR$"O',KC̜G2ľ4<z]l9X08$gr&x?]j@KB!vOt%ӖðnP+
CE멢5GCnqdFv-<ԭIA3sa1nOS60US$>3-κ%]KJ+KKAe"" " ""!fq˒k ᅒ۶FK]}8Df<_CCQO3ʖAFvo:2rذl'qi^QI4
OD-u<p\%pf,KWX'@9^+ftذK$,&G<ΔdCTP2lZn5Zs[c[0uNfdr-~V.N-I@ELTrֵ04=ghnYmPc61MM]$RQ"/F}sE9%$9Wܳ_DpB.%=vܾ5,w 6NƓT :-V{gw9ؽa)Tw>^uU8Rs=r|
R&@|OfCԠ axys SYѻW>P$y)~M-bP@D@D1Yuv[+RX?O,~5v6MˏWX""5x"H'#Kۛ\Ӱ"uV]@hclq˽gKiH6!}5PhSj]ê5+]dz|¬!+ź^vTRq]ߣװ9F9L*8adkw0߅ۤ۟oJ÷@D#Œ7a89XpEyiT~
钾p\ $Il3i[Em/N[rM|o4Zc,f%D@B0)~Գ/[DEDDD@B|ܾGDB|ܾGDeM}SDU#*Uy!Ϳ^Alk:P
T䜲~ea{bfX2č~`jjіrKd_ϬpM<&Ј挹U_7nF\㯊JUa{Rd_cf4sOOCGj;=2j)2Q4[ݛy2Sw:jXʛdUm7['12rZCqù;cj '=Ԭ5s->CNC,qqT79'8gvd܈X"DCi~#}\RۣtbHsv@9)FʼnoqYHY3Ǜl]g`«;~x[Q[dN}&|YFӽϬ{3ivxphȠ%zOlR覬_#/vT50rnЧ5eu}Qd~YE'Zbwen@T:jZ-:zU
,ފ@
v1v3raozizR?IEE#J3Rc\Ӫ67-'Cߗ%YFK]}8G'gV6:WHffA$ø`2OWnIG+kW;_ qɽ'{C z(o1kK5$m4;8ւ挆
@宥hi*"d7I3 3\'0S6
nOP!Dzpoc5FuGm%pkieI
tcJח_hC@o̜u1w݃i#м.cXD8i,.ܲ8Z置l~yI;T4~I{f\5i謔u^d9&Ǟxݮ{Iجҷ%؇SA$\LMM]%I-""kѽ
:1#M,vg ?[z{Y-
~3To&@|OfCԠ axys Ssަ^&
vrIk{sϮT~+-bT@>%]`:TNվឯa7;vGnM9GF:Mhv=m]RX~*Ytq{-8Ągs+<kTi:<
1km.ܰS/C/m-ƒ:*i̖F³!WP}"a^S1t/M0rQYп94E_>Vn_#Ģ
_>Vn_#Ģ2V[ɦR"*Ho5`*m/BΠV^AlW{W&Բԋ2x
sϵ~֣ vpGK>O-?'zi:="bV&Ј
وX+Hҵysȃsoq.RU"]9w]^^}9_<UN6@3Ʈ-eRSjD(\{oIjYR(v.?
bV 97O䚻k,tJ?D&N#a?ֿ;]4
F\9lLV6F![E!|#ivW?K{, :>R`9m?l|'Ng?F_BU7ĵB")DDD@$s+6MˏWX""5 ]o{!Vz
.¦ʷӷ%(M-otk;b::N2mzJ\˶3تGdһIo14|zŧ/lHQj-Wj)(SH2tS09*:Mwfasyɓ\bgCG9X0clU:GAkvHik{FyRv|)jzڬ8=|sݬ_ .q@B0)DEDDD@B|ܾGDB|ܾGDeM}SDU#*Ϳ^Alk:P
TegE8Xtr&8AlGxJ`'1hÿu.Zh4ɰrhTtuM~z.9R͜d}5\}k(,=]|ퟃ˷7恵JGmZ͟l~߫DZ^mvHwoDZe;#Ņ`pr[v }j)(nlۖo"<-a*tT&jaQt]\-}I vW`>UqV
TA.]͒ܮZe|q8mJ蘳eiSEz^dږ5%L5ω?8Y+6f3[jnvsZ?~bFoMc*m~-.#f.t%YUH
|!'\tm.ӵd.i[h89h[Ϣ!
kFe9OoQywifh
+gɹ~2uym/Fe=
TUh9{fm<Ygx^澂L[YÝ2-_,6_a
:vm6ѐ@YIB",Ѽ,WM&Nd"W;Dܽa:Id&.ZaN㷞1{6c#,1K$;Kz,RDlrU
7i(DR" ""!X
b37p>ٞ璺U%sr!VvA-,akY)*U]rj@4?EriD@,eBK5PXjg>~aN&e,j--Y7tR pp.#uJծfmMsKN(Y%w._2)3sJꚚׇ;orYԣvmߴb]vbj[Ј$dox6Go?soRCcm-Ur;80$c;3y xWgqν[a1.#w;m6ŶhZZ uxf411ٵn}),|A9]~gqFAq%lj+S4n|\ w%/ wׇDL2l92>.<KaŖ h TC5 4sI{YȈa\HbkfopH̳%v*s07
ͻ=#Wᬿ;-Y5fpQU_*T_*TݤZ~".""e;'wK+Z-TIjELZrF{;C{efI<ݓ %v2FkQQq{oDECD@(S2rf{Ò;{71RmwR`9JikI6*M-bL@\/DjW)"۪mqtIqaZ{L暺Z'fN$gpF5WI]Q\:xk|+6MˏWX
mgnhPuVQ(K`s;p4}
iK\Lf~)|{k=]k0|ysݙp:6i~{7 >Kг-o6gP[K65QIrtW,68\fcKoS!0|>:C-xX6Z1HYvĻ0Ha y_[5sZkS/df=
Ä8c'xZ.1ƕPF<5{`k7ݏ]Gau[yjw:_4k_nv,[nlװ<9Uv}pcI-Y#0e6E4[IxnQ+n63OWWW[w -:.4 i#l<ns3,RoiR@#;uXџyIUY@wZ(F3fWP}"J,L_yF(t/M0rQYޏTzeTzezq"""鷒o$7Kг-o6gP[*^᪂UI7u,
XΊqߍH3,ahec,W/J=fdd>9[#xw~=k(<ZCdؓ&0Z:CmNl7;2Gw`|`CGqEuem!b4Lc Gϳb͉-g4G%5A,υ6Jdd5k@97h6v#6F(1É˔VRi)[#8>
Ƒ_,֫twj9ih%hqtaaݱ~`7bm}MiמRT%{ıAYDKx
Q>sH\vc2}vvlӉ0,KiY
H%巶qkv#^qe]ExxmR>ڈunBF?Ud_2jk4I.&'T^bFFԁܖ8Sm1ZsPBH-טּBԳtޞqvUtTpF |lM;
-C/
ٚ67#:y 7(npo"%8vvy穞yv\}^}U;!,X͝؎Z̥~fv_ďcp n;T=?)2˻r9䏟-5}vMdέ>@S+4ecrяa".""od6q.FK)/0ܽag5bL&idĩ_-ɐ0SYP(&^^&̲:mW;givj3BU,KX""=D@WVo9{fx?\cdc150GxO<usK59}#eܬ7GWXѵ٭Jy)tPC$gGu[ŕn"5+_W_IAUo/v]/ӷ%(d*Nܔ\zh<P^Al-{:@54?EriGDeM}SDU#*fXktSnE`G%PtdSct4p99
wRf,9;O=dqQQmb{DE""ͻ?9]pٞpWe&uh]K=-C V;u@{Z;napٵcnX9.řflNY
[$A-}DIQ1
k!9HX(Zn#xVqIJFS>oBN- u;O}ُI\nh5R#Z~!S<|͖bЛ&\f%8/Ce+s.Ebãl~fsG
gc"R
WMUȑM^OnyD+:>u==Qvwcv
v]ؼ/ur?SZiZ}Z
,v'oWxt}
I,:GSXCGe/FCn
֚x0;s|+AymˤJHL\{ z7?Wqsk&ֲi<'?\X+:>bAdWZO<"@-gF78~^+)ECZqk,E~vqYin7љ`W@F3?U[zN"v篫~?ĵgl~gINW
6r"A ^
7G
T;YnEbãxo%#aOBGR D;Ing+e"v{\Nbãx,5#770]FCZ83G,ǁgv>ko-<y{sWxt}
n(mpTñ~-(*K)#˃7Wxt}
ߋۯjzFGp%Hk)ݭ3kNYyR<2%jNʦKvͪgxV]IfR$c ?P9bҕ4F.jY;T]*tdMƋfTo=J eI,:
~O*TIeJH" ""y(p\lԯc*
|%&/JQVa
-[+0kWF6)E[K"-`~ݝB[5<m|ni\bZqMZ2iK]|7X'2)Io;漾M]p64ETdp-Qɡ|{ZWa2&ZFjm}whQFq&0vg;^cGϐP+j-"^!qSz\GKu:CGmmH#v[(F3fWP}"J,L_yF(t/M0rQYޏTzeTzezq"""q_鷒o$7Kг-o6gP[*^᪂U97u,gj:7u"̰eӀmEe&Ը
A.pI]yiY<G|xX5sO&5S)-'D[N`uiM78j1Njd)2W6
F{}t>b4vHvkLR\ [F-d-p0\Nyfw)еQgwugnF.?~m#J>(elXs#3ZNQn?=7&Ҟ1[MommD4Pi+pW|]yqͪ,_
+%Ս<kǰq[ހYfy[O\;'Bs~L*^õR ]qXץj7u)wH#ΏEGIAֆBѮ)B""4OAm[\(fG<wlo9ˮ[5-S2]A0٩!\L%,_o8pf.zz&yȷ#,ںmL{FrZX*DهdNeu3ͭn͙serWQPL|oCP)+*fl1ٖeke̷I>:zh
g#2UY!6۵"s/
Gٙw,g%4m
Ց.E8V<vfy\Or;!V[:J=H`22KP5:y*`pGnfqύ$քLTA9jm$4"Bjd{314k6]\8,PTFXe;5Uu,mUS[i]0
;UmRǮ2-kᳺ
m;tj5W`sɡU2
,NҰ{vmf3:3nG{ss
3;r˝t.XD_Lea)[ ~,;Fl叄vd"sٳ/ux~
6$
VApɄe,G2uͧFG1}8YV1_;bs7wn0ZY&ԉW4fv~z-RE8QZ6n۞2YuU;Z*c5үxn4/xj
lPl.F\r@۱eRSS+nN퐀ivr-+eքA#)el 2/nl+a)ͫDraќߐ\r߉
)3heal=;r%qjQHid|(&-#dvuJ=-ڎp˂0wgߟ̶vf#>d;*r8C8]nǓ. T-=Χ]?[0f@!f
>MAwc;GNxV jS
T_gUTowRbah-$?HRz~J?I'NKo_'r%aD@0)[DEDDkSP55I[T'XgS?5w_ぇ}n%{e5?i۷)CjjOͮ'%
FH
v-M;(bmM,F` u
FEZXv截O^[)m_R]%d~o2Frɭ'sNܲظ^I(&_CqR[4?keȟk~_V[vqۣτ?*kž
/jf+ཫŚg1GU?JZRGkM<]35fc0#|^P.`/hхaMnsFG$|
ai}'6ÁaTvgJ\I1 /C₎@vy4o9eQ>knf1ep
{OŐ)DҲ[tٱ4%h"JqU!o7۩cYo8;W9@Cwtjځ=Y7rhi:ׯdUt4q!NY O{!av7JQQmb{DE""Lj$
Oo1el.98QLصb&ß\:ib:mB8ޯNor7n[(QӉPs#"F{=8}Jb;IN+
N]vœѻwH"-S3`EGu&b[95
}n¦cM;'=8}J_m*2ڻss/'ڄ&SXDɋ]=ڭ;Xik|۟ο= }&cc[Nmn9Mt{ъ~/dv6.YߖՅ%;jZ|vên;u? ps-lߖm[Ac
7 rq;HN{Sb'_mcUƆXI17igq_oiP!n8dy}9#']?ڣucD}ڭmW~ ݻ=!C¶d~@֛so,:nn^Os2vyw[NjlFzN=RY
oYZWmdyu}jFv$9V [AKֽo܃]qmVkgAJuCC{ssw؇IǻWo2H3
SF;Gvku;w൵unb=*}a#nzy<]_C5x..py穻n[N{Sb'嗢 뷹v/"oPT
sRi2?2Si}!icc#nEUC% qGO&~.}gwԭۈ.Ɩ:T]p!d7kKn'=8}J_HM֑ұULC9`Cjl7d
s]7Xok
.K0_lum66BF"-[`9y؇IǻUzU6QT՚^85װ1/L'mt.ј{WCM;NĿ.4;=ŴpɥGH[yiy;laTGT#l`sn~%CoVU)r%rUrw]uOfCԠ axys SYѻW>P$)~MZġ""b3&3fhBB" ""ek[Yʅxj$n,
_ԋ2$l<=vpvsGw4e\Y73W;#:aF5O&ƀCl3
'{2C=)-'D[N`" C10s>>lT=i8쀻6v~?7=ȸ+ӓ:xDZU5tf*cw9pM%..9hj5[Z;NHG"?CvLW!˅ڙj!
yf/2<1vhw` ۔vi~*O8knv_mo'hik*ӵ%{&(Sa+a[Գ9YYlGQbi
ڮ o1+lkFZ:u""pD@ο #I..es-n[E8=sY#^:8>_?=Sܰy4ܽa
mu
R&@|OfCԠ axys SZMѻW>Mpgcݞ}wDR" ""Urԩ,Y^=]=X}9jdެu".XDDD@6,
6,4E`{2o$7Ho4so6gP[+Zm/BΠT+ĽU֓tnYVʹSnE`Gg<k9ڿny6faגyLWh}((α=""sD@%r.
έ>@1{Kd;>wҡ^cjuOx&H5;VXIs?6.0pk==恝٧\`]ȶUI8o7~u5C+~ìOxjq_m#7,7y`ZH\*?u#@GN/d<RO2EV;O=VW'JhSs-H10|gT4=>ait.v͡N\eԺaׅU/m,am]on%
k<@%1s>[Si`G6~ˉڟ=so^c[iiRwGwwnfCRKf̵z\;m+NbSMyX_-زd'o=J 矪I<:
~O*TK%aD@y""ޏTzeTzezq"""o$7Kг-o6gP[*^᪂TrwR̰ԋ2^$6H-~~ \;
8w#ѫ\ښ斝Y6Q0Xrvz;/_E:iέ>@?
bV 97O䚻k|/QvWfpoٺ6y}]K_67ợ&l.Ԓy#-98mk{m0|pEme+ l91:X/v>5Jgo~œ a>^ֳ~PLu<RM폄Wԫ~(SQUJX(DE {""" "8@;v4t*G>0)`{2o$7Ho4so6gP[+Zm/BΠT+ĽUsnY{bfX2i6ܲՓwH"cn7#1ay$;wԽ}Ҏl"-0DDDqbFQ>! h[W,\7d{m-qilsn@f)`?!t0-seŠ8<G|:GKv} 2Fy ,.N]C)fa1G$b2<
=DjJ<()n`6ݙ8ƾ]x_0=V1M3˚5KGh;;<yҺ.Txu]Wܯ"28O3>Y[~,qdgŹ7Eџ.?-ɿ&|0۳~Ê,ؚQ;GR/zIQu5wxΐ;TaZ?F84W%!2W:9>64v>ZY]qج6wAM緱.{3~\eOh"jc
JT$$\`\sHW
xWl<M+`Iܱ>eM3KLXan509fk\ZGl8e@W9 I
䨴@'=[MPSg>F9nƮy9,Nt4VSӺ
L
oӨ6vlm,6:_FJ1SMr0SԚ6WkScl?O=\SW>3Jٝ#M(a2?WUhkkI##bY Zd{csV̚IF]wt&;^MN2GG,_"mٓ?܉ȩ~\jK$N%50E(:s##72o}r3O#Y꼷U9i
$r]MP# RX_ rsȃn(i[C)*nK+)4{cJִpmJSiZt6DrUD=IA nt7Vcs09l-|J#fgcj+
od*{etdsnDf6e+Ԛ\@S٧';ޞ1gI4EC}OHwy̐*V>)1Gʿ_˺pz^LTRbL}8*~g˺9&Z79+
isa:t~y(|IXT>S!m(AG~b*4ۍ1爋|9f2U/wKWp8Sm!ZVҧ_BӣMd',;6Jelt凷q8ZxI7>Ԫ/a5;u ^3[ZFCH>eh)]RkdOlv;%25s6ޔJ
D@,4~Գ/[DEDDD@B|ܾGDB|ܾGDeM}SDU#*DjUy!Ϳ^Alk:P
TYѻfXjtSnE`G;J?fdd>9[#xw~=k(<ZCdKG.Ó&0Z:CmNl7;2Gw`|`CGqEuaӘ"",T4̦8 fzַ3
IY`c3vfGTϖϤ|AI];$|l?5ȸkѓ:xDZ>`CCߗ%YU:g/=Z6XKr<K\懴"3b4z9\`W6Z)tdto$n
da"xKK2qa̓6,*P
hyãAx/O1P+r]e?MM]y)Xc{vnsA,;7O䚻jJ8"WK{" 91z{m$ݒ9끴ܳXp5]|TJ}H63[k|f%j/cIi(:-@vw%
5.tnk19p I;]M_ny!VR*|%JH" VcLU
ˈLE=TMqAF.⤚ӿ5:NJ5~Px>q߇ ϸM}1Dq߇ ϸ_73'DڽDYzs*ݮn~ٞ
c9Z.'|JbFTi(KL+}a-+aY tU5dӹ
rOD@~Գ,4~Գ/[DEDDD@B|ܾGDB|ܾGDeM}SDU#*ڋrVM#p0\4g5kS\ӫ&2=a` i<<ˁ(:z$
^8Ň'i笐#RZJ;-O{D@n`6ݙ8Ʃxc76t\k-93GDE*?_/p*Q]?_/p*]Vn-~?QDnK5}$xI9wFTis4B{ٞGN.2\aVpdx,R6H3ksx
D@;JܗbO}ÌwWFH|OdGΫ%vAv魘fGSq>v@!e&R):nLo>65v
8mj*vObfRjg<+upfTgCig^}
;_[6\M;~3To&@|OfCԠ jxYz2 &2V_ҩ|%IH" #2W|TU-r*o*V?цqKYE0uv뱆7gU!;N[ysC#lv\uAwHz& Ɩ]uUtu0#dvfvKMS-k
6>8;-R56[@@Q>8rST0*}At&|`9Anwm]-lx]+TQUÁQ, Ȁ Uepf/ۭ6@gՉ͒Cs3]cXgf6q.|sUCYZ6`[<j[FxW\_wpAXte[TlmQ~4SٟnsF>|ّkv=@P:Pю8rgq"NS; *N߈?*9(,MQ`_`/П+7/bQo-_T)H
o$7Ho4so6gP[+Zm/BΠT+ĽUsnYʹSnE`G%rVM#p0\4g5inm@垬?9GxDž^4lp˝AׯdSct4p99
wRѳK0N{+>w[gXm9" ""2m#i3#qSx<F[.}vZrgVpQ U_*T_*TݤZ~".""ۑkwlGe7;ҖdPk2]F0Ȕos"CiilAFi+NN;+DZ/wəz]C3L̲J&ԍoOT}7HZ|8g{
f.etC?cbRGymo/WzKM5RmlxeT)Ͽf""[u{m5L' xD"QB\a3mTJY2uj}k7;@1kn|Ng?F_BU7ĵB")DD}1G~FT;b<kopӖNG5[e:IiI^={GC|fU htowgGUӎ|!S|!#["Ƙ"6QR\^s|xفZhgtDDD@Q`_`bQo-_T)H
o$7Ho4so6gP[+Zm/BΠT+ĽUG9FaE88AlGxJ`'1hÿu.Z[P9g&\
pc#v}"c{Gp<Ւ
^8`fklx;ĩz-'D[N`" c,g]91g<3f;}vZrgVpQ U_*T_*TݤZ~".""#\ِZ`X/-)$VX 16k>fZhTfOyk7wUqX.R;}=i^{n~"Tt-Ra.CGK4CCc~ƹhsHsHs//2GѺ9Xױ"@C+5V:xfx= O
nQ(q|xli9{3͐z8ot=
SAW.qaEE>`TS8i1wfwg<8Ѯ(Ul赩*efVe$RIފ\lyҼÂt͓0EUv/XdpOUN tܟ{tbFYAaN~65D[#]Uo%/ҩ|%JH" UA_h{Z"+2e_?yy~mJJ:㔊&/ߛOr}~OwrMB=<_7x''NaiR;MTHx 8gtos>ٞ*_9^oX&HZCh6k*iOLCdvgUDIf{Fr
≕*Ú|]" ""Yп94E_>Vn_#Ģ
_>Vn_#Ģ2V[ɦR"*Ho5`*m/BΠV^AlW{
QʎrNYF2̰|H3,`Fˀ-Oc['l?|ZaZ4pkzsFZ^Zu.Փ{?>?
6lncXDlhH;L?Fs0p$92/qQmb{DE""EM֓3ngoGyQGŖh0&(I&p7v]<ߥecE-=RJeMS0$l{[)n4NDV
E=4ֶ<W`fIOH6ַO=Y-SU2#pbGf3%F]0Ǵ;2*f|H{&pE̒,u3%qݨͥ6+
ki2MM]$RQ"/F}v^I).#+bjsgic K<٫bɫؤ 9j;>K& p{Oĩ_-d'ީ9Rs˴wR`YY6d'5ǟ3֧^wR}B..$Yǻ<y+TK%ar*o*UU_7n}r8*SLW^$KYGM3K2;˜u+V6!|Xl=FmԓZ\Q#Ksy/Uϲ^؎Q3pr9ڮ-;ABh4_Y{Q!do|X=<ݪ23Vxr=tVZk8Y߇3\كs<Ϋrّ!>?D};;'\g5\c
^تbRR3i!eC
sH˵8J8b.5W66I֘!
<2P40>+$p_,AGS0$al<9ʰӷ=ʴD#
jL+f?>XD^̄D@\YַKг-
/pAa9Q{ѻfXk6N?ứ&e,ImN[& vpGKVYɸ{G|xX5sO&=zPQ]kc/.qq9zԫAdZv\vaIwgWi3
W}h2:'-OjUjN@%Td3nk^Z>uBJ7|F\}"*.|^Z>uCi
X:x?k|\ӔX:x?k|\ӔX i^o8b
,ͺdy̍f:v-c`ĔNy!UHgN_8?2BhtO9=r_zCns:rMF\2:.#1dbj
˦u8 .mZZj^"uLtHM0o`J\l,رCQe֩$MW#n/{M7jIs-d͖5j=/($섽ij[65v X٣p-<1Ҷ$dBj4jdLl\;0͋B\j2I_#ԘMp=dncɿhyж1SHcchsD8zץO5#ãho$0JAַ#,*Ot<fL%$cn#lsvIjO<MO\u0p<fdvnpji[C)Xfl6oCadl&B2c"|>6&9!eظV 97O䚻jłTV)衅Іy.V{L29ϥi
To?0]ܴRHuzi}o:q׃ַϝz!v,DUx?k|\ӎ.|Chv&waˠ9PP؈9둴7G2퉘JYF=h/m=Î>5i U[j⩭Ia{$G;:b-'CSe*iU&JfB]؛7ws*+ʝ:On;INtTEv>R`9m?l|'El{}=,5 -Z:Iܽpϼ\Ujadhݥqĝz R"-Ј挹U_7nRk-SsEIN}@r}<ocN߈?*B;J f;J#-e|kE""aWm#V
Fm,ek[Yʅxj=Գ,5:)7u"̰e0
dߟ;T{Gl`!
9;l0N;-J]ֶAKVg*!lg,mw:ܵl3zRv.иx`+fZ-W6WY!q$lLyT֜%++<ogSb6(J@և^1<˓KKα ̹̚9~^[|Udb.. Oib'gu.Cӗj%YOKV/y-*2"\)=u-EoPmN5H3&.m}Kǻ̫N7qT5-;CGElH1 8QŖZs̹I`m~<8pfAّ;>uW1*h$O;d<<4Z^8㩬K͒!j]ͮY^!3dp 9D(|ׇ\)@i.ۆd4g=q+*㎺JAoI]K#[
5ɹڻ8Mŗ;ݵUʊW4eAj5F^Z5XGz="V>ccZ'ck,Bn3NY83V.8ٟjO%)yo{5k\8@Ap`:Z]K$RX$1j}Gnnfm%>VQ>8j1x2jp1DskZa{+RH7C v`ŤfrfvP+r]e?Cv!E)q؟j5oĶ\iokV*
fSOj[e|?m?jN-'qRv(hwOI_ݟb7_uv{[nVyOI_ݟb7_uv3V?2-yhX,3jtMVq: $-soP+&đX
HB*²wkl̸Werk_c̮IuP9m-/"]JI!1vh
VU(wo/?6槜tQ0P|w֞oͷ±`VRu(ca{bEZ*mޱX"z 2".`DDD@Ds]zj@4?EriD@,eBK5PXjg>~aN&e,j--Y7tR pp.#uJhՅ=5 ɘ##Rq>Ys::c-%Ldimq;3~(:JⱾhݘp=mmߚ7ݗVEEQTBFy=s~?W#!=V+6[:j!{DU#SQԌAe9ew9>s,۞YswYpr
A,?>aYS[^6e·{%#YNY]{/l>|iu\.ܽBeA,?>!=Nq]&(u怵3Ps\#e(NV8:ƴG7)lt{b=17
9QJҼ=mZw"a&[{m4f`NC<+JG>JtcF*0AWi#.qoa![2XKr1TSWO%=L1|r498vOI
,ziTtk(#@EaςgC
+fcxI
G8fkI$I'i:jX#ƫ"hi\7I,Ӱhh ;AJ)(E]w""xҼ(S2rf{Ò;{71<[3XcɲK
,<(=ַF~FG2J#vKW?K{, :>ԠxZxI7>Ԭ=iUvxBޥP'sg2FݱݞܶedX~7E襽Yq3|иQtyԖklEνz!DF}OH<`En4 ki[_Qe?k/6ks֬oV|>co1s7F3]KzzKSq>Yu<;t
ϓA'Q jL+f?>,˟kI81UH2p-ٸKzJ2\HEADDD@B|ܾGD%8i9h'70SZj+1=\`q%*EPPK٢Y"*Ho5`(,5GM#Ke>&{7-@Tv]bzsfRRc$i<vd|9vE\Jz\7̪:u%v]^2;ٍxo&u_&¥GV2qoj jd1KG6!AGT?#>0Oܟ}W"Dܲe;/菡bm#X,u&gosDܲe;/菡bm75\feYpHg#a/֙sۻiE`yz~<۱}ĺ9Q0UDQ{eKsw\-K,51sv<y?]6vh4(IhWIu" bnE\٦ݠˁ:n[ݞ_#\+aLаlû38TҌ|ZNmwp/>!9?vi4Հ*M+rrk@p AA\ڌ9cϲlxJV;?-Nͱ1]zi?N'.^KԚL10؞@A/P.h_luD
Ae۪nRk=@xa'F̴wv·)(c\dKRU/e6=|qgR%θح^tYiJN C*9Fw5$r}ޯL붦49FÂ6iܨ-h8;40d6zR;<CM#c
p9 '?8^)i`#wptc1o:c,ֻ&:vuhl!eA2nmf#gewf6 8~7
n߇->6 `eTN*9(8glp[1Ӕ;fG2T3F\"(#k@9w_WU1^y)y](ν7YXy3Z[! }(8gmkwڷ-.5ۑ<+oݑݹg~?uΒs= <7>6/9C.9teqTO8L:vFƇkIRP 2VAB 8VUOX»;ZL)ȥe(N-v璾Uli%KVOUWp2lIkvx
S6k,l;TX)\`DEjL+f?>M;4ߺTL
wiu?{ƛUXS%0RuOǪjǢQGEO=4-Վ(֎gEDD+ b_[ot5:Ϟ{*D3{EYcXGύ4K8?^|l}UyUpgXGύAaʯ>6>.UyS,#UV%UAaʯ>6>q*D^ʳ,#UN WuZhVq*h%VGnjD^eZpj)̵k}qJ!_G1
ܧ}5k$1<#ks嚜
]{S|+uV!W.>A\|+uN!uZUC_˯~8>q.D"
]{S|+uV WߎC_˯~8>ȫ¿^p}
]{U.E_>WߎAr*!u8¿^p}h"W.>A\|+uN!uZUC_˯~8>q.D"
]{S|+uV WߎC_˯~8>ȫ¿^p}
]{U.E_>WߎAr*!u8¿^p}h"W.>A\|+u_@A6iӰ8;RZ>sVz ՆͷbiR<'i>WID@D@jL+f?>96/
jXQkZ3`#(ˑ218ƿ
.2Dk.N21.2#(ˑ218ƿ
.2Dk.N21.2#(ˑ218ƿ
.2Dk.N21.2#(ˑ218ƿ
.2Dk.N21.2#(ˑ218ƿ
.2Dk.N21.2#(ˑ218ƿ
.2Dk.N21.2#(ˑ218ƿ
.2Dk.N21.2#(ˑ218ƿ
.2Dk.N21.2#(ˑ218ƿ
.2Dk.N21.2#(ˑ218ƿ
.2Dk.N21.2#(ˑ218ƿ
.2Dk.N21.2#(ˑ218ƿ
.2Dk.N21urW\jj}yvg--------------------------CVSSCRTIPSVLSRMNET
Content-Type: text/plain; charset=us-ascii;
name="/www.derickrethans.nl/html/srm-montreal/srm-tree1.html"
Content-Transfer-Encoding: 7bit
Content-Disposition: inline;
filename="/www.derickrethans.nl/html/srm-montreal/srm-tree1.html"
[FILE: /www.derickrethans.nl/html/srm-montreal/srm-tree1.html]
<?xml version="1.0" encoding="UTF-8"?>
<html>
<head>
<title>Persistent Tree</title>
<link rel="stylesheet" href="style.css"/>
</head>
<body>
<h1>Persistent Tree</h1>
<p class="example">
<code><font color="#000000">
<font color="#0000BB"><?php<br /> </font><font color="#007700">class </font><font color="#0000BB">node </font><font color="#007700">{<br /> var </font><font color="#0000BB">$key</font><font color="#007700">;<br /> var </font><font color="#0000BB">$value</font><font color="#007700">;<br /> var </font><font color="#0000BB">$left</font><font color="#007700">;<br /> var </font><font color="#0000BB">$right</font><font color="#007700">;<br /> }<br /><br /> class </font><font color="#0000BB">binsearch </font><font color="#007700">extends </font><font color="#0000BB">Banana </font><font color="#007700">{<br /> var </font><font color="#0000BB">$root </font><font color="#007700">= </!
font><font color="#0000BB">NULL</font><font color="#007700">;<br /><br /> function </font><font color="#0000BB">binsearch</font><font color="#007700">(</font><font color="#0000BB">$elements</font><font color="#007700">) {<br /> foreach (</font><font color="#0000BB">$elements </font><font color="#007700">as </font><font color="#0000BB">$key </font><font color="#007700">=> </font><font color="#0000BB">$value</font><font color="#007700">) {<br /> </font><font color="#0000BB">$this</font><font color="#007700">-></font><font color="#0000BB">add_value</font><font color="#007700">(</font><font color="#0000BB">$key</font><font color="#007700">, </font><font color="#0000BB">$value</font><font color="#007700">);<br />  !
; }<br /> </font><font color="#0000BB">var_export</font><font color="#007700">(</font><font color="#0000BB">$this</font><font color="#007700">-></font><font color="#0000BB">root</font><font color="#007700">);<br /> }<br /><br /> function </font><font color="#0000BB">add_value</font><font color="#007700">(</font><font color="#0000BB">$key</font><font color="#007700">, </font><font color="#0000BB">$value</font><font color="#007700">) {<br /> </font><font color="#0000BB">$ptr </font><font color="#007700">= &</font><font color="#0000BB">$this</font><font color="#007700">-></font><font color="#0000BB">root</font><font color="#007700">;<br /><br /> whil!
e (</font><font color="#0000BB">$ptr </font><font color="#007700">!= </font><font color="#0000BB">NULL</font><font color="#007700">) {<br /> if (</font><font color="#0000BB">$key </font><font color="#007700">< </font><font color="#0000BB">$ptr</font><font color="#007700">-></font><font color="#0000BB">key</font><font color="#007700">) {<br /> </font><font color="#0000BB">$ptr </font><font color="#007700">= &</font><font color="#0000BB">$ptr</font><font color="#007700">-></font><font color="#0000BB">left</font><font color="#007700">;<br /> } else {<br /> !
</font><font color="#0000BB">$ptr </font><font color="#007700">= &</font>