From 969dd8c689f1cbc8c59359c192cc20c6fdb7faa3 Mon Sep 17 00:00:00 2001 From: kovacsv Date: Wed, 15 Dec 2021 16:56:52 +0100 Subject: [PATCH] Minor modification. --- website/assets/models/christmas_challenge.bin | Bin 0 -> 74544 bytes .../assets/models/christmas_challenge.gltf | 708 ++++++++++++++++++ website/o3dv/js/website.js | 33 + 3 files changed, 741 insertions(+) create mode 100644 website/assets/models/christmas_challenge.bin create mode 100644 website/assets/models/christmas_challenge.gltf diff --git a/website/assets/models/christmas_challenge.bin b/website/assets/models/christmas_challenge.bin new file mode 100644 index 0000000000000000000000000000000000000000..0fef537f760954f30834d7cff5e1b8adb3282af8 GIT binary patch literal 74544 zcmd41XH-;4+rJA4k`cv>8FN;2jP$PBrZFq#oH0A*98gS{6(a`B3B?>nrFUTts31r( zAW9MtMNm-$&i(7De*ZnsIqO}|`E<^#b*;PVvf{3Lcl7{fW@cvQgoUICMf_(;SP?}f z*3#Kfv?c5$_7ve92uH$6QcOB$ip7Z%5*LbaC5ci*X&F&3LzE@T5#=SW(p8{Xk*Fl8 zOcAaMQI)7Baids;s7}-%YD#KJSDRuTqOPPKMY#Gz1EQgfs5c_A>kJAR-FFW6Jvu7H zG0KaZmd(t(Yr&(9vHYKH(0<;K;T#@qOv|QY!W-u@mjAQ8(HqA!w*SvH7}sN*%edzM zY;PRLxMpK}<6cb1F_w*MHm>c~_(>s6PCusSGb5z^?m67F{Lj2ILeR!o{?9gOKX1r1 z4*$=3{!iI-Otdl1Wi0<^d!sjwX>5;iOxIv68|O8y`9Iqm$1$$i*xtAo({YStRu=%d!8T`u{icnR(N?bky4r7x}mv=Km)ey&2X(|8Axj zy=*5v`=4m^|3st5-VNi+{_KCoA+6EB;hzn0m0^Bwos7yq5#!+BnXF?xW50i|zjEgi zhH?Ih|M&G9y=+J0pucgQOfmX@qS0f%f7WmG|3r*$T*p7Lj$wXpos7yq5##)`exo<` zGpB+7zq}uDN8)b89r^!<`w@2}?nc~^jS1A7NSaEAy74Z>z3MLi9sS_Z4>Tj-niIH_ z|B$qh4t03k*`Or>hkF|y{Xi=M4sCGfx0awi9P04+P5{~vaQI#TZyX=r1>mq|e5YtD z!TRA)hp#H}kPhEF;L!%)*}&nY#dj8bj{!(hIF#Y>od)1s;VKjGXag7lM_(Qc--(b1 zK$Q+jHF{fPdO0n!bmIEWZ58A1_mC^3u}E*T-+NQ$F~(ULI~M-pR+afFv-ymS*N zP9!EtCR2o)LQEy5N&b>i~pOvx;YaI=Xy#9YZd>E=^hKrECjq6oK`SVAn7ER)Wg z;&Nhz#D}6cu~ODoQ3R`{Lm6$+2dp9B&<`H{z*+*%m%yCsB6lKLQSAc$^u)xx(Sx;L!$bC*XDvICJCy*h#>l43C@u$PqY<1&=lW^TO>SkWoERcGARX%P!z2SK!eK0U^aGd|E`S(J9F!cQ2!}fSAjx5h z2MLS?k2V1F!W|*{6GtV-q(dFPpX4}2xB&z_`hgP!+)3gTaas~6-5H8!i6F^2ig4$N z3&cgqCFw3xyh2=+T%!ngo%ox$A-O5tEsDW}UZPQi6GRAcTXKh@Anp?Pi2ITU(mka3 zh;fWx`LqYX$U;64&KbL0U? zBj8YmM@|6b2pq<%0uE!rqYc2kaGwa|EbmRf_D@S zln!>0Em;IMCa4A?!=Vn3X9`*oaColp#{J^iz_liDCO9Y1hJZsE z9%lw{u5dUvc(eg+2{;b|XO27oIsy)5c;o~?j=*6oc(ehS7fvCNQ^+&G2so7Ck#hif z35T)Z(FR~%I8GpEk;gzK;82Ellpx39Fcv)80L%;5j=(#C_XM;j;82FQmEgUC!&vZW z128XK2cjrZMAA_@)ZwipW)$Ht7Cia^%nR3vups`Fbe0Zvcymb?if|YU9{m93h3iV- zGou?t&|Nx|;qjRQddPpr=L$Uffu00hFN(bhPe~t&aD9n>M1RQu=>}39L=2V;p$IpW z7)A`2jF4_5#Zkm)$ry@oV~KHumt?$j6DUq3CP^k!gquQ4C8kOKl5RT18N^JxV-f z9?ukPB;fE|;f?#n^Mcz%;7o8%U^4-SGCa-<;0)n#Zt!RWwh(Yz37k3d0Bj@RP=-fN z0OSoE#)3y1fO+Bk2;>y<3~VRhP=-g&fsq6p#)3y1fO+9|5Xf2NG1y7Kp$tDtg1m>r zSny~AFfZIL0`COg6R?|rLm7UUWT12y3m$C%=7rls3?>Fh{G~%3evkz3EgZ&&M?Zjh z;r0^!iG7m&(xDFDPjY}F9L9o2KY)4R0tipypyZHrsKfV`9Ht1@hk!>vaD;$6N*p7O zOHN34lHw`iv?P!s+!^955hOV$-Fb=^h>Ma-6yYutSBR^UYtmh(_&0Gwa+4z5Eh3oE zOEl>O#Sr4QzT|;)4=Fw(9!s83gbO8}63-;hr3<4NPP~vrP=t$=^_LVu zlyoSgE&70H0uKG)(GSEBaIpmDjFY^Q4t02}3A`rYur7G?18)d8w85U>mzm#xr{-!TRA)hsQGo2?QLTE4*>Pcs6kF37iSe349>nP=?2u0h}uw z&J7-IKq3K`MBvPk2Oyb%Lm3`90gxkb7z-Y40Oo~DA&^tZGmuKap$w0l1ISA_j0KN2 z0Q16qB#^VnV~|F`p$vaTf*gm#Sny~AFfUv>fp-G$3CJMeP=>!C!FvUVvEb1LU|zUS zL=X`u$&?Ot__LCe6yY!yJo*953-_5gO?;7LNryW8Daluga2N|7{Q%~L%O;K!Ig)SE zp$>mc@|_~w2?8Gdzz+g0m-tEilH^JEn_@muASt8>haX~_6Bd#p6yYohE25~xS~?qw zwuGI;o+6wB;Yc`1ib>~8u{cpe;zALwBvFbeEh!^iS&HR|@)B2ya21G(L?uaO>8eny zN>r1$QG}~b)F5g~YDrgH*6UCNbqP3>(H4C`JpvB>;L!%uC*T?on6sgzk#wlTV@;qj z0f%+LqaSEOz@ZKH)Kr4@aHzv$&%m94!@l8-<72OISTmkkGYQrYhdMl-DQHf>;km*a z_lxHR_XmM9!8w5z1RTonI5U7Vgu}VPqYY?Dz_lW9=Ewuknt($Y9ytM!H*gpW9&G^T zg=<3~r;ul$EdhrzJaP`$5O5d^9&G^Th4Ubgv&dthBj8Ymx0N98;V>3F+5pT8rx182 z@SXrhz@ZFpB{7o@W5J^hz`Ssrupsar0#!Pc;msv@N8vC&Jo*953)haoJKdfl=pY@+ z@ObAzNBQp<3m*Ld=7sA-5uX`nF6{REd;gS&);YJdph|!WU(v77!j_{I zeZw2a$6n#EW<0aC609E%b$C2e;7h>axxyRwi{}Nmj=-7VoWObl4rO?p8NeCB;oRWS z25cbUHWD~<x#BIqP>F!dzN8Fb@pa}Pnctkvw zJdrMx;#1<80@ScEF z0uE*Pvl6^la2N|7Z2;zl`$(K7PDs+ELmmE<#CORL>2fLlBz{TqD8l_F z@`(aTp>$?N=sO@`At^!;&XTYqib|}dv!Q59*h%au!Z{F*gp;J0bj}ou6D1@r6yZt| zrHIm!GSZc$SdJ(!ais`Xfv8ASl2n$i3dO2KHHjNVxazWAgCeLY9m;5nKA;u>hko$r z2Wk^=bqLH^S5i+p)ZwuvP@jOqy5P|dG$7#62778KL3=pV;jw4Xh=9Ys;f>>C|8Q6{ zo>^lF)(?j|Jf10NLcrm152z&nTc5a^^s86NK> zz&i?uvEb1UU|u+dBHn365pV(yWq7>vK$Q+-!J`epym0L(;xnT?MbLqOLm3{QDWIct z_*{WU8_`;%g4qKl*}MYwK6ccO=+r*yq2_9i?feJH~9CHfKlB?F`zNO2G`STckn z+)!c|FhRbz@FC!^Z+PSQ*ee{?jAyn|g7w3p4v%LFRuOP`uJFeF;(5WX zCU7P=C$NTqLm3`t25^ROI5&8-0c#03Ujk>2JOJwmIF#X$699Pwhq2(%24G&e^#pPX zc?LERa45qg=fFS$4r9Ti4Zyr`8wunr@)&F);82DiBthQ8VJvvG0hkwVGl6#k?+MsK zz@ZG^Ptr>|j0KN20Q16aB|M3ql5NtV4&PgX_ZAN0!=oR-yl{R*4`RDyhjggJcbDv> z2#2xY(GOr=xLrgSVz*?Ebg093miSYI>q@|*AJ|L4?IZRR2P6T~9i(`OI4n6r5$-5) zj5sbiA>B!er-;*%K#Fi@h_ghHH8Ew%AJSX7L4<7wM z7y%bfV9pnk2IMm^>XAn)mVc+n^@v(n6tQpTN zMuPRjp$?B{3StR3JXd(*e(`MJ;s~4x&I!CC;82FgnE{+D9L^0MZNO^+?hS!6M;?H; z1RTon$O(WPfx}qvXag`WTs(oCLY{$l1RTon$T@(#gu__yXag`WTmpfdMIM9q1RTon zXC=sSIE)34HURU&eIW2o;5`9}1RTonrzCi<;4l_E+5pT8mqZ*Vj!2TFLmmE@j zj0KN=0Q1775Qm9W$w%o>hd(4qqX>tw;L#6YUbuAP0Ffd2BpvGT`z4ta;Q|PF^aGy> zxGzK&@l}#7T@J->#CORLig3BaPvVy(PrBa}^N9jUAw@VdOZtvUSV)RcgtH{9h@ui} z>1-(45_S@Mif|5uBjF?|CY>|I;zS9F3q`n+L@A=Qq>OZBDV8J3OI#_!RUj%7l_Zs= zt0L=FDS~PQ9Li{mKEREDLqB-50o4h(8U*I7DXAqL>hM?-s7=6OUGV4!>JV^fgFV%i zpgkPw@Ypk`N5Em<@W%16S2(O0&#b-#>xV-f9?ujsAmH#^;f?#n^MY$g;7o8%pb-Iw zGCa-<;0)n#Zt!RW8WV6$2%I_c05m1wP=-fN0OSoE#)3y1fO+BE3FH*=3^XI)P=-g& z0W$&)W5J^hz`StH3FIvD82lj}%JAkAdl@6aP@Mr_t5peA(b|5-RI#GoCljuxzk#v==8^!KK z4@pmoaJ`7$gr}sBbbTrIBl=4QP=p&u3?c?ghDbM*;xJ;kWCTUHk;Eusv}BBQV=0a! zyd>i(!c8D15|bp8rJF)=Dltv+7e%<~#0+AlWR`TZWql4sFqeQs8Ew%A%p>5?4<2p6 zd;)F(fjJjS7D0k?|4nIjLt zY61>rc;o~?-oRljc(ehS7j6xKoI;*~wFDf>@W?sPmw>}q@Mr@tFPtxdoJAgkbp#yB z@cksndpL{*k2V1F!mTIpPT)NO8wfa*;d@KENr$oE(FR~%xQ#>)qN`++bg093m*BmH z!}##%2QV+(W}*wRMY2^o)Zsfzwo!z`Sn%ivFfW`R(UI6L*&!Y3@Es&ODZ+Ik;L#84 zBH(rtdkBBYUg`Ex+)o^k1W<%KNE{*#OO8l)l;Sbsxa0&yxRb;w;9drDx=XOidAp$?BVfiMCN>w-r=5Kh3M4fgax zg7$Ez!(-1Nf`G%m;f>>C|8Q6{o>`;>>xV-f9?ulKB;fE|;f?#nvw@2ua3(k>5KX|L z439GdI9E8F8$8;87y>Sqz?mZtKpX*wGCXnuAV=UZ7ChPj%nSF5Ku#ggz-s~yWq9Nq zKwiROEO@j5m>2F1ft*DigSP}6%J8Qo$Z{*YuJML3KFkA492!hIkP5Q&l`=}?E?FG;2dhq2(%4`5!n z6vCfKm3)*Ab@)A!G>UM033&7a=>%N0U2d$)?w|b9g0+fnX*(ZFy{NjiXEGi%R8T|#6siFX-V~qsC%rADr?Fv&?0UZ@=w-FlpPxdYZHXT-78tEI9%xP-c@Qa851^Wv?a)k~;94sy2Q-nrlj&7IWf+_mgu1xIDVbtm<~f{iS| z-=1Oog)cg@L7u@1+D{AX!PaN(QPBRzp-pUP#S{hOPhGNs&7I$wVf}qC)n(?o#tiFO z)6Rn}DdNJgo|fg-Fpo2}8P-2uUCM%s_hNWHy*hqV0vq>b*l)@6F0A9bCJg)a_nyQ$ z_ixDXeEulx%N$0Z*0=rjjazn{#t!dD(7zA+!Rz*OW}9k%@YplsE8ku;QR&RAlT}HWf`X`^^ zG)nn7N>OIH=JJ@4jTNtsOgU!%lW*91N?G49RT=1z$z8tr>+|bxR`wMA!I!*uWBm%A zE2I1T;AJWl^xIbGI^X%99@UnmF~7ABpa$RM=dM&8%;sZaI07>Ef+f?lVhu zaOz3+(%*qayA*Qe>@GH8OS%%#z*;@KI$2F z=8mq-B|A0s!)3N%O*uV$)2bI(`!kg^wD)liWNN*I8pe6r_z3e7yEV)eIl!MSJAFXI z8hnOsWp}%5)-Z4X3cjpt+yJfb@LxPIe#O6Xz%(~Z_ma0UU)k097oRYD^S^S*bT6iP zX!?9^%rs}d{gQe64b{cY!>&x9l)-D)>>~p2tYnd`Q+T=kULv>8RMz77d*1t73(@++ zZnn)nhxh7xROxNw!|GD|f#=sNjxiV6j1DP$>%FGBfll|B|CCRBWXUtSq-lCK!rVeV ze6gPrqMT*5t$*|JO?E5ZzEP}nryTA)dWBBylEnO~=5eouU4p%?gt36RHtLI(mYVD4 z$L#EGD|M~k0^P7npPAEfGqvAVC(SZ1ht;l7L>=(LUwe7;A*-Ber#{v>i>x2d*`Pn| z)VgENYmElxFuI&n)%&OBQZ1A9Yi*@|e_LNzZ8~Kbf99E~V$p<~hW51&w-eJYyf?JJ znLki;92Q|1|F2R@#Pr%r4eM_axlS~_wcW6u-O($>#3dny^|)+ZC)y_m8P-4N@@7%K zxVz!`WTwp*wWs$p?03nNHKM}g{f7NsDz{POp4w!1KCOrQh~_6AG2Z44*W0etQr_=l ztu7_-7a4KE2evF_>$|?@!Ff0IH+Sq~F|A^`-H)r9>3Nx+i`|=M>@|PKlhq7ux7!)T z;axnxwLV#!^1wqG+~E~>-Mvq9>TJ$7yS(G4=KE+7n_eq@W8%41w}o~(*IennAeL`^ zy|LVzTrW()_Ybn z)@)N05AE%yHCx(%?R1FYi(l1OUYa#xPOGAM&#BjS@qadBb*sj4>%ZzMbyhGoyC5UJddCCzf7McVona$?yyYtfcNO*3_H5nYc)mw$WH4-5hat|_xi!>b=e}) z>gTgDK6(5PWwmIWZ^?U9F5o=}O%t{6+Vawlg*MxB&6dKlWGQWW~uT_>|Ubel0Hn-h-Rw*!n?`*34D+f$- z!*nlyU%JW8Z%N=Wl@|UhmrVC!nun&(XGGE7tmFN+Tv@k@Ww@}V37xa>CTczu`%k4oTu+>f%z;cdm>te5|YR!L;9M^6=M&TBr|r@+v@+rf8S zcfpYlC{santMrW@C{>C7TrgZj+JEIC<|TMftG1$S<_A6`s65|Xw1^nEHJQgb)Zn{s zpVSrH{=rig)aFIsZ`Q^a|G~Yr8a%$zWG%`gmG?MQ&(LOIR4UKNZNT$8b!5izJ=-NJ z#`d?qJW`D9o407djN|7e?qSCD_v%NVfpR_HntL(hdd}`&#fA7qf9;eu@kLF%mSF>TKD;wrAKc{28|NO1E)_KkAFEnTGC;X+nKJ$wE ze)D8Y5D!W!nZ?3aG~kZ|tqIDyUS z)L9=~Dx8ZdeOR3f&y@|Ep7LeaXR(G|(u280IRDzYJ6qD(Lf9XUhf%}{t&77Pf`0eFo z4drX;q5RlbGu|zv9h(#Ol7AcQ#;4XS$;Md5@KTobdCddoln#?(xvNhTLoQwX7|TQE zx%0~l{?LqmQ+kAEY=3M^Ibj^9?BbTfIM<*jsxYnr-Z*c3#quJ${A1pFXZpW#z%(~Z z_tK$Ud$zvt5udv(otfqm_GKK?G!IRmPuo9=i|idSyi-39_I8;fZk&A08~&QYZui_E zLOMnAi{aDQnCPkEz>9FMg)+8(-+tj=JAt?PdRo6bcA02+@ikvqtGK?%)U(2^PbAN@ zZLV)N^}Z<6E`|^O9H^gqC0aBnpT?);l+mS!-V{~Bl6dm?3Hnh3--*oOuleye3-npt zb47CVcf4=MgC2Ks%|n`W_`;7j9j0ub{#A@V{)s=Tw@c@eVihv|uMd1fvkHp+9*2;l zaY;N)cTBmGRwN{L#8-awN?qp1tU^*=X7OpQ6BNry#X>B5r|@@?McB6XP9d*er0@e* znzPyADFWl0t)|bnTX_QQdFTk%&BfNxKDqN4Hej`xVSL}_E7`m%=MC#07_x^gKKInH zo^xS-EOK9(z!1X;un;HHLV3iIe0{@rMMQAT zP(F5X2YrjKPGa)@XT0I0Y<<%2^5RF4M||qiIHm4Zp-r#$lGkm%O8MT%L%i=5!}nBb zsobkkQydD4=1T|tspxk15^st|@y~HFn<#p8Wls*In{cxzYNV z7!mt~SK;khsjl@z`kNPgPMPoeju(51A!TFu>Vt0jRu^B3OHb$>|GJ5F82D9mtQO5P zy|%Iz=N^hi9m4ppeydsOdqqN;{EFq3s&8bs-5f(ExxMD+5?3&{KTC!jnDd6;z3;_z z2g-)*N`J#&TxM*JUpa$c=TL@KYgNY3-ah%2vhPrF!#Le4_$e!N#9DBpZ#`oD6?bT6iP zX!?9+yy`1XO^oK9AMMo+MtO@e+ABW0Mxxd{GC=e@5YDFrHx&I=EEnTjJ?E~SDv8h9 z8BL!X&wtIjC}KOV*S@}qMXNL6oWBVY!QG3Al(JEL+t3H1c}!XHYg+~{ zRU%$=vCGoVoJ``uJD!L)`|FFk1#!IWm)9b*Za?w;b36|k^hrG6t3~|$JU%ifU0ieN zEs6x?@Ig5r#n6SLdQ)9(uK+s8ivF=GpEUkE>Ek%zAcCyR_yh zzdy-Y9L=vG$~=6`XZ-%Awaq-EdG>kAkCe0%vwht34&G1rlv%aJbH@aI`t0Z2Kee(r zDAwqMYCq)_*EbRSeM$)1=}&mT-XB`=kB7D3>XAHr&^0YKGg5n1hTg%&EyRg4_qBZQ zC_cSeRk5(QwP-sdlDjH8p&z(b`$#!CXoRM>-tH-^wubY*WBQ6BJ9dkpw@)}bF-;`& z$kMl&8qS9g?<($`ZKl0@8O6)2oh`ItabnW==e)n4p9t)pENU!`;D>e}6DO-Y62+22 z`L8#t#K*B2!m55WuQT9=Xls`tUc1Ke!55#4#orP|Ztg37VB-hTr$&s3IsBTJD4ipk z?74675%UX$P0Ndh_GSOF2$`I^&oIu^Yvv&l`n86+5)bBy`2l~4klrtNdip1E$Zdca zTqBI@l3$72Q@V=P8=mqZryl$(2TXIrbT2mJu85!oPq?|Z_+PnXx);+tG<`lSbc`~} zJ(i!C;w{?etx^u|c+H3LL*npKJGMSPoIiVeQi@aMaNL{M7H_?)EE&_WG$7Awv`P8O9$~ z)GB0mP6fmI=O4@vxAOZK)>Hgzu83XiV_47l6-7ec|2@F4etH4KBkzL>o=;SNy*Rcq zUcr86_Kp#gG8(gS{bTtV^K{`7UyA+i`;tGn6e+yg1+assp77eUe8q&E4eWC1a30rI z74ED0vmQgA@t^JMit8gruq*cgo4DFZjOCqebc(8)dCNin}jt zE_78p>dv))$@?$_w_g19sp3InV00R=ZHcjTNi)jC+Ng(#BNzgS9&r#;1~L-jufES!gakKb1s9^YSHpH1G!}>3| z-}p#v?6y&qY8X$xkS}&BzRbBwIJc@=G-UPCA?)(WXWX@Tx`_C-k3DG<$?vVV3u)H)B5QR# zihp=+9}*gVpEax)!=sMchInMgu+Kp;yv9V!kd51uS@fzHekeCr3_qL69NtIsbIX%N zzp7tYhlnUXr)ikbDy6fao-g^nx;Mq`7xC=I;1@jH_oSF|;5qXh5zd2t?h%cL++wBQ zKjlBBZ~a#enC6D*UebQ_W}~Ns@}=H%cbVjp>0V6p(DeC~b@XPq-$Rp=wV(M18SeLt zYGs7Z{UO8se!A0hZD`9=4EMWB!?oIbbsejm@Q&YZbby&{8_ya&e#PeptYRg$A7Z%Q zH;naW`!-%?xZgd$Z)eBs@3FmqX7IP#Y1XCharSY0GQW26G&^%Vl;M7#5g5SsTBWcl zAL99PEr5*JEU*pIgSGyPoG`SzdeO`lSHmR%ZOcDf_`=HSXhU#9U_2a2%o$BJ=` z9}!Vno4%lgp?%wes>-{w6%6eiy3bakS$V_w?W^4m-XH$cu>K2!%L=WA4aa({!=Gy< z!(0sOIlp(2)}pQ*$NCHN!?ZXX&G39u7d8u-}C*^0eu%6AaJi zR<+;S$p*Jryu%Yd`9o{gKVuWa{XTzsXV(At6voRw;S2ZLvVbG|*jN9@e1G6I#q_*P z&*g_$z;M5}D<7?&QM56`{l2u-d2MFJcM9(J{05t~xmisa?)Qa`NXMu9=+Ybfz`+}6JEGE{P)js%`zYVozgKAqd-0ykjwb+Xp z!`QV+kGc2gXTgu>yD;4EJDM!f%`Y>E;eLM-D}S$Niq!{fJU>bq$XDJ$jo1>#wh3@U^$KXK(A2GqfN3*KDSaFJ>6$?4tGT(K1WJ zTs5@qtk}=53~SgJw4DuzdCMO9hw}Hg*0a$~pED2o%#WNl=U+Ksnj5BjiJ0`6J?{R5 zKaCjquUs9^YwZvLIruJmZ=9FNg{EMgsw|cYRb!W3*JuK9v^M|oId%W4FqgLwa0YePG z{~CGUQH}pyh1EIIjHTz%&)(bW*rbrPbVt~z6K-^4r7mq{2kq=t#{=%nI&eBG+rU}9 zn!88o?KYfUSzk=O6PT^UZ1rcaH#?{o%u2Aas}Hl$Dt zXz$zMo6h?0lZN*9XRJ|jj-N4%@1f@C;`jL&*1uq)pEiEMD#Lo-(2uoOJv(by&wzFP zZ~8PpV_5%At8@B+xl;|#$3EzoR=vg&!+wJgpVqD?oG|P+|6YOKarhy_^BJmr(q9^X zh-Ga0%FBrQtlyNe%-8cPU$CGuONi~qT-#-Er{`al31M4Vr=Sczapzmb^t?>ZrES%| z?7dqiw|%!sXWrbE_1Krjk8J*?|K##bY1}x8$IsC8`kZpC#?Ex^*eOJJ)7O$cSf0kO zxy9&8#lKeaN`K&F?u9tH1|$?fdfp{6PP z&8y6#rit#e_I>wn?PTQ65! zSGQs|1zG&qtSw5LHHpf~Gl_gw>uP%C+-lbMOcuX-a;1`zb&);PXYJ(ZGeY*>|; zbl&Jz5jJM36>C}YD^Gb;oGoq~&JGqaSAP|p(baku$zFyQQLp)b)@{(9u&CL;`Je7L zbw}Ky*ybKZ)kjU4a=!jcme9jS?J(O<>6#eMzWdp#m;J((6W2mnptYS^(ZY^RDskW7 zZ`G~KHk{HM+RxE-WQUquGmKNTxsJoPn9#bzwsP(jOg9sp>k?o7OyqGwOCfZA5+Ta^XG-TbTB&NlD(!S^PN*Fu)9WXJFP=7X;e)K+$w#+p8|QWe+vx84dbcB-z0I`yu% zZj|RHw#43C?f7wt7F^)RN(2^BU$!}>b#WZZ#vZj-U*DUn9r2pPqU>x{&+hU1>ixE{ zhjWXn&fXE)+WH$<T;%4uv6(y z5jCexWa0bm)K8r{iMkW?3dY|N+(De$VPR;$`C?u1%D1bb{p|i@MejNd4C6Q0v`F-H zDz0Gte&vRVDz1wZtmi~#f3exKxM4jWwO5IomA)xh|I?>ygu0`N4$o()c}MZ$^L8Ef zTdTwXQNBc!Vzb9gJ!ij4e6o6|d@7U2{n8eShXE^Dvo&A&ky_5;nNJ@U^EHd_pSxBI z@u|z|<)`zI>@AvW!}f;v-8<4*n4XvExdfg*r1*6G#GOiKYZWsq>uNcs@#zb%Yi~~; zxg{Kv_`O>bw0dPGD1p}Le9257t+@H0%2k&%p3}o!tE|5sjQ9PLUkhznSt~YTRx00n z&QUy3ZJ6tk6mDK_o3?ImjuP=Ai9gNVrq#I|r8Esp=JDm7#PskCrD5+RUaF;^)*;B2 zm1~*A`%YgUTuQNGZOSF_xTB}^V_Mm>d(J8R>$eHP9ud*XbNU@we8W7=WtXa~O8dyC z{ZT`6cps^lmC53kZJTH#D_vI{#(w5zbLwdC>ZK_SOJwn$owjNFy;=|=)^QQo2-ql)-oG@N||8|_!m{e44aI~{ncKZ~& zRm4i2U$KFB=yQ_wbT6W6-%5%D*+<#4`(|oNRr)`zmuKr|AQyZ zw*6NQnC6D*Ufe4;W1U}p=LN-l|CLLodoj&J)92GK;)Ndfd&O%y?Sy?7&2YcZ?WGlX z-P3TtA8q3xoUUxraKHE8XCa<#KA_~!DCF+C3ZjPDP6hY-${u#&YB?7j?)L^a`U{Wo zy>z(W#h`J*y4!Lkbi1{h(W8k7+PqW2{r+cC9Wkb`oDTQ}f_7Z#5>&6UWyC5vM z#p4pHdNfCS`)r-=Reo``s-wNw7}Zgm`e#|+JV@mK}-`|7|C+RbzB3hwvyJ(IPv7rYeQ z?~A>Xw2HrS^|;^D9rCp8Q_3m0-|Ku(waVix72NNE9rPOhJ_`4H;F{ywtA2HKxZe|( zC1@6QqXt!;Sg8TjY;#93~|J4facb6OA zwC(gWN8Ilve@_zKbL$A)?^|!p7L)QS3Ec1F(#MKjIW-0D_bunWMYj``=x2X6>Z6Bi zg!iH10{8pEUz^0!A?5=2`^W7>z}&4L&c~Uvyr7Lqq#AOAiRk+Ws2GDViD}t_<lBun5DCCaK-YK&?JkYjB z{^W6U4lB(^`Dr%Z7HYA`a$@JE5t`G~0)D5!Qe3%ET$FS!6* z+O{fhHL=K6UF2R$Ts8k&3wJ20CfZjPY1ACG@)<`Ft^e!7jC;Ej4aR`7C5LyEC19Y-**+mo$b{UUqZB?w*5q;tE2kzo{yGd?j(u_JFCUZ z9rHL=*;$Ne7?FYJ4RP(L8^xFPZtC$-I`e% z+AnI*N7?qJhoOD7Z9|nU8aIqTHQ}n_9k|`FewQ9DY^J3;1G_iM%%Z`z z*+YVz#&%Xly-el#W3qLpyGCiVqdxO>Ya?{e-)z;+`DOAN-G1nI`!CX-_|xCuZM~>x zRnBWS!#;7ZE437L)^u&8V+MacJV5^}tBjWGpU&q^3er}NYpB_5P3JAYZ`3aDE~g2f zPki;l3mO|2pj~M5iSPK8pqq82pRVb^FZ_|`xnTb%KlBz2a(Ua;CAG;P_vjb&`p!SZ zWa-zr4$(%A&E*w64(cDztgSR(n#S)$oY6g+oux(P=JNF8mvr8BTZv)KfAgHr+ZC@1 zbf#h6 zpEoaS-{ZZ+gz9Fh_wil-$^p~dFx^YLXT5|=MKg8Kkr#?-E}8DdG!IRm&)dz-*zerW zeB8`Zdf&cNSoF$od`aX`UHG!Ktoe#h{KC&zMPc%O+%@LVtQad;Xs52Yca{yhaY4EB%UWG{ z;1p9!mSCmbEYvctx7jlK8{gnRE!87|_n2Gr#Vq!agSx!ReilBz6Jy04)CYY}v9Go> z*v4a4>ho72ta|Ou>~htj>VQ$#*ynji4CCiC9m}$F{S56}7Wy(R^N^vv6MZl1)%KiW ze6Q)-*sLk17}g)SBu7cPcA8;5y&E)QNpr3k){`@29;-I!GQ;}4(mJy@7dA3HpEC+k zzt`HNjGUjsZGDbw3;#Z#l=e^K4d<-#`1|4r#p6>Nzg*T$ALTMoDPAd=*Uk>n))d$> zof6M$G(4`9yFN+T9iPDcckfb;ZkwR2z4(s5kM6I;`8u$nk#G5^K(2Jl9k2Kdf5-o9 zq*KJ05dCucJIuq~W-3n`ZVxW=h5i<6#8_qK`=k1H8xwi8AM2FPJF}ExP2zd(*yhUH z4?UGud1?GaL}z`L^+aXbqtD#pioe1~4_8j!$mEYghbrSf1S!35e&PqlUQ;a3dnz02 zr|_~H_i7_1xiR0CqsM0dd=cjof0_X5~?vzzQ^ z{onk`gNv+o;yJc|RssKzc86VSevlPuSID;<4rlASZ#4Mm(Q)iLpJ`}cYug*<*QKjr zoXfl7*z)0Z40Cm`e!(28I~&$8an4;<%AY=WXx>kgF0rYOW-NMd5}!psFE`Br)7&uK zOJS@(Df#<=-gO{-HrB}GZ*0Hlg9fh=b!w+^%hY*_ z-B^F&ANQHNZP}olei0z{H!@ed9ClZ7x^EY)uIBM(d+&K9`koTrx!?GkuwR+xhR&8vryZ5 zdouGm-r`*m8?|cqU#ymgpBTEqT20#BjyH9-Yb(20y|_uD=qXn2sik54{(m23(dd4hcIr&dC?6>`>J@h+^ z;~Jh%zox#dNZcAxdFFfGMJ>UeRTv>A+(_iS(|Ewo<~LH5b2Tz2R1U zESTwenVyTY-AK)D?0bIn;60`Ez^A$`N&;WvJXEPvP*<5h@HKCrdEBGgM|-XAz64(6 zz!zP?=vVqu%@X+0c`H0hCUsN}c*XIV?LGC@6`yJodc^ThB@&g5B~vt)yf~h^#X&h} zF0`|4V)^P(-*tsY*K4!WV)&RraY`lED_R4640pJdp>w_RU90;bmfwHrp?$rUti2r+ z%Wo^G`tilgMVF*kJpWQ7?P>chTGG83KHd3}GN?|t-qkIESJ47)wq+68X39f9hfBIi zUT3sj^qv2T{Q}*ltOU*DUNUbnX_&Gz)=X)W_=;bNZmciwYAezsKk#SWo!H#2m4rw9 z2R^}J7OULXS)`Uv;BJe`Yi&L2iv zbE}#H-~V^`9A$s3o-UMWzj)Qb8aooVP9%iobC;jN^e*lfchU;^#FVRS+vy-tq_3I! z*)ovzZFbAxLp}Dg>6Pyp+8^!W%Z?6xXc))&%~V$P$34SbrHgfA8QH;xHRMM&X6|Dz z80LMnz7iX+9TH0&Q+U%aW&V`|rnzCdmtnSUqC;*nA9WJH|N1|R3Oe?QL}T8rrej|u$!{KXxmMb-Wn1^#|MrcXU_Wy4WXv$}=aBFtTUdcH;A@8_4f zHxf3BZVUYV{Lw)zg~O!?p)|tU;-sd(yrDIXej+Bnc2q}r=4m^|{1UaZt<>7f zoy9q`Lg8D1XX}??w#mxAk>aga4n%VF? zv9qF;S}}QqwtVs;(EHdno%xWZy)nf1ntb@ z1*013`<&P%G6Qn>|Ha;$$8+_(|NnMUNtOyp3kivANuD#$gCdl)ND-2yRN81kv}sqA zHc2T(X-~T|*U_SVPulmSv`L%R@Ad5U?)4eJ+wJww@9+M&-{vx|bDlGEJ!Uy`=80=e z4_Y>_NZMTaQ`mI13+*%P_V4;Wzxl*Hz~Id9_DKj3WdXC!Ns9CH`HM8A6`HFg#rgRF zlTQ$FbEc#?KObAO7n%(!mK5jbJ1;5%K3;rWru~>GDbCN!yM(cT7i}fQ`T27(*NLpd zT~M5#cezzT-sIa#iu3dL`;BK0kLyc{^Yfi@l3C5Z{h&BM-{kf!vgJ;Oq&PpnveXp% zi{X;u{QTz0$#B{-P*R+qFFX6je9%S@SQIf z^S1|SLs^J!nd01g&W|~8wWmRu;yir&%snu%S&K5o`T4@dPvFrO!!pJBdFPMXQutTB z-}wVBx06g_b$PtyNndEcs>_ zNQb(=6cSp`krJmq15MSZf?kIsQegQGIC1!)p#OY>M4X)E&-3uS>%-YnRF0v1NZCsv z_Cci7b3jx1x7}4j_vVFCE6Gx>u^0D&=O2&;Yg73u&0oTd_B$ncorm1<+GpX{^wpBF zvXeY2`YW5AI7RnX3HuV0DiS_v_N(Z=K}HWhx$RcM=PmGvwu2F3lwXAh;=oxhmEe|h?I$w@VuDf}Juw94Y*CW7Mr-frq; z{)X)&Mfu0CKPK(BRgo0snbq>Tl-=tjD9U3t`ImHd@K;cjf7;}CQdEt#q-Y<gI{K-l6oPO`o!!91M@!tVT5 zlKb>cprn6C7+6sbDveaY!SjKz^oOO?eu>D&c6%U94{0i$E?@JzzlWX9gRt6*Y+F6{ zN6$r4pv`-7zRyh|_HKw|7(JJ~Jaa=3d;3c#e7qs=ZH1sTCsnF1=trgxyCIa+dP{Rw z7EzxUl|ttO#*&xET-t9~rOFdg^w2b&bY1X7*q=H^3f4}8=Z9_!Rv!*R z!og5hHS>Wm$7iGDICCiUiN7!8x49M>X_{i)EW_cy8YrMYmmYppQwm_b?ZcpaF1<%1xL zGb*#|(@R#-^s`X&(4;IY!-1MV`z(BaVN&LMaVurxJ_}jSMrHMe@2GA4N1=nNLD`m` zdh*+Ob;7KYCS^)X+sSRx-U*_ET3Ly`xm>%VMp)eTi!^bZv0NjpO7K1VLfT%bCciTt zzyIQTzkvpLZSZxGf87L`r4NP4Tg73Z3b(U)HdHTQn(n9ZXH<{$iH9 zyOWED2GaKnHKFy_E@Z}MBRXudH@to9M3fIs0*xiPY`k$uX+q*~V2x{8%K1TJTv!<7 zwfN4OUXK)guT6qakJmEqE54-_21$_6O^d`w*pTe0sbD^AyBO@fM8?~^&;1eI;r^PY zblKgjcI6Po4aU7XR_M&|N?fz)B0$SwC2Mz_T-`qT`;8)eTa4q z+OyFLV(bRWRF7viZBG0|X)Aga-#jJ?p2KJ6UqiM~iwQPS$66x;f z2JtKHAmi83Qr#_nFxSiklpH%AIWfoqHkmoV*p`lD*OX?kcvye1&%P$(LMU*Xgb+n&=@W!5C~g)l1#|H&${)OgXHy-xVPNN2Ja1l z^;IXx#AD~#2R9Emx=EF8eWnT@7qx*F+gehGelOT2BO91Jvjz1Du!6Pj&0&f2H`4md zcDB(p2y8muBjbBCf`kMClD0_1IKl+zM>!l*pGg+^8N(fa0ycBAiA=c(bR_-ZN?J$q zz0qs7+s6aS6JL@NB~#{aoD7x)A7yFpYRUNca44StRaWZQ7rucuES``^R__}Mi{7h2 zWwSl*FEAF_7>jur3qD>;&yJ>X*K?S;Jh?%9c@11ZZ78&~7PY}^iPspfNnWeGwt3CR zyqyH6x~*j$=DU?vn}xvS*{ZPi)HspX0Iva`y@Kd zWbeM(!uCP-km^&!I__73Z^i!5dT=p2uC4{G-MvApbPijT=L5TE=|bN}XGzlV0(RIb zlrFlSLo6oOu>r{gsQf@SiF^Hnd8GzYrTOPb%gdYC5UWrc?)9*`QSy{JX5EE z$KQ#mCczEt@#v$8K4s|R)7O`l7}gMN;~=#?Mk$jRogZ28NJhy zMm+9B8_!?BoWYmg9AQkiKRPCJM7t7ghsVcc3Fs4yKI-V>HfJL_i1+s%IS{_=(4e=` zr+JzYXz%>TRzf=%efFV`C;Ipfvk`T%Y|igfA*=X{Oi`W|76}b(-lyy4B`hJRfVDgl z3%w#8SYNDfluuFv+bm)UTa&$seXELvs=>oa+7Nr_ciEomK^9rM$Q0&Vxzi;lfn4j- z1Dr3_%KYLFy{`f)Sr#Bj^huVcOCX(S)p1wxZ+Cy29?< zfh6QW8=A4s3*JPSliI}{=~>H8P-$_Ts8?Pfy;jFU$p&4ra?UGqSEWCE$=*)hcQ{3Q zt@4N5f|tbhbR{ua=?7EH9}ppK5iuJx1nM)MlP;rv68VckaO~+gay4VOd%tPEIpewj98^JFdA#IBo$(!8ll z$TD*^oC^aQXn@xSUl&8Co$N;s?C(he@LJ;Q!t0Q4A7-FKSIlsQ;2qal^-woza8eJt z&Xw5HiH=k$vIR75eu*vG^^m05Q1E^Hi-m=U!;Jwota7#$v)(O-tARRjBfEqhd)otA z`89_xHyL|2HylcAYgqs0mh4GvIJ|kL!$xGkC21qaqlj}^be35IoApWvjcanP|nU3!(p zk+i`3zry=(?=hL=q0c1r;cedML2NiJ!t$qL`LR57*qDFI^RLbOTni1SI~Uckv9mg{ z)RE(<6V^8m>&x4h)`Zgpr5aX|)R9$qHHNzBU7^|MT9#VV2CQy$1~u*TY|6UN>}JOS z@cQ!#w#Hjzi~0vbXx$^m$BU24twH&+jJhb8n*4~ZJ2{O6e;EZPdRv&_B#0%yl3_0H zsx9y7%dAI_hdVEpGP|EEnG+cg-z{C)n$!O5LGCn=4LT_{^^RvOY$O~!yO*7m6|(wQ z@vu{D#iXa>*z8VIp>K;-VrZo++iIBrs;-ln*TF&TxHJuJZ(Ae^*_rH|V*-9Z{*r8e zO(IimF%^n)Vr5}%uCjgWM?z(FuI%<<2j&(w1t#AT*b%J)*8NyKT)uC`B4?gvJthx_ z<#F@bgqRcTutPMMKZ|9PdX%tP6+^&x<0;mx=^S?AQX>4yx+B_c+b)*39t=N?8iDH9 z%|v;>0JDcQhup%J5KR1Gx6d>2l)nQgkG6ox&AyRd{3nZ*-PbZ8%P6p0V zgNK@4bcgeC(z|a{cyd!lO;?{F35$9{>P2NLRX=r)p7*kJ!MQY8C+(00p6tlxZcc_{ zNuloQFOIOhzVYA!W#aMjP`3HPRM>QBC7a&0KiT~z9^PIsW7FPSky5W|@Nv`Qvx7PFr75x5d#IY~zd3s~GlJ7~RAN^ooU3++N#*$opBZp;n zgFwt$LsC87u!N(b5Z>oGS+FpU7_W$h?EzPa`nyl!VIc-eXWbw}kN*^p3L!AS{WY%&dyBqLWiivBHMHl^>a)u49FYSMC9A8MYFB^EYz z6<@VXqYHm!Gu>%wWMA<_8Zmu2s}9p71{WsMw{Mq=Pg}c-Q<|mG+~7=N8Y40DpTp^w zq|dUk)*)C-_)2!vAcBQ7o=UUtE+m>}CzyZJNIIq4O81TSj$nDx1=8oW7xQl@ z!@B5D2wc&O#o6?L%vaV>a;V&Wdr2_tu+RcNUVL1}*$yQi(x$;=jSQJbstd{AG#32Y z6q4HNE#j-IsqpklAF=%W=Te&;3Gn&s3Z@sU!=B%dhC3H3*nE{%>Au~i zg`wj?|L!hUq!G%z%pze-a0Rp=)Y2IZ7Ub=YNS!ikaXg4=@dJn7fGjm&0@-4+GNb@i8N`i3QWAWmTbS*hb|xI zg6Ey?kUNGt)Q1fLv0WVr92QIVKZ^n%%x~+h%2M+OLn8Y7mp)Y3B}Bu|Q4_@ICr#j!^PmPA;I+Zm<<;h6 z@be^wXL_BO2BIAc0GhAZY(Onc6xJqO~{) z^o!TaqLVy`^13L99IG!T6+a{A!&*YgPGh$9yf3|CjHsvHNN&5x30RROX>ng(_!;zZM&StPk)5`0g! zX0AJmNxW7xTS6Oxuy^7A0aTut-3T3%Q*dcOA)`rL*_Q>0H%%4vbjsF z=&t!maCt+%?95;flGr#Ia(g?FqJ)E@RY5o`U!6+I?QgJgv)h3zFpFs1c7;~!a@o}# z^N5~N9N0QqxR*rwkok?0Vb7jLI4;i-!#wwuMNH~c~0k!aDQ`F&v3(=W_p?{4;MpBubLHHKwco7tX-7Es^4570M{#nvA?QLmTfOlzGv z)!(8?HIFDmSc@+7$a@XibU+iZaPLT;-L|B5vRmxyBQv^bcRU>#VIxkxevsIi^{0=U z_GhliTJ-U~06K6{5}UA9lZHNsrAMgMUJNJ@t()S+$|QC@Dq?&hY@gD&N=5=V8i z#50AyIQm#NEmnd|c*aOk?HliD0E| zLj0xEY*ypZa3(5FTwbRxdp$oD-25)fvTSrnVaRy=>p%JA`K49l%!eqrIHQ=9xy~R~ z?3#9q`2w0+xOW-aSaQUfQ$ zr#cr>6uOn%Z5aU>b4y6o#A0&BHW1uB-;tC3OUNS2{&32oiqu9i2+s7#afyJ({}@dum8?vpRv?=skINUW?u})q#aJ z9Vl2^L#MD5rk3FZ{qi;8vfeOp_l{tAZsi2Y1vTu;B5kG28l@{(D^W=Lxm ze=nKl(Ou4?Qyhp+6Ylib3d6b??WrbX0b)N8uU?0M_OrE!}4Ak)5nk0>6+Co zU~rXb0}b%n;Op`YIzaI!XZU(~1>?2E*M-+1-#+)cHeo#s<&c+Y0jX!Vi9JWRfSAU8 zA?oNxG5EMGggkYF!acUES6VP=EKmmdl{svv&jaSWI+TuUbec)Kbzzs18@@*>VY^$| zLiv6R>WK6I;9;Lw>ZBkVUps}&Z{Ays*PTie>z9@;cS~Z-VJiLFYJ2HurIQae^eIIjW4RCMvn-Zw$NP_6x0^jQobcO!_MIG&w*%20I63;`64x zVee%>x*N;mwXbCZoA)^%^G0?z`T^4!6$PXB9V3eRt{NHzdBH&H&d+88%%X6;Q6qcw zmgv z$BU0k_=!QRzc>Y4XX>)TpJn3dmlL6J`y3`)5_9zX`ZTDs875O|Y09j>O@S_-yh)q7 zeDPuS1c*y5AQ$Jnc3-w?D)fViB*m=_8M!V6gajY)@zqvj-P_6Vy*P|aJhYzd^co9m ze-0wz{p;lZ%#rYFt%vOV`jh0x+z}wQoKDuC??qCyM!^QBqvUSCPNXV(95i3Po-FF5 zLEJ4u!6WlKDT*|p3tsxc$zOKl=8$VZ`o#kAVk| zE)w~~T(-DL6exAxP8QuY?%_W^0hXDqCT-O>u%>M$LD%4I?v0jtvw@nU;I{fvme~1* zXgACYl$y4uN8`7$2S+U+@t7SAtvgB2kXCj88hVYc++w9yXi#J7_@8!vLB(I*;W> zdV%YmW|Y?euMNH~DcWnq_bc#$DXwD!E%9~Xb;!3*?-3u!+RXN_V!8>;FML4y=X_+% zFL{7k|2yQzH5D)}C!l`lHksE{4rd*dq38OJ>`mHI_O8oBYT@0EUD0^XlpjRUu5H?| zn1S!vbG0x!?xO|k1WVZ7{uAl_H4DVtP#ucN=dOjJAaKIJDQJkAyy}(Pz^@efkK?zv_n{w7O?RJ+VAJ z)$AJByibPKCz3R1DVuX_AgsBrMTg!ZV!c*y1ACj}ClZ;ugjwAl2yHcz#D0UU;6w}S7W;Q=WWt4=>;o4=S>rud?Dj(WH4HM zOCHK3^4ioI{9-KV?p~A0(lcG)Xr4W-Pstz&$<_cPy3*nKE=0+}3(CKlQj=ZpNJWVy zTpQhzwtbO83XhG4k{090N!24H%y$UxIiFy)Y9_>OK`k>652H&yW{bg{>e;z_VU&*r zAFr)ppNMr~2FtG<*dV6728NoRl84Pt*n8!{%i0k0*#F1!x;_KCuGfazoGVNwdN zfhN?lPKz|5<2)xAee*Jt+zp}Ni6aFVq(|E^jDZOJs+bC zmYu$nW2YTxU92j!9sY}~%J-sgw-z(Qt&OSn<{&!kkRu5&P@}Vp0%=yWB60tS=JeHp z0rY+MgW`AG1NmAon07a|C)+@U26rQPe!2r4?$ejdKOaax>fRv33r>?!rvvEX5qC(6 z*E#a;pd0{O0e(ZYEdc*h16v~SlRonENyNd2=MDbFPnCTas4H-ZnHhL zHaCK>+{@(AO*i^2y(4_J8%&lCF{Y~%d|<=G)`X829~bsvEY5jx(7|9E%kFwo=5S&l zoO5mh7bYrGm$SYQ^J6EY^YrKilYWq+bXPP=wx`WJx`X=-b&*}_O!q{%z{L?>tiwYC zTAdXDB}wzdt9o+UsiqTbQST%gJaMNrk_FiKc(S)ut?7w*Ua%~a;+))_-s;#9Ru7J4 z?OX@bx>{wJ-$r1bkNj!Uou)7~HIB`lIGnbc@}9|>hL_rgnbURJ?vPR$!Jgi7ra!wl zLHYO4Bhee}=-!xa(7RljX#aGilknY)*Cq+OspRlB1Gm#XiRNo&5b$A+r~$%Qs0Sa4jB$RqwtysCG3bwKPWcY!rsiPBp!Ey!K9G^8>eMK{W{CxQB$c%Ebfb-RP2S)-=r_h?pPlL!WPdNL=q+ zAR{&g)4NkTlbIuxsrUXtG_8NRc$I0>gw8#wR8Yu@O`FiHj`q|$N*z9VD^p$ryf*l{ zw2#=yS~qDAGwZuH&=Ox4UWa`9tWyny$V=61j>7?Rw(TJJzA2B*G^-)I-3CCP)a|UF zQ#FYp0*Gz~aEh%XF>?q#yU&4j)vQ#DrqsG8$ORrdb69@ z#>YT@!94OncMr+2i-G>r-^g;mR+2X-LgABX2R2;$6VW4)uzjC@X`2~uiBfeW*tXhK zx~1|JdD?6kOe(cv?eEqRzuoQVLBkJBC%rWcKHrJf>z-%Fx^{rk#%gqr^9S~^g9}Xj zSw-@uwS&Fu+W{XhJ}v`iU1WLdM?l%&VQew}-L~15&Tz#}TdWCPz#OJg*g3`o`|v~A z5nDHCmtYId!Ba`%;}-DBt0xq0wUFhsZUgQ0dc%Ir0VMUT8?>$I2$w6ClEBKwz*Kxe z>*+b!n@9Rk9UA~=ZO6)7bzGr&zpg;1d&xp>wge^o&aY00Hd(EIhv}YSYC~5@A+F%?CWG7^(+u*jdc$?MD`d#Z#xNnQ2W-+i zNzQ)Kg7Nd@5I^uT@sDo@>Rqh>%-WE5;RfJ$!yo(R+a4Qg$AIOl!Nb5j z%%15M)slc=F(AC0N2uc-Qm-BcRdZjEUE#|kW!iZ4OJaS)4RT`4>C3ST$-ed7@GrbM(_OYNWnR$^u&0%bK6I`w zO&HY~QbrQG@R~i_+1CP&`E;XcBMMow8q)?E;I+ZmWs`m&Ts(m9!s?$k&=Ox4UWa`9 zc(4$*B)n26@mNT5JT{YWZocuXsdDq_Xq6g4yhG5Za>C?r;MRbU&>{dRIamI-$Uq@9c!3c>P5Ec zQz*Tky_V@MEM?;kkEN$?xXEgx7qH8Cf4v*F^t*8pyMg}OkDn&mz8io0M|hqgUcctB zV7&hZ(uEqeZO3L}`S0(aN@E-bu_7$b)}nBls29lmu{;xQhtu>O?U_54-+9YadT3Ia z=sF;uy_P1>%${}P&B9!9L;Q4_r>o4ovA&rO(`oR@JEFtR4J>BX1nSW4BwLVf1@w<3?m2#C zCha^SZOAP$VU8mRi7qhe`vP~Pur{zZLI9sW!`S@gmhkJN6=<6sW~U9@VH0ZL%khzH zNlh!*u|t4m?(^BH7mm>GzAkSGMdWRfS*1fe`)|T z>V`0b4}(Gb?qgOnbS*2~8U%^=KeKI0Gg!^hUXVWS7K@(wh6$Oju;YRae5|r(>#NN{ z@Wc1xwO806wPr9|t21=L{o=Iu`uLfa(5i1e)9?O^c{#~JDjV4R?)Z#e>(Ab#KO$a@Bj~ObGg!bmJGy;S7n*{5 z2%*)(Xz|fAPZI+dk>yN*ub{+iG+=oJJ{S7>X2~7r-24|ZSZxO z7^BBD;&dUzu3rN!@pa*K$hS`huBQ|B*uaDL-d3qfjy zY=NmdeLm6@M!Fq!mtE*ho9%D|65onheYb94^FEK2d$KuW_K-NO(e!M}Bj&fygDhGf z(ZJ??!rs3jXEoL6=hxln*{EN#`|G4Q#6EALIkCRnknXv=pY_ow6m9t474OdXLGlAoH-qo;O zQ`mHqK>u?<+`p>AgMdLGt?(y&y!g1xpA;f1I+Ow{9vCs}&0C19#aQUs)00`PX)QZb zk_2Jn{K%EX(d^-siICAYn)IKD@8FLN2h&oKw2x3@pDN=(MhW&}KC ztw;8UY543_xwL|vuo?g_B99Z_({EY1?NHdYEuOrM31W*bi~v}4iM$PsVHWmyzGKcQ z@yX>yb1as+6}_DKOe8B2LAMH+bwL}AQiZW z@ue8wJd7`|fe6$|8tO!8%sawssSj#w3+6|l#&}JNs9QPSXDRBI*EX;Jl#ji^ZrK** zGg+N_uJeI2dz9c~<&g#&;I+ZmC7znn9cQ({yU4s%OgILiV!EL_^wVn zFEpXKOB+Lv2l{kpts#vMFaV?0&1uHoOC&D0FXU~zL#F;9pf|jfT`|D-90r!qbhR4T zFKr61=URYuXk%!4Q45;wl*0xG#?-AF!>?X(pnGq*?0mCxOkOtxmdr6_*CLgmv~(y0 zxVL4u3xBZv@o_K!mdQFspJlx~hr)AFoq{Z&^ovy|Fywn?=)AzD49cmZx`46s?`|h1|pP-!}-S_M_U;w85pU(GxqWpKnM5 zu)e$N{Afxi1L}?SwSDT3|J%WozI!h++p}HiC-Ww-v7$Tlw5?$K%uJ!exFg*5u3|qQ znL%B189Y~=#o|uXu{U%GT-P1L_;~SgIWe}R^w9Jqus7^aCNHdzX++0>)uEeYTvZ{{ zTQ(Aw70w~%=GT~}#V8Pu9d);8t^*_X4TPn4I*FFcHDP|I!I1a*rEEl#yDVHg77WKd zExnD;81Y%Y_%{)+AJyM%2$@Cx(CS80{0>DG3pN=6GtAG+v`;pN4LAEhfw~>BuX2Qb z8|>lr>8@nt5=$7l(GC3d`;Z|TUhqA~914n(+)Y2#F^wK!kd&!IR>c^C&y&7zaPdZQ z+)rIt{KX$Met5Ip+YDjYT>M--`?v4@JC=y&6JCuQ!g{XI2OB&Ga(=}=ci(R<7;7~h zMwP!Pbs4jXoah?`kJ=TGQ{&~Zv8yq-%v```cy)$_^K@a+fe-A)4n6v+wmo}tr4M~m z@tK%y%#vO63a7!2CiF)-uvuFj>6EWqNi+XEVrm{mzv?`b4bjk|X7xdIf?<1h|43Kb zRmA^U6aR>9F&5~@LG@(Hu`cik^T#KTBD%+eVG#P;16^~lO zgl0Mow8Yni*CF3Niz}nqEZoCf+CG@>Estb2j$2rhk)vt;1HHXg6;CyOJ6+GGCP$xd2eC*>+l@s)j(4G-H$!*kMC$} zgJi!{d}MKh(?DIbF%d3jiT?HY_mrA6CM0l~So=8znv4sQ-7xl*IRvFa)rm1|)sY-x z$i~2rPl@7-bQ@y&G8t;h6T}DC?MeFXWC&Xv$6_XIAjPjogTpgV$Ye%z?1ZswZ0%R} zIOsk36ww2gHmPUb4u2-j)D5O3c!FvpW187*Jlhl95nKjrB(pEt(~$#xAj@2dRxB0C zoPE7vtoko9CiXC?8Ey$_)%hgqiyiF}e~)e3A1TX^jG-@9Xu{-bTT%%F=_ULwk+`S} zS;_|Dd&YaLxH?D{?;k_kg)L=1!+Nk<`2^a%V+o_K!QwVLj`~dA&vY-Oi0*gesi9gX zyVS^&T__(3fDnk>=i}CtXpjNng}S%xFEaPwh0999SE|utx3h2E}&!3 z4fuHRaWQaFWfN9TgCCvT$cf5Tto@4s*tRmF!y6UU*Tin=o0 zeL}o$*c}#{+rii3Da=IM54spN19#(jM|ZXv2yubUV4AiherVGL;>_H@@7zdsSuTfD zC2io;c^ziHK zj_E!l*#oOBg&5VI$V2Rgct4++Vj^?HzOn}fgX!@x8M)N4%Kt}YXoe@cO8jRQ%f zuOB-SlL&T$W|H_6+)uq0+du=nHu$>SdgjOO9G2Mg4Y3Wh#Mgz_A>TezW%dwf-yOD9 z2Z?nbg5cyHZP4CgES|aM3tQ4nVC}6~alq@w@VRFY1i{r(-NmEn#d)XL`Ovnq!`*^t zfrU1x?-FH#Fo>>HZVckrn=-GVW9a28$C-Jsq3nM1B-&*73fUv&zHCua3LSdcgw5j`EdFBxF9y@}X zkIyDOJPxpLOPuLGn-64ajT-Fyuut|Tpd$_LCxHHt$E4~^D;gGO12!)A$&n8xw4&My z?zwE2&9LZ1pIoPSP73!}@%~G-Y@sAOgFQt5$yeo&RguBu{>HQ-i-Oq!eK?o$nn=r8QXtPXKF>fMFovFvhtX;-t)sF(rJB)pDF=q+Hk(zFCf|E1v%jQOT z(!>7d5T3GH7T(K>I<%!YPplL#-B8Ex01SoYdMfUGy!g2I$_hl+%v5+3kRevY6fm7- z@o=-SGdnZvhpcBDeqV8D7L%_jBzJ)HyQ{E{~bZd=_6MH#Y}?>58N5kg$&Y#4%oDPYN66!AR@yU>H$+ zf*smkPZrPW0dHh=>_*ldGHrS0hWflwX+O1)iIeS?GATI&i4=)Rg%Gy zh&3_kl>+Vjo6DNz9%ljBW59TnRga0uz39MKtsz-7VIkWCY4lt@cz(IPOgD7`xK_7k z=B6u{?TA>|`Z-&ML1UH>4OPJxnck*u%Vf$x6g(1_&pu$^D!~y|E3q(D1jnhkvclo{m#E|{?)(fpL|7% zUmu`~>vPuB|Ngxq{gbaqV`4OZ|K8D2_22YQz9PMFzRCZtZ}e~aCtr~|I_m$X=%4g+Rt-a2=}-D6 z|4;f+ukQEn|1X{NyB$92{gWmwn5Oty=}-DOYxM8m|4F}}PW=7*|D_Z^9)F%e|M_{w zzd!%aU-7XD|9|uUx$pn^{qJ-C=Qo4?Q!d5t74@1y|Eb46KP%cnNofO9w3{MTw2vZH zw4WkXwD&*xy1!FJd=x+Dtiku}zx_0Rr;2#~L2gNw5821$YT#^1AKNaKU@BX3aKG;5g$IpNCQTOjW{&#-=JAVEhKmV>j|BR1+ z*Pnl%k8ra5`+W5KIp^>5(Ld{hzt8V~pWhYx34fp873*ikzREwTVx;`Lzw~#1>F@sM z-~CU;K5NzQ{Y}Mw```V~f5u70`r+^X{NMfgKl@Don>T;YpMT#UDW0?bzCZf={^;-f z%|H83f8THZ^IrbXIQeJX{FDC4SEPT(&%fj6KRWpP{$0^O6wjfG_E5a{{HLG%JsY>_UA9b%7kMH~=E#0hamT##;vE7BctLwX?Yhz!Bajo$~BS;%Z;4w8<{Mdl&%kp;*?WD&9$$v~DMOOZ?@3t5INN3xL>$Vy}tvKm=~_zq=CCGl{0CEsH zgd9eWAV-l>L_`<@h=i0O$B^U53FIVFj+{bHBWIAa$T{RZasj!BTtY4*SCFg7HRL){ zf!shUk(@&b8@)F7{r*T@^>E%FYj zMcyNI$Oq&j@(KBjd_n4wugEv#JMshhiTpwoonIMIK~xbnL>bAT5zrh!J9pm>{hYQ=|=IhO|Z6A?=Y4h&f_`bVMwXPKXs^ zjo2Wa5nH4SVu#oxT@eSw5phDC5f`Kz;)--f+>joKJ0e2}LJ>J4ARdS(;)V1?dLiD3 z57Ha)Mf?zdqz}>;2|)TGfk=O305T96gajdjkziy9G873xLXlxe7!r;|Aj6SJWCRk0 zL?basEHV-qg~TDFkuk_vBpw-uj7KIQ6OlEUC3@^53(28hm;`ukpsv<Ls3Gcz2BL{*A&n4iq%qP2X^Q9| z%@AFrIiiQ?BL;{e(gJCTv_gy!W5fjMRD4bT{@SHhv>sj&gSS>T*2~{fFv(`v{?heQY%-SR=d1RB@=f29_+Z>gQkEGL=aZQBs zNtN=CPkrTAy?4vsEEyu-xNxofeST9x=S7;lIN`fI#z;drqOw3@0n_E1b2rJa>P(O< zX1|mlY};Bei+Ug>x6puN_O5dG6I+@3^+KswdM5XXJxs;n`7k_lxZKLT81(nAptdvT z3rkNbl`U}dl$s2gE+{ogkTfk9(pMih3a5u(lcWe&`JSk3!NgIg>{U)XdD-a+g0*Jz zGX7e6-&Rm^&k_!P$dGD|*$N@OBZS(8xp=9KF!IQJAtUjL)R<&SEg$U@=KGzOPgXxH z^?I{TnB7)aurPiPuJ${HwQhBCo67E>=@=vYa?lstG<(S%F1rho!&&*uOLIxx*DPW8 zV-4YRae{O_^O<~q&P(9y^)l_W^ftgoP~Mut>YbKK-JOOC2SyReI`5U_*>9=f-_DZq zb>!<3A9PW6I*JM-&Q?i$y%zfVN;6|k1gF@UQeOH|>B=ZiLH+p-;P21dybu4msweJA z2JTyh?uO^(vz*k*G+Z-<@;2WZv_pu~I{EN!DZ<0$W@UVvw+($D?|glU;JL9~nclybAvo9Yj;_d&kDSC=29)1KN0M|3_&-!_hu>um}Ynm8Jk@t@0=hc5%4&ugCd;qS?R z7O!pov-oTIdhzk%$0)wOe0%ck%wNm53EvKUIr&)g{(N8H$40)Ke7*R5UeCP#`Frx8 z#g~Wo;l~HQKl1Isw+~-O-iOcUKbJ2vUq?Phd_J#R-iL2Zu_uibkg@_yZ4aQixp;}pj-6&y{VO;~Cl_Mp|xr@J$ zzPhpSA^4(PJ88c#wD~z{)>TvCUDzfe;L;K4Xq>uG`yxm9xm&l4w|O6aopAHsVfmpU z*X1_`Y^5hG)rBth7Q&(NhBAKrvv~M>dG!Y$A?DF5dik!U5Kt8(+~2P+HFat&%&}M^ z#73-Yum+phIgj4g*(9{`JJw)5#pNZjfYf;G3}Mdt zHbN!-QBRY$ONE|ZW&*#4;nywv+{*WbO=ohY{a=d(ofDaaUnjV#YnS;oS}lwYn%`i} zz}JzlJHG}ybLo{lzx95hymV}XSnx60KT}zLqxU{xS@+xq>%HYG9>G4Zl|o*N9+Li^ zIdZ?d+l3pJUnKroK92lc%+JxhuK0HIz3eB2YvW%NZfzv+ZP>KMX6aeL0pY>ENIBmo zJu{w5nI%QSXRBdyK1RI%avKAwy8e)G#bBkJ*AKrA$y?J*Sh2CKVA{QPgEeY{we-Gr zLWo7M5V!80#K(?bqw=xl*ZI6=c)g`1{*+SciD337zk!x^ndz7PIG7{^J}qbvUq0@< z4~ zPI#Nw60bd8Z~VB#`|x_;efVqn=O(_6e1GIM$!nF@B)@)RoE~_c@IL&U&aYSba`NTp zHO%Mpdgguj{>9Ig{92dy;q&>mF+b+;b0x1g-iPmZd^vgj^ZkNQ;LnU^1D`1J!n zHu7r;-iQAz-k+ay`98?&pU>wt#%qsXtMKzOKYsFa5I>&qdnSB*`F7*SF+RS$Kkvh9 zjMo+4k9Z$GpC1$cYcGgj_wqjcxXq9G{4*5q&-?H;|7^%#%j=Nuk9?oyefaT^_vhDs z{5;OQ$E)Gc*6VhKKwYzkDvV5%iH|8&0oup zll=I}kGH%JpU=;0{Mg0Mm3-UsK72mEPT<$B{2atwu~P56A?pVu}&&hUMow|O6a{NdL#{M^L*^FI8(6YtNDpZqw<>x9=2@6Y=@ zcda5@HoPD@%e?4++4sg1HXvUcT0Rbh|FYj6YDBMhy2K*-$>@LCy&h`N@vhFW_U=3O zU$$m}4YaC~foEa7`+wOVQ(VDhOggzS#T@?2Zf>CrZF`)QEiMXy|FREGO{0C@@9t5m zGh6&GJI7FoxmtCj{Xf~!|FRpeGp6A~=k`d~@~8i0Tb~>Rt}CyzR@V-(|FR1g+rW!m z?MT<+?(kps!1>0|cm0B+wypf(zwD?UJ>cx|L~&!aE&P}L|LVHexSG=~fa8No=%%ew zlSHM`jp(-R|FcrfRZ`GwyMyap^V&9ZWKj_F4^63_3Ez!BJDW zrKlMqnr5H(v)+AQJa3=R^L*Be^-IqVps5{)6lHxj#JRg-9Bs(gg^XT9;Ov;Q5$#_3 z3faU|;(YShPMm)+1~&e9Q*fSt&Yc2=-jvR+^&rm8E#6cj#fpIu4#fGNB~viqbUal= zG$ZFa%}(LEM|0_T(Hi9Z(CdmAe%zh1!GbtT@;hR|>HF#myCmZ55NCpyi-Ah_*a7FQ zA=YAe?RtunSE)I-|K5j++va3YI*vH2dXAeK0LMmkXZzB=5f zV@I6bHU*0A2~%j~BRAr#*YrP8FgJ>J$K)XAZGoxPMfI0(^OhCFIUylJQaya8c7C5l zocps4sj7P?I(y6@&ZE{&rLPuER-ci35a;5R^VBhpQP_5D9dWiasKKwRPfLx;6~y`G z9#lAvF{jHi6>aZ z*+#@Utyj~-&b*3^rTdVxhzg{wyW>zk&V)D*Xj%^~=f@ zs(32j>*7nJtsRN;vFx#QZpN5to%{kaJo=0KAZnV~4dKaDL<$3bzO5SNji) z1kQ3T6|{Cf70R9Uf^+TLd*WD5JcMprh@96p%gFz35@yu~0_W8mYDG(FnG`-H8900A znvwaeGI8t6X~cQQ`AF)!-X#V;jTD??GgiY7AvMyn&hG{1%0@$2;1~h}cc&xg>Rbga z8g2oFzK4)=f$=c$#R@0L(V9k_oBfl~z-sp^CmCCK^Wq z=TavCM}G@w8@p3*cBx-MK1oMVdtH>^Toa!``g-$3Ld6)t`Gz7Ih72chyP-^Q&iB7B z*4%z2Y!j5gIc=spTuI*}VVx&%?r`-2^UVK9`#UB9=ZCpZq(IdMcpp+z&3V&Z1-6m!(bSS*7e~d-xa^h^cca(ZcbO;!Fm=WiN#xdAaw-nx8Cgkkz zZc9Zcr&G<+!Gg0&^Hx0Sj3xUCR|Mz72Uk+$uAimwuyW)qawW|^^e%BR<{ffABMXqq zRfFJqeiU%_UZzcsC;i2Z?)kv^OvwaVpPZzw{CPTXR<^97`DxA7{{H2H^S{F4rP8y@ zz-aSr!P#r>2sp9P8E&=@2+mqZcZs4jQxfgdfwOS+gRsAip}Q}l1n0gh&UD<+ll1-` zBse!bTTILBn(@9?jhb_9iK~=Rc}P8WU;}Vg1qYz-;AF8NC=EC}1}h*tu2k$#8x5Rm z3iY5-r(YCjIRoc68C%80H)dpI;t!mU^mj{7U0>q_{W#$4?QIK-2kF6YmBWCu(YC>& zqjNpD2lh*xt@p2jhlvFuX@nPY*8L*_be6vtKbcMyoZDuPr>VO?1AXg2iSr7WgqiEt zL6(h7aISnF26>ldm|>vuNlJC(|OYRkD`!{$g zVFqw67~}<)A5DUa4-X~Ittmz@-v=P%(+a`a<*cS{el-#TUj_@#R$_oL4>3bik)tiNb5{!1;`a68Z`nL{I%Y!Fjq% zEGQJtxMxoXa*o_(1;roQ@ysu_nm^ZHyKCt@ntAq`5T!SebE5YDXRF4bSd}Mnt{xi( z)2{Yl!?|w+=fdtJ&`K}CD${L(^TMtO;; VblSTC=P1oc=Sz=hz-MKG^Pe(Xj+y`f literal 0 HcmV?d00001 diff --git a/website/assets/models/christmas_challenge.gltf b/website/assets/models/christmas_challenge.gltf new file mode 100644 index 0000000..257aa28 --- /dev/null +++ b/website/assets/models/christmas_challenge.gltf @@ -0,0 +1,708 @@ +{ + "asset": { + "version": "2.0", + "generator": "https://3dviewer.net" + }, + "scene": 0, + "scenes": [ + { + "nodes": [ + 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, + 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, + 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, + 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, + 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, + 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, + 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, + 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, + 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, + 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, + 100 + ] + } + ], + "nodes": [ + { + "translation" : [0, 0, 0], + "mesh": 0 + }, + { + "translation" : [60, 0, 0], + "mesh": 0 + }, + { + "translation" : [120, 0, 0], + "mesh": 0 + }, + { + "translation" : [180, 0, 0], + "mesh": 0 + }, + { + "translation" : [240, 0, 0], + "mesh": 0 + }, + { + "translation" : [300, 0, 0], + "mesh": 0 + }, + { + "translation" : [360, 0, 0], + "mesh": 0 + }, + { + "translation" : [420, 0, 0], + "mesh": 0 + }, + { + "translation" : [480, 0, 0], + "mesh": 0 + }, + { + "translation" : [540, 0, 0], + "mesh": 0 + }, + + { + "translation" : [0, 0, 60], + "mesh": 0 + }, + { + "translation" : [60, 0, 60], + "mesh": 0 + }, + { + "translation" : [120, 0, 60], + "mesh": 0 + }, + { + "translation" : [180, 0, 60], + "mesh": 0 + }, + { + "translation" : [240, 0, 60], + "mesh": 0 + }, + { + "translation" : [300, 0, 60], + "mesh": 0 + }, + { + "translation" : [360, 0, 60], + "mesh": 0 + }, + { + "translation" : [420, 0, 60], + "mesh": 0 + }, + { + "translation" : [480, 0, 60], + "mesh": 0 + }, + { + "translation" : [540, 0, 60], + "mesh": 0 + }, + + { + "translation" : [0, 0, 120], + "mesh": 0 + }, + { + "translation" : [60, 0, 120], + "mesh": 0 + }, + { + "translation" : [120, 0, 120], + "mesh": 0 + }, + { + "translation" : [180, 0, 120], + "mesh": 0 + }, + { + "translation" : [240, 0, 120], + "mesh": 0 + }, + { + "translation" : [300, 0, 120], + "mesh": 0 + }, + { + "translation" : [360, 0, 120], + "mesh": 0 + }, + { + "translation" : [420, 0, 120], + "mesh": 0 + }, + { + "translation" : [480, 0, 120], + "mesh": 0 + }, + { + "translation" : [540, 0, 120], + "mesh": 0 + }, + { + "translation" : [0, 0, 180], + "mesh": 0 + }, + { + "translation" : [60, 0, 180], + "mesh": 0 + }, + { + "translation" : [120, 0, 180], + "mesh": 0 + }, + { + "translation" : [180, 0, 180], + "mesh": 0 + }, + { + "translation" : [240, 0, 180], + "mesh": 0 + }, + { + "translation" : [300, 0, 180], + "mesh": 0 + }, + { + "translation" : [360, 0, 180], + "mesh": 0 + }, + { + "translation" : [420, 0, 180], + "mesh": 0 + }, + { + "translation" : [480, 0, 180], + "mesh": 0 + }, + { + "translation" : [540, 0, 180], + "mesh": 0 + }, + { + "translation" : [0, 0, 240], + "mesh": 0 + }, + { + "translation" : [60, 0, 240], + "mesh": 0 + }, + { + "translation" : [120, 0, 240], + "mesh": 0 + }, + { + "translation" : [180, 0, 240], + "mesh": 0 + }, + { + "translation" : [240, 0, 240], + "mesh": 0 + }, + { + "translation" : [300, 0, 240], + "mesh": 0 + }, + { + "translation" : [360, 0, 240], + "mesh": 0 + }, + { + "translation" : [420, 0, 240], + "mesh": 0 + }, + { + "translation" : [480, 0, 240], + "mesh": 0 + }, + { + "translation" : [540, 0, 240], + "mesh": 0 + }, + { + "translation" : [0, 0, 300], + "mesh": 0 + }, + { + "translation" : [60, 0, 300], + "mesh": 0 + }, + { + "translation" : [120, 0, 300], + "mesh": 0 + }, + { + "translation" : [180, 0, 300], + "mesh": 0 + }, + { + "translation" : [240, 0, 300], + "mesh": 0 + }, + { + "translation" : [300, 0, 300], + "mesh": 0 + }, + { + "translation" : [360, 0, 300], + "mesh": 0 + }, + { + "translation" : [420, 0, 300], + "mesh": 0 + }, + { + "translation" : [480, 0, 300], + "mesh": 0 + }, + { + "translation" : [480, 0, 300], + "rotation" : [0, 0.7071067811865475, 0, 0.7071067811865476], + "mesh": 1 + }, + { + "translation" : [540, 0, 300], + "mesh": 0 + }, + { + "translation" : [0, 0, 360], + "mesh": 0 + }, + { + "translation" : [60, 0, 360], + "mesh": 0 + }, + { + "translation" : [120, 0, 360], + "mesh": 0 + }, + { + "translation" : [180, 0, 360], + "mesh": 0 + }, + { + "translation" : [240, 0, 360], + "mesh": 0 + }, + { + "translation" : [300, 0, 360], + "mesh": 0 + }, + { + "translation" : [360, 0, 360], + "mesh": 0 + }, + { + "translation" : [420, 0, 360], + "mesh": 0 + }, + { + "translation" : [480, 0, 360], + "mesh": 0 + }, + { + "translation" : [540, 0, 360], + "mesh": 0 + }, + { + "translation" : [0, 0, 420], + "mesh": 0 + }, + { + "translation" : [60, 0, 420], + "mesh": 0 + }, + { + "translation" : [120, 0, 420], + "mesh": 0 + }, + { + "translation" : [180, 0, 420], + "mesh": 0 + }, + { + "translation" : [240, 0, 420], + "mesh": 0 + }, + { + "translation" : [300, 0, 420], + "mesh": 0 + }, + { + "translation" : [360, 0, 420], + "mesh": 0 + }, + { + "translation" : [420, 0, 420], + "mesh": 0 + }, + { + "translation" : [480, 0, 420], + "mesh": 0 + }, + { + "translation" : [540, 0, 420], + "mesh": 0 + }, + { + "translation" : [0, 0, 480], + "mesh": 0 + }, + { + "translation" : [60, 0, 480], + "mesh": 0 + }, + { + "translation" : [120, 0, 480], + "mesh": 0 + }, + { + "translation" : [180, 0, 480], + "mesh": 0 + }, + { + "translation" : [240, 0, 480], + "mesh": 0 + }, + { + "translation" : [300, 0, 480], + "mesh": 0 + }, + { + "translation" : [360, 0, 480], + "mesh": 0 + }, + { + "translation" : [420, 0, 480], + "mesh": 0 + }, + { + "translation" : [480, 0, 480], + "mesh": 0 + }, + { + "translation" : [540, 0, 480], + "mesh": 0 + }, + { + "translation" : [0, 0, 540], + "mesh": 0 + }, + { + "translation" : [60, 0, 540], + "mesh": 0 + }, + { + "translation" : [120, 0, 540], + "mesh": 0 + }, + { + "translation" : [180, 0, 540], + "mesh": 0 + }, + { + "translation" : [240, 0, 540], + "mesh": 0 + }, + { + "translation" : [300, 0, 540], + "mesh": 0 + }, + { + "translation" : [360, 0, 540], + "mesh": 0 + }, + { + "translation" : [420, 0, 540], + "mesh": 0 + }, + { + "translation" : [480, 0, 540], + "mesh": 0 + }, + { + "translation" : [540, 0, 540], + "mesh": 0 + } + ], + "materials": [ + { + "name": "Material", + "pbrMetallicRoughness": { + "baseColorFactor": [ + 0.16078431372549019607843137254902, + 0.30588235294117647058823529411765, + 0.4039215686274509803921568627451, + 1 + ], + "metallicFactor" : 0.3, + "roughnessFactor" : 0.5 + }, + "emissiveFactor": [ + 0, + 0, + 0 + ], + "doubleSided": true, + "alphaMode": "OPAQUE" + }, + { + "name": "Material", + "pbrMetallicRoughness": { + "baseColorFactor": [ + 1.0, + 1.0, + 1.0, + 1 + ], + "metallicFactor" : 1.0, + "roughnessFactor" : 0.0 + }, + "emissiveFactor": [ + 0, + 0, + 0 + ], + "doubleSided": true, + "alphaMode": "OPAQUE" + }, + { + "name": "Material", + "pbrMetallicRoughness": { + "baseColorFactor": [ + 0.6795424696265424, + 0.0036765073221525194, + 0.0036765073221525194, + 1 + ], + "metallicFactor" : 1.0, + "roughnessFactor" : 0.5 + }, + "emissiveFactor": [ + 0, + 0, + 0 + ], + "doubleSided": true, + "alphaMode": "OPAQUE" + } + ], + "meshes": [ + { + "name": "Gift", + "primitives": [ + { + "attributes": { + "POSITION": 1, + "NORMAL": 2, + "TEXCOORD_0": 3 + }, + "indices": 0, + "mode": 4, + "material": 0 + }, + { + "attributes": { + "POSITION": 5, + "NORMAL": 6, + "TEXCOORD_0": 7 + }, + "indices": 4, + "mode": 4, + "material": 1 + } + ] + }, + { + "name": "Gift", + "primitives": [ + { + "attributes": { + "POSITION": 9, + "NORMAL": 10 + }, + "indices": 8, + "mode": 4, + "material": 2 + } + ] + } + ], + "buffers": [ + { + "uri": "christmas_challenge.bin", + "byteLength": 74544 + } + ], + "bufferViews": [ + { + "buffer": 0, + "byteOffset": 0, + "byteLength": 288 + }, + { + "buffer": 0, + "byteOffset": 288, + "byteLength": 576 + }, + { + "buffer": 0, + "byteOffset": 864, + "byteLength": 576 + }, + { + "buffer": 0, + "byteOffset": 1440, + "byteLength": 384 + }, + { + "buffer": 0, + "byteOffset": 1824, + "byteLength": 17280 + }, + { + "buffer": 0, + "byteOffset": 19104, + "byteLength": 15120 + }, + { + "buffer": 0, + "byteOffset": 34224, + "byteLength": 15120 + }, + { + "buffer": 0, + "byteOffset": 49344, + "byteLength": 10080 + }, + { + "buffer": 0, + "byteOffset": 59424, + "byteLength": 2160 + }, + { + "buffer": 0, + "byteOffset": 61584, + "byteLength": 6480 + }, + { + "buffer": 0, + "byteOffset": 68064, + "byteLength": 6480 + } + ], + "accessors": [ + { + "bufferView": 0, + "byteOffset": 0, + "componentType": 5125, + "count": 72, + "type": "SCALAR" + }, + { + "bufferView": 1, + "byteOffset": 0, + "componentType": 5126, + "count": 48, + "min": [ + -14.650325775146484, + 3.552713678800501e-15, + -15.102669715881348 + ], + "max": [ + 15.349674224853516, + 25.333101272583008, + 14.897330284118652 + ], + "type": "VEC3" + }, + { + "bufferView": 2, + "byteOffset": 0, + "componentType": 5126, + "count": 48, + "type": "VEC3" + }, + { + "bufferView": 3, + "byteOffset": 0, + "componentType": 5126, + "count": 48, + "type": "VEC2" + }, + { + "bufferView": 4, + "byteOffset": 0, + "componentType": 5125, + "count": 4320, + "type": "SCALAR" + }, + { + "bufferView": 5, + "byteOffset": 0, + "componentType": 5126, + "count": 1260, + "min": [ + -9.59850025177002, + 25.06179428100586, + -9.744625091552734 + ], + "max": [ + 10.430252075195312, + 36.69747543334961, + 11.216736793518066 + ], + "type": "VEC3" + }, + { + "bufferView": 6, + "byteOffset": 0, + "componentType": 5126, + "count": 1260, + "type": "VEC3" + }, + { + "bufferView": 7, + "byteOffset": 0, + "componentType": 5126, + "count": 1260, + "type": "VEC2" + }, + { + "bufferView": 8, + "byteOffset": 0, + "componentType": 5125, + "count": 540, + "type": "SCALAR" + }, + { + "bufferView": 9, + "byteOffset": 0, + "componentType": 5126, + "count": 540, + "min": [ + -9.195235252380371, + 2.8779759407043457, + -10.1021146774292 + ], + "max": [ + 10.866759300231934, + 23.122024536132812, + 9.954167366027832 + ], + "type": "VEC3" + }, + { + "bufferView": 10, + "byteOffset": 0, + "componentType": 5126, + "count": 540, + "type": "VEC3" + } + ] +} diff --git a/website/o3dv/js/website.js b/website/o3dv/js/website.js index 92cdcb7..1293e4c 100644 --- a/website/o3dv/js/website.js +++ b/website/o3dv/js/website.js @@ -163,6 +163,39 @@ OV.Website = class return; } + if (this.parameters.fileNameDiv.innerHTML === 'christmas_challenge.gltf') { + let meshUserData = this.viewer.GetMeshUserDataUnderMouse (mouseCoordinates); + if (meshUserData !== null && meshUserData.originalMeshId.meshIndex === 0) { + this.navigator.ToggleMeshVisibility (meshUserData.originalMeshId); + if (meshUserData.originalMeshId.IsEqual (new OV.MeshInstanceId (59, 0))) { + this.navigator.FitMeshToWindow (meshUserData.originalMeshId); + setTimeout (() => { + let dialog = new OV.ButtonDialog (); + let contentDiv = dialog.Init ('You did it!', [ + { + name : 'Cancel', + subClass : 'outline', + onClick () { + dialog.Hide (); + } + }, + { + name : 'Tweet!', + onClick () { + window.open('https://twitter.com/intent/tweet?screen_name=Online3DViewer&ref_src=twsrc%5Etfw&text=I%27ve%20just%20solved%20the%20Christmas%20Challenge.%20%E2%9D%A4%F0%9F%8E%84%F0%9F%8E%81%20%0a%0aCheck%20it%20out%20here:%20LINK', '_blank'); + dialog.Hide (); + } + } + ]); + OV.AddDiv (contentDiv, null, 'You\'ve just solved the Christmas Challenge. ❤🎄🎁'); + dialog.Show (); + this.dialog = dialog; + }, 1500); + } + return; + } + } + if (this.measureTool.IsActive ()) { this.measureTool.Click (mouseCoordinates); this.sidebar.UpdateMeasureTool ();