From a8e8e46a8e61fa7da1ac67d32877ab809e304236 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?LAPTOP=5CStef=C3=A1n=20=C3=96=20Sigmundsson?= Date: Thu, 30 Jan 2020 22:40:44 +0000 Subject: [PATCH] Committing. --- Software build/Linux/32-bit/NumberToWord | Bin 0 -> 101824 bytes Software build/Linux/64-bit/NumberToWord | Bin 0 -> 110616 bytes .../Microsoft Windows/32-bit/NumberToWord.exe | Bin 0 -> 67584 bytes .../Microsoft Windows/64-bit/NumberToWord.exe | Bin 0 -> 83968 bytes Software build/gpl-3.0.txt | 674 ++++++++++++++++++ .../Linux/eMI NumberToWord Library.makefile | 30 + .../Build/Microsoft Windows/Build-project.cmd | 20 + .../Build/Microsoft Windows/Clean-project.ps1 | 20 + .../eMI NumberToWord Library.msbuild | 52 ++ .../Library/NumberToWord/Converter.cpp | 313 ++++++++ .../Library/NumberToWord/Converter.hpp | 55 ++ .../Library/NumberToWord/ProcessedTriplet.hpp | 38 + Source code/Library/main.cpp | 96 +++ Source code/gpl-3.0.txt | 674 ++++++++++++++++++ 14 files changed, 1972 insertions(+) create mode 100644 Software build/Linux/32-bit/NumberToWord create mode 100644 Software build/Linux/64-bit/NumberToWord create mode 100644 Software build/Microsoft Windows/32-bit/NumberToWord.exe create mode 100644 Software build/Microsoft Windows/64-bit/NumberToWord.exe create mode 100644 Software build/gpl-3.0.txt create mode 100644 Source code/Build/Linux/eMI NumberToWord Library.makefile create mode 100644 Source code/Build/Microsoft Windows/Build-project.cmd create mode 100644 Source code/Build/Microsoft Windows/Clean-project.ps1 create mode 100644 Source code/Build/Microsoft Windows/eMI NumberToWord Library.msbuild create mode 100644 Source code/Library/NumberToWord/Converter.cpp create mode 100644 Source code/Library/NumberToWord/Converter.hpp create mode 100644 Source code/Library/NumberToWord/ProcessedTriplet.hpp create mode 100644 Source code/Library/main.cpp create mode 100644 Source code/gpl-3.0.txt diff --git a/Software build/Linux/32-bit/NumberToWord b/Software build/Linux/32-bit/NumberToWord new file mode 100644 index 0000000000000000000000000000000000000000..732682115ceb7300f5d725933bd9b69e21bb3c2e GIT binary patch literal 101824 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 literal 0 HcmV?d00001 diff --git a/Software build/Linux/64-bit/NumberToWord b/Software build/Linux/64-bit/NumberToWord new file mode 100644 index 0000000000000000000000000000000000000000..6a44c28a7aaa0fed7d69268ae8023618a3f940be GIT binary patch literal 110616 zcmeEvdtg-6@&C;WA|QzhiuhU(5ENqqAtVSG9*Y|Y5R;&Yz!H)TiRNXp;Z@OKz_Nze zR8di>jn)UHs3}E?s5Am4h*aa_ODVoms&-?rO%)X%CBM&{Gw0sBH+vTZ%RfJFE3;>2 z&YU?jbLPD6X76yOPYMqU)6^58jn$}Bc8SEKGGXR=gC|u>*3QsUwM(>%wJxAX;y=Y_ zg-5xXg3;imCj$Rbz2tBzb%qy8w5FhHonRExf`Nx#l2`>b%^?s}k94hnO%wqg;)8-K zNEtl-t`e$xq#o64;d(7xPr+E$UqRJB5=Z}KGu;X&f<}*m#7j@c$KE{pe4$SiJHZua zNW6lo-gT%)dYH(t?@tyDEbcL(_nWU@(0gr<2|(FCyCLZ8Ak-VX1;-~L$b#{& zu#xkX4S%_f{7G$nQoEc1?XpEm= zc&82i1q_&A{5~8012%U1i;X_r5lF%0r`!1Dm#}3p{%>vMd}+fUX`|1(HvJuAgLm1q z>$Abnv}t#dP265>V~4kF{2pe5zs^Q~8vViS`GSr92W{fqXQSsMHtkNZ!T;ALuFkO; zFK(N7+hW7N!^S>aZT#{J8$D_Ib>Khi)8EDpDK>iEY{Oq?gU`0HKjm|WRT-48w!tUb z#M?PG@^{+!CDq1mi_qVG+PPZeYf>xuuco~Y{8?IGZQh#_6AL})xdZtAT2Jj&mn`p< zK>H>1A^y~6hrlR)4f9)tH!t^!D`-wj(%kL^#ib?g3U5xi*X`EaY1vcVd7g65g2D=~ zr#yS=grd?CPj=4yB9Ej6r_7p`AdpotJcy`GpL zrMNTa!z3P$yRf9f1LNnEJX!JX%q%JHWDIU7 z^Mh-brL((Wi{!%63ZYJ7T1lao`!p@9w5Ykk#ONz` z7NbLmdy|LrJh|nbVo!++tj~b9218 z1)>|n;@xgmz9Pu@~J~dUD2B89>JG z$>b2Y?-WMt$Z`)7%R-Nng6(7y;KA_OlIzV!P1oIJPiF-KQm zdf*D#X(Av{u`H<5<)mQmN|E$MI?tGb#16Y8Q%q-h6LS%6QX?Z_7MA>vhLaoyC*w@G zqpT<=7w#yQmay-u?PRE@+8><03m2bs7$nJ2E!NC?)2iw`9qa&|`#HX~`MshdV+HPAmx*KIu3^5zN5u`R!EsAH zgw8E4Lp5rE*Pq2Xg(cdx6DGKa$Hi;crl*ac;2sv2sDBz3H$r}%ITIX-al_)Z2{UJo z8=vM*h#PLEm_Nr2OP~dCI8J54aY92d5+`k{93^n!Oe4CYNE~4z#s9hp8et`ml+sny zkAg&OoU~|^B1B8FO(}!g2*ZE$gyDa^ut!n*j*LM|x>LQ!fs^!bErIFrK=djsJd;l9 zHZZQTZy{Fp5!z;*pJYpURKM)#gVtKE;G@G2ywZg6cQn$C~*2nEI7q z!mIrqMUADVL+coL1pmfdl8R4ME+BeqO9!5TpHi8oo7QGgK15|om934Ue2~hN zB3m0o`7J6_YHY0+<-JsC~u-NrNq{GqP&61lnPrj zMEP+l(^S@)D#{O2nNnhFyeQvGWt!4j9in_Ul_@p0#)|TtRPIS-O_Y~XIflyZ$AB1E zPUToCw}|r1RHoF|+APZRsZ1%awNaF3QJGR*YlA3fQkha*YrQB>rZT0r);duhPi0DJ ztyQ8tiprGATFXRv7?ml7wayde%c)GMt2INE`%{@xR%@y#_oXtWs@8Z>KAXyvqFNoI z+>OeVnp$H;Ih@Lrl3F!U{h|E2zaPGtv`TSWO&DpTrdZ5HK2RHl^E+9=8g zsZ6P+wLz5MqB5nJ)_PIiOJzzet#zWjgUXarTB}5P8mdF zqcua6AEz>?)SFQqc2g4Xu$ zh5xA>PvsU-zM0AiRBjgK`BbJ<(Ap@gw}e!oL`5scoIHK^SwFO zjI|?12{A*Cp}y;tV-YT2yXzJIHLkGT zt~ZZ)`#|8E&q;wjNT8j(sxc{>9GX^nm8*KpB2<88(5Hv1X3RE}{Aa>~ei#1P9d#D? z!bqJeQtXSJ5Q+W}`<&K%aL}i5*;%gThsij;my3XN`JSgipXaKH97rMH@;Utpjjmc} zmCM)UuZO>?1)sKL7@H-AGtm zwUVkXlU3(ZRi9quG@Rh_0+^%_-|=v8~6YST(DdPGXph)-9q zq>jea)&f=ivY=J=ch#(?DYay%kda%mMuC=b(UVnxxP1Oi%cGZw~ z&mpZ)VKpkOY^?0DJ8B#>(pvkTK-~{>W!((DZdXzF16^tRb~ka|UV7cV&rrLMpFrIz zu6y7+q4OELqw1(`TOs;$E75AlybMMB{%^^*uY@)MdHfCk%fwncVgyTmR@9`ZcxR(S zMaAEM6j9N(s9HLwH3yl{RXd{!maljDgyk!~A(XQbXoaeREd>f~)s6{=uKqLi1}cmO z77Ha%75-Q!#Xv-pzYd>Ygk4BT6(Q~b!gs(`Gu5Bx8s0-he9VdlFtk2}f6{!rT)wwu zgH8S{@V0f)aYEoVz@__IT)u;CnydQTFmII0x3lef620aq*=*%vimDn3gw{o*^@FG< z2g}R9)6KF2NMRQLR_Nb4lWO{Q`hSN)8?wbtrSx7Q`2aQY9BBRxBy9OE8pJn^n>}YI zjccqrVtvcL_f;OPUiLkP&GKcagsd?HcKePr7$Hp5`z~s}c7z`&_-Lk3rpdn^%yq8{ zLEEX?pI~>*{{$40(kW-G2g>DpS!($_tqiP5qh=*xw}FqEaOMzylYigW)Gg;KSM{=0 z9p1rzqJ@V4K|)+eK`T^wfjTIqQE?U(tB-~)q)|&vY!^*{qM=hUTeQ*f zm0h=z%570wiL|0owR4qhXK-LUDcsI=f$e-wcCJ2pLCk}VhJ??)5}J+;l<@VFQq!0~ z2@NE{_lj%V?>5NC<=f->`jE@l?0VA=Bh=n zeg@w+x@zvH-olonMe9v|Uw<;~3{Zp}c;IXkos`l4DAa8m6IeTpYflMU`!-YUd8iE? zS$LDbg=j`+jGnA4gJStjD{lsXN;RUaqQCm(#f0{j#{BVqVt_XFt{M?C^b&$_@l(RA z0fW7JBz2CuL4)0i(d{o68q1#Dg%wtQwP-OyNQD0zzJ&DZXQ;Wbwx2_dnbaHz{}kfK zXe7iBu)f{?7k59JefvV6Jc|NhDp?Ko_1(Z{Q}i) z?TEIyQiLB2t<^$PsZ#BT*O~MeklJoR?L1j~q|uqjH$bNp>M{&deKa@b0kX`whWKBw z3~Jw~b_-Ptr)r&Sph>_Ab=f{I#jLZZ%sC|K?aq#GE<$&ILNw{VU${uR_|pK~n|7P* z!Bw%)>Om>xR=uqe?XzVw2hmL1jdB8Nq;|VwGo)sudO{?F!-aViA1{JL6YIrPS4>_i zxSRal4DNr!Zj@j|pqgi4Z|BshY2juvWYl=($1DRrMI9KULcr*rVJTyv(fre-8h%auE-5-w#L!wx@ z7`ci_+qyv`z4GRsvW*(dXuen()lL3CiY_|WE3peu-tD|s+wHuMN58WHybWZrTc}C$ zHla5N~;P5wBj2G*^px}Ii=m=(3q4WA;sF(SpS7=&!p zdNoz4ac&h;W6X+yT$JhTd-&a7doc+zTWY1Slt?UZ&mv-z|E>0pjwa_CNF)W;$m+`w z%>LW3yA7;93DsL)0;_5_A!fy$R8gtnU8HPNLoFeXQabhyMm z=G)F;O3na;u$}~`4Ug@OF3t)ov!&>746k2%+ittES>$&()wd_94TcMQtisYJ= zs(d^^se?CCkDL74|7}ug10#P6q@mQiPe7@mos=4Y7Fz4gCW%?`OBAb?-K%+3-pEyrQD5HR@r|o=GabPTIZG zo!Ghop8z^RSMB|hZSr8SrU+KCA1drYtlhzaU9W%!YX(@)Hdx0B)*fIT4pxE&>te9B z-9QQmsc#EbI!;OiD?y$0ZV^+py>}Yi1BJT1z%>Hg1P$&z6oIw9A2ztZ7B=Vut|V|1 zG`QO(_pJuEPsqLyTqD6v(BSSv!>zXWwFdVELT@@2O9nSVgF97nUt(~7CS(r)R|>cZ z8r*as3fW&@uiNAr=nXdE2H(nN3el#O2LOO4!ceLY=M6__rE{@%+`wR~rtP(?PJveVnsRoyn&<@?ZIg)`H(PoQMK zM;)j=;$BFCz$-H~%|EFPDaj_#28%w4K)XWt!amT#jP6$nW7!AV`!mo589g%ut9_uo zV6c8FSVIQd8iV^K!5uQtN)7I5A{asjTAIP_5ZoaH?NWn#)A0kXBU?8}q|iHLpdB>0 z_Xh-8iwrb>=Rn(gR**mw>@~H-ZV9wMAWHlLaIS3%wBJC4tM+(-c3xKww5^XgD9{Q; zyp7p49f9_~p8}1;qL!cUjYq8R7CEPL?xBp$$`7EwhT-*>AtVheK<7wJl*$=o@BmW2j35l6{1w0 zdKy&?-^=XSImujr&45TUFFoWS-#-IMNHTk-!uNmw1PeCdRAeY%Yvr7xCbUUNL_DF* zKu9- zt|mq+W~}Zqh@8zB;EJ#bl;(LU#lKOpFfNsDi%>A7aFK~n6@W+0+Ewu=O9W# z$3ze2%>c#QOX$eXA*u)2=9HJ;?kBE=;A(ZyL`aJ|eXjin z(r}vZJwpS#xstw}*M>f|&zk108tgA+fUyyA`l{TSV`CmGL_xPE z(uj6?5ZvUaL65U!v42+_uBKEPO5m9xd*jQ%)>;4DNA@t)K|Ih^)-@^X^3CuIo|+l$ za@T!S9v(UUBI*3qpM*Z>t(tTb7d+7FE=kwT1Z7QU49QUR08EFT&w#fA@4{-FKsWi{ zN9SXk#>lL`=Ni*AuurWLDB`>bO*t4 z(XXwq+#LyNF9?S~A?!C%&o9c=yOMe1qpT{ON@pY|qW?vq^j|>gvHlMQ)1U08^zVB- z{l94evpgO;2424?pQ`?I5J9%~f11<_rT=bHiS0iNpF`R|#n68&=`YHss{gMr``GIL zPiirg{#{J^Km6fw^j`u7w*T#@=NIKu)&G5DHe3BKJD&cNNF^2j9~?*j7r?;!Z$~}9 zD4(kS7lqP)0jU?t{&$f|tbgC*>Hp39y8g$&>lfuy)qf7wN4EBVn$!!W|87!A#XmlW zj(nUIPh*e}YmL;5-MiR92+_`pu%0Va(f_&$in6HFTa_1)uWyaf!b z@r$VE7iE(RcvHSzKYu_}77G*}U;h96wWCAU^TqlP)c z4ZPUsa~?pU8P}cbEAd8>yx-`Kp7@i5O4UdE)0#CV^)G!npQENkGVM3AijmTJ5>nmD=nWk3lHJWLJ_JPT18S5ue|3`+P3p!a` zjn#ozEjGJeX$hy7172x~aD~BeyZWfxFgoh4KAbAos_i0fK8Fh$Y0(M~HmBoe$m+qG zIk3iztupS##c(g^iL0i6qGebSJN6I#69h`GWc!g`REv-GuR)pKf#KrCC}JDR75%8# zmS|eJ{==|tBpFt8@BsDqR%%10;7=(=1G06LfB$~qs&}OtFSG<^IIAbPI%ob)3@I;M3orEXip|zbSmXd7^PrP7wVjfW}o=8Vz>Yh+Lu~@a|AXhGx zwx`5$qEmf>yz^{9VqA!LR@U(Qpplju%^8^9ix?uZ z)hkDFC%(hA^)LJ6IO`~y0w4A)a5^f<0V%nQ}RDbsl=OORIo9eXSgnKkksAKeqtb!g|d$dI8 zXY{Cs*jS&(L=|g~ek*DO?NQ6s=+Sc&do00C5`y%oyXcX5BA16U0e+m+OmAS~T_WjB z8b^J^^x&(cK_aGz@zg*~9~4_?*bNs&yr;AiSLfz=K_8n4x7v&_@E_$v64NOVA@$ja zYUt-I=Fe(n-#Hd{%1{sJmT0KSPk$ju<=f*Y1Ti7)kx?Y#ZVBb1zzK=wQptgAL(<74 zcBdsb60;oZb#G!uuYqaJ16%cpwLP26h_NV&LV<@#08=l-{HFS1*flj;KR`mfb5O|Y9iDo2i7v;CMJolh;%x+%b;`J(+!9({z+K|J~# z;j4pt^o_q59#x*>$n@g;OOH$ot*;%eCKYpwv`omkNN0+s7~_fdVn~(6CO^H$se%RJ zMd(f|Ta~(M=jG&~|pa;n5*o&A~?0fV~0n6*>@h}*%inK5U*GtBXC%IUSS%M^V z52zapJ=Z ziFIfqaOJ1>S?|TACP|iP%s!P~N-Is_tP?(;zY2lRZU@s-S({BPqq>bT+_-y zSw(0X3!`ytQBRS=jmr`-15z5q_%|lDeAyPlH*n$i(H=^5W`96Ia8azoN_s=O>r_N$ zpxr&NL?iaSTe0tL=%j<#?;ha3mf`A77-(uEB%`8Ox^9++X@LwmfbhMpt3ZdqCjScI zt|k}_G+K{MZJ?@Y^s+wg@bMldWVW3rj9RO2SC+|idBEDy@0yI9&e0kw@;-rV-6JY8 zIX~=|G~H+-q?KLBA21x24ysSkv~%P=O7px zTdJBm4Uy-PZFP#gn|Gg{$XiA4caVVsB5xnAq_J0N(Y^G8B5x98c8WYViKO+SWr!{R zvk`fgNILs0Q3dzPbmuAqqDfuS!fQ>bXvj!&mfGzgnqt%u5P8+h+BGi*hwwcH&{PDZ z7;}G?wM^-wQ@F1CniC}|iI^7^U+h%z1oF;1s010EykE3Sd0(EVQ98k>mj|KdR6^f_ zq=Zo0`|3En04`ps!H9a8$u^qP4s9f67z`?N&EClEnvdWrr>qFaDQ z1Rx#Ji6*4}hQ9rQl}F8t1C|wq7-220+8*JuMI8Cb%{LvjH97aN`_P3Z{~jTozBmRo zn*6_`VokhM0iQ4j`2I$OXQdWe2r-LU#4CJzC|JkY(cpaXbZC!ox2k5Zd|+B~X8=2n#ehm3#{IMA!c$gOD^vz+iVL z(e&L}f5i@R`A+|f0;0txe=|P%Uwef#*_ELmg$6wwcucgXFNmu|k>ZC!%TFfuVO`wh zuOULfn$UrOKY{VnLwc>Tw~!#1T8fAKS9GG4mZ9C)c-9z{og-X z{pZ@~Uj#>=i2li_Z}90eHhQUlR#{Q3kgzfq8B4@QZ&X$@s4?f8=WQ&q`j{43B3sh3 zOU>reo}DGXM)sho+i2`4Pn${X<2j3SF3s0-Wm&{m0VlZtW;~q1&)T)yl%R6y zAe4PV6zQHF3aU-Dcmq!9NN=qP^YCrZ3YHADt`KTj%ri@9=FLZgjimc`$b0%%D2EzW zp_wzlGE-!xmzKGg`c+Gd`lihz>CMcvEfcjA$}V6knpp zL4L0np=0%~0(D!dX9)dmL}R_R2O}2&A-8Y1wp?!=!PUzewaUrpJ~*5F57GKI#ktj+ z3|G?hDqQ)3c()Vll^G4_-~pbMmm`4~7nFa)cZsaybCvV25Ya$_AAy~v+g=Fj$X%dg-ib6&1pT8F}5|&>8t+9{ehy=ovXm%ont(6B+p{PO1SJd5Kv^YewErHKci#iL_!dPq@&` z$jE=DB&xpD9x5ZhKsz&K8Jmp!p_wO0My`cMoig%%u^+amc@w@a6)GeDLhN|;xG~(j zP)M_L?-AN%sZLlkauc~xnr=KxF+95WQxR74P+KG)`ZF=Q-9lyL<)$WsX55Oay5O&Q_O`bBhMCL zY@3lk+az3iyo@}WW>9fN5}1+aZWcB&XJnOm#R9v@e>U1TudY?D?X-ZU!@_`Li;v(u zRg*I0U`&aAB+wSje3%;K{oV$g^2#+B(7XRM7|R6zRdj=i#Mhm7+rOh1%izhu!RA(d zwN59dB2QCWF0{2r&9c_nm8Vtun{Bdba5nizeu!3w?4+e1E!S`la4+4F&}&&DUyh&}2pV$H@j zf_s|$_)fLx5t-?LE7)5d(2ZW$;zO=jeHA25#d@PhN3m8=dJU&;%D-8oZiHxGW$d&9 zN}Xc}FMSCcL9?^ThQcF$QZzyo=?I%RV1JwkVAJw}e;5&DD0R{?a9c^=YEtWr&cO~_ zqASw8aVAdI*m8$Jyf|EzcA_9qst6tWud1qpwKqCcQP5ysT z&cSQIVlSaKV8iego9gy3#A#p2Cyvwv|Cz!B&gQm1Ci*Syjz%J$;4grc&^ zzf15_u(WT(t`2p@cN05+4vcB6&pY2>;mE;A9#7Jg6yzZJ(q}1o7;zEcQ9Ty0QLrq| zaXzN!2M2XKmKQ|ePNS3(V3U7Y>=c<-Hr{P=myhr;RR;+FMyTLD@M6Iy$vV(e zm~Rg0jmDb%<3tB3w4k@jLuG##%bH+P#h<$4MQ5kAoOy5l5%rB3t(j=c??AJzNC8$Uk;ds2|95`YO-pUO&yp*l`m_{d7Iej3pg&MdC4rAZlMBX&b zeH2H>8{^AF1n6U2zSSr07nXx^+%Zn?yvhk7V2lU8*W|DpVF6?OB02~NGRCigRg}%t z%%;y{kc_M@GW*Gn@z2D|VCFHNMSoApa*y}IZw)Pe&=^m}uI0xV<1>YyPhyOZqQ9Xe zB2bO-jQ{c}8{SZ3{6F;7KAJs0^f%$_LzXeF_8dqOG}6SF$C3_7Le4!U zXj1KgtZSr$Bo0|*E1+quq-JppP%$F0HP}(ng+7ZNfpG~Dt2fB|u5HNFkSKC_jUiO3 z)_IzRmc}gqG$|7#1B^ijSUGDKed29R>#lFHxnYxv(jJX?JI7dnn8*RAZWWMWaFJm< zYcKC>mXq3Wzp+R-yB+?rB#^~V>YXrhR;*=RQe(Z4I-ylc-%bj2h!78a+2`vgPE>(_ z^;DpSx<1lulzI8Cu>omDcaoh^p9E8&QBBd>Y4iSI0JqU1;&m@pJbG)k&Z)`hV+yZ% zSd|A0uMd8s%Tl99%qXVV*WdW#F{YNuVing*Bv_h*>&5*Or} zMj1->_FM&iy@z)8Tozyw`~qM86X`X;p8pc}V7ficD=)-HxnVsXZMvl`Rzf@A9}j*Uf3(ZLI~(O6RZp=( zhXjG|Gc@_#gH6^l-PF*zG=fjlpuXkagW ztls4iFMxDjuS3{e!+FYrCOggC5nzL$cG?eh;JKjE>92$9b_zRjJ1u?@dK-4ydLY0~ zb%A!O2(Z(iu}7D7n)<6wcKRNd?0zR4OLnRiP}u2l`WR>@8gE}+2CWI#uK zBv~Us%pAW~U%Lx9v#v)yJua--D`blYkK5wY`>FdhHz93P|HRxh7y)L@A)-?OE22tp z;Z#dSENe!G%kt|2kVaFcn$rxr5d?i`8D&0Vy6O$#4)Pm~b#e5*c`IIwbKIeg*6kfY~te3Msxp%*S)_eiJ2$YWQ&yM9#sbs2G7Dg+o`5zmB7wZW9-|278n)|-=A-lfUqX&9anxe@mzkP62`cQtU4(>O) zegi~ukc8~{L%C|4c>%o^wWZyNrZ-4Ob!wZhG^3nz6ImM1e zITel^M~P=aj<;~3su)M|rj_cI1y|7eLml{OXNPB@r^JC@1b39=6njMF6RjVoU3q0m zDSj|pz}%d&LN9()vce;arNzZL;!}QQQBj4rvW695P6nS#;@I&j4rJnNAxD(YI&Xdme7UXz^qr9c14*b^pf;fjM6moM)gw^JI z9L1&O9>f3;!$z8VgAPIi`qk$+Ek0h0*BshVhX&UWBoB#yhz62CU#S)6l#Lpd;}v#Z z=*jh#mX8|cp2|PDoLk_@y=9cc?JjW)UQ|$+TR@&0xU_PJW9%5TUs!SFSo;0$!9y%$ z%`C|yevX)bSzRN`X!sd>&AX^n!*9)cJX(HfWx1A**wrcu7i$$1ikhczL4j8*f!j1M z6^jJcyU0@nHnd#s^#DyZ<%hz20U-X&7V5{M{AAs_XZQ1kS! zsJld}ute5dq7_t@J;0|vMU{73MuL0jEK)Rhv2Yd(cCcq#@E5^{w}LJQ91WNaI2$k*@HW6@FLiW00k|4)7vOrpj{tW8 zM&fm({eS}i`@W2J0K0BSzW~n#Tn#u3a3kO}zOv0CB_5qFuJPbGukpAAY7jP(G z9bh_O|J{fKz}bLn0ZRb40!HKOT?YUM03HQQ1?+VZau^E|}r9bJ2f52jFDDRKNnjd4Q_{s{l6v)&uSXYy|ulU<+U@Rsq_1nidD> z0L%tV1)L8!53n4t3h-XQdcbD@8v$PeYys?r1%TE^)0P4{09OO10zL&e5AbuqD!>?= z0n`It4A=SVRiss2AB$%1UL`y9>6NVBY^dQU0z3hKnGw8U=g6! z7hhoobO5deOa;6itMqw*YXGYN8vyG8KL%_BytoF3_~I-|pxb3^*4s9dH9+ z5#VOP)qrmSZUnp-OT}iun*rMay@0X!!}#|C#sfYIm;tx}une#nunzD;zy`qo05$_g z;_r*J1C9lZ#UIO`2^bH!1~3EgalkUbPXOxx`|n46z&(G%_yjx%cm(iY2N5^;S%z-` zlL5QDi}3j9qzYy{j7*aA4$L(g7|6ECAdKxEk;n;6}h6|G;A;4b!5f^}ofX{x6egp0STnu;! za4q2HfLj5FeS*9TSO7>rxVjn80k|7574QJyJit!@s{lv+6a5Cf9k3B_HDC+ipjPyI zfTkq_4gkypoCsJ4mZ-UHYS zxEZh=@DO0^<>(h+JfQ1y)Cas7unce$U>)E-zy?72RhnkNL0_OgU@Bnj6`FP{U_9U* zfEj>)1S|u56R-~OFkk~m`{I#^P^wjApTe%#$yCN^o*U*sg28P;TOn{{3`~A%C7xe+B4upkHmKFEr>+fW8s* z6f@mx(075p8+1$uhWuFu{Ugx-40=y9Jx$Wd2OB}(4EiQ~j=Td}DnB@@Bf{4ka)yQ@ z?w+=na|CjRf-dAZ?d5nOXG;h z5OVfG&Kf1>L3=srkaO{G?e(GikshE6edgH9Sp&WYLdcm7`U)lIQhPb?fv@L=;BkRk z+7nFwJ^8)$(m?w>ZN$eu@U4X$!S_aRK8o}7NKNbayAb^cJr;B!=YD%RYrywV2syJs zU!~;SWH0AE@SVLeME^l=LEc)_1^vI&B*#@95pi=DVF2pafGFf~v^N@`^%z=Y*yk|h z#NOA@aS>qT874UxKN06d>T-%8=L5*W^liwQFXd1>t3m$+bWD#1-DA)pe!5ZL3;G7oCz$EbaS2$cAEQBk9rVxeIr5+V3>nwbyb%6(l0`baaq+@QyU z9{n8lIA(fp4#bRZ_VX$!#{t?r@U?)C)&!B=Onjzw!F%BO3Or|nN0(z-*L)AUAM}UJ^zb#J z5whil-LMb%y}d0)gFY<;eKzQHUT0?udVM_=bURy21bsB(H(j0u-Od(+K_9#+xUOU?7w7|Q=nl|hL3eekT3nLGKbm{|wNhL+D?|_3iYl1HA|8 z2a5sGf6%{$e}b(6h~5nPr=Z*I1=^V&Y|K&pSTy`G>f5y+55ha3&otXVJWDu$>SusX z`g;QCGJuF)26`swcH^)P^ogL`#a9F9V?j?3kbkY-elzGdgKif;?Vv9J9l(em-V2HT z!?4$b{<4`KzEzhW5Bd?%?d+cc!bhOn*}shGcJ{9W{lgIYHGuv)=yvvR2EEH>d;7P8 zo({U5{bOTcU(oIB9}jvm=yvwc06hw1A!rI>O$NZ#ui7yQa%P2b)1Rt&!*s>iiINx|`|&x?Q}?1AP$a zcH^lEbn?+?bNjrvB>U8ZJ{okp@zMzT<)BYA*T2Jvp%&1m*~oWL9UK7O3_87Dt;Z^2 zAmR}^eUoEq0C*0+7~DoAVNKLWa)A7XJA`61|WXitxaLL+Cy)14*gQ_XbB854|{ z%LY#$-2Vof101O51^rym4_jp%GGwd;&j;XfnR&PolCc%^E<12`Zl;qSrm_7Vc#^;~ z+{{yAwDCRYlR>u|TNfgIC)?0ThtZ%9I*tzWz;iu#?Bccx^x2@>t;g#@&j;NuZW}?T zH->}JNyiq@sgEz_^>XWCAC9ru9l3PJaSJ|6U7`GIt30G-}VxCWmizXO+=w_&SFn2LDbVI7i) z=Uo%et%fZ#&d1&ya;AVsmk}-}G_pk*=&L~w<}aexfqr`kdIRY6u7q9vX3*z@K0Tm) zIVebeJLva4a?UPmwJJwU(0 ztYf}m!!@Ay2|?cs`T)?$54w$^107>gAKw9e6zF!oUI+T+pbKB0hn@!UHNBfKiQ9<$ z8k;7?WAgQAB-xqZvGet8&{u$N=d0U5Ul@YE4)lT$^p`-N1-hND-vj+_(CvKvJ?PJZ zZs+R@Va#=)hw^nQc+PIJ@8dksBSE+GbrtBbA?Wp>UkJLLuNy%h26}gMEST1hEudcv zy4`t!hDoYF=yv;k2k7)}ke&XipkD>LUH+a2dJ5>l<}s+IRe_!ZdV*Ph(|K$?=;ff> z?I#;SzZG=5`K1N)MWEZoh=$FspxZv=gHi1u4RUmAk0!LS9OgUuM@yhkGa9iZofZfDVXfRt35j^kDl*s$UO!J?M7v*$DdMpxeb)3+Q`6xATwYz}ySEZT~^v0=jMgL4OH! z+x~-2?c4Sr^j)Ca_8;_i&~5t<`sbkA_8;`Vd+giS`e6$Mx}AL-pofEQr(Y`QaUtZ- z1AQ>)cH_GW^pp_o*Moi;=*b!$H3ymQTN**XCPe!!EZ@%lc!ym}3{l?!I`t1>WVCO3 zw;+}2cKLN4=)+L|GIM>t^Q7~V!Jv-<{V{xwyswMVhP>;$pH>Al4%UNja|k{6fc|U< zJ^f6#(=!@`O(FDbM*VF{&#v}*W&LVhyn)V`hk znV{3Vu6FVlgZ>)mgU#*dn)(m=JD@wvbkjZFR;J?!%dn5U<`D660Q5hjewvvM8`IGU z#nVyH>D^nqaoq<8^nLdRexty zGVIc+4UzZ>zDJ{?-slqX`>3eryF~1Y>ibxih;O^}{Y_VGN7pD~4_mgmw?pgb2Nh>K ze{{Vs5`{;5;K&8KUpVZ%yW>Z<*vYrO2+9~QMGO#6KpCLBlzh7(qqchxV$w5PZSXQV|HY0J4lh5#2zedsLJ!eF{b&l59Z9AfB z*O^fd_tO5puYxP7=h^{uhUU>g?($jx^~J=Y)Xx+K71YI*EAv zcz1>#g->R|O78|X6sxJXFYcL8Px0YvtD=8k7pP-groYiZPY0KEJ-OVI>G&G0sITlI zYyEitwyx4!VWx_;UI=d3@0(Xo?$-2g$(av z_yEJF7;a&>o8f+jpD_H2VHa@`h5j=f#4w5BB!<^Bl-Bz3|BY^T1Qi;F=h_JqMmYx0 zm|t1qt#pixON@)ZGNDqG5^hgOj*Cx>OBf>YK}G1u2xOaNH6V2?zU!=oYuQ2Z5gL8B z*7`(fk$V0x(;~DeJ#Pf!yJ#xE1me4DYTO0lqct^N1Mz2QDlY`$yJ;$a1me5vc{C7@ zEX(m9h(A-C7sSsIT2HMkC_YA0c{xx{tmfc+9f&_myU=IG$j=el*;@U*!SLs3@!Nvo zdub~Fo2e06Z$0k^;?LC@gXEnE?K~}5K8iqgRrxzm4rZSqaT=lZ)l!4v)$C+Qp)?+; z{inmg$WJuyg~QJDeuDX-`$)pmdk5yHALFg_@JQgppikLb4#CdThBisyJKLuic#>Zx z*+m`tX9@lb!)#@>^IG78>HnDEkJSdV-&MOW34CAeR*OEbG5-(?e+%O;x8Oemp7hM* zb%?l!1nwd&qlwylaP#zh?aEbct8%IJ$o#{>E!1p8QJB3dSFuAk1`a`RilGH_w)MUY3aOfA$MMUyJ3uDi*U~xd950{JB?4er2~u z8Natg;#GW}kHkv+!>*Nh)ovc+Cud3gKnb+l7#~Lo5RbA$w=<=jup1>_^|zSuA5;b6 z!%;C-J6{`MnHSCgp7dEXO7c&ZK%36^vp7CSGyY}9U%_#RqIePzkR)f&LRnUJexC8q zvfq`zF2{xX+2C&&Ao=NUG|;mGc#;!)gDfjKk!MN##7v3rFM&osbx-`w91r6A7oZJ7 zMOBws1y}+k@gL$iSN(c|@n3PAi0@#a#?o^n{|Bj3%I_u6-eLUpJg(Kan2UW2$)CuE ze3SWiG5((0CE_y1)Avee;>tQR3yu+u67sWw@#J#ha}K0KmZW`-5fXy z-yrbJWCHtu57w`~mr6O)I3AL?&Su6h<@i)}Cl8SPF7~_X*HYlmqIK-s4j}>IEuIa` ze~kO}0^>bM;H3XOYzLT8JZ~`mZss4v_<{I9{N0#e#s58w-_CJ9k@<&)QGa`COC1tH ze`AZDec)Gpkr?@JFC-k2pPwnq2s804VSJA4$?=U`TsYIxG`HsQC4RWfec#<&ysjOFp?D_+b5QWPX3Ol!Npu zo-r6ur004LK&8)a##`s{Glxq4-Lqx=ZY<{>#ursdL<-|Cy;AZ&$L%Wo&A^|9^@H_X zVG;8$yIKlRzh(Y|tiR&_ z*)S>RtzxN<^6w{%pPeD`IjsMX;ga9F4!nW!u@eIOwTbZ)u9tXax0FOFXM4KDtGM0E z_|)YR?~p)?9wGUsF~7p+GrllSGOB)k2RyAm`!q|=XqIyx98Gqcd51*wVtgLst>bGe z;|H)El%8i`!Xi1*+%J`{Dj5ISZBnqZXSZbLUlxe>GTyqc*$=$x3#%x=IT#?p@HxPX zacao}8yR2B^Qnu4^%`X(2Y8Yb$K#jHt+g_Ke3cY{bRnJsj6>qLt_Ru}AI13xX;wV{ zyr0_beC{-0w3Ku6wUX~F=D&;a=T4D`HyMAJ@paQALiuGG@-pd@&vsUMGHk5GZ{xU9 z{i*`~EUfGLbDUtB5YI;D-@9!}vqx5+5Uhwx994=SYOILvpH= zQ*?*KKg0YDjDM8vrsQ8ZPV(Qw{d$b~Ut|1g=u6Kg3A91TFJy;?B8gD`x*2$ym#f}# z2m;cMcphf{!<+|Hj9q~7Omg{hJwY-FGKp-Xb}pZ;@rb^P|9F8OD1ys0>R0Qg{j++c(MhUN6PjF(xMS4f`~ zrBXqdMLhd}4<^6Qb&@}^O7bZ?S2O;0wvWQkE+;w0`TrHNn$|5-%DFvDB4QX{27It~ zpJ)C%Fkb1Qzo|&imp1&-kW2mQfq0=OSpv-oJmsI%w;ckb@(<}j{9zohO8>2lf0FZt z!Vk@s{0AzeV5Rf#fmffoNddwU2f^^y*x=^?Px?H|c}e;G2;;|d{#W=!tOJNY+$~#G zd8rKeVC~+`{MPt91N|g9-*Ns|b$`ux>wFiFyhHrWOJ%!p-03Zh_h(9k%7>TSDEW6= z?6!{agLyrp^7*%nU(NE>_?kUS%K79LDStS(y8(EmGou99&HVQ=Kini9*G;U?LRs$4 z_ytuYr}O<+E%QIic~9y2D&yzgECn29IlX5~`9;VF^rT3j-NX39oHtbbZ)g0=7=QGr zcsmDtv>zGF`Cn2s?GoV0{-Y2V^t>#A7LI&Dcx&ER$aw3y_Y;h_<~6$0`7bB0-qhhRp@k`-1dXybLV!U;~<>jJJ-*lv^Z!fB1o(K@w<>F#ap{yYknkj9-ZU(W7*jR3zn$=l&}E zUdESYNq*(Wp;*6?p4RiI*^JL-IakPP+BU|I8y_g=2;;5mmI?3&$sfN=@?Xkwb~FCw zX%eCO+q+cq(|k_P!xCtPjL+wB%|P4C_=nlfs$W;5OzrmJ^`z4OI>uKmk%Hq`{$GJt zwqle3m)RMvg&OIVG2Xfke-HRz_8fYflyffUG2Nbw---N6j~aJh15fc|y*G?Nz94<9=S9W92Wz*U z`K|lY{jkyya4#vn0?y1wNSkm^-8#>wVlqj6aX%3}!hkjPCzsv*zn2^EgzXznJmjv2(jK6)XM5z3e z2)mGctG`}m{077?Jt_}OSSk6fcDoCBrGu;?|9zbKt?P%+82_)?l27@o@-CK-d7GY# zB+w2p{;8=Fq1sCMdGK~;0Z;vE#(YJO;y=K6>$*C6mE^BtMbtRDnejIxPU*Q+0_`)# zPiDNDFUovUj`e<|jq#siexPT%1X|VIlK)kX6Xln#H4=Y}^GS^2XM9iY*ENj4c(vrW z#@p+R-&`dbRi2z$YuJQE2;c#p)?M1$4pEM0;zPibJ+1r4{}cS@YyFxfe;D(B$NY~V z-_VmRfi~qHDaU$Vy^is3@w}ky{BOqhN4}v)*}41|QqF9auja2e8DGMFRO2hYPV!st zTYtv*^_f!sKnb)q;3;nmzCt1{ij;8LFQuIGt7KW_jTMZy&I@laekl7_#dG4lQqJq# zuF8{Z89y5H4?P!4pnVIxgFlnt|X5t#gThC9vW&GIbk}-w(E7nLk*7*NF z;FU~syPw(MyWTJ5e8qlL>!m4-x85WFmhlfcrSzWM$os&P{bP|Q=;5@gea8H&3M5{= z*Rk^f*{=0|_R0q({vgK#%qX7c7{7<@%w%ooTFJkK$Ms{(|1RUL^YvGZcd#6#|NMuf z9P4`^&oJKlzR*#|ThDEhAC_`P-6$1NdM*T>#%beQ4na`k^tZqV^VfEkGmPUTiTgG4 z5h>p>S0Yjv{{`c%>xzPPlHY32Pk|5C?is(5{MPrTRxtkZQL@3I-0qW%f2v9%ls#h~ zm2%$Z@!psDp9VfyyGMX`Fpn8T{94Mf-kU69{MgZwTeaJu@VtIdp*yF%JZFg;KObC8MgU-<{?rowNz1B?~?H1?6(7T_A^h*0h9S)5I@RXP4ekTAr7p zvnRQ7D#n%MInnV+nd7E9-Ogzf-ENewoi@YmbTQI3F;jC-ym8vNsc92H3ouJwAOhVe zN2ghV>60d9IkVl_U27ji*pvc=~t?qnNzZc32`ZI_kxm2ckbfF2_x~_)}`geh=)R$fh?VtaeS#+-X!@8 z*J+RlJ@7ADnlOx-7|t3)GBuEpFl>HK1zZGg;FrPEa?zIr`T=q`cO%yc0l7|RP8QWp zbf>0Xo1Qj)!pxcO;rJHJuml*&Q(j(D>MknH72ahA_prEOaU-O463cQ5%hRUh!caf7 zS*V?mmYX>)*_{>dPM@EEeoW7HPtT6$ZX~-i=R;MGC#^8c%k31NR6FQ+ygLiOYm8D7nW3DRJkil3U96SxXVf_oS9h(*2o)P;#p*LFzpl-bQ--Lj-PZ-J1G|h zxgbF(nsW$tccBLB2vPX6BSEKngCnCCQyd zz*&qAj>HePdlr-Bd%F77LIzWCAmI=L9)1K@Ap_(M}-yVXP(~B)D#tcUX!_5=inQ^l1Vr_h6dMDarNB z&p;>jv50(&k&T?_LBh$*3e0!X$U5)o$vFwb4fU}SNXwca6QRuK6Wr4&IeAT7)B~BW zNME?nQ24YYn&ewNOAwyLWhd{u5%aM+DiQS&)cK|5i*m~I(r6l(l1mdnrkHcfJ;kL9 zJ@8~cR#Wg~8pe_{(YvI~BZh-90uwrAvrgtxA$^iVAJdfTtzqrcG9{_ZN<%eZ0#iLY z$w8W1M0qn=&a)>pvmqeGpe9X>n3d6}lsQTBreNw?m{U~dEk_d*Z-|4-0|hQsd1^ zdGd0+IWl6^R6PP~gGw4})3V$rx)^t66l2F^USpJaXe^w>3IIyZmu*8K>s|w!oOpC2 zOKfw@iI`&SR2KE2a`)tE4(tFozy&XlD?o_T9B2IvA0dm zF3l2KHRs7VTZW#VgHF!^CK(nr=5tz*{EzkkofaOaxuaNU%H1I^GYha-H*d2-&M(+r zs%;o7q_V?_W`vQn-pVQW&`LhoLjHIQZG_!)EO@Q)aaz`kShh@6EAuq5=9q?zgMm1% z2!{${oH*2X4IZuU*nGR$VTexHhS0(Yixi?FqC2NGyPKB@ z>|KtWPc>6Oo$PPjaa)ZEHJNH5@e3g2(=t@Z{Q+12hHu!%oBE z^sgaCAfbr^?$RYPXoC%YWG-vEJw3x|7-?5tTK0ofJ1sK-opj;wK<<>R$&&5$zZ)HD z8;CR-bgDVUf#JE8k`Cq2wCOky%quK$SK=zb8Uv@r&?8}JTIAZzoum}ZV62}`i&lx^ z9z>p{pYFDQthF02Zcl3YZ*1Jfk)GON{m=t$v)@ijM#1HbyS#8gL8x#NW6JF3M9LYIbUYOCO43(gGyc<`G^1AW_?)2n&MBtSE zzsV?N>V);w508w4_R~D(X>*91%?j*XV5HzV-+b~g4&FH7GhkeC=E$w58<&&01*xgH zxEwb=&7BZ8oTKfBZnQ>-t5RoRo=K+;9Lyd4^wF;5R;G%m*F-8Rv-!Bg-r=rBsM*Nxh^+XC2>G{QrT3wU%vODcUrC?I~|ao(8(3U_>t=VS9Rn7}uo&T@7Yl(5>D8uGWKuSOg5Q#*rL?jL&8ANWRzrgw6la89k1OxW34?l zwr8`Gb3o#P5aN&v(h4LHH@HPy$Q4DAa_5p893vqR2SoV(s`{({s_trcm+hL2-!%SQlZEt1{tH+xrtfIGc8ULepjIsbuVbK+al&{cZXso7@gbPghGad=pVEr zb+D+g8!Yu66b=>AhD&K%RH)ZcG^tdml3AOCsWw1Vlq4~h*(g6gTpZEkPiDR+L9wQ= zeO1A$E%$-6YO5>{PwzblW*b@J*7GE2f%BBu- znA`b}n`rptwWj-Y85QKRg7ve(e3Bg@%xjcm**f;)#pdRt4lt?Uk8Kxo_cFBT0fMw= zbJ8~#+2lSs>OvuRR^?0MpLINK{gHOT1%-(cC1;_p6Kt(erouCi1+bmHhKOB6pp*D% zfXW#{{ z>q5o3jV0c_R0?E;9Mf^Ex2?)i2!%AdPXWaaWz;b{$;z^~L1M}-Bi3Rqg2(t_XW#@; ziWQ$-a*ZTfc7fPnSnNazz=lIsv%^P^vS~h>PY6_7oMsQtFHx%-P(hJGL~8PSO(2`B z5-(`2gr;>Q=$lrMMX=TqB@Do;3ZtZx|%o3B_Vn zJY(67UBivz=%Bf;V5QM0GAzWJA07jlP~yCr6dc*8)_!{#Yy5rAsf@a%*z{^o1w)VM z2+oM@40(tT^0E)YCgUxqPFex3jk2%wPoQD@%D))F=>WC#AAC~OjBZzAwibg8gm+gE z#A+l-Facv)Fwn1OV_H<3^TKy25V1j;8OflVl;b)%ZDh`pBS`0F64R)-01s27sv$CJ zYy@r;cX1gW-xZ~r%X zDNcan%Sd0<{0!bc&okbiOi%Yz?kDsp^BvOe@F6WFPv$HaRJ)3TwYMB9j1G={S&V6o zni4sPmtmpOWHany7eyLH4a*yT6prjs3$bveJPde*jW2~n%t~qoY)*KTu2y-JT8a)* zC$#h+BbB^tv|@ske*VpTHn}^wH9XF*UsNRk%KqL&da{F0V9{Djp)Hno0TVgMtr|cY zmQ(|xmM6Z8xlnN7-bY$&K2Y>HUk_r(lo_2Fy(<1iR=L{7&_txgO zPnl+nwZOYUl^Sjuska6eyHmwt!|d_u-hB6XkPm)1TpYc4G8!E$CR0|2qWP2UNP4NU zFR_NJy>H&Vl_$tEdA5nyY2W@Le>7Yev)C43IarM5RZ$uc7O3kI4%MKN8Mw)S4*>2C zC=3Xw+ug0Q!|NDh5cY|(M=%-&20mDzIs%wfbpf03qo~jn^&|jnF4FSTS?`-M#0uUT z9-{_JzyN8EYx7bI*Cz3sc!3*so`oL@*DDOPb>V#msxcsagK=99xbJA*vzDL_xt0oU znnaKm>&#UJ%lri7GY(Tnkf01#EFLR~Y6AbElVe*^#fVmRXr)E67^nV(!j~Gz>d0$p zF<6~~R0faNtadU!pPGz8C?>$X`oUTMjvv#2P6pL$Fxq!rwniNbNWLIJFvM0R4>tx# zvL(_?eT*DFkdv{Lkw?L05rV2gaDb+-P}ED+@QCGB12aV4y#q5yfmvnZ^FoU>+v*Bi z++?RNtuOJ!Arg*!T(EOcld>F@>Q`2Xs+7Jyg-)UTm^VM}tzvFkRx(5X<2T$mCpu+O zp>Vm#CYKJWnS?DXtKOAoB9#5=5yHl2sIE9UK&HrWG(vQ%z&Pa8UqjGS<1`{CfDDAT znq^N#2`~T^UVnHmMER=ZHZIh`QiK(rwk;dHgbJSUdmsj=g3|HaR$%~S)6!RXFd5Bv z_g}noFgeIvvqLW`d+Ia*VpC8c291RlU|?-tZvg?OKn2v7u%H61FTxenkdTc>GToU9 zJy;vmU=#K?aLE=z7}Ia(#l~q9`SV!8@$f_Ic_`!1j-Fj4To@b}2^oOypLvCYR(8 z0w2`cq>?5=e`+wwHEIr~pR06ccVE51<+;xw+*i2(-FnC|6{u>Vdq_MQ3pnQVWY>Dt z<8}UkdZ4b^D43R4g{xjyz(w1uz(wt;X81^}{Zck0Q5gyZjTMx@7%LSFew`|N5+%MO zC9^g{%!zWu;byZELSx znW7X_IHIt<0f?;vLfJ6M2TdiFN94+`DZYaYlZupKn!ojj_z7J$y&^4{WkDE8__UM1 zM*2#*UhTEZEzlm2_Hs9VxT0eu_YJW7E*z4k%EM9K!?rQR5fL7T%|lF5>?ZUH&ZJmL z&t_;Ei@mCHCma2d<24@h0IUSZX`yGL-6VTTvvk*0^THwcG`B93qnl=p;x;#@zXZG# zsku=B%(#$_jzR`+=}%5LNJDR5q#KuHQZ!LDs z?jli8T8>aUq?#+sWsmoOu+iBdzxK>V84EMB?GjKrg*(WZuQKqNu49L|1}BpaV--N~ zXm1Rjk4z!Js5<8Xb6&ai+y>TyyBHh?L6nW?yPCN|K(XCV0B))Cu{#?8wZAP01l$(H z>V?W;4h;xxr;I83k>@GJ2Eoi6|{R>_>qXipIW>}iWaVYkLnCZm8Pzv{I1$mK4* zJuxJDb$T*C(rCqP_Hhbnm;{p&YKWuZX>DTphFpS!S4qz0>P9he(w`zkCnk@J04lv< zXt)JFx4Kyx7daKaw7b1U(WC3SCMJR4g8q1FJlZ16c^mn} z4i>b5VuM9qTXoV6U`eumIOhOVHX7dRXZ`t!+R5Iis5bGiWkz+uG^1n63Xam2E24@Z zc4>ZyDuNz~VzYS~;s{`e)C?3%R{P26a32d9NxiYk9K#}{ZH0F&v?O^%8uT^bQDEM& zd;{n@XLF>HP%OOV8O69!-dr$Bs72l)t2jtN*jFlmRCPQPVFM!7Ez2fhM3jAKgC7f< zJqb?<_|rjotxeuobwpIhFPXgYX{#iIOsX_6iRvw3tXds+>zXFd%$;0Wi%Za46@yzY z^$M0N@h1JKjcQg!60i+usVJLRHqQ&aDG67WFa=1XK_soR5w)*MOi76mt!CD-c&0n(<0WMuE$RupLfeRkYtw}Z8 zNOEmn%{FRf#NHLzG(~oCF)2y71mK9ctw7VSWXG>u%CUX2`X_ce99Vq zJC@EXB>=8-rR)>hqsvEmgrqx&=3bfpJNvf0CqQSWEZwHm`=&(WOF+(p5mH? zMY)`CDSnQesV<(P!|H;TOysI%$`)u%zb@Pe#Wrmwqs3pb*UyliGPwnSfK%&Djd7!f zl%H3rMxjk$to7f-j{7H~a=%72oC1W2%>{|7re8iQ*268kURg{E9<+WJvs2#3D)Nzv zmo^qPekTKWBb6^kW8(BptVa{L6~iwJ=^j+YE-dn6V-4kbQ7UIKIhkUU62rD_gw+`^ zG^$I`c8}gPmNV7L8O)G5NeEhK<4uwRV(pipzM%MuTy8ABoS8~89t^S=Kel#8s+d%4 zp)tfBqu+mJ@A?h7ls2b0gKX-7Ip3tT`&sEaF(99Eihvh{7UBt4IcKER9$ZSKysop!#r z4TW+U?VL&v9`LZN2hPDrY%pU=qX}frg^jtUNE&k2ESOf*H(1H!(oymkE289Gbvy}A zWaNdh#mGVs<}^4I$u z0%KCCSzyb&PYPo$QQU~ZvdWzUD#0?rpoR_2O;s?y?Xd6AHnf!C5{Rs6dp;`7;w;Fs z2wjw$q+ZKtFLd$%Di~Pr~D;m-yK8R`^HF61i9S0#!gqlH*3rvYuvs_c58*xV> z#+e-TBLRL!EpDy|h19*y*8Ft5=-orRnCbS2kA}y<`KFyMY<8S)UAw;b!lHL*-W?vF zY~4E3MLu{3ZBA(8h4ByT2QI9&9qv>eT*#hc< z|2W(_oZtYp@bO<^F1Kp78bGHV549nEszL z?H9fC-NO4X2J9G zqq$+eKKJM6f6Mg0uDf;q@pXN`?SIUKQGe>=_y0LQqf3}!?tDlK5`Wx&L%+5E&FSp> zpW#UM@9=^(?d$Z=;_oZwnA>0Bz3l(`xAYIV<@@DR@Oy55?e(9U{@ng1=bpOd>++|+ z_4+^k6a5XhW;yZCOZ4*x)1T+>oaxW)f4%4D`{on=$?N|t4JiJ&eapK6fBgS~-_rQ; z^&kI|dUrb9{^C3OJ^%Nw|5tn=`=9@_{w23VKCwB0fBnDV^C$7*$9(+WIrYoO@2N(u zIen!6^Yyv?J3f92FYf=2>Hm)D&%fhy@Oy6mi7)8>x&OPS|GTFDIqqm$|2=hP+N7U+ zX!?I>`hUedKhpP+@ISg&{_8Hd~i;6>wKV_=XGQM zb3gvzDRidK`1!wQ`af^_zr)a3BO6X8b5EZ9pAP zQ&#T2w(FK!_g%MZo3&QB*)E7NYL?o%WjAk8*IQ?TEizZJSm*uypECmk;#b?=+q=!^ zc|QMN&;R*9ALscvsBMl)by=l);&0i4&v%hIWDDdUQm2C z@{K`pP6a%w$cy~O+AYiN$a~=xI3yR9wGV$a$1NCZD=D%UaoioZA^!-TQF#7#-sjR}x7XejPxj;GdD>8poE2fUZHvfsEW>_@4zsv2qy4YBa^Aiy#s}I1QXI_?`X0 z*=lUXNM^c&4p~Kf+aH{zq6&aDBp-Cj$q9yt_xy|;H=!r?(+nM=pLcEz$9b!(;Cx1* zJuBeYX2ba{MW3mJbIn9J4=#lBjupP!i_76;q4K>GiN|Ym;cO%4 z84^5)GX9I4&4h7|O0ouraB0SAp7}|6_LZ2>#^K;VQm!!@Z!bl*NvA4td z71i`7l%cY~*_i?7bE5Yu)yEQa5#E(lACuDHq!Vy1I#usX0@+Gv=Sg87P_dq-Xy<)! zcnUemxrg{3Bj9lwI8!O~6*0Pxav!8pzCb)AB;?(c_Pb;_14hDGLxwq=#CVh73MsmU zfTdJhzaS;vd?%crQ|{*mI1f`agKA+mnKH9KF9~#xoLI_zk(@87J}e~j7J_?#G=2tM zg?DQT90$WFLFi%9& z!u#JcR0Ttwf+V1ZdFpZyk}-t21ja%O5E4-djuSQ$s@xjKP_0M;s?<|gf>1a^SWaLp zv=Si^mEbs`h)|=gBM3FO7I-p`X>|mFnl>^F(>j{IcuWm)275?^JtD&H;e`J@$0UyQn2rrV9?)howBsI=Ai}nb zu*W&!CBT-CMx78X_phl&-Hr}VI48x>hMy-~<_`%o0qWc*bJcYK$i=ygGM7M<%L zl4l7VLJiP=q^x}#Xfw?2x+4JFO&MlkYp2imjq*W`2ZHjwx)Vg8?j+pWMr9oj_%#{C zW}f|MxU%+L#Q6+D^wbG}p-}l~P>=G|wNo5F!2^nX2Z{3vrSZ|OsVeu~vOM?HSU^S# zHz2>j_ev}BT$xM?-z$vmgEH5HkUCod6NSJ*B!6?3mEGAqO#hKRnrFrIYEi4!Zw4E= z@&V<;+|1&kEF}8O!bTuiJAQBEgl7?gEPU?i5?2h#H>Ys^y?kzm_HAJjviSd=*DO46 z#^?KyH2Qy{7*@?L=;KM0bxt#}5&IYQ)}a1nSg-yisB@88(^)S;_0&>#9ImFPdOWN? znB6k_;e<0_QXXM7_H;;M&(gwbDe+RB((58>PIspSQ;@XOQIC}5sk?Z0yEUZx{LQkcZ+y)8J@o{lD4qENav}$ct>;%;YC`l4A0*Y$y!)Pl z(D^JNigN2F25=lG@)pyv)P8!N@c?w2I?$S^lXAPMzRh{NJHxU#VdOVxS=K>lby3vn zD66~G-E^8-9a-5JgnG9+vB@0+HZ{3_qM83-q{a4eFt~l3ggSc0-=OvpVSSFY>ZYOb z3XJtVr~&O`2g4y_g$k)}x&nLs6`_V(cQI7Iy`p{4*m+5NEf(?iFg(A#qJ7Z7c}aUs z5b^dA9>~F1!6{bw;|!3-OSFK7lz!}WrwG`}0Lfm_0{XSr zbpV70X?%9Osi%PP!d_!BItj}<0`@8=d!^iNd#(H$d74*Xud5L1&t69${l{XjqCIZd zb|w9_%-Z>%WRF+aUuUD3B-}`sev2}{$sKKAFN{! z5ejJ_q=AqILK+BZAf$ni20|JLX&|J5kOo2;2x%asfsh758u(FY0PCH+N#R@`tKxH1 zwlJQ{Gy5EJq5MB+sY-F-9)h?&Du23rebm_=hb?mddVSAgz01FPYCl*_N!IcGI4=_X{|DG!{7}e3p!# z7#ADgh|M-L(60@>7PUtTzchhu|BsL6rq?pCjCz z6W&(jZ1FkY_qDynM}u5B=X13C914C)T#9eVBLLK!+8v|o-gS%uQ7t1n=8{AsnUHN! zezFI&2LNuAc_zlGNi_H)$Zu2g`SNl}xr`5kgwlh)A?v}c;qZ7P*9?X7xhMUl=B4Fa z9)Y|if*_d=1qfy790w&2;B!y-hO7oIpML^6k?~RdWEnqYP)gkadpJMHH(ky*_t~=j zU*9!i_9)MwBdoRrch0T){mQkU9ryY2gui@%Rnq-fKZW$s?yOs#t*x${u6fPA__>3# zxVlFB0GCNV&-*)oX&WyzTz_j5>H7)08R3Qh#Di>NqT_|0b2J z9B$+;+mfOf8Hmv~Vrtvb?v|wL(~?wtaB4(a2ayVhbNH@yN!jrj>e4pGCu@V_n;=UX% zgFhpH|Hwt~!I^IY$1IsAOSTC>9tnYVH`~k5|7Hr4uRqDe@&h03-P+UM^ZFTV`LA7$ z4%C<{lfRCifG$3Ty7)+5;xo%wigRU(f^#dd|I3C;yDX`(?G}D=I-rK?58H?MEg}-5 z5d&3jY-|hLDOsN_<6C--5ZI>btHDdx6Ksi}8tXi#vW?^;vi$wxVDyOS7XzK*vf=#R zJhL$E&ot)>EN|e7}rD{cPyb&jm9PegH3_dBzmEIPO6y7(=@cDqUvd z&5eqckX4z5+`DnEsk>tR(gfv?=`UZDudzqIf(r%wT6j&zIvhDa(BIz-4D?W!5`F$< zWG4|t`$OXp+lEWjbW>hL4`;?KSuzO!B7 z&OI$Wei-|xC%?iDvFWr~XqnvqX=>|9Y{?6YwSip7k8VbsPyCDx`%6>v1Q&P)<`OYI za|xKXXlj^E#F&L*CYg*Z9y1EK!rUX58ms;K&hvMm3K+gCw@ZI+*(m-aY5`&VO|vk$ zc0H(?A;dv`bbc)|J-Q`2EQf|A=hmRt^gX0p_cVG{{$q5XYjFP4_t4VF*U4+Ui9gEv z)uUe|?A7lNq{`j0D0H(EsGH^AF$;^JD8|R6FoPF5W#PFT(3__KL*CRyJkfvKpbiNi zagioDlr_mcAcZDb=(-8!;g?a=knqW6RpD9E71N=x{E*a+nk@Q-lAN181(pW1h!QcD#qMuCMOH6}MQEah}oI0It5|3XFup z1Mi4UV83t3O2pf4cT5&x6fh<~%&gup?%ZQSJ(3#e{BKZq!p=RmBM3%DnNXz(KYO@1wP+W zuSy%_xW4vX``~)BBrQ+k80c&ab2f$5zUw%tZEOp_q0zZtQrGB++Q#7wv-bsX+r5Ed z(tPbou_L#I0lUq%`?;%P8o5nEX!_kd8CvOvE99rFTL(F}NrB9p8Ybz#Q$F%34#hCN z;SH1C=-j4b{2{Y2;cYsGvBxYtc8Dr%nE%xk5Mln;*W_xd)9r6jwu1N9DW8AD`K`)^ zL#cZv@J(yJW%Khp`N>_*y|*Sb`6uUE(YD3fYD5VNtgUeU7Ld;v%FV(Qf57|s-+jL6 zdBQKmIG-;Ni?Mv}u^txJ_F)krvH;cs5lh?XeFJ0|PoHC#pO=?OFAqrHF#FD+ImM-0 z)Q>xtjVBJpEdIQE8ngGvNo+kJU!HJ|Kj^$amb%F(e!5EkzT;l!7c$!*UZRh1sGLnQ zXNwF8HD5Wu?Xv6YC20|kk@Y`+^IM-?S)V0M z%a+eCccG9jr~o3FRMJrkN#**Pk)5o{=(G{kEsLZ%wZzlGl}-k zX3!1u&Hl~^VAL77&60Y#vGxF#MOLX2_PVF3T)8TKfRyI!f^|Rok+-mXQX0H|l5j9@ z1~Ts>Gr`21rsQ~|!_;0gODI5MpJ^L)-Tic~mn|)uKcG{+^!x5VGrzCYedD4%$??9T z(4V#EI$PrSfi%{R;Ib?eZD?2Mte-nEV92dd=eX31|7cWoN%kI4pgy>024Uw@DZ--Rm-SF_^Pn>CxcS z&Wy=Vj2NJ-{WVO1zgzCEmLweZ12#~O2z{{0J6w8@Kk6U)F)wdp<9>^BLW@XX-7FAr zr@u*tm(bbtdDt2s>*PkdC*7*|DA%SS8@(ngwXCjDSxY03yZTn=XRWU6uC{CHeD;`G zLY0`$vvmPJx63Vin-Ofns)jputt-Eam$Sz>-x98+u-UJ7T(_-OrJ2g!~#Lvx;BYk{Sjx}5t|crkP~4g&?r}{w{7OKU5CvEsu*k@pN zQ{Y>M!D5Cm-UBtAMQ1Q|l)n|kUaS@9m^S_cWr8-!M;Caq+3KSwdz9D`VmaXrF_W>u zicweFQ(|+Ne{Z2UU%mQLT}J-L!SSl(zy4D4|9u}T+z%|jvt7mKqXN+Juf9Kq<29%W z`#3&Zwt6|LV-WgqK3iTtJY}{@>DE!BHp%&^au}7o#VF@IMp{$o}XxY8{X;W3MJsQ`%>M@Xb?1xElbq+nh6An~%_jF)}JRH>IcqWS%J&1LCduU-+u zVLsh9jL(r%*l~?=cr7r2+vHEO|BVUwB&FrZ(QnmHj%mr3bF~NTv91WblX$Y3pyIS& z!4yJ&&ma>qOSQFo@hvR*0L@=BQTEnkuPB4)xIOIjBb> zs)zKP+d+E9eB6~IBgF;OoGWk1LfL%wSmY1lo3K~|+(0(cBrJ^z7eEo&sEEG5&O|m> zZ}b053^xAsw#O9F9w!Ct(Sdb4IX^D7I>;WUUCbTJIPdnAA#&>oq9 z|DZjx)oNysvtw#M46?^ZP_q}Y#}w8-1ng1Cd-!u?Zhm_#&{wNg=J}u(W|C&%(WW4a z)Gzr5E%L*EF^hyfV!f?Dlxq*PMY$%( zcT=9^Tjj(!23=n8`+U5ftvOVIB-zw8?){@7;fPNsOS9P>UE zn}Qy;&z`}5%RhE7v?E6K~nB1vEe0 zwW^g}t(ExKjD#w1;ybZG>RNTOe&G6PD)&@es+~rcYQuyU&~y#Q+S+kfq0Hwv<|@QZ z+DW)c%R~0V0Kw)Nt6AacKY+}<3VY)d-%PT_Hxo>AF1f?dTm4tV z@4^3Jegl61e&`PhX!DQ%8n4qum*2X{W}4l&+ppQcjv?#0BJf%miM>JeZIe{!+p<-j zNg}|cSOyTu75cXwF87+BNgcz))^QP@IG%4$7vb%b@N~3&?zC7h@jCJQ8Hw%9Oh}(qk2Cz=X z?9OfUnD&4jC%jI``LvOYcJ1@8`yIcMbw4XG$qFy{76IE~Jq(I89AZUB>3m2fby$_J zO42osSmmo(&X^h%m-!TifAK;IxrofI*9d{ zj!+5kaRjOZ;S9v_UWaodz9F-*$;N~@>oV{Kdl=pBB?`F6mwBKa7LV&$*_ z|78i(>7}nlyefe{y>B5@d&Zu51?;tqecei!F1v7U7C0tBZCgIm@@gXWF65S2t4Z$R zy=Y!o9@6EiuG@oXIaWk}nE+GVr`X+q z3M}1#-ZrbHHk>jgYtHROnxmcnIiX^QPIjICNX@kXsTUz?8|}AdQR;r%7ud*KdaIu^ zv0a^l-rzU*@=aSz!a?UbpR(>1iX3ZYfCU&nYJyrqbk5S-?lS*DTZ# zt2ao`&ck6Y7I3{m3WspizoY-ezTA|T#CEfvAELmw0gxfp4^bgxH_+1Y)vp^n!->wY zHbvg_-ExG46E8xJ{A0wD8uVyBx3Op7jqSbRrd)Rh<2lxpzh=6V^UMs;Q8*i=qLx5L zLS&No+@SIM0x~a(WS$2Zkp}t(=L@7*iG3g{z`G4WQ9Bpx`D~>EI1fws{jNH~5Ov4a zvPA{*8C0-@!@U=^ot+p9i!kJP>b3)ms+QL6OIZq;B&G1Ia>aG=KKOcurd+!QqKh^x zeV>o2JAkD^CWiNI7(`C02vuu9#Cd<5%6*p%L*`vFpDmX5pX8`czK+a@4UJ*}+zcPz zINE@8v+w{Z<&8}U(^87EE`k^`9Q`DWVrOAdPERb)nka0^xgS%KE__Id*$$=+j2h1w z{g!F=n0h|YWPPF6h`oZUF|gys@Ia7uy%tc$s&*P3FigA4#*h(+72Osg)>`*QPwZKYqnO%t_MIHKB zU1Hamwfls_PG;@H{M$*vT>Q0OM|;n0*Et^o{YgZBlFYX(mNcg#nX_a0_vold7=JB4 zRkeEMAfMVkxI2mBqxnw94emT2|BkCbC4vrYkqzPqwG%kKfYtWi@zIV!lW}Trs>X_KpN3jh+D%;lr= zgnjYQ8_o$UaHOPmBejsD9;OD^H}|KRR3l;fNbD%@m5J%lfY0fX)rX};I^vygP{aDW zJ+6L&ByEz!5nDeYENxPlLs36Lnl?$=Yu;_Yk!Osv{G9LV;q0hy8(93Ryzu^ElSPCPUW`MD$KDy5ea-2=HH21DM}oznqpNX#*24G&q@Q!i!_4 z%Pi9$bqsb%Tv$2I!d98Wzpdk3rQjSfSSHrz$>C?o+vKh={UApe_H2%@9WMojoTt#b zv97oQ1DE@L8NWp4o+INUaC@Nc57Y%@V+9&uwZEsx61o08$0Qt(J_@RQ1Y4Vyf(aK}$V>GqN0dwBkH@&G<^Et8|8+|?M5Uv%keNduN5&_D zA;crD*y@sEGYaci-NbW5;;yN3FMU1?S+q+AesW6MjU<Ch~nsump;M zuDi8!K?%a49*~3Va)->NX_J!p16@mGYzvTdy@W>H+)i5O%p%=L=!6Q}$ovu6cE}#F zMH{lmAB{y?OK2V81-y)jB3X}M)E9o;6W>Mg13mE#6yMz)XZEbZkq`xzanJFyV)?!N zGF3v0%W)cKcl5`Xjd9Cva!pe49-2Ue@sTrdB3ar|AgmjP$rK$(zKP>K-Fp*QAM-tw z(4ucvKKu4GXVV3%WyAPWc?E*>S@b<7d>>WriVP}_ zxXg?tV&RD((rdd(gDkLmp$MHI_0Ka8)E5Rr94W!zh5DMN(jQblJej8cxM|qL&x^%L zZ=CV!a5)tEZyY1o>Z!+HZz_5zKYTr_x9&o!xP%s?%haj=s3tSv9o{2-3wrjyF;Qi! z+&Wc(@D#9o4xE5eNL$RX2;2)`bmD^O@XatAQ!GCz79({+Q>rOexsFch@}^i!xmU?q zb&)06!ud$t3zF{T^HtIgm;#K=ExTTCQY;;U%~ENT{>UQq3@nA_|`(*|~2-uz2~gqRBPs_bMO00pq`0 zHVALnrqdUgXgm#qM~;5s%8$hs2@E4oVuwH4g; zn-=TJ?=ZU+VXoZRfTfaWtA&rR-i|r)&6}U`$TDXnUa&gRUM9=SkVvgc^6^GCGznwHh*GCu=x=|2CU+Q>Su6vEotjN(~5t% z_92eP*kxmzPz5ULwBA>)8%@(YetxX}V`c4dgq2R(#NZE$7H|-aq)GYk5M=O&FR1;S z_&+l+c69Q1ceRs+c6Uv3GhWQbK26n*Nmwj(F=#`$J(1`9PGy_SXQIm}#FFlv=pxsA z$Iew=%TMcaHs6|X&OM1b9_6|XB+XBf+xs$7 z%N5pEyc!F~K&Hj?Io+edwdqwV<%=HdFQUJ5$eorh44Ttit5lGCNWwQrLigbt!fDub z%lz23PjH#e^f{KI&!hhlZX!#`?Fjl-_JO@BItwTsfT%Zpj-v|E=uT$MC=h<}YoD** zt@ePF%txuj!^fFx48=8zTkR2rS~}q_G-0#bmBKHT32#tHBecT{MlFxCa;H(g)4#;U z=`$`z7hNQDoX|T|_RNG;3Uu^6WjXB2kIioTgg3RjOszcrW2^5ZZ#uaqh4CEe!CoJg z&2+q(w+Q~?URY9LG-SX%cAV4$jcS>2izr%NAJKxv>=hQ;P#I=n4B**~Jd_@tVF90$ zF5RzuEi2ZY7biV}K*W6=qok+w@7af9rlG$}VT;0HMd<_u7VH(yy`%6N_yyAvzqjpN zF9sCx9=nDkvjk;S>utMp@8P)8RJj9(D#2z=D*dS`hq56Wy-sOrR-8k&Q!=kPsqfYE zlC9{Lx#j{P`6+BaG}_f-!XHP`YM@!xCet6WtF(>$!4Bn1193m00~ZsTaYdn5l?$Dl z7;>bbN1!cEXhUV8{1A|uiZrRQS-1_6osuB5a!$|yy0&qS^5>0|E`T(9PbB^4ivx}&7N~awuFxcu0%)& zmQXAf1D9A~-_2q&dw@{S_&?jhda+p91DfbOcMKT zb!Qy6h$4P6i0Rd#w5F59?}|}-0&dM}oCkca7%GS>M#tO~<`SSQ#>m`>a9hHOpM>2t zDGwJ$i{G0MxP=uM@l-;7~t&gMZOql6z z%EMx0p3v4s-5HcV(z$#DxAJCxQ`{+O8;-`ybJ_!IQb4v*xv`0F3TmrKjeS~cA5C5$ zvY0?NlK%^4qRQ1&VFR>{yUD`W_0$Ec1gb^O9^XCKR~^-U z2C14LV5xI)c%&^_tfGks&pCU1&JB%ckK7u3AP)jDJgN|%BVwL+G$4U5R%HyK1sNzn ziTf#V7l|Fu@f%M;xkQixTKIY+HMLtP*nuG5As7)Zm!K;>ia18*`Pc`n`S4TWFDQ$3 z^vy;GkZjtsfKMZzxx|4{1U)u!SvzxB?-w@D9sL zL>T15g-M7Cc1&P&$NVU}ltq{N~s|J6PVY;8@jv1{8M$P+J(3C!CN;lD6>r55Udm zI3c|BBxDetha`N5)|Z-Tzo9_bC(4DLg>kdW!)DRf4QSZ)y(f_B_zpl_Qy@I;hmzy` zS`{%6v~c-Op@2M%Fd5#g0-r|60}`qfwd?>2G=E?1hmLUJuQ8}{RJ!mtA~Yv3vbD4& z<5&Xjmt!1k#TE8L0Gl(1+LJI&L{D11>T?bRP9rCPg)y)9;7>If1;z!!ivaUET7?(j z_g8^GXj;K6VGQ^{3uf{(!kzG#7Vd`d&_ZF*D1@?~#z{xAlLF!M$5}%d4|tbG1QHG) z%`ANDhdCtN02*X z|3Nzirg#&dAPJ7q2|6eobQOPFv?!^_TD(7gGvu)@fJL+W<7)vCP$u;kBFq?+q34eI z!XOxL9ts9PdCPBCz4B-U_nl1l;4_$(Qh-;e^zp@F0gKwVh3>Vk)bqZ%w6 zb>S@>D@weg-leFs0Z;0aPVTKQRvNf0U*^xNIe^ zd=*#^4Z;{mFRnryPQT-Bd+#Iu^yZ3AkY^oCaF~yw5l`E==GV}yjW-Bpp+bO;SD&ygQn8C9pw@C+`1R{ zS|@E4$;(9oXssfFGtFvy0;cBDBVq>T-C(1>^#ev;{{cSWu;1t!LL#vg7?8H{dvz22 z*!Ptup&FaDjj7?Ipb@_fv2KS(uNfG=?2wy=FV^vvONE{F7*k{;4uxUil?^a-m@XG5 ze=u=y)jfiN-{oFU?$2w<{q<^cUs*}+8_VIAKJxSDnCITaykFayS69uvf2&~L3s!iW zAFJC8k2m4S&_)E@6xf1*hw-H$jW>3cn_YDqSnhU`q#0rZ1HyPr+lS!A$Ya_;HI5Ud zz9F#~rpr0^Y~R@r-KOo-mKmk%KZH4-$DMB);oYWA4Cov}n9M3L3zVbKue&h)yZ48x z9O&2CKCyfv&drg?Du@hu=@gxBNE{fSF$ofTgz`00`+?^2sM)>Qde`x6E>AO(VN6Q9 zu6vE*_TV*&8++C$20K^S2QF1Oce6i)XP4p?A8QAFjl?gqOtr&O4$5E#R#!Nl2PRnVUvNSxB+|A>jV58uL))xG1mO`s3);GFwmN968l z$ZQ*k)To$2lQ^!aRTaJ8#pXa~j~2Sv2i8J{Bq#t?YXYg-@mqSxHqpaHGs1|zvb{W=JnBXi0}V2fYa z2uKzSLo86W)UZcT!`{ehyJ0p%pF-}8fum^+iX zX68;|ZVGdcGioDPIGwq1%$>;G1ukppR zw~KgspYX-g>x3^}#a!yMeDTyR_~NO(`{K#Weeq=ZzIbW~zIbXKzId`Qm{ah7u?gon zGuXhlvUJTV`K~Yy-^@hd6$BhJmA{)ub1!FyVfz}p;kR_R+7a3CDAtG$H2*dX#%RC& zw{rCENPJvORLNQFNin9zqKIQ)!(%Mguz`7)t@PXQx*JI-5Yj+M10fBBG!W82NCP1a zgftM+Ku7~24TLlh(m+T9Aq|8y@Q-Q$e=Ns)%!U=gnIq)x2@3wMh)h5 zId5Hi(6S=&!e0XMJ{Jss0`N|Pf8;B`=l6xj{)hLYB|-E%06&A^RRkY@0enD?F2E%a zTr0`(_qINA1j^klcPHS#gJ2CtqWkv6;PKIH?klCl z@)nZ;+(k7y2cd?BQ;z`7Gye&WCTcVpF3$ii%1s@Npj`c2{G4t5}pxNED0mC_)YUsS*}=`&7au zir}x5zgCg_OwvzTkV*PJ3o=O$Q4o^uWBz9E9_BZAcfl7Wm6N0@RG?W%=p|_!(xB=u z0Vzs)5}}41Qu?dHl}joX!msZPVlV1Di3N$VcO(n4QVe53R*FF^$Vw4GL6qWrCHb4Z zXPDpM{Sy8K`nCZ00)3A{qF9QX5NgOFeRq6*<)y&we{UF*Vvm>9MDbJL-ff~tBW*QO z8Z*&X5o$Qz0Y2;d;e&5$cwYtt(RrTvd%S-p8QI4QSXY1ptDN)S=-UP7c{hD~#JdK7 z%>f9RvKHs*{1D#}orNsh-|^McClesh9Y_=fibtrSf&@DI*_9Xk5;hph3TYsufsh75 z8VG41q=AqILK+BZAf$ni20|JLX&|J5e{BtH<#17gt>59J?N*8i8S`<0Z#1qrP~?kw zbhE3^N8p20vXwqWN%sTlu!d1!rI;_7zFcS)j?cx4MT`nz_B}y9nKE%iHQ}A!pRMfv zTTH=!iK+MZE=IGDw9FS}@q`m0`r&+hcZm4V?<&5{PQ}>T8HVzcL**x5xYb{N7Wo2& zxMcZb!IyoNneZth{1?O|{jtdNm&2z|AG7Zt6FxDzaY5bu{{(nbLbF-0KeS?wP za+8r$UuWd15f1%A8VG4X)IjP3#-F?@28Q~{pS%r(6cExtNCP1aTucMjlSXa>E>ftk zF*1<+%KIv-mQ|`P%Zn}5_OhxLQ!1Xob4cvP@lJ zsa#~omyddWGp!bNrDO3zi%nfs3dlu{#gz1rp8jDwpXd`fT*@rEwU9YRxc~6 zQ5S*Iq9S|Q(g5Pv9%^D}YE?HOhS4vr(dx=7yV|nUQmHNjzsjP;mcE3ph)xjFm@$=A zMU^E?2nrV$RhQX|D#~gsqFgMkYVqPCL@8YAsHmv1S5;H)E$T7|0f~y#OMz0Nu3}p5 zrhW@xYV5YM%0D615!3-#!z=r%jj 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 K$nQUs1OFe(5%`V( literal 0 HcmV?d00001 diff --git a/Software build/gpl-3.0.txt b/Software build/gpl-3.0.txt new file mode 100644 index 0000000..20d40b6 --- /dev/null +++ b/Software build/gpl-3.0.txt @@ -0,0 +1,674 @@ + GNU GENERAL PUBLIC LICENSE + Version 3, 29 June 2007 + + Copyright (C) 2007 Free Software Foundation, Inc. + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The GNU General Public License is a free, copyleft license for +software and other kinds of works. + + The licenses for most software and other practical works are designed +to take away your freedom to share and change the works. By contrast, +the GNU General Public License is intended to guarantee your freedom to +share and change all versions of a program--to make sure it remains free +software for all its users. We, the Free Software Foundation, use the +GNU General Public License for most of our software; it applies also to +any other work released this way by its authors. You can apply it to +your programs, too. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +them if you wish), that you receive source code or can get it if you +want it, that you can change the software or use pieces of it in new +free programs, and that you know you can do these things. + + To protect your rights, we need to prevent others from denying you +these rights or asking you to surrender the rights. Therefore, you have +certain responsibilities if you distribute copies of the software, or if +you modify it: responsibilities to respect the freedom of others. + + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must pass on to the recipients the same +freedoms that you received. You must make sure that they, too, receive +or can get the source code. And you must show them these terms so they +know their rights. + + Developers that use the GNU GPL protect your rights with two steps: +(1) assert copyright on the software, and (2) offer you this License +giving you legal permission to copy, distribute and/or modify it. + + For the developers' and authors' protection, the GPL clearly explains +that there is no warranty for this free software. For both users' and +authors' sake, the GPL requires that modified versions be marked as +changed, so that their problems will not be attributed erroneously to +authors of previous versions. + + Some devices are designed to deny users access to install or run +modified versions of the software inside them, although the manufacturer +can do so. This is fundamentally incompatible with the aim of +protecting users' freedom to change the software. The systematic +pattern of such abuse occurs in the area of products for individuals to +use, which is precisely where it is most unacceptable. Therefore, we +have designed this version of the GPL to prohibit the practice for those +products. If such problems arise substantially in other domains, we +stand ready to extend this provision to those domains in future versions +of the GPL, as needed to protect the freedom of users. + + Finally, every program is threatened constantly by software patents. +States should not allow patents to restrict development and use of +software on general-purpose computers, but in those that do, we wish to +avoid the special danger that patents applied to a free program could +make it effectively proprietary. To prevent this, the GPL assures that +patents cannot be used to render the program non-free. + + The precise terms and conditions for copying, distribution and +modification follow. + + TERMS AND CONDITIONS + + 0. Definitions. + + "This License" refers to version 3 of the GNU General Public License. + + "Copyright" also means copyright-like laws that apply to other kinds of +works, such as semiconductor masks. + + "The Program" refers to any copyrightable work licensed under this +License. Each licensee is addressed as "you". "Licensees" and +"recipients" may be individuals or organizations. + + To "modify" a work means to copy from or adapt all or part of the work +in a fashion requiring copyright permission, other than the making of an +exact copy. The resulting work is called a "modified version" of the +earlier work or a work "based on" the earlier work. + + A "covered work" means either the unmodified Program or a work based +on the Program. + + To "propagate" a work means to do anything with it that, without +permission, would make you directly or secondarily liable for +infringement under applicable copyright law, except executing it on a +computer or modifying a private copy. Propagation includes copying, +distribution (with or without modification), making available to the +public, and in some countries other activities as well. + + To "convey" a work means any kind of propagation that enables other +parties to make or receive copies. Mere interaction with a user through +a computer network, with no transfer of a copy, is not conveying. + + An interactive user interface displays "Appropriate Legal Notices" +to the extent that it includes a convenient and prominently visible +feature that (1) displays an appropriate copyright notice, and (2) +tells the user that there is no warranty for the work (except to the +extent that warranties are provided), that licensees may convey the +work under this License, and how to view a copy of this License. If +the interface presents a list of user commands or options, such as a +menu, a prominent item in the list meets this criterion. + + 1. Source Code. + + The "source code" for a work means the preferred form of the work +for making modifications to it. "Object code" means any non-source +form of a work. + + A "Standard Interface" means an interface that either is an official +standard defined by a recognized standards body, or, in the case of +interfaces specified for a particular programming language, one that +is widely used among developers working in that language. + + The "System Libraries" of an executable work include anything, other +than the work as a whole, that (a) is included in the normal form of +packaging a Major Component, but which is not part of that Major +Component, and (b) serves only to enable use of the work with that +Major Component, or to implement a Standard Interface for which an +implementation is available to the public in source code form. A +"Major Component", in this context, means a major essential component +(kernel, window system, and so on) of the specific operating system +(if any) on which the executable work runs, or a compiler used to +produce the work, or an object code interpreter used to run it. + + The "Corresponding Source" for a work in object code form means all +the source code needed to generate, install, and (for an executable +work) run the object code and to modify the work, including scripts to +control those activities. However, it does not include the work's +System Libraries, or general-purpose tools or generally available free +programs which are used unmodified in performing those activities but +which are not part of the work. For example, Corresponding Source +includes interface definition files associated with source files for +the work, and the source code for shared libraries and dynamically +linked subprograms that the work is specifically designed to require, +such as by intimate data communication or control flow between those +subprograms and other parts of the work. + + The Corresponding Source need not include anything that users +can regenerate automatically from other parts of the Corresponding +Source. + + The Corresponding Source for a work in source code form is that +same work. + + 2. Basic Permissions. + + All rights granted under this License are granted for the term of +copyright on the Program, and are irrevocable provided the stated +conditions are met. This License explicitly affirms your unlimited +permission to run the unmodified Program. The output from running a +covered work is covered by this License only if the output, given its +content, constitutes a covered work. This License acknowledges your +rights of fair use or other equivalent, as provided by copyright law. + + You may make, run and propagate covered works that you do not +convey, without conditions so long as your license otherwise remains +in force. You may convey covered works to others for the sole purpose +of having them make modifications exclusively for you, or provide you +with facilities for running those works, provided that you comply with +the terms of this License in conveying all material for which you do +not control copyright. Those thus making or running the covered works +for you must do so exclusively on your behalf, under your direction +and control, on terms that prohibit them from making any copies of +your copyrighted material outside their relationship with you. + + Conveying under any other circumstances is permitted solely under +the conditions stated below. Sublicensing is not allowed; section 10 +makes it unnecessary. + + 3. Protecting Users' Legal Rights From Anti-Circumvention Law. + + No covered work shall be deemed part of an effective technological +measure under any applicable law fulfilling obligations under article +11 of the WIPO copyright treaty adopted on 20 December 1996, or +similar laws prohibiting or restricting circumvention of such +measures. + + When you convey a covered work, you waive any legal power to forbid +circumvention of technological measures to the extent such circumvention +is effected by exercising rights under this License with respect to +the covered work, and you disclaim any intention to limit operation or +modification of the work as a means of enforcing, against the work's +users, your or third parties' legal rights to forbid circumvention of +technological measures. + + 4. Conveying Verbatim Copies. + + You may convey verbatim copies of the Program's source code as you +receive it, in any medium, provided that you conspicuously and +appropriately publish on each copy an appropriate copyright notice; +keep intact all notices stating that this License and any +non-permissive terms added in accord with section 7 apply to the code; +keep intact all notices of the absence of any warranty; and give all +recipients a copy of this License along with the Program. + + You may charge any price or no price for each copy that you convey, +and you may offer support or warranty protection for a fee. + + 5. Conveying Modified Source Versions. + + You may convey a work based on the Program, or the modifications to +produce it from the Program, in the form of source code under the +terms of section 4, provided that you also meet all of these conditions: + + a) The work must carry prominent notices stating that you modified + it, and giving a relevant date. + + b) The work must carry prominent notices stating that it is + released under this License and any conditions added under section + 7. This requirement modifies the requirement in section 4 to + "keep intact all notices". + + c) You must license the entire work, as a whole, under this + License to anyone who comes into possession of a copy. This + License will therefore apply, along with any applicable section 7 + additional terms, to the whole of the work, and all its parts, + regardless of how they are packaged. This License gives no + permission to license the work in any other way, but it does not + invalidate such permission if you have separately received it. + + d) If the work has interactive user interfaces, each must display + Appropriate Legal Notices; however, if the Program has interactive + interfaces that do not display Appropriate Legal Notices, your + work need not make them do so. + + A compilation of a covered work with other separate and independent +works, which are not by their nature extensions of the covered work, +and which are not combined with it such as to form a larger program, +in or on a volume of a storage or distribution medium, is called an +"aggregate" if the compilation and its resulting copyright are not +used to limit the access or legal rights of the compilation's users +beyond what the individual works permit. Inclusion of a covered work +in an aggregate does not cause this License to apply to the other +parts of the aggregate. + + 6. Conveying Non-Source Forms. + + You may convey a covered work in object code form under the terms +of sections 4 and 5, provided that you also convey the +machine-readable Corresponding Source under the terms of this License, +in one of these ways: + + a) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by the + Corresponding Source fixed on a durable physical medium + customarily used for software interchange. + + b) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by a + written offer, valid for at least three years and valid for as + long as you offer spare parts or customer support for that product + model, to give anyone who possesses the object code either (1) a + copy of the Corresponding Source for all the software in the + product that is covered by this License, on a durable physical + medium customarily used for software interchange, for a price no + more than your reasonable cost of physically performing this + conveying of source, or (2) access to copy the + Corresponding Source from a network server at no charge. + + c) Convey individual copies of the object code with a copy of the + written offer to provide the Corresponding Source. This + alternative is allowed only occasionally and noncommercially, and + only if you received the object code with such an offer, in accord + with subsection 6b. + + d) Convey the object code by offering access from a designated + place (gratis or for a charge), and offer equivalent access to the + Corresponding Source in the same way through the same place at no + further charge. You need not require recipients to copy the + Corresponding Source along with the object code. If the place to + copy the object code is a network server, the Corresponding Source + may be on a different server (operated by you or a third party) + that supports equivalent copying facilities, provided you maintain + clear directions next to the object code saying where to find the + Corresponding Source. Regardless of what server hosts the + Corresponding Source, you remain obligated to ensure that it is + available for as long as needed to satisfy these requirements. + + e) Convey the object code using peer-to-peer transmission, provided + you inform other peers where the object code and Corresponding + Source of the work are being offered to the general public at no + charge under subsection 6d. + + A separable portion of the object code, whose source code is excluded +from the Corresponding Source as a System Library, need not be +included in conveying the object code work. + + A "User Product" is either (1) a "consumer product", which means any +tangible personal property which is normally used for personal, family, +or household purposes, or (2) anything designed or sold for incorporation +into a dwelling. In determining whether a product is a consumer product, +doubtful cases shall be resolved in favor of coverage. For a particular +product received by a particular user, "normally used" refers to a +typical or common use of that class of product, regardless of the status +of the particular user or of the way in which the particular user +actually uses, or expects or is expected to use, the product. A product +is a consumer product regardless of whether the product has substantial +commercial, industrial or non-consumer uses, unless such uses represent +the only significant mode of use of the product. + + "Installation Information" for a User Product means any methods, +procedures, authorization keys, or other information required to install +and execute modified versions of a covered work in that User Product from +a modified version of its Corresponding Source. The information must +suffice to ensure that the continued functioning of the modified object +code is in no case prevented or interfered with solely because +modification has been made. + + If you convey an object code work under this section in, or with, or +specifically for use in, a User Product, and the conveying occurs as +part of a transaction in which the right of possession and use of the +User Product is transferred to the recipient in perpetuity or for a +fixed term (regardless of how the transaction is characterized), the +Corresponding Source conveyed under this section must be accompanied +by the Installation Information. But this requirement does not apply +if neither you nor any third party retains the ability to install +modified object code on the User Product (for example, the work has +been installed in ROM). + + The requirement to provide Installation Information does not include a +requirement to continue to provide support service, warranty, or updates +for a work that has been modified or installed by the recipient, or for +the User Product in which it has been modified or installed. Access to a +network may be denied when the modification itself materially and +adversely affects the operation of the network or violates the rules and +protocols for communication across the network. + + Corresponding Source conveyed, and Installation Information provided, +in accord with this section must be in a format that is publicly +documented (and with an implementation available to the public in +source code form), and must require no special password or key for +unpacking, reading or copying. + + 7. Additional Terms. + + "Additional permissions" are terms that supplement the terms of this +License by making exceptions from one or more of its conditions. +Additional permissions that are applicable to the entire Program shall +be treated as though they were included in this License, to the extent +that they are valid under applicable law. If additional permissions +apply only to part of the Program, that part may be used separately +under those permissions, but the entire Program remains governed by +this License without regard to the additional permissions. + + When you convey a copy of a covered work, you may at your option +remove any additional permissions from that copy, or from any part of +it. (Additional permissions may be written to require their own +removal in certain cases when you modify the work.) You may place +additional permissions on material, added by you to a covered work, +for which you have or can give appropriate copyright permission. + + Notwithstanding any other provision of this License, for material you +add to a covered work, you may (if authorized by the copyright holders of +that material) supplement the terms of this License with terms: + + a) Disclaiming warranty or limiting liability differently from the + terms of sections 15 and 16 of this License; or + + b) Requiring preservation of specified reasonable legal notices or + author attributions in that material or in the Appropriate Legal + Notices displayed by works containing it; or + + c) Prohibiting misrepresentation of the origin of that material, or + requiring that modified versions of such material be marked in + reasonable ways as different from the original version; or + + d) Limiting the use for publicity purposes of names of licensors or + authors of the material; or + + e) Declining to grant rights under trademark law for use of some + trade names, trademarks, or service marks; or + + f) Requiring indemnification of licensors and authors of that + material by anyone who conveys the material (or modified versions of + it) with contractual assumptions of liability to the recipient, for + any liability that these contractual assumptions directly impose on + those licensors and authors. + + All other non-permissive additional terms are considered "further +restrictions" within the meaning of section 10. If the Program as you +received it, or any part of it, contains a notice stating that it is +governed by this License along with a term that is a further +restriction, you may remove that term. If a license document contains +a further restriction but permits relicensing or conveying under this +License, you may add to a covered work material governed by the terms +of that license document, provided that the further restriction does +not survive such relicensing or conveying. + + If you add terms to a covered work in accord with this section, you +must place, in the relevant source files, a statement of the +additional terms that apply to those files, or a notice indicating +where to find the applicable terms. + + Additional terms, permissive or non-permissive, may be stated in the +form of a separately written license, or stated as exceptions; +the above requirements apply either way. + + 8. Termination. + + You may not propagate or modify a covered work except as expressly +provided under this License. Any attempt otherwise to propagate or +modify it is void, and will automatically terminate your rights under +this License (including any patent licenses granted under the third +paragraph of section 11). + + However, if you cease all violation of this License, then your +license from a particular copyright holder is reinstated (a) +provisionally, unless and until the copyright holder explicitly and +finally terminates your license, and (b) permanently, if the copyright +holder fails to notify you of the violation by some reasonable means +prior to 60 days after the cessation. + + Moreover, your license from a particular copyright holder is +reinstated permanently if the copyright holder notifies you of the +violation by some reasonable means, this is the first time you have +received notice of violation of this License (for any work) from that +copyright holder, and you cure the violation prior to 30 days after +your receipt of the notice. + + Termination of your rights under this section does not terminate the +licenses of parties who have received copies or rights from you under +this License. If your rights have been terminated and not permanently +reinstated, you do not qualify to receive new licenses for the same +material under section 10. + + 9. Acceptance Not Required for Having Copies. + + You are not required to accept this License in order to receive or +run a copy of the Program. Ancillary propagation of a covered work +occurring solely as a consequence of using peer-to-peer transmission +to receive a copy likewise does not require acceptance. However, +nothing other than this License grants you permission to propagate or +modify any covered work. These actions infringe copyright if you do +not accept this License. Therefore, by modifying or propagating a +covered work, you indicate your acceptance of this License to do so. + + 10. Automatic Licensing of Downstream Recipients. + + Each time you convey a covered work, the recipient automatically +receives a license from the original licensors, to run, modify and +propagate that work, subject to this License. You are not responsible +for enforcing compliance by third parties with this License. + + An "entity transaction" is a transaction transferring control of an +organization, or substantially all assets of one, or subdividing an +organization, or merging organizations. If propagation of a covered +work results from an entity transaction, each party to that +transaction who receives a copy of the work also receives whatever +licenses to the work the party's predecessor in interest had or could +give under the previous paragraph, plus a right to possession of the +Corresponding Source of the work from the predecessor in interest, if +the predecessor has it or can get it with reasonable efforts. + + You may not impose any further restrictions on the exercise of the +rights granted or affirmed under this License. For example, you may +not impose a license fee, royalty, or other charge for exercise of +rights granted under this License, and you may not initiate litigation +(including a cross-claim or counterclaim in a lawsuit) alleging that +any patent claim is infringed by making, using, selling, offering for +sale, or importing the Program or any portion of it. + + 11. Patents. + + A "contributor" is a copyright holder who authorizes use under this +License of the Program or a work on which the Program is based. The +work thus licensed is called the contributor's "contributor version". + + A contributor's "essential patent claims" are all patent claims +owned or controlled by the contributor, whether already acquired or +hereafter acquired, that would be infringed by some manner, permitted +by this License, of making, using, or selling its contributor version, +but do not include claims that would be infringed only as a +consequence of further modification of the contributor version. For +purposes of this definition, "control" includes the right to grant +patent sublicenses in a manner consistent with the requirements of +this License. + + Each contributor grants you a non-exclusive, worldwide, royalty-free +patent license under the contributor's essential patent claims, to +make, use, sell, offer for sale, import and otherwise run, modify and +propagate the contents of its contributor version. + + In the following three paragraphs, a "patent license" is any express +agreement or commitment, however denominated, not to enforce a patent +(such as an express permission to practice a patent or covenant not to +sue for patent infringement). To "grant" such a patent license to a +party means to make such an agreement or commitment not to enforce a +patent against the party. + + If you convey a covered work, knowingly relying on a patent license, +and the Corresponding Source of the work is not available for anyone +to copy, free of charge and under the terms of this License, through a +publicly available network server or other readily accessible means, +then you must either (1) cause the Corresponding Source to be so +available, or (2) arrange to deprive yourself of the benefit of the +patent license for this particular work, or (3) arrange, in a manner +consistent with the requirements of this License, to extend the patent +license to downstream recipients. "Knowingly relying" means you have +actual knowledge that, but for the patent license, your conveying the +covered work in a country, or your recipient's use of the covered work +in a country, would infringe one or more identifiable patents in that +country that you have reason to believe are valid. + + If, pursuant to or in connection with a single transaction or +arrangement, you convey, or propagate by procuring conveyance of, a +covered work, and grant a patent license to some of the parties +receiving the covered work authorizing them to use, propagate, modify +or convey a specific copy of the covered work, then the patent license +you grant is automatically extended to all recipients of the covered +work and works based on it. + + A patent license is "discriminatory" if it does not include within +the scope of its coverage, prohibits the exercise of, or is +conditioned on the non-exercise of one or more of the rights that are +specifically granted under this License. You may not convey a covered +work if you are a party to an arrangement with a third party that is +in the business of distributing software, under which you make payment +to the third party based on the extent of your activity of conveying +the work, and under which the third party grants, to any of the +parties who would receive the covered work from you, a discriminatory +patent license (a) in connection with copies of the covered work +conveyed by you (or copies made from those copies), or (b) primarily +for and in connection with specific products or compilations that +contain the covered work, unless you entered into that arrangement, +or that patent license was granted, prior to 28 March 2007. + + Nothing in this License shall be construed as excluding or limiting +any implied license or other defenses to infringement that may +otherwise be available to you under applicable patent law. + + 12. No Surrender of Others' Freedom. + + If conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot convey a +covered work so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you may +not convey it at all. For example, if you agree to terms that obligate you +to collect a royalty for further conveying from those to whom you convey +the Program, the only way you could satisfy both those terms and this +License would be to refrain entirely from conveying the Program. + + 13. Use with the GNU Affero General Public License. + + Notwithstanding any other provision of this License, you have +permission to link or combine any covered work with a work licensed +under version 3 of the GNU Affero General Public License into a single +combined work, and to convey the resulting work. The terms of this +License will continue to apply to the part which is the covered work, +but the special requirements of the GNU Affero General Public License, +section 13, concerning interaction through a network will apply to the +combination as such. + + 14. Revised Versions of this License. + + The Free Software Foundation may publish revised and/or new versions of +the GNU General Public License from time to time. Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + + Each version is given a distinguishing version number. If the +Program specifies that a certain numbered version of the GNU General +Public License "or any later version" applies to it, you have the +option of following the terms and conditions either of that numbered +version or of any later version published by the Free Software +Foundation. If the Program does not specify a version number of the +GNU General Public License, you may choose any version ever published +by the Free Software Foundation. + + If the Program specifies that a proxy can decide which future +versions of the GNU General Public License can be used, that proxy's +public statement of acceptance of a version permanently authorizes you +to choose that version for the Program. + + Later license versions may give you additional or different +permissions. However, no additional obligations are imposed on any +author or copyright holder as a result of your choosing to follow a +later version. + + 15. Disclaimer of Warranty. + + THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY +APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT +HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY +OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, +THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM +IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF +ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + + 16. Limitation of Liability. + + IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS +THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY +GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE +USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF +DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD +PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), +EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF +SUCH DAMAGES. + + 17. Interpretation of Sections 15 and 16. + + If the disclaimer of warranty and limitation of liability provided +above cannot be given local legal effect according to their terms, +reviewing courts shall apply local law that most closely approximates +an absolute waiver of all civil liability in connection with the +Program, unless a warranty or assumption of liability accompanies a +copy of the Program in return for a fee. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Programs + + If you develop a new program, and you want it to be of the greatest +possible use to the public, the best way to achieve this is to make it +free software which everyone can redistribute and change under these terms. + + To do so, attach the following notices to the program. It is safest +to attach them to the start of each source file to most effectively +state the exclusion of warranty; and each file should have at least +the "copyright" line and a pointer to where the full notice is found. + + + Copyright (C) + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . + +Also add information on how to contact you by electronic and paper mail. + + If the program does terminal interaction, make it output a short +notice like this when it starts in an interactive mode: + + Copyright (C) + This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'. + This is free software, and you are welcome to redistribute it + under certain conditions; type `show c' for details. + +The hypothetical commands `show w' and `show c' should show the appropriate +parts of the General Public License. Of course, your program's commands +might be different; for a GUI interface, you would use an "about box". + + You should also get your employer (if you work as a programmer) or school, +if any, to sign a "copyright disclaimer" for the program, if necessary. +For more information on this, and how to apply and follow the GNU GPL, see +. + + The GNU General Public License does not permit incorporating your program +into proprietary programs. If your program is a subroutine library, you +may consider it more useful to permit linking proprietary applications with +the library. If this is what you want to do, use the GNU Lesser General +Public License instead of this License. But first, please read +. \ No newline at end of file diff --git a/Source code/Build/Linux/eMI NumberToWord Library.makefile b/Source code/Build/Linux/eMI NumberToWord Library.makefile new file mode 100644 index 0000000..46828e9 --- /dev/null +++ b/Source code/Build/Linux/eMI NumberToWord Library.makefile @@ -0,0 +1,30 @@ +# Copyright © 2017, 2019 eMedia Intellect. + +# This file is part of eMI NumberToWord Library. + +# eMI NumberToWord Library is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. + +# eMI NumberToWord Library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. + +# You should have received a copy of the GNU General Public License +# along with eMI NumberToWord Library. If not, see . + +all: + if [ ! -d ./32-bit/ ]; then mkdir ./32-bit/; fi + + g++ -m32 -pedantic -std=c++14 -Wall -Weffc++ -Wextra -Wshadow ../../Library/main.cpp ../../Library/NumberToWord/Converter.cpp -o ./32-bit/NumberToWord + + if [ ! -d ./64-bit/ ]; then mkdir ./64-bit/; fi + + g++ -m64 -pedantic -std=c++14 -Wall -Weffc++ -Wextra -Wshadow ../../Library/main.cpp ../../Library/NumberToWord/Converter.cpp -o ./64-bit/NumberToWord + +clean: + if [ -d ./32-bit/ ]; then rm --recursive ./32-bit/; fi + + if [ -d ./64-bit/ ]; then rm --recursive ./64-bit/; fi \ No newline at end of file diff --git a/Source code/Build/Microsoft Windows/Build-project.cmd b/Source code/Build/Microsoft Windows/Build-project.cmd new file mode 100644 index 0000000..6801111 --- /dev/null +++ b/Source code/Build/Microsoft Windows/Build-project.cmd @@ -0,0 +1,20 @@ +:: Copyright © 2017, 2019 eMedia Intellect. + +:: This file is part of eMI NumberToWord Library. + +:: eMI NumberToWord Library is free software: you can redistribute it and/or modify +:: it under the terms of the GNU General Public License as published by +:: the Free Software Foundation, either version 3 of the License, or +:: (at your option) any later version. + +:: eMI NumberToWord Library is distributed in the hope that it will be useful, +:: but WITHOUT ANY WARRANTY; without even the implied warranty of +:: MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +:: GNU General Public License for more details. + +:: You should have received a copy of the GNU General Public License +:: along with eMI NumberToWord Library. If not, see . + +msbuild ".\eMI NumberToWord Library.msbuild" /p:platform=Win32 /p:configuration=Release + +msbuild ".\eMI NumberToWord Library.msbuild" /p:platform=x64 /p:configuration=Release \ No newline at end of file diff --git a/Source code/Build/Microsoft Windows/Clean-project.ps1 b/Source code/Build/Microsoft Windows/Clean-project.ps1 new file mode 100644 index 0000000..d8622a6 --- /dev/null +++ b/Source code/Build/Microsoft Windows/Clean-project.ps1 @@ -0,0 +1,20 @@ +# Copyright © 2017, 2019 eMedia Intellect. + +# This file is part of eMI NumberToWord Library. + +# eMI NumberToWord Library is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. + +# eMI NumberToWord Library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. + +# You should have received a copy of the GNU General Public License +# along with eMI NumberToWord Library. If not, see . + +Remove-Item -ErrorAction 'Ignore' -Force -Path '.\Win32' -Recurse + +Remove-Item -ErrorAction 'Ignore' -Force -Path '.\x64' -Recurse \ No newline at end of file diff --git a/Source code/Build/Microsoft Windows/eMI NumberToWord Library.msbuild b/Source code/Build/Microsoft Windows/eMI NumberToWord Library.msbuild new file mode 100644 index 0000000..96242e1 --- /dev/null +++ b/Source code/Build/Microsoft Windows/eMI NumberToWord Library.msbuild @@ -0,0 +1,52 @@ + + + + + + Debug + x64 + + + Debug + Win32 + + + Release + x64 + + + Release + Win32 + + + + + + + + NumberToWord + .\$(Platform)\$(Configuration)\ + .\$(Platform)\$(Configuration)\ + v142 + + + + + \ No newline at end of file diff --git a/Source code/Library/NumberToWord/Converter.cpp b/Source code/Library/NumberToWord/Converter.cpp new file mode 100644 index 0000000..021ec2d --- /dev/null +++ b/Source code/Library/NumberToWord/Converter.cpp @@ -0,0 +1,313 @@ +/* +Copyright © 2017, 2019 eMedia Intellect. + +This file is part of eMI NumberToWord Library. + +eMI NumberToWord Library is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 3 of the License, or +(at your option) any later version. + +eMI NumberToWord Library is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with eMI NumberToWord Library. If not, see . +*/ + +#include +#include +#include "Converter.hpp" +#include "ProcessedTriplet.hpp" + +namespace NumberToWord +{ + bool Converter::HasAnd{true}; + bool Converter::HasComma{true}; + bool Converter::IsCapitalised{true}; + bool Converter::IsEndedWithFullStop{true}; + + std::map const Converter::zeroToNine{{'0', "zero"}, {'1', "one"}, {'2', "two"}, {'3', "three"}, {'4', "four"}, {'5', "five"}, {'6', "six"}, {'7', "seven"}, {'8', "eight"}, {'9', "nine"}}; + std::map const Converter::tenToNineteen{{'0', "ten"}, {'1', "eleven"}, {'2', "twelve"}, {'3', "thirteen"}, {'4', "fourteen"}, {'5', "fifteen"}, {'6', "sixteen"}, {'7', "seventeen"}, {'8', "eighteen"}, {'9', "nineteen"}}; + std::map const Converter::twentyToNinety{{'2', "twenty"}, {'3', "thirty"}, {'4', "forty"}, {'5', "fifty"}, {'6', "sixty"}, {'7', "seventy"}, {'8', "eighty"}, {'9', "ninety"}}; + std::map const Converter::hundredToSeptillion{{1, "hundred"}, {2, "thousand"}, {3, "million"}, {4, "billion"}, {5, "trillion"}, {6, "quadrillion"}, {7, "quintillion"}, {8, "sextillion"}, {9, "septillion"}}; + + std::vector Converter::processedTriplets; + + std::string Converter::ToString(std::string number) + { + /* + * Validate the number. + */ + + auto invalidCharacterPosition{number.find_first_not_of("0123456789")}; + + if (invalidCharacterPosition != std::string::npos) + { + throw "The argument passed to the program was not a valid number. It contained invalid characters."; + } + else if (number.length() > 1 && number[0] == '0') + { + throw "The argument passed to the program was not a valid number. It contained a leading zero."; + } + else if (number.length() > 27) + { + throw "The argument passed to the program was a number that was too long. The number can not be more than 27 characters in length."; + } + + /* + * The number is processed as a triplet so it must be divisible by 3. + * Calculate the remainder when the number is divided by 3. + * Prepend leading 0's to the number if necessary. + */ + + auto remainder{number.length() % 3}; + + switch (remainder) + { + case 1: + number = "00" + number; + + break; + case 2: + number = "0" + number; + + break; + } + + /* + * Calculate the number of triplets in the number. + */ + + auto tripletsCount{number.length() / 3}; + + /* + * Loop over each triplet and process it. + */ + + unsigned short startingPosition{0}; + + for (auto i{tripletsCount}; i > 0; --i) + { + auto substring{number.substr(startingPosition, 3)}; + + processedTriplets.push_back(ProcessTriplet(substring)); + + startingPosition += 3; + } + + /* + * Return the number as a string. + */ + + std::string word; + + if (processedTriplets.size() != 1) + { + for (std::vector::size_type i{0}; i != processedTriplets.size(); ++i) + { + if (processedTriplets.at(i).TripletNumber == 0) + { + --tripletsCount; + + continue; + } + + if (i != processedTriplets.size() - 1) + { + word += processedTriplets.at(i).TripletWord; + word += " " + hundredToSeptillion.at(tripletsCount); + + if (HasComma) + { + word += ", "; + } + else + { + word += " "; + } + + } + else + { + if (HasAnd) + { + if (processedTriplets.at(i).TripletNumber < 100) + { + word += "and "; + } + } + + word += processedTriplets.at(i).TripletWord; + } + + --tripletsCount; + } + } + else + { + word += processedTriplets.at(0).TripletWord; + } + + if (word.back() == ' ' || word.back() == ',') + { + word.pop_back(); + } + + if (word.back() == ' ' || word.back() == ',') + { + word.pop_back(); + } + + if (HasComma) + { + std::string::size_type position = word.find(", and"); + + if (position != std::string::npos) + { + word.replace(position, 5, " and"); + } + } + + if (IsCapitalised) + { + word[0] = std::toupper(word[0]); + } + + if (IsEndedWithFullStop) + { + word += "."; + } + + return word; + } + + ProcessedTriplet Converter::ProcessTriplet(std::string const &triplet) + { + ProcessedTriplet processedTriplet{0, zeroToNine.at('0')}; + + /* + * Return an empty string for 0 (000 as a triplet). + */ + + if (triplet == "000") + { + return processedTriplet; + } + + /* + * Determine the triplet number. + */ + + processedTriplet.TripletNumber = std::stoul(triplet); + + /* + * Determine the triplet word by looping over the triplet and concatenating the word. + */ + + auto placeCounter{triplet.length()}; + + std::string word; + + bool canHypen{false}; + bool hasTen{false}; + + for (auto const &i : triplet) + { + switch (placeCounter) + { + case 3: + if (i != '0') + { + word += zeroToNine.at(i); + word += " "; + word += hundredToSeptillion.at(1); + } + + break; + case 2: + if (i != '1' && i != '0') + { + if (word.length() != 0) + { + if (HasAnd) + { + word += " and "; + } + else + { + word += " "; + } + } + + word += twentyToNinety.at(i); + + canHypen = true; + } + else if (i == '1') + { + hasTen = true; + } + + break; + case 1: + if (hasTen) + { + if (word.length() != 0) + { + if (HasAnd) + { + word += " and "; + } + else + { + word += " "; + } + } + + word += tenToNineteen.at(i); + } + else + { + if (i != '0') + { + if (canHypen) + { + word += "-"; + } + else + { + if (word.length() != 0) + { + if (HasAnd) + { + word += " and "; + } + else + { + word += " "; + } + } + } + + word += zeroToNine.at(i); + } + } + + break; + } + + --placeCounter; + } + + processedTriplet.TripletWord = word; + + /* + * Return the processed triplet. + */ + + return processedTriplet; + } +} diff --git a/Source code/Library/NumberToWord/Converter.hpp b/Source code/Library/NumberToWord/Converter.hpp new file mode 100644 index 0000000..81e0708 --- /dev/null +++ b/Source code/Library/NumberToWord/Converter.hpp @@ -0,0 +1,55 @@ +/* +Copyright © 2017, 2019 eMedia Intellect. + +This file is part of eMI NumberToWord Library. + +eMI NumberToWord Library is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 3 of the License, or +(at your option) any later version. + +eMI NumberToWord Library is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with eMI NumberToWord Library. If not, see . +*/ + +#ifndef CONVERTER +#define CONVERTER + +#include +#include +#include + +#include "ProcessedTriplet.hpp" + +namespace NumberToWord +{ + class Converter + { + public: + static bool HasAnd; + static bool HasComma; + static bool IsCapitalised; + static bool IsEndedWithFullStop; + + static std::string ToString(std::string number); + + private: + Converter(); + + static std::map const zeroToNine; + static std::map const tenToNineteen; + static std::map const twentyToNinety; + static std::map const hundredToSeptillion; + + static std::vector processedTriplets; + + static ProcessedTriplet ProcessTriplet(std::string const &triplet); + }; +} + +#endif \ No newline at end of file diff --git a/Source code/Library/NumberToWord/ProcessedTriplet.hpp b/Source code/Library/NumberToWord/ProcessedTriplet.hpp new file mode 100644 index 0000000..9caad3a --- /dev/null +++ b/Source code/Library/NumberToWord/ProcessedTriplet.hpp @@ -0,0 +1,38 @@ +/* +Copyright © 2017, 2019 eMedia Intellect. + +This file is part of eMI NumberToWord Library. + +eMI NumberToWord Library is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 3 of the License, or +(at your option) any later version. + +eMI NumberToWord Library is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with eMI NumberToWord Library. If not, see . +*/ + +#ifndef PROCESSEDTRIPLET +#define PROCESSEDTRIPLET + +#include + +namespace NumberToWord +{ + class ProcessedTriplet + { + public: + ProcessedTriplet(unsigned long number, std::string word) : TripletNumber(number), TripletWord(word) + {} + + unsigned long TripletNumber; + std::string TripletWord; + }; +} + +#endif \ No newline at end of file diff --git a/Source code/Library/main.cpp b/Source code/Library/main.cpp new file mode 100644 index 0000000..e7919d4 --- /dev/null +++ b/Source code/Library/main.cpp @@ -0,0 +1,96 @@ +/* +Copyright © 2017, 2019 eMedia Intellect. + +This file is part of eMI NumberToWord Library. + +eMI NumberToWord Library is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 3 of the License, or +(at your option) any later version. + +eMI NumberToWord Library is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with eMI NumberToWord Library. If not, see . +*/ + +#include +#include +#include +#include +#include "NumberToWord/Converter.hpp" + +int main(int argc, char **argv) +{ + std::string number; + + if (argc < 0) + { + std::cerr << "The number of arguments passed to the program was a negative number." << std::endl; + + return EXIT_FAILURE; + } + else if (argc == 0) + { + std::cerr << "No argument was passed to the program, not even its name." << std::endl; + + return EXIT_FAILURE; + } + else if (argc == 1) + { + std::cerr << "No argument was passed to the program." << std::endl; + + return EXIT_FAILURE; + } + else + { + for (int i = 1; i < argc; ++i) + { + if (i == 1) + { + number = *(argv + 1); + + continue; + } + + if (strcmp(*(argv + i), "--noand") == 0) + { + NumberToWord::Converter::HasAnd = false; + } + else if (strcmp(*(argv + i), "--nocapitalise") == 0) + { + NumberToWord::Converter::IsCapitalised = false; + } + else if (strcmp(*(argv + i), "--nocomma") == 0) + { + NumberToWord::Converter::HasComma = false; + } + else if (strcmp(*(argv + i), "--nofullstop") == 0) + { + NumberToWord::Converter::IsEndedWithFullStop = false; + } + else + { + std::cerr << "\"" << *(argv + i) << "\" is not a valid option." << std::endl; + + return EXIT_FAILURE; + } + } + } + + try + { + std::cout << NumberToWord::Converter::ToString(number) << std::endl; + + return EXIT_SUCCESS; + } + catch (char const *e) + { + std::cerr << e << std::endl; + + return EXIT_FAILURE; + } +} \ No newline at end of file diff --git a/Source code/gpl-3.0.txt b/Source code/gpl-3.0.txt new file mode 100644 index 0000000..20d40b6 --- /dev/null +++ b/Source code/gpl-3.0.txt @@ -0,0 +1,674 @@ + GNU GENERAL PUBLIC LICENSE + Version 3, 29 June 2007 + + Copyright (C) 2007 Free Software Foundation, Inc. + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The GNU General Public License is a free, copyleft license for +software and other kinds of works. + + The licenses for most software and other practical works are designed +to take away your freedom to share and change the works. By contrast, +the GNU General Public License is intended to guarantee your freedom to +share and change all versions of a program--to make sure it remains free +software for all its users. We, the Free Software Foundation, use the +GNU General Public License for most of our software; it applies also to +any other work released this way by its authors. You can apply it to +your programs, too. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +them if you wish), that you receive source code or can get it if you +want it, that you can change the software or use pieces of it in new +free programs, and that you know you can do these things. + + To protect your rights, we need to prevent others from denying you +these rights or asking you to surrender the rights. Therefore, you have +certain responsibilities if you distribute copies of the software, or if +you modify it: responsibilities to respect the freedom of others. + + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must pass on to the recipients the same +freedoms that you received. You must make sure that they, too, receive +or can get the source code. And you must show them these terms so they +know their rights. + + Developers that use the GNU GPL protect your rights with two steps: +(1) assert copyright on the software, and (2) offer you this License +giving you legal permission to copy, distribute and/or modify it. + + For the developers' and authors' protection, the GPL clearly explains +that there is no warranty for this free software. For both users' and +authors' sake, the GPL requires that modified versions be marked as +changed, so that their problems will not be attributed erroneously to +authors of previous versions. + + Some devices are designed to deny users access to install or run +modified versions of the software inside them, although the manufacturer +can do so. This is fundamentally incompatible with the aim of +protecting users' freedom to change the software. The systematic +pattern of such abuse occurs in the area of products for individuals to +use, which is precisely where it is most unacceptable. Therefore, we +have designed this version of the GPL to prohibit the practice for those +products. If such problems arise substantially in other domains, we +stand ready to extend this provision to those domains in future versions +of the GPL, as needed to protect the freedom of users. + + Finally, every program is threatened constantly by software patents. +States should not allow patents to restrict development and use of +software on general-purpose computers, but in those that do, we wish to +avoid the special danger that patents applied to a free program could +make it effectively proprietary. To prevent this, the GPL assures that +patents cannot be used to render the program non-free. + + The precise terms and conditions for copying, distribution and +modification follow. + + TERMS AND CONDITIONS + + 0. Definitions. + + "This License" refers to version 3 of the GNU General Public License. + + "Copyright" also means copyright-like laws that apply to other kinds of +works, such as semiconductor masks. + + "The Program" refers to any copyrightable work licensed under this +License. Each licensee is addressed as "you". "Licensees" and +"recipients" may be individuals or organizations. + + To "modify" a work means to copy from or adapt all or part of the work +in a fashion requiring copyright permission, other than the making of an +exact copy. The resulting work is called a "modified version" of the +earlier work or a work "based on" the earlier work. + + A "covered work" means either the unmodified Program or a work based +on the Program. + + To "propagate" a work means to do anything with it that, without +permission, would make you directly or secondarily liable for +infringement under applicable copyright law, except executing it on a +computer or modifying a private copy. Propagation includes copying, +distribution (with or without modification), making available to the +public, and in some countries other activities as well. + + To "convey" a work means any kind of propagation that enables other +parties to make or receive copies. Mere interaction with a user through +a computer network, with no transfer of a copy, is not conveying. + + An interactive user interface displays "Appropriate Legal Notices" +to the extent that it includes a convenient and prominently visible +feature that (1) displays an appropriate copyright notice, and (2) +tells the user that there is no warranty for the work (except to the +extent that warranties are provided), that licensees may convey the +work under this License, and how to view a copy of this License. If +the interface presents a list of user commands or options, such as a +menu, a prominent item in the list meets this criterion. + + 1. Source Code. + + The "source code" for a work means the preferred form of the work +for making modifications to it. "Object code" means any non-source +form of a work. + + A "Standard Interface" means an interface that either is an official +standard defined by a recognized standards body, or, in the case of +interfaces specified for a particular programming language, one that +is widely used among developers working in that language. + + The "System Libraries" of an executable work include anything, other +than the work as a whole, that (a) is included in the normal form of +packaging a Major Component, but which is not part of that Major +Component, and (b) serves only to enable use of the work with that +Major Component, or to implement a Standard Interface for which an +implementation is available to the public in source code form. A +"Major Component", in this context, means a major essential component +(kernel, window system, and so on) of the specific operating system +(if any) on which the executable work runs, or a compiler used to +produce the work, or an object code interpreter used to run it. + + The "Corresponding Source" for a work in object code form means all +the source code needed to generate, install, and (for an executable +work) run the object code and to modify the work, including scripts to +control those activities. However, it does not include the work's +System Libraries, or general-purpose tools or generally available free +programs which are used unmodified in performing those activities but +which are not part of the work. For example, Corresponding Source +includes interface definition files associated with source files for +the work, and the source code for shared libraries and dynamically +linked subprograms that the work is specifically designed to require, +such as by intimate data communication or control flow between those +subprograms and other parts of the work. + + The Corresponding Source need not include anything that users +can regenerate automatically from other parts of the Corresponding +Source. + + The Corresponding Source for a work in source code form is that +same work. + + 2. Basic Permissions. + + All rights granted under this License are granted for the term of +copyright on the Program, and are irrevocable provided the stated +conditions are met. This License explicitly affirms your unlimited +permission to run the unmodified Program. The output from running a +covered work is covered by this License only if the output, given its +content, constitutes a covered work. This License acknowledges your +rights of fair use or other equivalent, as provided by copyright law. + + You may make, run and propagate covered works that you do not +convey, without conditions so long as your license otherwise remains +in force. You may convey covered works to others for the sole purpose +of having them make modifications exclusively for you, or provide you +with facilities for running those works, provided that you comply with +the terms of this License in conveying all material for which you do +not control copyright. Those thus making or running the covered works +for you must do so exclusively on your behalf, under your direction +and control, on terms that prohibit them from making any copies of +your copyrighted material outside their relationship with you. + + Conveying under any other circumstances is permitted solely under +the conditions stated below. Sublicensing is not allowed; section 10 +makes it unnecessary. + + 3. Protecting Users' Legal Rights From Anti-Circumvention Law. + + No covered work shall be deemed part of an effective technological +measure under any applicable law fulfilling obligations under article +11 of the WIPO copyright treaty adopted on 20 December 1996, or +similar laws prohibiting or restricting circumvention of such +measures. + + When you convey a covered work, you waive any legal power to forbid +circumvention of technological measures to the extent such circumvention +is effected by exercising rights under this License with respect to +the covered work, and you disclaim any intention to limit operation or +modification of the work as a means of enforcing, against the work's +users, your or third parties' legal rights to forbid circumvention of +technological measures. + + 4. Conveying Verbatim Copies. + + You may convey verbatim copies of the Program's source code as you +receive it, in any medium, provided that you conspicuously and +appropriately publish on each copy an appropriate copyright notice; +keep intact all notices stating that this License and any +non-permissive terms added in accord with section 7 apply to the code; +keep intact all notices of the absence of any warranty; and give all +recipients a copy of this License along with the Program. + + You may charge any price or no price for each copy that you convey, +and you may offer support or warranty protection for a fee. + + 5. Conveying Modified Source Versions. + + You may convey a work based on the Program, or the modifications to +produce it from the Program, in the form of source code under the +terms of section 4, provided that you also meet all of these conditions: + + a) The work must carry prominent notices stating that you modified + it, and giving a relevant date. + + b) The work must carry prominent notices stating that it is + released under this License and any conditions added under section + 7. This requirement modifies the requirement in section 4 to + "keep intact all notices". + + c) You must license the entire work, as a whole, under this + License to anyone who comes into possession of a copy. This + License will therefore apply, along with any applicable section 7 + additional terms, to the whole of the work, and all its parts, + regardless of how they are packaged. This License gives no + permission to license the work in any other way, but it does not + invalidate such permission if you have separately received it. + + d) If the work has interactive user interfaces, each must display + Appropriate Legal Notices; however, if the Program has interactive + interfaces that do not display Appropriate Legal Notices, your + work need not make them do so. + + A compilation of a covered work with other separate and independent +works, which are not by their nature extensions of the covered work, +and which are not combined with it such as to form a larger program, +in or on a volume of a storage or distribution medium, is called an +"aggregate" if the compilation and its resulting copyright are not +used to limit the access or legal rights of the compilation's users +beyond what the individual works permit. Inclusion of a covered work +in an aggregate does not cause this License to apply to the other +parts of the aggregate. + + 6. Conveying Non-Source Forms. + + You may convey a covered work in object code form under the terms +of sections 4 and 5, provided that you also convey the +machine-readable Corresponding Source under the terms of this License, +in one of these ways: + + a) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by the + Corresponding Source fixed on a durable physical medium + customarily used for software interchange. + + b) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by a + written offer, valid for at least three years and valid for as + long as you offer spare parts or customer support for that product + model, to give anyone who possesses the object code either (1) a + copy of the Corresponding Source for all the software in the + product that is covered by this License, on a durable physical + medium customarily used for software interchange, for a price no + more than your reasonable cost of physically performing this + conveying of source, or (2) access to copy the + Corresponding Source from a network server at no charge. + + c) Convey individual copies of the object code with a copy of the + written offer to provide the Corresponding Source. This + alternative is allowed only occasionally and noncommercially, and + only if you received the object code with such an offer, in accord + with subsection 6b. + + d) Convey the object code by offering access from a designated + place (gratis or for a charge), and offer equivalent access to the + Corresponding Source in the same way through the same place at no + further charge. You need not require recipients to copy the + Corresponding Source along with the object code. If the place to + copy the object code is a network server, the Corresponding Source + may be on a different server (operated by you or a third party) + that supports equivalent copying facilities, provided you maintain + clear directions next to the object code saying where to find the + Corresponding Source. Regardless of what server hosts the + Corresponding Source, you remain obligated to ensure that it is + available for as long as needed to satisfy these requirements. + + e) Convey the object code using peer-to-peer transmission, provided + you inform other peers where the object code and Corresponding + Source of the work are being offered to the general public at no + charge under subsection 6d. + + A separable portion of the object code, whose source code is excluded +from the Corresponding Source as a System Library, need not be +included in conveying the object code work. + + A "User Product" is either (1) a "consumer product", which means any +tangible personal property which is normally used for personal, family, +or household purposes, or (2) anything designed or sold for incorporation +into a dwelling. In determining whether a product is a consumer product, +doubtful cases shall be resolved in favor of coverage. For a particular +product received by a particular user, "normally used" refers to a +typical or common use of that class of product, regardless of the status +of the particular user or of the way in which the particular user +actually uses, or expects or is expected to use, the product. A product +is a consumer product regardless of whether the product has substantial +commercial, industrial or non-consumer uses, unless such uses represent +the only significant mode of use of the product. + + "Installation Information" for a User Product means any methods, +procedures, authorization keys, or other information required to install +and execute modified versions of a covered work in that User Product from +a modified version of its Corresponding Source. The information must +suffice to ensure that the continued functioning of the modified object +code is in no case prevented or interfered with solely because +modification has been made. + + If you convey an object code work under this section in, or with, or +specifically for use in, a User Product, and the conveying occurs as +part of a transaction in which the right of possession and use of the +User Product is transferred to the recipient in perpetuity or for a +fixed term (regardless of how the transaction is characterized), the +Corresponding Source conveyed under this section must be accompanied +by the Installation Information. But this requirement does not apply +if neither you nor any third party retains the ability to install +modified object code on the User Product (for example, the work has +been installed in ROM). + + The requirement to provide Installation Information does not include a +requirement to continue to provide support service, warranty, or updates +for a work that has been modified or installed by the recipient, or for +the User Product in which it has been modified or installed. Access to a +network may be denied when the modification itself materially and +adversely affects the operation of the network or violates the rules and +protocols for communication across the network. + + Corresponding Source conveyed, and Installation Information provided, +in accord with this section must be in a format that is publicly +documented (and with an implementation available to the public in +source code form), and must require no special password or key for +unpacking, reading or copying. + + 7. Additional Terms. + + "Additional permissions" are terms that supplement the terms of this +License by making exceptions from one or more of its conditions. +Additional permissions that are applicable to the entire Program shall +be treated as though they were included in this License, to the extent +that they are valid under applicable law. If additional permissions +apply only to part of the Program, that part may be used separately +under those permissions, but the entire Program remains governed by +this License without regard to the additional permissions. + + When you convey a copy of a covered work, you may at your option +remove any additional permissions from that copy, or from any part of +it. (Additional permissions may be written to require their own +removal in certain cases when you modify the work.) You may place +additional permissions on material, added by you to a covered work, +for which you have or can give appropriate copyright permission. + + Notwithstanding any other provision of this License, for material you +add to a covered work, you may (if authorized by the copyright holders of +that material) supplement the terms of this License with terms: + + a) Disclaiming warranty or limiting liability differently from the + terms of sections 15 and 16 of this License; or + + b) Requiring preservation of specified reasonable legal notices or + author attributions in that material or in the Appropriate Legal + Notices displayed by works containing it; or + + c) Prohibiting misrepresentation of the origin of that material, or + requiring that modified versions of such material be marked in + reasonable ways as different from the original version; or + + d) Limiting the use for publicity purposes of names of licensors or + authors of the material; or + + e) Declining to grant rights under trademark law for use of some + trade names, trademarks, or service marks; or + + f) Requiring indemnification of licensors and authors of that + material by anyone who conveys the material (or modified versions of + it) with contractual assumptions of liability to the recipient, for + any liability that these contractual assumptions directly impose on + those licensors and authors. + + All other non-permissive additional terms are considered "further +restrictions" within the meaning of section 10. If the Program as you +received it, or any part of it, contains a notice stating that it is +governed by this License along with a term that is a further +restriction, you may remove that term. If a license document contains +a further restriction but permits relicensing or conveying under this +License, you may add to a covered work material governed by the terms +of that license document, provided that the further restriction does +not survive such relicensing or conveying. + + If you add terms to a covered work in accord with this section, you +must place, in the relevant source files, a statement of the +additional terms that apply to those files, or a notice indicating +where to find the applicable terms. + + Additional terms, permissive or non-permissive, may be stated in the +form of a separately written license, or stated as exceptions; +the above requirements apply either way. + + 8. Termination. + + You may not propagate or modify a covered work except as expressly +provided under this License. Any attempt otherwise to propagate or +modify it is void, and will automatically terminate your rights under +this License (including any patent licenses granted under the third +paragraph of section 11). + + However, if you cease all violation of this License, then your +license from a particular copyright holder is reinstated (a) +provisionally, unless and until the copyright holder explicitly and +finally terminates your license, and (b) permanently, if the copyright +holder fails to notify you of the violation by some reasonable means +prior to 60 days after the cessation. + + Moreover, your license from a particular copyright holder is +reinstated permanently if the copyright holder notifies you of the +violation by some reasonable means, this is the first time you have +received notice of violation of this License (for any work) from that +copyright holder, and you cure the violation prior to 30 days after +your receipt of the notice. + + Termination of your rights under this section does not terminate the +licenses of parties who have received copies or rights from you under +this License. If your rights have been terminated and not permanently +reinstated, you do not qualify to receive new licenses for the same +material under section 10. + + 9. Acceptance Not Required for Having Copies. + + You are not required to accept this License in order to receive or +run a copy of the Program. Ancillary propagation of a covered work +occurring solely as a consequence of using peer-to-peer transmission +to receive a copy likewise does not require acceptance. However, +nothing other than this License grants you permission to propagate or +modify any covered work. These actions infringe copyright if you do +not accept this License. Therefore, by modifying or propagating a +covered work, you indicate your acceptance of this License to do so. + + 10. Automatic Licensing of Downstream Recipients. + + Each time you convey a covered work, the recipient automatically +receives a license from the original licensors, to run, modify and +propagate that work, subject to this License. You are not responsible +for enforcing compliance by third parties with this License. + + An "entity transaction" is a transaction transferring control of an +organization, or substantially all assets of one, or subdividing an +organization, or merging organizations. If propagation of a covered +work results from an entity transaction, each party to that +transaction who receives a copy of the work also receives whatever +licenses to the work the party's predecessor in interest had or could +give under the previous paragraph, plus a right to possession of the +Corresponding Source of the work from the predecessor in interest, if +the predecessor has it or can get it with reasonable efforts. + + You may not impose any further restrictions on the exercise of the +rights granted or affirmed under this License. For example, you may +not impose a license fee, royalty, or other charge for exercise of +rights granted under this License, and you may not initiate litigation +(including a cross-claim or counterclaim in a lawsuit) alleging that +any patent claim is infringed by making, using, selling, offering for +sale, or importing the Program or any portion of it. + + 11. Patents. + + A "contributor" is a copyright holder who authorizes use under this +License of the Program or a work on which the Program is based. The +work thus licensed is called the contributor's "contributor version". + + A contributor's "essential patent claims" are all patent claims +owned or controlled by the contributor, whether already acquired or +hereafter acquired, that would be infringed by some manner, permitted +by this License, of making, using, or selling its contributor version, +but do not include claims that would be infringed only as a +consequence of further modification of the contributor version. For +purposes of this definition, "control" includes the right to grant +patent sublicenses in a manner consistent with the requirements of +this License. + + Each contributor grants you a non-exclusive, worldwide, royalty-free +patent license under the contributor's essential patent claims, to +make, use, sell, offer for sale, import and otherwise run, modify and +propagate the contents of its contributor version. + + In the following three paragraphs, a "patent license" is any express +agreement or commitment, however denominated, not to enforce a patent +(such as an express permission to practice a patent or covenant not to +sue for patent infringement). To "grant" such a patent license to a +party means to make such an agreement or commitment not to enforce a +patent against the party. + + If you convey a covered work, knowingly relying on a patent license, +and the Corresponding Source of the work is not available for anyone +to copy, free of charge and under the terms of this License, through a +publicly available network server or other readily accessible means, +then you must either (1) cause the Corresponding Source to be so +available, or (2) arrange to deprive yourself of the benefit of the +patent license for this particular work, or (3) arrange, in a manner +consistent with the requirements of this License, to extend the patent +license to downstream recipients. "Knowingly relying" means you have +actual knowledge that, but for the patent license, your conveying the +covered work in a country, or your recipient's use of the covered work +in a country, would infringe one or more identifiable patents in that +country that you have reason to believe are valid. + + If, pursuant to or in connection with a single transaction or +arrangement, you convey, or propagate by procuring conveyance of, a +covered work, and grant a patent license to some of the parties +receiving the covered work authorizing them to use, propagate, modify +or convey a specific copy of the covered work, then the patent license +you grant is automatically extended to all recipients of the covered +work and works based on it. + + A patent license is "discriminatory" if it does not include within +the scope of its coverage, prohibits the exercise of, or is +conditioned on the non-exercise of one or more of the rights that are +specifically granted under this License. You may not convey a covered +work if you are a party to an arrangement with a third party that is +in the business of distributing software, under which you make payment +to the third party based on the extent of your activity of conveying +the work, and under which the third party grants, to any of the +parties who would receive the covered work from you, a discriminatory +patent license (a) in connection with copies of the covered work +conveyed by you (or copies made from those copies), or (b) primarily +for and in connection with specific products or compilations that +contain the covered work, unless you entered into that arrangement, +or that patent license was granted, prior to 28 March 2007. + + Nothing in this License shall be construed as excluding or limiting +any implied license or other defenses to infringement that may +otherwise be available to you under applicable patent law. + + 12. No Surrender of Others' Freedom. + + If conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot convey a +covered work so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you may +not convey it at all. For example, if you agree to terms that obligate you +to collect a royalty for further conveying from those to whom you convey +the Program, the only way you could satisfy both those terms and this +License would be to refrain entirely from conveying the Program. + + 13. Use with the GNU Affero General Public License. + + Notwithstanding any other provision of this License, you have +permission to link or combine any covered work with a work licensed +under version 3 of the GNU Affero General Public License into a single +combined work, and to convey the resulting work. The terms of this +License will continue to apply to the part which is the covered work, +but the special requirements of the GNU Affero General Public License, +section 13, concerning interaction through a network will apply to the +combination as such. + + 14. Revised Versions of this License. + + The Free Software Foundation may publish revised and/or new versions of +the GNU General Public License from time to time. Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + + Each version is given a distinguishing version number. If the +Program specifies that a certain numbered version of the GNU General +Public License "or any later version" applies to it, you have the +option of following the terms and conditions either of that numbered +version or of any later version published by the Free Software +Foundation. If the Program does not specify a version number of the +GNU General Public License, you may choose any version ever published +by the Free Software Foundation. + + If the Program specifies that a proxy can decide which future +versions of the GNU General Public License can be used, that proxy's +public statement of acceptance of a version permanently authorizes you +to choose that version for the Program. + + Later license versions may give you additional or different +permissions. However, no additional obligations are imposed on any +author or copyright holder as a result of your choosing to follow a +later version. + + 15. Disclaimer of Warranty. + + THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY +APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT +HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY +OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, +THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM +IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF +ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + + 16. Limitation of Liability. + + IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS +THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY +GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE +USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF +DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD +PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), +EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF +SUCH DAMAGES. + + 17. Interpretation of Sections 15 and 16. + + If the disclaimer of warranty and limitation of liability provided +above cannot be given local legal effect according to their terms, +reviewing courts shall apply local law that most closely approximates +an absolute waiver of all civil liability in connection with the +Program, unless a warranty or assumption of liability accompanies a +copy of the Program in return for a fee. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Programs + + If you develop a new program, and you want it to be of the greatest +possible use to the public, the best way to achieve this is to make it +free software which everyone can redistribute and change under these terms. + + To do so, attach the following notices to the program. It is safest +to attach them to the start of each source file to most effectively +state the exclusion of warranty; and each file should have at least +the "copyright" line and a pointer to where the full notice is found. + + + Copyright (C) + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . + +Also add information on how to contact you by electronic and paper mail. + + If the program does terminal interaction, make it output a short +notice like this when it starts in an interactive mode: + + Copyright (C) + This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'. + This is free software, and you are welcome to redistribute it + under certain conditions; type `show c' for details. + +The hypothetical commands `show w' and `show c' should show the appropriate +parts of the General Public License. Of course, your program's commands +might be different; for a GUI interface, you would use an "about box". + + You should also get your employer (if you work as a programmer) or school, +if any, to sign a "copyright disclaimer" for the program, if necessary. +For more information on this, and how to apply and follow the GNU GPL, see +. + + The GNU General Public License does not permit incorporating your program +into proprietary programs. If your program is a subroutine library, you +may consider it more useful to permit linking proprietary applications with +the library. If this is what you want to do, use the GNU Lesser General +Public License instead of this License. But first, please read +. \ No newline at end of file