From ea269b921a3ac5d4857e27ec11891788860186cd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Robert=20K=C3=A4mpf?= <48529807+PlatinPython@users.noreply.github.com> Date: Sat, 23 Sep 2023 15:42:49 +0200 Subject: [PATCH 1/4] Change icons to use the "new" neoforged logos (#11) --- static/img/favicon.ico | Bin 28685 -> 67646 bytes static/img/logo.svg | 237 ++++++++++++++++----------------------- static/img/neoforged.png | Bin 34102 -> 1123 bytes 3 files changed, 98 insertions(+), 139 deletions(-) diff --git a/static/img/favicon.ico b/static/img/favicon.ico index a2b2f34f21991dfe354859ab49ea89eabf5dc28a..32fd95da8b7e3f16fc512f9031974fc0de55deae 100644 GIT binary patch literal 67646 zcmeI*y^dv95ykO48M$QwB1dTCga9Nzg`MyOB$iW4cFg2_L_B~cLjVyH5dm^I@yN19 zj!a}?kP{LPy$ud*b^WSc=bpaZch*>EKK6fhovO8}_PMvGyL~!6x%uzev(wGbZ=9a~ z;K}KSr_<@_&2_W17QbF!zy10T|NBjTjsj623Pgb@5Cx*ZtqMH*@WUR_?$i5quRXa=_f9p}J~8Dv-KUs)Sp2V_8}dp_eoXf% z<{lRR6?w!t@_K7La=|08W!|v1jb+0|SPWMhV*FG`jIo+q2dszHG|M~y? z`QNtc+T)e>PJR69tAB6R_37vT*d|vMZ>>-BRP9GG&8k@C{aQaN*Qu`ZYU2IcqnOh? zkJ3$X<*``&ug{eDUq5fuiyfQls#(qa&psC^^Pl;zdZ3%*DbM_$|6J8GUaazdtxx^! z_Qn6}_P_J@XTSJln_PPS|LFDCw#lWKlN{HcuKsR5CR{TvcEtR5^-pz`R}=5o9>tvI z+0{Ssx7#C+#o~Yc`Y-;^o>N`_Pj%I-X8s?}`@i__&r|Bo@(I@&FP8H^=YQ1$lRjK~ zGXI%>^+2Bgv)5IcN1gFv)$Ffz-A_#3FZPoUUS9Rp)i3R)OdgBH|MT}^{P*)O^Plto zntLGgpZQl0OrP=Er)Ruap8t9NS3RJ96I1UmcFkx1s;#SE+D(~eT&(hbtt%JR*!io^ z)zZiD6?ghE1;tb@szEUqlXlWvOdgBH|N8uo|MmM6^>Ek!njLAbxS9X^{rA84Uw^%c z`ZVYNOMabB=D$93^Zc)$)j9uj{!e;9XSL2Ey@pZD$8`Sdy@6QggFcVzr*HmvtFBJh zbMq>XwXPbv`d_?wzD=(CKL6#hSXaNalji64w~MD-R6|$)#QU`;{@2g{&dUjp|Mm9< z$o$VgZ!q&;Yp0o;%FdAW{q|Q| zb?G@SrXKHRO|vt7U;Wmvzuc;;%ctVXMKx6MzFC)c(p>&m{&wrSpO|X+rq1eDX(!FA zcx%1#eywYtm~v4Kin*AyljiZie*YK$>oZ2!bW=AupxbZ*!S3RJ<5mPU! zhZS=%&5mX+=YP)sst0t&i>cql)Wco>Yj!kqid)V8TGu`?<)RuCb1`Wr%`5NMx;z%s z{iaOyE!OEX;qqT>a<6VrSN~Mk_&+=U$jHZ&TLwe>Xo9t{E4b+^gHu)j!p>@_wz$W3g#2+Sk?J={Mo>SZs2yZckUg zv=fW}IsdC3(2R?z-=<7o8?sn89~IZ!X~xAAv&y4e@9LlGT6zD_&i}6dPQQxFD|sxY zm{lI#dRKq^pMC#lc_oj<6tnZW;_=_#|D)2aTbEbzSWGdyd@3IQ7n|y; zeezgLF{iAnU)o7?#jX79))iB^s0PJcY^tmF$zw6aoU*QdX(!DUxAVE;im6;wgJLc= z)m8iCv6x~`Sy#Wblje$B`P;24rgBjYin-WSSM8I>Vv0FsUH#Hdnk#PSbHx=?xu^!k zTx_bV_Q_+hFaG}7R$aQEzJ5{KEcV{}zbP+$&aL8hnpa#gm5XXn%*CXu*b(plEAQ93 za*6+S56A!d<2y?m&5mYHx>obutt+N-Q4NZ@nC40>^I!K>=X1s7Rs65N$4Acpoc~o1 zXr>m^*{PXR+-knNb;VRJszEUq(-|+8^FQZ*)dPBuCzjX$bx*wt^RM%!I^Wm2_H|6> z_L@r(ZM{s#8rd*_(_I2zC&6TUz5xI2rAHn6Z*gyaE$sME@>pzI|0O)uJ*RbC%RYH5HmzS? zT!KyOxR!nLSZrGVB|O$Wr*&M*K6xxQtzTYTf=%nVmVNU0gdf@$Hv5>`C3J(uM3=}l z_dI`J(PY4Qaegl@p(!jTxxHB>{IhD!)0}2X! zD!HcnyTo@`l#oZ@2}L!$NT!yjT*YTZArx59$g^)L{rTRCie!4sVeIilkT3DS(1$L= zOA&#G=^k6!NRevPX*ySmw8y9{D!pZCdZ~6M&D7YwVA^&zZGumorxXI%7ko7UBWfm| z@ql2MBVPgLQp^qzZ(wZC0bp9xkOBE$4UF*sOpE{L=G!Z^K`kaoXS2ylFQ*ImYn}ft z&|-QtTl#u`rp$C_ruq7vSBY8eKw8CA(ExY`vy=C-)jhW|H|BGcd$GoF6!ifQHP^2>Y-B0a+mcU}@3F(M1eSVXR!UJK)d zS68EpW9D}QvGd;M5<6k!3nH_x|3JXiHVtC#55G{xV|vS2dOvHD$b^KqXDc{wS|_E< zFkKItH-_`oz4w&A4E~88k27787p{?k^S19y-)=%^*F(E|tprOeBq<#(46Vo-S z0WzPL-`f5qy>{Py4VN{-!Whf8+ljz_EP%Y7dU0?iefT~>`$>1~oRh?C#k4`0c87c) z6AsuAEPoY6*U-yI#gy!}Q{cSRf@-uT=d7n3m3M)GBP;^VA>h_(oq{rx>K>qSlIWmP zj?GP&40s=dkH8l6{GoEqmF4%34q(oa04|qMsrS>Po>hI->wP-x+`bmql$04TA^yl-r42#T+4z+w4VE*buB_moQEju=yD|7vDn_u@ z?z55nU>3%{=;W953J|NeHwV@F|4zLZ-ULrSsaxFKB%q)B6^i;tpN=0Nq%dm#Ca}ds z%Buv_vD+BlHLMPdZFX;R;kRvO_+D)|@3BPG_w3h6AdwKjlH|xOxc!fltx?GM&A~1w zqeqPYbqM}~qYUe122Tl$PI8&V!<#lVunY-iT32$&bekdKSBGQJ68V2 z@PkMYGZ-9{WQ`YeYbD`WltBRHJUcw(tbWQtP+itKFY7(XM`ghtXop~C=~TvfPa?xMKo^GHhD$rR+lwb?U=)drbb2hn})QIM~V{X&8I_7 zit4=#e#HeEQJ)Ext*IsUW|6=29|ONhaku`avw1B}$Ija_NvsmXU0;mK{V99+i__?# zUiBlM1R#4FpC2gXE#zo#IgVgD2p{ND8w~dKM+3+%p8eoc zuB^Sx>(ea0{XSc*-H_1Hb{Y7;n#q_c<@*_N!QNtRnGRcvOe;mJXT*2i0-DLV zYKlX(;k#v~uBXVu3}iHJlYVcC*vsY&bo2$gZof zNIJhf^ge2*np|n%kYEPEZeVRmxSb^ICihG!U8TPP0%VzhYaEO`-PJEoU-k2sQnY=)&azi7Pdr|Q2~$zaYbvZ_bUw}hCC!(Qlg)yf(&(Mu54|w?Po-LKB^-eDaLHorz>d*Y%F z7SJHpr4M!gveOo;0bp+G4z}_qY#a|d^ZU#5JOXGjls!b}V_YIlTAUpm2M02(ZnP1s z82cc=m6+G=DJ(uu?E8~I7s$68ATDGNY(1U4nXlAacfxGdann#|Xd0lJ`NtZ_UM4l< z=v45doS>xGz$|$0)m_IB7Tpi(2I>epM*~(@BlwEs*ZxKiKhAc8f|M+=9edu$m8wdO zfn7*xrlwYhJ<7)QlI)hvZ*!vpswcJin2`6if#$rdKHvph2&n;k`U9v+1q3uaLvLs@ zDbU!b_bm^b^V^qcPbzR5f0LmUi4AM|r?((>V4I#f+iknbx<|&}cY=MF72=K1Ry-qT zUe?ZBo^zXcdxSR@*=`2CI^~z|1G*w!cQ&g!upM=JFHTQn+AZO!G5%I=m%T9LfsYUc z5khgwD5xWrh$zlll3c#r5 zAIPRb06aj75-QAp7cC$zMn*})%P6?v0TJDN)C-0pEqvy-$Lv1!6*=u6 zL&3}zGujEhF$F+U;79pFuMM}6C(i$_w&=3t#}c$0G}aWu6eE*H)9u~jsN!t1oZe+I zCT;7LFN1u2LMkX2+%gQgW{Nq8f%R4zpzj1D0D)}(k`TeCcIW>JPmJHKE7fL%g(b39 zhIT7O7!QLAIt}pKa?sxWq=AgH73#B9q7>Xu?Y4a!r$1IX_l4*OG9Lwf)WZWs-2CO^ zgyp>4I#DsExCTNB-@fQl5F6WJq7D7_w1LkU4Y}h>E*M3*8m4E_dtx=ArguG zh#bI}$!FLKNm-R|Xszqp7O>P`hiecIR6x-wSmqk1?_c)nzycio=P~J;q#~7V{Vu zOeEJ~^mgrNl|sDW>7xz>2YJ*e+*pKSBJ_-kc@jwBav+-^D}se+ce6Hw!SEc@6p9~0 zV2=<)d|0t_eq85Sw7@R}XC>A|{3`Q|0wSSDK+~tHkQdDB5p4G;ygR-PGd~$mI|OP> z4`(>+$ZPtFir*2Dn1($(8Cm%yig!Gu7!qW(4AQ|J!3LJ;5K^&tY7Ev!pB^Te{N5~G*ks*4|7E`JcOR00&s>d6a{uIjiN=A>lK=JQfRAl$Rz^8E@E8epjY~H^8HRxtPkU}290=hp> zbItk_F^^|T_ZN~c`siKmL0)+XMkrO)8h~8~`ReNbxFB0t4+CR{`ZNSurdp0V@B=qn zhmwUlWslmh4&>2SacQFVUrZk5e6NXYGZFaEOw^gNsHfR$wtQPCZCyRQaGZ5l;;$}m z!iy2EyxC7S+ptOvLSZZ~V+~<}mFGTLV1(GjGd9&2S87w&VCe<k1G0TJoGVb8Zj8 z{=HmcTssi>??slo`SnDS<0N%yf{xtpmK`k@ccpNG$}HP{xZK}JwuQVnIpY)W$s!%^ zh{3axpFbUvj*joy;$$WmJg1&JFVwqntel+;3N#H0AQ$d-bl~oT-}rVD{Uv;kEb3ZB zx8WEO*@S923_RG*i}TV*;xD~qIpdhg$I1m!Zdf=HDG6=dvV&QnHr_lCT{~*B-xbI%xdqfAeSg;Np*qymv-`U8}(C z%i~7RSW%K3$5c6pr~ylcM14VtVy3(f7n={nT5Tq$KlGWTZRjVSvl0p4E$KzIr3-QI zx{~0N;EH-kKFKP%?htmcof-b}BM^+(Y*ZfId^11WYD2p>gqd12vMVdcGu(O}9)yu= z_hAF#lJlN;rJZ(98Tjr$En~;GiK+rRQakK*0axz+#JkHUB3Oc9v%ZI{Dd`(q1hDSI z*Z%vpWB`qz1tJ4??0N-P-p=Mys=Rb_H0$u!XZss%rweyr<@z!`>9t>fDdKTj-f9J> z;MSE~x$c5KC#3m4<1nDNWlQ!@Xcju=FZ*wNboq4gl3;|qgxviAKY4&%#Q!7AD)sh2 z2#Id-H|4yv8rKYu@I3G@$YHv@s9Rhko4`fhn0d$DqiL{AQmEFq_@{OQ`bAGno7 zWq7%F-X#muX2m~v8#3PMHyY@N&XXGbYJOk!=gjQzF*ZU{m1LH7!6Rz?sG+dUOOmPB(4!N7XHJj1Qj5`MBF8JLn+=v$- zyv-pF?1Q|=N=Z-dt0(OYC-k6ms(IeOOXt#DX+(5;6Cr<_(-o)c>fCZ}fWr6%b7o$@ zty3ykEeuJrF1xrET7|#MUsT35?Em`1A1zM-0$?3i7xNARC?~ur1zd)8#(<-CGFOH8 z2x2B@{&94I&20)~r<_dxfI8aW^SGP3DK220?LzjF0C9HQ%T%{4e>x;`@I`~)4H-}3 zUVeYsE8iF%j?)weodDn6S75>c{!i_gnzmWJ(`ych-FDsGwm$e}Q^pXVtXAc3GI+ADj z2=o5V57`Ht<6->u?r3U>$-S&uPUU*iDyM>%ttVg0lP{$2FV{qdBUIIxNf<@{&YU=1 zUE!NwhTIg0-yAd@9%TCcdxT<3DQ?!*44#GmB$R!Tx+yU~1`ryk8ww2A-ZzM|XGy%9 zDkdYu2LNFRH>eWTifZ9ZMyN6Z%RG{>r_rnOJfssFA#Ee6)8 z-aI^JaOJ?r>jI;!zzd`5^lQ|iOBPBTZ$hH=m=GmR8~WffGGnh{D|1ti<<=ByYl{)1 z1Ma-;IU137?CEL$TG5KeXzA;bKhWE zM&gSFttwja>GQy6u*!m^Q!`LI?wR*p&%g1h%lr zcIvVK8lC5EmI?xb6+w*Ypt%qAAWgL%r>DReKDA<)Dmqw~$tgzurduFrd>@Iv-z>td zrUd33F*7-?+!4ro#N3H#ogqK{!P8+u;M|Di)xR_LGGv%wT;XVC66KoLx{G1O}YBx{%DT z*jO;QG6XPb`n0WAbP^4g5%Pr1lDd|~dL(po&P-ej9C!~!QYp6 zZx0Cp=C*z;z?9&UNMB;20Q$`W6RK;R8+uWw>4v`DlIJ6WSww5a#%GUPQUj}a7>Tlt z{@U@pvaYU-=B0ELkpF|C{=LQ3pLo-;Sb_E5aoq#+eptaqwF!e83X>D;9tv1~$?q`XR)C zp!b0(7ERfQ_Z$kN0PqT0Q`GSKRRaQ+u?EVC{6`i0D+ zT>|f+)=)W~0P0rU%7=1k4)^Ef@cpISW%OMK{-P;pE^$)Z!@KXyj_H6**YYz+g2z^NE6&7^~Y4ymw z(Idi`f)D_qT;1{mRRI9{i@oLoxSd%$xCd@rC`?5XEZxf0@zfN8%-~gpe*AB-ENu4` z$jZP4c!e1aSzK8|Ob}yO+yGtHLlYorfHIjkx?2*|m<1o(I=TMkUUzWaBQXS~;by*U z6}^|XHd+wK32^R!R9jZWxWYS7K$|OE5$5e;@7A^*)=BIwf>9`_`~?Kh`&OOZ%vyZ1)fVv;0Y)JCfG(?i^IUWE;9A)@0yr4(Qb^)3G2T$rwN2G1B%n}Wn-*Xb#uEf5jV6yL z;_NB?)HwzsUE%th9336u>_1|E6IS8`;{ox#5O(OV)o?l+z;)nJ(cBYgANC|QQyPrE zob62coV0JThD9jKmtmDzl8VZhAXo`1v~jxKD@2M>$d2s`0jI+$Q86>0CK156_DSsc zQ2;+!Gaz)u24E@sOu>8rfl*Z9yd{C&V*{7pH0@fksI&sil29kFl1aKdVR z+QD_@HPuE6;9emJ5Qtw9@iy>mvgN*>_&U&ZYgte6R?G-;IO9M(sA7x^XpoieGkz;n zFLyu*e3&6NO2-CY236(Cl^q^2%Fb$?Ni_XS6(9Gw1T@=(8DUhw)VZcKIv@>hQH^_J zINC0^0dBMA0{S-Pj=RW*&ADiGlx27!SWeM4pFSM__*quf_D0ZiywGtVnGPX%Di^7u zJceb+Oh7##v2i}Rfz=CP9&#%o;f-N^$9FGgOn2=BH3hlTH{S?!S8-b zTkMuD!sa8MTkFA7}$rC$6@=dyRtO49heJkUJkW;|BhJ@l}7@=5vU2327? zQzjHy2qnt7lxb6Ob)3Sia|8Ux3PSO!kFdcU@F)TBc0-u0_HJhV_jQU`a0&&19!cOk z6?18sshw-h!_+`0fn9wiYZlpSD%q3BG|wep=d(U@pgFk2z=zAETXX~jLcDXH zaDIC8w%@TRtEj)x*qn;Q>Ea<+?Sb#Mo=gHKCq|#C-rjCG3r<-C_E<2)x-|*u03n|= zi`Z1-1e9+^vzE8)+VFrzw^;fo6PmU|r!E6B-BLTADO7j@pU;ilpClJScgseI!3Bo4 z*)?ZGOxN*$G&ip|-L1rv@Q@kI`vpeiiHdynetk>|^{v~zlIo_~WOr3ozDm`|u zi-4cf?b3)+FT=0jOY4|B5_|!&)2LcSW10^0@D5w**ahbt7Wh*RM>PcPceVb-Im_l4 zM!1{tB3``BbrC?`JAi}Bo$7P`-0YfrOOPfeTohU9aOi!qM`Poc;Blu0Ov&9e3)z%p z_dzGKF5ZaB8jrqgfrWF?kKKAk&;;K5==4;N9kx-L>rjfJ@vam%J{nPv^z+> zP7&_TU5Q!wmFer`l=)P{O_-n+$xI$@-=UDB&3zyB;Y5fb&UI|S0kyc;B{EVm(mKRx zy0yml0jPGjPPkx_9BZU9X^)Q+SjR)A++(s3T}(ET6M~5;ae=;b>i?UnVFAYCm!elo zx@Of^{!h&O?2%g4TB-JWOy~|J;)iyEj(K7>m9-Q}E0dqnYG{>|RQnI>oI7%G5!8Kt z3`&t*y`YBsyHf7nlVd*D6Ff`d?>^%z?OO9$hlbgAQ6N!0qxy|+Gc)PO+w}ydw&r4Y zH|zjOdw5La@qcUXwG~Q@G z+2tiKX~*95c2;g~U6Q)05odM&E}63bel`aL?QmIyTmI~X^MAhbXuVXqxksWGwidYU z(Z`JuMo-J?WYkp@Q3VDp2UZqZnx_G1FtwGHA9&ktN^G3s4EtGbipU&p-hCh~(Dymv zun=09M@1SyW5;9M&zyHc3__&zh0sHCaK$bBZ|`S0Xf&)}4t<$7jD?Chtr)HLn zkVn`Oubn&e zgQugxe5d_^d!QU9`JjNFA43ZSys<@@?jFu9(^`oaOa|F^guvOnEelZ#s>OK<6K?+v zPD$d@dMA80`OgGEd<%bs`<>lUkOl!|TJS>zFDE6~k110S9oJP%Fz+3`h6)@ly=hkn z4|b+s!uJh74M#!rbR9s5(eTn<-+FO%nM(06eF#f9Jn89Wk(hWRmvi&DmMZ>XtA7F& z|7r9g8soS+EnkK=nXR0!7??D$RFN^tA4sBNO2|Zajm@O9dQoewVTYfde)`&O>sIa) zyIeYT_ZD)w&~zXi+-y$O?Q~7hc%mC7a)fzfy|+)dZxcXmNv&^}(RTKz&$#p};RAQR z|AKL2Bq>Zp)8%)6s}p0HjZUP9EUsfRsGeNuD+hn9sZrUc$-Sqn=<6#tVt@|5g5}(N z(9hmrINAHjGx|Mp&?qTD{y+ega@Z3X$0r?9OM<*i^Ff9Y5N+j&2X77Eu)Nvu48-Kb zweT-8DGN;fzTXi<6Rmdd6#_W4Jo+#EAh3OFmc8ViDIA#R2b6X-0gdmiS+O?$*0V+e2su|+u9y(P; z(ZRQKdK!p*QQ7CDJ!WzjLUrSqK*>^(!~L|a+}fvU&-uXBdCw*6`OAFn1}ejFeR@T5 zoD~3@CVqkE9h2awz~>qGn=?DQUa=f=c@+881-if^>(_6a13EhA?WIz*RXAE93;U8J z5g({H#6*PxJ++v|8srL489xu{!f=j4b2S+{q~uR-Q~DDYAKl$F4SVu$cN`YIdp>(j z3~~!(1h$(34YuyX4hB`gspWke2r{i<9Lle6awv)uvN=Qi`@Gj$*Z6U4*ucXg*(~@R zW1@1aE~Gwf!G8F5%X^QCR~Fc4QbiF@0bMNo)OUN{q3bfRuuKC({q>x2(qFnW8oHmB z*&wcW_Sv9UnZlN-<`pa}g{M-n;(a^S+!HwyakD!dZQt|LI) zENo7H>M_ZvMLYYtOq#tFdb?@aQ+iucFD-~&&Zn=*e^u@BB3|ci1{2Z>eBD+P3pu!v znk{V2_{||F9=^{=AbL3ID`HI+2Xk>iM`sfl50G@y3SGJo~ zA!`d=f9=S8blp7CP>XQn!IP(i!|!jmhO4-VU1xR}9SaYyiCVTI{C-LA-h+o^s+EYI zbeT$&h&4XO@;kF#X>vpEkhcdSq(*8n_zTuEgl$J4XwKIlPUa+1Hf+k&P9?*34Uiz0_&5#ll9PI2CS5T|=(Fl-$>8!!bib z8)}(rWzEd1Kvx3+YVQ9^75~7;ma|g`i7*u~=BB`M%Pg(=&h+(H_=52BR(S@OUABFl zqy>kX2KnO=Z`!qk2Ptcvwf$%|q>o7hIDJhR&W900)UDLA_)3%O-sZ<8oE7>iA;!b8Q-7u#^y2`P#pc&4_>8Rx0Vq~w{f5sRVt`36Y45P!GTrEoN${9s>Y>W#W#R=VUk zB9qJtNU`m=9V6o#Avu;R9UDKpW%7os0QvQY?XqoqYTM7r^dI5u5>N*NLPD%1zcBd} zD8MY*!N^FvBN>gT@wu3z!lypy1g28uBq8Fm_KrvtTjKc zEl=49wpikF`Y4Uqb;|-)1B^%mHr=FpH5z+&J<&Y_rGLd5=`q=p%x*uk-UhBrJEVMQ zO~Jv7(4t%MMC^x3wM;3&s}o&mJ3)cQ*~iV0W#4R^co5uA*`o2qPTwivH$vQHVrqzP z?!Sbaj^$Oku2xxoz(T7B{1bt4W4u>U=o)tGtX^>rL*ppLeLHHx>Xg0RT~kv?s3}{b-A_$CvV!tvN3C@$S5mVU=K7+=uuH7EHz5mU0^2Ep1_qNS+(*44TXJAP2EXmw7WuLR zQ6`>0B>K~h;&Qkwq~e%$C4xtto;yeY7dC)oIY(@)@)j4GqpYh~jxW%;ymqkft=cFHw`IigasaLATX|^MG z91fwsM^Tvh|AlCwbPDbP)^jvhrccKOAcT+sRt_s@cFMvw)PNL}hXun?$ve+5Q!wHI z(AI%ln8QiSgeFQ@$~_>{rNTtRVRKL9iJA6?RfBibV9^NHE#*Ode87=*2u}NL<=NQZ zXc`D#%MMRP=+Ibg72y2kiSx4ka^T{N39rIC5BI;yeTSDbbqmDy^^de_%SG1-g@5aO zu5kKm;!z6$PHR(+;mB+xQvI;$wxV-Ed*Z|;aL}YADk64c#<%WFp?g$g?q=5|WfT=? z4=({r-B0bf+_Sz}b-@u#>@LzC1X+9lk{oV+)S#;2=%yw$;D|36{|*f2C=L3tkUi;n zt682Q5Kptmg|&LWg7ZA$s5$d@lII}^Az45TAd+!X7*k6ojy`N@B#>tkgUmu&-r`s| zQW*j1Nn12h>#IhkRrtXXX&r1tZ~7Tcgcu+zAN6_LCHmR5?A!yg~+d^ z<=XZVh6aRHGmLri9{Z~+JfZNmDr{@`KH&XqcWqP?VNR)CV?TW;tTkA&`f{ge(G5e0 zh@UV-iYJOMX(5h?%qFQl%`N`6H!SOgz(Tcg0!S{agIT4Pi8rE`9}mlGDxOdu(q-|u zddQ8mwFtS#hmGrbfVboD1;r;(5wkFfRSVQpl93b<_s9gSK#Sdux32$fhCiIjHdTaUch!!+=f*lzTCTe-uc>|)n z04r=lfW>CPt(89!RCDb6R0QLZ)ErB?y>YX{6{O`$ph39spa6$Ub&%X?dVnYha#+XXkWj$pDNm}T)2 zynNw<6^D9kmEDXlu(ISDXJ_5B)q1j5eIVfOG(wIL9Cu5D~|l z{l!>t^w0HN87`QyjP0i;vmhDcI8hpgz(IN35t$Dn6pOkhf(I+1i`;nYM@;BB!Z#LN zU%iwUTBa2$gn%|={*|H{Bhmf0T=rBi&2O9L+$;f3*YAItbC>s-Jc_o98anW;s>sY8 z$1P|bB44LZf6+?u{#Jt_$U(Edo8zSP)dOBAh2W{cHY zB`m1eC_&nU3Ubg}dHosA;3vEyP5GPLZ61$~iPDgYkyKH&FUZx+Qi3C}LvbF~tzZDL z+78wl*Fe#^>V*l|3d?;wPT0K(wbptms=Yzz?z&-TBEIHt)c{gm`sBAhYpbYR?$&ZW@ zt_xm$QG8A$>AIh;Q}5Bx>cll+YfW9n z+NV)*m>B2$Xd;u<+Vg0g;b2H23%&mOa|uLv;jYe%PZ#y|nEKoMK$MZM;LDE)lg|!T z9mEyejIPd0R)i`x!~Z-Ig2;h0%hjTVZ=6ig5yW+ok~U?vzfV#t_2_uRz6Aw9dTd@C z3c!QD-UbBBOp{&enkxJ5J-%8U?1}Rp9hAsoodr8NQGOWvc$E%rk1Hj7e8hOZDVN=D zOT6s)O5$KlNeecH{Q<*#hl11G)6DdXAaR4&*)KEbQ0nv8lKM|o>LcJiG zxnR*V=H&4HOtIgN3YWXhDRIBl9MzQTgz~y=WWi*6thrjy#?S|@S{gP z8$gLA5?S0$4X7W2N?1};Tn}dL{g(!%c)5UWhbm(H=irm;T$Rme0Y^vCVf4CNul2Av z4y9-7FbFtpvA)hT`rc%Y)1b0dkR^xCJvWcvkvXjzEb08@dHUI=^mM=0?j=k-tdUaZ1aMdCB#aknRl%(R*g_+ zMkP*G|Dg^rHc9>5Z89=WZeHK~P%O9L>c{l;OCT7}FQBWviz+M&#>6SbuR`@Zsi5lZ znH~OmX;g^+hjuMI^kW@Nj8DQ1cZ6C(sNd82%>Vu%>i!Ocd7D}(Xu#f@@uXE1eg(2Q zhv5P60Gp6EGY8j6$Qq%U(0R67U)b3EvPu{ofG3~v+*J8u2c{|V9RJ{H#q2BLPB%A$ zk_r&}w~6Le9O*dhJ7d}mhQ&k2Ew6=*u?TnHqAuxT5*>N2{T zcMD~n{otVZjFj+`AbFp|)7^*_&Ja7=@M<7wxf3_q!T}|rO}ZE zWPA4^#f3L{6MW~^3n@2jy^}9o^14ZUF1ql07=5y1r&GO0WmW6jQNQ~9@!KWtH_xpH zdFOSWkH=^T)INm;^pdR#Ox%N+z{&ZyKQb7nUS^xQvjgfsWkIl-wbPTL;oGFPY0Bpo zP0ucsKI(L+eRQ42rlv_L5}T(EX9>Uor+FN<{;8tPKjd9B?B9zk3ufjxCaEIGzhzeS zFcWh^R!?}#XT&I z$j0z5iME)N8|U4T{-9>^ACkNjpJJmeGNTwjBxoPi3m3i_Z%*D(zG*1Klo-7IF89Ef zc`5#2&=W**kKxR>Ta+TiD{127mn5M^26-G0s^hLZh1ys<&g$HjsyG{YHf#yBKw@B| zxx1ofU}DcMi7xjVfyD>N z2}yd8C3ywTqehl^HTpI^IK}d1ze4bkvTJ;msbPew0EQdlq_U!+GX8M>M&Eof&gfcm zq}#T1w{Vj-M}!PEOrjrBTOry&ZOHjn=^M^zu`}HZc zUsDU6YU{Wf(pH%XkJ+VMtm-Ri$I7NR&v}lq!IPup5#a~*c`B=wINVg0B+%oJ1kkY{ z;ZRVh=4E+9Pe@>oWl6{K=;K?vot8oVi`M||Pply2y04cw2O*HOhOi^i3Uv#Czp0vX z=Tn7^5os>J9L)F!nepQ}F~%~{qi6w*f5RDvQj-1mcpBLmn$#vjN&Q#=TM_!e4J*J} z^q0`hKwCD1KoU5H$38aR|I5J%ltbRn|EYsjQ;hB!V3kbrZF)3c6 zO?cgxyH}PE!@ig!U?C5LaNoeNSS#!t|6&_H$f+n+Nm#~*=Y=uxg!+IGk(8f52R1&B zk37n|14)LY%zTf`eDRk<{w76B)kYHkgI0`G#O(9IN(`d8SaR1N`(jJ}^kh&g z{sI0QR`CVh<#Q@6rS}>A%}0k?rvsuKdODdI#j?f}TEjj0wNxN6EbK#J8t%jT@e%5WkNWmfjA}cV98r;qc&op+dcn zgvj|DED3jVbbjo-X1R=Vcs1zMk3o;u6o0k|TYtpkeQyYUO-W~QS@l|Ul)~OGOcv6u z-oFa3eu~FQmd$ETY!b&zKmV{arvK9)*ec;B4=p_mmhg~9pH7!In*8WB&|N|ZFQa-w zkn_sIg67)mjiJaHSDzHlGy+cx7WWz_QPS#r?AhAvv(~J-5!d1EXPUYsyUu2@UJz|y zEaN$vl4rsFDj~7ThVBQpREgVa-SUzsL7_Y+=W%HLuO-@ufmg3|1+1!^PbN3c_10ih~hujt~NG-QM`dqC1(EXpotx^!G@+`Hv2`&$&S`CXvG^ngn51 zpi4PJ<)nAq8M43KuLem0(Ls|`KJ$pJ9_7>AI<$e!8FOk^^c-sQN39dGdPF(25#NMY z<=0|(GoV0>^sQ_3U-G?<$IOzp{9uZudN*}{pe=1M;MdjQsJwZ#?fa}y-w%e0Ir`(b4@g5STZLVj7<6aK=I>R5%K3@${*4UegYDK_UQom?f^Hx6y zd7XQ{!@E~Xda|QD`;_6!BgB{zj0B`cqjs4tKA%-AH%pHIUSur4snn-jcUXmP3I{*^ zfsa>J8rxGcD+*ZDQi6bQ#$ZHi-m%prt$CUyW$Md0Wd{3~ezU70#;$}p#QJlO>6~-# zO3{lATQ;AqE%Dq;4w=_Yu|l*-2t}AmKmM{k<)@XJ`f+TB{4n;pj4d#NX=%k5oXC{7 z>NHU<{-jOmSzPOlD{%$5#3j29JdXtgNSNXS(0gD<*L`1XAB+L4^ArzizvIz;wIG8H z1@JsbktqLOdqJ*~?5mycGmilMs$3&#Dy8~17K|GbRU=?8bNg(!h6n!8fL1}aMk;I6 zp^IiEPigc+tlIp?-JC0&Sx7t17m^U-uk|T9hc7%r6-$GG_6h$+9EkiGkz-{t2FGT8 zH`1mDA~+^lU?0eF5OVqkWXHYp63MWhNHEC5VF(s^lP2?Dkwe_Qu^$D2wG%kh+$GBI>VfcSBOWUhk1`V}CzCx!jS%ta$@1i3fKM{EV% zp!^t4QST>|hOmH9(+T9#_#`-_W{XnZ(LC5Hsq>1kM|Rv#ypqa=y@B}ni%=A4U(5zfGr zhQbz+uV*fuSlT$pVlez@O8wbZ5kW5TW9G*;Mgp_42;hD3O~?#*((LqjzAu5CTWKZM zO5ikwGx1@9HnI0DMru$l`yl7GYsrK)zP_A%g(Tc)@CvLSU}45EW)qp6x0Tjp9-LV zM+(_p_4IIF?+r`*iL{3-J#cs{7s366c6z|&I7+AhFB4kk z{NmjFGUgMBACo*{(XM@zRhPgS0St#Hb+{#qe&4JDVPy4+F|}P~G*ya$knvu<8PeD=?~lw#SAz_$8R*p*4{M=EBxGroYqfs`udmWlpYc*GNnd3)@9&< zocoFcQMGee@>^b#AA6D}y$Dv!gadqDbdJ(K&eHHzn7O&7mxK=0Ug6hK-}Q*S~#b-Tqqo$6s+GDy+Ouq_9L<+=BH6~Djl(ZU`&DwEvShP86wO^!DH(&cJR*dl>B$^dIYCN9aV_WdK(>E zp-BYZi_BkVq&{iQ(FnG=imm*IgT!;*xBME@S8bNBAxI5SHp2ma2!ePNlW!$|!BV7i z2

|4lp^wYyDUzNC$HP)D`@KL}%H9th8YNm4R?m+;0pHPbsenYI!fPL>P)0s3P|x zug@h1VtY;ld_~Q-L$F@X^f;+C_?B5kx*(^wvE^qjIH;cH2kthCFpe1rLis_V%4Zql z7w`E(Sfa$ah%917z2+Yw7k$$S=e*55miuOOCw1{_|GOpE9EO#4RXT!|P&xkXJ z|K0HieAPIR`%R*vZARSN^YtKa^lM?Edeey-|YOmVJY5`fMmQc_XT`$l+F3nF0Uh^^06+^xpYR3yM0!Fy!w z*~F8rWYu4!lYB#|(QLCu@0W^Jo_&(E)M?|tyaa=#1^35K+Kb|HQK3>6v^u0PF=M=ch}*@SuvFq>Tkn%gKY5q(Rv8`h%<{Or z3#Wq7ZyQsc=VD!oj}`2_FjnW|J>PFh%30%oU>_^(s!^rXF|#+eJLddwJXW4EH#S2D<`r(OrDfAN_0%u?2zbEUJe>>`NFRG1w_*8 ze+K^*8xpGAzv4Hv@Vr#M6QZOGxhNldS+qoMK$2S0ZtV-w(H52aG%)MwN?W;9M8sFG zj$*L4j22Rlj1nSI?zA2GbR^=`$gYfF`s``=>GHSWQTDRCd4~|691cMRJV$Y~eouH! zgCwIU3jj&HV^c5C!;bRoMmF1Msnn!6{Uu%ujg$KEeUP+txE}RYioUxPd2=p;4V@^YfPKPrYZ$bkhM`;$(Rr#NzPK zw=5b3`3dgk@k>Log&;73VAW*%_^9j-+w5apNa`1*5Di%@knmro1zgT4VS@k#Ow}{@ z8zcQ48sRQJOp)C+VOU1{E-|gsg+JkSNGG911J(B1DueY=Ait7Es z{+R-X96E)ek!}=;VdzqjkWz*eB^9J&=nh3%I)pDN-3}ojT~eZeq?DAD#52D)@ci|x z=LMW~&RX|<_PzJLuj{jWq?ne_sp>Y1|Bz$VXAs@YeY>UDa8*Cw7gte8#)|n;i;~CI(<_LeGrf{PVk_VJh`X6(WXmocdaf-W9qaQ8 z!DOZR3}yf^F!M_@$w|3wmpJYSX5|IXwV!^QV`x&B(C4sj_L{pI!%BFIuNMe+733`E zZvf4}#}?xOew&zm*P!o`t`8|fOOnq!(ifV+DyP~JHjS$T1&0c6qOzSenP8Gqn4EpO;PziBH7ACzN9>U z+@6%~{nOlqIwC)9bsx!Rxi)2zaJj5Z-5~9OBFH&(KJJf>%N!W%a}kt#*(2A_rCO?K zNr~dX(5czZPqQfAO(P_!L0D}9EQ5)~6IO~tXY1|bZ$UJ%ecH?L$491gPpdz{o3b-9 zxl=!(Qd6XE<{Yc71&|zsloB;`+b2YPyfmu8DEHN>w*B}F(2r#T{E7zy$PsyVK*{rK z>k!SwtxA$zroj^zimpdl(VOd)HWo73A$E)=wjIdrXAIG^|7O%Cyk|qNFHS=w&cJ8H zXT#e!Z*F&pO9){A199wIeH&Zwpw0b5Jwr=+j0D8C>y7$T6dcg=#upLH0E!|v!>?vS za4+mnIw8Ow>3?--pQ+68TVSF2dj+s9u`wcHdB+7}5qSx&HR3y8VWcD!<@b6h&0Efm z&_L9GdD^qEoxsBm0%}ymZ#3}+lqM@MHsP<75bXS*$CS8+2>3Pg_)31GbEjCrTS&-4 zV6aYGuwD*05M#0iq&+P#Zz)3tD}h|8yaG{DMELOZw|TrahCZyBqRYC@?1)GQzyf5g zlJjiosd(!#5uno}cajA6qy)mY#4dua^anMqaDO$Y+RH=hUqkSG6RY4S&^A7D1c39V zy1q1hip`kzalzi2=kUU`Oc;JBk@T%|p4xPfQQSj*&J+WT0bp^AX~$);4usjauo=~F zFs2011i)v!*9`0~PYKLKmZ|j$)JGFxjNfdzM*Cn=y%<}FQcENygfmSYYH=~!LbWWP zE12lZBuRMgNdQIgycb9avpu*spk zuK@!*-1N;AIrX8L+XbtITh-!;dXCv=fh};OM$ZCXS4>bRK@I=q$-bLSHut0+)RlXOYue+FaUtpp}ytR`g=|E)O@xAjfB%bVyyVH%@VQ56^^)(}jepc-d%yMM8^(EvU5s^Gp z+)DW6zv9`-z1fw>tSmLX*{f~6IU`AwVMxCuuR2LuXsKIsP`Eo;~YTPXze#JcC$HoW3_JlKWH|F+)TF}icktYK+8r& z9pL){Qyvz6l}7ztvFb$m0)(TAyQ-t=nPT)r-J4pX`LfE4_Q~$Toe=I%G>dt6=S|Mj zoO%mFmlR(OiTJD*0i-(%2RXZi=R}WAhYd4=ZQkFji;nYxxnu9uqfz<0xcNNR-ZV zLdBhBuQ+5@DH(S8G0^M7mkT2j{W`(t|I=4-FmCHU9YM&Lx6@n{mSvLzB`xQ{l*;B5 z3C*8Z(mrxKkjReZw&g?zbSn{NP{?O!sl>d4K9;=2&V|`wX1UXPaLCptjIQ7`6>#M5 z>z6eTnV9!{DM@qSXNxg@zp94srz8V1rr?E^i6auF{LjFWl$V2c_tV!FRt^kwWo2usnOXQ)yGs;bDLL zXlx&cGjRv~NF)x@o?feC%u^oH*iRht;h0O+NPI~sMLjZ?V}$MBEtReIj^;n}P%3%O ziaR*k<-tmF()n!pQ&E{vjOf4oy6~aPM_N&o_N%$)%l6z6h4C`f1H$BYhnP0cn;QcuvvuS02xppx4vt^ zrODG7s@*{WG6r@Nt33o6Aw$bgf}oC+R>5zos%CLkn}NqVAo^Igq@Tsa$NaMU-dmHwiU>NvJ(Q;Ecl=n%*ZA92!{0hC@=O zPpm%8QrS{+TrOtlTQHodTRY1I?6tu&Fw%7mAP}b?Z3n>*EhNseKM#c|=onPlpJY-b z9V!SCRNS#({Y8|1)XU9RTl?-;I}iI?X53N@h4^DV-d4~|$U|WYjH>dK)z80zwn9{; z&_!sbamU=q-mo7GNM|e24e`m*&8S3)i%IA(rICH%G0%noJXZ^HJXa9Hg%UR1LamI$ za0Ms7Fkt|c9mpvD>)PjrEh5Tei?oOT<9XOlZR#&c@d+tPcZT2pc&(2(4yp!A7@11JIk&gnBZ`P3~4svyle#QLRuw6l4a2E>r6KPNE-fE}f~$a<6=D}cG_ zQG9CzeS*p7&HLs{>yQWl!$A@~M8FY(UlMFrXv&Suwyo-DETgKa2pQ&R6Z!1K!$dK& z5H^uRTwbuSLcfP-Zoc-GW~+H%4@zwk7sw4T`6=5G&pEw%0rVPaJb5QghGV&MG6_so zi}NF>E!(*DyRi`!k1DHKL4ad>1ny6roFKLR zaqB3QBO);I#mExpn#vFD$1any0P)+vf-&|tMz0!CBptx_qt17q%qto6%;*U(t&#BM zZ!-#!DScrLhyF7urri_{)N7ohD2u)Yf4`CVM4cu!jy>b;%1wRAd%cTMddzw5D|Ae_ zS^Sar>n%yNpR%dX^Jh<%K!73vX}nU^4TzTEJ+dp4y_{nA58@^ja#yC%4&*By~3_T_nohlqws+!ps6e#q!U<}r? z{Hv~&jM)rP3SD$`-;f-N|1Oc*K=EzO;am#>dX?x3sgRsZG+=k(j3UyH#E$WdaOLRLRa5x$f3o!N#Yg zfd8|%{}^TRGctfY8@yx@rtn|!LzKt6cv(Nmega#)(f17~*}Mn91`-dkOi!;Nf6+;)=6Wm}}AHkg=Qrng%`-cBK{;PG+dF6Bn*nba+(~!O%<4pubEM#LT&B1iuOVm$AWKqap-M z*h$N^!;Y3$@}wADs6O|k@#OU_DRL?@c9RQJ#v9^!O{W0C&(|;RhCdNLcoSHW@iq?H zy7Ci~KX;`h&&zQm9S<*up=kim{T2cfe+q^uY#Xg^rKwGc+_x;fw0PQdnFA@Nb94{yjT#HCQs~Bk*e09POSGF`lXJvq*nXgs2d1R5rKqP zfkPEWFex3MQQ^Xm)6!>%^!yrL%mW5c;yh&xQA~covP2D~)rP5nc*d{~;paLqk4Z$G zy(uN43gP2a0UITR6Q%`^VIerLx^yME6G>O6)-iIZ5F3;4avdj&gT_`LQJWa!Uzsjl z;u-2(O(Z@0M|0{KAjGwU$ue*rCAi;~wnNZcgfzXcM*PlbmeBZh*ZA-=cMWtkuoq=~JR`}Ol# z?o!hr+L6jFgf({ECiC^-uacjkMwu-;%Edn&tEFi7hBIuYBBOBBEMM&S@*hNA5K);i zLs;!u&oMT}PnK;EM36B^pxpasAzp@--Td`0Q5w3zk5(vR^T(+yP*}Urvc!WUIpg!j z-&nf(ExkYbU&#iv!Zh1_`kt%T?N`ut>@(-7EEbF2V+3Kz#DA~ts^H^=^RFjmpyq%3 zB}kpO6dSQR$WKYL{emhasp;X(fCD3&a|xwtaU5E6TZpAn>abjwzOS=Vnlh8=7qtp~ zVRB=n-Y@sP{PubN^P(5gdCat?7>%1dE8L|~YMVb1?aI`J-}1$dWq1yb+U~~NIq>ci z2r5{R7hKJVRHIvVkrbswBB;Y6LRmqU!H-XfN}a}|1fe@uA7;gxolbkW#@Z!ft3w~a z7$HUrER_m8RnTDwz?O#V@Yg(R68MkSPaatAF_5#FuyXFrhbgt$SK_viSq4H8qTvn_ zJkkrLRZzRSibA6V)4*!38{)M_WztMjbXb66wZy!A3Ek^VYYL>s? znM}Rbh1cs?yySMPixM+IO~^ce2de?iMQur8!%Q*WnCf`A2_-4#Q9^ahty5vm@*SFt z27MMtQ)IktW|4%zpnp5&se_N2ql7*8`w@A*3^a>m(bb|}k==+m$@Yan2zK}-mVqQ> zj%+LeS4>N&e@-iVKxee9+J!2|?I1@SdmLcCCNiefOh9{7!EOs&PR3pRWjmr&9l(-( zNP6-7#RLD-5YORYu+D!Z$CM*R)6p(e$OHLqQ&T1>&qzq%L;V^kH-O(lJxX0qTt_ZU`n7yMZNMG` zl}>1)tLV9OKlMLxiLMwhnzZ44YR^)yQ}0qqEJX<)gbnR0lIHj)F^P#}7!^k6P8%Oi zhct-*%t?fu?KyrN7yUr~t}#_!(a-0G6vn+X)p{1~GP`VVwwYCrXyDaw5NweHm4TrZ z$>gBLsYgwM;a|8t{#0B})k(#+9;6@mlt(+}=US`RlQpr@)bb5q+b-xUk!kUHcB_g$ zu^mU+-x2;dq*`L(1h{I7L+J-n1?x&=hsx`nRpK_35&=Ze29nVk6@O$-Cx!6TX?BJ^w2cYHDbq~aw zYw`B>Eev8sATGCtud44M_YS*y1hEkjG8IXwzIqyz4DixOH^7%3aB#Oh28x3%D`!Yg zDw}=gRJtw%>xDzKo?Bk&IedBb&w1xkKmg*I?Q9rK_*-)7H2;%*##dH*W-2eNXehIu z;q-g`%mBj0Du)20t$*tMzGJ-0ok#LtN9E`C}i?4+~WGR?EQ&T-!;_l!Ij=q$8tzm6e$17n1mpS<2sYGBxETKiZzlQSk8# zr+d2!!JJ|=TTAIvfN-9k3V4WL314mY{C$RPlz$qkPb?}5xh*P{olyARp9`RyX*L2+ zu{8LOQNeo?xdZ`MuC&}M$c|wBS(VxY8BTUu)fD+MxD3b(q+Pg8-t6$=_Kulcx@XZJ zuxR)K2$dko(xo1j7$v747*ed#)Y9Z&V&=Z;V#>?ye=E1g05aRM!PtAeMXuanU|XGe zUo|(W5WRy~Y7C9d&)j5!gf`eprjo_Wv4f;{FL05pW^&&z<7rK zF@g}gMn!f{h$&2|=Iu1E;nRiax=(^46!*RmB8z9A{KIfo5d_6*hls@8WoFZJ2@MY| zV~NO3`rP-U3(YRCWk%+#r4vTOb63~w6(vbmIJ@4=KL>xg=uPz>vfMeC?ogt}cKOQY z;rD~Y0<0Aj>|Z5C|8^bo!c>+Tk`6OmZGOrCkT5hx(?In;pBJ>q7kLVhLCO;E;(Y0V z*CTsvc0eWY|1ifi0s=NfLX)wj4|uy_0No(U3&vWE`_cSWg3b1ZP*r zz$2GRh?=N?IMBW438q@60tfBV7%`a1a$l5$MR^VigkQ+`S6HWU=rx(YZ&?keJ_5SL zO;oFseoemtwU@f;Tqa^K_0IbmV5smU%S*2sHOe-Zq1V!*A*RiIxsfUK*IMxR;}1{X zWlQ+*<%~q~xC(L4^6M3Ug)12IyT$O{(M{mP0|}^rdIrM0jSf|??!!MFt={{&ikUC= z##5SN3ME<@2yq-pnZ7e=H?7o9lO zc`X3xrlHEUKhr!e!7-*A+Rc)Zmn`JdQ8?5@4YXT_C1tEDxU&M@JV+=j)BTwukqv>Z zIgIhKu)9J%x2t>T+bR~G$ANd&M-0%jYyrI69C;Gd-dt|cqEziF22|zCK4x-QjI|)f z`AUJ^?WGtN1QDEjX@Q*~DoUIhj|HW1JEF};7-Ty>^4bBu?_roPDBAx(68ts(pZ!O{|bCB}_~b?OMzMW9~)7Dn*x?76-I zgWXtOk#?P_)!XMP@B||aNR=ByW~>knqFs2(jOZ{3>tAoSls#K^s;qZ$BaJi?X7N~x zkggZ1KK6$chDu29Hh$0a2HcL!K|p@@gxPqu8`_HbKoEkX;V%I#y^b}#za#rXL1_sF zT!O~$p8g36Dl~9Xy6@HpJG;6t8|^P3W8X%xM79;M}DIW(GCs>$Fv z;~c4^ER|MN(h?_3O5Hthp7>;@!G?ZeZy}TN{`}Gye2s&oZubtdQ+)1><8VeIwE>IHNtKUMd+SY+tk&Y@)Zij3`AtST1bMr*50^DZ6}&?7YwUP zlc52kq}L%<&sV<|Kdm$VVdvaxE*o+x?W}8z3VfM5OFFbt!~J>5aWSLXV1D9==AU}+boCMxNKMS9J?7pBJzJc%Z9qQ$ z%p(ejwC$1+U_h`rUj~Gmt#q&j0ki%LBolig2p~A9?{!yGB%5yYliFjbhokyJW{)6Z z><8-u&?LSprJC{55_s_|_`C3ypk75{ioj}{C^q>7)SPXO{8>GUE|`CKcX#|^FNuz~ zjS9+ojQ^p(*wH59tqD$OC`)qoG*fp>4Rw~%a;2!&3@Q2%w8L88kj9C`D7>9MDRO^! z6BGf3Q`!s4R#E8H26OuDee2a(L!b^MmYgeGja;}F02&(WJqSTz-pGaU!O1**(K*66 zONZuZIoaKBJEC`2)wooziJX~gC;+q7RMtsIo;nD7xXF!F8zg$OQj`$GQJa(OELc<9 zf^8rMJ8(&}cK2>5Q$PHCZavlbs@&!AW4(u~Hct1>f8<9lEKv~#?-9nvBRTUz^voS= z&&Qu5x$w@aJ}qwMhLdJ)hxPS3d#Q%)RBY8+Qe#OU)=|pptmKUaO@jgr=S8hm1@?$j z05$1@7tSQ2zHlz1MF?dnBPpLRLUf!gxS|a5Wgr_q4wmF7;0l{@T@FDlFXv3?r2dO4 z;mJ}-9bjtQaxY6EihnqJP9Qb|j#J7@=^Kv}#(8kjVO~`=I9EKtcdSFOHHRqILc7aS zr~CYAYqrYd%^wZze4L{`4@dM8sv^gmoo1SiWabeMxa#NgbK&nM@1y(WNGlygk2X)jW2!e@J)mx0hh`cjOR;9we^H6^sE_on=i^rOegg|#_x9LhA zHjMpp_fdm>kD4EzK0`Scc2N2PaTr!i#14I!0=0kGPZ={Q?dWJ-4`cJ#YdQ9H` zYbaq}=D(v^QK1uMo0*BwWT;emg2k$pEcZ)qH@_+-tiF)`sWNMsg3E8we9k`HjHab{ zu_~w+G2ZV&&GaKp-TZDnmVKXT*h-#;k2mmizGNE>B5?tC!{q6PLI~JSUaHK2#4lM) zK#xU_iz~%Gj?_Od$@?hryh}X@1F|=?S1b@Bl^fZRpzBp-y23vBIcCUb64)yRgg(FW z;H*%Osjhfj=kT)rBTHhbWEh@M-jBbyAiN_t7hypaAPmLUR-x)AxADk3ru?A?=MQca z9QF%F74QO8`#VA1w>I&@Pl!bu2<~Dj-62InFI@1vU-6G4{F`HCz~3S!mrX%b2C@0#+6Lw;lz02+5-yuX%b1wl8MA8HhkdWsMe6c+nG`MPO(|Bn zX_D&1z1(vHGG!@A4&0)BGjEsN0pzy)lgAp5ry1wYqN?qLQ4LES#WRb0jraTw5LcEV zCMK*!qcsYm-zh!!<%JnGWNBTA?vKcpIjAI4+hF}D4yZy!SL|hLB#Yu7pM|T_jg#8@ z8e$DC^{|HC^(liERz>$SA}UHkK*F@XEMcP~Rvd42LEX1_yU%?zHagl=6I1b6q{G{A zx{h6RD)eRDgON<4J0WOH!i=R--B^YVln$DGLVpN;Y*sJItC-kAUYK}J0%m=AJdwT; zIVFS2Bfb4O7+tvC-Mq!;SoiE%+xQ)ijph<0jd{57AC?rYY23oMd@-;||l66qMpjLP@-ZG)5rg1!cbL3y1x^r&6a~ZXSuuICL_$CQkoD!=;pN zMNMtXRh^ik${znlb%uaY=Ws+UCGtzKbZ)AoLa@w_)$ML2Rqo!W?7Pkv?Juh(GJp2U z7t9kgzWXchk=RkjYr%CR;)Ht_-3j}`mFEX zeMAzVmrw!D01tcVc!gljHyz&iE@erlxhAkVak1dVbIsLXL^ycf%%z_sWDc2359MX& zzNKaP`XzrnT5#w;R&i)iKN!dy=BdXK>@IzNfz}S6_sv%d9dRh1$hpkU--D-8Mf0Ni z`@(Ww-v6sD;+*-$ZQ+Hk{B=|-n|}>u*uj)Ug-6Ia>|cgW*5;t@>l%igZbY^9wkmbC$pP4u^5>*GGksLqp=Thr(uB&x?Xhs0r-PV zX02Y|bc(_S5ZZmf!)n;eH*HLLD#7;0x3?E#C7IOx05#yT9}yW(AV!efF!_F_f-Hr# z^Hn`t!1VA6D}52XtF82l7hD}P`hn-NV%Tq=|Nbr6Mn|3ih_dhTb}Z91(3!^Vau<+&zEjlr9z%vj!7W(>{kL}he5C5S z3H=rs1P8^i$f=5-+|N6NA_sU_M6jXcLu!43@#b&5n#WlGZA^Hqy^~~9PfryDMMAJV z>i-Cyb$*l77>CPJjRo&NPz6pUo#fy(-#9fKtOAdIfC6f1M-tBe<}1gWkup;yaq%a1 z6FF(svR=ivsDpKDHG#-)j0oz9H@0Gw6vQ*GZ{s2p;?yd3HswD+hGN~#uY)K&MV6)w zgx|yEjcH5Cz_+b#|2>??kR5$%58AbM73L6>5SEL?f z4H9^W21G7rFO{w>=MSUZe*Hs~$s8-}Z|z*4D>?6$7)-)S@fJ6m$BHZcP-Qe4_l+D* zHXD`~_S%}-1tjWpzccomAQ6tzV?d=@h~{>=8`t0D3*{%VJ4Beuu%8xweN7>4UPD>fe|XMqbQ43RabMzd6k%6e;B~F^lJt9JF#Y7~a8P9?K&+UXMf4+GPf7SdRz zoTk!q8PW&ZcXO#`wXld;Gn|B&)-h+I$@*PC?%`(u7kUCQ&v#0?X=!^8w|a{mM+2fWN(S00Io2W zr4Nq%=zJ$eD#}IhJ~xjvU0e!v;Rv?{5y|rNzr@oLD(WtKXx=~h@0R(6O&Fs1VVJPH z!5&DRaALI^SaW40Huq-He8A3iTa(^#L~?cBSI6n@e{(S?AYN@4a0G^ejlV&O=Eo&* zD1?~71TNjj=^#O_v`wb-%JjL^3orkNPeY40#&=1#k`7E2+uK2R*4xjd-IjI=ue`U4 zsC9gxtlB*VTdyTVgO!owL-6A}K(=8 zUyV<{nb0%2VOxl<{G%N=y9C_ zPI5;*_K}AhA&d2711Dvr6%0JT`kNkjrzJmWqRCR2I$DLUpU(GJ#d?GFU!8-y#5tOD zag?7~yhw&%!5^!@?CQ$sYVypsD^$5>wDhBLJRrjqgtn0+WAT*aH}i1Q*Ag8g6=tiU zEdEdMDXs6?n`Qm(v@y+*hS?xj0*|$szotdshh5Wft96C*hZDNxQ)7QxcZTEoH@R7r z0)UR=Wrna(MY=eWA3@_=0l~)EK;CI3U=31nbsm0S|8j=Alq{TWWPm^Wjfd^aDy$Oy z_Tne$(izTurTq`ha7w2EftfMa6Nk1)=&$kJjG&!xx#Q$jtOb6e)JtwUKmu`0qZ{Gb zljst)IqG$WjUV0U@9%mb*)e8hgFl#fox}e;Y~!zgpzpN}MR*K(55!UEs^B$=N-7U3 z@!*)5$5{jk63@+Oa(&{ieK+e9C?yWaw0W1KT_vwO(5)ZpP ztS7ErwzFDnJ@CeTD$}$`9zbi4;GtH0Uv;3Jaxd;fJDpI3+1@2#9_y;~rUX#gm#L}A ziWExWS8o<4WHL@({Cx%xA+g-ZAi7(+ZZfoz!QfZkTqhUMh4WBDB$WxzP?)FDx=?wy zWA>}}*-Ly4=lc)#9YAe*BlcI&NAjw3Lf(Ybdn=J6Y3eA=6m+Zg&)O<2l$?WxuuRv6Wh{(@zS&hCWXJZ%_WepBndnnMwEmWoq63-rwqT9VAycHMS - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + diff --git a/static/img/neoforged.png b/static/img/neoforged.png index dd7e408fcdf67fd79a0796b050cc7aa6d56fd66c..55848a69dfab001562da00828f41574339f6910f 100644 GIT binary patch literal 1123 zcmeAS@N?(olHy`uVBq!ia0vp^4Is?H1|$#LC7xzrU=i?iaSW-L^JcES$CN^e3<0}fkT0hsRLrzJF^SY&)I(cI=d$AZkF-tHEUvWa_bAfKf1Z#HQ)UGDQU*W#%bRk zoO-(8xOKrU>leE;Hp$!1p80)N^#ycG?-+hKyZUz8$D~GK2-l#p#C!Fq(uzFRAMYF+9yUetiCwpdAE)Kooc3yh@t$tba&D?jtReXIH z)Bbyg+SBajtey3bcg=Lom2f`pk{|rSksaz^B(L8&&$uV@{^97K?`F&{TK`sl`(}P; zVaMm!uKg*HzieZiJ^$s^M{AcYo>#ANZ&k&czcXfH1l}FP4FX$2eP`Xwxi4v)oi)dJ zv*^jL1yPe`MjD^C*t#Y3X8N+tr<<}mn@SB>8c~8%=ck0k)|uYdZaj`L6bzsHdE=Zc zXLKiart;|Qy_uO7_&C@(>%y63mlvmf`+Du5YuI=7`*V8dA3wGD`$zpW+U$vnByQg?WI$BiGU_BZ!S`>0%- z;d$jn>cd<;P@D;D<&`bV%ijIRg#8J!X_yn-Im(jY!O$C zZlYhOc-43QrvL5p=1uu&cNs0|Go->ickVo}RQUg2nCrH|IoBl$9a4C2)i1Kvxb6Mw<&;$S!O7GzS literal 34102 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 Date: Mon, 25 Sep 2023 23:17:45 +0200 Subject: [PATCH 2/4] Update Minecraft Wiki links to new domain after fork (#12) --- docs/concepts/internationalization.md | 2 +- docs/datagen/client/localization.md | 2 +- docs/datagen/client/modelproviders.md | 2 +- docs/datagen/index.md | 4 ++-- docs/gameeffects/sounds.md | 2 +- docs/misc/components.md | 2 +- docs/misc/keymappings.md | 2 +- docs/rendering/modelextensions/transforms.md | 2 +- docs/resources/client/index.md | 4 ++-- docs/resources/client/models/index.md | 8 ++++---- docs/resources/client/models/itemproperties.md | 2 +- docs/resources/client/models/tinting.md | 2 +- docs/resources/server/advancements.md | 8 ++++---- docs/resources/server/index.md | 4 ++-- docs/resources/server/loottables.md | 4 ++-- docs/resources/server/recipes/custom.md | 2 +- docs/resources/server/recipes/index.md | 4 ++-- docs/resources/server/recipes/ingredients.md | 2 +- docs/resources/server/tags.md | 8 ++++---- 19 files changed, 33 insertions(+), 33 deletions(-) diff --git a/docs/concepts/internationalization.md b/docs/concepts/internationalization.md index 288840717..69d127283 100644 --- a/docs/concepts/internationalization.md +++ b/docs/concepts/internationalization.md @@ -65,7 +65,7 @@ Read [components] for more details. - `createComponentTranslation(CommandSource, String, Object...)` is useful for sending messages between clients and the server. If the receiver is a vanilla client, the method will eagerly localize and format the provided translation key in sender's locale, or American English if no locale is loaded; the modded server may allow vanilla clients to join, and they will lack localization data required to localize the message itself. Otherwise, the method will create the component with `TranslatableContents`. -[langs]: https://minecraft.fandom.com/wiki/Language#Languages +[langs]: https://minecraft.wiki/w/Language#Languages [converter]: https://tterrag.com/lang2json/ [formatting]: ../misc/components.md#text-formatting [components]: ../misc/components.md diff --git a/docs/datagen/client/localization.md b/docs/datagen/client/localization.md index c13486992..c497b3387 100644 --- a/docs/datagen/client/localization.md +++ b/docs/datagen/client/localization.md @@ -37,5 +37,5 @@ this.addItem("example.diacritic", "Example with a díacritic"); ::: [lang]: ../../concepts/internationalization.md -[locale]: https://minecraft.fandom.com/wiki/Language#Languages +[locale]: https://minecraft.wiki/w/Language#Languages [datagen]: ../index.md#data-providers diff --git a/docs/datagen/client/modelproviders.md b/docs/datagen/client/modelproviders.md index 614fb1ef4..5075164c7 100644 --- a/docs/datagen/client/modelproviders.md +++ b/docs/datagen/client/modelproviders.md @@ -419,7 +419,7 @@ public CompletableFuture run(CachedOutput cache) { [color]: ../../resources/client/models/tinting.md#blockcoloritemcolor [overrides]: ../../resources/client/models/itemproperties.md [blockstateprovider]: #block-state-provider -[blockstate]: https://minecraft.fandom.com/wiki/Tutorials/Models#Block_states +[blockstate]: https://minecraft.wiki/w/Tutorials/Models#Block_states [blockmodels]: #blockmodelprovider [itemmodels]: #itemmodelprovider [properties]: ../../blocks/states.md#implementing-block-states diff --git a/docs/datagen/index.md b/docs/datagen/index.md index 5bf0547f2..eaf6e05ba 100644 --- a/docs/datagen/index.md +++ b/docs/datagen/index.md @@ -65,9 +65,9 @@ The `GatherDataEvent` is fired on the mod event bus when the data generator is b * [`advancements.AdvancementProvider`][advgen] - for [advancements]; pass in `AdvancementSubProvider`s to the constructor [langgen]: ./client/localization.md -[lang]: https://minecraft.fandom.com/wiki/Language +[lang]: https://minecraft.wiki/w/Language [soundgen]: ./client/sounds.md -[sounds]: https://minecraft.fandom.com/wiki/Sounds.json +[sounds]: https://minecraft.wiki/w/Sounds.json [modelgen]: ./client/modelproviders.md [models]: ../resources/client/models/index.md [itemmodelgen]: ./client/modelproviders.md#itemmodelprovider diff --git a/docs/gameeffects/sounds.md b/docs/gameeffects/sounds.md index 1f28503b9..070f108b9 100644 --- a/docs/gameeffects/sounds.md +++ b/docs/gameeffects/sounds.md @@ -105,7 +105,7 @@ Note that each takes a `SoundEvent`, the ones registered above. Additionally, th - **Usage**: Just like the ones in `Level`, these two overrides in the player classes seem to be for code that runs together on both sides. The client handles playing the sound to the user, while the server handles everyone else hearing it without re-playing to the original user. [loc]: ../concepts/resources.md#resourcelocation -[wiki]: https://minecraft.fandom.com/wiki/Sounds.json +[wiki]: https://minecraft.wiki/w/Sounds.json [datagen]: ../datagen/client/sounds.md [registration]: ../concepts/registries.md#methods-for-registering [sides]: ../concepts/sides.md diff --git a/docs/misc/components.md b/docs/misc/components.md index 921f2d75e..556a41579 100644 --- a/docs/misc/components.md +++ b/docs/misc/components.md @@ -102,7 +102,7 @@ Text formatting is the process of inserting data as text into predefined larger Any `Component` element within `args` will be transformed into a formatted text string. [internalization]: ../concepts/internationalization.md -[selectors]: https://minecraft.fandom.com/wiki/Target_selectors +[selectors]: https://minecraft.wiki/w/Target_selectors [red_hello]: /img/component_red_hello.png [style_annotated]: /img/component_style_annotated.png [formatting]: #text-formatting diff --git a/docs/misc/keymappings.md b/docs/misc/keymappings.md index b95863e7b..5d72a8cfe 100644 --- a/docs/misc/keymappings.md +++ b/docs/misc/keymappings.md @@ -151,7 +151,7 @@ If you do not own the screen which you are trying to check a **mouse** for, you ::: [modbus]: ../concepts/events.md#mod-event-bus -[controls]: https://minecraft.fandom.com/wiki/Options#Controls +[controls]: https://minecraft.wiki/w/Options#Controls [tk]: ../concepts/internationalization.md#translatablecontents [keyinput]: https://www.glfw.org/docs/3.3/input_guide.html#input_key [forgebus]: ../concepts/events.md#creating-an-event-handler diff --git a/docs/rendering/modelextensions/transforms.md b/docs/rendering/modelextensions/transforms.md index c60916dc1..100ee4670 100644 --- a/docs/rendering/modelextensions/transforms.md +++ b/docs/rendering/modelextensions/transforms.md @@ -72,5 +72,5 @@ If the respective rotation is not specified, it will default to no rotation. The scale must be specified as an array of 3 floating point values representing a three-dimensional vector: `[ x, y, z ]` and defaults to (1, 1, 1) if not present. -[blockstate]: https://minecraft.fandom.com/wiki/Tutorials/Models#Block_states +[blockstate]: https://minecraft.wiki/w/Tutorials/Models#Block_states [displaytransform]: ../modelloaders/transform.md \ No newline at end of file diff --git a/docs/resources/client/index.md b/docs/resources/client/index.md index a0afbe318..f8ea1ed7c 100644 --- a/docs/resources/client/index.md +++ b/docs/resources/client/index.md @@ -10,6 +10,6 @@ You can then follow the steps found [at the Minecraft Wiki][createrespack] to cr Additional reading: [Resource Locations][resourcelocation] -[respack]: https://minecraft.fandom.com/wiki/Resource_Pack -[createrespack]: https://minecraft.fandom.com/wiki/Tutorials/Creating_a_resource_pack +[respack]: https://minecraft.wiki/w/Resource_Pack +[createrespack]: https://minecraft.wiki/w/Tutorials/Creating_a_resource_pack [resourcelocation]: ../../concepts/resources.md#ResourceLocation diff --git a/docs/resources/client/models/index.md b/docs/resources/client/models/index.md index 510bec1fd..a999c5622 100644 --- a/docs/resources/client/models/index.md +++ b/docs/resources/client/models/index.md @@ -16,10 +16,10 @@ JSON models only support cuboid elements; there is no way to express a triangula Textures, like models, are contained within resource packs and are referred to with `ResourceLocation`s. In Minecraft, the [UV coordinates][uv] (0,0) are taken to mean the **top-left** corner. UVs are *always* from 0 to 16. If a texture is larger or smaller, the coordinates are scaled to fit. A texture should also be square, and the side length of a texture should be a power of two, as doing otherwise breaks mipmapping (e.g. 1x1, 2x2, 8x8, 16x16, and 128x128 are good. 5x5 and 30x30 are not recommended because they are not powers of 2. 5x10 and 4x8 are completely broken as they are not square.). Textures should only ever be not a square if it is [animated][animated]. -[models]: https://minecraft.fandom.com/wiki/Tutorials/Models#File_path +[models]: https://minecraft.wiki/w/Tutorials/Models#File_path [resloc]: ../../../concepts/resources.md#resourcelocation -[statemodel]: https://minecraft.fandom.com/wiki/Tutorials/Models#Block_states -[itemmodels]: https://minecraft.fandom.com/wiki/Tutorials/Models#Item_models +[statemodel]: https://minecraft.wiki/w/Tutorials/Models#Block_states +[itemmodels]: https://minecraft.wiki/w/Tutorials/Models#Item_models [state]: ../../../blocks/states.md [uv]: https://en.wikipedia.org/wiki/UV_mapping -[animated]: https://minecraft.fandom.com/wiki/Resource_Pack?so=search#Animation +[animated]: https://minecraft.wiki/w/Resource_Pack?so=search#Animation diff --git a/docs/resources/client/models/itemproperties.md b/docs/resources/client/models/itemproperties.md index 998f162dd..bf0a43ca5 100644 --- a/docs/resources/client/models/itemproperties.md +++ b/docs/resources/client/models/itemproperties.md @@ -62,4 +62,4 @@ private void setup(final FMLClientSetupEvent event) } ``` -[format]: https://minecraft.fandom.com/wiki/Tutorials/Models#Item_models +[format]: https://minecraft.wiki/w/Tutorials/Models#Item_models diff --git a/docs/resources/client/models/tinting.md b/docs/resources/client/models/tinting.md index d0604a930..d5347239c 100644 --- a/docs/resources/client/models/tinting.md +++ b/docs/resources/client/models/tinting.md @@ -29,4 +29,4 @@ public void registerItemColors(RegisterColorHandlersEvent.Item event){ } ``` -[wiki]: https://minecraft.fandom.com/wiki/Tutorials/Models#Block_models +[wiki]: https://minecraft.wiki/w/Tutorials/Models#Block_models diff --git a/docs/resources/server/advancements.md b/docs/resources/server/advancements.md index 2e50757c8..79d412d35 100644 --- a/docs/resources/server/advancements.md +++ b/docs/resources/server/advancements.md @@ -160,8 +160,8 @@ When an advancement is completed, rewards may be given out. These can be a combi } ``` -[datapack]: https://minecraft.fandom.com/wiki/Data_pack -[wiki]: https://minecraft.fandom.com/wiki/Advancement/JSON_format +[datapack]: https://minecraft.wiki/w/Data_pack +[wiki]: https://minecraft.wiki/w/Advancement/JSON_format [conditional]: ./conditional.md#implementations -[function]: https://minecraft.fandom.com/wiki/Function_(Java_Edition) -[triggers]: https://minecraft.fandom.com/wiki/Advancement/JSON_format#List_of_triggers +[function]: https://minecraft.wiki/w/Function_(Java_Edition) +[triggers]: https://minecraft.wiki/w/Advancement/JSON_format#List_of_triggers diff --git a/docs/resources/server/index.md b/docs/resources/server/index.md index 042076c70..bc5b93139 100644 --- a/docs/resources/server/index.md +++ b/docs/resources/server/index.md @@ -9,6 +9,6 @@ You can then follow the steps found [here][createdatapack] to create any datapac Additional reading: [Resource Locations][resourcelocation] -[datapack]: https://minecraft.fandom.com/wiki/Data_pack -[createdatapack]: https://minecraft.fandom.com/wiki/Tutorials/Creating_a_data_pack +[datapack]: https://minecraft.wiki/w/Data_pack +[createdatapack]: https://minecraft.wiki/w/Tutorials/Creating_a_data_pack [resourcelocation]: ../../concepts/resources.md#ResourceLocation diff --git a/docs/resources/server/loottables.md b/docs/resources/server/loottables.md index 83878378c..52d7eed62 100644 --- a/docs/resources/server/loottables.md +++ b/docs/resources/server/loottables.md @@ -105,7 +105,7 @@ Forge adds an additional `LootItemCondition` which checks whether the given `Loo } ``` -[datapack]: https://minecraft.fandom.com/wiki/Data_pack -[wiki]: https://minecraft.fandom.com/wiki/Loot_table +[datapack]: https://minecraft.wiki/w/Data_pack +[wiki]: https://minecraft.wiki/w/Loot_table [event]: ../../concepts/events.md#creating-an-event-handler [glm]: ./glm.md diff --git a/docs/resources/server/recipes/custom.md b/docs/resources/server/recipes/custom.md index c6b409fad..1c77d2109 100644 --- a/docs/resources/server/recipes/custom.md +++ b/docs/resources/server/recipes/custom.md @@ -127,6 +127,6 @@ Data Generation All custom recipes, regardless of input or output data, can be created into a `FinishedRecipe` for [data generation][datagen] using the `RecipeProvider`. [forge]: ../../../concepts/registries.md#methods-for-registering -[json]: https://minecraft.fandom.com/wiki/Recipe#JSON_format +[json]: https://minecraft.wiki/w/Recipe#JSON_format [manager]: ./index.md#recipe-manager [datagen]: ../../../datagen/server/recipes.md#custom-recipe-serializers diff --git a/docs/resources/server/recipes/index.md b/docs/resources/server/recipes/index.md index 7bb8cf838..d41b60501 100644 --- a/docs/resources/server/recipes/index.md +++ b/docs/resources/server/recipes/index.md @@ -96,8 +96,8 @@ Larger crafting grids in recipes can be [data generated][datagen]. A few additional [ingredient types][ingredients] are added to allow recipes to have inputs which check tag data or combine multiple ingredients into a single input checker. -[datapack]: https://minecraft.fandom.com/wiki/Data_pack -[wiki]: https://minecraft.fandom.com/wiki/Recipe +[datapack]: https://minecraft.wiki/w/Data_pack +[wiki]: https://minecraft.wiki/w/Recipe [advancement]: ../advancements.md [datagen]: ../../../datagen/server/recipes.md [cap]: ../../../datastorage/capabilities.md diff --git a/docs/resources/server/recipes/ingredients.md b/docs/resources/server/recipes/ingredients.md index 94722bc43..7d5d3629d 100644 --- a/docs/resources/server/recipes/ingredients.md +++ b/docs/resources/server/recipes/ingredients.md @@ -170,7 +170,7 @@ public IIngredientSerializer getSerializer() { If using `FMLCommonSetupEvent` to register an ingredient serializer, it must be enqueued to the synchronous work queue via `FMLCommonSetupEvent#enqueueWork` as `CraftingHelper#register` is not thread-safe. ::: -[recipes]: https://minecraft.fandom.com/wiki/Recipe#List_of_recipe_types +[recipes]: https://minecraft.wiki/w/Recipe#List_of_recipe_types [nbt]: #strictnbtingredient [serializer]: #iingredientserializer [compound]: #compoundingredient diff --git a/docs/resources/server/tags.md b/docs/resources/server/tags.md index f161460b1..4a5883d9a 100644 --- a/docs/resources/server/tags.md +++ b/docs/resources/server/tags.md @@ -114,8 +114,8 @@ Using Tags in Recipes and Advancements Tags are directly supported by Vanilla. See the respective Vanilla wiki pages for [recipes] and [advancements] for usage details. [datapack]: ./index.md -[tags]: https://minecraft.fandom.com/wiki/Tag#JSON_format -[taglist]: https://minecraft.fandom.com/wiki/Tag#List_of_tags +[tags]: https://minecraft.wiki/w/Tag#JSON_format +[taglist]: https://minecraft.wiki/w/Tag#List_of_tags [forgetags]: https://github.com/MinecraftForge/MinecraftForge/tree/1.19.x/src/generated/resources/data/forge/tags -[recipes]: https://minecraft.fandom.com/wiki/Recipe#JSON_format -[advancements]: https://minecraft.fandom.com/wiki/Advancement +[recipes]: https://minecraft.wiki/w/Recipe#JSON_format +[advancements]: https://minecraft.wiki/w/Advancement From 5305e7eac37ad9c1e041d6746ab458db13a44d35 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=ED=95=9C=ED=98=84=EB=B9=88?= <41675181+tmvkrpxl0@users.noreply.github.com> Date: Thu, 5 Oct 2023 05:58:37 +0900 Subject: [PATCH 3/4] Fix markdown link in components.md (#17) --- docs/misc/components.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/misc/components.md b/docs/misc/components.md index 556a41579..296ea9db9 100644 --- a/docs/misc/components.md +++ b/docs/misc/components.md @@ -14,7 +14,7 @@ A `Component` is a holder for text which can be formatted and chained with other | `score` | it creates a component for representing the `objective`'s score of an entity specified by the [entity selector][selectors] `name`. | | `selector` | it creates a component for displaying the list of names of entities selected by the [entity selector][selectors] `pattern`. | -A component's text contents are represented by `ComponentContents`. Notably, the subtype `TranslatableContents` not only supports [localization][internalization] but also [text formatting][formatting]. +A component's text contents are represented by `ComponentContents`. Notably, the subtype `TranslatableContents` not only supports [localization][internationalization] but also [text formatting][formatting]. Applying Style -------------- @@ -101,10 +101,10 @@ Text formatting is the process of inserting data as text into predefined larger Any `Component` element within `args` will be transformed into a formatted text string. -[internalization]: ../concepts/internationalization.md +[internationalization]: ../concepts/internationalization.md [selectors]: https://minecraft.wiki/w/Target_selectors [red_hello]: /img/component_red_hello.png [style_annotated]: /img/component_style_annotated.png [formatting]: #text-formatting [tree]: /img/component_graph.png -[keymapping]: ./keymappings.md \ No newline at end of file +[keymapping]: ./keymappings.md From 13d5ad41967fedc7486d44da3da2c1fa8f239cfb Mon Sep 17 00:00:00 2001 From: ChampionAsh5357 Date: Wed, 11 Oct 2023 16:13:52 -0400 Subject: [PATCH 4/4] Contributing Guidelines for the Documentation Repository (#14) Co-authored-by: sciwhiz12 Co-authored-by: Dennis C --- .node-version | 1 + README.md | 2 +- docusaurus.config.js | 9 ++ src/pages/contributing.md | 43 ------ src/pages/contributing.mdx | 295 +++++++++++++++++++++++++++++++++++++ 5 files changed, 306 insertions(+), 44 deletions(-) create mode 100644 .node-version delete mode 100644 src/pages/contributing.md create mode 100644 src/pages/contributing.mdx diff --git a/.node-version b/.node-version new file mode 100644 index 000000000..02c8b485e --- /dev/null +++ b/.node-version @@ -0,0 +1 @@ +18.18.0 diff --git a/README.md b/README.md index bac7904c0..07c79632a 100644 --- a/README.md +++ b/README.md @@ -6,7 +6,7 @@ The documentation is built using [Docusaurus 2](https://docusaurus.io) ## Contributing -*Contribution guidelines are currently pending.* +You can read the [contribution guidelines on the docs](https://docs.neoforged.net/contributing/). If you wish to contribute to the documentation, fork and clone this repository. diff --git a/docusaurus.config.js b/docusaurus.config.js index f9029dc1d..c6ce7b6df 100644 --- a/docusaurus.config.js +++ b/docusaurus.config.js @@ -118,6 +118,11 @@ const config = { position: "right", docsPluginId: "neogradle", }, + { + to: "/contributing", + label: "Contributing", + position: "right", + }, { href: "https://github.com/neoforged/documentation", label: "GitHub", @@ -139,6 +144,10 @@ const config = { to: "/neogradle/docs/", label: "NeoGradle Documentation", }, + { + to: "/contributing", + label: "Contributing to the Documentation" + } ], }, { diff --git a/src/pages/contributing.md b/src/pages/contributing.md deleted file mode 100644 index 4f8c0e48d..000000000 --- a/src/pages/contributing.md +++ /dev/null @@ -1,43 +0,0 @@ -Contributing to the Documentation -================================== - -Contribution guidelines are currently being written. You may contribute at a later date. - diff --git a/src/pages/contributing.mdx b/src/pages/contributing.mdx new file mode 100644 index 000000000..e2e223d24 --- /dev/null +++ b/src/pages/contributing.mdx @@ -0,0 +1,295 @@ +# Contributing to the Documentation + +This is a non-exhaustive guideline for making contributions to the [NeoForged Documentation][docs] repository. Contributions can be made by forking and cloning the repository and then added via a pull request, or PR, on the [GitHub][docs]. + +You can run the website locally using [npm]. It is recommended to use a Node Version Manager like [nvm] (Mac, Linux) or [nvs] (Windows) to setup and install npm and Node. From there, you can run the following commands: + +```bash +nvm use # or nvs use on Windows +npm install +npm run start +``` + +## Principles + +This documentation is a guide to help a modder understand and implement a given concept from Minecraft or NeoForged. + +This documentation is **not** meant as a tutorial, allowing a modder to copy-paste the examples. If you are looking for a tutorial, there are plenty of videos and pages, which are not linked here, that you can use and follow along with. + +This documentation is also **not** meant as documentation for a class. Providing a description of an element is unavoidable when writing a guide; however, if you would like to document a class, you should contribute to [Parchment for Minecraft][parchment] or [NeoForge for NeoForged][neo]. + +Finally, this documentation is **not** meant to explain Java concepts. This documentation is intended for people who already have a solid basis in Java. If a Java concept needs to be explained to better understand the concept (such as JVM Descriptors for Access Transformers), a link should be provided to the original resource. Otherwise, if you are unfamiliar with Java, there are plenty of online resources to learn from: + +* [JetBrains Academy][jetbrains] +* [Codeacademy][codeacademy] +* [University of Helsinki][helsinki] +* [Oracle][oracle] +* [Introduction to Programming using Java by David J. Eck][eck] + +## Concepts + +Each page should guide a modder on a particular concept. If the concept is too large in scope, the concept should be split into separate sub-concepts, each within its own page. For example, if you are writing a cookbook, there can be a page for each recipe, rather than a single page containing all the recipes. + +When describing a concept, you should first introduce what the concept is, where it is used in Minecraft, why it should be used, and how to use it. Each section within a concept should have a header. A section can also be broken into sub-sections if necessary. For example, each recipe within a cookbook can have a sub-section for ingredients and the recipe itself. + +If you need to refer to other concepts, the relevant page should be linked along with a summary and/or some example to understand the application. + +## Examples + +Code examples should generally be pseudocode-like objects meant to enhance the understanding of a modder. For this documentation, pseudocode-like refers to code blocks written in the structure and syntax of the desired language with comments used as placeholders for specific logic that the modder may choose to implement themselves. The code blocks do not necessarily need to be compilable, but each line should have valid syntax and structure of the desired language. + +When implementing a method, it is usually specific to the desired goal a modder is trying to achieve. As a guide, this documentation aims to be somewhat agnostic to a modder's specific goal, instead covering the general use case. + +Let's say we are using a method called `#applyDiscount` to take some value off the current price. Not everyone will implement the same logic within the method. So, the pseudocode can leave a comment mentioning what to do instead: + +```java +// In some class + +public float applyDiscount(float price) { + float newPrice = price; + // Apply discount to newPrice + // ... + return newPrice; +} +``` + +:::tip +If the pseudocode is not explanatory enough to understand the concept, then a full code example can be used instead. A full code example should supply dummy values and explain what they represent. +::: + +## Minor and Patch Changes + +If a change occurs between a minor or patch versions of NeoForge, then relevant changes in the documentation should be split into separate sections or put into tabs. This maintains the accuracy of the information depending on the version the modder is currently developing for. + +Tabs must be in an `.mdx` file, not an `.md` file, for proper IDE support. + +````md +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + + + + + + + +```java +public void latestMethod() { + // ... +} +``` + + + + + + +```java +public void previousMethod() { + // ... +} +``` + + + + + +```java +public void firstMethod() { + // ... +} +``` + + + +```` + +Output: + +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + + + + + +```java +public void latestMethod() { + // ... +} +``` + + + + + +```java +public void previousMethod() { + // ... +} +``` + + + + + +```java +public void firstMethod() { + // ... +} +``` + + + + +## Style Guide + +This documentation uses [Docusaurus][docusaurus], which internally uses [MDX][mdx], to generate the pages. You can find more detailed information about available features on their pages. This style guide will be more focused towards common features and formatting we use in the Markdown files. + +### Front Matter + +Front matter defines metadata fields which can affect how the page is rendered. This is denoted using `---`, similar to a code block. The only front matter that should usually be defined is `sidebar_position`, which determines where the page should be rendered on the sidebar. + +There are other metadata fields like `title` and `description`, but those are typically parsed from the page itself. + +```md + +--- +sidebar_position: 2 +--- +``` + +#### Categories + +Categories are folders within the documentation. They inherit titles and positional data from `index.md`. If an `index.md` is not within a subfolder, a `_category_.json` file should be created, specifying the `label` representing the name of the section, and `position` representing where on the sidebar it should go. + +```js +{ + // Name of the category to display + "label": "Example Title", + + // This will be rendered as the third element on the sidebar at the current level. + "position": 3 +} +``` + +### Titles + +Titles are defined using up to six hashtags (`#`) to define each section. Titles should capitalize everything but unimportant words. + +```md + +# Guide For Contributing to This Documentation + +### Building and Testing Your Mod +``` + +### Diction + +Spelling, grammar, and syntax should follow those in American English. Avoid using contractions in sentences; use two separate words ('is not' instead of 'isn't'). Additionally, avoid using pronouns (e.g. I, me, you) when possible, unless you need to directly refer to the reader. Demonstratives (e.g. this, that, its) should be used sparingly to avoid confusing the reader. Prefer using the actual object or noun being referred to. + +### Paragraphs + +Paragraphs should be a continuous block, separated by a newline. Paragraphs should **not** have each sentence be on a new line. + +```md +This is my first paragraph. See how the next sentence is on the same line? You can use word wrapping in your editor to stop the line from going off the screen. + +This is my next paragraph. It is separated by a new line. +``` + +### Indentation + +When indenting lines, use four spaces instead of tabs. Most markdown features require four spaces to recognize indentation, so it allows consistency across the document. + +```md +* Hello World + * Four Spaces In +``` + +### Importance + +Emphasizing words should be done using **bold** or _italics_. Please use two asterisks (`**`) for bold and an underscore (`_`) for italics to make the separation in Markdown more distinct. + +```md +This is a **bolded** word. + +This is an _italicized_ word. +``` + +### Code References + +When referencing elements outside of code blocks, they should be surrounded with backticks (`` ` ``). Classes should use their simple name. Methods and fields should specify the class name followed by a `#`. If the class name is implied, the method or field can simply be prefixed with `#`. Inner classes should specify the name of the outer class followed by a `.`. + +```md + +`MyClass` +`MyClass.InnerClass` + + +`MyClass#foo` +`MyClass.InnerClass#bar` +`#SOME_CONSTANT` +``` + +Code blocks should specify the language after the triple backtick (`` ``` ``). When writing a JSON block, the JavaScript (`js`) syntax highlighter should be used to allow comments. + +````md + +```java +public void run() { + //... +} +``` + + +```js +{ + // Comments are allowed here + "text": "Hiya" +} +``` +```` + +### Links + +All links should use brackets (`[]`) to refer to a link specified on the bottom of the markdown page. The second pair of brackets can be omitted if the name between the first pair of brackets is used. + +```md + +There are [two] different types of [link references][linkref]. + + +[two]: https://linkrefwithoutref.donotclick +[linkref]: https://linkref.donotclick +``` + +### Admonitions + +Admonitions can be specified on the page using three colons (`:::`) and by specifying its type. Admonition formatting can be found on the [Docusaurus wiki][admonition]. + +```md +:::note +I'm within an admonition! +::: +``` + +[docs]: https://github.com/neoforged/Documentation + +[npm]: https://www.npmjs.com/ +[nvm]: https://github.com/nvm-sh/nvm +[nvs]: https://github.com/jasongin/nvs + +[parchment]: https://github.com/ParchmentMC/Parchment +[neo]: https://github.com/neoforged/NeoForge/ + +[jetbrains]: https://www.jetbrains.com/academy/ +[codeacademy]: https://www.codecademy.com/learn/learn-java +[helsinki]: https://java-programming.mooc.fi/ +[oracle]: https://docs.oracle.com/javase/tutorial/ +[eck]: http://math.hws.edu/javanotes/ + +[docusaurus]: https://docusaurus.io/docs/markdown-features +[mdx]: https://mdxjs.com/guides/ + +[admonition]: https://docusaurus.io/docs/markdown-features/admonitions