From 28e560ae34a366285f09247804d0656154fa571b Mon Sep 17 00:00:00 2001 From: okxlin <61420215+okxlin@users.noreply.github.com> Date: Tue, 4 Jul 2023 10:01:00 +0800 Subject: [PATCH] =?UTF-8?q?feat:=E6=B7=BB=E5=8A=A0adguardhome=E3=80=81memc?= =?UTF-8?q?ached=E3=80=81qiandao=E3=80=81lsky-pro=E3=80=81bitwarden?= =?UTF-8?q?=E3=80=81rustdesk=E3=80=81synapse=20(#187)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/adguardhome/0.107.32/data.yml | 96 ++++ apps/adguardhome/0.107.32/docker-compose.yml | 32 ++ apps/adguardhome/README.md | 529 +++++++++++++++++++ apps/adguardhome/data.yml | 20 + apps/adguardhome/logo.png | Bin 0 -> 6363 bytes apps/bitwarden/1.28.1/data.yml | 17 + apps/bitwarden/1.28.1/docker-compose.yml | 18 + apps/bitwarden/README.md | 95 ++++ apps/bitwarden/data.yml | 20 + apps/bitwarden/logo.png | Bin 0 -> 16591 bytes apps/lsky-pro/README.md | 98 ++++ apps/lsky-pro/data.yml | 20 + apps/lsky-pro/latest/data.yml | 17 + apps/lsky-pro/latest/docker-compose.yml | 20 + apps/lsky-pro/logo.png | Bin 0 -> 18655 bytes apps/memcached/1.6.19/data.yml | 17 + apps/memcached/1.6.19/docker-compose.yml | 16 + apps/memcached/README.md | 54 ++ apps/memcached/data.yml | 20 + apps/memcached/logo.png | Bin 0 -> 24668 bytes apps/qiandao/20230618/data.yml | 35 ++ apps/qiandao/20230618/docker-compose.yml | 153 ++++++ apps/qiandao/README.md | 134 +++++ apps/qiandao/data.yml | 20 + apps/qiandao/logo.png | Bin 0 -> 15887 bytes apps/rustdesk/README.md | 241 +++++++++ apps/rustdesk/data.yml | 20 + apps/rustdesk/latest/data.yml | 50 ++ apps/rustdesk/latest/docker-compose.yml | 50 ++ apps/rustdesk/logo.png | Bin 0 -> 11655 bytes apps/synapse/1.86.0/data.yml | 11 + apps/synapse/1.86.0/docker-compose.yml | 30 ++ apps/synapse/README.md | 244 +++++++++ apps/synapse/data.yml | 20 + apps/synapse/logo.png | Bin 0 -> 2949 bytes 35 files changed, 2097 insertions(+) create mode 100644 apps/adguardhome/0.107.32/data.yml create mode 100644 apps/adguardhome/0.107.32/docker-compose.yml create mode 100644 apps/adguardhome/README.md create mode 100644 apps/adguardhome/data.yml create mode 100644 apps/adguardhome/logo.png create mode 100644 apps/bitwarden/1.28.1/data.yml create mode 100644 apps/bitwarden/1.28.1/docker-compose.yml create mode 100644 apps/bitwarden/README.md create mode 100644 apps/bitwarden/data.yml create mode 100644 apps/bitwarden/logo.png create mode 100644 apps/lsky-pro/README.md create mode 100644 apps/lsky-pro/data.yml create mode 100644 apps/lsky-pro/latest/data.yml create mode 100644 apps/lsky-pro/latest/docker-compose.yml create mode 100644 apps/lsky-pro/logo.png create mode 100644 apps/memcached/1.6.19/data.yml create mode 100644 apps/memcached/1.6.19/docker-compose.yml create mode 100644 apps/memcached/README.md create mode 100644 apps/memcached/data.yml create mode 100644 apps/memcached/logo.png create mode 100644 apps/qiandao/20230618/data.yml create mode 100644 apps/qiandao/20230618/docker-compose.yml create mode 100644 apps/qiandao/README.md create mode 100644 apps/qiandao/data.yml create mode 100644 apps/qiandao/logo.png create mode 100644 apps/rustdesk/README.md create mode 100644 apps/rustdesk/data.yml create mode 100644 apps/rustdesk/latest/data.yml create mode 100644 apps/rustdesk/latest/docker-compose.yml create mode 100644 apps/rustdesk/logo.png create mode 100644 apps/synapse/1.86.0/data.yml create mode 100644 apps/synapse/1.86.0/docker-compose.yml create mode 100644 apps/synapse/README.md create mode 100644 apps/synapse/data.yml create mode 100644 apps/synapse/logo.png diff --git a/apps/adguardhome/0.107.32/data.yml b/apps/adguardhome/0.107.32/data.yml new file mode 100644 index 000000000..742b03ac4 --- /dev/null +++ b/apps/adguardhome/0.107.32/data.yml @@ -0,0 +1,96 @@ +additionalProperties: + formFields: + - default: 20053 + edit: true + envKey: PLAIN_DNS_PORT + labelEn: Plain DNS port + labelZh: 普通DNS端口 + required: true + rule: paramPort + type: number + - default: 20067 + edit: true + envKey: DHCP_PORT1 + labelEn: DHCP service port 1 + labelZh: DHCP服务端口1 + required: true + rule: paramPort + type: number + - default: 20068 + edit: true + envKey: DHCP_PORT2 + labelEn: DHCP service port 2 + labelZh: DHCP服务端口2 + required: true + rule: paramPort + type: number + - default: 23000 + edit: true + envKey: HTTP_PORT + labelEn: HTTP web port + labelZh: HTTP网页端口 + required: true + rule: paramPort + type: number + - default: 23001 + edit: true + envKey: PANEL_APP_PORT_HTTP + labelEn: Initial setup web page port + labelZh: 初始设置网页端口 + required: true + rule: paramPort + type: number + - default: 20443 + edit: true + envKey: DOH_PORT + labelEn: DOH service port + labelZh: DOH服务端口 + required: true + rule: paramPort + type: number + - default: 853 + edit: true + envKey: DOT_PORT + labelEn: DOT service port + labelZh: DOT服务端口 + required: true + rule: paramPort + type: number + - default: 20784 + edit: true + envKey: QUIC_PORT1 + labelEn: QUIC service port 1 + labelZh: QUIC服务端口1 + required: true + rule: paramPort + type: number + - default: 8853 + edit: true + envKey: QUIC_PORT2 + labelEn: QUIC service port 2 + labelZh: QUIC服务端口2 + required: true + rule: paramPort + type: number + - default: 5443 + edit: true + envKey: DNS_CRYPT_PORT + labelEn: DNS Crypt service port + labelZh: DNS Crypt服务端口 + required: true + rule: paramPort + type: number + - default: ./data/work + edit: true + envKey: WORK_PATH + labelEn: Work data folder path + labelZh: 工作数据文件夹路径 + required: true + type: text + - default: ./data/conf + edit: true + envKey: CONFIG_PATH + labelEn: Configuration folder path + labelZh: 配置文件夹路径 + required: true + type: text diff --git a/apps/adguardhome/0.107.32/docker-compose.yml b/apps/adguardhome/0.107.32/docker-compose.yml new file mode 100644 index 000000000..a87a5edad --- /dev/null +++ b/apps/adguardhome/0.107.32/docker-compose.yml @@ -0,0 +1,32 @@ +version: '3' +services: + adguardhome: + container_name: ${CONTAINER_NAME} + restart: always + networks: + - 1panel-network + ports: + - ${PLAIN_DNS_PORT}:53/tcp + - ${PLAIN_DNS_PORT}:53/udp + - ${DHCP_PORT1}:67/udp + - ${DHCP_PORT2}:68/udp + - ${HTTP_PORT}:80/tcp + - ${DOH_PORT}:443/tcp + - ${DOH_PORT}:443/udp + - ${PANEL_APP_PORT_HTTP}:3000/tcp + - ${DOT_PORT}:853/tcp + - ${QUIC_PORT1}:784/udp + - ${DOT_PORT}:853/udp + - ${QUIC_PORT2}:8853/udp + - ${DNS_CRYPT_PORT}:5443/tcp + - ${DNS_CRYPT_PORT}:5443/udp + volumes: + - ${WORK_PATH}:/opt/adguardhome/work + - ${CONFIG_PATH}:/opt/adguardhome/conf + image: adguard/adguardhome:v0.107.32 + labels: + createdBy: "Apps" + +networks: + 1panel-network: + external: true diff --git a/apps/adguardhome/README.md b/apps/adguardhome/README.md new file mode 100644 index 000000000..6aa82defc --- /dev/null +++ b/apps/adguardhome/README.md @@ -0,0 +1,529 @@ + +
+
+
+ Free and open source, powerful network-wide ads & trackers blocking DNS + server. +
+
+ AdGuard.com |
+ Wiki |
+ Reddit |
+ Twitter |
+ Telegram
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
| + + Chris Alfano + + | +
| + + Numberly + + | +
4u z%7je^H=|=9OTt>|Mp2fCxQGhUKCt7sORJtl*<29P!k+gutZKWG(&Ac2EP5Csks~D% zkQpdcHzuwqFj!$`plJdkQ6Vb>;sw=ApDO2P@Qp`$_V3$Z{~xb%$MuQMJ#0#yDo#}= zy9;81P(f!P9nYLn{^AFPZ~Rhtd8^P(j8qgQN0-k99YY0iB6RY&ONlayNEquF9EXFJ zd2=O7ck$XH+SvOL6~xD!D7>?KP$I^NI=+!cp-|imYhTk=6No0Yw9a2bU71>;>cDds zjKBT4aqvjxPe0Oe+YN$PkBDMpbTP)TkU)%!n*-l_tmmsgT;t@WEz&eP>X=~j0Dt`9 z)($dWH23y;`}g?u`KP|}pXJwIT3`=DM>Cq^iW&R-Z}De*YxEwX2r&knHvcw98J&HH zAtID4{Oa@ufAhU_+_L{52lsUxT#k1OcdMvK#gjo&tWNpyQ=5GCr)PNa~s87|=#RhL=L8OjDvzj&7a_a~=$@TpC_PJxVwlf_Y^HU=GBSa-hm&^q5c zwn<5uNm_;q)dmLfMPqt_Hyvg|F>o&=5;?7~>B2W3yUgD`beVJO5#&aldx$3m2 ^MV>$BEKetZQgK8Q9UWN&X|3x87I@R3kdl(nh`U9|o>`qtc;QUt zD-T}e j%+wj# zh5fm5@!~rFcx;0wPn6)kA!x0_i!T>`_H5y$OHc+U`3#X6>J?L^2vCM#<1M1-1>Q_l z!%Cq56+z8VADB>}!b_KwhmH?CcdAfL(B70^Jh#D*pIT?I30>-9V!#JdBb-$1O3{3Q z1>QtRqh?eJNNpnn6?bDg=_o$o!6!EP#j~3XCgjVd^2?JO{PKlOC@W05ijfcx3LtG( zjNG-XaA%`v_o!!&^rb65?zKO6adYiFe$%zS!X^`GTzc6#S0|cD2-UZ6N)YBeQ^k=k z;U)3-i!+X$Ogyl)M1JY~CNEwXIJXwv9#2XolP%hbq6HD9T8b{tP8#%;X43rkD`#q9 zz;8ZYONIPR*PuC_9l1Q-B4|at;20(yE*-rFC0R|mu%0=2zH;*1I{Da(&bf=N{f=Q+ z%P3 V#1_NB)pLjhnk=lr}nU#JKnM{b6{#ra~yOPM{;DjR*7SfMZIOG;b^lQkn_L6ji0DVD89oTVN0eF|-EdBCIp) z(@bzTl*+lw!m$&OpE@aAUUMdD%u*b%x+5fngjqo_QfhpRH~Opzlv0^YoI7q?;XSvk z^0vdu;pNIw7kt`54b5?zd5Ifu;jniaK^rrZFi25E3a*7JP<_JXjl}7f3(uX{nG?(WyMNf^>pz<@vneS}kR;SPU=>s~s1+8x zXqVSh{&mDbCE*$a1i{%fBt`7*Rao1soIbZjK6QGNOB;r(pviGHyaWMXBq5sPKka~f zc88%lw;h@A#Sbs@hwoqJj_Z{WuNecg?eW{fir+j$OZmz#h-stkakar};?SWfFRtIf z%WD&U`s5b93!0R!cEN}C6h`Rdkm2jNmU9A=f@G+QdkJkAZLB_3E^Qd6PH&P=of){i z36>N|qm02w>T4dFk-YuJ8k7UW;M{g|$LBu2!qLNu`8Z5T%p7V=CWwHPc-^uu+VDFL zZ`F%&9x#4I6-q!2(Hcqxn)uke_w&@r#3Rp~=F(PWMTD$fu;hU1G5zmRO@`Ms(BW;2 zFJV`Pu;PzoSQ0L88mG<- ;1M*X RPjSlM;|IED@lvBt71q=2pOv zHc#5bU_?l0yy0(Y(~jfjxH{$*a$oHj+^miCC5Ec3_d*^lH6nfivyfC84Z7(bxb2`j zbf~Tr%Roh?#A) FK7_*ufirwBTFw84XMZF@X;Y~GS zZE=tBDv438*His<2&0zPvG#aUNR8w$MokifDR~?*7s4~Ej~b)l5#N+2d(-ZK0jCF_ zkm;x{xRkiDJfW6Rlh+r1E$} a?-E z*JsSHKB9JWc}Rk(ON{W1wkk??DlQepP@>HUU|JD1Tm-8jyElsIzM*I#g|-5|BM_lj z#AvFxOrm^L7xRa29@>*|Ug3zk^n8#?UYkxOhMF+1bgE3Xqc>&nt#}v72u?AYPyKC= zVth&)s5DB3qLvsnUQ9~6;e_m7qnRSmkx7y zNPCpkl&BJtV|&rCU)xB&TKH{_BjVJw?KF>rt5=F{GM4VdfsCmj3fY}xEml^Kr@j%= zx8r#KZ%suG+lykfjg3Q+XH*j^g@FQYxL30KNCOIOW@pstXs;Bwtu~v;uYH5vpway6KYb6z7uz9#RzxEkk2Z27GvVK^7;#*fu@trg zFi4U|E<+&M{QjBO_{Tu^bsxqUjErxxbNEfR`fCP#wT=1OgyZyV&6F*lFl&lIhG4BU zY90zhS>kK{yOsj}`-g#B U??Q)i=TYIF zqlv>S^LpH#!or~61Z?!m_m5}(=D|xm{rnm>OLQqWie-$tnP(~)Rd3z49q`aHcIk|S zlN_u-5ocDM>sOS|ePor@PwwZ?KAkII?IkP>`b|JJ=k!|7Q!j1s#EV- G@4YkW~2%g!9++owGP}HU*&L#T`1Iuoz(@=gy%$>3Cj~@X-UZ$WQP;F zox;MP-vo%jL=)3IC8vrR47Cq$>4eOnM{C#3=7S7xG*kq%!$_Eed7)sK^i(k{Wh_mo zvVxHpA;$v08Nne|s)rnLQ3ojm)3A%$x |6wsQX zEK!FpCQbHOxgQn={iZ+&1N9+xJbE%zORHuisEH&oSX!-MjXCp1qqg;xE;ZJ$iNzvI z7rZK66?CXb-9no<`67m1;MX7$9nNGxHAHF*i3TqcF^#=8PSZ@@nWls(3>r+zA_df9 zT?jd-x&k6Ssvc_kuNt}98(0|hn}9IVA?7txjFn+sa5_}5t`T@eQR!NEumedUPPG_1 zl_p7$V(%WN&MY~Wg`^Ykj#1HbFJbQ;@g9X^^M#}F!Z@A;C{3<72tqsAt$i&OYUD;a zt@t4$S7r|e&@2r4O~h-BblaewZ~yAmV-ddk81@jGaT^u}y}&hvg+VWHO<`fs3tUrJ z81w?y6cz@(z%_-1K`(GkVPVh EiaS(ISaonm71WL7fGl=> zFR >2etKchzlU&l%nWbAhDdv@8ra@kT0deDa{OLF5Cm)9 zczg6b8o9Z(ukB4NJoN7s!jRp)*|Ov9&qx)+pjjC70(%ZEPByQABN`Quh^6i79@{?w z3xobWf;-Ja3nB^#ZblfipsI*MxbMB`r57>u?-Sf3=kw;Eo0s =35%(njvk|soTUdGGagxqC* zmyjbI{&*pMUKV^au`3MP9qQf;+4dBC{M{Wq8r|Aj;Sov;(}^ R3C9BjX*T z=v6SUs~&QQz%anYby!^jb4ROS2}BIRF+iw@3wYNanOFPB_Z~zctB?##COAeao2X>W zGl|4oR+Yo6P8g V&r(fR*WX zk1_i7=8d;q0N+MuTHk_8o9#Mj1r+tvuBVMXNkrnQuv56I9(qi)w+7?f+Q3jcmU99f zA7zoUq-NSK?es3Z^X~?SieZ3S0jUgGpu%!?-g2FA=wS2AWWXYML{KaYQv{KSyA#v! zhz92`I~UfCDhb3f20)@wWAP5CB0K1v;c9zm0afAh%y{X1q2F`_LsCT~3jS^czrcO& zwHIFccZ0c6YY8u@!MLk*^d=nKFWhs>5{LIYP{6=ixDiAq2Xh?5H4;c2$xY_Ga=vi- zBDi!&QmPgzJ!TcFf|=qTb#JqsYusG*kRu6P+AyAbWngp5BG5yS`J+z2G-5g5^W2%M zig>ySNkG(tN@`PzDTlAieDKay4j;Hu;qYz0B3wwg2u2GbYP_#`<)yPdr_LEJiIfzV zN|hS9rwL+$yI?lP=R1R|9&)4v7cN(xInlE|TOsbT*IKOtDFTp1xbeF~qC+TFFi*Hn zNDgXn({+ja-!|poYLJ(-g?wY+7mw3;n~IU~`DLo&oH(<^i8C{bU16WPLd4SX%T*(* z+`*{h>Ke2_QsLry<=ImM7dGZ!0TM00CQhuPDl7^d{}f2;7FOI9t4aqPnr7bqmdx93 zRHjK8YDJ}>l5n&YumK(O7{{pup*pcq;KegNr_O9rB#{t2#SNgING(CMlz`e=@H_Jf zuX@O#0<+#Zb*}Kj*~+ZO`HR3~jHL eDs}5qy)Gj>X>M2mDffo1;&XM z6d{2q8-w%2i-ngiIM(XiN@5-&x+7+|6{;2L4km TBn;DPra;aztu$2VEUsFAgJ7{0J=4pAy#+wvIY{3ST{%#1S^ zjg*xnf|??xn6;{gJ0kJ4RnbOW-5Kl(gHD>LmN{`Ao_@J-e!WIvNNOY>5MBZH^Z@71 zAZ~j10$N($r&mI@))0}g?B-Ctf>drllKI1X_i@{G83P6}93^?=Dk6%KNFtC5CXuYC zcvohF^Q%)mPn_IhZL5++F$dEE)K<_COcWQ5a^VhBt#^e%izsNv=8$;&MdOiQ%@}NG z9>KxJddJmaaP4X|3vmNA9epZDCdv{OXNHJlBzl9P!0m6zeD=K)K75O?Keyyh1<2u@ z+i7ko9VSjCfu}Hbg_EaeJal}GSJwOBg|s?z)q+b!Jt(PF6+^=***MR*GuRadjTov% zm*Dt`f$u-M!Nv8SxF8*7LOkr4b3GPl&>qnqty8pLCcBcdfn?k}qJ3ScQW@MR=Iozz zeD=QU_!pnJo+Ae`P!KAeC6JDa2K&yUL}wyYy5?Aj$j{-?Uv2TD GG%qV739PFT 4d%Q{ z3|hQ#XQi@H3eTQaesVl>ZY?OJs)kApg3Q92Uj-=>v@9XnsM9S gJg#4 zxKwUG>iqG?rhMS-6VyV7Lp-PjCKh1=j;p;Y;2je|rBJQs=g)2Oix-?r8&k|vB#yfP zyThQ{#7e0Vc3iyVeDmQ=9)Gcbc V_dEskba z7&H{jdaMdl&CE7?9)9uy5C3Y$<5U5jm=ua^(Nh>K;YE=WWcnFB8@55M zaKp0jxqFxR)6X2{wj;~nf~!+oze-#Xhav-2D(XQH6A_Xt$sAz-6P`Mi_`#DsFP__E zs)b~}Yx-SR-Jk`bdZpMva%Cb3vw?GK>-_NX4Sw;ALF+vE)j!-_hnfmQw?&m6DMspr zR1zW+N_KkdS(c8^-G3eb^Jn&R?~Rk-Xn4i7$F$ #HBg@u?4=0egIeq=|o@zbYfeB-A*=hw%>6x IUsNstHXKOobvP9I_}U&sKhTY{rj|Z?Qg9M55lh zTOMz_0h&5Gmg&lri7VPUB@gtr!HOFXylo%<`
6RTa${l||WZ4k01hF{rTRg`rlgc8DaNI<>~% z{^$%R&u$P3Kfj;N!dKTC##bDvLLMee%L<7py~1T2*UU%nJ;?v| Jsry#sKHV8 zq=+OE330_eVUikG*+5(E*`3xMVXHddeDo~edh8OLTbV41wuj}gi|S8Ted;?9WS3}j zD?$fkCR5|W`oKRvro8`-%8^w#w7>DA8&BLc%1j}7{F)lIUwQjI1&=3J2*Jb|5iv}R zYJ&R&k<^It4qh+`qg?L`X{tQ%?t}cVU)aYVegO7~L22GLRXjz_$l80yBQZELG5!{% zR8T~nzEpnpbm1EhUFP^p8+4N;vQ9!q%xOHE-Qb^hg@^V= #Rx4zE; oJ;*LFXd>C8P~9<)3|lLJk+b6h7dI>4 zdGrF;A9CLE*+blVG)U@-N5s<7oB6;+W9u=0r0yYP1<&9ar&1}n3)m7 6TjTg=dl7xwBw7E1|>(vVb(Cv~(;qEYK;sVy82QiX6W*)IzE?Cak$_me%zr^4E z_$;^IFyT-3Epd3i0>KhfGNB&fbMlPuG*|HrM;l4iCENtDo=yw}str`%q*x+prbuOD zaFQ9fUnhL>-pv2<`Bgr8_evZ5iv-Wr5KAbjjkb-kSWKMMHs+=XSjIdg4$OrIpWNiH zzI&dZJkjHmWhPqiTB*sgG$6I&p2(Ww|L=nG(=IS*M=Yb>feIC)n9)fhOQzJG!8RZ* z;oTC)PjB)czH@;i2d4b-0|#PmZ5(J(pLe{XWfRHHUV %{g_?Q1|m3JOpqNU31yf}tY71T1x+SEyN!7en8a|i9bg_5rD ja-iu z&V)40^ji}iJ5l-f-(F|hP5HtHreU)+X4lx3p|j_hd0~uFdsLuGNA*e)r%Q<{iCH#g zv%<1u-hbB;fAWz7eE9>*y!~kCY1G!}h|jKZPTOpsT1;ZQ(l|09saS~XFcpCW&zzj` zpT2d0Z$0W<+{zqSDOB5}xZr6*7QxE+AP}gn Z0Q-a%C#5VbJUs<%xWn1OA617)3wLkiPJs*&p%$` zZ+^VNE1MmYt|CJp_2$+CSgIMViGopNE0%d)eOm^0fkDSsrh?gkwGxx4LNz2M5?xFk z7emcRD8(~dX8iE!bymJ<{GWM+58bhZri2VmO+9GPBKI19+5yjw*g!S|nbJ#U(|c5V zZe2-y;R6TwH-EUF_uanC!Knb1!4;K+v>ho%h$5;xoefllK~qE{)uIxVBXOJ%2Kn;Z zCja>d7x~K{%s6pT(NsvKr&h(gDV_?{idv$xDNax6W=Pi>H1%qqy flHj$Y_fkWbBKD6j(JnEu6bl_=iV&CaK_`Q69K!8M*{an(p!5GG<0Wl1>p5bgPX} z)yh=huA7(nm!DeVfBN7m@3>{kq_w8qg`_gie^sn$04m8dLX<#_f@&gJicrKonl=ir zoEi8p4_@G}ezMN7(;4-|wChR9abE&Dl0{7%5lWjC6a|-pd2Tt&qHGrmJ0ciUgbsB> zeTHhq#2KiqCavTus0}S9Oq{ a|T*nV8H?Qh;D za 7rJld}(FT9<-Ax`pA=sdFORZ*I za_DHJg1C?k27w_Bl&oaBXsCEhliOAH&ag`i+ATr@^$;~L0#WG@+~dTB4eGoM1wt0b zrBGcsajxTQKN-Nz@vr{?9=K~i%NXLs#4*wQipGnBmLNrWB%Cdm+8Lu(!Mltmr*n(2 z3TM!Yh%wa~V`u~TU>J$j$rktBru@mLZs0TbEpz)}nC1ecHu4ltwW3Nv$?hZ)>VgTu zTBL*wfk%v6fTG@-Aj;`W#()0yMgHS=HhJO%xC$xPR$WS1Yh1ZG#c9I;9of9~U;B1G zLn?PSU{@G4(7dDrrR`f8AI8$WNqAQG=v1jXo;ESBXjM9&aOPacfBUiF{Td9JPrZAY zBz+r=TcXa-dAzG&(WUf6FX69u;)I0K+fvjYQzWaY_D%e786PU5JzK@`s@!!; `1swc+;BjF657h7R$7l~618Bu1t+7T-Y9jAmYCWIm8pY=IAcON{&MB3KiK5I z{BXvx6PwJcu&f=T1@%#zzir5BgZANflr+Cqb)MVo7VI8_o UGr$S?T1mJ@ z`@d2_5?NyM=gCu*zxdu7|MmOp{OW9h 4XbI$2Wi0b9${%zi@!hd|(O9PA8%01Hlw?5=EWT5~;L9 z7pRJ{#U{frAbm{c6cJ|bcp6yQ?;Kv8^67h5`8S_F#QX0|99(KMAhm)Uk~5_CXm>~= zh#NNVAJuRLnj jTbhzC^E1_W+D^NOszTMdhKJO zy l1PPN6 zUTFmPt_G3))qD2dI4Ba0A29}TM5fd(Gox^1Rru6h`}o59mif@#!ksrelaU?d;M+tG zUHr;6Di>&yU&yF9r=cC!7N3|`s6v-A)rE&2U+1sBvBp<_vB|UR19eiEU`$=enkZ^i zGrTIPvGDeiF~c4+Xo#+2v`Z#&fwf|6fKTx{WsprQZ6edm<}C63CuXe8de&yn7eBnj ztw(b3awIs|+M;Rqh^KdgnI|qxN&-_Z4Ds5{2ZayZzQo7hv5!yRy}|?UoG@K-U`C-3 zDV`%Kl4kc&45l&VJOmLV2QWmG5QVApx_#ETyz3kA!zV8Am)~0B8$TU5Q)lEQCD$q4 z0GbTgiW gj>c`(L6)y7E%g{WvX>l3fYZ`7HY0M^z1t4 zHiffWnLm0!x$8z@IVGk7Zq`UmB`O{}5OuggnHf^xz>09gVfe(m6aV5v`}y=e2RN`4 z+--LSpWsq)8CqRB>d4Uwcie|qZ%0O?Yo)q^n1msV<1#M2RL)$keD~3H{^K{!^ZjEz zn`CrJP|r}8Q7Tn7F?y& DOpM~7HIYrA3Z_wec7eS%VZSF0y0{}UpbTLIl7S4aXi=05sZezj z6Qj!$ya>;oy2Mw0xXI LZXKoxO%Rr!dFaU*|K*`|zWT_F zCtj$CFR`zipf*ELTnjbz)C5+Q> yZf^uv0vQrB1l-_9^$> zIVDq3w!jL=q;>BE%h95U8gFj(-8NS^(li8AGa^LT(dy8NOzHrPbDM=np6>aJZ*B06 zN49u*v$B+xE>*NB;!`xuFnXj4SPBOql_C|AQ? $5X%IN#d{x0DR)Y>FrR57b~Gv*`-$qH)J)Wpd(p`uXR #o$fPxOL~tDyL!;vtYa?1u)?5DJS8l(n1!-MLQ`*)o(4r)ppqel( z6e3X;SF%VLskh7{M%u>@;jP_iVHmrD#XWY!q)n#C+$dr%wZCfZff8d#=7wN#Ly9ud zsPDdVW{rP%@GQ??QqG)R 6N^6cZ2#u^X^6`Rb6y3u4j{qvqzf$?f$2a-=pRV!UU#|1wg^rZ> zvAhf-TNE2GO^~{FQ^XGLEAMe-D}wmg>K^qUcEj~1INq(RJC57Mv9`(% z^|SGsLJ%9Qsc;Fo!hgO9oUGszj=JBM`EA3~aFeYc%1SG{K=j2#2)V)=X=Yd0u5+b}v zaAkRJt7J6GZ$BgcuZXq72uZJto6hrRX8i3Bw)onEGhVo0oSRM2r7mayR xKIs1l z;o014tJ@O7gED$JZ{f!h;z~c8vEIYqKfJ-yCpY-Q`w#Nv4_(i_wOFaB+<>gDt%rl-VDGP~$Tcw(SB*Z1;irpL0Yp-0xD~X??O*JYUZEWi@D#6H% zbDhZXc-HxeG^tU~B}HphT8y Z2yforF&iRm()6k> zpNWx-SlpxIte$`h7cV&vJ=628$7X#0ms=crev3=9igt1B5-{ Y36X+f&QTxA>bUF)4^Pxbuh@flzJ@g*L5W`m2pph;O? zHoWwR#TKg0K-<=-qOrYdel7QoV}2C`K(FLXvF^|C 1C^ILfuT>*?wMZs~Xz3?Op&duT z9L~&?@BDJ$Z@$0APmW#UmGc)dceGmq%_I`pSD{2xMBBYowTvq?QP cq*14nV!=Y;1*(iEO-O?Ob77`B)FzW5`{`%rLW<-p~#a zrCJZ(YP=qyfJzF&j}1*4dBRW<8|Q?dZwMDIZ}8Z&m-*Pc5AvD&4sgejkz>&uvMWL8 zi9u4)F{uWTp3uq2j63_(TUn|`DJ>M=0Xi=913x&n!MA_0#ZR88Jbkj~?D-j3$5M`s zuwFxkIO^6KH*TBau_lWvrbKZ*I*cK-$lkGO8D}lquZW>qc{aMc?#4>z96A8`rXwA* zzHn|mrX^bcG~TNvRm>|Kdk^CS*XK2_w(wVDF{OE-G7yjd4)qTA0TaXNN$PaV9o3a5 zU)bci7uPv{LU{h=%*Wo9x%;h4+;*h>urbGLy2&cmstiq>d0Tldv|cLWB^df?0>H(Y z@ze{I2aj*^tw+xDqhp&~*hoyLnSGNCOc)D#SOO{3RAOnS$Mnkha};T-h}o-`uR&U3 zU$?nfWz1)^R`xFoHyz33n{HU<{DpPIj9TMVt9UEA8*Wi&Rf%@&USna^+73Aithg7< zJiM{yCbj~#7C J>kATeGd37i+O65=_UBebxq8(t+fyl2ovY|Ja}rR4&Gh+?LA6|xxzRuVVeuuQ(; z&=M~!Zy{cYCQ>Vscy!;)Yb1r58}n)}oehX4LYiOLu_@x_xCyE`raz=aEk}CP9n}zB zH>>fal7eZ)Qc#(OS>>@8D=%N% qvce|ZeuT5>je z8<=w9tnh=!F7Vx7T;|c|oo8MVE^it_M;h}WEvU4zA=Y%9A=M5klNN3iRE3;#EZj81 ze4tW7k4}YTZDsPFxsFX!r0IW$fJ0mKR|T)pc-gm{xZ%(e`5i}{C!dY6c`=E{qZCBz zmDa7s)NiwgJ%ur|k3W2V9mnLzT09m;AER9&R~~CJufxX*G!e)uh$n_2@%-6=mo8O) zb#CDC6PtYK&I$M3zK?ruJ;0HDLc&NgKx4@z20&Q@o;guDc6{I$$DN-(J@CZIp0gVR zk}}gtP)8%gZ^H-TZ4zGQ)e~zSMQKvGf`D0*yR~^EB3kcz?dnAp$t@f}$RjV|C`BT# zlOZu!$Nm-NuA`Ow&bPu354JC&k@eF=4>dv$BQzcMUX6o!h~)FXj=j_P`<2&6mS+5J z+jOl)Gsx{c5Vk@RXLV_c;XHq8i (b3QO)BKN?Kq=*X;$V3ACubK zYlC~}I<`Iu+G_oci^7;cBOsaU4<_Dqi;!=*eudkv-{A0mIJYUd^#}t-M%Ad6aaX#w za$vXUFI;V?R#XP6CCoDFQ;KI!oG+aH>17^%e1oIcPq^vGGB+Mx;?U|Q{ZM)NY~keT zo>S)s&Tkm&J#1-oE#0jpdht-*LuR)_2x*4Ux$dBbzM-bV6r-;(8+v%3aqE#KZn}Pz ze4xv`=jcA(eJgzL>7KqH=yJi;aV8)W#0{xKlu-7X8vYJp zHU~#@<(;=qdFRn(R+kcaqQ-mgSm8r=Ret#FW!45`-=uL9S_?I|)egH!P~>XE8l6 VlLc73+*?r>KPbkyJ%%2)C;!MVzR)EZ{9PRM%iC zs$oXk4PV&5RQcdLmbv%#DN`}BCg+wLGxy(-IeNfZ-%?B_(dm* 8dOCvi@iIV zD@P9+?|)n3)*CaTwN0!D+ T2dAcQ5gwJ2TI`v`# d5UGeqvgp+s5$DRp^#WJcw#+JI4@Zj?ZrE4&@SVZ~cdxR#BGD}c zvg(8}khpFieBlH8IdNv-+YfIrGbK%xOb%XvFN#Sc+(&{$ZS~PeTChach@r*XMk^PP z9v8zb!?@PRn_#&M$zr#;RBhDOtG`idH$WRFr3VTH@quL#KJo5VzVv~8T)z_6AP7to zau8>tovNwuk-L|9@s%4me)1B>&urq-vxFc;8(IA7e!$&=s940b1T|I`BQ<2TRH)Jx z{&=)Hs+Fh{Nwl8ZPI%fv#i&CISL)A;6CH4Z7Auvl>U7 _VxVm%b)UD^OeDk;JqXt^TpyFr7X8-w zuW>AId?{v1Lo?I%peGtXkBr (tYw6pr^ZdGRvxVq^w$3!|hNs3H@<=;qw&pJMs 2y`qxaq=ZmQ zZPUrZxbo|YH}Xb$8czi6W9=>2t9s^R{m17LW!og$+ox-Fxb3#;+a|8r+X2Qnb=uBC z3l&=1-nX^xy{+eL`&~xvfr}&JQPprKN#w>w6TN1%6mGk&^5y#z|K{U~+YUQa$9)n_ zz-C)nEb4qF5+gfSnJB#T=ER@>(LS)teC?si*_c K8_fte2sDv&1#hC8I9T!-+v`#S#Y4_CP3aD>Q%I7nO1;f`2{r_EVdRf8hg zn=+Bi2j8}ee_m0&%-0@X=fw@kS%dFn8L0`=kf${Uuz}RbG|?#oXp ggH4O`r{FN2F5*+kr~uBfuAHic(t~pQUqfXE3z%q#RgSoC`0cYT`GLx zeG~rdv#Z>D%L G4by?I9}`YpER?=y zB1^a~F%ttF5F1ElbZxhXN^D0GZxhfXV@z%SSn>HUet%rqH43wFBa62AKWV!n $RB9Wv+ zH8(zP2-!FmOEz17{z?s3+dSR^dljZeq=r|L xc8>S z^wS-0J6QO}&j)_=)QnRXLkho3m2OgrsoXBwyAIGZY8Z!x!swAB%n=E)`d&;57kCZY zgp-IhN S?Xc|$8|B~B${+9s<~ mT?1_FX5^TR@s^js3|ueTIC&Y$$aqb#y|VODj&UjANyj>0=+?Ll@Jx% zHruN6y1kep-ut;Keh77vI fB(oD-+A;B&z~!l zs?;H2L&kJKa*wK#QX}cOLkY&7I!wr9&6pTHwTT-py!BqfD77;op{^7w^o=fo0y*Mo zF{srsGZ-e|nLMdTu5`(`^>E@-@7~WB-nWnYZ=Z180U^)TZ-t_TBB4Yzp|nCq$Zi;h zRM4vD#b$oa({PAXfQ(q1trMrvMTt!+LTTbN-JILl_i*A|;i(e?4?eZYgU8l+;)N|P ztXHbXf(J z6%Oso+;i(PAGv3h55HrHyWX04>*0>cq`j#Zuo8msC{9L{n9KC|w@KKNR6$C2UWPJw z=tnqsYIVKn<@nf-Rl}r@0N+E?EzP+G(K>(rmBP=DZ}8+xo1D5daO%8q{vxc;ob?Uo z@|LqPD5Zrsp~gAj-UlhiLw)G?x%9O+5jA0#p~cM;Lhmp74_S?s&e*>stga}lQ#f=0 zZaf4xUpM9MqszSa&J}LIu?gW2TLX;Lbh3k|;WdX>&b2ANW`sx}we2`}7i7yfpGh@e zmuiYeUT2M~B&`G6#>k~I&K1J|^u#w#flPIn4aQnAUcNZ+=<|igUo4zH*K_Lh7AH>+ zoW1O93>}3WcbybWVij*!7oo;p#*jQJW1i8b36d$SbOVR?3pd};anlV;+;IJbdv3|x zd#iHv(3E{S(RC92i@9An(BXt0q0H^PVyQ-jO%vHWv}!c`l3`LV{C~_j8s?RdsZjs` N002ovPDHLkV1nmp=nMb= literal 0 KcmV+b0RR6000031 diff --git a/apps/lsky-pro/README.md b/apps/lsky-pro/README.md new file mode 100644 index 000000000..601ccabb2 --- /dev/null +++ b/apps/lsky-pro/README.md @@ -0,0 +1,98 @@ + + +
Lsky Pro
+ +☁ Your photo album on the cloud. + +[](http://php.net) +[](https://github.com/lsky-org/lsky-pro/releases) +[](https://github.com/lsky-org/lsky-pro/issues) +[](https://github.com/lsky-org/lsky-pro) +[](https://github.com/lsky-org/lsky-pro) +[](https://github.com/lsky-org/lsky-pro/commits/dev) +[](https://github.com/lsky-org/lsky-pro/blob/master/LICENSE) + +[官网](https://www.lsky.pro) · +[文档](https://docs.lsky.pro) · +[社区](https://github.com/lsky-org/lsky-pro/discussions) · +[演示](https://pic.vv1234.cn) · +[Telegram 群组](https://t.me/lsky_pro) + +> master 分支为未安装三方拓展的版本,通常包含了最新未发布版本的一些实验性新特性和修复补丁,正式版本请点击 [这里](https://github.com/lsky-org/lsky-pro/releases) 下载。 +> 发现 bug 请提交 [issues](https://github.com/lsky-org/lsky-pro/issues) (提问前建议阅读[提问的智慧](https://github.com/ryanhanwu/How-To-Ask-Questions-The-Smart-Way/blob/main/README-zh_CN.md)) +> 有任何想法、建议、或分享,请移步 [社区](https://github.com/lsky-org/lsky-pro/discussions) + + + + +### 📌 TODO +* [x] 支持`本地`等多种第三方云储存 `AWS S3`、`阿里云 OSS`、`腾讯云 COS`、`七牛云`、`又拍云`、`SFTP`、`FTP`、`WebDav`、`Minio` +* [x] 多种数据库驱动支持,`MySQL 5.7+`、`PostgreSQL 9.6+`、`SQLite 3.8.8+`、`SQL Server 2017+` +* [x] 支持配置使用多种缓存驱动,`Memcached`、`Redis`、`DynamoDB`、等其他关系型数据库,默认以文件的方式缓存 +* [x] 多图上传、拖拽上传、粘贴上传、动态设置策略上传、复制、一键复制链接 +* [x] 强大的图片管理功能,瀑布流展示,支持鼠标右键、单选多选、重命名等操作 +* [x] 自由度极高的角色组配置,可以为每个组配置多个储存策略,同时储存策略可以配置多个角色组 +* [x] 可针对角色组设置上传文件、文件夹路径命名规则、上传频率限制、图片审核等功能 +* [x] 支持图片水印、文字水印、水印平铺、设置水印位置、X/y 轴偏移量设置、旋转角度等 +* [x] 支持通过接口上传、管理图片、管理相册 +* [x] 支持在线增量更新、跨版本更新 +* [x] 图片广场 + +### 🛠 安装要求 +- PHP >= 8.0.2 +- BCMath PHP 扩展 +- Ctype PHP 扩展 +- DOM PHP 拓展 +- Fileinfo PHP 扩展 +- JSON PHP 扩展 +- Mbstring PHP 扩展 +- OpenSSL PHP 扩展 +- PDO PHP 扩展 +- Tokenizer PHP 扩展 +- XML PHP 扩展 +- Imagick 拓展 +- exec、shell_exec 函数 +- readlink、symlink 函数 +- putenv、getenv 函数 +- chmod、chown、fileperms 函数 + +### 😋 鸣谢 +- [Laravel](https://laravel.com) +- [Tailwindcss](https://tailwindcss.com) +- [Fontawesome](https://fontawesome.com) +- [Echarts](https://echarts.apache.org) +- [Intervention/image](https://github.com/Intervention/image) +- [league/flysystem](https://flysystem.thephpleague.com) +- [overtrue](https://github.com/overtrue) +- [Jquery](https://jquery.com) +- [jQuery-File-Upload](https://github.com/blueimp/jQuery-File-Upload) +- [Alpinejs](https://alpinejs.dev/) +- [Viewer.js](https://github.com/fengyuanchen/viewerjs) +- [DragSelect](https://github.com/ThibaultJanBeyer/DragSelect) +- [Justified-Gallery](https://github.com/miromannino/Justified-Gallery) +- [Clipboard.js](https://github.com/zenorocha/clipboard.js) + +### 💰 捐赠 +Lsky Pro 的开发和更新等,都是作者在业余时间独立开发,并免费开源使用,如果您认可我的作品,并且觉得对你有所帮助我愿意接受来自各方面的捐赠😃。 ++
+ +### 🤩 Stargazers over time +[](https://starchart.cc/lsky-org/lsky-pro) + +### 📧 联系我 +- Email: i@wispx.cn + +### 📃 开源许可 +[GPL 3.0](https://opensource.org/licenses/GPL-3.0) + +Copyright (c) 2018-present Lsky Pro. + diff --git a/apps/lsky-pro/data.yml b/apps/lsky-pro/data.yml new file mode 100644 index 000000000..65a8dde7b --- /dev/null +++ b/apps/lsky-pro/data.yml @@ -0,0 +1,20 @@ +name: Lsky-pro +tags: + - 工具 +title: Lsky Pro 是一个用于在线上传、管理图片的图床程序 +type: 工具 +description: Lsky Pro 是一个用于在线上传、管理图片的图床程序 +additionalProperties: + key: lsky-pro + name: Lsky-pro + tags: + - Tool + shortDescZh: Lsky Pro 是一个用于在线上传、管理图片的图床程序 + shortDescEn: Lsky Pro is an image bed program for uploading and managing images online + type: tool + crossVersionUpdate: true + limit: 0 + recommend: 0 + website: https://hub.docker.com/r/halcyonazure/lsky-pro-docker + github: https://github.com/lsky-org/lsky-pro + document: https://docs.lsky.pro/ diff --git a/apps/lsky-pro/latest/data.yml b/apps/lsky-pro/latest/data.yml new file mode 100644 index 000000000..bbc3f4e1e --- /dev/null +++ b/apps/lsky-pro/latest/data.yml @@ -0,0 +1,17 @@ +additionalProperties: + formFields: + - default: 40027 + edit: true + envKey: PANEL_APP_PORT_HTTP + labelEn: Port + labelZh: 端口 + required: true + rule: paramPort + type: number + - default: ./data + edit: true + envKey: DATA_PATH + labelEn: Data folder path + labelZh: 数据文件夹路径 + required: true + type: text diff --git a/apps/lsky-pro/latest/docker-compose.yml b/apps/lsky-pro/latest/docker-compose.yml new file mode 100644 index 000000000..d916808a2 --- /dev/null +++ b/apps/lsky-pro/latest/docker-compose.yml @@ -0,0 +1,20 @@ +version: "3" +services: + lskypro: + container_name: ${CONTAINER_NAME} + restart: always + networks: + - 1panel-network + volumes: + - "${DATA_PATH}:/var/www/html/" + ports: + - "${PANEL_APP_PORT_HTTP}:8089" + environment: + - "WEB_PORT=8089" + image: halcyonazure/lsky-pro-docker:latest + labels: + createdBy: "Apps" + +networks: + 1panel-network: + external: true diff --git a/apps/lsky-pro/logo.png b/apps/lsky-pro/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..91b87330ec6d2989e1a3c88d23fe2dcb0390b07d GIT binary patch literal 18655 zcmV<5NFcX~P)+ +支付宝 +微信 ++ ++ + pwpLrK6^l}BsZ=bAq7*EO1|tC^5C{Z9_C1;XF6aFI zn1oG|nItoWq Du901`U00064fP;f`|KC&%IMAdj zuYcjb`=x(7Ul_`{pXrPW`ZRN0fn~u@i> 3B19NKqsW-@9+pGF>-V|(J!@7nH*u@F!S`1EftCZzk{9Dac_ zz30CGi%hU!nsIi!hdl@2=F>Cl;l-$z<23Q`T-!4@UtqZ}HO9XxYXjKk`7{orL~%o* zdCAW&v)vc+Nsa(U1$`QL dV E|S8fa4 SbogK502L%W07J@Ghs-E+oY&3^r$dST`6!dj5F$=DbiFqPTmNP*J41_=e zKnMW?pfUyz=WsKolzTjzUvF)_`_rzjU7?)AP17TmJb7*8D<(66R}JmYm; 0ci3RfY5h! zc~)fPtUD7D-Ykxc%n#KZE*NXhS(I;iEH;+Fql9O{&=??5g0vVRWb+;gj2O4w1fx-2 zWVb(YgWY~dk}L}f=g@lj^wHt>{epAIgy3AWIhV!9zfx$mUbEHdtQ_oI7Ui3sI5$U1 z>~JxVkk}aCh6A7kFiXT1o;wUrM#Ku8ZZrx%j*I)_4KXoy1rqbgD4YX?V20J2w3aX>gebjBLo2o=jg8^ z!NV8`A-E(ma@IA`(T@yt9#>>qi>|xKcwbT?fx{iX)foT;;{TLsb+Ov;-DUVO>;-*A zR8-NN$jCe5BneK&2DDsp_(g3H1k8`S^ z5D0-+1NJv+Tf=ypVaKo+ba7 wQzx z1v>$UPeoW)X9_^$K(m9@?x|NtV>*swSPS}Gt2Hg(VwqzS1h^R+)SDpyShu;7Cd+x3 z+iZowzV?z#bN n<2;T%0+cf)jv+*{!cLAi_#;uvu?gv)%J}c<(m+7}kQ$FdFk^ z019Ivu~#|#qK*~>j5iqaf_cp)Y3BSZa*fM8ia!K2oah{gG843QGOYi`{nGZszJ~DL zariN81)Xg)n#M~~o&W^xq6-ENz(OhFMKLXy>nD#Bi}P|s!Q;iCf{uckmrP)kDgODj zXX8J<@;(~AyA5B4t)QbNDLGM+=J%Weh7w8$1V9LMU6$2g%1<)Pk*(ofohboi0U+S` ze8120#ux5;_cy6Z`0hA-8MY^dR!Z&Bq6kU|RL(={BGWmCm-B$$gTnEK1=CaIBA+Kz zQAgi~0}!cS)SD`l%I80JUcYgVw=`7aPdhs@HEE2L9ThDm+M~qe_&6yo(kjGJ;n)MM zs?5{nV9m`fTJ`=)&(;q%v~3C1{X@;L6?CK^#KlRH-yb{Jn9Oc^QlDJ9j#f EdgwS~Fc|Wlhii0g0 z{`9Hq(O-Yi_3%9d9B=Lw_TsEeQ(;zysqpUGlM2SA8sg$&B#5FvS5eoy^BI{xc&jHl z7XSzcB#A(lMMPMEwDHuMpJypNd#a`IcfZM)`PaWUKlu5VT@@jE>w{+43Yr9A;|^d< z5CENwp;lGP`?@yMA{WFMgjBAwqpMjc;2bcB1U3u7o>~?E_p#%)mp8j!>hCybPq8LW zoM@g|kZ+y;%U`4}%t$v10tGnpOI6i4lsh0pq~ldJRv0;P}DopSxD}cdYqyV`o3|KVzSpGR2y0u}~N!3QFN$jXA&=!20bl zKPG-%=inlNNH~fwvc(yV^k0`2M_u&s#*UKy&NbAG3c8!4 TvWa=)yd4 zL1Kb{E>CED-~#b){#-te(!*-?OPd@wuPyUz=+797u8m(fXSV&0r~Y4BVM4qJStd|5 z4xf)h)4Byr2LJpK;up25a!{(H@Z1Q~?YAWTC3li##;)D2wm}X*C`JW+90YzpW{alv znU<9sXRyDyEIL&(5NJ++?To>|0T?8Lb~nfBQunIAeCED;dv)-KCi5=0&suPG>;n(n zJGN+SiUDRLMVCW^yVGwg5E7o)5=sf2P91_kaPft4K-2d )v1Wv}#tg3ycG^Lp29EnpfZSd|o&iw}_ogR+WU%6NP{IBiT_eack-8|-jyKYZ< z>#8ebiZaF wLAx32?Cc2{9prDX$A0FV zqg7SWq-lK$IzED=N#fuGqRg^Cf%YF?dp7^+KhE3sHK?9oUU%+fOWOTEPx;qRZcSbi z87o0!0NCjlaSxOLJ|Bl9Qxq0NEVy8XEoW$EGK>Z7;=HXx*TK5OMhAQH-1CEI*Y(Y< z0c_~RC?Qi42Uh(EfZylX9htYf)V<-U^^U8)s#1a~r*P#3k;T8df9$63eLucP6ah^I zn9jo)MiLaN${>manVBYQe4G?i985SEwwuB(O>1sZRcHnS1VTa sS=;|E_wIW3BgZx6b!ulYuUmRe+^zTDm-@`v(;`fq0?sad$X4Z( z;qY&cEoK3-Oa_&gIT(iR3hmVOwl+;$!x5S{(PKk*Xj;GxS+tcTiUI)}z(Yic-w#~X zqUlepcU&2)m~Xl&X31^0jd}6xf=H9116`eGj+l>UsO!88TR~TNy`ENGuhuya$&q1? zHav{=8I+U}BMCAgCJOXB!mcL-w8O)(VvGCEuMYZxGBd8dJZk>WewOsgxGXbVZU(Q1 z4cb*04mkIlVY)tandoQWk0p2x`Fv%Jb4Zki#D?Sm6wdqJnEA_j#0}(rW|_e0 pIsO+^XJQw-%6Vl0af8(IzJ; $ZhE#U_0}JcdF7n*qh!U$!k!T`P#6P@Mgfcwl$1KQ z9;^yocx!(d)`ITP^@avjg&G1;_jpPa#)5I3^{dwjA%ICD*j1zIuYcyc` t$f4D2{$6VKz~?T{=GccgIV6_PK{F6Ma| eJv_j 6r?#?FC2;PHee-a8y{4wy_7 zK84|nZC$%cwmF706Ma|<`heG~@9=mwbm=+_A 7 5@py8s&o{zDMXlYaM*6NnW-~Cr>zoG-f z!D$op`C@E#t`Irv9>auL6Nq(Qv>=0mfH4jSG}JK9mR}lkw(e$Kn|JG78!Pm#ppJpJ zIvka+j2~Yz!DyT%0s~&9dydeJlv)E_+v(yBj0X{ANBnNAs%B09WUumSF!T7yO=Dh} zdY&y=k|})N@YKf}%;u7FKo9`4nL-i?YHEFW{mrK5pZLv@2SYc*fpb~}z0{C)>+el@ zFJ@6IL=b<6r=EU%-Mcv|@|hxpnVno){-N4Xa)mVJ-uKn|&B2Vn!Qpr*&tIt@t-3xa zJIW*o0n5|Yc4`%hE _c#*J4ejn<@jKyFQCskC(UU4{?##$ z8I0s;&%*xF^BPegFdF?`X(J*8L`4d)T16NQ6tYY}2szp|PS-h9%^$3 xK@cK9$P93dnDt7L6;pNvFpTF}LRTIx7F#}; Ga!^>5ueHjEC z;Lss}z)S>86l{3dFzLldjgxa8@_uuBpnHAT+4)kI(O8%wNrJDtQh$G7{wW|@5RwC3 zd&H~lQaC^<1;?o~z9|5w8z`^R%D!&!2FxJ8urOlr?5kq)oL&7dTS^FlAov6B0skA( z8K7$%ApS;0jxG&t9U9zThK>#mio(Gdhfn2D6$YjQRPfi$lVkz3+uzPP;Bx8ca_FmD zTGi?U2fd{S4|_{L|DvnnSO43;d7ci!Cg|IY8FxG==iHS@&2VuA41sHBkZyCt$#qcZ zNTwG2+>pKO*QP0^UwC%*c^L6VOUtS!#*QueVNA?YivHWuJ(WunBq=T5Vo5G_xq21h zjs{Qjf9^|gg28$!vw#pl5P|vzhIL>1p1&r*z0aFs$$a=1Da$R<65RE{S4r==H>G|t z8)O2fi=pbU7YC}mTWe~RiiSp|vZG6Da5?ohr%P}1Dcs|7X>FS3ul26#+@q;X;mmJZ zND@q
qf9UIR^$K zh1pEuaq6f!;KrdErD|)bYxR~dI#+G_w4*G@w>x49i=d|nwpnASsk`3t;Err{02~ad z)QloAb}@j5`?~%!muuB*pYPUOlPS?aDSScJjb`17i4jGNk)-TE*B@xpOS?P_k|g5z z - zsA<#7Kdf{1xkBG}bHZce#~W?_@>?f B?MxSClrix z=$s=}mUGUvTIUD4es8tDrM^yw@wo2cg!s$ew)g_u&)0lE{(*=H5ss704MG4}rcm5E zK6<~k?2#u9U;W_!)!w#Y^Uzl&I@1Zc4K08O079BmMgaIY0|7-gwc&C@+%f=tMy-AA za@Ed>in`k_NpDRynG)T)9`FI<@R!n!6Gcom8jBIYUf*4%ZQNU tJ-x z*rE3w ~_=0Gw~D6ZoKO#rh+KvS&`8$N1X_wwsax0IHjZ(@3pl-f zCkk9r7`a4MI8^DFheQzkN6b}~9<2RG<4X@bQ+L}fzX)Q&K@yi~l3}1Gd#sci6ECGj z#Y(BhNFi?e58~~nNMV^Mbw7?2&^5s8&|kjl-mwi{r{3o2)Eb&<)r$5OwVJv0&gO%j zGtzbsxu7+0g#k_g)= a~1&i>F_<>*5RZ~}-NOGN-y|D{M43Al%W*7!DF`_Q L*>rR`?n9s z-yIf0F6h0i%emQFq|;+1hC`0dbzDpnQhy|le-6M80$u-ROUv80CnO~QEFs~UC_#Xe zv0g>Z;qTdE7e&mlS{ERIpsN~L>7go)m}K~yZ4y9L098S+AJyZM<-Ez$BGKj4q3aw5 z0|j)BPygMq>zDuU@CD@uy#qenNX;+_>1SK#Sf`k0P5 !vGLiv6BA80$HhGsCyMA~ ztk;x#2EW;nW-w%bH#&OuKik{a_cm@-gI-p8Kq;L!Udr$J5cX*tK6dJ4+w>$^_}NW~ zOCkA M0fMEo!| z_OS#>g0qi}qK|V#3IgUuMJ>-T8aEv9dQWLHe%<1!z4wBsbqggq-|O?cb`-{-=%*I+ zSy|?pSImxH= @T ?B70iOT}W2CgibVFL=B+Go;By-V} zA0@7@FLA7C-t9WA!VZfc`W?0Q@iMKWih@E2L-!E^0yi`W5b+(P J7`)k3K?{MPz|Es?K JAnsz@!n|7&UYmMz;)_{V#mur#FrD&e z5e~v4= dcpk;|((*`74gL zH>vo|Q`Oh4-P{#a>eAS3lj-t>vGXs!bIe;4?;HCrFOFW~W)y0x3hrbeyxZ;#hkygo zEpGTYyv-_9H$%z=5sL~RNcm{m&&Ir&HY>W|bW9^`0sil*bx(hwH*Dqvkiv8u2ETtg z7Dn7@$b9iSQ&P~STwiT&e)ShMHPf~@og00e!$c`)ci=m4Y?Y<}W>~ESSJ-TK^fuO> zR>iq?m*-i=IV1s)Wk8a?y+Y49Ke8w%%T%QJ7(5<^KfhS>^s4pkZwH!ddX~ww;P%A3 zW;~U)-F|D*J6f8lSaUIO7dw{Ic&4Nt9#^+SaWbeLhWK-=3#Q+j^6t6IQyz-WFonD~ z&hdmz(ED_U=bu{LlZSOT#H0Brp@jfY!NEX~g(&<~&Uo!oV{FhX!52 HE21AMxF`9Yv{_MMTdl*Ig0)7eUH`gT^>il~ >j5jk4mVRwSUTSK3;hCnU>ptx2DseIf6Ct48wzbYVGys!Lrh@-XN%>=M zWBhZM`^nli9ijk4i9+JZ-%pH})0oEb%{Q)+Kdf#&WuD>0T(f=pqS%F#Z%X`K{2cpo zEkRE8wrYTz9ZSF@0lv;ONOvnarw+}-5HrzSkh3`Mshsb}g}mB-*adx1cj?c2_g}wF zZ+9|;rVibyAOIXtVC4q ziRPRZ!Pz&cDDiJqQu+@;<4R*@l;EGQk;~1c$W)n*S0== zs@G4OXP-6wrug6G{w(P&VS2
M?{n%O+tF8bZ|D(5f|0tLXc4GnkxzOnK7lV3M8$&&N* zqR8!$1|t9BFOEz8b;Pj|0B-qS%&p6Rk^16>PrKIMde4EYPJZ2GKOJ+&*z4n;@JPf2 z9|utx;ALPQ4ozjyHNI76T-O-%lYeCdfFu!F5QsoUQXonc)Ib0O0fg=hZ^n-WeV++X z0?|O=Zc;0DzSeZ-{(rXgdU(|zPFtawx0LGDKQ(0DdApqXTqd=EfI|yI@h%Dq7gR`` zVjdZrH_l| Kz&)t!j zC_mrOaKdW4rOs9UhwEZCTyu_T&g4v5jP9tw@#)6A)_R}5?W?Y}$NLuxrd!g+-I(x9 z+>HtIeI6Zf1B|1A)%hya-OkPKJ)X^7bxL(xt5#ca$k%7&+gVdBah7N)*`8v^v5qt3 z3h9P?8ZV^@CYnhp0TBUC$k8^)r>%C{sbCyT159=?d)&pg8x!)ZWsPNnj|n+#D|8Rb z4cQO<+>rUm7;1)>>(CII#+Aq8Pxc@%f`Su{z39a6)ymud;5r;sP3DuCWHQ-i+ic6e zXSY9)F3TpJbI6pURnzc#YwP1r)YY93?=d&SQvC2$woe+FQZ?tfmUIC4`>PYSchoBl zKYsA=cY3b7{HBB@F_%Rzm9k9*yhDTXrQ_9>FS}MBKBSa|D&Qv}%VZjtWiA|dwsp2~ zlBtNN7z#M?3z~3$Ob7biRW>vb07N1HC#d*G%e`McUwcYZtY2deMGJv@j9CvYmC_!` zq*f?lTB&>9l>rnIp*R9J-qmYXuhOgU-|FrNSYz%~TxzowOt)C(&9qt VruWWj0e1=gt z>)O~y#+( !!zR=>zo{I#|J4Ao)O|54DyraYvw2Q|**xz&t2NI;2tMlSDt)K3^YOP^TGjx- z`Dy0tpA|&xEw9(H<* jeW$hU@k*apxjH+7-%@PB8((UO7*Eiot7sl)xHn>gso= <$?ZirU@cDN<4Ug|o9sR1xe>_txmbj~ U??A{fBND)Nn&BXaG1*v}fLJ$o~6mF(J=H1Ss4u>u}D@ zUv|tNk=70c8&JFP9liGP_na+3RoL&1OKrA-nO4i92?j$!2iFTfQ@c +EV!UCvHlo3m|udGl$> z3K@S FJ1wx1qhO7Q|$oVor|Dk(1)G$(XcEo-}bWwIxDOePEgf_ ~4SK`D zN;Fhf`i>ka@7&iJl1%Ni%j|^{=Gm9WO)<|W6wnoZtY%s$;ea7ZMD13`nhnb;uO7@$ zXPlsWSYn;D NOP zcG?_~E1rr~FMjK!5diELPR*6lbMj5uX@yco_EK(32KRZu3BZU5h!UtMfKU-s6hK7^ zv>XPS4nnD|d){5uP^Q$>m+SRa6 f$#@y)TN#{n)H%5zTy2`*q?Fs4j zbR7Dm{rS&+Rek56hB{LP-NVnKrY|qjO^e40mYgxfD8z6AvAbqoPo<+!!%zCV2*3aW zfdj`Pgu1^^fJUmJmHFV%J<6BFvu3U6eEO62-K79 C z??2c%_0B*1OZV>ETDy7u3+;Q#Pbs?Si8iaH_&ZC4N#_+wG4}b~66K!|)4%;hi!vY@ zK#V2`A_s3f0$#Coh2!fz>s 86#98_EY %d2 ;B?p%+cD$%hs=NTes=?uFCd)Z+MdnBQx`tCH*BT z!&s<#PVq_6Pl(_*H}=2V_UM;S9qF@DRZ!y%M?oLY*-}hmydgSmtSL5koDi8i4#wPM zCKRRW1j#yu*kcECc0$$+@7djSf3J&ZsF5gYDMthMZD@j4RSR!Lo!VZ}=x(X()ZESA zXu-9eyDoFVf?uBX)4#WPTRX2Wxi_Y!^PrxP6>Yk1$^-6(>ZV8EE_v$cFD_^4Z~hXQ zcK%{_{ic_jw!Z#&!?wKvPYsiQy7&&uthq~dV^j_lPvBS#0)U7hq6k0(obAxtJJxC2 zH?BYOhc*3 3C`J=w7?MpOHh@47L_wmmi4rO>&UBTj9$nXTe`go2 zbV6_L6lg;y<;`7OZQkduACRZuhnd$c{zdlEzkmpM?eM#I)^r}!0l;jsS|z~<$t<0a zc+j@ ?3wVn{dRS4 zZ~$BbS2X_vY>9^$lQKt&jZPi^_%Cu?+rM7lym~{x(!V{_eBM=&GShZ*&iCUUi=S$q zPh|?t$NVRZLBKg68VE#_fcE{KlFE16pA3bVfe|3+liBO4bpojD{yMGPly$?ByC?qm zm2sA2yiobZODp!RT+#DAlWZ{wf&|eZoFM3iFUl&@zkB^lvTa Vme2OJ^-bYTg0}BA}}Xs;7nO0aM(7IWbqBF*aAuo>Z86&yVt) zC8cZHKHa%1nD<( Tl8gyO+%%CL_f9om(9rtbd_) z<+^@(8q#J(7mS+~b!&8*F;9*Z@ w^`(Q` z1fI-k7j%Bi gxA{{`ebe=BCXl z{(1J2xAHBSabB*WS?R#?vL`P1pk~7fJz6d*y0Z9^af?5x>Dc$ente~--?X>ugi23I zGv^eg%zj{#?s0$!Cg`rO-#)Vb)!SNj?+R$QClrp!G+(#uF`9AqLg?ziTg4Iz!D?+* zN `H3i)=UAvrUDfRj_l$b#SB+N~*vCSEE|hyvwzr=0BaQ z>c4V?CBpEunH;mn6wSOL?dm7~T=1KjX2AqXDFhs=uAgEalQY?tm9t>%cb4q<&U%!z zmaSh=wffG_n!oCI`qb&-fAb&u<1>?fvD7Ha@aPJ3!tv^ncke%0%m5Hcle1-F10lv` zGKsza TV$; yR0Feris0fLQkOc!Qk{OYb6=O{CxG27G_OJ8q z`|2-+&u+Rs`$u<8v}FeD!F{^8CwJLHYcE={cR}){OCu!<3=p6bhOHfY%HBV+{*(et zlrjoT+zLW1Fv=-uCx5@Ad`EL %w4WB zB1!1AomQW4e-RB;gOoXGp7r}bc`S0~`F-}Z>2pr|-Ae0TxASy~83?n U&2KN;Qn%$>E85sGx%Thp-}U!Y zdv@^w&wgyKT6gu=U;XV{f$a8kXV1*M;(`C@iWlHI1Y-m|ZHKqkefj47ty|Y^4rZRQ zKmPGj+q`+p0c1iS;Fg3j5TgkYL@4_!)^vXK(Mz3c*9KLtY^VvFpmS_lw!5-#{`+@R zE}sR$;noKBkWvuHf((;r1Y;c4t{Uuf9Nbmms@_`ZI#g2QYACPuHkI#g-5t^@muK0} zvZk66bCWGeIT^Oh{HalA&C0W8WX4EVbg6DAOaUPT5|Oamd9e96`~Q5+`-eU_rRXlm zSupRSiPyXvV@^c9)`-ul*WbM5^FMzpW5$w_Wy-wa*I$X$l+&}q3I-G09o1WoeDd;b zojX1a$^(&b&pi)Wi;5P5^Gtu3+yLMlM3O*^MyU1mTO1#L_)_Z|Zw%^K`g9OBK|g!W zFW+1|e*Pi`4xc{wj=H4#k4Py5BEcX?pddKnZNWB2`R20DiVcSyhs)|6wUzDOw%R?N z`vaEOJ)ViSOlyQ}vyX{P$xe?LpFcGsYu33@lZsPK3E+&uqkExp9gH(Da8N>Fq!NyJ zoAHN(f4%MHy(?boZS2Jt{PL-ZiPM%FB@3F+j;%EtZu|7pmrr^9xWx}XWluhDxgZ(A znGQk(fCBEWn$3sTJb9(-@ZO-_*Z4pF@n1q>;+#PTGZO-8G=lql6&>%q^JL446)Ofe zV0a13rf~82`HPlj-Y`!GgVrxMQt$BYKMG?2G %m9!Yon2^<%+Q$*P=NE^ oV4(hjU+n0g-o mme;#bj-B#;2H;(sIZ~!DOe%k!|A|_7nwN~}< zbba*EOIl;&1|ms*Q4a>r!8{%qGBV~z&Yin_aD#=9un1bF22;3`T?4_vz&L}(88ogR z{ZhGh!hh?$=Tju`Y|VlZIyhF;ytn4Jdtd$0?&h6+9z5iwUYI)}A#WB4@tYe#;_j-g z&~>jr6z%x;q${x6GYajKF1j(8aXS9>uZ>D&WeI0&fNs3wAOzg!1ECbA+}z@r>#q-K zO}bDKazRhDWm+kSFtl ?)}qs-!un4mY$k=@r|-*OgpjS zH1I8@o`lccP|0*JPW9_yJ}>MOFI=2(@wM}VnZIk>wzXPK%{nTIgI}e)MNKW1+=$CA zyVY7)m^rusLr=&B-MtQc>)>FxA`l7_m7p*UpR{h<{OrD0t~=P?x0wL|GqSIml{;?c zB1QF{=xE@)&rKl!sGgQ;rmGr&f2GNqJcb6g}ARvT5*Hx%$-!0G7j@D|f`cAT;yCD>+yA!6kjQR1? z76jES$y-@jqIY$H_jCsx41|Dd8knZRI%CFysQL3}4{pHF5^_OTIu0o+*F0xx?d@RU z;IL2w41$cm)@@kz%Ws~!Y}+YL0Z&EVxQmxeN-4a yTuO8&Q6U!073=unxrqT&U@SV&fBa1Q7?h%9GYXUte=KIfc( zb2wduWmCvF(?ue7r$7xyTbjcrTH%I*M=Jhs|6O1H&-Dk|f;-SSH}i_3si_w(5(No5 zQ&0FFAp}m gm0&T=$1Pf9_Yl-OQ}3A4rLwu#j^dycai}rYRn0#i`2{^n2c%fe2z+WKQ4}(pgec z<*TeL<%|v9+tCB1U@jNL#KZ;0+}z^O3_3W%BIwOcU+ns#b^98(?tx6Cu(Wgw6$AtZ zDnld^>Xa6&Yx;D VLpn>v>}TYd=`B<&MiX)ov>5&p5NDEM9c!r0bs`AgQYEL+{&R z0?p?NB6FMyga=*(dXCbqk>d-@W3vkbUGFY0-wahP3E2t_f7~`?8PeFXIhOpu8`N+U zHbHN1`=;TI!~eX$yz4-lL6AW~&j{0lgM)Df5fm{}6a+!WU+X_!_0!Ua(qG^E`pW)} zck!eJ^DaK?nukDms?M}N;x+ue%`}fU;O0__h)E@)3?9sJIS06^z&5d9z9l2a*4L$; zojaS=wzdYY>!Guw2?6tZL8GE(8T0an+=Um`9ot8Bo3{RT->cVGI;!+|V=SVjNKg>y z{PZ4-_lOt(>{2Ago0H)qz>50yYi}=m^s1k4z3=+%P22ljuJ+wIkqtsL^UC{qRQUng>y1&%4o*cvirVedW-hGVbyC?dVX5nh &f z$T|*)l)@rd5Gh&U sTeh#+AEZ0(c#`bt!j!Q^i_f3%-K92j ze7;xhdk6vo!YLYABO0~lfXSh PFt7{HL_fu0uQ_Pv@78v$(m{ Nj@AVU&lc$kVBUki@3@2ooDJY4!|+xC@zuUvgX zYqkE6lYDO4C6gB2nv* |aY7IY7PJ^b!!0ISc9 z%}bj-=Ava6#1$+`G{z;$RDwY;z$nNt5hDN&ow1|7VRl?^gdXYA9 ;$6 zA3NfY32AfGS9Tq&2$+jzj7-WDL<5)_e5Q}Cx?#4b7g-asX9DO|(C%Hk+ESi<)=3Bn zozd45i6==gWMvf^v$I!uD+0gIa4;n9hc8>ossP*#;O;AuE-uQ8&Y7KKn=tdNh^(1o z%yA$fC$7}I`yV}p&-wAb?VkSzWXjN~xl!6xQSxc)*DFg~%GQ_EZ>^k oP^S3w(?lZ*iNpZI~1w0`%r%$v_xcYx(1mWd49?lqKDFQ~@n1B&* z-0kihRKWkK#`GVBLrzRwBG_z?0~qva=s*~9f7<(X|K1E>GXUh+CfFk7h`3a9Qf{gx zIX6m*NQ^hcq(#ZL*_2R-#9#6NoWsc#bU{Ox=33e4ZK|quH&isa>ML74&9z^*?5zEM zh~}4-cusO**4(=;I_sKQ2Fa4EGxa!6M)0EZa0OmR;0>W={8=*z6>|q--*QcZXt5<4 z$7cxMLkD`bSG3mFYTfMyF&MgE7=pE$F%Ut3XtzT!oBQ;(gp(l`^zoE;?(YQ934dL> zH2{!f%d{B r zG8E0%?{P?XQ=n?CW_`Qb8gN5sO+9B0r9yBnyAy8&t}77CkqZoosks2kdb?C>Zmwo- zH$ _VMuL8oZ-1_MKF{oZet z2Rj) m zR7^~oo;oRc#=-^X{(Qd899u|0z QqXB}x%S+#=Pyc&&n;e9 zxIEP$nDS-O2o6AF3fM{2{s#&n1YX^X-K{$}HZ=5ofMc03B`)PVKPl#c+D!BX=O9!7 zkqrS)>zLEohEQa%98dRHTv3L^We5Bh2|7JK*FG*br)YfK !pMCk%AI(p-XDu}uY<|0#>Cl-59mk^L!V#-Y2tcU> zx39BwUt?*&Do4@h6z3;ja?^ZW^$zmJ@S7ck7E*)B2B23#`zk87C`XRGASNa*Bb cGtp&Ou}u;2gfn$`xu|-H;u950Ct)elR9FUHD$Xo%hY2`lIJ^lFwUekgQ-#17o_s zCK3;>B-h}e5U7YYXG7I{U;nYsx_1B&IW}*$IXYt|8=!0OWH_N9=DuBLo{9>Odid}z z5aQ1>9MlatU^0Oz3f$Yat@Z5ff52C$7*T>wjhSejHTn7{3NmItVKGK#Ynso$A~O|? z>!(4;00@CVL^wR{W&0bx4rn{urq0N=jLj*6b}U|H@N)nNIk7p>sqmDQtyc~lSW83^ zL>ge}HqJqeMu2m8D=JpFw+G%Ygp&~?=(PCB_Dd(<@Ko;D3ziF1gjaDv)fJ$pAK__& zb{BuFYTCJR{f@w;XJaSLUS^KXn8g&=;BVgZRyhY#)qtJ`=T~1 Q^7V@!`6NE zLD +n9B(U%#dGjW_Ps+S<1EJGMjDAw)((Yi-@t zwSN5z&d)v@@_slYLePa1t}M<>ID0mw0{l6BLj#2Xqh!L~x{@_tR0eJ#kuY`cU6RFK zzy`Y+{1$vGQv;`Z_0akL` 83|%C`9;l`|KG=db+=h2f&ei-9!yoM z9Up)Ea{JqFpAj{qM}(InC;7YuQI`08uj&RFqGyy43WI1wL+9bmyJ|iQm@yu4&iUCB zX8%tCr4mB583X`AMG#KlJ$$fV!6029eY7>QsOWBMaq$w S- zUB0LGi`DOyz8J7cX7tpH^Tu6y=VRc+-tCeI(M&iX$k3c^@H8F{s#{hdoFyey7^2LR zfikQ&g`yyvOp;}pKttyx=ns?#V9;@(v26WcxBmL!K-XIm(*=9hMK>BFQnLL8%|jVn z4^UBr?(TxG`AA3vJscU 3U+L!vT_k{O3v%2#YG|LcRnye=|r+B{q4 z^gA?97sBBir=kIx*SXf+P+1cA>XFH?7BuHf*SWsxbQP`XiN-S;_;IGiHI@@a94ZY_Rj&z2#psQOeJT9fHS!Y_<4^cQc zBr3rmnc?uZm+v_I@8{R=T5;#T`rz7|MNOQUV~81>%QPjVmc~&85t_RLzSjR6WrdevMQ@Zfu2zx1P$1M34OyPgW!YELGj3>M-7F8}~4Ky$Xk zRaY^fxs4=-y`TZ0v}(i4HLd$rn`H}VcW;-0(9^zHpdzdW8w5c@Rr5Ei|6TspgMa_x znaB4x^uIzW0N7*G1uBTLzj#K74QN6j$R;=r?|j=;8#uFkq%-VoXaG3Sw6pn~@s~a= zQrVPjpD;%P;M3e-oCQ1z_m>v)dkGAZ39@K}S8?HR%bs u%Q_tg!)uQefp z5Uwy*B8cd${9?7UX7_2UUvj20A_NTpUmyCoBqzD>&Y9WYZODk9vczhPg2q&+nh)$~ z`{QF!e DT*R@4U$F6uAd_WBA_LdGmm0SHk*5+wpS<>=V=`RcC2fg6JU zH!z|E4FE@4_c{SQdG@%A*QdswRg@H+o*x^Lyx3xhhCnF@p u9KN?_ccjKycOW-4c~`{su#2 z!YrnGFgSafgNR1xJ{Q`{H?QnC5c*G);R-n|iKC+c047}b*o!fFSKO+0HFldo1B6ge z*$7un`MSgJ{pM;{{m|y|ok@%cx7~2Taq#PPN>^jGY_$)}eb>FIlq^wDI~&Vd%htaz zD&`Xz74&JOq2!%)t!3{&&ve}*7%bh@hJq2c{~9V8A)2hvT&>kD+dp`rv1HBquugaw zGHP-R0pqT?V|mQf%WoA7<}}VZz Kna-Qh2y|iFSM0!UfH_q tQqqW;dO~46(?&*TBwRWSs`9O)gwqmQ}@Q(GPHgn&M z3i=EncIxbzrueix(Gr#D-z;*S6C&u&wpw@N!P3zcIe10|J<5n;)XOo-h+ PyA07*naRCr$Oy$P5k=UFEB#+i|sbyrtccUM;*)%U4xsV%E@%aVLyZ02EYmbGDE z&EbU^U}0bxU}xDK%y_Udo-qa+$rxtva7waa1~UwY*9$h-NG-{-Y#psW>&*L%J7S;j z`y( |xZ&sL7#m8|#5-|gl+^ECtL zcyZ~^r5=lcOz^(;LqMPY|N1un=4{tepAvuf?yFtuy4u$ouTX3#lIu%9d#!=`H3Mkc z%4;nyfmw#!wc`=Qg9K)~_k20Te{+$#x=-i3GX`;VkJ2CXBU%H#Rw?>H{P*_r_|;*^ z|Iu2%*1*hH^jd1cT55q8(-1*C#0Eu}2zw(}RyGi# Deox9A4meSQp-;h*P(Y)cDh*O%HrOY17v9-ChkZV!Iq$;OGmr|4Dz7d(*E7 z(8+6{wUT9d(?Z|qjqSG3@$uL?CKcK=;S|O{i>(iBP$zPQWex)8Mt|*_`u^goh*pS? zr9Y^zKM33YM3N_~veIFhlV5g|a;#$Ol8Yr=l!Q|jvw-N7B+Ii*a3k8h_C|Jom9YH= zt>ZZU5OL&gj7O4IB&pQ3XjS`n@hKJt0h{|J9q^8=5(Z?s=+e!)Ild_zx|=>M^04E5 zVIY&W6>yW~#T(PI(g6Ir3E%bL`5s)?h3k3nT#r2>GSGey!1n_LfsY`dKSO95z2^qv z(R@!67+V~K|BX 90QNi=p6A2&JcJ =6K=ilqP&i@g36;;K+*jA{Tj!Zg@{(%9E3=g5duMgRQL1g>-kjZ5D_wj?)jAKU} z2_c>>BMc%7&Eb@;voX3E=(Cs0A*{zK`Ar9O7)bDaAAaCN)m2EeC=x(04iTVIE~8ed zqEsy6>g6k#pPq(USU|l|N3~LcWtx0EvSm>eGUJdXVU2`iBb*y?d`3Jnq8)tiYzQz5 z94{q;B@Bm%UGj+*w0#V#QHSH$@LU&~rlNmf5W_>m2vceFjf`S)auTDXqZk?*!ua?& zhDJspX*xoXQ3&AJ9x|CMLO(<(3u~Qx#325b0kr3MY$+((04ac~35z^GdleU6d>Jpk z_!2I>{4#3QD*YOYEJ2b3D2ggT91&~^KM|1Id^@HpomQhA!AcPH^)L;uhWF?Q&$S(q zPLK&dBmOO|eSBgP=v|lSngiDl;RPWA&*$HdjE-XO-aXj9V+Zyf*pJD{UC{fo2q3}p z1EzE7l+m#Yp69VqiNSm`c=R{jLI)lJFMz7j(dA=q<|>|i@=1K{nP*VW6__HZvWj#n z1w~On4vQ~&{C8R?+5}oS;> $>rc|Yqz@CHW)f(9 zRbFFSTcU2nrBy{nI-SDqef#mcvuCk$YA-VVLulA0QmV$0q!`4sFZ7^&xfyhWujxi7 zR@xRb;Tk8hexV;gRuwpnI{xwR{| c1%u!h$4ZQo o$0n2@V`-5^UndygHm2fD}=MfWRGbvv~2y!mK5` zbu$+EdaUkhUc1`*3wnOcZ(}PQTWvZuLrG$bOQ&RuhjWO|N8pD@sTBQ?VVe$g$awgF zeiu%jK8^nVex@n0rRF*tiiWHtnXsA*?(y840BA{g-;}A6LiUV9$%m#Yn3 ^*Hdf-=y*$7?;Ei}%WdH1@0VYJB$a4U7FmKEs_-S?o&WrMapKf%uw5G| zB_)zB^76Ip%YX9n&$yw0j$>%-NcaJR76fQX!hiqs|As&P%;VTPJjg$9rCsB!RN^>X z{xUY7aWhvSX>{U%678R^8>m+6*t&Zse&|Pk6a#}Ja2<+o>+BD`<}GyWHOFDJz^8DV ziYw<|!Uulw7co3C3JN<@Dq5UuamnZ60R7F}u+7i9_6j5c9Y2$;wk$)_4ZQsF%Xrs& z-h;Qi{p}(l&IM2#i9?4WT;D}XRpFRT{QjqY2VZ;k8Dvui0!cU=-4=Qyaode`gODQ` z?^kE?#tQ>Zkfn_*YSkKk`WJoyTX#)zO^v3eI-J7fp08&(?*>y2(Hudw^;D~@${{YF ze+9q#OYg^)p<%eD1?Zy7MDVh9`c`=CE32~GSb%wTUriht>8!;SnJYVR5V$@DGyTXd z Q`{=K&*Fwi#=+MM)HfE;Q38cLU_v&9+8_J$f5DSq{1V^ge$b9? zB)2i 2$)UN z@yRHgE+_|C=+`iyCH(nkp1@!K*?&XYNJFC148pRX=qA|+yZSAD4OEv-Aa#8Yw&!7L z&n|rL5BxBOw{GVmG?7Vfcb2auyL+uAzOfcM{$vR#my3Af_x}(tef2pmG@|sWtg8rJ zDzslGVVJ1CdC~i=gLm0kT6N=5+tr1(KDr@`E@J(zit9dtfUPr?l2QYPmNB48!1w;Z z`*85s3I2Ut3lckpqA8&rvc2Awz43r1r%sk|{*{;U2fy>XsO9p|RFw<*$xD>hb24+( z62zrTtzx`()!14WOLS<6mZqE4+mb90jMLB8l{xLMI215i_ih~msN=dE+0xT#H0u?- z^F7~>+g^W`Eq7dn*Ig8~*1hR|-3 ?Lp~R zij4405*0(y`&0OjezpoUCcBB~=3wugkIb7Bc2VNS1@?3z(HAPXr|VckOXQlDM{7Xu z6;SnJ$c0DrpVULfV6FQ>U?xY8XosFk0ji8fwSqUl<2!NB8y-eFZHSuo xW0LyYYbL2&9iM{q=vxr+@zs(3j3|BWv0);MfjZ@9Xw*BQYRfl{tA6Iu-)YgHN8d znu4N59WkpwG?me?W(UR3RTX-?S*{0J*Vm6Gb!}i=vYDn9GK8==-bF{5LS4S1eJYCG zFS1V2$+Rd2K}`|x;VKeTPeRHA0$GNwDNucfs~FdV^u-~#h(mDmt=Xt!@1bM(o*(*Q z3=9skQJ{<>^Jp$$;(#AQ76Q8dZ*ju`%^T#}`0GFaQ+)PM{|s3}c)La_#dmWYi@eSo zlNX2 MXu3rRH# NJD;@S1RAoAq76xsl&CD5 zj_V)-!CJrX(zgKDK7=70MdIXyLdUl(L6Irj>N2>sKu_q?CEu&J%ma08Qw@#PXu^hz zP*?aQqZ(${C;KQ$d)NNx%>2dgLzdWc91M<)<2^s{L)f)z7dUViQ7FE?sC9XL&WIZw zhmHzXNOs`UpZqwUf8j-Bbc2(i+!H8Coac{w{Nf{LQ43&~bzSVr2qilzH?R2tq>(Xr zx(3HGVFW_1fT)K^J6?O+=+|WAQ&ea}wF$NZI4%^=M~axV3^XM=0otO6tNp&$dcL5S zRGlcqCyDA%QI{tL2n`LPp~H$~y%s}o@lOb+zO1q?hh}^53<*v~hUU1)R&2 _R zdaMVy%z7{S{?T{tjxLFUBp*sDgYW)de*njh9TR}2_b0GZFKKjItXHIK-7Iu39vnM_ z#oPiO`RIo+m&-#Zp_72HC4%bRMf_{A63o7++%$C1&<$iy-UfSQ6g9`efT2?M2<}qa zZcBV1-E6Y$!Y`HJ&CfwD6kymU-!u+ow_@Je(dx7|E7z)NNJdkLV#pdGD`@yW8mSc0 zySE{|eVqT^>$K@5%1CQtNiuv-!iXKfOG_xLF8sL#80T{sY?PyJqKLyLZ}?SQPQ3p~ zV8)!<_5ys@_rDis&Ya<1x|klife$T`nRrzJx>q?NJJeC!kpTU%4}SpVT0`8CLC7sS z6uyh&kZS>Q`!&pZ;rSKRvwg^%eE_AAt+-gNp)aLE@`X~;N*{EBG^5QNc1&dRIq0*~ z(8~pAo)1Gxv!&s^@9O4Q>1TBC=9V&%;Ii~jRacn5*DV*}zz9+Y_ClVTL?fNTl|q?$ z@gltSaPBCgVRCF(!Dz*Tn+j3VUC6Tw7=AH_gHENh^dR}BtB4ATrD!Ki;_IXRtu-yY z>-*k|vuE$%hG@~VsKD_(_D8NeD3Dmpb+yn*2QTjNqYFC!!Z+}{AN>d{pR^lN9CVK* z3HbQAhKTu!0YYJ@rj64077V`Wjrdx Sy(l}B;Af(6vodnBKnr u7`*mw7){^V20GKO~A1ocx3b?pub{aORkCA z$}>XJhnzI}8#R0rC8X$JOH+EqyU=!)qtGB3t=ZW*y!*ZH#eEM^YZe_knvg4tzU*rP z&~f1j0s8r8pTVa;_8;L&GD}X8OqZ%@t(N!oxFBxvX?Upao