From 010ac60ffe6ca7b35da656d209f4b3357f73a912 Mon Sep 17 00:00:00 2001 From: Samet Date: Mon, 24 Apr 2023 17:31:12 +0300 Subject: [PATCH] refactor(#181): configured node-canvas package on getTextWidth function --- lib/@dsvgui/.storybook/main.ts | 13 +- lib/@dsvgui/components/article/index.tsx | 10 +- lib/@dsvgui/components/line/index.tsx | 29 +- .../fonts/{manrope.ts => manrope/index.ts} | 0 lib/@dsvgui/document/fonts/manrope/index.ttf | Bin 0 -> 163392 bytes lib/@dsvgui/package-lock.json | 243 ++++- lib/@dsvgui/package.json | 1 + lib/@dsvgui/utils/index.ts | 41 +- next.config.js | 2 + package-lock.json | 935 +++++++++++++++++- package.json | 3 + tslint.json | 1 + 12 files changed, 1172 insertions(+), 106 deletions(-) rename lib/@dsvgui/document/fonts/{manrope.ts => manrope/index.ts} (100%) create mode 100644 lib/@dsvgui/document/fonts/manrope/index.ttf diff --git a/lib/@dsvgui/.storybook/main.ts b/lib/@dsvgui/.storybook/main.ts index 99721ca..abdfcbd 100644 --- a/lib/@dsvgui/.storybook/main.ts +++ b/lib/@dsvgui/.storybook/main.ts @@ -1,7 +1,8 @@ +/** @type { import('@storybook/nextjs').StorybookConfig } */ + import webpack from "webpack"; -/** @type { import('@storybook/nextjs').StorybookConfig } */ -const config = { +const defaultConfig = { stories: ["../components/**/*.stories.@(js|jsx|ts|tsx)"], addons: [ "@storybook/addon-links", @@ -16,14 +17,12 @@ const config = { docs: { autodocs: "tag", }, - webpackFinal: (config) => { + webpackFinal: (config, { isServer }) => { config.resolve.fallback.fs = false; config.plugins.push( - new webpack.ProvidePlugin({ - Buffer: ["buffer", "Buffer"], - }) + new webpack.ProvidePlugin({ Buffer: ["buffer", "Buffer"] }) ); return config; }, }; -export default config; +export default defaultConfig; diff --git a/lib/@dsvgui/components/article/index.tsx b/lib/@dsvgui/components/article/index.tsx index 2afa68a..bb67682 100644 --- a/lib/@dsvgui/components/article/index.tsx +++ b/lib/@dsvgui/components/article/index.tsx @@ -32,7 +32,7 @@ export const Article: React.FC = ({ articles }) => { const titleWidth = Math.max( ...articles.map((article) => - getTextWidth(article.meta.title, { fontSize: 16 }) + getTextWidth(article.meta.title, { fontSize: 16, fontWeight: "bold" }) ), 400 ) + 20; @@ -52,7 +52,7 @@ export const Article: React.FC = ({ articles }) => { const title = wrapText( article.meta.title, - { maxLineWidth: titleWidth, fontSize: 16 }, + { maxLineWidth: titleWidth, fontSize: 16, fontWeight: "bold" }, (line: string, index: number) => ( {line} @@ -92,7 +92,11 @@ export const Article: React.FC = ({ articles }) => { > {wrapText( article.meta.description.replace(/\n/gm, " "), - { maxLineWidth: titleWidth, fontSize: 12, maxLines: 3 }, + { + maxLineWidth: titleWidth - 20, + fontSize: 12, + maxLines: 3, + }, (line: string, index) => ( {line} diff --git a/lib/@dsvgui/components/line/index.tsx b/lib/@dsvgui/components/line/index.tsx index a5b27c8..8155bc7 100644 --- a/lib/@dsvgui/components/line/index.tsx +++ b/lib/@dsvgui/components/line/index.tsx @@ -64,21 +64,21 @@ export const Line: React.FC = ({ items }) => { const widths = items.map((item) => { const leftTitleWidth = getTextWidth(item.leftTitle || "", { fontSize: 22, - ratio: 0.58, + fontWeight: 700, }); const leftSubtitleWidth = getTextWidth(item.leftSubtitle || "", { fontSize: 16, - ratio: 0.57, + fontWeight: 500, }); const leftTitlesWidth = Math.max(leftTitleWidth, leftSubtitleWidth); const rightTitleWidth = getTextWidth(item.rightTitle || "", { fontSize: 22, - ratio: 0.58, + fontWeight: 700, }); const rightSubtitleWidth = getTextWidth(item.rightSubtitle || "", { fontSize: 16, - ratio: 0.527, + fontWeight: 500, }); const rightTitlesWidth = Math.max(rightTitleWidth, rightSubtitleWidth); @@ -118,9 +118,11 @@ export const Line: React.FC = ({ items }) => { const periodLabel = date.toLocaleDateString("en-US", dateOptions); const xGap = width / (item.points.length - 1); - const x = i * xGap - getTextWidth(periodLabel, { fontSize: 8 }) / 2; + const x = + i * xGap - + getTextWidth(periodLabel, { fontSize: 8, fontWeight: 300 }) / 2; return ( - + {periodLabel} ); @@ -167,11 +169,10 @@ export const Line: React.FC = ({ items }) => { @@ -180,14 +181,14 @@ export const Line: React.FC = ({ items }) => { = ({ items }) => { wgvqY)!2ow7Zp4Fev|T%YF_J*w*!eV7xhcY|rFv+pD|<=6f2?myDGM$<@mjJ}0oJ zm*D%#=?_n>_~Ovt{w*-S7(p=oJY&Js%9_l_@cT~uEXHS{>*6EZW1pmFF@}Y_{Q_ULu?u+})!hOP7v?CZTf`o7Fg!V#! z5F&IE?iZqkc%hrnQ%Dhnl(fj8*t>k4HT1r7m#@mo+Pu8^BSusX9XdZddwynSW$)e# zl9DRBcdzW)bwNx_WkkgMjvWO-6cRAl&j4q_SV&V3;6!7vaAmW-5lc;#H%i zzQnkwel1&&mj`mF&zYy;6ZKSJ(E%yU?rCv*VM(Di)v*ne%zSR`aov&^S|Mr)EGjN8 zEhR8GB{>~`OeTj`rwu6UpF5%dfbqHg%dG31T93(^IiUXp{5mu1_GL#X1{GhgR6Z&+ zCe7eT&OMlF2de}1W{`V$Ok_U)KGzJUvfA*B*$XrZ;Cvvkw3HypQ~zSC`q@Es?xC`} zy4q~{&w44P1UOKX_j3GztU^%qp_0N9>r3-iwLAN8gEXgN{N+_!UF=YE|Yn2JBWqXy4ZesVu@`g|H9m;@ie9~8_; z35kw3+Yc2hKU;jZblWzi(1{-M_3MWY-9F;bZAfrFv%&Eup)FbrwzV1S#OQ2}+Acc- zCT~b_)%fS`xqAq>TW=rS?E-Hxwo3WbHR_z9FStP81NKe~Y{R|;%-it18|>Y3t$8Ep z6DmXq&_NpRu^yRK9|iVIGe&JV;0pS?%{lZ-hoRE@8V5|mg*c(B4HMUl>cA6a+So<8 zVbF#fu5e;ej;wiWgDZ@<zV3A_TR7BEWY=|{Nyh@r!xq&$X z4Q905`6|!W(ni5g=pb|k%{>mgC^Q>x#n%yEb3jWYt<7@NH9*&>5a~csR>`h5eC61z zsaBRj*yhFX8xIp?B8=cFl1Fba}cPe9?(pHa6%f$-%)v(Ae?N z+^KPput3FuU#6uMrs02jVQOk&dd~p^diEGJ$m)cIDHOli?vn@gNE|pYvB#j>+a1u* z!FWND8Qf@+{P0nG z!GL1P%2xvw(_C>$qEyjvP26uSmcon{xoiCfvZEACJK1`a{-f0zXwfRP>L-Lj3J58F zkt#jS@hVxPVT<)DS1R6pOz~#t%3hi};i)2gIzMJz z-r=Q6ve7cZGOP04_@u;7b}fFTSRT51^5k6;^K)0{S8WrRklFaXF~N9}=72FOModff zk4Z@uLdKLMCj-A#Zo}H-u(;J2i7|sBk~~BF7gW-d zEkfmXWwl4pHrS+LN!F)?WTcp*TL9k{>bCT3v2TkQn1>uXbp7^bk0_w`N))GbppeYx zY8BM>LyJO0`4+JPs85ld6Zdwup~OwN^Zn%7z2k&crF)ZuZEV&s62L3>&KHc798} zr+Ii5^U#+d^H~VX)juduG?`5%J_$3@)BV#@#W)zUn1Jj+$I8^bpUs%@+1`}LLX|o; zDrsuu=2u3Ker0oHX%D5&Xc4_a&M2S0`IhqOhaqN3Hkm>Xvo`zpvo?oAO(yg(5DeKynF2qC*sn;k79!LrpEqO5EQ6Lp5b zNcBvN#zvhQq6tEI+L{?S2VR^>zm#T_?KhNDN5~V*1UZ?Lo}24T2njP+yIgEhPYOc z8Z;~3$%eOYZGdJ6avS~w=O#7#-L6$-wbTIY$abez?JRe@Rz{?}&8m`=8S6tw#TI+hls%9LZS?V6`bbBb{G$_sObZewDOxHHLj)1La zs)gR7eQuA%a19H0_PO;jXIxy_<~k;r9V%aWi6%A`vqR@Il9R;mG>&%QMgJ;Av;#o$ z4~Dtk9G)gVz}#~EG=|^1>1o{_w|kmqrfse{4YQa<(S+Zcp10ZH_V9TNWP`i5!0r0N z{?gn6-`do=8|zy~R;LuVy*Z`0jJ2EA?5ee}sX5*1wtrp;GkAek!5%DbJA9?N%`NVR ze>FjHYi;Ww^|3WTCcC$A?I4Puy0LH_nas($wUaigti=VPjlHa`ks=VuldbxlMPM{; z$we7YkiIg)`_Rlr1I$LU{57)?Y7(X@SvI0UeE<0y`^J#Gue#abjDs4o!@Sc|}s zu;GlE{BB5>6x^%dFTt9#XwO`Q`EU1_bWN5u8E)9!%vNY>g6&axLD`_S(_|>v;lKoo zAP6^sgQQ|$k;!odZn(}0xtun`x+Jd)_}zjj^royEKy+W@Mcj9asmR+Fb=- zhP#_$b%NA*3HQIPMTtNq(ms)R1>g~uO|hX|ndq%YgMi6q+-1_9fSrqIIPTqCHG|)$ zMmgv%Wi>PLeh|KPcj+pK_bQWmYwH!X54E)$N=N3s;^7{(|9t^<6zm5-Aqed?i}Mh^ zCC!veg6u}6061vH`_8oqaHKJ2XeEwaRenHU^oR}adtC`*0{RjxbOdaYRL$Zv1b;?z zW#K2gRS|r&4x?9pGn01Ut0u1EA4Cy0&Ye~OnVRbY>K(%x*fsGS$C{)&{8VyO;r67V zK}2}q2(cL}&x99*Y@an~WqhYLvKY`I>BX>}%K|4Z&K#ONH&?pV;FU3@u)AD<@kDFV zPR>`P_pYIlM%qh;f(6jn{j0{p|q&u`xc@g}TP!Ym*WaWOfiG;~w7CzxqNNHy{R#0K^4?@wea=Ru=1-Hp#qip^H@yLN zLi63cv^H#xn;i-oR}jAKNM1NmR>NMLt5MflueIew;U=s=H{}@vwTE?N&@9jt4c<@V zQwq_%cm^t_FvBQ0CodqjqhDw5^thm)hLhA!qviI#@na08d`ZeKNgsc|;e7o~qL+ya1;HsQBKNoCj(42YPt{wO?^-;nH)q3+tb=ZJX=)G4K`n@*zmPIWqK=cqENw6Jw)anEvzqQDyxk-nzdk$7gyLV;iXZj zpenN!INeIZO3>t%k@7$*a!y;qNsD1Jic2W})e5{oD}*Xew2T;03wCXe7Q;vodfWKP z#cE?qc>Yrx)8>&4<(*bw?IPImM$28$X{*LS5``>V4_phMrbxCM&iqL0g}cbe7p>?@ zvsg)a%N?JKzgY!S+!N3F;gvGTbS9y9D@{WBe@l`MVD}t!=pkc8@eUvdoVdtJ;Emm3*);LvQ5W;Eb~b2jW)NkmuEz=eQte1a>eKIT^++2^Yg8xm`e7?1tfK!|v}Lq)hgR zqp4`%f-YepiOIgqH*E6lcUxv^UA{~Mb~-H`@FQi>(%3rTXlYrOI^fw0$z82bth(j^ zB_$iK;CtqPZ%gzP*H*D9cR^B`6y~q)maH~e;hwIom@`gv?c4GUa;9tRrjrfZjo^a& zk?S-762*b4&6Q2lvYu-(?Sy;KUCuT~PQKneL828?Pv>oeHuD~E?o~^?;#xsD_002( zWJBB-(2gB!#Z)zgI~v+>ckC=(T_2I(gI7zVBkjc;RkHCG=~@WYI+d>c~3&b2IN;flYWO^j#b@oDM!K>?3{qJ~B46r=OB-v`9wZ$6qTif9-K!gTZ=A+-@-VmTnm{W=pBB5rIDy zVqZWER3Q>fEF|MUph98kKzSZ!JYT_<*`d)R*j((=%#tAq>CZ_2yIDxn>%&E`nINT9^r5&K}Rul16YtX#`sy&Gn` zBl$BwM)-i>Bhsza&Qv$>xWxj^TUFQ4X%07yw>uofJj`C}WqsH^W1`1AR2FCjKC1WH zk!F!C8e(HXcPO!BEljelby(S=C@rA{Dk0uRV?;Ciej$l0Ui+9^i>QhIdQhvNb+|c3 zWm-ZIu`0}O!(?!By1K5V#VC<>l_rL7Ju2N>g0k)4wp%ON(A95-PdWOy z@Ae~kTc-}6)<33gc}TWg+GpkH~}s}7@#E1QDJV;^iyFr;%stlQQw^*y3x%qC< z29=d4&IN(ONMOxF)wCbMAyez_`XKgo&fN;V+upcJ<+|IhH5-wpHOadgkr}G@Zn@h& zXhHnD9umSEvV&%3J0aUqZus3LJBdRzA#%6K+X<7acT0FgfgxGG2L3&{WYGe^#8U_c zGrnpL?Hq()a4J~@T*xqPDoDP4M|Drh?=@q8$>eu7GVfl`Eq~*ajy~q%wrwN#e_38~ zU`==Br^#fRb4gPA&c7vs8y-~;D8?+LlN_W1TMLR%XfnikwR+)I*a%;0(w0U1n z&c4k>^5$FNYkz$~+SjmX%{z~#r9Jx28fk6Au;JQcG2QTkhhOH zwW^9!H%;5xru+tqPSL8N-Hs@}Q-#oV!rU&OVSqC{ht!3Z;F7cs2izvv(7aphgen2H zIYZJ?5!}ImoyO^=M&D>3mM!*%UN-BM)RjlvoPlUDHa9>pHrQ=I<1F#DQ65!u)w;N# zD$}WHHG1ZzVcW=1%#22zd;cz5ehyy#V5heA$XH9QQ#_2aAL7%Uc1`j1<7PAx3!8c6 z*-nsMM!npi!8zNw-Xz1{js+Ha1R*_{$GKef*4RaE=bsikxo>c<4p~0dl}^x2^1!Nu zFms!s%+!A7?GN3+<(y$$j~PWVEb6}lWHo}-3g}O}oNsm*WRN551__KSc!&3%qEm#0 zeQe4D4G@tMyLlu7k3n6qL&Pm92n+bY?rGtc@0>>BVV7KJhXQCp!6gsW;CQGJrHp1{ z(n=0>!YZLfes$oO-&}-^+#syejbcTys>P{AX+4ab&9po+`)EZtlRXPQM zINq8zG1CewU-{+{AXgkOkqyt|K1t1{8V#ri2G{f!kM58JgYI;#PuTm2=s35|V>qs9 z58Yj(Oe3ia-My0Q?(f(|VW`T>=$pD@2z#KpKGXat=lw!%B;0Y^j-aNULp_|4bF*`3 zfqQ(pCZbr5iti<%4tO)lATca~_AtRNq9l+MCI(w?7O^YrYLS%|;4c~D)I6C4>|EC} zBD6bkb2MY@v{G7t-CPxg{7oq>R5mNMc=DFfi@!>YruupT`h>T@tq96kpqPOQQEf*$ zg@Ly2ch#643vg;uZ;^C3SxTx7cW6}Hsj6<}tm}4dIbM#)@;z6k8(Q`j>_T00J2Y-E z@lAn8T{hj64CdH$Gde)NIkYMjL69l_E*sUi_Bj(*wQpx&9AUZI$cn)UWc7-FDSMN> zU8?xA`ckE@k||yi&sdj6n8Z}sScg%=V{!KL8#kadK1iF9kVj~R@8xV zYzHAg!dn|9;wjy}(wh>id1{_rL)x%7G=%=ZhNAvUl~BP)ERTu4!!T9cZRbBAQxvW%+#R07@S@%B6__B$wKN z>CnV|ZUnz_vk7SP#5xCvOen<|#euez5tYWsfx#ZaQfX+z+tT|DC#CFgW1<{Ye=(o< zir>rmO3#S0Jt0mZ@$h2Pb1G*wf10?8ctP9GVrzh{)Ixn7o7&J^GFu}$24t}l24oM} z8W6LptVf%k<>|E*wnu?|UgP)DX+r^G(XbvUQ=I2NW{DZ*bV?MbdH`^BDLM_$H^fA# zMClpnscG2BYUZ0+gV~v72lB_ReQ@&EulEQyK6PUKi;=}K|9yDJ*%%-1+=On8!mE${ zeqMX8?rHB_kb9L4OI;jZSSwFin&TVLInWgN?mG*YhVIzCs4Sr}-CE2N#Ago4^4@v9 ztHYvA!oB<%mi*s=3f!FGMT+tDL&ZtDI2!3gR; z%w6+l2KCOaWXTKv;Rq@>>SOM03`w?`eg>CD3J(YqT+F>@T8oeHUH7=Z-FP-HkP`5p z^uKulmD>gPKn$#6bNOjn$up`(3R8$0E_2fVFL+#h){PdnFUYd)F6m7P}-cw(Yc6m=imw1#*-OJGNdVk28v5Rxw?bL*@Rc_qdz;HoZcF%)jn{h5i zhuo)oGPOpkT~SkDr`+r4+@nBMdt~r8MT6f$g-jt2GDPFIW`gwI`j?>f&qeC&`g`ha z^JLok`|o+Coi?3B&%-g#3T!=hEky6F_nBJn-KE?rC+>*`&RMv(FWx%^xJ6_}z5?a0 zVQxm^bx-0_JVsuw=`K5DOrY&*^>5!p2grjU=>lIz_aJnO?jD3n^<5&)o$$%`fVQrq zn*5%7w#y9g>v!BG-sJZ{T-=Lx(lCd#@WU?P;oz5MLgJpRE%srvctXfs_R4s;S;+dH z!~*dY*_g&9O+1BA!99ugV(d-aaJT(Pz$);)Oa__@VbTT6gNz28q5O?`G{?c2uvZbn!<>BhQOPTg&ne|9wK?@7?8BWw-?H&f19K51t} zvZ%xW#jgB=qSNB2pd^yP{ArskSUgtE>I{jD;xVj{D1^PTq?AYmz0{}|Pw=3qm*gYT z8jNws&d=sN{Kd{^&dn$=y?LVg@VNI+E_$y|c9)e08#=B2Q;$x8%%JS+x%9CIcWyp@ z?t!^WABknfqAByqrHlU%Q5dwWZsz{eQSHnf<9D583#5VJPcrePmzl8TDdk_s!>%yH z;%{reRsL1ABw=!Ow*1)CKC7mh6TG@iDR^|DeE8|&#|DL&yf>YGsH{3{`tq!;tKuK* zs;sZB?JGuMgSxsll?2V)9{VA&BJ9w2ltqfgigdIey3CVVR6+y?i$z<`&YJz{(_258 zUH+MMmuzCyOJ6P+dvL|F!{ZAMhwo(4^ZOZl@@YlcyHBw`9ga=3#~Y5OSAVy0!?(+q ze7kAmchz7jF8{8B@?k36_;gNlt;~eU9IR3ti5pqZU#gI#M=n`*{JmFRk9QWWKVB$G zAAj`to4xV}Ukpbok0f1^;NpugV8Zo1N zo?xk=JhuRC5Xmc~JwIwp7DkSHpe#oX(F{jTN{g}^B-OrJ?c+92#F#_js7eD)_>pZ;|Atg~B|A1)Ywc-e}V z^9x>PR+Ak5G?Vu2W#ZFMDvkS}SFAf_%%e@;E?NHV2F#;$DPPRRf+az|YUpYT!-@*8 zGio#;`7BEeL7EBDTQh8%0rEJV!O{q19-xZv_Lk9{-1f7#bhw>`$h zocMU}$G_Wo=G+(Wp1$zeU$R+ncDT6u#=iakTqTNArda-Gb-VnwFFrZ)z+Vr(@ayV= ze|`Gd4N3a<`7i!q$V+9@Qn6kP+s2q@tOG7*1j_XqVJN}Qb{=)ma?WV~0nfqUR!@_} zh179FrGu#Bv&RFa498^oPI9ZrrShbqD`re*+GXt^_aO6Wfb6PmLW+x7yS}S>{JUqK zz5G~_>C-=)x_I%_+K)4bX5X+Lk}ASCFyYv%On9P3`Rzp5-)=Yl&;K+oTad6}hbCn~ z4MSHhha!32jV6igwTugh%OQ@Q_W)IuMjk(&B5|3AL zs!+U2#R$@=DPGkAMk2FSUf$*b9s593OZX6vx}uO8acTh{HcX=s-(mf&2b9ziFa#i~pXsHs}j6CxZkau!Hl z-yLLD)z1TDHMG(qWGCsZMp0TAEHMEglWY&L_3%impz}xwKV_nMB%~Fhym@`S!5%Pk z8RGDWrp^}>%h343Nvpfmscaeo7Y&{;;Xw+Ipou4yj+`^@M^@k<%rX=0w?jfJE$wIc zNJzamn~;V8?+vw$TAXE)oIW!;#;?71Vt8Qj)Xs9y@Z5pk9TMA_#h@-zVp9EkD4%-3 zSV;;Fj*6L_-hFI*r|CzsXRkH|V(QH(rhWZFj)kyC>7GB~iMC>Mkw;wxtEy7IWA6}9FQSW&-< z;~HuW1sfV+Mm27zVQo)@{a8;{)Y8XcMOm-FSH&(7K@hiLmxV9wT!_S83ci^lC5UV_ zKk~Gh&@QY)Xuq6pH7h4iR(=!<49B|;%k0!4{Jv2|bMF+WHQ9(?MCm3Z3Dt+7yjMi3 zU?5W&EM5eQHVYs>#eu{wj8ZWnchAONBhpWoZhax!E7xH1opWN78|zdNyU&`KJa5v& zUt3t9_+x{iS8bvVOkZtop;d>zI1v!_&@4_sVnjiqmi347+e&DC{YNQ5lK*BoqOqq zxK`V|)VKBhFm+XnFh1D--{1U4eF2ZrzK3o+KT6f=_tb}|s>;@5Pn!SMrF+90+0K|C zBJd8O3bT+06r@B<&J4kT!(XHzUZ*j|PdeJOc$GYTV?jdhqCY;K|HPaTaSa=CO=9N! zm*=HFP_=u!_|{*_62~ulzQkH*v@{&G9tS1xkGD-Ufq&>n(#0(Vc9orX34?p2c^)A( z{(&Iz9aZ79w^^&r=pNW$)d-X}xrC^far6We_2tk#k}6as$5w^WBFnNdqPn{NDjiCN z_#D5>(3_}1Rrf41zs{d#h1{E^r^%PauWE%mGHU8g>V0a>N$z>NsX3{-0(S!G{>DbN z?jpA}-{Jf2H7rGw@K@j~In<8iJJyg@MVt!gRA*9_xwo_1)&s6F&`(j1izFtR?ukQf5V;xB&88+YW8zqN2lGvL? zLeNDeNv)?Yt4X5kt`7Jx8=7d*co;qWo004a+8f~7ssMF7)RZ(hMcg&wp{GA95iAP) z#7{oKm|#CGnnE=^Di{_xWWW^pkyRF1i6|I0$rxV$^M*xcp}Jao?iX-KJF3WT|C}}p zv`01ZZuh+D93@wPMp5{lt<{1lT`PK7uUW6*{g!~S#!hwqjHk+w z?3BJ6{h%z`+H%-<=+v$@Utpiu=8N%UeKz1(KyS}AT5%tIE!-yt3*#S8f@-#eN!7(EK*Q!8L4af_!7)%u)8{XzPVjTc6 zuxqf1{J7w}Kx@Y@tsCxX^)Kdqo{)XO{8}^HrYW5$gjVOCz z(u4b!TSNJ%kQ_ARd6eeB;BKTj2St)Y)f6NLxHPAgfB@Ih91z4O5ajvLrF2!rn@id1 z1WUDTAkX!@Y`5T8uDSrgcDe+~Lu_{fTY!ljv_w0yMtDpWrmR-^*^MHhe(J?f*)o@q z?fJuY+p@b{mZ5e6u-v zNLt0IaXDD@-O~7BwvRtm5|J`%XUw)+WyS?Ym{_&G1eqZ>f@NG;yc!&v`w>And9ab7^W!C<` zzGLPkmo{HkZW51k2wc|%@U;%-7;`f?Gr{IhxPnDoe)~ty0Cjl8=fQlf%SBYz8KiAh z$2C+nU(PdJbp@fj7N_jU_fTtjWazMici#+pz7{^?LELHXap2Kg&uCC|5Amq(&|MV2 zRq+77yNcgB?knAE%`)Bu9x{A+wMp@@1H9nij{T>x#H^z~D zdb2e>wD-C*`z9!cFPCO zcuAi*)Ki?{3Ma$Q_9YbW^ze+1I(w3!Z`7)kL@Nh;v_1XqxzP!yE$+3EJzm(<-jZt4 zWHV7ptwKq-k!*Ir&m+CCy2c7yCYdU!?a^zAY}(xQM7NfB+=*@}?m6BbFu<(k+cPkDVxmMIkB(!OG_V`d-K0t9q!p9J6pUU;N* z4vMqHb&W%f%oaIh7dl}f`H0)Ba~m!?CmFgyhAfr{zS`5uj4Tx^_ZeCLHsyNG$g=(< zo{{oz{|I)WxPw@37)I+=L~q!?Sd$D1ilg3YafuAw&BTa>(5$jL@ehL0HG3^`GloYYpj^&`vvDVwScUBN*<#{ zR4_n0IkkD?Yt7&{wUrBxX$!88fFr#k4iL(ZTRJ|UF&>HtCp4b8<~~Rb@cR{g4H8NZz}eEWR+N1oH9H!qKjNH z_Q{uMl=5&EP8}a5)Pd8oODrF3Y}>_(VJoy2y>r@3jB5pccC+*Q)=`ft^<6ViJR9|bkaww7OQZsv zX$TtfxU+M$L@IBL1-(F%IJC#4?nz@)_I~s~e;B@c?9R25c69RgDsJCCY|0Zwm4_zJ zd8o(y@?n1sYwIujwtek|ZO069n?VaFt$TXhg!u8@@BCs&=si95fs$VGfkltL(oyU+ zWz&@R{+H%%VB;_1+s0BYw}5hIu?Pb>7)YUu3`#B#-yXAP$^D@?RVN^3_cA)1&A-jy zA!!c}m6Qf?XhB>KtfK8ar(SQ1&isYErZa#2T(uY|9&m1w-M~_gkL!k^?Rm?lfnpqs zgO*2DE&JG518pCuL~-otjA4rZx|&Y`u25h*oTtuZXOvvblPj(fBs@fpM>|A0A@Ln5 z0J{XAsj(U>Y6iCHbV0>6IE-3VMWsS%4 z^CxHp(4o$UTevB9X&ggb!naGkD=#tGHc&2STb<=Ym&~5Mt)1c8=jb-ti z`KDNwJFwy*3S`Z9)m<%+b;=V^j4gI^65r_SK|G4(4jTJ+)gV`(cnGW16Cm5jHmy8y z@7^6GF&fVNgRWp{;VaLy)OePA?_H=CZFAo}z%2*6aMe>>VdBC!uaEUa1df$q506{L zs@2LJ>-M>$hGBq1$;BUCVS}JmQ~Aj|DW34)oMzaA8Lif!B>L#yKd&IDMyy(gjS}pB zzT06$(JIe#A6OxxYT?wOnv~73qS@eH?idC+(CDqIku6f`_NO>;%Ol&iOev3C>@;rQ zx#wv|N@1_CXa3gk0)NvPC>hObK)N~urFG+JeXdz@hfD5v;J4<*D?QHyovyoqKUJ_C z+>8TV#;81uzQYVrR=No_eBUBZWH_aLwqhKlU$}0hik7kHhb%r z<`-Qd<1%%Jooi8+NxzuXeaR_mp0J9at9{AtrM{TzV)JplD=gjZFuvviPgtznLNo4$ z#R|`ypQ)0g?1aCLxSq5f)HNa3M5~H7qV~`PHzzf_@aETe2*s!rGxakb5=UkfbG1zYNqiZ=T={hQyuDXb^=dY|Lw9d zEqLP8q~0RgNlkS)CHqF1RygLG>t@L?qU1qB$r2$dK!Q6|;S^tkm{uNg)uw8DxImXz;go*B*dQCvu?pv#N`4vEP!^Oa z`RvWv%1WhLj1q&D1on;fC+ihnF*mK0e( zRwBgIgNB+rKN><2QbRB389tVJ#YEeaVrP;tuR1(VxZjGiZ^G6FjUG`#wQ(g|Gb~W` z&PO;kL}PY4)xIf=7RN>%Eq+q3x(eIWn7D|Bs@S0^b&PJ^vTsVq3e>PwVl>)N5-n9q zutOVUdzRWa;7l1BU)%HSDh=*$4lSso>ewM23vNMDmSB9k)6#uY&)7@NH0D+Z04@y0 zTa)ZjhICNrN7CT|O*$BD(&4Kx={1UI}K9X@f*VSo2L24Plfe2dEv&*3l?pxSt#d^ z9Xl>>tQcllw*0xhOPB8*S21DY!}BIgoQu9gG8>*TVkaCV7qyMpz9H9WJBy1>*sz^( zL>-Hcja2)Iz!u`pku_3|)tjAkaRk`X6)To%2Y|^+p#2$OvcVAg!NNuFhZ-edKoF}q z28b#F3w)OvfB}+3k(mkjHBv>xHKRp6-Gl$iYs->+Hhv1k>IFka9aQfU=pdc zYu=UZ^&3DUoWD_%H}i^hPz#64U^UZHM^`>n-N z7?rQBs=8eP@>q}3f1)5Xtmzbb1li5?7kWY}2uGOX^z%URq;=(du}T)J=37^aC+Ayp zWNVIiosOB;U+Qu5{K$F6&u@yu90cnju8D9f9pa(x_Xh_=MW-d}4596a!Y&0mFV4)* zZ!?L#YtOIfToC%mE0s&?rj;I@J7Pd!8{@!{!TXMVxNGZ)L4|{Udv(Izg%2z$dVJ&j z@51Fx<6<6MFnG+a@`|Nt21$|`^V+|%cF&d-QMJdDr`Aqc@%y;&SGFuaIZNXeeoi@f zA(BpZ=RGx8a7a5pbe&FUS5Ir#INO3M(`~SJ$JedY)8H|G9HLS++WF$_W4qHy)JD`J z-%WNWljt+X0*-7$a+0q6DvhGNbYBLuy*Vzky)@X=f2 zBS)-WBa3I}TeBo_e#0&HEEpaYNcfnk<3)^*(NAdntKl3*pL$6Nt5};OZjSbg#HK+X zDIs%YVx+%cXrQlIDwC~4ynOsZ1MZ8?epEL5=j>Qo`QqD`orqwXIA#U@4ntE&n&P0aCILajY=~( zm7e8PB7Q0Yc95l!s7_6r7Ml*Kf$qW#F_^lJ{AlgFKg^U<=j?m9_F`&;ES?zHYtZ^% zcCz)#?ghsm?>DyBd?^uxq*aX)BlwJLVPhJ}M0%wJ84Y*V%Tlep-D1Iz*3ppORL9*U zt9R2((C-K1&Y=JLt+>5}W@KZD=||jcBuQmViv|IyGLQb0X?xAp+xxXgEf)Ev4HSQ# zaPu_^Dzqltu%xludR>;z$=2)FuWJxXt`koXZAiCiCtCuN!`YTxv+=bWO|{7`^_s)c zmex~Fip}9<%f_DpaT*}f3I=2Y^hpaaEp^PRMW~}>4`8*~nh2`0LSAT;#O9LDK z>J^9U@obUw4Sq4PSwN6$9`oC{Zbrs0{8>J7q;F^}TA+}W*KkYC zZARmhEbQ~2Sx$OkSLLVAU;TB3Sq!sYlhQ_wyu9KR3r&@y4%dgDW%B2LW@An$cmCJs z%%3H3ukynia^+VuN{dD5%Tu9SKCK}5barYl9X{XvXdnv^|0B~P zp{Kr-#NyH!UscL)u#S60>Cb0;{+Ag~D8Kvj=gJZ69TO~|0;mRh^e369?j>Uwyn^e)9Z=&y5z&Cyn2m&KggEPdbt0)A@v~0?0Uj6%e*c zi)0Lw8KrJrG@HUjVM}SeJqoS{T94BAD{Y(tnY$X!6Zep zwJ3bqm+ZdHTUfgQ3S*WW1z_vWF`eSx5M ziYn}YNZ2KOs~IqggxM1k>lca5+9Z%UyQCQU%GOK1wFlKBYeoNtMWw8F4m|m6-z5F$ z+9Y3bpijh)&(N{8Myb9;tWF;xzKPkc9bIcMfIslhupO`?wb_kXLsSs_Km!;?wyH?v z5%|^Afa)i+e%SFZ)^7GU`&z+(COZne}jY6$F|BB_A)03BO zdf>?+N(}gb;P~)y-i?o{Ra*qOkn#a;M)+#;;k9@eTYgF~_q6y4%Cx%M(kay|4ZE%T zJ)VWjkJ-y?`6yg)ZYK0h4tiuJyC($D$@b>K6BeCm^p@}J7EMK>caegVGKwrWZ(1y- zfiNZF>Mv=wg6R~|hfU-2f+T%0rx#gO4(H=&ZHmFR*0@cAhCpZRHlcc`m|q9+9A!jM zl_8Qp;CHo}k~;mfBnTV{!)n&17glBMy)QBOsc#*NzsGPvK~BhUBuPTTeJGa2J2 zd1qZ(|K!*6AOHTTGv~iLb?UAY(j-ZAsODyy|gqZr;Y6idMIi7 ztj?Y9i}C9e-!Em(n649}l?qlHG(2qN1G9@m(?XP5Rv9v+)1dy@S=}ajD@P2yP2L@z zD@mCc@%8%oBYGF#cUvKRj@CWspd?UXaafwU~T5j?dGaG#k*?{K@=|p}U ziD^eSjt^Mo6uDDCsDB%AbE(|0Z@#!z2{YX1*TK&}1|Hjjsky zSh#|Fenv0Qz_sVct}79x?6S-*mttq@^-?7ejyYl+(2n}6=@V!UnILULoS_HjeY-rH zXqakxsDZY>Xwi9dyn0Z$82IwvhYZa;vwFj!j1_Y&dzNk6KfnBqKG`F`TwnJ5#98CL z$2^oc?UnGI>l3P$ta^0V)a3j*Q|HYq%;`O4(ugM}&0HIqV4AQzt7PjKZQPHeN5m!2 zTdIpE9ha?3a%B;Nk9he02C!K}v9zCNEM~rR9HY>l{2yoEj_T5>Er?z1EPpm!Z_X~O zV72R(Dbh^wFnD)%t@VL_$0GGsz_`kdI>+Z#4!(e%v{f~y=8?lRw(Y|;^tRq|+S7~P zT;Q_=Qc;a|*nD~RHwt+SwtrrmF^;W}NBB?a93Te+a#}DKV0Ip%n9x5ftc_pC5O48y z*?O~0U~uStK3$9R+QsJgp7{^f{e5)g+L~W4zA|9w_;7VZ49C!#H}40+?VPC0ucm;V zU?&P>rJ`7=zL%Mj;8(huyeymfcXuuc6t6 z9XXKbq-9m=5g*ullv12*UCCMCT0dBx9g2%Mgty6hQL>CN#yzN0 z8o{#&{7f-qOT~nMMCk@HrVR0ZF1*RwJxcxV-ORK{-os40cPsUKngTgCdK9biya@kq@_RJ3TMvzWZY4o!++X z!$;yYpOV%;K!YKiZm_VV4WL^`@+rAX84s5il8vX4K@wyDSt&jB<>~t_M6~r1WrHc` z;L`;!_L13pE$q&y_0)a@>k1y2XoX6$bczhFX;yntZpEAVX$Do-8htuUIT# zp)d&ptNE42boFkXcgQ<|Rr!s~zLND@rE9#x1Np31aCdvitu)=6q`&Z6H{21mhYmJ@ zP{9zFHTp`#We(mhJW5|>31OuizkXeXb?5ALUE0uG@Wbc{DUzMPN>Wka+XDODU0nlebU(2f-VZ`Qz#=0ChsBDGuH1!h)g!L^_x;rUh3;*AU?zx zVEqd#b5R5d0=UUHa{=phvF3Y^z`*csp>dDU0IKqS#i%`lj1N)cdfm!qkpN zU=g({#DX8~I@fTmscYAya5P5X?i;eaS?8>uYn3HPPMM+rHHKEE?Io21>_~|Rvcy=z zfxGJ*hlKw9kssMH*jrrmW9NcygBRy+E>0}%s2mfOWL>67zSnwANr)YuG-+&)l8|e8 z?PBu#a1p1B5WU)ESI^x1WKdf}leC*|Xxp}D@#tC8ecMQ?ZZTc}emwVI=R;@Q{G9ND zfcGkJ!UzI-vI8bW9rn5d7Gk3HbFhF7K9^_6#O5*)=WT*pAtQNpTvXRkZBzS7!>V&k zG(r?e%tV3D%Kv(Hk6LN?y)*5^bnD07XHROyh7q^^ovqmL&9m~yH`H3gOc)9nKfnf1 zVQ4l0_kO9gr>6Y5&&TSwUmlX5{N{ppKk~MIET*?T^ZvpUJ@S(O{@k-{uQ4jyI&{`NmUe%hTAD^u4??g>( z$+GL~$IKUH`EzsC*E{xo_ekaC{h$8vlTS`wJQu$9m)(jFDXYD|tfF1(hZF_7*1a!Z zVJ77V+O*C+QfW8%gerPr_CVJlbCtWKm@_Gn0X#K;u4+Ch%ywz0aye;C^z7YRCia*Z z!)nBaIyRzAIgZ0PBb2LQb9%&#NS;2r`*`+xTT{@sH7j;^@HRkKUd2LkTXxCd(=K)5 zkV$g_+Zu>31gczMwD6ouy=sB2UIF?I;X$UU=By$E88uC$ot;K@q_PEiHmO`wlZ!6Z zXP&O)i4%R5rn&{N%NwdZMZ_a!BSXV0?cnr%pWUx%nU{8s zJJ5$@i`=AVy2!DlXRK$@7RExgBk+mu@>2a;54){)OR|#dY7-OXFk7#C-dd${8qWd` zr@EftG#Yo*bc3MMjpPg-BjN*zl%TTSJ#A&(3@7 z#JqxWJEreGW|G?uT3oW?X}JjL;?}j@Ms%9=D3>2xo@l#Ec*KOuQ!`C$8^RisYLbNg za_aK%*Y=^*`r&o8rveMwJofJ63+iS(aQK-gcci`YWbH?t3c`L3d+Eus6>^t|%;71; zmEx*Le2X`Y9 zsChj1lA)Yz=RXW~nOS7#OSCdWxwZMUgW+vF>=GvTJUr(cf(qm#UEtF3S59@ZEw*E} zAZtmBj<93JY<-ckU)fj4?dy{bv`$XX!GZ_%Ua&=3P@e^(cSrwD)pqc`UbVk*KkP=_ z|B6QK5<@lM7_ridh%WiY(P{4U+a=3YRR3|+Pb>v^OmpWW`#smyTIHVrDKHouoSuf< zSXvWF!?JEPvgjk#>uDi~-|(f9fb-(sN9_v#7z=Vu*3TUZ|G-TPZ7TgE{&MFmlIyK; z8(*}Q{t-SMlD82+{@e0*56A36RRQM*8Mv7HmzxbCQcDi$~=*< z20_jl#rwHumYhyT11TrbZ1N9gpJR*g|4Bp?eYT*ds#U~e|9ti8USgW)ceAxy3-5P6 zAgH$fF(Yw-nfxBEA&H`RVa@i=WkXEEK!oZLqOOOdP9a_Ltu^X^dWAOXp%skK!?y3a z9LhXE;r=^Omq!iK7&RWrf^dXzjkv(N!Qcz&J;VBpRGcSPBdRA`w?|mFb2xz*rS-fW ztO5fr{xwCy2@mwHJBRxy|DEoi!S8Qc5B&ykW62In6uCOq_CJw}t-3Mzz>A}r{lxVP z->QxYYbzVuM}NLo-up#Vd!yW@bIi)O9>*yq1zU@9=7x*@NfGlCGRPomNN4GUu^LZGD86i9>=iS>Me^3JzR<=9%jU z3Jz~!y>Y~M?*2!OhT&U3TeIqX?Z_c>m-Us)S>BbM%=E#-4}YN4@4TWME0^UiN0{)^ znt!}CXVx2kU$ye$3-iJ`<@7lf2Yj#!C|+y~P_jTVy8bgL5|4QRCzgIuUe$jwZsx!A z6>d2H!an7{^cTK$_+v}}UVmTD86Rz3{912T?!rt|B21wv6QfiUvFd0?LrTfE zhhQO&8EicyhPpQsiDOh-9&`IWkeh7kYp4-L6^p}Y6@qjI8IK`p$!f}v{Xz&sCOLlN zj!zJIJd_&;e&_YT7JT=tS`X}#KmPHPKYjEkHm?7R&(4e+ksdSXK31!&?35gon%(b_ z7iNa7`Q#jey_xd{d_MgsOzjgLc|B@C3br~>wT(8j?_qCBm8I9hV$=$Lu z(j!RXkav6lBdSKP)dfMbiYfW*_z1C$5LOB=wQPSb#`$?iruQrz<2`=X#OKSNxHvMq z&l}~BzPN4K9?RSn8HYBkK9f0g@ZZD7Y%R%JKEad_xpwBHCq_(~(mSVc-n^-E@{^|y zdvw*3s)Y4BRV;j^w~ZF6AZO(BUER11e}J6mARmLaEJ@x0;wxsU$lPIg_0+r<){pJ7 zY(=Lvug|a+N)cUWRm>XKVbO}7MRn`VeTLsZptP6I^|2*AecBJ)v@H9{(;LHTPL|1X z_lF-XFYH)dw{h^S1-+QT*mmHGIT$}^0IFoC+G%|JzBe3!bdr!813OsriJYWV^EKRR zsa`SY3%B}T7Yn!|RD?CNb<4LHCrjfEF$Z=M+5V0jRH?XmkjWIqHVmEB8Cz6YP{`n< z9#aw`vIn$nlieSiRK?G&i9_YC-MW|zQky)pnKT4?i*ww_%GnEU1s~x132-ZN>QWe1 zq-pJfNF9QeVV1|%$ES~zlQV;o1BOk=iqNcHL+_b2!$wKQ_Lci5Aczg~m+LUhR}q+E zWr1Q5VB-`lbJOO`=rnFV#v>wW^Ph9!IWK&pH_bb{y_mUo&K{jPW%?v*72yh5OqMrr z%~Em28de|R+K0G>7*vfK&^!0Xnz$A*gXEN;C_RJ#<5uIJZ`$GV3$co<1u0iLaOF=W7(gi94@UmA1$zhqwt)nm8 z*(@{T7oRZ$V~f9B_m!exG?E){@KuhEP4kH)O{BW%Tc1U_ zOC@s2OAA7{1sApA9W=%EOXIgr$f*buvy`q;)mbG^7cztCPCYApx+JSQihX5$Kdd50 z-dZdv#VXfaHSP!3z;d_lHsd0ugI@|-2JuZ z2Cbc0HYZk&nKNtFnt^+N-~IgYf+H&z90`mFI1;h^`=_q5J~MMCDZidt_+G^{OEC*q zzMo)u=+XBUe89XX=FU>ieE0PCOP8-%vmD&SWhGw^#OP9u>HyagvmQ%>NzH^N?Gw1& z;6`$i^+l4{Xn|fZ3yAmXaaZOVh8l`xy_1SA zO6_ICY4^au-6}NdDb|byllb3X+T^DZnFCDZ{l*z*#{InCDO$g|+;2UvNwnEZnb-=3 z<1FyQU2&ZnLk;8jg_6dik&&8ebcIk(scQ>)7SMVDhex=xk~ua%wrnb^a#T9Nap+~k z;4W-BQ3NX6TVvO$IJIotVRX4&MdK(m@Nq;uMY;v;?MD#?E-&ab4^k==VOJdpKmC|I zk{n`o)klv%{!x|sKK1#MlIN%L_i$VkE7Z%@TKtvqi&&xFVXehq5J9NI+hwDL;&zdK z#{Fwr_{z|73zBZEpsabI!zwEd+s z_fL@*e!O_u#|xq#%(9k*N|d`hc2`m9{%NHzPF?&-75?Y1o!{HKJ5vS(va{=eg{I$V ziAY_RqmVt0;v?mQEmsCgO)@cM_K`*5x!vEcdSv&Q_nz}qbiDHedtb?tmGk^b=;J^e8x}m%=B#P!>FKP0qu0b1Hs6 ztGp;#ye9Xx_D+;bS6*7Z^4m4s?g8Xc7zw_c$eufN3na*v$)_`m&MU+!<*P5PTybg5 z>hJpJq`Wp4s6-6-ej}~{0FatpHhUv1HU>zm-SidojC@83Zoy$wC{{idH*u}5y0D%RQ5oB|uc*a?LbH^`0 zPY{9$Cnm1^aNd@uSFWD*#)1WJ%v!$6Yv=ZgGb?w$|L)$s@4ml#)9-$_39s-OCsx*e z*(fY`j21c}3ru7m)o81{_h*x?IRK2>(in>o z1@zs5-;4P7$V~da9lsCZ-=mV~yGB#dBtnMa`!C>;2K;UoV}w2Y%IkO{hC_(WYR1?9 z|BnLi!;j(xX$SUP^b-W@HC!P{IbT|hE1B9A$VKspv=dhlUFG-WHU2DC^Lx-OeueHi z&94m5ui&0H`IUj%m72yM#OoZ^AiW(tmCNtR)~;0Ho;rTdV7kINmp=tr&>fh$;#}HC zsJVZ{xfG}16N;T2w=qAzrf~GSuG!(GnS*BZi-_GQ%j@&TZj>jjSTPANX-EF1@ye;9 z&H2OorzZ8qLe(#EBPZsq8!K}1?I)Hq& zBBm(E!6~VEc@5`C7XjBg;Mxh^AX&=XO4fA|%q+@%hU6zZ!yZw4O~iJ{D~3;*I&R!k zkIvsdZh|9&t~KCR?TLnQ~(tPG?ZWy!R%7r9$^@o zlW8pNOOz7?(=tw9^|V}VCVHG~)QCD)-xu9ZyLt;jvCU@dHMg_S4wFKTNf6J_)i80K zCN|K9MEm)2r>he%`{|>#51YpH3)+u>&#v-F3$xt?gq1pkd1dfzvpF&pbLbrekt$w0Pl8UmJJ=_*rnC|vHG)C(XAHZ#o<_Us)LrsU&)((Y0PFwj1l6*5m005^;5VGn9`4c8HYOsdXAOhFMby< z;IBw4LTreUxQH@s0hvzYxsH87D6fP#7V;}`50ZC=plyCn0K(@ub|sqb0l?}XslJKG z{f-(~2|f53RD5ZJA~m*L9t67}-f39?!B{?LDSm^i5@51Ab7aJf*>Q0lBO;R44I8zh zOKhavtykttLv!6)G zN>9&9UGd-pD|^Nd%S}ppXqd8K#}1B{vPh}{?kZmDsvi$C0tskX!ZAhNLZRmFXqcy_ z1z_!7%vAA;?G$-`()ytfu1JWBkh>;l9w-1_y?P`j5?&pPio~NDTHQ)g`jYtI(KW)XR2UaD<=RBB{G-D{+0JKO;#<5WG3}1h>+t2@TR8mq@L}H>Cmlze@ zqX$B40%QBxQ7Ki*qU=^p0ul|m)DtWE6lY`<_eq z>7{`9jMxk#hBh|D7-Ek9e#kzhp(AP~FhfVB!7{`mB_>~y^JM0){DMDMlCKc$NQxZ7 z^PR|EKpIf<9G= z)htwsfQ_Cn6oDf`m4o6}rfSNXVsRp6DDcn`;*|dWA>z&jMM!Z1N zney_q;RIrMT6sAE_VNN?Wr#dHMLepuEgnf5E-xN$l>xkMr*;5t%_obN_pB7KARig( zG9ZmKh=sCIw{9szye#r9FN%rO0UtrT2Wd{UC?X0<-K|?}6o8m-$?)Amm1`Ka6Bxx} z$ZqPxHPHS9jbe+mzviCyyya@~Lo@NmWUXZwt>y?Ci~oc=)h$v-gI&sDmvGp1sF5T9 zHc`u&64gWr^t?(OC0-D@6G1_QVzdU{l#dp`^A{x zvJJE;G!8T-G;W6^nA5nv;U(-NBG2S_nBSQ6#Gu?ukn~o!+YC40V|6E zP~auSqx}S<1_ysZ6+@zM9a0Jw1Ippj#*Ao0j54k#mvHaikzm} z-GnDHK_ChBmQ_6MS}@yvW>>Z5-q)MWwKbb+`$Vk?6;g@xF|z!CPb`BG$&CD6ic$`- zf-E>cNy-k}#|n0o9Z6DFD=U+1pU_GTS{bFck`d2X29x;v$60v%LKZ9Ns(+|RV$0Z) zBt=&8^-t(0EUSZ3xM2uJX+QA}tHt*nh9R^cF_yQ)&h}9a|Wjw3Y!eXQn!!pDYpr^nGz#dmd8J4Lu z2=ItKc4;(2pYz}-;&je~ggts=Is)vy@Fgu0)L>{e)X<=81O7^KZ#EbF&gP;IN^&}* z%09YHL0W?P<<=r>{LLg73lJeXT?#cT#y5U%Qn2O~Olxk&sCX>@(AskdnQGx8V#TI- z#F15(l&{eShZweZ2~o1Mdvu;yJ8|{ethL#bYKuE1W-HktvFzl)(9C581J(}Oykz{6 zz8$i{JF>5ay>fW-__@8)3u_M_9;$Thh&?<*j_jQ|G-q>}A;5UQM~BQUB9vJ%oB(F}SX6YcFsV3}1N3s%_rYG^To)M$Uj?G?OZrJil z#k-Fw-t1i2OH(I2RfJFH$E?dcyi`d(edUU2)YYrE>(syXRYuDM%dElh2w$1CWx2>6v1?9!x)?QYA z!)}bKHEmvpf1HWgY5@xeAa{f8Fz)5V{y*%!3tUyj`Zqo^YwyifZXzHOf}-Lbxoe1W z^@fUwhKR~lKoJl@(bUY$%uLP9%sgglYHDR>W>#iqW@dIXv$Qgg$I~e*Pp3Rqy7_;f zXRQqz#Io}{=l?tJ`+4`;>pQb%&E=WfGtXSs40hPmR|x3)kC;2f_-eQ%?hZ|sEs>cj zFWbL7BV+mgvMKu?$jEqL|Fu8G9f<35Fz$fX?LgdtYsYb-F#V5ApMFGs-RD5uA=sH> z?gwTXI z39!Bne6%4Ab@`eNdDa=3=CSy*6|K`le%P`5)ckeU53Coa9=YqDlZ!ml-Kut1mTnk# z=Y2Bpi3e*=8X5OX_JpTrc&yyIv2EGy z&!eQ9dFOyd=%aX|e09P~7|ilEq@+$k(?wtO&1VGWTJ-gis^gTWXC?Hn-BSG6JB0;@ zAJ!Lu&D=I7XS@8#l6iHt_K@`+dG>>TGqw~@++5Rd(vhW$->%3Uw|Pp%rZJ;8R98JQ zCR*jIvR}i|doo=_o5$&P4tomFsxWS`8}_~664eR&UO=uxpNUEoSOG88)Ur-k&tPK- z+W8{$@su8Y7Y%sv^6j%O?^||9kCex+F4fAfuF%Q@56jFGwCP1i$H9SZrP^lw@bx3s zlbe;6Ft9@h6_S}LN(3}a6w7VElE{Ls!QyITZ8k8hI`ENnNU-ip?w+{aEnZ9-P$*C zUa9&z_l~p%U(lBh=4^1PzYY zs4HmKU3F*=OZMGWi-YQz{Y3AWzNvl8ZrTR_u&yn;gm(*xUYR)ZuCVrDPMJ=9*(r6(PYryLakT z)^Ehph_Kk`@Q5X2Qp=;gyity5m7XKgPUjSuCyVg(@xg~EV4T>U!U4;waB^-3Iz6{X zX5hHOPDL|%duB&I^6;<|*5hj7wOMK*I#F9%SX^5K-?jUr>Z8_^hojo4{CwFXw;chc zayTFvVFY7+ZD(3(hdctW8s1ybZd3(iplHh#LQzRFV!DA#(5Sj8!=*8A@<_P)XbhW&s9u*uGY(BQjVFK zzwV{(o|dfFpCzD)Mu6I46csI)P7&v2Q;O^fTB3G=m^pX$nL3haNwjUkvugv9G7K9M z;BaB013TB%li^kUT*dltZZVmxCs6(_a)%VDLKH-U0;<1UgId-n0tLw}lYJU_#-QJ7 z)Z`^{zMcrn7Y2>!X46Ol&F2KY}sc$U7SIh zN5S$DBbFDso3*PyMqgX39Y$eU$n^+viFq0*YDMe)>c1QXFT>C>XOkzoGN>SEMvyrW z9%(cr*t1q1)QQPPvd~_BD@p??s3ujZ4w!h^>6vzV&v|i?#K^YnM#b z*DlF!^=0{LhQ7YtpwPj>zIYfs2SX0}9}5QKEJuI&z*;yOALdnNF<1+;tV^xSdDSD0 zNn9~I@||n8{6b&!;72RgnJSx)$ZWIitGM+jTVd)wYq_;uuG}g&=UPLQKymspGxJAP zsKs3iQD?3my0(^N4dmmE$3Y}YfN3pB-N;P+yJxKWQvTNQazm!v0L5fzGOgp;H?^7i zIYcA(yU?4W)%_HXEYspm;pCT-(uHM+@tS5mWj%GP3}uj^w^~ohP+3OLaS%uG{E6%Y zL+d9jN6QV`0nLiFFYAy5G}72#TS((CvcKE_-hN3rnl5UqIbC$#j#Rm%UA=13u2NmL zQWJo;moV;l(HL!{xM5h@*8a+aacWf@npt)vOXAeZKKpDgZ&KpdWozmwaL<5yD(V6a zKgC*0RxI7+hEwPqR*|>zfya?IYBAhAB@EwChag7STq)ocI%AjIc4iY6a$GR!~ z+GuLS8o6N?P6{zKU8IP@)g)4JxLi)U%*mkywvIOHEWXu2y!m`|`y3@!p?c5{;a5alE|JIjZx>jtP_cb&l>lJgnc8B)#OWze zGOatv#)sNIQ-%38ve8mX2Pr?4@5pzft;N<-?FacT^`%x@i>c(LiVLO-+B)#@9+0~s z8)Al37gl}S^Kx7sbfsC^P7o*{D#kDa<3+1R=YuEie0*ee+1-6p?kT)|QA}iqkyA$& zE=*2dSO`rAdK^0Jj);gmhNb6p?3kk#v69Y47fK!x8{~UHF4rorIVg2E`F+AoOU4oYNh>KvYlD{)TDY_NY@qC16Y$oD@8Di zOFf>JkQR|l5e_tYsX^j$Q|(tc&d(`vU7%dsg@k0JdM$CBKem(}+qb7j>w&baO4H}= zDH-kB1z6HN8I0+ zB%2tFNXJ0M@}^q#%QXu=zLVFKzdC;{z+V#!Gt~Szd~P&2?AogF*H(qm+^rvK_)^Pq z>StptJ1UrWiadVcvJBs);xn(UR^ta>J7x*^xe`5U`hElJ!O=%Ify2>S-?P{)YM%(C z?|#g5GEltojmAP%Ze%eJWzu(0FlHw)2t;dR;@6(8QEK{`HMdrkWVLl@cT4|2Kjgeq zs)3z4xz6}(_2FY5zIy1r_XE{}A2w|I`&~-v&8IGY8x@Eitd;((XwkN)FOft+cL))?2+5_Tx*xqLBaLaVQF- zZk}n0*_%hMu=)dXM2u7`?Z&Fi-oKh;d92>#u4ocQFmY&K8En~MZ^?93r8Q7#&}DuZ z+yU(}k2z9zCs^7V@)g?N%wK<$NeX` zr_Y9VG{+%-Xs2S9CObJPxx)H^>@iXHuznCuTP;|xsC8=Hwft-Oi7H3sT-yYmvc9f| zWwO~>B-3aG#sc)Obm$9IA1~@mKxoG}fNiA^dgi_km~YTOcD8N6NFQ7oLr|LCsyuDc zqt+jeO)GsvwtnVi>HFMp7x&G#7u@OHF>uk~5w%GvvxXWqhecxHU%{_pR&_wO$h_l`*J*H`)EXHS@rpEDlPs1gO}vC~S! zc-muF@2z+0NL_BUs%UoW``#E=qb^H3#GZzV&{v^lt(|C&+yPUW+>NKU7!D;rkQFST z%$WIRazvyiyN0zN8#ZceepbYk=z+^4L;83P^Y7EOym!IKq?9f_{9*%?#bQ#~?k@ZL z?C=@grSAj722YRd7un+450T@7Lr|u09?vs@$pfR8qzzcnyIZW+==(}1KGogdC#0ia zN~e&x(7=Guc5_CgjE!y6%ikIp+&l2=gSmx4JL5Nm4)P85&1~7WQ+z9V);+pY*Qs%F zQ#$v>$36-(Mi;b`D8F9x9Tavt(>r63HYncMs05eVH(Kv{>DyLrtImX*Z1jw0>@F+Y zJ;T$i{hVsq_j4+I%dzg&4x0nf`^d*I$S{@bIPPOk9^*~ls zZuf4f9vSWtL2c7I^)K((;g;awkn;W+$w56lGFztvb}#HV`_vQT#yxRr_MFqCo_4nL zX&Lz}-Qp7yA00Ggb-%=T-!^SBA_9WrTeWH#85TA-E@fW#UJ;?*eL@0z5AqHO*aP=- z?EQndf;C(jrXJ=WxvlRd`cRHHPJyQFcqdQfF4vd#o!YnJPB_hzs`0-e1;!q`b!^Yh zSsCfI^8>>o{pYKUW(C3>#l<^FY+NgkWyN(G>a}arrmuPihjgPdUaNLl@=?ZJ@s%yg zIQ6Pq(uRBx)Qv8>Ry$aBkzEF>bnDe*tM%G`>kq2j`lH&VzPt97^1FtiAZs^y;@SbV z2BY~C;b)xsPICpl_Vp$fPtUL~CVsXW}Dy-cA3iAMK}4Gcgd&55RpVbwtJ^Asnbj44p31R^tu6sKRdD z=tw#kh;xu>A-aJwEt^`3Y#lSRsl~wJ7ebYqjpxe%6>{wi6st4f+CJ)mFA>5q2x-%i zxBx`W_Um>F_8zA%^keRr*O zi43b-qnlibMJ`>kELZOt-*sbLM&B1xWzp9)`uE%xt61Ib$bwsO6{01}?STa=` zhkQzXKHukc?0$l8L9xXm4CD;F?P9C*UO>Z zNtg13-EJ}Vd&?7*KU(}$t;1TBV3dMpBvK4QqXUJePVQ;uR4a>LWL9*&d1gZQ9{v0G z=$-(2a1e&p&cUSbe_!9bra3&L@2{5L;AAyRX5)j?^w=Q>v7!OFKx0LhFm1hDA1k_q zQ(FD7rU+#U)T5UJ?`hyXCPF^}LY6c=jMduC!*wuNT0~cm<7-l+dAUq>1?#{U}iJ>JGy}HK)w~p-+in1+#Fs)GA^inBqx5f)i zCStUylD{D0eJ*UJ(3i@@mD+0`)UHRF(7)=6qw=GP_0}I8b1Y9Ik9?>{=cHOTmcMAH zYm-BGh@f>cBBXsgY}ALj8DTP+Xl8isE7ljTELn0z4tiyuOuf8h$z|)l{qM+P>9J;w z^^*0Gciyo+V#R(B(nA(&SFIA$l3C36{rTN8EUioSPRgKw58fE?PHUtDatg>w8!+LxvhDu`2q90 z77t6IWwYha4gn7195y;^cR1*9&e7u7#c`D5JjWf5-#Udm^>G^GRO|GJ)4NXJJBK>w zIZt-(1R zEmyYu+B?B}N2`EVg{?NV`k|H8$Jr;zXO7RSK33mU-v@lp`Gxx}_WMigk*%NcclXco zpX9&5e}n(i{_p$$vrUIKd2JqS^G2H=0)hhy1J(!p8AW{3Ee8Vw14jnV3tSR-D)4;Z z&u#tNCbg|>yRPk#wtsC~7t}T=DX2JTVbGSKGhoJDg9itf1uqW%qTQ|So@npWeqsA7 zA$N3e>QLI@{f@C6AMX^{>9J4|IyQ7~=PsQWcD~wWMwf59mUZ3M^>jDyZt2|~>vpEQ zclQz9S9jmk{ckO?~=@?lac{K7$RQIUjs98}9qt-<2irN=-FzR&FrD*@?9?^Nx%c8eOAB(;a;}sJa z6CM*EGd89&=GmApVq3)yk6jx3e(#{(BYNN4`;9(MebV|o(C6!02i&^g)|YPmF)lIg z-nftZcIaE(_f&j*{M`6G@xS&<>zCE<;eMa>Z_~eD|FZs%_J1$ID`9NH)r&38c2Av=`uc$O1MV4cXu!_{2M%02 zaO=QV27W%sVNm3tyg~O3+BWFWpbLXt2KO2~VsQ1~?So$!{LbKuL)?aR8xlJtc}V(@ zyM`Ii)404Ne=AHZ^U2+McxiX@}Fk8R|7Ocj)w?8-~6%^sS*^5Az-tFf3$P zw_)+aQily2HhS2UVQYqcIqYx4J%@)5?>BtH@EOB*4*zEOKhw4JfmoxxJpH}&Q|V{Z zzZ&5?B7emC5hq5R$uMW6WE5tUWmIP@%2=LpYGjX*eMgQOIdSBwk?Tfo9{E+Kd*+DD z(#%zvdoth4{KqK&QPHD@jv6(pcvQux8KdqU^}wjtM!Sq|IlAxY%+ZraFB-jm^hdY3 z-ZtR2hj07%wlA_gvy!rgWEEzWWmRWw&-!Le_c5tsrjB`XOkH;W?19-8*|pj8vJYkd zI#wI&JGSlEPGftHjTt*-?9*faIkqk*E+;uBEhjT4Cue%j+?<6uOLLCroXq(==ZBnM z#;I|)jO#G2`?#oaBgTyxmp86-+|+S9#(g*Lm+=ncy~hWS?=k+?@dL-_jlX;Rs}ovI zXfvUF!m|_pG2z$T#N0`_Rk;u69>_hC*CwxhUZ1?0yl3;i&iBnv$RCtHB7b@QsRD{;wz+^%?Xadq*W;)TV_idPpuUc9aNx#E|L>q>f+B$ZT`Y%e)dDoc|~Z!6tc zdZF~kNxdhPPI`6H(Me|~eLLyr$xf5oOzu8;=Hx?@Kb`!~GT*Yyvi!2CWpm4xmz^&A z^AyJ^-KP{zSuJiF1QN?!^mn&7JbN!W8xuNotsXeCNG4*Jb zYgKyHl&bHh1x=eYZTqwzt9w@$S1+#KReh@ZLUmn@YfX=u_?nEGikiD>R@dyRIbQSK z^nTMzr_Y+cZ2DI-I?fn9qh!XtGaj3+VpPrz0$=a-~?W-*qSC%DPXXUuxWOQ2Xd+b$g(0*UHhz<2L0W zeB9dSVttc4-!d0|ce}y80JQvjZ)ft)@rZ~sEe1`~5iXuhhoQH>*TAfq+dLfh)(Y>Y zx497h{F`pmLgDP-FG8E%rdbFVLep>Fi$x*g)o{m&bkl#}b|{3u^N<$NP@B8w!F-lT zHz%?^*3lOD|*?yu8dNdrE*GTw3mGul?UrC(yeVp z`NVB=uN>KrrRoEbZ=v$5hjG0+8}$6qo8m@pY-(foLG;eS%JE#n>5TZIN4vzh7ebwd z(^1l!y-}akW#O#_3U5+vH|VeZciq~{SReb|^|$s5!u?T%{??7Tv(QHOS0c`G4EdUc zdok*JHE6Cte4j-8h__Nb1s^nd7;m4Ei6xe^xUWLL1on~krge1}G4r&spDH`ubuH zK)RlTSv=esx2?P)-9kA|)p$qch~67@Q#&ETZFzxoO{e@Z`M}O5&~p&?4~BmNDnx4& z#kmUU6@+IhUwYk6wZ)I>3Fs2$&)GiFhn=6`E?(^Bu=^YCP+rk4`5>Lij$ZEKMJ>}z z_K8;1C$3jS&q`4XeXV6W?1C2dpW;vXZ_9hq=fWNM8?{4}mP8llGt$yB7iN_I$lpf! z47;4q;GMQSW?oHvAAX`;3$=jXsoKA;2YX`m{A^5{KBAzT}*(7nrdN>(s4Q5eJ;X5Z>@Q)o)@6C7Nd&nhsvq@ zR4u4GLGSBt@&oTppn<~WFc+YHAA_9?@cC{qn-8@X_bG&Z5YOZB4tm`COs8ZS)Xm1d z9_mWm^zJ*{dq}ULEUH4}jR(Gsy@GH;MWGgedp68>;kg^$L4ULMWVyA{a!%Ab48%QA zq|3eFqh~QP8Gtit!^9cWBC%dYVr>d;?GnPljg{k|8CwS>i#UgNuzS?F$&F!;>}X;5 zDkn^2Yi*&nh3W^@Pwc*-IcU&uV~t0x1>XUZ9%V<^n=x(kK$CIfYrR^!=~=tT_Y%|7 zSP1^KT&{M|x*hmqGl#zphwyGE>?3ZL^@!_o3>n~t8ULI*s!m*nsSKP!nVX24+OPBA z2V0@{#|@c_&GJRKxeM}V4a)F0pnE#ZA#XS&LPhzdbV2%Ye6&5fYCeN66L1rKL}&do zXhIl&!F_?~L*4igcPjK*xL0VocyGa-BmAh`qHLu*xQbfmOqkjHnk_C-{LF@GiIjfy zOt*%5=z!TXl<@-8$=%==Ip$NK6Fk!LDbk4Q=gatd5;vv4x+rQLQFh4=Tt#mrmWQ>MJZ%n4i;)npLW^c}yRl2HP7U60UXOjWzg?cqz1WmS?jT|_1kT@V( z{EAhO6b6>UWd#Y|_fD9wE&}#~Fh78-!HtnSLF+;_nC_YPAAs?4JRU0)%y{SIaYP7l9Vr_}GTzg!5QroG$r5!iPOFF7W3d&miw0|Dbk39fQJx`UE8h`0NM)`rp!|Ie)4H_4K#--W=+D2`g_N;c)Bus5g zA*NeR$vAQ3Y12N_R~YeG7q}iYwhZzM3Sb(08#Go2%>#{38Z^FGPvi1>8a*4)SO^;B zS%+U`U7bREBfkZuO@CJ1z&c-eVBCFd9deqMlUWB?Q-K5N?X_XJC)zvw@^c~1jXif8 znVsu&?(TC5=j6H2FW<)X?3dpO@#QyP{+aB2c?u?bzT5JZ^-dqq;(c zM+?WDqpi?ZYOA!>+8R7RyGlVJ5)Spb$-D;Sc ztwyQ))o%5gnuB@paiH{1YOpH7H_D^c5PU1PNjO-+ryebZe!{VqogB|G4 ziNE0dh<}Km#4qAkNoxcAWgFR6c0{d+m;Ge2Op!y?cy&ZgP*19bYPh;jtyW9aqv|d7 zx_Vz7lB1ED+f=D~L!CyA*`oTYcy$7^R|i#wI-}y`ZE7Y)UsKgUH3DB9D69tX!MJ}b zjL`?628Lj!rW@Ak#EX8SKT7*;A|Io=*u}It{?iLHhpG2kXAohwU#ZK{x z*dtyR`^D?xq3QbT=lQtPn_su#Y6?IC;O`_I;LAZ82q zfg5ZCFL+7#i`TGj>yQW(Z(tVUAl7pq0athn-)^76s&2?>;uEa!K8D?1zrbq3&%rCc z6tUv0h!f|hKYY-{ld>;q_~Q; z_*RiAt_f^MBPL64F-f)*<(vWw4khJBvGHC^%Fn zu~POG56C`Zf$T0GlyPFY>@8NvTg7UbAlAtN;xX}r945BNbg@|uN9)}}ES3@Cb{Qh> zlwDBHKTw~j&rsSwQlG0Y>pmzB5tr@VsoVQsJudZK-^~Sz4*q zGFRrwML4@+p1ecOmv_kpat`?8-S~=jB31#gk5#3+&@yZX_kRj&tezH*;u*9+JFwF6 zBXHS|v1aU3(McS~s{Z#d_whc~jej6Q#k-hc|5hZ5Z$zGS76sB(jFl!aPFlox=^!RZ zN0B4Vq6pI`nB@>9(o>X5FELTNi+g04xL1aY`(&iJUq++18zZpEHF~sB;&JQ`y)LYiGiW8??jJ{*hjymaRAR3Mp~O&}-lx9~gR*ogK6A zM=W)>77-#l8hSSo398u~4XUf0Yv^$XpImI{m2j5p487J67E;VrZZ*u!!b9#h^cLYL z4SJB8UXu1a0nJF&`f#Na==t0*cNT&2ilKKA0m{eFyNVzcZs=PGKb2wV-9$Sz3H+r( zREnA4jHRMjl!$6@nsDTKFVyNF)XWl51a+v$6Xmc&cIi2t^^>44U>6CZ25Jf3SBYtO zAId&e!}c_!WKUeh@SkkdfQ$8js|xV3o_JdVpR3sSLSRpr+K1Hnx{y;ae_qWl(&{PB z03F5fxs3gag#S^9K_qz5NVEV$!GCUT;!k(*r|bP04S$IKQczcpSTy+5IR4GMrnI9N z>+zk2I8vHc!fYBSB45j(QVJC#p2NW%)4SNIyMGbKr3Y&$nTZ0rD3H=o46X9DK zOl@j|4>psgbldx9pU&OULfWTcQ+M{EH+|QXnx^k>M9cNmqQOVa#IJ5G%3w1;NXG)T z@hxu0O!$!4f|~Ir<}#h6Gg>!Skq`dW&OU>l%)BW+LM8o_HVfX_SnHBpnM**js#v zof2-9ak4MV5&a>#CW;5Zad(2xev48UC6h?H5YaLfE$Xjw0OapMA_ns95Sb>2qOCoF zHti#D)ZyYJWM1NRBW0!>B}dEKY;6zfZy&T!;#Nlr$8ak88u%VmYElv72StU`NCtyT@{!xV7J6qH)46ruv{*bKDuU!x_H zsAH8990ctdwQ6Vy(R$w@=ZUFk-}Kh;Zq&iS;%9E{7KtHfpBAI^e~h{@9j*I)atYe{ z`{h!(4875zI0a;wTp@;|MO-N#f;^EfMsVARmJhWy1KjHN`gU@in2jFJEVO=)%MEg) z+$5ino8=a8)W;#|J&U^X9k|#i`6SxL?P9dt0jcgPTGgk;z2Y`*Tc5@GCs~jso)hyR z6YPd$LG9@aXkTA6+SgaO-913k7uwZ>@^$d#u_8xYly8WA^00hU9+7XM-8(A&D&LmJ z7$cyq@`JMb;UNR(-A4w)5iA4S^f04h+tMZz($~q;K#7%0;=V7RpVzD-Y!f>7}LehUDS{DaKE=He{MxF#F$D1*u?#)ob`zvje`) z>7+tcXY>cUs&1;g>Y;k7Fx5+is|XdTqExhsQL(DG>Z5K|aV*dFQ~gzfN>oWIS*1Xh z9RO)|5ae@`%!fjH9}dZU1mxY3klRN=V!sXBIgCMHV=T+^;~_ieLjKNI1*%XLsfnr> zl6@)qA(K@ZWb$%Vp(@e(S8@AKlE4he)HBsAbvyb6bI@0LRNbNGsXNttbr)LxyCH|) zqZUB|SPW@=3Hl8rB`jADs1=ZKy&+rsK)R-0f|F?7kH;{xIS|s5No<6i zyaCepJ&>#{khJ=#XCd!Dr)d8sS214XLYnWdo>zO+3%b-IJk(2&y`DqwK2g1*_N!MR zgS-K$?0HD?FQ8BJBxLga=$Dvd#NCi=Pl{FQV@Mp|LoVNoc5N9X`nKo;trQQ6Eod`0K}uhtPN6@v zMm!>(P@jm^kN^)uDn5;V%4Z}QtF!7$bqJeAQRBLm@f{hKdbZV zFY1E&t5}NOQJvzhpNq5VEA=<^wIw0Hs%UzVLrr;UuatxoT}_NO z)G$L0H`GX7O|Yp+#S5-5mEU%{8VYnV0ONLHW zh8N2uPiIq0zPUI~^_b|o#vpg$$rJgR}-6vLxb zBi1Q4`VG2MQd*2^MDHjg`A6x=Zyr@uT3&1!#hGBaO(*xZ26CNlD=aOlDwmoW`5^(0G;w2a|b#-owGsj-%9_RcxGzI0gf>>`wqsyj%GG1Oj$8eynWx|(29 zlZ|J?enM~KInhuJ_X!aWc}67jjH*-6K(li}12u)5>XxGV#P5}oXb_cT1d?QUnq&}_ z6y;o0?|~j}qCrPuqC=4pZc(E;!*qv*NA-3oZlHtQqV7aE7uS1dDxtbl(qPA_v`1M* zL0M+T5Iv+MBc@5c9ZHRmN{w1ns@I}P4UY8yB4R9MddV!Sk0okRlBHZXEw?j`jMj?k zYmpJ}WFvCPM*NeF%t*GSkC7=!spg7?QkiTJnqqTh*h)51H>FpLibkcfLXVE6N~fyI zj;g2_%QQB1nbst7;k|mBs;Tx=+gXq1AW?e~Ej4z9EybWaCB|ISKxc{(yHq2#DK@$d zdQ(zc)HI^A#z^)WqxRHr?Wxgg&kUW+84YAQ&8V+EGxXXsv*D$lr>RkvnfA5ENY~Wf zmRanb^Q`*vp<%_68TW)T$La~yJ<3Xp^Ei_udvWCti|obGfU0wl$X|^7wqdLIT3s+xPf4_&RKFurV%=Ho70ER@aX^Og z9NpwOp~-Wi?OFFH!bq_QBgG<&6vNl3?0=Lkhi&hT7)2N{j56Fu+1?v5j4)ytVZ<=P zNTDbrB_fP?L>Va>VWdEW?b&9}NRbF5MIw#xB8~7O4SFMO^cwaf4LTzYIwK8wu%{Tu zE7G7V(ngofeUzo*gDu)KsxrI-TE7E3KvX)6f+wCrwdlaY;2ZSl~xo| zhY!+tA-i&`%&RIYFDsf@t$V_cRh$assarmTsiKD0{Mhi?gPtcBRo7eaGz=Q7aES^_ zV3rvk)~lCG$;`?UBsTf(QdC};H?73bPpQ}IsopEqtGK4LtgL8CMMD5B>x~+M@Y21U zVE9ZTO-sY5xT+`*k!3N*DX+Yu8gVH#ctcD|oBGI4D41Xu^Ln8uEFnxKW$5HYhqakj ziNu&tRy1we1TIk%*q~m93J*(6H5FEr7n@RQs<vBcU<$au zz=#sL6N}bv-g)TwsdE=EJ9`I)#-$h1PT_0|GqvQ}2ctdC&;cs>?Bst}x1@Fbals2<*xPmA(WdA7qd77#kMir_Oum>K>@8zm2`mgis1S{r(z@zr_l&0nFJUHaJD4$b_%tMkdwZJ~v>tFtp* zp=F_Eoda>5y!k6M6F!}@yK+JsU)zvA6jw@xa>S70N%}pY_oP8(8Nypj?nuS$tl#jp z5O#>BlkCf$P;$qAvry6MOIMNkjv&qAa`viW6QwVAS+vGUB`jLqTJ=3moyO`q-U)tyU8 z=-{$UrQ?-w`jgE#ix0xUv*BW_JpC9_WX5Ay-{--|*?`D4W;isp} zw%NCt)fse9zS#Rm=5^IJ+j_hjp03x`9oNmsU%q3nw_|T&3*X-C_w>!B`R}=D`o3;w zN{^;yH+r_k=|=DW6Xx~#LFs5$jyON;o^KTPjnef-<~Q=^Uoo${*x;&BJertOyz0)` z*){lCgGtJye+Qpv9Osm*2LGGa*{65&Hg0VCKXH3wU-dVQ7 z$_DWwx|#o^RFYZ!FCON2uG^>IWX|amr`up2Oz)|T(M|f_X>)Av*-x?$zv)+RZlfoc zOj9OVzasVepFN#6y{%0k+xGkv>je0@DWAo>JO9|7jW;75I38>DcfW@=KkH(RFbsFL zGD?2YkKgCAwmz-c+%RLkT|L!p66);;)nQvbXS;Uwm}$5feszPq`6FfC-frEgl<5t0 zHt6i_P#!Y9cJ$fuoXs!Wxij*B&F$l7ucz{1_uSz6kLhgr($p3CU7vT2!bvH-jxM9@ zUgyV+()nV8OwhGPho_^nWyD+A5> zVKZxFKdyP7?dw%(T7 zNn@4#tG8pvvm4vepXv^hs`EwC*}}D{Y{opa!48=<_iN;4QG@+D58bwnCTh!X=BM+; zlnk<4@Amf`dg~T!_HF9#IkSIn@5Ww6x7n#Xp3<&f-?)9rvYFefjqJzIU|vSUXR%T-OvP;)fjsGr!JUHfqV-TLP8&Sut#mcZsiwxvV!Z*R`@ zX8OSt4yQG>(Z;wzol&1{bkehp_NF0|Ip4@DR&T%y?A_J-OK!;TwfbB8Fl;o@n;WHt zjZS;NZ=|<{(e(X|%$wT#Z-2f~8a1Wcmi9Mm-qhZI{y8P|kA;ykUblbq<3oSU{|4L5 zrJa45wb`_<4>q&^r26kH!`GFgf1w}oAB`)?C5uw}+lSFyzUc28+WtoNbw6&poFTlM zwrd|wQ~Bawku`7Bo;3>RfAOI?xuhvMH_jj3=FRxg)KA;<@A+-B*PLo!cQGCo*_<7l znSD6+W1zP8|DCEXv;KF|_S;lZdfVsEZ`-ze+k{`)=bN3aX0DjmPhi+FV`wJvaX?@9p`&eSX=S+i10a zZ!`O&>c1+h{gFEVM``*`*#B3{#J}q9KM{xjoBXtu-FlvCM9x;OZ0i4!ah9rt$FiiV z=6FD5zAn`?=5_R*+H$Gd)*T8w1~ri7BB@66n5$GFB0cZ}m``SNrAFhMaACMoY8pT3 zek!;{yQDe_5x5@bSF=wDcTwOxJf)F;a7WUdhR_kJPLrC=IiQKDY*s>a;r*#b_V8r0 zr@w<+d$U1QJJevt$#tg!V-ZFO)DSfY@p8o*AoiZ$%Qh^G_YuNgT3s64GG#~|lJZS> z%4I4%fYlUpgbu_T8|4)Gbf#FR-wZc9?c9+2>FmpFjpdC07+W%WGqz&%Ve}=GS&ZWuOBt6jo?<-Bc#iQBp$aCX z7y$9esIM0`vEIyRVRT@0WTbs=u+1DJ&dJ2jm9Yh*8zaue!;eaoz*p?_qxHo&(t%Nz zuv)Pmrx4-iOCYlt$1|2PE@LD*g*?s3lA*jrdKFBF@8YG1YeVae32{mf(8OqF#98Jr zabR?0bYgU7bYXO5Y{BTp=+5ZD=*j5C*pktku@$2aqc0(1K!|+|fu)Sg7_lQDOinXm z2UF-T5rT&tYNHSj(udTo?eG5|q(K;90DK?}(xD#PX-Ko}PY7!xGZxHg4%623! zAM8*vjM5ZW0Cv`?z^)EcaRp)@kvn<6gpF7;zZJVPL|})w^Vn7HAJ_q+jCO~^j%9RO zP9=7Z2@#91FI*aSv>G8th*j8)B@4T6jg@1uBiT4P4!dyW%Y5v~g)Q^NqrA(?TI{b< zjh#a7mG_FrunWoq*!}8Z>~!)3_5gcKY{iZyo5YjY(PWF*hFwgyi|w>CiFg`2e(e`K zu@l$^<_H*h_nkh!<(k5$ykhy+*_*4m77=gAI$0;)#Lgm09Ko(4&f+cFPei;!`-zBm zX%{r{KK4Zm5GS#VNQn3tdxvxspJVTjA>s?{^D$bS!%iPr;?LOUBS)OaK6&HCU$ECl zuDF2RKJvw1vEN6b_zJsyl!(7!zmG}cYwYq-Exy4XAJfHm*xh5c_#S(B+=m@EA5o8p zzhiHXN5v1=?dxTv`|$rBjxGjrtH&*%m_uzX+E7Rj;ttl&W4x2`A(nzxF+R+=n(-0F zHH?q4+qG=}PmJprA7fn4_&DPR#*KtVi)-Ju!4Z=3DfV|jh6^)uA$(nK8MvKZ2l-A zcI-L8Df$}YLB`h^4>7*Mc$o1`#v_bxF&Eg0Px-5EU?JsG_iTQYhxwqo>Q z^kwvCgv1Q0f*6At+cCCh3}IZw_&DPx#x0E78TT^2$jIp|IfW&su;jFroO)7EfvarO zN~k!#isP#|j*8=`I9`h5qWsuqYeuG74YKCI?O?|H$XrYoTUmXQaT_C3Cw8#@DaNN6 zpJCj|_$=ct#^)G!Gd|C_hw%kQj-}vOihXSI664E^uQ2XsJV2#ZyvBHt@pZ;SjBhX= zW<1Jxobg@8_ZZ)2{DAQz#*Z04WjxLJGvhBD;;)1#SqN7uMvc+LXlAr9IxspiIx#vk zx-hyjwqSH)bZ7Kn^knp6Y{}@&*ox7I(U*~POx{e%(k1=nO#do&YtJbjXOj*5b`$Hj zFm7km`N)f`f0gZUIvb^r<$aVsN)xWZD1)Tubdy(EZ)L0_wni!w;asev*`dX~~r z5=rmJ*qYIwF@W8U=9SZP(584G=M|%-_p}(zj21=*Mn^^`MrTGBMpwobjBbqXj2?`h zj9!c_8NC@>G5Rq2G7jY48srwx^S{Ln&rsTk&xlKl&l$g9Jj?hcqs|fjPvnUsxWr{J zW-?|`%0td1EM;8A_^)zLq+28Id5V2I&3KOS660@kRc=N80B;Q@Kfz&F0|zq>q0)^5 zk_odIb)I`K$~&#nRE!#G5Rq2GWrvR=%t}7q4p4#GA?6W&Tm(-&4*dPn(-0F$Ju-n z;}*v4jGRaEMb^K{HaX={pD5OxhLAletkaC=7%wsE>2sBBS_vVgfI_qoq~{bs3qg90 zHQEN!`!Tj=^k)nv-_UpT2M%VukNm;DcPzz-Hq0Nn1rZn_z?&$>XvP@EEXFa6*^FZu za~Q`lj%S>}n9G>Qn9o?iSjbq!IFYfKv4pXdaT4QX#xlk!jOC0|8TI~2b3Kz>(7&pV z@L|T)j4YRnHLSn+cIYUFb)4~!%HaQPEy~SELGhG6vL9oA#stPh#w140N6GmjD=1~8 z-YesgT&efR?q-{MAB=gl{Oz{qMfT@4c4aTQ>oWU0Z2msm`GWBRquxWi$olUYe`LJO zsHgw0?Di^~=#su5y)u*eAC~u*uv@(>-H%phElL^7xq{_f!E&x(Iajcpi;*R=!*Z@* zIajb`Cs?u*EawWAa|KIzg5_L{#gZ$Q^#segg5_Mna;{)GSFoHbSkA@1wF0Mzpw$7+ zB^t$}jOdFvcnS1Hfar?=(H8;kU_@U8dh|tr=!*c+7XhL#0z_W~h`tCAeGwq~BEUV2 z=!-y)z6cPx2Si^4_!8sGjOdHNWIy8p(B_BT_z4d(zRn0*Ve$s!VaB73_}Urf?=rr} z_&(zYj2|(6%=jrIMr&dJ49_?GOnU6*OQ;wz&J4YY5#!9zW1Ja?ab}<+BgUDb$2c<( z24b8Uh;e2h#+iW_X9i*{4v2AP;0U5hW-w+lW>Nm4 zjUi<2h?a)*%-e1_L$QqQppW9@kPd0*(RqmM$(89PD8Xe6c+d1 z^VTTTb%$NJWcXlGy^Ouj*WL(W5f zBOF(^2snW;kFkKUh!Fcm|2OqokjG*WNud8#{dwdP`tyVb8JSm#L#+RQqe*{sG^r!a z-Qwg8!cfM}j9nOS)Qhr>5m1e}nUN^eLfEu#)vh0p`qz3?&gAn=jZ^7;DZRG@C-YE% zge#*bqdTJmqnXi#(TUNSQ7~E<-55=b8Y4DI$FBvWBT(V=0ExX<1m+kbphjUA_i&tJ z(-&v048-h2EVxNJ&V$Lqe(e2mwm=n55THHOvqdd-{uzgPiA&h^p3bcK2xqMP6FV^f zjM<4#Fgr0qoWWegSnN`dSqSV-KLMwbgwrepcBL=F6^mWpr{WYP+U>nB@8sT(&ooJp z^RS0|63#YRh?8O#VXyXqG)IAb=pV#20%wh^!S3^GF;|g=9oV13j`PppD#d9fd$6PY zUYt)-ftiZe;P315IChJt-Ov|cH}ntT-$&R5{T}Rs{uy?D{{nlUFT?)l7vSsHn3-6K zozMS{vrc}*p68G9p6Bc2uPQ*U$8P1p@*rjvisb7wS0LZPKHziYam*FmFW<#(-^=6& zw5PZHkme2KM>KCBPtu;)@?)g$A)fKkFwf(Q89P5*ZrBYx5c@E-#T;b__P6c@b4q;^ zr+xsZKJ9To2qyvz#yK`Ev2*<}%m7kObU;o_fv@GbOvsN)_(5|<3OR$b36VE7!0EVr zkwdowXXEm~jM5y;&CbQuUfhA%C1>oRy%MvZ4`ByxKb%bTD9qPlH*qKI&AkQlP+PIT zw;B6@@5jvI0kr!rIHl+?V)7;~59It2>}`G&yKGy~mY>1d1)pK(?bbMp;5>Ga`U}d0 zBhOU@pI#;FIPIMakqJ_yD+Na5&+M#xyv1|_F2^zkwYrO$Hkz9lr z(TtlD&dFH}^ZVp|Fvl4L2yvNQCN!MNvs{>|lp`G;!Z`%3a0bCD_(OAZ7L@umh~rwE z=puQZE(oQ6BlJ(mCxDyfW~3y|*}2HAIE$baoj-uo*n#s0yiiM?f*sTo;4YjyfHPm@ zZs>9D0Q7rt3ZV;~Jb?3GUXichgqK(4t9VN@eg3FPuOWpG;RFIV%=f(^d~p82VbL0A z5WESW-;!^`Ce8f?$#-xLfh+3VahT9NpeJhH`_QBA0Y8!-A*_?~B=o1`Da7{^`3d~| zRDO!IJ&n0SjcTU21vT>vq|8})7B;_>Um|^Q^cdcvuEP9l`8Di+gZV@!oLF!XCN!(q z9<}#-=xJ_ILp}aGa`s30BTQ(X(Ft|>GW0at=!DY@eumG#%3ndPRay}XntAlZxdz~e zINLyqjyww)gfk8_(H-X;m@x2RR%YRf^A0Q`3@08qiq1Imz*)H9+yfWU6K5Z|ieSuF zwtzqG%3XM2*3v`x;~WHU_|{7K!rWi^!=E;)4c^i`rYFx-2I7RVaiT5HR|evAf(g*m ztYsihDaeDK<}L$qT0sHyG=mw4Qwxfqr&&vH;zU52wRFMh14}^v{px<9Lk3|loxnY7nIbl z;6WPmAQ$FA-pqqsnFj@d2W5ayWy(w-&B~jY6SctkDB}&j?%t2nA2<~sKw zzN47$xHI2zv*SB%IQ8Uq@R~Vt4(bo_oj~S0Zp?Sg%y&G{&f!c5<~!~N-_beF5}bX~ z1AOOxxFx=0V!mTR3;TfRj8nl@7(B>_d617C4|1k6P{50c2bq}%1%L-VjTSm@7%xF#i}WcxUETCgxBk=1{(N9LmhR$z;cy+^^$JZg#xsX1J0I)bX@{gIhrk0w2LyE20aXwgS#V>n++b7xQB- z)|$DPpCT^Snz@)CbFtRU#r&9ywPr5n$6Ty6bFsF}#oE$YD&Up(s(XRN(Sq$bT1)0= zfy~9+?YLN5NUk1`V^MK|tb!9{f_v%vPwwFTCwJ2RlQIml$qrn*>#vs~ogD*DIRm-n zqWBRl=2dBuuDHA#F5yv-S5_^(3(G5}NdJl0hE)d9hMKY?ZT2s_F@`h7GR89|GY)1< zXB^F#Q(iNrO6FHWktNlHYNf(<<3Vygwpb2AJwS|51}+&YT5EpZrK`$nJa0AB z&5#DkzRlfQ!+Z_Q9UIKi60kp5{i6G~(@<+MisF!vof0JXCS_y>$>T#3vV-LLp~KUH zd^8yp2u`Syd?~ngOs>k+$lq37a^U3gvF9= ziMAwK23q=9;_*I1IH4XjoLe*(ClO6=LYJvox-89_Iy7tQ*sQ5jv!*W1nz|aM%De|M zh&{#SifQK4i0JI0cQC-aTeJcn(NAb(zF^TD;k+B zgvr82Ce<*RWp9Gqljd;4!~>yAOE;KwY-9r2(2Nl|4xQ{kXO0CuunE0kV!DbHyKF`o zvNQV%X6MXv+00XSY5Ejq$IW`|Y;F(3Y@d02BYS&cw%NS7k$;cwSV3yX%p13<>#DQwFu+Z!*=0Op3?E=lX)m?!aEIxt%?$k*sRe-3LxmZov(ygbCTgJC z>}hC0P`D(i^=3#ZbsT0;ZEh7wAS+?k5H4In)>P^!xraSI?^B_^pua2?>KDu)IY56N zW?4`_XS3F12ANl?^}1>c7bloXwE|{PZDyJm%xV!XRG4u*sI{XO%V_mF}( z%(F>mf_W>lkJEc6f_iXpT?cb6-}00i2J;VK&N{;!-)7*PJLDTi((s)KdeP()xzHe; zdEoq1^gQ8)WMO(kDIhVL0)%W1L|;!TlsI4~_#@!UDz%QEZ=vrjV2&JAa80&wf;E-) z)nta2Wu}-X+sV$5;P&H8xm{{6Or0RRjf2dlpNU83+#v+;YK~E zjaHEVhATQ{udz)!MUQ=HWZM@#o_vh0lp1Fa+fE!_hdux`e+Fs+Sni7lHn6LhhAH^dTYFAoU7Zoq#?$J?E)nR%fa^Sj|E2oy^Ch=T2%a zl^CdW>N)(9@r?Z#+c0)zq;MooR7i>+eOG+@yja|1Urc4#+E|$wlMBbYSaVPIelQO1imdsDGEglqA@>k82P^t`S&zJTqHKgfq1hM<-s5HQ!1^*dz#Uy zMZQjl>!qR)rEn#3v#-DxOMETSQy+cASd84!Md>;nv8Gg9%eh&|u~>kzJ{KX)!>Pn; z5#Bn?whtDw5LPxWJy+&peqc6i?G~fqdO6R4&a(7ssu(rz>DW1d=qN?^}igP z*&Bvh9D;Qs-$9KBHfOe5_QOczLCmSFMlP+!>;|P1)!X$js|0V~gX?KFThF{?hM2*n zkNApBe|`9?aq2TJv}3;jX*3nQMRtQfq!(xl1VSSzoPQ|e1CavN$hUm4sO}6#cQ?S^ z9#Ec&Q=$b@_XtvP53N!|-1Q%EEB$v8qp$+B?xIII8LZQc-fUKBs)X^s)N3_Z{ZDz;~DLIlmTuF@Dv4+x#xH z4r-m{02#AP?h=_=Yh=^qPBBeP4nU$HD*Q~5-W@cV8Gcz+&GV_|5 z*UU?1rbLEHNQz2?IP?4Na}Ee9I-}hG=RZe~nK@^#wbx#I?e*Gg@925FXPv91tC#C| z*HYKlTz9+v=z6tRSg%#R{%}ih+u6HY?=|k--Sga!^zrEPbf4=Uvpx2E+Idd*{MxIV z*AlM_edGHc=-c4!>7DGo()&OCWc`Nso7-<&zg_*V`1JOf=-yZ&AJ$M;{|zuGs# zH^x`*`nj95S7n-Mp|yu-4>)`uMrGmacIa{kEe zBmWE!2rmf#YLx4!q*0}#j;gw=daDMh#;9^tt5hGWPO2`cZmWB!hpCg*^VKh?KUJ5j zPpRuPwwk^gf6XwBN;6wCU-Q1^pyp_VB*H4fIl@08JmQIn#Su?OY>3#e?V|P4j?vE0 z&e5*W?$my!{Ze~G`=j=}wpx2ddppuSa$e-3$n}vQM1C3hOXQzX{i3p>=0+`u`Yh_p zsK(L$qk~6>kB%Ds#OU3lYoa}(eWS-kmqx!Gy)}AAbb0i@$JmXTIA+F}#bZ{C*)!(A zn8Pt_OrMyHm<2I!#C#faH0DCARjgO+u-Nd}_}GcDX|Z{+g|V;2{vKN!XBXEuE;KGF zE<0{r+|jtEu@PgJjMa_ZF}7-K&Dh)VvUr>L*!ZX755%8{Zy4u2Zt1ws#+8pdKkm}F zKNAKfq$gx2EKFFIP@1qZ;gy7M##@e`Fn-GTH^*-tUpD^Z@q5SrXMDx@bK|QMT@pPK zeG@|y)rn&g(-UVV&P`m9_;TX<#EpsXC4QLr#{~Zgp%Wq}ButnxA$!973Ckv|p0H!W z#iWr*kx8#5{WP)nMDK~SCa#(I`ow(`t0&eak4V-eCnv8-J~2r#Y1pJ$lkz7mn6!J6 zAtfMXX3D&jcT*};E~i|b95#8${8j<=`>YCK=r}UcQKjo<@N2dG@QEic? zOzW2Bn&z42n>IMDIPICVm1(b}y`J`V+SarW({`tQk#=pW(^Su?W2P2PeQxTmsTZf- zOdp&+GyTc*UFqkhc~1+RHfCDVv}x0Fr!AhgeA+eG{14$TeAeJXc*?u|Lj9K{@$IRod6nloX}>^V=*SvTjy zJo~)Tym#hyo%`P0%lV3Y_k7>{5&04M8Tq;SPvk$7|5E;I`S0g{lK)ly$^7d4#(7rr zJmTOCymj+FnfJxK@8>nEV3=ba^M)kXkuo)uowaO5oK{8lOI50r6rv()xl*-p zsd1@JvO6nlcZqO+5bjrD{r1jNk#ikBD5FI(dxcRdmZ;4e&4A1(H#vfTC8}4L59PXVT+s zL;!5oZh^9s+w>wWW_T-Y6Sao$^)k9IW zuL2{-%#;}Q$ne-Pakb|!dkhFsM{2`Df;AY2&1AjxC~w2>zt5gMZq&eT-8AGiTsmkg z9WV=S#4@=vE+Qs2iu&}DC+NyS4(P>z*mZw--smr+nqkdu&rG6!H_ zdYvTuVG_~nGv1tefrPa~gCC<26bpZUHQ7S8$m;5{vpZrNi>>bNTj|feZ47BM&K+VZ zp@Vzxvox<#(!ARz9}sDr^^aG0hAS7V*P#mQpE#EfYVS&;Rz25Wy! zN|B1JQWT|V{H-;3i4a?5KJA%fUS?A4=;(TW+jl_>fi78e<>FsDNm-NwgxY?v#6HF` zK?D0Z0sfza1aL;OF5@`1pAD^9NUIj7jto_;DOyu|Y$6=&gDT2?`jSwrSh-pe!v!$UzwBhshSp ztf1@LHl>XXAZZ*YZEhw~sa|65Qnf{FMOyj;8Tb^$HoYXNZq&6{=K_9IXXp+^z*ZCG7$xVGblH+|G4smihLs*GH8H_faRjN zH4zj)e(+Zi`Ps9Dg(kv~R4!gzX(9ljFR6gQDg8WqI`@mt$jFH9=j_tgPet}B{kl6i zRquHH_1Cxm=H%c)KhlvxuGA9QP)6+bYBm_TD1qO|`(zuIno`L~a)gUCreR8@h|Dd( z$f7VDQd8aBV${QfBeRQ(i?btxLn2~SJUY4zT-`$wS05g^GDdvYs zD)J%QqnmvMw3#On>>BVe+@LgcfLj6WZRyzzP*~>S=CW||l1K>X+lY1EhW7t2Nzt4I zb0V;Azl`fyvg95>AVx_GB|A_kI)F@dKK7YkrmM(j&Yrz{jvhJ4+ru-!fAIH*j$7FE z^7ifDr&rIXR4_=E-2+shyqWsmJ!tU!A_Ep2hEZ5wdLeKMzpMC?97aUr4#TjEEAJi= zS133ZE%!@K=8~`oVOo$dHoM`@-8vptpS$LT?8NiUnzj(6RJ*(L6xS*8hW2Ll}F~(_gr*{D2 z!J5@QfOy(EVmXot=EGK<05$k zgarOr0*u&K{+OpC|CSFP*#8l5Y1I`TktWXo0}H9t%71*4R7&RoE@|Q;AY#2@|Ned7 zoI97DeeT~Y9)Tb{*HD>har$&Y!6P6bXf)=NK^Tc{ZP(yPLQ8_I#Sg-=I+DzhGJ#`} z<=kdI>$G?7)2XQuM(<_Hph#~*A_m_hpL^Hc7WavSx=-4HQizIQ8;CUSMEz@M9}A?O zZ_@=-QlXw;zqu-Mp5wpJ!Cv8bb^KWYt~>5w%AM5+BHm!rQPY?JY8&Bab&}bg)We#qL-HX zSuK{%o(TPa%7S=!uRu-mB^G3Q!K{Srp+WR*fW5K}z>cJ=h&T0RIX=B$R(k4`ob1__ z&GJ#v6Vo%NPo{?T$7ueOHcdTPiV8hIMFJv8^0f!@2%9SwYWo{%ey*sfh~h2lb#Otv z3O0Kdk#y>emKh9A{;9YyFIEwZ#JY1VYJyNTf@bCz63|4m7 zLOaQFr#S&O##}0)d`V{jla_}6wh40;IsvHEZk9;W5LFSTiC$16dA@-@PTkjxQyN0S z{3iqPtaVMzRmWkWH8u0+&kqsCQFy*RK5g28j-#+>(axEQib&q+>O(G&Qc}w3)GAc% ztOZUjegkhxHx=1z;re=L=<3yOu6$cM63XdSOfd(irpmCK!;h%#(&`9upb9s;L>Gzj zV28i#KhpnT{<3nKeWp}$&7~nhvv(f!-usrJB7cs90Xb}k^m2t;32Vf>R*$* z6%-PtA}5)mh7O)=F?@ib@GuXN&R)xMui6l2569n@)pdm`_tyZ^R#`xsdtcfmUM+TX6U$_oSbn( zgQQ=mh!#8(Duy2nBbq|_>3ctQT4NN#Kug*9;GCAz2yljt)xp)-c zp@@B(5iyH1?FU})FnH*|{{1xYSpI`NhlF45k(vC#dX}I8%?9S|GVAdw@|AqZmljJ*o_ZFP z%O8c)rvjqf(J?8>WKc9jt2dp2`1!O5P@wxLl6-@AZu@YskDD3_={D1)xXz*=KB=M6 zVh#Lh#mwomX0QYgA6^A0JilZ3o@w)b8>trGXX1NK5+6T1HwrsYUV?L!UdXSPRSfY_N!p~O1C&lF zr|PYGMx;W22f$UF-rmp8FK8e%-y1}3skjb1Lsj%H3%UmjFv{F%fhl*@*e6`?R*|KHfLeT7fWF!l@XB3o*pKaWB?}uHhv3O+ zHZ~gSf5Vmf$T+mKOie_DpFLEomTH1r?Ho1O6ZHdm*(s^V&xZ~jy5bQT9*~qA?C9t? zXk1E0?h?!n>7L!EdnZLC@{I@~mWWbZTJ)tX?ROWVK|$#Bhw}W{#6M3`@+@ zl2RJ+!d0q>bicCejaOga@Uq(YlyQmmhND+lqoJ9VHlO)aYg{ZCk;Y}pPb+Ts57(w9 zCyWUX>LoXp@>o)>T18%Fde2mmAO9EV3YKT5;=F_M*RGiOM4FAcT4wVpcy|8~-()0m5&$uFW0TBOpwg*``DxJ80@_I43(VDA*-3Z+;*AA?r z?{gd~+eBjN{RI91daYE%_xHH*b-Bximo>&zdP&!;E!(@FlWjUs^H+6UiN&p(UfnIb zxb+a^i?Y@GF5OLh=KCPF3GD>26CUTT)OX3p50EoUKyBLsbetm`t>&&%z~$M7^pM@MS{k+sDka_VM) zz>k6pVk@#R>GeK&o{5lhtXo&PfYn&q(tHwy=>NkS6y&B!t!AQC2QTZYqetW8gS;G? znu?2Oj(iBd_eLup21=mC1loh;=Q0ryl6kqiJ_L%qWx77Baejo7(Ke${@P0S>ks~VA zLt1Z53w9-0NA!$5q-DV$@-U=@R%w=q{P%y_PkLCJylc+1HVe?E#P+J)RI0zM zA!}_5HTEbDHNeNm&F&#!I`ngx26+Y`lR-4~_kE(XSuojAsZ>f0U3?w_)z(OkezJGx zp54SqZr{4~&;jAco9d_cgJs$Tv2PEOH|tF6;~apM9yyYcVSYb(Z$*2+ruCJ=Z0)Pv z9lDypICpoHx+WghQJ%gpw}okY2j-(Oma=`fJ90yqgxOndG3$uSJlYG{8Ixl*;iKYW z#$Ktc@$?(6iHaOKd>GBYewVyP^JdLpK_vt-d0=9&Xod2ToJF!&75PFw@N?$Lhs=UI z{soh$K;yb{sZ^_dNVB{z!K4;jR=s`EEtv+?8gldNextIo@R4KXnIHk{33hb zR_L0~?6gwD-%u@0h>LzOA}#COT}|<`FoL!e6hz~CWwIML^70j1Q&V`^9xsb#XyXb@;WM-DS*VUpB>sE0WnQeKg&!qNYXX{CH0 zpgZAs6eZ|-j>(4??A1aCbHC-p`S0;Z8bg5#%e>CwY~zy#FIIDyr{1CSWxL z&oL)_KqW>h%g@ceFR<23nD#LHqhz)X)gpQA4!y*?(Xxs>)AgyjSsByw^X7G7Z6f2RWaZ47 zHf6E~`u)E<>fC)?uGV+9NZbVl^A;LAO*TMsMWivC7JOhbU>F=GQmWS@OfBm6eOt3H zg}Wm_-Z7Y$O#8?9#N^gT`JRNJCz1_;!J#T_vRHfrY?zI-S1mvYpmu`u4s%F^Y zlvn=sY9#Dz7iEB(n2{yoiH(@;fg-iE6{IjOFVS(SZ)Wt8pZ6W!tTH|+f2nfAt0&y^ z)NpjJb4KAw*KPw;)Z?~uXW5GH1LS*Gl)k)v{XUg(vE)sAO{^A)LV|_#4x2|3ISyq4 zY#RSky7loM9Pavs25IfMBySv--q1@u+^nQmImzzlKSj77)k*ATD0XaqZS&4|UVCfH zrjLGe=#z|%I)Y#F4T@KRL8~IWI}<&@y67Yvson43ZgKwb;h2~JcV$CEQPK3_ok+`j zZI#DITp0Coin*KYmqUl5qy61%ZroVBc-pWT*M`CJ?M!Ol(}C9Avz@>uLQnRhCxUJB zzZ{9KR1V&~9kkQ>@CEwdw^1MY-w@Y3rldSM;d z7<`DM!?dz^RdURp_mz^_dzi}sYoaaFX z9Vd=6r;OFA)bVlS{;aC)>pwypJ$lrL;dDpxd*lskO@HRnrM$dEO@Onr21%$JNQq=h zClcT>H#T<`CCJ;L1iSJ=j*67ae7!w7v4<_1W+$M^bL)o`(^b{EDsqtZ^YMycdXayj ztkR6m6n`z5QM`%%_@bM~o5n3fU(Wx8&TaRDcNVQ_#9d`v!hAnbMLuA=ckL2EK1G54 z-^m3!fFYw#?u!eIi>;b$xC@pn-m;l1HyDq6*l5Kg5@QjxM=P7cb@0FNHsoILw@9s2akCW&2-UapRI%KW7Toj9Y- zO+o9dzHUTct)$YWOAj3i3+u%Gv>LFTzqUL(wD6iSk>)*Yk56cRWukQM;b8pZ!i5Xhtlbh5C#9vOX+!*+9aSSe zIuYfL_Mmhcoxejr-1<5E`SZ^||LM>#Ed9wRpG*(y=iRR#|AYTJu`?!k89Qloj-pqN zDe!Hy-SB$j{30z9OWqaS z7Hn?g%@Qk#(mV9jx;HjgxQwGw{Pm8_*2=D40i)w4Bqmm!`u%oL&}*-eOW3k-yWwiX zZN2QzietwdztLc?B`(Rz6C_3>WTnU!g*!Vc;N3tZ+IFg6m;Zcmq2~C}17BURict|A zXKih0yk*g2KwzTp&2^%0L|R&2_seBH#`*dWm0M5#MUKV9925QUS?Hm?HqgV(&CT7@ zJ0KR72F9rj2D*WCA3^b3E9dKbQEK3mOUhwOH1q?qQBo8}GJvV!wxRj9UMi6q48{_6 z%^Ki@iYU^B{)Xc#G{#JNNmu@0=vSa3Z;8;TkIv55)AlyGZQtL2(!9(~pWgCKi$JTi zn8sI@3w^tM`c~$m2_yyW%Pq)Xf9sj!nkMg6oZ_OqD=y493285l3$(*cWVY~*wLO&vs`tcIzq zBJ^n*?USp!y}oO=fY6aDjYbphAMI6LUS58&f8t_VkyqHJxJ5CyynOTKOcdz@I~olJ zsYEZk-3-1LS-qg2;Rlq95mUw#_`Zr&G z^KkWl_8+<2GbAJ=z|-|xyyl9;5vody+*wJEX*4bJE1QmGezOK) zEY>Vg;`BEcULN2{*7*e>L-nY1ew|q$?+AiNf!b!jn0ZiJGDXa$Z4srdP*Hx5&RjDJ_(P+aYitQc=%7pD!MrL^$#4}zptkTZrYd0 zGv<-dTvOf*#06O;1Lhngkf2S>!aJs>h7Tc`hp1TR$@B@%(`_b&F6=BbYy8CBWoAO7 zYr6cmH@i$U4;F7Tn?YE+&KYnpEjG^_ItQ(P*{sFunSQF4ZBp+g{ znLC10fSnE7#UG`520J@QuHBSr;1t= zrG;MR=ob`Ji`+E6JS(dqA87=$Lh<6kOV>%z{{2CM{zT*CHr3VD=PT_OGA?X`q*@m!BFr9S6Hk3#xp7 z>y|C$C&Z169MVO*AQfKs^}i1&6^RtFOrt5-*m86Z?bMG z^o~XYrO6|^H8=BCq%=EO>jxv9=GDF`o7X8w-xHVZ{9bH9FPH<})$oX4x0pJ4VyEEU zYPobK(FKm!3w(KcONx?*1n_?;8XFq}I|c6ul+dJAAfA^m%gL#%%)w6o{hdm3p${7= z%^MnM?$)Z#;cj8Q?0jld+rwi2{{6pq9}%)R0>xpz0)_TV3JTJ*wZQ&!)X^;`8>A?B zNSz&YX5(ueDdu$KV5IR$<4B{Jgs*(=;Drj0%hf1)QTg$v?;J{){CqJNhOQ;nUS3&Q zj{-+V%_`GjQM;ohYt9N;bB_YDHOb559x7Y+7$7ldpN`*0$GC0R3*3Or!$+@`bP9rT z2cux;=jTH65vteh<67pQSno%UUUPulQn~T&_ubm;auDhywW2A>ZUCbEdghE)9$XJ8 zoZb=8b%+*TwNJ4l<5Tjg<;azf+_sCbN2C4Dtc?_e_Bd&+)zzz4TguliU3m2>pKS?lSkLLS2uafG6S9S4ocnMR zijBDbjkw>_VqI(r>SB}ow$L*C!aC)OHjsoGjhR}Gl*0?m8nV?`LEi!XR&JHRg`v31 z!pFxyalv9AA7K^S!7l9hv347U#5Nw4lSMy^n(V}(-lCs{W`SC`xVUR)<+`|Nc+s*6 z8-MTccsm4yI#h17r^k-*a+NuLTurzC>aevE4iM5G+R7<$jGx1OG6y@mF7*U7nMmndY3b{NiJr0T`b?4IUnzW|#PL!eliGTPo2zd-5 zZ=KdyBsy59SS~NOks6wtn}0oBqBbrxF65ZaC8C~W^yu!?d_uo zqld~_9=0fHX8{T;)M0oeU@|^2_90?V0Lb@hF5pRC4+siTk>i#N>mQ|mtx1%oL#4aa z+gEi`#6JpX+qR_vAGXA_>2(p{J2~FmwPAyP`6d9y;u!NN@a2v&6_vZ z1i?mlS8#2zOGz%Lml)wG*2~~G#z|OwsWCRr&|+~&^v4ZjkZmtWI(qU3TgXP!YJes+ z&U-J-fx!E`g*+1({P-pTX_3a}z@amT-EdBU30UAOd9KlcmhpC zQkWx~fhDtBsYW7xP4}dPxW)MylO`lhpO(qqG=`|-CrwFBjE|!_#a^=AGvnPsCOZsq%ymp_ zCe9!(nV9I(f>8+Lf)m^A8q)hM&tUyAlS^5>ZZ zvLg-JEG%+?gm$bm_;2b?;hwceUu@)kIK^h&fcNNz;-&YWfw@Ge0(k+@R{)m zlc?6Z|I$Rl@H{&akmOEI$;l>xpg#5zGuA@t5mAxV3TNN!gZs`TYEcVt55nRm!LqJO z%_}}*aND$YbwHhoT@tu)1s&_;xbUHa14oTiRsQgcQ*Xba!$Si6d^IrI){~W{A#k73 zZIi!b7DljL3Efn9N!fWuDWK)D?lXnG*_4)PyTi9((gwEu7) zqG}bVS2Q)rom?&d`isyiv*V3Zq`H4r+Bu4rY!ceLQzhA)h6R=X!L3sbL$V_(CSFZ0 zAn8tF7UnJK2@mPPOu(>kb@hmvo#*N*oSwKD=8idCY3Bjy5F9_w3u%vBEojC~Ioa)) z<^MZMgKRid)rbRH^gD zf>qYzoNoPiVE6Wqzdlj*mtM*k8Y|w`7_*RIHrM)tGuIq_dvFE1`euuR_A=sq@mNF7JQBeCAl7#mKUBwG}V!h89i>+aGBu?<)Da)Cy?muueb z2o?FnwC1g-$TSfIKgLf2^ZOmxDoZh`J5G0Rz%>UpuaO8f)-6zD-6VjvVs4%}a5B+H z#>GX zkqFne4P0~PpmTfh=FUhSgMMn9xBIr$;<@8(HO%7eY+#Hd&l#^=6*GpP5&be)X6?*}|Ar#wX3Hz4o|%_m{DLis5LYes3pAJB-Ur~=%# z9TjcI*H=yb50aXi%*+QgWYx05-?t^2%^|V)a>$Ygv>>O`;=WIN;AtIm)S$xoF~Mu| zRAeKYw=Nj(bT}Tc1gRXQDr1i5;pjslU8=rRi!cZq9*!Kton$$NMF(Ol6cGH?q+0N; z_~T9$d4=gSOGSRV|04p4TOSjs8;Iw`(`@9>wC)S5m8^F?I~32hP}G7_^uABup=Imi zJZDghBakDcW1Jc14lt(c6KQ=+z_>r2vyhhuF1{}`f$pu3@Q}vgiMC#EWgETazKyi% zDR%Aklsl;K?OLK;9diwI*NHQzJ4FqVF23%R$|z@S>{N^m<7Y=u$SDu(vQ{|X%a>x* z`-AH?wyQP8p1>(=ZO{`cO$i7JR2KR+AALI^_6?RAA@ec2QQy7oJ?WVAF5*37aEo10 zQFwUA`M%N7YDUUPbt*=R3|~$G8}k0izd|;T9P9~#!q&w7d{3xPmNb_PymGDjms^*r z>J&Y_`WlUlh1A-v8>*Gp*4F)g)28{iUoXHX@WX98M^q2=B#t<9i;>)7EG(_<+;9E( zl|61d_-0@t<&5(p=h+6LeiICNldXM4#loJk!iZrY^#xHc;$IsdeB zIem#Z%P2(DFcc)PEeufMlsUqmR2-(eQ`y)9cdE$S%%BA-arN5Cwm0~QCoF1AqLk;)CJ|Vk9=v&LlyzSq4 z(OPbN^qEGWS(dm#r;(gXZhLU8l&`D@teL{25UQLoW;DZ2r!lIG)u`im>J-0glG#y= zm5j-HUU+xvl!~0ukt|L}PXzSi|KX37_$Sc$HMAkkoUHOhC4E{W{RQWOycADVwzeIS zIcqkKS1Xt?Ho8k~ZEaAN2F{d^$q8xx;^N$bSY(uK6r4GvhLOVsPE+*C$v>D`7@Jeb zS(nQVMUmL({JxO2PF{6L^ZNVn_OgF%+qNy4z9ujg*q_XA>Sb1+L)CVo(OWaO|E!cc zkOpfXXA1#CXDXdAooI9(C)Lq2^)LYZQG7a_KZmIuBhq6KrZGL68h289^1md=QEWZ7 zPwso^L{g|Pp*t<+&?O0v(lh)lZ`j1AFJ7D;kL*o;w(>dy9uyuW%W8S~JEM_2$8?{nBLC6Rd&R>QWg7|AB*d8z zL!Y#*zgT_o!XGyp>g&?dHg1f>cJj5L=4xn!rLv_nG(B*xqAmg~xdt0ao|B~c4_~5! zbvXwadmyRe%^%KJldE-qOWVz^P)?w!h->R?mr;mFQ53%Ia%av&5S{T5`k;f@P8KAY z`0Vp7{S=-}6Q32{`H1hZvJiINaVP?ZWdR#=Qb;hT!`2BE<0h>CVffxUakzbB zi7J}CNw+w>BAL_vA^W@CGGZgbX#E4NNY9)(Q;qU}H>&Z6Ah*_%=cG>+6cjuaf#Ny* zQ5BLiXD$!cqNhTXfMW(D6=N+am50^s-o3jH;-QqR)sX^DXXWbJUCA`nU%pUP#aUNX zUASD|#3;MFy26XOABo`_;}~NeySr&*6iW5%6oNmP94p!3_1hwh(~VksPdmOi+(NJ6 zz}8~Vo?S-{oxS*1t9xyob(){I?AzUY_AFe8vq*FbxHu0VKK$L;8qU&r?4lyLh;uU2 z1giDm*K1x_u*^{~zr)?~W}wxdbxFm8QJXuoS)OfG>o`-~^x1>6h)gSLhKXQRK! zNL5p!OX6Z@pu8Pg^vJj1*f-8p|7Md z!~J@9k(NYJDa&7FsHU~bGTDzk`a#(T+qbvm9Txze#K*_ckw(BSFbfyNV6)*GJh598 zSD)g!H8_@oo&|G3nVbJaeqt{Oyk3d;D;FODDm^Y+ujkB!jF};<`YV}eVXjbH1+{dE zkEm%B<1O@Gq~bDpdBXqR-fC>(tYQkEj6pTb)mV0RA*x8PPary1W4CExp^8)~bMofp zCG^C0k)8?oD+eC|&mG7yOinHz0wXrA1i*HYe2BAdw|=Q7Vuf#g#G!qh2DB*1n^`;zy;=Yqk`t zU$sTF7$cq0+okh78tbkL@?{2~N!`0U*kIw@P2Q8nC~H35s4*_V!QzF?`t>v)b&jO; zKg!9}aM;6HS-STQ8m$>Qzzv~1PI|qr(PLf&l9*|`>l8)WU(3pplWkuUmXZ|7JGI!P z&lnA@ni%bAhx-TamV`9B6X)X6QygeS_aHjI6YKa()=wkc03lK75|i*m1URUiey_(= zg?3ASbc*PxsL;^RAzn_L<)xj^Enl-{&HA@C3o}+nTNTFpH0)1|za(^ouY=y%!FNRH z@R-cP!otj$;h`>GaAMD=G{;{szmf6bNb ztmxt^@RT@?=UO;g4fs)}4&ejGZaP|`+X**H4;?c304vER3>9bQ8D*Z>a%e4RF5+1l zj@f&$ugmxrIRhQ!NGSF;K!UG=Xk}|jE!-7FdO;4$D1SlAYe$P#O@yw(q>LWuvzDod zru)LEqE8D0x=R`f-P{abpmi^xdM&Oj7@?B0E(R&J=dbhV-J7SS3raH>g$ zah`FRt?s$+oNZA#{cLqJ4pdT8b(_`Ht=AZX=*6zD3&#!*ftPf^h&32eRfOxdFe?@{ zpJFv5M~1~lsngTbGos_8;fL67U7gEeuD`q0X+>QaRVFsHkXJ@sen-#yxxXmzS5rxfLEhlwA1g z)s@enMu#|i9%PlcQ!JNQj8%~Xk7<)kLQ9l^s5u zHFM6B5ztmvW843mSO};ei#iN-@DtGuIhh>ZmdcBZ_4-ZCDG}sttS30URiLLZ-Yq-b z+rOI!*zHbLHEWmjo%(cA)3-|V8aMS5=$I8&*lvM}zt1P}SbH zY;LCZ_0)o*DWgz^#m$I{E1cx_qk#otjS-ubCkFriu!s~IQPEW6czdI0k`uOxA;s1p5d$wM5cf{sd*t*nJ8%2 zuaS-D(+6O{Et2`ZRJWz|+1Ef_eVVLb7v)C?7K_DuRuMA_hBaRkc$C7Y$FY-AMg{4B zIUqTCQWMS>A_u?gIlYQ;#K{EPV8Cq?d)BRuHcIg5UiM(|L8^Ba>j+LoDid@vf!}jE zVeIT$Z5@J5QyYwxxP1d}?6j4v8RFf-vnk>``_^aKQzVNT+*wo+pb7!c)8d+>Yr7_O z6>Bj2x+tz*Ei9Ze>^p&~|tyM^lz z`O>n$x5tlS5`oTY=SPsa-<kG*rkpe1`TOdF_7#6m`` zm{xm7oQb>@Lky8HcB;ubm?S!)qqor?am9p>+EPK+TK*LUKM!VX%iT;s09xj6Z`*o1 zYp1dm4@^FahrqW~b~DYec2JN&q8T-(AQH;gOQN--lO#;=^GB@0CTpxcd+qq~gID)TU@gKW7URN;G;0XBOcDfOrdh3A5(GU#9h*ZneU6^9BsWVD-M0WY4z&W@1Lx3_r@nW z64N46ut`#oDSRKNrX`OY;O`?V~oMBaZf!W9)7jC2KgM$u9jFBLYBwT+>HFN~*! zt8%WOiOarMsSX~*`SyZ!+@>-fpA+hD@f)W9KC(#~8*u8GmDJTyDqUH6IwV64=GkM@ zSR?WBk4{ZZ9XA5oPO&>B9p_`N78;WcICxN{`d%xl{BvpbiQ{_d-wg&E>r#Pwayp)E z>@3H&vRFf9FI-}%(6xWUBn7Yok6iUt1s$D1~lz=VqHt(O^Ylh!SH z;|x1RHzd1-+}V*wN2Tk*gCS8K4z~~mWqgOk#uYCm+fu>q7ET8bI=N>ogiCxqZ+exH z7o|Dl`;w)c&Kf%C8*gnaKXnPqe5u2Z9dOb^gVaC&;<{a@8XaBT-G!M25_em+-^VDS zl?yn@X%rgZ>`-jrbhvX%5d&q-Mv?C!Gl?EYU@)o88s1pj1$ym*c|cBzdyX}@gBG@3 zM_zYWnwc{-HDwaqx9iredv(n}e)kL0VAA1BfWa!Ovx-kpsZ_)K2MrAl;4A}r_H?gC z^~jB7%LP73Mq6@!yiCf{mw@dKnw1Ox4%+V$Jlq}uC%mp-z3CpMog7C>2n;w}=b#uh zz+L@EOM;?9eq?x`>&SAnkB=YKg=RTMFB^m1|9deG)N-X4bpdQ=77!?D9B1{1qi~+=M_Rouqx796Bi6*~2V>Qm7>@3rU``kR#lHO>!V#kghM|`8A zqq0?Gi@*W2I$#&?uE6u}pLXte18L2t9aE^~a@5wUOIK(2fuT@9N5*78uiqjty=A)N zxfk`Ch!OCF*cc4meEJ6rhO6t^nGZA&1G&a5>Dv{J21alFSJjEHKil|_#))aq z()p<>H!+h^2FM&L%LqCU)xBB6as_sRx9Z*qbTP|uykkhK?tKcfT?^gYfg=v31POn2 z!qW;o&D4T8W%r-Od`6zCpRu|+H#b4$@8qO`Kjn48$xKW5daR7R6yTsU)$?Z4&M zr?Y4IJ+AVzXHDu6N;L3Uf|j+lrlz9s>(fH?g6fU5W^UZFnP_cUJ*l!&TH-s;p&sID@;v1!n)QH80sQ}1s8owIV0P@_9tS6JbXK&CP7!c~ zr;w7UQ7~U1ti59;VxTz%u3H_Hy7cX{qzsD~Gj=`Xn-sK%? zc}|4U8qK&HCe=^*>T0ID$_|EyA2h>Nc7J_C#KTOV*In_jjN0rlF4H;Y&>Kba!UAheuOqh^cp-#NUj;gEUp~%xMo37Q> z)s2BRL$5brtnYyX;~jc85Q7-8*t2)*wqx%-zXJG$8WW^zcbw14;-p!#{w)8e+Bne| z%2}+?|Ler|f9=~N;=BxSC6113ztmeQ`wR{mHaZp2WHnp?rw|-)aklv3y-ja@_+MpE zN)%L@kKyR1*LIxOJ~Jf+p-7z|9oE|g`jbStrnN+Vq?9{-pB^pDskr)?a z643pC?aCgn`Kj4|(VYt4n*fd98dCq4M|9MbSnN@N3XAJBW5rlQqJJWICnN=_RuU81(K9a3+m)34Ht=!Zw>>@#Mk_Zn*LLx$pMAz5Lv{UoX|&yoHHP zechvK5U~oT7yEV{4&d7g&-fJMY~$1N4P`seD-^6gQYb5kNZWkl0{P0f-Y(no)e%8+ zTtxBI4DX?LX#8dWk+U{7HeO+2{$X*AH(kP?(o)v|uAOiP`uaw~v@S<*g?GGIJ`utm z*cTTSKs}x|MjQ7&Hd1Hm&un5#7>CsnfW-ScZQeL}6}l%}ptXI2=8EgIq#*F<@4~Fo z1HR(ace}P7y87Rfm-I3##SMo`%T>k%>UNI9eEyMfWrmW!q36-V&yVm|IZ|~qpQg3f zP~{Sl-{q3Rd}=YUmbMmpt3HwA!;)rB2%g}wS%?5xuYUKYIxFOY{fL-^tkLkHz^#ev zeXvi9^_nUI*~A z7ihhU6pgpwjencG%FgfyH-E#)S?OP_<4C$|X>s1dNZ9=^!8`g2ay{1Q*jr6TVZ_Ci zWNQnjh5`zwu(Pppb#d|Y$)u01g-rZ}8Z3h5siT@F$9#`U{OR;UX^O`Bn+82}QIT>n zXafc{tsF?NSM6r1wbE}sgIj0m(lckyUaK2SPo{<0q=Q|nziWe!gl_ODksZ8!G`9O~G+47SB&h zK%jrpae6A&n$lC%Yp0h=<*d=5XTNwJEK9}e6aC4Vms_gIzwmvtXFe6Hyhcu~C`EJq znO~(N)8jn#R`3)}o)1rv(K|H?(deJx3i%nokH8l?e|{9OdJ7%ijgG%T*6Bbvoi&m> z$nA;`{&_^v)Tn2UZlR{%L~^Zj-`;u7Toz22GE^!pn~vy8wO(&cZ@L>MAeZxQ%>3gmdMqpFK=- zxp%9EWNL3L_=(Rr`FX7LPcUPVyT!ZeF}w z7uz7o?S12hnrtSUEtUpL@6pC~L+-svzs0Pk+SrBalcySg*tHAVShjJA7i1H%@ z0L2KuC6labkEt=f*__3$vLBmI97 zDa{N}{QMsLtEYTmzbXsi>KPsAJ8Gnle~<1E*A^`6GC07}me4)dTutCangJz<=8wSo zN15j4D6qzEFs1P6i;{_fwU9cCbv8;1|3Nfu;kUDAe`5t|QQu_i9u9NFCciWAVWLyu zr|E#fXf(V}*BXAvB9o=_HLi8n+`~Zev(y@p)Hq4k1HO_~oDf~lq!cew#H&cTd2Gj@ z-fJrB2|dlDJ#DvJz$`{rv}_rDpG1Mp%~g;2u;-)e$R!kV%xQ#DRzI#9Ct&gzx||@dTJ)#66tj$wE+uT2kc`o= zq&^ZQWjX#@VU;o3h5A)pMrSOEgj4dMcx~aAwsMY>;i-*BuIc61j%-9L(8s9|SRk^w}i-Dv-RnJ8mYe4z^v80$6>iCc=A{AebTK%Hg$vp&2Yhi>Q>)SsM0igm3-0 zU0{+1Iuf#qZ0hT8^#~cAhFIZPFB>)E&G<;Nvq?52Hmovf+)(+MJv19ifVxEb>DjY4 z*%F+r^u_LvHwvh2M^yk}?$A|E8W`ZrU1E#sc~Qc|j55^tDc>dv>Lp#+X2X(|EE%>GS8I zDkm5FmW*8Z7_2OjHNdASLn!Vc6*S-NtaQ)fxW#eI_7qN%Vo2G}3D_;5*hwuFEU?>6 z%A`*PD}R28R;|D#`A3y9h{nh_O6=@>eJLh8F={)>dscIUM+A6ycsMDD2h671P0fBu z5iP2;blD*GL`z*y_N9~6C^kwB>4jDaseug*4MsWQ!KJ)hqcfOwvSx9LRgd7F&C0d! zGzCwNL}*`NfL-Kc>q3=wIFc&7T%4+5*kBuoF;DXPCFf`@6j|Y}wQLlT!t9Xt2;6h- z7Pv^8ef+hEmce27R4xRaE#r`i$ttA82;QMtka|gw^whIrDQ3yDr=-C&bhSg^8_*Ev z1?{3%2hL;Si#PMJK1y%_^VJk{Re*zDd3w`^|H`p7&R><7hmaoCn$E!*{eXIPz+CwW zDk-W8Fsi3Dg1w?xs$zES+QolB%c>q@o`!_eah$cix33LjSL1Z$^!a+dP5t@PSGrXz zB{sg^_81%_;wiFyYmnq#1*e<+eg)Txz)!K$;tx3`P{CqseniB}bcl7ip+QK{iVk`8FL< zBa|O6P<1je^K3qa$kc`n|2oy|H5M6HX=A;bf7^{n&g;8>Ywo6@foe^+l1H8IQb54o z2vH~D-yLiB?nt|L746<#ZTGIG-MhW*-tBLBN4Y>}ZSClUSJ&H>w_FrpHOZ5%m0v^} zmx&yhY0R>IyW-?8@ITZylYkcQv~(#>GsDc_WeB4`QNr0YUpyY|A;XmY;`PAn2r>Tm zEF10qJnHgW?gEn;8k-4&>OTp%iY3RI{cv&`Ulu{K#IO0N+PKu1AacR|w8bf$z`MeC z0qx$kcr1nQyxM(d*X~_iyLauM3m3nm-dg{vOIP6gtGn{+$@70!yE*@P@~bV#U0uCu z=ka6TgZF-}tda!=2Fj|+@#&Wc{BSa3Lydltxma9r)G|px014o9w$UEWY+VI%#=ksQSJzakXsoR~`}4`{ zganZzsSVG#bmzLH#0R)EAVM>O1x^E}P1O{s0zuAWJLTSkM9ncf|fgBA6TW7yf z;}hcj6u%ujc<|6+o3&+SoaJ^G$NDq13QLI?b?eq%;#;00wMjYWLcBt}m@~ed#Mj_^ zMwIq(v@c##mL$h}Dyoon{9V1mIV?u5aCFqBre{nY;oOt%61J9L>m6r@bhbelhCbx- z*C5u>ntIL_vBs#d-YC<|NXYHmVz1KBDr+NWO8POju1cfgL@7%fbJn>2t zIT~3q$bdP^Nkc1HWD?y^JRXlgyPZcYllZPot0zk*}z+y;P(=~Sfad#BNqOK&$M zI#v?5u#Ak1P&WdvAaNUkzem8@;-m@(M`Hsg>2|B`n%?tT-L39T&5cG!2L%ubaBKj# zHaG?(`ubYceGjC*ue0(MB-;NgK6gO>s7HVPRSo{%1@;V9o)YP@gwh3^%Yt*K<7j7F zRLS|3{6;Ul>&FaZCNNpdOvVzIE!<}Vn88daGm5{0m_AH5<|F2F{#`E=Ad97GpUfy> z0+cA*Gc;3jhodlQd&1luWIh`kpx>bWy+u78rjb0ddCR0^|s9Ei*(xynv@pYSn$j_!uOU^DY~P zmJM3ZNjFzjR$b+!X=!0~uZv@4gS**FHTZrzLN%MkPhscK#7%Muk72j7PJl@7WiEvv zfeQl?!Yvm*wQbD})FCTI$7jBf0)ZRF@31SACd}|(>BwqfC(iR|&Ay_duJ-r6ZNx-B9Y@Z74_)oHP7Ms*S|b@@|KquvIq=U&iwq}bGw(TanNYK zy!5^DgIAiN$RHz2lp8Mqr+9$ah*-e$*i5qzj;5n^SDT=-NNxq)a|o>hIC z1T@!RuOC~eDxgTLlqf^6GfcL=e&5C*e@^Bfv~gcO*kG|RripmUYTs7ke`<@t|K$FB zILTP?KR-h<-dW(k{C!)J@y&AS$t}s)jHzJD%2HD3?iG%~j~(4JL*KLboTY!X;YM%} zoZ4_l?dG0s<#db^KGgFc@-v+B;=O$PAb$J*act%21$w%X6Zvm2rEN{^^=8t1y|!jy zz7}Tbd(fxeLkJ;nA?gpxrl)8i)n6a}`huZ> zT1h(Tl7hSf?3UEg+6DHf0wV(~$&K$19P{(-j@7cJLU{HGJZmw{&l<1pT{w#_-RWO` z(-Pq{=E##UqCOR`ci`K9r}f=S_zrjI$Rf_c*?D-rqM@=*IxIddCg=p~<>jRja?=(6 z+!xfX(M{V=p#?@8L<`ATfK1nEZ|8;v>BVxqPVGHK|GOw{XmF0r!z&|a(W0CT`d2J~ zAX#54KE44xRrJ%kHFgWy_fHX!Jz%mYf@0F*he_)y8x;A&okgy~S|yY68L+UMXbx?$ zhVfc~Rf}=q{)L#@JdG; z!_B6C@72EUWx64xC0GaRQmOar2R^wtG}(}{w!E}}u5K>Z9X$R;-z^(s2(>A0 zT|RgGpbleT^;P_I`b{{={<#*1efFCQY2>z|4$o7k9(#=L4Dwm z>S<{`)i*S(@SPdq5B)riqkNC-^3F5eM}x^A#!mUR87n-C;=ik}veBx5krAhWMa&s8 zGE!3V5=?P_w~o1&w2t}4@{$r5-#l5)FUXf%yEr(;%SJDM{5$KJ%S*B>!AiGIGMFz%{)+liC@3Od3vVbbD4Wtx2fQREmY)M?*7daFko+10WxD$?&6028>VIy1F zWN@~y8x2r6Go8DPLXpQVlE2w$Xp*qo9=s7V29yVO!u`n^ql5gA72+IxuPgnQc_U`T zD>n+cN~X+D%gS31mPX##cwySI4Q4P=qJoUP&6chxrtUY`*!3wG*nPZ*yQ_Iwz}%F= z#o!=C7o>4dX?tt8?yEWb-7UobF)~Nj`)0U0q@btMgbk|qJK2X4S1dQhKH%rVvQ&PO zX=cs{v;_pkERM6pfwDa~bAjVDh~sC!EI@4HM?~UC5Bt5))U+R~cI$MhsdT+-gu^Kl z5@w87Y4p)SHu+CZO>9Df2`1AnvP(8k^E2X>#TC3|Z{F0H=yHNx-iF-VhzJ8gFn(`# zcCQ4D1!#fFxNt^*N;P%9G5tmO`EWY@JmVTOM2$9hT(pr7Wb2Iv9b^HfG=*nUQg|pa z&<#}(U2oq418QRid(1$Nj|nT`X_3ZNw2@hx7DJ&xq3)O}Y&rPuENi!uZaDJ~-{ca(W$eT*0r&}cBy43Y+bLit3NI47ja7R)5=4D+rUdLls*tCu z?v7fP98P|vdy`;>_7J%S0HGDq8lx>*jD9SlI~%wgWjFR&kX5d^Yg`v%`mdz7Uu3{YM>)oeyc%U1YE93tO6z{cT_RMrgxl&eX-lO^}WC4g}3K7nWM!b0JwQsd{I}#HBjj{3R)2q%kh8 zkq*e&uWtCwvOFm7{xA^{$a#PmNtQ~0IyFa8-`QzDP~V zt>2$-8x-V5;W;MI+bBFEJDIccLkS|c;MoBg8EL6`MUNtzaG!rl(KAcaR;Z@M54_4RFFvQo%f)1A!ATAc>vQcXSIR3n59_-QE55cRd|P-$(%YOow59xoDt= zQNX5Ph|qIzkJW-`uOw`V;<1Q%?>!)s3fapoEibzumPVNKAw$;(M_Pc(-{~5;adpUS zcHZy`p0yCVp4q`(H=L*!;v_;AMPDc@)I^@m%a<=tU6Jl={i_9)-(9sYs{Zktj!&AJ zo0^-ewc2XQCPZ~fR&Rt*U6J`B-R_U}1DP!2)98D+7MH`F;C=*Q#sk>go`-p0a%TL(cYk3+NWb^^c3DkTj<5AkV$w>-)wQ zo@|l&yqvyYqNvF@3PaJCDAQ0$quFCv^jXhUc1c>C)M=f_?q{{pkup zbgT1NpT0b8)q@XWz_0Ot@}TWtn0u<;>>=}>94QEqX%+|@blQq|^Nvp_<@=}usZj1! zu?2r`9<_fxFgQS2uWYZH(_C_L(w;p50q4$DSjEglxcx)WiowBKHrds02O1U&8>ETO z?E6mi$gs-xSS)T0NHm`AdHwp_xpZ%60NvIV7bA~_Q7|!=dyGOXw|!QG4H7wkLvmS_ z_?x-3cNS3#3ZugNon~@b=}6C=U{p`jFl?ORWhWOdJZUq+nC1jC6oF7qyYz(V_j)@* z{tNY#V*|OIASKZ$#o9%*l z=$yza9(}pFefxrg_eoF!8H&haT3QXSn1p1ZiX2uxf2V*{+dt+JsWp@hBnXt)48_=H zD_BVR6%x3gWJ=G5EfmHO(xU)rN!kYxXV}( z?`~}=`@&K?TV%ASAn^}AJkj)$Vm%XK~m%xW}>>cS3Ppo-e~W*Ix;aPVq~DFv$JPl zBrwq18l=;aj*c7J81s@PX2lJ?etO7w$MEp@km+KNEXEs$d^gztd40{EH>>}8p!s@G z_>}QMG3i-(Pi1GMEEw0{RiUm53JPLQ*xvs1tM6`c?!~ZGo6jivK0Q>o<4;vp64b&o z+O2O`%#?w?H8N#9x?k$s*{F$^S636^Sx8!A2;M8g=P((Q6&6CtK*qpJdPa@y)a$FN zHV2By%BX-lDm{BL?q&jlfCVbq{9{W*Zhr}Hm5q+lBtLDSQqmld(^}xnDE%tIFJDcF zx05)1w3^_n?{C}v#-FKit|Xw=-q-Zu=}{fh1I)T#^92amc@6k#u*al<&4u@@bpos4 zoMVV<{>3LMqhw`t_~nm}#Tv>fVYA93e&Q4gR#e2Y4?7Q=5G0)=JjouV;f4ELqh>*x zjS1qYjl*cs&ENGYQ}vOw z)xZ9d?b5B5`t>P7CToAQ7S>(uKdp`}=x;K?PMRic;`~xJru6@T%73dZ{}|&*$%yf&d8PeGOF{xI1Qd-)D$Uu_Ri6;RHOkbZ-D3&$WzS@OfQvG4ST|d>v=gYcYt!=~|xX<-u9ZIvqWY|QyA#QZD zd0K$SAt1drUOvESG~571(44TAaIQO!({?L={^_>u0pCgL!5a?sk3z3w108yWD^Aj=zoF-II9v54 zji*hi4V#KU&dJ~kc*X7O7kkD<1l#<*0`F7*g2?t`2anVNi`mDti%Jq)Z1_&#$hYWs zoo*^5>xW}B({6u6nZ&li{+nSd;d_`KbMSwOPUolbho7*Y<^i45N8jKbI8BIJ$?zIR zsUG{Z?i5lNO*9xD(m%Sc?4{D;LrvXRy+e~rEFgKJPXp?yBK&=2WlhH#8jc{Q{P7h@ z9nP;0?*5OF$lL!3xn~V@Mx{)6d?FCSYhW*qBH{&(HR!wwHiejZej=xufSxiZ&YT$N z95{E~&qo1!>cy7BuWwC+uS7n4s@>+4JYl`ZduP5^gw2SGS}bxVe120 zHhpA2ca2bU!vT1IS9(2Vh}~1&*#5(mIS<1FV>5`X%L|I)K)(wYIxm0TSi1+l7rWnX z{JgI-USu_|Aj@JcQw#N%3HEESthIIT9zNCn?T|p2S424OpnWuch-~xB2Su4T%`tR-uZgC*6iR$vYihN3V#ViC zxsPi6bS3_@-qM9v9lqoawyOd)pg|1;&Ql>QCdQ6lT=vTE`Iw9`sf%`n~kIyYdnF!XS4ImmtweTA?*JRBI_u8 zx764O8O5(p0X+54dTe?+D+Q%5!n25`wE7IiX+9phQIo};?@V$$a*SF?1^VnDshG;_ z4h}|W_HU|n9u$~awUa9G&X zQ1DgaQNs8y0uE$x(ZMR)Y*lb{T*4DYV1SCANHFNbv|4SL-VmP(<9=#fq-)Ky* zSoAT8iHUROU@k90=ABYL&Ten}euVW2i-AEtCd`K&`M%8_8am0F9lM5v64%C9?@6H} zP^~K+qYgNV4G)h1zMPJqk#9truQ6zYO0O?pqAkehxU2=xr6c&Gzn_=K#VuQg=q?*| zY&Qxij8=;y4+2g1O6d(kD5vVCPLjHc5vTTOhf#Q;9}AwyS{qdvi!m zPOssFq=BdWzg3o-OLBRHQAtmeD4IKB?~l?LNFs#!0%ZLNeX$1fFBNMJMmeTE62^B%DJw22z)iip!j<9N)p}Y+ z)?QFlyogbvTqMdkc=y_4t}=iDF(V~rvN#$U6H%&?Ey$QjlN9VFhwsXZB()zFsBwPM zgcq4$Oivl3l&?t!50{(-EPLFAoQ{KWs-Qcrj(A0xRzO*{-BZj;4<6klJ#7)%_`54Q z;^klCe}54_2@>u=Cu20y{18;qoQbD{{gx4}KR49V({t%Uceuff*)|ObHQ+ZF1#;$( zZVK~8VSR-=0|6u+NhYNIMiOCF0;AQSZ&H+cXlu2#bXdjqLaO&4Pq|1SQHp$7Rw44L u+!g&52fTMc7}zXFHKidLLWzt)Q65_97J6kXGsWS$z*al5cnl5!()>S(Lnoa8 literal 0 HcmV?d00001 diff --git a/lib/@dsvgui/package-lock.json b/lib/@dsvgui/package-lock.json index ab6a6be..7bc9af6 100644 --- a/lib/@dsvgui/package-lock.json +++ b/lib/@dsvgui/package-lock.json @@ -17,6 +17,7 @@ "@storybook/react": "^7.0.6", "@storybook/testing-library": "^0.1.0", "buffer": "^6.0.3", + "canvas": "^2.11.2", "image-size": "^1.0.2", "react": "^18.2.0", "react-dom": "^18.2.0", @@ -2542,6 +2543,55 @@ "resolved": "https://registry.npmjs.org/@juggle/resize-observer/-/resize-observer-3.4.0.tgz", "integrity": "sha512-dfLbk+PwWvFzSxwk3n5ySL0hfBog779o8h68wK/7/APo/7cgyWp5jcXockbxdk5kFRkbeXWm4Fbi9FrdN381sA==" }, + "node_modules/@mapbox/node-pre-gyp": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/@mapbox/node-pre-gyp/-/node-pre-gyp-1.0.10.tgz", + "integrity": "sha512-4ySo4CjzStuprMwk35H5pPbkymjv1SF3jGLj6rAHp/xT/RF7TL7bd9CTm1xDY49K2qF7jmR/g7k+SkLETP6opA==", + "dependencies": { + "detect-libc": "^2.0.0", + "https-proxy-agent": "^5.0.0", + "make-dir": "^3.1.0", + "node-fetch": "^2.6.7", + "nopt": "^5.0.0", + "npmlog": "^5.0.1", + "rimraf": "^3.0.2", + "semver": "^7.3.5", + "tar": "^6.1.11" + }, + "bin": { + "node-pre-gyp": "bin/node-pre-gyp" + } + }, + "node_modules/@mapbox/node-pre-gyp/node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@mapbox/node-pre-gyp/node_modules/semver": { + "version": "7.5.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.0.tgz", + "integrity": "sha512-+XC0AD/R7Q2mPSRuy2Id0+CGTZ98+8f+KvwirxOKIEyid+XSx6HbC63p+O4IndTHuX5Z+JxQ0TghCkO5Cg/2HA==", + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@mapbox/node-pre-gyp/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" + }, "node_modules/@mdx-js/react": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/@mdx-js/react/-/react-2.3.0.tgz", @@ -2569,15 +2619,15 @@ } }, "node_modules/@next/env": { - "version": "13.3.0", - "resolved": "https://registry.npmjs.org/@next/env/-/env-13.3.0.tgz", - "integrity": "sha512-AjppRV4uG3No7L1plinoTQETH+j2F10TEnrMfzbTUYwze5sBUPveeeBAPZPm8OkJZ1epq9OyYKhZrvbD6/9HCQ==", + "version": "13.3.1", + "resolved": "https://registry.npmjs.org/@next/env/-/env-13.3.1.tgz", + "integrity": "sha512-EDtCoedIZC7JlUQ3uaQpSc4aVmyhbLHmQVALg7pFfQgOTjgSnn7mKtA0DiCMkYvvsx6aFb5octGMtWrOtGXW9A==", "peer": true }, "node_modules/@next/swc-darwin-arm64": { - "version": "13.3.0", - "resolved": "https://registry.npmjs.org/@next/swc-darwin-arm64/-/swc-darwin-arm64-13.3.0.tgz", - "integrity": "sha512-DmIQCNq6JtccLPPBzf0dgh2vzMWt5wjxbP71pCi5EWpWYE3MsP6FcRXi4MlAmFNDQOfcFXR2r7kBeG1LpZUh1w==", + "version": "13.3.1", + "resolved": "https://registry.npmjs.org/@next/swc-darwin-arm64/-/swc-darwin-arm64-13.3.1.tgz", + "integrity": "sha512-UXPtriEc/pBP8luSLSCZBcbzPeVv+SSjs9cH/KygTbhmACye8/OOXRZO13Z2Wq1G0gLmEAIHQAOuF+vafPd2lw==", "cpu": [ "arm64" ], @@ -2591,9 +2641,9 @@ } }, "node_modules/@next/swc-darwin-x64": { - "version": "13.3.0", - "resolved": "https://registry.npmjs.org/@next/swc-darwin-x64/-/swc-darwin-x64-13.3.0.tgz", - "integrity": "sha512-oQoqFa88OGgwnYlnAGHVct618FRI/749se0N3S8t9Bzdv5CRbscnO0RcX901+YnNK4Q6yeiizfgO3b7kogtsZg==", + "version": "13.3.1", + "resolved": "https://registry.npmjs.org/@next/swc-darwin-x64/-/swc-darwin-x64-13.3.1.tgz", + "integrity": "sha512-lT36yYxosCfLtplFzJWgo0hrPu6/do8+msgM7oQkPeohDNdhjtjFUgOOwdSnPublLR6Mo2Ym4P/wl5OANuD2bw==", "cpu": [ "x64" ], @@ -2607,9 +2657,9 @@ } }, "node_modules/@next/swc-linux-arm64-gnu": { - "version": "13.3.0", - "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-13.3.0.tgz", - "integrity": "sha512-Wzz2p/WqAJUqTVoLo6H18WMeAXo3i+9DkPDae4oQG8LMloJ3if4NEZTnOnTUlro6cq+S/W4pTGa97nWTrOjbGw==", + "version": "13.3.1", + "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-13.3.1.tgz", + "integrity": "sha512-wRb76nLWJhonH8s3kxC/1tFguEkeOPayIwe9mkaz1G/yeS3OrjeyKMJsb4+Kdg0zbTo53bNCOl59NNtDM7yyyw==", "cpu": [ "arm64" ], @@ -2623,9 +2673,9 @@ } }, "node_modules/@next/swc-linux-arm64-musl": { - "version": "13.3.0", - "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-13.3.0.tgz", - "integrity": "sha512-xPVrIQOQo9WXJYgmoTlMnAD/HlR/1e1ZIWGbwIzEirXBVBqMARUulBEIKdC19zuvoJ477qZJgBDCKtKEykCpyQ==", + "version": "13.3.1", + "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-13.3.1.tgz", + "integrity": "sha512-qz3BzjJRZ16Iq/jrp+pjiYOc0jTjHlfmxQmZk9x/+5uhRP6/eWQSTAPVJ33BMo6oK5O5N4644OgTAbzXzorecg==", "cpu": [ "arm64" ], @@ -2639,9 +2689,9 @@ } }, "node_modules/@next/swc-linux-x64-gnu": { - "version": "13.3.0", - "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-13.3.0.tgz", - "integrity": "sha512-jOFlpGuPD7W2tuXVJP4wt9a3cpNxWAPcloq5EfMJRiXsBBOjLVFZA7boXYxEBzSVgUiVVr1V9T0HFM7pULJ1qA==", + "version": "13.3.1", + "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-13.3.1.tgz", + "integrity": "sha512-6mgkLmwlyWlomQmpl21I3hxgqE5INoW4owTlcLpNsd1V4wP+J46BlI/5zV5KWWbzjfncIqzXoeGs5Eg+1GHODA==", "cpu": [ "x64" ], @@ -2655,9 +2705,9 @@ } }, "node_modules/@next/swc-linux-x64-musl": { - "version": "13.3.0", - "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-13.3.0.tgz", - "integrity": "sha512-2OwKlzaBgmuet9XYHc3KwsEilzb04F540rlRXkAcjMHL7eCxB7uZIGtsVvKOnQLvC/elrUegwSw1+5f7WmfyOw==", + "version": "13.3.1", + "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-13.3.1.tgz", + "integrity": "sha512-uqm5sielhQmKJM+qayIhgZv1KlS5pqTdQ99b+Z7hMWryXS96qE0DftTmMZowBcUL6x7s2vSXyH5wPtO1ON7LBg==", "cpu": [ "x64" ], @@ -2671,9 +2721,9 @@ } }, "node_modules/@next/swc-win32-arm64-msvc": { - "version": "13.3.0", - "resolved": "https://registry.npmjs.org/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-13.3.0.tgz", - "integrity": "sha512-OeHiA6YEvndxT46g+rzFK/MQTfftKxJmzslERMu9LDdC6Kez0bdrgEYed5eXFK2Z1viKZJCGRlhd06rBusyztA==", + "version": "13.3.1", + "resolved": "https://registry.npmjs.org/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-13.3.1.tgz", + "integrity": "sha512-WomIiTj/v3LevltlibNQKmvrOymNRYL+a0dp5R73IwPWN5FvXWwSELN/kiNALig/+T3luc4qHNTyvMCp9L6U5Q==", "cpu": [ "arm64" ], @@ -2687,9 +2737,9 @@ } }, "node_modules/@next/swc-win32-ia32-msvc": { - "version": "13.3.0", - "resolved": "https://registry.npmjs.org/@next/swc-win32-ia32-msvc/-/swc-win32-ia32-msvc-13.3.0.tgz", - "integrity": "sha512-4aB7K9mcVK1lYEzpOpqWrXHEZympU3oK65fnNcY1Qc4HLJFLJj8AViuqQd4jjjPNuV4sl8jAwTz3gN5VNGWB7w==", + "version": "13.3.1", + "resolved": "https://registry.npmjs.org/@next/swc-win32-ia32-msvc/-/swc-win32-ia32-msvc-13.3.1.tgz", + "integrity": "sha512-M+PoH+0+q658wRUbs285RIaSTYnGBSTdweH/0CdzDgA6Q4rBM0sQs4DHmO3BPP0ltCO/vViIoyG7ks66XmCA5g==", "cpu": [ "ia32" ], @@ -2703,9 +2753,9 @@ } }, "node_modules/@next/swc-win32-x64-msvc": { - "version": "13.3.0", - "resolved": "https://registry.npmjs.org/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-13.3.0.tgz", - "integrity": "sha512-Reer6rkLLcoOvB0dd66+Y7WrWVFH7sEEkF/4bJCIfsSKnTStTYaHtwIJAwbqnt9I392Tqvku0KkoqZOryWV9LQ==", + "version": "13.3.1", + "resolved": "https://registry.npmjs.org/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-13.3.1.tgz", + "integrity": "sha512-Sl1F4Vp5Z1rNXWZYqJwMuWRRol4bqOB6+/d7KqkgQ4AcafKPN1PZmpkCoxv4UFHtFNIB7EotnuIhtXu3zScicQ==", "cpu": [ "x64" ], @@ -4606,9 +4656,9 @@ } }, "node_modules/@swc/helpers": { - "version": "0.4.14", - "resolved": "https://registry.npmjs.org/@swc/helpers/-/helpers-0.4.14.tgz", - "integrity": "sha512-4C7nX/dvpzB7za4Ql9K81xK3HPxCpHMgwTZVyf+9JQ6VUbn9jjZVN7/Nkdz/Ugzs2CSjqnL/UPXroiVBVHUWUw==", + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/@swc/helpers/-/helpers-0.5.0.tgz", + "integrity": "sha512-SjY/p4MmECVVEWspzSRpQEM3sjR17sP8PbGxELWrT+YZMBfiUyt1MRUNjMV23zohwlG2HYtCQOsCwsTHguXkyg==", "peer": true, "dependencies": { "tslib": "^2.4.0" @@ -5200,6 +5250,11 @@ "esbuild": ">=0.10.0" } }, + "node_modules/abbrev": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", + "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==" + }, "node_modules/accepts": { "version": "1.3.8", "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", @@ -6145,6 +6200,20 @@ } ] }, + "node_modules/canvas": { + "version": "2.11.2", + "resolved": "https://registry.npmjs.org/canvas/-/canvas-2.11.2.tgz", + "integrity": "sha512-ItanGBMrmRV7Py2Z+Xhs7cT+FNt5K0vPL4p9EZ/UX/Mu7hFbkxSjKF2KVtPwX7UYWp7dRKnrTvReflgrItJbdw==", + "hasInstallScript": true, + "dependencies": { + "@mapbox/node-pre-gyp": "^1.0.0", + "nan": "^2.17.0", + "simple-get": "^3.0.3" + }, + "engines": { + "node": ">=6" + } + }, "node_modules/case-sensitive-paths-webpack-plugin": { "version": "2.4.0", "resolved": "https://registry.npmjs.org/case-sensitive-paths-webpack-plugin/-/case-sensitive-paths-webpack-plugin-2.4.0.tgz", @@ -6748,6 +6817,17 @@ "url": "https://github.com/sponsors/wooorm" } }, + "node_modules/decompress-response": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-4.2.1.tgz", + "integrity": "sha512-jOSne2qbyE+/r8G1VU+G/82LBs2Fs4LAsTiLSHOCOMZQl2OKZ6i8i4IyHemTe+/yIXOtTcRQMzPcgyhoFlqPkw==", + "dependencies": { + "mimic-response": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/dedent": { "version": "0.7.0", "resolved": "https://registry.npmjs.org/dedent/-/dedent-0.7.0.tgz", @@ -6903,6 +6983,14 @@ "node": ">=8" } }, + "node_modules/detect-libc": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.0.1.tgz", + "integrity": "sha512-463v3ZeIrcWtdgIg6vI6XUncguvr2TnGl4SzDXinkt9mSLpBJKXT3mW6xT3VQdDN11+WVs29pgvivTc4Lp8v+w==", + "engines": { + "node": ">=8" + } + }, "node_modules/detect-package-manager": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/detect-package-manager/-/detect-package-manager-2.0.1.tgz", @@ -10808,6 +10896,17 @@ "node": ">=6" } }, + "node_modules/mimic-response": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-2.1.0.tgz", + "integrity": "sha512-wXqjST+SLt7R009ySCglWBCFpjUygmCIfD790/kVbiGmUgfYGuB14PiTd5DwVxSV4NcYHjzMkoj5LjQZwTQLEA==", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/min-indent": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/min-indent/-/min-indent-1.0.1.tgz", @@ -10900,6 +10999,11 @@ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" }, + "node_modules/nan": { + "version": "2.17.0", + "resolved": "https://registry.npmjs.org/nan/-/nan-2.17.0.tgz", + "integrity": "sha512-2ZTgtl0nJsO0KQCjEpxcIr5D+Yv90plTitZt9JBfQvVJDS5seMl3FOvsh3+9CoYWXf/1l5OaZzzF6nDm4cagaQ==" + }, "node_modules/nanoid": { "version": "3.3.6", "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.6.tgz", @@ -10931,13 +11035,13 @@ "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==" }, "node_modules/next": { - "version": "13.3.0", - "resolved": "https://registry.npmjs.org/next/-/next-13.3.0.tgz", - "integrity": "sha512-OVTw8MpIPa12+DCUkPqRGPS3thlJPcwae2ZL4xti3iBff27goH024xy4q2lhlsdoYiKOi8Kz6uJoLW/GXwgfOA==", + "version": "13.3.1", + "resolved": "https://registry.npmjs.org/next/-/next-13.3.1.tgz", + "integrity": "sha512-eByWRxPzKHs2oQz1yE41LX35umhz86ZSZ+mYyXBqn2IBi2hyUqxBA88avywdr4uyH+hCJczegGsDGWbzQA5Rqw==", "peer": true, "dependencies": { - "@next/env": "13.3.0", - "@swc/helpers": "0.4.14", + "@next/env": "13.3.1", + "@swc/helpers": "0.5.0", "busboy": "1.6.0", "caniuse-lite": "^1.0.30001406", "postcss": "8.4.14", @@ -10947,18 +11051,18 @@ "next": "dist/bin/next" }, "engines": { - "node": ">=14.6.0" + "node": ">=14.18.0" }, "optionalDependencies": { - "@next/swc-darwin-arm64": "13.3.0", - "@next/swc-darwin-x64": "13.3.0", - "@next/swc-linux-arm64-gnu": "13.3.0", - "@next/swc-linux-arm64-musl": "13.3.0", - "@next/swc-linux-x64-gnu": "13.3.0", - "@next/swc-linux-x64-musl": "13.3.0", - "@next/swc-win32-arm64-msvc": "13.3.0", - "@next/swc-win32-ia32-msvc": "13.3.0", - "@next/swc-win32-x64-msvc": "13.3.0" + "@next/swc-darwin-arm64": "13.3.1", + "@next/swc-darwin-x64": "13.3.1", + "@next/swc-linux-arm64-gnu": "13.3.1", + "@next/swc-linux-arm64-musl": "13.3.1", + "@next/swc-linux-x64-gnu": "13.3.1", + "@next/swc-linux-x64-musl": "13.3.1", + "@next/swc-win32-arm64-msvc": "13.3.1", + "@next/swc-win32-ia32-msvc": "13.3.1", + "@next/swc-win32-x64-msvc": "13.3.1" }, "peerDependencies": { "@opentelemetry/api": "^1.1.0", @@ -11066,6 +11170,20 @@ "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.10.tgz", "integrity": "sha512-5GFldHPXVG/YZmFzJvKK2zDSzPKhEp0+ZR5SVaoSag9fsL5YgHbUHDfnG5494ISANDcK4KwPXAx2xqVEydmd7w==" }, + "node_modules/nopt": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/nopt/-/nopt-5.0.0.tgz", + "integrity": "sha512-Tbj67rffqceeLpcRXrT7vKAN8CwfPeIBgM7E6iBkmKLV7bEMwpGgYLGv0jACUsECaa/vuxP0IjEont6umdMgtQ==", + "dependencies": { + "abbrev": "1" + }, + "bin": { + "nopt": "bin/nopt.js" + }, + "engines": { + "node": ">=6" + } + }, "node_modules/normalize-package-data": { "version": "2.5.0", "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", @@ -12881,6 +12999,35 @@ "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==" }, + "node_modules/simple-concat": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/simple-concat/-/simple-concat-1.0.1.tgz", + "integrity": "sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/simple-get": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/simple-get/-/simple-get-3.1.1.tgz", + "integrity": "sha512-CQ5LTKGfCpvE1K0n2us+kuMPbk/q0EKl82s4aheV9oXjFEz6W/Y7oQFVJuU6QG77hRT4Ghb5RURteF5vnWjupA==", + "dependencies": { + "decompress-response": "^4.2.0", + "once": "^1.3.1", + "simple-concat": "^1.0.0" + } + }, "node_modules/simple-update-notifier": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/simple-update-notifier/-/simple-update-notifier-1.1.0.tgz", diff --git a/lib/@dsvgui/package.json b/lib/@dsvgui/package.json index fbf0afe..c256b50 100644 --- a/lib/@dsvgui/package.json +++ b/lib/@dsvgui/package.json @@ -19,6 +19,7 @@ "@storybook/react": "^7.0.6", "@storybook/testing-library": "^0.1.0", "buffer": "^6.0.3", + "canvas": "^2.11.2", "image-size": "^1.0.2", "react": "^18.2.0", "react-dom": "^18.2.0", diff --git a/lib/@dsvgui/utils/index.ts b/lib/@dsvgui/utils/index.ts index bfc4d20..f45d40f 100644 --- a/lib/@dsvgui/utils/index.ts +++ b/lib/@dsvgui/utils/index.ts @@ -1,31 +1,49 @@ import getImageSize from "image-size"; +let canvas: HTMLCanvasElement; +if (typeof window === "undefined") { + console.log("Server side rendering detected, using canvas"); + canvas = require("canvas").createCanvas(0, 0); +} else { + console.log("Client side rendering detected, using canvas"); + canvas = document.createElement("canvas"); +} + type IGetTextWidth = ( inputText: string | number | null, options: { fontSize: number; - ratio?: number; + fontFamily?: string; + fontWeight?: string | number; } ) => number; export const getTextWidth: IGetTextWidth = (inputText, options) => { - const { fontSize = 16, ratio = 0.5 } = options; + const { + fontSize = 16, + fontFamily = "sans-serif", + fontWeight = "normal", + } = options; - let width = 0; let text = inputText ?? ""; text = text.toString(); - // Estimate the width using a monospace font (each character has the same width) - width = text.length * fontSize * ratio; - return width; + const context = canvas.getContext("2d"); + if (!context) throw new Error("Canvas context is not defined!"); + + context.font = `${fontWeight} ${fontSize}px ${fontFamily}`; + + const metrics = context.measureText(text); + return metrics.width; }; type IWrapText = ( inputText: string, options: { maxLineWidth: number; - fontSize: number; maxLines?: number; + fontSize: number; + fontWeight?: string; }, cb: (value: string, index: number, array: Array) => JSX.Element ) => Array; @@ -40,7 +58,10 @@ export const wrapText: IWrapText = (inputText, options, cb) => { for (let i = 1; i < words.length; i++) { const word = words[i]; const testLine = currentLine + " " + word; - const testWidth = getTextWidth(testLine, { fontSize: options.fontSize }); + const testWidth = getTextWidth(testLine, { + fontSize: options.fontSize, + fontWeight: options.fontWeight, + }); if (testWidth > maxLineWidth) { lines.push(currentLine); @@ -83,6 +104,10 @@ export const convertDateToReadableFormat: IConvertDateToReadbleFormat = ( return `${month} ${day} '${year}`; }; +export function rgbToHex([r, g, b]: Array) { + return "#" + [r, g, b].map((x) => x.toString(16).padStart(2, "0")).join(""); +} + export function hexToRgb(hex: string, alpha = 1) { const bigint = parseInt(hex.slice(1), 16); const r = (bigint >> 16) & 255; diff --git a/next.config.js b/next.config.js index 3835922..eb784c7 100644 --- a/next.config.js +++ b/next.config.js @@ -1,4 +1,5 @@ /** @type {import('next').NextConfig} */ + const nextConfig = { experimental: { appDir: true }, images: { @@ -16,6 +17,7 @@ const nextConfig = { fs: false, }; } + config.module.rules.push({ test: /\.node$/i, loader: "node-loader" }); return config; }, async redirects() { diff --git a/package-lock.json b/package-lock.json index ce2e366..be2e7c4 100644 --- a/package-lock.json +++ b/package-lock.json @@ -16,12 +16,14 @@ "@radix-ui/react-toast": "^1.1.3", "@storybook/react": "^7.0.2", "@vercel/analytics": "^0.1.11", + "canvas": "^2.11.2", "class-variance-authority": "^0.5.2", "clsx": "^1.2.1", "image-size": "^1.0.2", "lucide-react": "^0.125.0", "next-auth": "^4.19.0", "next-connect": "^0.8.1", + "node-loader": "^2.0.0", "passport": "^0.6.0", "passport-github2": "^0.1.12", "passport-oauth2": "^1.7.0", @@ -48,6 +50,7 @@ "@types/react-dom": "18.0.8", "@types/testing-library__jest-dom": "^5.14.5", "autoprefixer": "^10.4.14", + "copy-webpack-plugin": "^11.0.0", "env-cmd": "^10.1.0", "eslint": "^8.34.0", "eslint-config-next": "13.2.0", @@ -1803,6 +1806,16 @@ "node": ">=6.0.0" } }, + "node_modules/@jridgewell/source-map": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.3.tgz", + "integrity": "sha512-b+fsZXeLYi9fEULmfBrhxn4IrPlINf8fiNarzTof004v3lFdntdwa9PF7vFJqm3mg7s+ScJMxXaE3Acp1irZcg==", + "peer": true, + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.0", + "@jridgewell/trace-mapping": "^0.3.9" + } + }, "node_modules/@jridgewell/sourcemap-codec": { "version": "1.4.15", "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", @@ -1834,6 +1847,63 @@ "node": ">=v12.0.0" } }, + "node_modules/@mapbox/node-pre-gyp": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/@mapbox/node-pre-gyp/-/node-pre-gyp-1.0.10.tgz", + "integrity": "sha512-4ySo4CjzStuprMwk35H5pPbkymjv1SF3jGLj6rAHp/xT/RF7TL7bd9CTm1xDY49K2qF7jmR/g7k+SkLETP6opA==", + "dependencies": { + "detect-libc": "^2.0.0", + "https-proxy-agent": "^5.0.0", + "make-dir": "^3.1.0", + "node-fetch": "^2.6.7", + "nopt": "^5.0.0", + "npmlog": "^5.0.1", + "rimraf": "^3.0.2", + "semver": "^7.3.5", + "tar": "^6.1.11" + }, + "bin": { + "node-pre-gyp": "bin/node-pre-gyp" + } + }, + "node_modules/@mapbox/node-pre-gyp/node_modules/node-fetch": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.9.tgz", + "integrity": "sha512-DJm/CJkZkRjKKj4Zi4BsKVZh3ValV5IR5s7LVZnW+6YMh0W1BfNA8XSs6DLMGYlId5F3KnA70uu2qepcR08Qqg==", + "dependencies": { + "whatwg-url": "^5.0.0" + }, + "engines": { + "node": "4.x || >=6.0.0" + }, + "peerDependencies": { + "encoding": "^0.1.0" + }, + "peerDependenciesMeta": { + "encoding": { + "optional": true + } + } + }, + "node_modules/@mapbox/node-pre-gyp/node_modules/tr46": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", + "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==" + }, + "node_modules/@mapbox/node-pre-gyp/node_modules/webidl-conversions": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", + "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==" + }, + "node_modules/@mapbox/node-pre-gyp/node_modules/whatwg-url": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", + "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", + "dependencies": { + "tr46": "~0.0.3", + "webidl-conversions": "^3.0.0" + } + }, "node_modules/@next-auth/prisma-adapter": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/@next-auth/prisma-adapter/-/prisma-adapter-1.0.5.tgz", @@ -3036,6 +3106,26 @@ "resolved": "https://registry.npmjs.org/@types/escodegen/-/escodegen-0.0.6.tgz", "integrity": "sha512-AjwI4MvWx3HAOaZqYsjKWyEObT9lcVV0Y0V8nXo6cXzN8ZiMxVhf6F3d/UNvXVGKrEzL/Dluc5p+y9GkzlTWig==" }, + "node_modules/@types/eslint": { + "version": "8.37.0", + "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-8.37.0.tgz", + "integrity": "sha512-Piet7dG2JBuDIfohBngQ3rCt7MgO9xCO4xIMKxBThCq5PNRB91IjlJ10eJVwfoNtvTErmxLzwBZ7rHZtbOMmFQ==", + "peer": true, + "dependencies": { + "@types/estree": "*", + "@types/json-schema": "*" + } + }, + "node_modules/@types/eslint-scope": { + "version": "3.7.4", + "resolved": "https://registry.npmjs.org/@types/eslint-scope/-/eslint-scope-3.7.4.tgz", + "integrity": "sha512-9K4zoImiZc3HlIp6AVUDE4CWYx22a+lhSZMYNpbjW04+YF0KWj4pJXnEMjdnFTiQibFFmElcsasJXDbdI/EPhA==", + "peer": true, + "dependencies": { + "@types/eslint": "*", + "@types/estree": "*" + } + }, "node_modules/@types/estree": { "version": "0.0.51", "resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.51.tgz", @@ -3125,6 +3215,11 @@ "parse5": "^7.0.0" } }, + "node_modules/@types/json-schema": { + "version": "7.0.11", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.11.tgz", + "integrity": "sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ==" + }, "node_modules/@types/json5": { "version": "0.0.29", "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz", @@ -3442,12 +3537,175 @@ "react": "^16.8||^17||^18" } }, + "node_modules/@webassemblyjs/ast": { + "version": "1.11.5", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.11.5.tgz", + "integrity": "sha512-LHY/GSAZZRpsNQH+/oHqhRQ5FT7eoULcBqgfyTB5nQHogFnK3/7QoN7dLnwSE/JkUAF0SrRuclT7ODqMFtWxxQ==", + "peer": true, + "dependencies": { + "@webassemblyjs/helper-numbers": "1.11.5", + "@webassemblyjs/helper-wasm-bytecode": "1.11.5" + } + }, + "node_modules/@webassemblyjs/floating-point-hex-parser": { + "version": "1.11.5", + "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.11.5.tgz", + "integrity": "sha512-1j1zTIC5EZOtCplMBG/IEwLtUojtwFVwdyVMbL/hwWqbzlQoJsWCOavrdnLkemwNoC/EOwtUFch3fuo+cbcXYQ==", + "peer": true + }, + "node_modules/@webassemblyjs/helper-api-error": { + "version": "1.11.5", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.5.tgz", + "integrity": "sha512-L65bDPmfpY0+yFrsgz8b6LhXmbbs38OnwDCf6NpnMUYqa+ENfE5Dq9E42ny0qz/PdR0LJyq/T5YijPnU8AXEpA==", + "peer": true + }, + "node_modules/@webassemblyjs/helper-buffer": { + "version": "1.11.5", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.11.5.tgz", + "integrity": "sha512-fDKo1gstwFFSfacIeH5KfwzjykIE6ldh1iH9Y/8YkAZrhmu4TctqYjSh7t0K2VyDSXOZJ1MLhht/k9IvYGcIxg==", + "peer": true + }, + "node_modules/@webassemblyjs/helper-numbers": { + "version": "1.11.5", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-numbers/-/helper-numbers-1.11.5.tgz", + "integrity": "sha512-DhykHXM0ZABqfIGYNv93A5KKDw/+ywBFnuWybZZWcuzWHfbp21wUfRkbtz7dMGwGgT4iXjWuhRMA2Mzod6W4WA==", + "peer": true, + "dependencies": { + "@webassemblyjs/floating-point-hex-parser": "1.11.5", + "@webassemblyjs/helper-api-error": "1.11.5", + "@xtuc/long": "4.2.2" + } + }, + "node_modules/@webassemblyjs/helper-wasm-bytecode": { + "version": "1.11.5", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.5.tgz", + "integrity": "sha512-oC4Qa0bNcqnjAowFn7MPCETQgDYytpsfvz4ujZz63Zu/a/v71HeCAAmZsgZ3YVKec3zSPYytG3/PrRCqbtcAvA==", + "peer": true + }, + "node_modules/@webassemblyjs/helper-wasm-section": { + "version": "1.11.5", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.11.5.tgz", + "integrity": "sha512-uEoThA1LN2NA+K3B9wDo3yKlBfVtC6rh0i4/6hvbz071E8gTNZD/pT0MsBf7MeD6KbApMSkaAK0XeKyOZC7CIA==", + "peer": true, + "dependencies": { + "@webassemblyjs/ast": "1.11.5", + "@webassemblyjs/helper-buffer": "1.11.5", + "@webassemblyjs/helper-wasm-bytecode": "1.11.5", + "@webassemblyjs/wasm-gen": "1.11.5" + } + }, + "node_modules/@webassemblyjs/ieee754": { + "version": "1.11.5", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.11.5.tgz", + "integrity": "sha512-37aGq6qVL8A8oPbPrSGMBcp38YZFXcHfiROflJn9jxSdSMMM5dS5P/9e2/TpaJuhE+wFrbukN2WI6Hw9MH5acg==", + "peer": true, + "dependencies": { + "@xtuc/ieee754": "^1.2.0" + } + }, + "node_modules/@webassemblyjs/leb128": { + "version": "1.11.5", + "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.11.5.tgz", + "integrity": "sha512-ajqrRSXaTJoPW+xmkfYN6l8VIeNnR4vBOTQO9HzR7IygoCcKWkICbKFbVTNMjMgMREqXEr0+2M6zukzM47ZUfQ==", + "peer": true, + "dependencies": { + "@xtuc/long": "4.2.2" + } + }, + "node_modules/@webassemblyjs/utf8": { + "version": "1.11.5", + "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.11.5.tgz", + "integrity": "sha512-WiOhulHKTZU5UPlRl53gHR8OxdGsSOxqfpqWeA2FmcwBMaoEdz6b2x2si3IwC9/fSPLfe8pBMRTHVMk5nlwnFQ==", + "peer": true + }, + "node_modules/@webassemblyjs/wasm-edit": { + "version": "1.11.5", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.11.5.tgz", + "integrity": "sha512-C0p9D2fAu3Twwqvygvf42iGCQ4av8MFBLiTb+08SZ4cEdwzWx9QeAHDo1E2k+9s/0w1DM40oflJOpkZ8jW4HCQ==", + "peer": true, + "dependencies": { + "@webassemblyjs/ast": "1.11.5", + "@webassemblyjs/helper-buffer": "1.11.5", + "@webassemblyjs/helper-wasm-bytecode": "1.11.5", + "@webassemblyjs/helper-wasm-section": "1.11.5", + "@webassemblyjs/wasm-gen": "1.11.5", + "@webassemblyjs/wasm-opt": "1.11.5", + "@webassemblyjs/wasm-parser": "1.11.5", + "@webassemblyjs/wast-printer": "1.11.5" + } + }, + "node_modules/@webassemblyjs/wasm-gen": { + "version": "1.11.5", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.11.5.tgz", + "integrity": "sha512-14vteRlRjxLK9eSyYFvw1K8Vv+iPdZU0Aebk3j6oB8TQiQYuO6hj9s4d7qf6f2HJr2khzvNldAFG13CgdkAIfA==", + "peer": true, + "dependencies": { + "@webassemblyjs/ast": "1.11.5", + "@webassemblyjs/helper-wasm-bytecode": "1.11.5", + "@webassemblyjs/ieee754": "1.11.5", + "@webassemblyjs/leb128": "1.11.5", + "@webassemblyjs/utf8": "1.11.5" + } + }, + "node_modules/@webassemblyjs/wasm-opt": { + "version": "1.11.5", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.11.5.tgz", + "integrity": "sha512-tcKwlIXstBQgbKy1MlbDMlXaxpucn42eb17H29rawYLxm5+MsEmgPzeCP8B1Cl69hCice8LeKgZpRUAPtqYPgw==", + "peer": true, + "dependencies": { + "@webassemblyjs/ast": "1.11.5", + "@webassemblyjs/helper-buffer": "1.11.5", + "@webassemblyjs/wasm-gen": "1.11.5", + "@webassemblyjs/wasm-parser": "1.11.5" + } + }, + "node_modules/@webassemblyjs/wasm-parser": { + "version": "1.11.5", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.11.5.tgz", + "integrity": "sha512-SVXUIwsLQlc8srSD7jejsfTU83g7pIGr2YYNb9oHdtldSxaOhvA5xwvIiWIfcX8PlSakgqMXsLpLfbbJ4cBYew==", + "peer": true, + "dependencies": { + "@webassemblyjs/ast": "1.11.5", + "@webassemblyjs/helper-api-error": "1.11.5", + "@webassemblyjs/helper-wasm-bytecode": "1.11.5", + "@webassemblyjs/ieee754": "1.11.5", + "@webassemblyjs/leb128": "1.11.5", + "@webassemblyjs/utf8": "1.11.5" + } + }, + "node_modules/@webassemblyjs/wast-printer": { + "version": "1.11.5", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.11.5.tgz", + "integrity": "sha512-f7Pq3wvg3GSPUPzR0F6bmI89Hdb+u9WXrSKc4v+N0aV0q6r42WoF92Jp2jEorBEBRoRNXgjp53nBniDXcqZYPA==", + "peer": true, + "dependencies": { + "@webassemblyjs/ast": "1.11.5", + "@xtuc/long": "4.2.2" + } + }, + "node_modules/@xtuc/ieee754": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz", + "integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==", + "peer": true + }, + "node_modules/@xtuc/long": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz", + "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==", + "peer": true + }, "node_modules/abab": { "version": "2.0.6", "resolved": "https://registry.npmjs.org/abab/-/abab-2.0.6.tgz", "integrity": "sha512-j2afSsaIENvHZN2B8GOpF566vZ5WVk5opAiMTvWgaQT8DkbOqsTfvNAvHoRGU2zzP8cPoqys+xHTRDWW8L+/BA==", "dev": true }, + "node_modules/abbrev": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", + "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==" + }, "node_modules/acorn": { "version": "8.8.2", "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.2.tgz", @@ -3469,6 +3727,15 @@ "acorn-walk": "^8.0.2" } }, + "node_modules/acorn-import-assertions": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/acorn-import-assertions/-/acorn-import-assertions-1.8.0.tgz", + "integrity": "sha512-m7VZ3jwz4eK6A4Vtt8Ew1/mNbP24u0FhdyfA7fSvnJR6LMdfOYnmuIrrJAgrYfYJ10F/otaHTtrtrtmHdMNzEw==", + "peer": true, + "peerDependencies": { + "acorn": "^8" + } + }, "node_modules/acorn-jsx": { "version": "5.3.2", "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", @@ -3490,7 +3757,6 @@ "version": "6.0.2", "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", - "dev": true, "dependencies": { "debug": "4" }, @@ -3514,6 +3780,35 @@ "url": "https://github.com/sponsors/epoberezkin" } }, + "node_modules/ajv-formats": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-2.1.1.tgz", + "integrity": "sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==", + "dev": true, + "dependencies": { + "ajv": "^8.0.0" + }, + "peerDependencies": { + "ajv": "^8.0.0" + }, + "peerDependenciesMeta": { + "ajv": { + "optional": true + } + } + }, + "node_modules/ajv-keywords": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz", + "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", + "dev": true, + "dependencies": { + "fast-deep-equal": "^3.1.3" + }, + "peerDependencies": { + "ajv": "^8.8.2" + } + }, "node_modules/ansi-escapes": { "version": "4.3.2", "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", @@ -3965,6 +4260,14 @@ "tweetnacl": "^0.14.3" } }, + "node_modules/big.js": { + "version": "5.2.2", + "resolved": "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz", + "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==", + "engines": { + "node": "*" + } + }, "node_modules/binary-extensions": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", @@ -3984,7 +4287,6 @@ "version": "1.1.11", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "dev": true, "dependencies": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" @@ -4041,8 +4343,7 @@ "node_modules/buffer-from": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", - "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", - "dev": true + "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==" }, "node_modules/builtin-modules": { "version": "1.1.1", @@ -4162,6 +4463,20 @@ } ] }, + "node_modules/canvas": { + "version": "2.11.2", + "resolved": "https://registry.npmjs.org/canvas/-/canvas-2.11.2.tgz", + "integrity": "sha512-ItanGBMrmRV7Py2Z+Xhs7cT+FNt5K0vPL4p9EZ/UX/Mu7hFbkxSjKF2KVtPwX7UYWp7dRKnrTvReflgrItJbdw==", + "hasInstallScript": true, + "dependencies": { + "@mapbox/node-pre-gyp": "^1.0.0", + "nan": "^2.17.0", + "simple-get": "^3.0.3" + }, + "engines": { + "node": ">=6" + } + }, "node_modules/caseless": { "version": "0.12.0", "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", @@ -4242,6 +4557,23 @@ "node": ">= 6" } }, + "node_modules/chownr": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz", + "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==", + "engines": { + "node": ">=10" + } + }, + "node_modules/chrome-trace-event": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.3.tgz", + "integrity": "sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg==", + "peer": true, + "engines": { + "node": ">=6.0" + } + }, "node_modules/ci-info": { "version": "3.8.0", "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.8.0.tgz", @@ -4392,8 +4724,7 @@ "node_modules/concat-map": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", - "dev": true + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==" }, "node_modules/console-control-strings": { "version": "1.1.0", @@ -4461,6 +4792,80 @@ "node": ">= 0.6" } }, + "node_modules/copy-webpack-plugin": { + "version": "11.0.0", + "resolved": "https://registry.npmjs.org/copy-webpack-plugin/-/copy-webpack-plugin-11.0.0.tgz", + "integrity": "sha512-fX2MWpamkW0hZxMEg0+mYnA40LTosOSa5TqZ9GYIBzyJa9C3QUaMPSE2xAi/buNr8u89SfD9wHSQVBzrRa/SOQ==", + "dev": true, + "dependencies": { + "fast-glob": "^3.2.11", + "glob-parent": "^6.0.1", + "globby": "^13.1.1", + "normalize-path": "^3.0.0", + "schema-utils": "^4.0.0", + "serialize-javascript": "^6.0.0" + }, + "engines": { + "node": ">= 14.15.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^5.1.0" + } + }, + "node_modules/copy-webpack-plugin/node_modules/globby": { + "version": "13.1.4", + "resolved": "https://registry.npmjs.org/globby/-/globby-13.1.4.tgz", + "integrity": "sha512-iui/IiiW+QrJ1X1hKH5qwlMQyv34wJAYwH1vrf8b9kBA4sNiif3gKsMHa+BrdnOpEudWjpotfa7LrTzB1ERS/g==", + "dev": true, + "dependencies": { + "dir-glob": "^3.0.1", + "fast-glob": "^3.2.11", + "ignore": "^5.2.0", + "merge2": "^1.4.1", + "slash": "^4.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/copy-webpack-plugin/node_modules/schema-utils": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.0.1.tgz", + "integrity": "sha512-lELhBAAly9NowEsX0yZBlw9ahZG+sK/1RJ21EpzdYHKEs13Vku3LJ+MIPhh4sMs0oCCeufZQEQbMekiA4vuVIQ==", + "dev": true, + "dependencies": { + "@types/json-schema": "^7.0.9", + "ajv": "^8.9.0", + "ajv-formats": "^2.1.1", + "ajv-keywords": "^5.1.0" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/copy-webpack-plugin/node_modules/slash": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-4.0.0.tgz", + "integrity": "sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/core-util-is": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", @@ -4673,6 +5078,17 @@ "integrity": "sha512-VBBaLc1MgL5XpzgIP7ny5Z6Nx3UrRkIViUkPUdtl9aya5amy3De1gsUUSB1g3+3sExYNjCAsAznmukyxCb1GRA==", "dev": true }, + "node_modules/decompress-response": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-4.2.1.tgz", + "integrity": "sha512-jOSne2qbyE+/r8G1VU+G/82LBs2Fs4LAsTiLSHOCOMZQl2OKZ6i8i4IyHemTe+/yIXOtTcRQMzPcgyhoFlqPkw==", + "dependencies": { + "mimic-response": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/dedent": { "version": "0.7.0", "resolved": "https://registry.npmjs.org/dedent/-/dedent-0.7.0.tgz", @@ -4767,6 +5183,14 @@ "node": ">=6" } }, + "node_modules/detect-libc": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.0.1.tgz", + "integrity": "sha512-463v3ZeIrcWtdgIg6vI6XUncguvr2TnGl4SzDXinkt9mSLpBJKXT3mW6xT3VQdDN11+WVs29pgvivTc4Lp8v+w==", + "engines": { + "node": ">=8" + } + }, "node_modules/detect-newline": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/detect-newline/-/detect-newline-3.1.0.tgz", @@ -4912,11 +5336,18 @@ "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", "dev": true }, + "node_modules/emojis-list": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz", + "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==", + "engines": { + "node": ">= 4" + } + }, "node_modules/enhanced-resolve": { - "version": "5.12.0", - "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.12.0.tgz", - "integrity": "sha512-QHTXI/sZQmko1cbDoNAa3mJ5qhWUUNAq3vR0/YiD379fWQrcfuoX1+HW2S0MTt7XmoPLapdaDKUtelUSPic7hQ==", - "dev": true, + "version": "5.13.0", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.13.0.tgz", + "integrity": "sha512-eyV8f0y1+bzyfh8xAwW/WTSZpLbjhqc4ne9eGSH4Zo2ejdyiNG9pU6mf9DG8a7+Auk6MFTlNOT4Y2y/9k8GKVg==", "dependencies": { "graceful-fs": "^4.2.4", "tapable": "^2.2.0" @@ -5027,6 +5458,12 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/es-module-lexer": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.2.1.tgz", + "integrity": "sha512-9978wrXM50Y4rTMmW5kXIC09ZdXQZqkE4mxhwkd8VbzsGkXGPgV4zWuqQJgCEzYngdo2dYDa0l8xhX4fkSwJSg==", + "peer": true + }, "node_modules/es-set-tostringtag": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.0.1.tgz", @@ -5679,7 +6116,6 @@ "version": "4.3.0", "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", - "dev": true, "dependencies": { "estraverse": "^5.2.0" }, @@ -5703,6 +6139,15 @@ "node": ">=0.10.0" } }, + "node_modules/events": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", + "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", + "peer": true, + "engines": { + "node": ">=0.8.x" + } + }, "node_modules/execa": { "version": "5.1.1", "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", @@ -6012,6 +6457,33 @@ "node": ">=14.14" } }, + "node_modules/fs-minipass": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz", + "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==", + "dependencies": { + "minipass": "^3.0.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/fs-minipass/node_modules/minipass": { + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", + "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/fs-minipass/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" + }, "node_modules/fs-then-native": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/fs-then-native/-/fs-then-native-2.0.0.tgz", @@ -6206,7 +6678,6 @@ "version": "7.1.7", "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.7.tgz", "integrity": "sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ==", - "dev": true, "dependencies": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", @@ -6234,6 +6705,12 @@ "node": ">=10.13.0" } }, + "node_modules/glob-to-regexp": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz", + "integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==", + "peer": true + }, "node_modules/global-dirs": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-0.1.1.tgz", @@ -6575,7 +7052,6 @@ "version": "5.0.1", "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==", - "dev": true, "dependencies": { "agent-base": "6", "debug": "4" @@ -8014,8 +8490,7 @@ "node_modules/json-parse-even-better-errors": { "version": "2.3.1", "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", - "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", - "dev": true + "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==" }, "node_modules/json-schema": { "version": "0.4.0", @@ -8214,6 +8689,28 @@ "uc.micro": "^1.0.1" } }, + "node_modules/loader-runner": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-4.3.0.tgz", + "integrity": "sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg==", + "peer": true, + "engines": { + "node": ">=6.11.5" + } + }, + "node_modules/loader-utils": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.4.tgz", + "integrity": "sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==", + "dependencies": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^2.1.2" + }, + "engines": { + "node": ">=8.9.0" + } + }, "node_modules/locate-path": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", @@ -8324,7 +8821,6 @@ "version": "3.1.0", "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", - "dev": true, "dependencies": { "semver": "^6.0.0" }, @@ -8339,7 +8835,6 @@ "version": "6.3.0", "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true, "bin": { "semver": "bin/semver.js" } @@ -8468,8 +8963,7 @@ "node_modules/merge-stream": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", - "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", - "dev": true + "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==" }, "node_modules/merge2": { "version": "1.4.1", @@ -8521,6 +9015,17 @@ "node": ">=6" } }, + "node_modules/mimic-response": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-2.1.0.tgz", + "integrity": "sha512-wXqjST+SLt7R009ySCglWBCFpjUygmCIfD790/kVbiGmUgfYGuB14PiTd5DwVxSV4NcYHjzMkoj5LjQZwTQLEA==", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/min-indent": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/min-indent/-/min-indent-1.0.1.tgz", @@ -8534,7 +9039,6 @@ "version": "3.1.2", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "dev": true, "dependencies": { "brace-expansion": "^1.1.7" }, @@ -8564,11 +9068,46 @@ "node": ">= 6" } }, + "node_modules/minipass": { + "version": "4.2.8", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-4.2.8.tgz", + "integrity": "sha512-fNzuVyifolSLFL4NzpF+wEF4qrgqaaKX0haXPQEdQ7NKAN+WecoKMHV09YcuL/DHxrUsYQOK3MiuDf7Ip2OXfQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/minizlib": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz", + "integrity": "sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==", + "dependencies": { + "minipass": "^3.0.0", + "yallist": "^4.0.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/minizlib/node_modules/minipass": { + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", + "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/minizlib/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" + }, "node_modules/mkdirp": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", - "dev": true, "bin": { "mkdirp": "bin/cmd.js" }, @@ -8598,6 +9137,11 @@ "thenify-all": "^1.0.0" } }, + "node_modules/nan": { + "version": "2.17.0", + "resolved": "https://registry.npmjs.org/nan/-/nan-2.17.0.tgz", + "integrity": "sha512-2ZTgtl0nJsO0KQCjEpxcIr5D+Yv90plTitZt9JBfQvVJDS5seMl3FOvsh3+9CoYWXf/1l5OaZzzF6nDm4cagaQ==" + }, "node_modules/nanoid": { "version": "3.3.6", "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.6.tgz", @@ -8843,11 +9387,43 @@ "integrity": "sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==", "dev": true }, + "node_modules/node-loader": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/node-loader/-/node-loader-2.0.0.tgz", + "integrity": "sha512-I5VN34NO4/5UYJaUBtkrODPWxbobrE4hgDqPrjB25yPkonFhCmZ146vTH+Zg417E9Iwoh1l/MbRs1apc5J295Q==", + "dependencies": { + "loader-utils": "^2.0.0" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^5.0.0" + } + }, "node_modules/node-releases": { "version": "2.0.10", "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.10.tgz", "integrity": "sha512-5GFldHPXVG/YZmFzJvKK2zDSzPKhEp0+ZR5SVaoSag9fsL5YgHbUHDfnG5494ISANDcK4KwPXAx2xqVEydmd7w==" }, + "node_modules/nopt": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/nopt/-/nopt-5.0.0.tgz", + "integrity": "sha512-Tbj67rffqceeLpcRXrT7vKAN8CwfPeIBgM7E6iBkmKLV7bEMwpGgYLGv0jACUsECaa/vuxP0IjEont6umdMgtQ==", + "dependencies": { + "abbrev": "1" + }, + "bin": { + "nopt": "bin/nopt.js" + }, + "engines": { + "node": ">=6" + } + }, "node_modules/normalize-package-data": { "version": "3.0.3", "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-3.0.3.tgz", @@ -9363,7 +9939,6 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", - "dev": true, "engines": { "node": ">=0.10.0" } @@ -9865,6 +10440,14 @@ "url": "https://opencollective.com/ramda" } }, + "node_modules/randombytes": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", + "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", + "dependencies": { + "safe-buffer": "^5.1.0" + } + }, "node_modules/react": { "version": "18.2.0", "resolved": "https://registry.npmjs.org/react/-/react-18.2.0.tgz", @@ -10372,7 +10955,6 @@ "version": "3.0.2", "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", - "dev": true, "dependencies": { "glob": "^7.1.3" }, @@ -10464,11 +11046,59 @@ "loose-envify": "^1.1.0" } }, + "node_modules/schema-utils": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.1.2.tgz", + "integrity": "sha512-pvjEHOgWc9OWA/f/DE3ohBWTD6EleVLf7iFUkoSwAxttdBhB9QUebQgxER2kWueOvRJXPHNnyrvvh9eZINB8Eg==", + "peer": true, + "dependencies": { + "@types/json-schema": "^7.0.8", + "ajv": "^6.12.5", + "ajv-keywords": "^3.5.2" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/schema-utils/node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "peer": true, + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/schema-utils/node_modules/ajv-keywords": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", + "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", + "peer": true, + "peerDependencies": { + "ajv": "^6.9.1" + } + }, + "node_modules/schema-utils/node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "peer": true + }, "node_modules/semver": { "version": "7.3.8", "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", - "dev": true, "dependencies": { "lru-cache": "^6.0.0" }, @@ -10483,7 +11113,6 @@ "version": "6.0.0", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, "dependencies": { "yallist": "^4.0.0" }, @@ -10494,8 +11123,15 @@ "node_modules/semver/node_modules/yallist": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" + }, + "node_modules/serialize-javascript": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.1.tgz", + "integrity": "sha512-owoXEFjWRllis8/M1Q+Cw5k8ZH40e3zhp/ovX+Xr/vi1qj6QesbyXXViFbpNvWvPNAD62SutwEXavefrLJWj7w==", + "dependencies": { + "randombytes": "^2.1.0" + } }, "node_modules/set-blocking": { "version": "2.0.0", @@ -10541,6 +11177,35 @@ "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==" }, + "node_modules/simple-concat": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/simple-concat/-/simple-concat-1.0.1.tgz", + "integrity": "sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/simple-get": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/simple-get/-/simple-get-3.1.1.tgz", + "integrity": "sha512-CQ5LTKGfCpvE1K0n2us+kuMPbk/q0EKl82s4aheV9oXjFEz6W/Y7oQFVJuU6QG77hRT4Ghb5RURteF5vnWjupA==", + "dependencies": { + "decompress-response": "^4.2.0", + "once": "^1.3.1", + "simple-concat": "^1.0.0" + } + }, "node_modules/sisteransi": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz", @@ -11073,11 +11738,31 @@ "version": "2.2.1", "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz", "integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==", - "dev": true, "engines": { "node": ">=6" } }, + "node_modules/tar": { + "version": "6.1.13", + "resolved": "https://registry.npmjs.org/tar/-/tar-6.1.13.tgz", + "integrity": "sha512-jdIBIN6LTIe2jqzay/2vtYLlBHa3JF42ot3h1dW8Q0PaAG4v8rm0cvpVePtau5C6OKXGGcgO9q2AMNSWxiLqKw==", + "dependencies": { + "chownr": "^2.0.0", + "fs-minipass": "^2.0.0", + "minipass": "^4.0.0", + "minizlib": "^2.1.1", + "mkdirp": "^1.0.3", + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/tar/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" + }, "node_modules/telejson": { "version": "7.1.0", "resolved": "https://registry.npmjs.org/telejson/-/telejson-7.1.0.tgz", @@ -11092,6 +11777,103 @@ "integrity": "sha512-TvmyH7kC6ZVTYkqCODjJIbgvu0FKiwQpZ4D1aknE7xpcDf/qEOB8KZEK5ef2pfbVoiBhNWs3yx4y+ESMtNYmlg==", "dev": true }, + "node_modules/terser": { + "version": "5.17.1", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.17.1.tgz", + "integrity": "sha512-hVl35zClmpisy6oaoKALOpS0rDYLxRFLHhRuDlEGTKey9qHjS1w9GMORjuwIMt70Wan4lwsLYyWDVnWgF+KUEw==", + "peer": true, + "dependencies": { + "@jridgewell/source-map": "^0.3.2", + "acorn": "^8.5.0", + "commander": "^2.20.0", + "source-map-support": "~0.5.20" + }, + "bin": { + "terser": "bin/terser" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/terser-webpack-plugin": { + "version": "5.3.7", + "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.7.tgz", + "integrity": "sha512-AfKwIktyP7Cu50xNjXF/6Qb5lBNzYaWpU6YfoX3uZicTx0zTy0stDDCsvjDapKsSDvOeWo5MEq4TmdBy2cNoHw==", + "peer": true, + "dependencies": { + "@jridgewell/trace-mapping": "^0.3.17", + "jest-worker": "^27.4.5", + "schema-utils": "^3.1.1", + "serialize-javascript": "^6.0.1", + "terser": "^5.16.5" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^5.1.0" + }, + "peerDependenciesMeta": { + "@swc/core": { + "optional": true + }, + "esbuild": { + "optional": true + }, + "uglify-js": { + "optional": true + } + } + }, + "node_modules/terser-webpack-plugin/node_modules/jest-worker": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.5.1.tgz", + "integrity": "sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==", + "peer": true, + "dependencies": { + "@types/node": "*", + "merge-stream": "^2.0.0", + "supports-color": "^8.0.0" + }, + "engines": { + "node": ">= 10.13.0" + } + }, + "node_modules/terser-webpack-plugin/node_modules/supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "peer": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/supports-color?sponsor=1" + } + }, + "node_modules/terser/node_modules/commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", + "peer": true + }, + "node_modules/terser/node_modules/source-map-support": { + "version": "0.5.21", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", + "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", + "peer": true, + "dependencies": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + }, "node_modules/test-exclude": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz", @@ -11922,6 +12704,19 @@ "makeerror": "1.0.12" } }, + "node_modules/watchpack": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.4.0.tgz", + "integrity": "sha512-Lcvm7MGST/4fup+ifyKi2hjyIAwcdI4HRgtvTpIUxBRhB+RFtUh8XtDOxUfctVCnhVi+QQj49i91OyvzkJl6cg==", + "peer": true, + "dependencies": { + "glob-to-regexp": "^0.4.1", + "graceful-fs": "^4.1.2" + }, + "engines": { + "node": ">=10.13.0" + } + }, "node_modules/web-streams-polyfill": { "version": "3.2.1", "resolved": "https://registry.npmjs.org/web-streams-polyfill/-/web-streams-polyfill-3.2.1.tgz", @@ -11940,6 +12735,90 @@ "node": ">=12" } }, + "node_modules/webpack": { + "version": "5.80.0", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.80.0.tgz", + "integrity": "sha512-OIMiq37XK1rWO8mH9ssfFKZsXg4n6klTEDL7S8/HqbAOBBaiy8ABvXvz0dDCXeEF9gqwxSvVk611zFPjS8hJxA==", + "peer": true, + "dependencies": { + "@types/eslint-scope": "^3.7.3", + "@types/estree": "^1.0.0", + "@webassemblyjs/ast": "^1.11.5", + "@webassemblyjs/wasm-edit": "^1.11.5", + "@webassemblyjs/wasm-parser": "^1.11.5", + "acorn": "^8.7.1", + "acorn-import-assertions": "^1.7.6", + "browserslist": "^4.14.5", + "chrome-trace-event": "^1.0.2", + "enhanced-resolve": "^5.13.0", + "es-module-lexer": "^1.2.1", + "eslint-scope": "5.1.1", + "events": "^3.2.0", + "glob-to-regexp": "^0.4.1", + "graceful-fs": "^4.2.9", + "json-parse-even-better-errors": "^2.3.1", + "loader-runner": "^4.2.0", + "mime-types": "^2.1.27", + "neo-async": "^2.6.2", + "schema-utils": "^3.1.2", + "tapable": "^2.1.1", + "terser-webpack-plugin": "^5.3.7", + "watchpack": "^2.4.0", + "webpack-sources": "^3.2.3" + }, + "bin": { + "webpack": "bin/webpack.js" + }, + "engines": { + "node": ">=10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependenciesMeta": { + "webpack-cli": { + "optional": true + } + } + }, + "node_modules/webpack-sources": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-3.2.3.tgz", + "integrity": "sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==", + "peer": true, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/webpack/node_modules/@types/estree": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.1.tgz", + "integrity": "sha512-LG4opVs2ANWZ1TJoKc937iMmNstM/d0ae1vNbnBvBhqCSezgVUOzcLCqbI5elV8Vy6WKwKjaqR+zO9VKirBBCA==", + "peer": true + }, + "node_modules/webpack/node_modules/eslint-scope": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", + "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", + "peer": true, + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^4.1.1" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/webpack/node_modules/estraverse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", + "peer": true, + "engines": { + "node": ">=4.0" + } + }, "node_modules/whatwg-encoding": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-2.0.0.tgz", diff --git a/package.json b/package.json index d11d487..0e1ae54 100644 --- a/package.json +++ b/package.json @@ -29,12 +29,14 @@ "@radix-ui/react-toast": "^1.1.3", "@storybook/react": "^7.0.2", "@vercel/analytics": "^0.1.11", + "canvas": "^2.11.2", "class-variance-authority": "^0.5.2", "clsx": "^1.2.1", "image-size": "^1.0.2", "lucide-react": "^0.125.0", "next-auth": "^4.19.0", "next-connect": "^0.8.1", + "node-loader": "^2.0.0", "passport": "^0.6.0", "passport-github2": "^0.1.12", "passport-oauth2": "^1.7.0", @@ -61,6 +63,7 @@ "@types/react-dom": "18.0.8", "@types/testing-library__jest-dom": "^5.14.5", "autoprefixer": "^10.4.14", + "copy-webpack-plugin": "^11.0.0", "env-cmd": "^10.1.0", "eslint": "^8.34.0", "eslint-config-next": "13.2.0", diff --git a/tslint.json b/tslint.json index 4e0261d..4d038f2 100644 --- a/tslint.json +++ b/tslint.json @@ -9,6 +9,7 @@ "rules": { "no-console": false, "no-bitwise": false, + "no-var-requires": false, "no-any": false, "array-type": [true, "generic"], "arrow-return-shorthand": true,