diff --git a/experimental/chatproto2/.gitignore b/experimental/chatproto2/.gitignore new file mode 100644 index 0000000..1cac559 --- /dev/null +++ b/experimental/chatproto2/.gitignore @@ -0,0 +1,25 @@ +# Logs +logs +*.log +npm-debug.log* +yarn-debug.log* +yarn-error.log* +pnpm-debug.log* +lerna-debug.log* + +node_modules +dist +dist-ssr +*.local + +# Editor directories and files +.vscode/* +!.vscode/extensions.json +.idea +.DS_Store +*.suo +*.ntvs* +*.njsproj +*.sln +*.sw? +.env \ No newline at end of file diff --git a/experimental/chatproto2/.tangled/images/logged-in.png b/experimental/chatproto2/.tangled/images/logged-in.png new file mode 100644 index 0000000000000000000000000000000000000000..01b9375d79fb0064b9c23791ae013e4892292d51 GIT binary patch literal 90586 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 literal 0 HcmV?d00001 diff --git a/experimental/chatproto2/.tangled/images/loggin-screen.png b/experimental/chatproto2/.tangled/images/loggin-screen.png new file mode 100644 index 0000000000000000000000000000000000000000..9edd1f4dd214eb73d8bfb40ef4eaf63ba3e57551 GIT binary patch literal 42972 zcmeAS@N?(olHy`uVBq!ia0y~yU|zt$z?99w#=yYvZ|=V$28IR(PZ!6Kinup-pHEM| zUirTAALr+^xHGe6nr2_yq}#njW0LQt;uUikLqr=^IURks?p$Y1+2)zXyHBQ_v+Pp3 zc~)kMhu0#N=t;W2Z*9_T*N%_=6#IJJOzY3~Z*HEy_x#O=H?@3x0V|YBpMQU}S%BL? z^g`&5Z=25_WHp!legEkEKNtV&{JZ}DZM|S`l;@qIq)3@Ktb?%x-;Oy7Bbx|xAOnmhZ_g=%fHB~BWwGLd;%d2L3G zjJEM}&B|wsPu=uN-53yZGb$%ZbJ-Ox|4J5HJ7`llC!#I%rhwS z4S$*#Dw}1RyDYSH-@5x zJh~wlCsdm1@Jjsaq%h@A?|ZJ!ej#}EipI;bl1$}wveyi5p35=LIvj0$wO998 z$dNA|XVMIv-ONw#4^9b=PBT8EDgCrCEu}em?+n>%QpcuV6WHlAQ?a?TvGkP5%l$Dv zlG8J5r*~DoPjy@SefFYj#VdnU?>-SSy!n^c@a9rqm1E^GIU(EX4{PM_z7c$@YNJH3 zo{`)32<6$eha0=6DxNn#qF_AX#r>Mji^soc-50Svwe;3BZ`bY5jV?aj8S}>ATITHa z7q-P{@~;=U{q*5B-EhO#N5hhvH@V(ik#ld;$&EK}d2REEmc6|tH)Z#h!xxw4z88x= z(U-R|^rc|*?x4L%(l6h6f6=zCI?-@#b?H|=FXu(O{a?uo*&f^QLiWNhHaD014?14R z%ZUDUUYw+0Xknw)7Nne9KjTGWBD(s#+tdbq5H_otlm%y}Z4&z_mEYDREY;OD^7)P;iEZ_K!q zmb{GFduJL`H}CZ=#V5{~Y|no_X~(Y%jvp`7e(&6zey-!-LC3;_t@WSmJJ;90{V#G| z=ALHXn@RaHt79iF&`AnDedvZyZREw9bro%ml7}B}l9Zbh?^L7Z93?QO-V4iHRzfk9S1qbz892c5CN^)M9dhB^#*LnK|47`gj zi*la-#(bssyuPJV9PGM6dVy@m zg*6Ph%1+ty*8KRQyd|P0OJu&8!)@+Bxp{RBmkQ+;eB{{5_{wDkSAguojSN=>rMLs6 z=T|bWQZnJZVB&PV{07HY<}3XH(hK}r(vB>bUtnc(nBi}mAom4Eb%)B9WsIwoO{^XM za-8J|D6Lr9bzv&|3gLwy?NgYp^jAvlX=MQ4EQ0xPG<48BSs>@OC)@KZ7o zTcG6>+R(Rw;i^wVn#+qB58YPCFEVr3+Ifd#?THU6u1Z&C`I&YHh%M?p@+L&Z%2IUU zWY3mk&L%to(u-{Da$CGM+t_V(HsLwHL&0dXOOo;Vc}raj|9nXNc;~WzC%4|e%m1BY z_O93acAkIpf-{>}E*Ff6$4e_&_id*)lze2^Dkybq z`LV~vT0(P=X|TQ!`}w_di~K?xo7=n>UWjaY3JM&y7gK~6XgM`A_%2(Z(@4#HMWYpYhx0!c3l6Ih_*lH1~SSw(1mpQXOjUjg33lew9%xMh44 zc)IZ<>%^I=LNi=tZ|?VxDLDIS#|?99l|v_D_CB~`=AILHXn{_Xd#bUG+5T4#Z|c}p zR*3bVe{)iu`$9&`rw1{WHLDmxC!as(WA7POlg6Im)}r?DrisJk7dlc49BU>iD1|Gj z+ui24VEc8Ig~fG&<7IkX+27t2z0pg!xqW+QZHoV$e?07K9-n*ok-2(n^V(a>W4!rX zW%7>x<15a;e((H8XUR$LTX!G35q+j{%Ky**F3FxLuh}Y7^x<^ThvUzq`>Z$Uto!z6 z+qd^($G^P~>3eryweOwxTM_pYan~npOZSwyw>d+`OLsEs(*-37m3}feZ1wrx%rgGA zye#W?**P!Xjrk|Hmlqy0oVr50TFj$&<*#Qamu$K|AcZR(HpyuZ$G~=efysI zt!+GqR`s0sQnGeQ@2Tjh63j|6>G8LBdVKkUfz{3)hOa(9BYHkPc+zyCr_&|1ICviS zqsixeS1ZWPHWZoir$nazR9ZzwQDR0>VoH&XR`-L2CqLeJQUOXp1`fuDjHMRXSUmoC zlcVLJq=a&!$2M(khr=)abg^UzOwhh~^T(18d))ptnTOfhot$SOH&4ed*vihcnsL=3 zV{N3%O$S{E5TbT4x5!qHobFM!Fi#L=Yk5@O}7d_g|ejR0yC%F2DONWW6C9g zZZ8%IFX)W*u4||glsfhzPHa(L%d)al0$T;6CO(|`$@z*~hKfgY&jm=%Z8l!_l%w~- z!<#>Ud}*G%TY=}O-@}75<>wy#xFV;`T}|9At;0Qyr~i~vMaHoYH*&=09erdxr^;+* z4IAUBW@Dc7Q;$CXU(aOHalVgT<0QugkA!EIn=Irz{pDs>PP@%aB0}~{?>^~*N?}q&txcFwxE^SB%AA2Rl~b} zmKXb$zWl>c%2cxc;gRJNg%|d8`73MNZDsb7n9n}x#~J<$T_2cBmMTWsIPgnOt6B~r&=6&RNYqp6w&HxG6P^oiI7*qeykXJMHScB1&~duV(CeBpQ8S~gA($8tvI{;NIe6+g zi5D$j;KI71D?oNpUCS#0U*!^ifrYp3U6Gq4yKr~;x$c!&I!=Ejc$u%XWi-1eo5(G? zDHz3@WSq9}p?ikJg0)97RE##WOg!1TaOTox##70ggAaOcd$#Dpm%~%s)s8b8pYC&z zn)A&B6zVC*KHPXxQSz)c-Qwq&zVjX>Y>cNCU*>AwJoksp=KzOwDsIvD{~0Sg&HZtP z_k!4?;;+nGiZ7o}__UH~3VYhTr{|8QM>Fo){+7X1@YLbY-n;>IxBY5_ zo8EbTeL}+|g(o_44Rb%FvSdgsJj-N~F8OX=0hbhafWFgQ22;UTtQjhxblw>tJwK8$ zO2_H%k1c|y4qrZ|-hH7p?2+-th-+4|3vC>p|K-ehCSs!Qu$RM^>B{V;Z88h|S~fA< z&1Aa5d2t%km1E#QSMR@IVprPm>cm zGKChXxpcE+)V26+;`q9J!CTiAoB`@i&r@6UG(K{~aw(M<3N7^ZRW{+dIM>K3_MFO< z&I=VCVJSI6atorIPj+1}a5>DeRnaP5!KJk2l>qNzWA6U*VlGOXY)eyFK>*ZEr;(Zk00JNvE$@FoixkOo||2R|76*c?T7QDog37eCS0!gv$dOD zeXiff*Jg+1lQlZeEo015-XhGHrF7*c-P?S= zqdaahJUw{w<&P3o#a9-aBC@oM9g+o4F?}iUW<0fQfiF`@zQ6*{ma308of^VAHuIPZ z&6_4a|DtBbO83(o-~uGwi0O)3hJE*iKMcIeCPE9g#AY}hO;_Rw5Cui=CZ6lFTW)cb zGH=OfdBw0*a2DH&xlQNV7_A<&WC$(fOzp zdxx!mg;+6x;` z>iURt1<1`@EjYWyJ$0UeMeXfg1HH{3PV{gdp6tFtezA?t<_`zX99q12>xUlpjP8$? zV#m^-Gn@3B*SB>5r)ZBFv+fI5yZwbY&x<{t{Nu8}+;mr+ay`4-To?A{vc1?R%C3;vUyqaHvQk;H#j8b#rE;IDHt+*=~7}xMj_pt3DrVv*R?hDRF4*aW9cSs7J zVluIJQf6EQZfYI=vBjsL>S3nrl!~09x{4x^dFu?Uti=~hZS+ zm-aBy#4b9bYWA_^t0#Ns`!=*a{P~nULzCme8IInT=hMX(O#G0eY}a|~cCPxP%>fPX zIGc-IKYCU~h%G$4#+dOGbCK$g+K9JoFa8HyJ|7}bl=x?B_wi?5OjAA_zZuu?DRsxm zzK&UJpu%%w>W-sICAVBw@Lin4@zrU{@#TCMY8yGv|KnlrF|fJ(;|k-fq>qwE(q432 zY~%=KeC6^YM#t$h)0NH(Dh|Fae*D{H7dW=~38*_w{?WspQSR69>c^R`3p*!0JDQ%> z@J&l({>q33zrdPH?i{M^S`Mc@8>UTWSo&j%+SJ5Wr74es-7_TSMl#N_WYtagaa=5T zin)X}_=1X4XoHntRIbp%mm(&;0ip{gab1W6bwwgO&YgemvSJyN$yC9Gr?s5c+G>g| zvT|Bmo6^5E{d&_1|5GniY@B>MZYiAYyU>-Panz~Aud{tcZ-BYW=j0N_VB4&%izmPM zFs1)sp`%3m>c-peY^=5EDeY#6xOHhLvsEHrh^6qr!h1!*@LA?(cvz({6 zr%TNLD8T!8vg?bax`taHa%`Qr*)vMGtlqf4$Prqo%d#S}ExLT#!)uc`LO-rtnYv>p zx~2l3OIatrHfb}`OsTYhb^N&kgE45or!A5X4eFwJTB#BufVc~g!6;f4Q1wuBfs z9ak1y#e5~U>$Q8v)y@Fn1!_*E9d6SfrMayTUTowfeuBwUX-eyhNn3(Bl|y_TKP!c_ zuGq5Xt?3+rQl%|+kwMF*c(iO1m}|Jnxn!Es74C~FZhINd@&(#ERrYKXT40!{v(D$N z^TLydi$$5Iw5J5x7$jE&m~B?p;yGK^WDKg?pC;bq;Xk+Np=AI0f=@Rae|%Az;{KeA zslmSLw zQVTAE!fcl4!nOK`O$DVm14I{2)YNcY!5JvFAZ%`-Qb?-?{{;i5@6xW1FQ4i;?;0*K z_vc5+?h6$i+qM`lN(;WA;4qnEZsO^Jy`YYsn#1qKjH{L{@NB38_mwXciY>hN<#PXp zH9tZaU$rjpJs-xj57kIX$!dSSqNfJ<}hVErF4ZqAopJPg-Xc5AKm zZThP9*RQG{k7!X_HLEi~-6glh%J7x1lcrPf#Lf(Xg^4|FjHjGUdM+B6ZT?sgvvSXe z9Bqfo|Gz4;Kh;k(QhsdcEiv=v!ODz6B>}cn7?pSLS2rat4Q^YzGC5+ZXu&%OD;!@Q;W<4qF><%u)h*&b!FtdL*$ zlW|vhR+P=(2hNZ7n%@($|NF52==u6j!5^FZ?FHA{d|qR*@%;gLmxgyT{VW**Q(b$c z*B*O*^LD=I`u#ulRJ`6Ae)KZGtwvw4#-|%kZryyH>()?~_3P%XPtkJSt5ti>Pi4t? z_(Ns2=zQOK=WFVEW`1s-z`b~Vtc}Ibmt{-(`|Y18*l@FDl(oEKu$?8m;3LP^=?|AN zRv9F7?OG+c>jd)^w-vqq_AZqf$7Fm`+LxC_WSZLD?hTMzpsRCOR{%V?u_<*&E0c*4 z>sO{N%Uc<)COw?lbu`_?VK2wqPz}4vhBm=lHV%h5Vj~;+(sS9h?u-8rl;XVLwUMFM z-|@3@2z$mMmKQx0um9YBwE2Af3(N1{tUX)Kbyc6cqb^tZ#PH*Z#n)yUe}Bbrw)cXi z_1*19d&}>CoMZoeTE(-K>PI#nW-d zH*iuucyg^8vak1NkUXP;>~|ENs=zOs)Go-7Y<0>!&BsO@%_;p_B=$C#(M zXMEON(Ho%dFqh-5d}P<{pq5Pnch`UTF=tBQOs>VoJ?C4h{!bL0zb@?2=7^ScCJw$W zYK&4khkcp8B)B!K;>eX+Q0vPa;`(Ao-vtwgax2DNS5zGC{@5b;>UeruOByIwM>PBr zjIwbkZD~7rQZ%|PTF1$Is)<8sOIj|!)cmGjg0FlXjg`J^KL6*3&qbAztYwPt>}uU? z{+w8B7uJ zwXBkh_8C}w-qCo{|M;TI{O7YWx_q?6TPAzX|J^;^T|J$-BwDRpQpO}@R}dex)JeY-E8`x!L9;?=?5NBZkN*p}|v z`a(x;o|!{#&AV)$&e`iNwGQ2Qa_GU6P0S`jGj>k;G3DFoc$eKm#`OMO}-|y9U|9RscFTxifH)o!Q%eL&TkBXnCd}P@B_zI`! z{PXtzR#^BY?o5xoQ+t{B5&Qfam3!0cdHe!iuzd9V_9VIS(~FzNkG|xZyE~*2IiIYp~C{+ZUE?$&bYvrx_2O*-qWs~l{;9oYNmTJZH%m*ZMC&3L@=`L4&uULSe< zsodzU+}ye^|BN4NyOdf~Ou`W&;n=MqLt9dbqOn;Y}N-(uQ+spaSbLh+>U#H|*njc;oO*Aa_fY}X z5?n4yTb{9HTo#a>{Lu3bhi|LmEe|J?o(mBjeeRDo?-huhF|%Nc@RF-44qvb9OnPY{ zJ$v##6|2~tjHj55m(*wOt|-X5&HVD~;rMUs3U1~I+8A_mC{JNe>*@2^v_3F!VdbL( ze(!6f7l`D_ou(#>HO#0{QsVRuK)kB_tWkApXsG?vEMH2{l4P$@jp-6=d&~Z`V-uL^7oJ4 zU9!8*iO;W>YFjS6Kz{G`u+cLe_q%B6aRQ^d)(GSNyq!=_n*G~clQ2Y zQ|pu6^S*Z+H*u>aq#_ouFVomsiK{mOOQj~|#{m45!~ zZzpvB_YdZ;zbq@iEciS}e|5m0f9mpG?0)xG`fZn9uzuf%o?rcwtn+ME`du!p>fJg0 z?#!5Di;I^szPe{#f5x#wj59!Zp(Q9E%+^0_yT?YJC1c{!9hoh19XdxtQ!0KflM$J> zPEGLDg@ZGX?#t)AU)@qsa_fiB#{)WALJPSi8NC)Uo>De3V$~H{aL(wCi9=}3Gu9Qx ztWO!U9tC?dUvbHp>AC_`yT3gNny$F~;|r+3*Kx>g;j<9DwUXiK?Z#IexpE8YTBh-s zJ0%AP$S%}!n9H%1F-y6m$$bS^fb_!owcjdDoI)GCia%S~WpY)$uQhW@fAV`x+a#8Z ziyWm+U*>K<-(CG~pSORO6yymmgRve8<4l*Qg&-^RD$ z)6&g)a?@QuTsU)R|GNc$niuGNc)H1zDdc!^*YQ-rU)j5D6ARiNW-^yJvA_7I`mwKO zvdi)Kx?h}<3&PV`GUo5mV|}52eO(s^H$rnskSe`5M_^0&Oe{o4P|KiM}-l3d_EZQ7CJ z@As+ydvv}|@89kEzxi4b-E0{G^OhuioRHJr=dbS2ydy_VXr5=yHlYRUZGLa52zHxc zHJ9aCZ@9duzg@-tu7Ik^e~&Pyhl|YDa+qw-U~MF2`}6`{(6D zYZz)jZw(JwFxRTgB0&n(hs^7YT(_y1!59DiS@ zZuk3M`4MsZKR&Vle%JpuFa2q|{k~4!*VFM8b)UcQ54-;J=lQxvtS@rS=LBqb)v)>h zQ@(!jp-D>mV)M`2ew?vu4$~KR`yczb!mR#Y*t@(m#_HXkpH-FB{}=3M?{u>2J$HNE ze!o2`^OI*WEVuvOf3MoT_36&*@n7#${F$-q&&%U-VdtlR`sn`XO>Fs!=O1n!mk$+u zwdnT3*D>W!7F0yonf;p8f4@F_&yO>cAN|?B|EbM;vpx4JzN(5YQ15?}9_aS*+2e=P zMH@@3v>hr7ic0>5C2v{FkSn%uA_K2dNj_+JxYso!hijE`Ntn!&hmtNYa*|4wzcjSB zFJE@QxMiVa@r@JQ7fibX>{xr*Rv5G93N6Tz%md9*r82&9eW4QFCe0b3@1$+yBq}{$ z&0+G79)HKu3N!8t22Qy(%aRyZDQ~$S;n}clGmkm%g*&M`+;kkQ1s8fY%;LDJn6-R? zl~ZZMvO5fO0~xD+`AE%AKYHlVB))*mv}KBqC!gtxoFuqV&0(&9ud)g61?i{v7na|% zQ@5K~uWk4D;P;fCbDiOFRTuMwwbqxP?!CVH=?*K0=e%A0`EkdYFyo4vHbE)3bQ_2AQx{fu1-F0e+G{K-w!lj5^5JKU zrzC!Qg(WSh_eznUt+Q;RogNY8(1wqPU2)4-cudl>#cxO4l_#_IEF$ChVr z3=+I9Z>Q6z|DMyy*jr%!l1npx@EqE__Qx5H3o3TeoEMJ2vtB&y!M&nKQlc}i%iHQK ze&qb~*{@{DMeaw6jjS>>^A`Tl5m@m3esTLOt00lPRiAcroj2ZoU+G@u=i6!uaTTvP z3!n9Uu;DtlT)x)BMw$8LH|cf4_p4sAe!SIvzPmbaY3g*(hEomJl}{Qh93MVs(eQoR zVWq2Y>{xYHP_(E1|LgsxjWgL^oIY>6)^ET5|AJ+PKfCRJ&$N0!@%Q^urpv$l>%UHa z_38KfotL>U%>Vy|TXe$u{eKp9otbRZQm^j(%|6B87}FHBc_lYx&F2Lzf4~2^p6GOu z9X1a28q8nqQ*P}0`0Dhl5Apvlvc1@OJwDj}_w)HRXINg8+t^_?7ERg=H(+op>*p~UN3!q^|iWKV0Nev zs-MdCziCCc`7O5lzSt+f@4ei|U)uVouHP(vbk91!_nx`!x#)G)dU19CGCv+U{Js6+ zOu_k)jHi^hM1Y3!j){B;Fk+3J%kh+Pmh8g1nq$r;wdWW9FSh16S5ecZ`0Ds`FVM8} z^;fJfCU9L~)^Yf5&6uTRBDCP1(Vat#w;r>u=(-@rWTNlX&8E>GVD9jj<0|7S84QqyulR9YD^$KW6%CBW#>AM<%h0o9JpUd*1 z$D;OEPuGQ?t*TpPzR$b7{AuO#(1u$axhFVsPcY2g%H@(Fwcz)Y-|f}!_66@z`5#yR zJ}A`9wT%(w&X-AX%dNql8CQR}>9!dID6H1UE?&+%thT0*~Xm04h8VJSD~ z8eji!cLjYre!Y<1nHTkzUUZR|l~_<@W3$%4Ecp&Y?XQKKU-^Dx{>0nHcOjmm%P+jF z;nRei)?U9{4@;f@h5x4C|F`?k|ERsBeF`Ft_{lkssP3vINbAF{9Ly}S?SY&?5oJEtFz8o$;*S)#? z-ZH+-OQJ66lYjUucJn=LcX6_5)n~uu{<79O&7TBCHA~{G9IKyw{9wa%p`=oMu7AJr z*9|$ZV0hnGJPH`v2GMski!fZua`s&bwmG9rCRTw_4~vo}so- z&7giM^W<~SKYCvDoc{N1{Qpzk{#JjU-~ZFx<-F^^iAnvpqx~UM=IwkOrfpQ-Dbw*8AVo8yWLH7y13uizBQOYKfZLe8YbY74Y zTNu}%CU{H7A+%Ga;r+}<5054(4$Uk&Uy+5Fy3%n%dCZm*}V`Wa7 zrr3gw97`F_c3w!SzHo=(Y-d0{mzUtImJFeVS3_!}t^|2DEL(QsOV5mH7d?F%)C9d4 zS1E2)1JovZzs?eR-PZkR$YW??}zp>XuecDOC zZ2nG{jIBnCt{n4>Yss>)dn_o`mLaw9ZQF}E;)|wwlpNDl`KEWa%l`LE|D*2j_hvsT zTp1{A|LaX~>$cB6=l^@`o4@$Ap8lB)4}9{@_nwguo9EZib~^cP>Lwe5*(bUD&i%<( zc`I>Xg;ZX}Cx)|0OeG5|3yN&4Eam3RiVO4p!?1V%QHHe}C**|M*!*SqySC=?uYOC$ zRgWjnss9_DRM|D{#itKfKCUdYIl>&`njtaUa4pM=zvXw=GH>zfSLZn$c7&-U@ZY6> zSLgo^x>NTk)2W}h z)H^TVVp;M#S4k!F6AC|E+!oy8o7fJ@EzDCc_%&##WLB!({dV~Ky~TdVr`5ew)9q_5Zi=^{;)cG*@Xl#Mgeb)OXO#d-*5+-_7$rHIw51 zFW(;)d?7eoo>R%>DD#x}H63+rFN+^8nm^roXO7r{@_QAhX4mbCn;iIi;~(Xj_ulEM z_s@Q?=&haRl?-*4lBoafhuX82+m+0km;KACiq9{$*26VHs&;vwY{>b)?(g@?x+H`( zTq@0UcWiN*an8E0HJoAs{3qi^GOKymm$Su%v;%0xrz#RaZT|FyO(&U;E z)-dfd!&bplkBbA{o;WofPv6X;E484mB?}ZQ* zr?1aj%sMZmSgx~YUCOa`BSWlbOV&n?P{u5!kXg!`jU3WbD}6_;R`u^x_e`fs_uwn^xF6T zq57kh>~cDC3$*NF6HCN8&rfC1a9!RTAU9=ghTMEz)))7#Y}yfajO(rBuZPCpS3KSR zWus1(r)sUt>3yk%k4=vs;otw?wlJ(MYvGR+Mz6~{qK=mif4{d@-OJx*n&j+_pD!_# z9)5G@byZgNem<7G&} zPv`G*!{WWY3x1}4k;u619~I_3ai*W+*KN!9hhKIuchF3D`DgzBFY2$h-244DZfmh( z6_0sbb*aF-pNv_cPT`l@OG39__sNB9_dY%2<(}vBt778yE8l%$n&Q;2w>WjjAER4g zQx1jrn%Msf*z@JhWVLM>n%YNi@gDE*5I$)##pwdC5!ZR)_LtT77W2v56feKkIC*B) zsoT0z3%*!+tIvCxt=H=p)%SbCp10yk+kJ(TtZIMrs$a=;x*T1VbFbxVvaRjj=hvhs z|4^CuA*QgwY-W=g_XXR}HwAZ9$GN^(7;C9`YTBbV&?*_ui{F&5^q+qwcxth+wL`eJ z(`F`<&I^@mFNkajXy9AP@O9e5Ym+&AL4#02;Dv2(b1fZwTTVSt$*Wm*i!

