From 9839e2440e736bff0f4590000b44082fb94684fb Mon Sep 17 00:00:00 2001 From: John Kessenich Date: Thu, 26 Sep 2013 00:45:21 +0000 Subject: [PATCH] Unify the 8 grammar productions for declaring variables. This greatly simplifies making changes for this set of productions. This change also naturally picks up redeclarations of built-in arrays and the addition of the remaining linker objects of const, arrays, etc. git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@23246 e7fa87d3-cd2b-0410-9028-fcbf551c1848 --- Install/Windows/glslangValidator.exe | Bin 332288 -> 335872 bytes Test/baseResults/120.frag.out | 2 + Test/baseResults/120.vert.out | 9 +- Test/baseResults/130.frag.out | 3 + Test/baseResults/300.frag.out | 2 + Test/baseResults/300.vert.out | 3 + Test/baseResults/300layout.frag.out | 1 + Test/baseResults/300layout.vert.out | 3 + Test/baseResults/300operations.frag.out | 1 + Test/baseResults/400.frag.out | 1 + Test/baseResults/420.vert.out | 1 + Test/baseResults/array.frag.out | 3 + Test/baseResults/array100.frag.out | 3 + Test/baseResults/constErrors.frag.out | 3 + Test/baseResults/constFold.frag.out | 9 + Test/baseResults/cppComplexExpr.vert.out | 1 + Test/baseResults/cppIndent.vert.out | 1 + Test/baseResults/cppNest.vert.out | 1 + Test/baseResults/cppSimple.vert.out | 5 + Test/baseResults/dce.frag.out | 2 + Test/baseResults/decls.frag.out | 151 ++++++++++ Test/baseResults/deepRvalue.frag.out | 4 + Test/baseResults/functionCall.frag.out | 1 + Test/baseResults/length.frag.out | 2 + Test/baseResults/link1.frag.out | 15 + Test/baseResults/matrixError.vert.out | 1 + Test/baseResults/nonSquare.vert.out | 3 + Test/baseResults/precision.frag.out | 1 + Test/baseResults/specExamples.frag.out | 29 +- Test/baseResults/specExamples.vert.out | 3 + Test/baseResults/structure.frag.out | 1 + Test/baseResults/tokenLength.vert.out | 12 + Test/baseResults/uniformArray.frag.out | 2 + Test/baseResults/variableArrayIndex.frag.out | 1 + Test/baseResults/varyingArray.frag.out | 2 + .../baseResults/varyingArrayIndirect.frag.out | 2 + Test/baseResults/voidFunction.frag.out | 1 + Test/decls.frag | 34 +++ Test/testlist | 1 + Todo.txt | 2 +- glslang/Include/Types.h | 1 + glslang/MachineIndependent/Intermediate.cpp | 3 +- glslang/MachineIndependent/ParseHelper.cpp | 272 ++++++++++-------- glslang/MachineIndependent/ParseHelper.h | 17 +- glslang/MachineIndependent/glslang.y | 133 ++------- 45 files changed, 505 insertions(+), 243 deletions(-) create mode 100644 Test/baseResults/decls.frag.out create mode 100644 Test/decls.frag diff --git a/Install/Windows/glslangValidator.exe b/Install/Windows/glslangValidator.exe index 35f1078b1c8914659dca919c700fbf723d35f123..e3cbb6d42a486e1c439e309a1b27796cb52f5c67 100644 GIT binary patch delta 133965 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�f@uMTo3Wj1`zKH6NGaB#CZ5Q2N34~l*6#hnc?MT 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 S!*(l9)?*yoKX9_%VFUp6X-~EQ delta 130924 zcmZoTAkwfzWWo=xM=z{{7@*(*0}~@RBR2y>1TzD}0Yra3bMg8%~qLjf}b1A_yE z&BVaK29`z83;~m!81;BXF0n8KfTdU&9!wY1V-evIU}d;t&cJY?keR_^qN22D#v&Gw zIbcO#qJWuU3P`E6kX}h@MF|4~Lr^%>(um2w80Gl7vKS%u=P)ub#7tIWlIMKD!oa}6 zz`$@~vLBPYApfx$tqC^aWPnStSpJp%)S04vxF43{>~V`^ix zdcnfL(0wfK5DP>1#qi!L#x5qOmII|fwXeqq1$Li%aS|?l=FFL}?vKrNA_7HR|IJ=} zP@3GxA}<6JH4rG`{$D2ZV!zVlcoqewxnNm-um%UPl+KHMrOEqQ6t#Smm>HUnuzYh- z;b1)Orozv_z;N760p#3cZUPL)*$xyrGn8(8BQUq&*IQ2}H&x^;3 zlT%sc8H*;jvL=d5uybZeSqL&Dp!p3?a9H?4iD#34v1VvIQ2=Y}bbZr$pw#HUs84}2 zL$@nOr|TPs&eRV9y}sPXT>mh=2%g-;xv_g#{Geh^e*4riA!GQrUs=yZW zz&#$MF!>LgGkdW!!++73g2`^|E`qnfmhgnW*eMUTEp{@$qodlHGiT0pyQr`jpKLu) zBGvrke>s1^i%@xHhVB#1M_5`7IGg*j3mAwdLSU|yKI}T|$JAp%7E0u|XA-?-q zTx|3q9){-s|H`;CIG`3gGjzL&SRXHz|6e8${=#SSLJlA1c6sK>f^i~~Svb2T(3DC3 zFB9lK7yiO+@^VglrarmJFE|qw3Y zhJ&m-N)i04{JNUCq7d?D&YaodP~^;T7!(H(yrTq-zXg^5zeI%tgkLZVGcfc9 zaI{`3;pp~J;pyh=Xn| zXTrOG9%mOQoh;6)5VI5_+fIN&t-9iJLw#$-``4V`B$3{0i=;Eci4Z5GyTT2tW6 z@c&x#5ti<=FE%+aFa*Fjtqzkj`4xN%oEcusXJG&(x|iwy{{PQ7QVmM@F(C2lf(#6= z3;vg=Nc8%sn7p{*z`*d0bqd%Dxn3U?gBNCS1HoMO$=CQznJ$V=<`vKrS||qgPWLhE z@1^gk z3S}{tPyQq1z*s)nR@jQMd~$`brgOP7L%@qLZ;+83EeA^2_kk+1*N(j|DgqgAz>=0o zlAxe^tpb+(0+y8VW?-27L|C!@x)9ip-N(9pRCH20c|j#^WPDt=kBW@(nHO7yL9#lK zTo-2i4HT#@40ZCs-LfqO&J5w*H7WxCO}78P?ACmQ#Tp#8HSgo2oS{%1Jj@)|U$ zyTmgX9|`DnQ87tb46?a9M#ZDMM#ZI@dGQ=jwm8{+91+c(wiBMYFhHW3TZoy#zxfDD z^I?|7JWcFz|cDz#9!F+Z1Q6f^|Tyi2ZsMDtscq_42`^?2y9?r zV0c;1$iQ%nb;dIn2F91!j0_CTU@69z@o=`n%V0R0<)u5E&GFJ2&SrY44`oj-5OrXB z^J(%XQ6(lO!O7P|4YQ_x{Qv*Bn+~K#)Bri@n41K{YbN7w3qg)P=AvT5&}p&*%;{#? z(dnWh@*RiU{LL!#7~;s534BP=h}xIj5e z2js6nc$IM~@I?eaGefs1NE}qmeCYLL=;G?&>kVS;En{psS^BA4x2M3FAtR&InIYi+ z)$Sk7M>tyl^SAi3GBETmQ2~W1ST2j<|5Z>m%+We|zqledq$2G8uxm%@v!9K@#-=iQZ;rVA%NsNi+Z? zItwJqQ-&}%1SA>>64gKwjR1*CfJAMOL}Ngr*O?d?c1D0jWx(!D0EtcmiB^<3Gjtz^ z`ggLSgbu{%DIf)YAO#b^+90ACAW>eB=msRw9FXW4Mh1qR2arSyK%(6s(HlsjB_L5R zkmwsE(F%|#CrFf|9O2Cxkmv~p28NvqNTLlO(RPri1xQq9a)AsBAJ|hZ&s-Q@d+rPX z32Q1q5>@MgQjSj34v-9Yct%D!B+YPSWRy-mEhEEK>de6JdN3fPpmg#_8FBLhXNIuw zEH>l+|F3qJsOWUx$cU+S2IUrsuz=1O6`lX0IpF9QXgyFO8J3X%u97MWCfm!3F&0b? zlT~9Zm|QC>&JGiwEh{As(O`YNMCN~qiblo~nA{mzDQ~bGOY8qqnJlLNSDTNp9AjYU zv<1~8@o}BZvE7HGn~#VbPUFvG1&O8c=bh(|KENM+viS|iXa2Yo{80x#@e8u3{1<&w zFxgN}hp}LCoSZmQJ?G?dIeqJgE)3l+Dl+kLv0zgmO%X7e^*^Hmx%iYp)C>~AVW8&l zLpejn^2x&T`tq~bL0O)q<#vg5<3CV#EaA`kpT!Wi6U2UDGdWRSPC1eTq(%c=G(#-l zdEpGv*LncjbX_EG4QsA$ej=~M$gIM^Fj-JB%Fyr`w5i5})MmlsuAs{!|SxK9* zd~&{$fygr#2L8Scpz2!|)N1Me4=VjPE2)S-b7AOa+0lGJqPapupopoPA>jXIklZ^Z zF{T^Lli8FNn6@!bZe$Tw3(_DthHfl0q z_0FLB^gxzKryIwMA_j2WwH_$ZhBOF3{U1H-iYUjp99uDkg4ES%*>!QLD@S;J9 zfgy6TqPi6G!v9Ru1%EKfPmWcWVNzC_T&-@*s4{uIx{{s>0|PjJK+HZ9+-BXLq^4aduEBqFU()wNf5pr9CUe zf^L6~){`Y{-Hcg`{{{Y+^SpTb7wnXHNaOCz8Bnx;Mnrq_8xBZ&RZP>AQE;-4rm>u^ zECa*;a)}qAf0-D%*}G|II~(g)yxABVwfB*B`J|&=>)w zz!!i2|A+Rh!d~1)kv@aa5Ari;q+u6|0+4=>e@OagqeyFkJR^{5;)UpS6f*|eUX}_2zC+l=F2?S4mr=!HUX0o8J zurWucFUyO^++g>)beD0wXa}{$d{hFm6na@2ds!TMS=_o!S~Xs{Fm#rv1iaYvlWB6e zZY1NG$s2WL8S5sW*L9RUbBqC0#nv2eQHfxOj7uGNQHhACnXIWN&$x23r=A(_S{X)$ z?(@f7RKyuyI8N@-ld7))jRL&5pwGaN!BG!p9|5r)AmTgp85p`tR8)e){+FoO^tPyE zure?N^!9)|yf1cXGBWUQi%}5||Gxz+VtlgYKyQo60|rn(w3LD0L#vA%x?r<<1BC9d7B46O$yE9py`LhQAG+557dfq~)w7L^WARdF`pMSU9sL)VSh z<=s6hEes3{8Govs8D4NrF3^_|(d7fRXn6v<&mC(~iD748V11!Ad4ayRAH>KNdJyM- zb5Sv1DdGFS1#Cd~*%$A3gL>bMKfsRZ?NNzgWdL>KLE*;y;?Z(OhVB*>8Ab+%fa5MI zF%dPBB@JYlrbtdUH}GPLkeS?UpeT{}or$6GhzC0ZT8%P!y@9M!H7FoEnP1G%Wnjpd z0SU?;5E~k-4Z4%x8Au3%m36qN2)~E{N#3cMEN-Z$0v0{yq9V-jLIxx(Q42Edg#d^R z)z30H(@-%QN#S)J28N6fh{Dq#HdNt$9R`Nu?BI^4b@LDAQZsPib)SP6zYwId1EOmx zhz-@%sWbVhp@Q`idk2O_>uC%O3^kn1_RRdP28__qhZ*1s(sTe~fF+0xH9&W=gOQ0U zlKb9jGcaTb)PX(n5X6QmysABUrjaqSm#2bc6Cf%(L2RhX+Q}b`jGd8;v;#?QfG9Kq zv7rjpv>6z>TvYhuodJ|m3_w(miVldHqM`w!wy1zg3s4&( zJRmSAi?P>5#UP;5N5vwnw?_rkxjpWpVgah^Iz#GJ9FDuFxPUmvT~s_k^b7X`;Jh3I z%4#aC3=GFxR20}jG7JnaW-np{wy*?^AFA9}GMP8{{1`8-npMT+~$-s~i17Vwj*x)!g|3VYQuBd@E zJ)4iP7~Ou&w3)HD2ka=A%a4JbR?oojB6ATq%l!ct9H4qz0_1ZJMzGI80s8;{|Nk$P zMZiv<0xB0cIzb^1Vs<*PbhoI0SjSsbWyErgtx;QZCyErhIx;QXcyErh^PWH4gmyCCDU`TawV90iHU?_BPU?>O4 zxHvE{Om4j3I{BW3s=|JR1DoGq8^Tn!Og2}0_5XkO8gST!zL5O)|9>w_Gib=h=IDxN zE({EvE-DiIt&^D<7+#!_WnjoM=yXxhcwzl^@?J}M%>)?+aJw#`(?vz$Sc}R8P{_Zi zk^>dUEXKEAGxvHjWGTG({ATiBYx~JARz^$>5axC(Pu4ds3@`@*3IAT&Z2$r;18zO10~|!JR4se@}9iM zM!(+h4X8fieg&=q+?xL})jTr()?Ks3p!I)=K==6h@{ zOwO_uWNLglxz<*mDdyGWdA8z=&n9oPRp$hEI0RnIkevL?)=T09ST~~o(e25RW${&G}+Ex zn`!ln$=UYaOhGRu@341g`ul7$ql4n)A_u$43Jw8cVW7c7p6-vRlOU6iIXE%#JfF!NZgPxXN&C`T75Uw^{IuGY=*!xw$bd`MEjEO`K5#?34iTSVgaoip-1E zCX5V|r@BWo?wS12U4^lHvY5ww#`ekEJWLoLO@8emEot`S|Nqxj4V63$r9#IXc^JdG zPakvRVR*4_vb?9K+LiDB|9A6sx$$&3@*H#HVeAIWJMb{R@cQ}x|1ozS#?TiDcPICG z>P$Z6#>dq1XYwzfl|pbwfSs`0kda~YR4+!R$=m#`CU5YRVJi4M`JCrgG-b2(7#TKi z^<`w5Jk7^z@`Qi|e8vZwYgAa6`R5%t#KLf9vR+`WpjDR0i|bdJ7(fGZEUo`bR3;bb zO4lEE2Y0PrGa3KytXXZ+UF?&w2GUsK=4D{`Z?g8r6BmZ=b1(k#Ffe57fXIC0VPI&k zdCkFCX3*{Onx)&o`a_9mw;MV-<*m|-=y17QhfT2VLG}h3~_P<0$q}xFxu=||L{|j9=dVN$lUPzQMFuXX-1n$qg zVFkru%k60XsRuwVg?S0&Ef9Vo-2`qNfMzCN%5RvQA8O=?oUi-24V$65a~ zq@5s%0GtM(bvdXJ1Rfok{2=T&lkLUHE5qd^WiNv5?5q=M{a^aJ+fAnRK#5$yi+SfK zKL}S21J!F+&;0-24H}0)523988Q%D;VPN=gx&dUufNXRgNCgZgY-a$lHguCbLI@xu&0xMM97I0AS`Zv!vUSF z*NQX{kvRt~!aGafw8Bd9yhuqIR&E9cc;(65d__gUc=D{6Fs3D^!DT&rY`+m)Re0-L{+4b~E7wL7wRVC{(TjskaGiW2){Uv{ z)MSCURL19%%i`h$L1UYub3m2s0fm77q6-QpKaKNd(pfRtDBe>VLlQJu&l3+?sWI7& z$C!8Vf&c%%-;h4waQMubGn1#qD`+f44p(S(>%w4sG@#e@3#9buO#Se}fp7A?co)WB zla&)xYVX{=pR>s1~7gAhI zDn9-H-{~fC+)V`B2yp|KE63PCYf%no{m5(-cH=MHm=*odbIP1FTP!aDfK6171W< zo|2{??}#uw5aJ(5kIF?w1QJf&AG>2zRF1R#X>?}ju4ZYj2M-0?XUV+i`|$sN_lXzZ zL9TaEQR#G10X3v#K!sfEffBCp?h`L|PgY7#Vr-ml$;xOod4IZzP%(yelUXy&8Ji~C zW=Kd+7h+)Oa(3u&cWAD5VJOka5_qBV9&AVNbhG|v>_jpHd%e(Eqr!8X z-KS~t-3&X%#>q073XF}DZ8Oyr8<9u$vi@hhKsRb~OJ*CB*S^U-SyC)*_y7N&Y@aD+ zaGcQxMI&fn_=Wgeu*(|W|Nnm&9H9teazd8E^at#W3D(CM!NGPARQZGC!$3pAkX0aH zA&AM{aQWko0wAkE+9vy`gn`mdFd$*Z8tPUWQ80_M&`*@IgvVnC>qf#1kj?5 z7j2-<(}@@F-%Q@0Bg?p9^4%O`L!zt{c)<$Mn)l}abio`Z3FgNy|4-M+VRGRH4Wt`% z`*FNreluA*H$usg?SYviDF`SwFFwz=PWam$Tv-jnv<0`4e;bkynDHNon z4n8}1c1$Q!$u@9N{k%Y5AFeFC^>#^luZ<-3V%iv7On07{>{^&T-NA&Bg_onjj-iy- z_)<{V3tfiE6SHLaKxGxE1O`RvnKP56IXxwA{Qdtw4%CPQP1JNB)4mZL)_v~9p}&)B zVx^3ctR}9OFg-o_WUMPw+Lp-+icA@wO}h(1n~i{`M!JAyt*uCru6v8CxI<8bMAt0~%1> z0TCzw3G4<5?1_em#Dhdufkgg5T;vB5m5_Q9T?gh z9T;XbLP`!}a1RQS*gzzx)#d>&MFNq_5K!Y#5HuL|F{|Xo)Cb^l`ro6;4@#w&gx*d5 zQ)(W!8#yyVDpXjtCjqVYZf1$R5Q6Bfe)Ru;_m9pR6_MjED&WR_>;DqH7hmrG|9>1j z`ghzN(%U%S>CW+D?y<=e%WN3!C!Z@T)%C{XM2HJLUa;N=yD;w|$c2nflYf_52w_&s zldqPmsTSS?E4}sL|Nl+Ynf#z4or(3tWY0<&rsu~er&n6?pZWhEv^SVQVvaL`zEx~P~OcTv#+^)o=N5m3-*u9!Tvx=%g=*~Q4K#vtvV$xbzzx}a=w z{>AGD|Nm!kfmRcR1-y_u0BZg71azN24qAN#8ncyt@c)0to2JP#YLvtlJ^24WxcmHz zSs*d!cx&H-$roxQtQl5;!cPZWLs8HhohwH~Af=9)$KChw_}WD;I6`FhC(g5Jq?4LVGp7$)a5NHdu(p4{2sKKVgIER+1*$@YyV zf+rE-0~val+|sDTbnVLI6^)klpvr(fi!tL%1GtDk^Zx(;Z|*Fh+JG~QHRBINnmvQ1 z(V5}J`uE`aiV;-Wmz(`pY5mggz>vYy=*;k1F+%`ENo9zDDB%nV5XFrQL_-7_OZc)_GfcpOFWezwOeK6-Y#BBXG2{3D|4&xjB_hef zFrld5fuXYBfuW(_fuX(MfuXP8fnjR@zm0X*o5^*p66~O*`!BrjOg`LF$#h`B zWV==qp1uG7ch(@($TAh)o; zki7l>f0x7LMq6p7CkrNvwe>McyqNqfT8rt;^U0Um{28SuE43RlJ%2tqyuHV%5IICV z5ZS{8nmu5}TMV>#``KBeBGa9tl4A^7!z1w`^4w(A4jZxE|Nr;8s3<^6j0{k}=*5dt zhRNj}R*c<~H+A?kMNgZ|+wXo#}!b5w=1TolBPjrvzx&;>3%_bCYwsq?lZ1 zPVVfo!lAU|G&pcSo&_u2I%BhBHzy<4Hu(CZ$uT`q8V?b+fa(BP2MVocT);i~UXL2v z2~hMNo2-{0$s{^!vTE-{5e9dp!~z?zIMv%DX14MFfAE;Y%^A>sG^m)H+%v&~nd1bw z87-xZG=>C{%=(|9fiMp0XO@X(OrJJSwwb8Qba?aR?1|bU0SGmSF_KjiVP^c8&m1oz5}GTvU9RUUVIu>@wM21ef)U7bmZoq+|%TedQIX?Hhjn{|~eIxU&t& zJT%+)P5wVgk#Wvs#mS0HRYxX=ObKRsdKu&oFR)2_FGEc_@&oJ-hxkrso4Di5ds>|t zz-#Ud(5j-W{~0?F0R)W*k*P+CVB;JwgA09?UVok!t{@XbR5ZF>R1}W0+q6thpQ_6= zWBuf5Q|0AB%Z@>-@eP8*!a*qkv}(NjW)?%QkBY*JU6(-a695}H=@Qg^Grvz}ohHvy z(hhc)@tGG=lP4QYGYkf+Qo97URsv+L7HACLMTMu+-KN_`MWEB&q1#18q|@EyI6GML z@%Xqy0+7)g=<*tD-Z221yYM2|Tn&)9OF=7xL0*9_pgPXJr^T6})7_@G+~LKJgOkOk zYcsuGJK1@<36tnWkO$Hm60OJs=ppH9& zMUFFqqz{8OB9*9cgokzid=X?g`OXXlriQPR|IN^0VltepGgE=d;Ok_+na)zknh?Vc zpiDS<_DpH+MrQ_yf!znEZ?t0)ooqHsTNpeA0?J<9{yd-@_Co65F|Ncr)QN-PMqx|F>^1t;9)udsuW82LDhNpi5Jd4H}9S;%_y3-2P}JjA6S+LG%h6k zWAf`cJ2_|U2Foz+o4j_eGSi>t$(QEt6v+Vv&vpO!AEeT4aPXPF~E$t^)EOcOcqA_{bLKP;yx04?% zOyz7@51t>+SU=fs(LAOErOEFWiOB?PaA4?W?mqoLz@_=Xzvdsz{OwB^!5!3;4U-iX z+cA}Fn4GZKh^b}6?*0X>z`U}miU>8r?4)(nuDDMP< zfI20|Vn)2Zjf092j1&abVC{51M2)T&gfxbm{8)8EYLF z{MS1$@U3%Ta9ZcUaBHmt!-cgD44c+EFzi|Dz;JA>0|Uc42L|?a4h)~xIxzfP>%d^L z&Vj*t9YmknItK>bbq)*}>l_&J*EujmLB$i-LHc6g6>C`@FGMzj9b3B<>{w8|i*%oO zv2U{dvQ*9)o4|66TPLqwX2^7)dGdp0&e{aJLs>B|zHbC;OV~2mZ@D7l-^m5bT@*SX zVjnkytsMR5{Hq1E#6#fYz@R(` z?nn_18~3$f<2S4aht1o`3Tuk>V6$Z42@=p&KUmuYI*``=Gb`pr%Nnr8x9cV!T%%sE z^6LNp*G$F-x=U0P0{)wU`!fpQg&bY%3=ExY-99P;i2W?hM+6RWfQ#0w{}~^U!^#HH zFtUIKIn43^Si`8fMkRxxJ4Yp83Y7}fn5O( z(-&7k+oAqI)PO=7w2t`yi}w{^wIXn}pq|}}mH)tXWyItKHInt+e61%-1iKltnEnTp zfIJrZVku|=f{#i7!auRm-99Q7#%Eq^s|H1c2ejVE`k$c?G#DpOp1e+lh4tb8|C944iYjOQ&xk-+*Zjr-5ti^` z=kq!j&JDZ41J@~!pGO!s$8mfxVN-{{QH`i;NE>Hq)#&A(a7*}IRu zoX)_&kmd5?-U@JhyRQak7@pAX6EC8lPcGgtEoglO$kRTD1Q;f0>~dhZw9|nhY!_(v z3KOW&&5*OpfuVSp14Gp=2ZqL74h$W;pc%fBg}Ef6xsoHVBnY%a(xdqYbGgTVl~$8I zlcP6!*8kq^!0>jr1B3D&2L|Ci5IvBD4XdEKe?phIy@*){DS*4ry$D?Q|9=Lkd)R&M zg)2zdT_7H`;}WJ7OoKPh@-Ws4We9XQgBFVNyjThHavcw2oj^teNQ|#Ug{S-6i^>20 z{|AjoPM=uGC^Fe~lN{4dzs;$ev>7Ka*sQ?Z?PxQ3@s3!=?#YZh?S;D?T~LPYdmSAn z8}Bp_#K=#ROLqDw_$&bj=+nEQ+UdPm* zKiT_)v2xE@u#%dy4h-GiF5Sfr-HiVOY`_ltA7Imc;>F&3lNX+lVp@1_^4=43IepH7 zl=qsPo1AU4oQ~^`|n#t==$uc%hK6|Qw>Hg};_NS#78z)Ddo++!j`v3oKB)y;^KZsrr zpT^AsXNs8>W-don0$MZ=QqrQb0^)|n=M@zg&V!uY`r{nPmoP7a+Y2Bsp1MBy$$2-X zPs=9jT#ykva>Rkb>xcux-op+IlMg#Ed^_yGaPP?ExC`s}M2|W!m>+du_<6*EA^7NI zsf(+`PM&gLxO&uq!QhkwL+L38hV~N<46}|*zIAaOoBbIFhK*+?_gyk(+HrpJ;Y+On zDd!y+OwT(o)SY)=a69k70OBKKaHczR=1ge!o8~7!KznHrQQrI}15r>VK)X>hE^Dd& z+WY^%@yYHFyFhc7;8oR~B`PwImDP2V!O8de)XC2;n=x}{~0Tg0~9u7IyvI{J|?yklO=A< zy|qccje^Gw;Y))4sQN-D~d4@ zl=DGly!?Na)(_#70Fy63WcU9IHyjwQ-Ed&IbHjn*(G3TN ztp6DjxP~^tLk^P*?`2T-~!DI+0b>ifecQor=?t?Rn#61U)k_?Z@ z&I~WZSs1{a5D*8nroZ{POhyWbbDo)j0mR9f>H?{%KQ5Co1!Qs=h<98jV-1Lt3FYhoablpHGa!yXlye8fae{K* zfH_?;8p@FYarmGd9T10+xgO#l8xZdc6NKXf;yj0PVnCc*P)-hr za~8^}0dWpMIXxiGW+-P4h_ejJSp(wCgmU(PI6Y9#g(=Pq^)Kt8yeA;3A}Hqvhyyx_ z0TkFAQ=J)JMnGj`Kpbx<#{k5!gK}Iz978B41jJE+a#BDXaVVz(#NmQ+dg?*Ezn~3l z$7M1WfH)tZoDCq(V<_hch;t3fxdGywgmT`1ID4R+KOoL}C}%>iGsDY8P|gw%XDXDl z2gCu@Y0by$WioDnc-2rTfoaYRFG2H$AdgFcIEhdh6_BzJ7zZQ+-tK%{CPN3rv4YC* zOmt>=sSD*8fMh`HkwK=JfH=ZX84D1Hjgg@qoSYp%yq^q^=yw5eKugF$ntVW<`%sw( z5a$wni&oE=b31BkO4%9#M-%!6`ffH)JO92Ss=>OmO?WYL0Y&J3@sK&%ZQ zRso2$2gFJPvCe>4F(B3z5Gx48dIDm3fLILEof%%+fmk9SmI;WZ0b*%^ST-P*0*D1# zOW1w>g!t(4t(y)ETW&fqFx+xr_;kmCLFtYI1IHZ)2GKhX3|DSDFg(2N!0_(2 z1H?^zvIBL%bs;*MUL(t^aC<-gRIoz2(5L@|FXG<1GgU-dhd~Qnwr!)NeU3nA~z;@Vn)}5Pi#mA>)<< zL(?q>hW=X)40CQdFl@W!z;O7M1H*+|4h(m1IWWAs<-qX$mIDLJZ3hOy+YStJw;k*l zv~N2wSlo7CaJ}uo5OmvtA^x@lL(XjnhRWLx3~jd^7$)C#U|4Y5fnn`!2Zmj@9T<+^ zc3?=p3+^f~vrJz2NNncgJ({aPa1N{Zv2}gKV{m!C=8*$KMnRV|!^?G`O)FDC zEYKiH#tsk*G@Fp|0K}RAlI7@jW_Z~KVwr$gH6T_3h*bn)^?+CzAl4QT3p9zJaRbBx zWyXv@AQosNc7{TaGs8<&2arM^5Yr6AssOP-lY<#cKrAJY*p{BjK~FsD4|RY};{b_* zC*hxfSo=X!>t8^utsvG95DS!(GQgPybl6UY3@F=72g!mcAVwv@bjSq1N$Qf2EIoQ45E)57`{GmVEF&Qfr0a( z14G0^2L^^m4h)$O92klpm^d)hK5$@Yf8f9{@qq)w><11EOCLBetbgFZu=9Zf!{G-G z3}+uWFkFA&!0_;a1Hof%%3wf+D9-(98KTOb_N zdExl)uM!_;bRhaLxPSXXybW}835Y+z{)q!a$P)(!w;O$Wcb|Ka z3u1o&RSf4|B!bu=4|Jb<5!y0&=Sv0I{l4G^KBy?4^VER>gr7WhVEFvhfx+|X|iwHxB3e0fO zA!^M>c)HJJlz&sJ8$f86;G|f=AsZOT1RIPXPte*%!x~V43{%i`AeV ztI#^~EMz+x1H+4@O`tq}_Ql)A|Nk=@Ai5?tO|E@y!rn67nc+oP)8rkm^^_)n*osa6 z|3k*LOS%QZyHETN;&{!KF$W~Y)-;*pjXe7X5c@&nWW6`KOt#*WW8WAnihwdjdE@{8 z|4UVZ!(YUL+BZjddi`ZGWI!^pjgvRN(O}mAvGp1!KX{|8T8-#0G`;~H#RltXwx~Q| zVPJrEHZ|UwGtQly@K#GG1(Jd+GET67wzZ0`DVRLxts#?r!{qaCFcIcS^D`U7*&;3(z-_01;!XpUnGS+Oog{R9;4)j6Z=Qn{cNo z@V!EP^}qlByWMP>5BzFA!ea|MDTKfMGcyAN|F#B|PvA=S$p;5;^RcJTnc?LRP&z&? zlQ9Rxc@5=k0CDa?IeS2yi%`xP5a$S#a|guP4&}T7aaO^4CVxP@xlk#AerJZ46QCRo z5T_Z+aR6~(eW(Z!2iAuw0C8Y_s16VZ)`waE;=uY)J3t&*AL>j$sAmG}L_GmX!8%cY zKpa>nN??LB!%Ie}6I4JPSRcv;#DVppLO>jN9}2`d3+;cjfH<%|)Ep28)`!|s58^F@ zsyhSXz&cS^Kpa>n>JEql??Zt&us+lq5C_(W`U2v>`cMp@J_4){1@17w`cM)e8AufDgnfS^`S~Y99SQ!0>pv!p=v-JSRbkd#DVpp zdO)1@u%5{j5D(so0&!rSs4XB4q!T5Ru?NI~^`VY{IIup{84w57hq?mdfSPTf-oOJ8 z2iAvr0ph^=P+vftdRQmw4~PfrM6pZ)?M(s|GRI{yL_i!iC`Sdvf%TzGKpa>f$_2!M z^`SyQ9C#lJ#DVppNj}77@FQXF!aB5V3_mPfnnua2Zn8L9T*P3bzrE!@YaFh?pp_j zS8p8{zQ1)~V0q`jAo$LKLGGOcgZ4WI28(wN46g4S7=qq8FvP!eV90srz)<Q_yF zz{w&tx#4T01vhAEsEZ0mddO~!)B!dtYM zJUS=aZ_#54=$xFtMNw9z)0yEl&kh|B#k#|$)0qLZiJS%0>q+RGympI>8mPbqiGlWZ zXC!nwGiVkwr`=-7cF$%K$R(m7dh zn>5pf&dGY)q?zt?PWIj=&Ge#ka>h1Ae&(kC|B-w*dB!$nrZ1h7_ihts;^>-uZJUyT z!*}Q)=W8kODCcY89XCMDYn~mTan9GQJ3s@SAR}Obrm`t0!*70~gK;0A+y+vNY-73(EzK}{9V9(%~X zNS<#F48q?W7^J>AFerX=VCZ(_L1`+0#%942aG=522_Sc~bb^LudBCIyn3MsNplCll zq5Qi8L+y75hUV`M422;24f26lVfEc5DjMOS!@IhFzPOkMo}4oQjj({udIY!A;cawC z`?ryV-VqL7{%vjpDkx;2Q>|yZIh)@Yw4N-< z=>{#*oxJ{=bTGqB@E%hRh6iAp<-!v%EwJFZ1H*9^l?^Y!T%HfF!L-DNXJA@J0HRDm z;iUsZH)F4eO3?oRj^-oa^-Ys?dK5H`kv4{bnphy5^*0H%z}PFdfgD9RA&f zX=Cu@x!)D}_klVDpkva`Wih^3*fRO-cXip02GFwQ-gtqu?H77@na4G;Nx*O$Nl)hC^7+IGkp2om`XY#(k@l4$&ljZ* zKo>mk_#eXLkTjK#Q9Nk+;{X3UT|v_p;9a!GUBMe@kGq*TT+dVMWAT^(M4&YbCVwditDu>jf3c-%Dxq-kmaqXg65#Hn43%3Kj1|NnQkE?{6_ zn0k;=dO9;BV>{CtrRhD4j59-2B-0JFACD9 z|6pW%1lp5^v33*OC+kJ*RsPr=qM~q|&8KlXFEisty?t?zX`4jw%#1>(3({f&=-#>4 z+K^=$oo+gyMZD8k7=;BA5kUr?MVYS5!f4FcI6a(&F@f`FEZ9uFgy{!Z7^Rp#X-&Vw z!WaYDeK$>^$(i9rX3qcrT`nr1oy7vZ{sJBD4#(ZW2b{c!pE&(JE2Fqb1HuCMTFdED zY>Wwvh109q7!B(Sof(d~axnZa<>+4&l^1qlR?1h#&Xmg{&%aZ^9{|9!Tf3a)M z|No#fn9@Nl2J`Oo|BG3UyMjtMhX2Md-lqTm|I!O|IGpdB7YlMgv6#j1f>{T$SQD~- zZw0bDG+>pTi;98@q^AZ8UJK|#lbhW&Djwl4gqf#%vok7)HY$TwK2)&wy6L>O5AXF+ zk$CYheR=~sqm;;|5C8uMG#?NM2!l+1pMJscdHOnbMtN;*ZBQv?0;zLB1;v>&$HA-Y zy5altK*v1ry!aL~-GhTsPvio!BLyH1o8HC27^DbaI@il$3@R-T%>Mr$w2JNlQ$VNd zix-YD)BkcX>M${Xo372tD9QB0WV#zCqY~27Th79T-1#xA1%hf(Cr@38z0d8z}|+HzZG<@ zdPd56XNIhQu#=z8Lm4m5=`u1v{nQojda4w+!#|J}M&Jek|H&cdTBuO6&VHUdDK7&~c?13)VX`{D&M~1*O7YOp%{n z#mlG zaEW&}Y5GTg#>`YFcTj;`D&6hw13t!wshc4qVS_V6K!(nIXNH&jpas=ADk`mSOZBp3 zUi?!8B{|Tk%PPlQR7ybez5*Gbsn+fjFLucP|KI)MHIwmMkQ76f$BVEau(kU`rtcSE zl=lGT=vRsVL2Jw{0(!j#jyXFp9CwD~=SOYe!sB+gKTGh7scv95MK;%p2y~Z%&fv&p z$YKE76Z+zW)O0mLM)^o^uorA_W_WGW?aTsqJIFBs8GAtDD&73Sz3wpqFWxNq|Npfv zvJWAuO0dL9f%Nowf{Zej=fFNqIV1vJN(RYY;K8j3!YIbqN{a!h!A6$M!{BRhKw6?oFU!{3k`l@AO$-3MaKC5YnJX36%o)%$`>_N z(?1C@>PXj3|NsBB3^)Wb1Qs|mWK7uV%mC7KRdTweFryrkp~Cb?VMb>u6%=Ftm#FA~ zaOjH&$?4mK8J*OYOaqPU#zr3!fLIJMEnq8np^^ruQ5E{)gT!_@5k?_KCYy@sMxu<_ zy8ov@G=Y}Z34jhUl|XXI28dpp|0OCm0WVy{r=JpK^yXNx#hD?C`Ne_hvSN%HoX35@ z3BkaBx}O-MqWa&m|NpID)EI?ku%J8F;(v(>2y48k5SuF#;)_TU0Q4z^v{9nNG-{8L)C~ksZbn;9;D#0kvSUCNu z1fweBqUqd{jOk2Tywgi08P%AWc&E>iWRzo?#65kFB%>h{|L*DUB^ec%DkY~2N->r& zKAYYq#i+{^xp4YcDMmM@i-ObtN-@gT=ShHas=y%$2G}9*;5ZA*;MfQbHt^|%;V({u zcDNmphz6en&SQM$g&8h=4?yJ;G(CmCm@LQuI+9eU`G^F##r$6!W*sEl>md{<@T(Dl z52p^enk$j||$7I>jtqGAGS%D?y^%g6weY62}31TCgB={^URye!Me&>f?qlf@9+ zeeT89SO$jf8WoM!|0N;djiA#dWEca3OPv`qc5HTL$Z&w96|kqnUi1ina+*Z9pGCJP zOSdOScOZ+l;P*p+z+H*f+ok5Zi#vs#s>c1RJT+%?vu)3AEChB}?SRC0DR!YY)(>w$^VYGRNIO>#tyE zz#L~YnK?aHmeIIA>wm^-MBp{QDM3_<1<*UT< z3wTXeuZxO!Ko;mI9B?DQ+m|J{vqnV&v=04+$UIQ%gTDpTPj9GE5oh3UdCI`RP~R;8 z8a$WiWNST8s^45K0y!ihGq+fI&=jBtDPBM*DnCIgfw1UfAar-w_QN5zrc$#TfyzL zDF=?bsHlK88nhfJkw7!tWVJKH%cTGR|2Ne0FqCq4`?7?;_`(ZbC=A;5#P`2krum@2 zi;aE^3@?{4FfauF-vSA*vrxv1Yd)a*hrhmcJ}A|By!h@6j<5t!q<`ovQIS9@1zNwA zc!Hc6@xt&4q-6-&Mv}$Q>nG6tqce^Lbb`}yHWg6aR{*MokA?U82^@29U^wmosrj-h z{{Qa=IqVpCjkAx6LO>^Dw=c`_7FFVB3pNV|hH#KW!7&PQD2VZ5eFOu;^!H(m zQX+eWL49)2fq;k_YkI#d<6_@EtDG6KAgA(t1TE!!@lukJApU0-_3k_>_BKqV(iwABIWuHTnd{7uRRKQiSmA$(io%N{ z5{wMp?mVCt8FQ&+a~%&usc}ZfGG~UY@1X6uV4Eaf_0Tmjc_CZDoD2YRMddh^qsN@0{ z8plE7v<%?wJK&rEAskSY`f*J!P+-)wgqySiA`R-thy=diftUpM8)%(6BAbIYhEKnw zz-T1bv%r}l3~WB=q*>6}OrTL15IgY29M0)Vij0Q*AJ8-=DKZ+%Nh}0uT(J-w0PtPK zpkg!d1vlsP&5DfPl5n@pSPE7Kb=z`|>EcR^ZWz+gVD#XaUZ%vD2nt3}y2!9u?92eJ z%feq=VxRs-iP4DDMBNc|#({$RbaiD$JJsitAf;TX4%jCde-=A4WT=1|UXY63BK(C3 z`}8hlMr{f9T2SUL1zDxj4ceTc6B-=$;^DgKXO$VHtlS94_WQ*&epRdZypRC8o-P@Ar#!f2?#5RBBnz}9dpR$U4QkMmYtO_09|s4};PZv|j+Ff?p)EPLEY(lw;gGy+)N$kLgkV^fjuC(-d~4fdULv zi9t)x647pVng0a>pkoYP*f>p3Qe!M)@<^F}O^xxa3@B8HF0g#Stnv&{dpan*K?hQA;#ui8JVQb4V6;0iE^r!k2%#p$4+%9(2u7Ow&^|7=01O zFF;rEk#YK24Ms^dvm{V!uT~!^{y(6r-NZPZN0U(rVVVpiRf4<%!YVIH7^iz_GO8m~ zc%Z8=WSriMVnzzOiq8zwPirzhklUE_|9|)K_&CVDEYOxp;~UVd?LvuX(|_tQx(XIL zGj#iMG#?QGZv%MIZ!_IrpHZSdpv##7ZFo@tH2oiI0~=mE_ae{+H1x%h5itim0^?-! z|3By$Dl3qZ7>Jmj4QTWIxfg06G0>iL&}~XK;I5Gd$T&WbICRv8$>#t6|E-_{NxOUM zRX(sVFo3QQFh295j1^SogIo<7Zq53iVc?IH!c!29g#?twf{RK8w54#f8*<}NcMo{q zarYWXgqbW=$;q|w{yqEfE_JtDQ!M@0p6ma9%@j*1LuBmRrCSN{J$ z-U2?87L*fO|MRzk&Qb-{2;DU*65*lUr(a0gf-Bb6jm+Q^s%5%QgW5&mp)VRdArdo~ z89*IJMH5ij{-Vna)GjFz18>RH3H)E8Qm@f{;)Tg|P~HQbJlO5c68@r91EjZ9yW1VT z7YORXg6t0sesSS1Xp&rF1LI2`&}5RkKySW4_u2meD%}hRA4nbiA=T-k0y-?jzWE1Z ziB9~~6+@Qq<^V}{Gjwt^*Qm%a@wak=+zT_b z9@HRH>1F`ctxP51y)G&d0o`X`d^!04KdAaU1_^)0BBpMJfQ+7XpxPNk%z!vp1=8O* z2D)s^m7)2FO!rx+4u<~$8qEp^HZZu~fC8Mn#9c zL=IB$3UoWzeCDrXNaMf8{F%Sbfg_FonsYtJYj;R!fuvtsK-fC12l!k1;a2E$gD+hG z1yxD6H%q{a>s|l&_)kCZPE1E7(j z2|9iTSEK}i8iAm56}kVHsL0fZf`&26IbO7Zmf_T>h;-+uNOW_DhlT}Y>}3ESw`=g? z7i2y|rIQhK?12Di1JWCr?jxNkDh{9mX7+yYbcaRr8<}G*Dmxe$7??v|wC(@@KV!-| zX9iGaJ=UUf1eB3qO!xp=IrsAXzyJRsMWxW0GiQRkV^ny;!h^eiz6iYW|Nr#+#*A`I z`+rRTZ_F6&`>6wzeOphKN_4xS=ShWi&J3^RK}*gAS`UoGwU#$H;eW4knJ18N5Ged^JGH{6?)BNx- zD2AF(GKY2Yzi|ByP85*F;*X`ES~dgTkyU^;bssP@GGss{K?~TjKz&7+3j{PwzKplom2s=FAWZavs=bnHPu5rtdLl)B^b; z;Dw4&TtGnk5=P1mtu^bx;86*7bzd7zp`PJ_3{Dr-M;@XVCg>l-{8gae+-}#m(PPXg#TbGb?#;d z9VQ&ueg3~dMh-|N8%$*_SS7OT^gvriVf7V%!4-4|*2Md4ubS4H+ z|H;K^dYwJv1*Qn6=>ZOm@0c>2raL$?Ixtl@O>c5!v|;LSnts5M(V%{YlOw}E&@%4V z-upl0}3=FT$z|ISLG1VKC@>l{g3KoFJZRSA6Z9r7m3yC)%Nr~g^ zpz3fRsHF+k)$5~@@WSUks;8JiBcJYvV4mUwomcbXh9cNgjw;h@ofs7v_f4Pg#3)_Q z_X!kLHHUZ@80;MxKG-`lymD}4&~bERh;wvgIOyoeaLL}0;f}o{!!vtFhC>dH3}+l1 z8Ll}vGCXi_WMFZ0WZ-jjWRP%lWKeQ+WN>nHWbkx!WC(C{WC(Y3WGHcTWT7eqo z*G0txbgzv}_jynO9T5D2>l~!i<8K8m_XHg<1!_xsytuStdW{#Ogb>)N3+98vN+&G* z#frz%mw7QNFqL&rKjFm~DIpD-ZU4~vjlVSp)J%3!DGBI4{o?EL>6YG%D&i;RJ2PZ} z3OcIx_@j?3w4x5FQ-*;{E;U@qUc*A&^jm3Ld-n~`R}Y46KbDLephQ|Ikj3!g&E4sj{1{chEuf4CP?J3& zCU?6j^!h3M4*>NF9eZ6=Vgh>o6khOvS|Al70>>efMWBQUYS(9Qz!MtC#cU8Gpo&0^ z_ik5){|-FezAP`a1V9@fK&9vd5wOEO#ihWDDnO&kpf)I|5N-O3@_6`9a(plogA~KHv}>2B4l}HIWxRe0?GPw>@%4){b&%QHIv1x=@Wt(HK%I_ zGjcL@^ntW!PLB^}ENNs=zHbuuV1~G0@7~9dp12SRkxf0+Iq%aoyM) zaRMZJ2-Js!I6^f9$r0Tla7Sp>n}UN0;xUEU&J3^lkp$k%a%T9y2~<%1-vkQTpck<> z!3i}!4s^~esJQ|_rXRF<=ngVq?_poac>m%VK3f=PX7?fr~ocsC8DQ`g)!R4gY#4hw1pZP{Nnj_ zuxqnCUfksc8|)?kDauN;5E-l2N5$ertt=?X1cZYJKS6yCh8MR$r`3SZY53-%qQJPr zr*Zn0Fh(u@ezvlj5#`3?62JdrWi0mJWn^eP0xHB&+HzU{Gb)io2Wc&h z3ZxE)4(!Jr%siqDJ~P&X7* zQis3DzcT%PB%`5QHzTBr)O_Gi^ACY?LH=zGdm_O@@LM7s88$E;Hac*4U8Ez!#z;p7 z21Y0VT{F(e$N*|IHG@}IP8W+}{2@_w6BH_-b&rrF4a!%c88;SASBqxU60*RMot_lU zXjPvO1Gdg4#*tx%$|7fm*9ALlKvd?A2oRODqX0xj@8|(hAv;!pDBm4NK$P2#2O!G6 z8$9CV(t4mozxfASDf^B;AYl#AWO?gJ{+0;vMcT1O2S8^eNEn}aQF#OA&>bT6i@~>J ziUhQtERhe-&{*uu5Sk&d2wb^(fNr=5esTUHC{-)GmdP+dmIaS>2fx?|mX+DS*zKdD z0UcYFgj>+-$&eoH$dDK9$WR*X$j}_^$WRmQ$j}w-$S^V5kzqzOizCDQ=;`xf80Wfz ziY8E)WoRr1TMzD^hQ8Q!0c5?zH#ZiU618vcEHWhui15uQKvCOwVR}O>qYb#71vYBO z^6AH88RZZH50+2=5X&fG4!6u;g)_rznQv_NB^uw^4=^$?pcp@61=uOz4sGa*^XI4A z$1y4*=6BAZNKZXKy)urmL>5#mym%!6ayCmq#v2qh%+tBz8Fl5rN)A*)m2j*?wq@tJ z?V<6Ej~Efw7(nEq0kZGR^ngT0X;8fj35XSIz}hALm#9dDz32kpTOsk^%>;C~4){DB z6NWnEFnfZcJ_<#B*8hwj$l2Hg+QNWkUk_;Zz1dw~qLLB@>cqaN1f4&VqmlrgB?qsw z0}Yg9fXAmZV25YDxD2|H?FVRNdolw9cqk8zp)%YLz|G(RPx^V`hZdBI) zjG!Q-R-_B8W9*{hfL7o|KnuK|-8m{1-6bjou;og}Tp1Xe>qVGLiZT`~1|M;!@IvJH zbhS)I1tuZ==^mMk>P#;WPA|-4)D-;)x^sXh19a;KY?Ng6!RhNW8O7?ifbwh^=rnzX z7wreZBPYC#^#Y*75%_ySmwIRMWgJ0LlZ>v03t~3tjt`jG_6Rkg#UcE?&p=CY_%p5` znIjERQxCEXG_20w3u?b-JX!6`5cWc!0Tj#}EeA>v(u+YS8+-vv3t*83#c~GA8j$Xf z|Ns4OJ_6Fs*;p?CGQ2i3Lk28$4PC09q1G?M1T423U5=sFI76ivWa0w26hG9&8n)(o z9+ncJ3=gp0dbon{ZhsbV%T+oc?8S)yP?gepvLqEWX96kUyKj^-y$(O-%D~uN&(b}8 ztvsWmj;adi*yPu0Xsi7~ASGYL{}Ppo@D~Z7dBP(S)3dV~CC&C62j%7f#CjpfO7;oJ zsS3FX3>|CPl+CE^3{5TuFVv3w```T|iy7=*38a+}FLZSN{|8;Z)9o*C%ta*xG$&~v z7!F#;a3YK01>gSZ3OS7S(V!9xWLU-$P|LPNCFg&MN>1<#H_+VK5zus+OBPcWL&hFZ z8}HnU_i~Vyy)KF`!I>s3;{e2jg8wBd1;H;^4ou&b!>Gs|8QyZ)^;Kd)1u}4_IonlZk8-&Bbvti93H-IaOc+hGj$k}&iKv!%x*UK=J za=Z}a`v1SvU8cKUrn^Li2XudtFp?0$!9)0Hs@zES?OVPG<&Kb~w0a`rJH5c|OoiIGEU!J=0Ht z#6X*=U}EWerhm_4l;r?ztqOZl^n1EYKBEE$Xp2?Y3$NePT|hk0R;#cVO24P)0J;UCK({%41=}Kpb_L0u#)TON zXZnYHG+%D-gZPpIY!S@$jJv1D7BEUe1{@EponBkOsE`7(2Bu*1E^z4rbt6b7;|ewh zJV9{)?;en45}+P9WK=5af5r(!DhDn3U@T-*so$^wR5^mj)Jni>I#obDbkO)o;EUC} zL1rj)`>3$MT0zZ6cn)cRdQgyjLuh#stoa!ND~&-7x9%L3j2HHYK*Pl^I6OZ71KpBg zF!{h!QEu46@m*ggO+Qn}7~?Vpbas%7iimYPsBc;N;w7jJ3W+T6RAvWgC?X>i+&6!* z_uqfe+42$rz5O87$6QoW7+)|Qn4VL_C~pl`egss065#)fo3rzf;U8$@pygw_?U5#{JVHOBf9q_f79EVRT~LH~m}*qd4QU z>CZ|SJrF%2g-z2fOBv-D_f3x|Wz+?AmIE?UHi6S1)G;C3r_U;7l!m0NIh&^MDP^>T za4u|`{->1D8RX2cjDpSJ)<_+=aRZq;3CmE}jBHZtw&|H=jGBgfK!vBoAqhwV$oiiV zg1o#e08tzJKx^aahszkVltC@ij02#Rd5~WG`mNw#$ntox^z}c`?NNO1rU#TWDtlZ0 z{`VieTo<(ak|6+eo&{)I1>^sK63}=?S08M%#Wxof5yozRmK~rme|{Gi6@$>@E-D3} zQHD+z6_XbS?oZ!W&Zx>X({}pPazc9C^_m4N-RJ)syqJ8Dfnl=4e(_L~-5@{3 zfcF!DTj&-HrMlfNDj02aP!S5B3vb#2_Q3|mLjnv&2VgCA#A>R}3Pyj>F05{U@M@|L z)y@nrzJB=k|Nj;h2GGUQ@%FZz~z4SWG`MFihvJVvGi- z!yh133|pobRzVj}3Ty$*k$@JDgS3I>1zyN)ntq{*(S@br6a&L_iE2hQ7C#WnshZJ~ zv2c1%HKQA2*7VEOjQWgK)0t}+y%@Jm-`K|}DZsi76fZ3BtNpf@*D!u(6og*%=gbfc z>NUTp|GPOq;W?v719Ccq?vtEe)xcQ9RIqCLy9P!z#vju~8yQuUFSCJX1t5DiUx2oG z9sKg|e|PDNaLAs`_b)b1k7;By(X4?egzVXT(OLT9g%s$N;@TJ1)+J(~4V(W<1$uqo zzX+MWvym~ua4`>LZtO+aMn*{P0C%K9yWeE}&sc!$Itgf#!mEj~oSA#&zsXOMLYX$N zm@eJS*uYZw=^tbx=fdUF_ck-iF|M0_rc8(U7rlx=tHos82WK zXz63nDAW3`HcX#gr+arWs&Jll1zq3%;+X67iVntVCQsMtUpp8RdDGk( z7;Lyo*}KoZxa~4Mxsx$l>RdPjLwxiG#<;^aTBY^f=U&9RfVGCXOn=eIm?ZkinSr6} zM#FFY(%BGY-REA|O^@$lY-hUWI{if#qde1A*Xf+yj2fcdt_%z|`X$%nA>judWOVCh zv=!ay#K2&qTp}E|ff3X_1P$kHT0VV7H)BeS14t^BzjZojA>Fwbh9GVce=F#8j_z|W zltA2K{?`pjiA87%w3jnn^SJOM9sUV>|Y?sIW3H%^zCz-R#KA^$Iv$w=7;Qxy2( z?hB}*7s>Vv3?P%6e=(N|G*$|L<_>B=$*{|jfuY+?0VD?v8GID@)G^R;zvp7$-QdPI z99#?x3r!^;S9`RmFmN$2AcpQ+R0Oyf7$Etx+4czN{$KvqiM9+3SsX7k7EOOJfl*7P z=qAUb8Du<8VzEB#{r^u9@q3OsR8J**in z5IsuY8nM~N%D}+z!ukuyhZ+#ue$9v2#+Jde4dTN|SapJ~x_)u}Gf3x5h|XzHovaxm zP@Q^Mb%M^Yeo+k8$pz7A1l7rrAp_AVd#VAOYe8G9UhsdOE=h(nn&G$5Lk z(y(gc1bK1wCy+yVAl79;buwq@Ky@-<)yW0Y=?>P(2hqs})ybM+0M$9K9-Bi!hp4=G z{1Ig5Y>3W9b0Mx}%h<6Q9IP@{SatG%?5v-@ZYrY!j~!GGONPJ}upXsrb=Yj<1?iCn z+a?UL?baNKZR{C8z_!UMV$}#*@$+K)2aq#GAR5b{8ksUIpdRGIsuOg^#EW3CPJXaX zV(I=S~8!NE66?8`T3pTJuUWmq{v%zl7aDiz|!Kx8-sp5;B??G-AfM~3M zYV?6=6vwJj2oyRwV2y%cje6Qpji5{3z*7dN%CR|B7^G4D{dE2rjPknoWQ zrxvRo5s;os)1zlFDi}|MY60CM2i9VMRf{M{OY1w3$JoH`lXQV<1YJ1?*7&##;=bt* zXD|x0TY%MafYlm*p9yhS2rLk$LDjl|ZX%O_m1N=|OJ2VPSt173sJjZPF$Sj56RSoE zkj8n_`)4vL=*2>{q`n4xjVDU5 zc~2H(qwJgMg0mUrb?;1vxUvVPry8psIgp+U(_?2dDj4@ewM>C&(Zi}m9;BuDHOOPq zVD}k2K{d{SX?$3W&3&M?axcul8kHa#zfOZVatTc16s#H*K{md81+q~YtWkFbRO1?$ zMt7_ll|UNjOrJQ1Q9&;ns$~mI%daAAj#LI|@qab_{v1YmV?L;!128>nvFZU0;k;l1 zyDu2*KI4N^Asz!AMhea-30O6%f-Kwm66CQ(V2zR`P>rDDOTik2p&F-eoXaT84%+K` zoB^WNSRJbN49s=M3bFY}9b}0#*b*kNCAzn!KwNhNrm+&MM$q{(FV0PmpU0@6+Y8n5 z0H#F;s}@a=U5(S%%wtqAc7SSm0n>870Gso)Kw3;*fWklz>^$SolOfLg0@FANt43{* z#^=vL8Vw*Cmq9f$Y=@Tgu2?ndfHckmYcvFF)Qf~_i@1F$mnF>r#99BL0AU&I(fqbS9cA#+)RHFe*qaap| zpre3Zq=7ZsKs2gCHG;-!!RhHp9yXsDf^3uoYt#j6)V(ng;#3QmjpbN18i6#PnVz_i zQ9-vGs>K1OMGLDIW002m>FX9UDj3^AwRpg^+|9-2JkV_C3!|r?01*W_Puge##C4!! z$iUv3fK{I<$f~DLK>99&^hrrBfocRDV+Pjf4AnTjaS@|1`wXz!D`2(8;ZU`p`yIe) zzvWmrlU#-Nd5p+h=i+|Jg7c(m8?(K(oC;_G=2CEiJkX;+6 z*DPjKFfM><$$)9$$Ew8&q$TAsC=Bet&U00UXhbYSIOd`v&+y_*A$WMc*GEMnqhPx; z!;96~*t}~EGLPZ$biE~v5?aTy|NYOXfH@!os|L^+R4?{UFId7TS>Fs&-vCpuidDTW z$bzaz|Nnzra-6}Dk%8fOi;4uaYxKeaWJCwZh#r+cEDQ`U?q|WB*`o3TbnGp(lVk@n z$Pi>u4_N#-!*q_Ni~^Ehvi|+gm;fVf zF&qpGFWjN3To`&=R3bPS7+_5p&}u^w4t z1CmBJkj9JCW0o_@NKOIix&YC&1*FRus%!eh<&0vCt&y zlA}PUIKiUO17x=4eXs{X;>Q_0(LDGk{ontL2N1JFSQ!{z%tkg#fE5vio*=W{-uwT5 zy7LM~NrMd_jV~Y?T|gTBku^FXY4ieVTsXaF1*42)3P{%nh^`WlE@r5%=?7OZiZO-W zn|^ZzqjbFlNZAjFvLzs8+tZMIxB$s;ACTdk_rN{`i63Y1Mf2gAw159I7BW-~S95h_V!rvUaF4a3W1WG90uF^2N}0Sk26%E`EU-%EDeZRQ$S`}Bbzk=$*e$-LwoQ1|37{4Dn?1e0FXulh{huzjqg(+ zZUsBy0FuTakVeNl)8DRQlr~@iX|sW7`vTIoIOQK``!c933kIzMhK%d9sC)pK@Z#%q zi`9%W^*d7j{m<}#=u%;4V0aOZY?%T(A~->p>%Lfd8|-6{_;H3hG#}@H%nE>*6#_Dg z8`-P?B(p+64v)S4|Nr#Ms~IH?6+jweAR1dh8uuq7`M3c|V;D%I;O*(MYZ#>^uO$Eb zpOFF4wgsfE7^-c0;2K6T#-r0S)-cM{cYsutKvX>esZxik0te>hF9JK`w%34 zoS_NLhc+OyS|DbLfQsqcNk|SA;DA>ikqitB0WWlK{r^9mc`c))!H1-O|1+jQG`fH^ z_9JU_Kq}v(K#q7g-DfSMjN}rKt_2WXB_LhSP+ij-*D{JRPMtnuEu&0*1W45yh^i$Z zRo@el9JK(+Y|sIWFFbF8JqQv%&H%dF1G&EA0hzS}V%8OqS*wxFx`1R>EXbXIZ~Xs1 z-FO|Nq``s2fB!R%Ks2&&GBCV|N7l%|iAYCrAdMTR*Q{fdkt_k}x&qN<0@5W6)ir(N zIz}<3)Em=Ju49z0*8nMd0#TL%Qg%E6$%hF@hJ%i*cp-TM>_d?FafU9mD7=#Zns$Sj zH3ei=HL_U~kjzR1IrQxH|No~auV<7rm;lnqvJ+fl9RX?7N7i@%Nn;X7W8?HS>ltMv zT|l}-AiC~=a^>TAh|{M(T+b-RWO{x2&-IMb^*`eO{m)Q=Dg)J_)1k`1iS!0i)eE|y z^To?+U>}0Sk2Cb4`EU)$EEA|%AcuORn1$rfRFFgGUi<%l`s59al7A!SfXuo8F>4Pf3U@~%d2k0(6c&Qa;=TO;|8(UojFQ3^ zqW}HRxB=0q18OjhGTRf5b~d*T28>CM|1B@GKe8Z)38L5|=@ z(TL=TDv-v+3)9bTW0aOu0ck6NX!`^5;^7FW7a6xRiZO{^m@c`UQM&#{#J~R;Ef8fg zpaQlWstoK!2~b-Hn%-+brk^|yjzp07afWQPNbCWbwE>a~YCw^wjcis0QY6-b%&I;A z|Nr#O+ZiPd9Y7kVKpf!%a>V^`h+Dyq@IZ1z9Y~|$`RRYRGfGQ-3IF#$V-7@{4k$<` zL$yse+yUtu?f~@-L8_KORDl*Qyl{uA0vld|WH@N+(Tkbqz&-?tA7_w5^I;6gtThm` zWI#Ur9fssk2_zpjf*k654%9c?!6;cT0Md8>q|rwu<;5n1E*F&qSf&RpDt*BYvff7} z;W$GCn%!r^{{7Fm05YOSB?VM^h_j2T1%l!}RK%i~1$zI!L5jHD?@*B6K`5hezP7gs_dexCkeC!<)s8pIv} zCI*J%46$f#ei;htrtAi1YtY#tFFK%l!C`*@)XIaVF3_YoB?zl8gd4j z3o=UpV%8OqJ8VE^Nx_=s7nl%jq;^mM^i7|?i&4ff5Ts23qU{Sv{6h%D`Cun}Kym_T zW%moGGt=MfVw9F-1!>cPXmbJCwgjqey25TovHEYP!7gW0{m-y~=v854 zV0aM$)eE)~bm0dqoV!2{S_Lr+Bz~MB1U&h4fNWtzXlYS-fMm-gkVk`0PQSgEQCeFJr0obun~#dmiyeXR_;6A2 zfLQ}t!uf*tG424qB! z${LVk^bw}CfR6!%88j6n+XynK2P}S^Vfv1Ji~^D_AQKq&fV1!&kebH<5Qk5HxDV6< zKQaC1K2Qrh091iPl<|PVWI9wCIPyVva=FzKpceRkPzxNSQ3Ik8l%ihz_lLL@>YVudaQYEh{G8T*3w2&e^qm{HQ;g3rJI89N{vmw-H&?}HRF3y?gx6cjQCr{^4I zl;Ldg`S(AI<3)M?^ofTVrF9bygZBg;$T)y72wIi?|NsC0;uE0e{A+KJ!6)8Kzj>I^ zNRkm`?+J))-#37Z7Q1YAErV?sb$=)&%5CM{WktI3_4fAg7=%ke&|^ zJ>b-+2{Ur`QAQ(4dyw=Gh%`7!-}8jp_zWcd#S_%@*b6SVz!_ySOxo}mqmkrFkTefO z8k_+=VA3@p={S(I2t*p3*Z+Dz4L^R2(MVeuBrOAx2A3F{Jm7J^2~sJ~04+1*J@IC` z%5g>o$rB!+0Sbr)aLJSoGcWcyqmg7SNZJ4*4KDFyVA3l<(ncU@3y3thaJ}dbbSx4JK`Og3(BF4oKPqA`PwstYOlfCm4;y0zuLtAZZ_!nirqlpeA2D z!Kfp~50XoO$oah32$K^&$*3cF)(zBD0LejX!5o-$#7RaYu_lmo0Z1BDsj9%_7J#%m zfaEGbay=^GYWlt_)Yhjb8I2^ry8ip0(EyPKSN>CA(gvp(jU-orqfZh1122E$44W03R~h%~s>c*z-R_a~6_3+I3TGxk8F!EMoYn6&K~MkC3&An79z zX-EqfCfxy&4gyJ^fk=ZJ(;uCnhF=CrvxB7XK%~L#^kpzl^l6kRyGI&FU#5C}( z8lFxU6@lX}Dxf7i46O%Bc*46+Fu%ByFrDcFqYsnao9O`;7*j;wxG*%o;Q(y}6X|tP z;mBeLc)_}5`pFB7CZJse+X58GzSN=GW8XgY_gi4{fiJgVf2IAph6K$SclH{Jd! zqcqdHxalz$4-~O#wg8nE_S*Nh~5}GJ@Oi(w9S-QWcRN^HL)B;aviEK5?$e-`Y5YS86(Eh;*of%NXvFYG3QW^(Eq!Mcn<9FBcpwi<{H-U)U3h1A4<|KmYh zp+H4KwDB3^11}~=Av^K^ikprMf>#_F_Fr*i2)OFVuX zbz~5`>d5f$sw0E<6-Ng9n~n?&(?8y1l$~~qk!3pHEylQdgKLfqzSkTXvaUHYv|n>% zSaQvg;ovn#hI`i_>W|%UWcYo}kwN0RBZI7cVy_f?#Qt6 zx+BA}>k#!IJ04$mWMH`A$RK;ek-_SQBSZKNgd9j7gy-IHWcYl;5wg)U>wks=a{Ytt z6nWv>jK1w;S4y)G&i-L(t>-JrXyK@)BaFW&19=n)hRV;e09CWl{R9f2{hJB_ptDCn2ZFuWA2!|p4xi^aLG&t3KWQE@KK~;`BLp8Izd)ZJc(GQHil?y7E0nPsRz;bMGY`y2mz;)M=!R($R!@v8E4BPKIGW@;k$Z+|tBg2!sjtuel z92u6}b7Z)E-;rU_eMg4idyWi0?>RC^g4p*R85Z1gWH7t$$Z-CiBg2z>jttrN92v^* zIWoB3b!4!3;K(5Uz>&fIo`54m^aDqRDGwYOZa#2iV0yT{=^>*(WBqHNfB&0p8=kl@ z{4Z5~!R!0)|6&lQ`N#iKju-cQ|NS>QaQH=91WO? zgehh=I&e7Pg|9DYr4>u-ffD8ojE7&;HT?UZ#rWS8r09hsSdOFR0RPkj5Y3>?F#(Sm zMVVCgPfvf$Xw0=pl93^-``inw|I?Q|W(=`b+3(EoqC5Z;a4fxTpt2UUc~ee|kpZ+@ zX4^m5F)3l)A77mK|Ns9t7Znc163(y}xBaFYKVei=oae{L(Cx?J2s->+pwo>d;KeR~ zkZA({%UHV4y;%BhdgT*FE5FQt3=GHJK$&lnv!FV%qCfY$ZX4?km6 zb?gD{sSVf-TJ4-MrNNouSc?kiT56%r7!`#V*C&FbzWaQ@i#76)?l$N=gBBGTCI$xZ zy8f>P(>0$n$}u)h_jt~z#wiCeyuEIE`Ey1M$6Pt^foRRA9Wp>CSwPJe1)Hrn@gL}R zQ5Def@h`r}p_?uS>iOGFfAE}9iLr4y^9x38&bVr@%a7MiH-EvXt+xtt+FIjj(5ywq z7KGa+z~)C!0GqD?HeXL}`h*vZqDzI`hLV0F^MHgF~P}A_unMKp#A~r^=uk4_?TAFL%1bD@H}_MrVeXsw@l) z-Fv{XwG*`4$@qZvPkxt!SstKs`(JQEY%Z#v-t&slkjY3wC7#KjE0KSZj24{xu6EAMMPFH-xC?^X#Sy8p)-+#~v5WT(v$6Os4 zj=O@E*fG42TRYw1HKPpEft=}auNf5?8>ctCW>n#P0otE&;zeN9^tG=U^_UE$rr&+d zD8V@$BFs=V{oiXwX%2`jdtJb`n1F2IY{zN~)0%&v!=K)UcAo={?=UeifOkHv&YoWU zhEY+r(V3wc5(>=xEuc}&ERPpYKzlGwyzs4@zVQvCmR%b-jW?fW$!I~O5>9ZCKkJ4E z`EE({AO~+;Vwo=a7Muoc-ZDyXT0l%*STQ~JEu*eOlLRz@b7XvIhi4uhu+e4+qq#AR z1{b;^S<_FwWmJ@IbY^J$3z~)C?*Vm8vpin(gZ5gSc=4lrI@>!&Ess0mP-_G-{vfR3 z2U|0t3+{td33MNTw+XGw{Qv*kVFA$DgB9->_1Jgtx-h(OTsFP&J)^?(v+o!=+4q1% z1eZ;}`;Jl4{0y%PL-)BC{LTyv8Q`q-WDAD{nIobb!L^eW2VnHGtd@c+x8lfV+AQ1_WNFY>XFG%Ff z1ZRd9icpcaAdxE|k&lZZCd+w~JrOFh79`RG5;25| z+y#kD0EsX{MR>n5a;|CF*a#Jg1&Nq|L>i$Yy&w?_kVqg@WG_g>0VJXb z6?qF1aRG^ZoC`5o_B$gdyAMd@AXLN`B=QC1!ii9kT9C*ekVqm_WGzU9Ws)<)3qz>L zU66QqWyuTTF*gt^GIX829;BQ7%o?h_zRUnbMU=c0$6Cgu#z#LT`(4>0C1(1j}SVUp^ z<=>2A><>U9|7Jjp0L^-5`~iuaoiSbU52F^l0KW^vi#ao<2mN8xtvBHZ7l&=83=A3F zAlp3nT^L>`WmRUVKxA@E85pvvGISukI1sNo3f()L? z-~!bcBmi0_k+ESKSU?FR09pi*u?Hd`Xv#4C-ycRftv6<%E++>Q0|UI3eJ1OF26FDReb;l=O2!Ix?|LCky2|4DX;= zi~QQ@@r+Dn{Ef~GuT8R8GLEpgFuc&JoxX&TN!#de%|B4DLWCo}*PEq;GmAUp42uiH zYxXSOj2j?zcWeIr&-$Om0B-Skv%Gj)HJy=(Nj3Nd)bO~PfB)m64~Z~jF=u>$igm%n zK)nl4)D$9|-}nYJsf%cmvoJC+z?W?^gW#-})b{Q~@S-5+wGvL?DYb zLjxpM53+MBM85_|KU;-pCg7q7TG}1YijG#)P?LV0#Tft_UgN z$zsj0V0B@53F;bUF=jY`TpU&L@4xYZ*0=mq5A?FQg8KK({}@YCntyPVyZu*bUE|8- z#IOUj)A+UR4$w~E*Je9F%MD-a?*MJ@eXX$rwCw7&;ttTp;@46;4uE1_c*g}0#k1oM zh+^IGq;dLnHYR7GP38aoXEA5Ez}&y6e7X)hlQvUn`SeJ3rXVE`n1n<**xlgpV#^4C z2{V>YKg-S}FBbuF`0cWP|6hXEb7Zk(WPk)tftrXVDiYKEIGDtyD{wGL2~8^d_a7?V z3ktBNvgtk?OeRb|Wz(BDn3P087QRp}`}hB~XBKNl0mu~5vgtcHn9L3DfLekjDl)C# zO4%VtnF?efIc0At*ef4ksbX#EbVW`k;q)EFpfn7+A3Y|Zw?_rk^?b1eRSdjzU;?Vx z7ErIN22~7{cwc0I#lT0}#RP!v1L*Z&c@bPZeKsdkmozB-f_ua+Dm9?>1tyG;gCSl> z>P~myVvL(u4v8>aWpiSoM>Z#hA8bwx|Jj@v*w~#I zc-fs8n%{)L@{5Z~Ky!^s0&{S;?3w~+hOqGN8kLmZLYDvK0=+IO0{pFCKz*qS)@j^K zBGa#PF-h~?D*pHXf4KojHe&@y+=y=$SO|1>zd*(vh)@(*NCB)$gl!r(lM$a3SV#pd z6aW#rRRl820xZ-55t;=S0+pl!8GFD&qESWQbdr(M>!QL_>ioalB;y6!^mZO5M2G0*iZq#ka6eZ{TGzWqJXT2b=f2 z0AwD-R{|Vhd%yv(3M>xsngdAOh%XB)1o2u4L`VxP1o6iLun_O7{D1%dn}h8;0um9K z&dkpw&$kLBT+RX(e*zLW;>!XHae#$5IKiQ(1s37~3+X_FUgd!t2%0w%$OwT5tpW>4 zfK|0XgtEXw8epL{V4-@@Ud+ZC74R*nHQdcLDmhI2t?xkRU7BP(-~?C5?0NtGXIW=R zaDjP0bN~I%vdsvA@Lq#>E*Uc*yt^QtZpH%$?>vZSpCP~v)^`xZv&jg6@HT^Z))^D( zA>5@Pu2sev2yZ%wXOO|c1J>9H;n_fV)ev3*gqI89ErIajK|JG(8xUR~gvSHvWP$c` zW*KKVKzODQxf0%buodbcE@K9GAo|=3Nzm3$AC;K+IM8ui?nw zvt)a#Su#xaJ2P~j?~GBAc=06X-~TMxj1aKMi)#>G350h7!kYr&?Sk;OfO+*V)O z1L5t1@LC|e4fPQ290+$2gtrC4n*!mTf$-WOyeAM|1%&qp!pj2jWHUq#ft?lu;h8{q zeh^*=ga_IsnkAc20^u2D*Z=#UC7m$^!c_q&mCo1z;fXFKzIre-aQD<2Ew}l;YC1rhakKX2yaW)zj}}{6Cm7W5Xm(V-V6xu1ccWG;XQ%y zY9Ks@BVg{ekcvfp{_*B1geay8_{vKzPR>ybuU)2Z&cMlTiZU zt^#poGNwRyb0EAe5MCdIcLl<0fbhORcts$daE8b+u!SiQo(6;$2I1L2cpea50EA}+ z=GAAUK)9fds#(Gr6%d{rSTdsr!V`e-7C?ARAf8CZ76|W4#=rkrA{l2Oyk`*J6A14H zg!c!+I|bp190xme4}@2*1L3ZNa9tq01rS~ggf|JoD}nG@AiN$3uMEOl0^wyqczYnc zC=gFN;|hf51L1vu@a!Nwp86AD*BC&!8W5fmh$o!k0^x~3co7gD8-$kw;r&Se_diQG zqXEKu1=@?6qaxAx7u2%GF%{{5fC*o5S|x=R|4VLq=VAGNJbBY zs|S)4%~%5ADL{C8AUq)m?+S#+0^z-Z@V=$NEavY4-AJD$n!$1k?7%x|;Cvzj;hlr< zOdz}i5MI3xgu4mCO@Z*1KzKC}-ZThr3WV1I;jMx2sz5x+j3W?U4utmr!i$6O{y=yE z5T3+ou+yACJdq5OdI%S^={8Fw!w14sgGi=8coGm^4TQ%9;)!NVf$;vMf_=CK!g~kd z9f9y3KzMf`yh|XSOvV=o?+An^a;6^anr#rS$r&(j1%wv@;mv~ZN+7%*2yY66R|ny3 zf$$1aVG&VdktLgP1tJ;+QX`x31;X=z@I=mnZL&)RmH)CCCJ?RxNKz&v1j18-@Jb*& z5eRPzgvSQqZGrH9r2PAzC6jRl!g~ebeSz@qKzJhOz!siMfjN=C2ehs#t6n<81R}Ks zq)<8|0K!`a;pIShGa$SU2(Jsolgn5F;nhHRMgZG=bDfXFP!LN+7&H5MCOD zCvg$%ln4+{F2e-E^Mdd~E;`pUbf13#+AEwTmr(+d)B{P%WK4nZ6d=4U5S|c(cLl;@ zf$+XSc;Ax#{m+ui5V-`l@CAft0^!|)@IoNGGa#N}M#&{e`L_?kT>+8Y0O8$%@D@RM z0++#tPJ!@TAiOpRuL8oWfbiBpcv(qkVWyMu03s6rQm3CGa0P5)y%U7%0O6WIcm)ui z8i;3_u>iu8fbecWcw7*kz*Vp@e-i)w&(hEEfbiadc!n7j5Z(g_Zw-WZ3Br2-;T@?5 zaZNKsu7Qo&2I2WYcq<^h76@+^h^Lyd2g2)t@SZ?;br2rUb+9P~5S|HymjvO(KzJb# zUJHchmI%uKsu^n_T#H0lpw(Dpsb*Y(h$=y}{DJU9AUu^DV5`_5JRb<}N5a4VSqd2? z5Z)^YZw7=1+RU7#kg*5CI|q?_a062Q9e{9IZh{Tn1mS5wcuOEW9|&(6h-Z>f0O55& zcq<^hDhTfZgqH*1N!$XP83*A7KzIQVUdJs+`gekG4?rYM65ydwkR_V&10pI1QX`rn za2sr#0EDLj;W0sY4iMg#cyOH%0pUG^@CqQj8xURxgm)_bA1|mOxd6i56F*%@o=Lra z2ZY-LQmd442g0j^@EGoZ?Jt1vR3N-05KlS71Hub|@NytLHwbS6gl7TaZGrH#Ks=?4 z8xWohg!iW&!sUZ-74Cv9WPtEoAiPg;|NdtwXJkNlPawP=2=5w%w*kTfZKcjq&bR{M z?TY*Nzxf|?DOclP(7~g%T(4sq|4v|JV5kYnQporLQB*$_WP(P9%ssHp?I4~)h6jXK z3F2vFfN;A(l9CxyAiP=#Zv%vv58<7G@Df2hgNzptUND3w^AK#ID})yS z;eqygXBlL)KzN!UIfaZJ5T0}_s7t1haRB%(?hc4#S2UXE*SYCh)odl9p%Fu!E zS|Gdt2(JvnD}nGbKs=R<84z9+gm(bK^MUYQKzMc_o_dDBORxE2=4%hCzp`} z;cbHOdLXI6!#sKs=$0 z6bSDDgjWIKU4rm>AiN_G-U0}38-%w7!dn61Ii7%UXMwoF8FwH&(1!Oc;fxOuUL8b^ z^Ts2E{J^u z!cGLSKS0=_;o!L~@F48@7wzF-$MCnj1C2$CWyrh-+g1QlB$iZWlEUV{DRns+ zIS|pOpq=M4AncnU_6Z34EQtLB!afLMt9$|*x)sC@fv{JC*ewt?c)$D>2zw$({KY3{ z5zq?p)=)&8o_?`Cbh@}ElXAVxXYeGvH%O%ggl!LEM?l!dAa)Lftqx*?lf=0f(x6TF zB`N~YCKGQ)%V%eXUO$@`OrfCq0kpcmMgSt%w+1x5_9_G<4qCup!;>)uWZ?N1*Fyf) z|8M*YR_v0o1|oO}w1fQuguM;Kegk2z0;ee;4`?U*3<&!Jhq4EuE&>4_K z1cVLRw4WuC(F5Uq3I-2rE`jhs24sn3?1AvELFBGLcqbsdHxS+~2#@7E*!(pRo(zOH z55hC4hj1r=xMCST5MC36mjdB|jsnOM%cz0y(janEAiM|=51L)hz3>9@6f)L;uVs~Jdm~p5H@(b{t*Z}3?%*m!uA5O1%869 zu>-MfAZ#NLI|IU21F`2o*is<&2?(1H#Qp+dGlAGTzrg0ye*g z1qk~Ri2VV=J_cg*{03{@1!BuU*y})S0|y9dIq1F^UKhICzv zKpbc=rGeOYAc~?uY?eP@%ltrW6$sl2#I}I2%|L7)2wMxpPJpoGK{%do420bWVwXVJO(1s9Ur0N(48&Ohk;nqEPe9mlAodFgI|#&v`oImu=J*G;*b2mk zI#dtDhN@8lv2`G7#6avA2%8JUu7R-s`TzT04@;e&K>PHkKqQ`l*cTw|TOc;af3Rie zKy0XGhd^v-sB8nVp`o%0#D+Rz9*C_1(K`vmc7U+kK4yvPHwYar|- z5W5G$4g;~FhI)b63n1cl{)n34{EGtr>2dl@GWAD5lBZvAgA_i1u>XVh=(8}mfU1+v zAhrU8{T#%$fv|6b*a;9e=#YYp76|(=NPGo^y&c3p17WWQu|GiA^FeG8MzHz9lR+E{ z2&Wyyj$xe6W56U?Ujq?K0Etb2utPxXH4wH3hL&A|+Izzh)E0K)D8u_GYt1`xY~*@fY?AEW_T!`l3xskGiBV+KS) z0!YCY2s;GCJ_BKUfY=`(Y#R_;gavGo0f=n?VXJ`HP{&Fj9IKt-1Cl@Yf(0a>0%89E zoge^q)VUXLd_YMb>?$*4R~cl0qvhO-Ga$v_XgT-d0EpcIF=Pvfy#T^q0b+wKKlfse z&-71*Om0kDlBQc3G3oHMfp+`*sBi?lkg=OyWW;30BLg}o!AFHB;Ke1|>3fWr0MFq6X9I}FLx`#27b7ZMALvTidfD6O_Eh?a6hoDsW zix)pZtNJ8ff=+Vy<}Sm;-#QD_df);fHXAfws*8`T}%ZX(u)i&X))WPuDYN%3>^> zKGU2@-ZAG7*a;vRPLY5AqhmoXIK;z{^*=*95x#D-@eODl79xH?8vtO71Am$`Wix4L zPfxR8vXb?Y0574G3Fz$wh2rrRl^vkq2DK;?&rjcL!DPYn{QF<<9fuJa5(3j1Ety1^ zSOlhvTQY?+z1uszz>=v?8hqEW3M97AFff239Ylq`DE&NL(uzrm>Fm$xwpL6YjL)XG zSuv^GJON)xA&_xKz=a{pCg8s)XbBehGVt(>4l|0OCSK`#f#J;LFefwidQggvDVW~O&FDKhA%tami7QhC(*w8Z=Ukb@ zI2i(*82+pDe(|6F)|E+x(^>|+DQSt^bSXEcxlEZKw(oRf;$dV85S)J8ok^8*23UEk zLcsK|?o7&j0)b8ppZEpX)A++#3k0XDc`z+y@(`SU)`Ll--b2uZ;S;~0+mDxDnHj*U zUI@JdF$CRy9A^VF7f#2Yk;c`%8^XcDb3i595D^b$`dL8kJz)7w3n zw4}qKqA;7)Vai?JPCw(xB;~Il=)&;&2*@ulWWj19Sq)$wfV%cR6UdPQ>@WDh3J~5n z29x;u2CRZtLvXsO7n2%Og5dO6FQ)ZO3U8+Kc{9l|2?$Qt^JWq=dGVTo;cncI<|7v7jb#RJT8xGSUbBIfnMczhbC`}s0m zXR>LXuI|U=%a!l$#8B++#8B%#z0QwGslMFPiQ$f?69bEv6N9st6GO6>6GO9?6T=)Y zCx)$FP7LR~oEV;aIWaJJJ2B{ZJ2AL=J2Aw0J2B*VJ2CWnJ25Qtc49c~?Zlwqc0=fzLOfB!)@l^$#U~*GKp|nKx7vRPnQj3l3^;g zo^Bn;WX)t|J-s53Nl~a7bOwx%ibyx({{Wlr6EB#pr>_oVlIOmX2+I7e6^Tv^(+@;2 ziEt(hfNeP=H2qT`lP(kQyXlHSOgfzZ`N6^&Les;7m~`1evHPM$etK6BQ#>ddUk5SC zaXLfPtPz|p6wIW{RQqPSV=$8y=S4oSRx82jEx}BiIK?2`dV%fsAxs{OBCRr@t9L;j z?gkx;5~CvWa?SL;5lrHovv|N7nfa&h4rOv;GDw>KKa^<;=S*&}FcaVQJz-2NjGR4O zVE$L0?I**TxEVPsIKljf+|%zyFtu~O-~e+2xu@qwG8r-XKAFBSlF5p*5F&hwYxGQD^>oh_D0O;`aU-pT&&e^~eV z?i(-SA5XWBWs3XFdjP`2!~>rYzRp9u?58 zfez;5&K%&o=Ca_X6o5>b_~k#ynis|(T>@P1X1Y6qphoOn(>0WF@=hF;sI2 zT(clVa~12q>8|liYJv-eU^Xr{|M&mpiBHon#xY4Vh2965ATfPoJd<_(ol6W1-A`i= zaWHiM4-Ix=C=GF9cpl=!AQ$e$;1K1+a3RWx!9CiEVSBU_gGG!J!;TmyhTHK@3~dQc z3@hWD7~aP@F_^|XF?7T`F{np6F-Sx>F>H->V$h9qVz7vHV(1TbV(?3JVqjooVrF4w zW9Q)H;uaI*;pO8OV-gT#nx37&6Ezo`9e-J2(YiduQn#goWgp~mt=6Ot@0=lzA#o)!~|I@RRm|R&v=iYALlEf6m z$ax2BbnA|+>HH~7R!kc&P4`Y=GGbbOX?uMN(@Z8N4Z-PB=}g5Sx<8%CQ%*zBg&~b! z|3Vovzs7}6`~tiVf-VgF8izjdN3vQ7PXCt9WXNgy>o4en=6Qdn8)Ps!NrB6ZrJVo% zhxdB(yjY_L?wc4KXSQjb-jl(UA$2;*i6J7{i6J4`i9smYiQ#>c6N5~$6N6jUbiPa` zE2YL%Cx)x3P7ME3ofwv;IWd@~J29waI5C{haAM%ebYig2nx2)(WXmL~3@#Ao{{Y+0 z@q7BQOeRmJy)&i@W-;k8t+k)-n8lPo`9rV@lg6#dVj;>*%(o_6hp0~9kj13n#E|R6 zaNI?O14{DpG0*w;zc+xR^->8(w~q=>H)ki; zAs&Y5^Rt=MM6VwOweDEDk0Bq{G(9Va=>oqJ*T4Ur?lRrwGN22ZpG^16WlCd;{WpDM zE|VyGHMALbHkYZM>D1xretAsk0gT|=r@{M*x*b_iT8x1pn}hkcv-n<+bzunY)|~^| zA;G_G;{pvAhJaqj{{a~hlUx`&OH?HOUu{0%5b$4gLBaH|c}xl(4U=3L5Ms^@-7YE` z%}03nx3jn=2)i&a9}ef=&*JJK=E4vFQT76KK4$X~9`Jf}h!EJc*nB1}z5-{43=fcr z*SlpG6ilC*&!iw30_KBlz1)0^srd+x_1Che84fkm&*d}8*Y8kpVd%D9P~gm9dz*oQ zp;j`(V3G?%*#GMwJ39KDAxw_=xWgGXI3&7VR9IRM?ChE3!ocr(qS^KV==#zU_wa68 zP&fo;By>76{J#!%fhfqL<|CjEp}_wV6@mZLa|)RF>ub;zaKxhoFgVoVtpWB_c$N;_ zam0dw;l;&c$W4L+7O*CP3xn~IfZi6B8y2w3Rl8j|K*wzvALw*ZNq{z$%vW6r?vd1|Zx3cI@8>H7YUu%{7_R`wE#P>LE7w zvbfrVP7m&!0(Q}V(T)OV*v-29Eq0j<46Xl5lr=+Ca=Pz#*Qn%lpMuzy*3H77*2&oG z$>d%7xw}Rsrn?1fPxmdTiOmlVFkk45QOW5HQK@PDUt*#Ov7!4=H<&S9u82vZJ^`#X zM5U%XMkS}aMFmvG_V$3o59%W8gC&9i|3zCs&YA+YqWK6*uk*j&r~|z$6$hWQG2e&A zM5l{NN{RgcEnr0%E3k$qPq&LoPB+Z!9`(%!{#m=Ir0}Qw}KTU364BH)Er9;hk>C9sm#1NEZD|2u0`N-V+op`3Ffbjotxfks9e?WFZivzegs7P>T zXg6fyt++6StvsS9un7(vlCJ% zfW_-yu>VF10k9at_aQ1d&4-~5+yV~0?%$u6g0`-8m#8E_Q&IDACTK2#LuZpqT8Q0?ywc zEvrD6_4ud={BHs0^^6bGT^L^M{`l`d$ok_DPlFB&dCk?k1auiBL$4JGM`Xe*abYqoI(MHyqM2&h6piY@;B7#0Qw>l&4u5`X^fZ5FjI48Z{zA~ReV zUfBQo|DS(<`M>7(pklxIwF5MaLFHG;)bRf$Dg`gHe}Y1f<8@o}FJ}JMr2qf_x1OvQ z;BSri|NlSe=r)Fz9I4<_Q9>N^ijJgzk5L|95+HWHDqhbbrWV?BvU0%3|*AQQ5!* zIw*((6e2IS|Ni^`e=*DP7L_L!pn{Qs;lD9xyQ554H^+-CV~DxOTT~ucFw}$ZzCPZf zGKYzQ!3T68i*7OlLwAjeK!(a>7l!}EEZyh-8^3tA2h^H=G5=&~4Ktf2~t3)v#X8IbK={8AF-&r8}Zs~5Y@7BEn`%WBerC2>vZ;y%s zE7(UMJ6_mBtVQw>D6j*)t`U=|F4HfASgVMeAt2AI#~R9Co(YnFFw=lqayNuvky37wfrw`c)_?I;>wp= zUFIeyW``_&h zIvZ5sr8P*oGY?2UAmD$o2*k^u&mf$A7*y6kih5A#(mh9I4nsWy!}puLo(#P<{-6wR z$qH(hmGDBcefU>!w&&k({xTF)eqt7q(6XY$7qdKuv=_mp@^w&c3~jJNik|=ABKSqv z*Lsi*(25Bx25M7sfSm^_dqM3HNG;xcoC)N>mq)(+|KIH`(t47=#XFvXp_?&_vD<;= z|Am*f@eB;$N~ZfWq?&oD9nZkfTYLa42odUL?sQQR>2_x6bWxFb$sNzYP>-tM<&QW9 zhAac*0sE5Y;QVs;<=_9U2TDXiMG|D#sQbhViSK{^cYk=zWc;n$o2PRNc$B}JvD?As z{{_%=2PbIow)jeKi^>*I)!*wU@InnVFxLZC*nBJ?>_vSUGiYmU7Gw9h7txHM*u2u| zqM`wd)GU~DKwCXPh1`p0&%n;{$L5@_Z>Y`zX+m;Nwe-LL-NjRSTU0=u)BuokX2^>D z1I_h-RD#{}f(h=Nvkd>HzprMJ*6(+Mq@kB5Vi_1f>8saSB;dG<3b;P{Uu^Tg*y2U> z0k9g4mrG)&Th=f+i@tpdc4yd&zyG^I2T??TO5*7gYnUYJ4L~;)Re$~azdJ@HBLg(2 z5zx)ne44S_p`iQRF-S4W))}Kx&>5qW0Sd|UFJznk{eR5{QV(vFYk&;1fNWg$EKlSnP-~aX9CtgH>(izy(t=~#)QGEIV6n|Zx|NhTn z2xvad(%Yi41at)eIPTt9Ffj0T#;BBZ#;D}HFl_)I83O7@X?#1(0*a^KP=DQl#uJj) zkGH6705voj)EPkcvVx9%1ts}oEh?Z>%Nbstih`8d&4+n{yU)M)`E9yS|KbBLZrlLX07ts{{}&(lU(A!m^CHXwoX8bGb$|}YR&So>H}x_hFZv4MwE$G} zoDZP93@MqJkZb@I;{S`GiptS!;C=Dc9AU%hNCt*(kPR{+FLXf`fb_ne+wFX!^#FfM z+Ry+0K?c=CtBCwBJ^*qhPr!?9Ncwvs85q(!T~rFXoli8sU@H;xDB)>-!Bi@I%tfW3 z?lljHQhW^>&nwV{*>kMm-~V1nt25xG!T;%n{Y=83Yk3)78iHJdTznpPQ2|}S#PCua zn+)jKx0in-rr&K~l3;lp!N4$mVKb9(ipq-$6@(A>MZkR6eWWu*r6k~m6zE!Q@1Ev2 zGRIp~BrF*i_!$@&LS8Tz{QIAw1L|2pgYI~Xii#y9|G${F5ERrs;C!9~v&l~N1tXG8 z?ie;L23>QFY!j$|67r%a|KI!)yZxB8)*AP9D=Imm<~lU*2I z>i?fUznMwYPU%Gml0maD4EhGT%o^D#LSTdL=Yj68ojg6SiAg5>j}pQuP8cT4LpK3* z-ebs%c902YKu!TQGr-N=3!n@D4a676H%x!n#3Wol3CZvqVd(xeK{s3k>^xbJ;SWHD zi-Nj6ptkfAWW!@OKoTf4`}{BN$x?rzfn-x2%qDdiSoEI)otuCh5~5(MKu0}fe3?9b zRx^`K(gj6CNQl9VfSXW+ZUX3R%8(b)x&QuW{6KOZasqlc?;mJbKl~oJv_J4*`hiv^ z5zhi8F*?FPZ~(`0d+Zhr8SZhq!wHQm>}yHHO1wAr9BT>Tnxq{r>WG(De6h zOyW!pa?@oxm?Ygx0$wPgyHE}swA`SpyE$;UaNcaN3)vwqEVv7CA!s@i7PRwTVYm=< zUTHwsix6n;L=D;;m&reE)1l2iE}$iR>RvOirJHj&rrnoS?y#M__Xn;o`Lu3jsB8R+CUp2k4lS#P#lQhC~3k=hzpqs7? zHoZ0-R7ZkLFNK+IfE21P_O8V6ht`V@B%99pL;Zm$kG0UP0yX(VUI>G%@|ZH+s*6b` z$pFcSGMEwY^7s&WFIyll5Zh<4+(*dbG_Ir*I z>1vQjXMtvU)JWHXl@7=Kph+{u>P3tcB9s^TLH!PQ_&?A=ddLn}2Rr;Z=;G}F91gFV z4tDtCYhZ`_+=MuM0g}V3o?$o~bS8B`*b4(Wh-*+C-UD;^XJ44ZEnjpWwg18T+hfLrk#3y`w!ms2RM`2WQ{|BFw&_$LN&bnAiAAV}L6)&yAsx-cBs z1v+3C^d|rNp8+;l5!!k}PO%fFfLsD;f`0P`mn%HiycrlWrmS;jczNq5q#eDNfq~)W zCT|7?lwk-^I~vpnr2%u$e@I`8Q*eM}NEDcDr(1F7)xo<5Rtl~kA3>MJEInY6|Tb@w=aDgwtDdu_M4vs2FqS@;?U3LPKl=?!DDo_LV$P^cb zEQSow0_ZG;|C?R@|Nq~8{{Lo&|NsBLIJIJW+yo{G#)j$T6POf?`tN{`?F7|f3@=SQ z85lra2>Z1coBB<|McXEO!~@C+L2UPdVqp*4|wpic*hHlbN~LoRP~s?bt02X{e5=^h8Gsk z{{HXv<_PRQ0bbX%^2Y!FFORu{jGfZ!%n{J(qoVU-3P^AxNU%mlpxd3L+k-`$Vwb0Z@;nKMD(_(>;R22yvY6e_kVMRhyb*_(PLm>C}Qe{3~K~r1WQZ>Rj4fg zjl*B0%mnxFp$b7`#K&7yK=-48I+e#;R6v&lPQAt?&L?r=Yh10wywAP{7nP1ibKh`1e0JAg-V~AqC=uUgs&G6E49wnQa7}m-vLKgG?VyIN% z;{X4Kl>9KPBEvVO;lrHe3q1(oVr1oG7en6LKyFW&K@ts7KFih%TPfRtY^ ziaS6xng~o8$VUlaRVP5IGC*nTMZguXnoj2p-Nh%e3|pdl~ z`^1aYpzh)cuwR`)pm zF{oZIQ2{Mt7XfuZKrZA5DR|=uR#3kRi-Kz>|NVct*%36v|HA4N*tLt#pt#l;;#%Hb zZxN7dOS2&949SJZT~t6#Hqbn{&dYR128Lc26^(%2;s)3}gT&{h|BE^5yM0t7AagK+ zC&7172!Iv-FXn)VW*`6e|D}c_1L#<1f!^kj|Ns97fD-pPXbjvw@$Y|god|QOaJREa z_c=%+1o<+k6B1kJ{%-~V24O$BjBeGO=;9aQ%8ZU&hh1}n-%+9Acw zItK=ZZfB9sW{@GhEh?aOD*<637o3MUaCY;*|1Ucn7#MmtANcqGKg3uhQ?LB{|33^g zrwS@VK}%(eTR>@};l-x5fB#$R50t8QJ5T9s{_yWVXh?AexV89yvj?P3Ee6llSvG^b zG6ht}f|NmOTxflp+X}j)cLGYLg^VP;aGL-B|Nkv2AR}ROEB}jmy3dC}j0YQ2{~u~j z+GL1->p>GoEh?aGwXFwAWI-(l(9l%C|IKIq{r~?W9@;K_Im4cTp}QF*1|CuDvvzQ0eu6Pa| z7I>)uwiqM^wph@9`u&+q*{Vu6|NVbC-;M#a5KaLU)Svn5oUf$uUvp8>05R`?;&^)R zawcO%q~eGF7O0*G z3Y1bgP|9=O(Axq&?HDE5MK(;goz0|Veg4Jb>;L}0RImlLb*6xujhhXS6HiJLqDl0b zzYZJ&y_-StFn#k}CdGQN1F*T}IApB_C@lZO((Iomu)82h7GzCti^>FSNwyiZX_Nc9WZ)dmbDMc}#>soI4a{cI*qTTjpY4@q_+-OdJ}`e%CdTqaJ*gH2E)WqO^j z1pF_C8nmimdhJ{$1%VU0|NRexi_SU@N{$}&mn<0=y30Xx;wG)%N;$d@s@U7Gl!!L} zW8rVzX34Oz37t%kLxr+Y4C5@Y{8`5)*u>**8c zF$voj&iD`FID@(wu=WOI@kuzE+3rxYSzf-kfCO_!%bw}>OPLhdn?NSE?17m0WBUL9 z87+ITn0RkGs%y`kg1DCBWf{!G9EgchoFEf(K!(7Z{AM7R=0Gfw&OtLO25OYROP1+J z<}*1l9W)1(RyORNE-C>p>&&NnFJKC(PuubD|4U_aPyvbvv&5626b@dP(d(k369B1f zZiA}sA7&7xE#TlSZg^peQ2W2QqZf3;{eMW!k$ncV#vH0179DIS|Nqb6=>%Wx+QP_C z&+wwP=PzhQ7HIWd1E}`^v+;O~3TUR%1XOJqzlc8tz7P2UbVeCeK7i*T!PAfvKt zFo3R?0vW;ZG8oO)i6{R5e`#mNzyK5221r0XyCgEk@{Vl41D%&~`? zPk^QXOi*LcjAufYCObO&LuzHBYKr2_kUg3he z3?v73nT0Z%%N8F4l@&aoZj%XrE2wGF{NPCQ3DEKmlb04SH(E4+vyI;AK2(2sAA|Yp zWb+A5a3s7khWg6{s;3rB&)=gkJ;$3*fKt23%Q-MTPp9VU0<`ec z59rQ$Xdwd)zQ#%a|7Spi;XM*a36VYt5>p^aaCoS0=tcFB!BI#KXL@tJ)`}Trv%}zW5 z3!0kXh*3OH|O!AqD26QS8Piy;GanhGM(i@{|SV5#KuMAX9U zbNyk62O3_^HiQ%#uwvjQM8=ZwWh0u*ey9x7%XBoErBE4`m%eB+-B1~hm&PbEipDPr zp;7`bB@G!EGCa0BGrT+on?&#choOg z#l|N(eN;?drW!y7sz6;CPzLyK{9;4t^z!9QUiBe3^njXBE-EfBpXq}d^02-XsJHk+ z@a$jEeIpUj0ife9Dlwqe&Wo7`{{Mfu4XnNavJ$EVto|XS6Qt2ye5SWY#RD`F!xq@h z09qu|8wJ@34%)sT680aozT|~5=ytdk@CNa29~IEWbP>HSDiHxMtU%_6>w}hE!Mj5u zAgRwwK?*^Oh9C|R1S!;;K5GS&lm_S$_-?p$Ju0A0?8vrl1l`fmqOxTAofS+ve7pz$ zgRaW~cfnq6nm%zQle)@{0}wG#N&T``51R5pSB}6^&$IUFi7T0u_$EPBf|feIG>7Pp zg^GdJIlg3q=@ys<9!CNfM7trn`Ng3sK}!{1?$MpjxSmOk|IvPk<)Hc2m+cTirnUR0 zXRTtAW^#h^Gxkqk590sT0c$c=-Ve?z4yr64{{L@2!2;@3f?VI}qT=v!hYr*SDoAcn zoNl;|Nm=FWK8S5#4@iTW!=Oe7vclV~V6QT@@0&hhHIuZs3^vnRA&TS-_hGsNWHi_v z$EF`#!=%piX76aE=mQp(E82^x6%+sP|2fywBJI_LWNP9*F5Z?;QPuMkmJBa^T9im=x*YtlN{u&5h z@zPGHy9~a7tO3o#AX}3PQO4B0b9&DPCRrvq2;a;Frp*E5I`D)UvbO7L(4g=^3Rs5* zNN~N`FHbpP$!HUeL?0~roWC6_k@C2idP45JV-suKgnAoR3*vKRyeqI%e zJ1ii|n4WA01(gVBp)hEO#o=W+Hq{U6zz$;S**?8{6O*jCJT^rg5JhGt+hMN$1PV>i zM1B*OGr4&oTejnn__U{YdQ4&|TSFx_h>lO|ILlwY-By5b?2 zV;P}>>Kmqi04Z803o+!%`svQQn3R~3p!|;Y)B8buF(}_={q)-){wW!V`VZ@-tM6t~ zVyc7km#mv!eGq1eHdHWh-SlI-nKYShNJBLJTRUBH50j>Ht28u4#el|~uWWT@$N(MX z0;<~~ExAoq;Dp1}w|08x9wsGa85|nmZD&u21~b*Q(2!ze1tkww28Nf}KcIymnq_dk zA1fi2on15CYcG?Ma|#3VJ{e?OA|QwBtg zsc+Tv&izc9OrlV}^(u(Q*$0>em=1}9H8QdNU&2beUOWT1Sfm5{Xk z4y5y>7)0m$71K2iGHEiELHTo5fMQmYNg2xbTmiAJ_Yji+D6Jm?rS;_?+rViZ#9h36 zddVS3S_g3hmQO!^h)J{lx(IjzN1(d^bhq{LnScL#fL4L$P5b+wf7=02M;F@r`?Czx zmIX~1W-(_m_xh+f9CuN%VFS&9B(C`X|79P{AP<%o1>NYn_aW;BwRxes>lqkcD1)>I zAZa(k(B6R1&YH!DV)@hM|Np-fLel-E3*B-jWZkGvuU`(*enl7>2p%jiwqa;zLDr7s zb_RwQnIPTMkaSmI=sva-9&RjXPS;-kzyANr2qf)R7}`6KwWGTI?Xv&>UrHhA{?m!> zb1!7ws7_xG(tRgZ2;uX67}|Ld+S$p zr5zYbuPuhg5@Qx)7HU9QgLG#g>Gs0VJp-Ye2`!xdE&;`{7Ls-z4DC_K+EL?p|C0az zU%nAQ`0`vkx-Vsrb)!1H5u|&aJd*Ya7~1bGntt#&lccIMNNoX<(jW|_3l>fP4^qks zQfh>xR0Kn5(xU0MCzvEvk1ziJ|K%5cg!`|xp}SvY(e&yQOp^7TAf?-ol+M6V`fTC< z|B!tw;H`DYWso;WcLkE}C=A^zkaeR56z^hCELkCGm%-4U1=jxZ>|byNBhc-^^5T0d zx@TO$ilC=zFuz=Zr1%tuVhLo$(ew+KrXykc z2apa=n2tRV9g&r2Ix^up1VKt&R7_MstG$~~IDm&>{_ue2Pg)>rMH*iGp7ihk%NIQ0 z8BqTf;K_Q>Tsvrfb9(J*CP}I5W}x*Ppe;>V9?*Ruph?CT{41t!IL#zl?_mL%5e1Fs z1a$keyqMkzn#d^C?(XLJ4;s(e=FIS-xET~^I`f?w{%>XhX$Mc6g}=BBy1n3t1ZZu| z5zw?CXcQehx%i@S9;9Cfiiyq=6_5Y^CNJf|PCo*1`hgd6Ag9-JL)>1p9JJM``3OsA zi3)66ju~j~_FIW1IO2MHRK9?Axa>>>j{s+6F*cv%2>4%orPD{Hq|-+w2fkg!{KZvM zn4h~{z~|$^MuJyxln6IJ_}<&2@_~^7)E&vFf6E&|Q3`vqVLs+gk***yXs3N&cdyxrJ&H-A(Bk})2_lXxL8$o+*MFPOVmT_a63q#lo*JXeI|1aPG4flXH z6RE|5jFITBQK^pr-9qdRaV5w%FQQNU{crt)zbP3q7?IHJEfW5MZQ0-dpteukVX)cm zoi!>6FAO0no4vWflinI2?Jq&|oz2zI^$bDi(?!rl3+b7#>7sfD_@F3M&LIivP32@@=&knz?SRt=d!e=zv>tI60YI)!u0sx|JEOh4!-o`1TEnp;N$WPn2%9C>|4C!MN9^=kJlw5`#2yF z&BygiaQb-3vgtkNnI!7Hx{!S?GY#Sm<8Lntk3oFi&B4I%njMx1eN;5UUWhG0cz<&Z zIEz<+X0!SHAiBd|d|3<+1kTy8K#)HM4ust=EjSn$UQApDQlbf3X#rlRrgZS{|CjO{ z;E_-b&?dtd0w57y4sdZ*vUvJ|3ru26HVdXFU0_nNIsrP4r$$8pJV!0s?Je>mB?%l9 zkUkcB0Ay?&JWmat(EjT4?|+uTi+_tC<{X2*&Ccwy89avMm{y9cz4YRV zZ@?9bLbo>$NXH|PBxARO!T$@OncmAFt~XCNH$>*jdz^(Dl)FZrfBUSg7Dd^A1!5|ecOwL4JZ^PuxhARg^@ z1}&gedASEH1Y#?|_Jh7$fe`C1=IQNGc>>yY3>)7CZ6Ae>BIo-5`~R{Eq}oSC0KP~C zw07bJ6C^7MWHI#CLzf8rFXjpRU)%wm{(BSws&x2UzAgb*8{qW|FZEf$ThI++!3X-l zsx=D+21`)IaG-><`^1aRqksRuW->kiatBBSXmC29*V6*Is!N^m|NqNJETE7-(>;CJ zWhROE2d@AA_xf9aA{l&0ZZ}8k$rAP~#uwYC{Rc_Bct8FB|Ce)EAkm*8um!X->`eFh z7wn*Oh!I?iCeYG}7SL|JhX2K9GC)!HBKYET*(*%4;!7?R< zdi(UuD@@W%uWn9nyTYW&xPSVFD@^iC^KVYSc!f!dX>r^1w^x|NnP$D5&UTeahtCGI zV}d{6e~F6D3x*fd9j-DtfflVn%J>i9)(j|5guf^c1sCnG8QdVm^hJjZD)SuQ7=jpM(l@ z`@4XWs|+MFgo5sc2Ak*unotZtGWJBsbdPIH^7ZUcjmO+Q7?CxXDnr}@)>r}72uefY zFUmmY;2)8A`2aMX;e7^Vn+<5us!PC&)u;acZ#lr`Kkqf|US?mClN{j90~|AP(%tN=Blz=3iE$zeI5 z1L}`RbVJLfyUn12m3!j+d<_2g>He~9+fMM3=DzY zC%T(JCmH>}02P5M2GsyBoFe}I=ilb8(Cwq55CF0Tr1iuL>nZ<1!is3ZS0;mN1%+OB z6(q%RckBQDZw4QS!%z~^Eek&8<;8T^fj5`CO~I!_fzHRe)_eqXgSAKi^h_eqd00DC zL5E;n1|2)_qGc-5;R0Zx|JM+w-E_OCq=1h=0G)sUwXm1Pqtm5cC8dNHlyeGRJe~qF zfuq|+r3QXNOo@sJ?06Xd?Ix}u3;DN;^Y7;=#0U11Wyr9nC_4BhqE)kI7K2bVyG$_y8V7hFC6{_g_~ zVS`%g-7YF6pvF}5kAEfF@Uw#&kWQQdwT2lO7y<(_EI_*Vfc?b-^)=|U1=x`fpCCi^!9+y zb+SHK!W95H(5d+dOZTzv9u@EjTb;b1#&2YNTy%Gj3g{Fr<1;TLK|5NX#vY!~Rqn)4 z|GUbGVR^X|gJ^{l!;}gq2DVBkhR#YShN%;s7(jC0D>855lt7$-R~v`%zl zSUAy%fp3x%gW)762FFQG4AGOE7`i7pG3=Y<#K1Y(i9vR<6GQT3Cx)8IP7D(#J2A|t zpX$UgW2zIwlBrG%`=&ZEm``(JxIfK_;n;L1hK)0v7-VNc=&+ei4E-}9L413r6NA(& zCx%_KoEUb_c49D`&v#-dSm4C4WT6wot%Xhu!Hb+2 z&Mb0buv_fJ(74!%;mBeq2KgmU4E0`1oESj3YKarW`y~)bmZcCHq!1nFEp=j;xYUUu zXqgiO*K#L@h~-WU%a%Jad|B?qkhQ{zVf_jxhA%6e7@Sr*F?gW$%&zA6Np{!#Bgwv z69dO)CkFq`5Q%ABL~S(}|&SrxU}OolXq$yPOz` z>UTLY9Np!_AhFwtA$zwI!}i@y49t6+82tA*G0fiM#PDv96NBSkCx$6|ofsbMbz;!j z=fqI4&xzs4J|_n8{Z0&7`<)o}?ssBPJK)4ncfg6^`2i<}fP+p9a}GK&yg2B@U~vP347!J%7#a>cFiJ|g{6GQ!(BTfwRN1Ygojyf?MJ?g|Dami*?3>qh#7}8ESF)TUZ#PH~Z6NAD@Cx*C_ zP7HHSIx*Zj>BJy$%84QDloP|0Q%($*PB}3MoOWXHJMF~KbJ~gF)M+OMjx$aSx@Vji zqRu!mw4ZURXLxhQi6Q!|6T_;rP7FWKIx)DNb7F`(=ft3V-ig8dJS2BKJMYB6a?y$5 z%S9&!uFFmg%9ouOOfNezR9%K-Lr`IL3R;eU3N2zWzhn}dzVRVbqXej>xnZUYL&lDoE)4(6 zS^k^bmWpB7lS9`|v7$M7oEPK~^ zy5e&tMTD#dvg{J)=~2&_!Vt13dd-}tpLovHjgUq0(PXFT*)Nz*BV=bFo4mnsyWdNu z4=ms=!U<4FUqF^#VFT_X?BHT#V0g{ceYm?vMTdofAwDiP+W5>1HfIKg#v=+W3=D@~ zoCob)`+xYU6NBD6Cx-G5P7D%nofvk$b7Hvl#)+Z#jT3{z8z%;}4^9j@Pn;P3KXYRE z@XCoH^{o>F+j}R54-!rX}1StVWd=4n$OIiMxGW;*lc(KN6 zde8?Z6RgsO8ZY9lrqBPtbPTI>fyRpl%jtC=nZyy&EhvTuSWaK}kx36By#z&?({lRP zk4!4Kq|aDPH~Pd>tcSzp4i^6)hwU|kMo`0#v6wUb7kyDM{qiTKAjX32YM+@NK+^LI zPz1gKMIh*iz5nGJFCLgqm;1`}MWVo&;eRPd_lN(b3}G)ytr-|Vfg;*cFkR~#(`v?N z)31GFS|G(_1?oS`9RBaJR|2$ZD;|6qhw+&gFQ-rV&SWHB06H_0rQ1!X^#F1UZ+d_) zlg#w5-5?3 z{C}}dr;CaTsBtdvTC&@;qhQ)kCR6cv8_+PkN%v9hg9jfl1@yA?WibT2@SN`RlW8U6 zv+3V{GC46iOt<{Sl)`v>`n+FE4NM`krz`wsvS3P>Jw56-lZArAEYJlq|F^r$0*z_z z0i8#9oTKqSXiT-}VMfjD>6?Co&)9$Xo2i_!V0+{rCVeKRC;O&%{bQ;IY5nBu#q|NqalfN5{n)P>AFO!{5Z^%eCNOQ^%E-K!k@4B| zNM>eFa7Htj@AXl!2n+xXJ%9(v7V*^xxImnxd4(>SmwGgWbn*IDmT9=P3PcXc2@wo@BqmDASLiJS3M70 z67;61Ourz>EHb^BgIPhr198-D^BV=&srxP}GSE}Bw;$$U=3^9$`TIYMG2=p$Gw8s5 zg%>t4(;sm%>#Bh)S~DNiYb#Mv2nD6q+X`Synrl>a1d2eX086~^m~P6&ti-4|J%Wo_ zmhsv2GA?F~Fp$oa+0G0Z7Z$iM{4ZnqZwAus0nxpKivd(Zb^E9U7@v8uUJaC{Lk_Vp z*zz$lFqFtc#tgu^KOpPoQkedQi`j)6ZZ^ll>CW8DDqv@VmFp~YVR#+-zf7Y0eCUhy zZ~p)9_SXpLbx{!sc=0fKdM`J#s`)Whm~BYbge*jIq=x)I(7N=B<|7i_hofV`x3El@ z{*s#+Qs;n+whzeB(kC~)fQMNN9P40Nfq6)gb|-WC19@i2>8E*^{lQ8C=D9FrL?A0U zBRk!Qmsv@%)S01#Jp&~Fnl)nzNEtYR!Yb8H+3BUc%oZSJU_}`VkPWev1;-5NXyEDR zC7DI1Kjvjl09*J3WYQauT5y?DrtxC2%=BnJW<|z=>9u^!T8stLSMV{b27tm9tX5>c z3&U%@=Kox!oUz@<-~$WP%y(hvcGEyD>mN!_m*r>n02iot zW;!!uY?<%E@E=mvmub9cke*)0&n(7RFnuaNvm#^R^zHo2evAdv*#wv)#PaO^{qJtG zU}Rtj4(N7Z3HyJcTehWOdWisYHeE1uQ5l_exGL z6l8X?0{N&1lu^Lp2up>=lHic)J`C|$<8N@X6NGpOs(kueL1r_s>0p5=pv(%>e^_F= zwGgwV4ajtc1)xldoJxx%z@|6<<||*V)_OlW^q-x2`IAi5EFXcWCH$+ zHWW;MBgE_su2sPXWgr{0T^wxL^nPw;F`1IZNcPP^R@NXsy-t|fnK63$Az^0a`Wdrb z7<#wwU}Rtjd(r*k|Njh$24{w_?(?1PHlV?#3Xsr`%}^oGfp#xaK|%{=yFgUAfK&y6 zgjT?WKDT@H<{QUg? z|BM4LRWTr;2OyynFrfsH&{>es1(;9@NN5*G=mtzE10=K@B=i6#RG$M9n*tJh0TU|# z2{nR*KFoGu=xi?m1y1+*7kMBdokpm~D?qBEK|()Z8f!p89v~r>IZ#!gttc-{K|%sB zp%#!TC6JKJ92aj$D0YCv_(5V{wnD?F2PE|8+5i6;e_%orKteA;LLXp4Q$Rx3Ktd{W zrmq!cmSwy&{j?}^JVyhl&KCVpFx^OuIg_zq`W!K4KPCay>2JiCm6;qArwfWRCo!E^ zIK5Py`8>MDwfj^C41KP^69sPPdX|mKSDt z?8Hzi(9IOo*$B$3paG@nIg-rIAUifnGH+)taAuf3{{fSzAPY$8aVHK4#dD!-`a~(_ zQY}#W2U%Srlu-dHQ99+DfB#>LWo$r*oa3KvAk7>J&W|AV88I-q|D_r)V)>^p zlxFq;*9%}-gSpdxNHd3mm4lm^;93-9I7sc`|*kEVC2i(`j1Okp9u_q9XI(pxZ@7BCNYX z;OTT1Ip!UV1=Ih^F+(~8pejD20u=nPYCw(~RH4W!g8~mM3u+3$TLG1ztALM4fT{sd z)0~Z2Y`U2OvpYB}z^W%8o0Z8meX0Vp23U54vVHc3u@r@-t64z4v2CDZK{ znXig~o3dMwO}oZ1T|9R){1>e#n7&4ZIfb!cx}YkvBR8ZW`7z0GRrX* zOkbtSY|F%8IQ^w6vp(aq>5^*93XI9qt<;#Egg0nAgU%Yf=ZTts1X{T1O z!^K1-xcj`@i>T?&>daP*^3&_onH>-YBXwlTHD0JQPrt6tYzgv=2D3P0$#hK(W~8o# z1<1#6SIl6Vo~FU94{E!2y7F|psE9NlVR@PO@Be?07d}p3qrog8)yc=eP_FIF;I8G& z5U%OW@JY*=;j^YQLzDLQdm7A^jGQZUA%54LuAs%dLaJjSn0S%VNn=_%F&*=*$oq+5I8xzo(nfc7pCkC43W*Lf1s-WgVg;uo$|qj z0mOXJ>-r#|*Y!yNsMludP%vH4kXe!kBw704|243kW`@j``p;Y#N|`<%etDLKf#J-5 z)f%uLD!^n(A=rQ4TsfG+x<8hvhG+CxPoHPVY|B_M{f;5CU;SH9&QJh3DC8y`5F@!Qs!;l-AJ|Nk#+_~62Dyq-lR1mpzMnh!1vi$Tl` zkGC!i87?5g0VE?T1B!+tB8z?Ax-hgJsN~4vc%jC|zz}&jizlN36xt4~3=GD%J7fQ( zECijJ*d4&q{d-@>2N#C!Q^p5A@NeX6Jy61JeW>(<@i({bf3KO1zqwhO_Iz+*DCNqM zmw$1Km4PAhwUwnTSV*T6ER}Jl(3v4)PvLZTV`fEAAVGCVXY2q;Oeu6`c<~Grd6CCi zLHa;*F|GegIgJnO1lioq*larioNy#FK=g}4AWJ|!=HM)*;Qyi^v2I?FPZv5AIx}=~ z{5J)0{+ojQ{ofSi@fY^r|NL)0!n4@ot$+(dvu(gzP%xVX{1;Uzoc`UISx)sWLYO_^ zzo-T%oNR5t%DDfF>VRU);_Y-R6J{Bv85gHVm@ua??YKDofC+Oh(~XPM^-Y;$JV9ww zbqAQ-111lE$s=I02b_Y=fY}$oFXaGW*btqTJu3&VlqtTA9|28QFT8BkUhOGNeohT{!6Z(SHb z(F);r^GZB(Vd(T>{gK5Iaqs~{H?ItopAoZYx`jEj0bTv}AU>_kolu5ux-M$>1 z9UxC-#4K`Qc=74)|NkcspZTx)2ONbA;K=4EbY?hnCL`0@nIYxBDQGyN+eJm7Ger1Z=!S;dCBL<}Aq{7hM=2mMjF>5zzdG18Q==CG#!DXVbH+n3as4xiGv=>vjDS z@L$vgbT5qS4`bIaovwfWi)s`&GZ=yxIuJ&$>zjc8q6P)i_gOLPSw3@N_cK9x0h2yp zG6YOUfXNsznE)nJz+?uP%mI@o1)$&q-$Vo^xy`C7Kc(MBH|NlEKtaD*_ zx&7<^|6uuE-=3EpxBmR^^{d9gCW>IF3i+`r8+b}B# zsH}Hkcxm+Y|Nma!8!sg;{+S+b!>ldZ0uufH1#aApmp3l_nLgcyS%D`2Bz5S^|Nj{d zlG6{{Fsm}H*)aW;4YL&Qj?aJocl*9+J}B`r_w#f?TV@fFh7B$ZFGIlQ^!9>Ic6s@A z>2yn5W_2cqjnk8CnU(d-KmYmP+pF;N|NoaUVCJ76|Np;C`~nhX`1k++%VmrI{qOC4 z^7sG$m#aTb-we`wW8?HYw#?G%Uq8WBd4W|)fQ)$$at0`Xnm+va|G&HI&2%|CW(naJ zAg4Hg{{R0B)Fn@sO!u^7R<9S?=)&-l6C?o+yEDDMJ6=kh2L)PBz>E7I|NoCX-0j*D z@Zt)D>D%&B>Jvz|CE&$DxDY!`XdPVW%SWiH*>ItUAR&;`oEo~jYX1NKZ+zm#^!Ikm zLVhVAM^t=*2KX722=@N;|NjmZkn_V~3c7tiG#`|C*$OxBN4M7(;}b6wKuS$EP4~BF z)??bSX?ndqvvPgUCKra6*FQqd?sk0>(Czvn;DxaXXq_&{VHCS&efr7lxN?P`kQ) zKfH_pTlE2Cm9Fvhi4M#n9t|KhS3ZFJ2U4MdP~i)9%!lTK3NJswL<3&7zlXWyOSjht z;}b8MKsFuOGX1Rsv$(_zblG5#?2fI|WgMAh>o*%AyA-Nl3Z!DnW*3H+YG7BKIRgpg z4*@TlQPe|Y>DBxH|93nA#mcw$AXlG3#5c&}r$N#QTS1Wqm4?e_fJ0_ANI?e3zU^=Y zt{(zkh#UO{C01|(d(-Xp!uZ6C29VMeP=xisl!8-vukV|e74Kl-0F9Gikm3m-#qrZW zI5JDtZ#IPb)|Dfm+m$8Y#Uhvh*p3I?UZ6z53DR}~GyF=o*9GGf zFCM@9|G)VFPq)_};}b8gz5D-vM-Rx0kKTcbo+~eRz}27W_BvsF;>G57|3&{d9}s|O zSO(JI1B&QP)8{%di_2EL{qrB1bfK|O1X3aZaz@?si%!fU_2F+Jd3QpcE z^U~-os92oyQVUG)d8q`q7m+2Uz)pqQ%nLI14#=sJ?;w$N<_x%uc<~05zc(~LVB~M% zVPIfrPTlYi_xzf&-%#fp;bZ@NWJft-7X9-(_k9F=J7yMg*8Y% z1SIVal|BQ?IT9crfz?6n6$YvMv&)6yrTlaS7iQV|*Khv+-@&lch2iD*H&C~C`yP1d z5d+HU2bvE$yv)^wG6P;FftX<94s?6%F+TBPEl79G4i|=(J7K!dfGy?#=?ANXTHFj$ zxd2oQ^&?cCIWv8a3p0n$jcAY+A3(PGzJ{eTs74Qv#w#F=Az+QYzDHhm=>3J3JzKiH zHW;6Hp$t-_1M-FbbOBdp(fW2hQ1XD3PtZL2;r0LjJ8VE+|MME^Q*g%VcI63p5ssuD zT3Q_dsTTmLKZB-zL%<7lu=-x#125mg!vvZ%I$r<(Uk^{_)gV*mfJ|wJnF2~u5wAdr zcE`(rS1|8Fed7HZDPh@xG+zK|_JV0X11gF>1iVmx1&GWAHxL23KI zOAoj+H*|Zg0p;FTNETgt_5c5l2vGPvdiDQ5IN7@EB0>-v6&paRT0pAyyh07ZHvuoi zk<@>vhZOh?APpNp8hTJPfWmEu&fovNy$PWEzSe@7pu@CYE&?+zfSL)@K}_EXFZ)4s zZvjZC1&oDdFi1Av8&e! zT53)PDJcP&JAb-^2eYW=cWrPGf{NKU5GFXfpy?|Vr2Gjea1y82c`%FBYrKG^g&W;o zS3s#6>;Mi(c_{``zF?0F!%HQw1FpRM@f@c9Lbul$;}b7Fzd-WkvlsvW?gxu{PXNhJhs*nZc=(2n`2RjH+Z!;k4`~39({~aM9 zegCI#@MadR57z+aFR&hH5p@8hW(!EonWvDj04ISn;P$>cLVXjct=`=Q+KOU);zid} zkk_Hks|6X+a?pk0WhcUjUSFM;5l=wLU*KiH6G(K`_d5N76b{}XEixc2;V><|zDr(q zsQ>*BD(n@&8n3*R0BQ7H@KOLogIx_RX}FQ?|M%qo{~a12FL1#O1Gi5OytDwDci^Rg zIylvVnj_HgJq^0E8`iSg2Qr{$zYD|5Q%?|K0O|zIcntDE$IB0DfB%C+L|h#df*?26 zLZz<4r2eRZq#!A&quZ;+_{57;ur1K?DB?*ysKs}{h2doi*cwowK0^)U;|VV(KOQj z$Q)D)e6PIBcm!$^P6&AMUKJD^ppXg$8@=S^+Im%RG;s7fLBq!bY$`MvS%XZK0h#I! zGZhp<6);VxDUcUgD+5TY2gt`fFsM?kpab;6_P34uJs!NUQAa8rJiorB}nnN37z#i=y=ssF zKTd(V|1fz_5NGUx1uZm91%n+04O%ylrUf8PK@a}_?{59@_5c5X7bf>X#eQ$^pRfP_ zzf|7?8pr`N>tzsZK?IWx!Th}&uJ{9j`4qvtg-*>_aK-X5zJ)}W<4lAW<%H@<^%+@6~U}RF!K@26a+I8!Sq8goe@k61XCBmRN7S! z_nkOGmYYgsXjxU_L-FuOgVI5X}7u<`x8VC6rnJ|NqN*Q1<`-FDHYUcYgi< z|FQ$j?D_Nm|I1o1(+1SDC;~HkKm(8IVCE7KGX~7O0%8V&nJgd^+`vo|5YrmWOaU|0&0@8fSDm6=Fc4<@3(-M@4(D0Am(E*^9hJ~ z1I!cwIruD?=>lRN0y9fM%4aP=Fo)Gjl+8ZUr-aK%%Qa%=%s#kPqgA*u6C%;VEFI4#@gWFmnw^v<}Sl0jVtp zGfP0$Wq_G;KnBNxnV^o-%OEhb2Bg*<%(MYTj}3_F+w;-{MEB-^gfzE<<9`iEr5spz z4oFxS%mkes{*nX21d0CL1`2~aAhn;s%s(K}=U`?G$hCLCOdXKlFM^poAa@-DGh;xa zyTMFQPwM3cFw^B5DE^m1*dYJR0y9g#{r~^6AI$vn{r~@$EnwynkZ2{Cxdk+4p9f}M z0f{DqnJOUB2r!ccq|F!16aks*1ZJ9mM9sm>5Rh7(ZQ%G%0SPODg`a?g#lXxdAW?2G zQv_rO1DJUPB>HtLC?s@1qOZWr7!dP5nArnjUI8=rfS4!2%r_wBJ}^@TWWr`J)93sD z|Mf3dfY~)5;kjVu8W3|5n0W`pYzH%WKu)UxGi^Z3LNGH2#7qM-=YW{eVCESRGXTs4 zPj9$_nL415umUqf1ZIN5=w&;Y z2@bg$FcTb}gwVNCOEx40yDv>@H&_YPMc@IOmK=l2xfxQ@is8? z%Xd)vUkzr16a4}((*+beQz1-H!s!AreXqQ1+6-;?G=2FBnrQ;HY>ZF5NWTthlCeNK zdr{Z_|KG6%G(wPe9oi%VPr!T#cyU+~+CK+%X zD`Abw-`7BvK^v9tu7PH6Kze^&gIES?mVzgXSY95z3U#d$bR^&aNc9y^Ywrv~H6Lim zuoX1(7Vttv^6&K9QOpVg7bQT=&elJFK`pm05`U+2M>8u3EQE+c)E<%eJKZ{(Sydnh zA_`I4FY$MJK{T_HfEBW6ti<2xi$H2wA)*}rK;~*l{GEP1npr{psyNs-P-zv=-O2)% z{3s3$D=7b=_}}SrG0Y0;eJF|{CapqKJWKrV^wbz;g?e|0Vu+Dh;^0yN+x|2IG2 z;BNul-_yJl#QhFxYfB+3wnb4az~2J8OckQ|eQ&P-s9=31268qiE}KA=V0YJtzu@7r zx+}04sy9CIqVNi+iGId~;brX=L==I$>_=X%5CiqJc>-RX7X!NuWSG;5Zm%PtK@pI~ zp0h3tFI~VILA@)9%djY&)9p3G_{0lguwBreDjP@#1IQ|&E1>CGV;KjAEVe9}Uht9D z0WU!5>u_%`xMn+lY5M$FX3_d1mtl@IKJjAv<^TV8n1Bp8d>J%v>f7*g#wAE^Y66Jv z1$Dz;wt|?xb6(bh=_@ZwFF_rJ+Dp#@n+)v}#DYxz1M*BJ$Yf9|J#(hFH>Dm_Z<#_3 z(go9VUaErW9WQ0Ubi+$gxCIg5UOMO=65|suxWE=bbHd+C|NrmU0J4A+$pYU4FD*o2 z9a3mF@bV=jAJ-oP>pSPd@bc0nq>(JpwA^Zt6vuhcSl}gS%=Px309C(FMWALj^?**3 z>gs?*d==PaXk_GqbO(S8u7v3ZbuZ_<{2>I2^C<7c@w_19V({ z-UU#t1+nXsFtS}N$Xb8*_Wl6bH6Nt4yBDPXr7=h=gjuhFV9O$yLI@^1g82tDQxDPi z5y5~1m86sc_SW;nw@<53RT%1BmND%jXZ!ZrhY=X~$MsT3I!_GlkH6K96T7rxPm3B=! z$N$&=@9xq#4lX1Gz%%7|Nno74k!cao`+^YaHco|svtR5LrWbe=orN3b0DqI z;^5i2|NnOwTy$Z0`RUyM{}~@rof%&21v>y_LIy*cGsBCuFn;}+3;~e9T$sR_@UuT|NS5K;^!IAArmZd$5}x-L3P`4R)>c!pmk9U$5=tS7$PCQIdkSr;6jk| zf{(L$Jal2G7btaR2=BJ&WB`kHIo)K8QQ>)!6#n-=Xfv6> z3lE3`cwhL3|NY*GGlx1xxtf|G~XJDts?qZ3O#|>&3^gzyEuk!N&8wxB?O7esMeO@BiQz ztY@ZorZ8`>|8bdxf#V7bgWMGs2E8jR3}#nY7`(2qFoa!UVMw{c!ccUDg`wvP3q#Z` z76zAFEDTz=SQz+ju`v9)$-?mJCJV!@n=A|kw^+cTwdD#6!@Dai418Bv81$~PFr2#r z5x;Pih2hp!7KTSxSs312WnuVom4)HYRTc)eYb^B)eAieQ#ICV0$X#P$(749JV04Xz z!RZyn8Vkd# zYb*>IS6LY3uCp*$TxVejy3WFobDf2u?K%s?g6k{{yRNe^9JeMVd%KZ!f@s~3q!?K z76ulOtH6QDz))%G%utZ(%+QeP%rGI!oaiGg~374 zfx*St8H^Le92g4392h2uIWUAkzNZ)LaIJHA`F=9LyXT3d9lkz!DdR3jz)d3i}XZ5AvND z6vP}D8pOB1%V3scVij2G!qBi?Fq_$!U39@x7ls994h#`XT^JI~92j1JP zmO(5)H%uTHY}l$&=6Q@>4a-~@3d$WA6gnLk45m9U2+VL`XqfK65HP`kfuYZVVL`70 z!v+uy#R(G}7zFwp7!>*(7#b!!FceI7VAwF(fnmbr>66Nt)9N2AcL9fGK)C}0$mPhs zgRw#3ePWpl!-5tEh6XfsAjg6*NUcG)1B1tM7Y2c52Zn@l2Zjs#ARz;j2dM$!gf0h$ zDa%3EFFMFG;IbH`siAZFvFq= z{S%frFeF@esApi~mn)0K%6Y7zFk^Fcj=_U})Iqz>sjjfx+N_1H*&^ z4h#hc92k6%9PME1gpzLXSq^fv1(Jgg*whoJ8RRRFW{{U>AQ>Pa35f<=mV)%bK^2-FiD=LYUh3<`lxAp03ykR0G(191SdWw;!J>419T z6J5X|2L^-d4h#X;9T*nub6|J?N}SgrQSxC0B1Ar*MF}p)fE+xb9$TUSr3VlukR}w) zLmUKhOu!9@L%u9WIOKpeB4ltmq8{W55N@ErAp++e7#yxUFo4nr2n$?yV3+_Zwy!%d zG#r2wR-gh46n8I>qV9sNQ$5zyi_Nu|aYuaAff6q$lt59Io)aIIT2zu+;pxJVo-@6y zo|$jDN&~ZxQAmEiLT+MSr9x_6Nl~RjL4IalNwJlJYhrSSLUBoAda6QlVxB@qVp*y} zVu?a-esRh4fCgqcM!kuOqSMzkG7D|zsAR5T+P4ekA&2d6Z7)&OB9MyQ&N+25{pt5N-{Ew6_QFbb4qkG^AySwi!u|Fa#FXS zUd;TIar>U7%npp(mNPf-^F3MZ!jSO9kwIsT3q!-R?S0#ro8s#)F+X7b!OX?N&mzI1 z!Q#Xc%96-Z&C<-$#WIm)Hp@bmB`m90*0F42*~YSua04fhO8E>HmnY;F03A`KCFSPF|6^dDXbZ+g{)<)b*xRS zJ**R0r?Adsoy)q2by+>@YSs;`TUmFr9%MbvdWQ8P>owNftPfb9vc6{h$oif24=W=Z z8yh#90GlYA6q`Jo3Y#XI9-A?nC7V5)E1Nf4AX_+FEL$>LCR;vRDO)vL16wOw7h6Bu z6t-J(!LG}0#BR=R!|urL#_r7?z#hsT#U9U|!k)>V$6m}{!CuSW#NN){!#S@kmC>-9^*L4agpOD#}kgH94|ROaD3tT!@Pk*%4y1J&1uc)!|Bf%${E2K$C<>L$(hGl%vr(Nz}d;!%UM5#b2{f-&bgeR ztfL|h2cV@3&Wj87ltQ|E(~uP zT^PPJx-k4{bYWm=a;azFX>wr@X>wtZX>wsuX>wuEX>wsOX>wt(X>wt3X>wukX>wr* zX>wsmXmVjlX>wu6XmVjFXmVkwXmVj_XmVlbXmVkg(B#4}qsfI~Ns|l1h9(z=JxwkQ zCz@Ost~9wY+-Y)Qc+%v;@TSRy;Y*VX!=EM>29{7lx8%7lxW<7lxK*7lxi@7ltX#E(~*; zT^N=$yD+S2c464k?8308*@fXmvkSwOW*3GB%`OaYnq3%vG`lcxw74)xw74+nw74+X zw74+%w74*&w74+T)VH`WbhNlIOlbi%`CJ$_w74)FXmMe<(Bi^yr^SWgMT-l=mlhWW zmR1)AkyaN5l~xx9lU5f7k5(6kh*lSdj8+$hidGkfj#d|j8Lci1Yg%0xjy9+}@y9>jFb{B>P?Jf)(+Fck9w7W2zX?J0`(eA?Vq}_$#OS=mL zONR@CNQVo9OovN7gGz@BgHDGFgGGl6gG+}CLr8}ULrRAWLqUfNLqmrP!-NhOh6Noi z3@bWZ7`Ak{Fzo4YVK~y^!f>X;h2ctv3&Wib7ltPtE(~uvTo}G|xG?;zg zFr4XfVYt!d!tkKJ%Z1@ZmkYxmkfGf!3@Y6&3>Muk3?AJs3<=#X3>Doj40F0&7>;zi zFx=^OVffJP!obqw!XVP)!eG$j!r;>5!VuBp!cfrT!qC#=!Z4-Bg<(yP3&W8f7lu1M zE(~9KTo`zIT^Lk)T^MY7T^P2^ab^hUbzw;9bzvyzbz!J)=yhRe>2+b4((A&oqSu9C zPp=EZon9A)H@z+lEPXBvGJP%#7JV)Z0evnEDSa*sHGM7&6Z%{jR`j_r?CEo1xY6gr z@TSj&fuY}pL7?A-L8IS=!KUAZ!KdGaA*SDjA*bJkp{3u2VMf0T!qaAByK;KI-_!G&SQ z1Q&)i6I>WJOmJb?GQox6$^;jNClg#4{!DOT5SZw~pfk~h!D6BdgU>`4hJcAK3>gz$ z7)mC(Fmz0GVd$CY!Z2l`3&Wg=E({wcx-cA==)!Piq6@>5i99Y0KPI{`2uyNeP?@xy zPnIP!YkPJ(iz-(=s6b?7WMJ@_;=&*WI)P!93j;GF1H+qHE(|P;3=AJ;xiGLYGBA9Z z<-)+m$iVPpmJ0(rBLl;qSuPA5j0_AMQ(PE0LHC?aabb`F-AXpwg@K2Wfq`X;3j;4m z-((jC2@rp_3xfbieu@i&AR`0AgUK!ol8g-63>>pv7=%C$nC!wJ%*epNGsT4gw8uJR ziVK4@h(FtfL6nh!!DI4vvq>y@?4l)WTp039oEakCx-ft?T7rDwF?l1CH796e;DI$R z4EfXl&SVj1WS%ZMizP(mfeVAeV#wGQNGZq-28&%7ETCdM4_p`+rf;0hB5a1N45ZZH zfeS+hR2hg58d<1V?84B3q}|}b^mVgY#B7n(fz-x4aADYjq!)D8+>ymD3|G+fgVZsB zt+z#14l<(SfeQo65`@b^Mu;qNVNh9u>I9HFrs;}vSws|(RD&EFu*8KSW{C?!1ypKwYSuIHX#RC_HD@gi5j(oDjh2aaD)gW~c zf0`mI2N@Ca(1k%|DZ-y1CzvdCVX%RUf#e}EWQwc|q_yOs3quZ68Hf+kTC>!Jp#>@i zl80(VRt8c!<)I717N{~1AEfojQWu6ZP%)4^R4cMFkkTy=T^RmAm4Wymtvt(I7(|vq zJOPqtn69{xMFi#rkSY+q@z90A1*!_f2ZdJ1G8cxFWvCGaQU?t!WaS_&43AtGrXU#s zvV6%h7lt)3u}ARqjI0c#RpyZk!yTA11_tm><2TD(7=D1<4jMdRU|^7W1WwPKAayoy zqx=k@(ja3%HaaYKVGuzQ1Bruh%p(_u7$k8}D$H5#!cc*vJ_cfiC9*n@-kL`)3@gy| z?pW@^a0E#&NDbrkiwjspLXcE~bb}m=>`IW>f=4b494jD^0^)-P10`0tFzBpsVenYt z!qBq9g<%g=9;B8ToDn%eT24H2VSvPdS_)JJ$OKS?m0;2R0pcgs1xRW^e&2v*i^yYG z>_px`QVI&v7f6l)Sp~xek6jp8R-$@BWTgv(#!5_2fYdUBivn9D9UzlJ9=k9^Ac=v3 zB4ecsLk$*FLLN`Ao6jO{gQOf}M8#tlhBZiHps?7p(uLv7O4N`9se=Ta6|!=W5lbGs zF#JI?f@hTrgUl*aBbGd#F1L_H+yY4{Nc)+`E(|`a5J3S7;h0q}3>m8s@d#4GIK6No zi%0;HN|5dkk6aj#;|DAT@)MFeu%A}BFq}bi(1*vcL-yWU_W^xDFthP?81PY6hLAYPh1!hR-^i}V6_WF&1!@{EuMfgsu{96klvUl zE(~kX^zK>h!f*mfZwy4QDY80{-j*jW3_px?xn3=3dlp!qa#&a8(i%d}=@ zm|(}uaN3TUfy17e!P%afp~9Y-VVgZO!)JSD25ARohN%wB3?Chs8MGal8TLCeGkkDl zW{`GbX7F}mW+-rCW?1ON%y7VonSs-pnZePSnW5O3nPI0hGs6pKW(GwUW`;l)W`+V6 zW`+qa%nZ9-m>FKUFxN8}xiT|ExH22@hrlZx3dMY7b_H%^u7QA3T^Dv^|*_B0QNHx;>d0 zc6%~2*m^NDRCqBntngxHc;>~-AmPo-;Ni{8Q0>jkaKM|HLDr|9nIY4MnPGwtGs6ZS zW`=h@%nT;J%nXUX%nS{_%nU1hnHetlGBYsyF*8{BF*8*AF*B_8V`li^$IM{h&&*KZ z&&+VmpP9iTfSF-N05ikq0A>b_KxT%@KxT#mfy@j)0+|_tf|wa51Tiz52x4Yn2xevo z31((!2xewj5X{VQz%7`W;YBbr!?_q{2EkZn28UQ?hU!>mhVAjp49p443>pc{4222I z45t&A8MG6b88Q-?873q$Gwe=eW?)WYW?)ZcX7EU51`QlNSjytTwP79PxQj3ArnfC; zQPN(p4wBA5sQ{FXKq+CuIv3EcuKx`7&J0SdlO;i7GV5JHW)y5^;p9US_J9aq*ucUm zX73C#guwzT4Js*0Akqhxv2e(5u!G3&uybYrnRvhsVmipy6%cg>%UJ{jbG;oHAR~-m z;~3sf4_wZo&Be081zdZ2Yydml_{(}shd)^largtMQ(hoBrCAnXl6b@> z7jXQ8VlrbB=zJ9hhKfxt)8`*!5#vMBy8)ti!)_K%J{N?McOb$bpYv~UMTm23Mp*T| z8e)~nW`tEPn;}+(Y<8LMzk@{#*~}h@UQmFGxk7xY2sIky${i4Ca3s4SYJ2XE;OB%wlIqkgtO(2i5sY zAj$=HuyCq5K}>t$1X2Fk38MTTG&DiVUqF||3LiXqei139qEIiB%+rUadp0@u04Z`10n#~Ooqu%%NR6Wa2<=VKF@YY zmWGrC3=9*TAWj7FL1hytT^nqN=#|;-GM#?~izxpBFGM8gY=`@oe}g+hd;fyF!^A-o!@3uH$RL>e4vQ0W&)(gz^Y;8GeI zo*+ZNK!ibQk1>CG?pm1RJ;BcJYzllXr{KFnZNHFY$goMCe zNJt3xaXF&Y#eH0k)4jK{NKTL0$|As(u@_P$uh~1jY%7bBbp(_T@+T-?g6#Cz3kkOi zK9I1u;R8wUkD*}#Qg>x9*w0|+LWMzE1@^&&IrtL-5#F$Yh=V*W=L<1a+81J~8q~KS zQ!^mSAR!$H4QZ$`AQvt{l5Yrtn9~siu?8f610g?MWfO}CGtYjod%&p+Y7WSm4iI6m zJqi90douhH=Hx)+H>_acUAz?K#GYK5OGihi9sXO66zF?T~{E| zpmd`G^^pXWR)EqP(0BudA;)yb6)f_+22j_6JmUiv68!*8bw8k~4PG zH4t{hS{5G08z8py^oC6=JWQMZLdtEH!-y;=au|~3R1QP39Mk6iU`1jvNQ!cxifRr| zuiMQc#du@7;Yt?ydVvr~V97ygO(<;wrR|}#7nBZ#(g{#H8%mc!=|(8s1Er@!=|xa_ zEtK8?q3i!2hA{r0gVHyl^b;uk9!md$(yXBn2Ma)HX(+7*r46C94U~3=(m_x<7D{J; z>H7cwi@}Wl|LdT1CzPH7rRPKGRZw~>ls*8ZPebWzQ2HU1egmbyLusZkh{JiIv;>F- zt&Ud)G5-JmuLq?qp|lH>_J`6@P&yS#7eMK1DBT97Cqn5tP&I};? z|6hg*+=J3Dq4XCh{U1tmg+qKG3Z)gGv^JDBgVK&r+6PL9L+KGe>07nD8P{%|3GQ>2#CXlptLNM)`+NwNEkx}?4YzK zln#W_F;F@kO6NoADk$9wr6)k?*-&~Jl->xX_dx06Q2J6mlyMhIzkt%8q4Yl}%^3-C zs0fsnfzs+w+6YS9LTL{u9So)8pmZjbE`ieZ^-x9^l%5Ku7eMLNPr30XJ zG?Y$*(uGjE21>VsXi)x}1Y-RE|9>u&UIC>yL+O1``XrRT0;TUm=~qztE0ku4fjS&Y zi$Q5cD6Ipf&10bX-w7(<3#B8VbTX9AgVL2yx&=!2L+M#idMT9N0Ht?B>0?mZAQs{< zi&%K&&BS0aJ#hnzJTC)O3{*wtK!hFyLzIDpW`KksRUq@lHfXc+$SFh}c;ytN4t#P7 zQU@}BYJ#egIgL=Ia~h(`<}_5*&laev5+qeEP*qb-yG(z7j75wG$!%w*7j9&c=T%5R zxa|j6NIW0`(lkkfN`Y#0l{4U`iNO&T9_AVd8`R>cpA!dByDARS8afjP2^kO{)Si1B z2Wbs`jB{pSWnf?sj)%yD_#k<$c*r1*1ymeHN5wlca5FG4WI)AXbbGur10Mqe!&HcP z{eLLq|AJU&20;b}hIO$J3t;qxSZ4+i1_p+EP;nT|5a-Mw&cMLH2X!!vHjQ&;kYZq9 zaE6M*==3;e23ZCMhEk|Fgckq*|3f?^1b)Or0umHjHPaclut-n;u$_g2@d||fU^NS? zP9nr@+=-CD5>A8+ct|HgnvTke5Fug-~gx>5W@hlz9`NT#)J&Al2&3F>X%aevs&ubBLt&B~_19+Z9wrN2Pw|4^DM1?+?W zqEK1^N^3)DGbrr{rG21uIFwFGac0oZVqjp%g$h(d=}ss;9ZD~S(i@=kz7%H$GX@5R zGf+N^eh20Mfzl4Ckn{*jAsQFK1;Bx2EG*M`PO``_X`4*fI>{o%cGJw6;jP(puahit zO!el|vre+eF~2i+p3Z%eMUqX|!kHn=V*09+EK<%lZJZh2*f=w!Tmp3{K>ZsAhGkb+ z7#Iqe88#q^`CVmU@F`$sIDsVg={gHTN&#r#esuTD!0w(A#MnKvebs3eJ`O&OB4>t} zB4>sC8kVNqg=STx<}3X2wqj)T%&S6H;9A{IfWEA;Fg!$O?%a|<$aQi~iM zK>E&IVUYrf`&;T@`!SN7MDmfH8PgE2Y0x1J+ z4TB^r29QZ%S6SphCY3?yX;6CGRfx-OU1d>|Lvcw+WkIS#dQNdpVqQALHFDP=X4paL zI4E6r4PwTkYbXiKtX(f#hIaofdM=T^MJ*f zA&!9oT!(*Pab{3sU;t0XFt9p09I%4nk>+4 zjRC7OgAG(Xfz_D-v?dEA?!f8{UY7-0AzQ%e3|_khVmGilGiWm~fa8Axt22Wxl)Zq} znL&$z0o+K~z-r^npbzC7V0C6tg|aU|H9vrA{J`qWPzUlbn=^wV0|SEq8z`-AXS&7W z&cwpN%1}F9P>)4;d%_)-6^!)?hF*rvhR+Ot7#0~#G_o^xF=jAPGtn{eF!3{~GHEcW zGi@=oF!M1BH+x|A%*@(+f%!Uf4T}VeJd1-C7cCxIv|2v4{A9^!rDv63Rc_T{wbshl zdX4oy>mSx!HUc(UHsZE+wu!bYZ8zIW*{RzF*hSm5+D)~4Z1>6Tzg?F7>U#TU_6!UR z3JeUOOP~Y{bPc==mKv-xIAn0y;E};c171T#LvzDG!z#l@!*;`IhKmf>8SXMXW_Zc) zp5Y{;`9>R!_8FZrx({}^hp~@wfN_X%gmH{A17P6M=mim^KmSL9hmgSaRma{CETduV{V)@#Vx!#J?O2x{= z%E~I#D#xn9YQEJOD^Y7>YbR@e>qhJS)~BrnY&ET@Z zGlPEyLWUBC&4v>VR~oJ}tlwi8ZFI~i%H)K}Ba@#d#ilK$US?fphs~~Z#R7tG`yY)}7XCt$A&tY@}^9ZB1=MZBuQh*e@zmmz1&fuA)dj0>Rvgy7)_k@iw()kwcDL;wg7Rqq z1A_+x1B07^k3oh(p1~}G`UM8_43`)_Fn(ry$?S&NC(9p}t891J9O%SOv~%f(hJtu|YESqE50)mtC4zG0nf zQ*4uFR{?Ti0RzJkP=npD*s#rTqam}gu(6KuVPj(xXOn6ZVN)ejYtt&z*`|j~FPlCx zU1SzyUS!^E-f6zZe53hx^S$PW%}<)2H@|9r+x(&VbMv?6pUr=o|2Jo~;IxGRKjVBu~F)vc1PimV!~u3EjeVg%=eK9_4d>3 zSK05gzhwW#{)hb^dxi-N3^Aah(tyQ)!=Tup$zYSP*d z+H5|_T-ZX%;+o|P%WGCItUg;a*-W!pVZ&z2V_R(7YJ1N1h3!wMA6~jcsUc<$Pn+%^BavIGt+HUmGh~L=Oc$M)+ z@O`_5L$F3c{&KF7YmzQn%5 zzQ(=*6bTy`7^W~VFicN-$)Z=EXSmt$py6Vp%|^i{NhXCR>88nMg=Wg;M&_H%51C&y z|6wj;vDjjhMY3g)WuxVB%X5|)R+p`oSg){NW4*(AkM#lTBi1LZUs{{kSlHOuIM_tm z6xhtNS!bhcZv?XI00Tn~0|UcigDnQhhJ}W~MyW>SMjgie#_vqNnw&Ddm};6}w%W|v z{DgU(g`kazjkV1Vn>{uMY>wERusLG`izpL23p*P-2Rj!#4{**hwBKRB$Nqr*5&IMN zXY4Q7U$K8_|HGc)0t3SiMg|5pgC2v`29FHX3~dc_3~w2R7)|HmVYR8>Y<$f4u;~@k zGZq&uu3OxNmbPCkepvjmV73&pl(%%U^tWuX?6jO{InQ#n!;q#iyZNAws+w$6q+bY^>+nU~`4gu{$um_YI42y@tJxy@9=ny@kDvy#pvJ9xyO`VT7bFMT0nl zRD&#o5`#K}4ueSsa}1UlY%thmaKzx8!3~2)25$_$888_78%7!?8|E688#Wqt8%{Nx zZ@A2Gt>G5K-G+w@Pa0k@yl!~U@TuV&!_S7l3>l3$jQEYjjAV_hjKYkPjMhv)&CMEG zZ*AgW;%?$+5^54-l5CP?(rB{4WP`~TlN}~|Ob(bFF}Z8vY8q@BWtw7IXj*65ZMw>I zm+5)ar>1XBznK0p6*p5hGcfZo3o%PDn_@P@Y>wFivn6Kd%^sS)H4`@1F!wZ%Gp{#a zY`)3-p!qv<4ht2FM2l$_8!fI|I9Ntmc3N((w>)Zj&C<%s%WAXLA*%~klGY2Xw^)O6 zBfpK0O|VV0O@>XWO_NQ(%^aJRHrs3t+gz}@YxBzHyA6x2psk#(wylM&t8I{Nylswc zrEQz-WZMO{Yi)Pg9=E+>`_T5C?QdHSJ5f6&JAFGFJ5ReXyJWipyIQ+0yXnx{AP`a= zfEq76_LBB$_Qv)O_P+K}_UZN|_Ko&^_OtC**l)EzWPjfNj{P(H5B9(889p#Dgn*Xj z8}J!O7$_O&7?>G282A`O7!(=w8O)l#{w0g!^gIq$39%`LGYsb#E-+kTxWaIa;ReGk zhC2-R7*1z5z-Fn2NcF!wRfH7_!+ zFt0OjG4C>;U_QlshWQ-xCFW<$ubRI!|7-4P5oi%#<9_2Q#!ro38NWAP{b5VTlq>0^1D2?LF;t>+S38TR?eEfsx?^0|SG&fswdGX`@7a}{$9a~*R7^JMcP^G0)D ziy(_|i~3Dg+pYFkJ+*pe_1;RyI@~(OI??)o^-=3n*8iNc8SG}TDk_=E8`V?h&flhYR#8 zw$bc{*;g|y^HlQ^^FH&r=4;Ilo4+%cw9v2!x7cIx%HqAn7YkuaB}+rg1D3}u?^!;! z)V4OTHnsj?{nwhwCfFvzCf26iW~0q{o6ojPcKmh*cBXcLc42lcc7N>7fkNAXkzoS^ z1H(Q89tJ}@!ve#Jh6@aj8%{s>oW-bqv(Ztb>qh3r0mh-mD~;D1UoyFDdc*XtDZ3f3 znWmYZnX%asvr}gG%_S|gEo>~7Sgf+pvNW(1wvx2EYxT(Lxzz>hPuAb9|5!WQ2H7Us zp0~Yf``4D)&dsjWuG(&g-9Ebx`&0H8K#mAtWO&2Cz+hk?Xt>7kx#1hbkB0vYb?S`_ zjm(UkjT(%$7(Fw3ZS=wDm(hPC7GpkRcVi#pK;t;$9^;9|(~K8`{GpzHi%dBgyTdcdS>nB;ywBBHS%lf7Dduw(ZUT|IQV&h@sV-sK#ViRE# zWAn@AzYUA6nyt32fo-*IgKewr65Exw>uitPp0T}X`_%T8?R#5!I~6-kyES&Z?Y`Nu zf_$66$nb=Lf#I9MZvzHHEkk`n6T>LOc*7LKX2WTQibnB9sYdIKwi&&tH~L^?Y;0*< zU|eo|#rUZ)g9(cXhY62~vWbz2y~#|I`6flC<)$^JTTJhnJ~4GLb2pn~zR3KV`5p7u z<{!-!FdCvR79JKp76BH`7Cjb|E#_D(1lQm;mfn^Lmid;OEe}~oDt5>j~DYt&dqhw~nxhvsrAj$>xB~Tbn%FV%rMaX}0Tax7hBom9f*Z`)J2t zA7P(wKga&0{TGlg3m6#=fVN>6xESOZ)EP7zbQts-EHqeVu-agk!2tsaLw&z0s}Z-6vr&*yqS2~)BROMbV-0Xl?=_xe{KQz_#KgqXB+De< zq{QTk$q`dtGa)l^vlO!|vngh?%&wT-GLth`F*i21GzYaN7n<`}2wAjRJhw2jw6RRL z+-`Zu@}cD`%YT-W~yPzWe!S46U-ScTx{Ohezw)KGquaHE4I5}$6#-2Uuw@Vfsx@1 z*w-os*#^Z1Hw|7J{4x+Q3^&X%>@hrJ_`%S?D8y)r(GH^@Ml!}R#tp^?jGq{*n0T0U zn5;2*VPPScS`@r_St*)JoU6oy@-Eq5Xb|Uu5_KEfd_Ur8T+W)q%XIQ|<@BlPS zV&GvAZZOqg33$9f-_Xvm#<1J)q~Q%iF(Xx@WTPUZ4MzKo{u=QZdl^R>Pd8p>{KWXP zv5!f(Nw>)?lXE6_O$1GqO=C^-O;?)kHvMYKZsuqfY}RWw-|VK@Yco}IbMr#;X7jz~ z=gm1Sq%A@%(k&KRY_@n?Z}H#4($d?q)pEM!Ma##QvR3+5nO4s9(K5iY#d4bE1xJiIXlF4k7 zwcswdp{cWJjp;Je(&NEf_5MEuAa_!M;3idCyYNO4%yLD$i=U)lREVRxH-G*8bKV*0ZcHTR*jyvoWyA zw5hh)Vsk9Y=D&@gt(R?#?Nr<4whwGM?X>Nz>~ihu?WF9L?DyLrxBm=^!wZZIdq9JW z2A>UV3|$Pn4JRA^F=PSP9d<^oM!iPcjg*bGjCIWXEMqKlESoL+EoV=?%xXHl?>CFt z^g2dXE+x=lP@wfP>oS}5Ha~3s+j!bCJb;+WZ)juaVCZ5vJ%NK&tsZ;x@qnSYv5Ik^ zahdT_V+#{uQ$)NH$%iFup(D|1JS z4HkTst(K20y{#5l*;pr8@3W4usk6CkqiS1ad(~FUuG(&!-7`Bedoz1?`&j$zdix&x zUG^{R89qQNZ7~BkgEE6<2GWn{k=(GUIE; zY$j$VX(rQ5j+uNjQ8NuQZ8P0w`pi_!%+0LKY?;|LGd6QG^EC5m=EuyxnX6fZS+rSf zvv_79X6a^GX1UDrnkAc+nN^xq{WPm%R^P1DtRtaxGD*K+RmoV=BN#at&44g?LOPDwuW|jcI)ik+3DKn*{`#IXU`zO#2~}Oz@TT4XRyxT zp8=1dl%a;9nW2kekYR#ho?(rlb(i4`!)1nB3=bJzFuZ5@#!%Ks-^kX;+bGf~-Kf;4 z*=VBCe518SyNym7T{n7a^x25fnBQ2|Sligr*nPVFPZnh-XOlpac#~X{YLiZr=_X4} zHk%wYId5{;_Q+rci(`eI7({j^R)5)d_P1l?5H9c*5)AYINS5s!Q z>1p3tH0n*woy`Nym~*7nxE z*3s6P*3H%vt>;^>wcc%g()zmfQ|r&xj5ho>vNqZ_mNxD-p*G1jg*Npzy*9ILw%Q!F zxoC6W=B>?d8%|qsTUA?QTSr@e+gRId+e+JZ+o`sTZ8zHPw>@k7*!H9Ce_LKVX**3j zb30eNV7o-S`h2@uyKcLgcFXOy+8wsLX!qRis~xkwpuN1kuD!Lrr+uY;yZu!A#r7NR z_uHSfzit20{<}Sc0uzG|69WUQfv|z1fxdyQfww_{L7hR5!7PIn2HOmd7+f-VVDQf1 zj{%pVgrS}4;Y>^ykq#P-tdPZn~{i-l97Rtoso}G zlu?FJnNhFNY@?M%+l`JIT{e1X^xo*N5x23VvAVITv9ocYalCP^akX*3@oeMe#+!}z z8=p45Y5d&yt1+{QpozSRu8FmYr%AX;s!6d)qe;KXT$9x%J57$8Ts3)Y^3mkK39qTN zsivv9DX8n8Xj-3dT5H;EI@5Hy=~mOjrWZ}`o4z&uZOUmTZl-ExZ02a@Zx(BoZB}X4 zZZ_3yvDpc;Yi3W(KA8!a%b07Jo0vP8`Uu?e7e82fw^V{Yx&A*$o zS_oSxTIgHYT6kMTTBKW)T69}1uvllY$KsU51B*8nKP*@*1?nwjEHx}mEFCQUEUPTr zEGJpcvs`6)$nv`7drM|3ek*A!bt`kLWUE4}daGWmrB)lQ_FA2^x@z^%>aEpJD^_b^ zYej2)Yg=n?>qzT#>r#|-bI$Z<= z-`oDSWw#Tyleg2hGq-cL^S6t(OSdbwtGDa6n{Kz*ZoS=ZyW@73?e5#Xw)<|!Y|n2m zZLe-`Y;SMxZ69u*Y@csm4Ng(J?2p-BvcFev|H}TGJ%a%g!x{z#1||bO11SSF10w@F z122PAgF=H^gHD5~1`7?=8tgPUYH-ouuE9%#uLg{UqK1lwx`vj9u7-hzsfLAywT7LB zQwXE57|IxG8d@9r70jGhmfwFHqEeJlelcUhWQC0ONIowB-NWn%4Q zJBP0yNMGQDo z0ODv416~7Vg9!#x4OSbhG`w%fW~5*gVN`E4)99kn4ZZ_X+ml?l#tods5pXLGI9vKzCR$coYFSxWow9MY?YFyXr)|%$ zfr&wdfq~(_fve$c!vd2NCJLq%rWZ^#%o@yYm>HNKvOjLmZ~&r4+rR+a!+m4$(ZI~s z(Kf+$z3o5SD|Ywo!tEI@q%tv_VPs(FF_>t;Zzy7@W%%Ea#YoC%wb?E+dkYr}Pm4~A zK8wi~?<_uB{IGDabhY%dtg~#k?66#F>2DQcTQkFji(vUHC|$T-8j)C!-Ub4&6L~pv*{1h zzozbHK4yVt1?HvZRp#H#|ClpcG+MM-bX(lDcx3V1;)dm2%SV=iR$^AtR`pgbR-IN# z*6P+e)~q&MHvBdWAD9?sFfcIi8VVVT8-^H07{(YT7^WCz80Huj7?v193#aMz9IWi{ z9)P2fn~}E>hcU0Qka4JSlyST44=sLJEU}zuwaDt8m4>y6wT-o-^)~Bs)<Y#G%GW!HdC)R*D*IV?=WI}zD>-XrYYppS>n7`o z*2`_~**vy!vCXwDvMsk=ZM(sCt1Y`7kDZ{MnVq$rgI%xPB)jQ$>h?PJhW44@dApbP z?;ss10cM6j3=9m)23iJ&24)5|28{-72B0vJG4wVpGn`|%(6D});cmkNhDQz07+y5I zW@ut$X=G=VY}9IW#mLEcoiT%nhKa6;kx7$DyGf79Mw4wOyG=fsd^h=H;%w?+>T8+~ z9+jPDI@@%C=`PcMrp#s>W~ShN(N?o#W;e~=nEf{sGFLUXF!wf(GcPo6F`sU}%6zZ+ z1@p(|-^@8JWa=&SEu1VuEix>sEq+=sSY}!7vb=BUY$akXX< z%+SNYz@Tf83?8|uHfT2JHaKVS-9X6jwBdB4IYtYO&KT8SG`eO48hZ?bjy*D)aG3C# zJTZA`Vs6@RR$^Xde&1ZtqQYXk#d8ZE%V5i1%So2gEqkpdSxvXPZzW@`Xsu?QVm-rp zj`ad-$b{f?n|C&#>C^?bOKk7jaoDGWM!^l38I~|IFz_2ZHwZM8H!?R`VI*d3X6#mP z>|-2c9ATVkTw+{lTxUGhc!BXUwwQLCPBeu?%u>_UrkhQV zn?5vUG!r(HHd8QDHFG!fH48C|G^bV%Yc-o`Hs5TC*&4G=W;@J|nw>VgYWBtK zml=yWm$|UHgt?jdJab-)EQK8q<9vn&=^EVEc+vB~0t#dixXOD9VY zOFzpH%P7kP%XG^;%Tmi4%Vx_i%ZZjVEf-p@wA^aB&+@S4Nz2QYcP-yq{VwrkD;8@m zYe8#0>q_f7>ptr%)=#WoS%=v~+vM7G+swCFYU2TJF}B(E+s?5)ZF|}Fp6z4Xf40na zE_Pma0d`?_F?LDd36m1LD!T@|`bBnc?bPj)?5Eo=v_E0b;J^$nI#>-H40aia83q_W zG-NW;HHtNAGTLl($w=Bb*tpgBwDB)vW0Pc)CX+=bXH9;YxR{okE;qex>R>j(?6BEq zGa+*;^Ca^H=BLbAEwn6REqX03S@2uhT9#YRwLEK?WHsGtm(>p|bL({L1@+eVt(|PD zZ5G)avSF}wvn{rrWP9B9k*$(llwGgg1v@5tfBSy>ul5W9%;2%hScAO=LWaJEGYsz= zav2pGtv9-9ByU`7Jjr;I@g-w+lg~EFw(+*Tws%0SfdppoG?S=-yFsAAG=mQY0fy~{ ziwqwaN*n2zrkfU;Hkz7EG+ku6$@HM1&n6Ejmb(>1d;i#1C( zD>Q2|>on^%n{KwiY?&FWIYYtpQ|zq$j1AMHI9O|@|KMhon=Zk_S~h(G53Aku4;-v^ z(*<~0?WPCtvbs&5!OQA2{SGgy!t|>DEPB&d{bz9it=OBu%%B6Bf0yHCl~KsB%&{!6 zWME*}z{~(T16#pf#a_c+$DTofg`tIsfnoZrmn>n#RV~|3aI>~B)-z0C0f(21m5)`3 zRg6`NRgP7ORgG1PRgcvat2tIntkzg}1HkK}N{lOvYm8fr=NPXs-e7#d_=xcd<1@xrjNcglF=j9k zFcC44Fp)7)sW-6!H@`znVoXX*DoiGrEHGIDp71?masj*y=Y`1|lP@MbrZT1qrUs@a zrZ%P_rYWWwrWK|&rY)v(OxKuhFg;*;#Pp2m6VorIKTJ8yc+5o1bj)nb9LxgDLd+t} zV$4#^YRr1fCV(e|*O(nKyJB|3?1kAIvkzwVKgCl)U({#Yo+hFGRpLSnJRvc__XndK78 z6_z_J_gEgVJYspq@`>da%O92;RyYS~4lo-?)bQr8K*kW+S;0~X`6N3*10){e%HijOCIn&>Zu!`0{Fk~>|FcL75 zFj6qmFfuT*F-kG&Fq&dC$7qYu0iy>-Z;W`1C5#=6Q;Z9YD~u-?&oSO(e8l*I@dx8S z#xf=vCLSgsCM6~{CLJa#Og5P8Fgajy2Alx?n6Q`%m|B>|m}Zz3n0A;>G2LQ%!1ReJ z3pl!E%v8*D%uLK2w9FFBa?EE{ITG$6aaVaLo5?48!US)*I4ebykYsk@{J{rm4uarm5Wu1 zRe{w6s~J{Hz`5au)ekEcYaQzV>lo`4>lW)7)+?;{SRb*zWBtVXgSCK-gpG=gi%oz{ zflZCg9Gew3Cv2|R{IOB6)v-0P4Y5tJonSk|c2B+S1=}084{Tr9ez6s?Q?PTe^RdgZ zD*>-@TVc1sZjap^yC-%Z>;&v3>{aYt>;voz>?`bB>{r;Iu)kn`!~TK&3;PfDKR|`p z0TzZgp!KH)90mdg5(X*;9tIf(1qKxc4F(+sQw+8k>@hfEa0V1{(0G$DR57e~G4wGE zF-!pWI~b};rZ z&M@vVo?*Pec#rWN<0r;%jK3KFF=jF0F%bdfYZDz46B8Q~7ZV>7P}WW{$pOb|i%E~k z6q7k7OH9_7Y%$qma-`nmjL8*~J0?%yk<4Q%Vk%>*VyXkq>n`BRI>t1`G{>|Aoa1{; zrJ0MnDdy6n9G=}nCqCEnA@1UnERNAn8%o>nCF<6 znAe!MnD>}Z0k33OW4;AkHk>iPVt&W`iTNAzFXn&DSuA)gL@Z=1R4jBXOe}0HTr7Mn zLM&n|QY>;TO2DN=kHr*=ITlMS)__V1C5s~#XDqH*+_89K@y6nd#UBe6OCC!ROBqWQ zOC3uSOB+j<>9T^XlJ#pWw^;507ZF!1?^r&ud}H~=@{c8p6%V+WP_fdnGO@C;aVnl5D+X&0YYl53>j>)v>jvv3)*GyMSYNQdWBtdP!$!l#z{bWV!KT5c z!)5}wR9InyIXdvehQXG@R-oQi!dAgn!`8so!q&mo!#2P+!ZyJ+!?wV-!nVP-!*+`8 z4rn_5VEeep#9$3tl7D0H#o&(tiy@Dph@p(3ilL67g<%1B*kyy^ X1;aOn9}Ibn1dJFSY>yLVJ;nh5{=Q_9 diff --git a/Test/baseResults/120.frag.out b/Test/baseResults/120.frag.out index bbcda690..777a0e92 100644 --- a/Test/baseResults/120.frag.out +++ b/Test/baseResults/120.frag.out @@ -292,4 +292,6 @@ ERROR: node is still EOpNull! 0:? 'm' (uniform 4X2 matrix of float) 0:? 'imageBuffer' (float) 0:? 'uimage2DRect' (float) +0:? 'a' (int) +0:? 'gl_TexCoord' (smooth in 6-element array of 4-component vector of float) diff --git a/Test/baseResults/120.vert.out b/Test/baseResults/120.vert.out index adabd121..96a7fee2 100644 --- a/Test/baseResults/120.vert.out +++ b/Test/baseResults/120.vert.out @@ -23,12 +23,11 @@ ERROR: 0:37: 'arrays of arrays' : not supported with this profile: none ERROR: 0:38: 'arrays of arrays' : not supported with this profile: none ERROR: 0:38: 'constructor' : array constructor needs one argument per array element ERROR: 0:38: 'arrays of arrays' : not supported with this profile: none -ERROR: 0:43: 'uniform' : cannot initialize this type of qualifier ERROR: 0:47: 'arrays of arrays' : not supported with this profile: none ERROR: 0:48: 'arrays of arrays' : not supported with this profile: none ERROR: 0:49: 'arrays of arrays' : not supported with this profile: none ERROR: 0:50: 'arrays of arrays' : not supported with this profile: none -ERROR: 30 compilation errors. No code generated. +ERROR: 29 compilation errors. No code generated. ERROR: node is still EOpNull! 0:15 Function Definition: main( (void) @@ -71,6 +70,10 @@ ERROR: node is still EOpNull! 0:40 move second child to first child (float) 0:40 'gl_PointSize' (invariant gl_PointSize float) 0:40 3.800000 +0:43 Sequence +0:43 move second child to first child (float) +0:43 'initted' (uniform float) +0:43 3.400000 0:? Linker Objects 0:? 'i' (in 4-component vector of float) 0:? 'o' (smooth out 4-component vector of float) @@ -78,4 +81,6 @@ ERROR: node is still EOpNull! 0:? 'attv4' (in 4-component vector of float) 0:? 's2D' (uniform sampler2D) 0:? 'centTexCoord' (invariant smooth out 2-component vector of float) +0:? 'initted' (uniform float) +0:? 'concall' (const float) diff --git a/Test/baseResults/130.frag.out b/Test/baseResults/130.frag.out index 38fa1aac..b1eada0d 100644 --- a/Test/baseResults/130.frag.out +++ b/Test/baseResults/130.frag.out @@ -2,6 +2,9 @@ 0:16 Function Definition: main( (void) 0:16 Function Parameters: 0:? Linker Objects +0:? 'a' (3-component vector of float) +0:? 'b' (float) +0:? 'c' (int) 0:? 'i' (smooth in 4-component vector of float) 0:? 'o' (out 4-component vector of float) 0:? 'fflat' (flat in float) diff --git a/Test/baseResults/300.frag.out b/Test/baseResults/300.frag.out index 9fc969b6..7f15f918 100644 --- a/Test/baseResults/300.frag.out +++ b/Test/baseResults/300.frag.out @@ -217,6 +217,7 @@ ERROR: node is still EOpNull! 0:? 'c1D' (smooth in lowp float) 0:? 'c2D' (smooth in lowp 2-component vector of float) 0:? 'c3D' (smooth in lowp 3-component vector of float) +0:? 'c4D' (smooth lowp 4-component vector of float) 0:? 'ic1D' (flat in mediump int) 0:? 'ic2D' (flat in mediump 2-component vector of int) 0:? 'ic3D' (flat in mediump 3-component vector of int) @@ -227,5 +228,6 @@ ERROR: node is still EOpNull! 0:? 's2' (smooth in structure) 0:? 'sc' (out lowp 3-component vector of float) 0:? 'sf' (out lowp float) +0:? 'arrayedSampler' (uniform 5-element array of lowp sampler2D) 0:? 'multiInst' (layout(shared ) uniform 2-element array of block) diff --git a/Test/baseResults/300.vert.out b/Test/baseResults/300.vert.out index 567be865..1388f662 100644 --- a/Test/baseResults/300.vert.out +++ b/Test/baseResults/300.vert.out @@ -126,6 +126,7 @@ ERROR: node is still EOpNull! 0:? 'm44' (uniform highp 4X4 matrix of float) 0:? 'v3' (in highp 3-component vector of float) 0:? 'v2' (smooth out highp 2-component vector of float) +0:? 'bad' (in 10-element array of highp 4-component vector of float) 0:? 'badorder' (in highp 4-component vector of float) 0:? 'badorder2' (invariant smooth out highp 4-component vector of float) 0:? 'badorder4' (centroid in highp 4-component vector of float) @@ -134,8 +135,10 @@ ERROR: node is still EOpNull! 0:? 'rep2' (centroid smooth sample out highp 4-component vector of float) 0:? 'rep3' (in highp 4-component vector of float) 0:? 's' (smooth out structure) +0:? 'badsize' (unsized array of highp float) 0:? 'badsize2' (unsized array of highp float) 0:? 'ubInst' (layout(shared ) uniform unsized array of block) +0:? 'okayA' (2-element array of highp float) 0:? 'gl_VertexID' (gl_VertexId highp int) 0:? 'gl_InstanceID' (gl_InstanceId highp int) diff --git a/Test/baseResults/300layout.frag.out b/Test/baseResults/300layout.frag.out index 2610ad88..f2128e10 100644 --- a/Test/baseResults/300layout.frag.out +++ b/Test/baseResults/300layout.frag.out @@ -21,4 +21,5 @@ ERROR: node is still EOpNull! 0:? 'color' (layout(location=2 ) smooth in mediump 4-component vector of float) 0:? 'c' (layout(location=1 ) out mediump 4-component vector of float) 0:? 'p' (layout(location=3 ) out mediump 4-component vector of float) +0:? 'q' (layout(location=4 ) out 2-element array of mediump 4-component vector of float) diff --git a/Test/baseResults/300layout.vert.out b/Test/baseResults/300layout.vert.out index 241d003c..77f487da 100644 --- a/Test/baseResults/300layout.vert.out +++ b/Test/baseResults/300layout.vert.out @@ -49,12 +49,15 @@ ERROR: node is still EOpNull! 0:? Linker Objects 0:? 'c' (layout(location=7 ) in highp 3-component vector of float) 0:? 'p' (layout(location=3 ) in highp 4-component vector of float) +0:? 'q' (layout(location=9 ) in 4-element array of highp 4-component vector of float) +0:? 'r' (layout(location=10 ) in 4-element array of structure) 0:? 'pos' (smooth out highp 4-component vector of float) 0:? 'color' (smooth out highp 3-component vector of float) 0:? 'badm4' (layout(column_major shared ) uniform highp 4X4 matrix of float) 0:? 'tblock' (layout(std140 ) uniform block) 0:? '__anon__0' (layout(shared ) uniform block) 0:? 'badout' (layout(location=10 ) smooth out highp 4-component vector of float) +0:? 'compute_only' (shared highp 4-component vector of float) 0:? 'gl_VertexID' (gl_VertexId highp int) 0:? 'gl_InstanceID' (gl_InstanceId highp int) diff --git a/Test/baseResults/300operations.frag.out b/Test/baseResults/300operations.frag.out index a679ca08..a40b7f79 100644 --- a/Test/baseResults/300operations.frag.out +++ b/Test/baseResults/300operations.frag.out @@ -200,4 +200,5 @@ ERROR: node is still EOpNull! 0:? Linker Objects 0:? 'instanceName' (layout(shared ) uniform block) 0:? 's' (structure) +0:? 'a' (5-element array of mediump float) diff --git a/Test/baseResults/400.frag.out b/Test/baseResults/400.frag.out index fe783037..df37e93e 100644 --- a/Test/baseResults/400.frag.out +++ b/Test/baseResults/400.frag.out @@ -15,4 +15,5 @@ ERROR: node is still EOpNull! 0:? Linker Objects 0:? 'c2D' (smooth in 2-component vector of float) 0:? 'i' (flat in int) +0:? 'arrayedSampler' (uniform 5-element array of sampler2D) diff --git a/Test/baseResults/420.vert.out b/Test/baseResults/420.vert.out index af98606c..4150d4ec 100644 --- a/Test/baseResults/420.vert.out +++ b/Test/baseResults/420.vert.out @@ -37,6 +37,7 @@ ERROR: node is still EOpNull! 0:30 'v' (in 4-component vector of float) 0:? Linker Objects 0:? 'v2' (smooth out 2-component vector of float) +0:? 'bad' (in 10-element array of 4-component vector of float) 0:? 'badorder' (in 4-component vector of float) 0:? 'badorder2' (invariant smooth out 4-component vector of float) 0:? 'badorder4' (centroid in 4-component vector of float) diff --git a/Test/baseResults/array.frag.out b/Test/baseResults/array.frag.out index f12c2649..fa745eb3 100644 --- a/Test/baseResults/array.frag.out +++ b/Test/baseResults/array.frag.out @@ -147,5 +147,8 @@ ERROR: node is still EOpNull! 0:58 1 (const int) 0:58 4 (const int) 0:? Linker Objects +0:? 'gu' (unsized array of float) +0:? 'g4' (4-element array of float) +0:? 'g5' (5-element array of float) 0:? 'a' (uniform int) diff --git a/Test/baseResults/array100.frag.out b/Test/baseResults/array100.frag.out index 4dd0235f..d3eb5295 100644 --- a/Test/baseResults/array100.frag.out +++ b/Test/baseResults/array100.frag.out @@ -99,5 +99,8 @@ ERROR: node is still EOpNull! 0:40 1.000000 0:40 1.000000 0:? Linker Objects +0:? 'gu' (unsized array of mediump float) +0:? 'g4' (4-element array of mediump float) +0:? 'g5' (5-element array of mediump float) 0:? 'a' (uniform mediump int) diff --git a/Test/baseResults/constErrors.frag.out b/Test/baseResults/constErrors.frag.out index abc1b67e..82913151 100644 --- a/Test/baseResults/constErrors.frag.out +++ b/Test/baseResults/constErrors.frag.out @@ -15,5 +15,8 @@ ERROR: node is still EOpNull! 0:? Linker Objects 0:? 'inVar' (smooth in 4-component vector of float) 0:? 'outVar' (out 4-component vector of float) +0:? 'constInt' (const int) 0:? 'uniformInt' (uniform int) +0:? 's' (structure) +0:? 's2' (structure) diff --git a/Test/baseResults/constFold.frag.out b/Test/baseResults/constFold.frag.out index fff747b7..8d7b1203 100644 --- a/Test/baseResults/constFold.frag.out +++ b/Test/baseResults/constFold.frag.out @@ -138,6 +138,14 @@ 0:81 0 (const int) 0:81 7.000000 0:? Linker Objects +0:? 'a' (const int) +0:? 'b' (const int) +0:? 'c' (const int) +0:? 'd' (const int) +0:? 'e' (const float) +0:? 'f' (const float) +0:? 'g' (const float) +0:? 'pytho' (const 2-component vector of float) 0:? 'inv' (smooth in 4-component vector of float) 0:? 'FragColor' (out 4-component vector of float) 0:? 'out2' (out 2-component vector of float) @@ -152,4 +160,5 @@ 0:? 'out11' (out 4-component vector of float) 0:? 'out12' (out 2-component vector of int) 0:? 'out13' (out 3-component vector of uint) +0:? 's' (const structure) diff --git a/Test/baseResults/cppComplexExpr.vert.out b/Test/baseResults/cppComplexExpr.vert.out index f6410bfc..6069fc0c 100644 --- a/Test/baseResults/cppComplexExpr.vert.out +++ b/Test/baseResults/cppComplexExpr.vert.out @@ -21,4 +21,5 @@ WARNING: #version: statement missing; use #version on first line of shader 0:39 Construct vec4 (highp 4-component vector of float) 0:39 'sum' (highp float) 0:? Linker Objects +0:? 'sum' (highp float) diff --git a/Test/baseResults/cppIndent.vert.out b/Test/baseResults/cppIndent.vert.out index 0f9f66a9..2ef0dcd6 100644 --- a/Test/baseResults/cppIndent.vert.out +++ b/Test/baseResults/cppIndent.vert.out @@ -26,4 +26,5 @@ 0:56 Construct vec4 (4-component vector of float) 0:56 'sum' (float) 0:? Linker Objects +0:? 'sum' (float) diff --git a/Test/baseResults/cppNest.vert.out b/Test/baseResults/cppNest.vert.out index 4574806c..38894d82 100644 --- a/Test/baseResults/cppNest.vert.out +++ b/Test/baseResults/cppNest.vert.out @@ -29,4 +29,5 @@ 0:86 Construct vec4 (4-component vector of float) 0:86 'sum' (float) 0:? Linker Objects +0:? 'sum' (float) diff --git a/Test/baseResults/cppSimple.vert.out b/Test/baseResults/cppSimple.vert.out index b98f560e..76415b23 100644 --- a/Test/baseResults/cppSimple.vert.out +++ b/Test/baseResults/cppSimple.vert.out @@ -71,5 +71,10 @@ ERROR: node is still EOpNull! 0:130 'twoPi' (float) 0:130 6.280000 0:? Linker Objects +0:? 'sum' (float) +0:? 'linenumber' (int) +0:? 'filenumber' (int) +0:? 'version' (int) +0:? 'twoPi' (float) 0:? 'tod' (float) diff --git a/Test/baseResults/dce.frag.out b/Test/baseResults/dce.frag.out index 7975f99e..d2d7ac54 100644 --- a/Test/baseResults/dce.frag.out +++ b/Test/baseResults/dce.frag.out @@ -114,4 +114,6 @@ 0:55 Pre-Increment (int) 0:55 'c' (int) 0:? Linker Objects +0:? 'flag' (const bool) +0:? 'c' (int) diff --git a/Test/baseResults/decls.frag.out b/Test/baseResults/decls.frag.out new file mode 100644 index 00000000..ad0ac0a8 --- /dev/null +++ b/Test/baseResults/decls.frag.out @@ -0,0 +1,151 @@ +ERROR: 0:19: 'vi4' : illegal use of type 'void' +ERROR: 0:20: 'vj' : illegal use of type 'void' +ERROR: 0:20: 'vk5' : illegal use of type 'void' +ERROR: 0:21: 'vm2' : illegal use of type 'void' +ERROR: 0:21: 'vm3' : illegal use of type 'void' +ERROR: 0:22: 'vn8' : illegal use of type 'void' +ERROR: 0:22: 'vp' : illegal use of type 'void' +ERROR: 0:24: 'gl_' : reserved built-in name +ERROR: 0:25: 'gl_' : reserved built-in name +ERROR: 0:25: 'gl_' : reserved built-in name +ERROR: 0:26: 'gl_' : reserved built-in name +ERROR: 0:26: 'gl_' : reserved built-in name +ERROR: 0:27: 'gl_' : reserved built-in name +ERROR: 0:27: 'gl_' : reserved built-in name +ERROR: 0:32: '' : boolean expression expected +ERROR: 0:33: 'gl_' : reserved built-in name +ERROR: 16 compilation errors. No code generated. + +ERROR: node is still EOpNull! +0:5 Sequence +0:5 move second child to first child (int) +0:5 'd1' (int) +0:5 1 (const int) +0:6 Sequence +0:6 move second child to first child (int) +0:6 'e2' (int) +0:6 2 (const int) +0:7 Sequence +0:7 move second child to first child (int) +0:7 'h3' (int) +0:7 3 (const int) +0:14 Sequence +0:14 move second child to first child (4-element array of int) +0:14 'ii4' (4-element array of int) +0:14 1 (const int) +0:14 2 (const int) +0:14 3 (const int) +0:14 4 (const int) +0:15 Sequence +0:15 move second child to first child (5-element array of int) +0:15 'ik5' (5-element array of int) +0:15 5 (const int) +0:15 6 (const int) +0:15 7 (const int) +0:15 8 (const int) +0:15 9 (const int) +0:16 Sequence +0:16 move second child to first child (2-element array of int) +0:16 'im2' (2-element array of int) +0:16 10 (const int) +0:16 11 (const int) +0:16 move second child to first child (3-element array of int) +0:16 'im3' (3-element array of int) +0:16 12 (const int) +0:16 13 (const int) +0:16 14 (const int) +0:17 Sequence +0:17 move second child to first child (4-element array of int) +0:17 'in8' (4-element array of int) +0:17 21 (const int) +0:17 22 (const int) +0:17 23 (const int) +0:17 24 (const int) +0:24 Sequence +0:24 move second child to first child (4-element array of int) +0:24 'gl_vi4' (4-element array of int) +0:24 1 (const int) +0:24 2 (const int) +0:24 3 (const int) +0:24 4 (const int) +0:25 Sequence +0:25 move second child to first child (5-element array of int) +0:25 'gl_vk5' (5-element array of int) +0:25 5 (const int) +0:25 6 (const int) +0:25 7 (const int) +0:25 8 (const int) +0:25 9 (const int) +0:26 Sequence +0:26 move second child to first child (2-element array of int) +0:26 'gl_vm2' (2-element array of int) +0:26 10 (const int) +0:26 11 (const int) +0:26 move second child to first child (3-element array of int) +0:26 'gl_vm3' (3-element array of int) +0:26 12 (const int) +0:26 13 (const int) +0:26 14 (const int) +0:27 Sequence +0:27 move second child to first child (4-element array of int) +0:27 'gl_vn8' (4-element array of int) +0:27 21 (const int) +0:27 22 (const int) +0:27 23 (const int) +0:27 24 (const int) +0:29 Function Definition: main( (void) +0:29 Function Parameters: +0:31 Sequence +0:31 Loop with condition tested first +0:31 Loop Condition +0:31 move second child to first child (bool) +0:31 'cond' (bool) +0:31 Compare Less Than (bool) +0:31 'b' (int) +0:31 'c' (int) +0:31 No loop body +0:32 Loop with condition tested first +0:32 Loop Condition +0:32 move second child to first child (int) +0:32 'icond' (int) +0:32 'b' (int) +0:32 No loop body +0:33 Loop with condition tested first +0:33 Loop Condition +0:33 move second child to first child (bool) +0:33 'gl_cond' (bool) +0:33 Compare Less Than (bool) +0:33 'b' (int) +0:33 'c' (int) +0:33 No loop body +0:? Linker Objects +0:? 'a' (int) +0:? 'b' (int) +0:? 'c' (int) +0:? 'd1' (int) +0:? 'e2' (int) +0:? 'f' (int) +0:? 'g' (int) +0:? 'h3' (int) +0:? 'i4' (4-element array of int) +0:? 'j' (int) +0:? 'k5' (5-element array of int) +0:? 'm6' (6-element array of int) +0:? 'm7' (7-element array of int) +0:? 'n8' (8-element array of int) +0:? 'p' (int) +0:? 'ii4' (4-element array of int) +0:? 'ij' (int) +0:? 'ik5' (5-element array of int) +0:? 'im2' (2-element array of int) +0:? 'im3' (3-element array of int) +0:? 'in8' (4-element array of int) +0:? 'ip' (int) +0:? 'gl_vi4' (4-element array of int) +0:? 'gl_vj' (int) +0:? 'gl_vk5' (5-element array of int) +0:? 'gl_vm2' (2-element array of int) +0:? 'gl_vm3' (3-element array of int) +0:? 'gl_vn8' (4-element array of int) +0:? 'gl_vp' (int) + diff --git a/Test/baseResults/deepRvalue.frag.out b/Test/baseResults/deepRvalue.frag.out index c7c5a7d9..1cda2df1 100644 --- a/Test/baseResults/deepRvalue.frag.out +++ b/Test/baseResults/deepRvalue.frag.out @@ -115,4 +115,8 @@ 0:35 'i' (float) 0:? Linker Objects 0:? 'sampler' (uniform sampler2D) +0:? 'v1' (4-component vector of float) +0:? 'v2' (4-component vector of float) +0:? 'v3' (4-component vector of float) +0:? 'v4' (4-component vector of float) diff --git a/Test/baseResults/functionCall.frag.out b/Test/baseResults/functionCall.frag.out index a1624450..3327c4cf 100644 --- a/Test/baseResults/functionCall.frag.out +++ b/Test/baseResults/functionCall.frag.out @@ -76,4 +76,5 @@ WARNING: 0:4: varying deprecated in version 130; may be removed in future releas 0:? 'bigColor' (uniform 4-component vector of float) 0:? 'BaseColor' (smooth in 4-component vector of float) 0:? 'd' (uniform float) +0:? 'h' (float) diff --git a/Test/baseResults/length.frag.out b/Test/baseResults/length.frag.out index 5deccaaf..4a354ae7 100644 --- a/Test/baseResults/length.frag.out +++ b/Test/baseResults/length.frag.out @@ -19,4 +19,6 @@ 0:17 30.000000 0:17 30.000000 0:? Linker Objects +0:? 'u' (uniform 3-element array of 4-component vector of float) +0:? 'v' (smooth in 2-element array of 2-component vector of float) diff --git a/Test/baseResults/link1.frag.out b/Test/baseResults/link1.frag.out index 5119acfc..47cfec21 100644 --- a/Test/baseResults/link1.frag.out +++ b/Test/baseResults/link1.frag.out @@ -33,8 +33,12 @@ link1.frag 0:? Linker Objects 0:? 'uv4' (uniform 4-component vector of float) 0:? 'glass' (uniform 3-component vector of float) +0:? 'ci' (const int) +0:? 'a' (4-component vector of float) 0:? 'iv3' (smooth in 3-component vector of float) 0:? 'cup' (smooth in 4-component vector of float) +0:? 'b' (4-component vector of float) +0:? 'c' (4-component vector of float) link2.frag @@ -66,8 +70,12 @@ link2.frag 0:? Linker Objects 0:? 'uv4' (uniform 4-component vector of float) 0:? 'glass' (uniform 2-component vector of float) +0:? 'ci' (const int) +0:? 'd' (4-component vector of float) 0:? 'iv3' (smooth in 3-component vector of float) 0:? 'cup' (flat in 4-component vector of float) +0:? 'e' (4-component vector of float) +0:? 'f' (4-component vector of float) link3.frag @@ -145,6 +153,13 @@ ERROR: Linking fragment stage: Precision qualifiers must match: 0:? Linker Objects 0:? 'uv4' (uniform 4-component vector of float) 0:? 'glass' (uniform 3-component vector of float) +0:? 'ci' (const int) +0:? 'a' (4-component vector of float) 0:? 'iv3' (smooth in 3-component vector of float) 0:? 'cup' (smooth in 4-component vector of float) +0:? 'b' (4-component vector of float) +0:? 'c' (4-component vector of float) +0:? 'd' (4-component vector of float) +0:? 'e' (4-component vector of float) +0:? 'f' (4-component vector of float) diff --git a/Test/baseResults/matrixError.vert.out b/Test/baseResults/matrixError.vert.out index 574ede51..0f014cf8 100644 --- a/Test/baseResults/matrixError.vert.out +++ b/Test/baseResults/matrixError.vert.out @@ -30,4 +30,5 @@ ERROR: node is still EOpNull! 0:? Linker Objects 0:? 'v3' (in 3-component vector of float) 0:? 'm32' (uniform 3X2 matrix of float) +0:? 'm24' (2X4 matrix of float) diff --git a/Test/baseResults/nonSquare.vert.out b/Test/baseResults/nonSquare.vert.out index 5ee5ea17..631fa591 100644 --- a/Test/baseResults/nonSquare.vert.out +++ b/Test/baseResults/nonSquare.vert.out @@ -59,4 +59,7 @@ 0:? 'v3' (in 3-component vector of float) 0:? 'v4' (in 4-component vector of float) 0:? 'm32' (uniform 3X2 matrix of float) +0:? 'cv2' (const 2-component vector of float) +0:? 'm24' (const 2X4 matrix of float) +0:? 'm42' (const 4X2 matrix of float) diff --git a/Test/baseResults/precision.frag.out b/Test/baseResults/precision.frag.out index 93f1cbab..38d1a200 100644 --- a/Test/baseResults/precision.frag.out +++ b/Test/baseResults/precision.frag.out @@ -109,4 +109,5 @@ ERROR: node is still EOpNull! 0:? 'samplerHigh' (uniform highp sampler2D) 0:? 'uint' (mediump 4-component vector of float) 0:? 'global_high' (highp int) +0:? 'b2' (mediump 2-component vector of bool) diff --git a/Test/baseResults/specExamples.frag.out b/Test/baseResults/specExamples.frag.out index 9bba5309..c776306b 100644 --- a/Test/baseResults/specExamples.frag.out +++ b/Test/baseResults/specExamples.frag.out @@ -3,7 +3,6 @@ ERROR: 0:20: '' : numeric literal too big ERROR: 0:21: '' : hexidecimal literal too big ERROR: 0:37: 'view' : redefinition ERROR: 0:68: 'lightPosition' : redefinition -ERROR: 0:69: 'uniform' : cannot initialize this type of qualifier ERROR: 0:71: 'Material' : only uniform interface blocks are supported ERROR: 0:79: 'Light' : only uniform interface blocks are supported ERROR: 0:83: 'ColoredTexture' : only uniform interface blocks are supported @@ -54,7 +53,7 @@ ERROR: 0:226: 'in' : only allowed at global scope ERROR: 0:227: 'in' : only allowed at global scope ERROR: 0:228: 'in' : only allowed at global scope ERROR: 0:232: 'out' : only allowed at global scope -ERROR: 56 compilation errors. No code generated. +ERROR: 55 compilation errors. No code generated. ERROR: node is still EOpNull! 0:5 Sequence @@ -109,6 +108,12 @@ ERROR: node is still EOpNull! 0:26 move second child to first child (double) 0:26 'fd' (double) 0:26 2.000000 +0:69 Sequence +0:69 move second child to first child (3-component vector of float) +0:69 'color' (uniform 3-component vector of float) +0:69 0.700000 +0:69 0.700000 +0:69 0.200000 0:127 Function Definition: foo(f1[5]; (5-element array of float) 0:127 Function Parameters: 0:127 '' (in 5-element array of float) @@ -196,8 +201,22 @@ ERROR: node is still EOpNull! 0:218 'c' (5-element array of float) 0:218 'a' (5-element array of float) 0:? Linker Objects +0:? 'a' (int) +0:? 'b' (int) +0:? 'c' (uint) +0:? 'd' (uint) +0:? 'e' (int) +0:? 'f' (uint) +0:? 'g' (int) +0:? 'h' (int) +0:? 'i' (int) +0:? 'j' (int) +0:? 'k' (int) +0:? 'l' (int) 0:? 'fa' (float) +0:? 'fb' (float) 0:? 'fc' (double) +0:? 'fd' (double) 0:? 'texcoord1' (2-component vector of float) 0:? 'texcoord2' (2-component vector of float) 0:? 'position' (3-component vector of float) @@ -212,14 +231,20 @@ ERROR: node is still EOpNull! 0:? 'highPrecisionMVP' (4X4 matrix of double) 0:? 'dm' (2X4 matrix of double) 0:? 'lightVar' (structure) +0:? 'frequencies' (3-element array of float) +0:? 'lightPosition' (uniform 4-element array of 4-component vector of float) +0:? 'lights' (2-element array of structure) +0:? 'numLights' (const int) 0:? 'normal' (smooth in 3-component vector of float) 0:? 'TexCoord' (centroid smooth in 2-component vector of float) 0:? 'Color' (invariant centroid smooth in 4-component vector of float) 0:? 'temperature' (noperspective in float) 0:? 'myColor' (flat in 3-component vector of float) 0:? 'myTexCoord' (centroid noperspective in 2-component vector of float) +0:? 'color' (uniform 3-component vector of float) 0:? 'gl_FragCoord' (gl_FragCoord 4-component vector of float) 0:? 'factor' (layout(location=3 ) out 4-component vector of float) +0:? 'colors' (layout(location=2 ) out 3-element array of 4-component vector of float) 0:? 'gl_FragDepth' (gl_FragDepth float) 0:? 'gl_Color' (smooth in 4-component vector of float) diff --git a/Test/baseResults/specExamples.vert.out b/Test/baseResults/specExamples.vert.out index f8b3a34c..3b9733a1 100644 --- a/Test/baseResults/specExamples.vert.out +++ b/Test/baseResults/specExamples.vert.out @@ -222,6 +222,8 @@ ERROR: node is still EOpNull! 0:? Linker Objects 0:? 'transforms' (layout(shared ) uniform 4-element array of block) 0:? 'normal' (layout(location=3 ) in 4-component vector of float) +0:? 'colors' (layout(location=6 ) in 3-element array of 4-component vector of float) +0:? 's' (layout(location=3 ) structure) 0:? 'var1' (smooth out 4-component vector of float) 0:? 'var5' (smooth out 4-component vector of float) 0:? 'var7' (smooth out 4-component vector of float) @@ -244,6 +246,7 @@ ERROR: node is still EOpNull! 0:? 'd' (in 4-component vector of float) 0:? 'v' (smooth out 4-component vector of float) 0:? '__anon__2' (layout(shared ) uniform block) +0:? 'shv' (shared 4-component vector of float) 0:? 'img1' (uniform image2D) 0:? 'img2' (coherent uniform image2D) 0:? 'gl_VertexID' (gl_VertexId int) diff --git a/Test/baseResults/structure.frag.out b/Test/baseResults/structure.frag.out index a9746621..9d035947 100644 --- a/Test/baseResults/structure.frag.out +++ b/Test/baseResults/structure.frag.out @@ -59,4 +59,5 @@ WARNING: 0:3: varying deprecated in version 130; may be removed in future releas 0:? 'sampler' (uniform sampler2D) 0:? 'coord' (smooth in 2-component vector of float) 0:? 'foo' (uniform structure) +0:? 'foo2' (uniform 5-element array of structure) diff --git a/Test/baseResults/tokenLength.vert.out b/Test/baseResults/tokenLength.vert.out index 613a81c9..f371596d 100644 --- a/Test/baseResults/tokenLength.vert.out +++ b/Test/baseResults/tokenLength.vert.out @@ -77,7 +77,19 @@ ERROR: node is still EOpNull! 0:? Linker Objects 0:? 'BCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789' (in highp float) 0:? 'ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789' (in highp float) +0:? 'E1' (highp int) +0:? 'E2' (highp int) +0:? 'B' (highp int) +0:? 'OE' (highp int) +0:? 'HE' (highp int) +0:? 'F' (highp float) +0:? 'G' (highp float) +0:? 'E3' (highp float) 0:? 'BCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789B' (highp float) +0:? 'superH' (highp int) +0:? 'superO' (highp int) +0:? 'superI' (highp int) +0:? 'superF' (highp float) 0:? 'gl_VertexID' (gl_VertexId highp int) 0:? 'gl_InstanceID' (gl_InstanceId highp int) diff --git a/Test/baseResults/uniformArray.frag.out b/Test/baseResults/uniformArray.frag.out index f734c29a..f67d80df 100644 --- a/Test/baseResults/uniformArray.frag.out +++ b/Test/baseResults/uniformArray.frag.out @@ -33,4 +33,6 @@ 0:? Linker Objects 0:? 'texSampler2D' (uniform sampler2D) 0:? 'inColor' (uniform 3-component vector of float) +0:? 'color' (uniform 6-element array of 4-component vector of float) +0:? 'alpha' (uniform 16-element array of float) diff --git a/Test/baseResults/variableArrayIndex.frag.out b/Test/baseResults/variableArrayIndex.frag.out index aa20e6ad..a217c280 100644 --- a/Test/baseResults/variableArrayIndex.frag.out +++ b/Test/baseResults/variableArrayIndex.frag.out @@ -86,6 +86,7 @@ WARNING: 0:3: varying deprecated in version 130; may be removed in future releas 0:? 'sampler' (uniform sampler2D) 0:? 'coord' (smooth in 2-component vector of float) 0:? 'foo' (uniform structure) +0:? 'foo2' (uniform 5-element array of structure) 0:? 'foo3' (uniform structure) 0:? 'Count' (uniform int) diff --git a/Test/baseResults/varyingArray.frag.out b/Test/baseResults/varyingArray.frag.out index 2e0245b5..57048da6 100644 --- a/Test/baseResults/varyingArray.frag.out +++ b/Test/baseResults/varyingArray.frag.out @@ -46,4 +46,6 @@ WARNING: 0:8: varying deprecated in version 130; may be removed in future releas 0:? 'texSampler2D' (uniform sampler2D) 0:? 'color' (smooth in 4-component vector of float) 0:? 'alpha' (smooth in float) +0:? 'gl_TexCoord' (smooth in 6-element array of 4-component vector of float) +0:? 'foo' (smooth in 3-element array of 4-component vector of float) diff --git a/Test/baseResults/varyingArrayIndirect.frag.out b/Test/baseResults/varyingArrayIndirect.frag.out index 5db8488c..8e60670d 100644 --- a/Test/baseResults/varyingArrayIndirect.frag.out +++ b/Test/baseResults/varyingArrayIndirect.frag.out @@ -50,6 +50,8 @@ WARNING: 0:8: varying deprecated in version 130; may be removed in future releas 0:? 'texSampler2D' (uniform sampler2D) 0:? 'color' (smooth in 4-component vector of float) 0:? 'alpha' (smooth in float) +0:? 'gl_TexCoord' (smooth in 6-element array of 4-component vector of float) +0:? 'userIn' (smooth in 2-element array of 4-component vector of float) 0:? 'a' (uniform int) 0:? 'b' (uniform int) diff --git a/Test/baseResults/voidFunction.frag.out b/Test/baseResults/voidFunction.frag.out index 4070c71f..3f8254a4 100644 --- a/Test/baseResults/voidFunction.frag.out +++ b/Test/baseResults/voidFunction.frag.out @@ -36,4 +36,5 @@ 0:? 'bigColor' (uniform 4-component vector of float) 0:? 'BaseColor' (smooth in 4-component vector of float) 0:? 'd' (uniform float) +0:? 'bar' (float) diff --git a/Test/decls.frag b/Test/decls.frag new file mode 100644 index 00000000..e76d3857 --- /dev/null +++ b/Test/decls.frag @@ -0,0 +1,34 @@ +#version 120 + +int a; +int b, c; +int d1 = 1; +int e2 = 2, f; +int g, h3 = 3; + +int i4[4]; +int j, k5[5]; +int m6[6], m7[7]; +int n8[8], p; + +int ii4[4] = int[](1, 2, 3, 4); +int ij, ik5[5] = int[](5, 6, 7, 8, 9); +int im2[2] = int[](10, 11), im3[3] = int[](12, 13, 14); +int in8[4] = int[](21, 22, 23, 24), ip; + +void vi4[4] = int[](1, 2, 3, 4); +void vj, vk5[5] = int[](5, 6, 7, 8, 9); +void vm2[2] = int[](10, 11), vm3[3] = int[](12, 13, 14); +void vn8[4] = int[](21, 22, 23, 24), vp; + +int gl_vi4[4] = int[](1, 2, 3, 4); +int gl_vj, gl_vk5[5] = int[](5, 6, 7, 8, 9); +int gl_vm2[2] = int[](10, 11), gl_vm3[3] = int[](12, 13, 14); +int gl_vn8[4] = int[](21, 22, 23, 24), gl_vp; + +void main() +{ + while (bool cond = b < c); + while (int icond = b); + while (bool gl_cond = b < c); +} diff --git a/Test/testlist b/Test/testlist index ef826951..24fd1e59 100644 --- a/Test/testlist +++ b/Test/testlist @@ -1,5 +1,6 @@ sample.frag sample.vert +decls.frag specExamples.frag specExamples.vert versionsClean.frag diff --git a/Todo.txt b/Todo.txt index 84784b27..3fbabcce 100644 --- a/Todo.txt +++ b/Todo.txt @@ -4,6 +4,7 @@ Link Validation + provide input config file for setting limits - also consider spitting out measures of complexity + ensure no static references thrown away + - generate static use of object even if the only use is to access the length of its array Cross-stage linking - type consistency check of uniform and ins <-> outs, both variables and blocks, stage-specific arrayness matching - location/binding/index check @@ -20,7 +21,6 @@ Link Validation Intra-stage linking + exactly one main + type consistency check of uniforms, globals, ins, and outs - - still need to cover arrays and the combinations of this rule with redeclarations of built-ins - value checking of global const initializers - value checking of uniform initializers + location match diff --git a/glslang/Include/Types.h b/glslang/Include/Types.h index feee5b94..c33e41bf 100644 --- a/glslang/Include/Types.h +++ b/glslang/Include/Types.h @@ -588,6 +588,7 @@ public: arraySizes = NewPoolTArraySizes(); *arraySizes = *s; } + void setArraySizes(const TType& type) { setArraySizes(type.arraySizes); } void changeArraySize(int s) { arraySizes->sizes.front() = s; } void setMaxArraySize (int s) { arraySizes->maxArraySize = s; } diff --git a/glslang/MachineIndependent/Intermediate.cpp b/glslang/MachineIndependent/Intermediate.cpp index 20212c94..ebf6d142 100644 --- a/glslang/MachineIndependent/Intermediate.cpp +++ b/glslang/MachineIndependent/Intermediate.cpp @@ -644,7 +644,8 @@ TIntermAggregate* TIntermediate::growAggregate(TIntermNode* left, TIntermNode* r TIntermAggregate* TIntermediate::growAggregate(TIntermNode* left, TIntermNode* right, TSourceLoc loc) { TIntermAggregate* aggNode = growAggregate(left, right); - aggNode->setLoc(loc); + if (aggNode) + aggNode->setLoc(loc); return aggNode; } diff --git a/glslang/MachineIndependent/ParseHelper.cpp b/glslang/MachineIndependent/ParseHelper.cpp index d41a31d4..c364c061 100644 --- a/glslang/MachineIndependent/ParseHelper.cpp +++ b/glslang/MachineIndependent/ParseHelper.cpp @@ -1325,13 +1325,13 @@ bool TParseContext::constructorError(TSourceLoc loc, TIntermNode* node, TFunctio return false; } -// This function checks to see if a void variable has been declared and raise an error message for such a case +// Checks to see if a void variable has been declared and raise an error message for such a case // // returns true in case of an error // -bool TParseContext::voidErrorCheck(TSourceLoc loc, const TString& identifier, const TPublicType& pubType) +bool TParseContext::voidErrorCheck(TSourceLoc loc, const TString& identifier, const TBasicType basicType) { - if (pubType.basicType == EbtVoid) { + if (basicType == EbtVoid) { error(loc, "illegal use of type 'void'", identifier.c_str(), ""); return true; } @@ -1646,12 +1646,12 @@ void TParseContext::arraySizeCheck(TSourceLoc loc, TIntermTyped* expr, int& size // // Returns true if there is an error. // -bool TParseContext::arrayQualifierError(TSourceLoc loc, const TPublicType& type) +bool TParseContext::arrayQualifierError(TSourceLoc loc, const TQualifier& qualifier) { - if (type.qualifier.storage == EvqConst) + if (qualifier.storage == EvqConst) profileRequires(loc, ENoProfile, 120, "GL_3DL_array_objects", "const array"); - if (type.qualifier.storage == EvqVaryingIn && language == EShLangVertex) { + if (qualifier.storage == EvqVaryingIn && language == EShLangVertex) { requireProfile(loc, (EProfileMask)~EEsProfileMask, "vertex input arrays"); profileRequires(loc, ENoProfile, 150, 0, "vertex input arrays"); } @@ -1698,7 +1698,7 @@ void TParseContext::arrayDimCheck(TSourceLoc loc, const TType* type, TArraySizes // // size == 0 means no specified size. // -void TParseContext::arrayCheck(TSourceLoc loc, TString& identifier, const TPublicType& type, TVariable*& variable) +void TParseContext::declareArray(TSourceLoc loc, TString& identifier, const TType& type, TVariable*& variable, bool& newDeclaration) { // // Don't check for reserved word use until after we know it's not in the symbol table, @@ -1710,46 +1710,39 @@ void TParseContext::arrayCheck(TSourceLoc loc, TString& identifier, const TPubli // Redeclarations have to take place at the same scope; otherwise they are hiding declarations // - bool currentScope; - TSymbol* symbol = symbolTable.find(identifier, 0, ¤tScope); - if (symbol == 0 || ! currentScope) { - if (reservedErrorCheck(loc, identifier)) - return; + if (! variable) { + bool currentScope; + TSymbol* symbol = symbolTable.find(identifier, 0, ¤tScope); + if (symbol == 0 || ! currentScope) { + variable = new TVariable(&identifier, type); + symbolTable.insert(*variable); + newDeclaration = true; - variable = new TVariable(&identifier, TType(type)); - symbolTable.insert(*variable); - } else { + return; + } variable = symbol->getAsVariable(); + } - if (! variable) { - error(loc, "array variable name expected", identifier.c_str(), ""); - return; - } + if (! variable) { + error(loc, "array variable name expected", identifier.c_str(), ""); + return; + } - if (! variable->getType().isArray()) { - error(loc, "redeclaring non-array as array", identifier.c_str(), ""); - return; - } - if (variable->getType().getArraySize() > 0) { - error(loc, "redeclaration of array with size", identifier.c_str(), ""); - return; - } + if (! variable->getType().isArray()) { + error(loc, "redeclaring non-array as array", identifier.c_str(), ""); + return; + } + if (variable->getType().getArraySize() > 0) { + error(loc, "redeclaration of array with size", identifier.c_str(), ""); + return; + } - if (! variable->getType().sameElementType(TType(type))) { - error(loc, "redeclaration of array with a different type", identifier.c_str(), ""); - return; - } - - // For read-only built-ins, add a new variable for holding the declared array size of an implicitly-sized shared array. - if (variable->isReadOnly()) - variable = symbolTable.copyUp(variable); - - // TODO: desktop unsized arrays: include modified built-in arrays (gl_TexCoord) in the linker objects subtree - - variable->getWritableType().setArraySizes(type.arraySizes); - } - - voidErrorCheck(loc, identifier, type); + if (! variable->getType().sameElementType(type)) { + error(loc, "redeclaration of array with a different type", identifier.c_str(), ""); + return; + } + + variable->getWritableType().setArraySizes(type); } bool TParseContext::arraySetMaxSize(TSourceLoc loc, TIntermSymbol *node, int size) @@ -1793,55 +1786,31 @@ bool TParseContext::arraySetMaxSize(TSourceLoc loc, TIntermSymbol *node, int siz // // Enforce non-initializer type/qualifier rules. // -void TParseContext::nonInitConstCheck(TSourceLoc loc, TString& identifier, TPublicType& type) +void TParseContext::nonInitConstCheck(TSourceLoc loc, TString& identifier, TType& type) { // // Make the qualifier make sense. // - if (type.qualifier.storage == EvqConst) { - type.qualifier.storage = EvqTemporary; + if (type.getQualifier().storage == EvqConst) { + type.getQualifier().storage = EvqTemporary; error(loc, "variables with qualifier 'const' must be initialized", identifier.c_str(), ""); } } // -// Do semantic checking for a variable declaration that has no initializer, -// and update the symbol table. +// See if the identifier is a built-in symbol that can be redeclared, and if so, +// copy the symbol table's read-only built-in variable to the current +// global level, where it can be modified based on the passed in type. // -void TParseContext::nonInitCheck(TSourceLoc loc, TString& identifier, TPublicType& publicType) +// Returns 0 if no redeclaration took place; meaning a normal declaration still +// needs to occur for it, not necessarily an error. +// +// Returns a redeclared and type-modified variable if a redeclarated occurred. +// +// Will emit +// +TVariable* TParseContext::redeclareBuiltin(TSourceLoc loc, const TString& identifier, const TType& type, bool& newDeclaration) { - TType type(publicType); - - bool newDeclaration; // true if a new entry gets added to the symbol table - TVariable* variable = redeclare(loc, identifier, type, newDeclaration); - - if (! variable) { - reservedErrorCheck(loc, identifier); - variable = new TVariable(&identifier, type); - if (! symbolTable.insert(*variable)) - error(loc, "redefinition", variable->getName().c_str(), ""); - else - newDeclaration = true; - } - - if (newDeclaration) { - voidErrorCheck(loc, identifier, publicType); - - // see if it's a linker-level object to track - if (type.getQualifier().isUniform() || type.getQualifier().isPipeInput() || type.getQualifier().isPipeOutput() || type.getQualifier().storage == EvqGlobal) - intermediate.addSymbolLinkageNode(linkage, *variable); - } -} - -// -// See if the identifier is a built-in symbol that can be redeclared, -// and if so, copy of the symbol table's read-only built-in to the current -// global level, so it can be modified. -// -TVariable* TParseContext::redeclare(TSourceLoc loc, const TString& identifier, const TType& type, bool& newDeclaration) -{ - newDeclaration = false; // true if a new entry gets added to the symbol table - if (profile == EEsProfile || identifier.substr(0, 3) != TString("gl_") || symbolTable.atBuiltInLevel()) return 0; @@ -1864,24 +1833,28 @@ TVariable* TParseContext::redeclare(TSourceLoc loc, const TString& identifier, c bool builtIn; TSymbol* symbol = symbolTable.find(identifier, &builtIn); - // If the symbol was not found, this must be a version/profile/stage + // If the symbol was not found, this must be a version/profile/stage // that doesn't have it. if (! symbol) return 0; TVariable* variable = symbol->getAsVariable(); - // If it wasn't at a built-in level, then it's already been redeclared - if (! builtIn) - return variable; + // If it wasn't at a built-in level, then it's already been redeclared; + // that is, this is a redeclaration of a redeclaration, reuse that initial + // redeclaration. Otherwise, make the new one. + if (builtIn) { + // Copy the symbol up to make a writable version + newDeclaration = true; + variable = symbolTable.copyUp(variable); + } - // Otherwise, time to copy the symbol up to make a writable version - newDeclaration = true; - variable = symbolTable.copyUp(variable); + // Now, modify the type of the copy, as per the type of the current redeclaration. + // TODO: functionality: verify type change is allowed and make the change in type + return variable; } - error(loc, "cannot redeclare this built-in variable", identifier.c_str(), ""); return 0; } @@ -2013,44 +1986,102 @@ const TFunction* TParseContext::findFunction(TSourceLoc loc, TFunction* call, bo } // -// Handle all types of initializers from the grammar. +// Do everything necessary to handle a variable (non-block) declaration. +// Either redeclaring a variable, or making a new one, updating the symbol +// table, and all error checking. // -bool TParseContext::executeInitializerError(TSourceLoc loc, TString& identifier, TPublicType& pType, - TIntermTyped* initializer, TIntermNode*& intermNode, TVariable* variable) +// Returns a subtree node that computes an initializer, if needed. +// Returns 0 if there is no code to execute for initialization. +// +TIntermNode* TParseContext::declareVariable(TSourceLoc loc, TString& identifier, TPublicType& publicType, TArraySizes* arraySizes, TIntermTyped* initializer) { - TType type(pType); + TType type(publicType); - if (variable == 0) { - if (reservedErrorCheck(loc, identifier)) - return true; + if (voidErrorCheck(loc, identifier, type.getBasicType())) + return 0; - if (voidErrorCheck(loc, identifier, pType)) - return true; + if (! initializer) + nonInitConstCheck(loc, identifier, type); - // - // add variable to symbol table - // - variable = new TVariable(&identifier, type); - if (! symbolTable.insert(*variable)) { - error(loc, "redefinition", variable->getName().c_str(), ""); - return true; - // don't delete variable, it's used by error recovery, and the pool - // pop will take care of the memory + // Check for redeclaration of built-ins and/or attempting to declare a reserved name + bool newDeclaration = false; // true if a new entry gets added to the symbol table + TVariable* variable = redeclareBuiltin(loc, identifier, type, newDeclaration); + if (! variable) + reservedErrorCheck(loc, identifier); + + // Declare the variable + if (arraySizes) { + // for ES, since size isn't coming from an initializer, it has to be explicitly declared now + if (profile == EEsProfile && ! initializer) + arraySizeRequiredCheck(loc, arraySizes->getSize()); + + arrayDimCheck(loc, &type, arraySizes); + if (! arrayQualifierError(loc, type.getQualifier())) { + type.setArraySizes(arraySizes); + declareArray(loc, identifier, type, variable, newDeclaration); } + + if (initializer) + profileRequires(loc, ENoProfile, 120, "GL_3DL_array_objects", "initializer"); + } else { + // non-array case + if (! variable) + variable = declareNonArray(loc, identifier, type, newDeclaration); } + // Deal with initializer + TIntermNode* initNode = 0; + if (variable && initializer) + initNode = executeInitializer(loc, identifier, type, initializer, variable); + + // see if it's a linker-level object to track + if (newDeclaration && symbolTable.atGlobalLevel()) + intermediate.addSymbolLinkageNode(linkage, *variable); + + return initNode; +} + +// +// Declare a non-array variable, the main point being there is no redeclaration +// for resizing allowed. +// +// Return the successfully declared variable. +// +TVariable* TParseContext::declareNonArray(TSourceLoc loc, TString& identifier, TType& type, bool& newDeclaration) +{ + // make a new variable + TVariable* variable = new TVariable(&identifier, type); + + // add variable to symbol table + if (! symbolTable.insert(*variable)) { + error(loc, "redefinition", variable->getName().c_str(), ""); + return 0; + } else { + newDeclaration = true; + return variable; + } +} + +// +// Handle all types of initializers from the grammar. +// +TIntermNode* TParseContext::executeInitializer(TSourceLoc loc, TString& identifier, TType& type, + TIntermTyped* initializer, TVariable* variable) +{ // - // identifier must be of type constant, a global, or a temporary + // Identifier must be of type constant, a global, or a temporary, and + // starting at version 120, desktop allows uniforms to have initializers. // TStorageQualifier qualifier = variable->getType().getQualifier().storage; - if ((qualifier != EvqTemporary) && (qualifier != EvqGlobal) && (qualifier != EvqConst)) { + if (! (qualifier == EvqTemporary || qualifier == EvqGlobal || qualifier == EvqConst || + qualifier == EvqUniform && profile != EEsProfile && version >= 120)) { error(loc, " cannot initialize this type of qualifier ", variable->getType().getStorageQualifierString(), ""); - return true; + return 0; } // Fix arrayness if variable is unsized, getting size for initializer if (initializer->getType().isArray() && initializer->getType().getArraySize() > 0 && - type.isArray() && type.getArraySize() == 0) + type.isArray() && type.getArraySize() == 0) type.changeArraySize(initializer->getType().getArraySize()); // @@ -2060,13 +2091,13 @@ bool TParseContext::executeInitializerError(TSourceLoc loc, TString& identifier, if (qualifier != initializer->getType().getQualifier().storage) { error(loc, " assigning non-constant to", "=", "'%s'", variable->getType().getCompleteString().c_str()); variable->getWritableType().getQualifier().storage = EvqTemporary; - return true; + return 0; } if (type != initializer->getType()) { error(loc, " non-matching types for const initializer ", variable->getType().getStorageQualifierString(), ""); variable->getWritableType().getQualifier().storage = EvqTemporary; - return true; + return 0; } if (initializer->getAsConstantUnion()) { TConstUnion* unionArray = variable->getConstUnionPointer(); @@ -2083,26 +2114,25 @@ bool TParseContext::executeInitializerError(TSourceLoc loc, TString& identifier, variable->shareConstPointer(constArray); } else { error(loc, "expected variable", initializer->getAsSymbolNode()->getName().c_str(), ""); - return true; + return 0; } } else { error(loc, " cannot assign to", "=", "'%s'", variable->getType().getCompleteString().c_str()); variable->getWritableType().getQualifier().storage = EvqTemporary; - return true; + return 0; } } if (qualifier != EvqConst) { TIntermSymbol* intermSymbol = intermediate.addSymbol(variable->getUniqueId(), variable->getName(), variable->getType(), loc); - intermNode = intermediate.addAssign(EOpAssign, intermSymbol, initializer, loc); - if (intermNode == 0) { + TIntermNode* initNode = intermediate.addAssign(EOpAssign, intermSymbol, initializer, loc); + if (! initNode) assignError(loc, "=", intermSymbol->getCompleteString(), initializer->getCompleteString()); - return true; - } - } else - intermNode = 0; - return false; + return initNode; + } + + return 0; } // This function is used to test for the correctness of the parameters passed to various constructor functions diff --git a/glslang/MachineIndependent/ParseHelper.h b/glslang/MachineIndependent/ParseHelper.h index 2737553c..f40cd784 100644 --- a/glslang/MachineIndependent/ParseHelper.h +++ b/glslang/MachineIndependent/ParseHelper.h @@ -100,13 +100,12 @@ public: void globalCheck(TSourceLoc, bool global, const char* token); bool constructorError(TSourceLoc, TIntermNode*, TFunction&, TOperator, TType&); void arraySizeCheck(TSourceLoc, TIntermTyped* expr, int& size); - bool arrayQualifierError(TSourceLoc, const TPublicType&); + bool arrayQualifierError(TSourceLoc, const TQualifier&); void arraySizeRequiredCheck(TSourceLoc, int size); void arrayDimError(TSourceLoc); void arrayDimCheck(TSourceLoc, TArraySizes* sizes1, TArraySizes* sizes2); void arrayDimCheck(TSourceLoc, const TType*, TArraySizes*); - void arrayCheck(TSourceLoc, TString& identifier, const TPublicType&, TVariable*& variable); - bool voidErrorCheck(TSourceLoc, const TString&, const TPublicType&); + bool voidErrorCheck(TSourceLoc, const TString&, TBasicType); void boolCheck(TSourceLoc, const TIntermTyped*); void boolCheck(TSourceLoc, const TPublicType&); bool samplerErrorCheck(TSourceLoc, const TPublicType& pType, const char* reason); @@ -119,9 +118,7 @@ public: void precisionQualifierCheck(TSourceLoc, TPublicType&); void parameterSamplerCheck(TSourceLoc, TStorageQualifier qualifier, const TType& type); bool containsSampler(const TType& type); - void nonInitConstCheck(TSourceLoc, TString& identifier, TPublicType& type); - void nonInitCheck(TSourceLoc, TString& identifier, TPublicType& type); - TVariable* redeclare(TSourceLoc, const TString&, const TType&, bool& newDeclaration); + TVariable* redeclareBuiltin(TSourceLoc, const TString&, const TType&, bool& newDeclaration); void paramCheck(TSourceLoc, TStorageQualifier qualifier, TType* type); void nestedBlockCheck(TSourceLoc); void nestedStructCheck(TSourceLoc); @@ -131,8 +128,7 @@ public: void mergeLayoutQualifiers(TSourceLoc, TQualifier& dest, const TQualifier& src); const TFunction* findFunction(TSourceLoc, TFunction* pfnCall, bool *builtIn = 0); - bool executeInitializerError(TSourceLoc, TString& identifier, TPublicType& pType, - TIntermTyped* initializer, TIntermNode*& intermNode, TVariable* variable = 0); + TIntermNode* declareVariable(TSourceLoc, TString& identifier, TPublicType&, TArraySizes* typeArray = 0, TIntermTyped* initializer = 0); TIntermTyped* addConstructor(TIntermNode*, const TType&, TOperator, TFunction*, TSourceLoc); TIntermTyped* constructStruct(TIntermNode*, const TType&, int, TSourceLoc); TIntermTyped* constructBuiltIn(const TType&, TOperator, TIntermNode*, TSourceLoc, bool subset); @@ -170,6 +166,11 @@ public: protected: const char* getPreamble(); TBehavior getExtensionBehavior(const char* behavior); + void nonInitConstCheck(TSourceLoc, TString& identifier, TType& type); + TVariable* TParseContext::declareNonArray(TSourceLoc, TString& identifier, TType&, bool& newDeclaration); + void declareArray(TSourceLoc, TString& identifier, const TType&, TVariable*&, bool& newDeclaration); + TIntermNode* executeInitializer(TSourceLoc, TString& identifier, TType&, TIntermTyped* initializer, TVariable* variable); + public: // diff --git a/glslang/MachineIndependent/glslang.y b/glslang/MachineIndependent/glslang.y index 73688db1..614bf419 100644 --- a/glslang/MachineIndependent/glslang.y +++ b/glslang/MachineIndependent/glslang.y @@ -972,61 +972,21 @@ init_declarator_list } | init_declarator_list COMMA IDENTIFIER { $$ = $1; - parseContext.nonInitConstCheck($3.loc, *$3.string, $$.type); - parseContext.nonInitCheck($3.loc, *$3.string, $$.type); + parseContext.declareVariable($3.loc, *$3.string, $1.type); } | init_declarator_list COMMA IDENTIFIER array_specifier { - parseContext.nonInitConstCheck($3.loc, *$3.string, $1.type); - if (parseContext.profile == EEsProfile) - parseContext.arraySizeRequiredCheck($4.loc, $4.arraySizes->getSize()); - parseContext.arrayDimCheck($3.loc, $1.type.arraySizes, $4.arraySizes); - $$ = $1; - - if (! parseContext.arrayQualifierError($4.loc, $1.type)) { - $1.type.arraySizes = $4.arraySizes; - TVariable* variable; - parseContext.arrayCheck($4.loc, *$3.string, $1.type, variable); - } + parseContext.declareVariable($3.loc, *$3.string, $1.type, $4.arraySizes); } | init_declarator_list COMMA IDENTIFIER array_specifier EQUAL initializer { - $$ = $1; - - TVariable* variable = 0; - if (! parseContext.arrayQualifierError($4.loc, $1.type)) { - $1.type.arraySizes = $4.arraySizes; - parseContext.arrayCheck($4.loc, *$3.string, $1.type, variable); - } - parseContext.arrayDimCheck($3.loc, $1.type.arraySizes, $4.arraySizes); - - parseContext.profileRequires($5.loc, ENoProfile, 120, "GL_3DL_array_objects", "initializer"); - - TIntermNode* intermNode; - if (! parseContext.executeInitializerError($3.loc, *$3.string, $1.type, $6, intermNode, variable)) { - // - // build the intermediate representation - // - if (intermNode) - $$.intermAggregate = parseContext.intermediate.growAggregate($1.intermNode, intermNode, $5.loc); - else - $$.intermAggregate = $1.intermAggregate; - } else - $$.intermAggregate = 0; + $$.type = $1.type; + TIntermNode* initNode = parseContext.declareVariable($3.loc, *$3.string, $1.type, $4.arraySizes, $6); + $$.intermAggregate = parseContext.intermediate.growAggregate($1.intermAggregate, initNode, $5.loc); } | init_declarator_list COMMA IDENTIFIER EQUAL initializer { - $$ = $1; - - TIntermNode* intermNode; - if (!parseContext.executeInitializerError($3.loc, *$3.string, $1.type, $5, intermNode)) { - // - // build the intermediate representation - // - if (intermNode) - $$.intermAggregate = parseContext.intermediate.growAggregate($1.intermNode, intermNode, $4.loc); - else - $$.intermAggregate = $1.intermAggregate; - } else - $$.intermAggregate = 0; + $$.type = $1.type; + TIntermNode* initNode = parseContext.declareVariable($3.loc, *$3.string, $1.type, 0, $5); + $$.intermAggregate = parseContext.intermediate.growAggregate($1.intermAggregate, initNode, $4.loc); } ; @@ -1037,70 +997,26 @@ single_declaration parseContext.updateTypedDefaults($1.loc, $$.type.qualifier, 0); } | fully_specified_type IDENTIFIER { - $$.intermAggregate = 0; $$.type = $1; - - parseContext.nonInitConstCheck($2.loc, *$2.string, $$.type); - parseContext.nonInitCheck($2.loc, *$2.string, $$.type); - + $$.intermAggregate = 0; + parseContext.declareVariable($2.loc, *$2.string, $1); parseContext.updateTypedDefaults($2.loc, $$.type.qualifier, $2.string); } | fully_specified_type IDENTIFIER array_specifier { - $$.intermAggregate = 0; - parseContext.nonInitConstCheck($2.loc, *$2.string, $1); - if (parseContext.profile == EEsProfile) - parseContext.arraySizeRequiredCheck($3.loc, $3.arraySizes->getSize()); - parseContext.arrayDimCheck($2.loc, $1.arraySizes, $3.arraySizes); - $$.type = $1; - - if (! parseContext.arrayQualifierError($3.loc, $1)) { - $1.arraySizes = $3.arraySizes; - TVariable* variable; - parseContext.arrayCheck($3.loc, *$2.string, $1, variable); - } + $$.intermAggregate = 0; + parseContext.declareVariable($2.loc, *$2.string, $1, $3.arraySizes); parseContext.updateTypedDefaults($2.loc, $$.type.qualifier, $2.string); } - | fully_specified_type IDENTIFIER array_specifier EQUAL initializer { - parseContext.arrayDimCheck($3.loc, $1.arraySizes, $3.arraySizes); - - $$.intermAggregate = 0; + | fully_specified_type IDENTIFIER array_specifier EQUAL initializer { $$.type = $1; - - TVariable* variable = 0; - if (! parseContext.arrayQualifierError($3.loc, $1)) { - $1.arraySizes = $3.arraySizes; - parseContext.arrayCheck($3.loc, *$2.string, $1, variable); - } - - parseContext.profileRequires($4.loc, ENoProfile, 120, "GL_3DL_array_objects", "initializer"); - - TIntermNode* intermNode; - if (!parseContext.executeInitializerError($2.loc, *$2.string, $1, $5, intermNode, variable)) { - // - // Build intermediate representation - // - if (intermNode) - $$.intermAggregate = parseContext.intermediate.makeAggregate(intermNode, $4.loc); - else - $$.intermAggregate = 0; - } else - $$.intermAggregate = 0; + TIntermNode* initNode = parseContext.declareVariable($2.loc, *$2.string, $1, $3.arraySizes, $5); + $$.intermAggregate = parseContext.intermediate.growAggregate(0, initNode, $4.loc); } | fully_specified_type IDENTIFIER EQUAL initializer { $$.type = $1; - - TIntermNode* intermNode; - if (!parseContext.executeInitializerError($2.loc, *$2.string, $1, $4, intermNode)) { - // - // Build intermediate representation - // - if (intermNode) - $$.intermAggregate = parseContext.intermediate.makeAggregate(intermNode, $3.loc); - else - $$.intermAggregate = 0; - } else - $$.intermAggregate = 0; + TIntermNode* initNode = parseContext.declareVariable($2.loc, *$2.string, $1, 0, $4); + $$.intermAggregate = parseContext.intermediate.growAggregate(0, initNode, $3.loc); } // Grammar Note: No 'enum', or 'typedef'. @@ -1128,7 +1044,7 @@ fully_specified_type parseContext.arraySizeRequiredCheck($2.loc, $2.arraySizes->getSize()); } - if ($2.arraySizes && parseContext.arrayQualifierError($2.loc, $1)) + if ($2.arraySizes && parseContext.arrayQualifierError($2.loc, $1.qualifier)) $2.arraySizes = 0; parseContext.mergeQualifiers($2.loc, $2.qualifier, $1.qualifier, true); @@ -2121,7 +2037,7 @@ struct_declaration $$ = $2; - parseContext.voidErrorCheck($1.loc, (*$2)[0].type->getFieldName(), $1); + parseContext.voidErrorCheck($1.loc, (*$2)[0].type->getFieldName(), $1.basicType); parseContext.precisionQualifierCheck($1.loc, $1); for (unsigned int i = 0; i < $$->size(); ++i) { @@ -2139,7 +2055,7 @@ struct_declaration $$ = $3; - parseContext.voidErrorCheck($2.loc, (*$3)[0].type->getFieldName(), $2); + parseContext.voidErrorCheck($2.loc, (*$3)[0].type->getFieldName(), $2.basicType); parseContext.mergeQualifiers($2.loc, $2.qualifier, $1.qualifier, true); parseContext.precisionQualifierCheck($2.loc, $2); @@ -2302,13 +2218,14 @@ condition parseContext.boolCheck($1->getLoc(), $1); } | fully_specified_type IDENTIFIER EQUAL initializer { - TIntermNode* intermNode; parseContext.boolCheck($2.loc, $1); - if (parseContext.executeInitializerError($2.loc, *$2.string, $1, $4, intermNode)) - $$ = 0; + TType type($1); + TIntermNode* initNode = parseContext.declareVariable($2.loc, *$2.string, $1, 0, $4); + if (initNode) + $$ = initNode->getAsTyped(); else - $$ = $4; + $$ = 0; } ;