From 501a3f9dbf63968a6a443b7a9e8655ac4ff3d828 Mon Sep 17 00:00:00 2001
From: Dean Rasheed <dar17@cam.ac.uk>
Date: Tue, 27 Nov 2012 10:27:51 +0000
Subject: [PATCH] Release 1.1.1 of the web service API client code - adds
 support for Python 3.

--
Imported using git-svn from
https://dev.csi.cam.ac.uk/svn/lookup/trunk@48
---
 build.xml                                     |   38 +-
 .../java/ibis-client-api-1.1.0-src.tar.bz2    |  Bin 38552 -> 0 bytes
 ...bz2 => ibis-client-api-1.1.1-docs.tar.bz2} |  Bin
 .../java/ibis-client-api-1.1.1-src.tar.bz2    |  Bin 0 -> 38578 bytes
 ...pi-1.1.0.jar => ibis-client-api-1.1.1.jar} |  Bin
 .../php/ibis-php-client-api-1.1.0-src.tar.bz2 |  Bin 39923 -> 0 bytes
 .../php/ibis-php-client-api-1.1.1-src.tar.bz2 |  Bin 0 -> 39984 bytes
 .../ibis-python-client-api-1.1.0-src.tar.bz2  |  Bin 50642 -> 0 bytes
 .../ibis-python-client-api-1.1.1-src.tar.bz2  |  Bin 0 -> 50721 bytes
 .../ibis-python3-client-api-1.1.1-src.tar.bz2 |  Bin 0 -> 50458 bytes
 src/generate-client-methods.py                |   41 +-
 src/python/README                             |    3 +
 src/python3/README                            |   13 +
 src/python3/example.py                        |   33 +
 src/python3/ibisclient/Comodo.crt             |   25 +
 src/python3/ibisclient/JANET.ca-bundle        |   52 +
 src/python3/ibisclient/__init__.py            |   24 +
 src/python3/ibisclient/cacerts.txt            |   77 +
 src/python3/ibisclient/connection.py          |  318 ++++
 src/python3/ibisclient/dto.py                 |  685 +++++++
 src/python3/ibisclient/methods.py             | 1665 +++++++++++++++++
 src/python3/test/unittests.py                 |  856 +++++++++
 22 files changed, 3827 insertions(+), 3 deletions(-)
 delete mode 100644 downloads/java/ibis-client-api-1.1.0-src.tar.bz2
 rename downloads/java/{ibis-client-api-1.1.0-docs.tar.bz2 => ibis-client-api-1.1.1-docs.tar.bz2} (100%)
 create mode 100644 downloads/java/ibis-client-api-1.1.1-src.tar.bz2
 rename downloads/java/{ibis-client-api-1.1.0.jar => ibis-client-api-1.1.1.jar} (100%)
 delete mode 100644 downloads/php/ibis-php-client-api-1.1.0-src.tar.bz2
 create mode 100644 downloads/php/ibis-php-client-api-1.1.1-src.tar.bz2
 delete mode 100644 downloads/python/ibis-python-client-api-1.1.0-src.tar.bz2
 create mode 100644 downloads/python/ibis-python-client-api-1.1.1-src.tar.bz2
 create mode 100644 downloads/python3/ibis-python3-client-api-1.1.1-src.tar.bz2
 create mode 100644 src/python3/README
 create mode 100644 src/python3/example.py
 create mode 100644 src/python3/ibisclient/Comodo.crt
 create mode 100644 src/python3/ibisclient/JANET.ca-bundle
 create mode 100644 src/python3/ibisclient/__init__.py
 create mode 100644 src/python3/ibisclient/cacerts.txt
 create mode 100644 src/python3/ibisclient/connection.py
 create mode 100644 src/python3/ibisclient/dto.py
 create mode 100644 src/python3/ibisclient/methods.py
 create mode 100644 src/python3/test/unittests.py

diff --git a/build.xml b/build.xml
index 4ffc765..1782f44 100644
--- a/build.xml
+++ b/build.xml
@@ -1,5 +1,5 @@
 <project name="ibis-client" default="all">
-    <property name="api.version" value="1.1.0"/>
+    <property name="api.version" value="1.1.1"/>
 
     <!-- =================================
           target: Java autogen
@@ -130,6 +130,40 @@
     <target name="python-all" depends="python-src-tarball"
             description="--> Build everything for the Python client API"/>
 
+    <!-- =================================
+          target: Python 3 autogen
+         ================================= -->
+    <target name="python3-autogen" description="--> Update the auto-generated Python 3 sources">
+        <exec dir="src" executable="python" failonerror="true">
+            <arg value="generate-client-methods.py"/>
+            <arg value="-lang"/>
+            <arg value="python3"/>
+            <arg value="-d"/>
+            <arg value="python3/ibisclient"/>
+            <arg value="application.wadl"/>
+        </exec>
+    </target>
+
+    <!-- =================================
+          target: Pyhton 3 src-tarball
+         ================================= -->
+    <target name="python3-src-tarball" depends="python3-autogen"
+            description="--> Build a tar.bz2 of the Python 3 sources">
+        <tar destfile="downloads/python3/ibis-python3-client-api-${api.version}-src.tar.bz2"
+             compression="bzip2">
+            <tarfileset prefix="ibis-python3-client-api-${api.version}" dir="src/python3"/>
+            <tarfileset prefix="ibis-python3-client-api-${api.version}" file="src/application.wadl"/>
+            <tarfileset prefix="ibis-python3-client-api-${api.version}" file="src/generate-client-methods.py"/>
+            <tarfileset prefix="ibis-python3-client-api-${api.version}" file="lgpl.txt"/>
+        </tar>
+    </target>
+
+    <!-- =================================
+          target: Python 3 all
+         ================================= -->
+    <target name="python3-all" depends="python3-src-tarball"
+            description="--> Build everything for the Python 3 client API"/>
+
     <!-- =================================
           target: PHP autogen
          ================================= -->
@@ -167,6 +201,6 @@
     <!-- =================================
           target: All
          ================================= -->
-    <target name="all" depends="java-all,python-all,php-all"
+    <target name="all" depends="java-all,python-all,python3-all,php-all"
             description="--> Build everything for the client API"/>
 </project>
diff --git a/downloads/java/ibis-client-api-1.1.0-src.tar.bz2 b/downloads/java/ibis-client-api-1.1.0-src.tar.bz2
deleted file mode 100644
index 3da3d7906a1d976bba835e9e611bd0874d3d4694..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 38552
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

diff --git a/downloads/java/ibis-client-api-1.1.0-docs.tar.bz2 b/downloads/java/ibis-client-api-1.1.1-docs.tar.bz2
similarity index 100%
rename from downloads/java/ibis-client-api-1.1.0-docs.tar.bz2
rename to downloads/java/ibis-client-api-1.1.1-docs.tar.bz2
diff --git a/downloads/java/ibis-client-api-1.1.1-src.tar.bz2 b/downloads/java/ibis-client-api-1.1.1-src.tar.bz2
new file mode 100644
index 0000000000000000000000000000000000000000..967531bf01da27543a3ee98e7c1c95615f0742d0
GIT binary patch
literal 38578
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
O;_gVN3KAa-Um>6sqBUgz

literal 0
HcmV?d00001

diff --git a/downloads/java/ibis-client-api-1.1.0.jar b/downloads/java/ibis-client-api-1.1.1.jar
similarity index 100%
rename from downloads/java/ibis-client-api-1.1.0.jar
rename to downloads/java/ibis-client-api-1.1.1.jar
diff --git a/downloads/php/ibis-php-client-api-1.1.0-src.tar.bz2 b/downloads/php/ibis-php-client-api-1.1.0-src.tar.bz2
deleted file mode 100644
index 902a6e26e640fdd04818c9670f2421a075205c56..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 39923
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
HKy+rn8OJlu

diff --git a/downloads/php/ibis-php-client-api-1.1.1-src.tar.bz2 b/downloads/php/ibis-php-client-api-1.1.1-src.tar.bz2
new file mode 100644
index 0000000000000000000000000000000000000000..7dd84c39e0be6a12eaca1bc93c05258c43f55d4c
GIT binary patch
literal 39984
zcmV((K;XYZT4*^jL0KkKS(^ovECFt$|Ns5n{r~^}|NsC0|NsC0|Na2LfdmC0f&c)B
zKmY)M00>~@o4p6NqRpq!Ey44~`ZwLK%dPa?_VWYV+Bc`b7jRci)V1#VJ+=Wm*K(ac
zcicVKh~nG~sP&`mp-QDWlxPZ*L+;;7?!b}IbUH};nJ!g(TJCns+fEVo$5>4$8V{p=
zWdKMOLZ5xpZRRJuuQ7+ayL;Ex*=GB$aJcT>med-oOYHBTA5tB99p2}ldgvM`4gdfh
z^7HS$Rp=D^UDwUEuf9I_&;Sh_r`eCYJvm$M_T}01WYU7VKE331y;ss)YI@shnmg|z
zocp*Hb~Qi&b`71q-aYNMF3f=A>;QAIwh90);_>cxefM+S)9!Z0s$G!QHf@t*X1<%_
z20ne)THMX$UX<xQ9Q$t?eau^Gw3l6tLsqNrceZ?KcYWS7vwH!io}7%AcLUdR>F%q}
zN})TATTAZUcRF3YJ&TU;JZ0$T9?EPm*SFsF%QklsdApRLwP1P`*0zqW>({a0dv@7b
z>UP_+!94e@7iO|8Tjg?Gb)2>DDR*COFILu@-t#^5_23^+x2@X)NqrW}y>WGh5{<A0
zX<KyRCqM?8wWyNYS8>B;_uG~9w6fLnozSG4uDfkDdim#$+6JgoZyoK@gws{qr(-t2
zG||4#cX{u<bA8)s_HME@Ev8-fL4Ef(Z?m17+2r3{*opS&q0Jv$(yNYU?C85b?&3y_
zRNdWEXu=`iSKWPM>#;t#Ng@Jd00A__$)Tel00h$r0%%F-(<!uSN2$G2^-VMZ=zstc
zAc7`@AP|`}X*~*NfJnkL)6~$=$(oFhP|yGw00001Adw?Pf;2{x)YECG#K?M>ntEwH
zPg6{3GBiCvXbk`~8W_~j000oANI)P=CZ+_)n<kk`ei}`tnH4>yJ(D7BCZXjYl$rq0
z^neXC009z25KS}y37{vSCJ{3rMkWXvX%AIAJt}w_YK^G<G>G*9pgm7e3W*^C0RV+O
zr-ag;(2q%zRP{ZkQ`(6<Oj9FG8hW3q8Z-a^^#A|^|GNE%#=v7=Wry5%)+h8rZ)e#_
zEUV-QUb-hjz7<@`hLDS~6ca$J!SmnAnExf2`wPCmW*Fs_@1Vmee6OJdkOYGukpMyh
zQcxv{QUD<VQc-^x;DDeI+%Sr&f1~rw3G<WZkDxRiL?`Bf`~UIU<b7ch|JNms2oW_i
zNfD4>KuQw{Of0Zf49J9&Jsx}icc#DZIr9<!S`wNKpXP#&%Q@!%=Klw7`>%aswvt@7
z*x1?`;vp$6VpKtCuHpsAgCngqy{M)!9+Eu-{b&4tImM~Wxa@g8^5UBa!fgBZ2Uccg
zS<w<vJyItYlN}p(^QkB03dg@y46-VHGhjZ{O2b%jC{Jt-d4s9~s3~6Kx0d!N{whO5
zKqrc%s-Q}tDvGMAsH%#ps;Wwgf~vAIrD~`~qaY!h9+ty*1#=kVi(KEwdiODjRV1!C
zugNOKXS66;`cKvQMqXSk^MdSOsma->LBX%9T0b^cS^fRZqgy`mMJa<l-!Gq{B3zKi
zR)bNB4Jd{}a7uyBVNzEYZLd^?iCOFA)#Ntp(tdu^uPq9x!37PcTto^2C8&y83IXl!
zJ&}47xB$gqgd}1SpcSAKBYD;y=U*;SJ%8A7$n)Ki)e=@a`C;i-vxcK13PJ)<B3P6v
z2tsHHMj8edktzrpkdi5B0$>VIiA1JO{17z;f(~_7Vq!@o%tcjyS?D@x2Z1EwKz-vg
zKur5)YAPzKBC4o}h#(?02315#I7U<nRbb&MWyUn;FlkzqA^%6X@Ar5K#PKWK^K<?n
z+;0C);N*bzwO8%1Z}EYhoU+ynL$eC6zcBZk10VCB>}Z_@l4Ld=NwJyaB*OGOnBmaE
zM8I9eT2@i)o(9)sMh*xvFwnt4K@bb}?o(ottjIv6cKX+RorZUeb}4sZ&g?natsV<B
zbwLVPm$MX;-eCgw&t@>MPWDJ(l*T32Kk6pBtPBGIb7%<#IWz6tW_3x(o;+aJ7$qht
zl)_E>;E-Wtgi{#_83HM2LgI}|_3O~aiChku7g$%A%320YHnp!7@hC*pU`0k_dwp53
zD6N?Jv~E;3#^o_k$OOYNp#-3yrF`;XYO?~Sh{TdG&lEZ<(v(^t53lrr(l@1+j3Y<O
zebL<>KR@hy!?|Pcn+VM?>$(KS{`zK>-)<LsO{Y+1%82<<?q`Nw#KA2fQpD328d@8C
zeNh#k6^V#v<BwXSgdQa0Q!(RNzGDb49e@V*K`3`fq+A7NeNAMp_?dB4JW(0<aW%pq
zT+F;yXiPe!J0&ECT&1F#T8V$pp1*#*W8>k})s>5CziEvgHd=7x;UgV)*TK9ks5y&G
zH!dKu(jg+DiE;%6k-Rd@+GMTl@4w6_81cp=ka;=YGZ?*Ch?8q^5oBqh*rQ4}y0Zb;
zo;V`s=2}>3ux(PjV$^N{BMm5M30PrGMG}9b$iLgtH^?1kOyx~kWrYzTgk)4pls9T9
zz?gJBcxdY2`OcMzq8%w|v@j$Ozn_evo;!0AOM%F=TWiA1-{SBI7<S&C8pS(zHTxI+
za<54sOY&Lpq6;*HMuz|gSN0o8U7-&w#K{w!f#DzvsT0NRMRkP*YZ`>;>F!^-yT4p`
z_i&mNcms$xmV|ISbOBRP_krFV-O5t?ynG?4gmx7q=3PnOu+u9MDD_-bQ3_QQ1!%Hx
z_)BfJ+i~Fa4?{;J8#+E`hGfvs)MXn!$L{&OlfH0wZQSo-t4*6bm}$dza;l`{?j=8_
z#e#th<fUq|kdYRcB_Jso$cIA%(Fwa$`IM~gba^`uKBf%$j=Cg1&<~1ZX!;*%lDUEx
zW{Bm1mJQY~-|jD(TF&gzu5SOH81qilsAw%)rp?qzuoKpM?Ylr31W2L586=SSzt{MF
zaFFldv!nH`vIv5y9(v*Z#Md^l*^U!e^N;m{3M(QJBM+OS0{)U&{%#lgbX=!q)JOpS
z)t(e0@dZjhqtK475A|N$^?z;jBaV){`5TV1NSk97Nzw*P&97!X^34dqAF6p?>W#k<
zXJ)?qAKOX9jaFAM?m9G3kJ2df%j+%Gw-)smKLQa*t$$*yl2dgId;iiB%4T6RGYkot
zkj%m3MmY|KI`cZ@zujwU?i*F`HZ&@Cnuxlc(GiVW873JF!wqOa0Dj05`Q^v}1|en?
z^@_jJBl%K=TPUK4dEhFj1IPkz!4)k+iYM^We?^HAKIu^q@~HtLMM?!!P6$8@AQQ1y
z^emMFXgOq!l^QZgwE|3|B9cg%7&z1t7!;8vQEZY2{>u?0{Y8k0I>L!Ui6W{igGe8~
zB3M{JL~g)o-1}Mj_pN9BsE2;P*vW}eaNvyRL7-rB9?X_8xDp_ug(xHmDMw@j>4(`m
zJ)C~Crn>Eg%h8vT(CzH6p0BNtz&dDkd2_HE5R}csJdNiK-Cp^QcK6XEY&dh*f}p(P
z6-a2a`xls*)Q!Z=`;uRZd_ts_^(LjGJf=j(9)GK7GiG!t2D8Lyl3Fs^Bq2#iQWZdQ
zjB&A#qzJJ5*sHpQ905I!umQZrLX=Vr^hpq@2z6^#IATq<ekBgiSTQlKg@QJ--cpZ4
zT4C6Nj~Z2~3uGo8$Q{FaruL$dLB{1YbsH)c1`#fWn;OLkY1Zk3g^+B@vj?7r1Qwcb
zCTY6J5L0LZ9SU^@a?Ci{IAcwU7WDw!0k~fBpm6CE(wUp|A$_h1Ildpqws^7QiHX$j
z3^}`z9GuOJpAeu{6Z>FUi$16W=f+XZMjFacmcnfqM@Y9%DNBSgW?}{@MIgdbN+f=M
z%{L^qMY28!{lr$%4iXN1Gk%_64kXKvwhfG6+NkfeZz#El4zOfQ)LHvzAQ}&TF_oZM
z1+bN{cd?uSfGImF#@lVXV%b&}Z^|3PhGrc1a5dEx>YPkl!i2S1CP^S95lq(=rG=E%
zXx5~NNVlfrSf`VI;>5UIZBZIJH3GKNZI4g9To@yPK(pOwL1|s(B(~L1Dg_G113ijV
zPY`=&Ij|7Zx*{OfE{e7>qc{o-*Pl)}%sMzB?1}iSKa_erUdI{j@6U@(O|dJBxbzmb
z{_G^2I}P}LD^$%A<R4`aLR5v!$3?<PGot+iJgeJXi``c>&phDzf8@uXMJe3MQqBcJ
z2U-zgM#jRfs6lK>R3k#tp@MZ69d_#8!`;=4g^$x&HWgo`s7=l{-gn&h8O5Fv*A8Rz
zti_UepRoWWeZML>;A6;pKvaj*^6rK3Yu`PFR!HBUk<fnW!J}il%sDsn^rG(4P5sXn
z$i6XGnnXbaOh6Kf5h@W82TTDlB9ba~MH;s^CivEgwgIscU`Tlil$c@g0YM~A!7}<!
zA4~XPo@%F&MHUO`HUYtygLWPsdIOpAk68B}K;}4nuo}%>Mmwl#dzjONJQ>@_{bC+S
z0U@8PM__kDjA_^poNRl?p9L9!m-1O`;yIt^)^^W--|<w2e?R%{-OSlH3~avr#Jc=`
z{{dC?A2L{w(M=;T;4er3Kny$_#hG7vwOZV=N?Ajx%GyX%`3P$$fMc~gXF)s}H|&$S
z#xIzJgAXY}l+H%$kH&~hr<3(ZF1~-DXW&y%RQlaMBVV2Z?<V6z6|Dg+rZAJJAS9{E
zG4|mV)BK3Czjf!LHD}sZwqmuDDn|r5>Qs|Pe9A~O!9A?Rj|Y&r;xK;E-1FeiZqc1a
z>Z`1GXsTIjL(vdOB8X8sWZ4jj1X{YFNh|zFNJ<74)%o<)))|ZE7<Qp$=f9*|2##b7
z96HJm299-UMsz`peAvgW14C&<H5oi=mup{5qK|Q;xjY<n6v|t>(zni9KY@@=_Jd{k
zHF@^%Y06X`u{SvNY{<IYIlu7OCdjN9mmRy?^_FBu6)Rn@ohOim(8NuU8;$&@K*IZK
zdt~*%WR_x$2~R>l7jL7e3h?iD9@^W5pze}9=@428^E>~s6JU<S30T&{#3|79k=H5Q
zPd>D$Wqyz=vSIrVX8BSk9c8%*Iw24;_au;}i0<PFsxvKAVXo#$nWN9FxS?=856tN<
z9X%>N<GOc6G#J8bis!q~lm(z|-^C{OuaUB18*A%zjS?hwaC|TL3}+uD@z4tX8X3O)
zU}cv9)Ho_*qcI3EAsA#p<qe$xVRL>uc9$*3D_R=GKRBkO!rNAW=>dV0za}D-EZTY!
ze&UJpy(E(%<zR={rlCkd2Q))A2A4^%cXaFyT^gf41wt0>Rz?(pbC)@KT#CI(mczze
z>xW;K!P03SkI0E52*m@{vE05Zm7zlJ+lOAJs0hb2-xn$}<*r<)%OlH_7G$($7j-SS
z$i2QILm#?i52z|6OlNb7;K?cPYRE{X6EF-$MgU8WbpeWj5J3xvZOCZmDNi&9QQAL2
zs=%R#9=p^Nf+Nr=wn(Yh0)iG4s*GtlF3|MBUI>~40Zgn0JUdFt4i5m|6B{4$0wQA-
zF$0642Q|Ea5QY^=C#X|GUUhQl;5@vCJLfy%mTcjoGk-n9%fBqme6N&j-X!|3yd$9U
zzV{QjOPpZRJ<MN|>JmGjFcVZe+Cud#TE-dYpUZc>#5okyomyq-&P}xW#9qZ=Q?Tit
z52Fr5*Q(CVw#FTNb{zMzMN3!;rW)Y7GfmQ#-84H}ZHsxzbO>SMZMVUK@M3#i%rFH=
zH8k8r4hlh@lY<pj&TYxnu`9pW(X*SAS2S@4Dlnc{>rGmvSZPvXS#(@kfs0o=noU@Z
zRHbq}u@hX|cxhd|H%kk>;<K9Qx)Y>DIYlrFuN=~r<Ae1IZ*KAAoB=FmI6!2}cVSDs
zunEJ+#~biNxhz6zElo}1gSK=-CHe!HHu5Q?P=fRd8V6!hJjw7+Lq^5fB}@@dKs$i8
z3a*U{Z1a5xq}x)BDBwj|4zJ<B2a#}K`WXD581Px|$HPKA(N?`0UU~}k?z!oj5;!BQ
zlNx{#$5TPqJTbN|H>cXNcGxUlGlaA<%`%^1wi#-Iv`Jh;ST|f~VIv5hxJLMhXF`si
z8aZ7;P_i1Z=X@FKA;nHPoJ}mA;DP}MV6cHPj8-nLFNV|HbH3&dHJ0b>2DE59$h#f%
z2(XZBTskB)?le(WTWzIVTg)`mQOn^bl;KXc*LMdgTUh)4dfn}j=jiYqG|`g*z;LXR
zybyL&STJ*)V3c{sa!g?8--hXx7Mm%Uvlzx6O(!QUlXVs$GobP%!J{7+0Co<fU3QXx
zt!57)fZ_ug=<;OnUCsA6NMqZOF%K{Vk=PhYGKknmCmdfF8x)KqBcSoY_Yk=Tc0NP>
z;2)QsEZB(a5s-uKnMffZDLs@<9x|vF3WQ3`D8e!fVS&%6wm_>#&CGH3Yewg0RPsXj
zvsSChcE|JiJ2;s34f-T<<MWH;Uy<-DPCY2LBpLM1DR|c&TQhungo%7_kig!f+34&u
z1gvIvb{fQ4-=Ru72lB9N7^42wqrk?`tUHSUyjA4j6_9gwNE#BK5(WYNXM=S`QH_-o
zpu>2H-btPhABSE(z&Z8tCj7r_5#uv`Y2=CAM}?fMs#W3vvz>!*A4*uMK7{-2aUw(j
z`SxDkN67jk;mw-s>rTFfo+aS%Fy*t%-S>@tD{Qve#fu&%w<OdmoFcWmCk0b<l%*w-
zWS7?I;9{D09dvAW9;bhP-kwgPyiPPuXys+HRD}($VC%0}XN2PexOV}bL))D2M!1BM
z$~%SrVEaDD)5*+n@;?bXd?zQLx&4JmYkwC*x07d);jC|=F;sC|DTX&RGKrQrRG#Ye
zO6G77F%V>9G@Vg#L0U0^+h_*aj4C}bITE<(HKPslHIt2v#QBOzx}?yN3`+vlcM0LD
zD@Y-)q;MZD=7VAPZ5j8$)adVg9(lKiSqD2UgsTcll$3HiDma!lmP5TqeOKPdZx%*_
z1X-|v^`plq@J^c3X|~u<pEG(Z@FaP;O&pWGI=yDej4*!Dh9gbqm#>EPhKb?FPVWn&
z!O*P4ooU9~l*g6++kp8U!j5z)=xYT^BovF4&_@e(u~JZp3L>n?XtBfaLRIG>DXKgm
z_XH6+H9QJAZF<<=2}pLz1s3D6W;^s45+MB73Hz6BcA-M|&O2w4p5p&*F!2!i{+tk3
z<~k#szoDKzpHJk?pAZG=Fq%C^cAiRAizL@Fr5Y&(XAMeXXsXWlHRmWKMOFe@6+o5r
zmQz_65;-C~hh*opA9ou$vtHhRKJo?d<2;|y!k3ympBeN!bda0x+om3$IlIvd(|)S^
zhJ8Ewr_v6Loc4|E@_v$aPnH+&cl5z*Vy^xVb)2|~DI+mc-ZwaC?l<i9y+PNO^Su)E
z83PluF$_q;`!*fu_Z-(^iWoy@Y(&`7KH8~%OZRe6k@^ozc<17K4^)W=)ptINqvGH6
zk?@e=r5}rbk4@D#$ToV^gur!zNHOrwFD5$pDiHw0G%<SXqt<};ivVEmWo+m%x7Rg*
zEHMNL6T@$}cL&hnkMYGov~7WA$wmqWEg}~{o|@TRp#0h_FA?ruX?oCoIfd%yMkP~l
zmrUR&>O(UR;mmjgLX2M|>ayEp*w?J?+2OP{DWjRL&Vm5XjQ7_kTJ`pl%6W{B?(xTB
zmt~;t9R@NB&`gNTB=OlkSq%}3InmX-td$GBtC^F*xY*r<G^w&bZ6|`Dq8XA4C|_6z
zqbGiRpFe`gLeYVg2ghX|K35nz5-Rt^qsv~WxY3r6RQLqV)FsE50I<lG#c-!W7pi-8
zh!UE1v@l*Hpja#2d?KSrBGJ@`JY<MY2ixMrjt8Gy9y=U~vjk_)LAypa!ul~1AI=sV
zU&t~d6(`s|@%VKp=calu;_vq@oc*Tsyq_Kg@;yY10@>X9>A0M-L*f+y`-~tr@SIco
zwcwrol|~oWXGLQu@WX=tI16k|Y*n{a0=&b^N@p!Yt_tkdoO~x}gjJPyo~``aDjQGD
z=kPn1%a@zOoiv!P4WYH{X<0^m6%9&fpm$OOMg!QBL=bSzFyLcoBUo4lP=sMRkw`%o
z7CC|oB0-{9{?vE_<|yL`$(A=J3K#1d)t$&VDY_^lyq`*?gVTu-q)`V=B-%C_It5T<
z89oKF5gj4G*E{Bw+SWY~-Zh9UP(!&K)p~q=<Qxq05zpXkgM)rI*@$RvDOSGr6<amr
zX000OQ<AgSdC*wzxbWNS@SdcHd7YkYdr70e+`G{<F76%;6atVIB=z(mlt8-%${--U
zu8*KtXSuL<J6wej5FLW6kdKY3`{>Hp`eHUNsIb}SJ-HnRs7PuK$I~Y8TIvLkSR+T_
znO*Z8!QoR;xc%akREJ!JFO~}`k3vC0HSb#t`S`poZyfZXv@q_?sjEtoAtEA0OPRG^
zxr=C}-~|9Lk&yM;*d`PE;F*p^bT^pn**j*9jXPT%jz*NKide1m)M!$xjWc^Tx43e2
z7Dd#fX7Hdv0HLJWq-Bg`h1&T3OSj+7K0Z?IDh#ee06{>{V*$Dk9z5L!!`9Gb=vO`u
zN#tz}u8%^ymJn%K1WS85DruI(!KJ{!*$q;S^(84CEfQvUI5R{m6>h^!D8UBPB*<-Y
zh}IG+sUe1l10zs0+A>Lo8q0ziei4_!To5>i(3Y1+Fb+2wGm}Y~UI{}`9}_z6qqj!_
z$w*j)zOntkTo-=1v#0aMcF#V93`o&n;7H)46;<uXQAx3P??rnwuVP2_NFd2TnAvE7
z;<bWbBZxH_4l$a;suSy}#25yO#f6e2Kx(7FGmj>FWUr6yWH}N(2EQe9y>B@<516%A
z87w&YAt6?p@W?Sfg)<+0dV52RzBHHVJXp_pkQa@&u=MMO|Ev+{FQ2A|;vT^xxh(V&
zB_V!~j?bd-c`zBW25X00SC1wY2ZNmX2kuI>XH<s$#lf{<QpH6WIKT?>dxg?I!_`pF
zl?NGquL9CKI_ku)$LReY!YH%2csL~BPaVRt0xP@r9RhGZi;F$AIEl~J&sv?6O`}3;
znN6EIH5)G<J6n@ulAgAbO_N88y!3U$kg940a4rJo#Y_A@u=MK)K#xO_R3-2ut~dwl
zRx(Y~p}^Si6hO|1AY&RYGwe{w*^dJ(RO}I=T>HJ>s?G8Id8ZXCf~EAkX9Rdyfyi)z
zz@X;m&-LPK$fu?7SoLTQ+q^hS)0MWEme&tWxa^#C;=$hzB8n)|>~?51c8(`bd^?v(
zVNQJbi@>7eU}{i~h_3*>nMwQ$^a`w~G{_od7$qF>AB*T8%+7WW2NF^`5x}sajot)<
z>q0`wXT#!R_;V=LJDeN))Nv1y3Z<J`O0Wq{L6DH%RiXql*<q-Md^hTs(H+gT4S*Wm
zL4QZ&@-XkoEz9%V?(gaeWQnW_lz~AII=5sjY*&1{8{_G%o^hSY9>l(J&p6>V<EUmI
zC6T@UTHDD($yoUl6V>EaF^x34v&Vl~QS0X^deNbLsQB@dTJCE+2h|}dD$~0r=Xytc
zZ_h~_wB{>%rAka_zt`e`nXr+Ci344x4bYeAIJtOi#zN6f)r%S^wU#jBCw<a$`neP_
zi-6Ej;|v%k>E$h`-^;;HCl{K&^Ab!*Q#E2mi4-x!Jy?-YBv5G(c7)%~1p<XegM+D@
z4BmOfr>u3SLkv|;SkUy%+KR<Vj)sis!E>mTz%LsW4Ge637d0N+^D}SfjZUyRVZhs(
z4Z5CgGe%VRVW!Azp7q)`6>)kmZsqn}Go1m-avsYRujZtq?h*<qBx&b@1M`5)2D1ma
z`-&ZzoC%(zp|5z6_n~%eiM-L$WH!u0E>mOEyE@LA;ZimgWmyyPB6y!h2E0vV*QF`I
zlHoy3fPt)a#pwo(Bk6|1OJW2(XZQ}g@K?_w-$zGIn}P>0LUP<eDo?38_<JSsq5Fg0
zO2L2@&xUi5wek#2$BNeOS2UgcoI7KfZW@rOz2lHA2=yBm&=@K3>q}%sGek_)1d|mE
zezOwWe)H{p{XN$Y58xO!6I?Dco;XpRLva?O)|D!fHBOz{bje0%OdV!}hiTzn9P<&&
zP!&^E`77r>{#9ctTG*ebq%>9_l)ro5ZGM#3XgMJL>6yw9cK$nA;Mf*&G6@*SW?Apz
zWlhRBSDR>`L0s3=<Z0`Ax)|8rmySuNE2k!%XH7O$dsYgx*@tJUW18ZzS-R-diAqw#
zF_~g<Q<|EwH)Twv#lte2tBvz%;O2Ar4huh)1AkwqgqnVR9*WE)yNx#8{Rjv$5QDSx
z;2~|C27?-9+KrEcz54H;$YS<~zhmdDVRt>#pK|OT1IK10MkC0%+Axb1rY-zF3u54i
zu&D%wDuvM$lxgBdqLD}*7M(DW5ik#N`DdRe#LvsNY3qC4%yfC1J*m0tNU2g2P=J~t
z5S5R=<vXzP_+YWO^T}^RMIPny??LU~^sj#h<Lon$=j)F9*B%mHHv?dJIT&B^W&mB7
z7mS^9sph=)Cw~EyR4*KsXA64Iu#jY-aANJ52AspmAFZ(HAlQc(%7I2+qWx%t*M>n2
z_kl>)?R)5=*?YWTy9_qy*x1u*Cq-c?sYyz%&x-kU>XLfTiJdu}Bw~!$z?_<GZ7iD>
zO%&3mB3<fDRA@>xdmct=t>X!?;V}z24CK(-cxtb?BWFiNYm-jjPtD<@QJ>Jtufi7{
ztCOM`2t7RYK8*Bf56SwH3rr!4&8rVs?}$Ntk;N(xxC8ab3XwsxLBtpwW&6UJZ<+6$
zU8quoc9B>Rc!t5(`X7&gz#9@dK-=l0#>O!1uJj(KD8Dn2+C&*Bf>IH1FVV148I605
zo}8Q+X-^(@U5K__hkro;-8VD`0uplw4H^wKz4*NBJ8&-oY)t6aq>Hk_&o)P*5*AdR
z|EskgR*qS~3Hx*PUjG^Tx;AD5U5P=*pIeTJKFG&$Ep^WO`|mzKL4|bMLg+jAJ07OU
zB$7(d{FF)q)JYm!kT6%}Vct%#3+m!AZ`aQ!AQ%Ws3Oh#RAk;vQ#d>4CXAqlA7%xcB
zx#*E21_eZ}MIb`fr`KFcLC478m9RUx4xDZqQEHpvme$do`JRcs?mDqCfWR_ECj$r@
zIE!X*X0zJ$g9gk>ZVT7TH$EKC3KQxBxuD2kE2gm5V62iyYt)d^8*LmNxb}|~R~du1
zi<7*7p($W!NMZ%&z8utS0D$kSHQ<FO=#04`vzbW_A&b%kh&=?_#yB{l`;$V7>jThT
zZXTTlpgEO8vB5ls!fl$|3}On<cjyEP$Z~oN)Co%FUZWl$p4CTdTng}LkdV!XV=^3T
zpx~V3z+@qrIT&(bP(KG1le*|Jp8ZS}71vTz0}ZGSiB>Qc$Sa~)R?L-VJF%+pJDi$o
z+RE*6vdZraifE#SBq=%^(GELI6ysL>ec0sK$5s~Vq0;QqOviJhMLMsAcw`$gVIC?a
zY&QFz23_U@kmwhDi=!hLWX`{#-;4<d9pvxKofv5GeArpwkO(A{$*EG3w92&btaxvy
zKP}zIb91YalZ3ls`a1`MkhW^hgHQ^ELWkZwvrQ>7ymSWi)(wh+2oxirfHYu{b)A5&
z9d$j!pA*=}gD)il?!l#^oOTI>OK5Cuv^F~ME{oz0^CSEK&~!-p!j<a?^3_oU8V<lI
zprU(LWXmTG!#X`Edq)$d`|EKeIdbNJ#<V1KP~^%iT(I(NI1XWMRp=o|-!?-afWh4s
zdT?c&`gUD|kbqht9SRD|MVc-Iy@S?FvZGMDOOtKVfpO!|7j5eXL(rjadX-`1KD$Es
zT`(sE;-}A%v&*KBCxJP~LQ$tAP1Uh9V_OV7T4^Gv+2-*$Z)tn0IC&T@?WcZ4Jnp$W
z98HDb()*bLu|R0EG?&D+y`1Dejmdd@Om?jb!$S;OF+6*?7V@?bvqE8(vL_UTYDEFO
zQC`od9~j2Hr-Orl_BdzmFyJrh1aNlXHxgWT`Jo{^6tCtkg1@N&>(*`a=h4?6Er}B|
z8Oje?>&40&wa>aXae(|tJcX`7`*0&zJ(kW*(dLflF4UhxE%qHy<l%~?Oii;wElj7U
zOp+(){sGWn%ENu%BH$T-ejQ?xkGL5njy)ZW%^AiOuP+O^^OV=G95?fLD-t^RdDqyE
zHeW`hdSXXkk5;`A`2$|oBzaOEq41pv9k3rL4ewohTHJP>q_i(sIXW%Ns7@g`82~;?
z@-cDt^;tG_1N9$OAqR2fVZV<i{;rG|JN!6FXN0goc1ayD?XQT=MwNQO%xBi;xuqO2
zSH&Ztyy$J=V~1RBIVcd8fuUIB7|k-i%v$%?vE<4;(9byv4{Tz05Plxw1?*tZGX!Wz
zy0`lTjC@NUL!U6UsA46#4KPPdH{Vx8kfWHQO?MEG)@3gPoin{+Zgkw;7~_zpM)~al
z(3@Dtq<2G@H#849<J9FE#y4Y471Q4*2PtyTDF3Nc``=}iu*jT#_XQ}LWMFCCJytNZ
z+eXZAYj7xW*-fB!uVcPK>1o&5w7_~et-nEiV8Fa|8>OX9IF$}h6AmRbwO2{gx~ScG
z0-l|e@|-0~@|CNXXDV`a?%4_E{i2)peA6iYCvRUje6H?>uBF1b`5-m`wA)pc{ALEg
z-4BkjII<6XelivKy@R{D8DqpcG;@NcD5|=Iw!dI`6XORWl0#uSK;V&Jp&?|k6&t3I
zwNC5f`W+gMqI7TeoqI;`$Jp*2$F7`Sw97Wk<kNlQ?)kSBAw|@yEUF{C?oaM&2GJG1
zF-#n2vZEYu#OPRIp0m^<f3JomEJ{iAf%d~C1NW&}q7B~{+8=*GxJ{s{ASMX=8B+=S
z9!6zQz;t4_>HGcy=-UaP)s9N}Zp8z15iOhKCC+%wepfmsoUyU9N;4A3!j19Qqv${-
zJhYgPFLVxg=QbzSI3GuPh631lK`%bysVS`0@Rdg|-Bsc|zln&7GdEsQuj6*%z<m$W
zJ`bc9iD=8R=;vmmJ+>2=C@@nQnas@3^nayG?D&}z;4vHls}$cRO%)`hs*+8<AK(5J
z<2bASM3OvalRN9z&w89yCLl<9RP{h)MvWIb4W%Amk?;3+bNY1jqo1txJAL1N*WR$%
z#hQaIKB%rEkqwA2L&xp2*yVmdrc|7E-^|xC4Soy=>}AXOvLxeyreOPU5R*P*6l{$Z
zQh#)asA?KM&b{^Hxf$$obU39PTF<Fap`zSy#XAb~4j63z!i&QME=<Z#d+lRxVw4{?
zb%$+~A3HNJ&j>IP5nqlHI^EVT63bT=7fA&1&3*9`(cB*;(jXJ9VS`m0QaV4arKe7;
z1wfNH`HgC6DpgEl3`tBAFewMU`s3K@Atc<IAd*N<+a&4zkPbRe4C7f7ui%j<G=&l1
zkik+F5TQN*!y5KkEJPs*5+8SL$jii5^A5g^m-ap1#9!()5v=CsU)-qDXkcYPK);1C
zVQ1x`?N+Q*Q#F`RT||OR(f_ucIyy?ma(#%iz1R(!&8<`f`v(wppKm6R;SOF$nT@;g
zlM1Aj7+Juh=R<mT+lpA(o|Ng_-Q$fi6AI9U5#+&^l`=^vF`1DjWyVanwFO}lG=IoM
zS{NzSkE}h@+RDS~c4!zedA+`HrUV9$zwvx*{&%O~M-N@1lp;YMI)av(MyOBu%^%^e
z1`QxBB~294rB;e(8)>>$O4?<>Fx5~t=iB>!>zVXE1p1tM)b3HP=|HQqKGUhFPwAC#
z2IB(&3JD33I`c)Myd#`bsSY4aCCO;;1D@38p|l8(3E_YfiQ8cV6p$J_TSzn{DI=J+
zY)vB#D6W#M(9^B$a>cGV8_B55$yL5aD5+OgF;)pkRxprgIXXiJl}{6uaazMsM76iW
zh=I6>i0|T(*|HF_*Jg+o9jjFeDa+-h9BW5e%cjK#Cgj^~9gP`V6BGy$naf5q5X>fy
zHK|Klg@z0j2zZwXo%~~($BztzRWzZ*4HSsP#gP82nlzbAnS_;suU3s|6mTF<Ir{<m
zh+ivG!TSPdCdHw`1C^kOiPeYi@Ze1lju3i%oEK;KVtJ(g1dshs{f}w-_5;BK<0MH5
zi0DQ|9)d@i(81(NbR|8KIjGets<mP9-06sR<%?c_J|{HEBMHj;EGf~YpVcD5K{SUT
z<Zy#%R3JoHLNE`thJ-d|wfC_?c;(b1=*}ugA|uBu97}{mL{DfesUY<{e($O9XR2#k
z!zugLwk#0O5RwRy2xnkAUQs|7F%c9)91o6!IODgC4*|)%^OIE9OvZzbH<=g&2Ao6k
zw5nQhqdncuFf>`#OJSxJkun_+_%$^w)S`I!y{~_(bGlw(=<(`Rq3tm2Aqez&nA5?>
zf)q$;<q(lbbc`k<mWRpLfc8jiDQU_x)nwG-$YgRO2WfiKmh(8(wV;KGYqT}zZk;=U
z@QMZnAjHB71ThR|F*pVoJhiFNU_BUTT1ukHTN?(#RYI`ggU4TNoUBPy%Q-mdiKLrK
zhB!p1N#CK<%13L?6PF7i1`ffPC$9|Y-RaS|B6@gYcv7hcjF*NOE6>=dY1C6H8#{4Q
zw9!p8r>jVCf?M{u69-VJU?hY+6YzY5d{utp#=!}xwxw<-1hb<VGT#hz+gi%`m`pBK
zNoA3;%ZfBemj)^LWzbCkQE6;7>cd5;rj=O6Dw$U^Ba;zQ8C6YSX{Fra?b=#h1hgnI
zj9{3A_IWtVj2kRa3W|~oRFOtK$YqhzxL00b_S%eW(9$sUVQOz>nt(hhO3F#a3+Kh5
z=pdUT2!yJL&Zwx_r(sN7_pLwY^<k}Qv~>_ZNlH??e~$nUG4dC!(8bsFsrn|pTMti#
z!l%X3`&!poBuBhRT}B}GT059f7&p4;m*Ijqw`rvb`oOh>JvjkKPxLx!4n6Qd0PK*%
zZo6C)4UK^^u^a|E6Jx?5{rW#BXtFB|$C$4U$Niz`#A1p0yzB1$Z^FQNC++b+o8Eeg
ziBZlXpQaRuoPqf!Mu(o02c3Xiq`>W6X>dDo!D^($3O9(mvDXTPN`*&`Qv;JHUZF!y
z+h?xMTi?n<k>RLkx^bmLVTK}R8*G4Z-fF0??*DC0QY{gMh*aW<VY`m_NN5iZ>#{`r
zh`M3hh8c^&l?CfDk$}+6G@xi3XdxOoHc?hkpak6<)2ZSar)X)kQj*IdWWK}Dpc86V
zINU=aZS9!QM5sWj8<1(Fu?$)U7{R1;Llic+-WeiB^4iR#ClZX)&S0Xb5}ARDXo*F^
zX&+ILCzDHgeX9sC4G&+{mT42X2$oM4Z6g^&X*QD@a$y>sHQKLGk_r%VXgE_wvp0qp
zR+N&#psooF(5)F5%-jrPsi8s{4`tY#DOD9tH<e|?UYoj~)sBYlj+*J?L(pe9ViAHE
zjF(9gJBD{yRNHAF+1SKH#KcLhRX`_dq0l>%maPupig`NH76k?BNoGe)G~tbn+aZ$g
zF)jAUJxnUgC8x7hRLE~ZLm0(;muc?PI7tTmcnpsQR{K>VDk<fnnK+jzxnjl}B9BYw
ztV%Z(j2AiV1~nxPmP`Z?v7iiLg4;Dzk$I?Rgf<q1qU%QOnPIzR)ZQOX(mtINfl|8r
zqA5r0bJ1y%mR!s0Dp8`T23eqL2cvSVX#_1PL^hC*T7d~39dG^Ig)Ax#3<Ow%z7i=a
z^kw8~&@{`15VA~{mJl6(VKC5Y2!cq#`9Akv(hAu77iHz`#TNr1q_$;Z`d<5a_<slS
zejmG^;=BI!?{}P3e4BrUrb=MWqdTu3wN+Y;YBk6dH$>m}<z(}LVWbuJ{!peaq5y>u
zkzkKxS2vgU_4#xw;kd$>rD=V5tTb@U&q0<@(eCH_laIIE?d~c&;db<QC)5+%HTaOm
z({Dbv?wa9`&#&_KEd{icKWI_V#Rs%}rV>HVkcxedyheE?Fz??vr}{FH<&)pLeGW(0
z9$D1lK|%~TiV`@8_4(i}-#L~O<DGs7(2sA-3O~4iD3Q&!cfHV+aE^(B*yG&h@%E=T
zHs#Cbr$N3czeZuy2Hc(~Q-VM)mZUeqIKWgQR^UHh=K>1z9;i6%GxVlKW4CX2_UOMZ
zFv9QFOE=l5V?K!>|4*LZU#YyGUJ3X3vbD&1{KyMTnM!307}{)e`Hjc?Uyv^V*|5i?
z@uT)mJOm9fr1bO!4DGl|84g(4+u#tTuVjcCK+DXRpMJ>GhBolf&%ibkPd6BQ{uT1F
zi#`z%`mcBG@Si#QVH`Rmr!U{a0z1x?36@4iIXrBIg7hh>jplg`$!U6ybrC~Q$Bq5O
zqv+c$7RWs)gSKI4%KA0T;?8{Qw_i))zV97EY|A6=nX4f1bk4}?(e+QIVGptDEV^{z
zsBsWL#>kH*K))=;D2O9eE3GwJ0O1~QCxNi&Nj?@_2e|Z~GO>t^`FVLQLrv6SNo<IW
z;EO#Zl{jgzX*H$}YRq8GwcDpJU`2r^y3#>Su#cuYc#Ate=_L&ZuDQTq<ay**ZID$|
zSaALPn>1%+Y#3fBlzvN;t~L@(z;VFL$~-EhkLKkQV`1`N6I_?(do$emSJK5EUQHJ&
z-ksg~Phb-Gx<+R^bY#JzY1LGsxb4S=6qwjj)BGYrjll?O<+tq;rh*1FaA`e|>IpsX
zoIy{>f=viWv{0!`h)RAaTp0<NNir}*(g~7E5=$wdO)rLp$%u-J_F!aFRAU%L5<o-{
zN)r?yLaYG<u#k)pL$Sq8=|KXNQ-FjBv_TAp5Mn|llDQT@IUr<VI2OWm7J?9<TMS5+
z0#Rb2(Ww_klr&4284yGjVp%ORP{kw+I1VX7WRt3_10aZ0(L*4?5g`P`EW*T~5d;z}
zkc>=7P{a@uFhrD0Lo&?5!2%H!z!HqY5kw6$BuPLKBuf+#1W7R@MI<poP?W5Y#8DC~
zNi{?TB1;q$0}?Dn4HQs}IlR?trvj?v1#FmpU=6{DaWpFoQ%wX(6-y9OQV~G`O9cTa
zQqoWqQc*=LLsb$iQMFXWprJ#$cd*U+9A88OXHL}aTC<(NS`vq$2lgZTHNVGa`2N4}
zs3k-D=>ET*{%@T0b>^5R<NUK$p>K1G`2Tze{_fuW-_FHf^U2sVGYHsn7^Gq~0J=^T
z(1cizW0-~~yyoQ7h%utsWHo6pm1znC#My*XZ&@hiAq_5oT{jI7(d@gdnSn9G%WklR
zhJ0$Y+ik5QR@}uh8qQE@iN7|usw2WkSs}cT)-vwVMw{&bQTP7C!O6z;le`r6gH0Y8
z40<7Q(3?gV5N7g}O~M-Gf*(XHpn=>C)rxQy&X`0S9<%72ttJc|gY%E$9g5Ic4W;>*
zqir%fdcolP^s;akF|o1r0kdcF8sUP7ib28`LTt{91HjX3NcrBQ#+Qzx(AgotL1xSp
z6l0$K;F=^f2UqSeGWcqfFxWk0`GOmmR`7p-;3=%&<sth1x-!wjJ+tXwYcxN%>j>cE
z`5@(D)EQ^XoA>Y1UQC}&fd|Y;;M0*rr}F_kiBMUypO7r$WiA6fodVl2ud{!9Fu3d?
zLdsr-|4*OTZh@o6<=Ao%<7OOupV{@pXZSv^bnDa2V~<P7KY2&387$gMyF~g}_20ZI
z;3mRi+~7%QVl;ee1cn`sek$ZRyf1iF1e9!l8Yol{CRP?Ss#RKxoSm(k0=lgw<J^|A
zXwNnp9)<|H^McBr-zqHnU?GP9(E+F@*>F%&v(Vr<?Ly>jp6x;}jl||-DXe{cqWu0t
zuiQPszv!Rubrhs3==CY;x2G&7IYG=4rW2T!Emt+tAdG3$gCD>iNx+H_N60_h@{Pf`
z4qfXSXFtTNR*UCEW{17}a>k4%)v&v+GdP6+fP@xA!wH3NmPyN4aL2SMff7L*w+YLL
zWZ+WUL@-T|2@+w8AY{RlIQ-RPvFiaa1Vlv(Z)I=n9b8C>Vb$|Xgd`QA4QCr`g~_Hf
zQKBguL^+okt+1g~lu#T8R*p_HhTB6(oEQfKlG|omgf$6>2GOJpgAW-kV?@JoSXNdn
zWs@~#bUZn|Qt)z~QuL0XfuIVyAdNPbme63X2KNV{MQd&FY2Nl#R?}}H93<o=gN8|j
zk+c%DhS1oJLAPaAVk7y|O0+nsb2%uUMg_isLu$=f*;K?)tV0TyQH&Our(UaV_7nZ_
zxHt7D#PU*`k`W=S53Sg%yyFil9u6H#p&&?|hMgQEt;7u-x8@Pu(;+o)VA}E%s8HFC
zvutE`ne{_Ln~stMYKTb}YH^N&uB$OHa2&b>g#g8A$cw_GMHAE(<BBa0Lj;5lEgSbF
ziSDD-WxsZ$)8jk$X$X`fz66iK5ADlxNvfVHdOJgvD?bL2PTcm*C#KtW!Ch*cjPxhh
zrh6Y)!tcH<3zW=nsw(0F&FqkofYSI~+1{wnrXfs1ie)<f4mZ}Zjx)Qz)r?KHF>h6T
zn88&3oc1iQ>93R>E_WQ!2a%rU?1c@&+nH`4Q{UW4x{l8dSq>kFRbHC$n(cb6dSer9
zj9tm6CKL?do!ORjmKEIz!)=ZV7l;<m1RBd8O|)?RW0Fb*kwzPB_EUg`3J6TmA$P&S
zMaghGH1harIDxtZ^l+n6x7oc^nqhnkAwfau2k>CQblkxL(>^m(*mr=tnJC(Y6A-+>
z6H!JnaTHqb<2R2-06>|5k~A{aT|;Po83y@<jI`~Ol*%+gWW+R}EQSnbpqF^PyKQ>D
zquO}(4qDG&$E=OI_U~9OUC<CTQ64zNTD+0tP*Y>3D6W6Yq1TDaZJ4k{6T~Esn2^ub
zfou49jsd>Bz8?w?XV-g|F`K5!W*yUp*x$2)Z|m0uhp@%-IpjJZ$?iY3R2v6A^ZNgr
z^;y6#pqLo-KUEeClF1lwbY!!)Z63bbup*#52RLa?t(QKyLR%j%H9mjV6*(e=VyHnS
zHSjwf{SWVpK298SEASaQfcE4VrfVl)(ZEq-<b_@SsSV}Sn;K&V(`4x5-vBCGKE#j6
zll6TOh2$e1NDUpkMBK!#tc+?3Y;`;)nl}KF${PR0NhkaRu}i7Y02c(uS>QAYr7eB9
z3N#&?v<Udr@gSJ*Ck-tkG{6tn>^2{QM|=+IIqL7;agntu51`@tYcpNb1}1_AtG8b(
z0rgHC!i?bz$P;1|NeD>vidEFqdA9id8aPqNz<SnEb5n(M5qtYa?dH5qatwWhG3hb4
z4FMUdZ$kz7(2%fxQ6knnd@@!DaFZY%O>r(r9QLa8_}|r>c_S)>!!1pi)I3WxIK)gN
z2Q*D4pp0Nh#3|5e;_SWH@L)>`h&SaX)j5z(5EnGwMIDaz%kgNf_<nFy4~`wRSE`;)
zPCU0T!I9I*Rub9_?~@54kfIXgW@k?Ven;>^bizNXmXk`5iy~D3(O==(bhM}N;BVhQ
z<OwxpmaNuxGl<w@dsFcNrU-%f_MzMCMIHZlh(z1EDgl8)nf+%*WzP?Dl@RGLVnvP-
z>!;rrM_-rt#8HgPLZu9dNL*nN4Y8?=STKOhgw3wN8ULT+4*z>R;QEpnD42ro8=Ia>
zHZCG!j#|DS3I3MM%!cidD7XA~6MxHd)Z`lEfD#f;6C_VJS0Ae4*R#iThw0?+LGMWL
z^>EDP9UW@Yy=e`h{qJa<q8c5YeVmAOu>(|8COB19RaIB(%*+pW@c01|=iF-Y?4%Iv
zknEBwL;HI;^d1RPH%A2d5kFb0TyW|A&?rNnV}JdB)zS$iH3lV8hm*gEPS&0VW~Kvg
zguh*%b9(I-*v%XL$S6^Vy`jbsOi=6bSTr$xM$;`u5Zxf#7j8r5!|8}(D!8r)#36x=
zD6AvycWl&ud~w&e4$GA7V9o2e>OfYJ@>!-}*3t9+jl6XL`a)cSzc=mtI5YEX2QF@(
zhq9zwUw!_szL)QJUYA&*YftZG*>?&3NI<K7o|A_?W3cn@hrXSs`QL52H66K7&LX1_
z!?hNU3w>+CgPi9|p~pP>=?X8?`Ecn;>_Q*c$7{fH<6CRycrHfUBa=d8TC7;Gxq9<e
z_*HGXe<!?(H)#QYOpuslAYqFzfKi19Ot!6kzsvc%?mmB`|G)J2YdP^rMx;&frXZ-j
zjAF4Dj<d)jipTK92%>bTSEES~JVE_r8s7eQw(_a3+vo6{8=^4tClfv3{pdM5q2z~L
zCPb8wIwqaWFv$*s*Rcx(#~<0@R=1Y_<+sDpD|b9cQwvGtP55w7D^_8cWQJzKy1=2%
z-@cE&$CqWA{k~r>AGY<gYSrsGPkrMwCX_}v%1gi?nh7I_C<z^Ed5j?#OjssGrKF`Y
z)vLp&+d~QIz27=0!Eg$aDr=iFFthoIeyU&kaiH_Sqvp*C*nO75jPgwh#|i3-kZHKx
zDEbJfY4iKDFA~1JZXGzN8#^01lx<AYllI{e!rykT50<Wv>)&mijG3RXa%>PXNo_fY
z2D&xiEx>RMA0#9#t}`Fk`giZHaj&|nf1%N;{V~1L46oQc!Gm%gsAxu{%~Lvr<Tj`n
z^w`gDY7Jap8p^r7dSMW6^-?}dBFzGp<6iu*ucucbT{YjcTU0UWn<iYF4-ln%Ij7Nr
zx|ZJ%h`!II;pP54<XySk9VWaOTJQQ?c@UrGS;N&sLFTabVm2KUo3;uBoHcz>vuBsq
zZpVe+Lp}~KvLCmbUxU^6aGi~)zJnqA6e{H0G_|_=`LAWbT5H^O>Y@tL&W!KHk;Dw0
z1Zmu_f(VyZYD`Vi?%C*26b~hX*i?(IoLU+;J{K`7xtxkI!bteumIp*j_`ZS%`k${Z
z^-R&?lY656ty}wBJM?RH^n-s)D<15odeQG!>Gw$NIWUzF_BE?t+C!4vZL#tav`Rtm
zcQd*9{W#M<Yg+`f{Kzl5d}4eGU+Zf?aMCgQwDMrXfdmN-+HUQNR5>>IF>REwSLWi$
zKYTPW&Fj0*ck%HZ1%bu-&3bxMUjd$>p(c9UyD-<x^)<Hp9i>}+0xs8zh+>j43^yMf
zzA?FhG6uyaM{2fv@bcO0vA4t9)!|_Ao-7BYlowdQS%eL}jvnRexm#TZ9)4|_l`pR!
zTqeH#7Qw-Xch}XpdiOZG-QD9`FXP8b^w@qH8r8d<d;Y%8uPqzLP>MqcW<p_*rS#S#
z<NUgB^uJd6{C}zUm5|0iJ~fg(^vcORfVJaVw3jh(<E@XIyRM`Za91hY)nVCkJDrtk
zE!B+IWu_zL(Y~CTIj?WMTS!5jeJ=K`D~RLQMkT@!poCLDTgsIL+=!~>yzg4bez{Qg
z%~Ppgfz&7|)+{0*Eh;wG`Jb!Lju)4u=6cb?Nh=y93S=1);6OE$w%AF2{l(mlEE|}V
z?IK*4E-Aac^x?^l1}5AzzW^v4KUd2=*2xthMNzM7Q*;nJZ2`#09z21iHwLJq=l0t6
z=XmNHn0a^2hSO}4Vp)>NL;-@M=Xk-Sy==9ivH`~c+~H~Gu-k4?Y$>mfuJ~8`*(qMz
zWH<7hWnVsH<<Id(D=da~vG}slu4F4_pM$&>po|W!3*+Av*~|q@0k$+C;-*-F_D}my
zlN^n+G-gbemL@+7PfjS?*KO9uSkBs`>o}_KyF5DOVEC4VHX*W34l~8Y#O1>D)!r-^
zkRAQ{L#-nvLyW}95hzdcj8ZKqLEL<XZhyR(w$Mv3{8thHveuIuhG#H=4Ga`xhXhJc
z#h2pXx5(K6++yfP!Zzgt5fC#pBa_lmn6oe-DGnz%opH8;wIPtcU1GGTa5jv>R?<dH
zU4lVh+<bEK0=mZ@IiWWYi4s3vK!==DVWB52zy!i7tK27tfkz*>ME?LcK*+x#L-?on
zs{X(42*h1h6g7W>CluT*ru&xbiaF*eXbTAAtWcr-#^5AqlK_%HELG8@K_`-|9l??T
zNu1Guq3|K<OP|VkC(&VQ0r!7G77G)YVilMM5R@cP5fw9-V$38;kWmr_5;#MI851d0
zl(d5pOa3|=8kQ~!s6(t|#RbVxO$4SxKm{l^ir4m*vVmv!LXiw)f_Qm4dIP=7U_-|f
z^Zjh#!y-tcl}RedSS(m?;T0Vy>0lxRO}O9^%BeIlq!o%)3XD*&Tw%h83SqF|*qC_X
zGb~`3mOzP!X)wbE0wjvSAhbXbpjoZvqm+Mf&VAv3!m0q*7Bxdjk}jarazF5Sy3w)W
z9WPM69dI5#y<_Z5$ufC($}>Ey?ba?!h4wJ7_`P3RLiGBu%Q+y!X{1_$=+JFiBqJEc
zQVIqWl|e}mDT0Rzy(pnbiU`uUK*Iq8Bru^Qa-k@sq=u4U2&6D5HLLyIbRhxV3y8Th
ze9;WerS53QwdfKQm%i*wDiFm?NUl*eiqtp%!e9^yrA8<SnJ#LuJej^ZxNZJue$&7y
zT@p!Jhf1T^eINE9HZ?Ip0!0*%dBc8y$P?8@5*Qc~7vmJ4Pv3>T05AR9zFzr1hube>
z@%wT^<smoRr}eraBam{J_lSD^)xUR*f5YDw6@~L3si3b}_y#vC*%)Vi1d0MiF(Mzi
zQ(0gT9Ce5ZoU*uWPw#2{xP`8Afc~D5PN7Z>doprEL;#_HUw8{JL<Z>}@k`zHxIli%
zb}JA@eV>9?wy4&(rR!ntNWVdI0(^OG^28Nw#AP7K+0$Z$HAMoYslr60R^E}ZV8bWn
z_PPO~=zE<<d{B`k6fIFj3_(RT5K~1JO2t%gr(!SP;(Vaa{1oyAfk;uPG7Ug2l#&!E
zBA5kx)HX6Mx41s5;^(W6U!k`T4<%!Nclvqn$%W2IEOD)955dNJ+>auA7;_pv!DP(=
z#VG=Q`v>KkVy69DveL@qf-$stD})yqt!dS+*dh`pFOYud!VCngH!m0BUxIlkLyjFA
zoed)kbMl|ChgRnzqt)0$lP=va;b2waE5`dX(v}Pc|JB0n-Ojgf{yP=*lWUnUTGkXu
zNMsk8GD6T)VVGta)$wH{@;LYZgn^o`PQ6@9h{pIoL8*zU=W%mgsZ$wcY&)bDB3xr>
zp3RK=NUD~&qUOuofmaKRTS2kSW9P4cH3}Cv;4&#9$cg?Mj$F4zG-$T@&oGfd%mA=?
zHjWE;<Q}SR7w-pjNT3-5bH}*yf+b-W%Q1jKJyX{>pj<B%Edxjg3>C#0e+eR2oU#DX
z&0Ie`U~}ideCUjx&SUIkyg_hrX8I^Z4BS5+hI-e*n^?-GUE4$qm<*}N1x<i<Pfm-K
zbEwVlA3VFK)!w%E9SnZj!Y?d<$5#y+DVI;Ov2+TQ#7{6BR&JO=UoeQ*@swOORxxz&
z{XTxYb3>=8^btOCNHjtaVba&A-UB^!gqER=rUE@RxHxZS)?14l95I!cWSOR@d9^Je
z20aLKbEw!Iv&GN9@g9Ag>TpHz0TbhvBp|qn5a53Awy&;Qvk{3S_|@>=4tJ-fe%uP9
z>vBLTP+tQaMusLT>FndAp{HNZK#K@H#<cuGD*&`|Kwrd<a`O?N#shFfW=s4WR^hLY
zAsC57iRKk(1d8L53St2{1V}2uHODz-%Wn&_)!?d85M>U%_*i7D1&Vt<zAU*8E~z<z
zaFj-76F3ob(gg)jrsN0~_zajh*;$0On^dslQ^dWOnbNN*jZg9u+%q6y2&Bn04whLC
zTiqGH2h@`=nV6xqj_t<d!Q+=)=jUaYb_6}TdTZPlv=#v)u3hMN`t$KhN+eU3LxCGr
zG<v9Cj{dgCgo=_O0EEc>xG!AVrvgYck%1Qj8T@!_L<lBa^=|W1h(b41b{>$RJ>SZo
zyIv%PASKqfIDCEl#*7&XOnUL#_R+U0G+`|3<}i2YgT45gNp0jLzH<P;1~igQ(m=OM
z!QTo|3@`8*BqLCFVB5Rgyt+O+Hfhd;2SWoPya02Mm%)-;NL#6dU7??6o;7l&Y}+}r
zMsVx}ZvKl66fkNPIV+nJ1PZ`0eIyF*Lj>@kw;euL<`I|~Pkw~->mD_t*v9OD)86N@
z24p*<;cn(FI=j}!jZAl1+u5@qkzyUWCvAYPnxrWR?GQZN;iJkBVWjQAnAb}~AVlO#
zb3Lsjk<;~5pC$<3Ym|u77nQV?HWzSqxeMXxvqqHUSlko?Oyt63u89^zl8Y0NHmz%#
zCdS+mCr0W5*p58UCGW`OsseyW_4cXsp329<nUdi;4S4|h2^55jqDAhne*ah1?tA`m
zLwsHE{^9z|CGeuewW(Tv?kTHM##()9t%6b{L=r(HM7V**(G1esN7cYHAa7`fV%j%}
zV-4(3yA7?FElB<eI3f8yfPMu0-%rMThn=dkG9w86JwOhhqwV#+6U$#_|E$m<@+ZwL
zL<EeR(6W%S9*kDJBh(?KBS?Vom~K&R+558-_{2RWs9t2-Z+2OClQAo0qJm=cboAdX
zGmVZwcw4fx6bjqCXPdiw^N;~O?=jAEkOggg>$9hd^&?LX%(GaF5R>Y{O{Ljk0EvTN
z72IDbzFDdsFmie#r<?^L{kU@W?C$zUwY|-2s~(fDdsfw%C)eM#BzB+a#kEwsweReH
zEeEdRgb4XdOl*b^vL>~nRF+7LI5d_NLRvw7y!lUg-<x!Bs(k8d0p{7n_l?frmLdrS
z;tL5cL06=ZA`&i01jAO^oTX(Xgzf3}Pr=iXox-8=^?O=Fq%;LTx)5;^LW+u%Mfs9r
zA6TOfr&kxb=<u258H$_TzUO;;A0%OhUrgIO*dnv#OL~dfa`z4x>*R+fSTF0k=TyfJ
zPq8xerKTTc(Hi1M$p=w3c;xV?blM6CI`Uje2BCx#jFLjD!BAByfV%!#DNUO$tb41Q
zTP?y19ra~vldWb<)rbKF{@TC|Q6<ie#uL+^Q{<A(%ScLa1F%G3{#<wDIQZw2vHL9=
z7HdWC6=TRo35}QN(tKol8l%My9>0y+@R)pgyn7bkhN$RmsD%*1*v)rvP$-?v&%;E&
zaOG*l$g;~8Wr`RCR}vp><uaGc(v;i|<Zcl<mGr?wwfQZtaM!#kzClX~!{0?sAbr;6
zM-fS@gP~6maAED89^d7+Rt>En(J;cVaECWG)O9y_<gv$^6);S~kVN7cD=Y_`0OTd`
zY8WKth(S$z2Ff@D;RfGZa30KhXm|mpn*pD@(^RL1*41`WP0k`6v2Y;4ysYxCo=)RA
z%#xKzG7b_>h{TSY+$kkg4rUTZO=xdUBs*G8<+txPXdvHaWHRX5@b_gmvi8&S%_Tb>
zJMrUmBA;duxRWr=w6eOy2_S;>f<$xgL5I2|w2Xc%aWi}-5FZZojG!$M&%woqY)FK*
z45{khwovaoV-ivd`2^5dVXQgMbDO>-WD?4KefKZY@9W*ZHLDT;z?cbOa>QY9K(Nfm
zF~>6;%K`y1BNYiysFMrqn+Tx^`k$wk)0oG=9J3Y$Y~_+LR;RT`rqg7nhPnRgwt6w7
zv|xDghl+8-Fxx_1oIczcDCzd{d$3mkJx#E{2;AFnEPLJDwmfqjdp5S>oPpa<F0RLV
zftMq1vK`ATE8ht0x-q|jm0Lig;kGosP$Ig(-3M0Jzdr|ct4w#Zss+kaEqf=cfV>c0
zeMxFx2+AC8S(f-dlsoowi5%qOMO-S-GUa;NucxzeOB2ph5*Q27rwJ6JYI!Y05ZH1O
z%>NnXo*^QZFKg;VBvZyD81xVc5DT)61G(yiZJe4MKrW4HknfP3ETS0A)3QPCfgwT%
zAi*bcFNKayE)BiJgl4bVDT~>x78_oLAtP^%20eg#AXwN&j-ua(4(9_Ll=t;I>7+=@
zT!521Yhs!hPdodoLQ4h$_zFZ6#Nh)bx{zSyuN|B^Zq=`82Zj>Gu5=_WVR<l-pjxm~
zbDZ!MM8K92mxSj_;N=nxE1s{GS~tuP^>ptRBEI2720G8qpwG9)+wVTiav}JGUlzVh
zJYP?RJg^Sr3W-n(o)9Qg#s#UlO1RXuk{M(S0Yt&_{y(GnzUSt?f0R=n4-RR%y*)>K
z_$^tV%5W@<10=#!;SxiTdw^N3q!mq@v~3sXL0A>>BN-?qbg*^w9mh?ZGz5t10Y*pm
zq>;a_P_sHo4(jFEq9juiIw0nj0UJmTu8{R0A@vQ=1FV22xj&jemPlLUp(FyY0SIdT
z5{A(r)B}i=i3ucMGfV}2h&OO`=&r|Ps$nunn~mtO0zP+k;}PD>$%bJ90wD@{%-e2A
zNbJwBs<zdQ8aJkyyUw~17mPuFxJPn0w~g&?|8<DW6TaAyIIf_tau0S5RTZFkki#O#
zkrj-vC>0SQkXp(F>ha0);<?wqYCbKkcdEj@o2Jg}9Q?VeVySGrfsz&1dp@5f>qC&p
zVc3N~xPT1(`IGzz7m^ZfI(2A9acJj(FDN&9AR<UH^l`@i*X3S+A5jEH3i`Ob=1W-y
zQ^(=JbZ4!a4@622-XJP9>F2Z;m<DEPH!Rs>JKK2M;CtDf)yK<^UzaCIu8n^VsO*2B
z&o#FFj|}`$?{so{ymWl_cUMSU1IK4`H><9}*2rc_8?@bZ2(M}sZe#Mn7XB+S%uGfX
zuRstmnU8nF!=jD|Icac8kYL)T1KaGeRh6q&Hu&A=$uCqLJU1YyATFMTs~r4==xjXR
zrEcKNge-_iOnM9G(sepju~T;bzUjHiOvK;N0C7-Sx%+VL{X|Jq#>hu-knrmJcPsO+
zZwtD)t6!odZP0wU9{2|^!Mx|ajjL2`Lao5#a=%3bXcPPH*(-H@B%c1)#OSS-g+a2%
z0Tv`$LL%q*cIL}_ZnXRuDc*}umrplhuG<05PMYnU74&3}FCVPp>M$E><k~s!VcmjV
zR_}J-wd0dzBkf@z{1{uOQv&BqoS8Y!2MjPsXX-!S&^w|+nj!=X-}XNC&A@$n(@?s`
zE!#Tu$5HH=_WJQ}(b4UGPlhtB(-awJH>mi3N9_&q);qIx6mU{10kqqs#ebex)i&k)
zG;;r6?&q}F$)KOvMjwR^h9<J`zmNCy+KhH1Zi-YaT)bx~PwemPwwO*CRVuh_YtOel
zrAL75k~ya;lCYBr87P=yRKY~RP=L~aphgTL<Bt4Y_xeU-T+ih6SWO-=9nT!-X}6)E
zXGlS%?YKD1&!0-h^fi_xBt&YAP-+h_fPRLwRAWf#W~5ai1Iz*OxN6GLVdaXqKG!4h
zNH<qEn9g%E!S@dq7s9HERme#`kv`+l=6wl7qN$>v7kAs%m;>Smop{BOd=vGLc+8xD
zdO86<L^Yn_c5<HaIGeg(z<vBjCubJ4W=htZ3l7EQL8ZYDn_Dz80iu)~cD7dJaIjEh
zlH@cfLBcv!c4++N6sjtsoW(<lsL2g;O*lOE8fACWzrQm*k}Iw1V3_IR85KFn)v1Jx
zbLzPqiNY#%jPLoL({kA)(QS_WPPwf`M{633N~)gn=r?Y*q_Rluw%aW!B-0oeDaso{
ziJ^4uC_Fh1`G2iF_10}orht)v%_Yey#Y8v<z^ku7{t^Q(lN^X3|1{z;TP{$^D=44n
z*d`QelNKL{KTe$r9_)dTsn!whN<8h!1QcT_WKPjXF*F=tro|nZA}{TZ-17I};rZ)s
zH;m#vJ)X@!PdY^Oxaeigv$1LxYzPE70uurx4lcjy?U#ETidBd@gbx08@sPPic|n#Z
zbiN2{h66D%@R<U<Hb1NpunwI3a4CD~igz~s@0k)+33rosZnCAem;xtfJ4u~eJrY0?
z7z0d8ZHh=*?3@8t?HUb6u%}&!P##z!zcFwrNrOV+M#Xdk+7kfh11paxL3>`V1Q#LZ
zoPbz>vJ6I(&>qj(&ou$Mdho{*u34iJiC{5QoU4MRQ%(#Ttu=_Hk;|MzK>p0~1-t}y
zh!xf6Wg?ddup=I-Bx_k^eCPMSfYLh_jNf+BtT4M)ji{TVXP*<^!%|F$LuiTLfIADc
z@NsGYj~q53vz3Dg#j6tLWtprsE^b|#vC1&IGD1vDoW>q+_Nh6}G7i`n#2k%OAiZZf
z83`iM(tnUz(m;L43TTO6dS(iM>UxDb$T<Let_pOwG}$A(uK4zNJk5(+R#b-jY~$wk
z<szik{Gthc#P<b6n}@LfJdr?%BBTr#(4ZsQf<iKq_eiJT6zqM_zNrF)fq}^hA#y>+
zA_Ewhr3yir8Yl`13ZW8ZA`&8GLS&+V7ex~;#U48Vs#$YDik|%l;2wfxfjb0;?MZ|q
z<BWy@+ruS^9qRl((jP%mluKkEXL-sTf`LM%MTJa<MEfk3$q~hpGRQslF=Te2-8^Q8
z)Hzuoqzf@u->_`JZd#1GK#1U(Dp2?$p~RvX$$C6nr`kMU;`mj56Z!&*C4j0Zl<sgG
zs)<|E<sRkb@B`oullo#g*F=S}RUw+u?XhY1lBVRq&^y1cl~;`WBJ?e|R1RmR0CO*z
z5Fjehs01@YG(-R_O2RZMloKH%FtJp@G@?MnMk*u%J(Mc+h%W>aB=RQcr=3Ou3>49k
zXrSnf{i$wv{Ufyb#=*{y!Q%Qo)`;BsRy<NHNf}d_Px1-~WIYGG@L~d*6zEIm5=D|B
z>+BQmQ5nNvBSk2>0qA)N0cbAlAgTy4Axj)WgOPoc)%L!p7R5r5qEfMV1Nl&ByahS(
z!9fkw^hqFONtzaU+Jzl<PTlS*DuU4x(7|$vWU(i)BAO}Xx$6V-q>w<#1XWNJ6BI~U
zQu!wzfQ3mrChRA+L&j>0Nlb15x`Cxo3R_QGKo=BRu(qTnpsNa-42GgMOBhqu)Ens}
zY@-Z64Aoh-kumOWY$smpo4ZE#Orzc0AZ`Q3z^G8tsYsj$JRYGWM0w_KsoRu5gj^w)
zfRygV?F^=k0<|<_B_f-MK#REYHKGPlVz{jslaEGb-tb6<DFvz!vH+31lnS)sb4vnp
zeNpNw?+YOxfh$84kyR2j!x0#o_a+&QFs+s;sU{#ck*LwFi=xD}vr}a@VojPVt7v0N
zlv0P~%zuDkH+-?dW`zH7Qai|gV3WW!<e%3fXI`7`;{AVj`#>Ox5n>QRhe8GG6nx(X
z)6MSpmJgm&l)%a&V+oN%%M=vQG~tUOlacz5-Q@cSpR8FxhAtrfLBJxAXL6~_So9?~
z7~TE83e-D2Qtn%#Yj!*E_IS-x$7jN~Ca{zreUE+WpN2Gh&2ussZC@A>q=iHbm|%IJ
zgTj2>TZPnL+YuKSppHUBA0oi~^nmPsj(9eaKF%lPl=5K1^ZsAx{d&}VD2A0%B8(sr
ziV8(tN8u1+M}L>E#H+}XBw=BO0wzd|BnVC%YiIzb2~Gjxbm6<U23x;vDqsBoq*EiQ
zB>bf81O1ugk=UPykGsfZr?sTr`0^~ExGD-B@3-yU0QZ=S)`<j4k3dhK__~Bd?v(<N
z6r?@r#DYX`4tPo_5i$fn>)ZR3eY;N#Lj_Bmw)=c&1L=Yhn{!$pUmjq`(a9eoj+xsh
zZ@Z_}+eWgeil&#mOb2upfodS0;QHbza8vT0W)v$33?K$ghM!Xx*srj33L0R57Xatt
z`8_`n`sF?N#!iTrW_)QthO7X{<5U@mjsnIjB9*lw5I~e-u{j7pXtAN9khCbp2_S?q
zTu>;*>L_iHa0Ct!5Rm?^!Ga-o3Z@shwr-p#1QeE}fVM^<G;!dV70qMX{okYbb^M||
zon?o4Y!HTl9MOQTNSMZ=)-sKt#)9m`nKo3&A+<&ZiUA==b71d707SSO!P1GLkO=}%
zkvE8j49J#AaLAqD@BFaF6&>$$8!9KYj$Huh9#m2NLZm_k5iCNf6A%bY5X&S%Dqx`R
zfPM&HQb1}S=t}<@Y#RD?z<WYjj^?dIL?9PWy*?%NCFLOj^Dju?E)reDF;dFR6@D*o
zgQfeSTmpn6%O~C;^dS}aX7n(FO)-Pse$#^lz@q}mLErxSA{hu0?`KQ~3i!(%ZWfM(
zl1L?l1<c49lLd}&u&G6U6qf%s^qd9FOUj0$D8T8M6NwMxs~gpv-8j@w$f9850MUxf
z0drBfCC=<V;hcQ<8mv^8s6A7h*M*rXBCr#%XmTl9A`tqv6tE!1Hy3oUwsfAAk=(O_
z^qzS-$2W4OtW`B6DH*KFEv8gYm*^8DlhrzKUmQ8FJC@Nwfg&=0Zdvz*O|U!@IHbll
zAYFJlM6M}gbZR#)wm_;eXV*T7R8rt=QSkxTL(kUZjg|fXcp8Y_%=}-787zw*X(O@e
zOg@9k@*}i>dO?D)8Wf0^85U4rAcG_W03dv1vJ5~35J4=kAW2F{$}&ix6$BvLSa<^+
zAiix#=CTLMd_One-TOa@J53!J)MA7r4`~`FL{P+xNH^)gz$aK^cVG=JL6{C+z3ZO?
zd!h8yg5d_+ZY2{<7f3B)9@IR>rnlQl6LB13Mb=wSVTL8M3~cqd<7>wk8X>7kHKG=V
z7_t(89gyXgWMXQ=QISc8I2xJOXpD1_1I|NmED*~TL&BsxAzUURSxOb+4F<KK9gI4Z
z*rtk>z*#D7ieT3bn%dDI)OrlJj4fzshE)NAg`|22FpL$TNs6&E6MGB|D$Nk`jF_!m
zS&kW{S~e#NNh+k$x7R*-%YrHvbr`D<R<MOJVpvlVsLKi{)<YyN`HPl5-DB~fTp=ys
znG}QD$mZ;S<~TRhJQztNfsq}l22o}buzk2eYG%;`uK{=;G#XvOVn$>G4RG<A2#UEb
z0g!=`aTv^!6QCRkYl{<8X*LQhWI$nIK@p*>rUZ6iRJ9Ahm~?d*(&6qB42_Ii7{+FC
zLxYpESjP~drYlAv#7q=YFfmC1fZ<>qsQ#1NKJQH3567#XYt=w$SeooS)<j|6Xyp$A
zLJ~4dApyYY5%yvyko|0)c3Wy6clUnhr9QtCwCw%%oxzQ9x`xnnxn-BVp6HxG_2@By
z2?3ZLecJ`Zj<Ee7ZvPGrFd?*iIC+NVkU3nH0F2Fm7kEK~0ig&XR2TR$x!xDY4=h01
zd*S#4<8W9qGKhD4#(?$E%nBH&{W~esp6GWH2?78+u?3<krYWn+L{5d1S}-Pp%mu(=
zh{!QDVJbnYv819DT2vSTk$Tg!@9f}!r8@kU2euMpxGdSV#OSyafMf+YJPVIQ=O1-S
zOjTX)L61U|vD2)FM?{Ncve}N(2c7@|B~~JlDG<_f2=JreTn58U0?LMI_iXn{=<-;L
z5}eRB8wX)xpo3^BYBzv=HxB=UV5axbe|I7g<~b*_o-z+VBXoNPOq$4RZHo}$Eb<AJ
zz>0LH{|^mS1r5++WwBx2kwpGx79Gh6&S|2F{Ql%@JK(@=TFD4nCJMq>AnmGOaFACJ
zh7PhzEgKjPrb1DH?7K~9NB2}^6pcPeI|_z25y2@+h=%1dunl9^uzY+6Pcn(qK?mN7
zHjG#q*gL^Uf&yAW-X<(COo<R`5K=-UF9#JUy<MtkLkKXyb}taO9o2~S6ur$Mkb(Ba
zp?y>!YVZ4BA|<QC^qw)`F+14b0xJ$tq{1QPf~qh{27j~2KnjbC!9f71l24#)F|xx3
z5WzEmlR>qT?St&8{M3Gib~|Mf`5=aDBaxzpB2f7WGmN_vLLEeINgJc>x6tEhp(bc(
zqdL++6H8+e3nGRV8ObO=Xy8Q+Cec(QIJyrMwGw6U${NX#<RF0UVpg%y$dTAc?X@Fk
zJ$dGHzDO~c<(g^$#{0Antsqf}goMsC3`I9?S2L0wa}Yt^XBu5$0MscBYB2`_D5kwM
zf@&qHr>$B;wIXW5HWovqiF0YyE`=;YgF-Z!fGj*f*LW%8l0&rvlJ&+8)MI8sKphN~
zkY%G<DH0eMDwqQ(lx#e51a!`Iz9cssaF}C|Zy=zM*Bs&zUN9tMj39tuNWpM4gDoU&
zU`#D;uFj1dH{Ccn{%&NOb1F^@#OHFybFMdCS5<YeIq8Jb$->n|qtg<IDOpfh%0(uI
zDWKVggB*m!OaufZVXU>5D71F;rOQIli`dxBlt*tUkrG)54e^0Q2_2a>GLTd=f`dEp
zoTR>4IV=qxIV9mYWH_XpSTv;_4h-rivP3y@!XEk2rFexqZc;5Uq2@+Vi9oBlP(A`3
z_6Zm#ki$EHu1Ew&Bf_AHS_s=RG$hyuV<cNbDXj*pUUQHZ&f4rGaXt2+@vUG;?j<J4
z!%J*kTtzU1NXr<7;%J0V4uL-v)z~*$M@NkSjEpuKM|Pnjm^;`Bh-iS{NLFQS_V5n{
z4{icHNQq_GlkW#GcIci)0wga;;Vruq3FR3Mq&i{5=Z7keuK0#^snl_e`%?(gl1^+w
zhK-Ei5W|3wc2QZ#u{<plBv4Sc2Ud+yOglj)s7XUe*d~#NNTa82Y-5350gWTVG%&+K
z(1aji*pVel$Vm+f@g)U%2^)zKKqY*@9k@y{*m*&9mXNiuT**Z3bj`4?;zWZ;?8rX|
zbKk(^n}SCW7Xd=j&j6sQ89`8RRMK8@QrPy}7}>yJTP{cu;T|9)m<?$e%wYx&xwCr;
z;GB!Vbk64eoi<6ix``^JGENzKYAY2s(_%DY8%wo^bn)3Ea>S+Q&6c{IjRB9@K(xiI
z>Lf-G2F5F5nmWwIM^4V-S2+ueGIBC87c@JfLp1{1GpaFH)X?RsAk!%^tY(S^1|uP)
zAfqH86em{NAge>vK}66rJ+!8$2K8t}xf}ujz@eT)2=U-mz|hA{*OC>9mjNo)8*SJu
z3ix2cBrHjauIAu{4Kd@l&s%zUFHcM7NY0UvlQ6qwRPD+IdLC+cnP_a*;9&VSSkYM6
z+oIzPswzTd?Bg{CqgpZ<%rZ*5Q#5j8YM80cj#VcW8_}ZZV3K4d;#3LH(4h_6ES}}<
zu7d$43?OWa3DZeo5(0%{ijwHa3d~q!ArNJiE)9TKa$3f8JkEu!rA0B)?~=H2Fs<B8
z6>+hQ$C1dzBS?|J&r$0mtjxWENP&!EaO`yDs)yG0;gx!j$y7s@6K*B33%(-<*06==
z@__+Z#(CSdwwjnF_YnS{)A4lh;INQ{bI?Xw(?F)3dW8CEbOU5XcjFRM;jFcLR>v?_
z2HS{&!rnWJ0|2sD*iGpa<baTb0)u*qkdb6GNLdyJL=(5SU7{Qk9d)SfBu`&-M;n_2
z(}7TR(A6U1U`pcq&L+qAbkmFm>iX#u%#ezwC6OZI*ix0$<Vov;^x-s#q;DVTW8c@p
zbc5Myp9fcVG8%7Tk;hp+GDf2oLqFMcL%N6_iozr1>{5_)pkxCS9b?*l;gw0134nN2
zJ8y{)_{jp1h;Q+D@C7$uWV%h|$_Ng?Of@TTp-gk@eg2pn0ZM4WaUskU!XG2jxm1gW
z+$jw9#)VlgkSl^2g+wWTNLu~FA(LWbPz&Kv_!M+xC_g}GWcb@cFlTuoVV<BZoMaBz
zz&l}-{&NAb4ZGTFH6m^wB1fycxX!M90i5Ow&qE3;zpFH<;jI})q*FB5+2OfUAa`RR
z<a7+cSz$>@qhlq4$3ru+*l}cwKxE8?k_54wmKLNKmVcsIww<)yO{q9(BDHbIb4)rg
zV;xj2Wnx4M0f~TMqg|>HSZr%%MFTLX<{D#(i6)!Lwc$KBEi1v)B%uL<TQF2oQj{G$
z@)!;Si)*bY5*f1mjsgseD_ntw2A7yq&jP{?R}Ew`qCD(ctcD;2!D2H<5&?J%+JoX>
zrB=Cs-t2~CplMuM<B+ga2P6cuOs_mcM=Q=6kvHnLT0@bEv5AQ+gqp=IhUC&a=bVN(
z=@5)a_|y3#61~8>6=TjR0fk?y%mep(d?!=jXX!p(j0_bu3E__0cH#&?LRkZ~Bm_fv
ze<FJzC$rH_pe3zv$#Wz!6JSj!aEf1Gwz@&zWg*$h@`IW;G#pAMu|tSY!v8bz@$;g~
zdC%J&B}6oOLDW*9FbE$BTi|d2n+0BmR-cpY`)l$cE_OU22ZBeLPd5*{t2!l2)>Luu
zzkXM%T-c}40_t_2P705hN8S2lhNSmrK@k$f59gws?lgB>M}<1YK9yq#ga{KTP$2{*
zC_s=y6bVT{K?0p<fc#_+*-<;>8d1Ro#qdTj8>kyYT7Kk?K<78{140CkrpkerPzJ)J
zhVS802<IY4!?AP+OiYqai7<{G4ht4V`3p*!^s_AyTweA>SiWl$g{~3?sA!4Zl6ST|
z1)4(VAGgwHqpg%V7%!=jey{}jhG?ds0rGDN$YqK19EhN5?r>qrHZ5}6#flPzgo0O?
zXlJa&1-}(ZXc$y5!6C5J$9vn8ri;G@_5H3LOB`7+l_@J_7`H;!HF(xYH7jcvrpPv7
zo568Z)*C_>LM4b06hKMJDk!N4-!RNF8F7j6rGX6xe2-lA$&=wuanz<qMz1@D)~(jF
z9f#-gA@m31m0vo4sVhh!Ooc*&+}#y)p5CLsW<cj40z0G!S~wWe0`PO*1Tj77?Djep
zSg!p)8=1xJ$+=4<s%(Y=3ZN4ulVysi_?r4`gB!r*@osEw$z<Y#*UWHpN|Dt^JHmCx
zHq1nA(Blo{<x#m}HF#2qO4Lv^Gzn<M$+Cvh!ALL@dplv1$xKBegoctefFgG^3)O<#
zp~Ginz*4x=`W(y%&KTf2F8IR|T(XSPPFx@?qK1lMofv?`!DAN26N^X-6uFXAi)&ES
zt&Q*?`n4r^HZbu55oWkAC`DXtq~SHYgc~~b8=2j(;B6HGmqc|28%yYj;2>-jwg(1f
zq86Qe9UT;>N&a4sG41~PE6_vJo{d_C0zfIXsNPedoQb_bkh)>2n6kXK8YYVZu~N-S
z5N*-4X-Yza(p3<FnVd>YlepOt8VE3OiD+5{jbix^qxHs=4J!TuP^zM$6r`#YJtC*U
zAQVsoK+rTx2*@&sP!dXnl1PRgrBDx1`V4d&2picnY(V)DDg>sG_SO4{BnD36MJe(*
z@P2*E8R(}0_X?!ZibqVBA|og{1j3KaB1vkvvnMo2_+djB$Z0Lb1w+T~>TqO6&cyS{
zYlD@r0f;o{Vf8_&%v5i<S1P!gFuOLyY*3E}EZSBvIhEP<_(XK%IyiL*5(x2w!8HG+
zqk(KpOjX!|4>KzA$t3)D;-n53L1>V}C}$1C;)g*q9Un#zIPIlHCKVPei&52-)1xw_
zp^*y^(&}|AZY*Y`fTBsjGU|r~mRlf!B22=_h{1y5+`P2|I814pOvamSrObm|h#AwZ
zkwYl*N4yaq5K1S+G9%IzPN3|_a0~*9>s(*n3TPPLy+6kmDT6S<R#nQ8Y(+q<ijp|c
z^}kjI#N{|+Ss5xI(sfY_7F$YNR!XD<Ai@a(DiDaSLA$qY52X@3jR%JD9TP!qDL`~E
zoy6jUu#jXW39v!|!7vjDh9(anqwTR%yW13Bq==%(2%1q%Y9euo)L_4kN<|@&N|8yS
zT0~+ICPg5EC}J20B^qV2l$2Q|4UZGCQb>6Uk^>Tj)T6X8QiE8oA-`0aPosDRb^wuK
z0Y*9U77fDP^?UI<!Kq%zpJXfFq;et$t}7rOBaGHrH_;cQWe9mCDtk{j5r;5PSL*8F
z+1sH`@^u6d{PBI;Dj|XC@GuqHZw1H!!Gul;#t@OKS&I;duUH!k5Zz)i0R#aBA*gWH
zB?*H8R)sKdVPH)`ivuJPF-asqYQU8XBo?t!Ns5IiRYq82BGm#JDq_Nf1OzY`0|dgw
zP{SdEs)3EBms*e>Hh?SkZ#T21H&b~TCMIJ>r{q#kHAkh9_o-`GCikXQy&bbopd%B6
zD;<8?i#&e*%5Yslaa$zLmoB(MD2DI?{3o~7(dGNE#Go0>)ew(pp)y?x|BkAvx05om
z2=%C%KrEqPQ`n>YwotMF8{aCf{6*0S5=-ige8jt<yx9)r2>wSkSX(Jb#6&K1tcf~Y
z(qu7K73g|TGL~}&CCKr4SZ*QY2;Su(<Mmt~4a|`C1eKs&kPwob@y~aMK%6by$=aRs
zCL-YB1@h=q>5#yHq#JlolEYMzb~xUZNxg<Cb`P~W!73=9+YRGGjRv<JY;6$T4b)0E
z=LV2CU=4<f9?xGE0EPrj_@N@Zum-p^2yYHSdj;$W1@qvDNaC3YE;30V+~b=X64_*Z
zUZqaSM14av1i+wpO0vp?La6}INUDB90m*tpNO(eMnyR1^>>&uel}B)=tPkvf>eQ{%
z<%^9V)iNlu<@ZJ1*@x-O>?_c7nbZ(2m!~5Pr}Cp37D`~bTqW$I$^AvX=M?F=-m6V7
z*$>VQ=wuc#FjPl?{a&pH@rqm^O7e#p$zDdF!+KW<B}eXw)qBu>7$_pA@yveCT;dL_
z2M70*1xm=0TRIE$gV;Tfz-$c)l!TH(42%dk<ba4c<dR7U5OIPWGo8#poE(J$h4W#!
zw>A%>(gGn=7^^6z0x`n?PdFtg86te!1u`&UV?o&P?ZEx;GyQlyUc@-69+DqE6c~<!
zbBYj-PPBmaCP+l+c({#-@q`lruyAgWBVnm5L+1X(E{&5DD+!Z&5FS(mq%+HvyDm8u
z2FDyQPC+7)@=ZHRrf4FluUGN;PciNg6@v+n@lg=^xGt`_&5A!4Kg+-9_j_-=*cK3s
z9?EG%k^+JRkVs-6NrhmMf(0f(f*46CC`uwq6e?CC7?nRJCIbZl0Wc7RFr)-DNl2%r
zTt21@R3Vn4X_S;CNEneFgarZI{0~)!TwQ7PClA@d+{M(R5eTXA#C2WEuZGFGA1Oov
zi}HuR7iV|XA`$gjppZ^5F?B*Cx}Gq>5yC5l(E70y_yz(gA_TCg(35dwU(4g&e?Ny|
z&qP7>41gFJ2pN+yW&k2skO-0(N&r}(Xcj3Ei9leHSY!xg2nh%!LP>^704M;WB|?CP
z0)(N0StJ4>2qB7UiBO4BAqGK-2tb$!q9~w9f+b=If`TT9YL-Z}meQ1^EQKhdsfq<5
zkfErei9mp4XqZZ3B8etSq6t_ASO^#i5(Wh#MQ9cvf(oc)q@)O`1Iyj`JOd}nzGxpX
zq}7E)<svsf4o~acBu{6Vu`()%g8p&=U28jo4u+NFC^GDWZwX2hx9Ix5%<@5WQmL?j
z!HTlOm{<l%cgo5KW1<)+1`2?r2vt;zB3ddcl1d5{DJo_lkRT!o385g6Wkg&>!%r5@
zQS)}O7cmrF?*(o;j~fq`;<%}cA!%(BhUps#-BIF&=qVp;<Qb$0giIAoU=9d2Py#Bx
zZvRM+LH$G^q*Wb#Ej1*G#{1u6^LyAEz=4_@6?P5U1W#_Rev0F;Yb{0SpzA!8A*9x!
z!}Zc|z1vk0#rNr}gHGF{M%T~mt|0e;MF<fl$iyae!8++U(bS1>hx>mI>h@Rs|M=$p
z7ysw|zu)+O_x`{BZ2xcX|9|(Nv;V(`|Fy_-{o*u?%l5*V!HI;1Wvl|iGVd5hliq}g
zfk>hW2vT84`yvXOXiH$;g`~A?EfUdaBw7B=xB}qpFog*RY$z~Iu?y>BpGBeu{-4Q0
zD&hnfkaRW!V+i|zZvrP$4oea$Vetr>zjiob8;Pw{j8F(ENL<i@;$KbjAzBb%pn?cv
z&zxu(h2%Z5VZAilY2D^<wcLt@0t|y~v~V6>W+EXcAPme^X^2|E(^J@7d6u(N1S%Ch
zj966_##Ur1u~<_jTXI}6V-;925X968r$ZLaE4s>Ynwf(_LGD;z<ZtEi^^)^Y<OLHF
zfcGfI0NoS|F+=(dvKra`qDH4EbV&1miQw7bxs}f;ZEiwI;}=7~7<*sB;e0^?Kd{9A
zcLASIUtfS`VVQ<vOjRePL(?cQq=hJdlBGygk2krnBS{H9D*)NR`ZNI<Ca6_}Dv=7Y
zdvH8K<npKQnhE@HkpotuQ{!UBEMyF%AlpM?OtzMyuixQ2Y&W+rEWhC|EmMgM6%~wX
zESScajc7i*j96|%@`i>CL85tJdQkfb<padH;}VpB!69IvxWN#l5Uk>)W1boa5a~4Z
zl2s$O@z2NH66eUO8h}^`e|I`^k|aU_5Z9_;p%{bg5{K{tQxWhj3Uy2%JMJkY(+Wi2
z?<fg<3aMkd*n)>40Edw7I0uj%e<>iv=HW!HawoX8I82?EM5U6`_K?DugN_C!1cn5L
z6);M9p-0=bC<Tb3&>ke^h*x~z>b8R*{amaAl`0&hPZM;A_N=O_ZTSL*5i{)8N|GJ1
zQ7*o8OQ+Io<}xTI2R^R4F;6~q7zY!KK;1MRTc}V=F@r4LZ8%&p!y!)hA3Wg;Jro`8
zgC5ZY2N)OzR&mi;S^&`EmZu;xfvFhAepi0@Rt;kEEEg=|@Pm5#scQI+Hl#d--vjJo
zm68wzKq?qX!B$pqEMs7#?QpjSK*<s!Nih($x{zYu1Oxk^;f1>)F0uJ-b9;K(pvBo?
zuJ?VQ>npT{fPj~98<ha%Fh&~K(ncM`i!~+eU@HbD3KfgKe`CSGKsbqT@Fl~k;|h0B
zPDG82l#T+Ju?6oT_sT@L`$znt2PA#Jc+Luz7!9Ikl!j20)(;vrY>YqN`G7FxDs-tw
ziD1<#$V_pq327wMtSF3yR1e^Y<lO8bTGOCZmZKU+nCK<y4mv*3NoLbN{&{cp(WOS)
z<dcqqG5M8mQXa`t#0wDu$dn+ELeQZ_A}K5>K`|r&K!HfXF)YFb4Nw(BKp{dQN`*p_
zphTjyiAhL;6beLCN(~~?sqlxoKI%JC#eXjFX`($cMEQ{VK6OM<^%*`;Qoy<i6o?Wu
ziU+m$SROGuuKC{(uzVPUgfy~1!nqhj1`1|4VT1z=upuDGFcC09(F#~1p;U#d7{e+`
z%%c<toLmGm?Kpso;vI+?BNM<4AS=trIaM`h{)mFrum-EA{Gn+k3c6EV6WTe5qrXBY
zA)fMt(1OS<19qd#eV9}awg60tKY1A-jA5plGvgUvo>6+k1x^j2bqUl^$PWrP*uCUP
zS7RJ=Ihxp3jE;H`XeuNCLt^l8K<?%DYsAPYG%2~cz$xpf8&rJB3W@v<aQTO#rLe2)
z4e|^KMFG2HeKCJk#dm-;3>a?U$q49ltT7`bmZ?TD9!aq#Xf_f3&SrvCd(d+u(4E4B
zb6eceb&Qmdh=>Fqjmv2NHn;7DU-JFCv)!N~?|<$s{^?)%9QrpuKj-e(`{9#4&M2}F
zeho^%BZ3?!BW$t+x868Fa-j@AXruF`nCAmjRT|8SL&kg_|LE7+9;2DYkcu+TcG>yP
zBEhq-esL|@LQX#y*6I=pf<aJwI=x4?<M>A3Kc59mFeLy{&Nk_VS%g9oGW3#xr178>
zw}H32fMBG6ZR+%YW_|DRHobEGjRC*KdbAYq$c`If`Oczmp2S&dT}+2KPGkb-YDkm>
zIZDujoi!~Y#jtM)kwQsHUc+mOTAti}Kc7(VbLvoc{(auBg4;a&o+E}M07)d~844+f
zT>7*}(c$DWR-acpc{MGFi*6x93RHziEjPFn%*CrAPMI<+QOR&p*=bf4ODqevL`+Cz
zz>^4t2I9y$Y4pJFTxkrlIn=^J&#X6Uq~uZ=V{SO#zjz^Q!lpu$%VL@vplQr1;4X{D
z=RQB(-RKji&AZF0wWNw}ZuViY69FJUF_7>~!`Xm=5r<{RPgH4aVwx>#0`+V|p|ata
z5)%@EgiIh<h5~?=og97#V}bXC22e#1LCy)tP=~NRe?QxyZ4Xe3AMo>ejmS4R1F;Z0
zP$Z0!D`MLuTM0j<*}KW)gP58VF+H>2;c)?YSSVs4zcC)4d_Nv$@ikFW8j7gOkSN+|
zA&7*4+z7%I&xvJ>X~xSS3I{My!Tj<M^~R03zR#~ot%g7y+PwfU6b?jRazAaUZN~C-
zFcqRELWT^?PY5bm+`%H^F@p61!WKx@%?YgIMndR@SjgKb=t$L{X~~ITG+Dsu*5;7N
z#~c(<(ohPg6b%+4G+^5b%@E2>mfS{NRNW*^m~6p`7Dqx4Uji+NfDwuW!hzHmw;C70
za1`}}VPa7zu5#Rw#o`~_;Ez-^kGz`&<TsAvIC6Lg+?gc)hEVlAz!%;J*v_kXm<R^%
zr1ft!kM9VH1$*Yua?$`h;to`TRO=BBf$TSqsT;=fC(ww!;S)ueE!D+(9Rmk=um=ok
zbi<4YT5+%0{1pwl@RM7-BS465JIyR>#cHa|#Pan(<ywpS{|3z#6shuDCG9DNV318X
z;KarZ3=$t8=|?3Cg^5cM6se*T!C<LBict@9kl`p$08**?Fdi*PhTcR#p&O7{1se0J
zj-!~`(Y%|u<)ws=Kjv+mqHcxe@=Y83gWQuvLuE*!-sjn<U!ELV2r6R0DkYRej1j8^
zqa4<?qX2OjFrz`tWL5@5k$@jZ0IG+o0)N(`ApjKddbEm*kf@plhHiY97uDc*lr$7V
zj#*?9%?}+hm@#11MlMItV`^@>H@<is_=bU_VB-eH)hDe;z4scTK|>pqfqu4b?SnqT
z|Hb|vQdoIIXlu6n985(PfwbcnAc<ubc4kT!p9C^gGEZQ7I507=h6x%(7(*EhMG5S4
z<Hr;lpu!A@rK~8^Yup&362qa@G%(2<e2CSci4;}>D?u$%iA0rEPGfU5M-l@fn)x^b
z=f{l2%Ud`!dbsbyb!o#Nr^C)(?}_fKX(1xV!{K4&W8+Wsx2`LQ15zYMx*Le21s^a6
zZ1oTufx<ynL6Kk869l{8(AZC5={@t^BCr}CRDl1J1`xyeM8h`n;lm+ir<*)(691)(
zvjHA*oD31Vt%082j>N%I;D^9P{%8m%kn{{NP$5YSC_^DDLXiM4O3(!?LNo<ZP!d8?
zgfkL}$w$-a6#V}`$EEL{U{r(>0W#HwCIHDYM5W9Oaxya{#c+VcjI}xj7)Yv0QbJP0
z46q<@B@81dq7o`vB4}W!MnI^jDhPyv$s7p697-IOaH5q^s^~G%_G%#-B@cR87JJx8
z_>)8w$>XVY8)Ed1kl_ze%Xv8&CQp5v$UUf?AgEZjBG1j4+@Xb7TBur+6_CkNtM{<Y
zDPfq5j3!dEF=0;yRIvq%6tY>vr#kE7!NiD<E>rw9#e?;vDkG`97t-+QQvwF5nNlu1
zVubQ`{ruWK{LEZf$LMLM%{0-+cehprFl^x4v_bH~6QF%Usz|lR-&t9j%9PF);3%g9
zqf9&;9l-B|O$ZaNo{>}Cr7(kmnZy4B?o|jtU|?WK7zq`BS>h2F-5w+0@II9((INCD
zJX7IVLHd5wpBhKnhj?i~$zAdcAlRTntbt@-e~SDu7m1__QV2p|0Hs_AB^;~;QiIxu
zv)${!@c{(G?BshkMrmH*f#okR5#IcHhjq>gB%wP83kUw;ou~4UJ3~p3*aRTt8^<6V
zgidKSNRt~jNrw)HM6gv<G&C_YqYh56U>M+KO~FB;GX;p)@wC`t*>J{7b*hq|YEUpZ
zHetfRnp%cKVU9A8L=s3q>@9^P8?rHg+-lss5wu<G&HdEPELg3XBs4f-*6F!M3Au%s
zYG|RnmTM(Rx}lp`I5EyP=#fOygz3jatQ=<+hOiM96%<)wMp6tSO9YIHn3AAu+o6kC
zX4Wy$fDR<J3uYN05=uZx6q|D$W)kz(jUvvWa8p8%<YWPgK}yyTycWGINHcnDq9U;n
zp+0WVM2$}S9s?NpMBW(K9I>tPS!A-=QXC2)!$lDiqrO3Vrp>4tQUxlC8YqIE76=SA
zqqujqQz{vQ7D6&eSxBiOb4r1Y@J2{PQwS>YdnkQ>XRjYd2s%a~2U1e&fDGQ|DvMss
zC{PTOW~)o<k`W5;bcjD(kdV=F*iW19{Dvds_%g{(Mggo^4dGF+AaO(%K<Ff(mPHs0
z-^yRh@TTyHzS*1{EsF1its$5RLmzRfDf^>}y9<L7&xmT4mpX8V2%6|Yz+xQ@5pu}2
zLdpnRDk2bzp+^%}m%>>$5ES0VNU6E0h>U_7#6<W-n<9(yQm?(Gz_tOM6=4)BF@Xgv
zLedi;B0~i-Oq4mB#*ryTkf7Y|$hC+DIKvB|3>`;JM)#rJfHszX?AjL;XG)tFNQ4In
z=!^n(0kdN2VZzxZ0MJWpMNqU`BvDCTA4hJ{h=!cEE_krjiy=)?%~MK+Ss2WzNX%-Q
zy1FiCOre!B>XA&*H&3@twB+Fdjoyn8JkcVkkbNe?L%3D>Gy&tPfjl8m>=Hmw!f9Ai
z7=;*>VnAqSGTA05VM#4jLlGrNebAVKX<*LJCWlHJQkqL*X)(fRPU*_%AZ>bqjfYqW
zk{xo>ikpHHk;c$ZmIGzfg1AV7LLqX!?@6#uZw(@x=<mmX8#sIvfuvY~QDpA*dwu&n
zPZGFPrGwvMJ(SSAkdIjbMzGEbk%?Dvl7aCGj0FMaRSE$lP~_mI3VG8}0K&6E$s-Jd
zKm{<c#FHqnO$sF_6-6OPLm*6wP_UCAN{C{NnFSz0ED#Wc6hR<K1u;WSQZ*4zo!;a5
zt^g>M>|j`oWC)BQ6owZG7aIT}2rO~K7{?qY8ID@OO-O^1sgjaU?4oOd64=Oyow%E9
zLxv4WtA!N`1H}PK#EuCi3P8kDXr}7_+t!g5lj0~=la|dOaKzvsQ_p%`7(AyIPQZh`
z?-#oXRqho%!h$HILMV}v2!xnlB*7D(tInec1NX&V+XL=^9`e9K;>v6!9Z`JbhC-A!
zV1Vd=29+v}`LQ`i7~K6lY6-bpTVV*1Myh~Jp$P;r7MsP~g1xV+)M54Jb5T9DwEoZ8
z55JR_jl`ZYR>McK3xTX_RWv`fSC|bqiU@E$)7^si$ccmwv{dtltch^$r6!yN7rr5?
z0HANd6XNbY8@N$s6n@GZMIlv;CIx0Wfr^QB;5%&uO2NA{B)9^|umqSV3HfAQhe1F)
zhe+Y|n>$fFKrgJKC`JfHL(2+M|3nG_k{SdE`IbF~`5E~~2ehNeDadW`?GL>U@Vn<Z
z@)4I+e=KaE@gb|~&_(!vn||YvAZ#<#3AtB_8gNcni?=aQ*#cu5+HcxWmqK|6;nJdP
zSt6B)iD6k~Mq~&E4!@9(jl&`;iWgGJ47SoJy2MWCLXprEKvfV^1Ptxo1E>lO7EvRa
zg(5+?2NZybpp=3^6K3&UK%_AeRS^%lClG_E3=o)N1pH8#CW#UmT1cqkT#6b96fnmk
zY9eN#fFXuEWH1s6r9!BrVUTEDMiWR3NhwM+`=A&jizg6d!Bta}lLbPB22SMFRItXO
zGO3Y~Awn2bfzaXxB~1lHp$SzLRS^u!6vhFHs{0_OkmOb~wz+5t`3ahuX&S;P5Dj!7
zcVLg%h^m9dAwnFHPi|4*kUpYO?m-_QF+nK=LjywIB1Dfeo=G8u(l%I4tPGOXQHqKn
zNF@e=p{DCz@qEXi*TwYeKZoh_^o157z@M6sw631FSC)qtn*mLH4yGBX8^PcNM*n|7
zh#>v|qfCm<@i{>D30w8G`;3m&sHquX8wG<N)l15Ww{mEXGclCFj}xET(UD-KD*RZ;
zZdEN-99Ya`!;zR<Ck73N0h)=nP7GGhm{VrL4T@$20jW*w#%S3PL4gbamZvuwEe7Cn
zNwAS}I5t&?OtDINb;$JaciH;nlc0~X+k6tH@05<kkat*}wGjKF2RA7=+)uvsv`sNm
z&2vM+g&IXDq)%;y4#e{`F!Vw9ZwIV~0M{)hN<|Hz?xs&YN!OG<x<>ix7?J0*xOK!F
zVxR%q8ztm-#tL->+8PDafJ3Y`?1hFvJ(JnRG`(t^;P?~|#Y_;zNAG$zA?`{-`ne<7
z2Yz5$lTr_zeF#G#4#h!eKnJWx(fm<Ng;^@3PjA*(on6%hNb_N6tS1aCXt!r_(ov!i
zUn)I8Fd`D5uN6RmzpZBDK>LLVGpf{CVHrUxKP>TFABHx-uX8#P*?-1{?_~q|yDe&k
z1@z(siwHp^ATbyq^a^YkiSSZ(Ks~sD)-W5xze$4<0WyRTJiZ(-vwzX(+VF~B><EOJ
z0_ce@n7*4=QepXZ+8P;!<iIC2TbL3F&RP?JkRR@hgz|+n4gI(o6i}aYpW*m?XdrS&
z#V5YP7v1vQeK|fp{gebbSqjM|hp&`7{W<w8#)}t_$&~Y(d#`x#6!}E!Pv=SqDmEC1
zCpsw1Uv0RO5<e|dDa6G22jYD}48I|Ah?Y!KGIS~?kyGLT4~5dx9FXk!H4A+jO}C+N
zRSjt%!BimOisOu7C(0GtV$=TB@L24TSdslk3zL<brovNDkjFVK%35?tgi@hGr}#;}
zlyQ$XZ#e~U4^NxL?|IX#j6n}t3EUKbf<1Bi`+p1&83WF7{Nm>B1JYLbax4NJGL#=+
zC4BCKa=|u@!iL9g)`%sE0Q@skB*u5>5W^S=N+Xd3Xl)!+hE^n>$stt@wY6}A&UY(*
zQXz|s0;5zO2wfg@Pv;c15P+vzuJT}bITRQ3YgKuG2Xs4J9KVd^O+g??!XCl!<sjli
z^B9%Ug0fMTNt8!jj6!IEhzvRyit0p&5|S@fhGcF_5Hyiw<CaMFK{(^t;oNgcBhLi=
z5!okL?6BM6;Nhowp3?&lSb3H4Kt3W*&<!xNBBc~!MnNF30sAxG;XWfsbil%j9dO_x
z9BQD>2oICmIC~CUDMwW=&jir~x&Z*?0AtFJrIqzU`x1tRL1GksX$Co|sIa!!w$U1e
z1A=T!pzasa77LS%N)8HOQHCl@agtz&<p)GW@A<I-&dEg8_;3XvpF_!z5}_{dJ&6DY
z21r-yisDD@?$PX__K;Tap|RzIa|fHg&vmO^{-HlqmGb01#2^+RPQ)#-Fo&oGI;;<*
zU|uQ`AU?=<FrEj+L7RU&oBo!<OAe$FkOfZ4D1W1y@pP*AOa?`Z4dk+jf>DF+-%X;T
zAdy)&pPK3Tg|V5nmPEjqh*^}uG!cZr6s0t>!4zn54n(fG;5kOjR|s{644IgO($xth
z5fT9dWCCEYGC@T|h{T)46vPC<NL}bBFasdTgltnPi7LfaD_Mn$5{gKGglLHpb$~R0
zVo(jhLf}GRPFhI&Qfi~gn5sh6y(#5d(ydy|vRX1oVIqj>k)>6NrC6$SDln$kQi<cS
zM{)xahKM34gpw#C2w;i=NR}HR3K%+!a;{&r9(*=(0MLX`_<UAC&^j3F@A}J#VA{7E
zuy6czXZkK4y{glILHKh0eHCl&{>udb7*)V5bifEh!B9*{fTiG|G4M6iDfyqA371#^
z{ruy<Bt|l@sS_?3yv*)4UXma^?}Xq!-3BW52n`WT(N^8Cqe&P7kjC&s3GCK`mcevR
zftetbV_3zExNfl0!&Z{WFtQtF5)?vS`GtgW7XeHGOc4t`o=HZ(liI+{$KMyo@!$J=
zr6^R=K5&l`hXS8!GzRbTThSBi7UHc9tBHX)VakOTY(Ci%lmOObDbl0FAa6o$2N3Z%
zp!}p#4@g-z+ZnrB?5JkS#P9FikYw<cAW=#sArmtPk^}C4MSf&KHBfx1XW!HgKcf?i
z#FB9!$WMSZWMKEgMf^h7&vtzKpb(&JI6@9iP=XPx+}svv<QmdLNe;e}Bc|~C-FoTk
zhm&ER$^s@zS_{B4#+V^33`Hu!MJQM#9(V+1Itd=*<()pHIdA-DyL}pOgwO*sDwOBM
zs6a{vfP*k`(rZFvQelC;n<A1?1HdRRQua5fPk|5!qu>2iceEg=K!^d);1r-baHc@Q
zdW3W#cUWJtAdCyqP{uW)kU+Fh3;=+4)O2|KkuXp+3D$H!p2)dP!56$dDCew)@c1-H
zEg?x(Na;aYq^4wfg8_jMp%SW3<it9N2Waq*i6Sc%EbZXnU)j&)$4Zcb6X;O`mIxkI
zIQ?X_g#gn^g)IXR5Xi`rNTf=I0znAC#UjeElz~A6w9FGUF(?#)N&rDj1xYM}RSO|4
zA_P*v(<DJP1r-f)+W%T~BnDICGwLtBus%7BwIf_1J<;Rs_Rk1NpQvOs8-^dIqNW0r
zB#{!Pq9t&IoH(Bd#A?K%)JU;ON~$iy2&t-MlgXKcWlU7nQm>9pva%$Jsb~PfB_dKG
ziYRU#OkfzTD8cz0F+k?37`PyH1RygAfbi&fvji&|gj$&xkp>W^SVl7yITC+>LrTCT
z2!D&genFFvi1OfP0fnIFAUKY*T2>bq08%7i)Y>34*k}d-3HE9~)@(7Na}&2n;AMT6
zX`es+d+X1MfyUZ?UN<XzM5^E3eE3hn*U7NTJ92W)pCe_SeskP{gCjU9hH%akkG~b|
z*A-A@MnV6TVZuo+>YuM;&>6Oy@-9&=q8cD0+%=RX=wWs`d9QIwAm%tKeXc8wvzOWK
zb*<{L(<PTt9_81d4<r{XAe9k<ed2|J2AZ&fNp$H7^~YpuJJ5Xikx&k67iXXWAVOYs
z)IsloNQTC3r>RXb8*81=+Z_AF<A%)%x#n3o4^_$+p47WJB+-sLOMx^D2D^esL=*=M
zGQ<jTqtIlMIWc(eR5WC`Y~*G4^k+%Iz3+d0k)rfvwb`PY!PUbVM7hGJgArIyMp@WA
zN+rKk4`HKlDP3uIkYZv*Y>IaZ-l&AeHAiwB1gSR!2^7V`k7(w_X-_Z+9wrWmIRn}Q
zM+St4{L}}lY@kb%3xWvejIHaAR?Ky0Ak^g&;nKS$a<3A|l;G|(FBs#y+PXqFcPDJ;
z*hcay#S+M?MNKC~A<-rXJB6WM;fI&C5zq|;i8WV_4{MII!n*Uu(+6^sR=n^r-%MUA
zW?a4L8k#zeP4rb}IhCa;>TSSeg$x;!7_~?<Fn$s);yvc9GXP4o5z*u2IY^kvin#Hu
zRY=U5Zrh`d<~m6+8P^s)jv<h3G6_9HIZPXz4JQk#J0%s9eMOl$RJBN|ony%E#SU*9
zI9Mhnm@p1w)JEMeEKzLY!ltK?Xqa583k4v!;8Gjr!A}Sa1cHtE^cM0MsB#BZa|pBE
zG9B%$8j?fcNk`mL4;eT&wV+{vwYY?{xbQu&+>Jy{5`?=hLj{+4T9ZrOzP%{z%j=SI
zrSyCbjO3oRIl81#iOpQ+9^Hg6frxN4am8b0ZW25O8AAcL%hs?sv^ql(J?nD~kZMLV
z$0guUMO<W~@FK^OC*)ULjL~~`qshxjH@@?iWFf-$BjB4@OkH*?;xtcail+R_@-hnX
zDRiBMgSDv2&_-BmuK=vxqChmnD%_4umNLT@tTdww8&kh?bzU-MHsqL%tK=xM=Nru=
z3F{=@0_?PKZ#OPn)mc>P3Mj7%3lL{(fG&W74-HX<;$7ut?~XX0&pFUe3R)noRUe?*
z7-m}YjbZVFM9|$_l38zY7ZEWG=sGi0LbaaUhU&@V(iSzg;LRk0l6E|~?WjnhaK_Zc
zwsDInnm9MySyS1<2tU^7W_VrT$%D5<DFUHv;A3KKH*F+?hGOk*lGns$HZ^2~L=s4B
zAR#i0P4>|mS+7g&T)hi}V<g5r7*rn~-HI@oq&~A8M(sC)t$HCLM>UaEAyg*2gGpma
zOC+5M{>!u>?>U93DK@vJ*$S?`OD&%|ud2fX)3*)0%T5SQ#&erlI$n*rkjbJ2#8Bcq
z?W>EfwmMo;`c}I-aP_R-$=)d^4_NWJ3Va<xTvm*lFM>ggB-x80qQh9m&M}5&$lEA+
z25uszCf*x#$48`YWpxLt4&Vf1&^xA=KuBH&h1FTfgv_a8m3>lo8nEVcT{Xkq5qn7*
z8W^&FJA#+G*8G{RU86j<S;?6xhmIW7#;k%Q2oDew!{12wijagfBr3X@Z{STaImJu(
zJ5gj}Js+Qa*-$;i$q-WTW-7TtLeay2XP5(na#C<f)DLtDclK(kjRGBi--<ukBp%P>
z$Q>Qmw~jMemnYtC4L7FW($ipDLZb>E0`nMOeQ&kkk(|ZGNLeUO^?CvU&l=w!-8Z5P
z8R=bVsU&<|j9eL20w5$6BH@EWV8)o}wW0$s%XK4g^yt;aYBbNjG4-R4HUm4aVL+t#
z5TYU)B?ThRNn?HzA6)Y*`)O$T;KU$4&@cno31n)jO$k#G7g}kN{wB?~EAy};0*Xj~
zKlci3RovZC?dRp<4dRM&;VyL0k>-1QTG&9s-GNrmGz<+baRwxEVMAE4)+90L6;OeU
zE(bugTAdN3<!rIFoUyx*;aI7Z{gm0hVN7BTFD(=)pkNxHEdqxg{2Aj#;UCQK{G>~(
zcH=`DY}t?sql(ICSx30;CaQRqBes(en^@YP#^EA_KY$}bo(T4B+{65*`7DptV(xXh
z%l1T~Tm7o{q6GP9<v>O!IHMn{Xm5l84*<nTJ##2dl|Vf&N0<O;c1X|xu}KYmLjetn
ziDM}~g&cn@VCSST_k&RZ;kE~p15pVK#`D+R`0p5c!&W4+4UlD&3o0i>_54^52r)QF
zs{=JtFc8SW3SMJ=>&6AbA(vxF(kD%r7YZC0fasSNi4d4A!x9;zClTGp`Pjo5g_OoH
ztfnqFWtCM}n14U?b?kbWJ9~`l3$O>)5f1v6i2=zVrZ{?R4oIkd;Gqyj=m#t4f*TCz
zfP?kwt00c04<&_D>HdDN!Q&NpV5T6F0IFqR3J8j678XbpAQT8lpqPM&CLo#SsGf1m
zH7S|#{DzZK7h<_qJ#flJ(`v|7qtgxOYo;!R0Ebal6gU`MlR~y)E=ZcpDNr<#k`%;R
zMT2RErjRVGUDU~Ju$nUy3mGUz1||c@d!D5kfOH#y(DYT8^?!F}MfQvpI3cjYgutT2
zz|o`)WKiujny2Os;Rd&CEtZsDu-Zf;!(!sybg-cNGDmV26)~X!utYZx5`uQimk1;j
zHYFAJZYb7@9T6i^fpS&Eg`7hX!4M!vs1NFri3^Xt@Euwe9<e1dsP-{H+<#>6tpQW4
zu$q{JhL?@t{;=WcJ~<OYuZx)QYBos*y<w`qnq$#0!vV8h!C`@zVUI<#k<QDCI89(<
z@{kz(;`mDsd}8Q>IU&#JucaXxvXCDWJ1|qjcUith&drEq!w!;~l?*7x!3{Wo6Js0i
z0pE`~Gixd1dlM9-xr}YZ!~?)I4M`$UcnpP{8rB0^u;&I@&cIM_P&A?w-Ucx-b!%8e
z2<C~)VG))cjA^p$HWfIDt=NFz%^;B>z9kE4PJ0|StXGb}cDtjoD~HJez|EX4rF$M>
z)~O^iPJqHrI)nL3MZ36+3xr6BI0htkFi7a?MhZi0T&dwwqOQ{>aCi0a;$GuA7Ni}j
zCYZwJNf4-{A{c6V3|j$FT#u46Ea249z%9jwZx3;D#1xWDQy~i27>EP0&rR=EZ**x2
zfNp5e#mt062r>gqiF^1R3L0Z*VauTDO+m64WW-g5krA!{kp1wHBO4ZTrVaCef=he>
zaT*)wq+DAWxHM!zEZL>ZZ$d%_RGB1>Gb4_p2<^ZPmkwmWKr(YI1hO&c7<MlZ9VD2Z
zF1`#ZiIIp#QACoiDsW2oPRLzGn!;`fdW2GBNkXy%VX6=+gF+%^6)nmMXvC-@z(%<e
zD>N5#I$$vo3Bcf@WRSAJGU1p`8Ax_wuTbqbA;^H8voAazHf|Z`8UhfgY$M&?_n2&9
z4aC$I#x8Kfb{9CP)KrSF;9*G$kI~!o{?EbsxqQ7xP<bSBWGlZj57ej`t!7#U3IrVh
z3=$-giy)GM#0H%KvDn!VEW*l?4EgfhxAsGb%v8)4!3E8u(LqiP>quD;8@T6S3@}t8
zrwZ|5UTngQJ9cbSa}^{_(#o&`J&*Rxb(<YWHfjQkFtPssx1YCR<sRZbB^BTMH+Z?B
z*`nZ?Rb^PIgshN_cb@vF1QP&`sR13VeI*LueKpFe{1Ce*Gu88>6Ve_|C2~g7Qka@e
z8xyD~eyAQXeaL>PVb-*M28c+mkQAf}Awxm)gZM-7Lb^M^6Q81Ki9ZlR{=Mg6)O~d%
zYRTNBlYu>}BqEkW4HXq?%Cfu;-Zmt}ut91CB|xzfuS`waPg<=fGXa7VL%77H;=mzv
zL}U_}L}25NjKTx8NmC(qL7NN&ad-ih)K-9K5)dI^m2wcuDvZM9lLp2imL+6bTWz#3
zl9H-P#_%ya<(|2Y4LfkaW`-*eK}CfZhN3j&ku(NM5+q|<AXd?`AzV3+x?CyDCumAJ
zgvo~j0kF*vdI-4k08*_Zm8b(Smq$SAJ8s!fehXkZhNVd0<UubFVy-+Wa59lW0kGx-
zl7M%Ts$f8ru`~ooP!usM-;yS217K1fv)wL%Vk)^$eh7RiH{kRHPW)85`Li((WPTV;
zGYk?F_QJ?<v%IhZ2!vRDCSgp5U~gtG5{D8eDHRTY2>PW2AD&Tgh5T|4feIns3m~~D
zZcs#3Ne3kB(v-CIFt$ixWVsmXT{Ni|F8LpfrMVHb&9w;fP*<q|7hFq-qUrRC>JTwR
z(1RECpVC-Hbo21Oiu!|`J&nkeu~W%DPkbQU#1<0Cv<P>?O}KW3GeT@DF+M$!m84qv
zTg@AKH&+_6t!NF8(piif14W7=35<e-8ij0AI+_g<rO_>tT#SnqmkqN)rpb#HDI+mV
z5fU7<E}CayvqsD!NE{(kA*V*nHXAS$VogP63}v=Q2;xYHF+wDP>q8M}p-WJ>78$cf
zF-g4!DsJ8wL_rmp1{ES=CMGc@Aju(PY#9`wBsUVNOB!}zf*@@I&<QaDLWBt^Ngyuj
zLxc=ytdfNrnE`S_2sAW+k;GcWDA6LCyHGlme=nYrnm!)?L~bgAVmpDYfG;PPz3x`g
zObn7hgd{h=mr^0b5KkH~P{7qlH5CQ4L;{jRA_deq8V*Ik7%$;n)yD&SB%{qor14K2
z;aU?-B)pB^2uO26#GA=LmRH}KX)S`aAYw%!DpV2_g%zL>?|otK{mumjhLR-&fLIz7
zB59;J6i62l=NJ2_K(5&6Goq6n9iVmvlJJ|QHrarwi4C(_R^+TU%79svQ6y=h41uL+
zbVW1<$5my96c41#5JLYRD46JX$npV7DbV^5Q2l16s!<gxC{-m&6)7rIRtX812q1zO
zVStpD3IbGsf`n-iAYg!zgh^H;VvwPd8B~cCVggElvMDVjn)OI_DcobUiRxQgD&PXC
ziUFZi6Igjr97E0={qW?nLOg{%7=fgQWe&jw_I(5iP<9dM(%~+!#`y^pa4J4E38^CZ
zBohe@`>Gn+JF<TNjn9sC^YAqy=p*uE%psBqp7@`|Usqv1L`0%Wkc~cijJ`yO1)~Fu
zxAK4;#XA9gttzT)6^f_AFSa;7DOxCwLSkbhS=6w&NF=pI1WJUGq!7?F)CCC?CWSn#
zq9joQCICnyHvMWI%y6$e8bMQseP|ESwE*0GqCk`f-h3$rJ=IM*e1TJ#SCv#aQQA2N
z!Z1hmlqC}c3Y|3g)Dz;8k)<G6fk;swGOza<2TKD30|Q8Cc?r#;Q7RFlQY0#+iw!&7
z<dv}O_a}6pv(+bhBs@V(L_TBQFg~TH`jN<KBLTl4Li&`GtvVtfM4&oJKS02X5Q7XP
zh(e+5z-abi=5-jxPAATOVj`5(BOH(i;Rlb9Qpg|&fGQ&Ku0m?nQY4Jf{vpLdT#$%>
zb?HNT5QuSH4RA;lQBWepiTF@?y&sEM>x%aR6n=?8JUms5z?%jU_Q%Krht$w=a{j>Y
zsUagj{#D}aIEX1B%Fqi{RE;RXSrn!U5JL<`10!IjpgoBdLWLt(D6e|2%OuytB=Ou%
zN^*%KDoB%o&O@>F1Mn~7`TRFM{7DMPArtg|f0vI&UjEuIupHHXsx`O!ZTvnqt$`p2
zCxqz;eFNL}Fg%fpcc?H3FNmV|kh0v0!GSrii-0(HAKmwpm<C_WJz%>1&x7LZeg1B~
z?rYW%(vpe^K|}&DQmeuiGen;DoCVMr7y$l5MmfT`lFTVD$XPB7FeyW6L&Xo%hFB{2
z;)W$srk*-$P@$;Z4_RWua2k7gfx3e3fs)DiolH=Qo#OpS5R?vw#>^!YF-$-nZlBJM
zHq6s97^GAnWr%?pDpT-5_J$Y~$&iq@D2oNpEjuVkUak+ERVU$YS`ASoBCl{&iKXJt
zau8nIUZ~y4yG|;1p_-htQ6>+CR80^-LU}?W1<MRxvf0n5pyuJCzTH2Z*YkaHV!+pC
zMnzAH({I!7I?xH=gH+foJvzJH@5_RVf$qNK42y?xqK@(4rCsPLw2#*Xezuxa!ryi8
zY$yaEu@o~D(EAm#E-^5Q4vv&4Dhhj9<`b4E7^>hU&9uHK7|wU{R%$Pcm-PA7K=(eZ
z$4Uqe3tgvWT9voqAt6JM$Y99AD*_;0Pq+j~aT9cO#`IDIiHa0JChNs-7nTbe)wKOU
zR33`2H(QI_tWn(Op^KhM^!cM8AJ5UrUuY0Is$9`uFz|DFUJAY45_)-U?&|vMoqT4s
zOA-+vC_y`kMI1ot8U-wWe~45)&l~IjJ%1gF5-N^pczkH1`cX&0wZIZY0rSBJwg=2!
zE`ZE8&nfWmr?G<%pfm?PkRf}R4OPk^frrb{^W&Y;E)$0*=&b3#Luc5UC!b2#M(M20
za1ko@J3A0=!iKLZ)dphHu_g^9CRngk50?j~?V5}HoTkl3E%l=e)42%}t%icw7GNns
zLa{Q9%B0Is(D4LGW|Xjl!6b6ZP!lQ`FtVm9P-0@(Y&UEq3_(iNqh>Pe9uSx)FvhP<
z>E@a^%ZyMedzvH-M7;=IgmIhz_Q}K=m9}CKAtu@z2uK#Kg5!#tZ3cr!1{p?Ra;^+u
zC}j;HTJ#DfOU8l<CRCo8bTVLe<}kaB7AA30<>3Nrur9wR+wJc7KUaf-dtUGpR>B(g
zNy))$jXlZ%r9*p*pEHOYQ3YAzC+^+e+x>?w5JdqBl>KHoRgunILTF1lZ&>Yt);e{E
zYluN&+6(UBb^?aHRX!0Ql0+;;Ef69EpuX`U7$f?9?}S3589|VSLSyUd=76OiXogHM
zmKWXgn>ZDN++#PUuidNPvq$0FyJpX?c=^8t==|3g0>Q0Hp4s7_lt#r^Md1Q5GC&-1
zx5lQ5yI#L)LiY&(dXfXc1^r-ci67;V7(L-X4AlV9Q54lgRaI3t|GVl?>P2#;2dHr;
zsleJpNchzjRN5n`(ZR)%abKK%{cin&2qV!JUe1pM;pIGy#HV>0-9u6_V<tkHAL5!+
QU;oA2kxmpOCc$M30EVO;9smFU

literal 0
HcmV?d00001

diff --git a/downloads/python/ibis-python-client-api-1.1.0-src.tar.bz2 b/downloads/python/ibis-python-client-api-1.1.0-src.tar.bz2
deleted file mode 100644
index 5fb22621c4fca2ecbb27986a3f164143117b3759..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 50642
zcmZ^}Q*b3*&@P-zY)-O+9ox2TXOc{8+qSiXiOq>^Ol;e>ZJhV}{=d%Md1}>q)<yS4
zcU7<M>TZ$W7TnCjS`?~UO;*0_;H~}N{|`KWfB8SF)cosa*u}S9=)v!91OrD$<$s>D
ztZ?V|s+vd3>#owhfRNtu9q0e;YhHV=`|P{4ywNV;b=@(o&DZ7o_}taj#Xl_BxxBvp
z+k7-iKE_;ghrV%Z>kNhKI=t}ex$C*5zRT6YJO6pxyLu_}%EkAw<u6PP)x)-g>$CH5
zV=HZQp32hY%JO`x2Xe|-p}R}<Vvq=4M?Qnuyqnuq`>L&7&emS$7)vwKWc8+dL$<y`
zcYwFUe)C_U6D01Yt#f`9508v_?~WQmo6GbD<Et8XN$>8dE~$_uZC`@GJQU(<5bu8X
zo4#*(P}KY3`s_&n^%^sLwy)b(`s(pEwaue$WR1+?N`9W@jNQ_Ee+Rw#P0A8*2<<_+
ztzGhW#mNkOBw2O$(?b&f)-?=@7C}9s-p=@FIQ+%6VQCdve#C-Q0#ZUt_Gx$AW$6~{
z;^O0?+dO$PQOZQ3D2Eka+d53-W}~xN)4t~lV#yOqVQ2ETQxw?K7J)X=(ww{Hdd}>^
zv%5Bsr+U44z0|5-QhSNL#`<FL$#V?#a%rg2R`?I0@VR1X@bMI5v$rUtEU3qfmDXO9
zF+I!Pc`5tHX#gd29al$H6aCiKFK-80%C!=^<^kx~Wl2k)<~~iwjSinm{&m0={$<nO
zUk}eM$+&sBjvXSgP_-e}it=uibdyx<`88Rix(4v*RWZu7I2`8O)AUEiT1}1S@#avt
z{99|StCftrJXSC^K-`Y~Ei-THlGCNj&1?P@h#GHCaIKB2CwJehr~6BM;;D5Cd)~O&
z24oitJL87UuFXxG>@6?XDMPS6ZJP4Mt83f}nC6z2X5^>X6ss;IwOr2jvJTpIJB*H*
z3QoPLjyN#y^(ka@sek~mune{Vuo*CUW=aqk>}Z6Q7hI4D612P=26f3AxS~9pMH*%D
zXhw!Du0>j=P*_fhqP$!Nc%h=IB|lq`7?Ch6BwW#G2!`~*C|fVT>S)nJCIv+aZj3zJ
z`~sV0i98Z68yFZEE|>-Ge+2eFZ!mN?l30q6d33X~GtY9b4D*6a)p_aDGr32}ziSyt
zEVy2hWsMSnXV4iYZ1WNU78YR80so^01|js{fer{I5wRdr9Wxdim>Kh8XUT~zi?YRG
zD{U-o%qhW8UHBv#<S!-=8yUeR$opTl|9go=1VR3Q%P$n`vrGudFiWC{#kG{@m@`(z
zr6_r16V3?#3uf^@!r*!Tx#R!CPs|W-u$TbIk=Z;j4C0coh(V^=eEE`CC_b_I1%kZ)
zHRt~q{f~~c^W)9bNmNDr6gV)|kHiXFFhvg!%_QLr3oV+q<qt3oGUImVBseVrn*ik}
zo%`YE2uOnbs<$m%^t@=ecMpDL{dvs%pa8zQ?+tp!@3~l#Mq-$Xm+azjmN?P*<Ft0Z
z@Z#rehex6~GV&J^LY=KZ?7m+<J1Nnd6Jd0~iVITEtc+&0z%A}yC#qLM*BWa>6D&4V
zG%`p?q=H9C<={f)ZIPKDMzac9H8t4+;fhJaWmtA{{XDqFW&B4uer}i$mOCeVLWcQb
zhnA#eQON#XZ*Tve?^(P2TdsL?QtQ9`6?<R&olm?7|9pN6K6DFa4_-D2Rvdi~uX|t5
zj%g$;=Uqx1H1d2Sto82ICM+7vo9-CTJ$&XH&pj!<DT{ZYq|T)|;i#>jIJFbN-?+ay
zI<@+4?B|E)c*n&n9{X{sJ=}DSo%wV?eB`%pV_bYy*{#`_u)?L8b3yK}zDxdGUz0uS
z<Xa&%G!x!95<dY6O^l*`BNTbN=fKL+Kco&1ekgdSU^nZTSAQoRx{Lv_KL}$}o2aaa
z_)l-}Q*V@C2quLHz7_;Zd2y#h5e)CL7lN?t$)c!?Tu>atF&+6>Gu2D#PBoqUcw_XC
zb6Zg*62%jKB(mAra&4p?JkbQhVK{qiY?>3KV#H4UqI^(AHu-2c{^ZQBzH0HYt=A_p
zNAz(C0`x~HsnfF27;sR`D8n5Qk1xx=tqtGd^v%kAI?_)pXI*+VTVafZ1(}Ns3mMLN
zsD(}#^a<bj_V8#j^`<&?Z?v%-UR<1<MtHE}Q`~E*r3}`7d_hpqWU>srV;Lzi@kitw
zlZ%J<lD%7_VnZF13fWi_ykij5qdJ5TI(hX=^q;=_WfSG;l32C=Jt7)#&xaBt`Wy07
zDX2su4%ieL&Ai00re@UI<)E_4;QgxDpX}g$e~;g-?mzSq_03|Vax7!>8affzG32XB
zz{;8nk#;Iru@nWs6$AE7pMA9~&7$mvusqCl#7rESFdaDsD^nhTkg(*uK|4t<$;t*z
zkY%eeS;$q;XQIRr@}_nZN0MQe9MlE!QO@a*fEV6vyoK<Wl69ImW9mOqJlN5)cp925
ze^~;8_2_yT!^p>)l<|7%?H4|y%FWD*_owbX@TZ;t-ct~?t9Ng$G=_dyg$8}c)_7f{
z(+?)3(8mIB+?trLK3XM5x~t(MYEpi(tZZlA6zM{+@!UnX{``$@b|Ia%i4C9R$@5BY
zUGHOyhvsdI2it|GAB5>X0aY=#DI6MYsdp_rUkd0^7{jWg7ZVfxKA*C*8$Op?-^-Ta
zsz(PGwmI@SNLMBC;)=mc_X4gsi<^zt&TXf5)B{3J06|!&^}3g=`25@IcNqcX@a|89
zKPE$uR$s_Z+xC>jy@W#>H{FE$pSWvk6{fz1-#oU`Yu$u{lW)jez@)LohpCp1jj5O4
zxjQ%B3aP(}u>?X~DZW9Y{`1fN*j;agsFCk@ge88Z;>~Xa?&lvUtmlMvvkC(TuUo<z
zPyd|PFZ>Z({zZ?Dz4~{3_+G&OW{YI^wHI5iGN>JM5KHHu>^OfVNFx!{UyjR^Yds&L
z>^XXSGJRYo^~(KsuvT+pzWSJ2+Hl8rZ9W-<$436*`)v$psY{Pn3wn8p7mDJ-gk+-Y
zd#*!65SjJ?;i&XH5u8XiEAuSk-OQYQp`hfxjzPvH`6{G!S1`Zj%6;0WUPtKP`p<{j
zhH*oUy%cd&b;G8vzTo>0uf26mL;rJM`ml!+t~>o^+;}7S8uZ3_%c1Bk#^SC)?Z)`U
z|BZs@o89c08-1x&Pf}_eB<H$0);r;M$IO+(Sh`*#vb?QG34NPXwybm4v`jer)ll>e
zGnG?+CHi5-bzH&A5MNzuyY7VOot}$SC)&M^=~7q6$9A+`bk)s{BRrJ|FpVvd%SD7w
z75VOb^i$mNjemUYK6YL>f6KK~h%Z~QN4WUDEA0*8>0r=XuKVO$!M?okorpjpls)M^
zc4?@;=la6V=eBy|BFpi1MgOkZ|J*=Bec05KLb8bSA4;m>Ge_zD2TMl5-1$Y`{Q<5O
zA;=zqwNU-=ts8&NdCsTLe25-z`w!-&@;39%&;N3GUB|}E#}oZ}-%^&JV-l-z^qsKp
z7`krAA0Cdap%Vc3MI$#^Wo<O$VN|y?8!`EfWmbrFn${A#<GkJcX}k1Ke{=Vjp#FN@
zRL5&v=8iAic<KeG=s-tpW945i;AG3q%CoL^o%(Bzd+r;7eQW$$ox}vTuG3@wieRG8
zC@qKBD9_EpGj9XwNDbjs+50UIJW{+)@P(1O&y-khE`^!3g~l5{f2Mz`UyeW%flHlk
z`qn^kQ_i=Mou69cYdROd=eFdYS2yM8zn6!C`%lUv^NwEt0XN3VX+f2VWPir4VP|@d
zxSvO}$K9W6H)dUTWu2?K5RLy>XMI!=FeBZ+2qKj&yr=JdYtG-l?kO>O!LvMwKXQ)s
z7hkbHyG`_gb1vUVUwA+Gj$*C|Lj{j~VWXb?tiMb~L1%pkk)ZfBXc4H}6;x6-v#IGD
zPlfOCtIz5=JzDZZh1mTRd49{<KCY(fx1*dSnJKwmDAfc^F_ApdFZizqLDR%44naNL
zD9f)(70hoOlqTx7a^;;PqCqji29y;?`YfFtl#|>o-oPA&vG90Rn}wQF#|rh#iZ;=L
zydlSZnXq!=`g}l#+Q3jypoRFd3L47!b5OsJBB#7Xj6rP=OQKa!B^?4QS*g^aab1~d
zHfeE{y6gM|#cE)!$!680I9E`r%9W}EUmoPXCKWxAe~rfn6U<SMWpX+?5tWdIM+~1Y
zWyn<v$tl@kTYb18BB`Q<7=8MrZH$a1HU%$1tt$v942&n8qIN0DGS>V{xcGXiXTm!*
z-|Xd-#D6!U6GceT*f??$fCBx|Bm~O)aNf7zAFT;ZfFT$#`7<hybI~t^2GY%CB8m0#
znNv%qj{=Klyl=0%i@UaeWR=AFra25Z>Uz!`&K@abAypxQc`J(If*%=>AuH(eiQ-GR
zC!X|%*<iRI@=Y7lQi6>@y_3(2V9t6S`h>=3b6>!{x<X#OVmTa@zzQQuHu@<|QW=fJ
zcGwlhTtyKAV3k{2iy>wKp?aXI?1(}(4q%e}P!mre6O$n-fF7#OvTHe>>QwW~diz($
z+UT7R8>-ry92k!s!o0s2<sr;q`@=14Ww-y@EEj8VXl;o^m4-@)4=07tfKPGWPw}_Q
z9CuL}88dsII5>zs%Hz?<+4?&A5GJxdWPsySE&yMIpTg9u1UvzcyAjv5g2ZqrYZSj;
z^7zygI4l2PU76ct5_gOKl_<nNpe#>%P=Jh35B4Y=Q65S}Aw!fHp%g(z6+#?@&Oi#8
zo+lN|+tIXl9z%8FYnv|acLp{lVaOENcXRzQIZb%rKs`Q&Om<n0vd&CYEq5fQ_5*gO
zzwp(+)UsVuJ_dRgF~P<><Hz(vYv_B|GMMpdD^W=>*r+5eCCw6N@sq$rIdyAm<4GhY
z0CtrI0X}@d3)3}$V*T28hJO1Ix9}6ee~=pY={3u7uvPPb{{lq<DP7(CI|;d|dA51?
zw#^dvotX!5&p8&ZaRr;t(LL%huOC@Le)GB-MG;A7QPTUcu=vNu>Db;fn*E>4-MFUp
z{=B&C!FISc<j!M$_IsDNnw+a1*;DoAqTTC=)v(skVI`aG3}o-0#r-QeG2zp?dS&%w
zmKSA;B?H_JlL-qWxl$E+4P(va%M~>nasPVrr^9evvenz#n9DCa_yOPk9@}R=|FD&w
zVSi#ti`|Y~(2}g-AFEjZ)RzhKnV!7+{I~e>6~=aErA7fBCf5(ate87}?#WNU$Wb15
zzg%y-yt3OvuVwN_b$Nkq!LYin;hdlIe8M$1<KD?nKe@$mdyC9H#>g_*sIt6HyAy|j
zp1H4GcAiI4v;--V16spwczV02A)6ddqC8M7ql<>o+}2)!U|n)scISs2lpH2xAYu>!
z0f1;8^8^h$sh5Dp5t)%7`?E6#g__8|`$LcFuQ(0ow(rx%ek2|YeV)^c&W~LNWMr=W
z*e4{3lyXdkqfgJgjDcYzaWm8s{1J10#$Y6oF{cIF$P#l43K(b%>iLe6wS;~mhb;q~
z^tfD^MO|0OxaV?4br!_hy;;N@FNvi!td~<~ibwqGDvR|JRC9hunc{+57BMdSG!@*t
z&K8$DJ1J{4zuo2}fRSwG<N0z24`7Hn7{gfhIpfM}gV=GH1xRmlGnWw(a6K&ex;Q&b
z3gE)918?lxO&4JssO^P<6eFW78{$C})Sni-JpSY2fQcA}?0sh0zLLC=ZG?-JCDe>z
zEFWW8gdU<7VUNKgpYNf-YRhL}e2IEa$J!u+T%=l=FVqP3Bog3BHX=VY2D`A!OeR%F
zPbMu>pEnjQT|Pu7UijH0nO8_To{x{6OP;32m_cER@qUB+(o{2YE)e1vQF5gidf{EI
za*^*gCjfFwt$658o$LCYA@%0V{`M$STPiWzMS6Ou<CTvQG)|Uj^M-=uBXNV|6Y~`Y
zWuA0pq#kVSe|^dSN95rX>1Pp2-vmmY1jfOHefV#lym_|91~OrA9B=;}|M|i<hwo?Z
zSZWz*I6^i&Xh)|x3SM3HIF~;+1c24QrAbc&`WrXz-9c%gjwB;a*rZ9J|Ku{FRIB)4
ziCkrnT@dbb8^HD`&D&mk%|eQLFT^7uGSDK(t9}(No_Z1L-Xi5JU{>qf&U9`LRA*N)
zuKr|P`bIZ0>NrP&K<p9sqwVfwp4Y%qQOQfXd2RG>cx&@W7ZiM^xRT{r+VXx|Se=*?
znDqG3QKH$9jt<9^pZqe}e?5gX+qK@-VX<o0TvyixNuNq+1oByutgLXA`V_=c>zFcn
z)i2HZ&6CrRsiNl@*1skotLtTWNSNy9XY=}L&!|!I{+3HC?c&oW3o^g*lhv$14<%k>
zCNI6wJbM3je7raG?afhP3EkD$3hq1m$?ydsBv6BY{Ctgq9l3`vm2eO@ayjaZS<F=O
z^R=wnZA46nsaE-Mvuc^j>TIyI^jJ`Ex82M+bePvBJ7qYqqDt>iT{f6?;jL2neQ>sN
zWDx)31Y8*nuBd|db9lea(u943`SMe_kumxPNFiYYQI)xtZs;u^cQM^G1Q6vC)Q`>t
zQ>R1Pv2AxPu#MEv%yl;EG*@(%B}(aU+{AOd7~M{O8-29Z;e%&-Sq!$Gn%zgI7P3m}
z_IqJmoGe(ePV>?2xWjh}>xqZ%`oinc{n?#-Q=RPT?5%eg&!w=$yP3#EjY{`KcN7z#
z?Ji$R0~esAs{X^pNm_C2&)j08az0(3KE=P_;k&%OxvF12A2Pq{%w9DN+E5b4-w31c
zo4&BioPoL(@n-iIn6)uU<f0VPDbjy<w6v<?bC%l!2*WqORIJPpPQHQfk{R|(l0mXD
z$Ydkl5Qs<qAOGC%x{tz#zOHFimp;COzqdQ`pWRs5e4}%nFWmTTua7?eQEWfnzUIEB
zI_GCU`Nn5_5WauwZ=Jnu8(;9FGOG9hm_Ny3=OGubd>zKRoKY7s>!iLRULhB*F9w1J
zbTtXj+~w}njJV9G!wgIo)WuWp;MaEj6Artj-Bzr`LGx7TMWyjzv#=2c94@g49zwA~
zHgek#97BU*ojuXDY6gXUJ#rZa&5{TunOi{M4^pTo5lG@P%-u%HN9x*vB_k{#KE@5o
zu)y+~XeBd6?6gSd;j`Z>!wDmda%DmRib9DxJPQk5-^9e|$cL4T1$iQ=f5W>kVy`Tw
z+2Si8wD*TFVW~Ycon?=oDE4V8Uu>TUqOFEZt6*bE{J?wKf`YG6*dq5$t4seIKTB9E
z?F0E8Z`IT>B#-jC7%V6;HB|JWF1yZ3P~EIG_OU)B!sC?t*T;m>v8&#_zHYPDz<SKK
z2RFW(jcO?pTPur+WH+~Df=%e8jU`9eT$7_A(Go(hD>r3j>Lc1)c{E`8$m-LrPcYy6
z&EnKybQXYzz@Ec5yL2`G0o^nh^ZI2txK9KM^ahuSN4fTL&iUez6c^=JU#h%@0^S)X
zkcaf_klV!Lt$WvKKly(G;xAp@%P+8)MVto_HvUP-Er)w8uXz-HzUn@fcASbOylu;G
zR~)!I?PScCsQV1W^TRrc5+?^`K5A?^5H7k<$zY<)nmT-M-~T&*uleQ`w7&4YKHhH-
zq`mg88GrV#+gpF<CWJXWx#RNZeErf;JoByIpMf!q+l^pCvDrpMRkAI9srzfI5q;Jv
zItz&H)W=T7CZt)*Gm+N>DYG=ZQYhzk()A_FY7IEpVss%B^huICAx;=ml`ut@l5lUb
zWA5$f(^LR@vBYc=E7boiN@HLq|CSch6Wg!V0cIW$FaV1%M?hRLeF+$Xse@;a@&Tuh
zb>2`f#^-Hz9cEfy%el)L878A@D@0Ky{LR75o5O<)f+&W@erXH8JQr9M!kq32H;$X<
zUxj?$J!}g-u3x8#7UGw^KOJHtjQ&Ybcel<W7SrIvO{77a;iMy*>`lK5CXIirZTnCD
z7aN3`2c7~HxqV-;g<}7u1>usEQRv-jJ5oFP6e9y<baH7PZ#W)kaj*gP^+E6*+dQ2(
zWCVHGrC?&{5^gK`S3~Lc8j(pNDv+LGT{sbUp-D&X-Yxe9<Ep_EyBCV4O=tX^6L#*g
zrIRR#l{$hGpzj;_h}A5(fP3KMkEvpKI}v&7Mu<PC#Z0_s$REN_$#lT=y}jML_53a<
zyY{IV+mKmeS`@P}|HBmCBz)&}Ti~A;GKmOu%(^L&nn=)L+Z0^taX<~@92#7^exlJ6
z0&{4XtQ>GLw|+*qbJH@}Sr~-Bhux8|cPunRi-p;3@|gbqS1}n<kOWr|1W!&<&{&XQ
zi5jh`22GhUKY2iQFZVLdCIUGHr5xadlSpvj;+gyKJ@EO@_TmdB|M_-;j85!ey`OTv
zM7QjZh~D6Bpj$Z1pXS4hu$KNTcFobf&@fZ#R3Uw#{D1*plR=4-x$vcj&Rsr%SpUIe
zTq)Kiq*KTo2cMIW-|7K<CYkz$AKnjC`6@P~bQ5m4A@~}wpe+7CLs-(4H{RG(EP=KB
zby$_1pqcoCbnrkZMq_Tcy{hYSug3nTm(KaNbxptbp#)OxOXJ(@ZO4T*GFj`v+inv~
zynl~d59%}q_Etg)#lk~hn=~x)&n}~8){_nVle!>CWf8_=EWX%Z%+mG4Yz;e$@w%H4
zJ`iYx^hr=8k_T_wFWzO>K9Zw%>K_iTcc(MI8Q6MXKz;df+%9xue{^m$lMjKYFHXrN
z5CcTMU-Lb0ZW>mGID0pq;n6t%(4l{$o(J26j(Jl0hsU_{x?_tZX0iFXndD+>qN*E@
zvpe|cr7*jcl<7hL80sHi+@<s)SyYLLrQY7Ug=kVZ5P>4;?+$+TV{~#Q)HroBuD3v%
zQF3dQ=wuD=@8>IGk=trS8zL)33IB5$sV3z+@?tPggGO2MvQ%Ry_3SWyFkSMB^yO~*
z^i{&X#wrM*xF<)e$c<hux3(VcZXX`RC%4+o8Pm(W-)Wz?l8;lg>guGPHzxuu8Un$*
zd*Wb5X?fbIXn+&wb7t|p?IXVm+c)9IoXyH=Sm-S@dB`W&902u83K6P8R7=yWpY%9}
zlt1O1%vcnRD&*Ns2F8vcIg)6Tq@g;J5DgC>XS%7IGw!IVeafxnNvl#q)j{&(g)Ao0
z&Uicm7nJFDVID1?$z~ub-H;!&HT`VA8TGF2wLyl?K@>wH+MSOd^((2Q&DCn$%=3_&
zsw-1S6)gPcUgU+Ho-jHR{LxG>QY`Wdw`hhIBwY|8U+}w;zXyKqhQ&4ZgMA!4KA}dn
z;wD~h@)8#bamxcGPr!TXzQFMA{K%<TmiyJmQ=OOX=UQX|pNKQ*Cjx~c+7?IQFp%}m
z$M<wIL@g89hB(og(*3>gy(Ee1xH+C>Z|%2H(Zb1kNq&J^V)EaMs9Ka`xE>CC0ELIR
z`u{>%TwRl^Zgx`L!ZV@8%UCpVJV>)>?n^-K-)Bd7qNA1J*}}0Gp7y&<hTsKfEA7;l
z(-n2w_~b-Cv56Mk`rjmexn=B{V%n2bgj^9!TAZs&94hPxCm*@beCQQFu_{*%?KD_~
z463B*fh*3H1#r>Cj1VB+Mt5)9aJ*_#I*~CZ0?bzLfwClRif67yOOLh&ZE+kew-<0o
zI=LU2#$@R+dFRZ|%F}Aslh9x#@Yds`nBh6_J*u`<Ao85t3;0>I5lgfjIU2mYqui2k
z<Qa2fFw2<B!Y4m`&&bexCu;ILHjdNS@`MLL1?j3f%$z|^A|kO4C=k>8OJq%ru2J(3
zJ#lP-fAE<tM?#zE@+4Vd5i2_2Y91yZq+a{p_8297s0nrAib$+-;hOip_K0D0c)6!h
z6Om6JM_SdqRXJWK7Nb-$NHZASMm&H-+(Xm0G-%0a8!#)xY`<aF&bsgQ{0Mu&ofWHq
zh>u?_$(r8r54Akfuz5sIY9)g`bH77%<Mcs&%|@Z5kaUI$pcbl*87h;nOicqxkW15u
z3$zADF?d9}D$gt5k);i0sl8b$|6df8mseLjA~z7ZEUdulEj5$qj*9FAyOSlpgd;bp
zt2eMTrK_v!(T&a48AkoVWu02LJv2j06>W6ev`gT~-fP>O@0N?n+`v#$NLjhSVYL-I
z>T|HDd5g!kICmIVDuq*dIOe0f-`KErX}I(5sM}u?h2bCU&(kc^?Y-SN;6<zp5gp))
zu)Ad=AV-G`d(L<Xq9y~r_EGI5n*M<zXqd@xVHs{Mvy~2raLUK~L-92}s4-InG7O{#
z*f{-$gD&o^!~F3CqXKuw6ifjdE}6e!Fw!r9`6IFSUWmbVbb2ts;(!C2e+g#hmU9JC
ze(Ed_O(ya&oeb-+Gf{YjPUn)m$+T<+b)TAOL|hOpM5{++n~?F>X{Lh*@y|N>sTjLO
z8*cO}-XaURKYcJtDwx#=Llzm<NDWGHMQaAtE$J;hCV!N%GP>!bx4|Rho<n8}Ey?ZJ
zFE>YdHt9<Rj*S#)JzNOn6_|+fR6MfL%-(m1z2oFS2IkgEUWmgmo`p|u?7JaCbBg0I
zp+IC50}$Hnu?D|xHgys)InmvR)tuKm3`_&R3fqjNH-<~PYD8#_l6phT0x4kJ+<`ws
z{dAIjdCHWB2nQxpK7nrMAa8>k(1H_S7Hazi-LVr-LEjb=#<ep6=@_N?Q=aHIQ-ljD
zU=jym1-hT?E@@b2!!^NzZ7J-74<Lf56z)ZJ;>k9nX%7=KJHIxt&Og(|iX=Lak)$Lh
zn}Q}T)<kjp+l|VVi1hD|w2VD(R&-TGZH!64HJl7CHE7@nGJ^0hMJ8Na*oVo3D9z%|
zdDem{DOu^I!{elSN_EVlm`a>C&XuMa!K8c~E|j)x-G9sMaPO$UbK$1(*DU^V%wcc4
zBUfYkD%R-6{4z^D=r5jy74a@2F;YoZ^Wd;?jjp5u|KZISZ~D{2T6~y0!K1b?XY*uJ
z!?can$J&$L>H1!MHDAg5<??t{>xozY#A6Cyr*J57baDpTX>z?$9-GjGDgcjgo-hwd
z$hRr^H|6iay+-uP)IIW80z8>#RmwRdv+`w(TVvYrF;2xDL6?B^e;HE7s5s^~KiP1>
zv-UATt3XYDblZlj)M&^MsvbXKoK>QL9PA>1C)+B0^m`<2?hH2}{wy#=nGTCc_EtPi
zG{Q(!F3+Fob2e7=Ia<Q=B&9L(<$49M{I>+~9F|v$xyaUkNf4f0J%0?7b;(gy9qxFu
z9c0r#qUwnIAQ780Rr}FLDWZBmW;VeTtmft|S$jn6L*M$QpQxuI<hO5uF~z1$hqXto
z<ZyS0-qb+XB%`I8%}TZ`@E~An$u$O9G}y!3XO5g^g!E>b1RkN=APF!sY__B{0sc9j
z30i<}PV+FQOt_5~ynLI9#BNP1pIEBKTY#@%W6<=OlH9mo&_YcRO;>s^+HpA(!wsYu
zvMzkTnojg`?F@L|$=2o7sZdciiZ$Erc?ac-B#VnFV}4JVhi8uVTn_1_Um84oGJMhT
znrL$5-EcOCc8j)O08XUjdO}oi$oO2M<8m=Y>-ba#+JIljuA3fp2RBxW@V8Qxbtr-u
zGDgNIzvHFe>V;}<`Wq$Mi!Sz0qKc4F_uuVpmDS-%41+-ITIwQXC-AQJYT^<Yz|SLv
zQ~5kQ-j(7E-q;o{OJIg5K9cLe_+c&ZD=wuf#P@_98jW!A{Q(LDGAqse_u>!bJ)gh5
zGu~7|)zZ=I7DAm1q;LQthkJ_=;mIHlTm^u2kJ1W5uX#a#bpEB^0Vc&ds_)f+?YR`F
z{~2~+#z<BXiQC{+Qm9+^E5QNfCn&_zZ<TFsFF|zwicXcUdMg`GpOW~p*D_~1gcwC$
z!G;zrGb$}slH!y7vNic*<Z8|ei?OMDZMCup3_H1Kh^i>lM!fimy4N|{!tLJt5#iZp
z=)I*FPIl0Vk*vnk0Q!_p8r|X&2+9|Z(NHK*eZe+t-->Ujln|zrT?n5JFbe~D=6k&f
zi4xsi+r-_pIwpn&rjMq3>TnDfCx>P>oy;VoEX)>4{4+m5MXI!6Je63<V_6e=Ec~z8
zQC-dCYBVIMbKQP1o5Jt$EVF`vx3Aq<Xu933WS*vE&U}CD$pC9|9b@N{+P)oHt6Z<c
zzM8XZ-`3nA*||xM_w@qX5lXNBosPCC`W6Gb^n*)N8rCt23f3M|9FtHTN<g!mEQai;
zUMhF30PfS$5JnfaJP~UoU{+HttX|L}N^1Guz)UkQRvj*yEb&K$E+ke@Gcn3NjTE7;
ziBysg4U|~0G}xS+1*$E?qSv>am+Wj?d;<p$?`7fKF@%Z0DnJa=0I*{Ks6&*X$w5s?
z*N$K1njW~-9Xt?{u0Ba44xjWyb1kye=Kmr?<iVHhJ*nry*{D=(H!W?#k>g;emiEnj
z1WcC!0UV$BI$4XMsIzx6c*$fYge7e1s|=GO8J4E0!gE^C6F@PWz@(Pdiz&^E8_U_i
zh5<}7=1?@_EUpu_!2rrKLqxzb8LZ)H0o53n#R{tKk}!Y?KR6(m0Co6>ktAT1CvB^z
zKLtLe$HjEO3HUI})H@(QhD$+&n~g?28vE$z)!AmbLlz`Oij*CS3wFdirdr6;hH6_I
zM>LBo#{_CpuD|;UiN&@@(K!AC9=tZtByXmfXaGyI2ek|w)(wS7SR{`byFc&^%q3u3
zHQ;#InnIj^gkK3|qgpimSy85=b=fv$-*n{cuW_r_Cx!Lyu70e0wIxPl@H-+g0#yUk
zssYV$B@7;K?Pd5L=U}7;3X_+=bJry@!h&s?IGLZ*tdPNdbN&RP2MV1<I?NfnC@l5x
zq=NQJWqh^L!6_4)rG<(RXc+9h=VNxk#z6p#N1$z=<0g}YokxqnBSnh@?=RmY&f(f;
zwtNDltOz&n^lVV_MTR-kQ2|(K2M!-~2(g}(2&^jo?;H91o<ttwT<yUae~a*9VYS;2
zDQkkilgZCBmjZ#;2cHMfjXF7-v57qSrA3}y80t+Cz#0L1kDTeCP)O>hzi@}%Go6iw
z$OZtCRwh(~9ujd<?pcbBl~&Iz9e-)1(osvcUI}4A;!H`Z5{Q);vx&hru!8|4oW%1<
zy_d0*Ck4u1Ay@_Wx9SWnD=vc)!tknqdno)~aG4l|akMAD-b;>ymL+ZpufYPasRsat
zr5p?6?BF$&e8R6t=5VlVIDb?>8CZh>r#ang?IEpy?!zwfd)|lW1?>cdH1EJd{$yoT
zx@{XD`kykB_Sn%$I}R4ZB1E;MGXHh8OSP}m(noOX=8A%&XU<2u=@_s+9%HWRZScjj
zOx7Vqc!D@JONHs?BKUCot)8W!n@=jLzs)H`)uT3=?aCr_FM45QjmMcZI(pK%R>@MS
zF9S830pSEqC#lXtkL0k#D-;?Eo3pmqXsbi(D;xc=5-$QEU)D7yefREFtSeh{B(rl8
zX&cauBE~7s2n7x$_`uGUoPss+D4jiGPTg3R&g2ofRBh3pUet0TLY01K%U}kRfTh9z
zh9(@vCZUx6`In`S7%mIfWPHy5c=ugq&Atgn2d5^gf0e|JmB=xbmyJ}eH6L(prNn!d
z%i98rE;)uf&ev_5*Q=VnOXXgXDxnWxApQVXK+%b@qUlG7`wjhLZa4}p;3vQX{zwW1
z77r=wtZ1^m0&|X{Cv^f&5oxBRbY;R-QjhY4W~9VS5)Q?jZLY5L_W?43Z$}@U19Y|S
z#K+`xGNgO2vFg9e$n)h+FwFO-wtuN@dBV)u78}IZJrS}GYxMz|0@{aUXy_I(D+5zz
zhvUBwO9msFqFF?{;ZtJ}oaEGg>x&=3kQ#Ia1tEu0X>roo;U@6Mc7`UCYBB}u-NP$6
zKKbJK&~G05exA#L9M0{``ocx>xA1>e@|cvsj~GT{838>fq$%^qE>BpIy`_tQInTt2
z9Wd{xd2+$|YXt1PB;j_ebipR_mS*LBpQJwKUQhhmvGYfs!2^%*aeojmPDhHNY854<
zmAc7LCw}rNk4@2)_Z1OEUkEY%eIn_VL2)4HCD^bFJ^G8)uE#c0#7Ux=3AM13dj6vm
z8X0AtO(r;C#uz^$wJaP0u#VbC_G?X4MTEIW#D$BAc*MhnnCTP|mBYr90c2>1=)wg;
z9FQc1AkUVvQWzMMGCRzUD+PFtk5BSukJ~m&lO;vq5TJmnsT5%aTOr!Kns|q@#Rkxu
zD7oCG8pjl7<`m{gliJ{T;M(95UGf)^;S$YKxuOx#WpZj2h{A%fcDM82prIo$Erjd)
z5X7ipF=L3>*ysg|1rFfTdxOIdAyG}rPBdHx+7mT3agl83gAH9Fh@lY^CFG>Y3XNp2
zHjkrip@(7;b(mnY@Qp@stj3X)CVOK{LJnojSUGh7(DX@|Sd3FW7KadrD+ao3>^()=
z2D5$$VOH|WNvhx#8<3b@IJhFr5vIsqnC3xtW+{Uk-Xdpv$v9lUdJ=1GC}voz6JbLU
zFWH#nk<=xTk+Us$`AyhiBv8=NP1vMXVb=Cs_%KhGkps@uyFv$BTiV-;ZK-r<eqmra
z=;~<VZ0Q$O8oD@H9B3c{*5%n|9-G73cM)qvB_Lo7q5H1bJd1jr7{W$aM1t>Se(7Xl
zbMmB+kQU4u$pVK$^30V3sd`QzAd}(M@ZqAtSmepMke-NIb)ioS5Fwc8Cx<*UKe-PQ
zrOAMmUtlV}gk22UjXG^V3KzQ0qE~7iMJX_2fe@W1)dU5jI*4#3bO6}u5%wQcvu92c
zh(5MBwkJuYqzyyd+@UZbc4+bSd?!3x3?ezZy|vhFZO=w=L|2$OizgJt4$|^JbO$av
zq;=oHhgfJS6J889*<EE0EI_@=k_xv{gc(lgXz)`t5=`;Qp0HlVdExSU5U@yLZaF#q
z6^&j67PlD~X<JDnn?`?`jA2C}WpRzFrP|J&d{WmOU>3djg~Ay~_?VPy^GtH)jimJE
z@L$u25QDBZu62=KziXG7IbHgln-x5G&Ea6Iu+;I7$`m9mR&JRtxL=_AkC}`iL=Xvj
zgGDCz$oLTZi=+%gh~x;l_i?L!cZT#Ca+a!{y2uBbvlz0G`ig@JOcdOCgR^@X?5Nbr
ziYRb++Dcv|!(xU>%ny?WW8Z<(HG$UlE?c8<tJwH)Fpe8{2mv8dz09b=b`pIN#G&{k
zBQ7En)|P0l^sF@XshT2yoyiz={5_&oB5OAmp+EvI6N^c9qTBL6Xhn56h;$Nv9c1xb
zM;ZE~y{r^vDmdnwc=2&K&jU7zA&Bl3hQM}-I1$d7x{9VpeyfsV)`ldaOHt<-i!Qm}
z%<l1Ja1vd^iud8iT)p-@0-J!SC*j6hTp}5`F!Q*$zczXA3}aD*k$cvxvjyDUG4knF
z7re41m@$~Vu9br&Lp~^X{awD$fq%_$@bj*g2B(FtPJl{Ueh@dUrtrPp*G~w9<WFoW
z=87n&0cAg9K<S#7Hw~v@*sF|fcP#RqIvC!iFa-ClJ?MVNsOdZSx5eNH!&!*K&;$kj
zwVTaBnmRR>ZP3-9h}K;v=4nf*AXwhCl2p@yD=D{I&ihwT3{;|ZUdIT|yt9jOM~Dxm
z>>Vt((K=l8bzo)|aJOw#LfkcZpjalFyu;pZr-O%e=1hNRTu-8slE>LjW7hdbZt-a5
z$XAOeOD96zm8<RN<}gDn9wJN-mF}@mvp~V9UG&r#m&pCDeQ#$|Tl>|m0LVsp3Aym+
zi0p!J(v?H?+9vzx`7-gUjRxp^V`qaT&lr7lflZ-AdSD(Iqxm>wA9NwkM=B>`K!m?_
zZ?eO$b#P}{g5V}oK*!;JQcK9>${T&%lE1~TLPn}Sy4S`J%^Xc9A>cfCV|#zMa#JHk
zZ=~2yyI@V9OaMJhnvjEddLaKZKWZ?-9f+j257s&8fNNOEu!@vRva$hEq6r0a&uD9d
zzPM%*B@P$e0K{`5@0SGxkB9~yX*b>O0<cwXba*3J*t$ah%mA=Oh69DH({Pc6>Q7+2
zF&e@9HMCKMgL`x^+c85$p%D}8s83p9q3qI+osMVr&S???wle3fBazk}b_#eM5{oia
zO({-`&JYoWn8b33R(OD|RHvY|ZWjeaC8N5vtX9!p(RnE6hMB_^FY&=l=9pWk1FKZy
z$rN`U@L#NT+fvuoBcnCWI*^=PSgr}XyHYu5vb=o}4yRX7VH&|na~>;iip~SqS9~Ri
z`N=0%GdE0AA=EjnAeQvy%<66g7euQAd{<Usvm6OpR*>;Eg^4fAPqhQ$0Uvm-x%=Iv
z51&6Mtb0|Hx8?Z3PIzmwn`Slk$aHINv}~8figr<bE4LK8H}|Cl1=br1370(S0QHz6
zOXb^&?(=Yt{N_>Q#8Qg=rX9CMnRbyxfzwA{7Y8H*;h7um{+~9u7DY=EbH;><!4=_!
z_V`@3XN1tb!GYJdYdN76iBPq&RF(xu_z(uo7sW2kVYTva`*Zwc<&@IGT=T<=8bUrJ
zs<jW?C<2b4l(StF&p17M1qOUBz<fj)beSYXMM86iWevAUICo${Hr)jqKP&Nus1cbu
zF9hxYQN1-r)Kch{d)lKHHMe4Iw?ZLzz}SA5CpMNkIEL=A2=aawt~9D6EKmK5$Kwl6
zif7t~59mpcSGwJ9xJPNmgTKZwkJxzTt`;@V;pBO@hu9!Yk;V<!A1=lnkBx-H!zcn3
z=7k%`+GDX|;gMm-I@&N18?W6aY`n(CN4+{`^<OFtp%VfUUA*4DBO~Z?_`$w#kk*d=
zk|UZWbQL}jR<}gnw(8Q`a6?Yw`Z;*Pg%mS;j}DKOVGi-uF5D(${ro`qk92YIqHfu@
z**+(M5#qmDyg`2=V#?njIAPgEfeCa&&mVn~1wE~{9QmqsNU;<RUM4AcEe-OP$y-}l
z!*Z;&h^#}|$bn(z38gTtF!K=R0nEC;-J^KHEAW^M_+yM*E~ZNf#vb5Cayyy3FO;<D
z*l#pk#3K9utN0YiNHFvoY8t}wt#}&4j*Y{-DhbR;`cPEY9(TNAhw1qU<N++z3H@qH
zB6!dc`OHCb*w#dKtYH}wGd+A8jTZ?m%9{t=LQNK~7C^u}4vfS`!UYG5Mcz0biBZo`
zRfB458Zb_ZEuG>Zn93|Q0d%F^%JD`VT(%I`r3z?MA!?)^3~xB5>QyYaTyV``Lh9$n
zgV3N_P2!Z4F*D<8Z7{o}m6-i(Mr5Cu8T<W5b$2w;I-9z45pgOZ(&%h&G%?vy$O4W`
z(<i#j85$v5;FK;}$a9-=&|aY<dKMDX0W+Z`5&frSRXWu1f-2*^dksP+o{hlk+=vHm
zWWRB}0}8T_=}&Rmm)##}BZ>F@O;f9ktO$+VW-<;qF!igvpc{qi7U6~25?+V2?(Ra;
z5ibD)d5|6%bYWnGaMY{<uqJpT?E3GmgU3{G53jTC8gahM>2g^J$uZ?T@B18chlfsd
z{hkIa&O-0Zl~^uie1e8>ZN&h`Peqq-CS+fHUQIrw=0JF&J!E{|_3$+1n*3hFybun9
zXO1XC1fb@VR!<%~9@88yGtwlEDR4f$H%o-O<itFZ0IuISC^eB|b+v>kf&s>kbu*5Y
z>GseuC%T{uJ`t-yfPheMT>H~T845MFT%R_g{(Mg;TmzCEB?|d^2Xv)6^jOJO%P(2$
z%&hQfx?C@H9~-ypQIfGTSKVjroOOX04HLx8$vbH?>jaF89M=+M<77r#3KutLv~nqu
z=|{w@EJE5E2J@nex@nQNgie5v-%+|Nh|}RA01i^-trmvxvzA(30u72$t2nPnxyQrp
zfhC4}Jj{{&=j>~HxJUh*bk_^}E>10NTs*uO<jKEUjk$_uY4V9##l~WhCHOX=aDec1
zbDkriExLU{Lh)>9d%<FQBOJV%jebv~JS9IajwrnV;Q|ANkO$7SSvphnlDw?h-o6<~
z{VRQ=IT>xW`KZAw!aw94MChDgs5tTja)yS^B&B*IB$#KO+9%S%dZQuavWU7~cEU&9
zQ%;A`@(i!C4C^LIl!l1K0k%5GFc7x2BB-Tx9l=SF^0*o#lp`j!_0jnKa)BTwV`6AW
zTnJcbxT<mSU0ABT76SWdiAj%swvQHkBN`FUBDKho;UuG9eK;7%wiMD?#p=s=S|~%M
zdt%(e{V=+ERWpyd44n$k>BF(5H3*EXr)alrOp!;-=2dZ>HlE>9Ud8d06g9!e!nThv
zqHf{a(A+>5>I>WceBm{bKFSD02l}XR3V@g=Mxisu$HI^(HD-M!$lHdn{sSQ??x<{V
z(+Nwnx2V?0U<<rwDSQESwl2rkgbe<tP6i$!>4wYBtAfFE_T-;5j}4|$^)zMfKVBzZ
zSN1)(o6MMANUsPB#fCblHeHCuKN4f$&!=GDW-p9i?P9MFN10j-e54G?^1_$TIM9dM
z$sQ1WYApJ(u%N*ss0!|FX8-2Du9vz;dYEpf)#Xe7qR;x<wA&gPX>f$40HVvhmo;?T
zcka0qC7eS+%-O{S6eTX$8>B|ebq`TW5nWvfYb1&qWjs=VB01I~s9qSZVZ(P$_l~Sq
z;8u|tQJqJV*8ySIm~;l*#!EY*i-5}}ybh$Nu2S$)W09RKa(E6ev_<9mx%Ck)vZ8s`
zh&x;;Sn=8XoniO3lB^J1NUjGNSpdkugE>a*DjZf%N(>qriyN9;x(Z|fc$yDcH{PRT
zZ|yRa=tp#a#sizbI(yndwbWOVr_Bk<_dsu?7CCnmvM___yijL&<I=6#apmL>lt|DF
z?oIZnz@p-TVGXVAK*&x*vk+)8gg#0f902a!UvvLaZbw=mcHu)sr3F5CL>$9{1nNe6
zYjMoM?DKnXOSQJtHL$XIkO>Z0_$?r1;aJT2a99nrBP@HjoY)NZ_bk~b;o0xA`AjFd
zJ>KT?`<xps&MgNqqOxq_eo4^U!LrR!uXGRn$>EFBfEP6->&ds?GLbJz6c>R#<b^_(
z;X>U}%94kfSb|6jK~L+%;>oL((CV4dd1Kw!BU-`NcHs+`6AG8`0KkZ{F7Ttx`@zBp
zM<22yUk>h~-av9#lVU4J98p+?q)4fS6053~E%IP+xGf+M*isEUxO#(+uW0?iwS(5(
ze1Vfu{`KqOKQBPt1E<P*m~6?A3TElZx3)G$G;EqvntOwbOjF_-r?#;LssETzo#rU2
zDi@uTxZ`Hi^f$9mpa0kmz-4rdGpg0oHD+OLz<Zkc6jL;)_2SN?cx_{K?Sv>=p1I^5
zXOc9bvGd`cywj*M4x2BJ5vwq9!m2FmZ5qwG$U^V?xft9?ElnQ#Kmrv}71%Js*5RPp
zGctSQTeRO*%J4ohI(EZpW1}FRr3x=Qoy;RI<w{zQj+rwj!==gd1D@=f=qZIsGYR&O
zl!VBwlu0N+sSK5dT{30kM812Hj6@$kWX(+;cy!7j2m9iUtA!Zp1~K1x=7kTECd;7+
zb5Sb>{~<MEB~+_Fy>Dm;jZffU2!|9B+;-V`!w@AAP1lST{PRFL84;dJPo*~K7c-3C
zBQ-+>H&p8gFVr7)Hnx5!G%jdh3BV)V+;C#GKm-A^jY%5;Q@HL&t!BQIK^r(RIW)q?
zPE*z2hWLn49v&8Ht_>dg!9XVmI?Yjhm#Jf3LCR5a#5&N<ndYCF1XOqlQX*!OI4QDV
zDth8+?jFq(RCJ#Z923xxom7}Ggzy?zXaY8ajjecF-YnEI&(FF>zFt`$R97`B)S(~w
zL9Gx!5nNX*Yr<6WvR`96g!z67)0~?c#@N(3hfYMp2>%`nH564ftv8y>S6*i`vY6G0
zLrmjh&h*0&FR@ACOrK&4m*m{AsKi;1nc_0u5}-_p#gLHHGz8p<v%9MA^swlglVszw
z-B?Owip2vB5fOoD&T$bIhi9kuq&|VIx2R_X43!2~C;#mqq<2R!@_62~z=-A>+e=0u
zajeW6q6VSWdL}faQ_n+nLA4p$=Nrr+{1TrRDQVM=PJ~1c7BAuE$(~W>MYUlUpG=K#
zf#SnrXcaaT2|-O27NQ~P7oLeFQ$s9tQs`$>UepX{JFtWkjZ!UGX_92)n(U~fGhX1q
z&m<l$v%RL4F&@e5uN%Nm(bPo3fQk#9z;pvBy2&9(G;1i)0VNJFXKR5Fko4opT*3zz
ze9#;g92YwtjeIlimOASluB|K)9AsK?m?pJKnljOFX?XLPk!$>IY%E6+xE;($Zv$-f
zBah9Y_%aUsh(GirA`V1Xc1)O@=~g`X#MqcI0tQ@J!9#>+<DiE!d)WA^5Db43gY_>w
z$AuXJFeo(-k4zd`)KDF)Vqdi7X~TRnLNJ4%qN#<C{?05#Y;iCtv8>Fu!~VBTjdkRp
zP5UD>LufFpy9Aajnn=kEBr_Wnb#3J5ppA!a!G?<kwHa%GAQmrRA*C=*Gn|1G6zIL9
z>pqxsoG@dGM<5Z9Xc7!mVnJ3Y;rH7@s;8!N!x{!n&glwGj&L{#Uzt>10Qchv{+g|L
zW1GMoI1Is>5~;_M=jXAEPa9@NkLa=hjOkp6M)2Sc6zpWg?4$8MNEVkJjS!;OY!FN<
zpEMy(;G$u&0Kb+gB&0CrTT%z;8?jDIlJ9!<SMgWfuzQNZT=Q6@x=autbhCeOLdWEt
znQ9gcqNexKsDXqa_$poGVPHD%sCsPLAg6XxXWe8ahVF_TcXWhxV9okDvG#uWNMXU6
z{hIVCKOCeE`iq2y4}Ji|aO|B3u<RM(sl{oXIgA@tRzL|lTuu=059rgi0BDy5Y5|83
zF|FvjRd<zA3;KF8+G7Hr!K}J4Mqxxy`YMQ?bEdUgPbbmtpSbUD>Nce@3PTPvpA?Cz
zn@>084Bc1_%Z7U<4nyVTjdf0Qq`8YwAQE^nf{mPcCO4htZ4*}2#|t5D1u<39A2>Sw
z^e=ehU4w+hV<H9GK5E9g<8uB*q3~A>+}9D23*Y=#aO}ZMBt&nQZJRywxmcG7{UyN=
zh`nj0$N*=SORk3P@~S}Af$Ncok{D!;KG0@uTz!bdmv@o}U1TF*E$fCYXDt3~mK*vi
z_a7%`$b84lTxW$lusC7J1{th#N(rCobEOqYThfey%Tr7SDeXrDQ2)k4ZIwV*-5sFD
z{L54v2O|*&QXBlKK}=sWN+9-O;6zQvfo=&ABpwtJkRlc_C*AuvnMB+eHhN2O%3|wd
z+wXZ?Qqhc<edNsM*z*~096&7cV;+MUEW7_$^yy8ABNE>*%3xpo4`4rxQlua8F<uKz
z&@+r!2oAkMN|g46#QXHW511n8pB0sn8kpLk<U@3&5lh${6!(+r-h-hdnZ%8f4%)R<
z24>5iJ7S+$8nf1Qlpy~~(g|=DoAh+DYwWlkIaj@zGg;r)d3(6Wn0vQjTXON0)!%&a
z4S>M*O;~xeB(aC*_KE*RArKh-uaANBjF7se(Dq=IM$%;j&psQ+582Dtf_48xw~(#-
ze)X_=YxF_sZuz9<27puJ-Wje>$$J(vkAJAyu7xjOCfB+L(@MpGi5we_!E{F&wxA%)
zX2M!3bN+?iS0^ABnWS2h3_bGHuST6JCG!|HIQtl#;iC@0tYk(rpn#8#sbeBEv4`7~
z)58kO6alSy{RC=#Cl%1IV`25nbn)Cs3Q9BzgG8?(Q&w6f#~HUVP5s-h6g-(kyOo!^
z?@kxV9A$o<Ro+j|WEp&(&BMjIZ>2k=A>RHrs6O53np-yaNyP&khVi%YRPaIG5pMa-
z<upttN9TpE6A)t9(8iX7%3`L<b6wH6E>6YA;To=gB_FQCv2s9vlg4-)?@{f`vW5x-
zd<s%7UvUk`kFK%mI!;TsP3!kQlY>7%Z0PJ15d9>91($^B67#FD+ZH6QZrvq5$Cv%0
zy=BqcS1+Ewc^_lw3q>0N^_0Pb`UHYctcTj7>U-1V-1bOVhgIYZS27{rLKUL3X=Q#5
zw$S|_09Qb$zhoA)$@fudgX);Z_pa@)X_n;V`-AH#G=hPKgu+7ULNri;gvc>UgNCWd
zP!|0MM%~LA3p*;tiFO4~(!2a*^)GSye}f^wZL;W^pPi=dn3haw;KT6H@VqU>ENssr
zbnh<#`+5wI+Rh<NK(wJ0dqyS`P{|f5%D83`hChyL^v#=;f(t}U%=iP<!wOqO(#ID}
zJ>d9H3AlBZg|G}~ZRdIPoRp<BcO%os&j-%_iT6KG*yz4t74%%mjA@T+$1b^@-=lZO
zo%G|leQr1nED(C}O#w|Gib&*BfjU1h;B*3MM4>{5_`!j=TSFK#?Qi<`Gz^9fhK)@V
z62Kxrz0rnmwSLR?ZY}V<{==+>>2Pw1+!{D=n87HNfe7P_bPz2<Oo=@X{cD3aQ>b}G
z21xsG4=orc-j<~5T@)eRI@l4AjT-QxlcjXj0+^9B4tG`^k+sx<qbhM}u_Mmwgmwm0
z14BSJG%%p)ourl~?vqNc2C6AQ%4!hC1Th^U!XyR=Rxp7($xgGks}C9|<vo#4STZf)
z&Np_)5lP*1l~hSpRb73UUMC`uIK^Q&$wrrXa@{bvo+1s{63Avvqj#k7p+a|sLkta3
z)U={R2<k0PnlSccVL}a>&Y>*k71&rqHrPqRI}lJQ>pPMQ_KaD<0tIZiE~w0=m7TV5
z*^PT(YDz?8FtHz%j)O_%D7A(~r=f}^RsofZ;^5p!nI$8(`X9m`9{%b3s6S;GN<XhG
zE%&$%f*J-tFel;!&awwti>Ae+N{u4&%t2U~B_oJLgc8eG_Fk7s8!f~S@IPJn{XR^Y
z4)3W5@n=|Vw`dF$Q{RDE-<OxAsQ(+{#P8Hc2fDv0I_7C_FNZNEf0kc~gYq)6r1sf<
z%GTN<AT|WC`HN@uizN+mG8#!17<hh;Dn}2Y`hBlR#xZFlZ(n37s%^I0ZMNHPA|59*
z`ng)w(vMnRy?(6MyYo-Z_z-?QPy@0<4Z7}dOg1(I%EWLO=uM7M54UHo7D|MaRXU30
z!2Zm3VG2=x9$NfgGns&LCq}93cTUk!DmFw@--94RED<Vho0zOw%Cx!dC{kF?N_H|}
z84%<>3CWLQTXfQD1$^5!nd8=X^}?iLN4h>T{YKF8#VSZj0tYK7{CumC!vN!5@Lnmj
zi1mRv*$!Oo$Q!#O*@JQ$o>9)dYwK6$``>3Ei{=-z@<jbtmT~jzAWmF0c;ZA(chX1$
z0IO-W5MKTbO#o_UZ{b0?No{&d@?r#xqn*C)`iomu9#Jz|%lx{po1mFX+7^QZdAu`<
zg@XnW6WNzyn{@Ty{40lr!l!o%V=g5`^_gR~tz0-9vNnz;FyGI9;ScGNJ2mX=f!|rs
z)uTLhtw@~8ks-aUkqe|OxS4b;ZWb1+Djl>_Eg`%^5ir@NN_H}8wC9G^RYZ50n21u?
zP+OraY7q?uA`~_jJfROr!JJv%Vu`69V6=og<WNl!i{o_Wt65CGzAPCqI8m~}H>w!o
z+-Rtq*u8?Vd>6tMg<}GFkHdn>>I;hd!r&Sd$fQ%$h1sLxEMqYGJ&h;to$+iJ%wUht
zihTUI*G0BI%v~(d9tApaoN>oqVYr?7`!1aGISFgAjs;3=Ddb2O0ti#L5aetvfyShu
zDWr|9qidkv^k9bo&?qFU62|6c0&3(J7ziqPXBa~m%ZMOQTflQUVWt`wFo-^$R<Jjf
z3njsn5n%@!5hDgM3}H(T+n<3Dx2d9sB5C7>{7MXS!>H;GXoV9q6vel<XADG4Ohh(6
zKzUKH5z1_-SUG7@pi0GsJ{#85%=Vh16mx=+Fq{cA&Q==Ja2`Qzw_9Z{BU?p^1X2Pi
ztLR{kpFToNHHkKrn8f7J+iN^E%RDxjExi*elnp5yo@0avJ`g$JFfoiyF}#ZL1S~X>
zZdL8XnE6YuI`@4nnICU*%jB)&b~Sm?^x=odhFNA2NgOVLnYAQOVKfu1W6XM?5iIC!
zRkJ$J@Ymh7cYMG$9?rUwyG)nC7i3pFmTE+xiXz_nhcx;)s-Fzb^~<@48wN7tvuu=8
zAj3AX32od(^%0?{V}p#FU*r3-xtQV?jP$3x=&kE_`C(QdBW?wQ#v<iw^>VaZ*{mCm
zEUnobO<Cqnj$3Wc8;~O21(Y#*`h9t%kX_+}_r5#4Ci8OD&yR-3iKtmCv)avRqy!q6
zHVl$N%ATibdpfq+oUdoGr5bNDN|HIY#Msljyh1ElN>V6(sH>K}HMyF<b@Z<k`J=#z
zu@of4L;WlrC|X9`XVy2=&9FBCAHL5@&kNZ^cblAKhK|7m48A0keoeV3ytgEVH2fnh
zI4x@Jt4@{3ICeHID-UODTZH!jmu>cTMC{<XlO)rssYPEF^@!u>RnM9JpzH=`jDp0+
zM4^qZ&K*X2j;6&0T=ke)7jG~nXkOH?D}m4g!qKoups;<0dE=?JgVW>3jxhS;hLyvg
zuUnQ2CSxL(BsH!sTdr=5CJm7mGw{ENRq}Q+63mMyVpo7LVj0PE^V5nfNfK(fA=7Gl
z%~i>zDMSq9TL>B!Q0N+Hu7=@nplB>(p^WrBiS6Lm&CkxKLso8VH}ZV>=E!G@K3Rq6
z{3y(yFSBw|$xzs@)^AOahOWj$E8JU$gxF1>VcHQH#H4OCD=_Md#K&{?jg#Lpqcty-
z%kN(HDPJZFcB5>Fu)+~yLw>({{-JQTV1zZujP_(lNYS%=1`KRA%-}9%OHwdrBM{2x
z9I4u4*_r9!?r?re_~b+E5r~wt(#h4S8Pce=KYJJ>3TN($%&Jnz6BHmqtN{cveNzLL
zgjRq|WR463jKpG8rU?d&2uz9?Wa$Bc0~G{RG&CzRF$q*OL{U>s6B4yh5EO(%R0UH%
zh!#Z{VT>$HNYOJuOr;Az&bZB1y0sN3m?I0pB}|kQC~NFY>ixGzusbqEs6qvNYdUO|
zcpW7d0SA~wd@^oVlzNBslmrs{(rM_PNrrG8VsSvaO_~!=B=4EQm{um1Gz~+*d(r`1
zI1RH0+bfkl0!~QG%pz1>$jWFy$1zOPY}7Le31k~B<kj+L=~j&d(W5n1r_nee;hOGp
z8}enFGd6nBpwp&^wptWgL^j#D7*UfDSgTQQy?gjKv5XD9hBuH+M9kpOs?E0%BWzqs
zs6`Dn(+z`RODkc(EU#|Em|7ONc8rCE=Vf6cnGA<;W^?z@P!Z(zk_c?SJ!*ox`}*3B
z#2sI($gaQ!Fubh^lB<x8q))3LJ0T6iGzp;h6gL!+4_=xw5cK}};BLB)Q1K_>37Jjo
zCX?O%2VPw$>%Q+fKS(GfHv+C>>JT(S$RAX`%pOucHXc6^*6&gJr94MY%>vzqq};LY
z(RFf27hwBlMbus*u(tyyQjOpZz}R;(54kmH3>-qxj(~>fmN;JuJwgoL@NOFl`=OUh
z<mrGutqM3AFfhV5_g_rI^o7CHOJJ17bQg;H2e(&$8HBVb83`cx^mYk5`Y_1G#>dNw
zAYMLPFN0%ZS9V)GMtE4?!0;|;=w&lyb>UfOZqk@GF^#3AmADG14yPx5g^BC$?twpo
zT$4<P=;6dnCk~tLQQ3(NwV*tN2M=iDR8yN3(&#WSEsq656cSL5@Tv`pRx&h@TC3C{
z9rh8HK+|fnyf;!JeLT0keuC>9$3g|94NNLJZa^C{xGq!_L52DPE--a;kWGa0;mJo~
z=&<iL9SA-lgG0GZor&r=6$af&G*HOMxMYp_kxanS>N3d0BE~T|bQnd&IMP<dE>h^v
zbW*582{5HyJbW2YhAe_{Qp*anW}feVurt)H<_kTnUiX#U{`M26@bz5t>m*7<_UGoX
z{w5ZT(ne&F*}IQ}_yH4$;9%`=g;C9(p8bipWEiZ)0VI1ctn?xoqIZe#p@4`%_jdq2
zS5QULo~3&^<=IhedJUe(zZ?xj+u@JGM=NxyyZSVYnXy-@D0p)2JaEu+4odc~MhG()
zsXPePIc8*PnnsB7^uZacn{;Y<qpQ4}IittNpA7o*_HuLN_myqkSjQKMlS4z)$*K2~
z39~PwB$#VE%$Q(pGiov!6e>3s3!bwC3P>POP{M{$_h+oZ$&w2j7j0<R_8OX*G*u}!
zyJl?_+-`6=+YVNz1lX;tj2en_s<beeRbe%&CQ7U@Oq<=~BRJS-!@~I9Hs+>SX4f#r
za%Mv#IOOD=aj4I>+J8x7Sz%23HtSYrbhkvD)W+4jT?#HiBFW$oXu$zP7&3-#yWqXL
zO5Xh$(yz^AuG|o#J+oF$&9>%XQ)@|FT=b}b>|1g|MgvD%dOUYLxnwwYg;nXcaa&t8
zpG)3s*u~VEa$P{nQPft{iNkG=2SSV4j>ioeeIsH@1%XED6^KmE#+A&HJXFYXSb|6}
zOhZZn<S=76f@k50cDo^xh$3vHpk-Alpdh~!o;J+l4QQz*;kj_w7IfT#h;6ppZMN_n
zjLl6Htqp38m3OZ7tc=9gOgNMZ!2)5EV9>4^2?ng&#$%Z<T%a+=@Jn}%HzeMH!7a&5
znsnwGqZT5p+&ZMFQe>(>CK>i@a=lBHxvYlRGkDWni>y;|*R4A__dSfT%Dx`sWIIkr
z6zQ0qw{4U5eGHEgh2{N;?H>u3fQOX`4x7J3!;y`-ZG*w=b#n4KY}wCTgJ$iCRYWM+
z`Fg_0I6UNq*5810!}R}xqmHyuPFVF0HuV$E@_PSr_JRe1N3pU#WYn>Dz|d?-CD!JK
z69CVwtc?wBQqki8f`ZH1Bzx*RGek|fBrtQlO{OJxSc~EcY;`7*)Gj3g%S+$*;zN`7
z1M^fIC_Z6NOxxT%I?6c-c5_lh&u)T^2kUm(sjXH~8+>81=zd*~&J_8`hM!-RhfbnO
zJZrXAkn?Z3U>Q{arFfwdZM|?ChEg2`DE1JI5(Mjpx>wbM!1%n-0)hd*q$E&|cw%Vt
z?jCU+Z*O(paM()H!>EyWic}hfCL*DOVnf0QeQ}^W8ao?zYmXBK3=f2InmUX-8wChH
z%A<f|0BB<v15zN?jYM?o+ZV;JVOVW|Cd>}(JXmOg<-x|^9b2L-MRCI$%O6k)##etl
zGlIyo$~Yn#9H^2I#EeZXw%!Gx$x~^kC^;dcercn2#L_n^DXb3C*wFA~Y7+q;oaF=(
zXEAegTtsr49DC25^mubeiQ>>Cg9<Qqxvs;pMYg>iV>#&DJ4Q}#WZt83xHlglsF`CO
ziYVawwD`Jjbql%2meMI2^&s1SB*yI7&oY;jDrVqeuvRj*-41pMx<<L_i4zY%yvZiR
zb<M=U*f%>|z`cW8mx3G#G6CRB>(H^WGTU^l)X79cZNl<4_1syXf)5`O3S?>^aEx*&
z<Rb<)NRT|WlFHjnsNo?RBXSLdWF(F)9KdITy)&@#wPVQBQo@K5F%6#|XqeEYfgr*l
z@W{ZGkqwAq$9WrHyT0<Tb-dEr!-)|FxCJ3z12_^rNI{dYt|Lk~M8wR@-8)VY@&x*T
zFD#EJR}f$p6-8A<LQ><c8i@*YmX3Xhqdq?&RX~a;@aw7d>OyOQTcVB;wsMTetUGvh
zX4i@o%nykQA}J;i(33rXFHt`Bb&!f-i~KJeYO>md(f5!ae|%2&vl1q+lbI2}a!495
z1cxjwl4h9YWQ6;pY8Wz3BioZr9I}xiZ3zlw_|An^9cx#Vr&GcfqFGRH{`=%SbHvy2
zXCgGnjt&;^dgMvyW@fdi5vU<e<QXTbJ|ZzOMxp?C_HS6Ail#^*ECnD%<bCVfo>+jP
zFEXJ@SRqKh@!t_RwcGWp60Ga!){y$!T*y1aK7QU9VT+A%wYu82(yF@B8bLp4+>y&9
z3j>M4`2iQoY=Ru3q2uGWxvHj$DyobzE-4azmo{iixM$Y>)cO!dA^MJ=arwa)xU?1A
zP~-|hLLXqmsp1!{NP|>{p*(1Ol62DF7nW}F7-^{a9<$$napImB0wg0BFUlSZH*5zp
zL)^6ms9rNOAAmX^J~UYZLcu$Yu;GjtF!l~s96r?{^jsW=KC?(<GKTv6KapY!s|`U2
znv&@heaPAu>~r&Logd+k+70cB$vSNuUsUO05(s>x2pK$&jOP$ORk#Zjl<l5DvS*xv
z_!Z2PeCiuT5+g9~mW}g7pm&EG=9uEKFtA`dqYHq;F+;WpsL2sut@k(&q0oK<^1fD&
zvC8eTeusHpmlre6^EiwfJ3m_%F%?*lm7~zz(1zC}IOaM5?^GtkHOsZfxYB+3U$D7X
z6Vxj(?<o7%K#q%Xw#K@2Bu0oF@#Dlm!9I!-6Ceaggk)|^pzfL2>PsCye0%dC&8i@g
zaZt8Uu5caNn3UuawZ%Fn0s%wHLTH~k*B8S6pzm`GKIXGLpLl!#fF&}#G*rN$wu&el
z<`gUwRhD;D<dh0$37UAt^8v6*F}gevv@lOe_zmyY^*1@Ap4GN2i{Ve0JcMt2N>4LN
z#`&~YDw}5c&Na8rsc4ABNs&~;zmv1#cz#v9iDW(7`F<ZO)vcDrn0q+c%b)DgHxHI@
z$lTj)s=L&i7cNQzjClNLYdAj|D8|-^hsiS!v>KzSUp95-cZ^9IK$!{@+y@B`v}J;9
zw}>V@+ln{Mf>cutV~Fh;!n_ilBFVIBmkEKOUo;J2MlnP+i`&-FZ8dsg@eOli=$i)d
z-6Yu@Y=)x+>(}%7iOgfnGvI`%e7;jIP9y`$iZ=1^+wC4>mfHH|-xKEE$X*cVGy}*V
zmUrPN6+&yWM@I4kkY$sLnuRkcu4RxKrpeJMil}IoW`ZC!ON9dH;YL{)uy>0~s&JaY
zO)+Ha7L5WDGd#CNAYp?exNj}o_`EsC4p4#B-E5M|(by4Rhps^jMobZ%FnKnk#u!*0
zL?D8zN1)3si8#37(Z3&!s&LBV9~+hTHPw49ADq%7E{;0EoLn|e!3o(nOJ=!r?Hb|0
zF~O=_4-8ibgu*cA8wC>o0l;pSjH1~zvO3YURw^1o3<E63TAoreX2l}T+#Qv_9U-|S
z7}H9<P^wQKPJr@AHztsg6paXy#v&es_#fdB-N+#{N=8vcx=Lu9rK3pFH3}JKnLMmr
zH$Y?5EsEiwN*QHBGeqfDIR{vjaS}2H#W6AJRk?Z`#m2&g259T?NJq|sWYsm?{*fdk
z0XWP*K+HpuhDr4SvzI@6E2grP;hv5PhZK4!ahx&4WRyvU(Vl7-Oz@yxD;lP;Y@BhB
zlMRw-&McdT8QwX;!i18ZEK5&TNWtxh&_G>Q5?aJWAqh%_S+0Kog5M7Im3tVxo7}vY
zD&YZffe{h5ZIW|{6Nsd~<UI+CgyQJqSi%muT-`UU90hYc+Bi+~h{6tWJmzds0lBja
zi=&T-k#NHy1$RWtHpnp7EX6FBkguEO_G!gZp^z=Zm_!(cxj<te*e@DqFyS<U>44cd
zM;vD~sAU}UXrNjqnCDp17_eC|jsslh93;gMXPXG%ZUdfZY8(hv6CpDRGGrjbz`7UJ
z`elYsXg<M5!_D^C(3I2Co2eZ1#i+_>I^UVp=xlc$N5t~E-dEE5ABD`##KtPBC4)??
zILR*#H-;5Lc*g;FF~$~=5Mf_l2>QO?;BpO1*1=)la%G-cB)c)4C6u*0eY{tmzf&rQ
z#S~3vwWC`0bR8V!5~7>MY`|k8N_j17M9su)EAoWZJLj^%g@oAeT9(9i%+?~rLceox
zS(>eqK>27gim*ycFKItnbB=G6hd}xgW|BU}i<4%o$aP(6#iGs#Lm=(oRy7)&Nr(Dj
zs&a^8p~D>NW?+h%4%QNXmv2@U{+u^CUHJ_Oi6tknAsmthvpFG077dJCBwk!0(8}To
zpPfJ$A{sDUMp;jR69h)jesbP*8NHoJC@0nV4fvJf{)Q;<cC}h6*8Bg(e5pe~#*#w!
zpFJO1`>lnJ#C-m3uQwb3P;<`;fTYsFiU9eJ`p*Nuhlp!9Ar6=zphxd87$iT7KC6)r
zaC=yi5Z^?TZy7va9M99``=Tf1iXW_>)++tqz7dGL>`<IMKK~;4W0m|G_9Ql$lUD?W
z4I;mt#EQ*h0>nTiD%pX5IvGR~-IZW;4bTc&UD_lt=yV<LcNrHi2kd@dOAKsDiXX2A
zAqixdNKhmCIAnxO6%#DVL<yJ_;1m=?L^*+ugBdRU1_F?h2F%IC8cPvcLD)c%BA7x_
zp+v&R=gt6cKS_+DWTB;kNBfF^^!K=aQ_F%Lnx0QtjSLuxB8pWct07>qV?Lszr5!8;
zK#8{;0$Eij25ALil|rKwIbaNf8H+m(ASp{FC@mMof?!V+q`Vupu-zeL-v&0>MKwV=
z6d5OWn%ce~Bt2bvdjf^a+rY`~5HL3AN<nmJHmwp7jAJPU0|~`JNf0T5hYG#aP^3i!
zX<Q&-fPs=2P?9-Nlu}YetN@!x4Top$KKkhP>$2`b-q2>;Q4PPkn0F=lekbZZk6E{1
zH$7*5-+TV9={tMXIk_E#dpnrAjNiPc^j=&%3aYGWxi%Is-ki|PQ_T54vLwmISF);9
zq^eaZMNvvsER`ivP=yKzA)*2RqG5<42!bG>fQ6!Ah$b0^Ach8r7zZ)JiYTIrD58oe
zh$y0pD2O5oA_^*&tyL{mEn3G8j(Ks6A?4zZ*2tfZaWNt%^0#q*r}4as{2=f@Tk^ig
z7RU2Hb+!3fIp2}yX#6dP_v=m%xrU+e7)`I@My%7eR6A!ps&|fQ5wcbmIP*wi0;xQC
ziVPYhQn*sE{(tBV<H|KZfjta~9(tCi#_BqbEGMCYy>?GKd-+<1OwQ^*ap5P3cAOlI
zZE)JDFiR$V2U|9y+%>y$erM`pM|=01i{(&+kUHmeEK@Y9VH#HI3i$x-QJ7%HCktT)
zO|L_``C5ldy3}=<y=T<>&f9aDIP?~(PIA3vpCq#-im_YGj_WxMPTK|+FxdCrCT2#%
z$l9E>YE_F?q^m7Z5foEV1r*U#tW`(P{tKDwI*N`q$wzox6hR|UG6tXt1}025AtYkb
zg9uiOSusui$&)3;5xMAaeSt~j?K>E1X87N+-e&cQ(Ikr#f<>P%%JMZaCGu#l5H9H8
z%`r`(;SlkH;g}jHXchA?fHn=LX_Mel{Lfvy=6nu!fwjo)Fnld#dynd;V>e=*4%-fg
zanx!X&kHx~YZ<&o)hV`Y9xz%UClV6~OXMbrfaDBFWf|??Cz)Xhq-YyLpl=)D33$mf
ziYJg)1z3bD5sxeriUgzuu&?E8J3!7kBaJi1FBMJEi-CB>EEdphB^ZW72{6PIQA7?Q
z>6liJG55cB54fU5<1CrXHjQJxO#?8hZxof%sd!r<e0cy-1zfL72XW)BM=4X#uM^xe
zbu}l*SG?fuI*ijeDT=@=S%XM!8AduqaKjkvpvf%{Ev_-=-W-RnwMiPJo!cVWEs*}V
z6TaB#8;OI<0lG~BVSxfy3k+zQrXhThQZvIC#RGyE@bJe6+WZIOX!a^4YWD2+WNo(L
zA=IOE1-nTp2kneUb<@;3<U))(?Y#0PR%9#j8{olXe)p{2o9v9$g+GaAYgWG+J$J<R
z8O;jXm|;cvFux1*zIA6jj}zE<&s{y(bt~?0=1;)a9=dyE9ZNE!C$9USOM|G0HBMhN
z%ryhDa)qK`970A{DhRYI;MX^el7T@geJ{D(Ih?5AyU&%{cMll(Uyyr7vF3fP^W=0V
zn3H?7{Eva;YIh0#ZMq&O#_~$ARZ6d6;+UT+Ym21~8`w!b)TE_$mFirUsi$@4coW%A
zBR9i2>cZP~@*kC3p6JiW_L6z~9oZ8(Co;V*<DtV+9_gRT_ngk@I;wjjn(MCTF^LUh
zQ@Y9Oes@#tZgMy^$RE>mwE7<K`B|n(Sv@S%n<q=-W=+wz!d|Ac+Eanf_g`C)Gjg{6
zSEU^!{iDL(_(-ONY8wOrh+~IDT+wE7;4(x;85o9<s#zf_mmO~-Vs0FG2To(Di4I^H
zWKB@$Xig>$94qDG$!u|yQ#wT8ylM@}DvGH<$vI}Re7YKBX42O+8JWt-&mdHTGiIeW
zd)dyF2nD7F&37T@#1Ch)plbJt3^Op(D3F;Vs6;M-G-1T5q4{{d`_R#aR7d5#I`NHI
z)otG1+<dPKsq3}NDiX!cev|iN%WPQ-VsCpc&ilHrjpB05vgmD_V+$z2Kq2EBrs-V6
z1<}U?c$Cs1HBK`$*dzjpAsA~2&M6o?B2v*AXtrNCi4_3`fn=V$QRisL_PfsG(&lcG
z88<^m!l$M9-xHyzhtTJDA3KqxM>5r(S|=l;5i}hm$te&aM3P!f$rfnyo^;KieWYQz
zJ6k-+C>&+O2<Q|{B0&-cagG(sh48j=jN${7JjfW3l&*P=j|1c?Nj!-p^I`O8p3$4w
zABCuz)gFMtLcj+BjAxdP0dozrs%I7oB;<vpz{qN8&#G!Dh@y%pA}AtCD53@#hO$Uy
z879FBEEEgF?-?cH@t+FLx>;fHbe=R&!J<|z$uf7r^WU@!p|SRVCZU)`jbkyAlOr3Y
zWTRtf8wr`1$(%apoGX?LQ$&|cT1Nq#*%$|hB(i1~%LIT}Au}W>3|$?xu7-%8dL~Du
z@3_7(oAo&``G)g!o-;jw5qDMnSO_5rR)LyNzB3qxpiegDm5&InR3$DF4<y7hYHkFf
zs7iATkco?EO0dFkx5p%p(EFaJGo8fL^e{IMdBwbyJOi>x4Np5BHIawD^E>ZTgV3*q
zsW8^Vc|C@<x3b8T;WEbwQ-BU4=%*Y3&?+4alME{pfn3-QuoOVF1}Tni5FF#0ZJGM$
zN}*6Zv2%xs?3^&>&pdeqMpqbP3hN_{c~DHy6o9e8fGzDPZ@M63#-ofg5d$7J!!TGI
zx6>D#0l798Pk{Fa-aYrq5f)|;QxeS@wyKr~7ux*~i9KW3VdZOb%Qlu|qLliH^`}3h
zYy^yzYEyx<><WO#W-g82Lp#S^C$pBkWXF~j#I1>2Ed=Mi@IfVL>@ZB6Od}9aoP<C&
z`M_2d0HPHP(=a&9#a)^MbmSMpAPaP9)*R<JMT~Orw#|b9#!(FNp_EEkAt;o{0%4pu
zzFaC55>hhAF$j7@)1+T12PlBlIK)yohyr0mVu0ckbhckE;ihbpm~zPsvq07`jiVsI
z8)ku|W*9_-;^C%7L|8Dm&0{p@JFiRgK6XztzMp~E(4Olg@#birbY{tsNU+SqCZ#he
zl72SVaQM@uT<xyXKKzZ*9oH*+$d0upx%heB6Km&l{ToeVv9zCs()OHAS8fS8Peje{
zIT;@tYjneqhqu~%V@Mq&A`*l0NJk}NFoeQSzLlv{=SY>g+Iz2k<Mhp&4TwLQoewL`
zl2k7f-~l$QF4{6Da?Hat(=mvO#}Pc!D$)(}5XCkNgoT4Bgvv6=3}Ya1gmOutux}i}
zFu7#|P=w|@9prV7(+{ZN^0qd=6P)^;V{twAncPJ8)i@R;PKUzgM>C!y>wbr+$lmlk
z?|tQZljnF|cVU~U_Bq>C*}!wpf$ubt8Zu=4EZ#W2r&FflG}}<Bg-SL9+&-CK6sf!V
zP&pS1S9eVOJZ>1qAhk<-?nf(Gt?NDZr;($?-#R8CT!xX3a}BeYR-A!Lo5pF9kQt)j
zB2$Gzg69uTXE%YK_cIqd&_AfhXR_59vyB4js0x_J0m5#WLFjo8ty{@X+NZGfCw1v+
zXr2L#o>p#S#&bV$`drR0nTOP`oSqo+En4}pg{xMrTD9U<6)KfQD-U7!F{72t<aCbP
zw<Ta^j>oo1IFk<gCW5#-O|bEl3Hx8#{9*ggoQ3h;X3TenF^z@qdtUN=!T2Y-(cC@{
zp~2mD-$U4Srn$j{a-zh3_SEH38q$j|+kp<(_9r0Ho&*p~J1{VD*P1wjfpC2De04*v
zvl9Xb2^bDo#^`m-lT?^#Rpo}T6xdn^H0v7V(C8W_iCkeyr6!yrA}}qK7Y$Wp;1^`h
zM*%REDNsamj%XNoM!+IK<P4ApghHkf7-Y~KS0y>3%rnou{r<Lzo@W%0WU~wmn}E+c
zM~G#Hk(P1_$5_lHDwt;Zv_@YXVG$ObUYCgKyq&)coBJ`Tlt_C|6M)?2d)dC$kofK4
zu@Zi_*hiit+-utR-wVL)4GyD*C&X!*hfs#ViN^^dK`5c(ClFSF&U2jHMWkLpKd8>1
ziS}x$iBft44`Iai0;-FDJL{Vm4`4G?uo4ml8bEt*9YyK$*x~JIv?O5LY;6Y+;hAQD
zaGM8U#xIl2Bd~3qlC4y@*vS}3GtBY8S{W;)1wUvxdPfnsSvkgFZ5gH+phQy$3_Yet
zeLlt?j8yrR@hUL++gc~<(8JezPR37-Q=QurTjX_>wfUK&<8>#IUwHc7+xOl_*8EPl
zTAz(rbB^Pcxz_y-4u^p64BggFX4f;mHJhJ13G7TbvwSY5&uo*`^5N}S@zswPVpjeg
zpMS>w9lq@R5+TH*aUZbO9VmdvE5{y4H6ov>A|6-(9#WYibB;D*bhQdoqcF(Io|f|w
zIFppTpgf(p4~jscO~u9(QQAlvSyQZHlRBF3K3ei<vNW(_rF;X>>>0M93Q%~FGUqy}
z^~iGilJTqqBKOD81Pgm;q`@7C>TEPzLl8Wi>gv5G<ij<R+p4|yiSoUjQT8lq@3AJ{
zca@Z#y6Unm7FgG0W81`eYq8}N_1QzB>#-?Hf`kV?ejCE$Da_WX9IYYuN<}h2GKNI<
zDKoA(IiBHjLGh2Pvqmlgpp-V*mkqJE_6)x}t<2R4OV{3*Hf|l)9Ny#i+B@vyO~bvC
zC%X|Zm)(4Zp{O*P{?|i^`Pn9%TUf&Rjz%>o^db0h?7E#zY}}togQm8=pQ{G>TfJJ@
z{=Cq8Emc)(YK(8nd8x9puO(`-dCU=>^5_h)3S+EllOyCBrdmiN)?$lApkfuH(m9QO
zhv|8TTC?U{s&TPwEiGFuJ1%vSrKxSU_v$;olaD{4)a7>vyiZI?=&|>^fKJ*dh=P!y
zC<;ETnI%=0s#bps@g7&)`d<63Pp#1TUmFjGPcz~gHVI83i$-}km_i*gG>hi2YZ*nr
zwj(th>uwGZ=rpPoX?zkMPr&WBI_Giee2)XR?0M&0KKsmf9p~YR6VwjRU%BzETB!1~
zVn!3e`Xs>R5k;JYE#iUDGR(39h)9H|TPqHtUUrg7B7p)xo3`V;M+q@aDwB(3CRsgC
zsymFz5uBmmQH4enFt0&@>=tJ;l1xknCKzChQH)#^zT@eAZ_M+*0=<{0G7Te0s7*JH
zfyNvp<9x7JCmix}Re_RZnINLlK*WAHk4IdGIqo)hIJ;+qICMk2IVA8Ki0M9;Ecs7m
z^0qpghQZ8MQ;TCK-V#2?gxu|L5-|CnTi0?9QS!5W_SR_XJ&EauxV2N$?|6&wPp=wD
zH7N&`Vqt4x!u+`X@+}zs{uoGP2!{a(q)|jeAe@3k*6{n1I8j9uQECGri-G~vw4sF*
zXvHuj0#ta9UFTu$JWsy%-K9Q9RBmr9#3uL1$WG9ToR8mkp3`DK0@_&!E!8AB9plxd
z=6YGMi9Yk$dK0N$)2+4fz2^4yegn*yL}G=-Y~KWLh}bX&0~p{sMPe~wlZTc-oV$eS
zb~Aq4zwWuGZ8Gz$M{H|$o`z;=$SD?bf_SY4(b+Z3Gfd}}NX=t3xI9$>S~88|xqyJ(
zHcX<CkWwt^Gg<()Jt1cd@g`P`xS}CphB!z}vs8q%ZI}p$n`6vja*SGB<B$;&28g;w
z2jOv(u@4dTzbo24CzaIkvweu#GIbf8%I>&0I>&WFs;gtxcAcd>jFs!2XS8_nh8%2|
z4MQl$H4DZX*fMi61(0tWB*Mw+5)<&oI>XY;Iz*<?uxcB}0ibkD!$eykVgP6G8KaD|
zl5LfZrb9N_aBvz$G09r4VGxMXFB~Q@5v*N0+;%u{n<KvOvvZnZD$mIKpIh%aUKbSn
zbkzCW?~T4e;(JVVOJC4+x|H8t$8py6G;@7Nm#gO^IE~VQz(8-CMkxVZBG_?-qYUJm
zp^idfj}1bBYyitbLgNL~7>wZ@NG!sMrel}On8ASDJ{k>Ul5$AxnrBF`mR%IG2I2!F
zfa@A1V|ZM{U~%`~OSJE}jt$J4UG_|wm{N~zhD?<99gZ%xiQHzv?7Cl5aqL4U+U$0Y
zhu?mN#|L%dNcJ8B>2$o!?sC3%wq~c2N!O|LzUSe39(Q@^bhthDfy&dWeCr7^q*{w$
zwn-KOm7<oCf(k044_w*vPsKi=^iC017|8>0C<%*2lNhdOm&nYcVCDw7ycofrEFx*5
zZWx8b0RbtfSuqT9(O~A6i-vvN#E!QRBp;uo{I-g!`?E8g231uSjK;pf`#&IZL!YsV
zekBqV6%Z?ie6Q5>`yW4_KAF-3cw!VpS1Whcj|6;Pz2ev4c|SlqhoJUA_cX;Zj2KlY
zYmi2%8R8I|-E&U6WgO<7NCqn@PdC~m_<B&eP<N$9-<OGP?MX9AH+{m9GI2GAdwrj$
z`>)a2Pd)X5ho3ocOe22nRsu)h0#~kmlHs%lFyJQtozw7Joa@U{Nny7SYI6#Ypz4Sn
z1z{2t8CV!X1R-Ju3zfr_ozP+)q)LAnh1S)nlX}$tFX(u;?0v9cc|`Kw2WITD$q4Pk
z3y6B!BQ7}m8Z{Nc=<;agaVADdlfe!Xg~~QVzZd4#h7&PPou`cO!IQts?0CI6o%r@p
z$}m&)psUd#CExZu*yL{6WP_1-N2oemo@^HqXL`FGq9H1&s($O%kG^}KMnzpL#jq#A
z_8-#@exz_hi&!im{%dES<EI1z<%^`^95|HESM!D;j;Sb9ApzHYz64FpAtMR*Q2Z!E
z@)wSaZQ94>C&BARhXx)O+g}>EMsIcjg_A~`HW`d-TtvIbpf3_KupFMn&TiE=<3d{)
z{D9@Q#-zHNql0`*x0Rzk4z9=_oy2W`#F-Z9WZ?)nS#pC71@c2rC*W}5l3il5y;#OG
zq;Ubn(6fR^M99;?va)D2z}TurYN&N%H+ObbI=Z_wvauZ@u&Jzb=`J%h6GT+o9`0P6
z=i0X|l1+<jc3aJ;f(i{V8ca$#vjqgGAi>JUqSC6TX3U8ou4p8>QduN++ijMBijoH8
zgUeH~!$hcfJ^lBgriTzs#&wKk(w#(HbO3=!cMt=w2Oj?H@T#x4o$BG#1B=J)$q1Ce
zz?}yZr-<NBKNOU}-G<7|6%!*zaoy94qNYc^=04_~oTUO?>h7#aeRVLy=NOoh%7>(b
zV8)<+*#d?QCTgloB_|)A9>X}yhV>zZfqX+A)BtFf7$Q2b1Y}9HRKpQ69gIkLG=el_
zsS<wk@;vSDx#DXcA%tfPbcx4Q>m6eO+d72+jGRz5N0&_k*_c^`z8E6HB_b(~)5!iu
zenykeERt$~;;L&VTN`Pk-4K?-%nM>n69>Hd=@ZOQWcDOUgqbPlDE4;A>MSWhi%G?=
zi`G?)5ebxX@ZyA1O7|X1!`Et(6P_cCa1R5wiI8ph5ro{x!>s7Pb*u)F2g(o-%s~?Y
z1VBn4{zH^03m{RWLKjChP1A%QG>u1GHfB1~k=}k6M1*Taj?oIJL1_<x{hy4Rq0ss{
zK32+WB~@4yWk56-F@t5L08s&?h-8k2!UpJlgPMV;5%i>ojS<$q2NVNgB$7|30NH7x
zJ(2yF(H#lYC=B4?+RUX4#BB>H!ADS=BAXrWxMkFYZ0bQzMh1hp*igXOqw_r(M6eRp
zD-6t>HehMPft~I}Pb303Itc`fp@`ZrPuDM7`t+M(q0eJd$TiLkNhgs+j~d84$>CVE
zw!_HD{wXxiS(%uRxgiro${b9P)CW=Oj{1dE)`_8C+-$=zaZcAtWLoL77D$}Tr1JIb
zlUYdF*Qt%G;2p(MixSBtA#K$ow6QwJV!}eIl`4{9kzL3nla?V-Dn&wf{sF>!Wdwa_
zXjqa+lF4C^$rl19Lm~*4NS2i-p`<9FC@N)ENko|`6lo|@sg48`$C>!ZC#$hlO$tAK
z<`BS7ScnN%xLEZiF@f+UA2be><RSXj9IUYR-Pnh%EL$wH(GKI4BUF=EloE=T3oMr5
zv?le4?jU}dqZM9|n<P_2qIyYqWjs=+);3<(3HOJ{4;ZKx1B3{Oe6}5}A(@j0FOfNT
z5w1<HrID1Ly1;0%6A4oHn@tYW$uTke9>E^NjNY||F>uBhWKtLy)m0c~VVPl=VUb7}
z#N$;}Ra9Y_`i5xM7-Ue6Vs_^lHD&9OcSd9OcSaPUwzkMdthCKLv|1*Fss0*&a%;&B
zck(;rdV9anr;<BorNft~f``X9@qm4G6@GlGEXcGXtidn{F)FY^q4O9OHmMH9gIash
z&JT(ukcAss=2VH{jCEQ16P@Txlfw=tmDv%Rc_mG*BNJjD0QrZ&B4VK_p^~Gc2gN+z
zgmjDq!gn3&A26KeMk2%!A{tfm9nC791cC9wLtY~YW+E8DfTVDfqoDa-u%Cotd*-o)
zDNjKDB8531i`ZZh4!}HWpcJb|7nwR1E5}_2w;ehg5KKj;0viw%r~twtnpP}=$g)GM
zRGPXS<Ly$cu>}mNOhG{;5fBhTGX*is^a2#HDZ{)R955I?L%cE|!PX@2AW?Ls4BC!}
z1!m0UsE{TT31S9wFd&I>1{ggIh!ntVXnpq6Qp9LF@;DQL$b}g<9Fb^>)~U?q02cxB
zun+@5+J%YWS)JXW#mI3U1`8<UU_Qhu!y%CjpwiP)gizWc0x7W>h>21lp>-OgkqD-U
zY%^kk3`vSLqLs>lN&+%2mkkY;0uO=Qi|qm7xcGdAPv=*u776KAm1|ddF%1pIAu5s^
zR|P3hGH#WGnbH|1OQN?C?HV`-h8Sf4<UkM;3d#){3mlmY7BLu7xINQ>fZ7>Gv?eAH
z)Qls8c{mvd$kx`M-X!AVBP648)+E|b(!)RSW(LY=s;u(En-)lVq!HT_H}uKLjauec
z-OPSByA$G)RH`6VOrj<7#E$FPXD5r-<&}sK^R-VTo+&0I*f6YHn>Xk`iQ0O-zdO*7
zzosJ)1vYDqkn;mvMO3kgQm$>5L!uKyRAQ0fIby^iGBOY`q;Hc=Qqe>&93zh`=^WB|
zQ0AHEEUa%B=nP0tD6(}-a+&3q(a~2-@MbmMb;d@qtSG^ym99sTac6yG4!7fY+^>J-
zH3(V~Qp8miWNWf*Sc4@&6-QMkL<~r9sHdTY6g$W39fkw2L*H~gw1e8v(EUS)><n>0
zeZ?Ko1d0U^Zhuus;Idh8#w3j&V|$byYy`>@B(e}NM9M+tIcesJD?2KBQ*-ic<l^R8
zkKJc6S^szxigslU=#lXgfG79!H$df2rRZwtONOU{Ze#7R9rZy(u{B6UkB#m<#&Hgl
zB$07}h6Iy_LYROy%(HUwuV*2u^J_jfj~kig!bLgGm~vz%UJgMmMkhCIknm)grkpPt
zNCUkGx%CTv#kd0F6v!W8L(vKpD%Xgx@|b;ty2ndX#*wX_A{~TDqxjzw`bnwxJ|;uD
zQRI5>vCjLSsg7bJ;(V{f<al3w@eg_SxJb?sMo|uFA)0m0GoWUZ%7Wg!-m?vs=doA{
z{Frs-icL`-%BrfvA{i<q*AKG5J5z!H`eZhSaTJ(BU><{~W=Qq+1lvf4LU&!K<$W(^
z9qVdOEifh=PltFaldb|<AjT{yF;H<<f{=<)#55p*3Yw%tAqYg#Vo8A22vUJYnBt&>
ztPqNVm=JVGdtf_dFhNcg6Z2EG35Z?6Mg$7S$*(l(_%S}=jCl#-FTy_LQ{_{wj~#l>
zZL|SMRT;GryC|rDMCf>!C09I)GoDxSKW+OT3$0u%P4yD4R!Iu(a8|$*95&?P1`Dtq
z27qH>h?s4MA&|6Fi>4q@kO>SnA+4K2P?${)upD%QG9<_Zs&54xLO>u2O9KQvLZ@F6
z<^>SF;p^v)1t>ZL(tTu6`YMb{G^|4qs1-#ZL@1LG!bA`iA{eR%Q-t%9d(u8sfYd&z
zEA{EH@|^j>POv4guAI3rQGml^%0RnNoonT1aTOQ69f%lU*bL!Nn9+jf8TAeOXJU1~
zZD)vpaPvSufduLT3*bZS&gf|eDQ&TXw{}p)V$h`5?%EU(@-PG1RGDn|AgbUJOB-{I
z9@3j+w%a4X0q9tjN}GUH6`ezDz(Q(;lT2MAa?=wN1`={+P26GYp<0mgJ|z?K6iqZ_
zT{KMChk+8q^Tr+iOdKq!F;H}#Gl82)3L>a^NF^xYX*CKKh%t}sO4bVCUT5c@5Pp`L
z38iv=Brpd?210UsDSvO(eM9Ig<kOccx?t_K8!8_}Q%fWpik{3oK%3o^z|;sH#wkEq
z9Wi(@JEmL*BsWV6EiqNM1tf_iHY{~9SEVYwJU~!k(Cm8$XEcU^K<F_YqX_b<LhEjV
z2hBsEB6S`&X3w8ro^QvO&Oi-OHjR72F@ljk5+h^0j3%?E+_9}lVPxciWPWANnc7&H
z!WELt1u;khG)ah%y|9$2BNV8_iaZvRX9r+`^G*k<JXSF$;y$O^{#O_4XEr19sweX-
zpDL%(o+Q<bB2|j8l4)QuP%QzSNPhBDQX%k4>eL26nJChMlKkPxF7^ddRam7c+`*Ev
zMKY!dlCeut(qGiUq)l}TP=`oqfHVj1jnQci`Vf#xgH$0?(TxlPcm}v!z#wBS)7BNC
z+y$%(Xov{F#Q@kVjsd}#OX&=80|y<xq0g52GJ`lM7#K*g0z|6mU_wBVs46&CqXH06
zMG8uqft(RYfuWF;h=zk`Kxu$5mL?d8M`UPqtpXcD4H8gcvBw5NkOmS%W-#D7<n6?e
zYet2HF4z{0C4~qkAc~bi@EAcDibN{}(PCg?J0;l5q7oC3<AjES)k5iB85DHRb0e1<
zAdw&>NtTTm$OZ`#!v-PL{ZmoFfI^h?kELn85>dt|NZA-6KqcMSX-xqk*y3atVc13&
z7Y9_05<-MxM{r=-sV?k#Ea{GU%5-zKCtDYjg(`B)4aV7$L)A7r(Gi3QM>h^qyqH&;
z90Cy%62fVKz#wE!P~b?_#SVz1q*OFqm3w4E4Gw863}LweM#e3TC=G8AP?DwsS{iN<
z4v{c&a|&B&gMi9VFg*5ft&B{+uC;zc`Y)Ya$J*fWEI8QR!v+&7oKaA*ELkil$udNH
zj3RSG@tB;-mZ5(m^uHm@quXwqkErB|?I!YVO-)Wm*4E`ot<x2vtyq<r=6cMdG;)6F
z_m0EC=^pn}Ve1Fxo#r%<;tX^_2UZALVc2S<SY3^!N(O`=h0qrLx}RfA=es2Lz7izD
ztQn`5<gogbOykX-pN11=@HZ!H`cRTgjhfqNV3aBXG}%rQWO{?-a&_nOOqxA7_J^Qi
z5P*TGMFgTMu7F>F(`b;g+5#BE1WZP0oFKu`nKA(mh=|0Ylt&0f#1;|n1KK=$cpzd|
zxa~3aMse8;ZP=S0i-R~AL6A^62MCj(=y(c!89liwVSt1%%M%Hrg;*xiARY&h3}^Hh
zP9>9hz)lVjEt1PD#N!~7?XZJDg%kpsP4Z7Zk0D3ChA8=U2L=TKQHSy`EDq&&UC}!O
zuzNCKy9DV{G;x?3nK{ta`-Ev7r?1R9U$j00@{1G`ROJ`T1FcuPweSS;2|;lhwungJ
zJAf$-74xCqcX6Vshr`1_a%VA#F_h#L6%G;*+c7^vQ9nzvMr7{AC+<6sLqoaA$Ba6V
z>dRN>)aYR$)QF+dUBSXV+0r=7grftd?y!0h=;|_xMxRp)SZN|+cuWHbLy;@YfFPWi
zm5pPBJY2B#I;VHKkvedf!16IAOTq^6QWhdW<pu#dc4dw^0gTQQnE{NV_~gOSpvH6_
z=FUl@85qHgW0t)=b)yqXJkWa1!4DuK-f$B#g-4CKHK6`Q8e~QInK8o&2K&p<OOQzJ
zm;uq}^oO(_nA9Zh!VuP^@)CKe9<{Ev7#p47p~Xi<PErVgH>Ut<ja-!iW($IvWeMzL
z`q`n0=(z+8$ipO~MNBDK?cXkI7-|zH<uwww2En4n$F|`BnYuAs4cyW<0@N`qAd#5}
z2p;5Nl+h*$-7BT@ZGe%3b|BQ0VA#AwDkzvybD%As!|5Hm@zW757Qk$w>I5weFbZ(s
zc;HTuO-qBF>7z#i=q4#bHC+!7IF+#3p4uH`*kd7;GL3P@EwYL^X^jZvB9K^75=Egi
zSD^0@kYf@rW3>ow1a~+iN@zg^>?3N14hMMzKpkaAQm(;*I7Fyo$x9hanGL5RQ+p89
z%lOj}LfDYmO^cT|E^7k73Y3Ncs|zMp2FENE!2y77u<GIs-$b(BCUrNlZy8z*w-X)&
z5E3o52U-J05;qeRriST4ZH)+FD>n0Fz}+)x4N0hpL7>D;0S7`{P9e29Wx(0lp&hKD
zZHj0x1gGJPPz_+ysV3n-8@MZHIxA}ABDxSI1rE_u3f@S9d(D~G9CqR_L#G1)gki9|
zP}xK`a2Pc-)J|k|U;}}OnL{lg1R)@5+p}N}5aFw8n1E_UQkiDJ5F-n*X2K}g2qrK<
z(s)6TTqcp+;7qt0z(mUc9xhryG#s5UXr_$;a&fj$*CiAoa)d&<kXRZHD0m>)+Z?c7
ztHp7_!y+8>n@mlB`Z|C)YHUqM3<l;-EeKdxVK_+C(TFptJFcR6C`{|hN(QuE=tFC6
ztBzEh0}*U_8XSP)hEU>!*mfQzr!qP)G>5c~sDy_=XFx)|Spj*I(1!w%WTji+3leB7
zWUv&2K)EPVOBWKI8&M$&h;AVTv?3X86tM}?2Vf+G1VhP`VeNE^al<$XFbcUUf}lHq
z+@zGDAhywlk-uHd+$)ua8=`7!4g3(}%H(e|UR5_LX5a>(7Xwh4(iX=jQ(?HZ<O~oZ
zLPaFZ9R)(J#VA%4p>9;o1+ZCZGec}^fus#s#7Og@*Fen5nR#^7Yhuiy)a<7fPA&72
zM$Qw9R848BQX<L>4caFwSknN-xD~Oa9)?`lhZO3<4M|X`TU$&moM#!Za>nhR_A)Y3
zo5m1tvAHQ1Ko=OdVwyW+tX*0ija;!zWJD4;E<u9IDL}P?i9tCbWVtp1EbSXj6he8O
zT!~~2HnFHekf1f2*n-*&AqEQ&fKdX11hIOOsFzi?Aq9pZ5@Id}C5#=!C0uauD>-#G
z)`KCGsz9I_l*_~f8$gr<NSeS*ma_)iZum4S=$T}I;*^aT2*|K%V&;==jf@+5g$!e1
zqU40;49r-x5;&*|PI1n=b8QUr#KPrd+ts~Cu0X5|wJB&IaAXQqS<*LP647C&8_Erh
zsM-w?7UJmu*wC>HV3AV75p2x^rnEq~?HX1~gE@+vY$>qK#+LADm60(Lh;C30gN+o(
z&{Yl~P*|CIxigSKa)lzmpir|?v;wlxg2j}OcNz*bK_rU9EI`1%WTCOqYn6yuE!1!{
z7Empip;#a&urdLNHK3xB$e6f|gwzU{+OSiT2wXsj=}X?F3u8Y<L#a34TFTj`U3DJ`
zz>EfU1YLm^%%l3J=AT&gjy>8H0HQ*v-q7gOw1(-pf$uO+JqHp?EiuMzT>$Be4(UeJ
z#mXdYf+`d!Hq=Z(NTFb%6o>^P1Gjzbh-eBFZn;M{OK}>qgqUg+o9g}M_qx{jTR?eX
zsxgvxjzJj`LvJ22K}{|cYKFmJ1o7#@g9bh_yL^}8=5aNbF8o#iePRb#u7YqI{i$c9
zbsMia2ro`$40Z|#a|pDtG!$+enMs9*19>&3=kYu6iS2FKL)m&EgodOz$s>{<6rFoK
z)8FIAU51Teo6+32nVDN{?zy$iF!$TsN;TJ9%l(qe$6RLQvdtxg+(Q(Sbm8NEOF}AC
za!-*8-RtxH`ThU?=R6+g@;>MBdOe?nz7(pXg|1E~X0vY+^R0pM<+w;N{$1>)&9&V`
zqk4JxN@LCPBXsSzmT#xGZ`y_b24r;-wKA;N84D1IRXv6sU{=$ud(R?QG{3<Xlj#=H
zhMbeB$+RlT{sTLAL^n0lp1J4-R*Rzz>H1&^SK#!AA4)8vgcgq9*~=6-0Tq0ll(rLI
zlQ|@;T@94gm)zj+(vS6sOT;wf%A&&MyESAG0I<%Syog3%8l-x=^kf+|6Eu|}9O}y%
zVDy*J$91)c>6xjcuA^#>0t07>UDX!ALI$Vir7yU#2ckz`VfnXf<fnef6nnyNF549v
zSbm!2IE)m_AA`O365ADh18EcmyF1DT&Ehi4Bm`N}vl)me_DVykW2C22U79eJ14&fS
zmmF#D))<+l@w`YI^ILIjM}YSP-H>Nl%fv<4F&kXZLn#g5@wCU3)TT4n0+la6CVExx
zB|0uTdlVh&5Q%Scb28u})&iRJ;Cp#5eW`|_cs;Fx<83a~EXu-o5X=dt$6$xr2ya!U
z8bs?;Bog^Qp96img>o3tRPGFkyfiw{3B5pXFLIdw0t{LpTW7yWvMlX>?zrd>T>u-f
zT!3H7>$1)!DI)%S{pANbEU3w@Rl<5c3|<tyc?L9Ia)~pe9m$L+kDBcNCO`4o4EvJC
zF~F2lzbaPl8FO@tV~xX?9CHgVW&RVRc=lt;RM`b3(m?}N$85s-N5($7${gZsV(@9S
z=hcJ3E$Ymn<%J-STy3<up=@EO-n~n19*=$)l{<CD@-7@LrP)i9r<>+@KPc1)lIy>r
zW+C=ve;4zG>U{IFMw5spXrTo+Vwz;N1qfKA96<HY#LB>$(2(E{NZy@R1yvzsXa=-t
z-?>Pe9VJGpl}K6QnYXxX4p#D&)yI)Xj$&R2y?2{_OSmB*V!G5ruD^&;*K^-lA;3Za
z^7XW%bDs&Ylk(lJG|t_r+$<Y%Sn~uH1gdYDjBDDgGb2vp)Aw@}K110U*1u_y?ssQq
zP60m>?Jx92i@m=QBOWcd;jsvOjy}&<(f3soR3DTn%1fl`6-6dmi{^>TWo7?Vp&xki
z6_*rx(2EY_+GRFX+ndp^gIogg#A;*L?a=Buf(-NmQ#DLe7>tib)U#Bivr7$_9zF_b
zj-;6am!4!m;`rrkiQ#*e&^3I}+IgT4*}7BL+Kp#A#idug65?jg@#8(8x-DFx7?-|t
z2Kf_#D-Z+*C%|>+O=q4)f_PZzKA(-WkH|j98i05|jVEcJ=f;PW$F$;K;oMIGlp<zz
z%toKxVNBd(_wSxOAc&6h{PC(3iZ&21l0gl3Ee=`V(wE0YrZZ9n%*RoXNAz$}JX9B~
z!ZX{hBLQ@>wY20g(^;N8nvnoABZ#d2OW-q6mhJ;CFMlLAH~f~Ygeoq{?K#>h_g+3~
z&5w8TIF%vV?zkAe$qEncz<Uety51Div3;J(Sk#9}*R9xL?l@gbV^^@m*}(C1=Cs%^
z-=0Icp*kU_wdfZ^wbF(Iyfqu7?FyMtePkxkWlmy4ZQO)i1(pPx>1Oebc=WdZ$W4jL
z3S>Xqx;8DG_2xl~u5t@vV&O*pQ&|L9wR$(lInLY0d6WmQFrc+?1|FmuDDK#Tk(&~g
zqXXa%1AGzTgF%@m?KdJNC^cK+S-Tb)cDR%thL0K=heV%d@qCpO+F;`-yw=Y&)P-qH
z6rQ;zS{rrdY(?~SpKo7de<g|#Fbw*yEvpAuXYhvQk;>V|@yoz2pUl-zrRxsZV~HVl
z9?_3E;rGsn05zPaRl_GDM^kgtUK2-1hgM|j6IuF$#G-~UzH0iY<>L;4%)qew2#S8f
zv5w*VTTkKW^gBH>zt!}v@x!&*h#fw7W}cYb8Ahu5jHWPii2us?{QQjcRqug7&BN`)
z&DR}5%f2dR5yVz2es41)H%w3I=?%rI-sKDW$Vn}5z|08wefMj93B8u%s5X2i<lP<n
zG90QjSXs&wTw;LC)$;4x8)2HEZp1rB#oOI_kacB1Z4xXzISd=GImwqNiAt)UA=Jzx
zq@QQ!=gOay)OjQqIv>?dT&;dqAX;;mM+O~(t9t<uFqviLf1zA%SSrPWpz=3WfB6Wq
zZ7+Ws*c$k$3Pu13W)O-mdJahDH2|oE5dTJ}Mi=0-3<x4R$VxXX*}IyKWYL1myVwLB
zR0qiLcu{XxbhqZq2OW|rvsqU+ZvYZxp1aYfs(-x~d4>_uL>4_mlo3O(-Yus0kLJRT
z8J2Fl`jCz;oXiDktJ+)bF+f3!2TR;lsE1^4IpRT3tkLAb4{EAGdEl&Jv~B7W4AoIn
z)k*lYmDiV=vYBi38;^39(DMBQjzDE#G|AYkv#XLQ2Wr|e9aw0INo)6&l)^5PM+@i&
zjSH9E)E<3P%rEm#!8-f3hm=Tc)Sq_nf92h%UluiNwKmJWcz-bN9IdvYlC$99kF`Bz
zwjTWHsZ8}d|2O)SwKzY=|2}577;l?yDyU4jfS#FbVQlC0>~Xer05lzPWynAyyY-kl
z_yQseXc4uTZq{+HK}Jc&tyU0p2Ih{WPFa&f$$UsVUW59^GQ8k5d^m50hBTxCSOKY!
zL=vt#*JU8cOgtD5!h@+OkT6~g4?%#zhL)mG^8uUG%)In8!j(4NpTnICwSQB8b*0JR
zC6Mq2UUQw=njUjVq(*wDC)$54`q8cTN5G=WOLwz6H=>3U7P#^bo|AtH{M){pzEjta
zwC~x8m*^PqSHJTTpOqZ4GaxSdaa>9DlgZ0Zt1kh8B!pqqoXLh5UuD+2qnLwvPId-b
z4hle!d(G{t5lF@Re=oiG^>*YxPR{L-C*=Qr|GIGENKX=&(>#;D`I~+tNYZ|mm{o@R
z4nc8j{U=W_pq7jd7|gmdquiX-H7M_^Se8b|Pi%ov7j=n~uWmHIZ?6~`f!`QUY6K)T
z#XZI>Qv8Z^eej3+{>bMla+rSRBY_+Q_kDe~1f{CgAV63N(XK#8<oM&}G&&pH-QB=8
zj&gvyjEAUmb;xAQ-|q7RKc+7cCB!6{_fa-lZBq6WxxFmhpV!^bd(Wi%;a3~uM@_~S
zK8B=zC~Ed9y$2Z4WP8uAalV*LWxt7602aLZby~db(Ml)kQ{V5Xafb+(s|Tm<f0gAb
zz~pjOGPO!3{Hfw3XDd}<Ou^klJkv%+MkgWrEEEcrAQp@joeQq(NPXZd6dvJqlDXFH
zagyQ>=X5(zYw_XokxErjS8fEZVjPZNX%&;hudZB$d@*pJFdJ1VpEVJ4P7&lkH0Zl<
zAb)9kWBgIekoe5Un<3wH{^8f}o4qqtw3VfiJiV^^IS<eud<$vA7E*D!Bl%1t=XXx*
zxz~zV;g*#8ryuqc3Ias)cDH$kNEu|IslAbY%j#p@#Y${Zcmt+nZf-_{y9DgCJ`>hG
zm#JBOC8Su-U}G0`hHgc1c7F+yUFnf0?lBY2?e3+|NMgdog1kO<jLJ;Zkxg$W-lj2A
zUkS}lA%qRGdVW02y?#;b->a(jUZWp{`dPewE-wO-$+AKeSrg*n1A)yuJZK7w|L{im
z)ffE}yM1@p49%=1#Lt}>-+1N&u;YCXT60vYL*&Pq)vXOv)7X>FD$zi>>pfB@F}Ks=
zg;;agY#+)75vr!2-t4%d8<~3nEpvm^593esMuIW+88y|%`MDuC?7qxRw%`i%<cr5f
z4y%UtxLx!K{CZN<*CNU(%s24(sy^YC)pz5k)9;d=K03UyVfuEc#?3W5)B?!*8^NR!
z`!QPhoBT)#KK3|lQWebYoEg?20g8tC;KTtK#9FX}K=$A;(#WI|K0#awivKAp>r)%6
zkPil%Zy#r8s1X_Fs1C+R^1+_a&Jz{M!rYXN*z1qJFTbLhC1w9~m0kQ-_I>PAw%95z
z9td(LK8g~HSjJ>y$>fV)ydudJrEYPe&>d`qU@$Y3vty#(r09p^s&U;Sxc%QAf3Kqb
z_w(1=;^jo~=|2}%jp6?U@xz8i05@$Q6owX*Uu(FA$jjHs4@)yc;`{Oa{Jg*-VdpC#
zCDIXD4$L#0jvwN=!!yOxpD|7>M1kw@Q`y!WEqKOF@c)0^Kb0|@3WNRsyyd~8gl)6I
zHDJ)uxL|C&21@u2Iu}p178CyY&s7zDTK;qPM-jE*`VcOb^I`BGBMKz;_4{%}W>K+u
z%5FRHp?axPN1%)vgLg<sT2Vzqb>}+tyZDrWY;_ha)4mg}_t9G13!aAMeQT=;g$zKz
z;{uR5jehGHyfzY+k&P1320#Y!+W29})IMdsdE5Bns>xV(i;^G2Fc}eH_bJ%@*(TZ!
z!_akcwIHz`l=Cvg!tL7?cxLhykJa|csJ7qR{1bZFV<v<h1p^@DoX$Ckp+9B@DOM-?
z3(=Az{s~R?;gz(!Q0$ahx&7<>gX?GB2kCSEeP6Ngn(90EX;b{eg2kkbSf^O69@Yh@
zwC4NZTgO^{Ap~OJ=^b8r9xH3fc9#?BbX64z{ZziGHE}CQOi7CWLELn8`Vh$k2#s{~
z8_u^?PM#dJvZFeJiVzFLjNW(G|6VJ6^pDW@|J{51Uv7co-@j_t;SFE(**SGu(=?%*
z?|1sP*5se<lyW{8iwG2xIe<<!gh)z6vKlKaH0bAh2whT=Lf>wz!v%+Gz7-(auDRIK
zE*mqMf-aO&B9OE%DSB)}8bR+U*B^G~;s&L!p+s%Jn|M#ST&@#{F(7B)>#Ro+fAm>n
zV)qMX!LJ@?*P@$eA3xd-4|g@2^83~);!&gIA}AzgTZD7m)CBs~D!9wLV8_8qB0xe;
z#~mX9QR&-e<uNC7NRl2~zJ9}kPy`V^X9li0X`~_#-YCyG7N<`9@^4P?gTO?2(Gk;P
z+3~_H5B8Rjs>=T5r=OnMV-k=5h+EF7PTP!2EmZ-pI6}m1Mj`Owhj_y(wfC)OTk>JC
z6O$W3?DWFBtA-Uf9KAeL7q@!+ZBk^e+*ukpZx&}%2%93f!;TKb{;45?Uuh2iE9hrs
z$J8>q__I>SRB`nN#n57k4u*Yz!?p!4dSAg0+18Yo5;6kFL+i%=DS3Z*H~4P|0WBe$
z!M{Bd?3MCGF8V*gmp{;z)q^b{WR=NdcXHYq1|CTRLPSfm$X2g<o?t<;I@x~dm{hN&
z^7QaJn#)4I{<2h`$a@u^A3SsfC6`#ktA}gy1v^{0kv%h<#<Bmc)vx`MJT#_0`Hhx1
zk|Q|0j~Q$5QLB|Y*VR?*`_S<}XJ6oRh4JC6%UexRqqQyfR5J>%k5Y5D7NJ^OyZ0Yn
zNbr*no_&M=UIkzJ&VGg2`&zF}^KQ)-c26sIx+SfI9vW=lq%}LA&WFm$$w|8d2MQ6E
zf|8?5OztfWCZGev_&63@r*NkwVR38z`i;qcmEstp;Z?N=U~ONM(7@-@zfU=3h1JTi
zkGU+5D7)%uN<17Qzr4OqjiISl*If;`7VLXYueCI$yeOafyzjRb;<&R%`+a%sTiSv1
z3wDo{J-!+L-Rt^n+`@fJP3=%Jl@KI&(-+b<aw&X0e(-Kctdi14+aHoO{G@aXJI9#`
zKLhFG%AYH90cCo}!f&XJsR!aT%E*5G>7qs2h3QzwF{tp#OZJDd`5DsYH-pz3(v@LM
zO=c(s^rt?Q;314Gq|yC4cdBoBRCf-4q`&nMNSnw5@;;<5a*FEb7xCb<+I!Sd*OtI^
z;qvj}GMo6PJ2z|^ECcUX#b>!EK4si|p_Twhzc>z!+9XpmYM)%!FwuZuaN=p<rOkoK
zuil)}lPbm@oBpqTS3t{rQUNKZz<dr)ojWlyY^L|WcR$`LM7j4ZRGc}ywmdEVE?_Vz
zynI1I8L%;waV&QXL`EaYDE*#$j}TOz9_iRQ{uN>!NY2|Ry=OkSLD;(JM&L&r>{i#4
z6$h!<=!1MS#vw6vOzO3P*}L^g55r+X!-<`Xd~Wr8y?mFapuDg`fQB-_dKg{QYMn!*
z4udc@IOlr2EryLDQE66oqI{XSF1`^wzXqiVKz42u=9z<64?xiZK!UKOx%gx81o3!<
z#jG!nQ={v)bdZTHi4&jIv?>Z}SXpFDAX{~qeO+<C)1+$7M7w5OZGu)Z*{tg5<74Fy
zl!5+?l@R0g#v1slf>hP|CkJ7wL;xN)Sg2-!Kru29)uXB?^Tgdwz7rlC=W4Mg2t`pb
zb?2Q{W8j~G8sYcY#4F2RphTn|KLbd&`eaJ>gnsN2a*8n~S^D%{*A-<SvVdRt9z*w6
zo#$F?vi)+)lAyf0pC~JERN(d_=xc<qzvZ)P)1+gIXup8+YY1CfHuctIChA2&!n)Gp
zPme7N%);r&3pdOLAfM5!5a>b9Wb$tXp5N99WOC-0p97`d+3*X5j&hZELHvzYOD@Gn
zhPaNW-FiHv4<_^>o)H9H!#ip+OR(Dr@jHkqgK+(#swlaAMF_97I2#ifIxDL*wK&$|
z{#Ego59Sn?71AV@V}<;b%T{X|IRvLaptu-6>kKTu5<qxjG>{u-B~(QWFSp=_96a^&
ztDJ+G8FZdSYYp;`A*v(NOf?lY3Sc+KyjA)qj?!J`{uR{ga$dd_qE56BEmd)3Qr-IX
z{J@{-3sFX<lCGwHyISK3QNwQFI=L<ftAG_%9^-wX;(RLGg&K9EV>PkyP@MDeeCE&P
z1Hgr!Q=lY)j-p1i$LZtNh^%He@P`vdF9PT6U<9?OM<?>W=oo+6skprvt*-Po$$qEi
z+9mbDrGm^?iqrF_%C-VGW0k*_7Bo1)0S;t2RSUEb=z=;kpXWFU?2m4)7xt<pXsHwy
z3UZICF23#OH>#Zagv)epVKBQsE!KwTv#*W+^3>W)68oMXNB<bFaD(9AOs!9)Dhb{>
z5q>>>v)!TS;N4B**Kcx(^`U~6f(R!LnYl6sMGl6SI%eGxM1jSN+NC|3JeYnbCz*1H
zo9Q5|AR+@Uz!xNJGQN<T^Ro1HmnK{X*Dnw#eA?V~%2L_UV6^mAQ(J0@Q{Cm`^6(fj
zxKsbQh=O$bkA~|WfA4=(sIF>mbkyKFOslBjyhtAG?28;><?t!F`+{F&JeB7{Tn6_J
zB2!c<+xBkGyc__yXI1Az+J-xfwdOV<;Z?sk6MAj23)!0z+2WO8R3grNR_fD<%3CTO
zx+v_qbJ=yIA_0Ow(86H65f@m4W3ieAQ~4)jD-;Z57Az21&ao!<oIv&VF@credrt93
zRha?|Jl4}`5QrT=6a)nl$eg_X&|D<}1Qw&<mv)ThB5Bs~gzI1Klbs~zJJo#SQ+o`z
zsYKmM|Aqg!pczja{wPJR29{~b11G-W4G$C@l$-14V5-1o;6ap^b7br!GZnd2;+rjI
zaTw`6`aF*e57Tc0zW%I$n7<7PKzyl_wUbQytY)}y1}HyMA6DJ4Nc;3@PZCe!&E-8Q
zTC|%I&=f3_Z5m|dW@Y0aMk~K*_5CJf#+HBrV2(uE7<Y`gpNRVwYT=7x{#IqE0c^RZ
z(ynN`&@g1e>1)wmfu{Xv_$&qf{!lz)$J+8R4NW>vY7x?o#k^TlJMVaHki>_jauy96
zYaRs&vg23S`%vFlb1Q9buvLe~f6|FLmae}a8=V6if$SrGpI-&ZdA9V7S>Z9^YN*+h
z0TQ5sa|c(#x__uLWzLF~6WfKh>{iE12h#b_tinZn_$O*Og-Ou_tVw{^AcF1T=gXP1
z9^o=DX#wv_M2IMExaJ1{U9~ta=Z{DgRE9ae?G!{`vkw(XV<Os9Yb<A6<^Q`d_x*uT
zobS@|A49yT>0-`!x%p>ZN^5AqPjS!Muy_0`?o*&tmR^WexS5KC%X-Q)wCVFVi$Q{Q
z8di2b>w1Bj2AhaR5pRkNuR<W<*hdBJvFECWcdJRk$eKTVtPEP5GRCrb->8B`8ngn9
zSIN~RL`Iwbc2q?5e;0>A(j=X3ETHIZT{>e)9;=26f5@iP&!Gu~aVb!^FDiSrg&t}2
z-l?WjLTp4o4Sb$w;Kv2;xV2y4o?{J3)2xUB^zW)u(9Tb9>eA}cj>+M}{gCjibUA5(
z2MAO;A3SFj#r{Jxl7ld^NI)|+SUz45U7*5mdLSYbT|Udy$m>!pA&-W^-)8cJbh>n+
zYU*?u4A&?LJnRBqf@#KxIf6h5YCVZMlRKyNSoOMk&z|_*y9*b~pMNwR8~?0xT8bZ;
z`%d1h+&VJ9DLTgj;{C!f%kc&;4^6C@dU*B{ES5ht+b5xri?IPDwpZaN<*lh_K>JP8
zw$G*(CKZi;I52h=rDBZ*FN194ABx!3{JiCIOa^nz%gjrt<9=XuOR%<=Nm8@J8nEtj
zZ-Cb=9z#ZsHo14}6CjvWE>Y$AM-moF%WzIsh+E6eD8dbQ!jwSZHYjeYWr)X7M}Tim
z$F)<<S<<<IeCGJLiZ9_?UtHH*Jj*^EPlUo5u4vd)Ym|_EMd=LU7QR%wd?Xsv046zs
zMIB+8cu0ee02ISrM@&H=8bufmj_S=6CP5~N8|XkNeXdrD^hSgs`nLQuvUE^@=O<;q
z^teh3f_1sRrp;|;v{77V_)Nn<){z;EGjWm2a*I}OR6Jhv!H`YtQ!Aj`0Ezgyi9>Cp
z1qpZw`v`X-r&tvz3aXPprSpVOh58SKiybP{m<UwW@}QyY7n>0PH76!%A7i;H3;|`r
zDbSgRBMwf(K4hRwqd&E52d*?^d1870(}%sl?NP(7XJI-oQxsa-&)a6#RXi}T;ri$6
zY&P@AZbg3p7!_pvzHoLb-m*<b?>v%*m8;b<omUe~Q7lg8`K1xzw+eNOqg>|)Y1cm)
ze`R!O9`jFtBwCRa4HXB~KAH~NC{_#O+R;8v9%Vgdc089VH7N?O3;%^BCbEXpz3umL
zp41!f^cnp^v&KwCX?SEklpn#?!pmWxCZ$@`;*URm^tOK6j;<Y1i)?>%H*?f+Ba`xC
z@7?S3*3EytLOZ}i023LVZO6K<pNtJ#F#9lm?9mLzmV!NrsK`&K6kpCy??~z3&yX2H
z$+5*6oFN64zPt=jt}26RCTyQg4CkkY*&kh<d=OGvgEcO<;N?0xz}11wXaEIsd`!;D
z1Hmbt!NYAojQ3;od&}xqUkV9crh-?C(qdP{m3*eflY&<0;gIo}xvSS?JP6Kg23;B{
z2zVtsQ(IaiD2N~j+w$c>M26B?-s*LJX7Jij(a>id0niykp^Jq<qEcI>iwG_x!<z|X
z4<2Z!_9mAG<q`&9c3doPH3naSvE@S)g{N-b!MNg2&st=ymV+|GoyIUjz-Y)Ulm4<X
zQ6{ic`;4oz%m`mlIgXW&7r39duNSy%nUp@D>|9aD!?FbeIrZL|p}hKaYAnqAYh7~M
zh9h29;T&+*L}`<d8xPYp(i)y>t-Fwm@kDhhlkJ>S_fAYN9;C#DY=tJaarIkT3$0V0
z?Z)(GX{YZ$xP~%T`y=|lSC^&lx9&FH-Aula_vb`^uuAJMnToi3vYQpn8Kq9<+(`?o
z8GcomvAVD!5a*u(NF7Rfe_{3a#5Fy=Q2ATzA$WB1j1y$!v)B`1FJAVlU)L(uyIx0i
zd{(2PQV1c;bS3~t)-Q&KrUrjDQ0Yr#@=ORp>J9j<veWu8$i{Ya@bRy&A<3cDmtN@v
zUX!t)y4{yF$6+Vttv7h3fYPXp^r^+1OksE(L^j>OkXSDR@)PD2u!wLApdr@GW=44F
zq5v}kp3t*MIliDUl;KkS)+l69uiqI=f|6^j+kldk`cCV&Yj2MBMQv@*)1zwaxWMot
zmK;G&aw;0KT>%!j2q*DvYe;+YZ@Ua0Z!V%#zy6@hQTd>_=ArPVP`GH2-t4N5C_c@X
zqgb-56s9tFw7Gws`5R&XocP0@UfJO4${4>DPh$`?;4})~@J$#$F+iH?1}W8s@Zyi-
zI+d<_4bSid0mJtd@_4K5+9#c07SHGCzT&01D4+Z^=KL;lA;z2|*8b2=qghwy2$3Uc
z7Q}Dm1Dli3Dm$;ba47NQz`<4nzK@F|)|tXrSfAZ+--c<+RN)1@Lh^D+kLgoq6K`EQ
zyWjLadS$ExV%YfrukA+yl9ax87C;^pi8E+);}3J1sv6K+c>Ie_(KvmtGt|4mPSzYK
zaY6~4PHaPw+5I&DO+FAH4+YMpstp7$<+P9p2p^IS1~63*fM@bJ*=A}=+Bm`cZN8kd
zRLXDIDD?f&kQ*(1EUkuh3^YmuqlT5igc0dn9yT&{OiosAtX{e%3m8eWWkc|OE<b8t
zR0ym(MH8KCjSLO&BJ3JfEmobAP*>_RJQJnU9LdkKJ}Ja;n7po2RpV^GRJ{|c?Ukp>
zZtj*kDMmKgf{8rtC7QBF`0OAZn87~shU$)juh^sg8=J?TD%O(sGkqw3p1mSi{BuGY
zooe9hq?gSTN;jj}UM5@eQIx;{Guzs7Kc!<vMa;Sy66d#I36C^zl^M(?)A`s6;b+To
z$U_}qG1O6{eI*Ky(j$bw08TSN-HwLJku^(36cyV=y*$PM>Iqs+gPhPu^c5sfwX-VF
zO}5rOS~_-$*L(4+(lzgra<Y0|Cg?38&G*Lm!t&<wlpc#+Q!bi=IT&Y2lEgh}_Wi%I
z^1i-B73}7L*aW68($|y06hwpJ6ao|LKu{j#WxD`}bdqgQX}cgfr_{gqi~hJ+N(+&c
zmNlr^uWIL0GP!2T89-$oren1AFOl8mQzucT@lO|{ce57^r?Z-;Pca?549~v*=IJ?H
zc+kl;8@A9gc96a=F|_loR4%wBI@X|CZgSWqinQoh@ti;@Yetl`K8ea*=E-P$zJD(e
zy>Gvs;kuCxfD330-_*dvt^kVoL4th;S5<`O0tavnQ~lo35RMw)9gtF!I%Ur5YD-Y(
z?ONvXtsaQb7S8em`hwX4;FIY&wPDLjEgTO}sn3O_^?>iF8c=aEWbFYx4#lEQ`ITwd
z@G+&?GfyZae1D-zOdbT&1{XFrr+_t@*RXyrP_9#Lqa?1SiP?S?hn$#5Yv7NCI6=5F
z10%>L!E6`~>!^c7;OGX(mF86ZEUnoUFz!GeuVu~hVpfD3{yo!WxTevE))(*Sw)i$2
z<g4LqgE5DV8?4yUiU&Bxcimq3ZPH|_U~n;n<!fby&*u9zN+6iC+N620+sPSjRK+aR
zaT0vTH;sJc;xH%h(6}NnnR;s<cD9(vtk-*$gmtY1aZ=D%anj<FGRM!(If<6p5cW~u
zJ}G<2cYY=;M#{xYp74<?cxg3|EC1DDog`&*zqPOpzBGF|yfd-1)H_{-=1&Do$@j1Q
z>|PZTJPB(bSWn)C&rHHIpzntuD`+gD41bPsC3oLfz6X)P=vaxEvsfTltF<K#sd7EF
zBni-BQRykTY=E?_Gzc0^VnVz-<;=?<*&9Y^8ko=3IN9>pWaMYDANpSzv32{^H8m}`
z^SsxS55g1Gj7Qa?)8zhZsohPid}8S5kgHE6V`wccC0A(KdW9{tY~!0~L!r~I%Au6~
z6Sf~Dk~%dkx&@1hG4+8eAUk_)%%xD34$6yBd0$+Cq@`QXK`ZvV{!>brC(OY|N`X9B
zZ+iFI#>NF#dV9NrL|K}j-9|;{QUCa$rNJ7PbkU7r#O^eYiLI{;kHq(%5p*&Vij?y7
z5AY7lsYZ}fdx<9JQ`3~mAbO^v;$w0Db1xqiAw+w0M6n{`p}QY{Ja~3G(BakEp6TaR
zba2J?w>Kc|;CLh3-@{3{k~i$7U2Ugq<2}ADP8f$NqV6}EE3{V4R9@(DzTQ{$yyUsy
zD2v0+#Vc#UCvT;LKUogN|E>on0*QaMj1CP1vqxQ#?0&|mP_bKlL4u3&y~BTfP%Qb&
z&u(Mi_GVntuqsm{Wz=VVY0k0CPkz&Um6N0X(2OLUng|~MjK3fuI)tl{nWb9kx$qff
zdCjQ9<bCTeAhkixDykxwcKGFufabmn*ZeHVY(xRJihSkey2-saLBIGeL;k|6Q&|fG
z6yv5ko#Z$^D)m2Q7uA`W@0L4#smy;J7c<K3t;!6|5qWGu2!97HkT>v{%3D_lZfKl|
z*@5`@%Y=jCP24qu_Z%j_8~M1DjvJL79t00y!<0^N4Y#$e+7@)!qr6kECpYk<uPcU?
z1=9(;(G%R7qj<jDX0^ok$dq2hDyk?nM{n<mnXt0uJ+lnM_>8Y-|0kGou$1&P%}&Z$
zY1>M{n@(A{@v-l=C)&m(;nTmkP=n!k|DmqR`cH8RIsW`JRvBWj^bfh&J7V`wXsv=v
z*YyHmrNqYXSNXlIFE3;X$-A`dBUjD(b9N+S@3M#w;byT$9B0`_A_Ct0vugh+|4?{=
zA0IUOh5K#INQwu>C~YXL89b+M-yr7%XT5oa{JR@S_Qpqi!chNeKFlZpq^>KR``>C@
z-Q`&~PyQ}(7ju5|7#Z=r+O(!>Ut7M~{0rXY$0#Vg!C^RD{|*FH<RgSqq|Zqo8x`ff
z>rc}IH1@?JKmUlYn&igS_$Ef(pP$wr&wjZy@s%&;1o4UR8!OdmxW;y%qp4%ohjN$M
z%JGVu=*Xr&5mF`S2Ebi6Zy?%@#_=+pUEKKU&=RAF5*MU@w`8$?@<LhX3l{etjzBa1
zk;~a8iUMy}N)|vj;D?<mBa8z`KAYjm0BjGXt3qL!j{NUENn5vu@l*-#q`+ieEJs^N
zhC!wKc-uNT!A=vhI}Gk8zmWCwkJr;P!~X9<O_#~oM<eIZ)5@+aH7r#M#+|GN#-r3#
zX<u@quD&@#y)_Y05L+{^1~GpFoYF3LI#IFzzSd8kcPu9c?2Fi}=yyYEW!nf!7b&Pg
zL~s$&R>z3coi^H+P`=HR_dUzPo}b<BMx@pZ#BGJa&(&a#xmm48#O+llt&$YJxj>#@
z-+y$X;c7zIx3J<(rB}WoZ?9-HJGVB_YKy~YF3aafr=Fs{*?bPRe^)|)eI@CkG7*kT
z`A9f0P<jyL*a-A9BDl!cl#WM(%)*%qE}=EN&0fM5Xbw}ll%0xzt@3-I8bBbRf4Oq1
zOFBS;57S>CR8%ws(aeCeItPK6ay}4Q5L0F)13?4hawz=iuv{}xzdhG?<%b<=$T8c2
zS7{M=aQ7mXlZqI9#Wg6(-=ne58R@c#*Vw6#8fF0$The1tdTe{0&QX;uA}!R)j8Vv&
z0LiZx^0dHt11J;>$B7qgE&w2e{7n5NZzO)KzL}16jb8*wON*UYG=*hRH7>2AH6?S;
zop(|6tS)UW9W1l6SUvhhK%ao0xuKC#=25|ocM6D=FbLX9GwVNXlm&eqoD}eM`FQ5a
zm%xoBm8??ApG$-$)nckuEeAGLJwF+rwU_dS`{WW*W!cwVtH?Sq@2DJF)MXY?7d|99
z@JrEq=^y^!&;t(ksW((xBX0t2=-T4UD~)6X?Jbro5YB1^lBwW<5${=pll0$QL+@x5
z&H!?JYOo^U^`$1Cn(^v*euI}!s78~^+?KL!z^?7)fRXqUv<C4rg0=yeH<9f5PftAe
zFI0|8jaIgP7c+cE3AJZ~g;~jA2UfH9&@mO3<Uo0~tOft@OaRN6B3^7YKZee?h|?Ce
z);a(A0X=emC$%(6Qq9MQ>PRp+8BZ}tIX}))(NI~kN$@zH!SgHB`Wr6hbz5<)qblUp
zgmwG?e8t$*^rX1btdrbTCj+$HG&K_&^JFWxBqk?lwJ<{mt^+4L>v5XAu6<F@?-7dU
z*FAX|uM8hKJKJz<&yX(o?koaxCQsTNieNheCqDqX_q>M{R3Od1pWom42W9-^qiW|X
zM7a_LCSWc)eoe}72oxRAaM}e}XFpmGR+gry;__?XD?O-Cj&pj)#dN4t{@#7oO`&$s
z^H;YKO1-Va*M;qxJf{dN26aA99-r2zha6WEbmM<Px;OvTh4z4RS3&=BN^4qZ1Z$8|
z;XS@EY<bu3lFfWDSI`YgZ^^EA1c6XudAa^YHzBxVUv$S9&hZ!8O|(2H?Pccgq9=aK
zzq{9>Hvqew))Z+xE|=UCV3A5qD?+5!qXiKjeCR*`no=#?V8Owtd0Kg7_>>}xOY709
zqy{G>)4G{kcGMR<>UPx&J6a11du027nsBKNIcG%k7?+k#LD&utRaXjnbwKa+5Ff0H
zpEz3?{u&E=RgvLQN}W)Gr1<2RnUN{Z*>(`?OsHiu;#O0pL2Rj_v<$+@2j~qf$twnE
z1G27agC@&;8e8&UStTw~3<lP5Ruyu~9PbF}f@;9EDvV192vV|+%0kbAY9#2q)eST=
zvS6Nc-)*6w#qpO)nn5B68CxzYvk-&G;bY=CyrU2tWgvsVn*}<?PvC>;{QGa}AilQQ
z`+VD!@qZQ6=P;{QnntGMd!DsQ{EG~Xtt9}40_j-LY$eb>RvP@t-(D+0u3(Jg1`Q+7
zKTkGhuIi*4m{)S{zq@!lD%!+9W?(4ipSH-pkg5x<OZ$4zw_g<Rs<c+O4-K!ZN0jzS
zsg5fKl?R@+6$ycN_kpX{MEGz^eq>)g@zU2)TdO`Jiy}Q+qE#xH)6=4TzJgJ&Uf6q%
z80mzqeKwLt{@K@YHU3b{^aom(Gy`)^zm|4CiRTtR`Icxo4vb2SJvlFqdLevCOF^XA
zhU+&}6;wBN^TFI(frP8)&-o?N_G}i(f#EMFKlajPVKEs#6U`|PkMA&_&n=AlKN6Au
ztrnMJ4YjjEIJ%s|HCE^Bj9rwwJX0+;8zu1w8PnAk;D|5l=0hlSq(vxfiTjq_FT`56
zUBK9#vAx!w!@VNs2<8ZkveQKdbj=6d!lJl22!tDwvodDf9TG>H5Odhl(bJBs0e%Uk
z_bW3eKj5F41oJTd<-u#TveR}_@K|oSl7->@YZ2JW%26qB&|Dd)!DaJi&Nl5dq$Hcb
zJ0L<o2jFcO90&gmB6h`@`E$jjq&`T^_D=MNTJ>JJrMiNThP)Un0N`|$UK6Cm(#J#j
z&&PyQC;DVxZRD<<Ru#5U<D#-?C<or00<B$9uz^v2Tn7(pBd{K6p<pHzZa3kdK9W-s
z>nMsM3^To@<x>N7Oh}9A+Qy5cV1+f9<MteUJ2cQQqV3ti?VKM*((>W9H!QI9YehCq
zCw)uscc2!H&I876`Hwjwsv2<mL`)~A$?@S3--48tkkj+(_*|vtb!7(c8yG(F(BS4B
z`x#~c**jlh(TAXmFd`IcHoLlf_w017z&19hj-&-Jm-(&;)6<IH!AXwF7SqKL_x3Nu
zIUChxTYdKv%hYPj!XF>**-@#I+$)^3!dqP$SW<};>A}KTu=>r{le32BY+m=`w+>J<
zW!;8PMe6$kY}8usOx>7AZ!_<^&|dNtLbex-Y)cJBd|aGvdlFy0S#!GX8<93FN+H~n
zqJS)dBqEL8REplRxMk~x<1$H!gwAZ88jsF}veTIf|0aokfn+|Eqrh9k;sv~a+K8J2
z$e9y-th$Tg4g^WNuO-nrVZ*qwe=Z-1-=fc4Q^&-}BqzK&dmZsM>{rxG*C=-8q%3r@
zu5;J6lK4SpJTPb&hj{fhR=V3P^2MX6QF&L}ZYyv0>wC&AL2L1^S{63jet6kw-h1wQ
z@v<)tGIuf9UrC*iB%t1Lmta?k%j^*N(3~6%PIq*j63yGX!;0~~THa-&%-P<`QuS7K
zIeq5y+T$VLGJnytThDh}Be8cMA=7Vsc31eBQx>|BwxeX2M}&6F*EBx#ljt_s9EvZH
zH8MgNofSj)h86G@5xlef$y1eQibCHe<OeV}&UOWcwYc9;alxIz(aL+OHd)$;&QE}~
z)i(QEMh}kkjs5zyqfl#$Yu#PmFSY{KKKN~fXoq{(Ib|BPNk9B3*ggerA4iPRIoWJc
z@Hf$zsQ6d%J{$|1+@4Wu4I1~Ft7fNCkn_9C%a5@M>C&0LFejA=WjnE_f*@gqqgDb<
zKS!+4qgFq&uBbXs#?!-1tKN=aU2${JJhRZ(Ms4zoOlhTw-geOJDx%Em^t|?RdQ+zM
zvRor_Ti84#_gZ-i3{!ZGKFba$>Z(_G#O@0BWJ&EDU;o+qsQZvtvKt}XthK$HGJBSL
z@A%1%%<Y3tzr8-c<Ns^5Oqky@^fHQgxBiby9j-Qj_%edJ*A2eBUufu*(;GfN8v7|C
z^G~>pm|nRU6oxKvx6jmEg@?-l&61}VxL9xunUp`hkd_Ptx5Sm;6eSF=SBF`W70bN^
z(b!7)Zp)=P(Px>DJiNR;dY&!naJ33Gb`CXKSH_GwvEN@aFVB5YdhOf%i!0*0wsyYK
zlJ@@O*Y4nu#a-oh-JyPIBTJ?Kn)4UACC!xo0!y93*%@{zx-gu$6LB-?lm0YdDw~!?
zsHy2HHSYJ<ypQTJ*-zGzRnqwBv$12N;{@|jyUW}o4qW5C|2pfghoC*AmpAWy_h>au
z{e+~T?%Ht^K^ZgEY5g(GrId@yJv~D&t=3#Vl{8iwT6WE(<Uk-C{++b`l!k0uFw*ML
z{|vrNza~EVk9`>?49F-CJC<u8_LJv_z}z1Tfa>IC;PkEFp+82y1C0j7_QpaL8sAjj
z8Bu-fl%w~^BG&H8nrBH+^(~ho;7^9pl~o+Z)t9G#vX<CEGArSiXIQ5liEh}AoocEA
zxAi7vgeUQDlXE2=()p#0eFR1MC56>SyqnoQq(by73CL9d^L*0P9GAOd`;eSd%%4J|
zLQxsE20ri%nebPO>BqtR+&jTr_qyUc<-NvUqSA!2bztHV_4s+TEPg~Y60_2qeSX3(
zSjylX229gf?$ovXK)t$J+Gqoq5fBhS0p?}~NY`spy)!Hj-Vi^}(jGfWR59(v-5XXx
zq5U%y0za_*n)UPgyqADyph7h?Rk~K$BRD4M)sWWuNcSpcx$Vu9=L)sYo)uX2-L9&O
zAN>MDE;A5gU4$pAc>#S!26wY>Hj&cXZ;e>j*Qoh5pp-6gqL0g)QzDWx0O|Yo#;cIq
zMG?{#U{{_EIpBXfKuRy4*o11baei(#tmXqRsP)Z{ak_;4(LxUpDKI|FK8|QS!D{pF
zzW}{mp0&g@<`3NXA*M2`_210jjxVy8|LZw;p4l7>8@7QP@{F9vURPN#ooGLVq+b{0
z03W%YLtlw##zL3<@(1m#EgQUb)B-H}<wCO|uRtuyWINGPn~N=GpXvV{G;|<3GY*hb
zKjSYtgdIBJEzZ-S6*tqOW>?r(n)f)SU9a0Tmej+#K8wL|?Sm~DVBf@)21TLEK;WtH
zZTF3|;{w~1qzn%d<%4@N+_LI=QEcB2^q-ys`DU>N_{|<tL!*@i5(Ok<SW2^Lf<Ph}
z(8N$DNSFb1N~Ao8IuJhO&W#<X^ELPDXX!pMZ&#A3Zwr<ie!uBk-b%dwYUoM+de}D%
zwzxCJUH7KMBQ`uVh*aN@Ei3QgY-V+d_ZX7zyKf-y^a{fsm?_9^oD-gU(=cA%FAs?@
zGK)5X4qMG+;;ot06J!Y88o(wz%i#sfvGBs8*<2Uow1t>et{Xw75Sw+<P?669PJlDD
zWm+1Kg;P~Rzs$GPD?9N%ZydisjF-Z^v$d1?qKFTsaEj)qifyb<G)=MXWe<a(EiPYa
zTK;0<AIB|GZ?!Srw0p%T<&<<6<2?~J$T!~M?0G{`e5s6bj8z%8jvazL&*LzSk-8Wh
zMhpK|V4hPTVNdpK_cTM-H4cz|VeE3Jku1~48DNQYnA^e|?SJUe4{v?E>HMZyCE>;8
zJ?KQ3ecq4Oa{;yqu6^;p6a=NMJ8g?v)TXAk<AW_fH0M}U*;<-NjeU4|Rsy3{{PFB_
zY|;;|Y4OeG_bE3nUs}&<-P7%gI$;#O7&SE^UZ=G?M`aww2JZ<jJ+>ThuUI}lbmFT*
zO53DW2qd}cZ^Y0YmTUYehA!aysLY!>Q5!L({)d{=Q$q{6N2J|g;{z9kkvo%LK3!@(
zFkbhud~ve!&i?b82EFnh19d4<4Wg2QXRmzJcmJpLgT<*Z!2Zg+lvn18m0^Fx>pByA
zg8JxXi@HDL*5W;Kd)K6zvQ_$;{Aip#Kh34Ee~mqtLfn=8pMLQBnrM5oJT&I6bh&D6
zP<>Cs-L*E%L&l+q;z`qtx5o{IW53<M_qocWZb)C{)xKpzlK%d^TGRNUZk1q8p6zR4
z1C!oo@AHD|FDm`xo^(Cto?`R!s;oPa9=@M*Wbf8G)V%<?q2)NY@5*SpHGKR<xWon9
zg)rwXG);VR6o{8P`<{#-Z_|}kpO;yA094%qLaZ|d65c01y)+t7r?}|06mB*k41ZN(
z1qN&Qa5THDjnk_)-^{NB8qwo74MIf?uc8RD=DFo|)q$q49d|f#IlFsUmfzc{<hX6A
zdAB<_CnB=G359e!PK7BsBU_8wb4XaWmD-lS4ZicZgkA-Lpg%cZzCvqn_L;(t$+(GV
zbkq(O*W;ySBqII5u%ayfuoGg#WI0FG?mSDgb4+Ks7wv!?)qym@axnnZRUb7a#R?*l
zvcOzfoC@E_{DdV5uobFtY-Z1#OJjqJ()mH-FL|B>hORb-JJ|<K=GFQQjBjix%exCn
z52OW{1^S4vo(o7J)7sGG$}*vX3`TW7J{@b0_s`1^>Tw1HO8flOibD5VYz;Zcm8sgQ
ztAb_cn0e)dTm_?tdcBUBE1Y7il~VGJ=+LcjdX}wv%kjNwuQfbKClh@Ee%5vYd;A)%
zODS=}UF8bP4mCP_LtPrvFOBeP$UA{f*n!d2D+;V*fFY;fb<77MSuvhY`S}(SPxkbC
zdknOqc30-`!O}$TWNrnoM`w2qTryXx)1XJmTiRSlJv;R|mPy1buUXad4X`Y1fpB31
z7ylfAdPQMKEgD*SEI1pebC;(Y2|j!A!xAV=^v6U4vd2~g=sci<K%i~X$m7XvmnQ$a
z+5M;OQp3Hnha#AD4~PDyTd7AV0xNU270CxtCZ=8DkBp{0QLhR@9vD_UIhqr**zwZN
z$q>`xT!UH(i*Ei5_7lFhY|eeTnn^n6OkFyszG_gcY+WXBh!UdFUE6a0!<{ep9M+@d
z6kh~fd-5DDC*g8=#CY$Hb;j+Al!Wz<y1b_#Z`YMR$+@I|Qs7vOiq4Apw}1V!Bq?0<
zh+oW;kpL;iCoEJ-uZos+t5K`y{)mAgu{0f2Yi=ak$6ijJr%l45_N=pX72aXZ^8@Sm
z^FQvYdc#9bdR8E6u8CSQrPHqJh01g1`Bjjt7_I3itnfgmLI_Z)hw*p%r0KYMHqtWR
z6D6r;@uiSbf0JfT=uhZQpu*={bc9hrYkoA~P580&Y3$OuK{-^o26C;RsRR~+#0Pj0
zCvxS&byg5&Z$TNVopKmA10H02c{I>j6UI;{J9ePBg2Y8ss)ZEL>JD#z|HwdUuC;JW
zlNYvy2iai9U7Z~M91l+PO>4>F4>o>NAvRQS@}xyWH?xgFC0~JBT|^AgOd_Qv9J3>1
zg7cd8OlW)B_j&Hb`H9U58_HCbpVmahIzG&`^<E1<$;R;}bK#hy7vW$TjGXu}b^|j<
z1|?ypI=cbE!)~t8CC5D&*?eg4>NKoybv>1vvvXUd#%@lWRFD4~{%a-QQC$G{v^I|*
zvo(9&U&&y5_##>Z+xYFiAIX;I4<6A<{!=rB!7GXLR9GMw9tWk~wz(U-%M@dx3Z(<4
zhqe?DZqNTU?mVG1M@7phyL`&#eFnV9AKBuKslQ7tbs9&ryu*}qnJ^Gc6(%@gj%PcG
z!hnPM4Q9GDSB<n1xx97u%+PS!%Akiq3}UVvpN|(WvF^zxP)`=49fn`E0A-gC*?B7u
z(2>|IXv(7hx9G}N9V1&)&v%f1gD^=AcjNruJ=y5(`VL{~apEB~d^^$z(O%-o&;kb+
zt$3f#tzT;3Eg$f{%HiVM&t}{{o&6OqS^$|PK?MN@AIz$E;5sPTadq@fz<7wq;HIjR
z55)~UjIOy`bL1CyVnAFOU@2S?Zp6jI)f#4fGJpo)a`Y{5@2&adZe`MS(38!X>E7wW
zIML7{!blpBC5sOltPkXE<PX$(@Ls+;+nKBs*}+*&qlelR=1&R)FpyHb${;?dH5W0G
z&L>KBqOBGk<6)|W4~p4CI@B|O5fRs}M7);p6j$Hf>DJ8o<P$ml5=jop2i@;Y)!s=w
zq5jspsgSl{-8}nuoq_pSLM?l;K-`mpwP2iS+159m*;RvuJ=I$@ix3ItTI;)HT~3SD
z3xC}jcD=*S2`8;@qGFX1S-rfU6CEobz!yYIvQG*r$W-}D9**A#&OjbAo1GkDR%XnF
z1fTPhoCRoHb15qOCbHDNz}{cO8idAka2!YYLy8sfzQmln$!4C{rzGJ?*&q7~)mayS
zfB{D{ySyCxOm<u~?u4(XlPx2ST?H{qoGDcwW=y+aw1hO&FUlY++Pz&<SE}Dj1PS7(
zcoPtdY>rg`VOidOOgCX}3uxH??L&#r@2=anZ!3fg1FZD^qKKyBd%+a%OeB!O<Y5XT
ztkTE<d_W`<5$x!XVi8$RbidSM4i&-*K$oEDWx;3xEH4b>gXRU2Bu}K>kdhb7N8X6@
zFO}5c<>(IU160I=l^)7}yXe;`Bld_|5Rd-#E+gCVEAso_v$wK?GA*n(3#d0yKJ_oV
zLeIQ}(A^JCUdY}xJsAA&+Tnw@4ciVce!sgX&$Zm{@B^9qL@T{>Z*A_C|B7kyR{M<}
zcd*L}z2nfQw3Cx~<zp$py;@ZunImo}-D9H)q2d9kbt8W3?Z8wkk5phO2H|%aCy)MF
zM&!%z5q@RqdH-9nDaXQo?P+TMV6FdjA#5SVQpak-M8w)w?A{mC_~r}6vdhmND)nT<
z4pr)^R7t9Z3}1}GFg~$0_^ADD;M5b9mWT4dU`gRja!s&pO`Bqa8%?;DYHn?g9}GI^
z;{)uTr~M<;+xt&b^HLUCZo>i@l_YVdJNMaPk|e=tOGEf$&fJQ8yEk8dSlo2%60Bx=
zt1v1@qW_l%ONM)6B@=T+ic+jW?NlayY0<jqbbllZ+*y|N*!@)Q#8iN!*JM-o(oMZ#
z@v{dLM$<pR8)WHGPrSEZW)&rDZF&8E{Gx!M`RB%~I%jsxc|K&+s`SJ%o@uPV4zvK<
z;!94XLm9tH6K{Twi7e#e9Ju)AjUwaGFT|w!1e(SRWSDa>xqn@Zi@5HTv0HIEW&iTV
z`QNL?|ATy&;ZvITg?kL)scfsrKz@j)HwN2J4|SYH9_8>`OSu?>`mf5TPrrjjc3IrF
z3j$?Q&8VTQ<*I1TU$X~a{tf%dDf_eT$)_iR<`p%5Z6eVb0lAtlkyLG5Ex2g=zHpMs
z>GL!cqO^PRQP`N%>!b>=H$n!|ea5=B48FvP{Wm;GunyGkrqF?vpoR?9W~*OGAO0TD
zPdWbLXUG^7Xy05nE&JN5y8rO0(u+_PuErbX;XyB3jVo|p@p3(<P(^yGfT}<!Qc*oj
zmu(&FD*Zh`vK&!vONn}@rLwIP5`_BsyCCVVm2s$9nF;lU&a>JR#E*)N9?2TG_~{d#
zgYtNJke<jH#5+5c^vanrMoGB#g_45t-H5^x%=M_m^gZ9{U%eXFHj5}tkm1M5R)^H&
zLna@SW4Sl|*&VE19$d_3_dH2wu^R35EZ$&`S_{BNnpkW@SW<yaTYcfd!%H1)SySKT
z+U(t9>Jp3Z_6{$f3YxyQ#0<#V49tD@E^z+0{hjxTHTdw+`%60Zv-mE*%1Eu%9K!zv
zwFFB0hFB{IV(O)@&cU>QVfW%PMBwEZp8omfd7qJ@L}~C>EX6gmeX>1?YSTS{`Gts@
zniO`xqA3XWFgGZZ2pk*yjqhAy1`;elM1~?kS|Ee4A-nXDEJ4yPgb;T<Bw<KV?3-*b
z@sLo!u2rx_ihE>vTd>V?pMMQ<A?v$u()Pf6@42!!4!Uq;BrPJrowK}hE0v1okv1YB
zl2y=$1H*Bk#7UOfxH=|E<W8oLiJ>x(1l`gw)s(bdIfa`g!oj3=xItAbIH7=XuyhQ7
zqGy|A!uhsHS1FbV!T@=A+%^ivazY$aOK6C;t{P_1&M`$y;4AJDoWt?C-m`=AF!mm%
z={TUyTPUS0M5_x2noJm-v^YZ%B*^~Pw2~i@@^6n`Po=B|fvuZW8;hcz@$%6}^N~m7
zpHb}4QlhGSBvPV}t`FjtMdUk=Y44%+4v5ad#CFC8d2ApU%s|W*1OUR59(#iNXX2UI
z#6CS8Us5%`P6L4Vkg*Qaas~lhp>VwcTsb%}$a5$+GB{(CS1tz$gh(+FNS(Vj+7t0|
zlon`E6ge#72o_|6$a4Y9py4>%oe;^x1+du<0YoE84MCJa$S|}+K}t%;M?@(L4HbZB
z0jPxp93=*-K@l-%YVjLsm}%})1qAjXgo45dIs}QZo(wn>x*iEMO2+U)1Y`+^3{FBE
zj7Xw(J2-ZH@;Ej}BjUjFV5o98;!HRmoLsI~14JCPUOIc6yfT{?4Tk1M873r*{kQ6D
za=j1K^SCMPpGX*Sc_c_c<;<Ou!MktJVOGU_Ws=bvu7wa&9wk`>i~>`R6GXseouJw&
zfsF%-5`9ONu{a&0CQ0!Uy;I8F=<mAUTQuVh?&^5^2$IQ?$v!rZOhMmj6YnAxiKqyc
zl2AZ_7O!!{35g-6+VeYUIJZr(StUPx_n6D(Qw=p?RPKv#P8_IHsDbssBBY8d>lS&B
z#w0TVRu@5DRB)&huoMd?38r*R!kN-IMZi%rOoGsLhnEauGng%NSXIm-fke*^BQV+#
zmQx`G#6XLtxhTg>q+}G#^NiJ123NzNYKCBt9JUWNxno2r5Nwo+Akchq51}O#C{sj1
zLq!n<6j4PKHkDu8qu1Iw(ue2G4ff0sPr`*Ih>;JoB4h{eWS}1$<)Tm`p=nl-_+bF0
zI0~hvps5KLQas>8O$7w8A-LQFp{gJ_wJAsjmJuL~kPKxOB~q1X6D2r;LcbQrh$s(U
z73Hi$DPRnQ#vo~7BB*L80tptWij|0JgTVXmx#M3$(?g#~`gmv=*hnJh;*JbsP6*1Y
zRWif@q(;_EO~(5cjX|wU;r%4Da|-k_osi+>J{?iv6GqCAq6C44xriPQ@#*6^YeXiO
zS6BAiTCozKqfzZ53$OB&B6ZIAs6saoM|c3cQ{4)`R?ZhWG)IGMc+Pt$-gQYFCO#*&
z%4|Cdufy%n-$B0cl1VtF@G)LIt(B)r2%~M6c%Z{N5S(rdn5MQahMD7@sTkIEi+CDT
z)5biN<6K!XM}v~i58vOU$e7!Db88m)0`uuPuLGLaF}~nEe9@7D=KSxi%s*rfk1K%I
QKmUulBAh5lTD3l!fS!jUGynhq

diff --git a/downloads/python/ibis-python-client-api-1.1.1-src.tar.bz2 b/downloads/python/ibis-python-client-api-1.1.1-src.tar.bz2
new file mode 100644
index 0000000000000000000000000000000000000000..14e496e8d8dea2640ae327bc1f2109c53947488c
GIT binary patch
literal 50721
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

literal 0
HcmV?d00001

diff --git a/downloads/python3/ibis-python3-client-api-1.1.1-src.tar.bz2 b/downloads/python3/ibis-python3-client-api-1.1.1-src.tar.bz2
new file mode 100644
index 0000000000000000000000000000000000000000..a9da4b1c1203afe2b79923a08f80efc925e18259
GIT binary patch
literal 50458
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
HM-Td7o#_)q

literal 0
HcmV?d00001

diff --git a/src/generate-client-methods.py b/src/generate-client-methods.py
index 2a129f4..455c9fa 100755
--- a/src/generate-client-methods.py
+++ b/src/generate-client-methods.py
@@ -42,8 +42,9 @@ The following options are supported:
                         may be any of the following:
 
                             * "java" (the default)
-                            * "python"
                             * "php"
+                            * "python"
+                            * "python3"
 
     -d <output_dir>     The directory in which to write the output code.
                         This defaults to the current directory.
@@ -685,6 +686,40 @@ def generate_python_module(app):
     return PYTHON_MODULE_TEMPLATE % { "licence": comment_out(LICENCE),
                                       "classes": classes }
 
+# ==========================================================================
+# Code to generate the Python 3 methods module.
+# ==========================================================================
+
+# NOTE: This is almost exactly the same as the Python 2 code, so we just
+# re-use all of its code, except the module template, which differs in the
+# form of the import statement.
+
+PYTHON3_MODULE_TEMPLATE = '''# === AUTO-GENERATED - DO NOT EDIT ===
+
+# --------------------------------------------------------------------------
+%(licence)s
+# --------------------------------------------------------------------------
+
+"""
+Web service API methods. This module is fully auto-generated, and contains
+the Python equivalent of the XxxMethods Java classes for executing all API
+methods.
+"""
+
+from .connection import IbisException
+
+%(classes)s'''
+
+def generate_python3_module(app):
+    """
+    Generate the Python 3 code for the entire methods module, containing all
+    the XxxMethods classes, using the PYTHON3_MODULE_TEMPLATE.
+    """
+    classes = "\n".join(generate_python_class(x) for x in app.classes)
+
+    return PYTHON3_MODULE_TEMPLATE % { "licence": comment_out(LICENCE),
+                                       "classes": classes }
+
 # ==========================================================================
 # Code to generate the PHP client methods classes.
 # ==========================================================================
@@ -883,6 +918,10 @@ if __name__ == "__main__":
         filename = os.path.join(out_dir, "methods.py")
         content = generate_python_module(app)
         update_file_if_changed(filename, content)
+    elif lang == "python3":
+        filename = os.path.join(out_dir, "methods.py")
+        content = generate_python3_module(app)
+        update_file_if_changed(filename, content)
     elif lang == "php":
         for cls in app.classes:
             filename = os.path.join(out_dir, cls.name+".php")
diff --git a/src/python/README b/src/python/README
index 600839e..53130d7 100644
--- a/src/python/README
+++ b/src/python/README
@@ -8,6 +8,9 @@ It MAY work with older versions (possibly back as far as 2.3), if you are
 lucky, but without the ssl module it will not properly check the server's
 certificates, and so cannot be guaranteed to be secure.
 
+NOTE: This code is not compatible with Python 3. For Python 3, see the
+separate code in the python3 directory.
+
 Usage
 -----
 
diff --git a/src/python3/README b/src/python3/README
new file mode 100644
index 0000000..4c4fd21
--- /dev/null
+++ b/src/python3/README
@@ -0,0 +1,13 @@
+Lookup/Ibis web service API python 3 client code
+================================================
+
+This code for Python 3 has been generated from the Python 2 using the
+2to3 tool (plus a couple of manual tweaks). Any changes to the Python 2
+code should probably also be made here, and vice versa.
+
+Usage
+-----
+
+Refer to example.py for an example of how to use the API from Python.
+For more detailed documentation refer to the Javadocs for the Java client
+code, which this Python client code mirrors.
diff --git a/src/python3/example.py b/src/python3/example.py
new file mode 100644
index 0000000..e6429ce
--- /dev/null
+++ b/src/python3/example.py
@@ -0,0 +1,33 @@
+#!/usr/bin/python
+
+# --------------------------------------------------------------------------
+# Copyright (c) 2012, University of Cambridge Computing Service
+#
+# This file is part of the Lookup/Ibis client library.
+#
+# This library is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License as published
+# by the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# This library is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+# or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU Lesser General Public
+# License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public License
+# along with this library.  If not, see <http://www.gnu.org/licenses/>.
+#
+# Author: Dean Rasheed (dev-group@ucs.cam.ac.uk)
+# --------------------------------------------------------------------------
+
+from ibisclient import *
+
+conn = createTestConnection()
+im = InstitutionMethods(conn)
+
+people = im.getMembers("CS")
+
+print("Members of the Computing Service:")
+for person in people:
+    print("  - %s: %s" % (person.identifier.value, person.visibleName))
diff --git a/src/python3/ibisclient/Comodo.crt b/src/python3/ibisclient/Comodo.crt
new file mode 100644
index 0000000..20585f1
--- /dev/null
+++ b/src/python3/ibisclient/Comodo.crt
@@ -0,0 +1,25 @@
+-----BEGIN CERTIFICATE-----
+MIIENjCCAx6gAwIBAgIBATANBgkqhkiG9w0BAQUFADBvMQswCQYDVQQGEwJTRTEU
+MBIGA1UEChMLQWRkVHJ1c3QgQUIxJjAkBgNVBAsTHUFkZFRydXN0IEV4dGVybmFs
+IFRUUCBOZXR3b3JrMSIwIAYDVQQDExlBZGRUcnVzdCBFeHRlcm5hbCBDQSBSb290
+MB4XDTAwMDUzMDEwNDgzOFoXDTIwMDUzMDEwNDgzOFowbzELMAkGA1UEBhMCU0Ux
+FDASBgNVBAoTC0FkZFRydXN0IEFCMSYwJAYDVQQLEx1BZGRUcnVzdCBFeHRlcm5h
+bCBUVFAgTmV0d29yazEiMCAGA1UEAxMZQWRkVHJ1c3QgRXh0ZXJuYWwgQ0EgUm9v
+dDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALf3GjPm8gAELTngTlvt
+H7xsD821+iO2zt6bETOXpClMfZOfvUq8k+0DGuOPz+VtUFrWlymUWoCwSXrbLpX9
+uMq/NzgtHj6RQa1wVsfwTz/oMp50ysiQVOnGXw94nZpAPA6sYapeFI+eh6FqUNzX
+mk6vBbOmcZSccbNQYArHE504B4YCqOmoaSYYkKtMsE8jqzpPhNjfzp/haW+710LX
+a0Tkx63ubUFfclpxCDezeWWkWaCUN/cALw3CknLa0Dhy2xSoRcRdKn23tNbE7qzN
+E0S3ySvdQwAl+mG5aWpYIxG3pzOPVnVZ9c0p10a3CitlttNCbxWyuHv77+ldU9U0
+WicCAwEAAaOB3DCB2TAdBgNVHQ4EFgQUrb2YejS0Jvf6xCZU7wO94CTLVBowCwYD
+VR0PBAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wgZkGA1UdIwSBkTCBjoAUrb2YejS0
+Jvf6xCZU7wO94CTLVBqhc6RxMG8xCzAJBgNVBAYTAlNFMRQwEgYDVQQKEwtBZGRU
+cnVzdCBBQjEmMCQGA1UECxMdQWRkVHJ1c3QgRXh0ZXJuYWwgVFRQIE5ldHdvcmsx
+IjAgBgNVBAMTGUFkZFRydXN0IEV4dGVybmFsIENBIFJvb3SCAQEwDQYJKoZIhvcN
+AQEFBQADggEBALCb4IUlwtYj4g+WBpKdQZic2YR5gdkeWxQHIzZlj7DYd7usQWxH
+YINRsPkyPef89iYTx4AWpb9a/IfPeHmJIZriTAcKhjW88t5RxNKWt9x+Tu5w/Rw5
+6wwCURQtjr0W4MHfRnXnJK3s9EK0hZNwEGe6nQY1ShjTK3rMUUKhemPR5ruhxSvC
+Nr4TDea9Y355e6cJDUCrat2PisP29owaQgVR1EX1n6diIWgVIEM8med8vSTYqZEX
+c4g/VhsxOBi0cQ+azcgOno4uG+GMmIPLHzHxREzGBHNJdmAPx/i9F4BrLunMTA5a
+mnkPIAou1Z5jJh5VkpTYghdae9C8x49OhgQ=
+-----END CERTIFICATE-----
diff --git a/src/python3/ibisclient/JANET.ca-bundle b/src/python3/ibisclient/JANET.ca-bundle
new file mode 100644
index 0000000..9254c41
--- /dev/null
+++ b/src/python3/ibisclient/JANET.ca-bundle
@@ -0,0 +1,52 @@
+-----BEGIN CERTIFICATE-----
+MIIEmDCCA4CgAwIBAgIQS8gUAy8H+mqk8Nop32F5ujANBgkqhkiG9w0BAQUFADCB
+lzELMAkGA1UEBhMCVVMxCzAJBgNVBAgTAlVUMRcwFQYDVQQHEw5TYWx0IExha2Ug
+Q2l0eTEeMBwGA1UEChMVVGhlIFVTRVJUUlVTVCBOZXR3b3JrMSEwHwYDVQQLExho
+dHRwOi8vd3d3LnVzZXJ0cnVzdC5jb20xHzAdBgNVBAMTFlVUTi1VU0VSRmlyc3Qt
+SGFyZHdhcmUwHhcNMDkwNTE4MDAwMDAwWhcNMjAwNTMwMTA0ODM4WjA2MQswCQYD
+VQQGEwJOTDEPMA0GA1UEChMGVEVSRU5BMRYwFAYDVQQDEw1URVJFTkEgU1NMIENB
+MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAw+NIxC9cwcupmf0booNd
+ij2tOtDipEMfTQ7+NSUwpWkbxOjlwY9UfuFqoppcXN49/ALOlrhfj4NbzGBAkPjk
+tjolnF8UUeyx56+eUKExVccCvaxSin81joL6hK0V/qJ/gxA6VVOULAEWdJRUYyij
+8lspPZSIgCDiFFkhGbSkmOFg5vLrooCDQ+CtaPN5GYtoQ1E/iptBhQw1jF218bbl
+p8ODtWsjb9Sl61DllPFKX+4nSxQSFSRMDc9ijbcAIa06Mg9YC18em9HfnY6pGTVQ
+L0GprTvG4EWyUzl/Ib8iGodcNK5Sbwd9ogtOnyt5pn0T3fV/g3wvWl13eHiRoBS/
+fQIDAQABo4IBPjCCATowHwYDVR0jBBgwFoAUoXJfJhsomEOVXQc31YWWnUvSw0Uw
+HQYDVR0OBBYEFAy9k2gM896ro0lrKzdXR+qQ47ntMA4GA1UdDwEB/wQEAwIBBjAS
+BgNVHRMBAf8ECDAGAQH/AgEAMBgGA1UdIAQRMA8wDQYLKwYBBAGyMQECAh0wRAYD
+VR0fBD0wOzA5oDegNYYzaHR0cDovL2NybC51c2VydHJ1c3QuY29tL1VUTi1VU0VS
+Rmlyc3QtSGFyZHdhcmUuY3JsMHQGCCsGAQUFBwEBBGgwZjA9BggrBgEFBQcwAoYx
+aHR0cDovL2NydC51c2VydHJ1c3QuY29tL1VUTkFkZFRydXN0U2VydmVyX0NBLmNy
+dDAlBggrBgEFBQcwAYYZaHR0cDovL29jc3AudXNlcnRydXN0LmNvbTANBgkqhkiG
+9w0BAQUFAAOCAQEATiPuSJz2hYtxxApuc5NywDqOgIrZs8qy1AGcKM/yXA4hRJML
+thoh45gBlA5nSYEevj0NTmDa76AxTpXv8916WoIgQ7ahY0OzUGlDYktWYrA0irkT
+Q1mT7BR5iPNIk+idyfqHcgxrVqDDFY1opYcfcS3mWm08aXFABFXcoEOUIEU4eNe9
+itg5xt8Jt1qaqQO4KBB4zb8BG1oRPjj02Bs0ec8z0gH9rJjNbUcRkEy7uVvYcOfV
+r7bMxIbmdcCeKbYrDyqlaQIN4+mitF3A884saoU4dmHGSYKrUbOCprlBmCiY+2v+
+ihb/MX5UR6g83EMmqZsFt57ANEORMNQywxFa4Q==
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIEPDCCAySgAwIBAgIQSEus8arH1xND0aJ0NUmXJTANBgkqhkiG9w0BAQUFADBv
+MQswCQYDVQQGEwJTRTEUMBIGA1UEChMLQWRkVHJ1c3QgQUIxJjAkBgNVBAsTHUFk
+ZFRydXN0IEV4dGVybmFsIFRUUCBOZXR3b3JrMSIwIAYDVQQDExlBZGRUcnVzdCBF
+eHRlcm5hbCBDQSBSb290MB4XDTA1MDYwNzA4MDkxMFoXDTIwMDUzMDEwNDgzOFow
+gZcxCzAJBgNVBAYTAlVTMQswCQYDVQQIEwJVVDEXMBUGA1UEBxMOU2FsdCBMYWtl
+IENpdHkxHjAcBgNVBAoTFVRoZSBVU0VSVFJVU1QgTmV0d29yazEhMB8GA1UECxMY
+aHR0cDovL3d3dy51c2VydHJ1c3QuY29tMR8wHQYDVQQDExZVVE4tVVNFUkZpcnN0
+LUhhcmR3YXJlMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAsffDOD+0
+qH/POYJRZ9Btn9L/WPPnnyvsDYlUmbk4mRb34CF5SMK7YXQSlh08anLVPBBnOjnt
+KxPNZuuVCTOkbJex6MbswXV5nEZejavQav25KlUXEFSzGfCa9vGxXbanbfvgcRdr
+ooj7AN/+GjF3DJoBerEy4ysBBzhuw6VeI7xFm3tQwckwj9vlK3rTW/szQB6g1ZgX
+vIuHw4nTXaCOsqqq9o5piAbF+okh8widaS4JM5spDUYPjMxJNLBpUb35Bs1orWZM
+vD6sYb0KiA7I3z3ufARMnQpea5HW7sftKI2rTYeJc9BupNAeFosU4XZEA39jrOTN
+SZzFkvSrMqFIWwIDAQABo4GqMIGnMB8GA1UdIwQYMBaAFK29mHo0tCb3+sQmVO8D
+veAky1QaMB0GA1UdDgQWBBShcl8mGyiYQ5VdBzfVhZadS9LDRTAOBgNVHQ8BAf8E
+BAMCAQYwDwYDVR0TAQH/BAUwAwEB/zBEBgNVHR8EPTA7MDmgN6A1hjNodHRwOi8v
+Y3JsLnVzZXJ0cnVzdC5jb20vQWRkVHJ1c3RFeHRlcm5hbENBUm9vdC5jcmwwDQYJ
+KoZIhvcNAQEFBQADggEBADzse+Cuow6WbTDXhcbSaFtFWoKmNA+wyZIjXhFtCBGy
+dAkjOjUlc1heyrl8KPpH7PmgA1hQtlPvjNs55Gfp2MooRtSn4PU4dfjny1y/HRE8
+akCbLURW0/f/BSgyDBXIZEWT6CEkjy3aeoR7T8/NsiV8dxDTlNEEkaglHAkiD31E
+NREU768A/l7qX46w2ZJZuvwTlqAYAVbO2vYoC7Gv3VxPXLLzj1pxz+0YrWOIHY6V
+9+qV5x+tkLiECEeFfyIvGh1IMNZMCNg3GWcyK+tc0LL8blefBDVekAB+EcfeEyrN
+pG1FJseIVqDwavfY5/wnfmcI0L36tsNhAgFlubgvz1o=
+-----END CERTIFICATE-----
diff --git a/src/python3/ibisclient/__init__.py b/src/python3/ibisclient/__init__.py
new file mode 100644
index 0000000..c61ea9f
--- /dev/null
+++ b/src/python3/ibisclient/__init__.py
@@ -0,0 +1,24 @@
+# --------------------------------------------------------------------------
+# Copyright (c) 2012, University of Cambridge Computing Service
+#
+# This file is part of the Lookup/Ibis client library.
+#
+# This library is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License as published
+# by the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# This library is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+# or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU Lesser General Public
+# License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public License
+# along with this library.  If not, see <http://www.gnu.org/licenses/>.
+#
+# Author: Dean Rasheed (dev-group@ucs.cam.ac.uk)
+# --------------------------------------------------------------------------
+
+from .connection import *
+from .dto import *
+from .methods import *
diff --git a/src/python3/ibisclient/cacerts.txt b/src/python3/ibisclient/cacerts.txt
new file mode 100644
index 0000000..d7f398d
--- /dev/null
+++ b/src/python3/ibisclient/cacerts.txt
@@ -0,0 +1,77 @@
+-----BEGIN CERTIFICATE-----
+MIIENjCCAx6gAwIBAgIBATANBgkqhkiG9w0BAQUFADBvMQswCQYDVQQGEwJTRTEU
+MBIGA1UEChMLQWRkVHJ1c3QgQUIxJjAkBgNVBAsTHUFkZFRydXN0IEV4dGVybmFs
+IFRUUCBOZXR3b3JrMSIwIAYDVQQDExlBZGRUcnVzdCBFeHRlcm5hbCBDQSBSb290
+MB4XDTAwMDUzMDEwNDgzOFoXDTIwMDUzMDEwNDgzOFowbzELMAkGA1UEBhMCU0Ux
+FDASBgNVBAoTC0FkZFRydXN0IEFCMSYwJAYDVQQLEx1BZGRUcnVzdCBFeHRlcm5h
+bCBUVFAgTmV0d29yazEiMCAGA1UEAxMZQWRkVHJ1c3QgRXh0ZXJuYWwgQ0EgUm9v
+dDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALf3GjPm8gAELTngTlvt
+H7xsD821+iO2zt6bETOXpClMfZOfvUq8k+0DGuOPz+VtUFrWlymUWoCwSXrbLpX9
+uMq/NzgtHj6RQa1wVsfwTz/oMp50ysiQVOnGXw94nZpAPA6sYapeFI+eh6FqUNzX
+mk6vBbOmcZSccbNQYArHE504B4YCqOmoaSYYkKtMsE8jqzpPhNjfzp/haW+710LX
+a0Tkx63ubUFfclpxCDezeWWkWaCUN/cALw3CknLa0Dhy2xSoRcRdKn23tNbE7qzN
+E0S3ySvdQwAl+mG5aWpYIxG3pzOPVnVZ9c0p10a3CitlttNCbxWyuHv77+ldU9U0
+WicCAwEAAaOB3DCB2TAdBgNVHQ4EFgQUrb2YejS0Jvf6xCZU7wO94CTLVBowCwYD
+VR0PBAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wgZkGA1UdIwSBkTCBjoAUrb2YejS0
+Jvf6xCZU7wO94CTLVBqhc6RxMG8xCzAJBgNVBAYTAlNFMRQwEgYDVQQKEwtBZGRU
+cnVzdCBBQjEmMCQGA1UECxMdQWRkVHJ1c3QgRXh0ZXJuYWwgVFRQIE5ldHdvcmsx
+IjAgBgNVBAMTGUFkZFRydXN0IEV4dGVybmFsIENBIFJvb3SCAQEwDQYJKoZIhvcN
+AQEFBQADggEBALCb4IUlwtYj4g+WBpKdQZic2YR5gdkeWxQHIzZlj7DYd7usQWxH
+YINRsPkyPef89iYTx4AWpb9a/IfPeHmJIZriTAcKhjW88t5RxNKWt9x+Tu5w/Rw5
+6wwCURQtjr0W4MHfRnXnJK3s9EK0hZNwEGe6nQY1ShjTK3rMUUKhemPR5ruhxSvC
+Nr4TDea9Y355e6cJDUCrat2PisP29owaQgVR1EX1n6diIWgVIEM8med8vSTYqZEX
+c4g/VhsxOBi0cQ+azcgOno4uG+GMmIPLHzHxREzGBHNJdmAPx/i9F4BrLunMTA5a
+mnkPIAou1Z5jJh5VkpTYghdae9C8x49OhgQ=
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIEmDCCA4CgAwIBAgIQS8gUAy8H+mqk8Nop32F5ujANBgkqhkiG9w0BAQUFADCB
+lzELMAkGA1UEBhMCVVMxCzAJBgNVBAgTAlVUMRcwFQYDVQQHEw5TYWx0IExha2Ug
+Q2l0eTEeMBwGA1UEChMVVGhlIFVTRVJUUlVTVCBOZXR3b3JrMSEwHwYDVQQLExho
+dHRwOi8vd3d3LnVzZXJ0cnVzdC5jb20xHzAdBgNVBAMTFlVUTi1VU0VSRmlyc3Qt
+SGFyZHdhcmUwHhcNMDkwNTE4MDAwMDAwWhcNMjAwNTMwMTA0ODM4WjA2MQswCQYD
+VQQGEwJOTDEPMA0GA1UEChMGVEVSRU5BMRYwFAYDVQQDEw1URVJFTkEgU1NMIENB
+MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAw+NIxC9cwcupmf0booNd
+ij2tOtDipEMfTQ7+NSUwpWkbxOjlwY9UfuFqoppcXN49/ALOlrhfj4NbzGBAkPjk
+tjolnF8UUeyx56+eUKExVccCvaxSin81joL6hK0V/qJ/gxA6VVOULAEWdJRUYyij
+8lspPZSIgCDiFFkhGbSkmOFg5vLrooCDQ+CtaPN5GYtoQ1E/iptBhQw1jF218bbl
+p8ODtWsjb9Sl61DllPFKX+4nSxQSFSRMDc9ijbcAIa06Mg9YC18em9HfnY6pGTVQ
+L0GprTvG4EWyUzl/Ib8iGodcNK5Sbwd9ogtOnyt5pn0T3fV/g3wvWl13eHiRoBS/
+fQIDAQABo4IBPjCCATowHwYDVR0jBBgwFoAUoXJfJhsomEOVXQc31YWWnUvSw0Uw
+HQYDVR0OBBYEFAy9k2gM896ro0lrKzdXR+qQ47ntMA4GA1UdDwEB/wQEAwIBBjAS
+BgNVHRMBAf8ECDAGAQH/AgEAMBgGA1UdIAQRMA8wDQYLKwYBBAGyMQECAh0wRAYD
+VR0fBD0wOzA5oDegNYYzaHR0cDovL2NybC51c2VydHJ1c3QuY29tL1VUTi1VU0VS
+Rmlyc3QtSGFyZHdhcmUuY3JsMHQGCCsGAQUFBwEBBGgwZjA9BggrBgEFBQcwAoYx
+aHR0cDovL2NydC51c2VydHJ1c3QuY29tL1VUTkFkZFRydXN0U2VydmVyX0NBLmNy
+dDAlBggrBgEFBQcwAYYZaHR0cDovL29jc3AudXNlcnRydXN0LmNvbTANBgkqhkiG
+9w0BAQUFAAOCAQEATiPuSJz2hYtxxApuc5NywDqOgIrZs8qy1AGcKM/yXA4hRJML
+thoh45gBlA5nSYEevj0NTmDa76AxTpXv8916WoIgQ7ahY0OzUGlDYktWYrA0irkT
+Q1mT7BR5iPNIk+idyfqHcgxrVqDDFY1opYcfcS3mWm08aXFABFXcoEOUIEU4eNe9
+itg5xt8Jt1qaqQO4KBB4zb8BG1oRPjj02Bs0ec8z0gH9rJjNbUcRkEy7uVvYcOfV
+r7bMxIbmdcCeKbYrDyqlaQIN4+mitF3A884saoU4dmHGSYKrUbOCprlBmCiY+2v+
+ihb/MX5UR6g83EMmqZsFt57ANEORMNQywxFa4Q==
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIEPDCCAySgAwIBAgIQSEus8arH1xND0aJ0NUmXJTANBgkqhkiG9w0BAQUFADBv
+MQswCQYDVQQGEwJTRTEUMBIGA1UEChMLQWRkVHJ1c3QgQUIxJjAkBgNVBAsTHUFk
+ZFRydXN0IEV4dGVybmFsIFRUUCBOZXR3b3JrMSIwIAYDVQQDExlBZGRUcnVzdCBF
+eHRlcm5hbCBDQSBSb290MB4XDTA1MDYwNzA4MDkxMFoXDTIwMDUzMDEwNDgzOFow
+gZcxCzAJBgNVBAYTAlVTMQswCQYDVQQIEwJVVDEXMBUGA1UEBxMOU2FsdCBMYWtl
+IENpdHkxHjAcBgNVBAoTFVRoZSBVU0VSVFJVU1QgTmV0d29yazEhMB8GA1UECxMY
+aHR0cDovL3d3dy51c2VydHJ1c3QuY29tMR8wHQYDVQQDExZVVE4tVVNFUkZpcnN0
+LUhhcmR3YXJlMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAsffDOD+0
+qH/POYJRZ9Btn9L/WPPnnyvsDYlUmbk4mRb34CF5SMK7YXQSlh08anLVPBBnOjnt
+KxPNZuuVCTOkbJex6MbswXV5nEZejavQav25KlUXEFSzGfCa9vGxXbanbfvgcRdr
+ooj7AN/+GjF3DJoBerEy4ysBBzhuw6VeI7xFm3tQwckwj9vlK3rTW/szQB6g1ZgX
+vIuHw4nTXaCOsqqq9o5piAbF+okh8widaS4JM5spDUYPjMxJNLBpUb35Bs1orWZM
+vD6sYb0KiA7I3z3ufARMnQpea5HW7sftKI2rTYeJc9BupNAeFosU4XZEA39jrOTN
+SZzFkvSrMqFIWwIDAQABo4GqMIGnMB8GA1UdIwQYMBaAFK29mHo0tCb3+sQmVO8D
+veAky1QaMB0GA1UdDgQWBBShcl8mGyiYQ5VdBzfVhZadS9LDRTAOBgNVHQ8BAf8E
+BAMCAQYwDwYDVR0TAQH/BAUwAwEB/zBEBgNVHR8EPTA7MDmgN6A1hjNodHRwOi8v
+Y3JsLnVzZXJ0cnVzdC5jb20vQWRkVHJ1c3RFeHRlcm5hbENBUm9vdC5jcmwwDQYJ
+KoZIhvcNAQEFBQADggEBADzse+Cuow6WbTDXhcbSaFtFWoKmNA+wyZIjXhFtCBGy
+dAkjOjUlc1heyrl8KPpH7PmgA1hQtlPvjNs55Gfp2MooRtSn4PU4dfjny1y/HRE8
+akCbLURW0/f/BSgyDBXIZEWT6CEkjy3aeoR7T8/NsiV8dxDTlNEEkaglHAkiD31E
+NREU768A/l7qX46w2ZJZuvwTlqAYAVbO2vYoC7Gv3VxPXLLzj1pxz+0YrWOIHY6V
+9+qV5x+tkLiECEeFfyIvGh1IMNZMCNg3GWcyK+tc0LL8blefBDVekAB+EcfeEyrN
+pG1FJseIVqDwavfY5/wnfmcI0L36tsNhAgFlubgvz1o=
+-----END CERTIFICATE-----
diff --git a/src/python3/ibisclient/connection.py b/src/python3/ibisclient/connection.py
new file mode 100644
index 0000000..dfc5eac
--- /dev/null
+++ b/src/python3/ibisclient/connection.py
@@ -0,0 +1,318 @@
+# --------------------------------------------------------------------------
+# Copyright (c) 2012, University of Cambridge Computing Service
+#
+# This file is part of the Lookup/Ibis client library.
+#
+# This library is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License as published
+# by the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# This library is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+# or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU Lesser General Public
+# License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public License
+# along with this library.  If not, see <http://www.gnu.org/licenses/>.
+#
+# Author: Dean Rasheed (dev-group@ucs.cam.ac.uk)
+# --------------------------------------------------------------------------
+
+"""
+Connection classes to connect to Lookup/Ibis web service and allow API
+methods to be invoked.
+"""
+
+import base64
+from datetime import date
+from http.client import HTTPSConnection
+import socket
+import os
+import urllib.parse
+
+from .dto import IbisDto, IbisError, IbisResult, IbisResultParser
+
+try:
+    import ssl
+    _have_ssl = True
+except ImportError:
+    print("WARNING: No SSL support - connection may be insecure")
+    _have_ssl = False
+
+_MONTHS = ["Jan", "Feb", "Mar", "Apr", "May", "Jun",
+           "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"]
+
+class IbisException(Exception):
+    """
+    Exception thrown when a web service API method fails. This is wrapper
+    around the IbisError object returned by the server, which contains the
+    full details of what went wrong.
+
+    NOTE: This exception class deliberately breaks with the Python style
+    guide's naming convention for exception classes, for consistency with
+    the Java code. IbisError refers to the error DTO contained in this
+    exception.
+    """
+    def __init__(self, error):
+        Exception.__init__(self, error.message)
+        self.error = error
+
+    def get_error(self):
+        """
+        Returns the underlying error from the server.
+        """
+        return self.error
+
+class HTTPSValidatingConnection(HTTPSConnection):
+    """
+    Class extending the standard HTTPSConnection class from httplib, so
+    that it checks the server's certificates, validating them against the
+    specified CA certificates.
+    """
+    def __init__(self, host, port, ca_certs):
+        HTTPSConnection.__init__(self, host, port)
+        self.ca_certs = ca_certs
+
+    def connect(self):
+        """
+        Overridden connect() method to wrap the socket using an SSLSocket,
+        and check the server certificates.
+        """
+        try:
+            self.sock = socket.create_connection((self.host, self.port))
+        except AttributeError:
+            HTTPSConnection.connect(self)
+
+        if not _have_ssl:
+            # No SSL available - insecure connection
+            print("WARNING: No SSL support - connection may be insecure")
+        elif self.ca_certs:
+            # Wrap the socket in an SSLSocket, and tell it to validate
+            # the server certificates. Note that this does not check that
+            # the certificate's host matches, so we must do that ourselves.
+            self.sock = ssl.wrap_socket(self.sock,
+                                        ca_certs = self.ca_certs,
+                                        cert_reqs = ssl.CERT_REQUIRED,
+                                        ssl_version = ssl.PROTOCOL_TLSv1)
+
+            cert = self.sock.getpeercert()
+            cert_hosts = []
+            host_valid = False
+
+            if "subject" in cert:
+                for x in cert["subject"]:
+                    if x[0][0] == "commonName":
+                        cert_hosts.append(x[0][1])
+            if "subjectAltName" in cert:
+                for x in cert["subjectAltName"]:
+                    if x[0] == "dns":
+                        cert_hosts.append(x[1])
+
+            for cert_host in cert_hosts:
+                if self.host.startswith(cert_host):
+                    host_valid = True
+
+            if not host_valid:
+                raise ssl.SSLError("Host name '%s' doesn't match "\
+                                   "certificate host %s"\
+                                   % (self.host, str(cert_hosts)))
+        else:
+            # No CA certificates supplied, so can't validate the server
+            # certificates, but we still wrap the socket in an SSLSocket
+            # so that all data is encrypted.
+            self.sock = ssl.wrap_socket(self.sock,
+                                        ca_certs = None,
+                                        cert_reqs = ssl.CERT_NONE,
+                                        ssl_version = ssl.PROTOCOL_TLSv1)
+
+class IbisClientConnection:
+    """
+    Class to connect to the Lookup/Ibis server and invoke web service API
+    methods.
+    """
+    def __init__(self, host, port, url_base, check_certs):
+        self.host = host
+        self.port = port
+        self.url_base = url_base
+
+        if not self.url_base.startswith("/"):
+            self.url_base = "/%s" % self.url_base
+        if not self.url_base.endswith("/"):
+            self.url_base = "%s/" % self.url_base
+
+        if check_certs:
+            ibisclient_dir = os.path.realpath(os.path.dirname(__file__))
+            self.ca_certs = os.path.join(ibisclient_dir, "cacerts.txt")
+        else:
+            self.ca_certs = None
+
+        self.username = None
+        self.password = None
+        self.set_username("anonymous")
+
+    def _update_authorization(self):
+        credentials = "%s:%s" % (self.username, self.password)
+        credential_bytes = bytes(credentials, "UTF-8")
+        base64_credentials = str(base64.b64encode(credential_bytes), "UTF-8")
+        self.authorization = "Basic %s" % base64_credentials
+
+    def set_username(self, username):
+        """
+        Set the username to use when connecting to the Lookup/Ibis web
+        service. By default connections are anonymous, which gives read-only
+        access. This method enables authentication as a group, using the
+        group's password, which gives read/write access and also access to
+        certain non-public data, based on the group's privileges.
+
+        This method may be called at any time, and affects all subsequent
+        access using this connection, but does not affect any other
+        IbisClientConnection objects.
+        """
+        self.username = username
+        self._update_authorization()
+
+    def set_password(self, password):
+        """
+        Set the password to use when connecting to the Lookup/Ibis web
+        service. This is only necessary when connecting as a group, in
+        which case it should be that group's password.
+        """
+        self.password = password
+        self._update_authorization()
+
+    def _params_to_strings(self, params):
+        """
+        Convert the values in a parameter map into strings suitable for
+        sending to the server. Any null values will be omitted.
+        """
+        new_params = {}
+        for key, value in params.items():
+            if value != None:
+                if isinstance(value, bool):
+                    if value: new_params[key] = "true"
+                    else: new_params[key] = "false"
+                elif isinstance(value, date):
+                    new_params[key] = "%02d %s %d" % (value.day,
+                                                      _MONTHS[value.month-1],
+                                                      value.year)
+                elif isinstance(value, list) or isinstance(value, tuple):
+                    new_params[key] = ",".join(value)
+                elif isinstance(value, IbisDto):
+                    new_params[key] = value.encoded_string()
+                elif not isinstance(value, str):
+                    new_params[key] = str(value)
+                else:
+                    new_params[key] = value
+
+        return new_params
+
+    def _build_url(self, path, path_params={}, query_params={}):
+        """
+        Build the full URL needed to invoke a method in the web service API.
+
+        The path may contain standard Python format specifiers, which will
+        be substituted from the path parameters (suitably URL-encoded). Thus
+        for example, given the following arguments:
+
+            * path = "api/v1/person/%(scheme)s/%(identifier)s"
+            * path_params = {"scheme": "crsid", "identifier": "dar17"}
+            * query_params = {"fetch": "email,title"}
+
+        This method will create a URL like the following:
+
+            api/v1/person/crsid/dar17?fetch=email%2Ctitle
+
+        Note that all parameter values are automatically URL-encoded.
+        """
+        for key, value in path_params.items():
+            path_params[key] = urllib.parse.quote_plus(value)
+        path = path % path_params
+
+        if "flatten" not in query_params:
+            query_params["flatten"] = "true"
+        path += "?%s" % urllib.parse.urlencode(query_params)
+
+        if path.startswith("/"):
+            return "%s%s" % (self.url_base, path[1:])
+        return "%s%s" % (self.url_base, path)
+
+    def invoke_method(self, method, path, path_params={},
+                      query_params={}, form_params={}):
+        """
+        Invoke a web service GET, POST, PUT or DELETE method.
+
+        The path should be the relative path to the method with standard
+        Python format specifiers for any path parameters, for example
+        "/api/v1/person/%(scheme)s/%(identifier)s". Any path parameters
+        specified are then substituted into the path.
+        """
+        path_params = self._params_to_strings(path_params)
+        query_params = self._params_to_strings(query_params)
+        form_params = self._params_to_strings(form_params)
+
+        conn = HTTPSValidatingConnection(self.host, self.port, self.ca_certs)
+        url = self._build_url(path, path_params, query_params)
+        headers = {"Accept": "application/xml",
+                   "Authorization": self.authorization}
+
+        if form_params:
+            body = urllib.parse.urlencode(form_params)
+            conn.request(method, url, body, headers)
+        else:
+            conn.request(method, url, headers=headers)
+
+        response = conn.getresponse()
+        content_type = response.getheader("Content-type")
+        if content_type != "application/xml":
+            error = IbisError({"status": response.status,
+                               "code": response.reason})
+            error.message = "Unexpected result from server"
+            error.details = response.read()
+
+            result = IbisResult()
+            result.error = error
+
+            return result
+
+        parser = IbisResultParser()
+        result = parser.parse_xml(response.read())
+        conn.close()
+
+        return result
+
+def createConnection():
+    """
+    Create an IbisClientConnection to the Lookup/Ibis web service API at
+    https://www.lookup.cam.ac.uk/.
+
+    The connection is initially anonymous, but this may be changed using
+    its set_username() and set_password() methods.
+    """
+    return IbisClientConnection("www.lookup.cam.ac.uk", 443, "", True)
+
+def createTestConnection():
+    """
+    Create an IbisClientConnection to the Lookup/Ibis test web service API
+    at https://lookup-test.csx.cam.ac.uk/.
+
+    The connection is initially anonymous, but this may be changed using
+    its set_username() and set_password() methods.
+
+    NOTE: This test server is not guaranteed to always be available, and
+    the data in it may be out of sync with the data on the live system.
+    """
+    return IbisClientConnection("lookup-test.csx.cam.ac.uk", 443, "", True)
+
+def createLocalConnection():
+    """
+    Create an IbisClientConnection to a Lookup/Ibis web service API running
+    locally on https://localhost:8443/ibis/.
+
+    The connection is initially anonymous, but this may be changed using
+    its set_username() and set_password() methods.
+
+    This is intended for testing during development. The local server is
+    assumed to be using self-signed certificates, which will not be checked.
+    """
+    return IbisClientConnection("localhost", 8443, "ibis", False)
diff --git a/src/python3/ibisclient/dto.py b/src/python3/ibisclient/dto.py
new file mode 100644
index 0000000..c0a7ac9
--- /dev/null
+++ b/src/python3/ibisclient/dto.py
@@ -0,0 +1,685 @@
+# --------------------------------------------------------------------------
+# Copyright (c) 2012, University of Cambridge Computing Service
+#
+# This file is part of the Lookup/Ibis client library.
+#
+# This library is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License as published
+# by the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# This library is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+# or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU Lesser General Public
+# License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public License
+# along with this library.  If not, see <http://www.gnu.org/licenses/>.
+#
+# Author: Dean Rasheed (dev-group@ucs.cam.ac.uk)
+# --------------------------------------------------------------------------
+
+"""
+DTO classes for transferring data from the server to client in the web
+service API.
+
+All web service API methods return an instance or a list of one of these
+DTO classes, or a primitive type such as a bool, int or string.
+
+In the case of an error, an IbisException will be raised which will
+contain an instance of an IbisError DTO.
+"""
+
+import base64
+from datetime import date
+from xml.parsers import expat
+
+import sys
+if sys.hexversion < 0x02040000:
+    from sets import Set as set
+
+_MONTHS = ["Jan", "Feb", "Mar", "Apr", "May", "Jun",
+           "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"]
+
+class IbisDto(object):
+    """
+    Base class for all DTO classes. This defines a couple of methods used
+    when unmarshalling DTOs from XML.
+    """
+    # All properties
+    __slots__ = []
+
+    # Properties marked as @XmlAttribte in the JAXB class
+    xml_attrs = set()
+
+    # Properties marked as @XmlElement in the JAXB class
+    xml_elems = set()
+
+    # Properties marked as @XmlElementWrapper in the JAXB class
+    xml_arrays = set()
+
+    def __init__(self, attrs={}):
+        """
+        Create an IbisDto from the attributes of an XML node. This just
+        sets the properties marked as @XmlAttribute in the JAXB class.
+        """
+        for attr in self.__class__.__slots__:
+            setattr(self, attr, None)
+        for attr in self.__class__.xml_attrs:
+            setattr(self, attr, attrs.get(attr))
+
+    def start_child_element(self, tagname):
+        """
+        Start element callback invoked during XML parsing when the opening
+        tag of a child element is encountered. This creates and returns any
+        properties marked as @XmlElementWrapper in the JAXB class, so that
+        child collections can be populated.
+        """
+        if tagname in self.__class__.xml_arrays:
+            if getattr(self, tagname) == None: setattr(self, tagname, [])
+            return getattr(self, tagname)
+        return None
+
+    def end_child_element(self, tagname, data):
+        """
+        End element callback invoked during XML parsing when the end tag of
+        a child element is encountered, and the tag's data is available. This
+        sets the value of any properties marked as @XmlElement in the JAXB
+        class.
+        """
+        if tagname in self.__class__.xml_elems:
+            setattr(self, tagname, data)
+
+# --------------------------------------------------------------------------
+# IbisPerson: see uk.ac.cam.ucs.ibis.dto.IbisPerson.java
+# --------------------------------------------------------------------------
+class IbisPerson(IbisDto):
+    """
+    Class representing a person returned by the web services API. Note that
+    the identifier is the person's primary identifier (typically their CRSid),
+    regardless of which identifier was used to query for the person.
+    """
+    __slots__ = ["cancelled", "identifier", "displayName", "registeredName",
+                 "surname", "visibleName", "misAffiliation", "identifiers",
+                 "attributes", "institutions", "groups", "directGroups",
+                 "id", "ref", "unflattened"]
+
+    xml_attrs = set(["cancelled", "id", "ref"])
+
+    xml_elems = set(["identifier", "displayName", "registeredName",
+                     "surname", "visibleName", "misAffiliation"])
+
+    xml_arrays = set(["identifiers", "attributes", "institutions",
+                      "groups", "directGroups"])
+
+    def __init__(self, attrs={}):
+        """ Create an IbisPerson from the attributes of an XML node. """
+        IbisDto.__init__(self, attrs)
+        if self.cancelled != None:
+            self.cancelled = self.cancelled.lower() == "true"
+        self.unflattened = False
+
+    def is_staff(self):
+        """
+        Returns true if the person is a member of staff.
+
+        Note that this tests for an misAffiliation of "", "staff" or
+        "staff,student" since some members of staff will have a blank
+        misAffiliation.
+        """
+        return self.misAffiliation == None or\
+               self.misAffiliation != "student";
+
+    def is_student(self):
+        """
+        Returns true if the person is a student.
+
+        This tests for an misAffiliation of "student" or "staff,student".
+        """
+        return self.misAffiliation != None and\
+               self.misAffiliation.find("student") != -1;
+
+    def unflatten(self, em):
+        """ Unflatten a single IbisPerson. """
+        if self.ref:
+            person = em.get_person(self.ref)
+            if not person.unflattened:
+                person.unflattened = True
+                unflatten_insts(em, person.institutions)
+                unflatten_groups(em, person.groups)
+                unflatten_groups(em, person.directGroups)
+            return person
+        return self
+
+def unflatten_people(em, people):
+    """ Unflatten a list of IbisPerson objects (done in place). """
+    if people:
+        for idx, person in enumerate(people):
+            people[idx] = person.unflatten(em)
+
+# --------------------------------------------------------------------------
+# IbisInstitution: see uk.ac.cam.ucs.ibis.dto.IbisInstitution.java
+# --------------------------------------------------------------------------
+class IbisInstitution(IbisDto):
+    """
+    Class representing an institution returned by the web services API.
+    """
+    __slots__ = ["cancelled", "instid", "name", "acronym",
+                 "attributes", "contactRows", "members", "parentInsts",
+                 "childInsts", "groups", "membersGroups", "managedByGroups",
+                 "id", "ref", "unflattened"]
+
+    xml_attrs = set(["cancelled", "instid", "id", "ref"])
+
+    xml_elems = set(["name", "acronym"])
+
+    xml_arrays = set(["attributes", "contactRows", "members",
+                      "parentInsts", "childInsts", "groups",
+                      "membersGroups", "managedByGroups"])
+
+    def __init__(self, attrs={}):
+        """ Create an IbisInstitution from the attributes of an XML node. """
+        IbisDto.__init__(self, attrs)
+        if self.cancelled != None:
+            self.cancelled = self.cancelled.lower() == "true"
+        self.unflattened = False
+
+    def unflatten(self, em):
+        """ Unflatten a single IbisInstitution. """
+        if self.ref:
+            inst = em.get_institution(self.ref)
+            if not inst.unflattened:
+                inst.unflattened = True
+                unflatten_contact_rows(em, inst.contactRows)
+                unflatten_people(em, inst.members)
+                unflatten_insts(em, inst.parentInsts)
+                unflatten_insts(em, inst.childInsts)
+                unflatten_groups(em, inst.groups)
+                unflatten_groups(em, inst.membersGroups)
+                unflatten_groups(em, inst.managedByGroups)
+            return inst
+        return self
+
+def unflatten_insts(em, insts):
+    """ Unflatten a list of IbisInstitution objects (done in place). """
+    if insts:
+        for idx, inst in enumerate(insts):
+            insts[idx] = inst.unflatten(em)
+
+# --------------------------------------------------------------------------
+# IbisGroup: see uk.ac.cam.ucs.ibis.dto.IbisGroup.java
+# --------------------------------------------------------------------------
+class IbisGroup(IbisDto):
+    """
+    Class representing a group returned by the web services API.
+    """
+    __slots__ = ["cancelled", "groupid", "name", "title", "description",
+                 "email", "membersOfInst", "members", "directMembers",
+                 "owningInsts", "managesInsts", "managesGroups",
+                 "managedByGroups", "readsGroups", "readByGroups",
+                 "includesGroups", "includedByGroups",
+                 "id", "ref", "unflattened"]
+
+    xml_attrs = set(["cancelled", "groupid", "id", "ref"])
+
+    xml_elems = set(["name", "title", "description", "emails",
+                     "membersOfInst"])
+
+    xml_arrays = set(["members", "directMembers",
+                      "owningInsts", "managesInsts",
+                      "managesGroups", "managedByGroups",
+                      "readsGroups", "readByGroups",
+                      "includesGroups", "includedByGroups"])
+
+    def __init__(self, attrs={}):
+        """ Create an IbisGroup from the attributes of an XML node. """
+        IbisDto.__init__(self, attrs)
+        if self.cancelled != None:
+            self.cancelled = self.cancelled.lower() == "true"
+        self.unflattened = False
+
+    def unflatten(self, em):
+        """ Unflatten a single IbisGroup. """
+        if self.ref:
+            group = em.get_group(self.ref)
+            if not group.unflattened:
+                group.unflattened = True
+                if group.membersOfInst:
+                    group.membersOfInst = group.membersOfInst.unflatten(em)
+                unflatten_people(em, group.members)
+                unflatten_people(em, group.directMembers)
+                unflatten_insts(em, group.owningInsts)
+                unflatten_insts(em, group.managesInsts)
+                unflatten_groups(em, group.managesGroups)
+                unflatten_groups(em, group.managedByGroups)
+                unflatten_groups(em, group.readsGroups)
+                unflatten_groups(em, group.readByGroups)
+                unflatten_groups(em, group.includesGroups)
+                unflatten_groups(em, group.includedByGroups)
+            return group
+        return self
+
+def unflatten_groups(em, groups):
+    """ Unflatten a list of IbisGroup objects (done in place). """
+    if groups:
+        for idx, group in enumerate(groups):
+            groups[idx] = group.unflatten(em)
+
+# --------------------------------------------------------------------------
+# IbisIdentifier: see uk.ac.cam.ucs.ibis.dto.IbisIdentifier.java
+# --------------------------------------------------------------------------
+class IbisIdentifier(IbisDto):
+    """
+    Class representing a person's identifier, for use by the web services
+    API.
+    """
+    __slots__ = ["scheme", "value"]
+
+    xml_attrs = set(["scheme"])
+
+# --------------------------------------------------------------------------
+# IbisAttribute: see uk.ac.cam.ucs.ibis.dto.IbisAttribute.java
+# --------------------------------------------------------------------------
+class IbisAttribute(IbisDto):
+    """
+    Class representing an attribute of a person or institution returned by
+    the web services API. Note that for institution attributes, the instid,
+    visibility and owningGroupid fields will be null.
+    """
+    __slots__ = ["attrid", "scheme", "value", "binaryData", "comment",
+                 "instid", "visibility", "effectiveFrom", "effectiveTo",
+                 "owningGroupid"]
+
+    xml_attrs = set(["attrid", "scheme", "instid", "visibility",
+                     "effectiveFrom", "effectiveTo", "owningGroupid"])
+
+    xml_elems = set(["value", "binaryData", "comment"])
+
+    def __init__(self, attrs={}):
+        """ Create an IbisAttribute from the attributes of an XML node. """
+        IbisDto.__init__(self, attrs)
+        if self.attrid != None:
+            self.attrid = int(self.attrid)
+        if self.effectiveFrom != None:
+            self.effectiveFrom = parse_date(self.effectiveFrom)
+        if self.effectiveTo != None:
+            self.effectiveTo = parse_date(self.effectiveTo)
+
+    def end_child_element(self, tagname, data):
+        """
+        Overridden end element callback to decode binary data.
+        """
+        IbisDto.end_child_element(self, tagname, data)
+        if tagname == "binaryData" and self.binaryData != None:
+            self.binaryData = base64.b64decode(self.binaryData)
+
+    def encoded_string(self):
+        """
+        Encode this attribute as an ASCII string suitable for passing as a
+        parameter to a web service API method. This string is compatible with
+        {@link #valueOf(java.lang.String)} on the corresponding Java class,
+        used on the server to decode the attribute parameter.
+
+        NOTE: This requires that the attribute's {@link #scheme} field be
+        set, and typically the {@link #value} or {@link #binaryData} should
+        also be set.
+        """
+        if not self.scheme:
+            raise ValueError("Attribute scheme must be set")
+
+        result = "scheme:%s" % base64.b64encode(self.scheme)
+        if self.attrid != None:
+            result = "%s,attrid:%d" % (result, self.attrid)
+        if self.value != None:
+            result = "%s,value:%s" % (result, base64.b64encode(self.value))
+        if self.binaryData != None:
+            result = "%s,binaryData:%s" %\
+                     (result, base64.b64encode(self.binaryData))
+        if self.comment != None:
+            result = "%s,comment:%s" %\
+                     (result, base64.b64encode(self.comment))
+        if self.instid != None:
+            result = "%s,instid:%s" %\
+                     (result, base64.b64encode(self.instid))
+        if self.visibility != None:
+            result = "%s,visibility:%s" %\
+                     (result, base64.b64encode(self.visibility))
+        if self.effectiveFrom != None:
+            result = "%s,effectiveFrom:%02d %s %d" %\
+                     (result,
+                      self.effectiveFrom.day,
+                      _MONTHS[self.effectiveFrom.month-1],
+                      self.effectiveFrom.year)
+        if self.effectiveTo != None:
+            result = "%s,effectiveTo:%02d %s %d" %\
+                     (result,
+                      self.effectiveTo.day,
+                      _MONTHS[self.effectiveTo.month-1],
+                      self.effectiveTo.year)
+        if self.owningGroupid != None:
+            result = "%s,owningGroupid:%s" %\
+                     (result, base64.b64encode(self.owningGroupid))
+        return result
+
+def parse_date(s):
+    """ Parse a date string from XML. """
+    s = s.strip()
+    return date(int(s[:4]), int(s[5:7]), int(s[8:10]))
+
+# --------------------------------------------------------------------------
+# IbisError: see uk.ac.cam.ucs.ibis.dto.IbisError.java
+# --------------------------------------------------------------------------
+class IbisError(IbisDto):
+    """
+    Class representing an error returned by the web services API.
+    """
+    __slots__ = ["status", "code", "message", "details"]
+
+    xml_attrs = set(["status"])
+
+    xml_elems = set(["code", "message", "details"])
+
+    def __init__(self, attrs={}):
+        """ Create an IbisError from the attributes of an XML node. """
+        IbisDto.__init__(self, attrs)
+        if self.status != None:
+            self.status = int(self.status)
+
+# --------------------------------------------------------------------------
+# IbisAttributeScheme: see uk.ac.cam.ucs.ibis.dto.IbisAttributeScheme.java
+# --------------------------------------------------------------------------
+class IbisAttributeScheme(IbisDto):
+    """
+    Class representing an attribute scheme. This may apply to attributes of
+    people or institutions.
+    """
+    __slots__ = ["schemeid", "precedence", "ldapName", "displayName",
+                 "dataType", "multiValued", "multiLined", "searchable",
+                 "regexp"]
+
+    xml_attrs = set(["schemeid", "precedence", "multiValued", "multiLined",
+                     "searchable"])
+
+    xml_elems = set(["ldapName", "displayName", "dataType", "regexp"])
+
+    def __init__(self, attrs={}):
+        """
+        Create an IbisAttributeScheme from the attributes of an XML node.
+        """
+        IbisDto.__init__(self, attrs)
+        if self.precedence != None:
+            self.precedence = int(self.precedence)
+        if self.multiValued != None:
+            self.multiValued = self.multiValued.lower() == "true"
+        if self.multiLined != None:
+            self.multiLined = self.multiLined.lower() == "true"
+        if self.searchable != None:
+            self.searchable = self.searchable.lower() == "true"
+
+# --------------------------------------------------------------------------
+# IbisContactRow: see uk.ac.cam.ucs.ibis.dto.IbisContactRow.java
+# --------------------------------------------------------------------------
+class IbisContactRow(IbisDto):
+    """
+    Class representing an institution contact row, for use by the web
+    services API.
+    """
+    __slots__ = ["description", "bold", "italic", "addresses", "emails",
+                 "people", "phoneNumbers", "webPages", "unflattened"]
+
+    xml_attrs = set(["bold", "italic"])
+
+    xml_elems = set(["description"])
+
+    xml_arrays = set(["addresses", "emails", "people", "phoneNumbers",
+                      "webPages"])
+
+    def __init__(self, attrs={}):
+        """ Create an IbisContactRow from the attributes of an XML node. """
+        IbisDto.__init__(self, attrs)
+        if self.bold != None:
+            self.bold = self.bold.lower() == "true"
+        if self.italic != None:
+            self.italic = self.italic.lower() == "true"
+        self.unflattened = False
+
+    def unflatten(self, em):
+        """ Unflatten a single IbisContactRow. """
+        if not self.unflattened:
+            self.unflattened = True
+            unflatten_people(em, self.people)
+        return self
+
+def unflatten_contact_rows(em, contact_rows):
+    """ Unflatten a list of IbisContactRow objects (done in place). """
+    if contact_rows:
+        for idx, contact_row in enumerate(contact_rows):
+            contact_rows[idx] = contact_row.unflatten(em)
+
+# --------------------------------------------------------------------------
+# IbisContactPhoneNumber:
+#     see uk.ac.cam.ucs.ibis.dto.IbisContactPhoneNumber.java
+# --------------------------------------------------------------------------
+class IbisContactPhoneNumber(IbisDto):
+    """
+    Class representing a phone number held on an institution contact row, for
+    use by the web services API.
+    """
+    __slots__ = ["phoneType", "number", "comment"]
+
+    xml_attrs = set(["phoneType"])
+
+    xml_elems = set(["number", "comment"])
+
+# --------------------------------------------------------------------------
+# IbisContactWebPage: see uk.ac.cam.ucs.ibis.dto.IbisContactWebPage.java
+# --------------------------------------------------------------------------
+class IbisContactWebPage(IbisDto):
+    """
+    Class representing a web page referred to by an institution contact row,
+    for use by the web services API.
+    """
+    __slots__ = ["url", "label"]
+
+    xml_elems = set(["url", "label"])
+
+# --------------------------------------------------------------------------
+# IbisResult: see uk.ac.cam.ucs.ibis.dto.IbisResult.java
+# --------------------------------------------------------------------------
+class IbisResult(IbisDto):
+    """
+    Class representing the top-level container for all results.
+
+    This may be just a simple textual value or it may contain more complex
+    entities such as people, institutions, groups, attributes, etc.
+    """
+    __slots__ = ["version", "value", "person", "institution", "group",
+                 "identifier", "attribute", "error", "people",
+                 "institutions", "groups", "attributes", "attributeSchemes",
+                 "entities"]
+
+    xml_attrs = set(["version"])
+
+    xml_elems = set(["value", "person", "institution", "group",
+                     "identifier", "attribute", "error", "entities"])
+
+    xml_arrays = set(["people", "institutions", "groups",
+                      "attributes", "attributeSchemes"])
+
+    class Entities(IbisDto):
+        """
+        Nested class to hold the full details of all the entities returned
+        in a result. This is used only in the flattened result representation,
+        where each of these entities will have a unique textual ID, and be
+        referred to from the top-level objects returned (and by each other).
+
+        In the hierarchical representation, this is not used, since all
+        entities returned will be at the top-level, or directly contained in
+        those top-level entities.
+        """
+        __slots__ = ["people", "institutions", "groups"]
+
+        xml_arrays = set(["people", "institutions", "groups"])
+
+    class EntityMap:
+        """
+        Nested class to assist during the unflattening process, maintaining
+        efficient maps from IDs to entities (people, institutions and groups).
+        """
+        def __init__(self, result):
+            """
+            Construct an entity map from a flattened IbisResult.
+            """
+            self.people_by_id = {}
+            self.insts_by_id = {}
+            self.groups_by_id = {}
+
+            if result.entities.people:
+                for person in result.entities.people:
+                    self.people_by_id[person.id] = person
+            if result.entities.institutions:
+                for inst in result.entities.institutions:
+                    self.insts_by_id[inst.id] = inst
+            if result.entities.groups:
+                for group in result.entities.groups:
+                    self.groups_by_id[group.id] = group
+
+        def get_person(self, id):
+            return self.people_by_id.get(id)
+
+        def get_institution(self, id):
+            return self.insts_by_id.get(id)
+
+        def get_group(self, id):
+            return self.groups_by_id.get(id)
+
+    def unflatten(self):
+        """
+        Unflatten this IbisResult object, resolving any internal ID refs
+        to build a fully fledged object tree.
+
+        This is necessary if the IbisResult was constructed from XML/JSON in
+        its flattened representation (with the "flatten" parameter set to
+        true).
+
+        On entry, the IbisResult object may have people, institutions or
+        groups in it with "ref" fields referring to objects held in the
+        "entities" lists. After unflattening, all such references will have
+        been replaced by actual object references, giving an object tree that
+        can be traversed normally.
+
+        Returns this IbisResult object, with its internals unflattened.
+        """
+        if self.entities:
+            em = IbisResult.EntityMap(self)
+
+            if self.person:
+                self.person = self.person.unflatten(em)
+            if self.institution:
+                self.institution = self.institution.unflatten(em)
+            if self.group:
+                self.group = self.group.unflatten(em)
+
+            unflatten_people(em, self.people)
+            unflatten_insts(em, self.institutions)
+            unflatten_groups(em, self.groups)
+
+        return self
+
+# --------------------------------------------------------------------------
+# IbisResultParser: unmarshaller for IbisResult objects
+# --------------------------------------------------------------------------
+class IbisResultParser:
+    """
+    Class to parse the XML from the server and produce an IbisResult.
+    """
+    def __init__(self):
+        self.result = None
+        self.node_stack = []
+        self.parser = expat.ParserCreate()
+        self.parser.StartElementHandler = self.start_element
+        self.parser.EndElementHandler = self.end_element
+        self.parser.CharacterDataHandler = self.char_data
+
+    def start_element(self, tagname, attrs):
+        element = None
+        if self.node_stack:
+            if tagname == "person":
+                element = IbisPerson(attrs)
+            elif tagname == "institution":
+                element = IbisInstitution(attrs)
+            elif tagname == "group":
+                element = IbisGroup(attrs)
+            elif tagname == "identifier":
+                element = IbisIdentifier(attrs)
+            elif tagname == "attribute":
+                element = IbisAttribute(attrs)
+            elif tagname == "error":
+                element = IbisError(attrs)
+            elif tagname == "attributeScheme":
+                element = IbisAttributeScheme(attrs)
+            elif tagname == "contactRow":
+                element = IbisContactRow(attrs)
+            elif tagname == "phoneNumber":
+                element = IbisContactPhoneNumber(attrs)
+            elif tagname == "webPage":
+                element = IbisContactWebPage(attrs)
+            elif tagname == "entities":
+                element = IbisResult.Entities(attrs)
+            else:
+                parent = self.node_stack[-1]
+                if (not isinstance(parent, list)) and\
+                   (not isinstance(parent, dict)):
+                    element = parent.start_child_element(tagname)
+            if element == None:
+                element = {"tagname": tagname}
+        elif tagname != "result":
+            raise Exception("Invalid root element: '%s'" % tagname)
+        else:
+            element = IbisResult(attrs)
+            self.result = element
+        self.node_stack.append(element)
+
+    def end_element(self, tagname):
+        if self.node_stack:
+            element = self.node_stack[-1]
+            self.node_stack.pop()
+            if self.node_stack:
+                parent = self.node_stack[-1]
+                if isinstance(parent, list):
+                    if isinstance(element, dict):
+                        parent.append(element.get("data"))
+                    else:
+                        parent.append(element)
+                elif not isinstance(parent, dict):
+                    if isinstance(element, dict):
+                        data = element.get("data")
+                    else:
+                        data = element
+                    parent.end_child_element(tagname, data)
+        else:
+            raise Exception("Unexpected closing tag: '%s'" % tagname)
+
+    def char_data(self, data):
+        if self.node_stack:
+            element = self.node_stack[-1]
+            if isinstance(element, IbisIdentifier):
+                if element.value != None: element.value += data
+                else: element.value = data
+            elif isinstance(element, dict):
+                if "data" in element: element["data"] += data
+                else: element["data"] = data
+
+    def parse_xml(self, data):
+        """
+        Parse XML data from the specified string and return an IbisResult.
+        """
+        self.parser.Parse(data)
+        return self.result.unflatten()
+
+    def parse_xml_file(self, file):
+        """
+        Parse XML data from the specified file and return an IbisResult.
+        """
+        self.parser.ParseFile(file)
+        return self.result.unflatten()
diff --git a/src/python3/ibisclient/methods.py b/src/python3/ibisclient/methods.py
new file mode 100644
index 0000000..d8a9959
--- /dev/null
+++ b/src/python3/ibisclient/methods.py
@@ -0,0 +1,1665 @@
+# === AUTO-GENERATED - DO NOT EDIT ===
+
+# --------------------------------------------------------------------------
+# Copyright (c) 2012, University of Cambridge Computing Service
+#
+# This file is part of the Lookup/Ibis client library.
+#
+# This library is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License as published
+# by the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# This library is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+# or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU Lesser General Public
+# License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public License
+# along with this library.  If not, see <http://www.gnu.org/licenses/>.
+# --------------------------------------------------------------------------
+
+"""
+Web service API methods. This module is fully auto-generated, and contains
+the Python equivalent of the XxxMethods Java classes for executing all API
+methods.
+"""
+
+from .connection import IbisException
+
+class IbisMethods:
+    """
+    Common methods for searching for objects in the Lookup/Ibis database.
+
+    @author Dean Rasheed (dev-group@ucs.cam.ac.uk)
+    """
+    def __init__(self, conn):
+        self.conn = conn
+
+    def getVersion(self):
+        """
+        Get the current API version number.
+
+        [ HTTP: GET /api/v1/version ]
+
+        @return The API version number string.
+        """
+        path = "api/v1/version"
+        path_params = {}
+        query_params = {}
+        form_params = {}
+        result = self.conn.invoke_method("GET", path, path_params,
+                                         query_params, form_params)
+        if result.error:
+            raise IbisException(result.error)
+        return result.value
+
+class GroupMethods:
+    """
+    Methods for querying and manipulating groups.
+
+    The fetch parameter for groups
+
+    All methods that return groups also accept an optional fetch
+    parameter that may be used to request additional information about the
+    groups returned. For more details about the general rules that apply to
+    the fetch parameter, refer to the {@link PersonMethods}
+    documentation.
+
+    For groups the fetch parameter may be used to fetch references
+    to people, institutions or other groups. In each case, only non-cancelled
+    people, institutions and groups will be included when fetching references.
+    The following references are supported:
+
+    * "all_members" - fetches all the people who are members of the group,
+    including members of groups included by the group, and groups included
+    by those groups, and so on.
+    * "direct_members" - fetches all the poeple who are direct members of
+    the group, not taking into account any included groups.
+    * "members_of_inst" - if the group is a membership group for an
+    institution, this fetches that institution.
+    * "owning_insts" - fetches all the institutions to which the group
+    belongs.
+    * "manages_insts" - fetches all the institutions that the group
+    manages. Typically this only applies to "Editor" groups.
+    * "manages_groups" - fetches all the groups that this group manages.
+    Note that some groups are self-managed, so this may be a
+    self-reference.
+    * "managed_by_groups" - fetches all the groups that manage this
+    group.
+    * "reads_groups" - fetches all the groups that this group has
+    privileged access to. This means that members of this group can see the
+    members of the referenced groups regardless of the membership visibility
+    settings.
+    * "read_by_groups" - fetches all the groups that have privileged
+    access to this group.
+    * "includes_groups" - fetches all the groups included by this group.
+    * "included_by_groups" - fetches all the groups that include this
+    group.
+
+    As with person fetch parameters, the references may be used
+    in a chain by using the "dot" notation to fetch additional information
+    about referenced people, institutions or groups. For example
+    "all_members.email" will fetch the email addresses of all members of the
+    group. For more information about what can be fetched from referenced
+    people and institutions, refer to the documentation for
+    {@link PersonMethods} and {@link InstitutionMethods}.
+
+    @author Dean Rasheed (dev-group@ucs.cam.ac.uk)
+    """
+    def __init__(self, conn):
+        self.conn = conn
+
+    def allGroups(self,
+                  includeCancelled,
+                  fetch=None):
+        """
+        Return a list of all groups.
+
+        By default, only a few basic details about each group are returned,
+        but the optional fetch parameter may be used to fetch
+        additional attributes or references.
+
+        [ HTTP: GET /api/v1/group/all-groups ]
+
+        @param includeCancelled [optional] Whether or not to include cancelled
+        groups. By default, only live groups are returned.
+        @param fetch [optional] A comma-separated list of any additional
+        attributes or references to fetch.
+
+        @return The requested groups (in groupid order).
+        """
+        path = "api/v1/group/all-groups"
+        path_params = {}
+        query_params = {"includeCancelled": includeCancelled,
+                        "fetch": fetch}
+        form_params = {}
+        result = self.conn.invoke_method("GET", path, path_params,
+                                         query_params, form_params)
+        if result.error:
+            raise IbisException(result.error)
+        return result.groups
+
+    def listGroups(self,
+                   groupids,
+                   fetch=None):
+        """
+        Get the groups with the specified IDs or names.
+
+        By default, only a few basic details about each group are returned,
+        but the optional fetch parameter may be used to fetch
+        additional attributes or references.
+
+        The results are sorted by groupid.
+
+        NOTE: The URL path length is limited to around 8000 characters,
+        which limits the number of groups that this method can fetch. Group
+        IDs are currently 6 characters long, and must be comma separated and
+        URL encoded, which limits this method to around 800 groups by ID,
+        but probably fewer by name, depending on the group name lengths.
+
+        NOTE: The groups returned may include cancelled groups. It is the
+        caller's repsonsibility to check their cancelled flags.
+
+        [ HTTP: GET /api/v1/group/list?groupids=... ]
+
+        @param groupids [required] A comma-separated list of group IDs or
+        group names (may be a mix of both).
+        @param fetch [optional] A comma-separated list of any additional
+        attributes or references to fetch.
+
+        @return The requested groups (in groupid order).
+        """
+        path = "api/v1/group/list"
+        path_params = {}
+        query_params = {"groupids": groupids,
+                        "fetch": fetch}
+        form_params = {}
+        result = self.conn.invoke_method("GET", path, path_params,
+                                         query_params, form_params)
+        if result.error:
+            raise IbisException(result.error)
+        return result.groups
+
+    def search(self,
+               query,
+               approxMatches=None,
+               includeCancelled=None,
+               offset=None,
+               limit=None,
+               orderBy=None,
+               fetch=None):
+        """
+        Search for groups using a free text query string. This is the same
+        search function that is used in the Lookup web application.
+
+        By default, only a few basic details about each group are returned,
+        but the optional fetch parameter may be used to fetch
+        additional attributes or references.
+
+        [ HTTP: GET /api/v1/group/search?query=... ]
+
+        @param query [required] The search string.
+        @param approxMatches [optional] Flag to enable more approximate
+        matching in the search, causing more results to be returned. Defaults
+        to false.
+        @param includeCancelled [optional] Flag to allow cancelled groups to
+        be included. Defaults to false.
+        @param offset [optional] The number of results to skip at the start
+        of the search. Defaults to 0.
+        @param limit [optional] The maximum number of results to return.
+        Defaults to 100.
+        @param orderBy [optional] The order in which to list the results.
+        This may be "groupid", "name" (the default) or "title".
+        @param fetch [optional] A comma-separated list of any additional
+        attributes or references to fetch.
+
+        @return The matching groups.
+        """
+        path = "api/v1/group/search"
+        path_params = {}
+        query_params = {"query": query,
+                        "approxMatches": approxMatches,
+                        "includeCancelled": includeCancelled,
+                        "offset": offset,
+                        "limit": limit,
+                        "orderBy": orderBy,
+                        "fetch": fetch}
+        form_params = {}
+        result = self.conn.invoke_method("GET", path, path_params,
+                                         query_params, form_params)
+        if result.error:
+            raise IbisException(result.error)
+        return result.groups
+
+    def searchCount(self,
+                    query,
+                    approxMatches=None,
+                    includeCancelled=None):
+        """
+        Count the number of groups that would be returned by a search using
+        a free text query string.
+
+        [ HTTP: GET /api/v1/group/search-count?query=... ]
+
+        @param query [required] The search string.
+        @param approxMatches [optional] Flag to enable more approximate
+        matching in the search, causing more results to be returned. Defaults
+        to false.
+        @param includeCancelled [optional] Flag to allow cancelled groups to
+        be included. Defaults to false.
+
+        @return The number of matching groups.
+        """
+        path = "api/v1/group/search-count"
+        path_params = {}
+        query_params = {"query": query,
+                        "approxMatches": approxMatches,
+                        "includeCancelled": includeCancelled}
+        form_params = {}
+        result = self.conn.invoke_method("GET", path, path_params,
+                                         query_params, form_params)
+        if result.error:
+            raise IbisException(result.error)
+        return int(result.value)
+
+    def getGroup(self,
+                 groupid,
+                 fetch=None):
+        """
+        Get the group with the specified ID or name.
+
+        By default, only a few basic details about the group are returned,
+        but the optional fetch parameter may be used to fetch
+        additional attributes or references of the group.
+
+        NOTE: The group returned may be a cancelled group. It is the caller's
+        repsonsibility to check its cancelled flag.
+
+        [ HTTP: GET /api/v1/group/{groupid} ]
+
+        @param groupid [required] The ID or name of the group to fetch. This
+        may be either the numeric ID or the short hyphenated group name (for
+        example "100656" or "cs-editors").
+        @param fetch [optional] A comma-separated list of any additional
+        attributes or references to fetch.
+
+        @return The requested group or null if it was not found.
+        """
+        path = "api/v1/group/%(groupid)s"
+        path_params = {"groupid": groupid}
+        query_params = {"fetch": fetch}
+        form_params = {}
+        result = self.conn.invoke_method("GET", path, path_params,
+                                         query_params, form_params)
+        if result.error:
+            raise IbisException(result.error)
+        return result.group
+
+    def getDirectMembers(self,
+                         groupid,
+                         fetch=None):
+        """
+        Get the direct members of the specified group, not including members
+        included via groups included by the group.
+
+        By default, only a few basic details about each member are returned,
+        but the optional fetch parameter may be used to fetch
+        additional attributes or references of each person.
+
+        NOTE: This method will not include cancelled people.
+
+        [ HTTP: GET /api/v1/group/{groupid}/direct-members ]
+
+        @param groupid [required] The ID or name of the group.
+        @param fetch [optional] A comma-separated list of any additional
+        attributes or references to fetch for each person.
+
+        @return The group's direct members (in identifier order).
+        """
+        path = "api/v1/group/%(groupid)s/direct-members"
+        path_params = {"groupid": groupid}
+        query_params = {"fetch": fetch}
+        form_params = {}
+        result = self.conn.invoke_method("GET", path, path_params,
+                                         query_params, form_params)
+        if result.error:
+            raise IbisException(result.error)
+        return result.people
+
+    def updateDirectMembers(self,
+                            groupid,
+                            addIds=None,
+                            removeIds=None,
+                            commitComment=None):
+        """
+        Update the list of people who are direct members of the group. This
+        will not affect people who are included in the group due to the
+        inclusion of other groups.
+
+        Any non-cancelled people in the list of identifiers specified by
+        {@code addIds} will be added to the group. This list should be a
+        comma-separated list of identifiers, each of which may be either a
+        CRSid or an identifier from another identifier scheme, prefixed with
+        that scheme's name and a slash. For example "mug99" or "usn/123456789".
+
+        Any people in the list of identifiers specified by {@code removeIds}
+        will be removed from the group, except if they are also in the list
+        {@code addIds}. The special identifier "all-members" may be used to
+        remove all existing group members, replacing them with the list
+        specified by {@code newIds}.
+
+        Examples:
+
+        updateDirectMembers("test-group", "mug99,crsid/yyy99,usn/123456789", "xxx99",
+                            "Remove xxx99 and add mug99, yyy99 and usn/123456789 to test-group");
+
+        updateDirectMembers("test-group", "xxx99,yyy99", "all-members",
+                            "Set the membership of test-group to include only xxx99 and yyy99");
+
+        [ HTTP: PUT /api/v1/group/{groupid}/direct-members ]
+
+        @param groupid [required] The ID or name of the group.
+        @param addIds [optional] The identifiers of people to add to the group.
+        @param removeIds [optional] The identifiers of people to remove from
+        the group.
+        @param commitComment [recommended] A short textual description of
+        the change made (will be visible on the history tab of the group and
+        all the affected people in the web application).
+
+        @return The updated list of direct members of the group (in identifier
+        order).
+        """
+        path = "api/v1/group/%(groupid)s/direct-members"
+        path_params = {"groupid": groupid}
+        query_params = {}
+        form_params = {"addIds": addIds,
+                       "removeIds": removeIds,
+                       "commitComment": commitComment}
+        result = self.conn.invoke_method("PUT", path, path_params,
+                                         query_params, form_params)
+        if result.error:
+            raise IbisException(result.error)
+        return result.people
+
+    def getMembers(self,
+                   groupid,
+                   fetch=None):
+        """
+        Get all the members of the specified group, including members of
+        groups included by the group, and groups included by those groups,
+        and so on.
+
+        By default, only a few basic details about each member are returned,
+        but the optional fetch parameter may be used to fetch
+        additional attributes or references of each person.
+
+        NOTE: This method will not include cancelled people.
+
+        [ HTTP: GET /api/v1/group/{groupid}/members ]
+
+        @param groupid [required] The ID or name of the group.
+        @param fetch [optional] A comma-separated list of any additional
+        attributes or references to fetch for each person.
+
+        @return The group's members (in identifier order).
+        """
+        path = "api/v1/group/%(groupid)s/members"
+        path_params = {"groupid": groupid}
+        query_params = {"fetch": fetch}
+        form_params = {}
+        result = self.conn.invoke_method("GET", path, path_params,
+                                         query_params, form_params)
+        if result.error:
+            raise IbisException(result.error)
+        return result.people
+
+class InstitutionMethods:
+    """
+    Methods for querying and manipulating institutions.
+
+    The fetch parameter for institutions
+
+    All methods that return institutions also accept an optional
+    fetch parameter that may be used to request additional
+    information about the institutions returned. For more details about
+    the general rules that apply to the fetch parameter,
+    refer to the {@link PersonMethods} documentation.
+
+    For institutions the fetch parameter may be used to fetch
+    any institution attribute by specifying the schemeid of an
+    institution attribute scheme. Examples include "address", "jpegPhoto",
+    "universityPhone", "instPhone", "landlinePhone", "mobilePhone",
+    "faxNumber", "email" and "labeledURI". The full list (which may be
+    extended over time) may be obtained using {@link #allAttributeSchemes}.
+
+    In addition the following pseudo-attributes are supported:
+
+    * "phone_numbers" - fetches all phone numbers. This is equivalent to
+    "universityPhone,instPhone,landlinePhone,mobilePhone".
+    * "all_attrs" - fetches all attributes from all institution attribute
+    schemes. This does not include references.
+    * "contact_rows" - fetches all institution contact rows. Any chained
+    fetches from contact rows are used to fetch attributes from any people
+    referred to by the contact rows.
+
+    The fetch parameter may also be used to fetch referenced
+    people, institutions or groups. This will only include references to
+    non-cancelled entities. The following references are supported:
+
+    * "all_members" - fetches all the people who are members of the
+    institution.
+    * "parent_insts" - fetches all the parent institutions. Note that
+    currently all institutions have only one parent, but this may change in
+    the future, and client applications should be prepared to handle multiple
+    parents.
+    * "child_insts" - fetches all the child institutions.
+    * "inst_groups" - fetches all the groups that belong to the
+    institution.
+    * "members_groups" - fetches all the groups that form the institution's
+    membership list.
+    * "managed_by_groups" - fetches all the groups that manage the
+    institution's data (commonly called "Editor" groups).
+
+    As with person fetch parameters, the references may be used
+    in a chain by using the "dot" notation to fetch additional information
+    about referenced people, institutions or groups. For example
+    "all_members.email" will fetch the email addresses of all members of the
+    institution. For more information about what can be fetched from
+    referenced people and groups, refer to the documentation for
+    {@link PersonMethods} and {@link GroupMethods}.
+
+    @author Dean Rasheed (dev-group@ucs.cam.ac.uk)
+    """
+    def __init__(self, conn):
+        self.conn = conn
+
+    def allAttributeSchemes(self):
+        """
+        Return a list of all the institution attribute schemes available.
+        The "schemeid" values of these schemes may be used in the
+        fetch parameter of other methods that return institutions.
+
+        [ HTTP: GET /api/v1/inst/all-attr-schemes ]
+
+        @return All the available institution attribute schemes (in precedence
+        order).
+        """
+        path = "api/v1/inst/all-attr-schemes"
+        path_params = {}
+        query_params = {}
+        form_params = {}
+        result = self.conn.invoke_method("GET", path, path_params,
+                                         query_params, form_params)
+        if result.error:
+            raise IbisException(result.error)
+        return result.attributeSchemes
+
+    def allInsts(self,
+                 includeCancelled,
+                 fetch=None):
+        """
+        Return a list of all institutions.
+
+        By default, only a few basic details about each institution are
+        returned, but the optional fetch parameter may be used
+        to fetch additional attributes or references.
+
+        [ HTTP: GET /api/v1/inst/all-insts ]
+
+        @param includeCancelled [optional] Whether or not to include cancelled
+        institutions. By default, only live institutions are returned.
+        @param fetch [optional] A comma-separated list of any additional
+        attributes or references to fetch.
+
+        @return The requested institutions (in instid order).
+        """
+        path = "api/v1/inst/all-insts"
+        path_params = {}
+        query_params = {"includeCancelled": includeCancelled,
+                        "fetch": fetch}
+        form_params = {}
+        result = self.conn.invoke_method("GET", path, path_params,
+                                         query_params, form_params)
+        if result.error:
+            raise IbisException(result.error)
+        return result.institutions
+
+    def listInsts(self,
+                  instids,
+                  fetch=None):
+        """
+        Get the institutions with the specified IDs.
+
+        By default, only a few basic details about each institution are
+        returned, but the optional fetch parameter may be used
+        to fetch additional attributes or references.
+
+        The results are sorted by ID.
+
+        NOTE: The URL path length is limited to around 8000 characters, and
+        an instid is up to 8 characters long. Allowing for comma separators
+        and URL encoding, this limits the number of institutions that this
+        method may fetch to around 700.
+
+        NOTE: The institutions returned may include cancelled institutions.
+        It is the caller's repsonsibility to check their cancelled flags.
+
+        [ HTTP: GET /api/v1/inst/list?instids=... ]
+
+        @param instids [required] A comma-separated list of instids.
+        @param fetch [optional] A comma-separated list of any additional
+        attributes or references to fetch.
+
+        @return The requested institutions (in instid order).
+        """
+        path = "api/v1/inst/list"
+        path_params = {}
+        query_params = {"instids": instids,
+                        "fetch": fetch}
+        form_params = {}
+        result = self.conn.invoke_method("GET", path, path_params,
+                                         query_params, form_params)
+        if result.error:
+            raise IbisException(result.error)
+        return result.institutions
+
+    def search(self,
+               query,
+               approxMatches=None,
+               includeCancelled=None,
+               attributes=None,
+               offset=None,
+               limit=None,
+               orderBy=None,
+               fetch=None):
+        """
+        Search for institutions using a free text query string. This is the
+        same search function that is used in the Lookup web application.
+
+        By default, only a few basic details about each institution are
+        returned, but the optional fetch parameter may be used
+        to fetch additional attributes or references.
+
+        [ HTTP: GET /api/v1/inst/search?query=... ]
+
+        @param query [required] The search string.
+        @param approxMatches [optional] Flag to enable more approximate
+        matching in the search, causing more results to be returned. Defaults
+        to false.
+        @param includeCancelled [optional] Flag to allow cancelled institutions
+        to be included. Defaults to false.
+        @param attributes [optional] A comma-separated list of attributes to
+        consider when searching. If this is NULL (the default) then all
+        attribute schemes marked as searchable will be included.
+        @param offset [optional] The number of results to skip at the start
+        of the search. Defaults to 0.
+        @param limit [optional] The maximum number of results to return.
+        Defaults to 100.
+        @param orderBy [optional] The order in which to list the results.
+        This may be either "instid" or "name" (the default).
+        @param fetch [optional] A comma-separated list of any additional
+        attributes or references to fetch.
+
+        @return The matching institutions.
+        """
+        path = "api/v1/inst/search"
+        path_params = {}
+        query_params = {"query": query,
+                        "approxMatches": approxMatches,
+                        "includeCancelled": includeCancelled,
+                        "attributes": attributes,
+                        "offset": offset,
+                        "limit": limit,
+                        "orderBy": orderBy,
+                        "fetch": fetch}
+        form_params = {}
+        result = self.conn.invoke_method("GET", path, path_params,
+                                         query_params, form_params)
+        if result.error:
+            raise IbisException(result.error)
+        return result.institutions
+
+    def searchCount(self,
+                    query,
+                    approxMatches=None,
+                    includeCancelled=None,
+                    attributes=None):
+        """
+        Count the number of institutions that would be returned by a search
+        using a free text query string.
+
+        [ HTTP: GET /api/v1/inst/search-count?query=... ]
+
+        @param query [required] The search string.
+        @param approxMatches [optional] Flag to enable more approximate
+        matching in the search, causing more results to be returned. Defaults
+        to false.
+        @param includeCancelled [optional] Flag to allow cancelled institutions
+        to be included. Defaults to false.
+        @param attributes [optional] A comma-separated list of attributes to
+        consider when searching. If this is NULL (the default) then all
+        attribute schemes marked as searchable will be included.
+
+        @return The number of matching institutions.
+        """
+        path = "api/v1/inst/search-count"
+        path_params = {}
+        query_params = {"query": query,
+                        "approxMatches": approxMatches,
+                        "includeCancelled": includeCancelled,
+                        "attributes": attributes}
+        form_params = {}
+        result = self.conn.invoke_method("GET", path, path_params,
+                                         query_params, form_params)
+        if result.error:
+            raise IbisException(result.error)
+        return int(result.value)
+
+    def getInst(self,
+                instid,
+                fetch=None):
+        """
+        Get the institution with the specified ID.
+
+        By default, only a few basic details about the institution are
+        returned, but the optional fetch parameter may be used
+        to fetch additional attributes or references of the institution.
+
+        NOTE: The institution returned may be a cancelled institution. It is
+        the caller's repsonsibility to check its cancelled flag.
+
+        [ HTTP: GET /api/v1/inst/{instid} ]
+
+        @param instid [required] The ID of the institution to fetch.
+        @param fetch [optional] A comma-separated list of any additional
+        attributes or references to fetch.
+
+        @return The requested institution or null if it was not found.
+        """
+        path = "api/v1/inst/%(instid)s"
+        path_params = {"instid": instid}
+        query_params = {"fetch": fetch}
+        form_params = {}
+        result = self.conn.invoke_method("GET", path, path_params,
+                                         query_params, form_params)
+        if result.error:
+            raise IbisException(result.error)
+        return result.institution
+
+    def addAttribute(self,
+                     instid,
+                     attr,
+                     position=None,
+                     allowDuplicates=None,
+                     commitComment=None):
+        """
+        Add an attribute to an institution. By default, this will not add the
+        attribute again if it already exists.
+
+        When adding an attribute, the new attribute's scheme must be set.
+        In addition, either its value or its binaryData field should be set.
+        All the remaining fields of the attribute are optional.
+
+        [ HTTP: POST /api/v1/inst/{instid}/add-attribute ]
+
+        @param instid [required] The ID of the institution.
+        @param attr [required] The new attribute to add.
+        @param position [optional] The position of the new attribute in the
+        list of attributes of the same attribute scheme (1, 2, 3,...). A value
+        of 0 (the default) will cause the new attribute to be added to the end
+        of the list of existing attributes for the scheme.
+        @param allowDuplicates [optional] If true, the new attribute will
+        always be added, even if another identical attribute already exists.
+        If false (the default), the new attribute will only be added if it
+        doesn't already exist.
+        @param commitComment [recommended] A short textual description of
+        the change made (will be visible on the history tab in the web
+        application).
+
+        @return The newly created or existing attribute.
+        """
+        path = "api/v1/inst/%(instid)s/add-attribute"
+        path_params = {"instid": instid}
+        query_params = {}
+        form_params = {"attr": attr,
+                       "position": position,
+                       "allowDuplicates": allowDuplicates,
+                       "commitComment": commitComment}
+        result = self.conn.invoke_method("POST", path, path_params,
+                                         query_params, form_params)
+        if result.error:
+            raise IbisException(result.error)
+        return result.attribute
+
+    def getContactRows(self,
+                       instid,
+                       fetch=None):
+        """
+        Get all the contact rows of the specified institution.
+
+        Any addresses, email addresses, phone numbers and web pages
+        associated with the contact rows are automatically returned, as
+        well as any people referred to by the contact rows.
+
+        If any of the contact rows refer to people, then only a few basic
+        details about each person are returned, but the optional
+        fetch parameter may be used to fetch additional
+        attributes or references of each person.
+
+        NOTE: This method will not include cancelled people.
+
+        [ HTTP: GET /api/v1/inst/{instid}/contact-rows ]
+
+        @param instid [required] The ID of the institution.
+        @param fetch [optional] A comma-separated list of any additional
+        attributes or references to fetch for any people referred to by any
+        of the contact rows.
+
+        @return The institution's contact rows.
+        """
+        path = "api/v1/inst/%(instid)s/contact-rows"
+        path_params = {"instid": instid}
+        query_params = {"fetch": fetch}
+        form_params = {}
+        result = self.conn.invoke_method("GET", path, path_params,
+                                         query_params, form_params)
+        if result.error:
+            raise IbisException(result.error)
+        return result.institution.contactRows
+
+    def getAttributes(self,
+                      instid,
+                      attrs):
+        """
+        Get one or more (possibly multi-valued) attributes of an institution.
+        The returned attributes are sorted by attribute scheme precedence and
+        then attribute precedence.
+
+        [ HTTP: GET /api/v1/inst/{instid}/get-attributes?attrs=... ]
+
+        @param instid [required] The ID of the institution.
+        @param attrs [required] The attribute scheme(s) to fetch. This may
+        include any number of the attributes or pseudo-attributes, but it
+        may not include references or attribute chains (see the documentation
+        for the "fetch" parameter in this class).
+
+        @return The requested attributes.
+        """
+        path = "api/v1/inst/%(instid)s/get-attributes"
+        path_params = {"instid": instid}
+        query_params = {"attrs": attrs}
+        form_params = {}
+        result = self.conn.invoke_method("GET", path, path_params,
+                                         query_params, form_params)
+        if result.error:
+            raise IbisException(result.error)
+        return result.attributes
+
+    def getMembers(self,
+                   instid,
+                   fetch=None):
+        """
+        Get all the members of the specified institution.
+
+        By default, only a few basic details about each member are returned,
+        but the optional fetch parameter may be used to fetch
+        additional attributes or references of each person.
+
+        NOTE: This method will not include cancelled people.
+
+        [ HTTP: GET /api/v1/inst/{instid}/members ]
+
+        @param instid [required] The ID of the institution.
+        @param fetch [optional] A comma-separated list of any additional
+        attributes or references to fetch for each person.
+
+        @return The institution's members (in identifier order).
+        """
+        path = "api/v1/inst/%(instid)s/members"
+        path_params = {"instid": instid}
+        query_params = {"fetch": fetch}
+        form_params = {}
+        result = self.conn.invoke_method("GET", path, path_params,
+                                         query_params, form_params)
+        if result.error:
+            raise IbisException(result.error)
+        return result.people
+
+    def getAttribute(self,
+                     instid,
+                     attrid):
+        """
+        Get a specific attribute of an institution.
+
+        [ HTTP: GET /api/v1/inst/{instid}/{attrid} ]
+
+        @param instid [required] The ID of the institution.
+        @param attrid [required] The ID of the attribute to fetch.
+
+        @return The requested attribute.
+        """
+        path = "api/v1/inst/%(instid)s/%(attrid)s"
+        path_params = {"instid": instid,
+                       "attrid": attrid}
+        query_params = {}
+        form_params = {}
+        result = self.conn.invoke_method("GET", path, path_params,
+                                         query_params, form_params)
+        if result.error:
+            raise IbisException(result.error)
+        return result.attribute
+
+    def updateAttribute(self,
+                        instid,
+                        attrid,
+                        attr,
+                        commitComment=None):
+        """
+        Update an attribute of an institution.
+
+        The attribute's value, binaryData, comment and effective date fields
+        will all be updated using the data supplied. All other fields will be
+        left unchanged.
+
+        To avoid inadvertently changing fields of the attribute, it is
+        recommended that {@link #getAttribute getAttribute()} be used to
+        retrieve the current value of the attribute, before calling this
+        method with the required changes.
+
+        [ HTTP: PUT /api/v1/inst/{instid}/{attrid} ]
+
+        @param instid [required] The ID of the institution.
+        @param attrid [required] The ID of the attribute to update.
+        @param attr [required] The new attribute values to apply.
+        @param commitComment [recommended] A short textual description of
+        the change made (will be visible on the history tab in the web
+        application).
+
+        @return The updated attribute.
+        """
+        path = "api/v1/inst/%(instid)s/%(attrid)s"
+        path_params = {"instid": instid,
+                       "attrid": attrid}
+        query_params = {}
+        form_params = {"attr": attr,
+                       "commitComment": commitComment}
+        result = self.conn.invoke_method("PUT", path, path_params,
+                                         query_params, form_params)
+        if result.error:
+            raise IbisException(result.error)
+        return result.attribute
+
+    def deleteAttribute(self,
+                        instid,
+                        attrid,
+                        commitComment=None):
+        """
+        Delete an attribute of an institution. It is not an error if the
+        attribute does not exist.
+
+        Note that in this method, the commitComment is passed
+        as a query parameter, rather than as a form parameter, for greater
+        client compatibility.
+
+        [ HTTP: DELETE /api/v1/inst/{instid}/{attrid} ]
+
+        @param instid [required] The ID of the institution.
+        @param attrid [required] The ID of the attribute to delete.
+        @param commitComment [recommended] A short textual description of
+        the change made (will be visible on the history tab in the web
+        application).
+
+        @return True if the attribute was deleted by this method, or false
+        if it did not exist.
+        """
+        path = "api/v1/inst/%(instid)s/%(attrid)s"
+        path_params = {"instid": instid,
+                       "attrid": attrid}
+        query_params = {"commitComment": commitComment}
+        form_params = {}
+        result = self.conn.invoke_method("DELETE", path, path_params,
+                                         query_params, form_params)
+        if result.error:
+            raise IbisException(result.error)
+        return result.value and result.value.lower() == "true"
+
+class PersonMethods:
+    """
+    Methods for querying and manipulating people.
+
+    Notes on the fetch parameter
+
+    All methods that return people, institutions or groups also accept an
+    optional fetch parameter that may be used to request
+    additional information about the entities returned. Without this
+    parameter, only a few basic details about each person, institution or
+    group are returned. The fetch parameter is quite flexible,
+    and may be used in a number of different ways:
+
+    * Attribute fetching. Attributes may be fetched by specifying the
+    schemeid of an attribute scheme. For example to fetch a
+    person's email addresses, use the value "email". For people common
+    attribute schemes include "jpegPhoto", "misAffiliation", "title",
+    "universityPhone", "mobexPhone", "landlinePhone", "mobilePhone", "pager",
+    "labeledURI" and "address". The full list of person attribute schemes may
+    be obtained using {@link #allAttributeSchemes}.
+
+    * Pseudo-attributes. Certain special pseudo-attributes are defined
+    for convenience. For people, the following pseudo-attributes are supported:
+
+    * "phone_numbers" - fetches all phone numbers. This is equivalent to
+    "universityPhone,instPhone,mobexPhone,landlinePhone,mobilePhone,pager".
+    * "all_identifiers" - fetches all identifiers. Currently people only
+    have CRSid identifiers, but in the future additional identifiers such
+    as USN or staffNumber may be added.
+    * "all_attrs" - fetches all attributes from all person attribute
+    schemes. This does not include identifiers or references.
+
+    * Reference fetching. For people, the following references are
+    supported (and will fetch only non-cancelled institutions and groups):
+
+    * "all_insts" - fetches all the institutions to which the person
+    belongs (sorted in name order).
+    * "all_groups" - fetches all the groups that the person is a member
+    of, including indirect group memberships, via groups that include other
+    groups.
+    * "direct_groups" - fetches all the groups that the person is directly
+    a member of. This does not include indirect group memberships - i.e.,
+    groups that include these groups.
+
+    * Chained reference fetching. To fetch properties of referenced
+    objects, the "dot" notation may be used. For example, to fetch the email
+    addresses of all the institutions to which a person belongs, use
+    "all_insts.email". Chains may include a number of reference following
+    steps, for example "all_insts.managed_by_groups.all_members.email" will
+    fetch all the institutions to which the person belongs, all the groups
+    that manage those institutions, all the visible members of those groups
+    and all the email addresses of those managing group members. For more
+    information about what can be fetched from referenced institutions and
+    groups, refer to the documentation for {@link InstitutionMethods} and
+    {@link GroupMethods}.
+
+    Multiple values of the fetch parameter should be separated
+    by commas.
+
+    Fetch parameter examples
+
+    fetch = "email"
+    This fetches all the person's email addresses.
+
+    fetch = "title,address"
+    This fetches all the person's titles (roles) and addresses.
+
+    fetch = "all_attrs"
+    This fetches all the person's attributes.
+
+    fetch = "all_groups,all_insts"
+    This fetches all the groups and institutions to which the person belongs.
+
+    fetch = "all_insts.parent_insts"
+    This fetches all the person's institutions, and their parent institutions.
+
+    fetch = "all_insts.email,all_insts.all_members.email"
+    This fetches all the person's institutions and their email addresses, and
+    all the members of those institutions, and the email addresses of all
+    those members.
+
+    @author Dean Rasheed (dev-group@ucs.cam.ac.uk)
+    """
+    def __init__(self, conn):
+        self.conn = conn
+
+    def allAttributeSchemes(self):
+        """
+        Return a list of all the person attribute schemes available. The
+        "schemeid" values of these schemes may be used in the
+        fetch parameter of other methods that return people.
+
+        NOTE: Some of these attribute schemes are not currently used (no
+        people have attribute values in the scheme). These schemes are
+        reserved for possible future use.
+
+        [ HTTP: GET /api/v1/person/all-attr-schemes ]
+
+        @return All the available person attribute schemes (in precedence
+        order).
+        """
+        path = "api/v1/person/all-attr-schemes"
+        path_params = {}
+        query_params = {}
+        form_params = {}
+        result = self.conn.invoke_method("GET", path, path_params,
+                                         query_params, form_params)
+        if result.error:
+            raise IbisException(result.error)
+        return result.attributeSchemes
+
+    def listPeople(self,
+                   crsids,
+                   fetch=None):
+        """
+        Get the people with the specified identifiers (typically CRSids).
+
+        Each identifier may be either a CRSid, or an identifier from another
+        identifier scheme, prefixed with that scheme's name and a slash. For
+        example "mug99" or "usn/123456789".
+
+        By default, only a few basic details about each person are returned,
+        but the optional fetch parameter may be used to fetch
+        additional attributes or references.
+
+        The results are sorted by identifier scheme and value.
+
+        NOTE: The number of people that may be fetched in a single call is
+        limited by the URL path length limit (around 8000 characters). A
+        CRSid is up to 7 characters long, and other identifiers are typically
+        longer, since they must also include the identifier scheme. Thus the
+        number of people that this method may fetch is typically limited to a
+        few hundred.
+
+        NOTE: The people returned may include cancelled people. It is the
+        caller's repsonsibility to check their cancelled flags.
+
+        [ HTTP: GET /api/v1/person/list?crsids=... ]
+
+        @param crsids [required] A comma-separated list of identifiers.
+        @param fetch [optional] A comma-separated list of any additional
+        attributes or references to fetch.
+
+        @return The requested people (in identifier order).
+        """
+        path = "api/v1/person/list"
+        path_params = {}
+        query_params = {"crsids": crsids,
+                        "fetch": fetch}
+        form_params = {}
+        result = self.conn.invoke_method("GET", path, path_params,
+                                         query_params, form_params)
+        if result.error:
+            raise IbisException(result.error)
+        return result.people
+
+    def search(self,
+               query,
+               approxMatches=None,
+               includeCancelled=None,
+               misStatus=None,
+               attributes=None,
+               offset=None,
+               limit=None,
+               orderBy=None,
+               fetch=None):
+        """
+        Search for people using a free text query string. This is the same
+        search function that is used in the Lookup web application.
+
+        By default, only a few basic details about each person are returned,
+        but the optional fetch parameter may be used to fetch
+        additional attributes or references.
+
+        [ HTTP: GET /api/v1/person/search?query=... ]
+
+        @param query [required] The search string.
+        @param approxMatches [optional] Flag to enable more approximate
+        matching in the search, causing more results to be returned. Defaults
+        to false.
+        @param includeCancelled [optional] Flag to allow cancelled people to
+        be included (people who are no longer members of the University).
+        Defaults to false.
+        @param misStatus [optional] The type of people to search for. This may
+        be
+
+        * "staff" - only include people whose MIS status is "" (empty
+        string), "staff", or "staff,student".
+        * "student" - only include people whose MIS status is set to
+        "student" or "staff,student".
+
+        Otherwise all matching people will be included (the default). Note
+        that the "staff" and "student" options are not mutually exclusive.
+        @param attributes [optional] A comma-separated list of attributes to
+        consider when searching. If this is NULL (the default) then all
+        attribute schemes marked as searchable will be included.
+        @param offset [optional] The number of results to skip at the start
+        of the search. Defaults to 0.
+        @param limit [optional] The maximum number of results to return.
+        Defaults to 100.
+        @param orderBy [optional] The order in which to list the results.
+        This may be either "identifier" or "surname" (the default).
+        @param fetch [optional] A comma-separated list of any additional
+        attributes or references to fetch.
+
+        @return The matching people.
+        """
+        path = "api/v1/person/search"
+        path_params = {}
+        query_params = {"query": query,
+                        "approxMatches": approxMatches,
+                        "includeCancelled": includeCancelled,
+                        "misStatus": misStatus,
+                        "attributes": attributes,
+                        "offset": offset,
+                        "limit": limit,
+                        "orderBy": orderBy,
+                        "fetch": fetch}
+        form_params = {}
+        result = self.conn.invoke_method("GET", path, path_params,
+                                         query_params, form_params)
+        if result.error:
+            raise IbisException(result.error)
+        return result.people
+
+    def searchCount(self,
+                    query,
+                    approxMatches=None,
+                    includeCancelled=None,
+                    misStatus=None,
+                    attributes=None):
+        """
+        Count the number of people that would be returned by a search using
+        a free text query string.
+
+        [ HTTP: GET /api/v1/person/search-count?query=... ]
+
+        @param query [required] The search string.
+        @param approxMatches [optional] Flag to enable more approximate
+        matching in the search, causing more results to be returned. Defaults
+        to false.
+        @param includeCancelled [optional] Flag to allow cancelled people to
+        be included (people who are no longer members of the University).
+        Defaults to false.
+        @param misStatus [optional] The type of people to search for. This may
+        be
+
+        * "staff" - only include people whose MIS status is "" (empty
+        string), "staff", or "staff,student".
+        * "student" - only include people whose MIS status is set to
+        "student" or "staff,student".
+
+        Otherwise all matching people will be included (the default). Note
+        that the "staff" and "student" options are not mutually exclusive.
+        @param attributes [optional] A comma-separated list of attributes to
+        consider when searching. If this is NULL (the default) then all
+        attribute schemes marked as searchable will be included.
+
+        @return The number of matching people.
+        """
+        path = "api/v1/person/search-count"
+        path_params = {}
+        query_params = {"query": query,
+                        "approxMatches": approxMatches,
+                        "includeCancelled": includeCancelled,
+                        "misStatus": misStatus,
+                        "attributes": attributes}
+        form_params = {}
+        result = self.conn.invoke_method("GET", path, path_params,
+                                         query_params, form_params)
+        if result.error:
+            raise IbisException(result.error)
+        return int(result.value)
+
+    def getPerson(self,
+                  scheme,
+                  identifier,
+                  fetch=None):
+        """
+        Get the person with the specified identifier.
+
+        By default, only a few basic details about the person are returned,
+        but the optional fetch parameter may be used to fetch
+        additional attributes or references of the person.
+
+        NOTE: The person returned may be a cancelled person. It is the
+        caller's repsonsibility to check its cancelled flag.
+
+        [ HTTP: GET /api/v1/person/{scheme}/{identifier} ]
+
+        @param scheme [required] The person identifier scheme. Typically this
+        should be "crsid", but other identifier schemes may be available
+        in the future, such as "usn" or "staffNumber".
+        @param identifier [required] The identifier of the person to fetch
+        (typically their CRSid).
+        @param fetch [optional] A comma-separated list of any additional
+        attributes or references to fetch.
+
+        @return The requested person or null if they were not found.
+        """
+        path = "api/v1/person/%(scheme)s/%(identifier)s"
+        path_params = {"scheme": scheme,
+                       "identifier": identifier}
+        query_params = {"fetch": fetch}
+        form_params = {}
+        result = self.conn.invoke_method("GET", path, path_params,
+                                         query_params, form_params)
+        if result.error:
+            raise IbisException(result.error)
+        return result.person
+
+    def addAttribute(self,
+                     scheme,
+                     identifier,
+                     attr,
+                     position=None,
+                     allowDuplicates=None,
+                     commitComment=None):
+        """
+        Add an attribute to a person. By default, this will not add the
+        attribute again if it already exists.
+
+        When adding an attribute, the new attribute's scheme must be set.
+        In addition, either its value or its binaryData field should be set.
+        All the remaining fields of the attribute are optional.
+
+        [ HTTP: POST /api/v1/person/{scheme}/{identifier}/add-attribute ]
+
+        @param scheme [required] The person identifier scheme. Typically this
+        should be "crsid", but other identifier schemes may be available
+        in the future, such as "usn" or "staffNumber".
+        @param identifier [required] The identifier of the person to udpate
+        (typically their CRSid).
+        @param attr [required] The new attribute to add.
+        @param position [optional] The position of the new attribute in the
+        list of attributes of the same attribute scheme (1, 2, 3,...). A value
+        of 0 (the default) will cause the new attribute to be added to the end
+        of the list of existing attributes for the scheme.
+        @param allowDuplicates [optional] If true, the new attribute will
+        always be added, even if another identical attribute already exists.
+        If false (the default), the new attribute will only be added if it
+        doesn't already exist.
+        @param commitComment [recommended] A short textual description of
+        the change made (will be visible on the history tab in the web
+        application).
+
+        @return The newly created or existing attribute.
+        """
+        path = "api/v1/person/%(scheme)s/%(identifier)s/add-attribute"
+        path_params = {"scheme": scheme,
+                       "identifier": identifier}
+        query_params = {}
+        form_params = {"attr": attr,
+                       "position": position,
+                       "allowDuplicates": allowDuplicates,
+                       "commitComment": commitComment}
+        result = self.conn.invoke_method("POST", path, path_params,
+                                         query_params, form_params)
+        if result.error:
+            raise IbisException(result.error)
+        return result.attribute
+
+    def getAttributes(self,
+                      scheme,
+                      identifier,
+                      attrs):
+        """
+        Get one or more (possibly multi-valued) attributes of a person. The
+        returned attributes are sorted by attribute scheme precedence and
+        then attribute precedence.
+
+        [ HTTP: GET /api/v1/person/{scheme}/{identifier}/get-attributes?attrs=... ]
+
+        @param scheme [required] The person identifier scheme. Typically this
+        should be "crsid", but other identifier schemes may be available
+        in the future, such as "usn" or "staffNumber".
+        @param identifier [required] The identifier of the person (typically
+        their CRSid).
+        @param attrs [required] The attribute scheme(s) to fetch. This may
+        include any number of the attributes or pseudo-attributes, but it
+        may not include references or attribute chains (see the documentation
+        for the "fetch" parameter in this class).
+
+        @return The requested attributes.
+        """
+        path = "api/v1/person/%(scheme)s/%(identifier)s/get-attributes"
+        path_params = {"scheme": scheme,
+                       "identifier": identifier}
+        query_params = {"attrs": attrs}
+        form_params = {}
+        result = self.conn.invoke_method("GET", path, path_params,
+                                         query_params, form_params)
+        if result.error:
+            raise IbisException(result.error)
+        return result.attributes
+
+    def getGroups(self,
+                  scheme,
+                  identifier,
+                  fetch=None):
+        """
+        Get all the groups to which the specified person belongs, including
+        indirect group memberships, via groups that include other groups.
+        The returned list of groups is sorted by groupid.
+
+        Note that some group memberships may not be visible to you. This
+        method will only return those group memberships that you have
+        permission to see.
+
+        By default, only a few basic details about each group are returned,
+        but the optional fetch parameter may be used to fetch
+        additional attributes or references of each group.
+
+        NOTE: This method will not include cancelled groups.
+
+        [ HTTP: GET /api/v1/person/{scheme}/{identifier}/groups ]
+
+        @param scheme [required] The person identifier scheme. Typically this
+        should be "crsid", but other identifier schemes may be available
+        in the future, such as "usn" or "staffNumber".
+        @param identifier [required] The identifier of the person (typically
+        their CRSid).
+        @param fetch [optional] A comma-separated list of any additional
+        attributes or references to fetch.
+
+        @return The person's groups (in groupid order).
+        """
+        path = "api/v1/person/%(scheme)s/%(identifier)s/groups"
+        path_params = {"scheme": scheme,
+                       "identifier": identifier}
+        query_params = {"fetch": fetch}
+        form_params = {}
+        result = self.conn.invoke_method("GET", path, path_params,
+                                         query_params, form_params)
+        if result.error:
+            raise IbisException(result.error)
+        return result.groups
+
+    def getInsts(self,
+                 scheme,
+                 identifier,
+                 fetch=None):
+        """
+        Get all the institutions to which the specified person belongs. The
+        returned list of institutions is sorted by name.
+
+        By default, only a few basic details about each institution are
+        returned, but the optional fetch parameter may be used
+        to fetch additional attributes or references of each institution.
+
+        NOTE: This method will not include cancelled institutions.
+
+        [ HTTP: GET /api/v1/person/{scheme}/{identifier}/insts ]
+
+        @param scheme [required] The person identifier scheme. Typically this
+        should be "crsid", but other identifier schemes may be available
+        in the future, such as "usn" or "staffNumber".
+        @param identifier [required] The identifier of the person (typically
+        their CRSid).
+        @param fetch [optional] A comma-separated list of any additional
+        attributes or references to fetch.
+
+        @return The person's institutions (in name order).
+        """
+        path = "api/v1/person/%(scheme)s/%(identifier)s/insts"
+        path_params = {"scheme": scheme,
+                       "identifier": identifier}
+        query_params = {"fetch": fetch}
+        form_params = {}
+        result = self.conn.invoke_method("GET", path, path_params,
+                                         query_params, form_params)
+        if result.error:
+            raise IbisException(result.error)
+        return result.institutions
+
+    def isMemberOfGroup(self,
+                        scheme,
+                        identifier,
+                        groupid):
+        """
+        Test if the specified person is a member of the specified group.
+
+        NOTE: This may be used with cancelled people and groups.
+
+        [ HTTP: GET /api/v1/person/{scheme}/{identifier}/is-member-of-group/{groupid} ]
+
+        @param scheme [required] The person identifier scheme. Typically this
+        should be "crsid", but other identifier schemes may be available
+        in the future, such as "usn" or "staffNumber".
+        @param identifier [required] The identifier of the person (typically
+        their CRSid).
+        @param groupid [required] The ID or name of the group.
+
+        @return true if the specified person is in the specified group,
+        false otherwise (or if the person or group does not exist).
+        """
+        path = "api/v1/person/%(scheme)s/%(identifier)s/is-member-of-group/%(groupid)s"
+        path_params = {"scheme": scheme,
+                       "identifier": identifier,
+                       "groupid": groupid}
+        query_params = {}
+        form_params = {}
+        result = self.conn.invoke_method("GET", path, path_params,
+                                         query_params, form_params)
+        if result.error:
+            raise IbisException(result.error)
+        return result.value and result.value.lower() == "true"
+
+    def isMemberOfInst(self,
+                       scheme,
+                       identifier,
+                       instid):
+        """
+        Test if the specified person is a member of the specified institution.
+
+        NOTE: This may be used with cancelled people and institutions, but
+        it will not include cancelled membership groups.
+
+        [ HTTP: GET /api/v1/person/{scheme}/{identifier}/is-member-of-inst/{instid} ]
+
+        @param scheme [required] The person identifier scheme. Typically this
+        should be "crsid", but other identifier schemes may be available
+        in the future, such as "usn" or "staffNumber".
+        @param identifier [required] The identifier of the person (typically
+        their CRSid).
+        @param instid [required] The ID of the institution.
+
+        @return true if the specified person is in the specified institution,
+        false otherwise (or if the person or institution does not exist).
+        """
+        path = "api/v1/person/%(scheme)s/%(identifier)s/is-member-of-inst/%(instid)s"
+        path_params = {"scheme": scheme,
+                       "identifier": identifier,
+                       "instid": instid}
+        query_params = {}
+        form_params = {}
+        result = self.conn.invoke_method("GET", path, path_params,
+                                         query_params, form_params)
+        if result.error:
+            raise IbisException(result.error)
+        return result.value and result.value.lower() == "true"
+
+    def getManagedGroups(self,
+                         scheme,
+                         identifier,
+                         fetch=None):
+        """
+        Get all the groups that the specified person has persmission to edit.
+        The returned list of groups is sorted by groupid.
+
+        Note that some group memberships may not be visible to you. This
+        method will only include groups for which you have persmission to
+        see the applicable manager group memberships.
+
+        By default, only a few basic details about each group are returned,
+        but the optional fetch parameter may be used to fetch
+        additional attributes or references of each group.
+
+        NOTE: This method will not include cancelled groups.
+
+        [ HTTP: GET /api/v1/person/{scheme}/{identifier}/manages-groups ]
+
+        @param scheme [required] The person identifier scheme. Typically this
+        should be "crsid", but other identifier schemes may be available
+        in the future, such as "usn" or "staffNumber".
+        @param identifier [required] The identifier of the person (typically
+        their CRSid).
+        @param fetch [optional] A comma-separated list of any additional
+        attributes or references to fetch.
+
+        @return The groups that the person manages (in groupid order).
+        """
+        path = "api/v1/person/%(scheme)s/%(identifier)s/manages-groups"
+        path_params = {"scheme": scheme,
+                       "identifier": identifier}
+        query_params = {"fetch": fetch}
+        form_params = {}
+        result = self.conn.invoke_method("GET", path, path_params,
+                                         query_params, form_params)
+        if result.error:
+            raise IbisException(result.error)
+        return result.groups
+
+    def getManagedInsts(self,
+                        scheme,
+                        identifier,
+                        fetch=None):
+        """
+        Get all the institutions that the specified person has permission to
+        edit. The returned list of institutions is sorted by name.
+
+        Note that some group memberships may not be visible to you. This
+        method will only include institutions for which you have permission
+        to see the applicable editor group memberships.
+
+        By default, only a few basic details about each institution are
+        returned, but the optional fetch parameter may be used
+        to fetch additional attributes or references of each institution.
+
+        NOTE: This method will not include cancelled institutions.
+
+        [ HTTP: GET /api/v1/person/{scheme}/{identifier}/manages-insts ]
+
+        @param scheme [required] The person identifier scheme. Typically this
+        should be "crsid", but other identifier schemes may be available
+        in the future, such as "usn" or "staffNumber".
+        @param identifier [required] The identifier of the person (typically
+        their CRSid).
+        @param fetch [optional] A comma-separated list of any additional
+        attributes or references to fetch.
+
+        @return The institutions that the person manages (in name order).
+        """
+        path = "api/v1/person/%(scheme)s/%(identifier)s/manages-insts"
+        path_params = {"scheme": scheme,
+                       "identifier": identifier}
+        query_params = {"fetch": fetch}
+        form_params = {}
+        result = self.conn.invoke_method("GET", path, path_params,
+                                         query_params, form_params)
+        if result.error:
+            raise IbisException(result.error)
+        return result.institutions
+
+    def getAttribute(self,
+                     scheme,
+                     identifier,
+                     attrid):
+        """
+        Get a specific attribute of a person.
+
+        [ HTTP: GET /api/v1/person/{scheme}/{identifier}/{attrid} ]
+
+        @param scheme [required] The person identifier scheme. Typically this
+        should be "crsid", but other identifier schemes may be available
+        in the future, such as "usn" or "staffNumber".
+        @param identifier [required] The identifier of the person (typically
+        their CRSid).
+        @param attrid [required] The ID of the attribute to fetch.
+
+        @return The requested attribute.
+        """
+        path = "api/v1/person/%(scheme)s/%(identifier)s/%(attrid)s"
+        path_params = {"scheme": scheme,
+                       "identifier": identifier,
+                       "attrid": attrid}
+        query_params = {}
+        form_params = {}
+        result = self.conn.invoke_method("GET", path, path_params,
+                                         query_params, form_params)
+        if result.error:
+            raise IbisException(result.error)
+        return result.attribute
+
+    def updateAttribute(self,
+                        scheme,
+                        identifier,
+                        attrid,
+                        attr,
+                        commitComment=None):
+        """
+        Update an attribute of a person.
+
+        The attribute's value, binaryData, comment, instid and effective date
+        fields will all be updated using the data supplied. All other fields
+        will be left unchanged.
+
+        To avoid inadvertently changing fields of the attribute, it is
+        recommended that {@link #getAttribute getAttribute()} be used to
+        retrieve the current value of the attribute, before calling this
+        method with the required changes.
+
+        [ HTTP: PUT /api/v1/person/{scheme}/{identifier}/{attrid} ]
+
+        @param scheme [required] The person identifier scheme. Typically this
+        should be "crsid", but other identifier schemes may be available
+        in the future, such as "usn" or "staffNumber".
+        @param identifier [required] The identifier of the person to udpate
+        (typically their CRSid).
+        @param attrid [required] The ID of the attribute to update.
+        @param attr [required] The new attribute values to apply.
+        @param commitComment [recommended] A short textual description of
+        the change made (will be visible on the history tab in the web
+        application).
+
+        @return The updated attribute.
+        """
+        path = "api/v1/person/%(scheme)s/%(identifier)s/%(attrid)s"
+        path_params = {"scheme": scheme,
+                       "identifier": identifier,
+                       "attrid": attrid}
+        query_params = {}
+        form_params = {"attr": attr,
+                       "commitComment": commitComment}
+        result = self.conn.invoke_method("PUT", path, path_params,
+                                         query_params, form_params)
+        if result.error:
+            raise IbisException(result.error)
+        return result.attribute
+
+    def deleteAttribute(self,
+                        scheme,
+                        identifier,
+                        attrid,
+                        commitComment=None):
+        """
+        Delete an attribute of a person. It is not an error if the attribute
+        does not exist.
+
+        Note that in this method, the commitComment is passed
+        as a query parameter, rather than as a form parameter, for greater
+        client compatibility.
+
+        [ HTTP: DELETE /api/v1/person/{scheme}/{identifier}/{attrid} ]
+
+        @param scheme [required] The person identifier scheme. Typically this
+        should be "crsid", but other identifier schemes may be available
+        in the future, such as "usn" or "staffNumber".
+        @param identifier [required] The identifier of the person to udpate
+        (typically their CRSid).
+        @param attrid [required] The ID of the attribute to delete.
+        @param commitComment [recommended] A short textual description of
+        the change made (will be visible on the history tab in the web
+        application).
+
+        @return True if the attribute was deleted by this method, or false
+        if it did not exist.
+        """
+        path = "api/v1/person/%(scheme)s/%(identifier)s/%(attrid)s"
+        path_params = {"scheme": scheme,
+                       "identifier": identifier,
+                       "attrid": attrid}
+        query_params = {"commitComment": commitComment}
+        form_params = {}
+        result = self.conn.invoke_method("DELETE", path, path_params,
+                                         query_params, form_params)
+        if result.error:
+            raise IbisException(result.error)
+        return result.value and result.value.lower() == "true"
diff --git a/src/python3/test/unittests.py b/src/python3/test/unittests.py
new file mode 100644
index 0000000..c225926
--- /dev/null
+++ b/src/python3/test/unittests.py
@@ -0,0 +1,856 @@
+#!/usr/bin/python
+
+# --------------------------------------------------------------------------
+# Copyright (c) 2012, University of Cambridge Computing Service
+#
+# This file is part of the Lookup/Ibis client library.
+#
+# This library is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License as published
+# by the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# This library is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+# or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU Lesser General Public
+# License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public License
+# along with this library.  If not, see <http://www.gnu.org/licenses/>.
+#
+# Author: Dean Rasheed (dev-group@ucs.cam.ac.uk)
+# --------------------------------------------------------------------------
+
+from datetime import date
+import unittest
+import urllib.request
+
+try:
+    from ibisclient import *
+except ImportError:
+    import os
+    import sys
+    _script_dir = os.path.realpath(os.path.dirname(__file__))
+    _ibisclient_dir = os.path.realpath(os.path.join(_script_dir, ".."))
+    sys.path.append(_ibisclient_dir)
+    from ibisclient import *
+
+# Test on local server or lookup-test?
+local = True
+
+# Run the editing tests or not?
+run_edit_tests = False
+
+# Globals initialised once and re-used in each test
+conn = None
+pm = None
+im = None
+gm = None
+initialised = False
+
+class IbisUnitTests(unittest.TestCase):
+    def setUp(self):
+        global conn, pm, im, gm, initialised
+
+        if not initialised:
+            if local:
+                conn = createLocalConnection()
+            else:
+                conn = createTestConnection()
+
+            pm = PersonMethods(conn)
+            im = InstitutionMethods(conn)
+            gm = GroupMethods(conn)
+            initialised = True
+
+    # --------------------------------------------------------------------
+    # Person tests.
+    # --------------------------------------------------------------------
+
+    def test_person_attribute_schemes(self):
+        schemes = pm.allAttributeSchemes()
+        self.assertTrue(len(schemes) > 10)
+        self.assertEqual("displayName", schemes[0].schemeid)
+
+    def test_no_such_person(self):
+        person = pm.getPerson("crsid", "dar1734toolong")
+        self.assertIsNone(person)
+
+    def test_no_such_identifier_scheme(self):
+        person = pm.getPerson("crs", "dar17")
+        self.assertIsNone(person)
+
+    def test_get_person_details(self):
+        person = pm.getPerson("crsid", "dar17")
+        self.assertEqual("Rasheed", person.surname)
+        self.assertEqual("staff", person.misAffiliation)
+        self.assertTrue(person.is_staff())
+        self.assertFalse(person.is_student())
+
+    def test_get_person_identifiers(self):
+        person = pm.getPerson("crsid", "dar17", "all_identifiers")
+        self.assertEqual("crsid", person.identifiers[0].scheme)
+        self.assertEqual("dar17", person.identifiers[0].value)
+
+    def test_get_person_title(self):
+        person = pm.getPerson("crsid", "dar17", "title")
+        self.assertEqual("title", person.attributes[0].scheme)
+        self.assertEqual("Database administrator and developer", person.attributes[0].value)
+
+    def test_get_person_attributes(self):
+        attrs = pm.getAttributes("crsid", "dar17", "email,title")
+        self.assertEqual("title", attrs[0].scheme);
+        self.assertEqual("Database administrator and developer", attrs[0].value);
+        self.assertEqual("email", attrs[1].scheme);
+
+        attr = pm.getAttribute("crsid", "dar17", attrs[0].attrid)
+        self.assertEqual(attrs[0].scheme, attr.scheme)
+        self.assertEqual(attrs[0].value, attr.value)
+
+    def test_get_person_insts_and_groups(self):
+        person = pm.getPerson("crsid", "dar17", "all_insts,all_groups")
+        self.assertEqual("UCS", person.institutions[0].acronym)
+        self.assertEqual("cs-members", person.groups[0].name)
+
+    def test_get_person_inst_managers(self):
+        person = pm.getPerson("crsid", "dar17", "all_insts.managed_by_groups.all_members")
+
+        inst = person.institutions[0]
+        self.assertEqual("CS", inst.instid)
+
+        mgrGroup = inst.managedByGroups[0]
+        self.assertEqual("cs-editors", mgrGroup.name)
+        self.assertEqual("A. Kitching", mgrGroup.members[0].registeredName)
+
+    def test_list_people(self):
+        people = pm.listPeople("ijl20,rjd4,pms52,dar17,prb34,dcs38", "email")
+        self.assertEqual(6, len(people))
+        self.assertEqual("dar17", people[0].identifier.value)
+        self.assertEqual("dcs38@cam.ac.uk", people[1].attributes[0].value)
+        self.assertEqual("Lewis", people[2].surname)
+        self.assertEqual("P.M. Shore", people[3].registeredName)
+        self.assertEqual("prb34", people[4].identifier.value)
+        self.assertEqual("Dowling", people[5].surname)
+
+    def test_person_search(self):
+        people = pm.search("ian lewis", False, False, None, None, 0, 100)
+        self.assertEqual(1, len(people))
+        self.assertEqual("ijl20", people[0].identifier.value)
+
+        people = pm.search("phoenix 23 database administrator", False, False,
+                           "staff", "address,title", 0, 100, None, "address,title")
+        self.assertEqual(1, len(people))
+        self.assertEqual("dar17", people[0].identifier.value)
+        self.assertEqual("Database administrator and developer", people[0].attributes[0].value)
+        self.assertEqual("Phoenix 23", people[0].attributes[1].value)
+
+    def test_person_search_count(self):
+        count = pm.searchCount("j smith", False, False)
+        self.assertTrue(count > 10)
+
+    def test_is_person_member_of_inst(self):
+        self.assertTrue(pm.isMemberOfInst("crsid", "dar17", "CS"))
+        self.assertFalse(pm.isMemberOfInst("crsid", "dar17", "ENG"))
+        self.assertFalse(pm.isMemberOfInst("crs", "dar1734-sdfr", "CS"))
+
+    def test_is_person_member_of_group(self):
+        self.assertTrue(pm.isMemberOfGroup("crsid", "rjd4", "100656"))
+        self.assertTrue(pm.isMemberOfGroup("crsid", "rjd4", "cs-editors"))
+        self.assertFalse(pm.isMemberOfGroup("crsid", "dar99", "100656"))
+        self.assertFalse(pm.isMemberOfGroup("crsid", "rjd4", "3g3rsfh"))
+        self.assertFalse(pm.isMemberOfGroup("crsid", "34sf_rjd", "3g3rsfh"))
+        self.assertFalse(pm.isMemberOfGroup("crs", "34sf_rjd", "3g3rsfh"))
+
+    def test_get_persons_insts(self):
+        person = pm.getPerson("crsid", "ijl20", "all_insts")
+        insts = pm.getInsts("crsid", "ijl20")
+
+        self.assertEqual(2, len(person.institutions))
+        self.assertEqual(2, len(insts))
+        for i in range(0, len(insts)):
+            i1 = person.institutions[i]
+            i2 = insts[i]
+            self.assertEqual(i1.instid, i2.instid)
+            self.assertEqual(i1.name, i2.name)
+
+    def test_get_persons_managed_insts(self):
+        person = pm.getPerson("crsid", "ijl20", "all_groups.manages_insts")
+        insts = pm.getManagedInsts("crsid", "ijl20")
+
+        managedInsts = []
+        for group in person.groups:
+            for managedInst in group.managesInsts:
+                managedInsts.append(managedInst)
+
+        self.assertEqual(1, len(managedInsts))
+        self.assertEqual(1, len(insts))
+        for i in range(0, len(insts)):
+            i1 = managedInsts[i]
+            i2 = insts[i]
+            self.assertEqual(i1.instid, i2.instid)
+            self.assertEqual(i1.name, i2.name)
+
+    def test_get_persons_groups(self):
+        person = pm.getPerson("crsid", "ijl20", "all_groups")
+        groups = pm.getGroups("crsid", "ijl20")
+
+        self.assertTrue(len(person.groups) > 10)
+        self.assertTrue(len(person.groups) == len(groups))
+        for i in range(0, len(groups)):
+            g1 = person.groups[i]
+            g2 = groups[i]
+            self.assertEqual(g1.groupid, g2.groupid)
+            self.assertEqual(g1.name, g2.name)
+
+    def test_get_persons_managed_groups(self):
+        person = pm.getPerson("crsid", "ijl20", "all_groups.manages_groups")
+        groups = pm.getManagedGroups("crsid", "ijl20")
+
+        managedGroups = []
+        for group in person.groups:
+            for managedGroup in group.managesGroups:
+                managedGroups.append(managedGroup)
+
+        managedGroups.sort(key=lambda group: group.groupid)
+
+        self.assertTrue(len(managedGroups) > 10)
+        self.assertTrue(len(managedGroups) == len(groups))
+        for i in range(0, len(groups)):
+            g1 = managedGroups[i]
+            g2 = groups[i]
+            self.assertEqual(g1.groupid, g2.groupid)
+            self.assertEqual(g1.name, g2.name)
+
+    def test_person_edit(self):
+        if not run_edit_tests:
+            return
+
+        try:
+            conn.set_username("cstest-editors")
+            conn.set_password("foobar")
+
+            # Delete any test emails from previous runs
+            person = pm.getPerson("crsid", "dar99", "email")
+            for attr in person.attributes:
+                if attr.owningGroupid == "100668":
+                    pm.deleteAttribute("crsid", "dar99", attr.attrid,
+                                       "Unit test: delete existing test emails")
+
+            person = pm.getPerson("crsid", "dar99", "email")
+            for attr in person.attributes:
+                if attr.owningGroupid == "100668":
+                    self.fail("There should be no test emails left")
+
+            # Test adding a new email
+            newAttr = IbisAttribute()
+            newAttr.scheme = "email"
+            newAttr.value = "dev-group@ucs.cam.ac.uk"
+            newAttr.comment = "Unit testing"
+            newAttr.instid = "CS"
+            newAttr.effectiveFrom = date.today()
+
+            newAttr = pm.addAttribute("crsid", "dar99", newAttr, 0, True,
+                                      "Unit test: add a test email")
+            self.assertEqual("dev-group@ucs.cam.ac.uk", newAttr.value)
+            self.assertEqual("Unit testing", newAttr.comment)
+            self.assertEqual("CS", newAttr.instid)
+            self.assertIsNotNone(newAttr.effectiveFrom)
+            self.assertIsNone(newAttr.effectiveTo)
+            self.assertEqual("100668", newAttr.owningGroupid)
+
+            person = pm.getPerson("crsid", "dar99", "email")
+
+            found = False
+            for attr in person.attributes:
+                if attr.owningGroupid == "100668":
+                    self.assertEqual(newAttr.attrid, attr.attrid)
+                    self.assertEqual(newAttr.value, attr.value)
+                    self.assertEqual(newAttr.comment, attr.comment)
+                    self.assertEqual(newAttr.instid, attr.instid)
+                    self.assertEqual(newAttr.effectiveFrom, attr.effectiveFrom)
+                    self.assertEqual(newAttr.effectiveTo, attr.effectiveTo)
+                    self.assertEqual(newAttr.owningGroupid, attr.owningGroupid)
+                    self.assertFalse(found)
+                    found = True
+            self.assertTrue(found)
+
+            # Test updating the new email
+            newAttr.value = "foo@bar.com"
+            newAttr.comment = "Unit test update"
+            newAttr.instid = "CSTEST"
+            newAttr.effectiveFrom = None
+            newAttr.effectiveTo = date.today()
+            updatedAttr = pm.updateAttribute("crsid", "dar99", newAttr.attrid,
+                                             newAttr, "Unit test: update email")
+            self.assertEqual(newAttr.value, updatedAttr.value)
+            self.assertEqual(newAttr.comment, updatedAttr.comment)
+            self.assertEqual(newAttr.instid, updatedAttr.instid)
+            self.assertIsNone(updatedAttr.effectiveFrom)
+            self.assertIsNotNone(updatedAttr.effectiveTo)
+            self.assertEqual(newAttr.owningGroupid, updatedAttr.owningGroupid)
+
+            person = pm.getPerson("crsid", "dar99", "email")
+
+            found = False
+            for attr in person.attributes:
+                if attr.owningGroupid == "100668":
+                    self.assertEqual(updatedAttr.attrid, attr.attrid)
+                    self.assertEqual(updatedAttr.value, attr.value)
+                    self.assertEqual(updatedAttr.comment, attr.comment)
+                    self.assertEqual(updatedAttr.instid, attr.instid)
+                    self.assertEqual(updatedAttr.effectiveFrom, attr.effectiveFrom)
+                    self.assertEqual(updatedAttr.effectiveTo, attr.effectiveTo)
+                    self.assertEqual(updatedAttr.owningGroupid, attr.owningGroupid)
+                    self.assertFalse(found)
+                    found = True
+            self.assertTrue(found)
+
+            # Test deleting the new email
+            deleted = pm.deleteAttribute("crsid", "dar99", updatedAttr.attrid,
+                                         "Unit test: delete email")
+            self.assertTrue(deleted)
+
+            person = pm.getPerson("crsid", "dar99", "email")
+
+            for attr in person.attributes:
+                if attr.owningGroupid == "100668":
+                    self.fail("There should be no test emails left")
+        finally:
+            conn.set_username("anonymous")
+            conn.set_password("")
+
+    def test_person_edit_image(self):
+        if not run_edit_tests:
+            return
+
+        try:
+            conn.set_username("cstest-editors")
+            conn.set_password("foobar")
+
+            # The image to use for testing
+            f = urllib.request.urlopen("http://www.lookup.cam.ac.uk/images/ibis.jpg")
+            imageData = f.read()
+            f.close()
+
+            # Delete any test images from previous runs
+            person = pm.getPerson("crsid", "dar99", "jpegPhoto")
+            for attr in person.attributes:
+                if attr.owningGroupid == "100668":
+                    pm.deleteAttribute("crsid", "dar99", attr.attrid,
+                                       "Unit test: delete existing test photos")
+
+            person = pm.getPerson("crsid", "dar99", "jpegPhoto")
+            for attr in person.attributes:
+                if attr.owningGroupid == "100668":
+                    self.fail("There should be no test photos left")
+
+            # Test adding a new photo
+            newAttr = IbisAttribute()
+            newAttr.scheme = "jpegPhoto"
+            newAttr.binaryData = imageData
+            newAttr.comment = "Unit testing"
+
+            newAttr = pm.addAttribute("crsid", "dar99", newAttr, 0, True,
+                                      "Unit test: add a test photo")
+            self.assertIsNone(newAttr.value)
+            self.assertEqual(imageData, newAttr.binaryData)
+            self.assertEqual("Unit testing", newAttr.comment)
+            self.assertEqual("100668", newAttr.owningGroupid)
+
+            person = pm.getPerson("crsid", "dar99", "jpegPhoto")
+
+            found = False
+            for attr in person.attributes:
+                if attr.owningGroupid == "100668":
+                    self.assertEqual(newAttr.attrid, attr.attrid)
+                    self.assertIsNone(attr.value)
+                    self.assertEqual(imageData, attr.binaryData)
+                    self.assertEqual(newAttr.comment, attr.comment)
+                    self.assertEqual(newAttr.instid, attr.instid)
+                    self.assertEqual(newAttr.effectiveFrom, attr.effectiveFrom)
+                    self.assertEqual(newAttr.effectiveTo, attr.effectiveTo)
+                    self.assertEqual(newAttr.owningGroupid, attr.owningGroupid)
+                    self.assertFalse(found)
+                    found = True
+            self.assertTrue(found)
+
+            # Test deleting the new photo
+            deleted = pm.deleteAttribute("crsid", "dar99", newAttr.attrid,
+                                         "Unit test: delete photo")
+            self.assertTrue(deleted)
+
+            person = pm.getPerson("crsid", "dar99", "jpegPhoto")
+
+            for attr in person.attributes:
+                if attr.owningGroupid == "100668":
+                    self.fail("There should be no test photos left")
+        finally:
+            conn.set_username("anonymous")
+            conn.set_password("")
+
+    # --------------------------------------------------------------------
+    # Institution tests.
+    # --------------------------------------------------------------------
+
+    def test_inst_attribute_schemes(self):
+        schemes = im.allAttributeSchemes()
+        self.assertTrue(len(schemes) > 10)
+        self.assertEqual("name", schemes[0].schemeid)
+
+    def test_no_such_inst(self):
+        inst = im.getInst("54jkn4")
+        self.assertIsNone(inst)
+
+    def test_get_inst_details(self):
+        inst = im.getInst("CS")
+        self.assertEqual("UCS", inst.acronym)
+        self.assertEqual("University Computing Service", inst.name)
+
+    def test_get_inst_email_and_phone_numbers(self):
+        inst = im.getInst("CS", "email,phone_numbers")
+
+        foundEmail = False
+        foundPhoneNumber = False
+        for attr in inst.attributes:
+            if attr.scheme == "email" and\
+               attr.value == "reception@ucs.cam.ac.uk":
+                foundEmail = True
+            if attr.scheme == "universityPhone" and\
+               attr.value == "34600":
+                foundPhoneNumber = True
+        self.assertTrue(foundEmail)
+        self.assertTrue(foundPhoneNumber)
+
+    def test_get_inst_attributes(self):
+        attrs = im.getAttributes("CS", "acronym,email")
+        self.assertEqual("acronym", attrs[0].scheme);
+        self.assertEqual("UCS", attrs[0].value);
+        self.assertEqual("email", attrs[1].scheme);
+
+        attr = im.getAttribute("CS", attrs[0].attrid)
+        self.assertEqual(attrs[0].scheme, attr.scheme)
+        self.assertEqual(attrs[0].value, attr.value)
+
+    def test_get_inst_members(self):
+        inst = im.getInst("CS", "all_members")
+        people = im.getMembers("CS")
+
+        self.assertTrue(len(people) > 100)
+        self.assertTrue(len(inst.members) == len(people))
+        for i in range(0, len(people)):
+            p1 = inst.members[i]
+            p2 = people[i]
+            self.assertEqual(p1.identifier.scheme, p2.identifier.scheme)
+            self.assertEqual(p1.identifier.value, p2.identifier.value)
+            self.assertEqual(p1.displayName, p2.displayName)
+
+    def test_get_inst_members_jdInstid(self):
+        inst = im.getInst("CS", "all_members.jdInstid")
+        people = im.getMembers("CS", "jdInstid")
+
+        self.assertTrue(len(inst.members) == len(people))
+        for i in range(0, len(people)):
+            p1 = inst.members[i]
+            p2 = people[i]
+            self.assertEqual(p1.identifier.scheme, p2.identifier.scheme)
+            self.assertEqual(p1.identifier.value, p2.identifier.value)
+            if not p1.attributes[0].value == "TES":
+                self.assertEqual("CS", p1.attributes[0].value)
+                self.assertEqual("CS", p2.attributes[0].value)
+
+    def test_get_inst_parents(self):
+        inst = im.getInst("CHURCH", "parent_insts")
+        self.assertEqual("COLL", inst.parentInsts[0].instid)
+
+    def test_get_inst_parents_children(self):
+        inst = im.getInst("CHURCH", "parent_insts.child_insts")
+        self.assertEqual("COLL", inst.parentInsts[0].instid)
+        self.assertEqual("FTHEO", inst.parentInsts[0].childInsts[0].instid)
+        self.assertEqual("CHRISTS", inst.parentInsts[0].childInsts[1].instid)
+        self.assertEqual("CHURCH", inst.parentInsts[0].childInsts[2].instid)
+        self.assertEqual("CLARE", inst.parentInsts[0].childInsts[3].instid)
+        self.assertEqual("CLAREH", inst.parentInsts[0].childInsts[4].instid)
+
+        self.assertTrue(inst.parentInsts[0].childInsts[2] == inst)
+
+    def test_get_inst_groups(self):
+        inst = im.getInst("CS", "inst_groups,managed_by_groups.managed_by_groups,members_groups")
+        self.assertEqual("cs-members", inst.groups[0].name)
+        self.assertEqual("cs-managers", inst.groups[1].name)
+        self.assertEqual("cs-editors", inst.groups[2].name)
+        self.assertEqual("cs-members", inst.membersGroups[0].name)
+        self.assertEqual("cs-editors", inst.managedByGroups[0].name)
+        self.assertEqual("cs-managers", inst.managedByGroups[0].managedByGroups[0].name)
+
+        self.assertTrue(inst.membersGroups[0] == inst.groups[0])
+        self.assertTrue(inst.managedByGroups[0] == inst.groups[2])
+        self.assertTrue(inst.managedByGroups[0].managedByGroups[0] == inst.groups[1])
+
+    def test_inst_fetch_depth(self):
+        f = ".child_insts.parent_insts"
+        fok = (f+f+f+f+f)[1:]
+        ferr = fok+".child_insts"
+
+        inst = im.getInst("CS", fok)
+        cpInst = inst.childInsts[0].parentInsts[0]
+        self.assertEqual("CS", cpInst.instid)
+        cpInst = cpInst.childInsts[0].parentInsts[0]
+        self.assertEqual("CS", cpInst.instid)
+        cpInst = cpInst.childInsts[0].parentInsts[0]
+        self.assertEqual("CS", cpInst.instid)
+        cpInst = cpInst.childInsts[0].parentInsts[0]
+        self.assertEqual("CS", cpInst.instid)
+        cpInst = cpInst.childInsts[0].parentInsts[0]
+        self.assertEqual("CS", cpInst.instid)
+        cpInst = cpInst.childInsts[0].parentInsts[0]
+        self.assertEqual("CS", cpInst.instid)
+
+        try:
+            inst = im.getInst("CS", ferr)
+            fail("Should have failed due to fetch depth too large")
+        except IbisException as e:
+            self.assertEqual(500, e.get_error().status)
+            self.assertEqual("Nested fetch depth too large.", e.get_error().message)
+
+    def test_list_insts(self):
+        insts = im.listInsts("CS,CSTEST,dsrlgnr,ENG", "email")
+        self.assertEqual(3, len(insts))
+        self.assertEqual("CS", insts[0].instid)
+        self.assertEqual("reception@ucs.cam.ac.uk", insts[0].attributes[0].value)
+        self.assertEqual("CSTEST", insts[1].instid)
+        self.assertEqual("Department of Engineering", insts[2].name)
+
+    def test_inst_search(self):
+        insts = im.search("computing service", False, False,
+                          None, 0, 100, "instid")
+        self.assertEqual("CS", insts[0].instid)
+
+        insts = im.search("CB2 3QH", False, False,
+                          "address", 0, 100, None, "email")
+        self.assertEqual(2, len(insts))
+        self.assertEqual("SEC", insts[0].instid)
+        self.assertEqual("CS", insts[1].instid)
+        self.assertEqual("reception@ucs.cam.ac.uk", insts[1].attributes[0].value)
+
+    def test_inst_search_count(self):
+        count = im.searchCount("computing")
+        self.assertTrue(count > 5)
+
+    def test_get_inst_contact_rows(self):
+        inst = im.getInst("CS", "contact_rows.jdInstid")
+        contactRows = im.getContactRows("CS", "jdInstid")
+
+        self.assertTrue(len(contactRows) > 20)
+        self.assertEqual("Enquiries and Reception", contactRows[0].description)
+        self.assertEqual("reception@ucs.cam.ac.uk", contactRows[0].emails[0])
+        self.assertEqual("universityPhone", contactRows[0].phoneNumbers[0].phoneType)
+        self.assertEqual("34600", contactRows[0].phoneNumbers[0].number)
+        self.assertEqual("Director", contactRows[2].description)
+        self.assertEqual("Ian Lewis", contactRows[2].people[0].displayName)
+        self.assertEqual("CS", contactRows[2].people[0].attributes[0].value)
+
+        self.assertEquals(len(inst.contactRows), len(contactRows))
+        for i in range(0, len(contactRows)):
+            r1 = contactRows[i]
+            r2 = inst.contactRows[i]
+            self.assertEqual(r1.bold, r2.bold)
+            self.assertEqual(r1.italic, r2.italic)
+            self.assertEqual(r1.description, r2.description)
+
+            self.assertEqual(len(r1.addresses), len(r2.addresses))
+            for j in range(0, len(r1.addresses)):
+                self.assertEqual(r1.addresses[j], r2.addresses[j])
+
+            self.assertEqual(len(r1.emails), len(r2.emails))
+            for j in range(0, len(r1.emails)):
+                self.assertEqual(r1.emails[j], r2.emails[j])
+
+            self.assertEqual(len(r1.people), len(r2.people))
+            for j in range(0, len(r1.people)):
+                self.assertEqual(r1.people[j].identifier.value, r2.people[j].identifier.value)
+                self.assertEqual(r1.people[j].displayName, r2.people[j].displayName)
+                self.assertEqual(r1.people[j].attributes[0].value, r2.people[j].attributes[0].value)
+
+            self.assertEqual(len(r1.phoneNumbers), len(r2.phoneNumbers))
+            for j in range(0, len(r1.phoneNumbers)):
+                self.assertEqual(r1.phoneNumbers[j].phoneType, r2.phoneNumbers[j].phoneType)
+                self.assertEqual(r1.phoneNumbers[j].number, r2.phoneNumbers[j].number)
+                self.assertEqual(r1.phoneNumbers[j].comment, r2.phoneNumbers[j].comment)
+
+            self.assertEquals(len(r1.webPages), len(r2.webPages))
+            for j in range(0, len(r1.webPages)):
+                self.assertEqual(r1.webPages[j].url, r2.webPages[j].url)
+                self.assertEqual(r1.webPages[j].label, r2.webPages[j].label)
+
+    def test_inst_edit(self):
+        if not run_edit_tests:
+            return
+
+        try:
+            conn.set_username("cstest-editors")
+            conn.set_password("foobar")
+
+            # Delete any test emails from previous runs
+            inst = im.getInst("CSTEST", "email")
+            for attr in inst.attributes:
+                im.deleteAttribute("CSTEST", attr.attrid,
+                                   "Unit test: delete existing test emails")
+
+            inst = im.getInst("CSTEST", "email")
+            self.assertEqual(0, len(inst.attributes))
+
+            # Test adding a new email
+            newAttr = IbisAttribute()
+            newAttr.scheme = "email"
+            newAttr.value = "cstest@ucs.cam.ac.uk"
+            newAttr.comment = "Unit testing"
+            newAttr.effectiveFrom = date.today()
+
+            newAttr = im.addAttribute("CSTEST", newAttr, 0, True,
+                                      "Unit test: add a test email")
+            self.assertEqual("cstest@ucs.cam.ac.uk", newAttr.value)
+            self.assertEqual("Unit testing", newAttr.comment)
+            self.assertIsNotNone(newAttr.effectiveFrom)
+            self.assertIsNone(newAttr.effectiveTo)
+
+            inst = im.getInst("CSTEST", "email")
+
+            found = False
+            for attr in inst.attributes:
+                self.assertEqual(newAttr.attrid, attr.attrid)
+                self.assertEqual(newAttr.value, attr.value)
+                self.assertEqual(newAttr.comment, attr.comment)
+                self.assertEqual(newAttr.effectiveFrom, attr.effectiveFrom)
+                self.assertEqual(newAttr.effectiveTo, attr.effectiveTo)
+                self.assertFalse(found)
+                found = True
+            self.assertTrue(found)
+
+            # Test updating the new email
+            newAttr.value = "foo@bar.com"
+            newAttr.comment = "Unit test update"
+            newAttr.effectiveFrom = None
+            newAttr.effectiveTo = date.today()
+            updatedAttr = im.updateAttribute("CSTEST", newAttr.attrid,
+                                             newAttr, "Unit test: update email")
+            self.assertEqual(newAttr.value, updatedAttr.value)
+            self.assertEqual(newAttr.comment, updatedAttr.comment)
+            self.assertIsNone(updatedAttr.effectiveFrom)
+            self.assertIsNotNone(updatedAttr.effectiveTo)
+
+            inst = im.getInst("CSTEST", "email")
+
+            found = False
+            for attr in inst.attributes:
+                self.assertEqual(updatedAttr.attrid, attr.attrid)
+                self.assertEqual(updatedAttr.value, attr.value)
+                self.assertEqual(updatedAttr.comment, attr.comment)
+                self.assertEqual(updatedAttr.effectiveFrom, attr.effectiveFrom)
+                self.assertEqual(updatedAttr.effectiveTo, attr.effectiveTo)
+                self.assertFalse(found)
+                found = True
+            self.assertTrue(found)
+
+            # Test deleting the new email
+            deleted = im.deleteAttribute("CSTEST", updatedAttr.attrid,
+                                         "Unit test: delete email")
+            self.assertTrue(deleted)
+
+            inst = im.getInst("CSTEST", "email")
+            self.assertEqual(0, len(inst.attributes))
+        finally:
+            conn.set_username("anonymous")
+            conn.set_password("")
+
+    def test_inst_edit_image(self):
+        if not run_edit_tests:
+            return
+
+        try:
+            conn.set_username("cstest-editors")
+            conn.set_password("foobar")
+
+            # The image to use for testing
+            f = urllib.request.urlopen("http://www.lookup.cam.ac.uk/images/ibis.jpg")
+            imageData = f.read()
+            f.close()
+
+            # Delete any test images from previous runs
+            inst = im.getInst("CSTEST", "jpegPhoto")
+            for attr in inst.attributes:
+                im.deleteAttribute("CSTEST", attr.attrid,
+                                   "Unit test: delete existing test photos")
+
+            inst = im.getInst("CSTEST", "jpegPhoto")
+            self.assertEqual(0, len(inst.attributes))
+
+            # Test adding a new photo
+            newAttr = IbisAttribute()
+            newAttr.scheme = "jpegPhoto"
+            newAttr.binaryData = imageData
+            newAttr.comment = "Unit testing"
+
+            newAttr = im.addAttribute("CSTEST", newAttr, 0, True,
+                                      "Unit test: add a test photo")
+            self.assertIsNone(newAttr.value)
+            self.assertEqual(imageData, newAttr.binaryData)
+            self.assertEqual("Unit testing", newAttr.comment)
+
+            inst = im.getInst("CSTEST", "jpegPhoto")
+
+            found = False
+            for attr in inst.attributes:
+                self.assertEqual(newAttr.attrid, attr.attrid)
+                self.assertIsNone(attr.value)
+                self.assertEqual(imageData, attr.binaryData)
+                self.assertEqual(newAttr.comment, attr.comment)
+                self.assertEqual(newAttr.effectiveFrom, attr.effectiveFrom)
+                self.assertEqual(newAttr.effectiveTo, attr.effectiveTo)
+                self.assertFalse(found)
+                found = True
+            self.assertTrue(found)
+
+            # Test deleting the new photo
+            deleted = im.deleteAttribute("CSTEST", newAttr.attrid,
+                                         "Unit test: delete photo")
+            self.assertTrue(deleted)
+
+            inst = im.getInst("CSTEST", "jpegPhoto")
+            self.assertEqual(0, len(inst.attributes))
+        finally:
+            conn.set_username("anonymous")
+            conn.set_password("")
+
+    # --------------------------------------------------------------------
+    # Group tests.
+    # --------------------------------------------------------------------
+
+    def test_no_such_group(self):
+        group = gm.getGroup("654321")
+        self.assertIsNone(group)
+        group = gm.getGroup("no-such-group-exists")
+        self.assertIsNone(group)
+        group = gm.getGroup("x4fu89fd")
+        self.assertIsNone(group)
+
+    def test_get_group_details(self):
+        group1 = gm.getGroup("100656")
+        group2 = gm.getGroup("cs-editors")
+
+        self.assertEqual("100656", group2.groupid)
+        self.assertEqual("cs-editors", group1.name)
+        self.assertEqual(group1.description, group2.description)
+
+    def test_get_group_members(self):
+        group = gm.getGroup("cs-editors", "all_members")
+        people = gm.getMembers("cs-editors")
+        direct_people = gm.getDirectMembers("cs-editors")
+
+        self.assertTrue(len(people) > 10)
+        self.assertTrue(len(group.members) == len(people))
+        self.assertTrue(len(direct_people) <= len(people))
+        for i in range(0, len(people)):
+            p1 = group.members[i]
+            p2 = people[i]
+            self.assertEqual(p1.identifier.scheme, p2.identifier.scheme)
+            self.assertEqual(p1.identifier.value, p2.identifier.value)
+            self.assertEqual(p1.displayName, p2.displayName)
+        for p1 in direct_people:
+            found = False
+            for p2 in people:
+                if p2.identifier.scheme == p1.identifier.scheme and \
+                   p2.identifier.value == p1.identifier.value:
+                    self.assertFalse(found)
+                    found = True
+            self.assertTrue(found)
+
+    def test_get_group_insts(self):
+        group = gm.getGroup("cs-editors", "owning_insts,manages_insts")
+        self.assertEqual("CS", group.owningInsts[0].instid)
+        self.assertEqual("CS", group.managesInsts[0].instid)
+        self.assertTrue(group.owningInsts[0] == group.managesInsts[0])
+
+    def test_get_group_mgrs(self):
+        group = gm.getGroup("cs-editors", "managed_by_groups.managed_by_groups")
+        self.assertEqual("cs-managers", group.managedByGroups[0].name)
+        self.assertEqual("cs-managers", group.managedByGroups[0].managedByGroups[0].name)
+        self.assertTrue(group.managedByGroups[0] == group.managedByGroups[0].managedByGroups[0])
+
+    def test_list_groups(self):
+        groups = gm.listGroups("cs-editors,000000,cs-members", "managed_by_groups")
+        self.assertEqual(3, len(groups))
+        self.assertEqual("000000", groups[0].groupid)
+        self.assertEqual("cs-editors", groups[1].managedByGroups[0].name)
+        self.assertEqual("cs-managers", groups[2].managedByGroups[0].name)
+
+    def test_group_search(self):
+        groups = gm.search("computing service editors", False, False, 0, 100)
+        self.assertEqual("csconslt-editors", groups[0].name)
+
+        groups = gm.search("computing service testing members", False, False,
+                           0, 1, None, "all_members")
+        self.assertEqual(1, len(groups))
+        self.assertEqual("cstest-members", groups[0].name)
+        self.assertTrue(len(groups[0].members) > 50)
+        self.assertEqual("ads99", groups[0].members[0].identifier.value)
+
+    def test_group_search_count(self):
+        count = gm.searchCount("maths editors")
+        self.assertEqual(6, count)
+
+    def test_edit_group_members(self):
+        if not run_edit_tests:
+            return
+
+        try:
+            conn.set_username("cstest-editors")
+            conn.set_password("foobar")
+
+            # Initial members of cstest-members (should include mug99)
+            originalMembers = gm.getDirectMembers("cstest-members")
+
+            found = False
+            for person in originalMembers:
+                if person.identifier.scheme == "crsid" and \
+                   person.identifier.value == "mug99":
+                    self.assertFalse(found)
+                    found = True
+            self.assertTrue(found)
+
+            # Test removing mug99, and a non-existent USN
+            newMembers = gm.updateDirectMembers("cstest-members", None, "mug99,usn/123456789",
+                                                "Unit test: remove mug99 from cstest-members")
+            self.assertEqual(len(originalMembers)-1, len(newMembers))
+
+            for person in newMembers:
+                self.assertFalse(person.identifier.scheme == "crsid" and \
+                                 person.identifier.value == "mug99")
+
+            # Test adding mug99 back and removing all other members
+            newMembers = gm.updateDirectMembers("cstest-members", "mug99", "all-members",
+                                                "Unit test: make mug99 the only member of cstest-members")
+            self.assertEqual(1, len(newMembers))
+            self.assertEqual("crsid", newMembers[0].identifier.scheme)
+            self.assertEqual("mug99", newMembers[0].identifier.value)
+
+            # Test restoring all the original members (including mug99 again)
+            newIds = ""
+            for person in originalMembers:
+                newIds += person.identifier.scheme+"/"+person.identifier.value+","
+
+            newMembers = gm.updateDirectMembers("cstest-members", newIds, None,
+                                                "Unit test: restore members of cstest-members")
+            self.assertEqual(len(originalMembers), len(newMembers))
+
+            for i in range(0, len(originalMembers)):
+                p1 = originalMembers[i]
+                p2 = newMembers[i]
+                self.assertEqual(p1.identifier.scheme, p2.identifier.scheme)
+                self.assertEqual(p1.identifier.value, p2.identifier.value)
+        finally:
+            conn.set_username("anonymous")
+            conn.set_password("")
+
+if __name__ == '__main__':
+    suite = unittest.TestLoader().loadTestsFromTestCase(IbisUnitTests)
+    unittest.TextTestRunner(verbosity=2).run(suite)
-- 
GitLab