From 9d11b0006e739e46ea8607e3d70dfc59f3957f41 Mon Sep 17 00:00:00 2001 From: GuillaumeSD Date: Sat, 2 Mar 2024 02:27:47 +0100 Subject: [PATCH] feat : add lichess cloud eval --- public/analysis_icon.png | Bin 25394 -> 0 bytes public/back.png | Bin 795 -> 0 bytes public/back_to_start.png | Bin 1122 -> 0 bytes public/best.png | Bin 1482 -> 0 bytes public/black_bishop.svg | 12 ----- public/black_king.svg | 12 ----- public/black_knight.svg | 22 -------- public/black_pawn.svg | 5 -- public/black_queen.svg | 27 ---------- public/black_rook.svg | 39 -------------- public/blunder.png | Bin 1688 -> 0 bytes public/book.png | Bin 1341 -> 0 bytes public/brilliant.png | Bin 1272 -> 0 bytes public/capture.mp3 | Bin 6889 -> 0 bytes public/castle.mp3 | Bin 5353 -> 0 bytes public/check.mp3 | Bin 6121 -> 0 bytes public/discord.png | Bin 3100 -> 0 bytes public/excellent.png | Bin 1328 -> 0 bytes public/flip.png | Bin 520 -> 0 bytes public/forced.png | Bin 1297 -> 0 bytes public/game_end.mp3 | Bin 5353 -> 0 bytes public/go_to_end.png | Bin 1084 -> 0 bytes public/good.png | Bin 1452 -> 0 bytes public/great.png | Bin 1557 -> 0 bytes public/inaccuracy.png | Bin 1523 -> 0 bytes public/mistake.png | Bin 1360 -> 0 bytes public/move.mp3 | Bin 3433 -> 0 bytes public/next.png | Bin 823 -> 0 bytes public/promote.mp3 | Bin 4969 -> 0 bytes public/save.png | Bin 376 -> 0 bytes public/white_bishop.svg | 12 ----- public/white_king.svg | 9 ---- public/white_knight.svg | 19 ------- public/white_pawn.svg | 5 -- public/white_queen.svg | 15 ------ public/white_rook.svg | 25 --------- src/lib/engine/helpers/parseResults.ts | 2 +- src/lib/engine/uciEngine.ts | 21 ++++++++ src/lib/lichess.ts | 51 ++++++++++++++++++ .../reviewPanelBody/lineEvaluation.tsx | 2 +- src/types/lichess.ts | 18 +++++++ 41 files changed, 92 insertions(+), 204 deletions(-) delete mode 100644 public/analysis_icon.png delete mode 100644 public/back.png delete mode 100644 public/back_to_start.png delete mode 100644 public/best.png delete mode 100644 public/black_bishop.svg delete mode 100644 public/black_king.svg delete mode 100644 public/black_knight.svg delete mode 100644 public/black_pawn.svg delete mode 100644 public/black_queen.svg delete mode 100644 public/black_rook.svg delete mode 100644 public/blunder.png delete mode 100644 public/book.png delete mode 100644 public/brilliant.png delete mode 100644 public/capture.mp3 delete mode 100644 public/castle.mp3 delete mode 100644 public/check.mp3 delete mode 100644 public/discord.png delete mode 100644 public/excellent.png delete mode 100644 public/flip.png delete mode 100644 public/forced.png delete mode 100644 public/game_end.mp3 delete mode 100644 public/go_to_end.png delete mode 100644 public/good.png delete mode 100644 public/great.png delete mode 100644 public/inaccuracy.png delete mode 100644 public/mistake.png delete mode 100644 public/move.mp3 delete mode 100644 public/next.png delete mode 100644 public/promote.mp3 delete mode 100644 public/save.png delete mode 100644 public/white_bishop.svg delete mode 100644 public/white_king.svg delete mode 100644 public/white_knight.svg delete mode 100644 public/white_pawn.svg delete mode 100644 public/white_queen.svg delete mode 100644 public/white_rook.svg create mode 100644 src/lib/lichess.ts create mode 100644 src/types/lichess.ts diff --git a/public/analysis_icon.png b/public/analysis_icon.png deleted file mode 100644 index c1dc093ddd1c312d069a2ca654111cf3a147bfb0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 25394 zcmXtf2{_c>_y2v*4932b>-;I`&9pok}EYWXm>EQHX|Qr;tLHtf5TVniix) z_O0wY+0FkwpYQ+oJo7xmGw=7kXMLS>&pG#jg_!{}!%+qR05i@|*Af5({3imSY2mMp z;Getj7vyhga1NAp3d{l^0&u!#F9bU+WYgCN_HMT?+doXHyx^+GXX&n(a<`}8IlW%2 zuGqEWL*iE#!)Q?}dfWrC$I_2o7@mC+P;wPAD%^`aZ6{n*?%&zCwYPNn^}FQ&$7v1c zY!$8fx?g)`q2=#>t+Sa);t~J*4qKu z?^j09^?%PD5rr5D>?{q9p8tO#9*~3l|EnsVL+}7`fm=bpQ6?nnM-FJw{qHXm{9X7z zef628wT~#wFb_#)b~+GDG~3Wra1gFRrRXtN;EfpLnWYSKko>^KG^_O*a7aAdV*oZU zB0DH?&25nsi1cT6ddvSXluV%@$)Dz3s3atCR)FgQuVlYIAr#oYT+WGDN{uL|72(;H zh&xPBe&YwW1=|xGXTezJnP6My zEdO-uEWEgp@Q0{=1!|IKnQ{N0%|uJLsvP5h40LtKfKC;bVF{dlZC5K)0T~* zO!9;ghfDJ@do%V=s+kD=J)_4DhTJwR)=(>)AQycCj0q4aUw@d`UqeV*JcY?|ywa(y z0^x3&NBDz5WH5#hJSQ9=<4GsR!qz^2r>m8ftd5_7RbX)pwup0dWn5Jf!^-m8s|CW# zYyJ&x&J67ii~FJkR)l)Gi-YzpC5ZD_EWGU5XzPcsh)XEE8%U&G$+KLj%~obd8|W1Q z^{A;W*JAQLQxZx;6c2UN{~cEon^m2~QRqSK%I}8p#2vBIOcZ3LvM&eOSl{$xwpvs? zy)AIjQh%G7S~jF)PbMndldaz&vN^Bce5!58v}2cY#;gcRpY2I&tNp&7eQY@TblS?7khDu#y?Uwn7UD<@v0^96(=M1A_> zG%PLZ@X03`ooh8COz%IiGJ*|#BVQqQ#=ADS!`h7e(Y6 zo*U!Wr*4rBFXE!#HkEYC4JgpCvG1fxxBK$nKzw7bS3SppRKGh_o>}rsC7rZ_wgpUh z6A3+Rj$6kMRsuI&w?xnfl&i#wIVeZ^s*`11Uw{2$ijReNWDvH-jlbDC2FAa3z-BVG zi;CcDgro&3#o2BLrjZ0-tGQ=JhuZ?a7=jnW;+=1*QOD`Sm`VPI?NMi?VDuDbll5US zY)~OQ1^q!X%i)i5?MLzkCtjdi7qr<)jE09VUKu$i(x(`aG{L?2tb!vYE4{*7JL1>P zW5~tNbo#xE!x53Rz7`L)X8I6|>w%2v92MZxE&SgM3HOBUH;9T5=x^=y=l2Zbd^>Cd znplD}qL~wJ&J0hB;Gv{dt)yG|8$Tma1a2kO-WTcESEw>tw%qdA6Kw40Y!m!Rm_sGO zxv4gViRYu*nw$qBIm1c)dFk}~Xwn&s_*z~vef%BRN?cpy+<$XDR}J*fSRnuEdqWtZn)4k}7+ z-lPlp``H1GT38#@`>a6ZL^~mwp35Be$Vt%@uD;z7)-i8*tG{pva+O+91AEC@5&w!E zqUkq`;b+7T$*;`og%jq(Z}xV^5ZMF!$*6}I7=S)h;2LNM+aLQYqyIAa zd~~|+$4|OwP|*9?UW$(n6;vZT{_9j@R4Qz2)u=#RjkM>oJ6P)Vvnm^bR|`d~8jZce zn9sgF$%J}$_gE>c z$a;_H-iBgtbSv*x7ue?_DS&+z7;eOlecg=6@S_!TFcvUMsfz}3f`G2F3@8$hW7u^v43r0}|zfiupr=H_mFg&!qedjdS-9e)0sjXg% zXO5M>snS$zi8W$~h$+nFyW#hpkA9zgm{Jn1&lHQ3dFU^_#$> zS8i@$6W#h?-@G8V3U`?AbaT2)2isE&Y7rHVyAMhpnk}*gs}OVy+iT9lK_dZ{BJ&1u zBK(G&QQhnFUoVw#Zl5CfzPhbMF1Jzmn`O$8#N|d)%c8yI9z)8J%S44aIxZttHeQsa zsQTo12q0nlALh$Rvs}o2vgA2hapCt_QyI(a681witfTbfN;_KG+%+GA=ZqwVQKaZ( zw*KLXpc^Uc-22A}!-h`ZufHz)ijsk`>?JVjX#uSzZKPZFNE}6-hfc$s+*96{U_?+b6C>Q_-h;@v+GK?buwrziMBL*rsE^GAZL3~dtxkkiic3~HERkR6ZR9CBuYrG&xw-qYU3Dv- zJWWpX3MHSv>ZhN#TtMj##b?W*WK5%+?-iXVuF8BPqwL^JDyiay@B1QzZ7p|COYzAj zAykQu;Fyaoaxl;bqxbV864Dwei;?O%)Z>80xqpyRN2Tx(5b?5#V8WudZ`x&%+<<`Y z8b9qd#1D=NwwESL2JH0@To%xCMS<|}&LF{KlAx6ee1^Ljk#B@K3Mk#Y&tdB)GI$m|{`Oee)lMZ!PbBNW7*W~(!p z;EwviOdrNc`ir4>s!MirMSW)gI1i*c9qF^_2LapD(39b)Z-;Xu9YCiKO5-aQxMo5N07xj7MRaBJ12M$6uf9WcyLqdHyNcNAtL>p z_0YND%#8o3z9Py8F6^gOWsU47EuNmY5Lipktz0^hK#)~tE)uBAQo+e#9w&e{Y>*|W z#pLb_ERa9l7dJekARg*z^bDmh0WfXc&Azr(*Pc!Grv6@aTFv7skSg1T$x}sP7QvW2 zSV~Jcf56W%?e}P5l*!&gDXNm5P>1L*nu0t&{Hs5#XC;5JdpT&GffYyfbUJ1+2d5s; z?bEq8A%dC6tSX59C-FqmbrhjM2Q*zt$=8Z3isWaxWca?r#3YXkF*~p{xE67bH}iUS zSWWw7QcQBZO@^7IMJ86Ns=C&inK!9glfc=ydqLGRg1yvs zLW}4g^ydfM_aV?dj`xMJ+#-%NMnfntg<1szJEZ9%SjWhiNrAg?bT!5HAT2*Fsl+XP zT4<-Rk&uRV-Cdo27gU(+fZ;=h`}Iq8JumeG4msuvOpW!v6I-rKOv*s z7YiMiKy46uNqRP+x*t!2-MzByH?qv2nI2$+47OIc5uI&p$rcF`cjQc}W+qJPFAYwr zU|J&YB-39IQ*?n=AdvW4_i}yud)Bd=n3jZ>$@EMagaT`*iIEf-y)^SNJMKqJ<72IB z1qVTO9vnvsK+=W-@OeqTa{YHAU4<|?lIiu;r9^r;U94qT(K|qrHMoscJhPmcv|sD? zfZjw*Q5{MuqYr1nsvq!OWoSN75DVEpqPct~6U&xV%|}RvN-sVzbW_`sxuopz!Wi<@ z?fH&$lQ^}q7R>>OAL}SI;t{MziuPMh8P;zEC`Fy;Ou9t}Dh1z@(Pwp2es~Fd^0+JR zoc|@79n5;KOhZ}~`jnUy6>rT2qct0yxs<&th$=S2QAT#x;O0wn($%G`G&~xM^aJ zC{$l;)Fdmn|8(E#MY)P5b<*g9(!EYg^UK#JEpD|kRR|}2q%HIEkK=(^X5HomoU{epI+MIlI0fmEtw=`F98xH=urcuV z?P=i?q-;13JPJn*X)q!A?TC=1ndDo0of!wyag-4^Sf;5k7+;uA6YezmC&CvMo<)6F zQe^f77*XS3ea@~R(uC1S$im))A*BqQQGb3@lb*!6_}xQSe5vf;Ijkj${o!)zpU@L| zjruKmE8$@(6`EsjYcHgLq+3z|&Rf1XM5%h(s2~5`(HC^|#oU|;9zqan!3sN&WfJJ2 z!?l;i{D`GbkpvT`xAXOtoH`J}FL)`B<7*q!nWLr@XXHQ~x&37z(}Q}^s{^K9F;_m+ z@QA~>^WjN9i?EKyovHQq?(Xj zVNP?BG9NCrer)gX=t#gt1mqp~*ZmbudJRiI5;z}SskLY7keJn(eytX%Wts;NL>8Kr zHwcsL_ErUCa8kLDd34!VrAu&_xol(7&Iak2jwj4VVIsADvNSkLD(WJLkD!%O(SOXO z5zOeR?)Pu)joCk0g9Un#vKD3)M;g2bahjDXi_{K zS5Xw_Co>oxHR~!>BKD%*zzMRs7$1~CH8KWFk{B_Eb!>ztLz_Hx6?f*Ur6lED7~&KI z!3G(7WLU>E=CQz>X6v&@>3i1@Y9b=DLf{-~=r%rh0y`#&nIydVL7;b`MxcP^mF=J( zQA&xv`Ru>DoDOL~@9%Ng-at~d z9ARbV?JS9~V7&GkId4_CgfXwSf5EoF57{!4yr8=Py+wZd0)Jjuluxs%tbHBDBKXKH#n%Fkb1Ftz(i=8#5`3U~(^uhX9ZR+|OJ;s2bBum4Cq{$Tl5B37N7w30 zBSp!H)?ah=YDZ|Wp05f#B7?r&F|5*Wl})H$rYyUb1bD$E#8Vte)!}RG-FrbE(P2(T zYZA=Ao_bjm|Ix0<09kYQDHx^;Q~KV$Gq=RC6DDS)FHbwj)yAk|c4D#;s;LWn<4D?Y z1$(OY9_2M{KPVZP$R8!#@~SyPx-C0HlSi*hW*uvTKC>Y&6*<9CwSH+!90YyJuneD^ zct`mwVM5q-^rwe8YC{(+*Z5w0KSD5M{&gy;;186=B66-v?a9R0R5C87|H3`5pFiqA z@EJm1&G*Wj`7jkS??2DzOf|TG_<&Hb!nUmf*n7gzvl&xj!4_)iJrj|%1bMq71$Z7h zQrC@VOZvqNrU3J_nH}x+ME^F?T;gV?=*Jr@e~S&zT=#lFpQ0o3&O9RY6pwlJMmALFbLwiN+JTh>C=8 zw=R|*l{8Wk+HgRSv`5!d^gIaC82Fd#^HST)uW{%vb{fWNc?hol%KJs1h&~;eP?3jG z$b81as{(NzIR=+DyXC@AOrr17r>czR4Q0&_d+R*UslPT-8v5v#yvqjY5b9d|h;K)f z?1Iw2jrq$2ejf*@uAErev4ZNel4am-cS^KO{({*s{ z%9P}cJ7{a(6%S<$|FX2N+lLsV2O~ca{im!0 zHApvmeUL=nnn9^PZ@9Lq0pZjTzTR4jDI>f<+q4m^-plkVKA0L^TDwV0Hu#Gw@qkvo z)pMqE68OAAPLX-LY-8f!x@0_zxuFGwv*R>1KQ|huW>3!3@>|L}m+tQMhkxFc|-<<>4&Fcl_`~<#7?d%lE2q zjtm5I)di2YKC!E!+YY1p_2IDHzCjnLudjle9dG1fcqzYWJ+sQ;Yyvs9=8u_XK3u6$hOwHRME~vQFP!|yzg)rfLBl2GP?c}J-DDORIk$P~Kupra*ysR8 z{Nc0z>h3=!lUPvg%+E_}@AA&X@=^xGwS1yh9g!*3N(5&(3Mn&%mj9{2u+9xL@Wb5= zi<1zJ74kLvo4qnI`V}PnU{5L#J$1Mf&TxPAsq5dn9&ow+h%$sLg8ENb(K_vC@~2f9 zdJj4TeEa!xP8Q(KQ?{Ve-uSog`rfdT>o&dbF~j;hf`V{CNVdLNzd_N>iP0e@#$^P% z*cqoCmnQ=}AQQRmdGU14NLuVnjS$)6Mfpbw*e9r^M2sLko)TXlyy_FEc*bz;#J7vT zO}xAq3CX~Pk1m8EY%p2N|DoUUE7V2?BZr}AbW4>J3)B zm;$)ugVpW$;^pCS)Q=a`=jt4oMR#6<^(D!kv|$7kvQoj9Q71i{(7^H(`B!;4ox0sbutB&(WA|YreFyIzl01s{U4Z`HCY||8L&1nDz|F8pR2bf|Lx*nnAdAG;oMT) z#lpATWOJKu3t=!Hl8Vd_t^~17PslX2iukPLv|og(!&YA5p;R=>Lo43E{6?yWa!qgi zzimAttM`j*egCl^$9es)KK75#DdBC8z;iq`+jU}ac98ZZ&9=@n)k~qq>+ITslU-mw zyhA>m__2V9p%3Hk3Wwi1%O-dzwJ4GqI5Q+S=yYT6D0y$I=M6vA$>kxO4^6jgciJc- zHYU>-o8tBPWWjP+(?f^-K@OnvcCVSAoLqHqt6vco%UQTGZv(VZzLPu}Gg1`SXFQGD zYR7?P*1W}2S=BG~>jTGWe1k#{=Cd04PePnPWL5_RdLOx;yPrv8w=pq#9|X%0SWkYb ze>#w3uonAc?0a#x#!4K3TcP2tcBO$go+b^}Ickw{-D;-hVwwPOQ;oX4^V1wKgI zq9||JR=`A-3~lAMnhe0)qbo_f{zdIe!}`D@k)5Va`+(^GL>%RQ+1{ID%a<|Yn9y2s(ZL>nM!Nun z+dW1Q+?_WPm(M-B_Bi3^lo4!FCU|`~;X$k{NEfe8Xwy{dJ!G0AN8+^k*#Yi@<47gr z7uT4rh5;cxrMvO}x#)%&wr3b}K#b|D#IM#yGTU;$Vewl{j8KyRwKOZM3?lxWYqB6{ zwYNDd=2LAtX&Y_0iy^$0`8Q;K$bHuOt7?B+GY*2Y{{tDsHLm^_x&Dt+8Az5%n z!ZLQieS2Ao!jN>sg%6f<0YH~qS6cUCiv>PCkE%Vi*E`w3Ll#!K^lBc?HWi~T(HGd1 zHs|;r>5ik6=9N1~ti(l%!=b=#R?xa?yYcm+C(-`aV1d0d_2C<^kFw&sX#7G~%kNj- zC_68AXi85wfCMf*@qDo(WT15A2(=KMh7CmVtTN5CHUIv8^xMQ}3Q%Vx{rdLkY*Ed< z>1J!3(|7k0@2}LJrwm+Gs{>;CWWi~!)u`r&`!cTly%XA1z;OA+p+)^x^Hy?LSR4I> zCsmK#j1VpcsjjH91lyazMS#H~hlnw8xs?to5 zBU504GyyN@&#Qbk^Zq#}PM--02ehb1=z^`^jUZNjvDf2dC^z9MB%u1s5yE{*VmhDV zC9^=LT*A09*QYGnnkaeB2@<#tmd!zG`cK35$h!H_c)E@k%!z~o6{s~Kli6*?v0iXA zVam-7&L!+cEcz$32c#$xI@)mn-Ip@{{LRm)MT(_CXCNd_syVQo?KEgxSR!Br8U~6V%r{df$ydCI#=!XGHxy0DlmYn?FJ*j)ge|4K+PA| za~mg#nr>I(zQNIi?bG$uI`s9+7rASIj!DtbaMRCMzd)@tTNc#Rxe5k8<&( z@d+RH?lC#(>#M9m-^V4^s%aaw`-@+&gFWb22=q>vT+SM(JA8t3CJoyj*Q|#{`ai2^ zqnyA@{(WFYgZP0apwsJv?lt&-^`jx!?;b=x(z%*xgs~vO%PO|C%3NQi*yyHWF5M2^ z<T`0kD(*?^&DGb=tpNGoQlWv+jz31)De^B9%lv@0CE)!P(K(j$!aX+1Rq$AVN~ zcv*|WfWLR{)w_pNqW1>8t4u}s5j4kP&8oPXUyh@Q3-Y~bAL}IB*?>}-G2(2-=jT8F zVYby}|X4H#saMw_>=KKE)7EqKdgy|7j}S%6Y)r6&9h7-hI8$QTXz4GWMWNRY=xG;VZVF#Bf%SAx7*M9M&F z#xIebAC?Jq!;;-9QS9=E`CJgA!XaOX_gin52>wP+O!MHT8-8Z7mmSO_>MJZnB8`Q> zRaa^u!bC*zV_W0}vAjGf%4k6wMJ)1qrj&&N&|)CXe#`8(NQjI3wT|=du`n)cN70(% zTjMClbg^gSC{?9pA!)P!tp;KY0H1~Lzb<7&@RP$`Uy-hv;+arQ+mxV`QS91| z4*&Wc9!f5;k*Pe9!u?BQgU=qp zUd}sz3vb15>WN*;^t!O1VVZXf;j}OH2>%`CvW-ILzS`_L5v#5vj+#RgR-Q%9>)S29 zCq5BC=7r99pNNE?l}$YVnEI^tov&@06lZH8cDJl_tOQ(YxdbQ(3u(&Niz@aXoN*&> ze#dF+jnh^Y^vw2*kfLzerW2`l_atn0)yFM*vx@@|ZU3FpX z4SaHnBJxlqO63v7T@4F7lzVkiUC0$QQGzbDhq@Byre*kxO%1)EvlG-AP%&okfB8?h=6$d^ zDZtjcoE-W`z>)o>3@`&Lt!42y>a%NbPD8%gWu2%uQi^w}?mO;&5%zRxph;{J+hhIq zi3z5{=n>LalgMs0Kt}27~=fViSDD*UYKw&i4Z7+E6r#Ytm z`Rl`Y_to4gPQ|0_7OLC^9qC6QtHRO$y~s-_dK~YlRdkMOk53Wx{-WU-9)D>tYBJqRS4>m6 z{AG9+kw+I=rNDyg*0VmTxi(6q7KV8#fQm$eU}3(k`GZf>qvB#2Fd-B!&@UqoAElCe z;*a+_;l6-ah3MF+U$+`W+L(hj6!)i3ZeIjuxxO!+&z^W`HTu)$VD6-n+VbWB>TATE zU^`98loGfv6&Go|;kdX-C5XLd_7}|?O*ob@R5z+8OSE02>;bI?y-9gQ)3$=fyZd8u zFJWML4RUZwKU1xusHVFzDqvG@WSlF>XKrLB4N#iJKPBmb2Xh@~&xZI82I>XeN4~iZ?i4#UM zZlE+h>RI#%{Yo-rLAf+3oA6t6z?<1=fAG(s@gn?|1o$=A_VM@8cWEvUgqYms1L6uL z?s@#N-S4|znciT{YKaP7E!Sk`>4dWk&M!KK?{B;~>Y#2+-7p9YNqrHL^ZuELqi$&Y zleokza!zOTj1H1c0#=Edc8eV1hB7>4(j^*lVUc*;0u@z^7@G&Ga?cI=)Yf=0#vAxF z!5g^o^Q)y_S)*Cb!F&1m?7}eQI`~$+=yU3+t5>N?RDk;HD=#*d%mh*2=ofs(Adh>P z$>j#>_3kZ%yGh$o-;3O}MVYt=#8IjY-(S08=5{QDijAiLt9(U~4beev-!sZ_?w1QL z5%}I{Kkhb-v@AfwRg&SMTC{Caz}>M38FEmN+EMRU3RK>tpp?1uK6*sT45Kf3(df2` z-*Tg8)WI<$c&p`z`qvT-3b7FoN{%6tiJJR=*e#g4Vq0G4H4F`BhCxG{bO2f|I zZ+NKhX2EdI#`P}an692*Sl~q=Diz~OAo-9sXPUi9#ZQrIz_UBC(mt`Mo({4U> z@*F!`9ObHE1g80Wg`OiDyv;wvO6PH=8_yCBa6-f9-bKGsl0P&+1pmWps6-l^LwV}0 zC5Hd|5f_=e!Rr&MD>mi~giMvnwloq_sKTHFlOp&Bv)3@Jvfo#Zd!|;Ka0G=0es`kv z3PX}o!yf=RE&58JmyE}v_Nh5&OGy#j0D^s-6|vHG?$o=uDJ#aBch*%B@^oVupjkIy z5%FY847RChHFlmi*GXa`JQM@szUQg@%f^FZu;&eNlC}nvp8vVsCHYqGix-#8yMjz8 zHd?!IHz@5%ND(X;N@+`P_zv`tuoCkIN%md%>wf<^pcW`1d{L8Tdy{$}mjf<$UzvBHGg$O{A>OiT@xuU<7H`gnhw}`j; zs<%hqb)WDYT+pY2QEg1g-Yz2-6lv7wB%alnOg}`x3c@;Q50pz8cfusf{`{BzEtM-q zee!dcpj(+|Kle%MW~@O(E({{#X<1`LXnp>8&NrhxI2}Zg{9U~&iq^_8JI`|lmTE5H z_^HQzuTYhOtadjJDsy}@?(*`m;&@0cxQL*EGYv!P=%4IhTw>{EdnNj1An)ZDsoExf zPt$K4tEebYpW&rDoEXcs3P4y<_1+6T%~8I}zLHtJ?R-Jw>fq>^C=CRj4hVaV7F@L3 zW+$uIzdH59NaD0yLf^ymjI_o}HM%g9Lorn$drDkTGpL{;3#*O}{=Ja`cb6kEA$tBb z4KLiO6wHHTo8guV%0myQoQt9^*zw_RUYtY%Z{pj<;RT8b>$vPJD!?J%PO-2}8&N!T zYxjknJYUw9_|D&p_I#KB%yQdjmCuGgU9T!I_pI?FzBxAw0t{)<&A=6VF%iEud1~Y?rf$ zIIvOfP3`hAk6$-^B?s;#6|B%6ae|CZx`*2=N6V8WEEr@=0a?Pl%k}tg%vlw!_%d*;A490!P@e#CZ6|CrrzHh zIP={TM~4VDl`@c#va7m&pK|=r*zd_PSl?Z$^!IHW=-5}HVacZ|o8!iV7Zy&bJ=PDE zm94u8pLon39O-!*@cjAd>BmFWS4N({!D$?mKYTkF9^KZg%MS4QTtcBcCQ%)Yy)Y&u zzY335DbZo~#ldO+6XmZPQ;{qL>*@X-3~`zKd#SSjq77(bB0anJamQW*9qje&-zdow zcOt?75i6VVwx~XbYw(a!|49nhw8_N4mCmyd-y=o5Q?^OYOUh+Zdm8FTj%@8s=0px{ zb*bVQ%JXySeD@0D1=>PNJ?UH@T@Iij!HsC!a~(VtHyw$qG)`eeE+}IJ8Y9!(a-Epa zc9Y6Ou_wv;<^Jn(ak1lqcqLgQFB!O*79Ct&W#yeRE_#AH6it41w1y8}$qrnZfAzCk zfn1k*V?RsJ?-W>;oeKDR2PQB zQXlk|DJpm0pYK88f}xp@8EPeo&m?}8*=B+6@%|RmX0_9Wp4T7@!fq#|D^OFYU(7d= zPtZR(fIGx6eXOvZ*qkyIW^effznLw4nlD#qnX+43cy6yIcYm54l5k)zB|Ptyi&*pF zUS4=oRHd=HyU`1GY^vH7itcIi^p;xPR)665kWS&sjJ@F*<@rbPpX%XqfhM$It(dQw z%=9!}PXagYF30leiOBmG5o@^ysBII{N9A7gLz?i168GFX`=f?Vv9uodOFB7{7^&41 zLX02%U35!Q+WUdtD35Vya=c2bG?H4gIQT(cXZo7^`EJK!E%##LX>MZmQG&Vro7caR zudS;N_D?hy1U9pzJ+0!UWVwc$+GF(MAMHtYsMjHVRp1UstmeV!*YJ`^@1P$n26A)e zuLzfQh~thw{@c-N7C&et8n6jyG$G%Y%RrVB;| z8r>EoOxw)NSp)C0YtGzj8pd=exbSlG&iWdQr$@2pRMu=6at>#P+_~soBS4Fm2A%(+JorjMHFw$X3O(pmDRwoTp!y-I=#ZSKm z>de@?S@J52I%{5Uk19wze9NK9ySw)$TmDd-7sgxv1Ja}JFc9 zbhfmMpmi@Nc-iX4E}ASy6JPKRWU()QW*`jiOlVuealM(q+G1;x!lm|jLcq3(SdzSe zsAqZ2vSua=RB2ZVSr%Z%n+@(Of=b*s#|J zvooZBBcqZ7H!d(03<5@qzV*-jY^%DoPj?(fF!R%Tjuq|*;=~h|u<3HOYs2N@A!8}m z97`n-RcL~*M~JU+V8HoB3C!|uJ)O83QFmv+UU#4$K4|&u06x|Z>5)?S)#0*&iN4$H zeL?{`T=00rWLQu2>|@NNXR?((%9R}q7PZ{q3n;3Uo==MJA9#ns(Luqc3JHBaCkNZK zgV-%NYj`Ocq^x(RVKP2Uxd8Sr_<>vUghAr|WHooagC=#2n`q1xOLIp9O~+#Ed09gt zyAoYwdh+~N-<;Juw8it!A1?4xXkcOz#~iWQMa&9^r=xRbzA;OY-u}A-kw;L!`)UTd4`BBD+qzv@)WKfl#NG$FisIr%iNT?m^?m`?OoFmSPSchO9Z?-e-st z9Fw9P*Cu#-h(S07#LC(OzLIP3Tuc4PLJD8hB^uIIahGeZ;l&=E^SHqG+zQfL6`$MS zkRpi{rP|1_dFgtc5w^!42z<8?KhbO>&NnJ$md>6AXJkjQOrA^TZ{jW|rh%ZvaTQWF zv=6YY=q`Eg=55~pk~!6N18?(|xXA9Nw5b8{jts9YHxBS!7B>y`V+MsTDtlTHzbBd{ z7pT**O+$W0aH~i8Kaa@Rtd)5GB{OWz`CRo=!HcYJDhN|F0Ui&0Zs-5|uSV*Wazm|I zj~CQ>wly?@1U; z-nVBAP_Qd3ut5Z0?py5qF@oo%e5EEJOp=YJ+shw?J+Rwi?i1CN9$QMrl`;pfkr0mS z=YX!@Q>flC$FbD2cLXzucPheJX60|Q69#V$tZeejE)|bfm)?FaHd7MugC*;WiW%0j z^%gzvRH8@I+PuuZ2s!rVM2d7&It_NixTg`)lKye#qRRX{X4yu?KY8c&KSsrEDN12S zanT?Iqxzc8WP_`ii2I+Zai8^c8M~$xE5rLF-_I#nD+C_h2VISY=Q9$@I*crbo^SII z%FMq!@?LdTsuhfb^DoE9mqR0WP?&o*?^%(y@AOQ@54Tt_SA)L8We~Xg)8EcgNBZJ2 z&{gdEE@A47wX#~ec~1*;i!Ud*IxezF{v4_hw{pq0yx!SZ zafC=|%B|xBQ~SF5VcH2cyZ~*yPE@uOPMEI3i;g)lVs+V&dV<0$H9jDtdQvHwpw-)p zceW7Y+@q)Cef2iNlz~9pA5_rybSC;_3(amwNa#7-V}#^1!{s@RAN?hb>T*cyXdDTa zB+%K&TZxV~LkoR<4#oJ~Dr(zb5E5X-_p&rLL1dr6{+!H=JJ@7|h&QzVCaL~k+_PO# zLMSml$QCBZpyT6r%ND17ULY%7t2;`EpQi1n@R61${aeD9H)QjOkigE%z=pNj<95-E-A5I^&Gkzz8 ze_ZX>kUMyR?%j5uh_rO8O>lj@LU(cH(JRx(K4%RCI6OG&=>H4iOyV;8okNRf1#0t^ zB_7G~*Ne>3Ij`G+Qeqb3iGaX$a*~(65{qhJPEYdnA$0%qsP=c;=JfECG{O@pGV;tD zj6L!~Heec9?`uj95KcKeySJ1$mwjzSoahHW0pj^=+c|oN6C5Zip z31=Xsat=OP|DI5Hrm|OquT$jrW@8m)Kx%dgygxk|AgFK{px<Pt*0uY>Tf9d~I1StPww)~3*p9?}p7UM|SzW%?I`oqMt3I}e9}-Zs zmw)$UX>;L%&%5LGmXxW~G<>I*wy~q#7jj!tShl1Yg>iaNaGgI>^Vs zy?1Fv+a>cI#)PhQ-22NZ(KgqM;BI;&r2fi6(l|3*i9BQOgR=~KnPdL}G_RKf@+A`y z1Ne+?HLC1i{rZk+AE;L*JKKDkmrG~6ZVYtO$i57>22FNP#qq5kiZ$8kRpdAk3+f;8 zlp}aF9p|MePWl}Q8KeccaY>JLka&H2@zy{6%-7>Om>{oOqrP9NQ5R9zBl5GGAg3>o zPNTTFj~{yAmbHJdi-;jKZ3mrXABv~1K8x)cgcgSNhXs4zzCP_7sN3+tb$|$Uh&(`gxTo7I^Yoim<#fRa5>z=)QJ*FRndZ zy66tNxe#YnS+fOYPo8~bhh-YZ=jmHOW zyh>;>d|z7F;OG^Hg6BrYiEHoV2Sx*W;o_Eo!Mnn#?4>)m%!B=jyqm7^{P5-5GT9l1%l04 zP1Sx+nPJR*-kj^}6^uHL!e%*9yn`HXyeo{|e9uE3ts5coQ-@(N5N`ahnn3*Pi@tPM z2P2t@<4DpgEaEjIp_);#poQ?gur4|5cGRR-GCY5v1WzoYK^K{na>*nZA{Y8de6!5` z5@?bq3$dNw6myxg=&1ohSf!;u)E-b8_8NS@)@CEKFY&46+u-ATlvFKB+oP9O&rl5< zKn=lG)I0fp-lB(h@}W3+g^POs6p!GfFNltGEAoBMx$c%VZb&R##=FGV@&C|Z2j97I z<9}qD9GRsT;m&~0ToOEBE!iyu127U(9!Qc8_-s!xE9-N1FfeHd1Z(6x|Q1y}Z zo!n`*NC+NmWZxpe?OhUz2Og`v26$OT^gl~ugy)|f&&9eSL>3VO4EXCp`DgU~V%Cc8 zgi>4jk`Rtvw5IRVbLP$Rpt>36&8r)|x8%V`(e5s&R8es)Q6l6sX?JP~zE*is7uzEa zvVL0xgkSU*BAf1=BzdVBeh26T(}&!4-@lE7K|}4AH>td|J3x$A{Hj5jZz+Zz?9Hn|vB(W?xC^phmeKkYjh$H2=$Dbt@7*U$o}?07vz3* zy|JXlW31mcXJgc$wHz^2Rr_H2%sH$6z9L|YByBMU#k^%(n@$dE;hG#5gV#mEmU0O^ z;=|fJXXHiLjyjpsDP{OKe9xp3?SovY9>3hy3sfceD&JE_x%FY;HGua__?@U*gXR<@ z->1UH?{%R5G(nhoCR*vK&xQw*$bPZ~Rv#XP!n{U{+_^h^Rb+UxkrKr;6*fF$4GJ6y z@YSQxy!b?^ofPVXF+4wF`;btuh3pT<;seD(b_u(aWnV>;q5(XZng|V*c0GQO6e0hi zKgOkL&KG|Ah$3uCbiNCOhT!AmZ?r#!gRV&<UMG`B}tu7UPF$(&VK2?8-_`g|z zsq*{%r?$wbb`z}S!j<+=iY8NR%LB~T5sS#7Cn0DTQSk9NZVwT>PB54a1FRAuy@b7) zvUJi*`0fP{$qmv9#tJrbkWS;AH1f{8l}%?PtT1ddgL$Ulf)RMS8rte|RE|0ikCI&k zdrYN2$|ZL`Ms1RZ$(N`y`j(v0=~j`UEm+S>o?M&FlZQbg4L&@uts9tIsZJ_2BP%4y z&90vLrXI0a)pC%!VPJ{sj0Hz^Om80Z4JGCty+Jpuz z-KY5g&HI5Ds-Govi2mG+#zlmZ!f*AN;FDmD(TR9(4u# zk#`Ki+yn~$_R9kf5)$X6x)RY4Dyet`9?qm2lLbpB)65+E9tZ#CW0ja@E_Gh&6hrxO zgK@KU4lphg{7E`cL(G+w8#9F4`Uc}9JR{oUNZE|(&Mn+sVIk_oe^DYmyHRF*i2;T) zwjhhqK?j?v*V3Jc)^vh8{}}9tNusce_fN|KosIady<3aRiG0uNaPl0VE&>eu3J%!U z^iv#)BZLW3kDF9^qdjBbsha>4rtNIA6{K||&*UE_bG2)t7I#4X`3Ao#+?js6nkh7~%cF+I2A(Qa zd`u{?L8=E|Y4=lZx-<3cPlnGIH;JToR6pB7t-OZx1~N{1QyVJ9Rau-1?UoLX5yMdULppK9_Y2gv$Gj5zQ zyMildn*}=@0{@mv?)u`xaQ<_(EjX4CMnCk`sWVKmgaSU{lNqc+J&2K~j|G0TTwp}U zoWFL0imsknok%%lru`?kS2Y0LPKvk0#ZDJ$URrdJh*I3psUJnHfIY$V8yQSx7U!wd z*dUJBzx-SW_4h>}Xt#F!W8nBBEp+S=&B{-vukJtYMnd(%Q=y5_rhWCjp!z#Y&8>!tTFbHC0Vi!5+mfBvXdl|J^MaWL=+lj z50xcLmaJK)vZRnmLNb=}MVL^?GVh(<_xJYull$Cr&pqedJNLQgd_E7ztk{Y%{j#Y! zRZXtZzUyL18pck@Jr7Nee_}`8vFIU!LXZHMuPk&3WG_oV71%_&q3;3mg)BzpGh>l+ z3mMFuACnQA-}J-QBwiAkzw`s0+C_yY5~Ex%z5iqPEa!ma`Kwg&=m9rauAWkm9;0@N z=SWI@PBH@hFtR&kdj9twmY!+hCcZ@OckDg>Ry03OSH_XC0IosurG1sCJVCDTgRN>Y zE}L=;8!`6Pc*)gLTCt+2TJ^u(_uI?iyGBiXM6^Wk12-HFej+zt9|QeZkLCgS?Oyrf zZ)Qp1z1SH_GAJ>GAcCKTRK*Mwj21irP30>i!^YBvpIYb})2NSS0ho1q5NkOn2ht#!F}E3Y_=MIBe-% z_6rmd3s*5RyWX{$av3Vzo3-i`{{h$SF)!4jso2KyP7$QJMFni2{^d&;$v3tczt^j z*>1|4j;8a^H6o+{>x)mhdL>8@!ppKFQ-sk3pM8^C=Pz>1;HWLFyEvj2APafXIEc&#hA=;2sER}e~xIX8FN+OYuDrXsx0v9=f zb3YDUVDXJh`*h#ZtA!_&8I%FKHZC0}#e!3?G*Qh)dtIR|(e(NTIl?)q=H%cIbW(Z9 zCe?saj+~R$0bs3@_>kR%2gFUXFC3useqh@#^8P7gUo4i5@@tAHpO=M%j91@$255lD zrZr(9yKJL2!2x8adLY0Mg7~q9B=6Ah19}!;WuQ2Ch*pmWf9@GjMPVzMqPN+mAm9Yc z2q-KM3=i|9J`0$pTWO6c_zbx(>Rgxe8n5!=fpNkGTOcD*5lv!ik*>G?6B%dJ_Xjh# zrjAeog~yJFfVzQ|q<@2!YRyfaS`|prE5BW-E^sT%HuB1F!wjH@|6zmz*e}*^HgXnb zed0tNdRZyTM+cZ)9BV=GUgOxIW-Ha6!Pm>T6S(N$vePKo)Y6AA*a~%MY^&^6TY~}; zGLwH20g7p+(%61IVQ%Dnnh?*mrwkxM0DE|53sk_P@Tkq|&~>{jv|nOdMFNH@taWRm z`*c};*&usSp~{SKJ}Hv$t~0!b?>T36NTYrT3-Qn=ra5$6LyI;c;ngL1CiHj@W}urj z1l0V`vFQzZ%xDzoZ{y&uL@gPH3vx{E5d7!(8aba|5y1U!S935`I!Q`p4KNlF6iM{( zs?I1Mbe{=T<#`eL>&;JpY3ZGc4us{%!%;bSQBK2SF0g5JSWZ8OvYK+0#P`Y*JAXdf zC3N`!R5`d|V1cW>X%0}O?A{8AB&;r&F+Xw@BU{30rqI-#>SPy;0@Kfb*nknI6TexA zaqygV%j(!iDVeXM6b7=LsATqIo-+SI`Ji_dTVHq%fkzU{PG6v7_|S$)|z%#iE%c0n&{ei@SWn91Ot4m zZY^Y#f?Z;xBD8Xxo+_A(y591KRsReY=<#?~H+b`>naITcNv-EA4rReNR#m9!pxlg5 z;cA@Vk?E)4S7z^J($HG}qwZU*;cK|lK7K-YVKeR9*%b@H73rBbA8%pl=PRH1@6QAX zps@|`LYuUGRDan+Ka#zD5A#_v$NzFRHa7aE=PsrfHur#N;ClB^Qz6x8Ox{6XDf{;Y zop!Um_GIy`;@_PP&QeG+S6=IkjC+w?hx(&EFWVilt8Vp#!K9wDtJ3|zB0L$Uj)1-#&0=M*M-+mwg-M3`f^f9Kwh0Q1>eNdrcQJ#YNqn^ z|LjsX+w!>|?qWu0fT7>B=+EBIz`@fFA7>{T6jc`p4lWV1)6~X~)oig4%scx?o-4|3 zT{sW_K^6KXNRyv3X2YLd>E|~VeVXj|Ret=Qw@-vpko2?T&$2G^!2H#0Ad?Jbay{Wp zHOA<*dl1~uh_)W^Y4yAPZq~ameHTBbm__R-M+_Po*>1nfaLyO+HYXuSwK!z3NJE zjSZjlA~@zYzbC)c@;}KYc=j2Jw^^2YqQ>TIM?+G0C1(9)Nhti#O|+4-$oTfVzF>{X z!{SeKb5}3DZ}(|S<8d231bsJuxw}4lbQcFrJ@>ofzAg%=WsVos76g(}uivkozmw~d z_tS&G5fSgwA{Mv+4p`v;TqL){AMoLOM%Jykcn52|2`9m?VkQxhoOR+V#tCM=R%UqC zGdhZc5_UZC#C8DksM#agHnn%)MIvCh@k0cXd}a@z!EMr)pwHt4wqj_jOB>QJBI^sr zVW5=xlJAJ7Es&zn>EpAkLU8D!BaeJtxu4)Fw8u&rC#f ze;3c!(D@Bjf}=)w-K$dF!NY(hOC)!F24Ci|8l>9cxA;{WJ2~l)I@EBlZA6=cdUt5# ztY^>rTRj9TFln*0@_qC8QO zyB(%Cd=Q%#=ijprHE)N*;`7vU4zDb$B7KW*Zar_BM|ISFTr%1VX_}r$CkLnz5zRj8 z%{+!;a2#|vE1WC@Q9)fPYp=8q-0CI@Li@3K)AW`453lE9pF$$_D>Ek?cW_(5F+-fe zfF`2(fDS`Aj)b5`asrQaXQ1?UA zlT+p5d#$s-V^2`00a?XH93DKg zqfwFd+t)GFUrO_vR(nk9-syp&MoGy}^1YlA<5UA8;Fh|e(Bt+?_Uz8uO^@I}a5T+4 z5bsbJNf62_iCoJPm)^H+KsmZ1(Wm2kg9lhnF49&!cB8go+a7TUFC(=v5_3f#-K7mlgQ(a4$4{pk>Mp`VC7cpx{&a3qP>*b7y_9UK}Ei zwqwt5755;SrNNvf_V1XeV>>mz1S3AV7bVz#0(4)J@Tt#|74)_$vm=Bs)UzH}g7KR=wzkxn%ztd$K_A&zrj4$&CpD{0fFDT{i#eHwM^kg)C|0(cnuL|aBdK$M? z+n1c_(vhPpjQgopG$>$_g|(E|%F*-1r6UYuqOYS?XOuNay73@5M=psm-jZG=_jRHZX%s<<_-%8B4nnuKdarVEu3= zBHDR=?KjB)WCuppd%{{Ayo)s>`BqBd7Bx zwXv^i-0l(vndeLMCbt?iu6HulU6ACduVdm`XuJUWc5oo$bz>J3ZvfyN(c^inHFdao zU8vv0yU4Aqx3CN?b(S#z-&oQr=6}0m2X_T_cF;jqzTTlt+u_(gC=z$;xjrsztT*)-RpW z<;ZaUmyb?@Nb^~9`EfIKEx#BZ5~*RVJ(M(#{e zL}|eUOdxZ*>yUF@pE5Y?b)>IFVdY;BHXS}iu$55f2@kvD+&{)i`pyV_Rj!A3Ey1M{ zbqm_Z?3;Q@CQw{LK?vRs^W`N5r~TXKGk=j>3n%V}K1FHjTic(hVJv{ozG8aLYO4m( z3WoBz9x5Ts-0N@Ox9P!-fMjNxGw-qBA>1uJcPaNH3L2xHzfkHtQrbA(3 z#Gh=-r)rAqLX_Xu?2Nr+TCO2Do{O@oSR@q$!XmiwAqN6wZs0)$96bMaPfh;)c|q!z zo?wa>`$|%uDyax%&q0mVSDVl|6kp&#epU5pFIXlKAH;aPoV7Ls9iOiUj@w1=SU6nF zC+@hT0C4s+)Dkz_UR)y5twf$~{!Lk5SUIIWb|qT|^O~_R&K<6~rbK8GBLeQ7tOulf z$GqzUT;WsA^gt*{H1un4-Q{zn0yP?c(u>@byEZD9!{DO~Q_r&~E|SU19Mn)~IxNM9 z!$r$h#hV#UhiDQIxOqzFTj+Uq<+ngIigL>4@Ri3!;wiBxK%W(~$tEp1?+rN${OE;s zJh&*y#S16N4qE(>CG2^l1Z|u4_Y_Ar{&Wb8-}TQMXa-$)dvNz^!&Zf>(qkz`%#j%r zJN(2Mn1C6e+W77qHc9_J%lz3pGEVI^ebJ&4*um*j>LPP%YQW0+Rgoa%&Q&LunG3$b zGtxSm7uzn!+wGq2G8pWG39vYgTzb1oovQmgbgr#eL0r0PMkHQR!50S zd(w&&8=~dbJRqM$>tEQJ$;U?Ik1Xiooe=?pxQU)pq&B;g21sDpI*mo}Ktp7H-RJ88 z&n&LtryWR`+o9bKw|!d-5o+!n<2(MNMRN2@Fx;e~zp528DHZzuKInrnJ5fnOf5pF0BtwFN2C*l0!D z10^%_-t=40M}7_Vjp(cJb{5}B70nB_kcpPW(MB{#9>S^~2Q!~iG^~ID21Vi9c`9uM z#syN+)82rB@$HgdO$Vm8|62{rb9DV7o}Ku;E7Y2~kQX@)#plUIJoQD-Y>xz7(D||$ zecffJVThjl`_;pb&5)<76yta2P%4M+sP!}G3P+)A)=81hh6#R+{b9{v&U>YUOyo8xWzHDn`;!}~+{+s6H3!bHC*@;C)O}S&> za>6}{H@>*=zK7K`+zZp_(tkaAUyn}R@Bn(j6zs;vQ@b|@gg1`Z!4DO$L3bLv>!H^{ zIo+47*+_?V&8Jm#zaQxEVKJC@J=`(Xx>6jxb-~E$=c#C7CEM@y4|GjP{%7-^Oh-;J z4E|1X>n8KU55Z*#k*1^|@TR~-+?Ld(<*$$1mDSAbu@fshEu%b_=$xB_a<6rI9hVxf zrf^qQO_xMJ_WSv{btw~XU($N0$G7yj#p*ta$) z2}mr@u^e$8gXBEO;5PleuwNBG4MB)AWvI-Ot9>t8_7DJye3Y zUE5H6T*!tH%ks43-flOW&X3%cXVnI8-}+^V>u&i?uDtULIOQ=UfqnJ$*SQ|JlZ@w4 z7x)MuJLB|D3+Z^+NrQsLiL!(AZI+(0UJqU*4t`TH39-=Wjt$PO*I_Jie|2#2{Lg_Z z6z|unxv_aQ_NxBchjnt$H9^a9Knj~8M_T_4XlVG|JPJ7Z*-2bR%j%|Xa!}F3Z%W{p z@K}=ifcX9l$sX#E?H<3oZiJ*U+5V9QE$4+eO$N^ln6l9vH6NW1N{uoJ(qmj8MZ@BsuJb$0u96)p`keE=` z$dIe+CRDmnTTv1x4-|Msz48x5uO6iVp{W&yr2&?MkM5IyyRaf#xTw;DTqK%8lT6Rs zvU(qw`Tcuqe=?2+a30t}U3I%5WROIt?Xa;NR7$?4%~1P^E=4q-8RzDeKvBfzIn*h! z6H5zn-ZAvM3hV^Z=%a4pzL=ivb5A?q`7+XTe;~!us7)s-_kg{NE!xnFyF>%ZZOEZTh6Jih9mH#x@CS|i zFENggoaidl73fh}#!0FiHcwsJVrK%L&n7+xGBFCIo4_8*$iZRUNh*LgpL=l$W*$pk z17l_2Zvguqj+rk_lc33xgP&XnrvLw5teZiA9oAvO9xhAX>BeGtpj6b>3K&dc-~em| zS&RHQ{3UZ%Ug9G7?LGNA`j5YOSgnz@sNk0Km8VxVQk#5W3b#_|Af@00m*WB&^3gU+ zqZNAO%@*pJC|Es4@_@)1fCpAYyqw}0TYx6(AU z=VLH=ch*oMup91l;0S$!;j=IhQv+O^tJzPvF$3`Y9a7MK@Ly&Vil`Ii#<=5%idg7! z!GatlfmxkoAm{Vl;M%;O)}VVMJG(|vk>t_87D|Bu3%MwuzGnCulG9CbehEii9pA_gZQb6BZI_%bhBtRA6hkvA%wlm5Dy4^xGDeMMpQ*jE$s zxRv7DzuxKvK6X(N*~;+e=y9`B?Ec%r!SLhF8-wixmK4p>1irta<^m{ZVVV0(qFuF8 zX01wFtshH z&gaWpBO%K=zP~MOB2E}{ib$QCbD;?SbXEg&#Ye=xhT;8n#+nR!@g?~2kG<%FWcrh< z@l5#hXZzh4LBoWhnE^)V;oBv`*sY8c=WU=555F=Xx)SDS7=R=(djweoi*G$VF>L*} zg%`BEWcEDaPiJ;IPqz9X?F}=JOIriU)eJld%!^H+HcTSV=vs1^0XSy;XG3AbQg4u$ z_Spue3LC6G9S)%`=CoM8%_$J76;%a;tPG+0aj&PZy+i(0K} zC?hTB?Vmko3h0?2M3Eh8re81}XJ;q6_dL&Gn2Upm7pp`tQyx-|_O7oB@76(5z8}1v zF`ASKz@4Up-wP^qV2v6*I{kxLOcdO@{YQo>%zB{FfOB>ao18oB%ucjnZEE==FNPQl zPvCvM0usuz!!@=ZFa=rN^gnAE#t61Bg-WI>>7KRhszG=@YeL1VKf+E@DiO~FdsXj# zu9RNHL0O{nVPFgsCp_3jQzo3Ebi8)yHPUbYtHp`Y(nsvt-ZM3dY9%Csrh@sVKb`(G zbrMysEkw`f0=jO+dX<-qQC7vla$NkBqqkb^Wer|zna_{7GlBvkX1)NQNixz!Nmb)Q^e9p4m`(Sj9 zGiUkpX!!0&%5Gldx84eK%6+0)_HVTHAyfYoe?0OuXp{Zu}t3P zh+)Sa6_#UAZOP*EgXVY=8@+qU>=apZR!8?gbbV_Y;eJ8&);Ds9a08 z*qXD$?9}o2j0I=FH_~Jt#KFXEp07u86{jAeF0#E{Y$~7=Xg_=GD;TW>cl6pTg2{0Lp&@$R6 z2x@k{&*pafJTFu-c9>MK0lyR`vZ0Nc5imfoWk8}d{n&G6(s z!5!vMUWj>AMe->y+iiXDn0)eErZ(h97`xlURXd6}RY2h&MjXkprvP!Z#quz$ds{z$ zG_*?d+`owu=yI4g>|0+xg^Q|UE;QzkX%xUDyU})9)$hadRiFBb0*?{lscgy*o%m?d zRV|@%%-UDHWpK%&j)OT3xDh%+lj+T|&9`Nq9sb3k6L;bdK&Sk8p;PZ&6B(1^Hm5qk z5JamO;4&abj9US^T{WLp&IpryB8=kk=NUW+!v^|%3OH@~=Whx`JOne+x1J{tRtf8FTQ^Hc1X_aQf@`XKlMM{`yEfp{f?8i z1p4uVr;B4q#hluZ&Zt8MJn!80&RyVF_=uI`Uih&azxU6yoMkrqch9D8+5i9SoMoXL zxo)@MzgFJ*$E~LYOil^;<$X}#m+HFA%k<-Zz=Ak&8PiWaI=8&&|zv&)mJkWp_(+k(GpLGf=$h*+_iYk0^>JV^B&4#;+xvLGu)JbC>QpAGUUov-nFsnL6A&X)RR}g9>y`mvG3_Rv&&+7 z6Q{^A!^gtQ3PmSyJlMQQjQ8Ox*Lq*h`ok^73$L!;G%I_Z>cjWmIs9u>rWLH->0&V5 zU~0ejivEnYes#6!@~yRNw!MEklXKIjZT%I8=W00dha24rlRq-?SBqMA<%e5bxxrOT z4`U?)8)JS~oBVV6EMj4PeZP_5IoCIb{E{9_%5Z z#k+ET-e*>ywB}3Hvr}*$GN9p00i_>zopr09HV;{Qv*} diff --git a/public/back_to_start.png b/public/back_to_start.png deleted file mode 100644 index 9baf52733ce29904d869101d419f1e11303f4fea..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1122 zcmeAS@N?(olHy`uVBq!ia0vp^8X(NU3?z3ec*HX>F!~1ggt!8^42(d?zzD=37LaEA z4*~z6G%?h_fB*je{R>t}ls3GIV3O!GibKHG!Bn8g06AcB49UNL{zAlnu7&7;Gf)ix z$r9lmpebO3fXaae{rkUOe_1Rr6f;VK{DMIN3j~%?Q9c|p{8nCEd%m%@-DOwZHF@P{ z?ugfp-T&P6j)um(fv32eK%F?Q`!$LZ8d0*Tf1_q`WPZ!6KiaD*J<@J{xc&5fq zZ<{)eDYakZ)V<9Pr|+q*+4SA5&v*a-`8F??e700S$JrnFbf2#Ipvs>pTOe%kK zWf8;Ot+Oi+R4a9_+D!Wrw-m+?Ky0*=}7hVP`x4!gVQE9-ZWuZM(GkqlM72 z;x7@Y4s8*i3oHD5if#t0NqMOId(LC`vU^fe_$)^vtG9T@sh`~SCOmDY1ZV1>^D2ux ztTxZPdVHc# z^B5_lOD$b~Hd!a#=uXiV$%xzbPwLo>lL8unk9O5DpHJJKe`)RQ zG9{*FgY2H=E3231sTGMI|9G!9hH<$hbNYkI4+8Aw6Q(&tRkXO+esG8}ny{}z&c1M! z|KZ-sZ!)f0_O?wiy05;TiQD7zsbGKCIqlss>zf~+jo$z6{k`sgigEw@=R3XZJinuT46lR_pOn_U0^ diff --git a/public/best.png b/public/best.png deleted file mode 100644 index f9bc8af6c796bc67b0a8dbaeb8775092579ce5d6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1482 zcmV;*1vUDKP)0s2HK#sB~S8FWQhbW?9;ba!ELWdL_~cP?peYja~^aAhuUa%Y?FJQ@H11y@N# zK~z|UomX2-6jvDj&Y78IFYZl*Sq*jlHO=)?PG?Z6BIyOl@srd@(U? zQv1+oZPS>5(x$0tv?WbTL|3c|g?a&71+O4V6;}loS-QZk3+&G2^nr-%1$LJIWzPJU z@B7X_GiS~rP-%P5tgs@8R~hge0a*Yr8vrW+9>4&Ay8tdThGSYCSG~UYh+hpZiI-4X zv#N-IZ3Ea!07)wKh5#H^DBZDniL+%=0!r%~X;8=>!mw72&~Z#*KslAgt(%sf>`^VC ztj6)O%y5tpk~&G^Fk=i|93g8ycX^hr+^$&Lrw?*A@Q3-2r^_Sr}kDm z-j0fmz1dgoc#{$GD*!GoDuCDL?FNH_%BF2<(!sz)O4zbZFaA;c$T!-7vXd)k$_ziL zCAXRFNVCjBx@9&}OfyvpARvMwlS6xJmlcKyU<^c3lyXXmK@}2!Lfg{Ov3<-qt_Vs@ zQjmNXCZM#&v6k{=o>~wMZ$Lr%3y;NQEQW^Hs}{ivbWusQWA&&2MN)RCt_DzGTLOW9 zyd(&`7Bf;7B?19OX1f4@mesDD%L|-6kz#v#bjxRFE>B1R&(p$^6OM(v-xqqU-&#he=jm}1Vuil;tDP<#kc9!5|axr)*dg3?2@_cTD1 zhr()x0@50uf-H;#%bEHtiVHR-G$R1WPM$w*Oq4{ldrpV>I3C4R(9(j)W zjj*QZ5br-F1(jYp=$Bg60Ow~!eJrsBP!2QFi&W+M2SQhK3%n1XZ76=-$UM~k%;fspZ^JphQJ;ytqeS|xv_ zwxg@#jhsU{cFTL?C1+W}TiWGm!{PdG;FH=ROA0Qu7GYKK7FdmG004cG88(w0-2>Oh z72v+(bGljr-5dajvf`Rkl=>Fsh%Q$0yxezSF{EQC=tosU363{?3yozEI)eb6K|nxq zqyBOwAX8-7W`Pn4f4~d(z}48Z56S3rzn0HE`>-;kEQ0z+~0L-2=)JgRgHGNm?FyqYxFp*VbRL^TYa$0K7o>_G|b; zP0v41FSgA!7&WX}!?Ck*13*Z4pPRwy_vWHG! kHBLDyZ diff --git a/public/black_bishop.svg b/public/black_bishop.svg deleted file mode 100644 index e88c406..0000000 --- a/public/black_bishop.svg +++ /dev/null @@ -1,12 +0,0 @@ - - - - - - - - - - - - diff --git a/public/black_king.svg b/public/black_king.svg deleted file mode 100644 index ba2ac9f..0000000 --- a/public/black_king.svg +++ /dev/null @@ -1,12 +0,0 @@ - - - - - - - - - - - - diff --git a/public/black_knight.svg b/public/black_knight.svg deleted file mode 100644 index 04541a8..0000000 --- a/public/black_knight.svg +++ /dev/null @@ -1,22 +0,0 @@ - - - - - - - - - - - diff --git a/public/black_pawn.svg b/public/black_pawn.svg deleted file mode 100644 index b534de8..0000000 --- a/public/black_pawn.svg +++ /dev/null @@ -1,5 +0,0 @@ - - - - - diff --git a/public/black_queen.svg b/public/black_queen.svg deleted file mode 100644 index e557734..0000000 --- a/public/black_queen.svg +++ /dev/null @@ -1,27 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - diff --git a/public/black_rook.svg b/public/black_rook.svg deleted file mode 100644 index 4eec43c..0000000 --- a/public/black_rook.svg +++ /dev/null @@ -1,39 +0,0 @@ - - - - - - - - - - - - - - - - - diff --git a/public/blunder.png b/public/blunder.png deleted file mode 100644 index 783af846dc99e9046cd76c7aeea855ed4d29cada..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1688 zcmV;J250$+P)0s2HK#sB~S8FWQhbW?9;ba!ELWdL_~cP?peYja~^aAhuUa%Y?FJQ@H11|>;E zK~z|Ut(R?VTh$%Lf9Lx8+OZS6d2z_{(mI4fo6wRpNwcjTnf z+KT2Y$B4(79y~{=ryFB>I>V8W#1I?WdV7yp40N_NE*B|25JI>CoPIym_dm#z^^a6J-XZ0~MHcl-ls7yuX$vZ1eSJ=QlsdZZG> zP({U?HX)V)xRx)ce$PH!b=M&j%POHboOoJVaa7kZdiZs&*?KRU*K6fz8lIL`R9_jv z_IJ}Gb|ek4YRBl4w`_vZk4VJ%os2PkInr+jm7AA;Aey{TtJV-`0vXv(Y5VSKHB{pQrAt%OYYu8 z?AUQq(I^8i?4$d)+c^KPLlzURn{PH@UGfBg+O@XnCSkB*Zl?gsLP6f%x&_^4L%Vbl zw_+nC4ICa1*WUG=&l3Cn$O}Upy!94bQz0}(Vf>X>DDe5HX#4VKNj>HzvI}uTNAv17 zHJsA76e%{cLlJ`VU;qi&?DiQkMWwi|&cusPUO_Vqs-~kTvpkQcQCLx7;!TfVwrGTP zHY-TlEIo5f*u>065jGpOk8Y!Q)oK%G_>IGeSuTL$a8UQeQxq=qXE;*Vx%lrlEcsQz zdey0j>+=~%ht1`p?#bWdojaw#ME@xQ2M^#*C-it({>Nu1Tx~Xade;ur;bF+yQJPS$ zRTQCk7BW!#`0p&@!SjRkJoIziv-?{p3Uz;Y+9H1Lzf`0n4yo%XTVlkYQmFUUHDX+rHra&WhNZ% z>c*?iJGsQAF)m)avHsN>r(;t-(qvH)`kds>kx`1`F$-_Py9A@8ID-p^hbhP^SlRJO zEcT*09FM&TCH&!uyy6LIO#bxD*#`B<#Kg!CeWm*w3f(`-MJ)a9 z_wcM-nZdfI#_awYI|-Y>r3crOrmwmlsF2+UWq;=T1Z?7ZIPy3@qI zbpx*2+6)Z$^q?F+W=Sf(y^(^dstlfbzXMyJbqUTyqpxi}J@6A?GTQ)NsNH#E!;WgF z_KkE~)G*NJOs6J9&SN#I8>Z!Q2!WQx8;Zr>{_&~P_XXj6y3JIF;}Cc~5bSO%Dy%58 z+v@@Bvx4cLDsn#&?24IZ%i;}0qX+KoKl4xoOjj+-MIfQ;2$8Rzp~=?dbg{kT+>$PJG7EghAzbueJ3N4&fOzpZ=H?D zPXePr-aYww-h4}da-giu<5{}W?X2{wb{9Zgmx=CB=zqQ8@GvkATm*uPNqV)9PMEnz iXv~Z*38bzj$^QYwqAH_PPYNXf0000 diff --git a/public/book.png b/public/book.png deleted file mode 100644 index 65c83312b1a8d4c26a9194746fb55ce7a56aee80..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1341 zcmV-D1;YA?P)0s2HK#sB~S8FWQhbW?9;ba!ELWdL_~cP?peYja~^aAhuUa%Y?FJQ@H11jEpRYerWe>3;C(DrrT;IUY!mQ@x}7A0!pzJ$iGMA2Z31)?#=m>3We6JkP3 zO^h02AP|hfQV@+G0TB>vM2Zl0D3rC9+Lpe)*X7Zc_uid5{!v<6+Slb)zrXICGiSbU z&dfP8Bj_Uva^FfcrJAF)o&{n$=yV_vFo6c(FW?kH?~cOWm%VJGzc1s8-a2f_UHlM& zWx$KTpg!siBG_STRxMn<{=6dr-{rqOMA@Ow1{Y4+Ft?9FX&1-U= z5?XvKAk86hCunq~VH@)ntXNlkw@u#Nur)X56{*GU|B4(yAlypYMTL1w7Iw9DB40dL z3$_Bre?{IA8bVs@XBU3B;XoGw1^G+w6H1+wLd5(Z|v@ zvmAi<6gLxR&tYih{TOCMw|=!=FP=I-sfn>f7{+4-c{$myF5j?20@zxuYU`+!jk0yv z5K6=KY6_@%5+PjJY0wPRfw3JfBIil9#H)>xY4H+-FlZpd@(+CIpR)Yt9?7m$~@I3p!Xau`E2Rj+1U}Mk!YF*d$+A;@3!^-_Le3IsYAJU+!V%7 zok>R4#CB0_DX6vPdg)otpD5;9=^5&4t3X+uNK+DB00b?|yKT>je7I8s4xPMocIuen zpFT1r^W&5R7byv@E;CXpK*hNtN{;+OWLzqn1n@!UyWj0Yr?3AxbKPWJVS-`EsDTh$mhv4ucJY(^Z}zTMifeb z-p1xLm&^N|0|BV{oS)hs@ibj9RSOTrDrIbloBSvNpOLDuSqM`u;AuD+9N<~@8 z_38?s7Pv|4i@8?};4H%gB59pn2(WtY-aY;S-{jwHb=)2F00000NkvXXu0mjfJT!#F diff --git a/public/brilliant.png b/public/brilliant.png deleted file mode 100644 index 20fa69da5b601ba689ea0677ed8fe46c9084ab2b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1272 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

