From 347166e0364f9a670dc5511d33dd992bfad6e412 Mon Sep 17 00:00:00 2001 From: infinia-yzl Date: Mon, 5 Aug 2024 21:23:31 +0800 Subject: [PATCH] opentierboy-82 [Image Addition] Add image-webdev --- .github/ISSUE_TEMPLATE/image-update.md | 8 +- .idea/misc.xml | 3 +- app/page.tsx | 6 + components/ItemTile.tsx | 2 +- imageset.config.json | 491 +++++++++++++++++++++++++ imageset.custom.json | 4 + package-lock.json | 10 + package.json | 1 + public/splash/webdev-bg.webp | Bin 0 -> 13764 bytes 9 files changed, 521 insertions(+), 4 deletions(-) create mode 100644 public/splash/webdev-bg.webp diff --git a/.github/ISSUE_TEMPLATE/image-update.md b/.github/ISSUE_TEMPLATE/image-update.md index 4f98350..ee76ed3 100644 --- a/.github/ISSUE_TEMPLATE/image-update.md +++ b/.github/ISSUE_TEMPLATE/image-update.md @@ -21,7 +21,7 @@ Please ensure all the following items are completed before submitting this issue -![CI Status](https://img.shields.io/github/workflow/status/username/repo/CI) +![CI Status](https://img.shields.io/github/actions/workflow/status/username/package-name/ci.yml) ![npm version](https://img.shields.io/npm/v/package-name) ## Contribution Agreement @@ -41,4 +41,8 @@ After creating this issue: 1. Fork the repository 2. Create a new branch for your changes 3. Add or update the images as described -4. Open a Pull Request linking back to this issue + 1. To add a new image set, simply run `npm run add-image-set ` where `` is the name of + the npm package of your new image set + 2. Update the new image set in `./imageset.custom.json` with a good display name and any other customizations +4. Test your changes +5. Open a Pull Request linking back to this issue diff --git a/.idea/misc.xml b/.idea/misc.xml index ef89d98..0d09100 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -1,5 +1,6 @@ + - + \ No newline at end of file diff --git a/app/page.tsx b/app/page.tsx index 86df8eb..761ffe4 100644 --- a/app/page.tsx +++ b/app/page.tsx @@ -22,6 +22,12 @@ const FEATURED_SETS = { 'dps', 'sup', ], + "image-webdev": [ + 'all', + 'fe', + 'be', + 'fs', + ], // Add more packages and their featured sets here }; diff --git a/components/ItemTile.tsx b/components/ItemTile.tsx index 5fdbebf..ad22eeb 100644 --- a/components/ItemTile.tsx +++ b/components/ItemTile.tsx @@ -64,7 +64,7 @@ const ItemTile: React.FC = memo(({ fill sizes="(max-width: 640px) 64px, (max-width: 768px) 80px, 96px" style={{ - objectFit: "cover" + objectFit: "contain" }} placeholder="blur" blurDataURL="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mN8Vw8AAmEBb87E6jIAAAAASUVORK5CYII=" diff --git a/imageset.config.json b/imageset.config.json index d1cdcf8..c19dc55 100644 --- a/imageset.config.json +++ b/imageset.config.json @@ -876,6 +876,16 @@ "c_1_0" ] }, + { + "filename": "c/sk.webp", + "label": "The Shorekeeper", + "tags": [ + "c_att_spe", + "c_1_3", + "c_all", + "c_rarity_5" + ] + }, { "filename": "c/vr.webp", "label": "Verina", @@ -896,6 +906,16 @@ "c_1_2" ] }, + { + "filename": "c/yh.webp", + "label": "Youhu", + "tags": [ + "c_att_gla", + "c_1_3", + "c_all", + "c_rarity_4" + ] + }, { "filename": "c/yl.webp", "label": "Yinlin", @@ -993,6 +1013,11 @@ "description": "Spectro attribute Resonators", "category": "general" }, + "c_1_3": { + "title": "Resonators - Version 1.3", + "description": "Resonators from Version 1.3", + "category": "general" + }, "c_1_2": { "title": "Resonators - Version 1.2", "description": "Resonators from Version 1.2", @@ -1409,6 +1434,472 @@ }, "googleFont": "Russo One", "backgroundImage": "/splash/overwatch-bg.webp" + }, + "image-webdev": { + "displayName": "Web Development Technologies", + "images": [ + { + "filename": "be/actionhero.webp", + "label": "ActionHero", + "tags": [ + "be", + "befw" + ] + }, + { + "filename": "be/adonis.webp", + "label": "AdonisJS", + "tags": [ + "be", + "befw" + ] + }, + { + "filename": "be/cassandra.webp", + "label": "Apache Cassandra", + "tags": [ + "be", + "db" + ] + }, + { + "filename": "be/couchdb.webp", + "label": "CouchDB", + "tags": [ + "be", + "db" + ] + }, + { + "filename": "be/django.webp", + "label": "Django", + "tags": [ + "be", + "befw" + ] + }, + { + "filename": "be/dotnet.webp", + "label": ".NET", + "tags": [ + "be", + "befw" + ] + }, + { + "filename": "be/express.webp", + "label": "Express.js", + "tags": [ + "be", + "befw" + ] + }, + { + "filename": "be/fastify.webp", + "label": "Fastify", + "tags": [ + "be", + "befw" + ] + }, + { + "filename": "be/feathers.webp", + "label": "Feathers", + "tags": [ + "be", + "befw" + ] + }, + { + "filename": "be/hapi.webp", + "label": "Hapi", + "tags": [ + "be", + "befw" + ] + }, + { + "filename": "be/hono.webp", + "label": "Hono", + "tags": [ + "be", + "befw" + ] + }, + { + "filename": "be/koa.webp", + "label": "Koa", + "tags": [ + "be", + "befw" + ] + }, + { + "filename": "be/laravel.webp", + "label": "Laravel", + "tags": [ + "be", + "befw" + ] + }, + { + "filename": "be/leveldb.webp", + "label": "LevelDB", + "tags": [ + "be", + "db" + ] + }, + { + "filename": "be/loopback.webp", + "label": "LoopBack", + "tags": [ + "be", + "befw" + ] + }, + { + "filename": "be/mariadb.webp", + "label": "MariaDB", + "tags": [ + "be", + "db" + ] + }, + { + "filename": "be/moleculer.webp", + "label": "Moleculer", + "tags": [ + "be", + "befw" + ] + }, + { + "filename": "be/mongodb.webp", + "label": "MongoDB", + "tags": [ + "be", + "db" + ] + }, + { + "filename": "be/mssql.webp", + "label": "Microsoft SQL Server", + "tags": [ + "be", + "db" + ] + }, + { + "filename": "be/mysql.webp", + "label": "MySQL", + "tags": [ + "be", + "db" + ] + }, + { + "filename": "be/nest.webp", + "label": "NestJS", + "tags": [ + "be", + "befw" + ] + }, + { + "filename": "be/pgsql.webp", + "label": "PostgreSQL", + "tags": [ + "be", + "db" + ] + }, + { + "filename": "be/rails.webp", + "label": "Ruby on Rails", + "tags": [ + "be", + "befw" + ] + }, + { + "filename": "be/redis.webp", + "label": "Redis", + "tags": [ + "be", + "db" + ] + }, + { + "filename": "be/restify.webp", + "label": "Restify", + "tags": [ + "be", + "befw" + ] + }, + { + "filename": "be/sails.webp", + "label": "Sails.js", + "tags": [ + "be", + "befw" + ] + }, + { + "filename": "be/spring.webp", + "label": "Spring", + "tags": [ + "be", + "befw" + ] + }, + { + "filename": "fe/alpine.webp", + "label": "Alpine.js", + "tags": [ + "fe" + ] + }, + { + "filename": "fe/angular.webp", + "label": "Angular", + "tags": [ + "fe" + ] + }, + { + "filename": "fe/astro.webp", + "label": "Astro", + "tags": [ + "fe" + ] + }, + { + "filename": "fe/aurelia.webp", + "label": "Aurelia", + "tags": [ + "fe" + ] + }, + { + "filename": "fe/cyclejs.webp", + "label": "Cycle.js", + "tags": [ + "fe" + ] + }, + { + "filename": "fe/ember.webp", + "label": "Ember.js", + "tags": [ + "fe" + ] + }, + { + "filename": "fe/foundation.webp", + "label": "Foundation", + "tags": [ + "fe" + ] + }, + { + "filename": "fe/framework7.webp", + "label": "Framework7", + "tags": [ + "fe" + ] + }, + { + "filename": "fe/gatsby.webp", + "label": "Gatsby", + "tags": [ + "fe" + ] + }, + { + "filename": "fe/htmx.webp", + "label": "HTMX", + "tags": [ + "fe" + ] + }, + { + "filename": "fe/ionic.webp", + "label": "Ionic", + "tags": [ + "fe" + ] + }, + { + "filename": "fe/jquery.webp", + "label": "JQuery", + "tags": [ + "fe" + ] + }, + { + "filename": "fe/lit.webp", + "label": "Lit", + "tags": [ + "fe" + ] + }, + { + "filename": "fe/marko.webp", + "label": "Marko", + "tags": [ + "fe" + ] + }, + { + "filename": "fe/mithril.webp", + "label": "Mithril", + "tags": [ + "fe" + ] + }, + { + "filename": "fe/nextjs.webp", + "label": "Next.js", + "tags": [ + "fe" + ] + }, + { + "filename": "fe/nuxt.webp", + "label": "Nuxt.js", + "tags": [ + "fe" + ] + }, + { + "filename": "fe/preact.webp", + "label": "Preact", + "tags": [ + "fe" + ] + }, + { + "filename": "fe/quasar.webp", + "label": "Quasar", + "tags": [ + "fe" + ] + }, + { + "filename": "fe/qwik.webp", + "label": "Qwik", + "tags": [ + "fe" + ] + }, + { + "filename": "fe/react.webp", + "label": "React", + "tags": [ + "fe" + ] + }, + { + "filename": "fe/remix.webp", + "label": "Remix", + "tags": [ + "fe" + ] + }, + { + "filename": "fe/riot.webp", + "label": "Riot.js", + "tags": [ + "fe" + ] + }, + { + "filename": "fe/semantic.webp", + "label": "Semantic UI", + "tags": [ + "fe" + ] + }, + { + "filename": "fe/solidjs.webp", + "label": "Solid.js", + "tags": [ + "fe" + ] + }, + { + "filename": "fe/stencil.webp", + "label": "Stencil", + "tags": [ + "fe" + ] + }, + { + "filename": "fe/stimulus.webp", + "label": "Stimulus", + "tags": [ + "fe" + ] + }, + { + "filename": "fe/svelte.webp", + "label": "Svelte", + "tags": [ + "fe" + ] + }, + { + "filename": "fe/vue.webp", + "label": "Vue.js", + "tags": [ + "fe" + ] + }, + { + "filename": "meteor.webp", + "label": "Meteor", + "tags": [ + "fs" + ] + }, + { + "filename": "total.webp", + "label": "Total.js", + "tags": [ + "fs" + ] + } + ], + "tags": { + "be": { + "title": "Backend Technologies", + "description": "A comprehensive list of tools, frameworks, and libraries used in modern backend web development. This includes server-side technologies, databases, and other tools that enable developers to build scalable and performant web applications.", + "category": "general" + }, + "befw": { + "title": "Backend Frameworks", + "description": "Server-side frameworks used to build the core logic and structure of web applications.", + "category": "general" + }, + "db": { + "title": "Databases and Persistence", + "description": "Systems and technologies used for storing, retrieving, and managing data in web applications.", + "category": "general" + }, + "fe": { + "title": "Frontend Technologies", + "description": "A comprehensive list of tools, frameworks, and libraries used in modern frontend web development. This includes JavaScript frameworks, UI libraries, meta-frameworks, and other technologies that enable developers to build interactive and responsive user interfaces for web applications.", + "category": "general" + }, + "fs": { + "title": "Fullstack Technologies", + "description": "A comprehensive list of frameworks and platforms that provide end-to-end solutions for web application development, covering both frontend and backend aspects. These technologies enable developers to build complete web applications using a single, integrated stack.", + "category": "general" + } + }, + "backgroundImage": "/splash/webdev-bg.webp" } } } \ No newline at end of file diff --git a/imageset.custom.json b/imageset.custom.json index 45e47f7..294a88d 100644 --- a/imageset.custom.json +++ b/imageset.custom.json @@ -17,6 +17,10 @@ "displayName": "OVERWATCH", "googleFont": "Russo One", "backgroundImage": "/splash/overwatch-bg.webp" + }, + "image-webdev": { + "displayName": "Web Development Technologies", + "backgroundImage": "/splash/webdev-bg.webp" } } } diff --git a/package-lock.json b/package-lock.json index a8a1c7e..81fc803 100644 --- a/package-lock.json +++ b/package-lock.json @@ -41,6 +41,7 @@ "image-overwatch": "^1.1.0", "image-reachthefinals": "^1.1.0", "image-set": "^2.1.0", + "image-webdev": "^1.0.1", "image-wutheringwaves": "^1.1.1", "lz-string": "^1.5.0", "next": "14.2.5", @@ -5862,6 +5863,15 @@ "@inquirer/prompts": "^5.1.2" } }, + "node_modules/image-webdev": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/image-webdev/-/image-webdev-1.0.1.tgz", + "integrity": "sha512-nYJdw5bZsy+ekFzt6xFplpvvtJxFuA3UrT1rx/y6ZxRSnmi7rLhDnZf8rz3jwJ4ptrVxKeQIijGHklLeTSZgsA==", + "license": "MIT", + "dependencies": { + "@inquirer/prompts": "^5.1.2" + } + }, "node_modules/image-wutheringwaves": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/image-wutheringwaves/-/image-wutheringwaves-1.1.1.tgz", diff --git a/package.json b/package.json index 6992bc0..ab0e197 100644 --- a/package.json +++ b/package.json @@ -44,6 +44,7 @@ "image-overwatch": "^1.1.0", "image-reachthefinals": "^1.1.0", "image-set": "^2.1.0", + "image-webdev": "^1.0.1", "image-wutheringwaves": "^1.1.1", "lz-string": "^1.5.0", "next": "14.2.5", diff --git a/public/splash/webdev-bg.webp b/public/splash/webdev-bg.webp new file mode 100644 index 0000000000000000000000000000000000000000..dcdc18d986034ffb2ca6c4387eec8a7377b55d54 GIT binary patch literal 13764 zcmV;#H9N{uNk&GzH2?rtMM6+kP&gp4H2?rG00Er=Dv$w?0Y1@Qr%xy)IISm`t0NE^ z31UO&P`jDkOKLNM`*WWkT00#v-UNIvl=I>GPuwBT8Rq@J1HBdgCm_ab&F^sD`Tq~m z>(*awyaMp!y#syo9l+lV|BL89zW+>F|o9N%*0 zCsC`1@hvh3M1--%(>J^m#EU&eRn$M@_cAkmX;@JP4|AM0CU&&Nh8o)+i(9;}NXB&l`IGX_CKNsd+A~Kklxw{pZKw`pjD}QK%d?P@o9zB z4}$1zau*1(T?8&-8%!ERKh35DtwSa{Jay6muF2qwNUbN4DL2Q!D<+no>gU0T@qL%d zET;)8cZ)EbEp*w^d)Y#4SQ2(Y4{ei6&G-pmATR2&+f1=i{(rVYPu2?DQH}n&V-BNR zyx58@jN#w?7-;CZU4Lo&h4;SQS-9y^pMBfz^OzVEU1ut`r*=K_c?mtCOc6s9Q=o~t z9H=ohVzcB(WGwyjGr1r=xYeJcb*R50UdX449fC%Ks1Nva63TDp7EY`=Rqy6$Uvczi zOiCNC9uBdAu_tJ5FKroqdEbFE5OOR*pvHp9r8>`iUn5(<&M*!L)l|V7T=;8tafy<>@OSeM8xIWk-oN2WlM zj25(KocM}4jh)%aRN(fe^sLTFZPnjSmcC8WR|2K}KO!|g)B9N0_PS_n50-iKz$|_p zlRR&fe@?6Lo-Ozw$%SzhI#O(ainUfLqRFotN}*jmb=yU=K8)1f4%2cKi#Fm&NDrYa zpZWU!M)S5&9e&sYG~l=c&wCN}cg=E&19OmZ#xmQu+uJ}*)xtB2Pxg^e0w} zgg4-wbB5Wm9EFKwbADDyJrxACu%p~YWsPJ10?fAbRfL%6@BtEx!D{Eb0h7{3Ywxyq z`Iv|Hj%+)gRoWg{IkO-LBS`~R>P%^tf`J1}Vr`kvcwY^99eJ2-u-|WP%mOz~a^&J3 z82J9r5T;uoFB=skr5+q+O#eSKOY;)Bu`+om7?|_mz97FCHXvn!d^V9>SMHJl5rsOd zWRi@De^^B}4Sp&o^Mzc+;nav89>YY+GX~eh(LaK&bCo6M&&rXh;4|>`&N+`yj%&Wi zq6w|<@_Oo0i2;9bJQ_@RWHEHW7{nc25)JOG@C$6tgfMmPXu$Bu=-2&|>9nlelqocu zS3g|}KSqv2`mVDB&OytNB$2}cs7~`Q2c}k(HM>ejjNaG>maP#PN%*koS?8S!<`}+cV(s0&EpFCHM%in=R9pnW#xKJX+avJV`myCmeiBznT1Ww=QQH z4&Q%Dt|B>TUA#JLES7RZ5Gu5vFv|eU9bQ{V$0o!>`6u2FyK|G*z9@OD*NOQ(M^l(h zq9c3W<(n>T-M>GHE2PX9)1#vpWBzh!+=SBoS|p^Js`V#qg8tw~m=gRFm2T-}o}9ZU znw)`}3u<}+m9Nqi!6TSIt8e9K`x)+`+7MoROiHRNfwtIoVd*_c0lww4xa)Gu)gT1f zA2oQp=TFIR*Zf;V%w;`36JFsC=mhN9sx@$0ce}L^CUmF7X+w4wyr%v$ltEe(jem4~ z?<(3vdzFBh`Jo&q)YtFV(6*>($6$e63OdI<+wI|ec>ZgmZfzbwZXWq$f z1Qlm0vjKE?Bai*&rqr`Hmi{T6xUU(IkdJP7M1u8V!E*VTajo=*n05@h4n^65|rMZabfM78Q<&9ZXy) zu|p#{=mCarG;kJcEo!p8XoOxc^q(i`u;p}*MM*=#Z2JV0uAgw{W<}+jPbX27*r|QA znt)u#Nx2f}={(E3K&H-8)vvE$^m!^<-{`?~9_9C~rAT%}=`znCv|;aniJj>FhmiW| zOxF4ReKka{`F2B6)0VCRZdPqYfO5WTr++`)f{q6QTVKNWXfw0HQ8}2W?3KeTIfOX+ zGd5w+Kmh)r?n{6n%h?Vx&^&q_(2KxjWh0Ar?Y1faB?8>iJyH3V9Ha68^qoJTRXFLm zyZOsU%+V77hVP;D{^6u=D?%+~_svi_auh!u)*82DViM;jVEF&p$-|f)`98)>!mr=5 z)dh@NJIuTRWvDq-Jm9FTVp^=sK$8ELmMEI>c&mihU7PV#`57biB}1c;QVH+12i)#U z#X)U&ta@S{K9VEL4fZTRFa@;F%x>^1UBBI9I&Cv4=^=tp85~OxCHM&7)#y9_6|ye%O2*|X9S}3pNXfZ z=b-#MKpo=8&Bo5G;fNPTlI07MiOp4~8gpUOD|EMykYN@rb-3RGWcLlMFN&SWZZ;#5Nr=dOvqjGrRSD)4Z4Tf#~?T|;)#%yhO1sp0p*Z;{KxcoP6?JYhrDPp#UyfGg-mdyu2%Gp)o&+YZ-zjzjKWA`*LPE!K%RI4k9 zw`sCM#Rmi>$muIP$&pFE!#IRIt;?F{H{R2GxsEk;g8#57;VHoyQaciSsNdkYD?TCxI#h| zS2U@car#?h-a4eXnaX*ZQ_6j5pt{d|xotN{;vy^;|3Ow@MmYsX^P!wP*#&2@Objbk zd<&o+v&di-C7yU3#Y>s*1q2YV;>BhSbvrfp*sPJ17a3Y~O1;GM`Y8kqAL1>V0vX(h zv>p!5V?J;t>&_e}@tKzm-m!zCwn>E+kie5d{i*ntmz9D`)A)6E%JJbUIs!!Na{J}_ zjDl{*P6VmMMTVot6g#bvVV%=xIQ6Rq#jp!(6FQk;(MA#rGTBA>qg$xM{(A797|Yq8 z=qu{>li!pcu$DM-k-=`=7=YC=EaFcx8&a1hWxxZD)3lXiQJC8y?!HJzw{17-?yjhC z>Em_GkDh{wSIQ2ox>e!m#esYI?F*AY7-s)(q^o{`M0)t5veN$ z(hhu6|J0t>NSLmf)c+iXG&oS^{d^WwJ$Ss%^-aeWeh0b{vZq%X1@GQj=t%_=Mbypz zUj%uF+i?)u?Ab*N4e(<2R7TlRNS{+@>-U320@KqZG%UZa+Aybc_-O=(%@SO{dXe0z z3Jc#gkz*`WZ`P)9b5jjUlWi8QvasxA-i*SSfkLOhzw)-zS>iGw#UxORM90vm`Wf!> zrtxWy^Scxil)t138Zu=tu8<37RKzLkp+t>$UDzdlmQ`q&+<=XyO&9^^X6TFevqrWy5@8-mYL>8M@QQc_#bd&6A{9Ji|#?SbilG*BaCU=`SBW8x8nk;t5LA8s1!(F@umqyEVyJ)0(dJ3wU>u#pm@5 zkvwNdnHJ*EJ!`+v_>uI#N62G91W-J-yj8Db3_HSzZ|p2<&O7sA*Wt%tK+K0DJVr;T1lI6%v!a_2H}?|D75*5p zpVYL>r}~&Im2z z(tw#xPlmMOzU*1xaW7ro+Kwmx6n~Oiq>kdN{JawW%>NDAf9bx1aQ}eHVU%hqmlIkqT(o&7f_i}F~ zI=lnqA<{Ypj`laY6Ai z_n2Y^@Ek-23z9*rzoWm!Dv{tQY`@7gvVZ~mY}mIsQ>F!v*iIYXCZQZmURXr6>`Taw z)G3+!T2)-K&_@}~Xbxrk{$a^bZK094G}TSXw|QEBUHLsJ){L56%}u7=Zwon^Z@#=@6&T1339e|V#V_6-AT(=T z$^KJT+_Kia#m%I9-ebC1cVv&u?u%yR37z}iIHXw7Rf#nts4I!L_1kA7uZ`>eBSr$+zQMNNM4*w&!)Y&wZ?l77W=X4@f&N~*1T{zq zYcE6i_DSi{LP14Yd<^o+9$^Zwa?|pFZoFYKRIrCLHt*u{2YnqRbOZ=V(Hw5Lq&+w` zJdDlSHK;Rk;p`y82!fQ5mnRuOMWXUk(b7JZ336kLaVSic|M@h8o-&x(rfmO^r zwIfWD{rJ`@l`3&!yeFoKEUA}Sp)9!&5oxx~F_aKS>^k$#8g765qU@6-6dJ!UMX@`6 z2TJD{0J%5;#h(I*Z;P8ZEe@^)1wcLMIBr4teb2d4*<3;3V=rt8<}OG9MB##&oxE$a znnl0(_W`sKk+FcIymGxIZ_h`ZQb0@ty(I!&3he6vnA4`K0|Op z*oR0=U2z+7{%Qq~64IjdBoTKd89PNu~u`552YvG(Cr9l zhHhdjRR|hj%MO5twrC5jhU&+9Z3rzx_$m1D@Z>HKW4hF-mi(dM(q;2iS+6`j__l{0 zO?Ez=iO)B}m0;~P4M&jU88zXHQNJ+kj;S+$Kf$jyH5dQIh7ZY0)BE0`bHb zrmRn-)hBoKV_<&Vtvm~&?f`bIqq`K0cXapomzb9rquA7k^{n|`z8gkLlp#d%(ZWLq zvv7G#kZ7Eg;=kK@&X+e85+smt)*~Ar|Nld=mE90f(lZDHHwH zvj`maS&MVX$i;-O4_;Bm9;a`RHvzlVQ%`4uLCK;ql8uzqQ;Iv4V&jf;qq4_?N@H~7LRDfY?I*Z@iAsQvcvI zUBx~JXA&XI@+HxxQ6N>E*UD_cx~FQ&KO4oXBmBYjUVn3JVgtN7iBiptT7?zwt95sn zx8&^{F{SF-Lm^LXq8f=8~)5GR$tIx4PgB^5v0Z0 zP);Vg^8fM6z=#91;Pp5X20E!A3+c$GzK{iVtP})Jc$mfGO_2=x|2TB0AW0hn(7#-6JF?iW7+;RRxuL`0gj?x z8-$dHYRYjZ&t+&T0*@8`?O!^ zXX96?FdzO=)I$7s^Mf=fTySsVI}6)7ZsnG>ts4nIRn9!xWq-o+5(PeZXm@NhFGDj# zU45#{{ZukNBvq;wVCVj{kihbskJ5Xh7L)0yIV+ZsM1vo!&Bo5s8o3lI=rNLjll&K~ zb6AnYA$STjx&=`f6XPxazsB`}7I7UfP{)=HMN7Rwy)+L#kz|a%kIGX<#~67=uzYK8 zzY3~wtwO=+gXW{?$d1@n?yr(I#fQS0zC8z}2+4q-s-rJOF+0L`D^8C|!uJEc;axJ>4)P{lx{ImMSU4b#h3VhAm;xBhJi? z3xjm4Rf1f6b&qkdf{x~k4s=n{IyPVH`&#>vOn%YRMkazwa-r`Jkm^Bc@By61SzjgH z_sq0;5M-w=j!?NlS4Mdlg`wH|4R9$JJi+7AUi%-vN+0sPudwpE)g*`;&!;WGfjeW3^H~wQT*Oq|z zGrR{H&O*@w1N1JlzJR*H4QScSX~Y{b7sH1*aG1=5VRnkwG(~?A>w*CYnLiF9n?NkP3SZ$c9 zvCm>|WjkpJ=k{2&dI^WP5>>x57duM5HJiOG8WjstS(I~J^j5#imLHL(*^y#vPwv+>hX&QMqFFD4WzH?~bg_d-{RE+(z)8%! z?hJmCGWp$QG~zJ@-@e0>07yO4Y&M-l_zP4fT_58mKRX#)W|i76aI!QR`OSC-BGF)T z3-!!scW#4f*OW=Wl7%wL4Vr+_@Y@5X33j&U&|V_ZDQN2W2VL-J@AIWKo(<_P%veL* z5}ms+cH9k)$|c*_Afd?-5)_Bo`=)Vr)*Hn$@2^5%)GwmJyXy z(lXtd-hc&jTj7eJ;YBg2UR$eTksbej4IUMmDb4}84~;Xl>-r(Cr=YM*jZEV0#CrV25|ZYDnqU}t0Q#Tp{i+m7@b@?f-0A`i`}3YWL0_bi#Gd2)K&996nnE?w?x zN)219?_it^h5QR{7=#^!K0?dPx!BbD=?a7u=2MANItlC<9Nk5{ib?vdBR8CMt%%gz zxFB04HLHyVdA&y#pGSw%ue=~j9|`WIyFJi&>czjC4=U7x!^IIYG(Y2+UcVsG;x1Tb zBUwYIWuad_C>xw%dH2H1Suh#-B|m}l@Sfw=eyV1l!tjD=$}I~}z7;w>!|as~M0R}= ztp*1fB^UYOg1jzuAMk{8c6w!OESio$)8bWUcrW?`hn=D7hc%d&{cR?yu^+ zs{EPd$m|)RPN3qMk}H|Va$9GBLEBT-bvE0<)+@U}IgsTN+0EF3CSHVc7^BSmanxdl z?Mabluz+>Z`Kx3?F_bz)sVf2B{k0gnG+b)az)4cg%kN%t*k7Dtsri3(?6uKRrU09* z*-``~0;f70g#CbDDqC}Bs&W80Z?$(U5NR2tzxBHbr$+E?9A=yLPo1J%-XF;=f{6Fd znrCQGiTH{CN7nr9zJco_Y^zj?DJLHv$x0cS-Vxo zuXZ=M_9K@uR1G8DCgpHx0P}CNIoAMEffrj`5v!JHO2Vic>45k$Y0#jtC~}Le+no5X zdk94PrS}e?wHL9(3Iv^o<;l4O{LlvbcOz%OHO~AI@K%H4uIp@k<=#iDpiFpPC0i2v z{F200%L&?-wKZ!`06wLU_jhrW;LIqP`Ed#>5eFWD+zGTZ2t5wJ8StY>Ayt-z*?>XI zqZOZtJ=AyadHVm=2A5ntikN=6ZsbJW=y#!jI#;%T`o&)L`1F5}oD}VQp@gismZP+{ zQkg(76t3E5KQ6t~{h>YLw_F(BO*lEU_SI~gbRBKP>=;pOD5)ZDIncE-(ioIbB zeKDP$i941;)c6gmrw7{?FbarANfUK<5f--2{t|-wr9;%@+Q0&BT=7yyf|@%PU9Yq2 zX}xnS)Z@6X><|RPa}OI}|^z>}qd_qH^fu`eh(3xOckxM7+Kbum!co89T(kr4*Wg%gB|1Zndra1^OQ=8KdU?r>k<(p z$B^jq?0x?!ea#FqbHbHY5&-u?XT#h@(C-HfH ztu9AKg>?Yn#i&m2f^%|wax!08$A>Q#kg;@6xK{rZ8qAFoWd31cWGSSroSh0CTPZ6Z zAUtI0s^|tr*4~&iqC_4D_I7qQ)K!wru4!tRK#Vr_Hr0EZ=!JC~BOAJ;Ye3kaF;B!4 z^tlF`Id_1S_Ro1+SCuiJK&hw7!z6D!zR9&EuF9b?ewVc?we*`LIc@rN8=>#^&s@ob zR5y!9{Kgt_A zW`*b-GNy0p)oq6mCM2;&gP*i9CH=ItOf^Jc$~Uvm3Lxe1?mZzOzPu_b>o++~QhEI$ z7uoM4LQ+x%#zY<;Qz9#cEEGaK( z62YJ)DT@BK_%Admwg{m!Nh``B9`QG`mPAD6;hV9qGpolqYeREu|Is#uE5anAKET14 zSu4>nRc`8ou(Rf*Q98riPFiql*kgU2qzJUne%fi&ZRYYQz1wF<;sjwH<*7KJRB(ne`0+Us`PCS3!2eMJMts~?GI)|v7As=Ilx?TeuCS_z` zsG!6mU0wFamCXY4CoMeAvJA)Z#uf;8Y7h(UpyQ>EgmT8`hbFD-`nRLQ-|dv-vAm{t z>JbPy(|~k27n{LJ`pU_=?v~SE6($mMYOL=f#O~k62Qn;U#75Bbns^+cgoTR$IFR`I zxuzmyZ4&wyKP@lMU&V4sfm6ck`Z(>ohyyaSTN;#@yQSP4jYE2?{Q|qun}Sr{7yQI6 z*Q*9Eu#3*n^t4*vxU=GuCRzq%Z9y53)h zh+w&9MR5bxHkqx+z1(G?OOXm7h=*BB*Dc{b?scD!Q=4hjNg&@K+ zN-D#e2a4Rd^1y#q`4`Lyv0w3aQmrK)P@9`-S&)&Fqly(Ott9EODSR zw+fT9stK#ymNQU$qUO8Y*k0bcbzlr>=ffR|)MmhcA>MKwc#_-RYP^ojV`M;jTrk*d z4F3I}^)H1i^95nPphSttfIET4luFxZO41l98c5w5dD%a1aaxm*rpll3~xVhy?T0oDSjr zR*1leVwX&q4*I;O)kWAfdgt(rlXrY8w-IaT-Z<+5%)jigyLw^fTR+@GFhH*~T=+Y* z^e!!Y*|w|a!1lpzqx1@`&_pF5;(Xc|&J!m)xD3kh5V*9m2b?9?%qKGG@p5xGSTHVJ zd4I5*P@(I+8=%l)3~;=BYy*veULdSXjjn7_ON$=zoE95VGFGv#Yd3Z%Y?1n?AFPx) zj+FPf$`LgCGik{H;~vjz9VwXTU7!Fql?6a@YlVU#!#FxZon1?W6Bq%f2x0>!npE3_ zj^K8~K|H)|h+kiL0iCYJoJT6J*IhcWWs{jM4D(-{%nLF{)x{s)P_vq6h78EyGzx!#0aa`^p7wDo~DCGy7b>6 zP&fhR;<%#RLeDs+ln6$<|3n}I=eBfA6zBxr_53PLFzT11N{ILCtL}f+uaZ&@1^x+V zH>c;@>61EDWU$x=V60KmB+FB=564x@s&E6|KNI%>@4=aHy zS>#;aIO*8C(Ri>^(ciAt z%TQFMYcwj0_R3lM1c2WSH#d1v^uTLR^TO=s1Y&oAdaUWCzvDG}84*mRAnV@7C1fd}H0!mX%wS)boZA1tPuDdg9zTP~g8@!PcL8oeW(&eq z8LE#B3!!wfbex!(Y8>}Ijtzs8nM~$ERhOh(*vQ+;djOW)BrHkbrmTo$Mr1o}3jWjB z;P|E$T$X|#pB|KOU;8VFqLv%w#0(?<0?fDBSSCc)kg(j(y(VV9QJD_f#!we0eSSBA z8v;ALu?F)Gq}!w!YKvys|6R%EjD6{D6e#5-t|q9#<=kqc)u(^%+i7&`tO z%mGK5C{UcOqy_SuOZf>dVwrjY4cWRl#baSybz*+LryrbcG^eWB**oLh( zvx?C*bhvYl&{9OXx6^3QDaG(_k`qnCg#Nq60GeWt#JXu7x;pgbcrtO9z;jD#Z;LwY z0QPQ;N34U)>=N%nodvimM$@x228Q$ucDdX9nv%W^&mAd(yG67yHt_YAv4=T}Tmfjh zZ+!*S8q|K|Ej&brGpE_&gf0WK6pE3Mvxr_HwE<=UOoD{@O{1r7vGmVTSVD>aK?PxO zP!AIUWT`wmjO1pTD$FFxmP3(xHQh~xt2i>LwlhXsP*A z8Lf&^21mEN(~AU5iWk(H8urhANXr3VtE1OLu_odLguICrfF={CbqxRTDEb$`H)(fA z=^6yQ;$C{7Y1Hf}$$RHp#08|@suTza*Xs6eO8FC1s`8NFK1|@0`yz*W&xA8&pJXZ_3B;t zmib5muQL*l_lm1E3R~5dy~ZRI8fJor&dMiKTmy%ZHO|0uX@UMgC=JYWY$70;qWUk+ zkkZ~Tq3yohvLfpOcbR=kwMQf{CRGzs6+(P`C)A-es1w2CIv5wK`{O*_KN}|RHGf3W ze{VSq-KJ|&+8{5|R-&0dGlb(7JbyBI|yJC0OyAy2#8o3Dvy_lV@J$s^Nf*h53%7&B#OD866)E+90ob8z% zGp%(qW!J0|XmIKA##AV|ZJ{YVEY%H* zU=$#dazoRbj@WzREtqhrv}bkmb4Pp}eWyv4H%Umt@5RzhXgDI&nq%L`{O=jooO z>656+zw1LHW!e$%2(*ieg7At>x~#oV-cJb)h9^> zB{I}nQhMN1auEovYL)fdqGdJ1Hy7o&TJbVSF!oJAy*NarsP1-XNnQC_(uFku*UtP& z$LE6CSG)`U8K{Voa9_PN{~&LunQs~L_{qjRU+0|x&rHsa?%OMsyH~tNK(EPOCmHoWlwbpgeuIjpueyJpyoY9T&d&4@*vylaq2uz`bt&0cXeHr&8 zmFF&$uY?vKroL!l4fMv7%tQn-(xkntzim<&#DH`m!8DcbWMwfq{yXDnamjCb$sZr(e77aTd# zMcQozb3!UX-D=*GzUPCsPN1q*t@$ zx-vXaghs-aB_^hw(*&eu!>Iz=c-NVzMp5zA$``dLtSeherdQkyUeV0Z0B*gbOoy@P z*WT3}qf_C3{M?>@vB$4vYiNd2{7g!NnFGq}xpbfwb>+NdC?|M{1j}kLz@upKp@|n) zty0}?Cn)y1CVrm-(0~y(_-H06K{AX9fiB!nH3 zgoAav*YN^MpKNJA-}eXn@kDzS_G&Pt|E7xE9Se>dl$e-Yd5Le|y&7-*CW1S!!IACA zJR9TD$RY|uCdwW(E`3RJa3SqvZdUv6_dfCSl^U{uKR-0@+PwD3%(DEJAvz2rn8cQJ zD6m>EJUPr6tpOyzHsbymwN&e=^6@_uiXmcgMui1u#8WCD!GaR+i~yCmFcnSA}* zkU66a>455sAd=2hp|(mQq}$-yrBt*nH#$>|Kbj`)I#(^MUP)J>8DOt)1oxilU?YV5 z(EA1>7ku#W6$JV~XZH8o{C|LXo~_q8?a_5L*p`H)LxY!K`|JP#p#`-EM;hvjv%C(! zK>Ap{&9C491*a51FmyVb~nombAX>LlD{rMjP7;eOMo#g3MU0ybSB9JTrudaFf zP7}sh+}384banDze#(YB(dCRVnSBS!<^vZi55-^u_(9z^n_?qj-CJf}ZRZ#w|$X$2nG=?2nPIP7b$Vf5rbM630M(`7#vQ zrPy4xK@%qf6v>A+xEvc}$N&Ii)!N)C7<(jGQ^HdCK)2aZ@(I}APLU&~>vNcpJfoP! utZ_clsh1$VCRGP}%)#u2aP8EynNij^vbjE?QBM;!4HZE%-`El80001iRoGns literal 0 HcmV?d00001