Cre&~ zS?`6q!~GW;w=r#bAyRUu^MY5Wd&WPJEm!hdW(l0_4-j22k)!tY+Tur-&)-qqF~7U` z`MKE~OP}tTU;A(8Exj+FkNn(zU+nT_5zumg&I>9o&zG{g9)EHB`T5T3ce}jb+}^Ci z|31X9Dr(oyw%4I8mx^Mdrg?i8@Sof-E3)8yP{S#S&`TVpPE*`h@CAtTUknLrX;ZYC zE4awaDYv6dP^vRfctM|n)92 zHXGS_mUUcXwlQ(u+a^EXO5?k!nr}nh^XBhYKW>k!y~%mu%VvwM-$08$ZEPw*b86O# zj~ZvXyQfRc^Q>9cbmEMmSm*iBTbzM$4Rx=7ia$C3w0NWUKcPIa`5zf{1r|;f=s$I+ zqNXmC>B^Did;y<68T+q3u~=4c@0T-^jjZ}t{qRZteD(SKsn6|0bsXlNlxFqYC9L#o z#nkHeJABz+OkT^b;cI=DVX5jekp<;!xcm#$y7onD@7E+h`*L~vn!0Zy zGffJY+*qWk;w$v>$659DVbd>en;$pjWWeGRi)}?OmxjJL`Mkeup3Cu<*`}AMt;H(%LhB4a))m4FjU4!QF-EDcWy#pYV-A|c z^Q+PFtkH68$jYnO#dxc#rOeDBx22776=*hQb?}9cLXx2&4O)@G0rpO%4QBlTvJ13( zFU;b+;BWu?Oo8&2u=zn(GDR2MdVY#Ow4qJVN;%DQAxG{ChP~1M{_c3VYw|0Lw;dhR zp6>f|sawmz{_nr2gEw_HCREylY zH)9)juBzQ#24DO4#@Y^F%_`~|c0GT|xuVDYR%4)0`j#`3nGV|6sW6ldE zT@^0Jn5Hb7DAFe~|KX*m-f7?5me2RB5sG@}ALwZv=*2u`+LKF_C9&oXoUv|(o|pZ8 z?aO@Sb-Q(y?VV2_d>$E#EqLkI@#4A9d1hBD-M>qZ&#^N%v0V0g#apAf&keL4?%V$l zGx}>IIOqSl*>y)QsZ6Z9_WfRAHT6S<21YxA@tHn?`pgaRvx4D$WC?MWroo8A_ExSTlqc>NtG&323kizF-FG zepXh9abHleo9(uOH^AQMFlb5JZbmCX&^p7T%v;WKn4T_F-^(F8Uq#1ZE=MWzmEM4; zzHBCwRHiS*hNh;v%a+dU;h3AfB%;HOsU%R&{MpGhJQpHAuH!jxTz-FL-{nbnjQtv_ z1b4k~c`-?Tf$*1_u%L+?rixZ)l&1IzOU~0&ckupP4aB-`wG|@)jwMBx9j@>kQ2PKFAT9UubLORGm_D&DO@^^J8NkzqRKd zFnZbjeph~E^?6%eF)fi?E2GU!Q`UXH_4$04|I^v`pB=mzRq~8A!-{k7-zS`cZD~F7 z^XGD2FtFmSyxG{=s$gd=xG<8@>tf}%ZMToc|9zx?MEksrdRgdd$BIeIY zG-vPMZyq(rl&7#i?|L+O2E*Dlku_$#7kYm9%(dAOf0SkK%6)T{lsnI=%U3zneEgaI zY0qTcqsyfih`4TKSUPw6h0HExuJda?XKZC+)p)z&*-mx&@L&t8wckRjPuykuvd60S zz3lc?47J}rx`znNvnXI~l#IC6?V@w0Fy;&kpv7OEPtQ-Q+E+-QKSZt9$?b zv^mqe&l21LzkC9$`nNrNdfxi&U5mYM0xNf$I4=L~IeqIqzcPz2Uy}J}{-}B#y?({# zjOPwp*dwd%T}htE=ykjE(&zvGewsghY?Hfe(pnacO4omV^*?Vezf!nMe^y;k%d+jh z)yGToXD3bB78=*f))>b5uM+3i=&tI zg@=g)|5kwozpW(}s5zb1aq@o4o}uIPJhkQ(M=Iki$%XMw4bv_$^t!&7(H9`PD6!?& z$C;p6{Art&OgJxg2`_x?*HXo3<;fV;&9Y({)0ShP^+%w|RxjhrMs}V?tY4K(485h2 z>cZGxMCb2Qd}m)h-|C!liD%V=ea4S|Ty0NnFbiq1EBRmh=xuTSsULGpXSr&yYRvrN zbfrH~bfIU*HT5=`%oaX(rIL_i>L)uc+!4@qeRO%2x9?U7(0Ygmfj4=&&#_8gU8%;n z>hZ+(G#`OEk{3@tbxq&+`&v+z5wd6)G%Yt?ymFA_iAi++A3z2RQ<>)a%}4!^vqOjl;stzzJ9+9Z1P z(B`iUUmqL)-7$4?d*=HM_r>i0{40Mt`}^{vm6C=c^Zjiq>Q7%juf*u}qDYie{<6`D zAC)2t?*IMJ{6snGi(Ek_Q`KQp_s|y~_deL?@=&pPa#@ixW7V&1(N{8W-81C5z#ra9inH(_Jer5~1fYR&b}SngC(%N4*C`q@zT zq{x@^^`Bb1e7O9%PW$iwE-O2m{j2->3qRNI|I_qqW*VzTz1)er+wZMdR{Ld+hLP0# zx-SnORBmCc+HLv%@8{=ND!0d#=N8o7;uJY*6uYi=#Ur!32QPG=w^>+sYl{IC{9gef}T2_HZNn{ty;tCL6cvZovvSFEE)Y_|}vPEm$=#d{u2D?Z2o?|bEhusdA`oNru@F5pLe+qAbaXKtuDwyST{5KvB;3U-%sC0xo~E$drG;$+?x+UO^{hFRhI+wZ7NfW z5(|zk@y-qY{M2#lmT6^9OHP=#l+UwD^jG&gVeV3_DmQy>r=QconR0E3H+>}L&YfAa zPRGt#dci}HDa+c{QMb_{CG09?E_VTXt&lqR9 zWVk+lcr&b_>Z2yBHVsy(+7|A&f?@gQnHSHMUV6I2L~^OYh3Rj@Z?6w(xKuKg{YBSG z)$L(YM~}Qo@mSPvyD)YAyT0}lU&G~1j|Z#w$py`~^t%4|bl%l_1#^F#IX0iU*RKBa zy4mZ(&%1uGS;uhn@!RY31+HI=D}9>nF>#{nWw%)xZ6B99Pbm{RdS3a<&IRT%#W&{Y zDfON(G0S{4Q*UeOMYDP4r*1!czC7Ol#lDw@AAWai^e#AAr15F5IcUQT8_35CK`UA8 zU81`$I2$?fzg^;d>4d@C$saR!e!QvUQd#lq&j%f`g>|4!5v>^#a|}fms;cr_@Mt;r zk|S5wVKPUq(1PD{8LomB{&ipAG-K^OviuQfqePIzLL0lw47x%KGaFuU^tPy9->A8w z_d-It%S6z^uB{xrkBx;EsyPJfx~$*~2-m&IIZ=K=Nu1Pz=jY}c2VWFz$%?6+y%!=nu4y%gnYgsi0ZmRZU+E9z3eb02thj0=hpA##^Az?B z6PL|19;6sXx~S+mf2u9KI%|3tYlgstwT}dEt}@W;z9e{Sb#G>3&NjJuQ9EMO3z@yt z7hhh=Jf%HVFtMTyJV}%ovaPEc^zh}QkCOct z3~U|?W~~54RTbAPw-*=F7+?81-evFw&1a->fw#RVII#QFh;dygeB_eR%{WVZp^Z(r z%z~w1%qIJc7iBa|YioYcQ>c7}|3V;WO_XoTN6F3$o1_=mIOTSP&Eb&sXJw2Mo!k}I zH+z*;mXTBN*IlNr%S^!2BF{w3owokGnYnSnnT}S=T*IWyI=44IE1&L|)fJ%bQrR-8 z^HPKA{Ccj7o~oclh1UKKgiLXrjxu<<}oDzH-;-Kb7{&HZkJa#fvW=J-nfr z7$GL;_B=fG)5(uJbd;p#yE2<}o)vH<{hL}PSF8K~$5c`7MaHS}-U9PjnWos) zsdo5<3(SuE@%g~K?O~?1zB=sdruI+Y7QS?@;KvVLmg`y?!$tT{OntQdzE4`iGdB(X z3wJFUwOAQXf%ZSVNR(UX>U4!gv;X`Wj#R~6o8MXHT+vZ?`TIdfZee0UTi?kSPjXsr z3D{2KP`<*JA+T^J<13dH!VA=#ZgX7t>({Ufv?;?S12o{$&6eT$I;CY7qm};SO%*Nc zawOOB1*}|h*w{2s!RfDN#zzia$yD8r0NF)P#gwnGtS~X0S;TBIQF38aY$210;aa6F zdXIy%1=O8N8?2->&7GF+%#@s?DYmfKuVt0M*SAqBi4A?Hzdvnhf3d_!WBy~8xRx*t zr`(QL45g}qQk;RZ3qSoWn%dLa#E|-G@kEBJ&t@-TNPT{Fi-OK#x6qVhOD?|5Qg)~` zSSP}NyzJ(KGfB!@{5c;R^~=v&>#D);zdLqW-%$gF+r~L9g)`NA&Q*Z6Wx7jDe!F0S z4}Y{EOU6mAMVs$3_&(bFn9(Ycd5Y7fryQXVZ#p%oee~>m8~4hgX40Mu2^CLRN(9!b zI8-iq%9;@))NZ46Tht|em1m9HzIFqBXsK-)G1i zi{^>xpv z?cw;U>scx2Ri+>1U0e#x5SV`^rma%4>+@F;Za?97F~IO3k@$K~%}jgFoAP&c|vwtUq_--{)5e)d5!dI~``2 zaSODu2k6NKNc!}=40z0VU4;M8q91Qf5}l2XH-N=Up#@k2%^FTa}N@t~;h2@|M&5rgYwvF2CdJetIOR z?NQwk6IY@3@nx>CmU76-%}ck(y7Flw$3)0NHubC=~pm$h8BN*XOSRS{j- zXDPa*(=C=QBWatSvWctVDqSrzr>T`)7du#28-@ys{=8Qgv#;L#*srI>SC5~N@Vy~% z)iFw&KSRwYcaEQ6*Ts;qo>>aA(-ggw0#7|EnRdmEi-UQp`!aW5efOGAbvsK=&6J({ zCR@#|n>9mV;#!VHn3~sbHEGdio1ByUKmJf*@9JU+o3@oF;NMnV zjwIt{cYmm`GH==XBjz>3($6y#ZhZRa5p$N|ZAyz7_l5O7Evp3Pnl=f98cJQZapHHk zynJ54A$#J3GeT||60<6Qh=j0bNG!B+Fjh9){yX=LPgqvWtg~WVwVlxy zv>V;zr;fw|EvLDlCHF4rVGW-+e3?ypE*RMDWeEN8Win{S1+>oPnDUmr45ors%R+-L zGF%mm3aY3{bJe)-ccnK#deOTO(9Y{X(FL9@yCz>SaM-#kXe#5Y0`-NN4OW7ym`pkX zvio)jT1^&RcxleI6)z-Wi&z+6xoGIFT*`1&@Ksm)i?DFHrg@>eOw#}Yp=w_8t658rGD}P$gPNl?I0jEp63qKpC_O+*TUonciH8D`D zCpgvSu*)vN}+PcsewnoK^w=H+tf1vXYUMXoGe zHh-mo&Ew1d`}V3|f5j5wZ}W3r!QuYY!sN-tkBx;E+}k$avu0JU{Y}0Op9;0pdBI!0 zm~r~c&Yw7!f8~cIOShN(T)X{?8Lz+OEX{pyu0>Z_yFI*_t79n^`|0nqrc23Z)Snrh zQ7d9Ld6<_qHE*8j+ArF{pK2pl&08Vayy%pVl#z|?;lRh8U5UkB&(`72)F9 zGj&Trq~7eVRjIpzT2&OigfFIOSzS@M`Q=D_x)JWiKc z()aBOk$z|Ns_`Aq-qmSYJM??b%N!KCH}Rhun~kxL#L~6xnKJyRubsW{u)`*0nR{Dt zPtDODEn^>LQO*lCT7I!{E24^52JKS_2wk$xLf6;Hq%1Ta%JzIw!)-t$=@h}WowNBmnHYM#{}C5M0Xrn^k+uTjrp7GCx3Z9`Q+b7v4iv1 zANuh*uBC73p^6O4MTt^A+&@*OM!z$t`~C27q3q{3Ta@nW^PfB8sm^__qQvUqPM=SQ zF5i6^AT=i@t|pCDaG6r*cT-lZqTK?j@5HInPy2 zI<_p^N5=2$&L3AUA6q`NN{w-qUDZ+E^Isl^pD~;7*$`%0{z;PCfA{su+_gC%dlT)a8NXzr!mN@i}qos^~eFQgsf;B}tzI8o~A zMhn>~+n;kO2e+#oPu^@A9H^YjoxIu9IMS_KU;Wv`nX8xl6qNGwD^_2j6|mD|%Cpv& z6~<35xO5zvEU)L6_4|2xO31sMr0L1qMP1yC{f@9G-ttjdkW?{6&`$G=Xy?JcOa1B< zJ=&a}dHT=)+)?h6+Wq-$=5alLfmw30VTyHoTe>#go%!QQ$=Z*{C+q*MlaQNf=vmRW zP_olcc;1%gg*|h5-j*$ztSvHk;)fWe%$%aghciVNd^2|V`Qh`pqYlY{td(5?{-fQ~M@_~=-@42~lH?K@C zGZTrCHQP-n;^S+m_R%q~+W*@eb zUVPWwQR z?^HDPd4GN^HrKyh&0+JQ$!fDT_4(R&xtNBZ@47ncRj!`UvbrU|5?3u-*7(n98FOOK zvyY3x8|HMnXDc0E_i+6N!Sg2KotM%IZxygE%=);OC4FY_k0T~M7kyH7dxEkLh8BMO zkmIc46TJJ0d~le5cvfA#} z`<0ff`aDw|*wVzf{KZ)_R>*iLUy%y_^FpRq%Jj{YDf*X7r@daKx;w9BT53y_=+WMb zT|5`NW+?b|`1zcWFiq+4`?acb*5bSq45}iFJX_8gXt@a6xa^gf`|<4LV=Yd?=YJhp z!E@5i(CUKfF*enkx~j^YL1IgvK3wP0zha5oC5f$SZo#&nN)>wxZM?p=gs`rR-1b`U z{?zvalv_htfhR^93t1a!)TXy1Hzaq00XDM_H>o z?oT(BnNh^L@zrcSrI~Ne9qBpt@onZ^Ti)M=QZpA6opdpsvnox)*vKh7sV+wD6vy1@ zmkzJ!R62D_C4A#5*WT={elt#l%@^PgOD*z# zMcrPEU#({8thnWKGko(Q{u|G`t}d&%zQ+DA)Pz2{o{oy*X*>RRO8*DiBQV)bIxvQpZ^ zRB!8ts%>AoPg8AsU9ist-RT;SQ$Cv?`LQg&qbqxH*u9F4fwvNRCw>+04lJ5#DrERZ zqKLMe2S?)sj5->4h_IJiOs&rqX_C+t=yR(X!Dpv#+l&j#-$~ zb>qd(pqm1vQ}dZ4&*yx|Rgv!Po#&f$S?&I_Bh${NY~JE}bJx-BxvRI@Zq4n!k(d*@ zYg_c)l;dF+4}U4k6|VKE-=4o9eRukX>r$^i^M3#B_N!cDG4rh(3d@z>ZWb)lE$I@$#WRYlxL*!L zME%W`ikKL6Wr699n5&jCx_|6yoo_ZJ=;n1<1V6~sGqUvin0oGGMz1b&pM>@?m)w(2 z*>e`mS^P*UxMGf!R?zH=jHjEGq4{RhjqpI_fPebbAGaM>$#u% zxLuQ{ZQ>CL_mqCW#IXN+Rno;PV#3Ls>Q^d`)JE>9&{0y>DGe!F9G9{zFq1di$e^>= zcbSdO{V5X^<2Rp>k>=T9UA6H}?uSdN6HopYZTOy(-9h zTSr{->Py$3er`4~x#7J{%DML125+~QFC6aNc(6?&z`OZ&?-7fZZVb9wn(yPuaKUFw!L+_C_yK8eLHd-Fr)MFCPWx8of zvfEZK!Q@*N+FrL@mQPXEI`-yCc*Ez4PaoeaAKm|a(qGGGE03JjNY-7DIWr_rcCX)y z?8DdjE*4JF>|LR-&d4W2?cAb@6Kh5G*J{_=w0?YloYzyc!+qTxsj!fUX=^l7HB=sN zlrt4DfA#A8h3sz^A9&wi{9`uT&q;rSXUvsEcGkq`f^SFHGU_S!`drR4sY)x){Y*dpqZ8yZExDuT}5#6`pHk5bRmvm#3bY6F2L~ zGxMVrUTo>E6DN8e)SRkmX0AHf*X*v&+Wj7F%S^rQ-0*2C{&9+Xt+t+s^O*%j6AdT4 zC||qVFf7pfh)3@ZTC4kCC(CE{x|xF$N#Y8 z5`{dUjT^HbO$pwpwb8+J;i?UqSxHVG7n|~gua0t9%Mm3yJ8AmWRE^1B?3u4Vo110Y z#TT@7^Ln9+fv;FJ{vPswJbBuDwbP-KpRTvEicI;I`E=jgh4;$dM8wv{dM#yr-1x33 zWyP{z(HFJV!aMSmo?tzQxER^T`}QfcGa=DWrct5jbdbFi~pD5s|D^425p z)7eKEj>#(%Q*T-3oZ6Eqd-2p;iK|*~rLxcNSeuY3`szRJi<-BWyGqvyhzGbU`zJn=v#Jg4B*jV-7A3Rc}P zxmY>T$nDO9kd2iKd3?2d&rIn%v%Y&_>8%CH2QKb^=d@VAbm!I6Yl~x3zF6!E4v&bv z#P>KUwK{2b^6J9QO-DCcCIu%gejb#{ytz(x=b7TrBU4X3JtewMJLYwdwrzMsxRp}l zDz%k-dyib_49--(xgfVF=iZ9kiG^7?o3<@8%NMwPLM(eX*X7%s7W1pv+=4Rz9*SFq$q3*YY?@JCJ&$ldRzWgk$-U6ct_o-`-Nla{vGTN5;sXWkf z!`)!XBA(@!0(8?BHJmhCaex1$o04mP^*eM0?TuI5%H?|OMb8rDklhN}c2~Dex3RhW zV9LRWS9e$Sd@b?#ZYIA!=H|UcvW-DL`E&ZNuiF-4bNA-2n#42PmMJYZ4`09j&bE8& z=Wt!0o_puR<1!_Gp|_J+LpbM`XiuD=E3hTd`HX>N##xVPj!WOkXf4*Ake~6mty^=a zTiC%BVR~vE>kmY*zr6jV|DesYLqERHk;snqmE}8q_(+DJv#!J!mi6lIw{8_W`Fg_> z?q$`1FHJTC|9Bhy=cDNH{qenan=h#UpS!u^$)S#(*(yc~kEs|HxHzK2LuQuum&Nj~Jx}lL3vp?Ip@2l6=^Wl>VJy#u@y6D#IT}mp<#gn|7FL$2f zbUL`x`S>#n&*b1$0XeH4{8^?EoU!W09+xR81=GxS>WL*wclMpVc;y$jskzzNkk7A; zOiV>*UA*xp*sx&dwew#josrZbsyPQYGg7~x9@DH z@0nwz)1O4GuL<7y>eCGGqf;fhKg6E#J`V+TmFzi|+HT zOsT%oYZNqL^1S`(#S2vI4Y_BTc zamnEBi5bE_mY}#Z67rcZ!UlB_VMfbTHPJO5UmW?umAs&omBAKZST!yo{PT(Ts7YQ z@O4{J;@Hb%^3y_S>zmXC?r#^gZ);q#^?AL_&OnH^28pZ_y|48|uQJ}cS2w%o!rLUT zS<@6(F@@C1rK#Bc6ch<}y^Oxu8{EwFNA+i@VugsWSD;?UhiotjK{b|*^o3xoBGHZ^w zyl*pc_?^=5t;;KZyN03z#D@zGt5sd=&U$}L#o>3gzygTk4O+)`U++FSkM~hiXJee` zf>g-`$+jE;5Xl#7KE7KW(sGJnDQAX0lL$mG%ysE&FVTfs4%#ysAR%%<>mp;7DqKFi z^0;Wyp3}S+;#f2wT1wsa5z47TTnw>8v`rYx`wNvx2jgI$Z>{BAJBrc zW@+RuWY{YLw|MoIr?VGr5{2_~&TwDYr{b_%5E?ocB1IOY!kxWs*uJ z+x0RDuEmb)!lh^3Feh%<71EIB1k;t(5PG^r|$6EWvTtlhHnW>(DJGnC8+L9ySg z4H0Eng9x@G2JjGc5?Juq$l)~10WS=&nU76Oc7b>&cb1WZIy~;Y5aEwtX*jsU72L{c z;8SJ1)elPv=RPxS(PA!fV#{EKdlsJVO%s{6_%T||V99_-ywz#W3ymrc)i47u6dsmN zMNTh>tg(PWHki@MMginN_Nt>6F#lTdz--EPVt>&J^L9imoP`t@%9#y*y(buCUxhPT zUA!+GBM3=E394=>HGR2m(BM9xWei&6vBmC={;Fn}F)wToVW#fDKAGVy%xw5w!`jmfYn9-| zZAe4jVg^}nrjiJ@7YZ8#>QWJiK(lp zL8;@w1QiX>qH~T#=hnS`y=wjLee1Fx?Rj4R&UU+>?embYYuBwZzHEH|U(LSxD|db0 z`SaSH&%4ia3P0XX~F}E{QaEaAyUT2;Pf1F02(# zu`f~Kzu*jVaf7PSwx!Yw(m;U_;RO~6>&dmXpM9fjAIOA+%wBQEs(HC!`KZUy=U=m| zkObxWX_tO%E8f)k_W3MERtAQIOiqwsl;OU&Z*q!`gG>L0rK%uZ8Ap$lfdbBfTW#C? zslM-QqCu%@!xpeZ*Uq?6m?pO%9jtp=n7YGxa4hMp?UY@fUd;wpT%wqAI_a)_pDPtN^@u;SDm-m8PGjEI_SU2k`L_v_~nPiGf_3+f9^ehvTTKz#L9 z^2g1b_Y1(B&bN|3^eY?w<(NCTLrhOTuLp7Rw>Q6L=G=cbADka`*7`O4E0J8Vdl%!b z#byEw3=CpP=hyw_0z2*Ay@S7>?bQTZpEQ?Y?|QJ&nQvwH_;0KC0DJjJ7lZ6SO_0F{ zF5TMw`(9er)qz^T~ z{Lg%dWA&N7IH)_6mok?u2P?ezwx2=vuP0QQea(3rhxZV7MM2^hoOz-))<01{#jsU8 zhJk@$nxDEuJ-AZZu%(MZ_IDvfvk)j%Z2^m4==!T{uLkyA6~vS`@@rXMJhXA(f5vD9 zj_8OK!3FG)0MA{;aY0@fq+4h0%8UOMkoAc$TFqmBadG288wd8?jJq~N0&`&qJceh8wuq5Ij5jmbBS=l?u&Xu190mv2tT|10|Vc~|M{tmMNF54Tr87Ed}o zO?U6>nn%L(Bj$Yj_kF+p?|%GA-1=wM z?S8lG4Xb{Iv9u?jD`u{QW zeStRi^M4#sPrH+6Q@{U{_Wnt>PZar2mc6|dy1Q@H$B!Rx-9H@~9vdpn9(p~lI`?hu z9+46I_utMC857xyL9_93VLie6s-%2UBv$^OT#TnTw^mHg1!wq8&0)b_h& z(Qo$|Zs+(O|7&UdDZ9@z&tI8$S*`w)di|u{o}Me~p1Z8u|L@nW($*hE%8yKB>(hl4 zvvx( zwgoB(<}5!)#sd^w_e< zZ?mrNS@un4-U;*lKhIX4kJR#4T-=xqxUyQtS?be^1Yw6%@v%Q^9c2;36)0D}I4vjwr793dgg z#@@we)yr-P-7Z`DU31Upx$kwh72erdoW8B>?X4uy^Edt(hfVc8e#|GM$9ui?*9YwO zJIZdZ;#lFWzjsU7&ZQ>vuRrPIy0Cr!-?zs1J|FLwKVSEAdcEcEJJ0RHrKOD*UVR>b z@c4#{7cWY3%L(@Xf4l$hcFEbvc_T6|Y-KtD)qwtIyg8o%iT49&x7cN&S7~`KoI@to@)QaP!yK*V)`Ef(9>B(>GsXluBx}No!d3 zIC00-A^4YRCWd z+Sq>Mxb3^b&F^Brh_0`2EsWmSyyT1JntRhD6#Vq1lfD^#llXnozi!ian`3JpyW4%5 znAE?*ceV5P$Cc-+(}(6zb+Ern{ll8+w1-RUT-yAI(^R*RpVpFc=9Umo!q0gne{~*uXNY*Pu%f8 zoC>RK%s=kyy?R60)SkjIh%+*;-~hXTwnKf z_08z}zpf?mpDnEWvv&FR%G0{rzv$Jw|6SXDw5tEyH;G4kenfYNUVChJw6^=Y*0rdP z-246_i$Bim(-(Q{edNdNp5x;7$A7P>+0Px2V5h}sHAPmgm*K9eL*u@qhrD;GUx|3o z^*M=gc~zCpk|opU`%1}s3ocL;o3r|H^21egCU&vzdR3{&q$l=j)$*fFd0(xRxh@^Q zry`a$yKKqiw$nM+)Ccmv0$ius|(!}gbSeE*QM zx^=qJgvYj%=EdE8_Pg&_G=KM3xw&r*k3?~N{62YJc-L{0+da8^zWK)Qn(~NycSS9$ zhJpNE2HR=uFDBYJ@IPg&a%fi_A` zu-RfSlGxVG*{KyO?v>nVV*B6alI`JT4~=GLy>U@+^H`GnOladQJNeC>w#$}HuRmXX zFId`q_Q{hcZ#}jD(8zz~*wmzN%dEbELb32ym#B8u=4)3&J%YQp7StQ9_pF*Zqp_>P zOMh}#f)_L-zE5Y1E!DsJmnGxOgJbuLtn$nZf6Hxt@bu~99S2^T-CJLM_jT5HQyJT; zEoHUa?^R{L|1%@i_k6xkdy|*HbzsA`kK5(MUfbUKA`$oFkhoa3-IC?YXQjm|d;PAQ z`}m*vTG@$l@(!L2Ox%;!2}SmHS-hy-6>#ajU)?RP3nkyo9xbz3pV_!>*9ST4gPpgv z!%ugA%&$Bhoi)9)aN`0A?#!2OTO(xG?V9kvdjI$8n{T(@pI7_mvHbep+N-PMLg$FD zx?OfGtLf#9h!g#+&mx{0hE4T7&wur*z;mI;mrkEkPe@KQn_Jm^RpoM_B9ppo_5a`Z z_m}@W9slo>-(z;n~xE7Z?D&_jgZ~{(z5IMwq1WyWW={s)!FcWeCkwH zfBEX~$M4tI^gZ5q{@Wi{i=(w#&gOsrds+k{1(nywAIZ7>0`VM6o*z%%`|H)}^gGvb zj87NFeoPHF-FI2v)T!z|qZgBiMW*5FY3pu<-c{3F!tEot=H*utPjQLqN)EHXZIa?% z`}F5#-3v#V%5u^p^V-AK8A)!od3j@p{nfWj$!uC_J1!M&l#QtR|Lg9AU0}npYSq8e-TD@n zZfDNwUH|Uqk3|0Jh_`=k*qQE~_oaJsmX7_;lm6>s-PgR@m41HSy=tp%dwXU+FNx_e zH97Tqm-7E>;;(J3ZYOu>FI@Fqdtb|sE6eRdrOSVOczAC{#h#C>fmUjA{*|$X)f?NN zF8jgrvX)(gGvL7zQ{9%O)>2;S21*f^WjjnFPcif+RGdkcyS$@8l>5Qc9m`mE&3JfY zOJ?v}E9W;AORdb(;*%bl%8K94TE;!s@bj#9v77GS@Z28E-CzIbarR>;oj=QxzrVX1 zEj`^U{&+xa!dv$v&Q-F$=TqP8SZbxVt$WQpdF}%*eYZuXSLnd1KyRa(AxK;!_@fFMs=%-@BZB{|L0HWW7hEPy$h;A)yq}|#Xjhm8@gn3=I?KBSL@CQ z+0H)OS4u)%dVyloG7;{Am!;E_zHPQrzP`mF{BEN6tIzZQ|LNJd@olKpGLhBV%dXFD zOW42hvdLj#?)NWu6uh{w@YanPo?ge7Ch@O*`Se$8?RJs#`Bkzn?>Q=$T`~l>C3hu- zo_IB*eE;veTMdy?%#6Q2$ERG9wfXwHE}!c{K<)YSTV>;2GQa-v6Iq}xwEE()vJJl1 zCm%~(vnj^b{$2LhKPAho(+;h+KJ6K<+IwApul>@F)nES2(Qvr^D>{D7_l(QQGv3x- z+2UJP`gUrGZi~V7`_-2hPP=5tpvuTKX9~yG8}nA~Iw08Y?Q#65Q{b+}eajvzF1zG0 zC)ZKys>p)B8MlN}E;GemPUbN*o{+cwhKRw^WmoGjU)B5FJ9o$XtA-m5X7p*A%F3y4 z3-><0bXJ;WlJv%sJ2{WKJHPxDT3`69)%EhX)|cBdABxw16wm&?ToY7w?7Q+lTj&x) zZ*KTy!=*RWwpf{!9h%aYX%yY?ZE@z+o68Dvs^T7(c6W3IbRHM2FV7TMc4_Z{V`Y1< zetx`l-Mfnxwto3vzjo}u`sLT`xb;Do#SQ;w|FkxQ1rU|H#2HM_hG3e zkDcD!G?ujvUvTu>%$GkpR=t{0m#p4*GF*1@IhCcC0y<`{DDlxsTYu^IrT5uFv&!m( zji0^Tv6C;bNJ()0%dfiE4%M!_e_dq>qt$hB{g+wCy=52pR@?IaWyx4`NpiL8^2dHE zyccHZ>h^m_RvloLyI^f!`)}37YhPSX#nk8f*3XCg#%liYf<+9ux5`ZaHmy4qR{(Be zduHC6mv49J=DsUQY#DEQH)%ELihZd6US7Z5VvmOvclfOHOtCCER@-b!JSJNd)LQMU zs_49s|7OW?#h&9c`ZQf_mRy&tuJAp+bk;W?>D7wozTH`xx9{h(TW^;=ls+!(bNr0^ zWvz9eBX{_hPb$%3&-gX({{wdW8GHYIU9bOb+8$8PF-& zcG66?43GZkXt^e}yUk_0e&t@ie>=wbjPL3>^Ku%@?tXLncMVihLHuL2F1sNoSdUtly$t2c{%YGfdOy{%in(*#Q#=6HT zX0rPYww+(o_tL!Vk%7X?9jEnnuQAg*(ie1TIta|OP>c454=MK`s@dsp$& zWsi?7yWP-MGW&^t-KWV%Uv6xF`s(HSilf?D(|!BdZ+~HR(d-kQeQ*9`-U}OM)V~Hb zWX>mB1U8u6eJ-89XJeV|(umoLvh({GH8=wj?ju4lgXI%OusdFx;Oh&WOAkUKs?TK-aUhuK>dHCr9`$zLkkUe22_n@@gn zp0?EcyCv>^3p3fafHG8KX*kD)?|a|Z8lUTqJpSdc?CMj;;yN$C&g8lvVC}rBulmko zIrHRY`h4w|w)B2mEdTe#t=uEUakeF1N1o@j&yVzIFthbn|Gj-*#QTdsZQ6ucGxoH- z{NH>S)Nzo!F8sg0Gj#psLdCtl4VTU^$i8NKv4Meg)=@r-N78>@HMyN}S^79=oyfcweio4UdeNPALaf^2uE>St!)7%nP$SH5UvgLym_s)&K;&LWO z^6tC7@7va`8#k`a)(JV*RIl@7xuZzhZOOAaNut-kY}IuAbM(wr@3>Es9vPb3o)cJK zy=%d}Ey9zRJ=R(_D@|p!qs8rWo04X4wfJ);|L?W@t4iChh%5m0BA@?WC$PZxHrugn zR|@Z(n6b6{dxg}>r8k*Ma&p#~ZF`lfUmf|@NKt8}W?fR4-MsTR)VAC?8F;z6Op$RH za^h{P_;<-rabHYF==%kF^(w38qs_AR-Ifz0YKykL6@M<& zJ~bn1!#npD$6vFK>x5R_SH5@2Be&?ogM+tnL*}2~u~xtKrT13DmHagin71y-;JWa0 zk6QUr2HTn+1#kbT6~>(TvgIa|$&%`#b+fWXKi*hp^0(e~a>t=BThwh|dhUI_6WR=# zfBb@f!!dEL`@gPj&w3mrxX?GgVd-|x0HFm3_AIH6;VtxNDT$f9ta`UA=dD6`zuNnmtUY1Tto88Ls(rod@=NFc-{#V=RywHT@d2&ih%C*RuH}|}7 z)z6B#Yo69}Y2*3&f1k4-&pJ{({avAH(zai7+)R#T&3TzSB}vhG+xpqB1;j)D?gM#( z_hY$Dc*W6V%c?IKZ@(;?D=>B5uPe*19cwR%eyDc5Uw*#ngQU=VJNB;*U%zhd_6rQW z-CwuwlK>~rIwq4NeeHfC3pYmPT|QG$6$`4dzpQ;3(I>d%<&K+Yo_|_i)X;WAJ42^n zS)s_IjYoSNb(Soj?j2kA^XXBuBwypc%!alIUBfWloLjGRI<7uXI`(T(x8ADQvVBR4 z-=;<9tvs6(?&@$vYu3wqnX8jRkA5k7nblR?8CvIG@^i+{?iYUZkMDSIUH(qz*qN;b z@mJqx7lnfww7vV@=H}1-D03wH@0R7Zy3t#+LLZy$EoRM-d88~WpLYABuhurf-m8m~ zXFtB7qQLk5)9L+xP9IfcF08A$IVtYD@VpN#_nyAzsejE~+kfu4;TP!zijOS%rh>*j zb|>++NGLlr{#*g65biSE4VC6N@aL%3y23k0BVym*%3iOVX87#Z@Ao-L3+>V@l-DHj zPp$s`ZmzLX^4F_3B)xmOL*oxI{cQ2}_eSEsLV(st9)G9OI>I&YE=9Bw$kCx34{Ihh%Q=j8g`eZDF zcE4L@`&#cv(%-fE&#FrdkIvHjST1`$HRt`DdHfeZ!^B&(lD3){7z9|0rFCqTeAadA z%LWI-+Y-i~Uhe2PaO0k(Z1mk|J%+b}3m6<$C!OEEan;M1+qTDis;YLbno-;Pm_J-U z_#LBp*|*O})a^D#{N0`T`$B}P`CdDQTZXa=gzqxQiY{O{aB1f23)+Gc&(}ON&Yqqr zw0hUH_NbTF=l{JqUv#zq^6RV))+`zf7gpV5GD$Pxm$3+twx53E;DwlKHNB%f*)sc$ z$|9!3vBMm(`^=3t<8L=)+C4jMpB&?>5!-Zm)s2_u*KWTz%l7X}|MPkK|9(sA-?ULH z?~dP_7VU2WbK}?=zKJqgL58N2JRA6)Gwy=SFuVW{kFR~f`r_lshi_i|C@8bwztF4< z9=$#a9W?;Vv~f^>2i6>c zG7kV2LNyOrBT5j-oMHa50TgBlE5S1s*c^jJvoUkYd5AVoxU64df7O-6o22u0Ed23v z)#`PpW#xZ)mZo#=m93&|uBX$Teq+{f}n*7p;$Vqt3{43!+Y*wfF4gk3Wvv z@7r;1Z}sIiE4!V0^d)$pcDkh`lL*6ubB+y6>Z;qUdv0|8cVnpiwt4>CjZ%4;`xvG4 z_WgMD1~mBi?WKSHuJ6Bp-~a#b%}f9KD#7LQzb>?I3g7o>>fX=uzHM2anqU9>cK7K! zb-&-<+=eF-PoBqbW zuL}R>z5k2%-p{N1-#(k2uXnEh>V){uv#zH|o8_#yTXsg{cr9q)W@_%OEiYRbch&s- z^k$`hZC2sl`9II3ZxY}8!u95Z2MKTMm>IT!{PA?Der@Kr-uxQn=$%EW-%hyOZQ_{! z_xJbf$L9JpwDs4%NxnIK-+}VblcaFM{D0b-{kvDdVyg5)7(F=*8j`; z)>pn~@sGb3`|G~+92X0et^2*bemBP@3*9hJz4gxzG&0`=^>p8Sp8vn*+ad9N2Gx(H z???3ferCSkGQHv7zxV&^3U^klIbU(icoV4Q?K)w3AvePXHb$;9(JV1JizSWQKK{NM z9v|y+u6X|MJGX93=Dfgh)9BWt??#uBw&lORwsvn}JD;qUU;Vk_d6%tozrMP9^vuiU zc3)TC%k*9S;9K?05XlAd|30*LU+oY6xF>|!BrQkz!s+{ucXl5aWR%=Lymm#O#+ilMeVgIgb2Tbhu-x}{!!fhXg7t?F zA3pjtd7G)<{I?rzf8RW>=htuhiVxPdAujc zX8XqA6<_R_7<5b-xz5}^9slo>QjSu`slC^yDM}i5U)}hZEyE?fqoO-BXZ7mO(H=_Rm>Oz(#lDE~;3zRYpr)5bRcnn%J%e{Qzjrf&c9 z1*4y2Y7jH6ci8;E%^UnM)yBHXz-8%Tu#zCD`(@W`%aQlKjJMvW27l(fu;c#5 zUAbqh##K$@j_`8kVX#G*(tVV3v)NVrRA<*gvL7ro~9BId|d&s^Kr z`&NDR<_Vx|(Oq~wzW(nX{n@kp8>Tr*Y>b{KU;Ut0mi?@{!{hHAH*Qp35DkyHC><=f zE^Qmb-v58!$N%~FfZe|0Sm|+{uM?Hs)8?>2QmpqHIqB7>j`g))`ds%kylyGSyv6SQ z-~6IaG4$R%60z5`NpGF~Ba3ZIdp16eOFR7T?(Xi(N__GkJKROCUx#|VcgMdQ8!xWi zelJQUO*PLrZ1&vzhG`omZ_l)Q71;mk?M1V&rE_&19)C+-zq_#7kh|v1jg4>2>pz=! z8(!65W60=cVErYwI=Ak1^nI-|iz)NO%ii6IJmM?!Yq3qPCi9j(ec}6mT|H`Omh5vz zd!lKuGTP_94U0Q|Gx9Q==9FpofCRG=HxfDS)^rF`dqHi z+35ALvyWM--|*0`nx2i5mvme&Ne^UT$bG^3Vxx^i{}aY44gL$vOd=LXT>@NlmM&ku zYBl@$@0+*m67{uD!1j`-IeqF++2nL;rW6eBPZ6? zF|aUlebE)uNP3v`^wiXwFPG1sH@ECoCc_2c`Me(`1?P(@iDW2&rf|03+L$m=uYkcJ zv?lCGy4x>HCIyhN`K>fNMvI9*)^xmC>fO)4pg!Hx#WCc3&zE8r(8NV|YiEffGs7&7 zfCZfltiRM87+*|hUf!4KldQo+S+Y(QkZoT~e&7;EnTibS){mSvXdYrRdl}RLH5(_w} znM5*7<}=v7Z~DBs-R|4On-6Xjyxp_3=;EjDuG=v?UroA~8NM!da%{y%*R30uFPfdd zTlKclhP`FKYFrlB{}7i8v;KQ7ui|~gw+Y8>l&qi6Db9LsY8fi8erGB)Sj^@#@QSaG zm^Zib+03n%r+WoAxV7k*+EN_K11$o2HTChy=UBwl~cbn z6B?9e_Ze*e9gyC%+I-FHzjX&&Pj9+dD}3{>{I3IV{_$4_m=zYpm%XdJd^>wy-LIE7 z*Im4OlXv^QIkqnX`A_oQEzpTBJb6m;dH(&q#=GAgG*9LKx1RrW-@TI9ZE1h6?)|)) zvFhd1>8aQ67X^R(%`8`#{qb|^YW?@Uy>FQx|C0Z4B6{;)cfOSAafOlZ_lT|z6MGyU zSLIpuVVCkv-TfavB$=6?+x@2N^yiPkN1s0WSS-Fj ze0!qKyzakqpFcX*ZlfT5(|q3C`h!2WzFwupY_e@_@9DcWx0}148;6yz>x(Ww+xF%L z^E!Pdow(+$*VnwCdtD^WdGg|;f4i?nKmOS}|MKm7wuY1T$5m%9pa0_9A<6W46Zfxk zK3d6NaYXm#yu-gYhfa^TDn28bp2GYyTRvIt$BFh7_I1`akGorVXPc+Bzpvl(z534e zjejQ}{jCw#&HVFq$lZH8UKTRF6>$ zQ#xYy{!W-n+>vk=ub$2ml@4-|f(GGhb{gF-|Kd<6`?Rdyx}AMU!cxS>tNG*GGIz9nM?--=kEQU;8E3)#B*+=X39KZv8sjOl10PQ?rmeVJxXfl6H2b z9|?@{zq9|LZSu`yy0g1vrCnRxejIzd?(U9#H};vXTP_tdJ-*Vl@YcM;!AEE8IR9~m z@+75qUC$rQsnE;QO44@9y!=h~XtD7A`K8w)w?5w}!YGy8cekdtaK4h8@&TnYO6QV& zaz0CK-(PyYPicqpi^m&d3a`F;^vC4PBSV)H({7)1>p1@7)vI-dclm3sIBz;z`D5Al zmoD4IA9c5JoPXPF-5oJ^*SCUi3*3F}?;oAPT)mmSWd7o>v(3I8+JEO|kj=GT}n0cfUBK zq_l3wt5c7@&-f`LGyh&@V2=H+y3fbnG^L7*?2q62?vCLisdkgF5cV5bVJd&)dRFSOSl5u>Cf9=a{JWmPb==4S^SNf9w-|aFMIv`+oL^&Hs4NvdaZH3 z|G9NjVg2`=I*Yg0$hTC?ePr7CT&r$9TSiTypz)%Q|1^&upU!;rZAto0R*gF!Su`%V zG%(dhdo;M^99ffKwM;9`CV838qR(?I`IZVX3a#Ftw?D3`r-#gFGjPy_?OJy9eL%| z41q%H%8dB8UxHX7?wtSfWrnY;jI>r=U*xHdqa6RT7EC>5&>eaG+^VBrWq%)8lW}I# zwEf3*3NB~u{Cg+PrDo5vt(VJP1MGJEu#B6}@u|co)QUOE>h+t=UAKF$+r+h(-o2T@ z$W?BGh*iVOlB?5~C9hJlN-jMck!zOp=)~XkXV*pTURGYWrcZLY>yx8D1xr8PzaeID z?!CH$azN6VoTO`8c`kI^`Bb#AHqC0AR+CxS$KLtj>u1h8seN?SrqqUW-(q$42jt$=NOaIJxx6&0`@;8KqVyxK~W?R}Sm#`+rPpU*SH6 zR_l2Tth2r_eaVnp(Egdhb_V;4DGaPqIw}sy>V|^TU(Qh5D4XJPr!kvfd~^23uC$G^ zkCf$u&IlcQHTP-R;*GiwYSJ7|U$wm~`#r>zHRDcQOa89rxgl%PWEjJ2b+;wGQv;JPi^hfRtt=U9c1am$UY+~KqzgO@~uB-@WHaVnuXnj@Bl^yZs&jrO+Zwgz#UyDhnEKH<- zw~cO^X0n<^nU~1^)a;DSGCh-Y%q+~hPx8u_ZIAZJopQGP<|CarXI{M3 z#kXts{aW>CGOa(^r?mgLVp`|vz`SSt=8g* zWGI*-C~%bLS?cPp6Wtu04n4L{j?L)U6misS+uNQE-L`YwLPU(`ZT!68&o8BEN^Z(E zr%s<2T~Jspn7grf)~B+h{M~}x&gVg8Mca&wr)!?8lXPNu@U|^yTvZn5Xrf4lTcI(EWVro$lPP8;^Y! zI`0^{;blEPa7Cef<`gyd5?43l-mWz9(u0Y9JjGIT~bJ~ zX^mB|B%|==?!vg8%5yoU?+iPrtE}6kt|!0TRp(e=X_C5yq1`+GBk7il&7vFHDr}y9 zbaj@|Q;`+lyl3OvtQ_e`x#e4g7hFCc?^3bTHoN0$;_CCRe`0Koo!aPpI@jUxzGII$ zQ#VXcPO`prV|M;e8TSRpd$LQVFPNNpR5x|CRk(k@tl-gC+po?%w!^;gXVLA8!gu33 zoNpWvXMb8Y>*KEJ3oUB*pVtht@6%^X@@Xmiy48O>W3N8rqrahh{N=taxVP$R*uhq7 zenu{nl`Jm`R2|r}m>Hi5FL)}K`1r@{mz9DU8&73cRcVH$_hxwd>mOaU`0CYw-+_6? zv$|fdIu^A5(Z8vy?}oW@Ox;|zbjH~pi&gIeR*IZ=z5KOh=ezKjWtq3nzDhm)c;37< z9N$Z(KE6=0|JTmF62Y-YcX{?$e&2I5{&&fnnA@M2%5|VA@R{&}jmEP$E(pKf^K9L+ zm|Tl6#l1%S=hiac?v~syE&uC)<>KGxRKgm2AJ0CvCgaT$bzAub@=TEC_*r#_!#aTn_u8 zb&K!4_Pp|!~4qr^$f;JaXZmqGUaT;JYzt9V%$7#doMGNfxJqm|(tSsBPGV>`%jDyAd4 z;u_>mGk@`rThRWA!4|R*IR&)?#>l{sakQktuP?>@*ltEENOum)5Gu6ehpah}|3V?AgHgl+j89yw9oAW3NrePzrg9$+myv>2`Cu)`JP8+7r}5K=F)jV22i&-b^}Ah&L#7e z8JI*~MDI#qWGMCoC*=#5 z0^{;Y>GhwxZ~p(ez5ev6`u{)j|If00nmzyR-2E?Y*Ps6Pm)-t^-LLZc*xhe}ew?!Z zQ~T}y|CjRF%MZtT{<37czE)Z#l?=!B|JW&G{$b+wr;5LR-FiB`iQ(xx1th13*8Gi%E*|C`G0 zt?U02S#~%5UVP4f$^Gsyq`(6KUVaJX5KbO=uwb#5;KDt9! zzRKHBEiI(`zWtA9Z%XTb&V7^r@8|z-$ChmmpUU)@7%4_hanT|`WVh|TsVA~`R2j9)|)jMxlF*$`gpef&;6VB|9|gK z=l_4`_@>_c`qa07g8o!L{{JKIV{y;#AOC;bcVE8u+5Eq9^~dk~;?69p`}O|+Hj7+? z{_7Irx2GN3um9)$fAi|g@wNLoPS(H5%ii^JZ~ltAZkoIocC7tB*ZukQPp>O~#@B4# zaaR7xbwR_~abkX=h$MAjrBa&UX^ox})yL!ie}A*T?&IT|rthoX_7r|x&vW61bl#up zyi&I>ch{f(_i6q=|H3M%1?T@g6R&!_?*AF~uFGybztAcxXT$D@l$i^?n`e@uX+6W=(+Z!G{b*?@7Mp|{^rB- zd$*;9|DR&$b>4Jj|5^DTmnE-%ZhBv{)WVkc!i~m2%V)F7_ieLy`}OYYtV<#b{@>sK zH#@)dLBXHP@AcQICt2>bnZt$18V$jrZ(e?zdH;vgH+}mb-;>g|#ORv;o60D4yZG4t z8pk)J^8R0OZ?}2-GR}H8CF4!t=@RF!n~| zDnHhZ!i#Q*8ULF-@B8t)C+_@vxLs`j@%=^)^M7qUFSeh*_RCviJ>lCG$Ltxo)Th<; zF@!Lcq{}U^-o?0UtC@g8?1qM5#~gdf|4G%SzUey9GoV>)Xb)HsfS1^F+VSm$Udy;I`I|KFXTW?uiz`KE9E zzk^A?&;0m4?f>)Nd%@B6;r0C=HHEkKKfn0%`~P3(kMi~Wd-40ehM(|)f+SFs2ran% znc=RQL!%qmyreecZ7+Lr?M~NkWL`A=sbQq8j`yF{Y#AMMxozLRo_}`Ur>*D3R)4bl zcY40ov7?4Ak82pYHiH6Y8FR@Jp#{6QU1eih!Yx*?s`JL3PYbt~@MQvYG0OrWa4?$kU(kgVXLqh1-RPWr^=|(E$Mzz(8|uEi z|F_G6$J>f80~GMkkU}Z*7-o3?vScz)1}|(@;J@&fNhD(etVnH8aoElokPwDaP+r^r zG<9n$H$#Tde94#3IS!OG^o22%1T-*}g6fZ3Ol%A$ov@<%Z}lJLY*4wbVrQH+U-`h@ zI8}%3<;*4Catmf>Gc%r(yb%_CfT2O{<4jOV@P+A1fgETnQGrsLBclc5=J^M5;PuNP zHl+H+!ZOW?(PPF>7C%sct-Y~NJ^n_At*n&`_kp|qfA;UcaXa^4WWsEJQ0t6=p#fUa z26A6mY2)x6JcB7V6EvNWyx@Xr zC5Pj?z;$aLq{;_R{BBu<684~RUt{KylHDLv6QHx5ft(lSx;Ds3+?)3H{@$&S{Z2_% z4##&hT1{eqF#)W!@GQ@Tjd=}x;O$>x;X(_nKQY|Zb6{j(h$xxLAbWzjB;DL$`&BmZ zM6eJ03m4dqzV7ux;0_x1}l@-mOD!ATAPL;Qqb;IiuAq**nIQ ze0_PK%6-^hgvc%U4R)!wGUtVjZywxxn3Gks1LBHBLJKBWHuQn?vA^)hRbXIX&}jk1 z!2;3Cj8zFn)<#p=U+mkMlLg+yn^5?b>C25q+sX#N6i^FtL;4noF^?{!NG@Pkc2NJ! zAS=EAWXLWhhwoyHyS7U&5Uy8vFNN zM0C{4EvN=Zhxa1!1;_cHGgcMkmsNOywfvA`0xv6oPAp7in0t!3BwpR&J0!JSFKLiF z$^0ciZUHoU)(b6Q|HN>2KKqM%HV*301q`nks|@%rK(-$~dd2!;Yh{C+waHXj%N_dG zCR>+7e3fM7&@XqUPgV@X&Tj2hg!Bz*HUSp;*>^0-RkX#7~f0VQY2`1#0y{q7YYDl7d za{-dzSTPl0>12?yKm*ynp=^{1+lz_H?a-9Vx16!+%?(ILYf(3YEo7f)mNC{Lp?=$!=yk56A44j=*UNPRX74fzb0PWy? z(+w|3=9QEdNE~nhQBS99ZtV>(BJ#z(k;+=6%SHk zs!rZCX8!Wa#$o+ywioLf8=>MnIX_=2+4aBw{m`%BUO{cT^@Z$Y(>sgZH;HP8UD0D< zU|{&XG3lq}-kayMzq>cw6JWF|Hodd);>4Vrn^L!OGczza*iX~7wwIROQJ(*8Gsgw# z{2dE9F1%j7dBO3%wAtplt71XB&A%jH{xyHL;qS`3SNKbrw-|9p^*1UBclD2ZZ^j5(8QSH|25nOI)7bV?Mt)Cta!p*l0@Ig&=4r*Q z89BmI)@o8RGCF)0A6YD9U|^W?$YOrsim9>D^{d3^`F^xic1Z8Nklp{?X-mh&WcSUB zD<{a=UMhTY;^C~r?fkl3%CVQ1A1!^popJe+m*2n4_54*{UOv%|f9vx{0k0mMw2rWv zAUo@7$l~UQ2mbB!ZLQ_~CdT)MzglRrZSZd|Vcuib-@@L!ysyY=iYj8?as7yXKx-kv20y7*W<&| z#nN2KhhJN_T}w^gefZX)7w=XVXK%WAaCK3*m>XMoy7F$X@DiSwxWY`cm|HtnJ(`rW zVuO+Nt-z>@8}}xE|Mpb&_A*{Ey>o2a&uz&*{i*NlWi~V4+mh>MZd<%%V{-M43mbC} zclCYM-n2G0`kL?UIk&fLd;LoErfK5YuAJoSZL6)WwQGl;+mQG5R8H>otKlu8H)q`m zogS`xe%+p&Wml)iUD^2R(IL_4B{6j;U2i_sUafaVFZyCiWZBJ6ecsdKFBBG9>@T>< z^ITNVKc?`brSTfQIdfxgmWE!Rb?0hq_U>y>uZ8Q{uimgQJNezLb-p{##zq%KA3mC% zdb{YhcG;7%GTx9kucY>@NG?xWk!=xk!|+nd&B&V>MTwi`|;AxLeJ;T^cC@Y zKhs9NuE$Z5_vZfg_51hvw)|e|_gZrP*-Yc!*2}`_S9;rw zm-jw7?>+h9<}|5Qr{;gZ8~XFLQN+gAclsK;<~~Wh?8u|7%hRoc#6x55Y~7RX zx+DJhso$yAhgElm+TSnCyq+q{JpF&naZ&r}Z@E?_cr(7dzfQ=A{Znt!hC z+C6jWxa(X0?Ynv6*Y6Z%>35TR+j_sBb6fvX;&#dUzO&y?9ozmV#cbbK_065R5AD;0 zZ~sp=+xhsob=kj&ZOctAY%G7^zIpHNU2OF#x2NCUzdQSd`=*r-t9_(rmMQdv^<0&e zvF8-FpCh}gS!Ujvj{Du0-vwGsVo!H@elf2ktlVPCvFBge>otBabhrB?cr!;Z>dlN5 z(u)e`Tu9R2DY)2k!m=)hSQf+2Qp^0iU!Tio_Vc{_{-yQgFYn*IQ>vBAI`8`3ds}9^ z|GkGnwpGhzb4n~^tR~Eu^)lh=zgf=ghxQ%0_vS)~yW}eN<==d6$In`G`+A`Q|CQ#Q zKl0s=WXUb9_Ff#TEL(l3;QT+^-JdOF*W9>jI)Ob~Zt>*G9=|DNPqvl!CLKS{iekY6`vTUqG| zeQq9x<{sy=Nk!&`>3i%hi-ZSw2+*7T+6&{N|%;X9NzS{0@~obzVY zI@6u2cV8=8tL;)ymZP!O!us}&Qs3*#?mSzk8+&`#HvRWEE^ak857@Xm+hF_dlEUKw zM+>fd*Np3mvq+j@EV+}OgfM`tYO z7`9)Qo-=L7{mwaNtE1MK&Ek7_^5z`7%Ptm=Sw0=NnLLvu(vgpB&t|d5ZgUhlq)#gL_0V!g`}21NPtS|Befq$2IQ+lQ@mn7*-#oGF&aZ;|HdgOv_qO(aKY48Z z%Ue@!*SybB;y>T1D?7Qe#xHMoy4lXZ^KQ^?d-Gyf+#J10Gb(k{;;SE-CAo?D zxnfDe?*8{Kf|GDwfkywsI}@)QoXHpdq;Zy2&k?i%B)z)Thrj;$zCP~EJ?!M^#NrE@E z!*4dDu$T5rux|k6k)dyeWH^*;BLU+e&iZ-kNrM-fh88r{A364S92lx9qK+?t6(m10g*- zb^i0kn>HS)(Coip5Lo)~=FOC&^ERwWe$Tpe^Rl`3H?A*8+xC7>SF!cC<)1j-TJC?n^J?-|p>3g=Ea#v0w9UM0yez#b`_uEJMbCTYeeBw}S^LxT z?IyF@(DQ|CAp0_c3 zKlAPVufnp;_Hi?${%p+AN&@AgMvik2^9sTieGXtryZ-QFru(ta8M9w>Ngi5d^y1Qr z*TIt2tv26omDSX%8&yC0o>y?~ka6evLkn#jzQ4Ua-S&Ou`O|VAJ8oMEM%`4~BDd)7 z%!{v;Jgln%cd;l{rMKi4R$t!EyL=jI!(-8J*V|hjtG};UDYeJ_cY#X(!#f*YyVd15E}euTcGGw+xltsy8n-Uc6;O`^#5(Ez82h^=3Rgb?9g7>O)<9rj;Sn zl&rk7!=GK;`RPth?e(^Gy|J^?X7HUivOE1k=kVs9^K*ALu8WOr-g$TD!gUWXb!9H@ z+&IDgMa6ZOqbV;R_1T7s&z<~MH@3oW+xmjC$IgHG*}VEi9M>*C*H^NfyZ3JSGoP(9?{8lAHZx$&zM8V* zM=T$nnfGzkpGx`FR`1W`Y{^!cbKkJ$;Fg6O*5rL}6%{XyjoDbU?BIq)$=^=}$?aUN zrFZtQdCauai#HdzUVqj1P`iHL<5ly|yIm`Z{abu9LvH@!%9_5luO;ID$8Y+`Yacx0 z#*E$1_O+h$-Feo2>RZm}cXQv~ta_i5f8*PH?%&()Yu}#U{`}uu`m9$3Z)$e_zi_ei+;+E5Cwd;daeMx7V_wQRp;_+Ek~6C(WxQE+>~>9v z^ZQ#iU)~AuZkNA!Q)J%WA2uTICf@yaz + + + + + + ATProto OAuth Playground + + +

+ + + diff --git a/experimental/chatproto2/package.json b/experimental/chatproto2/package.json new file mode 100644 index 0000000..65ba269 --- /dev/null +++ b/experimental/chatproto2/package.json @@ -0,0 +1,18 @@ +{ + "name": "atp-oauth-playground", + "private": true, + "version": "0.0.0", + "type": "module", + "scripts": { + "dev": "vite", + "build": "vite build", + "preview": "vite preview" + }, + "devDependencies": { + "vite": "^7.2.4" + }, + "dependencies": { + "@atproto/api": "^0.18.9", + "@atproto/oauth-client-browser": "^0.3.38" + } +} diff --git a/experimental/chatproto2/pnpm-lock.yaml b/experimental/chatproto2/pnpm-lock.yaml new file mode 100644 index 0000000..21bb07f --- /dev/null +++ b/experimental/chatproto2/pnpm-lock.yaml @@ -0,0 +1,875 @@ +lockfileVersion: '9.0' + +settings: + autoInstallPeers: true + excludeLinksFromLockfile: false + +importers: + + .: + dependencies: + '@atproto/api': + specifier: ^0.18.9 + version: 0.18.9 + '@atproto/oauth-client-browser': + specifier: ^0.3.38 + version: 0.3.38 + devDependencies: + vite: + specifier: ^7.2.4 + version: 7.3.0 + +packages: + + '@atproto-labs/did-resolver@0.2.4': + resolution: {integrity: sha512-sbXxBnAJWsKv/FEGG6a/WLz7zQYUr1vA2TXvNnPwwJQJCjPwEJMOh1vM22wBr185Phy7D2GD88PcRokn7eUVyw==} + + '@atproto-labs/fetch@0.2.3': + resolution: {integrity: sha512-NZtbJOCbxKUFRFKMpamT38PUQMY0hX0p7TG5AEYOPhZKZEP7dHZ1K2s1aB8MdVH0qxmqX7nQleNrrvLf09Zfdw==} + + '@atproto-labs/handle-resolver@0.3.4': + resolution: {integrity: sha512-wsNopfzfgO3uPvfnFDgNeXgDufXxSXhjBjp2WEiSzEiLrMy0Jodnqggw4OzD9MJKf0a4Iu2/ydd537qdy91LrQ==} + + '@atproto-labs/identity-resolver@0.3.4': + resolution: {integrity: sha512-HNUEFQIo2ws6iATxmgHd5D5rAsWYupgxZucgwolVHPiMjE1SY+EmxEsfbEN1wDEzM8/u9AKUg/jrxxPEwsgbew==} + + '@atproto-labs/pipe@0.1.1': + resolution: {integrity: sha512-hdNw2oUs2B6BN1lp+32pF7cp8EMKuIN5Qok2Vvv/aOpG/3tNSJ9YkvfI0k6Zd188LeDDYRUpYpxcoFIcGH/FNg==} + + '@atproto-labs/simple-store-memory@0.1.4': + resolution: {integrity: sha512-3mKY4dP8I7yKPFj9VKpYyCRzGJOi5CEpOLPlRhoJyLmgs3J4RzDrjn323Oakjz2Aj2JzRU/AIvWRAZVhpYNJHw==} + + '@atproto-labs/simple-store@0.3.0': + resolution: {integrity: sha512-nOb6ONKBRJHRlukW1sVawUkBqReLlLx6hT35VS3imaNPwiXDxLnTK7lxw3Lrl9k5yugSBDQAkZAq3MPTEFSUBQ==} + + '@atproto/api@0.18.9': + resolution: {integrity: sha512-ft+0+sczS0qsoxwjqO1VhCXSNG792QEr+uQ91OCc36DTa3sPtaTPL7yNOVTDyEHaYDfp8tYN4v+Pq5/bzz3EpA==} + + '@atproto/common-web@0.4.8': + resolution: {integrity: sha512-2YDVTYAXmd8UStebscDglisrxT5q7qt+0Fbf2zpkOITeNEEXCeTcoE0X369/ssdPtiw4CMq2rGHDH003SO7bdQ==} + + '@atproto/did@0.2.3': + resolution: {integrity: sha512-VI8JJkSizvM2cHYJa37WlbzeCm5tWpojyc1/Zy8q8OOjyoy6X4S4BEfoP941oJcpxpMTObamibQIXQDo7tnIjg==} + + '@atproto/jwk-jose@0.1.11': + resolution: {integrity: sha512-i4Fnr2sTBYmMmHXl7NJh8GrCH+tDQEVWrcDMDnV5DjJfkgT17wIqvojIw9SNbSL4Uf0OtfEv6AgG0A+mgh8b5Q==} + + '@atproto/jwk-webcrypto@0.2.0': + resolution: {integrity: sha512-UmgRrrEAkWvxwhlwe30UmDOdTEFidlIzBC7C3cCbeJMcBN1x8B3KH+crXrsTqfWQBG58mXgt8wgSK3Kxs2LhFg==} + + '@atproto/jwk@0.6.0': + resolution: {integrity: sha512-bDoJPvt7TrQVi/rBfBrSSpGykhtIriKxeYCYQTiPRKFfyRhbgpElF0wPXADjIswnbzZdOwbY63az4E/CFVT3Tw==} + + '@atproto/lex-data@0.0.4': + resolution: {integrity: sha512-ziWY8R4wJ0NGDSlt+gzPxMsIh1DXFeLt+lsBoVc6wPaJamCxngwWAxONuQ3p9oRE6zR/gXsCOdtZAH5yjWW5ag==} + + '@atproto/lex-json@0.0.4': + resolution: {integrity: sha512-BTBnRZUW7XFCbJnuSMvUZSLXYP6RK/RdTg68sySoK+Hg0A5k43uniA7xtFhJFZCfZ96brl3k/ykdVh76LizQ8Q==} + + '@atproto/lexicon@0.6.0': + resolution: {integrity: sha512-5veb8aD+J5M0qszLJ+73KSFsFrJBgAY/nM1TSAJvGY7fNc9ZAT+PSUlmIyrdye9YznAZ07yktalls/TwNV7cHQ==} + + '@atproto/oauth-client-browser@0.3.38': + resolution: {integrity: sha512-n7LCmG7J3sMDOIuDbUpJEhQHmLKi8TMPO/fPiLGCAHPlM7DKEV+TEX9Y+F3WY3Cxrl9ajIN7ZOMlGpxk8vUfkQ==} + + '@atproto/oauth-client@0.5.12': + resolution: {integrity: sha512-Noc+NQs4lCw1XnrF96zrZ1sMuAzxWCKdgfoMIEQA0lIuNWd1Td6t7TACo6yxIdEHlqBmLDAQFs8iDArVH4v6gg==} + + '@atproto/oauth-types@0.6.0': + resolution: {integrity: sha512-MiDttF9r0O5CiClBeLcn+QrFd64bVrbmuZ/I0yJn8/Gt2CLAZ5GZHLUi4hq5s+cYjUZtZTLYtI9oqFDwCQmvUA==} + + '@atproto/syntax@0.4.2': + resolution: {integrity: sha512-X9XSRPinBy/0VQ677j8VXlBsYSsUXaiqxWVpGGxJYsAhugdQRb0jqaVKJFtm6RskeNkV6y9xclSUi9UYG/COrA==} + + '@atproto/xrpc@0.7.7': + resolution: {integrity: sha512-K1ZyO/BU8JNtXX5dmPp7b5UrkLMMqpsIa/Lrj5D3Su+j1Xwq1m6QJ2XJ1AgjEjkI1v4Muzm7klianLE6XGxtmA==} + + '@esbuild/aix-ppc64@0.27.2': + resolution: {integrity: sha512-GZMB+a0mOMZs4MpDbj8RJp4cw+w1WV5NYD6xzgvzUJ5Ek2jerwfO2eADyI6ExDSUED+1X8aMbegahsJi+8mgpw==} + engines: {node: '>=18'} + cpu: [ppc64] + os: [aix] + + '@esbuild/android-arm64@0.27.2': + resolution: {integrity: sha512-pvz8ZZ7ot/RBphf8fv60ljmaoydPU12VuXHImtAs0XhLLw+EXBi2BLe3OYSBslR4rryHvweW5gmkKFwTiFy6KA==} + engines: {node: '>=18'} + cpu: [arm64] + os: [android] + + '@esbuild/android-arm@0.27.2': + resolution: {integrity: sha512-DVNI8jlPa7Ujbr1yjU2PfUSRtAUZPG9I1RwW4F4xFB1Imiu2on0ADiI/c3td+KmDtVKNbi+nffGDQMfcIMkwIA==} + engines: {node: '>=18'} + cpu: [arm] + os: [android] + + '@esbuild/android-x64@0.27.2': + resolution: {integrity: sha512-z8Ank4Byh4TJJOh4wpz8g2vDy75zFL0TlZlkUkEwYXuPSgX8yzep596n6mT7905kA9uHZsf/o2OJZubl2l3M7A==} + engines: {node: '>=18'} + cpu: [x64] + os: [android] + + '@esbuild/darwin-arm64@0.27.2': + resolution: {integrity: sha512-davCD2Zc80nzDVRwXTcQP/28fiJbcOwvdolL0sOiOsbwBa72kegmVU0Wrh1MYrbuCL98Omp5dVhQFWRKR2ZAlg==} + engines: {node: '>=18'} + cpu: [arm64] + os: [darwin] + + '@esbuild/darwin-x64@0.27.2': + resolution: {integrity: sha512-ZxtijOmlQCBWGwbVmwOF/UCzuGIbUkqB1faQRf5akQmxRJ1ujusWsb3CVfk/9iZKr2L5SMU5wPBi1UWbvL+VQA==} + engines: {node: '>=18'} + cpu: [x64] + os: [darwin] + + '@esbuild/freebsd-arm64@0.27.2': + resolution: {integrity: sha512-lS/9CN+rgqQ9czogxlMcBMGd+l8Q3Nj1MFQwBZJyoEKI50XGxwuzznYdwcav6lpOGv5BqaZXqvBSiB/kJ5op+g==} + engines: {node: '>=18'} + cpu: [arm64] + os: [freebsd] + + '@esbuild/freebsd-x64@0.27.2': + resolution: {integrity: sha512-tAfqtNYb4YgPnJlEFu4c212HYjQWSO/w/h/lQaBK7RbwGIkBOuNKQI9tqWzx7Wtp7bTPaGC6MJvWI608P3wXYA==} + engines: {node: '>=18'} + cpu: [x64] + os: [freebsd] + + '@esbuild/linux-arm64@0.27.2': + resolution: {integrity: sha512-hYxN8pr66NsCCiRFkHUAsxylNOcAQaxSSkHMMjcpx0si13t1LHFphxJZUiGwojB1a/Hd5OiPIqDdXONia6bhTw==} + engines: {node: '>=18'} + cpu: [arm64] + os: [linux] + + '@esbuild/linux-arm@0.27.2': + resolution: {integrity: sha512-vWfq4GaIMP9AIe4yj1ZUW18RDhx6EPQKjwe7n8BbIecFtCQG4CfHGaHuh7fdfq+y3LIA2vGS/o9ZBGVxIDi9hw==} + engines: {node: '>=18'} + cpu: [arm] + os: [linux] + + '@esbuild/linux-ia32@0.27.2': + resolution: {integrity: sha512-MJt5BRRSScPDwG2hLelYhAAKh9imjHK5+NE/tvnRLbIqUWa+0E9N4WNMjmp/kXXPHZGqPLxggwVhz7QP8CTR8w==} + engines: {node: '>=18'} + cpu: [ia32] + os: [linux] + + '@esbuild/linux-loong64@0.27.2': + resolution: {integrity: sha512-lugyF1atnAT463aO6KPshVCJK5NgRnU4yb3FUumyVz+cGvZbontBgzeGFO1nF+dPueHD367a2ZXe1NtUkAjOtg==} + engines: {node: '>=18'} + cpu: [loong64] + os: [linux] + + '@esbuild/linux-mips64el@0.27.2': + resolution: {integrity: sha512-nlP2I6ArEBewvJ2gjrrkESEZkB5mIoaTswuqNFRv/WYd+ATtUpe9Y09RnJvgvdag7he0OWgEZWhviS1OTOKixw==} + engines: {node: '>=18'} + cpu: [mips64el] + os: [linux] + + '@esbuild/linux-ppc64@0.27.2': + resolution: {integrity: sha512-C92gnpey7tUQONqg1n6dKVbx3vphKtTHJaNG2Ok9lGwbZil6DrfyecMsp9CrmXGQJmZ7iiVXvvZH6Ml5hL6XdQ==} + engines: {node: '>=18'} + cpu: [ppc64] + os: [linux] + + '@esbuild/linux-riscv64@0.27.2': + resolution: {integrity: sha512-B5BOmojNtUyN8AXlK0QJyvjEZkWwy/FKvakkTDCziX95AowLZKR6aCDhG7LeF7uMCXEJqwa8Bejz5LTPYm8AvA==} + engines: {node: '>=18'} + cpu: [riscv64] + os: [linux] + + '@esbuild/linux-s390x@0.27.2': + resolution: {integrity: sha512-p4bm9+wsPwup5Z8f4EpfN63qNagQ47Ua2znaqGH6bqLlmJ4bx97Y9JdqxgGZ6Y8xVTixUnEkoKSHcpRlDnNr5w==} + engines: {node: '>=18'} + cpu: [s390x] + os: [linux] + + '@esbuild/linux-x64@0.27.2': + resolution: {integrity: sha512-uwp2Tip5aPmH+NRUwTcfLb+W32WXjpFejTIOWZFw/v7/KnpCDKG66u4DLcurQpiYTiYwQ9B7KOeMJvLCu/OvbA==} + engines: {node: '>=18'} + cpu: [x64] + os: [linux] + + '@esbuild/netbsd-arm64@0.27.2': + resolution: {integrity: sha512-Kj6DiBlwXrPsCRDeRvGAUb/LNrBASrfqAIok+xB0LxK8CHqxZ037viF13ugfsIpePH93mX7xfJp97cyDuTZ3cw==} + engines: {node: '>=18'} + cpu: [arm64] + os: [netbsd] + + '@esbuild/netbsd-x64@0.27.2': + resolution: {integrity: sha512-HwGDZ0VLVBY3Y+Nw0JexZy9o/nUAWq9MlV7cahpaXKW6TOzfVno3y3/M8Ga8u8Yr7GldLOov27xiCnqRZf0tCA==} + engines: {node: '>=18'} + cpu: [x64] + os: [netbsd] + + '@esbuild/openbsd-arm64@0.27.2': + resolution: {integrity: sha512-DNIHH2BPQ5551A7oSHD0CKbwIA/Ox7+78/AWkbS5QoRzaqlev2uFayfSxq68EkonB+IKjiuxBFoV8ESJy8bOHA==} + engines: {node: '>=18'} + cpu: [arm64] + os: [openbsd] + + '@esbuild/openbsd-x64@0.27.2': + resolution: {integrity: sha512-/it7w9Nb7+0KFIzjalNJVR5bOzA9Vay+yIPLVHfIQYG/j+j9VTH84aNB8ExGKPU4AzfaEvN9/V4HV+F+vo8OEg==} + engines: {node: '>=18'} + cpu: [x64] + os: [openbsd] + + '@esbuild/openharmony-arm64@0.27.2': + resolution: {integrity: sha512-LRBbCmiU51IXfeXk59csuX/aSaToeG7w48nMwA6049Y4J4+VbWALAuXcs+qcD04rHDuSCSRKdmY63sruDS5qag==} + engines: {node: '>=18'} + cpu: [arm64] + os: [openharmony] + + '@esbuild/sunos-x64@0.27.2': + resolution: {integrity: sha512-kMtx1yqJHTmqaqHPAzKCAkDaKsffmXkPHThSfRwZGyuqyIeBvf08KSsYXl+abf5HDAPMJIPnbBfXvP2ZC2TfHg==} + engines: {node: '>=18'} + cpu: [x64] + os: [sunos] + + '@esbuild/win32-arm64@0.27.2': + resolution: {integrity: sha512-Yaf78O/B3Kkh+nKABUF++bvJv5Ijoy9AN1ww904rOXZFLWVc5OLOfL56W+C8F9xn5JQZa3UX6m+IktJnIb1Jjg==} + engines: {node: '>=18'} + cpu: [arm64] + os: [win32] + + '@esbuild/win32-ia32@0.27.2': + resolution: {integrity: sha512-Iuws0kxo4yusk7sw70Xa2E2imZU5HoixzxfGCdxwBdhiDgt9vX9VUCBhqcwY7/uh//78A1hMkkROMJq9l27oLQ==} + engines: {node: '>=18'} + cpu: [ia32] + os: [win32] + + '@esbuild/win32-x64@0.27.2': + resolution: {integrity: sha512-sRdU18mcKf7F+YgheI/zGf5alZatMUTKj/jNS6l744f9u3WFu4v7twcUI9vu4mknF4Y9aDlblIie0IM+5xxaqQ==} + engines: {node: '>=18'} + cpu: [x64] + os: [win32] + + '@rollup/rollup-android-arm-eabi@4.54.0': + resolution: {integrity: sha512-OywsdRHrFvCdvsewAInDKCNyR3laPA2mc9bRYJ6LBp5IyvF3fvXbbNR0bSzHlZVFtn6E0xw2oZlyjg4rKCVcng==} + cpu: [arm] + os: [android] + + '@rollup/rollup-android-arm64@4.54.0': + resolution: {integrity: sha512-Skx39Uv+u7H224Af+bDgNinitlmHyQX1K/atIA32JP3JQw6hVODX5tkbi2zof/E69M1qH2UoN3Xdxgs90mmNYw==} + cpu: [arm64] + os: [android] + + '@rollup/rollup-darwin-arm64@4.54.0': + resolution: {integrity: sha512-k43D4qta/+6Fq+nCDhhv9yP2HdeKeP56QrUUTW7E6PhZP1US6NDqpJj4MY0jBHlJivVJD5P8NxrjuobZBJTCRw==} + cpu: [arm64] + os: [darwin] + + '@rollup/rollup-darwin-x64@4.54.0': + resolution: {integrity: sha512-cOo7biqwkpawslEfox5Vs8/qj83M/aZCSSNIWpVzfU2CYHa2G3P1UN5WF01RdTHSgCkri7XOlTdtk17BezlV3A==} + cpu: [x64] + os: [darwin] + + '@rollup/rollup-freebsd-arm64@4.54.0': + resolution: {integrity: sha512-miSvuFkmvFbgJ1BevMa4CPCFt5MPGw094knM64W9I0giUIMMmRYcGW/JWZDriaw/k1kOBtsWh1z6nIFV1vPNtA==} + cpu: [arm64] + os: [freebsd] + + '@rollup/rollup-freebsd-x64@4.54.0': + resolution: {integrity: sha512-KGXIs55+b/ZfZsq9aR026tmr/+7tq6VG6MsnrvF4H8VhwflTIuYh+LFUlIsRdQSgrgmtM3fVATzEAj4hBQlaqQ==} + cpu: [x64] + os: [freebsd] + + '@rollup/rollup-linux-arm-gnueabihf@4.54.0': + resolution: {integrity: sha512-EHMUcDwhtdRGlXZsGSIuXSYwD5kOT9NVnx9sqzYiwAc91wfYOE1g1djOEDseZJKKqtHAHGwnGPQu3kytmfaXLQ==} + cpu: [arm] + os: [linux] + + '@rollup/rollup-linux-arm-musleabihf@4.54.0': + resolution: {integrity: sha512-+pBrqEjaakN2ySv5RVrj/qLytYhPKEUwk+e3SFU5jTLHIcAtqh2rLrd/OkbNuHJpsBgxsD8ccJt5ga/SeG0JmA==} + cpu: [arm] + os: [linux] + + '@rollup/rollup-linux-arm64-gnu@4.54.0': + resolution: {integrity: sha512-NSqc7rE9wuUaRBsBp5ckQ5CVz5aIRKCwsoa6WMF7G01sX3/qHUw/z4pv+D+ahL1EIKy6Enpcnz1RY8pf7bjwng==} + cpu: [arm64] + os: [linux] + + '@rollup/rollup-linux-arm64-musl@4.54.0': + resolution: {integrity: sha512-gr5vDbg3Bakga5kbdpqx81m2n9IX8M6gIMlQQIXiLTNeQW6CucvuInJ91EuCJ/JYvc+rcLLsDFcfAD1K7fMofg==} + cpu: [arm64] + os: [linux] + + '@rollup/rollup-linux-loong64-gnu@4.54.0': + resolution: {integrity: sha512-gsrtB1NA3ZYj2vq0Rzkylo9ylCtW/PhpLEivlgWe0bpgtX5+9j9EZa0wtZiCjgu6zmSeZWyI/e2YRX1URozpIw==} + cpu: [loong64] + os: [linux] + + '@rollup/rollup-linux-ppc64-gnu@4.54.0': + resolution: {integrity: sha512-y3qNOfTBStmFNq+t4s7Tmc9hW2ENtPg8FeUD/VShI7rKxNW7O4fFeaYbMsd3tpFlIg1Q8IapFgy7Q9i2BqeBvA==} + cpu: [ppc64] + os: [linux] + + '@rollup/rollup-linux-riscv64-gnu@4.54.0': + resolution: {integrity: sha512-89sepv7h2lIVPsFma8iwmccN7Yjjtgz0Rj/Ou6fEqg3HDhpCa+Et+YSufy27i6b0Wav69Qv4WBNl3Rs6pwhebQ==} + cpu: [riscv64] + os: [linux] + + '@rollup/rollup-linux-riscv64-musl@4.54.0': + resolution: {integrity: sha512-ZcU77ieh0M2Q8Ur7D5X7KvK+UxbXeDHwiOt/CPSBTI1fBmeDMivW0dPkdqkT4rOgDjrDDBUed9x4EgraIKoR2A==} + cpu: [riscv64] + os: [linux] + + '@rollup/rollup-linux-s390x-gnu@4.54.0': + resolution: {integrity: sha512-2AdWy5RdDF5+4YfG/YesGDDtbyJlC9LHmL6rZw6FurBJ5n4vFGupsOBGfwMRjBYH7qRQowT8D/U4LoSvVwOhSQ==} + cpu: [s390x] + os: [linux] + + '@rollup/rollup-linux-x64-gnu@4.54.0': + resolution: {integrity: sha512-WGt5J8Ij/rvyqpFexxk3ffKqqbLf9AqrTBbWDk7ApGUzaIs6V+s2s84kAxklFwmMF/vBNGrVdYgbblCOFFezMQ==} + cpu: [x64] + os: [linux] + + '@rollup/rollup-linux-x64-musl@4.54.0': + resolution: {integrity: sha512-JzQmb38ATzHjxlPHuTH6tE7ojnMKM2kYNzt44LO/jJi8BpceEC8QuXYA908n8r3CNuG/B3BV8VR3Hi1rYtmPiw==} + cpu: [x64] + os: [linux] + + '@rollup/rollup-openharmony-arm64@4.54.0': + resolution: {integrity: sha512-huT3fd0iC7jigGh7n3q/+lfPcXxBi+om/Rs3yiFxjvSxbSB6aohDFXbWvlspaqjeOh+hx7DDHS+5Es5qRkWkZg==} + cpu: [arm64] + os: [openharmony] + + '@rollup/rollup-win32-arm64-msvc@4.54.0': + resolution: {integrity: sha512-c2V0W1bsKIKfbLMBu/WGBz6Yci8nJ/ZJdheE0EwB73N3MvHYKiKGs3mVilX4Gs70eGeDaMqEob25Tw2Gb9Nqyw==} + cpu: [arm64] + os: [win32] + + '@rollup/rollup-win32-ia32-msvc@4.54.0': + resolution: {integrity: sha512-woEHgqQqDCkAzrDhvDipnSirm5vxUXtSKDYTVpZG3nUdW/VVB5VdCYA2iReSj/u3yCZzXID4kuKG7OynPnB3WQ==} + cpu: [ia32] + os: [win32] + + '@rollup/rollup-win32-x64-gnu@4.54.0': + resolution: {integrity: sha512-dzAc53LOuFvHwbCEOS0rPbXp6SIhAf2txMP5p6mGyOXXw5mWY8NGGbPMPrs4P1WItkfApDathBj/NzMLUZ9rtQ==} + cpu: [x64] + os: [win32] + + '@rollup/rollup-win32-x64-msvc@4.54.0': + resolution: {integrity: sha512-hYT5d3YNdSh3mbCU1gwQyPgQd3T2ne0A3KG8KSBdav5TiBg6eInVmV+TeR5uHufiIgSFg0XsOWGW5/RhNcSvPg==} + cpu: [x64] + os: [win32] + + '@types/estree@1.0.8': + resolution: {integrity: sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==} + + await-lock@2.2.2: + resolution: {integrity: sha512-aDczADvlvTGajTDjcjpJMqRkOF6Qdz3YbPZm/PyW6tKPkx2hlYBzxMhEywM/tU72HrVZjgl5VCdRuMlA7pZ8Gw==} + + core-js@3.47.0: + resolution: {integrity: sha512-c3Q2VVkGAUyupsjRnaNX6u8Dq2vAdzm9iuPj5FW0fRxzlxgq9Q39MDq10IvmQSpLgHQNyQzQmOo6bgGHmH3NNg==} + + esbuild@0.27.2: + resolution: {integrity: sha512-HyNQImnsOC7X9PMNaCIeAm4ISCQXs5a5YasTXVliKv4uuBo1dKrG0A+uQS8M5eXjVMnLg3WgXaKvprHlFJQffw==} + engines: {node: '>=18'} + hasBin: true + + fdir@6.5.0: + resolution: {integrity: sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==} + engines: {node: '>=12.0.0'} + peerDependencies: + picomatch: ^3 || ^4 + peerDependenciesMeta: + picomatch: + optional: true + + fsevents@2.3.3: + resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==} + engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} + os: [darwin] + + iso-datestring-validator@2.2.2: + resolution: {integrity: sha512-yLEMkBbLZTlVQqOnQ4FiMujR6T4DEcCb1xizmvXS+OxuhwcbtynoosRzdMA69zZCShCNAbi+gJ71FxZBBXx1SA==} + + jose@5.10.0: + resolution: {integrity: sha512-s+3Al/p9g32Iq+oqXxkW//7jk2Vig6FF1CFqzVXoTUXt2qz89YWbL+OwS17NFYEvxC35n0FKeGO2LGYSxeM2Gg==} + + lru-cache@10.4.3: + resolution: {integrity: sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==} + + multiformats@9.9.0: + resolution: {integrity: sha512-HoMUjhH9T8DDBNT+6xzkrd9ga/XiBI4xLr58LJACwK6G3HTOPeMz4nB4KJs33L2BelrIJa7P0VuNaVF3hMYfjg==} + + nanoid@3.3.11: + resolution: {integrity: sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==} + engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} + hasBin: true + + picocolors@1.1.1: + resolution: {integrity: sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==} + + picomatch@4.0.3: + resolution: {integrity: sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==} + engines: {node: '>=12'} + + postcss@8.5.6: + resolution: {integrity: sha512-3Ybi1tAuwAP9s0r1UQ2J4n5Y0G05bJkpUIO0/bI9MhwmD70S5aTWbXGBwxHrelT+XM1k6dM0pk+SwNkpTRN7Pg==} + engines: {node: ^10 || ^12 || >=14} + + rollup@4.54.0: + resolution: {integrity: sha512-3nk8Y3a9Ea8szgKhinMlGMhGMw89mqule3KWczxhIzqudyHdCIOHw8WJlj/r329fACjKLEh13ZSk7oE22kyeIw==} + engines: {node: '>=18.0.0', npm: '>=8.0.0'} + hasBin: true + + source-map-js@1.2.1: + resolution: {integrity: sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==} + engines: {node: '>=0.10.0'} + + tinyglobby@0.2.15: + resolution: {integrity: sha512-j2Zq4NyQYG5XMST4cbs02Ak8iJUdxRM0XI5QyxXuZOzKOINmWurp3smXu3y5wDcJrptwpSjgXHzIQxR0omXljQ==} + engines: {node: '>=12.0.0'} + + tlds@1.261.0: + resolution: {integrity: sha512-QXqwfEl9ddlGBaRFXIvNKK6OhipSiLXuRuLJX5DErz0o0Q0rYxulWLdFryTkV5PkdZct5iMInwYEGe/eR++1AA==} + hasBin: true + + tslib@2.8.1: + resolution: {integrity: sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==} + + uint8arrays@3.0.0: + resolution: {integrity: sha512-HRCx0q6O9Bfbp+HHSfQQKD7wU70+lydKVt4EghkdOvlK/NlrF90z+eXV34mUd48rNvVJXwkrMSPpCATkct8fJA==} + + unicode-segmenter@0.14.5: + resolution: {integrity: sha512-jHGmj2LUuqDcX3hqY12Ql+uhUTn8huuxNZGq7GvtF6bSybzH3aFgedYu/KTzQStEgt1Ra2F3HxadNXsNjb3m3g==} + + vite@7.3.0: + resolution: {integrity: sha512-dZwN5L1VlUBewiP6H9s2+B3e3Jg96D0vzN+Ry73sOefebhYr9f94wwkMNN/9ouoU8pV1BqA1d1zGk8928cx0rg==} + engines: {node: ^20.19.0 || >=22.12.0} + hasBin: true + peerDependencies: + '@types/node': ^20.19.0 || >=22.12.0 + jiti: '>=1.21.0' + less: ^4.0.0 + lightningcss: ^1.21.0 + sass: ^1.70.0 + sass-embedded: ^1.70.0 + stylus: '>=0.54.8' + sugarss: ^5.0.0 + terser: ^5.16.0 + tsx: ^4.8.1 + yaml: ^2.4.2 + peerDependenciesMeta: + '@types/node': + optional: true + jiti: + optional: true + less: + optional: true + lightningcss: + optional: true + sass: + optional: true + sass-embedded: + optional: true + stylus: + optional: true + sugarss: + optional: true + terser: + optional: true + tsx: + optional: true + yaml: + optional: true + + zod@3.25.76: + resolution: {integrity: sha512-gzUt/qt81nXsFGKIFcC3YnfEAx5NkunCfnDlvuBSSFS02bcXu4Lmea0AFIUwbLWxWPx3d9p8S5QoaujKcNQxcQ==} + +snapshots: + + '@atproto-labs/did-resolver@0.2.4': + dependencies: + '@atproto-labs/fetch': 0.2.3 + '@atproto-labs/pipe': 0.1.1 + '@atproto-labs/simple-store': 0.3.0 + '@atproto-labs/simple-store-memory': 0.1.4 + '@atproto/did': 0.2.3 + zod: 3.25.76 + + '@atproto-labs/fetch@0.2.3': + dependencies: + '@atproto-labs/pipe': 0.1.1 + + '@atproto-labs/handle-resolver@0.3.4': + dependencies: + '@atproto-labs/simple-store': 0.3.0 + '@atproto-labs/simple-store-memory': 0.1.4 + '@atproto/did': 0.2.3 + zod: 3.25.76 + + '@atproto-labs/identity-resolver@0.3.4': + dependencies: + '@atproto-labs/did-resolver': 0.2.4 + '@atproto-labs/handle-resolver': 0.3.4 + + '@atproto-labs/pipe@0.1.1': {} + + '@atproto-labs/simple-store-memory@0.1.4': + dependencies: + '@atproto-labs/simple-store': 0.3.0 + lru-cache: 10.4.3 + + '@atproto-labs/simple-store@0.3.0': {} + + '@atproto/api@0.18.9': + dependencies: + '@atproto/common-web': 0.4.8 + '@atproto/lexicon': 0.6.0 + '@atproto/syntax': 0.4.2 + '@atproto/xrpc': 0.7.7 + await-lock: 2.2.2 + multiformats: 9.9.0 + tlds: 1.261.0 + zod: 3.25.76 + + '@atproto/common-web@0.4.8': + dependencies: + '@atproto/lex-data': 0.0.4 + '@atproto/lex-json': 0.0.4 + zod: 3.25.76 + + '@atproto/did@0.2.3': + dependencies: + zod: 3.25.76 + + '@atproto/jwk-jose@0.1.11': + dependencies: + '@atproto/jwk': 0.6.0 + jose: 5.10.0 + + '@atproto/jwk-webcrypto@0.2.0': + dependencies: + '@atproto/jwk': 0.6.0 + '@atproto/jwk-jose': 0.1.11 + zod: 3.25.76 + + '@atproto/jwk@0.6.0': + dependencies: + multiformats: 9.9.0 + zod: 3.25.76 + + '@atproto/lex-data@0.0.4': + dependencies: + '@atproto/syntax': 0.4.2 + multiformats: 9.9.0 + tslib: 2.8.1 + uint8arrays: 3.0.0 + unicode-segmenter: 0.14.5 + + '@atproto/lex-json@0.0.4': + dependencies: + '@atproto/lex-data': 0.0.4 + tslib: 2.8.1 + + '@atproto/lexicon@0.6.0': + dependencies: + '@atproto/common-web': 0.4.8 + '@atproto/syntax': 0.4.2 + iso-datestring-validator: 2.2.2 + multiformats: 9.9.0 + zod: 3.25.76 + + '@atproto/oauth-client-browser@0.3.38': + dependencies: + '@atproto-labs/did-resolver': 0.2.4 + '@atproto-labs/handle-resolver': 0.3.4 + '@atproto-labs/simple-store': 0.3.0 + '@atproto/did': 0.2.3 + '@atproto/jwk': 0.6.0 + '@atproto/jwk-webcrypto': 0.2.0 + '@atproto/oauth-client': 0.5.12 + '@atproto/oauth-types': 0.6.0 + core-js: 3.47.0 + + '@atproto/oauth-client@0.5.12': + dependencies: + '@atproto-labs/did-resolver': 0.2.4 + '@atproto-labs/fetch': 0.2.3 + '@atproto-labs/handle-resolver': 0.3.4 + '@atproto-labs/identity-resolver': 0.3.4 + '@atproto-labs/simple-store': 0.3.0 + '@atproto-labs/simple-store-memory': 0.1.4 + '@atproto/did': 0.2.3 + '@atproto/jwk': 0.6.0 + '@atproto/oauth-types': 0.6.0 + '@atproto/xrpc': 0.7.7 + core-js: 3.47.0 + multiformats: 9.9.0 + zod: 3.25.76 + + '@atproto/oauth-types@0.6.0': + dependencies: + '@atproto/did': 0.2.3 + '@atproto/jwk': 0.6.0 + zod: 3.25.76 + + '@atproto/syntax@0.4.2': {} + + '@atproto/xrpc@0.7.7': + dependencies: + '@atproto/lexicon': 0.6.0 + zod: 3.25.76 + + '@esbuild/aix-ppc64@0.27.2': + optional: true + + '@esbuild/android-arm64@0.27.2': + optional: true + + '@esbuild/android-arm@0.27.2': + optional: true + + '@esbuild/android-x64@0.27.2': + optional: true + + '@esbuild/darwin-arm64@0.27.2': + optional: true + + '@esbuild/darwin-x64@0.27.2': + optional: true + + '@esbuild/freebsd-arm64@0.27.2': + optional: true + + '@esbuild/freebsd-x64@0.27.2': + optional: true + + '@esbuild/linux-arm64@0.27.2': + optional: true + + '@esbuild/linux-arm@0.27.2': + optional: true + + '@esbuild/linux-ia32@0.27.2': + optional: true + + '@esbuild/linux-loong64@0.27.2': + optional: true + + '@esbuild/linux-mips64el@0.27.2': + optional: true + + '@esbuild/linux-ppc64@0.27.2': + optional: true + + '@esbuild/linux-riscv64@0.27.2': + optional: true + + '@esbuild/linux-s390x@0.27.2': + optional: true + + '@esbuild/linux-x64@0.27.2': + optional: true + + '@esbuild/netbsd-arm64@0.27.2': + optional: true + + '@esbuild/netbsd-x64@0.27.2': + optional: true + + '@esbuild/openbsd-arm64@0.27.2': + optional: true + + '@esbuild/openbsd-x64@0.27.2': + optional: true + + '@esbuild/openharmony-arm64@0.27.2': + optional: true + + '@esbuild/sunos-x64@0.27.2': + optional: true + + '@esbuild/win32-arm64@0.27.2': + optional: true + + '@esbuild/win32-ia32@0.27.2': + optional: true + + '@esbuild/win32-x64@0.27.2': + optional: true + + '@rollup/rollup-android-arm-eabi@4.54.0': + optional: true + + '@rollup/rollup-android-arm64@4.54.0': + optional: true + + '@rollup/rollup-darwin-arm64@4.54.0': + optional: true + + '@rollup/rollup-darwin-x64@4.54.0': + optional: true + + '@rollup/rollup-freebsd-arm64@4.54.0': + optional: true + + '@rollup/rollup-freebsd-x64@4.54.0': + optional: true + + '@rollup/rollup-linux-arm-gnueabihf@4.54.0': + optional: true + + '@rollup/rollup-linux-arm-musleabihf@4.54.0': + optional: true + + '@rollup/rollup-linux-arm64-gnu@4.54.0': + optional: true + + '@rollup/rollup-linux-arm64-musl@4.54.0': + optional: true + + '@rollup/rollup-linux-loong64-gnu@4.54.0': + optional: true + + '@rollup/rollup-linux-ppc64-gnu@4.54.0': + optional: true + + '@rollup/rollup-linux-riscv64-gnu@4.54.0': + optional: true + + '@rollup/rollup-linux-riscv64-musl@4.54.0': + optional: true + + '@rollup/rollup-linux-s390x-gnu@4.54.0': + optional: true + + '@rollup/rollup-linux-x64-gnu@4.54.0': + optional: true + + '@rollup/rollup-linux-x64-musl@4.54.0': + optional: true + + '@rollup/rollup-openharmony-arm64@4.54.0': + optional: true + + '@rollup/rollup-win32-arm64-msvc@4.54.0': + optional: true + + '@rollup/rollup-win32-ia32-msvc@4.54.0': + optional: true + + '@rollup/rollup-win32-x64-gnu@4.54.0': + optional: true + + '@rollup/rollup-win32-x64-msvc@4.54.0': + optional: true + + '@types/estree@1.0.8': {} + + await-lock@2.2.2: {} + + core-js@3.47.0: {} + + esbuild@0.27.2: + optionalDependencies: + '@esbuild/aix-ppc64': 0.27.2 + '@esbuild/android-arm': 0.27.2 + '@esbuild/android-arm64': 0.27.2 + '@esbuild/android-x64': 0.27.2 + '@esbuild/darwin-arm64': 0.27.2 + '@esbuild/darwin-x64': 0.27.2 + '@esbuild/freebsd-arm64': 0.27.2 + '@esbuild/freebsd-x64': 0.27.2 + '@esbuild/linux-arm': 0.27.2 + '@esbuild/linux-arm64': 0.27.2 + '@esbuild/linux-ia32': 0.27.2 + '@esbuild/linux-loong64': 0.27.2 + '@esbuild/linux-mips64el': 0.27.2 + '@esbuild/linux-ppc64': 0.27.2 + '@esbuild/linux-riscv64': 0.27.2 + '@esbuild/linux-s390x': 0.27.2 + '@esbuild/linux-x64': 0.27.2 + '@esbuild/netbsd-arm64': 0.27.2 + '@esbuild/netbsd-x64': 0.27.2 + '@esbuild/openbsd-arm64': 0.27.2 + '@esbuild/openbsd-x64': 0.27.2 + '@esbuild/openharmony-arm64': 0.27.2 + '@esbuild/sunos-x64': 0.27.2 + '@esbuild/win32-arm64': 0.27.2 + '@esbuild/win32-ia32': 0.27.2 + '@esbuild/win32-x64': 0.27.2 + + fdir@6.5.0(picomatch@4.0.3): + optionalDependencies: + picomatch: 4.0.3 + + fsevents@2.3.3: + optional: true + + iso-datestring-validator@2.2.2: {} + + jose@5.10.0: {} + + lru-cache@10.4.3: {} + + multiformats@9.9.0: {} + + nanoid@3.3.11: {} + + picocolors@1.1.1: {} + + picomatch@4.0.3: {} + + postcss@8.5.6: + dependencies: + nanoid: 3.3.11 + picocolors: 1.1.1 + source-map-js: 1.2.1 + + rollup@4.54.0: + dependencies: + '@types/estree': 1.0.8 + optionalDependencies: + '@rollup/rollup-android-arm-eabi': 4.54.0 + '@rollup/rollup-android-arm64': 4.54.0 + '@rollup/rollup-darwin-arm64': 4.54.0 + '@rollup/rollup-darwin-x64': 4.54.0 + '@rollup/rollup-freebsd-arm64': 4.54.0 + '@rollup/rollup-freebsd-x64': 4.54.0 + '@rollup/rollup-linux-arm-gnueabihf': 4.54.0 + '@rollup/rollup-linux-arm-musleabihf': 4.54.0 + '@rollup/rollup-linux-arm64-gnu': 4.54.0 + '@rollup/rollup-linux-arm64-musl': 4.54.0 + '@rollup/rollup-linux-loong64-gnu': 4.54.0 + '@rollup/rollup-linux-ppc64-gnu': 4.54.0 + '@rollup/rollup-linux-riscv64-gnu': 4.54.0 + '@rollup/rollup-linux-riscv64-musl': 4.54.0 + '@rollup/rollup-linux-s390x-gnu': 4.54.0 + '@rollup/rollup-linux-x64-gnu': 4.54.0 + '@rollup/rollup-linux-x64-musl': 4.54.0 + '@rollup/rollup-openharmony-arm64': 4.54.0 + '@rollup/rollup-win32-arm64-msvc': 4.54.0 + '@rollup/rollup-win32-ia32-msvc': 4.54.0 + '@rollup/rollup-win32-x64-gnu': 4.54.0 + '@rollup/rollup-win32-x64-msvc': 4.54.0 + fsevents: 2.3.3 + + source-map-js@1.2.1: {} + + tinyglobby@0.2.15: + dependencies: + fdir: 6.5.0(picomatch@4.0.3) + picomatch: 4.0.3 + + tlds@1.261.0: {} + + tslib@2.8.1: {} + + uint8arrays@3.0.0: + dependencies: + multiformats: 9.9.0 + + unicode-segmenter@0.14.5: {} + + vite@7.3.0: + dependencies: + esbuild: 0.27.2 + fdir: 6.5.0(picomatch@4.0.3) + picomatch: 4.0.3 + postcss: 8.5.6 + rollup: 4.54.0 + tinyglobby: 0.2.15 + optionalDependencies: + fsevents: 2.3.3 + + zod@3.25.76: {} diff --git a/experimental/chatproto2/public/oauth-client-metadata.json b/experimental/chatproto2/public/oauth-client-metadata.json new file mode 100644 index 0000000..d44dbb3 --- /dev/null +++ b/experimental/chatproto2/public/oauth-client-metadata.json @@ -0,0 +1,18 @@ +{ + "redirect_uris": [ + "https://{yourdomain.com}" + ], + "response_types": [ + "code" + ], + "grant_types": [ + "authorization_code", + "refresh_token" + ], + "scope": "atproto transition:generic", + "token_endpoint_auth_method": "none", + "application_type": "web", + "subject_type": "public", + "client_id": "https://{yourdomain.com}/oauth-client-metadata.json", + "dpop_bound_access_tokens": true +} \ No newline at end of file diff --git a/experimental/chatproto2/public/vite.svg b/experimental/chatproto2/public/vite.svg new file mode 100644 index 0000000..e7b8dfb --- /dev/null +++ b/experimental/chatproto2/public/vite.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/experimental/chatproto2/src/javascript.svg b/experimental/chatproto2/src/javascript.svg new file mode 100644 index 0000000..f9abb2b --- /dev/null +++ b/experimental/chatproto2/src/javascript.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/experimental/chatproto2/src/main.js b/experimental/chatproto2/src/main.js new file mode 100644 index 0000000..a008a06 --- /dev/null +++ b/experimental/chatproto2/src/main.js @@ -0,0 +1,55 @@ +import './style.css' +import { + AtprotoDohHandleResolver, + atprotoLoopbackClientMetadata, + BrowserOAuthClient +} from '@atproto/oauth-client-browser' +import {showError, showLoggedInPage, showLoginForm} from "./ui.js"; +import { Agent } from '@atproto/api' +import clientMetadataUrl from '/oauth-client-metadata.json?url' + +// For localhost development +const scopes = ['atproto', 'transition:generic'] +const redirectUri = 'http://127.0.0.1:5173/callback' +const devClientId = `http://localhost?redirect_uri=${encodeURIComponent(redirectUri)}&scope=${encodeURIComponent(scopes.join(' '))}` + +//Can be any dns over http. +const resolver = new AtprotoDohHandleResolver({dohEndpoint: 'https://cloudflare-dns.com/dns-query'}); + + +const client = await BrowserOAuthClient.load({ + handleResolver: resolver, + // clientId: `${location.origin}${clientMetadataUrl}` + clientId: import.meta.env.VITE_OAUTH_DOMAIN ? `https://${import.meta.env.VITE_OAUTH_DOMAIN}${clientMetadataUrl}` : devClientId +}) + + +window.oauthClient = client + +try { + const result = await client.init() + //If a result is set and there is a session, the user is authenticated or was a successful callback + if (result) { + const {session, state} = result + if (state != null) { + console.log( + `${session.sub} was successfully authenticated (state: ${state})`, + ) + } else { + console.log(`${session.sub} was restored (last active session)`) + } + if (session) { + //This is what actually makes authenticated atproto requests + window.atpAgent = new Agent(session) + //Shows the logged in ui page + await showLoggedInPage(session) + } + } else { + //Shows the login form + showLoginForm() + } +} +catch (error) { + console.error('OAuth client initialization error:', error) + showError(error.message) +} diff --git a/experimental/chatproto2/src/style.css b/experimental/chatproto2/src/style.css new file mode 100644 index 0000000..c161876 --- /dev/null +++ b/experimental/chatproto2/src/style.css @@ -0,0 +1,253 @@ +:root { + font-family: system-ui, Avenir, Helvetica, Arial, sans-serif; + line-height: 1.5; + font-weight: 400; + + color-scheme: light dark; + color: rgba(255, 255, 255, 0.87); + background-color: #242424; + + font-synthesis: none; + text-rendering: optimizeLegibility; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; +} + +a { + font-weight: 500; + color: #14b8a6; + text-decoration: inherit; +} +a:hover { + color: #0d9488; +} + +body { + margin: 0; + display: flex; + place-items: center; + min-width: 320px; + min-height: 100vh; +} + +h1 { + font-size: 2em; + line-height: 1.1; + margin-bottom: 1.5em; +} + +#app { + max-width: 400px; + margin: 0 auto; + padding: 2rem; +} + +.container { + text-align: center; +} + +.form-group { + margin-bottom: 1rem; + text-align: left; +} + +.form-group label { + display: block; + margin-bottom: 0.5rem; + font-weight: 500; +} + +.form-group input { + width: 100%; + padding: 0.6em; + font-size: 1em; + font-family: inherit; + border: 1px solid #444; + border-radius: 4px; + background-color: #1a1a1a; + color: inherit; + box-sizing: border-box; +} + +.form-group input:focus { + outline: none; + border-color: #14b8a6; +} + +.error { + color: #ff6b6b; + font-size: 0.9em; + margin-top: 0.5rem; + min-height: 1.2em; +} + +.profile-card { + background-color: #1a1a1a; + padding: 1.5rem; + border-radius: 8px; + margin: 2rem 0; + display: flex; + align-items: center; + gap: 1rem; + text-align: left; +} + +.profile-avatar { + width: 80px; + height: 80px; + border-radius: 50%; + object-fit: cover; + flex-shrink: 0; +} + +.profile-info { + flex: 1; +} + +.profile-name { + margin: 0 0 0.25rem 0; + font-size: 1.3em; + font-weight: 600; +} + +.profile-handle { + margin: 0 0 0.75rem 0; + color: #888; + font-size: 0.9em; +} + +.profile-stats { + display: flex; + gap: 1.5rem; + font-size: 0.9em; +} + +.profile-stats span { + color: #888; +} + +.profile-stats strong { + color: inherit; + font-weight: 600; +} + +.notifications-section { + margin: 2rem 0; + text-align: left; +} + +.notifications-section h3 { + font-size: 1.2em; + margin: 0 0 1rem 0; + font-weight: 600; +} + +.notifications-list { + background-color: #1a1a1a; + border-radius: 8px; + overflow: hidden; +} + +.notification-item { + display: flex; + align-items: flex-start; + gap: 0.75rem; + padding: 1rem; + border-bottom: 1px solid #333; +} + +.notification-item:last-child { + border-bottom: none; +} + +.notification-item.unread { + background-color: rgba(20, 184, 166, 0.1); +} + +.notification-avatar { + width: 40px; + height: 40px; + border-radius: 50%; + object-fit: cover; + flex-shrink: 0; +} + +.notification-content { + flex: 1; +} + +.notification-text { + margin: 0 0 0.25rem 0; + font-size: 0.95em; + line-height: 1.4; +} + +.notification-text strong { + font-weight: 600; +} + +.notification-time { + margin: 0; + font-size: 0.85em; + color: #888; +} + +.session-info { + background-color: #1a1a1a; + padding: 1.5rem; + border-radius: 8px; + margin: 2rem 0; + text-align: left; +} + +.session-info p { + margin: 0.5rem 0; + word-break: break-all; +} + +button { + border-radius: 8px; + border: 1px solid transparent; + padding: 0.6em 1.2em; + font-size: 1em; + font-weight: 500; + font-family: inherit; + background-color: #14b8a6; + color: white; + cursor: pointer; + transition: background-color 0.25s; + width: 100%; + margin-top: 1rem; +} +button:hover { + background-color: #0d9488; +} +button:focus, +button:focus-visible { + outline: 4px auto -webkit-focus-ring-color; +} + +@media (prefers-color-scheme: light) { + :root { + color: #213547; + background-color: #ffffff; + } + a:hover { + color: #2dd4bf; + } + .form-group input { + background-color: #f9f9f9; + border-color: #ddd; + } + .profile-card, + .notifications-list, + .session-info { + background-color: #f9f9f9; + } + .notification-item { + border-bottom-color: #e0e0e0; + } + .notification-item.unread { + background-color: rgba(20, 184, 166, 0.05); + } +} diff --git a/experimental/chatproto2/src/ui.js b/experimental/chatproto2/src/ui.js new file mode 100644 index 0000000..71608fe --- /dev/null +++ b/experimental/chatproto2/src/ui.js @@ -0,0 +1,139 @@ +const appElement = document.getElementById('app') + +/** + * Shows the login form and sets a event listener for form submission to start the OAuth flow. + */ +function showLoginForm() { + appElement.innerHTML = ` +
+

ATProto OAuth Playground

+
+
+ + +
+
+ +
+
+ ` + + document.querySelector('#login-form').addEventListener('submit', async (e) => { + e.preventDefault() + + const handle = document.querySelector('#handle').value.trim() + const errorEl = document.querySelector('#error') + errorEl.textContent = '' + + try { + // This will redirect to the OAuth authorization page on the PDS + await window.oauthClient.signIn(handle) + } catch (error) { + console.error('Sign in error:', error) + errorEl.textContent = error.message || 'Failed to sign in. Please check your handle and try again.' + } + }) +} + +/** + * Demo component to show an authenticated request by fetching the user's notifications. + * @returns {Promise} + */ +async function notificationsList(){ + + const notifications = await window.atpAgent.app.bsky.notification.listNotifications({ + limit: 5 + }) + + return notifications.data.notifications.map(notif => { + const reasonText = { + 'like': 'liked your post', + 'repost': 'reposted your post', + 'follow': 'followed you', + 'mention': 'mentioned you', + 'reply': 'replied to your post', + 'quote': 'quoted your post' + }[notif.reason] || notif.reason + + return ` +
+ ${notif.author.displayName} +
+

+ ${notif.author.displayName || notif.author.handle} ${reasonText} +

+

${new Date(notif.indexedAt).toLocaleString()}

+
+
+ ` + }).join('') + +} + +/** + * Shows the logged in page with the user's profile and notifications. + */ +async function showLoggedInPage(session) { + const profile = await window.atpAgent.getProfile({ + actor: session.sub + }) + + const { avatar, displayName, handle, followersCount, followsCount } = profile.data + + + appElement.innerHTML = ` +
+

Logged In

+
+ Profile picture +
+

${displayName || handle}

+

@${handle}

+
+ ${followersCount || 0} Followers + ${followsCount || 0} Following +
+
+
+
+

Recent Notifications

+
+ ${await notificationsList()} +
+
+ +
+ ` + + document.querySelector('#logout').addEventListener('click', async () => { + try { + await window.oauthClient.revoke(session.sub) + showLoginForm() + } catch (error) { + console.error('Sign out error:', error) + } + }) +} + +/** + * + * DANGER WILL ROBINSON + */ +function showError(message) { + appElement.innerHTML = ` +
+ ` +} + + +export { showLoginForm, showLoggedInPage, showError } \ No newline at end of file diff --git a/experimental/chatproto2/vite.config.js b/experimental/chatproto2/vite.config.js new file mode 100644 index 0000000..46994c8 --- /dev/null +++ b/experimental/chatproto2/vite.config.js @@ -0,0 +1,7 @@ +export default { + // config options + server: { + host: '0.0.0.0', + allowedHosts: ['yourdomain.com'] + } +} \ No newline at end of file