6xw5_*x|QA(%=1f@$+ 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®G3NK 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 Cseq^e diff --git a/public/discord.png b/public/discord.png deleted file mode 100644 index 94bcf4a5ed830a08d99a452c5f4450783d9d2d89..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3100 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 diff --git a/public/forced.png b/public/forced.png deleted file mode 100644 index 18006b62cd95e2a2a22bfbf54fbba14134d64ed8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1297 zcmV+s1@8KZP)0s2HK#sB~S8FWQhbW?9;ba!ELWdL_~cP?peYja~^aAhuUa%Y?FJQ@H11fEGm zK~z|UwO3nAR7V*8X3jalUf5+tS-MD7EZ!Qi8j;p$`_d9^S~X}d)TVtfZ8R}WYeF@? z`OsF8n%Wf9L~4wt)>Z_hpe-PwrBYA>Xe`B8U2xe&SXWn2*mIjcP>g#&yXyBg|2Ol0 z-^@9g`F{e9DEs9r3q)ZR1AB=OECFBzU;)4b@B-)s(8(C7OX8IJ4Xd{fYspKZO(?A> z$t9F+1@H!dM2&t$5K^sDdB^5e+pffAp!BEWbO>ZG0p8MLGz?Tm*fFY-Et?981~nVl zf3oB?1?o{kNLrl2eqf9_IgoW53yN9;IT{!!tt=^239EZj;s8Jhu_-`vS=H|Mg1AQq z`znjqGLYi{xF;q4C>Vo8ffbtyiq1~N9-hGd6UEtzio>ypFPfEyDJkii4G;oB1*{2qvT1FLul0#F_SLJQ%yL!G!c8KYaiG`v#*fh_p_621cDJ zVgjBI-mP_#4FxZ+$C^Ek>aqe6l(D-_987MJ)01YW?3yw%8^vo!pi1R;x3jz&J`#{$9PIZN@%3;Cg0 zO3jpj@K4XcIHp@?h9(FIl@&Sq@A??HH{!*Sn(~mGBFSDV`XuMm5_b*uqr9RFGB*~I zmqpplKNuP9HW>Bu0?FHV-Qc;%UneP12SP%Z3YU61aQa*|l2Z&}=L~yCy7(dI?S?7o zscQqtqqXIbL@Au&Y8KB<2k=8 zEj7&&aWR0PoyoF diff --git a/public/game_end.mp3 b/public/game_end.mp3 deleted file mode 100644 index d5efe4e30147e0cad6b9a8a6999de577db4e6601..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5353 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 diff --git a/public/good.png b/public/good.png deleted file mode 100644 index 0028e0fa9463b2a1841e5b9a78f4dd537a079347..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1452 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 Z{{hf(5&%lFdW`@8002ovPDHLkV1n3evBCfV diff --git a/public/mistake.png b/public/mistake.png deleted file mode 100644 index 3151cab3507214cd6438e9920540885e2f5ed4e1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1360 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 PY_s%b_xV5n)xf_1g6Wdu`ut+xFH%e#8ReJc4} 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 CKtRR- diff --git a/public/save.png b/public/save.png deleted file mode 100644 index ec26b43b723a8e3dddd1a48503707d070e49fa81..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 376 zcmeAS@N?(olHy`uVBq!ia0vp^8X(NU3?z3ec*FxKn*g5>SN8&+|Kx)HlN-JQ%@HmM z@(X5o;3mf0Aji68+pje_C!?M&=>9lO{$2`D`i7^AV~EA+w^u!dniT|CFNhiFGBFkX z-+iocri4X9eX{tzORYZ`Ee?I)V?Hn=Tk=zY<}~dZ=Byp_d0Tsny^YmlPVmUfru}XF zxuZj6>FI|e&tA598hw;^>-1)4yV)MccObg&fH$9Gdi0K8Qzj%c>MC?PZg_bv$jPmb$?Mge7X4#_IN#yek7`-@3zdE-yIc*J{O7s9szV7Y?}D6oT|pn# z&u8ZfmA~h%zHmK`olC513v=q4XM3gwmjv!kzxmvD{v+x56A|aHo(!C;_{JpO=S_(8 Uj#Urm1O3S0>FVdQ&MBb@03x5dS^xk5 diff --git a/public/white_bishop.svg b/public/white_bishop.svg deleted file mode 100644 index 3a8eaa2..0000000 --- a/public/white_bishop.svg +++ /dev/null @@ -1,12 +0,0 @@ - - - - - - - - - - - - diff --git a/public/white_king.svg b/public/white_king.svg deleted file mode 100644 index 632ca1a..0000000 --- a/public/white_king.svg +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - - - - \ No newline at end of file diff --git a/public/white_knight.svg b/public/white_knight.svg deleted file mode 100644 index a5f31c6..0000000 --- a/public/white_knight.svg +++ /dev/null @@ -1,19 +0,0 @@ - - - - - - - - - - diff --git a/public/white_pawn.svg b/public/white_pawn.svg deleted file mode 100644 index b265fe1..0000000 --- a/public/white_pawn.svg +++ /dev/null @@ -1,5 +0,0 @@ - - - - - diff --git a/public/white_queen.svg b/public/white_queen.svg deleted file mode 100644 index 8df7c8f..0000000 --- a/public/white_queen.svg +++ /dev/null @@ -1,15 +0,0 @@ - - - - - - - - - - - - - - - diff --git a/public/white_rook.svg b/public/white_rook.svg deleted file mode 100644 index 0574ca6..0000000 --- a/public/white_rook.svg +++ /dev/null @@ -1,25 +0,0 @@ - - - - - - - - - - - - - diff --git a/src/lib/engine/helpers/parseResults.ts b/src/lib/engine/helpers/parseResults.ts index 3f8cef7..0427604 100644 --- a/src/lib/engine/helpers/parseResults.ts +++ b/src/lib/engine/helpers/parseResults.ts @@ -57,7 +57,7 @@ export const parseEvaluationResults = ( return parsedResults; }; -const sortLines = (a: LineEval, b: LineEval): number => { +export const sortLines = (a: LineEval, b: LineEval): number => { if (a.mate !== undefined && b.mate !== undefined) { return a.mate - b.mate; } diff --git a/src/lib/engine/uciEngine.ts b/src/lib/engine/uciEngine.ts index e9ad36a..b45a22d 100644 --- a/src/lib/engine/uciEngine.ts +++ b/src/lib/engine/uciEngine.ts @@ -7,6 +7,7 @@ import { import { parseEvaluationResults } from "./helpers/parseResults"; import { computeAccuracy } from "./helpers/accuracy"; import { getWhoIsCheckmated } from "../chess"; +import { getLichessEval } from "../lichess"; export abstract class UciEngine { private worker: Worker; @@ -143,6 +144,14 @@ export abstract class UciEngine { private async evaluatePosition(fen: string, depth = 16): Promise { console.log(`Evaluating position: ${fen}`); + const lichessEval = await getLichessEval(fen, this.multiPv); + if ( + lichessEval.lines.length >= this.multiPv && + lichessEval.lines[0].depth >= depth + ) { + return lichessEval; + } + const results = await this.sendCommands( [`position fen ${fen}`, `go depth ${depth}`], "bestmove" @@ -161,6 +170,8 @@ export abstract class UciEngine { }: EvaluatePositionWithUpdateParams): Promise { this.throwErrorIfNotReady(); + const lichessEvalPromise = getLichessEval(fen, multiPv); + await this.stopSearch(); await this.setMultiPv(multiPv); @@ -172,6 +183,16 @@ export abstract class UciEngine { }; console.log(`Evaluating position: ${fen}`); + + const lichessEval = await lichessEvalPromise; + if ( + lichessEval.lines.length >= multiPv && + lichessEval.lines[0].depth >= depth + ) { + setPartialEval(lichessEval); + return; + } + await this.sendCommands( [`position fen ${fen}`, `go depth ${depth}`], "bestmove", diff --git a/src/lib/lichess.ts b/src/lib/lichess.ts new file mode 100644 index 0000000..bd687ba --- /dev/null +++ b/src/lib/lichess.ts @@ -0,0 +1,51 @@ +import { LineEval, MoveEval } from "@/types/eval"; +import { sortLines } from "./engine/helpers/parseResults"; +import { + LichessError, + LichessEvalBody, + LichessResponse, +} from "@/types/lichess"; + +export const getLichessEval = async ( + fen: string, + multiPv = 1 +): Promise => { + try { + const res = await fetch( + `https://lichess.org/api/cloud-eval?fen=${fen}&multiPv=${multiPv}` + ); + + const data: LichessResponse = await res.json(); + + if ("error" in data) { + if (data.error === LichessError.NotFound) { + return { + bestMove: "", + lines: [], + }; + } + throw new Error(data.error); + } + + const lines: LineEval[] = data.pvs.map((pv, index) => ({ + pv: pv.moves.split(" "), + cp: pv.cp, + mate: pv.mate, + depth: data.depth, + multiPv: index + 1, + })); + + lines.sort(sortLines); + + return { + bestMove: lines[0].pv[0], + lines: lines.slice(0, multiPv), + }; + } catch (error) { + console.error(error); + return { + bestMove: "", + lines: [], + }; + } +}; diff --git a/src/sections/analysis/reviewPanelBody/lineEvaluation.tsx b/src/sections/analysis/reviewPanelBody/lineEvaluation.tsx index 003a2cb..329e3a1 100644 --- a/src/sections/analysis/reviewPanelBody/lineEvaluation.tsx +++ b/src/sections/analysis/reviewPanelBody/lineEvaluation.tsx @@ -47,7 +47,7 @@ export default function LineEvaluation({ line }: Props) { maxWidth={{ xs: "15em", sm: "25em", md: "30em", lg: "25em" }} > {showSkeleton ? ( - + ) : ( line.pv.map(moveLineUciToSan(board.fen())).join(", ") )} diff --git a/src/types/lichess.ts b/src/types/lichess.ts new file mode 100644 index 0000000..b151448 --- /dev/null +++ b/src/types/lichess.ts @@ -0,0 +1,18 @@ +export interface LichessErrorBody { + error: string | LichessError; +} + +export interface LichessEvalBody { + depth: number; + pvs: { + moves: string; + cp?: number; + mate?: number; + }[]; +} + +export type LichessResponse = T | LichessErrorBody; + +export enum LichessError { + NotFound = "Not found", +}