From 2826077d7ad847b6145c627f3de4de682266eea8 Mon Sep 17 00:00:00 2001 From: Idrees Hassan Date: Mon, 3 Nov 2025 21:51:56 -0500 Subject: [PATCH] Add obsidian context --- browser-manifest.json | 2 +- dist/birb.js | 39 +++++++++++++++++++++++++++++++-- dist/extension.zip | Bin 147747 -> 147808 bytes dist/extension/birb.js | 39 +++++++++++++++++++++++++++++++-- dist/extension/manifest.json | 2 +- dist/obsidian/main.js | 39 +++++++++++++++++++++++++++++++-- dist/obsidian/manifest.json | 2 +- dist/userscript/birb.user.js | 41 ++++++++++++++++++++++++++++++++--- obsidian-manifest.json | 2 +- src/context.js | 37 ++++++++++++++++++++++++++++++- 10 files changed, 189 insertions(+), 14 deletions(-) diff --git a/browser-manifest.json b/browser-manifest.json index c9dad73..ab08464 100644 --- a/browser-manifest.json +++ b/browser-manifest.json @@ -2,7 +2,7 @@ "manifest_version": 3, "name": "Pocket Bird", "description": "It's a pet bird in your browser, what more could you want?", - "version": "2025.11.3.34", + "version": "2025.11.3.37", "homepage_url": "https://idreesinc.com", "icons": { "48": "images/icons/transparent/48x48x1.png", diff --git a/dist/birb.js b/dist/birb.js index de3a838..13a3c30 100644 --- a/dist/birb.js +++ b/dist/birb.js @@ -1012,8 +1012,43 @@ } } + class ObsidianContext extends Context { + + /** + * @override + * @returns {boolean} + */ + isContextActive() { + // @ts-expect-error + return typeof app !== "undefined" && typeof app.vault !== "undefined"; + } + + /** + * @override + * @returns {Promise} + */ + async getSaveData() { + log("Loading save data from Obsidian plugin storage unimplemented"); + return {}; + } + + /** + * @override + * @param {BirbSaveData} saveData + */ + async putSaveData(saveData) { + log("Saving data to Obsidian plugin storage unimplemented"); + } + + /** @override */ + resetSaveData() { + log("Resetting save data in Obsidian plugin storage unimplemented"); + } + } + const CONTEXTS = [ new UserScriptContext(), + new ObsidianContext(), new BrowserExtensionContext(), new LocalContext() ]; @@ -1025,7 +1060,7 @@ } } error("No applicable context found, defaulting to LocalContext"); - return CONTEXTS[0]; + return new LocalContext(); } /** @@ -1867,7 +1902,7 @@ insertModal(`${birdBirb()} Mode`, message); }), new Separator(), - new MenuItem("2025.11.3.34", () => { alert("Thank you for using Pocket Bird! You are on version: 2025.11.3.34"); }, false), + new MenuItem("2025.11.3.37", () => { alert("Thank you for using Pocket Bird! You are on version: 2025.11.3.37"); }, false), ]; const styleElement = document.createElement("style"); diff --git a/dist/extension.zip b/dist/extension.zip index b2ae7684c633f944649dcab7321504746f5f0ac2..9fa6640143371baa9cbe4b220a76a5df6a8fae87 100644 GIT binary patch delta 26436 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 ADF6Tf delta 26366 zcmV(*K;FOLf(fI739zIEe>)UpTL1t6000000000000#g70Agu!VlHZP)xCLJTSu}# z{x|a~PRQJAIT(S&?nyEcLTqL;5(doU$I)`M7;V-9$b|R){nXNZx{r=9$xMFF{Y~yo z#ObZNwyv(Ou1?j*-Rh{->jtUU!Q(&XUX6!gFdPk9)zPbe{o@~Vf7M=hI0|-JgOFbHB$Ssj_bIq+hNEUUkUoPBb=n#R zVYggqhc#-n^p80^e~Z>|hlZBP%t>bvH2(sK?qL1$pxkkWx+}NGVZ6&>IFdfOl(97D z&W}IGdd?5R@+b_--C)0Td=!N3uoHGi!F_Ag3^18s*bl3%dMm623_>^x2Sb^^f2=jl<##%==@W1jaE$yEMf_wf&lasf1hiod>d+6$`1V|aE5sk zv}%F_VGT32UxHe%I;L5st2}wr&3vtOH~$*=nbWFi?)a!R9Hq;(S~LvTY1M<2Gn$NK zTRJ6REaxxk9+R1)<_137s#QbfR?XB=rch{Ng!@hLzoV1+L#Od%Xy{=%6}}A$cbN0* z;Fn*6yI!mIe-xBiP~wQ~b@T03^){uWzR_wjKZ6*cgL@;~gxzqEny*r$`8Po-8zmOt@;e^QHd4pkCfO*g{Pc5mFRK`wwx zApIQWDaHiPjJluWp21;Meii)sOF*5Z+hKha{O|uJ)c9Fz3|ft5VwG##$*9*)>f<^v zeN=j*QLjUT7#v!92^vxKMDQl*AP0+objR(sWw@XOePPf(>Oq-}2rsokxeN_XYtEVP=8>2$U%WP8w*3Mke)c*zFCeNz8lzPX6&tD9D|2Ftc3%~_c{BO;7TI-lw4UE!*LK+SRJxKj_YfyO`oXM08 z!n(Z?un7JaW$MT$&q}M2N{#7|4$ZWNnZ~t&hXcYZ&37)EKcrLTXwiT#(59u%5yjcg5(+!haRPpV(I- z8r-g)MMdIjD~pC0Y_xaq7P*2N$H7gt-5ZA6V=U`kwxZpg1}#*1l=C`8ePC6Jf2s?Q z(_%FBan9I+PRW~qdSKBc5#W)9hWJmphJW>He{8p5dTe7Uo&0f7kPiMh z?T3SMaNO#)mRjjiI2@(A<-1m+Jn9Y71W&F3>%y33G(X-Fw|izINg{ylXqvw0@(lHm zPN&O*25)+XQ;m6xsF3rv#OzEJjiyVfH@j1!2(9oIDlrnI7t@JnILv^|e{8Y$VC0m8 zc6kCa)Cau|{uuTLEo@hZ&5+6lgYv`^2-%F@e7gDcq*aStlPpuOX}|Rlwi7xKgV8iT z=+?pqHfyzUi#~WGng;i+8g|Syj{L%&B`jB)I;u3W+~$BuC9bey?{GvDPRWQ2{u}Lu z!FeMC2v(Ptf?Y-oIFyh9e?1E%HG6~BHnq&YT>GEw=u z5M*A%x56ltts}{;;7u3-YmmDsA%r(W-V$NzB($wA_M<^%(7Pw;f4v9AdiRX}%T~J` zRAfsrBlC)6&v+CFy#Nr1q2-~uweh{NNw8?;V~@G6jZ1YO;g2a^E%6zx)> z2p_8LG41?hi!vVYZU8paARG>ZN_h|rTi?PU)$frjq=j9_BxtZ3Vt^KK!_)~Lozv?C z?udc<2>gHxPQohse5spoZt-%pszQ;5W@k7xX0%$ej{#=wBgIY}zlPP`Q0yp3oe4 zM4wFraM|e*JkIP0S#@k|frf`ZkY#q3Mtq6qXcO{6#*0aJe-ghD5tYg9T4;Xg8m}f< z9LE9VrUkEMZvdDfqu9*RHd}C9DT5CxtwGIG1FUaI9gl*dXjAc&mi7zBh0pu&ksgVk zbRKx=go{l`SDPeko_wgK^V~`CEO%ZwfhTo-G$?n6vVr8%(~Hv4!ASunz455s>cTWd zo9)x{ox(Xje^z<}@Ed>IJw2rk>b;)yyIsh=qZ(luUL>?BTvIRMM0(iG<>}9Qxhj9} zpPugE?`E$D&k<^$oEE9P3nNHIEF2wO<3l9`8Tre_2|(D^&)A!WgQ)EC;A9V#!4eIw zOMibZ?CepO^l>q)HFVrU?wr7GhP>g!$our=vz;Lqe=Iull=9-fU`2|DkSU#4AqTXd ze=eR$c^%GJc#s!|eXYTMYOIIBZ=*>+3?AW00uFzc1qAB?J70f&a%p;Yeo!iWF76i! zrO)}(qto-x$GJ0TZDKNyU~iTFX@{nS%=sVd{J(iyL8d2V%lyBnOi8YVndNe3D=H+a zN=asGe|cp&6P19zQc$jMh8t^90WpS@tgmcU>UF0COdus&TjAQ;a#TX>ASJb}wT<;M#Va=JZh<-?dL>?iIY|fKe^|jkQH5QXnNWp!hh5kK{4})^GZ5&@ z<`o}dKyv9+LAdBCpd$~I)8R&}q!tdVgI1qxO~1k{eysM|P)UAWWA!`*H=}Z6_=!uQ z9mU`njH}RMuy#A}nmOZPv%-DBw~t2P~Oh?RjeE$GP^azWOgC5 z6BjF^`8~U;iEFJ1&n4Ajw&F_4c77#~wYVCw9+=OsMskQ!Ay}HUwO>xsm{1Nz1;Spa z<&?xS2GNZ+Hy$y0yJMKf64YPaEEKcKe}jMj+suPj8Rt)$Rv;iVvngBBe`p@M37S0{ zBa1PuUC194ipqx-9PZJ&4VQIzZ-qBCUnt|aWzY?_wOr6Ye}Yp>@|E|3limQkkX$Fk zu_$awvh?mk7=^=L6{aRcsM#Agns7>Y*(z#vaN<-RkgqoAhrK@bjo6Ys5;Y87e@GoO z!BtN)L2V&4G8d|<_6k|Sa;d6buQbxJTt!u|SA~=*7pnf9D&#eqYp5Qk8c(n3-&kTh z_M(6n(`GtZ?`>+T(g1_A~HKwiMx{B?k?|Zts2qW4QtK$HvuR8FnFI zGgJd>2rR-LBuj~q4IE>4S_iFye+u?wgDy@}p=TO6EkjLo+%4nmI1KvD-l*3Yl>1oo zhkp_Eu2L~{iBKO_!mV&qCTdFKsISzvYRi5Vi~9OXZKax-E{ss0tTH$&^q|q2Cs+C$J_GHEhRpQdX6ifdOuLJwoVv9gr0K?cd6-PMBe;$&H3i~q{ z!SJOFd);!oHJacYlknaf!3#DCIuq>S>ftL8x_pP-GF%Eo_rFMj>PEF(Q(b6~?2uqJ zTnj5cdSWD~ZB*;kSQSfxN~W?_UGv*pJA)CsRokkUw*;|of}455>-;B{gK#|P^%0zK z4);_yj^Tn923$IY;CpzVe@NR%HDY&cjA$bX#D5*PaF#zD${sctQ1|KJ{g^OWAK*;0 z)&|Naz40ri1opbv*n$9P+X;rSo^g1GJu)A*^#+~4&iv*2%BqhWU4-U;ESJm6Td~53 zEcNJQWo)Lie(#nnNxl1I+1%V*+l&cTl3X~Dh+GW9TE0Ahe-okHj+5*hTyDyy z2=>JzxRBs0YL#&!Ji%VHcdueZ+9s%nA(onQn|)0rNrMoifop>Z zIpji8Vr{e@215iukjsiFIcmd39*({<+! zYR}F8xUxzA_{?ERoKzT*IH}(liR)`&8Jjwf^(=|Q&2V`mf5w--9A>uYAHR9B99FB# z%k$QTfU~Y!yoYVjyN^?T8%2SZDa~^YIvx<~0ggO6o+qt0=#e84hD4{_UF?(*5(X*6 zRtM|>x`EK11#t^Y1LTKOaZIrdU1;DT{td6;DcqzXoLTJT8NhkSj{hk_zl@f(%0_iH zCXo(BHo{Cbe}=CZMZ!vTt2~P$+3Z?Ymm|w#F^W`IS2trqZ`s9ZF6t0^2@F5#C7Q&? zZlRJQvWIhHU>oay*+(_JETBiLOO}9X&-MWsdGDUR&Q>iD5L3^z|@PiwT((e}k3PEQsnexsUYhW_Ed91lTS! zxw~?$d{?H}7;mFN%Zw?TLMpi&%Zv?Jy5L~gU_ove$1xeih|=l>!qd=PMUdhi;W*fj z?2DRV zI4|P-e{z`F$i^&&7!fvCGL?80ON5PZ1zs+HXrBnHTg&xjv6Y1gIItXmxfAWPqLj@r z&ph77GHzCPF~-au&u(N2V?<(1`lB)H5K=6&mB;E9{o~KWq7XX*{Noo!D6Ci4*1yBY zwJQDNcVJPNtINT_me(o8`5b5I7XfR5rHO zef-8KSl!qPlhzAfs*-y5DY&`5zOpK7e-Ts0@ip`DH9L`JIGW{no=@NtJ;dT4PIeDV zD@Y(>N)ei`em@iN!Tva@f>QaxzC|vOHu$&WrW5!0F5KWaT%kxm$8Yz@e(JY+$O6QW zhV3>8{NPEBT;_h1LAEC)2I!ITFzsPyoKR2#ACb$f!7p7e3AUC`AO%QLKmC386?an66{PnVLSvFwn|;5i*ePb>OrKm1GQ^f2DK_q|E#) zXaOq0h4zk5Hrhj?gB4XRAraq~F(eB9_(NOYIK@D{ogcFg_i#q>IK2Um|27IM3<9z{%5@o3j&g!d4P$J25Q847Sw+212mQgF%BpNdYZ_Y!o@@ z@Y(2Q5-dazf4X`2WM*f3f1z*0)YHTY{_Rc*15(wuy!Tfwo$lUXN;#TOB4{>3aEHxZ zokb^c1enW^&oMi7!%^Hbbi1p&ohwq2=A;hzw0aKfr(hyQ!aXh88W6#dO@oZ%nduU% z9X^SQ$5>Nv=F8o?^6;D^U!cwNbSLRyl-_!|$E z=3p!Di$uzZ9_9{k>@iX;W_Tr{o&xx9($RD;M%q~!awM-NjS-**fP0p3rG4O z+Z5-sl|x1db4JYc5@w~++IYaXAY&D5glxOl>suaXTFOoe<|n z1G=(fN?F5!!wHv+iyegpv4M{y5w32sa9XPe-lhuMJ7p{Z6=Tx)YI9FRF|n(_b_Ew^ z*aXE938p}CTQ%|nhwXBoevSYmqud5&7~Mi89ChkeMTjA8&0(XW(8F-W{ImlBe;wCW zO&2BT3mI3##ypTLrGbvTz#1VtMZ+sfWPwJ^slgTS$@h|?<&>-nET?2u_|!Lcqz zII4^KTF@oRA{!YE&9q9j9bdDi0 zR~PXhYI_70+9z{Yq&(eb_G_G@tcq}h=${9bHbFlQ5tY!c!RJT|Vg#$RF8X2@Rblgq zc`1frn4T6)zmnAk(({O2-Ad=kw8Sl-NVa_a~0Bd6tpWl6w4kZO9V2y?TAKE za6M0eMPnqicUp5DmQ>lIe~>=@CD?&dNaHLA>&0R;64w>$#ON{9<^Gcw8*bpw152L; zn8x~_XrXjKQ4=Vxubt6m=@j$fEY_hb}vIT zLyJyz9;<9+9TT?_s%Qdt5N2UepK~Gy3IzwN(=m@(HXZH_QX~r9e_nTyj1MxiZM7ky z^sPnkgK!I(J-FFKJVv*&4Yg@#HP+ZVqex4N>&1>ac*G?pT7dB<{*yC644Dz+RS;hs*ND3q z-3cWsS{lH+a>S#NFj9&1tWwU5?sf?Dx_=T$MQme8LcQ3RsH)t`IHP?cZI!310=>zD zILJXO=dY-fj2<|D<{&M)MtQI28P9c)ncV?jEI94H0E+B)Iw{@vzCV?f?{(4~gfD<) zb#^xt!?yh*w5}y|@&+N>6a=T}rQbU*Lh<_dJ0mB{@Pd*{z!Uo%xi%8|Qh>ORmqD~S zyO(CU-=7pFFF^Fx%ub$StS`&9uzs7EnM_cTV=bCydbS3CQa7^naho(rgpMh_qzyqo zDGI=`wFm&XLdUa#OX&EbZ@TrxG@;*@0&Ga{ zk7l~}hO+|w_Y8;b{ox|f|C*xgsBb>7XYSA?bug=o3N`Gq_e_rt7wb@#eK9IrSt}gmC(^kvuM;5v0m$c9~;l z=H~EA%2ZU{QN=?1YXht1)KOSn=v)m*2}M>kr7VJX#elnMe%LST`Xvc%=F&`r^h68| zMp#V~z+n*s&(AC(?wnOfj5@2V^fxz*5NEJ6XAzfwT{9^B)4$NIB;(?FMe?C}<;2o6 z_lXJ9Om_W@ozaX`Y*InbXq_f$PLVcGHsE|@*-33V$$(|&auz96O31}FkU$0IcbaoyV1Y-S zJSDn+lH*>PDLemt_uvkEXBanf?pfU<&O-F0WM_bX#wE@R>eZmqjxZD>Bfhf}SFk#Csj~POgbZ}R#=q3-FSgJOzY8f8B%sj(5-)mAuKF14O{mF{aDb^ldYHXs8?IG|!o0U-z31LABMnsuR zlf($yRnS-Gl=7cmlr}yZi69_3hp=3Kr5;?tpq1f)xu2t^aH%wM{^~powU&a#EIh}e z^I-vDyJ7Vbcu&4teHK63W|tbywzCKsS}KlM-XLqv|D=3F3|W%*PkW%n(zpcaM4_y1LU^!xU0iRa!&5kaYB6Yqu$1R|;%)$t18m zyEr3pj2y~SLQI^UJQ`SB*drjLK^YNzBsonZTMH@LC^ru_)&+uuZxX`syc0D%)~woEy>r1Mw9l(%uV^eQ>K~= zZ<3e*bW_#Jl=)yp$mJ~d;oGdnY)dbi`f71|ES%hS5K>;gRC067jHLE|q7Nf73?e=u zYZo>xkVIIdEto+T9jQ>pY--5^vJ&B6lLT{@xP%V`T6DSB9HSDKFj8%tgvGg@9=Is~ zAO{L5EppMUpMY8Y#fWtgAu6=i8sd5$X*bj2-@*Jm)GkudAjQixBasMk)md;`5i*cl zh+D%C3a~=zN~;5=9x%y&I#|qoD13fbxCVqwsUl)waX489Xih5gkvW5Eb^6F4kb0F~ zA}Ud0AsoY`zYJf!PGieZF|D5{CxQLT97)+DEiex=u-K(ISxa#}Oo^ z%6}U{q;q-0@gL5awXd+v5pwdk4ex;T*bWa7x-4uE<0a@Lq&Q<8;u+`(qLj!eDo|G;EPb|qngbVxm#tAVHJ{narZelCX;H{AuADW||9~qw zU*r)^B}owzfAIca&jDx(MP%oJ-J}bIqUx}CdO``Lhhd86sg=mqJ{X0alu;oV1;CM%3* zD%jXa31rwi{tRaLK+jc3idK^yG+}YHXhb)j0RK&V9bpV1SuS@wfd#H^g@V^>KOF00 zm;q}m-TT3R)MsGCspz1?3I{UoASFBmM0-)$GOebKh&Z19Mv0k?qGaM@e&BE>w=+L8 zmH)2P`~}!*Fx*F>58kvSZNpxGFcoOE8NvYiza&ppTz7(NkMBZJ8bc(efa&sm9wl||T?@Yw0ef8{^VFSLK7pnVU2Gcc2c7zkhrcNZ;caB)#h z!r)2LcXQ5YV~@_#S{zxe{SV+vK`dLEqHNiSR?Bgw%9Esil!%(wh1AS`h;u;$*JZ-D zL2M3x>!K`}xKWKsAYy7!7Zxws)MwoB~6^pabZZ}#BdysJXop@B*1 zOYS)>O}B>Hf!SRd9#GNNdQ4EF2>rhhfBr;&cKz5-QvP8x9H%Bg{HP>iB%=r>nmY@j zuXb-B!vP+KAUU=BO}l+P<&%LYBs~VJ6gidg2~wrdJ`^4S%7it5v%u!NY?&uxrb-Zh zII|Ul-{sA%+o|zF!F?Pb&lJ&917@=#iVZL~0CZLn0V-v*qeDL!PttR?YB(0dnB-4Dsz4n=|3Z)Wg)ldLQ(@WeFA)#y zyltfp9_fa9W1bQ33b7(TpQBwzMbbO|9evVq=s)!F$>)nR+Lr_u=SP$k8K*%=W`_J_ zU2;LuiQFPThlY!!hF*R$)bXG#bhImfXY7PYXh1uDw)%}-OM?x=i$NR1mpj80`VllR z8j&~+`523QksP=}VHzH!)+jaq@A=m^a?y;0?gyvdYn)4PRvNusu75c-OdtO{|Jq(c z;yEM55dSw?6a|VK%>NBCn8PZk+n-#=bn=U;RWm5%*EF3`JH&nn=Gf-NiUR9@71;MA zlIsVL5qrZe5fev?RIJUwC1fd7U}2+l?hM-2k~;rO>MAJP=$K{Q9L#6(MdY)|9F zXbmG6a<+LY0>-6H^cCa-TB5(xhD!x~I;_;1+Wrs1I&q^^jrzC@D=InBH}qi8PV|>Y z#k?`1R?(pGCK!x(ChFESA}djUo9QQ&NTqG`U=BIu;sBp90}Fe&9371V@OjnsAfDAM zf*)-Z8}6%{e2oK1V`fvUZm-DOqK^;l;oU4#!BC@J#5Wk3cc6Syb2NE z=Ch*1>{%^7c=3W{n*xnE|Fb;a7nK4_%Rai->(b&RnkBJ#hqov()#JQ>xi+P5aD5Qj z%!^jM96or1Q!W~g{ww{u>`r2(=Z+w<`=FvY^@TX14V=2TON^HuW9J8g+C{1+4S+kC ztQrMG;a&XBfG~>u`OKJ$QbT%@Hlr4@v+T6)o@>Q*uqw?9GLV|bK%)#Ay?XOpH~iWS zb@Lzq2ry}ApC}ebp<(WSPbhaD%;72?HUJE*armZS*)?w#4HmVDhY;+vkfx@Lnb?@2 z*n5^_)KL{_X8scTQD6s}3Z)(DEw;Mw6!V7CHjuLp2}3}W%-VAQ!LNZskZOn&x1ch0 zddV48A-Z&B25Ca^QUYZIll-3(N(ss%8ZAzW`v<>6Sz$aCtT<4UeJdY-16e`a31&z^ z1Lk0Mx`CQ0ehd0&npgr(1${Z42{`_%gEAS!FX2WEcEEr_jIU_D_hAHai~;2o#LTEU zQ5w2qkzrZqM&hG-(|cJ;wA>?57GI9|NhhKg%$^QaBjr9%=|O<$dTY>0&F8=$;1_J~ z^v6A=%)}}$9vco%am@jLtd>T116Y5HJc;Q_@Ch@h}I;ytK>#$Igw?c!z50UzDNjbIvoxS)940gS#05Hl*> zxLfe0;IykJBNT%sc`tOiM?gmGT#V3+<1#&3*XpLU zW9JzflsdAb??6fb2X-)au_VEb9(A)r9zi&P0)I>vlNp0@;7;P0T;dH${X}EBP^x~R z)IkVbq43AwkslC$&x+x#q157H1&6MS1&ax>xDcD`~0!0qlljhTm zYGD({sPTG8gG2?~K~B+3$-txkV*ABm5fXI8(2;e<&`Ea|C<;yDTwU^=prSa2=r5D= zh4j+*_c2D)Ut|sn@vP#E#?)XjGJWy?|EIV^jGL3tVUd?`h|r$B4+wnFTiFnM*@MfP zA$4?jHnk^znX#XPbdq1LXgM73d5d!drlV`AfwA~ab$Y=01*ZCUXrsNs7w$jc>8e1{ zMoS0)wC~2M2DBx{^zgeQwaRKwdoxjR3+9m9)v!tZi-rwQWCn zAgs;=g>Qn4tRzkwR=P7AQE5Ueq;lg&=qzb?eR9ly8e(iA`f=gp;`6}{;1W|9lp2#M z>Xa6)4odMVIQ49im29%^9HZF*PP~IhNX|?*9sm) z!;MlN_uSFg<}vp-;6zeW)Ej0l)}yw@-*TaYry{O8YD@L-A2u`CRVU!$v;2q(yuPD9 zq6*P}NcxM4RNaVQbSJEg8y2S+mcu^mhey=^&yoBmF{BE1IEELQ?ZhN(iYd@XGgs<}9C<95^z`|k@HCLQ zZ^lW{FfJdN{seqpvq&Bs+u7nkXQ&3r%uVlq(BMpzDe%e1?j0j)Nj?iITqMwdH~LSS zcvhu9kASw@lxc49if-9#=IRlC6iAp&MpDcSb)P}-%yAQWh+@L8AQV0l(P0D3YL%j)-yNI~L?sYw@D>eV)Jc7_w z8=JkIaENlfB|cQnES>??trzf(?TtF1?V0SBpK1Od`kfd9%xnoRAufaii^~Zb$UHeQ zo&!g#xWOIgEzh(*b;w2Y#hO(OaO^RLmz*pTbbl%W8vgHx`S znR>v0{m-P$&YF_+l$V$@h7qrIb2 z3RuveqXjSc)9j_j0mEXR%O>EcJEI;gT8I%Xh>3HeW_DhA^JuqEbb&ir&R8ISsRLKv zoXZZ04onC%3F@Q2l1@xqPGS>4xQH9h+B3zZm!?VF#Y7S_f_~b)5tWnnl%5H(#{||( zdUw%HLzu?O)8^0kP%bup6Rm;_c-FXb^Of;LjmeHfCq%N$LKR;92HbeDy9*(F#DsK3 zvm}mjp{L^b$U+kidf>$t^w~Op{=cBfhsaf2ZPF|bpe2T`I#1>=nde_;i60ofP&7aA zSgv{Cu1HEwU;oRf__tA;#8WX8dxEZ2MSZfm(=UcwBw;j#_`Q{wVyI*6;&E#TtB5pH zni`hX{LR`A5_=-oG+)ovE=_?-EMMF;-<-;(I~2jk<%{?KKXiIBdx*$?V|E@#+xU#= zdO@_q8_M+p@{>9t8;LO-OVHQW?zNqopbs}vQ!SoYTnCBLxQk%hTMQ+M?vg7a7qFZ! z&Zu>U1ao*#@n;j8gv9LdmXhbmSYdYL*t`gY8)x#L#I{PB7fle$_D*3pcX3quTr8AI zNYYgVW}Km5mI)8VtAUGuNF$LS>loK+-pZy9grP;x`lZNM#_j2eDbrO^UJ$-K*eUI! zo0Tl+DT8Rqet{l{_KTtyLizdOgvQ$k=i8rgh4phWpF1j`H6_`UelHHZ0_at|CkMAD zqGE&P^cL>ZM0NAIlMlJ#=d**W!qMmA!AHL*yi%}pdg+%=xA-Z4@PSdBaPp_c5ghn< zXbS|5FjBfcD)5WS0Q>j1c++V_*j10Ly!O0EKJK?cwoe!5w4@t0^et#Dt(MzW*O}`y zeGRX`VuqG(ZCvY(5iRwn+Gm~SH1A=KjKJtsM2&X+4-SuCj;^DTK!l2aO6vt0eRvtS$eKR}>$H zO;N=t`_115|9teRPjM_-!#LNelFO8+0*&?~NfQws7wH?}qImNlLT}|(HoS{9bY*U| zLFACfjK0Xl&9|Hmmwoo++(%R0%-Mr z76;274lMLy{L_5vupk!eWu#f1;G*7fuiL8*@K`JMjvf5QbN0xc>>^-}9o`b z^qxF))9YZ_l_6JnImpy$HKh}tZ|RjzwRQTP8q;g(DZ}SlIc3ut?oUqh&v)R#oUCPE zKZ|IugQW4D`6Xa%IgyS+;XlQin`j~~M7xm*IY<5o$$Q~hpvJz$`!TzIY1A z=1(D2-iOwQRkXZG&y90$oGg{>7J#*AymW8rapVwnqor$+H(!rlE0dZQt5Z7rq8=r< z0b?zH-cu@4*k-GU2LdeLQ*>qpWia>v#b14l_QOe#td(@SBfrc@%gg_Rfs86fW;FV9 zdfW{UeHiyQ#I0)f7)2nku>3zX{#*|VA9u*b#+)Y4a+-}YbTUWdy`+i5L=i;+=o1+c z-VRkgk^qA>coJjzQ;)OR7d&u;i-{&c3_L}D%hzHh9NmW@u^S%0Y;@TpJ_HlO-$-V_ zTpuAA%)=W@IsJ2yF~8z{GPaBVRVcF}bT_SGp3nlRU*pTvYyOlkD#vRS%()_1l($kbLdWV%PG;Yo#ZCu)%jd3KfIE3GG5!#ADQahV{r) zEA?hQKBEDim85tfu|bC)$r5Rv<^|?|BGifz@GnT=)YyMY7!zB2GC5O(;>4wKy_PQ! zOc9BxmNUl`Lt0t^dvQfPbG=Viz*BlVu9}5|ft`7V|A(F(t}s#^pZV;mkSx%PMtF!7vVtGY-TU!d&Z zx?)Fk40kT><9zBP)L*$g#`BmtqKtS){^V{g4#dk@{<|&zzZbJV#cbBf5%Nc5#K8fZ zL=K0sq_Kgw=x*L-2pqc*bnRS!^_B=;p!`pU-Tbe@!^)UOfR%^!>r9)_nykxd-_%W9 z_U7TOyD5saoQZ&e) zTC4nKo^(DZ1J5+`#61xUj%h^uHfGqxGLEe7iES-W@rpgUrz&);;WW{Ivu+zhxbo03U48l$D{;+#(XnIbsO3_ zEbEKYG;ZGn;tX)Ob+HyA=C;+R@GDb{jPgS|Z*UC`wnn|_x`W|=_4zg;o^foF%C6yk zjO;SrqR6bS5|27c6OP31`roL9RRiGpMy0HMX7L5VNQz_7&h*;FFG<9s8@J0?Jz zV^`l-7Bl}mhli-LXCW5Zl(Txi142+oXElyfVircMNVuJU{Hj8)3$!ED7GAhClA6Mo zi>sLgg+EWDkab`s<$T7i~`=FuPt z6D}}M$>-jGw&=uoso!nxitN|6QFF&zBE!gW+m*{XI%{)(+1LyBFc%w^6sWJJ>B0uA8H+!=v0`t9Jio zoW1VXwsUvia+8D0^3~y0|Gc<-yq&)lZjauc)^>*$sGp?;~ zSI;qjp@Y)tyN9Ds^^`0}^A)%!1-AFm1z3+49L{Ncl8bJG8RQdmC7zu$e=I~{yH%YAHTdS~|soziY$ zZU5V3WvN-KU45(P?hcyu<)e3N2S<1LQSqelFkHDiKL1c`-JTadF06F#wzIp-hn?M% zm2b$z`d{p|Mm>+WFXZtHUO>bCmztWnI=M!mwvgK#;2 zpF3X4J>*U&+3fORZg1&ZcV&OrI~gu*uADDd$D2DR#|xWljjhSu*TWBo+wbpl*E_Y! z?eOZZ`mprw>t*q@SGru-IQw>g8-|(w{&8!v)A{!0eR+TB{iIOZuU{;G-5DNK7aqFr z4q6AL%R-^OcDC1C*xdg*tiSKC?jApXTwI>q^$)9ey|Zt%)7-~F>-589W9Qp_zSdb^ zDt_3gZ&a@L*E(nKZg&d@xz@+RYUVDtcik+$>+gr7{gd|9uzP+r>E2%MG_Nqor1q^) zzTB_eh3_}(nT7CvbKE=5?e9z$?i;zyv$eyM{ru&-i^IM5_eXoZgYCOPrS#B$J8N&> zZG`vZgVM#${@&rn()jFp1(>X@9Br3RC*z%WcOOr$KJ1m&$KTcq2l>nEcZH+9+{R$* zbYuB&kSo5sJjmUD?7zRRtWI`TcfaHgI~$j^?%-jmFkD%$R@XmVt$*3s`mlY!)7#H{ zsf6Rq^2!=od@Jsq7O(3^AG=$B>+c&!SDPCrU$WJcNv2dj+dCZZ-j4^>VSfE?qu8%* zU+?XI7%V+(=2x1d{z5HtJ>2|owy=7TDOS#oTf=hxe%uW=@2(flE)H{NJCn`Ma_;_Q zWv4bd-d#A`__CMFb=G@>!NT6{*2OOHI9e{1KHOft&vh@`cT278`qJiq!n=#3@mYVp zbJQq&JpEXi6b~m`Up5AZ$9w17m#uHZqpxS3`^~dzxbn4ME1g|7YORCD{u<`o?6h|Z z{cqjc<-_&2?S+TUuglxH)!|^NbDnGL)}~pskl(jjjwMHclwpd%Hc!r;`Dgu z%j9dhzjbkuFtLxm$vq^=lS(|!%Olhn?%@-4JaGx4T<=wZiVW zaM?R(u5E1{eAzsGcXEHUH7H*lZ#`V}&$8#$R_S`TauW8}cY5!C-+wtgzshV?&z3h= zoA=Efh*j?L_HeDxdMKUk^s*Pd^Q#Y}PcBw3zV+&1Zt|}B4te6PuZrQ>#d_HKx_|Vs zwBEQs``W5y2b;t3D3?F(?$R=s$CQQ1JV zgUjOjLaw^`t+pN>eJg$GL2pBIAD&;V6$ZD5jYi{_U*_$)5sRSvtLsOe#<1(hx3D`{ z<}b1JBX{29_2cs3YSgY2PVT?t-k;Yuo5j}0gY)+bTbJ*DPtGrP4|4CmL1tc^M~j8cjv{k`;W`#-;OUk zqoZ7N@9zENBG=mLT%9eIcguSq=KJ@p#(2NgJie>$9v@zOxVUcTj`88)Y;Up}b~Bfq z5AVM=_OJJUZ^s|Mv}EFCQLWLUvHmoU0v-R=W5-L zrR&N5<+sZ(%nZ5W#fQ`LcWe3Ug9G9Pj?FCSh0%i@8-cicP&nH8ymxW1Q*f^$Ivb2> zMsjX{HP*%M<^jY?G4Y}Zg_FyVNCk!PHcBPQFiZ&nq_D|0~7taa>YJmuZ zjfi)Tu5CdqdNZ@JhWJec7p&RZ)XmO8v6MT>Q}pHvN_b498^ED-6p)H*&;D!JuMHp< zXFItPFo6Vm=O1!M6ikZHD_lEW$NTb#Ze3r04tCFqrgm=k-RIK5F^y&Kw@_p$#g$UC zpMnUsvqI_f_UUP{^m*svJXbn6Ju#jCM7_qV@`a`R>FE)oPEAcaPoy6EoZm0x-?@OU zEz5}|nTm{v!cmUWv-5We%|)UVyk`+20~T%xHOojDF${3&5I3yox}MOFn&$TvgBi?! zJjKvuX)jI~K!SzAB*358RHFsGBrXkiPxBXu!M!{v<@XbNz!hAlgXO9Ag56S}b5(<9Hz*^} z(e{0OaPnEETR19!Ql-x(EE#0CRGO}TRXRPxFq^1?aiT|+6QaK9S{&WwqSJ2^mW`&8 zsLh0`Q&w%hL*hOqtB*5rUN^p9LT}zKA{iZS*@~A@L(?UNl)2AGn~94-%PX_jSZ++y zJO$VeIkwz+r^sY}mA>d*;_2jd^e%CcAN%D;YxUJM9Tj){6gC+EGo`D;a`i!f@4nEL z_;`X>x(7v1Hbn_dgcVzz2D+dY2eduXdzJW_9uBG~(P2R;+$X}<9%A=_N^|G!k-jTe zt53+eLgeQ{dL@pDb~!8q!i_tajg?07L870Vx5&ilM7KlP?PIq5ZDWou>_ zxpOiyuK>{nA;Lq7rp#$nQ?GV^%LsJmSK!cvaY_O`6m#)P@6nlyMKU_yJDtPm{K%PL z4iLf*hyOG4V+eWExkI_nkp>R+F#=boPbsR6JF;fx@>6E%bT^4uOz!E%2aCZq1BxG=hU}150lAr;C1$PY|BsheifdBzQe#pJ=-E;qU_RQI- zufD3T>glO7yM4L`Gq_j%0HcE`2Z1-@msHpc{2R^BY-vd`$=@%s#am?qiVG3N4v^~4@ zSx=Xy5lTUUFL>hJBMO&eGFgN#6NvZ8e}kiEYo z;Cf!>+PO3IXt_^35|{A_f7RP3REuF3u>MN5>QT+PoD$HC}A8voD?joWpd~7u_ z|EwjSS*oi_j-}WB(jmskH}Url9xkm%W6Vz zURcz%Y%ShG*kLa$*kdg|7I38P?nLCa~7J_ zpixM(7q$n^&wz1XX;=o0>YNsg(W^WM2YX$mVPO3Xm78)@`Y?vNvF>M(vZ_oA4DXFy z#dRe_pY5j7N+$?rVJhIK-!$Y1H#QvdztkdYKl4_zbxrXKAzj*f=X=~oYI2TAE!?dmBIx+(~vrNTj(D7jf2Ln^6ItT!$iDb8kmv#dd< zy+Ya1UN}dT!DqR2J~yc$_;F4<(1vwk**fTfCbW;%sru_BtU}7fFigv1rWFUpFWX0^ z+PtrOBMh}Wz@GyL?S0Kc^lU6i=)EKhL``G|W9>7hWFfgm1; zfU zbCudo*SHp#;+g3S0csHN>Z3w(aJL@7=TbxOr`Uo`OU$Ykh|U@ozU4!nZ-a zDSn^$8AaddwR79B_ECzb8jQ2RH=C1KaQ5~ke>(XZ7>LqRBThSuqWz3$NhS~SpJ~0^ zVidF*z(>_YaTSb$0Mj|w)5>I8if55$lZXO_8LmOMY6_{>vNz8}MHx~d0D=~7;G*0DwU4gjGn@+y}-H>?=#TU)$8 z{1hHlR%(NLToz_tW0YNz4w;DXa`2-XhC7Rh9J|1DX66z|)|1{jIO?!sI3bM)HwL~z z95XSc)A!K65mT^HSTv<<$tsy>QBHiP@F{|wI0=@ts!m(AxP?R1pra_!Z6S7ooQB2a zS3*C&*-&bK5&`fPhTVcf?yQe>NfzUqL3I@$Sq+A`YwJ2sKZesP=%F-vi602zhSz}_ zlO~o|63G@M`bAl6^K92uelBbYCfziSJ|?}vKFdN`w!U%D#KiVvv>fe29UplV*YSPq zWXgErQY~;0pMfyW-eTv*Y3m3Y+RDhF?@iuC<2*f5iU@Rn(2oz%NKc0hQ!;VSx}EEM zWY1{m#ErLOn=j}5xs}zMd8&LpM3a}AD<}7ujj@B}5#?b@?-H2ovoBSjV~u7MaeaF& z3zh0#h@`#V_q3bJ0s>2D6`dm6m8uy*oj(GoV8u;nS4V66Hyf*m7^ka4)X-~(=qQm# zRTP7>BfkKZSB0cnLK%j*)fpNA{*fe{{gFA~MFj9Dcb)TU4PHb8`ofR~4y+OEXl2aZ zRv}MePynyMS;by+fmIIS;A}>oQD^6%mT>V()`k$F6tyJl?zhdqw}($uV2d0jn5{KZ zvuLqpY6qK=CFRvz-zar;&atjGUhg3qwZzvryaDD?*AmMS-yW$_S^>l zMC?mQ3*>ulZ={kci&u*$vJ77=Lp4fw3R8ogEYdP!cV~7@aPBehU7c?U0J%$w+&O0w zh%OzXJb6+o^E3DM1c*{$;Y&HeyP|8o-)YMf z)truIQ2!nG1BAe9xvLVi=f2e+L|X)g8g)7+laU*~I4FiVWd%{J2c0J^@<2LNTH$u6 zJyhg#MYSJfGc}yPU&U%TuebN|bcft;E|eW*;aYwFWB)fT1;uiYQpAD<=I>NVhPtN! z*Ib&|i?CxwyBK)myd>l|%bP@Pb3*Wh(&6_7${3+-ya~$-#$~BgJry1>mi6Pr+tOPv zakr3)Fm<=KeAOEgahpT4Wba3siVTTt$_d(Y$ZR)G>8nyJ`ZBs4>vaJK?cgCNDwp^S z4AZ)*H9O>r#-ShfxCqMRgAtr3-C8`reyj^(8x?&3R6kYZoANl1XXPXYVdPizjh?^|JH`;Mv1 z3H|eolykLzgYNWVwo#D(?q9OqH!=$!tTK-9iVYM7G-B0FpKADv?>jG@M3iBx>*$C)Z2bKa&E4nZ3sJBw_>f) zi;pwjcy#8;={fL;1xscolBEk*e3RkVESiPcgD0Yu=cJq zFa%YwN+#Z5^g5qM6Oi_N8i*-f&r8hVju+?CoJPpl#ZV^ z@88TFIWJqw;Sj}FaI~qR22ycVTOx8OG~pCE&$K70CUMGUgtDr8KE;n-7-oeLM~b9+ zG%;n0r^GP`(E0L^(LX&2K2z`7X!}0Zwj?=tBvV@b`Aj-Iy%n!36`q}ECDHs9Yf=~1 zi_zu1jqb{&KjALV2`Em*Q(}^Go#CRHZfGCLu~^a})WdKp58PMPi51aui??=d2()FI zNyAcI5PCz6SOyRIBE|%C>jn;b4ej1F={qMGMD2ZCl!2Dr;Fq)dc_%$C=B!pB*Ta z@z^?7lB7KS3L_#_Y}lI5aUK!=`t!Cq zgN+;%s$EoxdCtez6lP^*ab#PLUU^w@)m?j;Kg{08Oj8VJVm%M^o^e%bvMc+M&tHURM5zJ6DVfEp&HD&VAVy^UIh zJ=864`Fyz~%(nbwh+tDJ7^ToARWZF!F_hPJw42@a_v1A5rv&@M=*g|3Txr+|3D$~< z9Z>j-EbJOYW4DDVpLl+r5-cv>tB740c2Jfb3J-;>2El78Zdo3MzW0{&yM#My2xG-; z!#THi>dk;z;r!X?;EaI`zr=(Xy6n$}vMO+Sc?5XktCIAhkpQV}SuzYIEDiF`nZnED zl=cZRXm!nOWbiiW)P}0!qeJd(p*Ngixbv=m!E?cmD*rT{ewSCSkKYltM7GOQ>{oWP zKSwYj<+)tVQpHrM6v+`{E)|}iC)MjGu^Tc*jtSt{I>usN7&|e`_%jftGAiRg2J?*G zfY<6xLw2oQUJ~r85TlKi=m-k^iZK8k-1G`J^c`az7JV-q^Vps}jL!;q>4}Dl=dk^J zl9c*JrVU%I`pV-t#$(-3QCZtLhR{OTHdJo?HM0N$WZPG9`C#s%9fvsqb7+!HGyjK| zW*mSSm!0W5t<=Qtnw4H37n^+~8o6@eD-hyxr+)kt7Vtc?S8Ra4m(MJtVzOU5+E7~b+*BXASD?JzEZ9qn5W;;V%K zqJtrRpUtiW6L|>+bOr>5hMi$;oqZFP-Zh?J%I&hGRj;T{M>K4KefE-B!xkVa$GOy_ zVTzhzDe5iL6@$4|PkNCWk3LllmGU{&fee-V zxFvpvZRTz05#`TQIzd^mC9F0x!M;Krckxx)Iz(&zb1`Hl=%PbF&uMzpZ@f4i6@iII zAbg`)rf$9oVHmH;2)K}4PeJ?4Ggv`!#3>93>5zWM9O-_My?>14qv_lQHnV*9>seZt z4`e^48{DKUbOWIMofm~th+JO6T|izaDC`LeE(R`3+iAjSeF{9)m6X}q^O=UL)n*CO zp@?CbG9Q!bARhL6sE9->&W_6?0+Umx^Y_er}9$3)>I3#|Hm=W&v78>&IJ|0*oATTlm25`A4SGE{@ok@sn&Bx@1n2q z^q)kpm%Z$DyL5xS!2>1%o_v<;_~1)c4E-AW>x3g))dE$vn9+BSf5*M$nG^%`B$?Jl zjT~*A{EJFCnKzvvA2S`DPG10{9dd=i!SN0ZvR1mVm+Z4*JZN?CAvSoP*XXSjFMZL7 z>*7<0j5?tTm6Q1NrE(m$DwQPlxuv>ZEwT9s8AjSyyxs-sS-O-6beTa@kE9VvqD) zREj0JstW2)A4|=3zs(z3rcnE&_09Xu`;8w@yvv*}SKHT+5IYi|8k!cm%=IhkiO5{R z3m^qQUX-kFf_f{)h}Q;aD~_0%giE|bwpP+gJ_)&6jWEbdE2Rep-7zs2m%Yn19jw$F zejXre`;PIq-lT4SeuJ1iwX+`au8MbGqBrWLJ5J5^snEJTpXZQnQQuk&IG=~H{(hA_ zy+Otsg-HIyPYZUNwG8M*Ue|`)S4ATGhEsD@^XpLgOT(X!bPG5>MvpoW>mSH2lv6yq zU0z<62bmRl_3?fKREHUoBA;sQ5^7P4%#wJ3)b>tImCYu(RfJZQ^NZE?)n*hzLX%6s z$)Id06v09k?AZ})Me?IHR#W=JI<2&7rx%X8>L)z{5@1>8TMp4u@#k9BKgIg=y;ziR zlE~{YqFo~>iyqPbwK5DU~k<_L9dD*etOPcS%pD!I1aS&gBX5QaIy{T;^xGXtNn-^<64$ z)qs3TRbOQ3t5x23+^Bw63zkP>F{j$&vuH&CV8k~!4Av;Nv_Pp{smT;X5nROnmKygq z8az5t=nES7X4dpbiAYQc_6Hk)yef-QCwpcLhNCB{ZiRwKvg2VA zGWb`M5nQOR>?y^}0&wv@6jY&wl|J?&E_}&5`eHKV@kn!b9CsQsau;pfPtm@R{^;s- zeN+9}&V87K|Btn>rl^y$-D)^@GjO zaF}2i#gReo2K1vXw>-dlFPOCgChR;l+%jGcXj$62pekXXxyFC_B{;4vTRMyuC0`Xf zuqoE&Q$XZ^CHThvLyxb~EpbN`(txjsP^C~T(5))sIYpg=(l7ZOi5p(F!&LIthD#w` zHXnW4k^eQijoSL24{ydxFH&7f=4P1Mjr`IS;VVlLtM${e_4DwW!Q&et7<=^&9)pKJrB>1|JwEFlCX!u z2iQU?{>?OK*)kHDT)TIyN}m;8b-jw}-2fv?D(o*TJ<9xgS}g@VHkN`AplQv7;uY4+u3pM3@TX0N-+n?xAtw}`$E)vOnQ(ojprP5)3=;m?+rA(Td!s;)Yx#EV#S&nv z)#^-7jH_Re;W4R@0HIuYk_FiGfY-H75Ws~fI2@~&h5Eh(X~1#- zvN{>5^qddpjC;cCwyHlam8KNO79Uu4sa`p(!TrHv?WkVuK2a#=+p41^Az@rU7ZBNm zL@Kf+SUjRD!L=F^rerpZNgax^T!@j&Yp1qaW5Lr(MTo&+a#q_?-+*nk~R_i|XU&>r&f8S8RGVGfsr`(bhRJufiR0;duHC zDb{?tXvzc``7r+5R6GP(k)@NST@Q~)#I~Or)xmmJ@1*L=qh_(jrbmE6YQa$?Z|_#6 zrn6T|ZB<5@;o695E;FLH!bfa(;R^?++N&_h!=MVso{)9$Y!D|}x7wK`AU2<}C-&=+ z28Jgm49JPF@_CVm5}8lbgi#9IFdC_zPMlia@18koe}sy19w9qaLeeNCDD3;xIZ}Vh zQNSZgMe%+SQF*#+Z1U%%^hO7lP35;}j0S!h9)~4Q)=_soZ>W!*5d+6t<@_^u9|vzv zu_|ykh?P&TST5mLS2-bTS7#uFXC_9d(Di;#S4Q9t8fK@a{NmEIM*d<9P)3r-C%}7) zD(^(V**@^N=bI1Fmke;lHyYapn6t{;7sRu3r2(=yKtpXgu1`u*H{$4clpaz-(4n>) zyNty!%t0G^eY9w@KR+Oz7TAHKM%dvLe)(&amiVU)33KtKbENJaTa6Rp+|yt7b7r?g z@4(H6O3j~CV` zG%K6#LK1%pF869YP1(F))2pE7XG{DS=`m98Wlfe}6r zX@IVpU5YWq#GHgo`KwYk8-;>|w2cru)D8(Dbh~yiUfJTUO3K4BqW2cDsvap{fGu=` z3^rzYnxjGo%XR9A*5(ee?<4l{#cfj;v{U918?@dLdtz2~Z%7+NUaIfP^p@(492StGGr9G01pNH$6IQd| z#)UQiz(2d z0Xv}(oV`%}%7tAt;9{INC*zZl3?8k|(>f&SGvXvSL5axcP&!|~v%T)j@pcAew%M`z z1+}T%bfH^MAR=i4TY-08Fn=J4NZ&foVU=`oRkFbg%LHAYCcU?>}oe~w!qEu~V4tLfNjznC4(~(o< zyN0#M|FPVyA^_$+G#MRQKtZ|jRdl7d>@T34!#WxYwa!wrIKYYUCN}tSr9XGN? z;Ri4bL61q9nT0|)+>`9G4cOg3pcDP(4l!@&i95v{W(;77Wv|BrT9ovzi#tqVLaZZU zGNazAdhVCbQRZ>JVu^ODJgU#)*x&2Dma$8VV}m==W0!tEH<7efMqTo18bl=yKNLw#-IJ^M8F+t$@Xjt0GI-F%R4|fRV&ttz>(6c9pm9t(p8I$|gzb1F+R%MDN5h?oMc~F0GtUEkH+Q ztZ)RxSbk(&1DaoQbvVQj`X?VGrvgl3e=T#-P@d>{wA=C(qq`Z^2#Zs1|rSb z^^;R1h31eu@<<1-t!rz9)NARX*P@2wBAT<9-GMEsR|4Q%*nfow1aUo<6P}342Z?;+I1A?zt-2yy5j2{pS;znAOkDwH?k6Vo$!`}?DC^IDe!W!|%Cd=du02?P@6tI$ z6ct}>rRtPEBiH#AlPWYQW(HF>GffkKX<+;r}&4E=*!w)ZZZ_g&K2bdsm`o+d$7$+a3Y`n)I&&P!Ks8d+1cQHe06a1E?%Z!7a zXrHAyMUkQfr#4(pr6j13P!JU-xHK{$67g!GoJnb>#S{p59oWg9EV?B;XRvJ(p3%3D zH7hJ8_?^QND136ss^FgQRr2}?YEbzYdmUBQ=#zZv!!7pr>Ts_C6aVBdn^reJrYK0u z)9_0)8{Y+|HYurR36@e&O585l<3LA50wgopdFMKH-}weg*Tk3k$n~$>+5e__xbNi2 zDaYUwLJ&3Vhqr0`a~Hx{g&`~t7hX#kLMiBN0|ME)xq3b0(NqINxDW_IsP~@-3)*X= zpL!BtQ1LVZh~U5P;-Cc;2WP+wg&{Iv9{8p(L;$P{Cl!H6LQc!zPedT1U`lwB2!!du zf3paL5`nA|496P*lVkteJ^c5*5~5iNcNc?D!bL?Pu>SF8^T=QpCstv!r~CT2U3vKJ=!$<2W5dLivQJe zuJ}EwI{62sfZtaW^#7mr$phnL`ftX4g(3cvc24aIB^&_+O1?k-9oOYN+*|^}NB0nY z!AYLO?|a7e|FG7Uz;LYvFfDvq0)qF4+l#>%<#W&T_#ZBG?N96E4<(A^As3PRgb{vj z{(~aJpG*Fg=0jf~pzZywx-VcD@Nvn%a$SB<<$U{FMI`l?FYbqa$v*xYy{~E*|Gx+R z^qkt+-;Dd}hQ;;okzs9Y7vjQIcRvWYC_o_Qe_f@OtAFfJ;Y8AZMae3C-{|Ju-zp2~ zze4eUK(P@Ze?}j?{%>^j0S!X=8%2`&i%TtYkB(yejow$y{|Vdufgy|gH{-sNlKdG^ z$M2=si)lchRo44({}pO7{EG}k;t%QJMjQu&K<{T~}$ B=HUPU diff --git a/dist/extension/birb.js b/dist/extension/birb.js index de3a838..13a3c30 100644 --- a/dist/extension/birb.js +++ b/dist/extension/birb.js @@ -1012,8 +1012,43 @@ } } + class ObsidianContext extends Context { + + /** + * @override + * @returns {boolean} + */ + isContextActive() { + // @ts-expect-error + return typeof app !== "undefined" && typeof app.vault !== "undefined"; + } + + /** + * @override + * @returns {Promise} + */ + async getSaveData() { + log("Loading save data from Obsidian plugin storage unimplemented"); + return {}; + } + + /** + * @override + * @param {BirbSaveData} saveData + */ + async putSaveData(saveData) { + log("Saving data to Obsidian plugin storage unimplemented"); + } + + /** @override */ + resetSaveData() { + log("Resetting save data in Obsidian plugin storage unimplemented"); + } + } + const CONTEXTS = [ new UserScriptContext(), + new ObsidianContext(), new BrowserExtensionContext(), new LocalContext() ]; @@ -1025,7 +1060,7 @@ } } error("No applicable context found, defaulting to LocalContext"); - return CONTEXTS[0]; + return new LocalContext(); } /** @@ -1867,7 +1902,7 @@ insertModal(`${birdBirb()} Mode`, message); }), new Separator(), - new MenuItem("2025.11.3.34", () => { alert("Thank you for using Pocket Bird! You are on version: 2025.11.3.34"); }, false), + new MenuItem("2025.11.3.37", () => { alert("Thank you for using Pocket Bird! You are on version: 2025.11.3.37"); }, false), ]; const styleElement = document.createElement("style"); diff --git a/dist/extension/manifest.json b/dist/extension/manifest.json index c9dad73..ab08464 100644 --- a/dist/extension/manifest.json +++ b/dist/extension/manifest.json @@ -2,7 +2,7 @@ "manifest_version": 3, "name": "Pocket Bird", "description": "It's a pet bird in your browser, what more could you want?", - "version": "2025.11.3.34", + "version": "2025.11.3.37", "homepage_url": "https://idreesinc.com", "icons": { "48": "images/icons/transparent/48x48x1.png", diff --git a/dist/obsidian/main.js b/dist/obsidian/main.js index de3a838..13a3c30 100644 --- a/dist/obsidian/main.js +++ b/dist/obsidian/main.js @@ -1012,8 +1012,43 @@ } } + class ObsidianContext extends Context { + + /** + * @override + * @returns {boolean} + */ + isContextActive() { + // @ts-expect-error + return typeof app !== "undefined" && typeof app.vault !== "undefined"; + } + + /** + * @override + * @returns {Promise} + */ + async getSaveData() { + log("Loading save data from Obsidian plugin storage unimplemented"); + return {}; + } + + /** + * @override + * @param {BirbSaveData} saveData + */ + async putSaveData(saveData) { + log("Saving data to Obsidian plugin storage unimplemented"); + } + + /** @override */ + resetSaveData() { + log("Resetting save data in Obsidian plugin storage unimplemented"); + } + } + const CONTEXTS = [ new UserScriptContext(), + new ObsidianContext(), new BrowserExtensionContext(), new LocalContext() ]; @@ -1025,7 +1060,7 @@ } } error("No applicable context found, defaulting to LocalContext"); - return CONTEXTS[0]; + return new LocalContext(); } /** @@ -1867,7 +1902,7 @@ insertModal(`${birdBirb()} Mode`, message); }), new Separator(), - new MenuItem("2025.11.3.34", () => { alert("Thank you for using Pocket Bird! You are on version: 2025.11.3.34"); }, false), + new MenuItem("2025.11.3.37", () => { alert("Thank you for using Pocket Bird! You are on version: 2025.11.3.37"); }, false), ]; const styleElement = document.createElement("style"); diff --git a/dist/obsidian/manifest.json b/dist/obsidian/manifest.json index c0d5d22..4220a9a 100644 --- a/dist/obsidian/manifest.json +++ b/dist/obsidian/manifest.json @@ -1,7 +1,7 @@ { "id": "pocket-bird", "name": "Pocket Bird", - "version": "2025.11.3.34", + "version": "2025.11.3.37", "minAppVersion": "0.15.0", "description": "It's a pet bird in your Obsidian, what more could you want?", "author": "Idrees Hassan", diff --git a/dist/userscript/birb.user.js b/dist/userscript/birb.user.js index 7304587..e64c82a 100644 --- a/dist/userscript/birb.user.js +++ b/dist/userscript/birb.user.js @@ -1,7 +1,7 @@ // ==UserScript== // @name Pocket Bird // @namespace https://idreesinc.com -// @version 2025.11.3.34 +// @version 2025.11.3.37 // @description It's a bird that hops around your web browser, the future is here // @author Idrees // @downloadURL https://github.com/IdreesInc/Pocket-Bird/raw/refs/heads/main/dist/userscript/birb.user.js @@ -1026,8 +1026,43 @@ } } + class ObsidianContext extends Context { + + /** + * @override + * @returns {boolean} + */ + isContextActive() { + // @ts-expect-error + return typeof app !== "undefined" && typeof app.vault !== "undefined"; + } + + /** + * @override + * @returns {Promise} + */ + async getSaveData() { + log("Loading save data from Obsidian plugin storage unimplemented"); + return {}; + } + + /** + * @override + * @param {BirbSaveData} saveData + */ + async putSaveData(saveData) { + log("Saving data to Obsidian plugin storage unimplemented"); + } + + /** @override */ + resetSaveData() { + log("Resetting save data in Obsidian plugin storage unimplemented"); + } + } + const CONTEXTS = [ new UserScriptContext(), + new ObsidianContext(), new BrowserExtensionContext(), new LocalContext() ]; @@ -1039,7 +1074,7 @@ } } error("No applicable context found, defaulting to LocalContext"); - return CONTEXTS[0]; + return new LocalContext(); } /** @@ -1881,7 +1916,7 @@ insertModal(`${birdBirb()} Mode`, message); }), new Separator(), - new MenuItem("2025.11.3.34", () => { alert("Thank you for using Pocket Bird! You are on version: 2025.11.3.34"); }, false), + new MenuItem("2025.11.3.37", () => { alert("Thank you for using Pocket Bird! You are on version: 2025.11.3.37"); }, false), ]; const styleElement = document.createElement("style"); diff --git a/obsidian-manifest.json b/obsidian-manifest.json index c0d5d22..4220a9a 100644 --- a/obsidian-manifest.json +++ b/obsidian-manifest.json @@ -1,7 +1,7 @@ { "id": "pocket-bird", "name": "Pocket Bird", - "version": "2025.11.3.34", + "version": "2025.11.3.37", "minAppVersion": "0.15.0", "description": "It's a pet bird in your Obsidian, what more could you want?", "author": "Idrees Hassan", diff --git a/src/context.js b/src/context.js index 25b8ecf..d3ada8e 100644 --- a/src/context.js +++ b/src/context.js @@ -174,8 +174,43 @@ class BrowserExtensionContext extends Context { } } +class ObsidianContext extends Context { + + /** + * @override + * @returns {boolean} + */ + isContextActive() { + // @ts-expect-error + return typeof app !== "undefined" && typeof app.vault !== "undefined"; + } + + /** + * @override + * @returns {Promise} + */ + async getSaveData() { + log("Loading save data from Obsidian plugin storage unimplemented"); + return {}; + } + + /** + * @override + * @param {BirbSaveData} saveData + */ + async putSaveData(saveData) { + log("Saving data to Obsidian plugin storage unimplemented"); + } + + /** @override */ + resetSaveData() { + log("Resetting save data in Obsidian plugin storage unimplemented"); + } +} + const CONTEXTS = [ new UserScriptContext(), + new ObsidianContext(), new BrowserExtensionContext(), new LocalContext() ]; @@ -187,5 +222,5 @@ export function getContext() { } } error("No applicable context found, defaulting to LocalContext"); - return CONTEXTS[0]; + return new LocalContext(); } \ No newline at end of file