From 33c0a5af5596776b2a8b0d47face73224dde00f1 Mon Sep 17 00:00:00 2001
From: Suchintan
-
@@ -50,18 +48,21 @@ Want to see examples of Skyvern in action? Jump to [#real-world-examples-of-skyv
# How it works
Skyvern was inspired by the Task-Driven autonomous agent design popularized by [BabyAGI](https://github.com/yoheinakajima/babyagi) and [AutoGPT](https://github.com/Significant-Gravitas/AutoGPT) -- with one major bonus: we give Skyvern the ability to interact with websites using browser automation libraries like [Playwright](https://playwright.dev/).
+Skyvern uses a swarm of agents to comprehend a website, and plan and executeits actions:
+1. **Interactable Element Agent**: This agent is responsible for parsing the HTML of a website and extracting the interactable elements.
+2. **Navigation Agent**: This agent is responsible for planning the navigation to complete a task. Examples include clicking buttons, inserting text, selecting options, etc.
+3. **Data Extraction Agent**: This agent is responsible for extracting data from a website. It's capable of reading the tables and text on the page, and extract the output in a user-defined structured format
+4. **Password Agent**: This agent is responsible for filling out password forms on a website. It's capable of reading the username and password from a password manager, and filling out the form while preserving the privacy of the user-defined secrets.
+5. **2FA Agent**: This agent is responsible for filling out 2FA forms on a website. It's capable of intercepting website requests for 2FAs, and either requesting user-defined APIs for 2FA codes or waiting for users to feed 2FA codes into it, and then completing the login process.
+6. **Dynamic Auto-complete Agent**: This agent is responsible for filling out dynamic auto-complete forms on a website. It's capable of reading the options presented to it, and selecting the appropriate option based on the user's input, adjusting its inputs based on the feedback from inside the form. Popular examples include: Address forms, university dropdowns, and more.
+
-
-
-
-
-
+
+
+
+
+
kf`EQ(S{Pp}j&>^Zx7imRRDW2~tDX&YEs zx6ojAGqYW`ic$}DJ~p?O#`+#YIVx1L^$Jp3IAUJrLLz9s|B~W#$?@Hi?Awl~jZ2hJ z0O|_V3PTMx@fP+&$H=eH%3}xtTSe1WLs26%h)}Dgs`Eg(<*a)kndQoGw&rsAobp0U ze9WWsVlm)_KT|xdYPo!*K~CZB^=6i}>GCVT@^a0lHD|}tjWKye5LW@U?M$ULR_fj7 z%;d(C$HDS+^_@Et*`q7f!1lWy9+&YFbcIh%RB5-ztls-Ut=C`uhr#^jqiJ=lx#M0E zZLkiQW*re5^!?*BH;WzcnQFiM)vNw3b*yT=-n!21$1auQ&vA5)4(8{5c1z_eJ^(y1 zR}2o>IT3bHFflUV(aHcQTFvu(mtjDp^7)BU`eoov6m@EgYh ZKc`{@DwxmD7fUqJu%ZT;zyVM zGt{GdNeG`vne}Z2P*?^ha@V`rdcFW`sw`g8JJanID?K}`O7WuyJ%S0M5(d1FeVYM- z!tXn)sX0?y``?~rH?5Rn;#N!t@+MLmAc#1vA g|9a;AxJo{jwit3~4gDg%uI zcHGTNhMX9*~Z2~V@%`c}4G%s#q|X%exV5muO|=rwH*+d9nn$X>@Y ztX@&I+>3$tOI}m#qtno9Kx8A_jPIqg;Q+K1WN(>ChrBoLTz4ca8fs$`o|lsz+U$i) zKn9VAZ_1{S&)TKQt6~lK+&aS78D$)a&m`Un2fDXBQ}kIY7^}jdXF9VWmhyPRX#2NH zWYNN%l6bb)*;DKc>UI8sppyvv+NG+NMBW|frlIMk@g7A6q4jwiucnX`z$y7vek=d8 z6-=jTRZnp~r$4^=X?{y(Bob77pb)0w6=mfx^IfOZ5g6Nj9^@NiB+`0d$eO0N$Y{k# zaYB37PT=!e>1?ek1w<>$RM>>m9OC1 qUweNjnV%tw)ua)tn8Ccpy!Iso zg#biu+#h@aI>T9L{4HByqGrg{{%Xzd5mZWhYCmaU-=moVn&uJxmXm2D9Jv#T6e&FQ zv#0oc;7mnXaDzWqT?c=j{rSAdHzHSf7Ge!{V!p+Uor{wVrmWYHp3jj;qL;5wwLASo zSNlx z!SUBl?&gT03%X$+ebdZ#iFk}Nyze*p_Ihq2b cL=hgW{BvjW@G@$ZPon83sU1>#! zyEN0W=LxfbkN2||5dH0ayfNTLRbo;QT5G-ax*{tVGHA|nT+dL920iA!IQ?>K*bZ7! zYVszRgx$pGpZyvj<+CmyNjhjyWghlExKmIV)k?cxR_vyVB6;4)E1jITInPys7@`wG zep30t80Z-e-s0I!zU#1#0=!a5Lks;s#C>H{T-&m4BS8`%xVr}r?hZi$!JS~i9fCUv z?jGD-gF7TRBsg?%cXx-k*n3CLdFS5q{=G4JFjlW-t?5-?)vWsF$Mzak9h%FNc-Z|G znNqAJb)7f7_a;|+`CYy>XT!!HH)4)9(pOL%2EV-^y!pXp-dT8E-U*)oTX5+F&+u)8 z)c6|yP`FibtSD44=xnzthA&oqJ>?FoOl!AwoWqLd9Lnms@q)OB=T}Lx(zpfN{X8!n zgD}*(0JfRHs&_}sRmGUs4RYKCU2I{3IGXW*DK;`xT-MwfT 4nrXLVM_p;mRbzDLc(-%N&c!p)!s =_7kns-F1{4+Zfv vXCoxehrq9bpi6sjO))nDWAJS5BAag@kLp=4w=XPpZ;RC7#1@ zHigiJE-v`1BL_U`hGb#s!Dne>8V!?Uq$I WLB6^OQ`MX)Z{0T4O3s}H z;e7F3?j{Xq*83hVAzh&MV@6mDYBux=wIohKJ51q-!o+F!V(S~rn+b;=)gL?MO$tNg zhYk!1Jw`(=T`OFT7ilwePL}hA&JS~{blJrh4K};k^9&EJt)50Q*Vs!3eA)V2s rVi>0?0NGs+<2<)&KGshSSJ>goA z!`gasHMVYV3CR~Xh{QqlmoE1E_SX^np2GH2xZ`gwiVtY%1Jr8nCB|_;`_~H}2!ruM zE$**+a_zEkeQ=F6V==J&qXx^HdA0XjHXI{%I+xph;D8K6wsn140cwzr%NEx_Tx2;b zVeN~n%-3BVPo^^6&mKxJKfI96SpC2@C_$A>`&1`;7{zMxgfV$>y6E=km9<1bhn2y% zAWZtCKCJYX6+H(}CP5_1u>Sj-rGRvegda^#&&_X2>lW&2_wcZTtW >p($+5oRh(Ng|@;KB8x_M@p;X!_f$;LJuy6sPT3xv#S zN_KpQ8})X>YtnUuKp+xlT7hmo6ro@;5psEGze8KC(^2US$l+v=&0sm94dK8ZNU*y_#3nBF|%+9IzxErtY| z<(O*8=reVX((FWxIB34Bh-0r1e%Bi6!U~HsPV*e!y}tD@w2FEolmhKEPB05g_Nn2c zx&{*{wr-Kjcfp;^Bw+!FHAoR~jLmgEDCg&&_t-G}a!tF0Uj2L#8tMnffB^V_x+)&- zSS+=}tw(de?crsFNDNUbwQ-tlaL>ze#cH8$8A93C`)(dWJ<=Mqp!1gs;IHn#6J*+v zKV@o}{J;XS_oUvwwY_pC;2jr#LS?9{_BiJNw lSEF<4J|*oU(V}Pv^NW|^t~Ir24XBpH0@1V90!rKLxB3elw$Zb$ z0}kBy;woN;^IB`xd(P=c8LXXw8nJy0vhMyJ5dyK O&68rhif%VgHQ zuH$QgT%GSpY}LL)W%zeOVZP@HX?zQ0rg;6vq3_P)Us3WcdGt;baoj(3S*ck@ITxAG z9}_6kDA@tUmgpYPV`<-(qq1-{cl@~MN%LyBz3k8*aQ?vd!p2J;%u%!zvbAMOv7KCJ zyV3kPq3>y~MW=6RWH`Z0VV6Iq>4LS|DTb-8f1q|=(Uao2@b?d3 90UXLuvo`Ejh)pDweA8Vy6C4XFq5ZDR+X S|rPrVteCFN8_P1kA7s80b@KZjie=Br;#qzV!sAVb+G@n z=R@a1f9K8qFbs;$L5S|ahYgF9Zv7Qa^{u5jpN)2KNod?c>F9o2g$f9I?+QpLK>zmC zcLaOLQ9~o?ER+o4_RtLv$%a<}@OJ;}tO>V(#4Z&$>%%dNe{l9eX@@&^yP&aqW*&ZZ zBc_&p`%2?7`!V rj^VO$eMe}@$Vo|bC4N1xwwRI)EfP# zZphr?I%e4ZA3gcJWcjK4nthw8;T}Xst(W>y4sc|m>8{5p<_m5H^E^b(_`>stJ%k0i ztCb!f8J4GB(cegI)UOPUOYz-sh0=5tyuYljrF~e!T+4|Ws)b#vCH3~ps tF@7d$^y7Lxk9W znsi=M=GYbs-P6lF Ns+0rhIl>|>Q z4Tc_!;Xl9{eav9^G_uJQc)0?JU0_ayC?HLnxEF~`WI8po2w+I%ESajFpicJKZIg@U z1w0eHJwvh7=8gFPGI?^^=hcWI33M?Gb1=_lX|G~v%bJBS>C|>@aSeOWW$R&BVECa0 zwfU}pj6rIU^^ko*-WSdCK+v;IME{*O6f4zEz1M Ix^Jw~^{cI{C*|MH?d+r81k;S-7 zM~p^mNOyd{{R>qb_S7EVbwfrw2kfex*Ba`ALCoT^0ryL>vaMhnBvTYXn;A?4}ER zni *lWrpU8Bf!E*{Iu}G2+so4BBi-aTS6byel|!t3Lnjtg!d)2P^RYMPIr(P5 z?)L#%OF?79+uJOw<(AQg0l_nO^ft6zJ; K0qYlIE|N{5gm+~x1wnpi1fO7@r8uVn%~pzR6^{f@}Rg&cRLC1H?u zi!rMtMx?si;@o1dPO##!k8ry6H*@r`o%bdZRoLa;54zq{m {V{AGT{c(NoJJ>5!C(o87{0qDTBl6dzaXk3NA1M zke0?kZc(oG%%m$O!gdU!n3Xyh>fwaX?R^}jnZJ^cf-vK)U67r8O+$&vnk(T!S?zYC zUXB N7sbQ)*BE=5qC0o`GNHGO`D> zcxaPSt8<;RcJU^yo^6nSnw@_$KdntUWY jVF!#7d!hFJFP#21?PG>{7Un-OU$TN3z|pTCgi@lVKjN`P_&spMU)$pp)1~N>I16 zUOE 5G=3T;5--ad)I_{5^dHo#Az1kTAVDM%%os)o<5e?fNJ-q?6g{ z&-6;X4j%#7qZLq+2wA6q{uBHHVf>H51wiU;^mwD$2m_GEDD_Vqo{tSm;B(claWCcy z6$z_n#eS4OYaJx=_-4-sx^c1kI}BRXAB5R+Z`Ri{>DwlExxls*ufWpdiaW&5(KOBk z#GC#${^VZ5@6I=9n@!5bl;S-EZ$A^nkym;8&$Ry-0x||c3r^MtSHN~HCjr4O)&iY> zcbShJsdv{RY~hn(sI#aCz;y&I4)yb~M|~)`MqY6= W%B*_Xk$`OED!Ab5XD< z^}QrO4RnPpILJ&At8&<>Eogg-$#e`&Bhs>n;0@aTo_~TRF&Fy&G3Btv9Nf3uHLzL( z-WWN11KP#@E3JxD4AlPs0re)*b|WHwsUtu#WL+lLYK}EX^_jV`kx}1)`9mZIZEFmW z81V*>i8Kmb`ux8e3}ht<>fTN3 BTGk{L~)$sw5< z>e^p$_^KfK9XC1h1hm|O{DBC`qrzbs;$%aYd>JMs3OdWmdWHp2w&@hP_J^zd_Xtu8 z5oZgLZMluxR+>%ePqjI{2|8JG$ H)EY&IhifQ;(5Zf92}%}Viw`0$}XtQQ;ht-1WO zr{X#2ZWsH{T=;EY+A34U#+ljKDX0rM|IDKM4TAsTFUay2T)+2-PEID%zD9^lDWU7* zt`MN<_m6rYa6OGurfrQ5+Y#YWAOe5V$Sq>E8j%8Wq)7u}6=H-T Qd69>T$d&!g?uZ%E2BQ&NZJQP z>u=Nr>P_L*JJTXW{fhnMS}cChG*A$iw?ii5YSRuog>es$dD~e7!6*ez0y>AeN~Icc z;@-&erM-Q;xv>vu`^|4Ao+-1CvR)H4f7JtJJj)2yLQ{AAJ$S#lqI|sJSS_c-aoNoo zYPNHV{p=K#QhGzz(YbQ4Ud*-FH@!XNh~ m;&c7hxljwRp(_>{ z-R~cc2DTUH?qloUu^EUz=um%vIgNR_kw)>Dc@-MkNFjU-tQPMlUP~trU0849#H3pl ztb=}Zlm|<+Fp7R%f((T5?pN1wQT}rh|J!vq95xw<6oZf*j#J9phn5MVbRGQAiJ2G} z@?3Pc=oSYw4e&mBmE33^A0HFMQ7|y5EE9C;{!IP+-Pm90LlCG1vCy&Ist?aa1WWK~ zrb}a0`$LXpGSoK8>)c^!0 1p7_MaEdBYC|9Fj$43~h!pMe8%adANk?$7uyH5P>QL4ACH7z&g}1hAICYN+^= z{SRaGt83uALGKUNwjtpROSFqMKw^f-|7i{W`4%5Rcz~cL9=F *(yWl|I&R0 zHqaSwo_B6|Q8Ru!!UeT5M}&n<>_B$*6f65p{J&8RDTN#^GwRSUK1&ez5nlbV6NJ1a z%p&k#$|d$0g|{j2+;Vr0|8M<54$$k-tXdjm{x4GDu}?DI1GF!(g8|0>?f--ynfQd~ z*)fy;OVLtP0As`drz!@91Qm0WL`K(Hj=eUUD4=X|Ja|T4|LPNe3wPg_4=&MhaVxgG zk*Rt;r!ir8bpSt;9`Tn_rl25ryKlp-$32a0r3OA$IY7RREP>`gx6BM=n7*I+RMzKr z Td} za* K}+SW;xQZUO9u|Lk49#)Q%qI6tIhp@Qr2rMT<`wDidw(e#>5uK3U2<%`_J zD=4qE7!TbG`nrAGTBs|2XSngmclP*RS-CUQJAWAkHD~I`MU_vnvE(?+1^EC!Lbe0l zaF{EOLyq 1(sZ>I4FDG-wVTd0dLZXE=c=+-vCt)qj2tuMOKf@w=2R1~ zj#4E6UM2ke>8={D+cokeq-2%+yv3_4&6+~lT)(1#v+dlzaDt{(@wk2Mna9AnU8j*+ zM1ooAx_sD^WBj#8ip7pM_$6uT8 Fu*qlUJ43z4OVmV zDK4(?Ws*|dB8JHU3AAx99n%EIlCo<|AOf<;EF{(53?NSIEZ$M7>#}XVMCu=4eB=~+ zWo!GOSz}Q&&o>pm>;qATb}%se0hXXgMsdNt#%w}vA@NE03cE#Q<_;Z=t?9*AaKn0$ zEP8<(8Wz?Lr_~JmcM6sPE}%)po98d6IKZ}PK+mH$iyWVv5cHG+RF*&r`08+`2=ETe zQ8^FXo_bfKnQE)N8^WNV!8G;Q8uc;%=$Mrh#nL1;=%Kf1A;#Y9;M`Gy96FeL;#T;u&sDjqfui)y0umFE ojv_emNs_Z&IHn(`+ysNlXC2y?2w{ 8%3>Z7yYe2=`B^s_QXJ8x z(>VEd%STYkUI0g>Vrr+1@&Z}Cz|LgTmU%AxsZeqq=Ye^RvZbx1a)Q&I;~025XMx9g zgA3y{A!F#v&0NrCYy5V8sYB+guN+TWH^@p~ZI``g{=BWdRaDNFlVG8G$CK|$J_qI& zI;+vzj53=nq2z0FvdMjAHl5SD$TK0MQ!Jf7dENBgLubdkxOKA6>PBNb8D#n7J*}+R zPLzcQJ=M`nojJ+G1joug-=IU=u$xdoZ0UPR*|m==Fea&qcX$+$tixXXQd (OD8i&cwwnyZ5>gP72!j<>N*6DeaW;RPK#}>Q+wFqIlHLT~)*@6=Y z%!2%trH+Nd45+QsudfNMR 97rdqPCA9vih#{+kz*LsHD%lkw_XQ` &$j(#iv*GYKCiVeGkp0$mUKi);3Y0J#UD{1v6}g4RitoL9np1 MD6$?>D(Z8_&69mD<3yxIW>niHG|5lhbg2W^w zKK)*>&DgPz8cJ9al+CE9s3?+1{x6hffeL`a6Wt2a`}_|i$Y4eTXi!SNCG?m-mf=%C z JGkurl$BaZQvAf=*QQZx~Ij1F3d6`n}P3P16h@({R4xLc_B)KlAI1RR^J)+`*^q+9t@^N$E0Goe??N% zJ(wY3`pp3cm*%Zrz; z6Qv+xXyrQP{%ISr0`y^NT;wP67s^EvHA!r_4jT;7g_C;IjkX`&?Jp1&>f4|!21Xf) z|H5aOKHLsw>NB%{V@qlxNOkq8=+sn2{zMj4R5&P~Ynfz8jh5?5!w%P}Ru@HVJKgA? zjl%aiy++J=8 (Db1W)tU2OS-gJ3Kihg}ecvpP5&~;<9<9 zYRbtG?d$79 Dhg$xY JtVWp#yt~h (Ev%Sk_xxwS^7rHOZXS3|l*mQH8zNDHc!V-X>_~(~5u{`-f=EClIxr z2l1dbrOg8mG`kZe3i%c)Lmg1R_45A3&kn{v#{q;`0C%;gN23Wv)mX1w&Z(;H99;i& zp@BJvJXFBOhpU4fu1r9=VpHCGfZtkq7U05`9_u~>2)4&F z Q(;8d*^XjEcN(a+FU6Nt_r|uxDv%(;dNjog!2~ ycyF+MInG^nw3Lg z9Bj5mS(MSdna~(@zNaCfK>!dtw@h5XanH# Jrsp)W&P z$YTS@d@pK>>i5hM?e6DPYFrVg+VXE(p|l{3$p2Ykha#W@*5;X8$%XmUaor1Oulzg0 z9`C6~$+#hsc}Lmz2Zfp(yAL-*9MgI14x1ItjpIRd3DnJA09kEnN)k=Y7|Xk{YX|-l zt=dyXm*c`MX8Xwy{-FeiLocT}8nRbu40}AM^t9ANkKSu<+DE}%W>nwU9~vb=+zHKn zzD?V9ci4je&4FK 61Uwzorg=*2gKEUbe?4RyfYM~63 z(j*1#D@sS&^g*2r@f7ZKh!u8$?tiqhPp~L4iF|_--{x$brC6hQeB56~;$km}w-fHX z 2DG>?=aAu-bEk^IPM55 zg*JvT^)F@=9nUM7e7pE0_zL?CE7SSrplZt*jXas;7j5Ndd?)Sk^c?@#uo X9qJeycNJtFJ z%(9lB4&DS9NKI?r0UH64Bv3gHJMqUI&jmF1y^V$vcQ|I)0_Gq{+BMeh^MyXRdUhN` z16vjE(Y%-2ydLK5_8wetK;ti|da`e5)Vcpz1dkfn$AnlAOK`*nOAY4dT^}iF-JROK z=+&A}iu(G#7OD(h>{ios084*ena6N@>tyYPxSmj^Lm+ vwozbC}N?qA7Z-O(~2+BvWYfAco_L?T}Td3bBxc=r^K{G+q~gqB1{MiL*iJ$!a= z+kTaJayxc>6ky#;v~wT363$0M?!t`n*p-wOr^Rc&0@k*!vpoD4|KcNQPX?gNylDNK zpEyy@6s|p;y_0(Sn O+ZQ1PQ;z6a? zTiS%Tu0E{R^Ga3?XAA(_qMMYoY&tC+FL}xnIZ8^HzhTSozdmGXg0C&~yEDnsAR&H@ zr)aETDtC?VVENmXyh`f}24ELr!C1rf<#$!1-kewY{bVtD!BZDFKYG4Y4dGbhAi1Z+ zuZ}Afrlyf3PnMrJOmBR?K4W=zvR*pbF!qLsK~>u}D23--VXDDCU*Ud%*7$bio#}jK zG5Qa!do`4Lp~u#ekVnSF(N9frk-UzQj1pXhdr!nEs>1LVy8$5)?H>&CF;TF7-ZBLO zc^$83^;gIB2Y|#6IRF}}{#myLZj>*GO~*u23|jS~O)%F+R~wUo_k9rpGHYJY2k=$@ zPDJd}{~B=n_PaZ|SpJ%}@-n&r>DXvX53=cGNl;FHeqVoFadk*W0R!u^S3d{lmq%Dm z4-W7`>setu`?V$)W7~mDbMz+K^ajQuI8OL_q^A?yAVb6JjdVO{ub&9+_ZR?>mBQzT zAX>3XO|VjFG_HwFgw5lz4*=eYF!0$QFV)o4H-KWui=$fxoJIzFJX3<|=HQ~G$Fm&F z;?N6KN`oIycmR}MbV|x9aF?C0G#&sh>Nh@Cot>Q$EuqzdAKX4lzm|yPt}%DTfA*e= zjZGb3=J~56K;y=Z$G&?kDQBYa1w8!z?%T7Sh81)GUzu*-*GB;Ws!%;UDY-yFd!mD; z@I~43WTCbQDjJ$rSC@T&>zdN?vVN|Wt0kZzFW;Sgn=DcXumr%c`NYdAM}^5Uxp9(H z)lxHbrxx*|y0)>-Dn|;qS=8}DsM^xme>QNY7SU3aU_zxHrP`8hw$_q{aJdO37Hm1Q z9*?&FY@W}m)6&Bx1}pZ`@ycw<4*rx;q2J5xs$S-CB%;W@t%>VA=ugLHCFFGm)|`^J zBeH;#9S%!38_VMeU+WBLr?b|#sz@Pw(4Wm=zSg1Tuk@hjaPYDHX{eE+dJiHrvgAV& zXt!G%Q|CW>`gB#$D1OX+JobEAp~4}5b)E1%ejVUqn`&`ON5{nE4u009k?rqbxKo=7 zICz-&5srkK%rD;d*k+FVlX^bfzwWUeoA3?fQBLFHY5+VfCUUA9L2j#}8F`ko^=TGU zjUAG#1ne(g2;n^6?j6*2!|&+|;EA2NIVZ5e#}W^?gRLYV=<+o@i$xXS;Zc3u7TTD} zvGtg0?&8XaHl#MqIG+1#P`ARH*
~WRB`2;*p#phqAu9uIt8%ztfk81at@HY~(V)Nug_vfpIY_+h}kO;WRVU<$tXdK4O z1}69Rr)&L-EN7~W+t4{JW`-rL$EiCUX5uraSG1e7sx2pq%$`&w*V5CM<~4HMP|N_B zS3q0f;OYu#hW*U9gJmbrQd+@3`nsQ~(LVpA7SZ1hTl&1wWJWio@7uTd61t6$ms!ou zPW6^Ehh?4ii=xZQux+i40yEmxmW9FcInW^w(_L;0p5Zf(%h4tW#d~C0Sx4G|ACIj! z(sCxnt1h$L?|zA4qQ{;_%%fE8%yO~0-0vVNm1pj(26wW&_?kYkQD8Uc+olbN)yD&r z4UbXs32?v799Rl5t6W*+f_9D$NxSWB<9_zq8qa|_o8@S`vd%!?-QS^xz?v-Rg~nx< z0AGLcg*4{2+l Cyjo^nbX?g3V?+-{w8kkH}g;5f1X*xQK&jXaZ`(A@3Lu>QjZ@$f~J6+OU z1aYA)Y%~mctfwTheBH7vg!UJcb2WQvsLe1VIo+V>7Q@8fY+a_r3e`R`mDqd-NlkM9 zu|b`b0N9~{8>fL(*UtzH&a6{mgN$pig70+L6XM}0X|kG$@c#h%>t6&QmCt63&Jnz? z1JLOKMk~-?pMoLiA3xd-o31+byq#CuYOSr3!@x*Ps<2yvKxDzceKOclyrDAKwGqdk z{QNCr6z&kt(}0ZsAV7?@y!ti@<*~4T`3UY&3}?F;Z_l?pYdODeYNRPF$}f&IdtKtS z=51DjAN;E>AP8wVCG_r|=;q94ki?*W{m8k&R~$V|853qMcxu0Mq)7Kzmyh!NJkFw7 z7*F*PDkENpSn2t%TJ578K1ax6;B!m96%+0GG!dCec0j86+1uT8d4EZgY@d+!By49m zC?!SvUF9I3RmNfO=BSbspON)}pcWGJuh)=6;NjtIgUhi1){)#*$!sziT#lUkJGYpK zh`N!H{;3oJYjz5N>n2+qsXP|J!^7j9b~1;xf}UrSQ)&MAD%yCB^sB^L>-4lrhJko@ z`Ai1X$DR?iByA^q0GBRE@O>m}$EO0}JxuAfA5ZTbOyuRMDPeJf=)S@l{xd+pFi}f- zBko%56OK14 E)s3s;Q%m zjdl{dr4}#OxezdCGA7ZmnGPMRQb1i{53U_B6Gq6n7Yye1Ve%ZmTUD?IJ($8Rc?)iF z5;(^2zrqlpkIO#mdE@f2*~7iF!TI{U>do5ckqa4QBuFQ2&s8S+n|)f5fuuSsk<#hf z{POj?go27;o7?xd@EQ%bu$8s7dB!?k0r>a?h#S5A!T$5MR9)<5bmIFI(sR2dueX1c zQaQ9_a;$A^j6HwWme*+y50jegKP#S?m|(hBw1Ci40rAg_t4VIJS?DS%+bAyQl^*cC z^pj2FRh|%=2)-Q~W7%9&ozJSZ)BqQcl-EEq&;Sp~89@JlZ)X8jCxV)->1qZphuUma zx+kif@mN4~;(-Ximr;g3WUJ?W^~u5a)4_ou_ 30cCSr znN(>MjMhYUj<%V6JasW%g2a6Hx3upJ45S+x8uUfm&_3&Vc1#NdzB<54h+QSuIPG%3 zcAeK+jud=}ST57E;Q%_{pA~ x(t{Zy^rVp($%zKS&0*b{d-v{VEtQ>o_E(*LqzGUEbb>{Kl zcEarHs-a_P=?|g^5y&T)0V9J;>qW)HhJzO{$EL;}dXG20d20G2Fw0(?93SNH+p9Gn zvTzf$sn))c9?O%V)u^!x!Y-*$taVw@X^VraVO^aRs>;~SK{en@orX3C3NMec6Fi9Tus;Pg$ft;S z*m_u(+kKJf`VPFtD#i(+mXeaP8S>^qgllT*ba-WGxK*2Hb9;ie`tan6bvf-by4NkX zHmBEM4mYoXcPi+%N8E$xWtCt|P6!q?E3d+CS?*zhiPRhE?2w=hYGUfZl1?~rELGL* z;RYT{jfZ>$*wbRB`v^B1+?I!H>Gx;-81#7VzCWcq9Ara-3n{{2( *OxL zYA&;zsu*#*sbza-ZEY+8&b5bKZbPYio;j#}gBRWu`~_rT;)G>>V=`K%ZLa^pSwW%F zvG=e~+>-qsZ(vitZlssTUq0Pa#AG0TuRA}suIc?A@eVpFswh1C2I5t{Tm6XD()jQs z&G9iQE{hRs7@-Fbo8^38WUWC!?dtBXs5zL9%Gx?gA~3{+_L=>=jleiK%>qdv%`os` zx+WyMX+MqnIfvzRBraQM?qZNZuS|2B$ya%l#Ft jZ1Z zFOqY2pylz4U&y41Pkn{A+21ua4cs_`^3*z|5A)D{I>qyef$$rNH=);(vg>+HUFRss zuiEWq!5`%oZ}L`FC{yor)1GmxT{B?h&4Sk}cw^ZRdEcJRm$sn<&+!k^DHu5dfO9+~ zUOgwsY3i1V?l~m-r#9nOka0YuqbaqmC;JxDz%DSW+C%-W`AdVLyw_}mOKr9*Pfc$H z9JUb I5Wi{*eV|O6$&Ik1M1B8`>*9)9&`q3)OoI-J5ZQ 7&O;#R<( z(x<-Uus8nn{u@{Ieff9hK9T41)+w>w5lyewJ(j+TaoZeL^l|Mz>Qe8QK4&{2X=Lse zbJt-t a>j70IxSMQj$m=HvQwAk-fqy2Tw2M4LEO@58o|tF z`W%l~&$veTF #nHO>8{jkdPELj&KRYgz!zNa%wu|??$t59R|0VXNP_a2ppb2;?Kk)ML zZSF8W(1wjrD59M0PRWF;7=Q3gu!5qdpirhvzS-JX=BW2J@;aoPW35Q%?KXc_Z87!Q zYJpuJq4aHwxE165{VQ&_bNstj*F+Km>(?%uo~D}%fJLGg%S&`HVO)Xmd1Y-)l4EW> z0+WGebj4no jjRmW?e~MMh569!fF1=1|xRx-NEdW(^W-A+;bO$ z sL0L%&KxOZ#W-3>&9a#1S8HB zXo6)mFpp2>-NgHc%3E7oCoPzKya|v&K2PDX1MZeO4e1fI^u!&gA&fxdnIV2fzr=?Y zS!B|CpIcvHvrc$jvb@wA*Z>r;P{eA;k6ZlZ9??!}&+nJkcC)?&1}kmxhzZ3w4>bmt z&_AVN!6y)-KaZY%6x4mZCd}}64xMK!1|@ugA9M7knl6Yw9O>`~SkEWetrG@x+d4UA zpYN@#nw$X#-T}WzH<_NOG`@eKJrkF{CuTw{1K=OY?r$4Ig^HAcPMKMsQ-Sj*hNG4G zsPLB9R@zkB@9$u@mb=Iscrv_*_9|{~kBj{%Z<;% &`O zstA`%T}Glv-mm_6!Dq%?8WMu$;^s2E#RAr!OH2-ms0%pl*Lh8Ie41R`vnA|%*A<~g zX&5Nbf=Ylvlh;L|kT!VPf{$0OX8}#XZKq%zMQZgK>MDe2<5F?s{f?_k 4~EfP6Wt6}lMg^VH#D%6ujm*sH!9were< zrsB|4=lxr;mZH^z1NyHLT5$_}E&WS+LZs{OiWXC{RpS8onUUQiJ0MTs8tc+Xm*BR0 zY5LfR;$jw;VCPulLCWpPGmIhjqj(9)zUy?$OcIFL_;{fNma6v&cz9^yR4Zs7N#qWy zz9(g6f8FdIah@}@GwuNQe2`6@e6Tpd9Aeiz(rU4JDdyDR{-D#ELXmFm8n;#@qoqnH zma7U#{~VEkH`~fFpGBac+*i*=ig&lR#KTFo2Ch1@WFrah+Ce%;7X5J-v4niGwCR>X zeVqgnEm{3RE7QkLi `eHrWY z;`?~e7b@p?$N*+$4lQ{roP#>)c)I+T7va%Jk;=vQtREkih6PMb6A&EQVIFmn33M>t zL(Qj$Zga@n^BvOVyJ@o98P#f|r)?3P&)fzlo*HFhmGca7vdlop<&>O%puO(x|5{YE zUF6yyS0guqDy#KAleCb#r%!mWf13@|KT1kJp{lP;=2wZR^I11Dzo77APsTg>% OS9;*p!-r}T8sW~0qX zJN;}v2lNj&oy!fmK{44eyx+3dEiHl}nX&P%!W`V)U%&cloTC#jZqM#mu2s{`S%}~M z6-vl)_lKojbET7380HGw;0(B~pp5EGynsYd1Kr!pL?xNm&4SHHfS?HoOeL-|Y9*P` zOR;vDVVQT<;RaPR3GO23Cf<$YuN5xg!+EzmNM+EiwE1T{@<0Tenf4u&Od)~d cV36j^d(ye8RhzF(BuYRMij6cPI3&*aF z9ZaqWRj?BW8+o&&3{M4ijyLV@6;a}%9yGWx`DW0KxNRDM5LW%uw);exl4QW0`{1lu zo|B_-Y(eXx6vO4f>8bFrX-BUU2h?F8HUCo4Y$%vDEior>yBYgSIZe^o+OZPXQ3=AD zaq_3F^%aBiX{}A4zhI{lDn!~`sne+dmbN{xbXeHgl#J2LfGD6=A*EuSqoJg2^VF(> z^4!UdrP|_e)eM6r+~*C}92P(LIzuk(;L?|mZw}12YL`9~Cc=p+YUyW@b>Z^W+O4if zW%s;z`FWEdu>;~r$Mw1fI65X=zqX~VToUt$A7zL{`u>p0B`Z5-jDxgcSm99 z?skC2B_(Y2p!u#6I3A}@wOoVd;?2`+HfdLJe+2l>%&f`Vs~FzAyE?NjR2&VpnT??} zf%4cUr|{OWMyDMM&aS}^E3cdsjJk1L?;EHPdWy{q=91PZ)gJ&40M2}Zhyvhb64He2 z8yS)R=3Vh}_2gWW5l8&Ne$&)`ZS28=B!=OWz$^a`t2GcmhMzz@s^l>5hHfu 3~pr|t&%xXQG )n^L~AtAAmUtEFKGP2V^4ihL)_RqjHlWJ1VykJ6dTK zQ3AZYu?)H01C4p)1o`tVjnZ+F&v`Y{ig-C5s;u9+xqO)q33_ERkf;3q{8Zp{arMam z{Fs|){prw0-46mopL7#nu6WohM mQK *9 zfnbE94WXs`?e83Tjl)d>-g zXSC}@OC0C>FiMMIFXw9(z*Z-HHDa#k>r67YH{&$$uA6Ln%B8|?jcD}8P!$58+$c0P zHK&`L1ZsAMlNpSS%+wPu$0x0pyNKsR=^jS!Z*POYB4J?S`IY-U*_QYyq4A4W1C- zIK%_|!2m=<9j~e%a(OE8OYLoV_}qbD`NhcOl9? agSS8EiOzkRu zAZ=vZF5_VE@<2g83e|3CU!9m#X5h^dblC|$Z85(bBS$`LI+adRfHVUaP<1^jxcc^J(+qbeB&oLF5 zt~7M>J3Bo)%l!07V!GBcLEYS5RNOx%J^eXw+L>y1Yk7sY)a!QHkL%x)C3?E1s?2tJ z{QUgn3e erNn FdT;NM=5nsgr%p`&_);xZ=tWR{83PCI|LyPmYjQXw2&VJ% zZ3X1&;Nl+6-`KBa_4`Bp_**D2k$_;m;gSBbf_~cMf7WkY1rp!U VqbL=WK?OXylv~*r|AWMVr~=%rZQ23+M)|M)avRpq!>j2WfQCK)rw9JI zUl0MbsUSiX!}1Tm?$2j@T!k`#^E@EKeo8k7$oM- !8j8Hm8z57*=g2S z;eoe-X7xDKtxAw8N@|gBUTh34U&r^u!ajN#|NH=sHDHl_gM0Dot{Dl0rkk7H(P2)A z@v^zzo?LD}@#5mH@VroFY>G`IbEOF3zpqD|ITR)yXgM_#;wP|Iv=C;qOu@W-v$5}I zy4fgrc DJ+(NRmzEzHN6qIvly(kv}CI7r+^j9T=~%|-U63;1Sc=d=rh>T79G z(KlZKV4S819YE6j{Ap5+r5dc{RIgy?8da93CO@}KJ55e>B_?r%O=wfnUf#GVD!mJg zX4v`M8f@dCt%Xi=SZVQ-3n1On7wu$})?NGZx*%}-POh1b@Gd 7rMEYfN1>DuaQ5+R2{x!~sd`nvqvc?=eXWXc!F?v-MRs^#m+X-ozYQ$|m_ z8%2oWvY#jPgq}T3=(-Sbto4*F8A!2H<~+J1=PH~FQTIh#7;>d}FoVz@{5D!lIf`Wq z7*Hdnv|MZOvc7R|m)O_WR|`FiyY4#Aly3%^sqQY&>LL!PTKQf5xYpLRl^+J5%HF1e zX^(km_q{x2w=j$bQtJ0z*Mcb))V~C^3Al>g4ASt;Jbk)mFT6EHxxYepgwKfVvWd~k zKy#tL)V45X5qD5hKqUYkZ>{o+CEL%ZU9OWZKfLQ)P|r2Svu`Xpwpcl^Xr)uN_PFv? zu=U1Z?2!*eYD=PO{qXc#@P^;rv~+vlL|7#YV@SH<-H^}p49z$Kv>B{V^DOPLlggTh z=s5}cwT4!_osM)f)@s3d%}0iZTH2Nf;HuNGHm5vJHQR%}=0bC=HQt?L@`4`~oltV) zO%FJn5zXwUqdiWLn3^~1+X8#7?cqU5zgse(CP1!=aW+1YPkstr?<;8cP6R6HuDPBF zyN`ODjIX|LnV4P;mlHzrlS0c$>HDfZ7X+A6UCja&1T*$gb*Y+yJDT=uvDwO#p`|#~ zft@f(U?;3NSw^_@AE}Xn4r#0H7PwGblbf<6a&5eCj NSz1O$1N*3u|K%fh0pAWGcTrBF@#_b ogazf z^DMO`V{D$cd71$V<#;z>XTDRV#lf3yMIZ#{v;fd{pJdt@i3L43pnUt&EkkdHEpjB( z5TTJF3vh|E;eM)zUtJ1Z_%w=T^j`9LKknyXv^kSR@jIKtXiLe&^$36cS}2lGR&9Ex z(U=k?o9cF&v%71dakn!BlX}dqQDgp!er0;JE`5lRQN1Q*XTFKiP)jOXd!`Pje`m5d z!UCL5tBM^yaUK?~-4s)Uji5h^)Z)Mp<~Pq9`BnhJzW(Imv+)An)?#bR`|VZuJ3qC8 zB_d?%wv!vjy$oR2$Z%Z+=Rz+raRnM~lN?aNvbqvT|Ju!ecdlF;{QJGB5EukPVVte4 z)1F|R+|18nT6o)|D=@B}-7}|N5wCN1OX$$xfb>1qlQ1y#$+2O~ii6?C 7;3b*-wW9+`8Nl~uUY+*ZtJ zoyl^5h0uz-lSM)G6iTP7wT@1(=~(2=(Gnk`+&Bsbj=*A_MgCT9NC0CG7H4)to{iPq z!a`(730BSNlF$cbndDF_CrA63Z8mnciI(NYJw3f_TeL1qixu+lCJzsjx ab&Lj*CMD z>TsEF!Z3m0p?9yZ{VU0}#bj2@Pov#^het7ioAoHUt@Ujo_ij&l&7Vs?ZTR!l$C{I9 zRQm_hB@TCOUasE;EoO@t(zra6kw#ME9Zd+z1%CeAosf^-Z{vA*$6$DLbZn@azbO*_ z4TA}8s#=JG-RlY(2YvN*eC1DcJl)e>Jl?YB_opbBh#yatp0&+Zr<5J<$EYcq=ZyO6lEO5L#HZHT z6(T$y9s$I>Fz8u@)=Jgfphy{k(+@%_6`FZzi_grlEWe_9^Dg~y!1PJD$oR>$qT#@? z776UJs_tF)Z>#lwMZ8JdmjPuk&X_~ZWzlZ_0x{VBG}*;uwo=!vx6%`QykuCRhf#{7 zd3RmG0}5@Ivp@9{tJYu*-WmQSJD400(V(z|hj=vyd5aZpie+oLIOraVqkS}_JA+)n z#s9iPj?Qy~H7WG{lSc*R^Sy+4i%V3x*EUn9`iImP(lB=#R|o*c{}levR}Eu4B5Pw( zsQk{*&~V~y1P{NV?d%Dkly4a5t2Nd~XDk*=>BruW_2IbeWX7*!Z=1(1XrG%-eFF;} z8*h37B~Lu@ba-qdn)w#4v58vT0g3mNT$Wp4R&)Tfg28v8m0z0)lF#;kYy*EA|5+N} z#DMpPn-MtdisXJe-m2m$Aa$Jsw#~29<>idP2<{EUQFOui_Tr_Awm$s~bwRm|Tol11 zjaz*3m&*tP9U0sm#eia2N1 *~753JiJ@tqjR1Q{3B7(wG0->7k zx^gDk281PW%TD&UEu#aRslP?7EA%c?7;~QO8Lu!iH(l(399t{0MM%R6WQ>|g-#1#! z8QI!7 8{e4AfAi|I;jjBJWtL` ztxB{v554IWcKjH-#wRy3!zl(6@s 7P#l50XDe%BOO)3sxQh66*UQU5lz;( zEg)`y&z!JbuS<9uo3Y^S+s?=MkjAootzKpJnvJ7T7RvTCzFTW@lH1iXOeNim|Kx&s zwZ!6)W!G!`VvHN|%a<<7Q057~_SIqZ43AiOKmCf?Fv#4_uai=q7Z~$KPA)$-H>+fJ z`qY@zaUV@bJWWz@7x870Um`M?1G4|>-ef8xK|{mFUjs>(k?eaWq@0+tGRwWi*Oyy` z>zcYmAR$(Gm-f}K1f0P?mRR@D^aSXz7FvH rL&*u7=8sM}L!o(!hvrF&gMn@3FEU@H;Nvgyxk~O%LKmMa z!6x3W3!;znB10sz&eU2xV`DpBg~xuO|D)+d_qPXs9cujY%_N2M>a|w96cl~2r%;9s zSxM~je7?<|i{y*?a+a%jY2PsOS!8 zitjSmZY9o3kw?=Aos@^3Z1PKG#O0BGFa!~^GKONm=Aofm6iEr|yk#7{`V5u!BhelY zv!It5dg>LpA6W6fKc~zd;Oy;nIkOK~Vj>aUlc?tet)MZw` 8ZMO5S4lKRA#yPdc-+v@-k3D-!R<6k{ z_jC}JunEEsTJt=8_9*UhO8g*}P8E7&VKVC%*3#eMf`P4!aw5Xvb#wK}QUUYWwRgU| z+h%C#J)E~bB@Dq1M+H^eb-3k}XgVfnj8S)pik3*f7pm8UMrNQyN9ee^wl-e++f&C! zT}lx+9NLwdLN5}Gpfn!8sE6l($wH-+TKadg40Pn_VM{%SjGCO@D_d#Nr+9Gw$QZ~J z*ibX{oCv!d_9slF@Kt(2reojcptUpyC=zBvKC?M>In=^N1fM!j4tMB|3x=1|q!+L~ za6$$chkgIf5Hjmzb9)t;bIf)GA9yj|p=i740=_zP%-(mXN0G|!;f;dc;>@V~)y>H% zKCyW%7f1fNbkFM(#isOfgTm=EWOoCKm)-E2V|AP5oGvDPHgbMrjJH+COU(tG1}B~- zr4g10g)k6CqhKZoSbXDhvl|ZkMHY)c^S2H+i$uC3YgI;XUceG_EY4pY-L8*5TiL}p zXwKGJCMRPvIFpjo3w}Ty07X$yR47wn$$jP(i?CMP4~uX Z$5Vc~M{%{j zK5%pUDc5^LbyeJdwXW+sm1|oaZFQOd0|gT)Gk39GpTf?064cS@53pl|iX>H3j1Ly- zYoe`eBJpZWR(QqgY;(whp=mJdvsu2v9Vf>mBs6L>CAC;rgkJ vZyBb%r4UC@6(D7Kby$;hLIPtq2!y7sEV(tOf2#`BagBL|$!x z{~P%#5+Mb>Yoj)|(h49)P+k{ITQH$LLNO3h@m2>96$bVS*|69|Ib1pc&K70wRAOZ% zed;G4iWDwOa7*$-t^AHiL`L?ohV$h7t4aT}Sb7SPezC_MAeZ|zRiQ(3uB~`eMTp-P z;ql}#&|kD8J-yQ~jg1=n4uTklliriw@nk7|C4((cI22nVc^%~N$gS7QYbfrZ_+dW8 zpW{0C$oyKiB;?3E=s7Fc#yj>Qk9