From b6ab747f75021d839b398b795c4ab541c8792556 Mon Sep 17 00:00:00 2001
From: Jared Hanson
Add authentication and user management to your consumer and business apps with a few lines of code.
-
+
+ Auth. Built for Devs, by Devs
Add login, registration, SSO, MFA, and a bazillion other features to your app in minutes. Integrates with any codebase and installs on any server, anywhere in the world.
`<~-QC@7a6e@4{hsTb@Avnk zudbf%>8Yw-RbA_T)|&8d@{-61_y}NNV8~Km#gxFnAU!|It8g%2VBm_6J3l@Spv;Bk zgu%dSVi8{qp+AnfO*N#<t}1|h(j32V8v{9^o_w<>Mn z`8=a(#Ot04FyxV~;AlSn#mQ{n>tZy`2Px3E2gCpFDdHg1d>oNsfiYvZ4uC&k+8B?> zWm+H_Qe tY^ z;gmQVse~=L{`S??*=q8Zd_`J8IFlqsc;7z&1u^;_t<3j61@f=dUQn}~EJmkA%5?hn z5ff3dS{X(y1us6IuF!+a9})qxbfUg)P$pIz6$RO9!NVze5IP`dMeNux6~5~R(~L}S zv~i9IftA+%cAPA}q79}`s_B_qYcEP}m7dNHU#kr{v6GoB$`*#8b7it@0W5h?rEIk9 z8`HBtZfaCgM5rY$y_(T&W?~|VtMB3$PZF534_#Zq+?EH(Jw(sof7ifyAiO}ZvVh9F z9t~{)GQq0H9}U~ZOy|qHle4|d*X V0%l6A4L>il* zqliR+mERLG!)`Au%^NPeUl2CPcf4ApDql+TsNot4S#5{81xZ>vD+x;h-s~~p&+p(4 zKBc;pEap``L4S&EsZXA84G8K){HjFZVxHo&`rb1p=6mQV?(pP-OmZVtZZpOczwLST zfp9C+m@@6ST>P%Y8TU`H?j^2D Qg)Lj<^VF;lg4f`Z5Eo$L`^wod`A-l>=g)e;s#U?^t@H8 zjL-QGzi0BbVR1udeVI)iJso$r*!b{qERWEg(K=o*d>_e!dG!Tn{rJZ_Oms5+c=a8m z+kjNxevk>F`hoVU9|0W{Sc63b-`Fyf#%{luk3&-k9C}|Ma4?%KyM%L8!#!(_9EUug zITsP!?W0(vdCLvP(lHa&_Z`2q# &PQSpF$UbeOMl#c<_Z$bLQQova% zU;=jk_3OAB?-j`RI7;DgAN~!tfdd|Iv7R>0PrI?<#@RLnpunLqUlCr9(7b>G04$l& z>Zd+}5)5S|P8opY7pB)-&ChMqSg}c&r^~O|p1WQ-aFKDd!9{-t9#V_ZLbkrrdjx z32Y#EDk3H;Bg@y!yC(;f+;>6A;o=)9V*cNfq_+^k5n1{J =ifYSz(w!!3qQyYK3;8pV3ak2pvi4pP5xaVk1Q03plj1BPm9)2tL3W ziYUR1&3^K_e)&JwhkHv?gB>f^(8H9nK-FjQ^^xo(--ATGObj#-21F1TS)4yuNE~pO z6g_tX?b7DiWVri$SElU-DdvaOhC*=$c64(1d{HU1G!+Z?reTP^kH>bfiydcz42elu z?O+rkJ;t|ogBhFxZ9W&k60_*}CF(b|49Rf;tEx)i_`MhhsNgZYwzm0>igA*g+k#uL zS&ACNKPrW$RLb0P1ZiJBUe!7d=b|#cksgYzbWBG-Gfb?V;}KmI4TH%IYFZiyr5$jg zqW>k&m8no{W}fKSL|h}cD!&&uaBh)=$0dG)0DP%-VeF?FW6ES(6cK>aX?pb}*qG`L zo09#ELXk@QSn 19a@4SO+q0v}OW0N^dt zdn?6I)$=)H-pWu>jMx{{2S2C5syjMvcLt9iJ)6s5O7HXWg;a4gr*!470T O!!lSysf&vBv-GuC_!f0T#Tgm8fx&3#AIgPID&<( zl8A(5WwyC6S0w27JIgm#98{|NFJE;|y|>O+MhtSq3a6PZm9PQ)M@h~tvJVfW^E>o4PPu4#m#Qz+|Hr@lp>y9Kj7L0LgN8I z&$j~WF?EJag_jB?U%aA{& M>x(c z0xe#WLpv`tY}E_Ol#`X6bg^x|UW?i(Ojh{BB86E-S{(?aYoUhf !b=EAg1_w5hhSO;3x>oB=cEs Fw{1k^fABRGx&oPznt8ja3);B1xR9?guX-cSvND{%Wg( FJ~zcRjdmy zX_8Ym2E<^&>Tc6vUqqOv3VQL0*rkslvXhq}8su66m-^zo4`yui1C{5`2b!m^YMl)L zb4HCgh`#%hLy>1&`7It}AXrowy1fPeI~idB+fqdW0Q(f7{g_53Xmcn!y;$BY*+4Z1 z)nX{2XoiAaz+=B8yJ4jG?(^5pQ%BxaZ)<8MLCko)$D&AK#ta-jYjU{?Bl#yqqdw(* z&BirfQ1F*~cDN3t0Y3rODvx_rkUKe RVhNVJ=CB)C7OZBE;d(u?1qzOruU+yZIfH`@18 z1j+~Uz;W4M5nuf^2w72TLKB<2rHf@l!+O$UC@Y#>OLot8FBqW%X#99|KVE05{57-h zoLIV&3?xmltMn{%;jqTbXD;YmS srt)I|=x$@`yCQ*BWg*GgrJ+BnSk_#C?m zcMACUdxV7^L74#NjN(%O0Lf=5-@h9b0y aL(c$QR-rDZd0qkQ6|HJpR4t zU?fq>zFkZTN5QOCMhl;yvSwyb4i5G2Y$gPUNet0GrpGKbFcijR#Bm1uiRfMY-Ny|! zx;3b?TA1{vJM>Qpx7#7Df6gIa9iZf)Hh$AjjeK|!k$Z}v9#Vu(R7}Jmj6BY1%jpDe z7}(-dw;YqVFnF7!StQT=zAgOjT~}GTKpe9g)cH+_w5+>`(SFn&H8Ne^5wgH|D(Fa! zvSwt^!v>h*VDNfKQp3H=;ObM$vSPVQ4F$sh(T=z=n|?^9@$~+SKd&H9@&YugZ@Xqz zwAXXSc#6x=fu}C%%|+r6FE5hQfqJR>kV*0`q)BSd Lm#n43S6CjT*?+rn8O>NAtLgMj2?s$90=@JeB*1CbiYSz2I(l;zs^ zP$ ly1Lbx)$$VGsf;$tRnH?lN?S9=KD4~pl;oHlaYMm+^ zkp5cO%;hh4W !jIH41pTu@YQ%J1W2de+D z-p4K(`}5&BS6{yt(`E72;nTQgWlcqy=0)~-I82&Bmm-wa)dIx1~I8_VSKdW3u$$Dr+I>$9rS zel(&p_xtX$7`&-AR4~QTZSh`k)%mqxjCuCJb$D4^WosHipCpdAJN1;@%K+eZEn4H& zW&-LPNb2z~L5a97Lscja1{ADNKsKYyQ)s{t&?K+=2Lh&Tm3}r)jkcph%B4gI9kTOf zplOH}^IfzW?bKJS;s1Hqo^B>(n_$yZZOo6_F?Ja|qcB-@<`&d=mW(I}JqXO^=|sRf z6@OXoIbQ6WI4kZWibu|0NJBB#g4!_IpE5<{6rl6447L-S3R6~w#pB|95kc5{!u-*H zGLYTh *`cKwTL+mafud=k+5=F}W8vAgkUqiM zvUW54@&T8P+16#|MD?=t`##W6(??Q 0YJYrMO*q0YG9v}SgSJG{6txE)Z1vFwMuA~sfj7fvPVaKp zglQ%Li?xADq;EOBDrZS@PqH(7$|1i4nJjH5D$7u~H3k|^L_TjVWr}yTXdefdJ_I@A zbYn;+`;cWghd~&;Lw;g9@^r819Ewrp5%kjMz>m%kHsed)zqn>GJLk}*2S<+H;B3Q$ zuF~td6aS-)sSl3ujdlzKEvN6a1M>P-2K*%B+6u=Y0Hs@T+)(J~E6WXLPg3O^&h79+ z9Hl)d6SRY+!0F9VHZIwC!QI1ieYA_%(fIvsE7VRFh!0O#nje*2t)#{WEpW%u9Ub_D z(ixsvwXzpP;4=)%X}i93iq4^8VIF3#(ea?2!E@UD;!D77c`90`qzox*i;ddqmcw oB+J8skDXHWwA 44cw98!`Y@VH6-rq87 zGVloeY<5ltth$qRzsBww2h9cOd+JK^DvJmZ4R;^N)=g4ba8tdY>>;is=?B)igL=?H zz3BBT$qi}U=}KpfEd)x&sdi|n(dQXTz _>=oTqEy^ z>wDnVH#%r3d`pjz=I@`e_rQE04Y?I1*^5R;ztnM4tIqWYP-@Sy!LCet( MKPD{OXN-#FC&>t`AUWV=;O2iCSITr5}h|xvKH)QSI;FRVQxtYIW1@XX7MO z(&O+%ab3FBw%OjLghIduH{HT0>5Dtj#&uj%FVvZ*pB9`{Fo#yOI3lp{rhV&{6w-dk zlyc+rKb6BRVtj-L7wIGb-w0MHRk~FMsiO9kA~gu(q)~gKLj ?CyI;G0sIf&Br ;bqGhoOzvRVcsmK;3LkmZl zz!E^@VhJ=vDO3Wz$hgX#SXIA(_cWN|a{Az@ImsznUYVW{t6c=y&q(r#{6Hmzf&>5G zuG3%WVB2B9uwDrE52o&+L3|1-t}EP)jNrr k^_q0NBMJX}sAXz5_~8Q&-8ROttYrI+7T=H<2r#NI`} z1pKtRAZ=KPttyA` 6po``{If~A0Hhf!xkAY%7j(I*j<-+FTHWkG2O%!nuEP5f92 zkqULrY;RF0@WzFv^`9p9FP6TIXM7hb>Ok=GJNUUx@C4VW)%uq|fD4z}v(3DW3t{qH z;V1CUQ1sj0sRt;x6aRi5l7mCShSEU<{@mncB8XA4v()jGVaChge=d)23K~f2mQ1ZI zPUNw#TW6h?QxGv=A&aXu8yDk!Rus-~`QTUQ{(-6u+_z>Aa%yYKi`CSD=OTljZJ0~L z#o^q^CmrS dgEyO(kyJ@2`a&vhdUyoRin0$SN6Ibmiacc_)! zmUdzyq8qnQRv^U 1oBm@3P=w%U=RZIboQ=?diHN6p^8HJhS#m?fJ*vLMS;>k%Eb zVt+ciwfQG%@?40Jw(;9xbEbnE02ntnCM(Y$ygyOxUah6;!zC2vq6L&`5es2MKxA*8 zJO#Cu*EZ3)@&;_gNP*_6wMxv=H unI|60E5F#cBQSn&&0_EfYl-~}I3y`qc1f$JNb3|x*1g`8)A!nDB^GWy{ zW_>JqEzg-*t9O`L>zW!14%Md0NvwnATd^>CRvHF@^&NCYShd$MWh=>=QzqrQ79(Ni z&_QNL1e_ju1$1}fEgMI+9gf~V6V2}P=57Bxv!_?Pnq?DQd%iOat!#wNFo~c?3Ex;( zRXqrLIZ85H%V?8Z93W#g Z>vH;7meTE5@E&CexHK}(b4H_Ym`D$rSP8BF;kqQD_d?Rln3NA-5q zZu8f(wz6R&A|C#oL~x=a>#|F7lI@ !p?upYTjZ$27(>b{uecNU z=@YcfenlxY503ggAaR?~$hW}s79=Rsagcaz_r+AUzh5)cF2Q-#>t3M&V#uzfZfCvc z1AoLDo=tExt?_zko<**?YQ4PPl$i4>9Qy0+JtsMA){e-3I4?Cl6TrCw&Bv=qp)r)c z^`FCzKGcX=a_}!eA4$5H#NvZG4kka1C&afVpE9Q>aa}Tx!L9W!Ui*v9C0ger&Ha8o z4SMt3+M!I(nxj)&u641_*J(%snC|vSlpTzZD+I^o%4n_%CnH7LAh4EGW}r8JA6@KF zF-T!H*O4e__$d_v a$y3xG%^LM#$cM>7vt~ybCGLcYAYBXrIYG7x7;z396ym z99KwL-1 LPN&P}j3z7SF1CytC^0wK;S|d2}dT PH0Vev^JZd)g{dSsqNOSe8wDnH+zntmAsmitwqIKpG z7~YO2iX14CI1A34-#$wE%A>@m-Yi2APf@V)h$;8$CfzC&$~NmYTv_cYL%ol 9KGu3{h!rOJB*BQiU)L#kd+p1RuZ7i)DCHkDEGoj_2 zC4>6n9N~Mkpc`t*Q`jJ{c3a&l)LT=JHEk5U=AkEur YB}NGKydpL>&_C-jPgm~}h!FF_z zE7wQqa%*$VuMmAlIpJl$6Y80bM!9D+pAW=rHqo#RmpYtPz{H+YwO}eEI1lB2)RRX2 z#3ggY=uDou@l*bedv$fxz)}~zA$Cblq1|I# 2;?jYMJ=c<}m(azd; z6)f||?mv;=7VFl~RdF{soJYM!n&Hx^M~Vr9xtrl|ayq>8kmx18?iE{TbtOWy1EXF^ z(lLji%XM4tKL^oWVSN(8b! 7WTAO?O((4Kh6EFw|v}Cy~&l=?r7dZo4UdA zd&sIBx4SfTvCyT qg2jjQ9 sPojZF2Iy6a$}xmlf-Wf!*8bf4ZZblN$R8&dRudl$Ojme8 zWCUjM W689IV+DV6y!|aB}#q?3 *a9N$ef_|{RQ z^Ral)V3$Y1 L#a?)=9XruRyJCVU^Oe18iAP%HA%n$|3i#a$YoMUVHfl|M8 zG4a%)AG^FHe;&D*y~=dv%FL|&)kGpD5LV94oJA6BE67{*(n)XHXP0v2XuQzvB?2>p zm=0c?h0lg<%fgT+W;S?=L|n>{x7nv}=~}6+AVJHRraihXo=fk}C>L_AK#iC~8x$e9 z+e|G7#9Pw?5L&IDOCio2OiiiQJ{B5Mx&|_n{3U_`YTY6Y9AO`QGdeZQf<1Gz5OQQp z*|W9Gp0%2~J*~KOJb#3F6Z3Q>HS#^hu)Zc}?P4J7%hdRN!j@RBaJIAmhr=X{pn|ID zMJT+AXQpgE9IVs kUl|1P5p{74fgK_>0i#h7XqfgjdgmeRL*ZNo$KIwB|HU#Yx z@sL@ZG};uLKUsv3L>GpdoT;kV!Dm{STCnC|(Of5E^UH|Q!Q3{rZ4VmJ$t;c!;u!pK zA&CN|imZDP6|Oe%i?iNL_wEq8(OU=(xx^Gyi{}=OGjH^Vix4MF`b9{IsLglKB#cc2 z4ha>aec3~~G;eM(d@WU)!kB=?FUibBiO=za ~6q{ts5a@-EjWyWNiJ&(i>AN3uh87loLQ>)CH<0F xv=lPkF4Ui;-GI>2dnMoR!#;^ z^{1r$gH<8&^&BzMq5v8v9aSQJ*bzCq#5Yu+!mseO E0)I?(@r&-MR2y7U)XAK>)KC*z2JNVuZek)M8cL5N?19mcWc5g(x8`9S3# zJ>5AeVel2Vt+K42WO>E7;2d=8X=?J)ib^i<&v{V{{~ISY1isjxpX&vCL3OcbL%Xfx zNJf`p8jN 2AQ6hJtAkZHte)!T2g`2@hba z3;()c-YX3C-{oYHoj(ZLhSR2Wkt5rp%akOflMFBOXRbBd4R&0(6Yg<<0iVD#iLbF> z!(0C$`=}72g#O@ZGolLTJh*>IOoN$>ts-Pbow6TSYUSAYItpsJ-`=n%w7=!^MWz-d zO{}Ee!U(T|!W!Kjq)95}yKgII3O=yGUy%S6A~;;A1CL)v&ja4mN&PXzAI}cI&_Uzm zcu~@~hcbEtmLx)N2UyA?-nVZ^!Mv90fEFRGCfQRHN`z}7w;oZJY&cO@X_;EMkM{Fl zeqca~Hdr=w!rP#x19wb>Vmz@;nBN17j@02`6-(ekOUo85b%JjU_%gUl^)GI~C538@ zR>X$qt$n(AZFZlauF7ewaTJzOwysIh$psb7i=iCVN8#|#nAb*X5fDI3@OmCo{rAxQ zh2Vm|-~1Kk?Ceim8Zb$_IY<4X-4gMlT8BO!)E;)n^5?TC-H7$_mZ&laBlLfjk=+0x z3yBG*!3mRtoCYUJ=5Qh;L-Pp%tKDSa_?fMxY2SV>6GO^O+qo?%TI}Ce`SX#+{hsQP z9vxtDbBp4%LE8~ylz1#l78Jvqvf!w7Z~{@Yn|@-g%jldu|6zxxNF5XQPwyfrLOHT| z+P3lP2zm%sW{)-^x`u5RkIkd89}ur5R@X&pj*{ h775G!s)i_1bW@- zP~Q<7RaWsVaMSYr`*0(`I?SfmuPPq`n{T3Z7CAKs5EF?Pxed9mnUTzaC9+V)$i=M( z^d4lWMe~`i8UTeC$mh#Z)LGL~mgwv{&i={~lOWMFo|79$PcJV$RZG!{MhyNPHmq2S ze;eou#Z!s@j#oC|DVh@d5m5yFN0LX^_C_eabMqA%=7RF4$PDe1^>zAlYsy6#M9U=V zK}Fa#0W-OWQO($*N#*J;&??Bbr~7qD<}M?4=<}3Sqp8lRx&Ts>NH1BG_v4(uvY$Zj zVc$8uNB^P?lN|Cvsk;~=j=#H)IL&c38c)Tms^ZBuiR_ICt7kio(k5j>hBHi+^Ua|y z@M)xCrP~u+14=1CoK#nYWcx-1abzv>^ zSSN1_n-%-BA6_(fpy9(!Thv__R987vYG79}b*XEsr%UDuogJcipOiEhXvlp(7pFjF zgWcri@jT39wf_>-W#!85PHxJ5pOUym(CC&VH`*RW{3%! {spwZQB=9DYPAo}8O7QyV2Wfi((M{nvM7 z60YIC2#wtf4N0~^8Mu5@AyI`)XR!`GvL9swl@d+&p9d&C1NRV@bz-PTmC2=S)ZiZQ z*Jp2~Wdp}-^kydGR7Yck4!2rEy#ntX ~#*yvl>{*L%BjRNdWd45^VWo?cjPkvVm_%kEr|oKCCcxt@_j*5{(X zxq$tG5z29L=qnHEQ-^^IaKc_{1_j$lLcz1+nyj2K0Q=nBQ<*D-J(~i}+%ftOJMdB# z!NG6-=-JpJ3~i2undv3bD4Lz(Xb?KZ-|Rn!58naEy$;uWVQh}LRIaFyvDjm+Y_y1r z4T_y}t22L$zRwMvXkTuZDQ+XJZ1|SbKb<{&t`WR*YZd(>;C+n|;`oN}+3w{SQgWcB z1tP^NX{&? ReqRxn zaG|cG8(wSRSA<=}&|Xx>Q$%M4SFXZnMH(YWe9QHXWyr^4E~<%!_el7)AW!0~5P{;R z>`;v2V@A3}Lv;y}FB^&)S&G$vskYwgU-|ZK846;u-Z(U|)RE2@nIQ_Rn4rnabPRxDOl zqkm@HKG|>$MN7UX&WH^4(!Nywsc*eqByB~Rx|$?x*$&zv&(zuXI(>1PbjW^YK=v*$ zxj#hT>!|FnICl3m?^e_3jsno65kxoC*ZS)K(X5@j$xyWa;i~C&6KrWsX#wTW^y8nk zRnQV=UnPufvhN5RfJ~!2Euuvva8Xx52H7}Or6v3`wGX=VMD+O64m|jI_a*L2)2m3t zm+MM@3}D+#UnucGh-x>}=4ZAIp!SxY}^hv;wwf9@&U|fwmud(Syy>i` W3eTiiDvpKD -_MN6}rs5c?d8ll%nK>wbu#XVKDZ_%Jn#!|0OxR@R<-MI+&Dr(s7k8@K6~ z2gA655_) 9kcFoq8uTF%u6kNIzr&47aV_+H{eQq z=Uh@$qvboHHkzz)Zu3k(Ib%eHPK` 9QYjo)R`iMjuN zsL=&ALxOKi%CGCtAH_Orlx_5SL3Y9q!}*{3eM6zOHe6>?m{7EBw^`hQ153I1e$Erq zZ5=n4JzUf%{?!BOs_YF2a%c4{^ygTdQ6!#LZpOt|j9w3nt1BbJk%HH|`WI{8QMA?7 z%`4qs`cM?(&%PJ&t}WrW--+*Zj3CSK(oAUVnlzB y1zE2uo8M! zvyTPuFW|xFzk_?j>dzIZ rR3Dex$bKi0N~ zxYWI1#pYVCPH%`w<2AH9EV*Zw+gsW~CAC)$`}{23x_!hO#;?gmsOj_MtJ`Xx$c*G^ zWo|U+1{LLAAul0wpPCUgg;AF7hEdk)61iU2%#WKT)2|>)S-x@D3%0!sf+pZAl4TjV zYa-&utf$6}3fzul@KqJ)I1BwA4xY~@4lVd&2u(3B{>uEOvi`Zo5K1saBj0MMH_#Jf z4Pccxg1m?3E23w`RFm}ftwxxqJ`-5e5jlUlENR4zQEl&+Y9*+Y*xdH{=G$P8PmL5U z=_e&B?1PlB^$_kwgPhtQ#0z_2+E$kasVA?veCAKtw$1m*ReFq`JltPcj@KES>CGe> zHu|`IBoPa-6S!63{q|0kKT{~DO=m8ovA9>6IJzpaFqV`_x+2^*wR-ZdZsRyJ6Z?rs z2$AQL{cu4ZvxS*p<}+F^dl#{*9+G!zo+4FFhP6>ppgk-b4D=ZtPsQ@pxW13eQQ+2G zg!AJ^=nj_mL>1IhV|NDWsz(bt_ZARjFI>SU=xOr1`9c0}2)x2E>>oPG2)Wz8nf^7{ zp4ArKu(poksp%JTr5q6!EKNh~HQ3$09;rl)Lq4pW#mq+^3iT;r&~m1Z#k;%uWZPoJ znj?Tqcff7B271$)W^BxFx+d|>t ?zkDJ*uD%75wLW8r?u-u54>thK(|3rNMrnM;U9lErlFXfpv$9) zbUmQ_CJ N*uBDF0-I2SUYKj6ufnEuRzGjDO3 zL=-sW%vSgrTlhLRaiGDgJf`SZ#;CWb_`;N!aaTx|{Al7iCng=_b9{U)=t$}8D;mYR z@hc9o=>-K9M-&kSz(YKVbwg02Zh@UKJ$7<=OOC|wH@4 9yg8r_y@zZ=*D t!Mq `ybz1khy9rDF>2G`!9$tmNeY+f^0;H;z8=>YIe=l?_-qvp#c~7juzN{ zl|_lTYPG_*kvdBLQz4L_P3cOo7hG &Fz zh=Ah_{NzX~XcZ}gw)X+!IpgV-%VU4_y&(@>k)Rdb%)8XoCGf<)bVDpsuc}k{EnLP* zd~yC`CGt4OTDP}I-S9%yk$Bv6j78}KKBcT#zvI(v3EG!SBdYk?A8Mz}SaAPoi^*TH z5T~u6m8w7XvkpNGu82O(^e0AaFH2EqhJC<>w9!6mX!wO|=LwpwFAvUzAgsq@O$^}B zkbp0jU8(yMy22XD-M;dn&w6~9xwQ+-m_%4dM*%^es$hLQTP91fn+M)nl#pk);4Nc0 zx+Vwn?9S%uHbNv$F%1=kO~+HGLM`yzY7z|9D|TI+mz2}daHWb$FoQ-bmqC%%yea4v zEZ7Qw<4enUb9yc@vX8`N+Rfc`)#gqVc~{k6!lF^#gVG1Kb{&##Dw6ti5*7JK?a-^n%!^KS8jVyWdUM zkA1aS g;hFo7;|w6;4JG13J3CBP|>Rqi^f_L1PCek91E`t&>d>L`mHt$rig zZQL{9tLHb?h_+uPb`$G4aL)q#Z`a|*J49 5)J z_x)LjQa8GfXnh6Q?w)(P7hXroR}PLn(kfz7dA8x7`ARGvxNRxrA$)lQSpT3C=*21@ z;f`|{;_g0AK!<* z$pJl1xwD95;|Q|2QvQy@mdo9D7gnS{WvVBh z`Q5*3Wk3N!5j-gjM@^5-2*-7ZVVLU8*3+a6N0fzVXjqIaD)ta#EhD-yFTsPz$$$&z zCniAu{*vGBOW;_VQ&$*D^9Damf8i$>W}6+lm&%R=bYofO3{WCTwK^pmbmjy$=ngx< z1o^(`fwR;s`^oY{Yc%`DSlw(7j;|Ie&OP9^Q-W{>qz#Hm{c^tv47yD)2SWkpKvK^O zO|k~_2s0at=`%8Nads3FA-s%1zKJ!hunzt8iJ0}Si$5{=_rxfbsGbDm2IPRmVJivs z4{m{-pUI7LS0s;>Cdp!t2gr%i+f{XLQt2BsdQaKaO>bo)#G=J4p6MhQS!@?1&RGHc zAuV?{O_!g(ZK4l}Y$Z$7KnyyGsN|7GMYMc3JCkMTdiJTp*YdwNbm%-vFMp&q9)0HV z))WL0 e_jtL_`ssobuoIFdx$z&n@j~bivkw?Y%ifbGG#IYw4JuH`~ zSJ%w0%=pUsVlPI-=3I4l0%APt+fntn;`=08>de|W5;}&*hb{O=D%NaS;TWR*J*XEU z*9^UKNE60858tiL^wG?`^BLTr9_mA*Pfwp7Xdc?zgD!ZN;QhTAj!V5p?pAkTIuLan z72w-%tnN1$)=dp_iQXZW)w0D1j4-(tPb_3xLl|nZnO Rk(r@p6vrHGyY}wr4 z|B8QL7}G>f3^KgQgdfOU(E{@cN(7dX2sw*M%TSkkhBqDdSMM7kSsiO@^XzG^W)&!l zJO76piQwGv`N={YEM@zh&VuR@WSvhOE~VdfbmMhc4DeEN3j9@L&%GQb(KW5?ulN7T z04fE%Bpg*+$f}u-7A(cvWcdHEr5<>2eF+7yZX9)Qa@#96pC8w3^rxcUgUAeMt57e3 z+;}^lRkG|ejn&?7g#@j;VG92SCZiI9Z%9m(Xk|KCYN%lyYPhI4`aK4yZ@3P_2~tnt z?0GI$NM9HfIw0Y>wNHC;o`ZNWM?$gz{M8_NwG171mek+kmNb9KVa_Jn#~P(+&w4nj zDO(0tZMjeaiD5l>&dIzbn1c9UnD&v?p#UYq<*D)Mycr1_?e5os`n3MF&m&Z<^FKKs zLU2gTf6uc$>-7WZ2BHq^zqg&Fxhs+I{|_ts>!1y0OeMni*i6U%I&mw%Y2mARnC1h6 zU9h!}$Fs*Cr||ydm1gg~7(>E7Hlu}~0!Z}zh~4^!j$txGczoRZWaiftn?ppz&9jFQ z)lP#JzH!GrMFvV*X qzjtxF==e|7Kdq?ojm_=qL=ONKSO z7o&)Cs*ER34QohYQYwGz6Hrm92Rkfea_8C4gzi5k_W}C*qa5xUUz+!(EPeN+V*bOi z2B^5Gc?YBPe?IF3{RXdcnMRz873Z!3x{s2 H!sP+ zFS*$v=t6cg)^WQYIuO?;=HmfmXc5?dr1}5aZd1tMn~kP@zV6Z9$9%z~Z`DC889LS# z4#;zm-{+aZy$Y-iuBxMhM2-Ki4;D#T@}u;ge>pTx&M#`;-wj7fTy!ye`If~f{BKm` zMt8=sda}45E_%F2kW<0NrrsZSv{Fe0{CA6DGJ{XSNPQ;^&9D1;TvM;L`kD#<^#raK z9Fk|=f}*|yQVb=-Cy %BcA}s*;YX8_^PN zI}~t-@?M4$2>-R%&Pm~%oM^qds6&s&mIJfSG0$h_tMJr$s-w&6w&~a1|9+DcY8DPN zbE>RV;Pz{zHp;fh!kTKz+)p3RT?rSpFzJ7Xnh;zg#Wxm-s#=~W-P4li=st`}x^wrk z9eX&w9eOd@f9C^m5h4G-`on+l6)EuGBxUmj7p^dhn0*mrbyM;gL006yru5+ZgR^`7 z{1{>ctDaCWfJqe4Eu4Kcl8Ty=qsU(^^637WL+*}U(9xDH(R>y-Lf)S-Rz}c^d~x%? zzJh|gdEUPnP8?@2Uup0SiqW+X9Eq~+U+n&1M@dr{xC1!RUieRik6jt8fhmB+q+2!Q z8`%z+o{T?6b@{#A24@sC3$MKjZ2#2=GE}GopZ_KX+nCl-FXxnP$A=P>pIo@;* _211gnH^boSU0VV<7gc zfxLF5@@4-t;_Tq0+%xeyjM((>D+19##jgOVCo1$KM8ml?0p~|CyQh*kJi9>sAG*6g zH#3R<8cL2m>R`)M2A|itxkv16>jfi@WQ>JwlXaGzM= 1>?($| z_hmsWBhC2MDB!nYS=VqUIL@*`TGW3nL8usRckWQGva*d(G{(hODM~e!rmo!5eK7V^ zXxPB2&u-HAwNf3Q#q9wh!~_MDK=H3q6(sad7RQyRuBrR15O_V|VG7-Uj*Z)L;XZ_g z?guJg27vV5^3Bszr{ n)3X=jP>>OR3A( 1 GEbKC zL}LLet*{jGNoM~TDhxXKf;7+9ZhG_C%HY (P0{3zBu9q`XP?NuWjYHZZi39JwBj6A{6vIEEC66NRRu2S26Q#&hb z!3vE3y&w6=;+zz!N~xcyxB|^t<^^<+fbNnS6`Fy>8?Ve4R$SJ550Qx38vhxfhX`pA zQ12tK+ BUBPfjnHW~=Y!`1zaI3ZUy(ltMoSgk5Hrq?({}mjC9^iIo zXI2`6U0SFt8}a%4rAE>h)hB;V0-<^^!avWP9EbG9RjqJ|{2Q73gyCQQ(aTqAO%-aG zGB?lc6v4PSNE-)+4}XrP|GcthN=gg<*8pEpQidKCk7-L|)>tm(jNz~veP%8^i(43j z%?I|7tp#urt>CQ{@f2$$KWszX8zZ9Z!~YtyMIN_yxqP>d;ylD6w*%UrtKo8asXqFf ziPDYHO6)l^-qdRpZ=$lun~H5(dth4o6v6)hFsjiYk4~deI69naakgD4Y(2ydQCLNG zw*mg5uK(xGm{1UBk@Q-t=xiUZjR}{pMr$Xcrh)A7WMs2W;tyZVm{=R|jlMrWHY}!5 z!=h#kZTYVbMcboKVj HAC@<-!}~(j;A6 zT(>)OLfn49^#9Sa5c&?GKLn3(a#q6X@)y>b(G@xPTDOvLtu$b#nC)qc&F>oIkfSfB z_1CRL v$_3hKtK&pqg%nT^>br2>#O-I=aw&7u^l%>#8-qKcQy?h&) zQtp2JI<3$<7Jrxhtm(Kvtlyu-^?mvXZ+!8PWe7G)zvW%;YP{D=Yi+dAXE#7@V-ge| zA0m`{bK_mLE@t%}Uq`seS3desH%1VF;bfpsLK{fK*4cE6O8;ywG882jzH)}%c;wS2 zmz3Fq3C i*&QB zDAda7=GrCCl?2Dkb+YBVu*^bi*NUEs3ZEjv`TH8jg g_*uJSCtXlJ~*f4!Z!h#*9S;)0v%j{X8Q zlz1LMx^8tn(evPc_@Tz&$3fQ*_3(=r9cmVsgMQS+aB;epuJg7C{XG)vw&!q_y$mNi z9Kev|8Ska+l7KbQ^-p(O4TRsU>RU3ZkpY$g8?Z6P_)@R5!v>)RCis4--xHJlyu)IJ z_VN&(sFv+zr^Rp$*iYLpL(}(HEYE4kYsw}u;W)S2KkYD;ucCw@5lz{7Vx!*`cO~M6 zZluHX+`%HPS&)yt9-kb)ay|0^Hvf_nR7>?&@a{;&I+HN#e kYHkVej(~~Q>e6yx`^_nw7Na6mFQj{o9ttGoR`jZ@SN-0 zDd;&rfomz!YsHvtO}|Zc>)+#>7V`sV{6Qip@G l={n>E=2%UO}xli9fv z`i(o9J@C9Nc>7O|^?>2UT5Fdne&?pIaiGZ6UbOYT*^I*8Wec;C8O@Qydp}fMb%>r3 z)P}9>wd&P}gE6mDNVFApR^g!gn)7upWmd_c+F(u%lky=+V<<8m`@A~4ViQ5zO#XU+ zH_N~qOb@a{4~DUToexa!pP{6kLxf`BbK1*he=zebRV&9=^SQDH5rP@KN ylE`;Y=uz&nrL3Kpm*ZlO#$`xJso{RFR?D7H7u|YZDH6FLpzMg#6 z)jQ2->UCb70vfWAV0QNd$_RR^$CmBuv-`=Kd4a7j8k^x>B>R{qm)anSZgIiJ2dia< zEs0;rBysp7EmTFOJDfrG#=>8}?q&BoauIicwcr^MiB?#A2R%bf-YsX?ZZwkkFet*P zlJGj&^8<^MlRg})YYUnXxu>aYTU}D*mmNnM3^o^6r((e_;z#~ ?wE$BpGLVMoWpE5uYm z#+IbF{T8M>Ux(Yl6k#feIh*^=JyM;>gpLCBV7<``awf%|1VBV*7A)Y^Q-EP&^P^tD ze6InP7aqnfPZKj&51ZsBvPsV50CDFoj8`ok8NZNQ RWIIKf$myX+s60V+tVcE?(V0;p(p(#WCI=cBc4ivo%W&H z?=btgV0N