debian/0000755000000000000000000000000012303332012007153 5ustar debian/test.ods0000644000000000000000000011226012301362373010656 0ustar PKZTDl9..mimetypeapplication/vnd.oasis.opendocument.spreadsheetPKZTDh?G Thumbnails/thumbnail.pngPNG  IHDRd? IDATx XU9ˌ23FG((^JSH$bbyI$KNIjxI˩Դ)>fjWE@A.p>[w{]>9 g{ٮ"~YVVH$ǪYn0yOL@@@M*uly!cޝRJ)qGُU?J.cXćێӍ;ϭo$4#i~JHJ]=1kí]U*ʪ.n6tI6L]X3 T+SIꜨ߮OxrUu*x LtbHfC2\ z9in_/ͿO3N\)׸U[k&pwJo,-\2-q];{ OӺ ]X?| O-`e uݗ~9 fg]$c&j3o͸CW 2j%߃jR{3:#[`tbl1}}cOVCx3xk 9^PkgN[ߎ['+|ϷPr[ax,dZ=8 -:jQcN*=I; 9D-t+c&p(P!['@3.̆>NXu5y1LQ9;qt d a{͸dLewbƪC>npyK|~6rÆp\rØ>yaocl*!j\5%>-omB|O3DžJDv'S׶ǴuZ5x[0qr5q{6Ty׵qq"]W:rH\cHfC2|o_Ė^9C@Ogz cٮ+:*|;jg;Lmb:L+"řo;IZCD^1㘄e`l5NRv5xPtF̗Ж=MTf;$s'8opPa+⃮6CoFwʮڲ;X[Ϸ~<>G0 2yCoZtd2b_*G(3!-.Ul<ߘO]vgVuRkQ1G(3L%& CodRe??*7/^'|V1o&d e~dRBa j!KzFIv݂|WNޤ5;1"K2ĐD'd&:1$3%X78tc4xKݓGT0ľמB% `ێ+!%֧shҧ2 NM %P~K7 mJH.o Yt>yY 4 8gW7[v|5o WBryKx=ާff0w?2 }DXm`_[pԋ}A.-kÇqz_gl_o ^[5YYvnrK:Dy{B9i bMdvKymVBan fU?!N LtbHfr|amI<rs/+"Bx_2{΋#uy%r4wjՀd0< ګEBDM={΋#uy%xse4؇5 ޗ|%Uqp lH]9"oˉ3++ӠǞ[Oס\2_eaa.P+ m$y2 |쵂u(W)^ KP&C[K"TnLB_?Cי3_E~r=oYN*V6WA3T7 :E@wtpZE $Z#! & wkSOC7~z@2?<̢#u.?~$]l}pι=w4Ғ!A,j 8E>_Gow?e4Fmܵ'HT|D̗d&1$3щ!N L~'9ܵ;V%^F` Zvq)[Ŝˡ0-փ ֻ?Hs?XQ ~Q%8Ŝ7r"W\}du90U*̷<syߨ?Heu90_ (q0)󅱵[t༃mEFeA,?wv4 -=N*a!wa.x{1K>`$,wKP''ֈžpx|RFN|If"C2Đ_pGkO^_r XH7\>{z\]dhذn-]AKNN+vPJL];&k5 p:vVhx)]A895Ӕ'A(+!|4~(heA,] e;`v9b@ <1k-CAN IK/2U Ů=WoB?x(I]$,>߫R(Vg JT|bC $;%x LtbHfC2|[f=a5/~}ȍa(pd/2JCq|kNe|\/FtQP vzPx)ب p +"|_BC|G:/Ftk, <_8W:C(| AGmnϗvjq p *B!R~`LWQ{sh)|y%X^Cp(Dhp-!|0]S ִ4{y|]/LcHfC2Đho=JMreo AG7,B[*5BM~NƗ yu!~*qh{ l]t_ ur${9!g8S]\0iC .rI>e Kc Is4ToI[辂 @R JD&' d/% x LtbHfC2K8pF;a\`69kzۛ ({9Gf_<{TXL=Un0eɖrڐVWPIjw=PXL4eFa~cwʖr*I)k% *Q]\L<I6r8v!(^h櫬ɔ5=(Naw}o+$A./q FΙ/Xӻ'@+ٮһ>͝sz$YnjMLyR^ךO]L҉/LcHfC2ȉ*N{7w̺rbiaJ0ETۼoX'lSpt44WaQ 06sxQ%b* >a_8{Z#8vDg:U1:1C?*N{m)xQ%Lyߔ+F~؉4:u0l䇮 Ոr߽e ۮ(FcZ мo0`2vK2|=h@"'7N+KѣaHǬrTxJ`%n7"`=*cG2~V=a%ң=Խ51"$;%x LtbHfC2Ko@KG,z69+ư'rܮ2 ~g(9\|hiZFc6JB=|:9\f;$/ \-쉽g Ժj\f;ff0-==Q p{=.W=ʌjg&>_얍iOTר {{ j]F5F4:AF]`Oe8xZ:d#b$3!N LtbHf;1u_NfWHUh?] sk/yJ*ߏScE h .(*9/n/L&URi}Rv'F`#% ,v:5ʞ 9]Td##_eGvt5׺ h,v`=2ŀM]-.(JdTBU@I1;yeOgβnG漸\*Mewb0um{LQs*|1uUp^ Μg;Tp^bk*]W:rH\cHfC2\f;`+rB;Lt50bhY{_~MϨ ][Ӆ'Qǁ>l:&k;gFy2S/5Q%lq#NWk?\H?yc_ ЮE< COoa` &+d;EMNO:pԦEgyJdȉΊ0}3`46ldŤf;k 13[Ofp̺>d;|՚7D|:#`2<{}=i:lLQGP&}{<5X `V+lȯEqD.Le]l`۵y'}~- d0F%x LtbHfC2\ Ԙ|{m2oי,6/Oċqv HH*OКOV}-(Sc䝥d8%ơttr W%nOċUȧX'+SNr X )+V2xlV:'+屑x]LI'@{t(]p?%@+מx_ ev [2L#ͦT}4@%*قu%mP;ev SXO꾑O]*C׭a%LseR@8Dߔ9{}z:{ǯ|ڤkR@Ki el`I AN|{{!Z( \̷02zum- Z]MN|L%̗VS̘.&Y_kiIZʌ/x&C@L4hOGZ/=@D̗d&1$3щ!N L.}S[m!Y 8l'X̷Oa _:ߤ^-Qgf\mwƃwͤBPl'r,̃e_Zl'X /ڲǁsNVYm'.eldwE3rg+ (y%20{M;)eD'/Kb"OLl'2v` 9D5|R*$@C=:D`JPI8ZeD{ylrU&= g*(y%󍎋~ak+|hk $:H蒈/$l'r룧lc/>_hT$MCCYD$}_)Y ʚL/h g1% F eqE|R._Ia|9gp C8ÍZ 7:n(P&Wȧ[jEԯ`7J }s>N"&L|If"C2ĐPU'7IENDB`PKZTD settings.xmlYQs8~`N f'!tzK3&4Iơdgc_cO%}v$_~~ XgBRcֳ:=)ߌ'%G/ ˹t T: 9ϗ9dzXQ8Jmq|hdTnfBgCɂ̙ؠosp(4k!˃KIl:ljkcKtvYe^yL%V>\Yޥ]7VfږA?_~ t-|84$REcRFq_S*S$ >OЂKC/[կHHw(O2~op \憌ЇlQ Lcfo)}A"A=I6=y}..i-a=ri֊H03dk5٥n =߇>QUhAw37h!Wg 1@𩤄ES)9ahx.gdZH0/2K)U?Uvm -fiE$\ ('b__ ư2) o(̨MQ6 C E~L*ե5]pPKOSBPKZTD content.xmlݽ]ǍyB{r`hmޫbw1wrՑ\;:%xLdl lrWy*O3`}櫿<|||ߕzx߾z>={'=~_ݷ_<~݋~z짾}o^?=/ڻ}_׋/~?^+>g߽~x-Ӈo?#Ü_u~zի<7{|ڷ^ozy~(//xu_|zRW|Ы?ŧ?;/?o{IcW?~a~],>ɫ/O}o^s๼_֒=DKǟ|W?W/o_^{O|\_~R~n|ˍ|[x훟7O|/__^?l_}ƞk<듼x³",}ۿn-{8^>>ҧigk{d[ůh{~fw>ˇg^y-^?~J씽7?]wIyWǯ/}?ouoo~Ky!??x}տxk~'㧇WW?7zs S>wgs[׿~f[_lo~xkɧy>~z-ËO,_F}_m|{O~>^gwuvy O߾xO/?mR}xów |ᶓ7/k3o}٧?v|voz|Z,kYU6J@%/d[Kw^WITLw+H?/w-܇77;6xfF?[^1V]%Sگb_ ?6Cq_z\kKop?|g֊U>|/?q- hznoɯGyz֞~u?}Ľbs_=<>+}]/^>< >r׼_Y?~O[e}}M v}7ś}y㧏֋WᏯ ~_/+XPOן߽y.OK?31IХ>߳O^4?΅*LSLmj8Nf'ScY4^{NOo.b ip}- Vޏ'g, _2V06&Yޫilӯ\ǽ|RNr+,Z+p{+<#t4.j0*BEA*w)fzfqzdF }B,oBWl:g[)D.:Wd8PΗ1Icq|Hm q;mfQx-bP0APSh&z,%*n4JtĦ9L¸JR;Vi}ԧ୰l|-\ 9fQ 8l֒ P/8o4²Ѽ``,KuzD͆(|}9VJkpdN~I|΢uhwM5nDCE{{l02;!& ٍfZKQb82v Y4^Fe`װȸO.6͢(Pmr$n8WQNHd4Pc.4Y,kv9|>Qifin8W7S%mqVh8eLTRƐ`.W|, c>Pn[H`G`yT"SXu*vJh瑑,iezp}C|;Q|Cwp4g+E|J+Y>)b'q 6lShmd7F-q9-|BpL }`<ܣ5| ]4n74q2ߓL $ĘxhFS|qY4lL&* t)i3uR(͢r]F40ԕ \߽7a02cuplEԵz[h8P /}*h*{H Mmf%G%7 D#g8ƻA|Gmb[1 *fQxWXFVP@/W(͢*k$.@KAJlR :Ƒ)P-2EX Pk@0xMi&%*]1xj Q..[Ć%uKb$+2,+N$2c.+[ee݁3SyJɓ.2&1Pm\;UEuBY/sSWB>3+̢:SpÆ&W&{UE+Vqkl-aw͆:h {TizK̤/Vq'PCi 1&R|ĕX]A6̢r riȀ4],݌nu m fwg"c`V +ܛ%Yޖp Ssu"ߒ) b@{cD@E0G#EJkX|p֙'ffQxWT5\0NZoYԽ9Km U:CYnf2]zSfywcA #4#`5S,2#Lj*F3\ͤ1-0O7Jz]], }>M[a}w%\dQ80hλc, c TPcq2)YիՉl]8hfvumUL.Զ Z% 'RXLcFK̤tw \PL>΢n;臏 >J΢񾒂rlG3^E{sN" PGo8{GgnXa#-q+p&kbqϻߛ&Y5yu reFWJB6Τ1-ͯ&G+OK.j XyhY;؂p/ ̃ gQdɞ-q;A-]5fQxc׀) Xb4@οȨc]G?tY4Eu*̽W|D^Oe8NՁpT/L.x:Fp;,Z>>3u@gbvFBa&}h:p£>3l4{GUJgS+ :zm| ot݆o4oFqux&iًof4PdX gxW9k;qTyҺo{Τ2*KFmcr_Ù4.fpPM΢n"XqfF3Y B )J#5 "7gҸQ G:p@5Ѧ"gyyYyzl@q&zqF#2>e+iD֡_Xso8DH|,१oi4W5gg <Wo_i&ӳF#+S lIab2FShF(7 ;<{ I7 i gQ:hZ#VLGy, 5& 'jZ;a8}RD<^,c70E 9 T:qYQTխ>-b4;+Q;R=MI(͢FhcΦa (j0>.܆qJ,~^fYݧv lCo}El~,ނ$Xh,ԻLk(h*$f-fQxucΆ#O8feC6͢>0ŸU4ReAYypUډnhǍfQxm֣V]im?`}w47DGpue8ghf>g4WƧ<.jUo^E}`,[WFLX/2E1E@j5KqˎnY;Xq16TTE5ղ25 , `s]eJ# Rpe? grNkz V6菰i"uf|j4tO, kOM#Q*peT nj;n),l2p*aVQm8Ρ \7R (|Ĺ~ M(W3J"ZDw82,osQE]: ƕble3i@=Z\ɏUX}%9zbškbl4Ā ,c0P0qKi"}ʥntX fRNmݕ4E݋7G%p4z ÑI+pbgQRrZTad%9g΢v cY|v 8c"@7fhMe+̱+slʳ|j_7<к 56E㽐WcpVJ3)\:6t+I<)S\ep`k20Oi*^ j\9@a*gim@%í0Ec=~H;qM o'6͢[rПp7hD,*_'.!tTnpq3H50*oa4쮮c89xgøyӝg̤l-8)* ,PaVܽ͢e# RFmH΢QYdå1d_nT"Wz{Mq1fںLpiU13Ա+ +13\805ǁ>QEaIwףa>]cfw; XG74^:fx_˕|=8k3?;V1Eὧw7U;Qa\RmS,۶/4b~7Eh0FfQXJ~ 57 f9"̵ # &ƺ@5E}{ :mZ, eo ]ŅP hh, k~BZtp8vRJeۨUUf("AYT1+c9Н]BH8(΢=6pgbWb͢庵nV\C:|4j@j+:?8|T^Y6g9Vqyc[̤0, 36 0;[xI'6;Y!tgyq# ҦFSi\d?+J1(y=܋R,Xӎ72J(x2zP*ܘG,*_in0mxF^TV5T_ 4ƻ7|qR+̢f @+ga*Τqi$;;+a~4,_SQw@ۡ4evi}GY4Vx6.Gph="fZ]68k+\+%6E㽷c&>Gz`52F(+;c~G)Y4ClGHGp+0VF+ F¾) Gڼ;$3gQ 47W1c20]5Wg faqY gymjƣ4t}Ho4ۡw!6mkq`8uƭ≃WUl4eF7;-8]qnE]\zaUЏ0eBq d_ j4+B͍)\I\c`L WU1&w) gx#Yk82֔c,*aKih(wan4Ut OUu<΢U c0w@,{UE}og_|*?\o]/!;lzOβ%wuw0Ex4)3E};D FsԻkIYnomtR%Ҷ % hv֮,鹊| D_F(c6Us 鋅lev¸KCimg7E}+{9,PiFxcL>MF\aG2*ͤkCJo8Ļ„ZF:JXѽ3i&VDW40بu/PE_<EPg Gx3FSi<'O |(Áv⺲c (|'BhdZmq;*΢N8g<{j8P{Z7Jk|5(s@.g4ƻxx* #Vuy gW*c G~\ӎԏ,*0'ىM! 7N/& q|ͤЧh>)M4;ð:Ϧ'IbpW1;IREi4 8:S&RwM,Ѹ; [F([JT`Zi/My>0{ֱͤ< oGM7 Pa&} Fo8Oӏ3Jcp~T*LBq||'(2eiF(ؖlŶq:TK~ gQqܻ0 ;ඊOUa&u噜cvr5EaX8o% aY3) yuhmĆYE!sM<(wQRiw)ph`nbmfQxP՗ 4xDh@G~q*~/Ek9A\ɭcYxue\^iZ40n컈(L/Xil~t7F(NuV7 \wV)/5-|'B oU6[ ]5q\7fu`/e??'*θZf4$5/8\ȮF(h|Uqq'|ۡ {5Xf oUi}wE8?@ab3JSi,vkieZqFh/f7UEÐx}FÑ MY4X8~``Vyt1En᭰ .Gꆳ|Z-sgB88(΢~jGu?19,_ru TjPI`{\Ue8W֦j4'o02jnb9J}qȣ40õ;,5A+.ѧO"u{*\awػ, +cT8qkʼnl4ƻhm<^g4PՕsfQx?Pk<](N2ޑuÁ*5dl8ʻ4s(fF&fw0Ȃ>0WJ?)Nro<}Fۼp&avY<;@6&>1Em/: FyN|_Y~ :bBj+IY4ޝ<(t;~Ӭ(;&] GǕ֠YTRzN)j,As`Pi.Wv?Yh5~3i̅0*/ޥL H@AxY4Wf Y a4y5䬃, _~D]#0pJ|1H2x0HF#jHUB',i4p7n4a8ȘI̢ﶈ0j-@;!6UF5x670n Į|MauutL8kJ4eݸяI-cKwY$Ǡvw``^Ƹw &Rִ#Pg 0|+- vf4QkkV, ^~c#}p|-BLݭc˸*0{CF~`teaeYީ5h"q_gҸHְvwpPfGLCɍ Ѹ"-hܸ ? h`3J3),l*Qn40' 15Ea# Jܙ}1T ;q8.L1Ek sG=F#'G4ƥOqfWr n8F]O)P϶zfUF*\tefQ >h@vbkƊӜ'].[Cn6΢D F4g)!wul{%yVP $e4P o42#"j875g@c8p^b4&ǡc⸕[ Bf:}qC]sqrY]c4zd84zGYTVq/}I%GQ\b$.&3qձ&#t, K4ۇoѻvYǵ9f_>_N@uMbyz2_Ts8MG6~2}@Y,W4ě*h҆ۅ. l%Y񜲧񦑙 ~5EҬgzM06&sA #^?p1EaiBg?0#||p-^h6?FUqFWTM$1Ygu7e mTYmoqaD[n5 S)ܩ\Y*9(͢vhu.ņq+w¢00Nu \~,nG[9Uyp= RՕk4«+3qVZB|TPþHWrYT^GF@q`"u &^g4J " M3)\aDq~4@q'', H+µBhL; qғ (h"} x+a4Jn, k ,C-8P Y4gp)W+pD è& tbo,gGqxYWډYb?.KmEٱEh |VEߝ lqΰc`}5:.F}qamEߝu?|Pv_WV]RY7g8n]FLpOea 8ᲄ-, p #ׯsb]Jtn8L^D?0zq xCfQ hJi }:d0: zlpS ç( gQ c JghaL &Z.cX!$WHdF?I]0PaS 8JgQxm[7:wVqCQ*h؆YދIR4ln^7֓͢v \{fҷtZ=;NŝZfQx7_k|kֳ%gxupQY(4I/oaV7`)͢.Y=@Hq+ nI~W'L# Qa qkXi*ݘ.#-1 gQyXeb0Ovl*T nzAYT!ȷPp* Jyk7v>I4c_E(XYXM2m1Fh|6EJMEQ9#pu8;@Y~'*M1)@qÁ,އ|p4מ7TVi8::NmF(/pxqkxUh#M9OixwF$HhA i ⦁ &͢_oUc4ĎFǔ7IRiyqxš3S=%Y4L1[>PB# d8c r(#YD~=|67I4}`Egji|4#OWq ѥy46E |. Tɝ., 5ܪ/G7]Ñvj4WbI9|_6Y!>d1IVułFjwCCi3(s X :v2 (ј|m+ MPUU{'.Ea[j8?Sg'FQ |,_)An8Q  n&s*Kʮ͒L 7Ѹ,q#jLFn8Lmzm7ͤ": b0Rq$qkyV,.yW MgJ3 8'vPm|=,:9//~A~ RE᫑l]` ^Q4{0{LL(3, _ٴQNŕLSqa(J3)F4 ?7hup Fs=z(͢j܈_MFo]//`h>lߔ/Jdb@EF?o]/;wT|Á&ZY6JƲߕ G:˵AІYxY~HGn fR znh`8pݿ,,G@K\]gRXB~$6S32ͤꂰ{W1h`4ƈ;7JCkTwgXml~&ѸU\ΥxWp&iU/+6'qhC17FSbF3),{z0YKfx7  c Y~}6Ñ*׉v5;ȳ,o+͢N$MqW[*̢eY$7`do)̢>{ * Naw%a`PG[3 LQybqAv̢.0sy7x P\IL ɺiǀDn,Uo#fR`80܀A4EemZWO6[}tc, kjlt41N1E4|fhY0 h|}QKnQ4 v6N0.`X[w]t,n;Ng=h("pW fQ `ьm‰>4īTVXirY4Ў]4PcF|n8W 5 ?U17ܩDK|1*?m0P:nL :`s |bpw)}a4'ř.WSol0 UtNiw#$(lJЏ(3W׻.{4n1+YQc8Nc4՚yLq 7F(|m;Du6?h-.T:(O$2`t@3Qe͢ >3jC;X;}J(|pȪ}6 \W,j_6(%S5, 6 ߜ@i/fR2sK'3At=җ$: ͢1Gqd8PjQϓis?K+͢$F YFVۭ` h\+i6w3` W;+͢.Dշ6pjElE].RFAN0Lަ;mV0~ỴJm慾$h.qFfJ3)8qrq7Fjf~ņYcb"eJ9n 3E)K7TL *oE_E,83gKkf2LTfi]tgfRNhG E\IݵqY*#.%+}c, NJ#c c, e[ oJ#}p.Iք_Y|]V,:ӳM5`!oN0wҏyDRMFͤl8ͫZ5vF(QQi81Ecu)Wg{MԍfQWπc\ k ga KNzccĥL 5^*Lf;?J(O+I)gE*F(|UP\7|ٟ}xGh}q7ecDL,Wa9xQkg7͢u#{ <5yΆFmtԪNpW{_iX$pW fwRYvϕ FoWloHMT0FyӦY>)2}e) WE4zJ\|s ,XR[&Rw"ޗ6E,y,zE\Č΋,):abwdN06StUrtY8#xu97m5Ea.P%|\5n(̦smg6Mq"4Џm6j;׾Wi5g oh޽xT6: #:ŏTE9?-Dw7vYwc Á_o@4{S#)׹F()5 ÁA3L*|T E=b^COp&fqQx}B9*͢u¼[SIu}tv7+:|IέÍu2q _4ǀ*`*͢{,nUBwVR7̢7eܸHm{5H2:>5g%©QF3)hhq e3fWiCm͆#ϕjM rũT<3n-źr3)Z`c* %hbo|mE냲]_0nJ< ˽q.#zq+X<*~6ENcUX"(GA$J5.Lu E .g:( J<Mq, fO31B'~ 0E&T*o4Na4ލ&R+̭Ǩ/Y)TomS;R`ԏ&#ݵްԳpя n `8-vdFk!?Uh*{ &n82{ m]28*΢򕃟8Zn= x3 d08K!FWEaZ$.7g)Yݞ)l,5 c&ZxY4b<~9*z gQyQ!nZŁe*}"~hgy1R Ah*=_vYT޷gC)g/K83KZ|mq6%׋fQxG^iu>G Lh 40AfQx{r\M01M)ˢ)[ c=vXq|tYI0R}ch)NNRƝ<:)c" ֹ1F3)1sh4-oi oi0P6 Y֞2S|37 LWH+O#Uyr*6 `&Wl4/^6}q,6ylSV4VΟ8ҟ}Jd8\g/]qq}L<͢NLO\kZ_Fh|]vzAov n_97E]Y1++6 =^V<8Ɨ%buHw)x-%VY4ޟU¸sSf+2t̟08JͷM3WK%wa0ėa4wjg4PHPh5$8F#Ϟ纂/Ek)q+ȹF5)_THu՛0ҙ}]*΢;M<ÁIپ,Y)D! 軯' E>[Æ#B#b8ʫQ>4^ELw4„vԘjwjPMh;wb74LiJ9Mp]Euڏ3Ea)5 H5o%fRx]`*Gcg.fVE_5;OfqX\,^Oky{h4O常tLٺiuN:֞՝hA?94x> 熳hlѮpd.Wc\*j },q+Ig*,kj}yD[ӽ,,/siJgA+̢:_}/1N1~̢N%1pVGmq8ʗ?  FGi`tLNaY, ;Z |e, p m.`8ʗ?uUVDwo4M }r fQx?c qkX1im4­.ɳ'iKVKc7FCϠ͢NN~@eM(|Ú 6ß:͢IpF8;q6b܋w6h/ &a02WӅ, _kx?Q@EQ3EyAyUr0YݾrW/V]oW+yY:o T5Ǘ)M0G87+xy΢53LL%u}Á:fKfxGWsGti\ASpMSfwР5j+[vyR{ΕXSUF vo#.E+$\SU.ʼn.slbA}P4ּd @j}}b4^[k*\g%>:)ͤpe _b8Pc~y~mZsc;Y41q_aGpu5aմqhYq2û9\׿Q50m[84(C%J0!Q/߯SIU;1k+':<&fQxxt9R0XoJ_^wΝ>%_{;z_~RG/^=OO_>$ǻOPKkhuC Z|PKZTD styles.xml\ܶߧd$Hju]gg;F hn\a#IgO'!%jh.{s6lHweWĺÌ]g[8 iD痟KOWt"!^D4,R s g|Qv^qJ1_pAsA PK-j-:Xbc1:Xb:'Ί:!Ms$HKd]k!n6쌲zk,Q(tqb|WcS,T$)+[& j0+y9m"sL_wdvf׈M72SecS$t?B?bԵ$a|%O)E`Wwz3 0"03(}k|qe#%$*cD`/P _^\7[4ҵFPF$y:l1V810#v!_7 MQֳз(l<~yšڙXKUXQ60S4~G(vTCN&;D̪,]^" =s% 'IbkxN 0 ͝p2YA\L2 "AY\VL5~C(k@a<ZTꎿ~N+wߏO\֤=uO3=&_^BU34Pg@V!1HLz Ơ}[xZ;@ C <$(q@Oƌn=$ҪuP][蹚dX0I=b"mB|Zy𣭤ӯWg<)"Rw()wk:>e9X]>Nt8!)ϟHD\ƪ%oz+elC 99Wԥz&ǥ3:"a=*۱.TڍX6XVbYK4]D$&|cJ&[;?'M8 G]m/p4{6NY TΖ ,۞{R׋կ%= NDu#(+)`B|e 9YdkDQX;(g.2M_=*pM[̼W3nUO*PKf0ց EPKZTD#Sl'meta.xml michel juillard2006-02-13T15:25:102014-02-20T12:20:261601-01-01T00:02:052P2171DT9H31M44SLibreOffice/3.5$Linux_X86_64 LibreOffice_project/350m1$Build-2Sébastien VillemotPKZTDConfigurations2/menubar/PKZTDConfigurations2/floater/PKZTDConfigurations2/images/Bitmaps/PKZTDConfigurations2/popupmenu/PKZTDConfigurations2/statusbar/PKZTDConfigurations2/toolbar/PKZTDConfigurations2/progressbar/PKZTDConfigurations2/toolpanel/PKZTD'Configurations2/accelerator/current.xmlPKPKZTDMETA-INF/manifest.xmlSn +" 5ҾF ¦j~I6L֛{ٝNElī|þM춫M0: ַi#JF 9hfcl-w*ݳخIs?_&tWc#tuKF:a+ܧt`r8yR| e~ 5R!`ކ0f3K|| Source: http://octave.sourceforge.net/io/ Files: * Copyright: 2009-2014 Philip Nienhuis 2003 Tomer Altman 2004 Laurent Mazet 2008 Jaroslav Hajek 2010 Torre Herrera, Daniel de 2013 Darien Pardinas Diaz 2013 Markus Bergholz 2006-2012 Bill Denney License: GPL-3+ Files: inst/odsopen.m inst/xlsopen.m inst/private/__JXL_spsh2oct__.m inst/private/getodsinterfaces.m inst/private/getxlsinterfaces.m inst/rfsearch.m Copyright: 2009-2014 Philip Nienhuis License: GPL-2+ Files: inst/pch2mat.m Copyright: 2011 Bilen Oytun Peksel License: BSD-2-clause Files: debian/* Copyright: 2008 Ólafur Jens Sigurðsson 2008-2009 Rafael Laboissiere 2008-2012 Thomas Weber 2012-2014 Sébastien Villemot License: GPL-3+ License: BSD-2-clause All rights reserved. . Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: . * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution . THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. License: GPL-2+ 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 2 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 . . On Debian systems, the complete text of the GNU General Public License, version 2, can be found in the file `/usr/share/common-licenses/GPL-2'. License: GPL-3+ 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 . . On Debian systems, the complete text of the GNU General Public License, version 3, can be found in the file `/usr/share/common-licenses/GPL-3'. debian/testhelper.m0000644000000000000000000000130512301410755011520 0ustar function testhelper(ext, iface) if nargin < 2 iface = []; endif fname = [ "debian/test." ext ]; try if strcmp(ext, "xls") || strcmp(ext, "xlsx") xlsfinfo(fname, iface); d = xlsread(fname); else odsfinfo(fname, iface); d = odsread(fname); endif assert(size(d) == [ 1001, 2]); dispmsg(ext, iface, 1) catch disp(lasterror.message) dispmsg(ext, iface, 0) end_try_catch endfunction function dispmsg(ext, iface, success) if success r = "OK"; else r = "FAIL"; endif if isempty(iface) iface = "default interface"; endif printf("\n***\n*** %-45s: %s\n***\n\n", sprintf("Read of %s file with %s", ext, iface), r); endfunction debian/changelog0000644000000000000000000002043012303332012011024 0ustar octave-io (2.0.2-1ubuntu1) trusty; urgency=medium * Don't (build-) depend on libreoffice on arm64 and ppc64el. -- Matthias Klose Wed, 26 Feb 2014 10:29:14 +0100 octave-io (2.0.2-1) unstable; urgency=low * Imported Upstream version 2.0.2 * debian/copyright: reflect upstream changes. * Build-depend on octave 3.8. * Remove dependencies on octave-java, which is now part of octave core. * Update patches: + configure-java-classpatch.patch: no longer needed + uno.patch: new patch, fixes detection of UNO interface + low-priority-for-UNO.patch: new patch, lowers priority of UNO interface * Add a testsuite for {xls,ods}read on various example files. * Update Recommends for interfaces: + OCT needs unzip + UNO now needs libreoffice-core instead of ure -- Sébastien Villemot Thu, 20 Feb 2014 16:03:00 +0100 octave-io (1.2.5-1) unstable; urgency=low * Imported Upstream version 1.2.5 * debian/copyright: reflect upstream changes * Recommend libapache-poi-java. That package now contains the JARs necessary for the POI+OOXML interface. * low-priority-for-POI.patch: new patch. Puts the POI interface at the tail of the interface priority list. The interface does not seem to work correctly for now. * README.Debian: update information about POI and OCT interfaces. -- Sébastien Villemot Sat, 16 Nov 2013 15:11:56 +0100 octave-io (1.2.4-1) unstable; urgency=low * Imported Upstream version 1.2.4 * debian/copyright: reflect upstream changes. * Bump Standards-Version to 3.9.5, no changes needed. -- Sébastien Villemot Wed, 06 Nov 2013 13:54:20 +0000 octave-io (1.2.3-2) unstable; urgency=low [ Thomas Weber ] * debian/control: Use canonical URLs in Vcs-* fields [ Sébastien Villemot ] * no-flexml.patch: also remove the .l file in the patch. This should fix the occasional FTBFS on some autobuilders. -- Sébastien Villemot Tue, 27 Aug 2013 14:55:50 +0200 octave-io (1.2.3-1) unstable; urgency=low * Imported Upstream version 1.2.3 -- Sébastien Villemot Fri, 16 Aug 2013 23:01:06 +0200 octave-io (1.2.2-1) unstable; urgency=low * Imported Upstream version 1.2.2 * debian/copyright: reflect upstream changes * autoload-yes.patch: refresh patch * private-testsuite.patch: remove patch (upstream disabled tests in private functions) -- Sébastien Villemot Sun, 26 May 2013 10:07:48 +0200 octave-io (1.2.1-2) unstable; urgency=low * Upload to unstable -- Sébastien Villemot Sat, 18 May 2013 14:59:56 +0200 octave-io (1.2.1-1) experimental; urgency=low * Imported Upstream version 1.2.1 * debian/copyright: reflect upstream changes * configure-java-classpath.patch: refresh patch * autoload-yes.patch: new patch, forces autoloading of package * private-testsuite.patch: new patch, deals with tests under private/ * Bump Standards-Version to 3.9.4, no changes needed * Use my @debian.org email address * Remove obsolete DM-Upload-Allowed flag * Add Build-Conflicts with octave-java. If octave-java is installed, the testsuite fails because PKG_ADD tries to load chk_spreadsheet_support, which is not yet in the path at that moment. -- Sébastien Villemot Wed, 17 Apr 2013 11:39:52 +0200 octave-io (1.0.19-1) unstable; urgency=low * Imported Upstream version 1.0.19 -- Sébastien Villemot Sun, 17 Jun 2012 08:12:01 +0000 octave-io (1.0.18-2) unstable; urgency=medium * configure-java-classpath.patch: update patch to avoid breakage of octave-java -- Sébastien Villemot Sat, 09 Jun 2012 15:22:18 +0200 octave-io (1.0.18-1) unstable; urgency=low * Imported Upstream version 1.0.18 * debian/README.Debian: more details about spreadsheet formats supported * Change architecture to "any" and add ${shlibs:Depends} Compiled code has been reintroduced in the package * debian/control: recommend LibreOffice URE >= 3.5 * debian/watch: use SourceForge redirector * debian/copyright: reflect upstream changes * debian/patches/configure-java-classpath.patch: refresh patch * debian/patches/no-flexml.patch: new patch -- Sébastien Villemot Mon, 02 Apr 2012 23:10:25 +0200 octave-io (1.0.17-1) unstable; urgency=low [ Thomas Weber ] * Change architecture to "all". The packages doesn't contain any compiled code anymore. [ Sébastien Villemot ] * Imported Upstream version 1.0.17 * Remove ${shlibs:Depends}, meaningless for an arch:all package * Bump to debhelper compat level 9 * Build-depend on octave-pkg-dev >= 1.0.1, to compile against Octave 3.6 (Closes: #649395) * Add Sébastien Villemot to Uploaders * Bump to Standards-Version 3.9.3, no changes needed * Include HTML documentation in the package * debian/copyright: upgrade to machine-readable format 1.0 * Recommend octave-java, libreoffice-java-common, ure, libjexcelapi-java * debian/patches/configure-java-classpath.patch: new patch * Add README.Debian about spreadsheet support * debian/control: mention OpenDocument spreadsheet in long description -- Thomas Weber Tue, 20 Mar 2012 00:36:43 +0100 octave-io (1.0.14-2) unstable; urgency=low * Upload to unstable -- Thomas Weber Mon, 11 Apr 2011 22:31:56 +0200 octave-io (1.0.14-1) experimental; urgency=low * New upstream release -- Thomas Weber Sun, 10 Apr 2011 17:54:54 +0200 octave-io (1.0.13-1) experimental; urgency=low * New upstream release -- Thomas Weber Thu, 02 Sep 2010 22:33:31 +0200 octave-io (1.0.12-1) unstable; urgency=low * debian/control: - Remove Rafael Laboissiere from Uploaders (Closes: #571920) - Remove Ólafur Jens Sigurðsson from Uploaders * Bump Standards-Version to 3.8.4 (no changes needed) * Switch to dpkg-source 3.0 (quilt) format -- Thomas Weber Thu, 13 May 2010 22:19:55 +0200 octave-io (1.0.9-1) unstable; urgency=low [ Rafael Laboissiere ] * debian/control: Build-depend on octave-pkg-dev >= 0.7.0, such that the package is built against octave3.2 [ Thomas Weber ] * New upstream release * Drop patch dlmwrite-succeed-test.diff, applied upstream * Add README.source describing our quilt usage. -- Thomas Weber Tue, 29 Dec 2009 17:56:40 +0100 octave-io (1.0.8-1) unstable; urgency=low * New upstream release * patches/dlmwrite-succeed-test.diff: New patch for making the test of dlmwrite succeed * debian/control: + (Standards-Version): Bump to 3.8.1 (no changes needed) + (Depends): Add ${misc:Depends} + (Vcs-Git, Vcs-Browser): Adjust to new Git repository + (Build-Depends): Drop quilt * debian/copyright: + Use DEP5 URL in Format-Specification + Use separate License stanzas for instructing about the location of the different licenses used in the package -- Rafael Laboissiere Sun, 24 May 2009 14:42:32 +0200 octave-io (1.0.7-2) unstable; urgency=low [ Rafael Laboissiere ] * debian/copyright: Add header * debian/control: Bump build-dependency on octave-pkg-dev to >= 0.6.4, such that the package is built with the versioned packages directory [ Thomas Weber ] * Upload to unstable * debian/control, debian/rules: Add quilt support * debian/patches/only-add-once-to-delim: New patch, fix a test failure -- Thomas Weber Sun, 05 Apr 2009 18:47:00 +0200 octave-io (1.0.7-1) experimental; urgency=low [ Ólafur Jens Sigurðsson ] * debian/control: Bumped Standards-Version to 3.8.0 (no changes needed) [ Thomas Weber ] * New upstream release * Bump dependency on octave-pkg-dev to 0.6.1, to get the experimental version -- Thomas Weber Tue, 09 Dec 2008 21:25:15 +0100 octave-io (1.0.6-1) unstable; urgency=low [ Ólafur Jens Sigurðsson ] * New upstream version -- Thomas Weber Mon, 12 May 2008 10:08:37 +0200 octave-io (1.0.5-1) unstable; urgency=low * Initial release (closes: #468506) -- Ólafur Jens Sigurðsson Sun, 10 Feb 2008 18:12:10 +0100 debian/test.gnumeric0000644000000000000000000005703212301362735011711 0ustar Sr]ǑyODJUc鄻-!8$=7 $m<ǼɬZkt Pnbsc׮UUU'>~sqW//^?|g~WO^]7Ops?_߾:x9^޼|o.//on/}{s^zO?Z~|}gNj<懫|z}sv͛Wߞ]q?]=/zy}Z_Uŋ/^7;7/^xyn}Nj7x˿~/r}w^W}w\ =¯o:9ۄO~ś &st{?'/n?}ubx{qyyv+w_PYg9cw9x}VRyF5Tֻoߜ_?{yO+>y_y/}s=]7]^ӯ[}'ԹF=~qxf:$swx3_^xgiw^W^jZ%:R3;szzsuy\gߟԾ:y3ayS wNI勷[ }sUzttoί7l쯧ޘN/|36oH*`_'OiW_ 4W?N_ Nd~߫KMt_*Uw3/t]H|v~O'~l4n>yZFKy=ś/~+}os8:o/O?4~s~J7~WC˫{xsO<~g_Ͽ_>/>{ľ~#3s0]{BSYo~~-:Ou{{է?Ͽ-NGN/Mh}K?Ws墨~L՛y} sp>o<_onZc>{3*^ϾՏO~[G_5_Z'/|{uss nN!w+?CwWjcy8 xQQ|dIϯ_a{o07 w{*>w\77?|_]V'ZL|co zLS777?7Wh.l%|槾|y_⿜s';˓/^?~gr|[~&6_mz2O/ި 땻Rh۟zK7RNwD:7sK{/Ͽ7Sꨩl_66:_#?7R_x>~o~}~fAw%;zC2Зj]'rB_QsvK*'&g_~qg&-f&T>9X]:ZXq~Oy}qv>Γ-vrrqQJr}靹|8k߳vX{5GyW~yTWgX[1׎?O5]Ǖ{+gn=NݣgW#)MW1zW^~ӕ/5]}R|Ky{+'﹧7|{n *}>rtGWѣ{+ǻvߍW~lyY߳v_9yWa\{}6./߿v|</I;A}+w,r5ݝ$cc:_;I)S7ݯ{u`p7ug?1rwt ڣW11W!M]:yLUpiN͓_w櫋y{Z۬]mS QWWoi[g~g4?-G]P;o)ѻ#wFl_^-X?-]0~6[J3)|+}痗}מۏz6V?l'i{ CC|7-|fOL3 ݔ.yy(qC2鎑82%%*vJ L)S!\o!8K:&Sdh2^@1(gth\K2X,=#@J#7:.]FYB ӊC$z{vXG導j,tNcP{ZoEfF$YEAEr_GԳ|;!^+٤kj%t1y6[F^k3rUO*:GjTE"s2j ũ2 Bٵ4@NSYD\M 0-Ǯ תgT}ElzW:5M`K#ᤓX&Z.dܺfKg[kQ`mk3F9dΐՙQ` T9II0Xw2th(bd*I(@oZT/9=lSgnj<fP@Wh\ F7Cw@z"Ap=isrP\J'OsG\GN,F@ԞED. j)襧 4fpm{<\ (g z'K"C-@|tr*٥8$2g MgDs(0P8gdԸ`3 |lspm@( !B2Us6ԸU+2 T#ngoGiPCQjU߾FU& —:oCɈ@#l]A\Z]1j@. OS 1HtFBn G*; d/qPu2j %d%4]GKJ$•zz!;j"rM*`'$=WؔPCa$p(b'zu`Aᡚk.!Kah p 8ܰcN%5)J򀹻.K\HHA@T`nЦY ]Tס 452 ͭ^Gg e0C.FeP.C^BEAu Aiūjd.PN'*[ ҧRU%d¶pVT7{].RzAtm߈򧮒cVD Y!!կ^8 b$rMn"sk~ $7ܮLŀדFS LtCҵ"0d(YIBD-[ .$tu A)fг T-vp]KI y sQz(j 6Nd3׀ P P`;lw==9.,||$ 4j vTH,KNZUATܗ1J;7V 2 Wz i&]+1.C=P @OVn{-,V!@T dүi LTv [ vS3e3A7D=r7Px7F &K;V(a*)PN :UK"wD Ԥ={{ԻC\#bIP߈[An]\OC'Z7;r\PT 叐UsBm\k ^nf0 4Q _`Q.gqG(WPrmH .v(="AeFI䰚W`jIPM(i,ҹB9=+tu]4)&\&\ S(]m5CyD> *ܧ`] 0pӿ};52!^| Dj CH)H*"UeCCu(?ŷ"i b?ЬƢ SXC%aźN'%00 NmH>2u%D;̖x"u Z< #CUD8ߜB gMa1jhh*r13XCCalؔb+qmb(P> ֱb%Ti`W0qFbLŨnh9IE" y͗a"-C맽S(mPi [i2L\tIVF*\ΡB I*RɉpQaK՟J +vFjAI"@di+T<,Mf=;5l!b7+oDե(b\EZ6P[*o.B[5J`2YUfnC|E t'̇j]&+1i]h@ g@F<+!]xf fZN+>(+$3VL8\̆u0rqKӳŵBE6.ôŭ+d!bj4clRB7_Dl+0q#n!\aR["f.p#;X 礪A.JE u;԰1Opo}bd6]1V1/eCAQz\ D@Drhn;XOP2R#%p͈<a^-+U̲1s cNVè aeVzPF0eWq0&2 J6Z*ІiuZΡ=6A$HaZ;PE rZӦnr)QŎ.kQ԰%]TJL^:4HV{`yTyq6gxE)b3G!6H g\nJnHЅBlLE=S(fT(dE0qiVT (f \Yb [ȝCG,ь˜WdO@v)d*y,6&V"x3u0(WJq&4.vg`T8Ӏ%)juO=}O/'j4R2T+ۆ`8q c^f;3IaY31Z;8P0!OD Zb>!$h &=bXF.Cb$Q[{=i²JV1B]ˋɋS%jLeCn 5ڀ9Mwr=ȺM Vy 8KJ /.@RvFaMEB#̛!>Db zwRHftr9!z+$8%ZQ (80q9M8qK֑jsHl a7u Zp!cP  !P X h-g{N0qjb0AǨfI&duoBPqiTɩb 'qE!X1ZVKƕUU[r kbF5GM{̄Ev*xX J1X#Fc޹=X (QF9Qɨzu@Y#ݦDl"l9PƸ* *.qB3֖3cьB]r-H14Mj`ь+,yz2U}K8S/m[PA.&b3fKoX!)lƕuK 2 d  M C6;J].|s %3fZ!NI& &ԸL>*n4nI[q!ѸNՁ`2͍mpMm̾bxf$/Rb@FC 2@)k @ДA+$crentɻv1U#& A1"m9HTAv lUQQyΖLa5o:Xjٖ{Q6: ,^ĸ(Zx3a'$I=c/+#ŊBE2a`^܊V|0r`{ۚd Ѕ d ..Ê;g.BE_wWDYm~z|0~qq?`ADҿ1 S7`h-S!d)Bam7 xL "8ƭJלBdYQbWHLa\vjɆ'r;K)3њ!!c72=|3 ;Tcit`⦎Yt1v jЬCa`ܢJͥc5!c*dkW Eiʡ1WC05Qih #W  '`*P ƈ!b0Ƭ;4EXJY0^K0e0b??0РǪ9k'4"F37Zm> KXԗ%}pP)&1϶3Gm苩4\~tmY^]UV0rqd(?e!V@6!sF)#Ė0iq-3!ТX&$"_Ul[,o( J%]:bCf Wh߲2 G+fբ.PF]mZ3{'IPapB%1RX yHȔB,[?6\h\:t1b0`O*̄_hwrBPŬ:pG* .;c+.CQmE=8WL˩eb8QHa\d0[qU~{\H 5VrHR" ~pu}dP<Äť\ j>: Hb"j`AI-&Yt\IʡO2/vY\*1b:.UL&IpKX49E+[/g6|?(g3I)gHj< l+ ǡs"% Ƃ=1b\H%3 Ԋar{P6 piezňi.Z7Е8/f#>0qeoe. atY-!ũ͹dM$OKS@8F\AS;J}u5 +!b2\BjlْCTsWa3a%\V]8Z+}.v:1uѪi1袞R,"<.[k8RV+3!y\B![bY ٭ iauR-{u`6,,{=Pä=9^1ۡɷ:.Ob].N/Wu5ng\j+.cp;KBDx)d.:WS-}<PlK3m:RhPe5s[9TXp>-RT=H1brXP,RjhSe,9 ZKF @|C9I+ Y s0SqU*bE:9nB%׉FX hqbYtDbM=õB4d` 1ӰJ(L8pۖKj ( 1u/Xuu"ꤎ L_m5]&lGrzz9,kKv@ϸLcY|cEL L`\Ak#WbFi+">|~DTq]G¼$}f#_`&⣓s32^+*0QbLr@ "BdLj늺Q a/0qS5BrhUm.dY"P֞ yw/"E 1fQM)sA\x4Iրa1'iaO/H*%p0Rtaa#A;O_mu[P*Y,EYCO"5T̨J쮲DZ\Dn(R]ee3ZrG:U$@\GKX.NPwc#;ORR i"lZ>cmj5 x!wSIԖ ;SIJh UTVbDFD \GqLs%xTB ƞc70qE:)!p8ym>ЭɕbP`kyԎbJhp*]_"FAMj5 (=CF`8cW0qڠB0qBي\Dc\WNBX08mráɋ ̚| M-25i@zF/nyWb.jM eK*- [QN{1S`3@cJ:-!c6auJ&08Hƀ0lZ١!cWOցEa:ٸLb}sd)ƛ14`4HP%%ԡZ#d`Y0q e{(!`RRKz%Bc4vW,pJ cl 0q%KWOKhk͸qM善(%H7.0qj'PÔg[[`"l ( vg+5榶x0q+n<`^VUVڱ"VRPq'׸To3P̅YRH_Ȑ`u{k-2vA6Nܲ0;oL3joS"F=ק`xX|v 2, ǭ"dv  Uw0=tBLAPu-0qe[<Ġ=5r AG)K9X]ɽZgN$:&Y'E>Zh"|ҭ)hPÿ%0 <θ|psG2>!A,;50H+)тzExPh+ -7X[9rQG^Tt~ [Ϡ W·Sܷ"8h|ͧda㺡#['}"f^-CGu1nPi<T,qf |<<1ԣ kۡ\ӤHcUCKB{s.;|[.VC $LzXd(t*0qŊ}A2X6ccHR'P-Ĉj?M I#YzzÞ_Xu=" wM 32B|Lm]q!;tvs%|yTD_ 8[s1 =D؏Eeի`!f\4gUɮ7l`2eVa6ċNҹ><,1@DCTBe 00>Dv5).bS}ۧZdMLE0Y/0q]P/{+MK`Z\t#%S?||:KbHHM-C7qža 5}7^]Wi4S>ΙPy)S-Q =MReVBGW`t4JTN͐>49p $NPjұRNM6h+{HǷB1̂廖^e¼U$N®CG ֓K"G **b=> m1qOI؆UƚY {\Ce=CE(`iL~"F y\d1[= V ܙǹzH Z ?T&0q^vX4 [P_Majs 6A϶k=.5vP3BHJٮ sZ3\6VzH`2znlmT+UE 4 U*T #BT}Q Ӹ"ͅdG`@uq!.#nU. 1[4iqo퐲0q[xːm{RE5 ddfǘqfc pÉy;0q*#Ej"w}B4Fƨ`VƘ𨴎{aVZ jF(7B+چmT=fL='ӔyP"[BafXyEiAB0q5Ea 0L]IFSh*ZiWBVl$hI.s>1{U@# SapjJ\}k4 s?g}GX5J!?(C|FU?*?Kϸw燨'V!F]'{SꚐM`=nP@ `X]Tɸ%k=FP@%:aYkhAVo#j X+ȕ W>CK<C[(Vܡhs2Bq%LJ *~Ԩp`f,n.+4bf,΁[c(ɭ„%tTcB,&F?eǣF֜!rM 1uSapfG X!TDP$VBF [ܒ+[r+[B[wgBڢ*k8q5[LU[CٓxpYk/TN2Z=l94PYkGUn5[] 5u0 ~w*[ 1t E_khF0oqQ(Xz o1[XrPYRv>k0M\<}[KΐƸ٥Cm +U\Ƙσd}(.*kVYCXE+53B\E*$` ED+LU\YHƿ+TŒ{%R֫ݣ%"HL Ps%t]CDEJUZ(1ѢjO`x#'9i, `~!BU X3CTwd艶<3vøllK}6e d f-K(@zAfBEHjS<51H%;&dXEnO7 jA;s`J?KBH-TZ`P"X geA")ZAXl.iV|yoB>(nN|Q햱QXp|RiC÷B=en ,X ^ܰUJjj۷b _bH{ߤBX{^dEzXECySÆ7SlDW8>DSD=;0Cq''wQrGrQpnZfW 0EqWp8O흱D?+`E/AB(f308q 909'z%PH|'[B2`fe[xb6{905q>M=:w {CDFYq/X!rT߂D-6q,kr`Z-!f31ԊF@ju+dAܮ@e:Ȣt=;"Gd(yH SH9yJ.cFrh;> U$UDT5#F d3"ė1#LUZc\C{JҺocły3T{Hf+>)5E`" 1b2#Ü,`NaظM%a26ܽP*)3 D%1(T42ԕt5L ʦ%}.u,HWNf0h(mX%(BF]h6Fm-*UoGmе*婅0!ΡtB\2ϣ/MJ|Et)\3 MTeނF¶l`!a­رEvL>_陰5@I-#2.f. 𐚅2_x8|XNJvE"Ux8Z!5򪣃 M~~,V.kX2Tm fǘVmT7@pyȊ}; !XGW"N& !RY` Ql8l)7LM z E}EȆVCQqUc#A HT"~0pl''Pst|;d$#uU5ooGBj鲨 Ri0zƒ2!r29MHwB* ݩ!B)!1 1:ڳ¾J53Ʀ*<02fJ9:-pq37TӐU`Zn 尶 k!ڼTݦĩ[5w63x !nfi%vl0qI| xI-CT2{N*SMs: $UCl QWSTjY;D,Db|^SjOm+%GIE -luBx\L%`LkY %.WަDH-qp.\["DIdW $1IU3—Y`8nyb"ml 1'dtpOGvC  CQ'ɶ1SSҥa4KTCķBRKڽr,,{zs+Dj?J2LES`YuK=  v$0qy|=c(J4ŬJe(炔D1tT^heDn #p$a^D,LI\y꽳LT0Q氧RnU`,զ2;̄QR;&`.'a + &#]S{> )2h-FY, j7Erm\M%GT, {|1:uIa=WkWrLVp y6Y%Ԟ^L;: M3NFc@][ۛ-T"ԪzeW%kΗN{ ĕmHy$qd+>}w;0@q(VN=0/Kr[VV-DR %qqZ ،Zs[d5߭aeC|*=T̵+1[ (zxR F+-:LqZHUO[ e85 Ca'J Jz68=R(h:s`TU`Է\2[W]!-Pg&0mHVR1_3Z$vs ud֒e.u g0n=f"$78~̚I+`|xEd=pUӔ\qQŷ`& 0sW_4ߢ0j'>%s7\󂥀82 ̻,T)RIi0]qmfr؊= q̈́ƧQāيͨNGN +Q`DCo/k\`킢Ռ^ihwC"v#I?cQ7ePN@A-Uzv5hASi`IGcƪ}T1uuGb<5:^> DGr uj'7RoC-jB:hu,*RB0* hwB֡`NB1GTORhrk$1*Ʊ0q\3\ RB* +S7*}y0q^ڈ0CW }Z EDiHEh`hYOoXo{**Ue7 a~w[eOeFFŰh#tǭI6|ScŌ8͏2R<QRӓϵBPGm%C-CZZGN*h(rbH }u cVAU.;:II#,;fu(6@(P`h'B[j>P蝆Q@︮zmw| 5]Æ 7X$ HI+[!D'1BFk &;N`) Y0qt=؅PKurɎ(m &;ned@5gy2Q[-cރUn&|hGwF6ַkF6ΑxPiyu8mPRեüƹ**cCF=7aZ̕^z[HԠy u8)CAWR ,@APg1Y7VlJ0q*lԥBf5: rɈ1QI=3a~2wI;\S{؋nݎrN%SQط[Yո* \rNL7ԸhW=j,"j9c=jdX8HP>B|/jwdCF^Q c[>%{+1Nŕa<㦹DP9_F+i\vZUN#̒Q͞EEGB٣&6R@M; l[Z@]vha"h+W D XcjvCdћ?;8'Z=չt ̨ڔ\SyKNl'< ת{Jv/15G֖w~'`(R LҾ`$㺟j5PX\GD֎iu j$[QЍerry!_7TA87R.22y0}ٖ_Y|s ̊y=F_L[pvjA=4#/n5.HCEUy:KYPgL껈T5T%2&CEըJ$Q} !0aaN SiPgQVS+h0uqMYQ6L`|oFu `&`{ ϴ{}7d;4_7L ƍQźBWh#HLM:z h8v¡cASbCz7;Fu 0q]6*0siWXNz/.PCXaoU`bSp`:HvQzհ";jDIOc:pq1Qdl/G af0^&؝jTٖ>yC)R'}؎5)^ YW2~yK 0oqlA/Z)# nS.N؁P1]lIg]\Cيo}"\v{iwt# !GPT`曪|gB0fCKS 5& 1T ؜JYfbP{ͼXױc(BTQ_CeO"Dزz኷>)Ua1I=W1=Htd]d W\O ޸7,a+fq\(*w==(>2vk(&75 [.X^>O\@'հmX0+;7Όva~w:˛Х 5`zrǚQtnWcg|{9+2.Bšq/O?y`bk#&DWkf %-zTWj\{.V}+pŬyXK1i v$wWۉwkkÌiYZ(!ƢRc0cq%Tu[ qÈ' S{0iq+M}̾ĊX O/]T[?9}'X2n9D U (C[e$"P&F.\18 X#W\+ 8"BD. `jHpM 0n6k 8f,]%_LMBEʍ!y }60tu#HB\ptUy#\4E c,ԣ!c#' ŘR*KP;nt3BJW".ZRiϠgp!KI\!jǸX[ Ku*1&듽=ב qSfżg_PYj-{CY ECf e5eнPs.je1n.aV*Lg\:V35|7Uu^ԸGPN DeDaIOXz:(O#CVxʫl 1@ڪa UPE-jhN QE\u0qYԜ#eU~Wv`y>Q7!0#:DRS`1Z߅Jd dTڨLa\[^,) ø%R kS0`$)֌`Qg49΍JTș5̍Ik c)ut0qֽl'5Ec`:^LjlӘRΈvIU8CM8,b4޽f `\ZF3.o%i`B3@X`uT#LFUbilI uUgoWV+C:P怙4=.@#dL3N bL5YS6e̳2K!&WVY]X$p.; el/H(4F`$$0xqEq]1AH%bde6sA@V1%q %I*X` 0.lB@3mX#ȦdL%N ?0qz +a=FIGF@zL]\puGv8;be0 4H,dV[Z2*B) )w,p.=!bQa-lU xqu(ADX.#^Ta70yqa #hʹC2Mȷ B F@uF1n6wq $|+Rv(3 o됨A\12$]i[@ƪ@1Z]>|"^ʆ #Bf̖L.<ڀy[͹U:`^DXYlȌe&>4`mG>2fSma7)ߋ03R\%f遉K{w0F2d&j:"q*jB[X۷C)Bf2.C+7ߧ*PU-TpB "-ẘ-%RS {G[SʯEu0*BbNn$`JfͩR{ا]#Q[t/iL<QD/[0qT[V iƷ l\=)1"!^]YN(lcA׸ fk!0;l xih4ctUR(b=PU͸&U!6Hkc'N8$/tCK\i&u*.aFJD`wјIjK͸6E1*\_XͨU2˒1kh0]:dT볪EJ08ƪ`afO(5)]/ 3`ԅ).(-cu0qluf#B`ٓ/_ܜֻO^]_debian/check.m0000644000000000000000000000061712301406627010426 0ustar disp("Testing {xls,ods}read...") # Test defaults testhelper("xls") testhelper("xlsx") testhelper("ods") testhelper("gnumeric") # Test specific interfaces (UNO must be last in each category) testhelper("xls", "JXL") testhelper("xls", "POI") testhelper("xls", "UNO") testhelper("xlsx", "OCT") testhelper("xlsx", "POI") testhelper("xlsx", "UNO") testhelper("ods", "OCT") testhelper("ods", "UNO") debian/octave-io.docs0000644000000000000000000000004412236442231011723 0ustar doc/READ-ODS.html doc/READ-XLS.html debian/test.xlsx0000644000000000000000000006346212301362427011100 0ustar PKZTD _rels/.relsJ1}{wDdЛH}a70u}{ZI~7CfGFoZ+{kW#VJ$cʪl n0\QX^:`dd{m]_dhVFw^F9W-(F/3ODSUNl/w{N([qTuy7_÷믞7ۿ7W?z~=}?/?>}O~~z??^}>~z՛w__}g7|姧w?W_k?zIWzӧ>woooO?뿆0eyG?_W|xo<}Շ7Q|?߫}_7>~i[Ox?w~鏟^K7Ooߪz7݇箅 `_oU/ta/վ|ow[>}hkKW2^zbxi?W7_?=;ӫi Y{Q7srӏk"<π;o_}z?K񗏟Jdk`;y/|c}kׯ$?|XhZ|珎~tt]W ~>710k&/(M8 8>S:{/|ʭCD)jYK@X?" {T.&yz}zPg5A`}2;,UxԳ\M%Nt)KNh-^g51sy>2* nңקg-1s-֭O|D[e|:``qUak֤c>"(5&Zk&󞗑/9ΤYMBMa9dR5Zvox3 8DX0̅3}KB˕CԚg!1+!5TiG|ت4lY5t5ɤMUT&`_bꖳB%J^z[}z\shZX?:[~ YJpQjXK4BseN{>ճB a"2=,Q4Hes&~)'M$'֘jR4G(aYOp'gk4 *7;;zVLhAKRcP-!=kU]yaJ yɾV {'Fdoa{+Jp1 o*v=3 />ۊno5q8jҖX!=KU4?0˚Db}U@, V. L$DԚ}oY=3dǔ4I4{ZzعFX K;So~;//,CHe&f v* Ti>(/kn Ȣ޴}? ]=}J̯NZYA\wO_FxNP]!.bx_&#]۪˭>= \tvaX?-5%i]-$Y⩡_gq˜8WhXNl/to2,PGHdS!9mL۫ҜK"8aӇN9$ȕٕ2G7I5+0yJ{f gK5 E ٯܜ`^$^j2aD[`z;-w~J^"/kV~ЬB[X_B^:pQt\nPnj䪁x 2[f";U'NBq;.g_VKYlo6?t[_/sl4ѭfo[OOLwlӤ=ِ+Z}vEˊ).Ptۂ̂jQdA[,7m^ǜ(ЖozE5QCwP=B:Ap2oLj80 3I<륦CjBC~XфA4 4 l~է?q0Jfص^(8&MeIPϩ/K_NgMOo0Go58&$$UQE>}9;Q4mL_rX_im^9&eNQMw5 f8&,M œRы~ބԦ.T>t7!!j ln>hpNjaP}~hiΌ=7 `5o!lup+o"&{L05o:eS 礣48'$NXuYjZܺ#Sѿ#qBB|Gh;BuOㄜ9QC<48$'$yJK94E6Ǟ|\BcsBۼa *tƶYԜ;@'9Gr[(13eBwrNl_}{G0ѫ8 *Խ ӦmК+6i?{qNj$;P;Ih=8I t=n\ECuwBN419*3S^aƲ.^H{Ip8b9?9id˅P7ehnrO(М`&408'tαȄ|U?QU'穱'07dc{ P0=\~0]35w,<8'\Oƍʰ_' 9.j]4g֏Zf8'T3YX_F+  ':rfne>.)9Q`>in;Hrb~_fڨdbm2L-8'Tͪ 9Ay9Q ?U w\٣G@i0ıGMF5(G yZ":^aoȉV%xT!۲Stͺ֕yz0P='wk5HGj@.qXfxb]7r4PHw\@c`*C(d sHPH(ܢTDTPP},nNgO;͟|fF]< gn s!cI>ڐ;B sa@$\EaKz+CBԄroC%ݮ+'4 N7M|1\u^JF ńh8rKU# cooxna Gs#qtPLw6aKa?Z5GXX?U& a%.ՅKv P?c-g U6E[bKPb|ir^ɋ Y'd]ٙdW\U{), JM*5@O/ .+\(.^^|We`n]b]m%ݫAO ki :˼2W oMC1bCޡ08vټ5MF yU6ա\e!-^9Q?qXx͏˩yŀk*\qͬ4mMͯSW@+ {>蕼Sh‘p~ZR9xXXB js:9KvP,؟)_BYzB"k98%,1N * 6#B2x{b Z؛8J(O$˳ zQfaPMaŎG{4Fcq<6RYÃb݃(;άcyrƒ<-jW/  |]+a;k6 B*.8 tAŒ S19U4XЁA}"-ZWk,ԘW_NcT\m5f4Tg߁A"}[# ΧajT9=2l .%gw5~!?+'3X(Loqf(s0ɵ4^::((PA[!EaXPA~ͧA 9T7m*UomGGy3ז]9Z AŜ RP2MavbBb N+6G%cbs+=T1zbU~49*;; JVan.g >b FeWCsBŜ 5AaA|xVRaAEW+/M" ? So tXP%.~U"|5s0 zDxQ:t2up/4AM+0(Z5Dƌ%6D{ 9s[BIبj&3{v 4݅#h^UM88(&G +{59<(&KZv" JŞbX5>%59 7YonupP,hU0 wS+2FM`_/'7r<=6`r=v  n` nS DO+o-xi -[Gp.IAEItxP,,0~>H檡#bAV0")5 A%ktP{h  EbFn<6N `d;g2muP 'W56w9B(Ol W%K4l>rPL`*BFl8D(O\W6)+'5}>~LPXUAȾ5Ŋ5d29Jӄ9B<ǫxh7cDŊ9&3=^tP۱UA] nt=İ}Pq %N¹ϔ K@(]9lYe(ńyWImS?rJ_NmOcTSDu cB1fƨ >H݇C%SPK*yk]q|P,5WU>BEB3S(+B^`rcNlaxZo;[?j# F( }YbRez XP?5¸yLѣRF40Ai֨)ސ W2\$|*έBV =!nvrs+]+ ^-r6(ع ]k.=Wg82(%K"3 K4ÂR4 f$NSXwDF6TP.Ԅ $(h\c`b~/?hq)yA>_7kv$FB, 5La4A/*Ƨ@]Wa兌IUn1+9"(Odɋ !Ia=.Hwrꢢ{J *lV *,z%@|ulannBGo59(8Pơ=&*sȽ xT@>ptɅPA $"yW14h@̯S5֒.9 (@PJ\[EcRO~gkؔF z9j8Qp>ZF46ޡ4䨠TPAs?TtN@2z[NiO@xJl>'yuewS5l^:9 (U@P&b4sAc, ޴A)!|]t@3҄ sXVyo!hj #$fcR]"2W8=kI eJאF|hm]E =2-7Jsz$غ잔IJH݁T!7۬JTs11ssp8PJ* Nr2G?5y:>#4s ucRB|`>UmfoEqA }ʭ2aAA)@2k΍9((O]VIPݓy/h  zTX(%S9r~p8eS| dr\P@ۍ%WQk JT8ЎDž9YS9Y. iI :t#Zx(D /4*Χzٯ#qVrXP*{Ñ럙?Ch➽iR5JrBϬ'{Ӌ#i2AI 2DCAؓfcR]s&qRCM*$~iu/J"aSs'CRE!rޫnTAl͆Zr*{Zqnf@Xs5 G+b@{Gq&|fXtZNb,P}ZVȸ*{*@{*TS砹go@{껕\\(@ 5'q0ߐfx+9(,PlP (5qCRژI((Ժٓ~g M2ȡqЁ@  (Oqr'#;VPCEC^X9(%`ӰskUNV&BJ04:ŧ\^as띣R)iR7bUjnwP*2x}Σrzf@YPi޸* (@7-5v\vP*!/i'Gjj!1)@{r2#gd֏AŌ&Jfݫڈ0o6[NgTDO2$rĀ$wͩRrnlǽn9Q4:'=h_\\M1"?Ѧݻ حy쯳~TסS9s\p5]BjwP**pĭb]x^=9(%HG%Z pؼ;@:Mf,Oco ?g{U3Z+5@gAd4_  Ί[ U=vt$Y@Ep:3LjA0Ի  t&p+A= s`{-c:ٞŸU{S TwXu.>j9w4Y@Ui\8OsCt,Y= iյU~:wSNfXOҤaoMmɌ:y9)QC;^tЙc=Ib;|a {"ii'q/1Ve;}Z: &.ʭQGY@gN{f}G+~b΂Ύ7$+spt Y=ERBJ͠7w(Й=]ȸl*A: {r ̊n+> tV(Ps<](̇qva5h tlO %f[]b7(XFFuD`ot0Й=?KA6L#΂칆:3-?q#GQOGF$tЙp=)>߬|M NJi/ @sы͘:]}nP` À[*{;\ا@3A{>"9bS9G7ġ@gUYC?Aݎn^Ng$P@'~۲;tV\O0bUf:ֳ)&T&ZÀ){bY1ΊI B̙jsY =up/AV?`_C9&^VaP!@g5 *?r*#z7hT$hT=` t(2Jh1zC/i: ,v~#Ŧ^ 2j: :2b!477!{rR#{?iOXܡ@g70Vм9,pp>BMin: .+;%w@spz |Z02J2 '%EY?*s q@|Uލ@gAK0ʉŦ[C9΂y j߯<6GCGqpa 6GCG9!lDW+hpLЙC>8t&vi5tDa㮚 z?~9Q A 3П* L;Tr:&,(d; UL;tVTPt)[PA>[j : *l@b y)c{k4U𫸦it\Йp>n\:{+B557t&@bGra>4A2AAg %Dsޭ!Agd 2+c7TVsIAAgFmWS9c>%֔+4r8םYS[g aAg5J( : *frs)aFs찠|$:ZN+'2J(5`zaw$\67f8*L0wW N0Xlw΂isщ5fݓtOv +|ˁAgEg0);w8tXЙ@>$U5&j밠|Ԙ[ADY-C :gr0D,CŪua~ 5B'5J0[Ϻ s}ʽ٤CiYݍctxzࠜ>Gxr.n;kv [EMc۵ɕ=2Ď 9t;(ɿ>[ٽ=\>mLre~C/+'eRÚVS3s^fh=advtP.| *>fGyk uf~K\/q~s[2d=93 qn !f.lkr;O\Ӿ*X̯D;Z %?8*c:FNo֨jK}UO TX̯1?3m[ crٮ[O]+EkEųcrN3̤QiKcyÅgS$ss{e#r"^0hœ`ܜ;0(`PA8? iPw;.(WO8s}!v\PNHKkʎ)'ͳ@ؑA oTFA*2LFBGs HpPKv^_Nh$ϻ7F #2s{ؠAAxɳ*L!đA9}tGh̍2wVoW!;.(W\PZ{K3 Al O 9O֡*ۨJAA8r02* 7H(tXPAh#cȬtG>Wf80(`PMek_;ծcrsb YO=rdPɠ i,LV.2Q\7^ b ):V:6AcS+{s:e3cUECm3%&nTG(qv.s0Qd$ɍym x a' S {X; 7!(W% roɑA"}aZށA9|>ʅ<`Ҟen㽱qA9}ލ?lhr_1s'ԭ+tqGyw4_kZ떓!bwaE&}!rZ#!}ލ(SaDhV S߭=ÝҜZr݆#JHf_\>5@ Q8fܨjr#GSeU lֈ 䥽!rb#a}o0(+(퉗crA$kP(au\whPѠX@|v*d@%Zrܦ02[h e԰r6 y{x9.(W\PBP[(Pt+7wGâ3{k׎ SyDhPh Sߖ#j_u?hOР>^ %hPbW{_.y!ٻqAB}]S숛ACeh:4(OUy|v3Ӗe  45B,^ SB*Рf6_shP.РîBˎ9hS(.jduvlP.X@(pV^&;0(Os͉A Q`͏Ez Fw8!y2b,,РhFCr /sh%:UtulµuZ *ʧ @|,fiA!./Sa={A@W+51/`-̽*~9&)`M0 yZE堠+|ms;e u-]9ζV5R :r2#|ޫ fo&TzG]lbFin'y9(*66#gY"gZ ,jB-`]x^(xnU ޖB}u\~m;fE,] ~B:::4tFAƕHaƵiޒtOddW5 e ח2zG,] ~,;E^i e&01 iˉ jD#$\9tw\rTЕs>U8 dS{œy?VNCJ:>9&J tk/>ʡ0=Z OlJU3/OM?U62ᠠ+|ȴpǛhاttPPB{gsxd@C尠+ǂZc,a\吠@|s 뽎9Q@>¸G޽^9@>K1yJoe{~׽Yj/qZc529XLzor-]s6 P>5ޫAˑAWTrҨ;]9#GMt%?002{@wIQAW|3Hj=l4B]s.bpۉIs!qAW Š"o/]t-Dz  vD0'>|=m9$4Wy ħ*x|n6@z@WB־̀)_uHU Agm}L1bCNh,]s;șsz-] C[Wȶ k&+@WnnQg[Na$t1_ipP$; d9J؞z G ^>W_8JȞEa/*z1'ˡ@W ڊC+sмX#L[NchO)#>]$ 7gǎ$nUYL/2*'yX1uM tdOurT[(u_u$Е=EuVN~6r U=7%3[ڽ 8j*=/'4 /F}v(}A ˡ@W8[°[@ tlO|M n vU9f8Q@ %L)쯧%r_NfT PmcYCb~r$Е@%rsݽ4'G]%ٓ5C3gx{eÀjmxA"x}Ɂ@Wi Z nqi $!9q_y^' ]9n+6w9JڮQ3%baX+a{^=W<С6ou ttacv5jǺzrj{<*bkaeow6i t4Ѝvc?^ @Qnu@WAgfWꜳ5rnv$L+fV] th25 A>t?p{b+jWi8JcBY4W[NiT4aH5;X3޺t3yz1AwB|0FiS Jf}ߦHɽKFյy :QAe2 "9yvDНAue2U^\si^NmLP_E|6Ś툠;A|͓0׌[+{9B0tDP,BS7퐠;G*aur{gw;$Nw6$1;\b; A)[kq6{r*ڵܺPItM(ϴ޶퀠;A|@u͐GpHНC>3G*^Y訠ĹByeniۘ^1`JiFƙGrB.`+پ[+IOZݻ9XLui ziq2OovlН>^T齑tOPH̯kcCOo+v`Н>mA`|/M t\ZuvsʑAwɡ/6/;}^/] ^U,ѫx,xtlPݓy$jbPdh}n&ś=حKtَs:P3pj2[!OMc ʓ&'nvit'ea;4e[K_Р`}-ޚ4f[  +yraͫIyE1Ca)!"OC 9 q lջ#;05Gx1R[Nhaðlv9.5Lt'ϻ8&OmJ >4^g-Jf90.vgT_Y;ہAwxaˆ2Kt'GoxꐖT\P>zaAw%^0Wq1zVAAw 5}7b|ϡ6|QAw.9*4Wu`}zv"͊ $aA РDڐ83 >g#*nA@;}^?q0Rf~yC0 xpѺrR`}Ft8)(Qf(XvkGO {# nXAYvCݷ'*y5w] sا.b3Ma>1tAV\|떓SW,,+'}WfW0QZNcipTʨ)MsKjGwxT<(}[MftWO:}b4,잦tO$Hə*N96ؠ* f>, 8(ȌB5dcsrР;A}^K6͘t@ciL#a@|f4zœÂybIe}T kЉ SU቗JU .a7eJ4|&"cIPwEEP(ܼu9SAԴ7hR$]GS#a[Zzr2#|> '^Rˡp@rP]@><${vžntPPk+ *c/~9Qa> H(&E 0߼(0g-Pe^LaAwMN0YE9cho.鸠;=1UqA F"|*"\s.A{&⸠sAm4ƗdfM-M'šA%A}^ :a$me>E}YJʲ%3[nmջРR>z\gHO2@[qdPIPW g>mf6uO /s?fe( *su/k:8w/PTwQ!>hgZwdqLP)0@vnw`IoyWT $l' a v)*sL/(3* {/JDzIf~w]{n* :[Tg*WzCJTS>UHNP=o٤ڎwM9tq PОl98TV/HȞ׻D# +k&.ȱVX75͵wJvS뜵O/DT 瑭IV\c^$!@B>LF5dvGcqRg{ֆ\˸.BGyoDٱfmYƲ3b,<ZA#@!v?b7{r"Bzsٯw8T)s XmufϜ(vgr'̇e"TrE ֤8$HG)i De>&^(]yb>1 Koj@`>f P=ʋ”Jj[:PXWkZ8.) p P)^pG|XT 'boUї ZrBZH99qPIȞw{A@Kw4: {WBUq@/-2hz5!H݊ ( -^9Qp=.9ŋǙ0F)ÀJ qsk1*s*Pǚ P=.{_$KEIot P)!B sgsJX/rkT0WTpOI@Kv5enUbzlj#JET'CY:TO8œ k[Nekp'ǪnA i|︟<~=QbE- n9<'tM88~Gy_a5IHa*̭fڍ޷ˡ?%G ҭȟ%dЊ#JOP9&8uxiYU [y<[LS *+4/F/8T OFIJ 4w:TϡY$oU?}q?%yps8pS㨟~Z@Є9A:yH#pɣqSP<񠬝U $O_^Y71<s-:kifv<ê34zwoY8)П8^J֙v<s9~6*k |W8)X6X/Ff~BҗR^ǎsҺhugvw蟧C|NWq+q9Ix˄]֘Nqϓ<רּmXPx*'Lp4lcCil8^jώmSdsqS=WswG=SU0L?b(8I~Шy_4 7vqS=ipC@ZewuoQzr 5H_g柩 &)zBLh[̯[e;z*j^kfo2zq@Oĵ Faκ^@d{: b0yUP.j"@Ob%ڨ 92<ɬe8L#ih^5_L*+{69tLГS>թ4f֏Dܸ{ży#3O2 LW z*[9٤V') zݨv!U(0VР㰠'^Ac0,œx˖ӻ';$I wDVλO lBNQ.1AO \ˮ rzo= z^0Cb.ug( z ,X\]BaAO+bk)qAO6L s2;d݆ǁAOI$Zl2u+'5r0]j,̉ЁAOgQ+ aDEv -񂘝QݺFḠ'|>:HVKdas|u`PRګ̰po堠'|ɿ+f9𨆝lF~Xɚ#g˰(i 'i}XЩɤM( nUqkÂyFQ$2b|[NhO;Eeʕ;W_Ni$:ְ**YCg尠|Xԥ25^qTSq>z "je}# *61Arb~ }M4녕ʒMnqhS>M$A:={à `x*TX[39^'}>v%(:*^qtS> s g7\ z*6(W+撕=M lAO46kd [B'~A, [Wanfjv)iIXuFt&,d)yKl{"O݋iƢue>ػ;D詑8_;זAzr@6>\W,1u '3J⧁gc.?D*qczrXk`wt1lN#P]W2[0Wh8F` J7pi?9F)` B@撆C c܎[nkkepS Be8䕹9%cn=z絬lõrU2YSn(_U~:}'Pʼ # kPY:>i) 'oV!24!~9<)𠃧CpB‰ zr' =bbXi>RJ]G=fn=Zr"#'36i*DZv5'G~kݚX\QsГ ?E{' @Qsc>H3wsC4h,\sszN!$ϫFBF^ncF.1zU7oi>tГ#?5'O!dTzrB8BuI <z*mU؃X?l@~ڭ5܆rN"ct+G= 5LN'_/'4 D>o_}zݧӛ>~ӫo㯟O޼GɯIO~1x}zo}zྭ??}7ӿ՟˫zۧOkNׇkϷ{_O<sܿ?nuW׿~|zo~juwk~c_>^xO_/?xӏ׿>c|M/_ʞoO^WQy/?>gV7~~7b~O2_>>['o~xOãt}_~ }__ׯ ߿?O?ǿ/?yǯ/_?zOo߻xO}_]wן{zC~PKAXOPKZTD xl/styles.xmlX]O0}߯:$-0%A4iB4iڃI±#ۅ_|5RiHC{uϗ9GTi&E##*"3a>t6DĄKA\R6%Ό)>;2}$ *K"UN х$6)uNN/,7Er!LG+C7w1}At^t]w=|bÝ^'Rʎq )z&<ns( P" /k`d|u"5V~{8_[ ~AJ5yYzވN)ѤP=T1f[-bFR)"_o5PPs V,±$m-]3w(QmHVwt R,9Q PPU4*ihd]WuUۥвvRz߇>iˣL* vS*UFLĕ4ԙbi.gtn4wҐZπaEbamTtQb(q=Ѹ5tlt _ |,o]AL#f4g b1A ԌJԜb>#Q-+l0qw7&hBqYc{/ U)g n+e&[i{РjjB)*c:tӚӭllTESYu[[-(PKJ(-#PKZTDxl/workbook.xmlRMO0+,iR5E-%AJBȨpOɉ;4sY5jZޫCONkj&5l((p Mڊ^B<ښh*ˢ qbhX a`8X,!`}5S\0a8 -yhPKz-PKZTD[Content_Types].xmlK0+JҦ "v]$]-E)2pֵxY>b>TmʸQ-Ý>㝕^Eŵ Jj ,o.yLbV=1l0>j!_:EKP!tVɍ3hc 567x@HqNj`% 4`qlNgM#Cc}3Q9"%:;j PyH:2p/.hzDÿ!ZʺR}PKb4WPKZTDf; _rels/.relsPKZTDKFodocProps/app.xmlPKZTDGdocProps/core.xmlPKZTDOz%xl/_rels/workbook.xml.relsPKZTDЍ[xl/sharedStrings.xmlPKZTDAXO}xl/worksheets/sheet1.xmlPKZTDJ(-# ^xl/styles.xmlPKZTDz-axl/workbook.xmlPKZTDb4Whc[Content_Types].xmlPK ?ddebian/compat0000644000000000000000000000000212236442231010363 0ustar 9 debian/patches/0000755000000000000000000000000012301411301010577 5ustar debian/patches/autoload-yes.patch0000644000000000000000000000110012301357315014234 0ustar Description: Force autoloading of package Author: Sébastien Villemot Forwarded: not-needed Last-Update: 2013-04-17 --- This patch header follows DEP-3: http://dep.debian.net/deps/dep3/ --- a/DESCRIPTION +++ b/DESCRIPTION @@ -9,6 +9,6 @@ Categories: IO Problems: Default initial Java memory probably too small, increase with java.opts (see documentation). No OXS write support. UNO support experimental. Depends: octave (>= 3.7.2) Suggested: windows (>= 1.2.1) -Autoload: no +Autoload: yes License: GPLv3+, simplified BSD Url: http://octave.sf.net debian/patches/uno.patch0000644000000000000000000000357712301367314012453 0ustar --- a/PKG_ADD +++ b/PKG_ADD @@ -20,28 +20,20 @@ if (octave_config_info ("features").JAVA libdir = "."; endif - ## Find LibreOffice or OpenOffice.org - ooopath = ''; - ii = 0; - ## Possible locations for OOo or LO. - bnam = {"C:/Program Files (X86)", ... - "C:/Program Files", ... - "C:/Programs", ... - "/opt", ... - "/usr/lib"}; - while (isempty (ooopath) && ii < numel (bnam)) - ooopath = glob ([ bnam{++ii} filesep "LibreOffice*"]); - endwhile - while (isempty (ooopath) && ii < numel (bnam)) - ooopath = glob ([ bnam{++ii} filesep "OpenOffice.org*"]); - endwhile - while (isempty (ooopath) && ii < numel (bnam)) - ooopath = glob ([ bnam{++ii} filesep "ooo*"]); - endwhile - if (! isempty (ooopath)) - ooopath = ooopath{:}; - else - ooopath = ''; + ## Find LibreOffice + ooopath = '/usr/share/libreoffice'; + if exist ("/usr/share/libreoffice/program", "dir") ... + && exist ("/usr/share/libreoffice/program/classes/unoil.jar", "file") ... + && exist ("/usr/share/java/jurt.jar", "file") ... + && exist ("/usr/share/java/juh.jar", "file") ... + && exist ("/usr/share/java/unoloader.jar", "file") ... + && exist ("/usr/share/java/ridl.jar", "file") + javaaddpath /usr/share/libreoffice/program + javaaddpath /usr/share/libreoffice/program/classes/unoil.jar + javaaddpath /usr/share/java/jurt.jar + javaaddpath /usr/share/java/juh.jar + javaaddpath /usr/share/java/unoloader.jar + javaaddpath /usr/share/java/ridl.jar endif ## One big try-catch to circumvent possible problems on Linux @@ -73,4 +65,4 @@ if (octave_config_info ("features").JAVA end_try_catch endif ## Clean up -clear libdir spr_status userdir homedir bnam ooopath ii; +clear libdir spr_status userdir homedir ooopath; debian/patches/no-flexml.patch0000644000000000000000000011006512236442231013541 0ustar Description: Remove build rules related to FlexML These rules should not be used (as explained in the comment), and on some autobuilders they cause a failure. . The patch also removes the flex file (.l), since on some autobuilders the presence of this file seems to trigger an execution of /usr/bin/lex (which is not installed). Author: Sébastien Villemot Forwarded: not-needed Last-Update: 2013-08-27 --- a/src/Makefile +++ b/src/Makefile @@ -14,18 +14,6 @@ #MKOCTFILE = mkoctfile -Wall MKOCTFILE = mkoctfile -ifdef FLEXML -# flexml is a dead project. It requires flex 2.5.4a-6 (flex-old on Debian). -# Further, we have modified the resulting xmltree_read.c by hand, changing -# all occurrences of yy to xml_ and YY to XML_. Some other changes have be -# mode so the ouput of flexml won't be as correct as the actual committed C -# file -xmltree_read.l: xmltree_read.act octave.dtd - $(FLEXML) -A -a $^ -xmltree_read.c: xmltree_read.l - $(FLEX) -B -Pxml_ -o$@ $< -endif - xmltree.o: xmltree.c xmltree.h $(MKOCTFILE) -c $< --- a/src/xmltree_read.l +++ /dev/null @@ -1,1244 +0,0 @@ -/* Validating XML processor for octave.dtd. - * Generated 2004/02/13 14:47:24. - * - * This program was generated with the FleXML XML processor generator, - * (Id: flexml.pl,v 1.28 2003/02/12 02:55:41 krisrose Exp). - * Copyright 1999 Kristoffer Rose. All rights reserved. - * - * You can redistribute and/or modify this program provided the following - * two conditions hold: - * - * 1. The program is distributed WITHOUT ANY WARRANTY from the author of - * FleXML; without even the implied warranty of MERCHANTABILITY or - * FITNESS FOR A PARTICULAR PURPOSE. - * - * 2. The program distribution conditions do not in any way affect the - * distribution conditions of the FleXML system used to generate this - * file or any version of FleXML derived from that system. - * - * Notice that these are explicit rights granted to you for files - * generated by the FleXML system. For your rights in connection with - * the FleXML system itself please consult the GNU General Public License. - */ - -%{ - -/* Version strings. */ -const char rcs_flexml_skeleton[] = - "$" "Id: skel,v 1.16 1999/12/09 04:01:51 krisrose Exp $"; -const char rcs_flexml[] = - "$" "Id: flexml.pl,v 1.28 2003/02/12 02:55:41 krisrose Exp $"; - -/* ANSI headers. */ -#include -#include -#include -#include -#include -#include - -/* Generated definitions. */ -#define FLEXML_BUFFERSTACKSIZE 100000 - -/* XML application entry points. */ -static void STag_octave(void); -static void ETag_octave(void); -static void STag_scalar(void); -static void ETag_scalar(void); -static void STag_complex(void); -static void ETag_complex(void); -static void STag_string(void); -static void ETag_string(void); -static void STag_array(void); -static void ETag_array(void); -static void STag_matrix(void); -static void ETag_matrix(void); -static void STag_structure(void); -static void ETag_structure(void); -static void STag_list(void); -static void ETag_list(void); -static void STag_cell(void); -static void ETag_cell(void); - -/* XML application data. */ -typedef char* AT_list_length; -#define AU_list_length NULL -typedef char* AT_matrix_rows; -#define AU_matrix_rows NULL -typedef char* AT_matrix_name; -#define AU_matrix_name NULL -typedef char* AT_cell_columns; -#define AU_cell_columns NULL -typedef char* AT_scalar_name; -#define AU_scalar_name NULL -typedef char* AT_array_name; -#define AU_array_name NULL -typedef char* AT_complex_name; -#define AU_complex_name NULL -typedef char* AT_matrix_columns; -#define AU_matrix_columns NULL -typedef char* AT_cell_name; -#define AU_cell_name NULL -typedef char* AT_string_length; -#define AU_string_length NULL -typedef char* AT_list_name; -#define AU_list_name NULL -typedef enum { AU_scalar_value, A_scalar_value_undefined,A_scalar_value_true,A_scalar_value_false,A_scalar_value_inf,A_scalar_value_neginf,A_scalar_value_na,A_scalar_value_nan } AT_scalar_value; -typedef char* AT_structure_name; -#define AU_structure_name NULL -typedef char* AT_cell_rows; -#define AU_cell_rows NULL -typedef char* AT_array_rows; -#define AU_array_rows NULL -typedef char* AT_string_name; -#define AU_string_name NULL - -/* FleXML-provided data. */ -static char* pcdata; -static AT_list_length A_list_length; -static AT_matrix_rows A_matrix_rows; -static AT_matrix_name A_matrix_name; -static AT_cell_columns A_cell_columns; -static AT_scalar_name A_scalar_name; -static AT_array_name A_array_name; -static AT_complex_name A_complex_name; -static AT_matrix_columns A_matrix_columns; -static AT_cell_name A_cell_name; -static AT_string_length A_string_length; -static AT_list_name A_list_name; -static AT_scalar_value A_scalar_value; -static AT_structure_name A_structure_name; -static AT_cell_rows A_cell_rows; -static AT_array_rows A_array_rows; -static AT_string_name A_string_name; - -/* XML state. */ -#ifdef FLEX_DEBUG -# define ENTER(state) debug_enter(state,#state) -# define LEAVE debug_leave() -# define SET(state) debug_set(state,#state) - static void debug_enter(int, char*); - static void debug_leave(void); - static void debug_set(int, char*); -#else -# define ENTER(state) (yy_push_state(state)) -# define LEAVE (yy_pop_state()) -# define SET(state) BEGIN(state) -#endif - -/* Generic actions. */ -#define SKIP /*skip*/ -#define SUCCEED return 0 - -#define FAIL return fail -static int fail(const char*, ...); - -/* Text buffer stack handling. */ -char bufferstack[FLEXML_BUFFERSTACKSIZE]; -char* limit = bufferstack + FLEXML_BUFFERSTACKSIZE; -typedef struct BufferLast_s { - struct BufferLast_s *old; char* saved; char new[1]; -} BufferLast; -BufferLast* last = (BufferLast*)0; -char* next = bufferstack; - -#define BUFFERSET(P) (P = next) -#define BUFFERPUTC(C) (assert(nextold = last; - l->saved = p; - next = l->new; - last = l; -} - -static char* popbuffer(void) -{ - BufferLast* l = last; - assert(last != (BufferLast*)0); - last = l->old; - next = (char*)l; - return l->saved; -} -#endif - -/* General internal entities are `unput' back onto the input stream... */ -#define ENTITYTEXT(T) \ - { char *s = (T), *e = s+strlen(s);\ - while (--e >= s) { unput(*e); }} -%} - -/* Flex standard options. */ -%option stack -%option noyy_top_state -%option noinput -%option noreject -%option noyymore -%option noyywrap - -/* Flex user-requested options. */ -%option nounput - -/* XML character classes (currently restricted to ASCII). */ - -/* "Common syntactic structures." */ -S [ \t\n\r\f]+ -s [ \t\n\r\f]* - -/* "Names and Tokens." */ -NameChar [A-Za-z0-9.:_-] -Name [A-Za-z_:]{NameChar}* -Names {Name}({S}{Name})* -Nmtoken ({NameChar})+ -Nmtokens {Nmtoken}({S}{Nmtoken})* - -/* Miscellaneous. */ -VersionNum [a-zA-Z0-9_.:-]+ -Eq {s}"="{s} -Literal \'[^'']*\'|\"[^""]*\" - -/* Parser states (flex `exclusive start conditions'): - * - * PROLOG the XML prolog of the document before - * DOCTYPE the XML prolog of the document after - * EPILOG after the root element - * INCOMMENT inside an XML comment - * INPI inside an XML PI - * VALUE1 inside a '...'-delimited literal - * VALUE2 inside a "..."-delimited literal - * CDATA inside a section. - * ROOT_ expect root element - * AL_ inside the attribute list for - * IN_ inside a with element contents (ready for end tag) - * IMPOSSIBLE dummy to permit disabling rules; must be last - */ -%x PROLOG DOCTYPE EPILOG INCOMMENT INPI VALUE1 VALUE2 CDATA -%x ROOT_octave AL_octave S_octave E_octave -%x ROOT_scalar AL_scalar IN_scalar -%x ROOT_complex AL_complex S_complex S_complex_1 E_complex -%x ROOT_string AL_string IN_string -%x ROOT_array AL_array S_array S_array_1 S_array_2 S_array_3 E_array -%x ROOT_matrix AL_matrix S_matrix S_matrix_1 S_matrix_2 E_matrix -%x ROOT_structure AL_structure IN_structure -%x ROOT_list AL_list IN_list -%x ROOT_cell AL_cell IN_cell -%x IMPOSSIBLE - -%{ -/* State names. */ -char* statenames[IMPOSSIBLE]; - -void FleXML_init(void) -{ - statenames[PROLOG] = NULL; - statenames[DOCTYPE] = NULL; - statenames[EPILOG] = NULL; - statenames[INCOMMENT] = NULL; - statenames[INPI] = NULL; - statenames[VALUE1] = NULL; - statenames[VALUE2] = NULL; - statenames[CDATA] = NULL; - statenames[ROOT_octave] = NULL; - statenames[AL_octave] = NULL; - statenames[S_octave] = "octave"; - statenames[E_octave] = "octave"; - statenames[ROOT_scalar] = NULL; - statenames[AL_scalar] = NULL; - statenames[IN_scalar] = "scalar"; - statenames[ROOT_complex] = NULL; - statenames[AL_complex] = NULL; - statenames[S_complex] = "complex"; - statenames[S_complex_1] = "complex"; - statenames[E_complex] = "complex"; - statenames[ROOT_string] = NULL; - statenames[AL_string] = NULL; - statenames[IN_string] = "string"; - statenames[ROOT_array] = NULL; - statenames[AL_array] = NULL; - statenames[S_array] = "array"; - statenames[S_array_1] = "array"; - statenames[S_array_2] = "array"; - statenames[S_array_3] = "array"; - statenames[E_array] = "array"; - statenames[ROOT_matrix] = NULL; - statenames[AL_matrix] = NULL; - statenames[S_matrix] = "matrix"; - statenames[S_matrix_1] = "matrix"; - statenames[S_matrix_2] = "matrix"; - statenames[E_matrix] = "matrix"; - statenames[ROOT_structure] = NULL; - statenames[AL_structure] = NULL; - statenames[IN_structure] = "structure"; - statenames[ROOT_list] = NULL; - statenames[AL_list] = NULL; - statenames[IN_list] = "list"; - statenames[ROOT_cell] = NULL; - statenames[AL_cell] = NULL; - statenames[IN_cell] = "cell"; -} -%} - -%% - - /* Bypass Flex's default INITIAL state and begin by parsing the XML prolog. */ - SET(PROLOG); FleXML_init(); - - /* COMMENTS and PIs: handled uniformly for efficiency. */ - -{ - "" LEAVE; - "--" | - . | - \n SKIP; - <> FAIL("EOF in comment."); -} -{ - "?>" LEAVE; - . | - \n SKIP; - <> FAIL("EOF in PI (processing instruction)."); -} - - /* SPACES: skipped uniformly */ - -{S} SKIP; - - /* PROLOG: determine root element and process it. */ - -{ - "" SET(DOCTYPE); - "]*">" FAIL("Bad declaration %s.",yytext); -} - -{ - "" SET(ROOT_scalar); - "" SET(ROOT_octave); - "" SET(ROOT_complex); - "" SET(ROOT_string); - "" SET(ROOT_matrix); - "" SET(ROOT_array); - "" SET(ROOT_structure); - "" SET(ROOT_cell); - "" SET(ROOT_list); - "-][^>]*">" FAIL("Bad declaration %s.",yytext); - . FAIL("Unexpected character `%c' in prolog.", yytext[0]); - <> FAIL("EOF in prolog."); -} - - /* RULES DERIVED FROM DTD. */ - -"{ - ">" { - LEAVE; STag_octave(); pcdata = NULL; ENTER(S_octave); - } - "/>" FAIL("`octave' element cannot be empty."); - . FAIL("Unexpected character `%c' in attribute list of octave element.", yytext[0]); - {Name} FAIL("Bad attribute `%s' in `octave' element start tag.",yytext); - <> FAIL("EOF in attribute list of `octave' element."); -} - -{ - "" { - LEAVE; - ETag_octave(); - switch (YY_START) { - case ROOT_octave: SET(EPILOG); break; - } - } - "" FAIL("Unexpected end-tag `%s': `' expected.",yytext); - . FAIL("Unexpected character `%c': `' expected.",yytext[0]); - <> FAIL("Premature EOF: `' expected."); -} - - /* value (undefined | true | false | inf | neginf | na | nan) "undefined" - * name CDATA #IMPLIED> */ - -"{ - "value"{Eq}"'undefined'" | - "value"{Eq}"\"undefined\"" A_scalar_value = A_scalar_value_undefined; - "value"{Eq}"'true'" | - "value"{Eq}"\"true\"" A_scalar_value = A_scalar_value_true; - "value"{Eq}"'false'" | - "value"{Eq}"\"false\"" A_scalar_value = A_scalar_value_false; - "value"{Eq}"'inf'" | - "value"{Eq}"\"inf\"" A_scalar_value = A_scalar_value_inf; - "value"{Eq}"'neginf'" | - "value"{Eq}"\"neginf\"" A_scalar_value = A_scalar_value_neginf; - "value"{Eq}"'na'" | - "value"{Eq}"\"na\"" A_scalar_value = A_scalar_value_na; - "value"{Eq}"'nan'" | - "value"{Eq}"\"nan\"" A_scalar_value = A_scalar_value_nan; - - "name"{Eq}\' ENTER(VALUE1); BUFFERSET(A_scalar_name); - "name"{Eq}\" ENTER(VALUE2); BUFFERSET(A_scalar_name); - - ">" { - LEAVE; STag_scalar(); pcdata = BUFFERSET(pcdata); ENTER(IN_scalar); - } - "/>" { - LEAVE; STag_scalar(); pcdata = ""; ETag_scalar(); - switch (YY_START) { - case S_complex_1: SET(E_complex); break; - case S_octave: SET(E_octave); break; - case S_complex: SET(S_complex_1); break; - case S_matrix_1: case S_matrix: case S_matrix_2: SET(S_matrix_2); break; - case ROOT_scalar: SET(EPILOG); break; - } - } - . FAIL("Unexpected character `%c' in attribute list of scalar element.", yytext[0]); - {Name} FAIL("Bad attribute `%s' in `scalar' element start tag.",yytext); - <> FAIL("EOF in attribute list of `scalar' element."); -} - -{ - "" { - LEAVE; - BUFFERDONE; - ETag_scalar(); - switch (YY_START) { - case S_complex_1: SET(E_complex); break; - case S_octave: SET(E_octave); break; - case S_complex: SET(S_complex_1); break; - case S_matrix_1: case S_matrix: case S_matrix_2: SET(S_matrix_2); break; - case ROOT_scalar: SET(EPILOG); break; - } - } - "" FAIL("Unexpected end-tag `%s': `' expected.",yytext); - <> FAIL("Premature EOF: `' expected."); -} - -"{ - "name"{Eq}\' ENTER(VALUE1); BUFFERSET(A_complex_name); - "name"{Eq}\" ENTER(VALUE2); BUFFERSET(A_complex_name); - - ">" { - LEAVE; STag_complex(); pcdata = NULL; ENTER(S_complex); - } - "/>" FAIL("`complex' element cannot be empty."); - . FAIL("Unexpected character `%c' in attribute list of complex element.", yytext[0]); - {Name} FAIL("Bad attribute `%s' in `complex' element start tag.",yytext); - <> FAIL("EOF in attribute list of `complex' element."); -} - -{ - "" { - LEAVE; - ETag_complex(); - switch (YY_START) { - case S_octave: SET(E_octave); break; - case S_matrix_1: case S_matrix: case S_matrix_2: SET(S_matrix_2); break; - case ROOT_complex: SET(EPILOG); break; - } - } - "" FAIL("Unexpected end-tag `%s': `' expected.",yytext); - . FAIL("Unexpected character `%c': `' expected.",yytext[0]); - <> FAIL("Premature EOF: `' expected."); -} - - /* length CDATA #REQUIRED - * name CDATA #IMPLIED> */ - -"{ - "length"{Eq}\' ENTER(VALUE1); BUFFERSET(A_string_length); - "length"{Eq}\" ENTER(VALUE2); BUFFERSET(A_string_length); - - "name"{Eq}\' ENTER(VALUE1); BUFFERSET(A_string_name); - "name"{Eq}\" ENTER(VALUE2); BUFFERSET(A_string_name); - - ">" { - if (!A_string_length) FAIL("Required attribute `length' not set for `string' element."); - LEAVE; STag_string(); pcdata = BUFFERSET(pcdata); ENTER(IN_string); - } - "/>" { - if (!A_string_length) FAIL("Required attribute `length' not set for `string' element."); - LEAVE; STag_string(); pcdata = ""; ETag_string(); - switch (YY_START) { - case S_octave: SET(E_octave); break; - case S_array_2: case S_array_3: case S_array_1: SET(S_array_3); break; - case ROOT_string: SET(EPILOG); break; - case S_array: SET(S_array_1); break; - } - } - . FAIL("Unexpected character `%c' in attribute list of string element.", yytext[0]); - {Name} FAIL("Bad attribute `%s' in `string' element start tag.",yytext); - <> FAIL("EOF in attribute list of `string' element."); -} - -{ - "" { - LEAVE; - BUFFERDONE; - ETag_string(); - switch (YY_START) { - case S_octave: SET(E_octave); break; - case S_array_2: case S_array_3: case S_array_1: SET(S_array_3); break; - case ROOT_string: SET(EPILOG); break; - case S_array: SET(S_array_1); break; - } - } - "" FAIL("Unexpected end-tag `%s': `' expected.",yytext); - <> FAIL("Premature EOF: `' expected."); -} - - /* rows CDATA #REQUIRED - * name CDATA #IMPLIED> */ - -"{ - "rows"{Eq}\' ENTER(VALUE1); BUFFERSET(A_array_rows); - "rows"{Eq}\" ENTER(VALUE2); BUFFERSET(A_array_rows); - - "name"{Eq}\' ENTER(VALUE1); BUFFERSET(A_array_name); - "name"{Eq}\" ENTER(VALUE2); BUFFERSET(A_array_name); - - ">" { - if (!A_array_rows) FAIL("Required attribute `rows' not set for `array' element."); - LEAVE; STag_array(); pcdata = NULL; ENTER(S_array); - } - "/>" FAIL("`array' element cannot be empty."); - . FAIL("Unexpected character `%c' in attribute list of array element.", yytext[0]); - {Name} FAIL("Bad attribute `%s' in `array' element start tag.",yytext); - <> FAIL("EOF in attribute list of `array' element."); -} - -{ - "" { - LEAVE; - ETag_array(); - switch (YY_START) { - case S_octave: SET(E_octave); break; - case ROOT_array: SET(EPILOG); break; - } - } - "" FAIL("Unexpected end-tag `%s': `' expected.",yytext); - . FAIL("Unexpected character `%c': `' expected.",yytext[0]); - <> FAIL("Premature EOF: `' expected."); -} - - /* rows CDATA #REQUIRED - * columns CDATA #REQUIRED - * name CDATA #IMPLIED> */ - -"{ - "rows"{Eq}\' ENTER(VALUE1); BUFFERSET(A_matrix_rows); - "rows"{Eq}\" ENTER(VALUE2); BUFFERSET(A_matrix_rows); - - "columns"{Eq}\' ENTER(VALUE1); BUFFERSET(A_matrix_columns); - "columns"{Eq}\" ENTER(VALUE2); BUFFERSET(A_matrix_columns); - - "name"{Eq}\' ENTER(VALUE1); BUFFERSET(A_matrix_name); - "name"{Eq}\" ENTER(VALUE2); BUFFERSET(A_matrix_name); - - ">" { - if (!A_matrix_rows) FAIL("Required attribute `rows' not set for `matrix' element."); - if (!A_matrix_columns) FAIL("Required attribute `columns' not set for `matrix' element."); - LEAVE; STag_matrix(); pcdata = NULL; ENTER(S_matrix); - } - "/>" { - if (!A_matrix_rows) FAIL("Required attribute `rows' not set for `matrix' element."); - if (!A_matrix_columns) FAIL("Required attribute `columns' not set for `matrix' element."); - LEAVE; STag_matrix(); pcdata = NULL; ETag_matrix(); - switch (YY_START) { - case ROOT_matrix: SET(EPILOG); break; - } - } - . FAIL("Unexpected character `%c' in attribute list of matrix element.", yytext[0]); - {Name} FAIL("Bad attribute `%s' in `matrix' element start tag.",yytext); - <> FAIL("EOF in attribute list of `matrix' element."); -} - -{ - "" { - LEAVE; - ETag_matrix(); - switch (YY_START) { - case ROOT_matrix: SET(EPILOG); break; - } - } - "" FAIL("Unexpected end-tag `%s': `' expected.",yytext); - . FAIL("Unexpected character `%c': `' expected.",yytext[0]); - <> FAIL("Premature EOF: `' expected."); -} - -"{ - "name"{Eq}\' ENTER(VALUE1); BUFFERSET(A_structure_name); - "name"{Eq}\" ENTER(VALUE2); BUFFERSET(A_structure_name); - - ">" { - LEAVE; STag_structure(); pcdata = BUFFERSET(pcdata); ENTER(IN_structure); - } - "/>" { - LEAVE; STag_structure(); pcdata = ""; ETag_structure(); - switch (YY_START) { - case S_octave: SET(E_octave); break; - case ROOT_structure: SET(EPILOG); break; - } - } - . FAIL("Unexpected character `%c' in attribute list of structure element.", yytext[0]); - {Name} FAIL("Bad attribute `%s' in `structure' element start tag.",yytext); - <> FAIL("EOF in attribute list of `structure' element."); -} - -{ - "" { - LEAVE; - BUFFERDONE; - ETag_structure(); - switch (YY_START) { - case S_octave: SET(E_octave); break; - case ROOT_structure: SET(EPILOG); break; - } - } - "" FAIL("Unexpected end-tag `%s': `' expected.",yytext); - <> FAIL("Premature EOF: `' expected."); -} - - /* length CDATA #REQUIRED - * name CDATA #IMPLIED> */ - -"{ - "length"{Eq}\' ENTER(VALUE1); BUFFERSET(A_list_length); - "length"{Eq}\" ENTER(VALUE2); BUFFERSET(A_list_length); - - "name"{Eq}\' ENTER(VALUE1); BUFFERSET(A_list_name); - "name"{Eq}\" ENTER(VALUE2); BUFFERSET(A_list_name); - - ">" { - if (!A_list_length) FAIL("Required attribute `length' not set for `list' element."); - LEAVE; STag_list(); pcdata = BUFFERSET(pcdata); ENTER(IN_list); - } - "/>" { - if (!A_list_length) FAIL("Required attribute `length' not set for `list' element."); - LEAVE; STag_list(); pcdata = ""; ETag_list(); - switch (YY_START) { - case S_octave: SET(E_octave); break; - case ROOT_list: SET(EPILOG); break; - } - } - . FAIL("Unexpected character `%c' in attribute list of list element.", yytext[0]); - {Name} FAIL("Bad attribute `%s' in `list' element start tag.",yytext); - <> FAIL("EOF in attribute list of `list' element."); -} - -{ - "" { - LEAVE; - BUFFERDONE; - ETag_list(); - switch (YY_START) { - case S_octave: SET(E_octave); break; - case ROOT_list: SET(EPILOG); break; - } - } - "" FAIL("Unexpected end-tag `%s': `' expected.",yytext); - <> FAIL("Premature EOF: `' expected."); -} - - /* rows CDATA #REQUIRED - * columns CDATA #REQUIRED - * name CDATA #IMPLIED> */ - -"{ - "rows"{Eq}\' ENTER(VALUE1); BUFFERSET(A_cell_rows); - "rows"{Eq}\" ENTER(VALUE2); BUFFERSET(A_cell_rows); - - "columns"{Eq}\' ENTER(VALUE1); BUFFERSET(A_cell_columns); - "columns"{Eq}\" ENTER(VALUE2); BUFFERSET(A_cell_columns); - - "name"{Eq}\' ENTER(VALUE1); BUFFERSET(A_cell_name); - "name"{Eq}\" ENTER(VALUE2); BUFFERSET(A_cell_name); - - ">" { - if (!A_cell_rows) FAIL("Required attribute `rows' not set for `cell' element."); - if (!A_cell_columns) FAIL("Required attribute `columns' not set for `cell' element."); - LEAVE; STag_cell(); pcdata = BUFFERSET(pcdata); ENTER(IN_cell); - } - "/>" { - if (!A_cell_rows) FAIL("Required attribute `rows' not set for `cell' element."); - if (!A_cell_columns) FAIL("Required attribute `columns' not set for `cell' element."); - LEAVE; STag_cell(); pcdata = ""; ETag_cell(); - switch (YY_START) { - case S_octave: SET(E_octave); break; - case ROOT_cell: SET(EPILOG); break; - } - } - . FAIL("Unexpected character `%c' in attribute list of cell element.", yytext[0]); - {Name} FAIL("Bad attribute `%s' in `cell' element start tag.",yytext); - <> FAIL("EOF in attribute list of `cell' element."); -} - -{ - "" { - LEAVE; - BUFFERDONE; - ETag_cell(); - switch (YY_START) { - case S_octave: SET(E_octave); break; - case ROOT_cell: SET(EPILOG); break; - } - } - "" FAIL("Unexpected end-tag `%s': `' expected.",yytext); - <> FAIL("Premature EOF: `' expected."); -} - - /* EPILOG: after the root element. */ - -{ - . FAIL("Unexpected character `%c' after document.", yytext[0]); - <> SUCCEED; -} - - /* CHARACTER DATA. */ - -{ - /* Non-defined standard entities... */ -"&" BUFFERPUTC('&'); -"<" BUFFERPUTC('<'); -">" BUFFERPUTC('>'); -"'" BUFFERPUTC('\''); -""" BUFFERPUTC('"'); - - /* Character entities. */ - "&#"[[:digit:]]+";" BUFFERPUTC((unsigned char)atoi(yytext+2)); - "&#x"[[:xdigit:]]+";" BUFFERPUTC((unsigned char)strtol(yytext+3,NULL,16)); -} - -{ - "\n" | - "\r" | - "\r\n" | - "\n\r" BUFFERPUTC('\n'); -} - -{ - "" FAIL("Unexpected `]]>' in character data."); -} - -{ - \' BUFFERDONE; LEAVE; - <> FAIL("EOF in literal (\"'\" expected)."); -} - -{ - \" BUFFERDONE; LEAVE; - <> FAIL("EOF in literal (`\"' expected)."); -} - -{ - [^<&] BUFFERPUTC(yytext[0]); - [<&] FAIL("Spurious `%c' in character data.",yytext[0]); -} - -{ - "]]>" LEAVE; - "]]" BUFFERPUTC(yytext[0]); BUFFERPUTC(yytext[1]); - . BUFFERPUTC(yytext[0]); - <> FAIL("EOF in CDATA section."); -} - - /* Impossible rules to avoid warnings from flex(1). */ - -{ - .|[\n] FAIL("The Impossible Happened: INITIAL or IMPOSSIBLE state entered?"); -} - -%% - -/* Element context stack lookup. */ -int element_context(int i) -{ - return (0 -#endif -#include "xmltree.h" - -#define warning perror - -element **current; -element *root; -list *lastlist; - -void STag_octave(void) -{ -#line 43 "xmltree_read.act" - -root = new_element(); -root->def_value = value_data; -current = &(root->child); - -lastlist = new_list(lastlist); -lastlist->root = current; - -} /* STag_octave */ - -void ETag_octave(void) -{ -#line 52 "xmltree_read.act" - -current = lastlist->root; -lastlist = pop_list(lastlist); -current = &((*current)->next); - -} /* ETag_octave */ - -void STag_scalar(void) -{ -#line 60 "xmltree_read.act" - -*current = new_element(); - -if (A_scalar_name) { - (*current)->name = (char *) malloc(strlen(A_scalar_name)+1); - strcpy ((*current)->name, A_scalar_name); -} - -(*current)->def_value = value_scalar; -switch (A_scalar_value) { - case A_scalar_value_true: (*current)->const_value = const_true; break; - case A_scalar_value_false: (*current)->const_value = const_false; break; - case A_scalar_value_inf: (*current)->const_value = const_inf; break; - case A_scalar_value_neginf: (*current)->const_value = const_neginf; break; - case A_scalar_value_nan: (*current)->const_value = const_nan; break; - case A_scalar_value_na: (*current)->const_value = const_na; break; - default: (*current)->const_value = const_undef; -} - -} /* STag_scalar */ - -void ETag_scalar(void) -{ -#line 80 "xmltree_read.act" - -if (((*current)->const_value == const_undef) && (pcdata)) - (*current)->scalar_value = strtod (pcdata, NULL); - -(*(lastlist->root))->nb_elements++; - -current = &((*current)->next); - -} /* ETag_scalar */ - -void STag_string(void) -{ -#line 91 "xmltree_read.act" - -*current = new_element(); - -if (A_string_name) { - (*current)->name = (char *) malloc(strlen(A_string_name)+1); - strcpy ((*current)->name, A_string_name); -} - -if (A_string_length) - (*current)->length = strtol (A_string_length, NULL, 10); - -(*current)->def_value = value_string; - -} /* STag_string */ - -void ETag_string(void) -{ -#line 105 "xmltree_read.act" - -if (pcdata) { - - int len = strlen(pcdata); - /* check length parameter */ - if ((*current)->length != len) { - warning("incorrect length parameter for string\n"); - (*current)->length = len; - } - - (*current)->string_value = (char *) malloc ((len+1) * sizeof(char)); - strcpy((*current)->string_value, pcdata); -} - -(*(lastlist->root))->nb_elements++; - -current = &((*current)->next); - -} /* ETag_string */ - -void STag_complex(void) -{ -#line 126 "xmltree_read.act" - -*current = new_element(); - -if (A_complex_name) { - (*current)->name = (char *) malloc(strlen(A_complex_name)+1); - strcpy ((*current)->name, A_complex_name); -} - -(*current)->def_value = value_complex; - -lastlist = new_list(lastlist); -lastlist->root = current; -current = &((*current)->child); - -} /* STag_complex */ - -void ETag_complex(void) -{ -#line 141 "xmltree_read.act" - -current = lastlist->root; -lastlist = pop_list(lastlist); - -(*(lastlist->root))->nb_elements++; - -current = &((*current)->next); - -} /* ETag_complex */ - -void STag_array(void) -{ -#line 152 "xmltree_read.act" - -*current = new_element(); - -if (A_array_name) { - (*current)->name = (char *) malloc(strlen(A_array_name)+1); - strcpy ((*current)->name, A_array_name); -} - -if (A_array_rows) - (*current)->rows = strtol (A_array_rows, NULL, 10); - -(*current)->def_value = value_array; - -lastlist = new_list(lastlist); -lastlist->root = current; -current = &((*current)->child); - -} /* STag_array */ - -void ETag_array(void) -{ -#line 170 "xmltree_read.act" - -/* check rows parameter */ -if ((*(lastlist->root))->rows != (*(lastlist->root))->nb_elements) { - warning("incorrect length parameter for array\n"); - (*(lastlist->root))->rows = (*(lastlist->root))->nb_elements; -} - -current = lastlist->root; -lastlist = pop_list(lastlist); - -(*(lastlist->root))->nb_elements++; - -current = &((*current)->next); - -} /* ETag_array */ - -void STag_matrix(void) -{ -#line 187 "xmltree_read.act" - -*current = new_element(); - -if (A_matrix_name) { - (*current)->name = (char *) malloc(strlen(A_matrix_name)+1); - strcpy ((*current)->name, A_matrix_name); -} - -if (A_matrix_rows) - (*current)->rows = strtol (A_matrix_rows, NULL, 10); - -if (A_matrix_columns) - (*current)->columns = strtol (A_matrix_columns, NULL, 10); - -(*current)->def_value = value_matrix; - -lastlist = new_list(lastlist); -lastlist->root = current; -current = &((*current)->child); - -} /* STag_matrix */ - -void ETag_matrix(void) -{ -#line 208 "xmltree_read.act" - -/* check (rows, columns) parameters */ -if ((*(lastlist->root))->rows * (*(lastlist->root))->columns != - (*(lastlist->root))->nb_elements) { - warning("incorrect (rows, columns) parameters for matrix: reshaping matrix into vector\n"); - (*(lastlist->root))->rows = 1; - (*(lastlist->root))->columns = (*(lastlist->root))->nb_elements; -} - -current = lastlist->root; -lastlist = pop_list(lastlist); - -(*(lastlist->root))->nb_elements++; - -current = &((*current)->next); - -} /* ETag_matrix */ - -void STag_structure(void) -{ -#line 227 "xmltree_read.act" - -*current = new_element(); - -if (A_structure_name) { - (*current)->name = (char *) malloc(strlen(A_structure_name)+1); - strcpy ((*current)->name, A_structure_name); -} - -(*current)->def_value = value_structure; - -lastlist = new_list(lastlist); -lastlist->root = current; -current = &((*current)->child); - -} /* STag_structure */ - -void ETag_structure(void) -{ -#line 242 "xmltree_read.act" - -/* no check possible (sic) */ - -current = lastlist->root; -lastlist = pop_list(lastlist); - -(*(lastlist->root))->nb_elements++; - -current = &((*current)->next); - -} /* ETag_structure */ - -void STag_list(void) -{ -#line 255 "xmltree_read.act" - -*current = new_element(); - -if (A_list_name) { - (*current)->name = (char *) malloc(strlen(A_list_name)+1); - strcpy ((*current)->name, A_list_name); -} - -if (A_list_length) - (*current)->length = strtol (A_list_length, NULL, 10); - -(*current)->def_value = value_list; - -lastlist = new_list(lastlist); -lastlist->root = current; -current = &((*current)->child); - -} /* STag_list */ - -void ETag_list(void) -{ -#line 273 "xmltree_read.act" - -/* check length parameter */ -if ((*(lastlist->root))->length != (*(lastlist->root))->nb_elements) { - warning("incorrect length parameter for list\n"); - (*(lastlist->root))->length = (*(lastlist->root))->nb_elements; -} - -current = lastlist->root; -lastlist = pop_list(lastlist); - -(*(lastlist->root))->nb_elements++; - -current = &((*current)->next); - -} /* ETag_list */ - -void STag_cell(void) -{ -#line 290 "xmltree_read.act" - -*current = new_element(); - -if (A_cell_name) { - (*current)->name = (char *) malloc(strlen(A_cell_name)+1); - strcpy ((*current)->name, A_cell_name); -} - -if (A_cell_rows) - (*current)->rows = strtol (A_cell_rows, NULL, 10); - -if (A_cell_columns) - (*current)->columns = strtol (A_cell_columns, NULL, 10); - -(*current)->def_value = value_cell; - -lastlist = new_list(lastlist); -lastlist->root = current; -current = &((*current)->child); - -} /* STag_cell */ - -void ETag_cell(void) -{ -#line 311 "xmltree_read.act" - -/* check (rows, columns) parameters */ -if ((*(lastlist->root))->rows * (*(lastlist->root))->columns != - (*(lastlist->root))->nb_elements) { - warning("incorrect (rows, columns) parameters for cell: reshaping cell into list\n"); - (*(lastlist->root))->def_value = value_list; - (*(lastlist->root))->length = (*(lastlist->root))->nb_elements; -} - -current = lastlist->root; -lastlist = pop_list(lastlist); - -(*(lastlist->root))->nb_elements++; - -current = &((*current)->next); - -} /* ETag_cell */ - - -#line 346 "xmltree_read.act" - -element *read_xmltree (const char *file) { - - current = NULL; - root = NULL; - lastlist = NULL; - - xml_in = fopen(file, "r"); - if (!xml_in) - perror("can't open file\n"); - - xml_lex(); - fclose(xml_in); - - return root; -} - - -/* XML application entry points. */ debian/patches/low-priority-for-POI.patch0000644000000000000000000000762112301370415015531 0ustar Description: Give low priority to POI interface It does not function correctly: it sees the file but no data inside. Author: Sébastien Villemot Bug-Debian: http://bugs.debian.org/739602 Forwarded: no Last-Update: 2014-02-20 --- This patch header follows DEP-3: http://dep.debian.net/deps/dep3/ --- a/inst/xlsopen.m +++ b/inst/xlsopen.m @@ -318,7 +318,7 @@ function [ xls ] = xlsopen (filename, xw ## Keep track of which interface is selected xlssupport = 0; - ## Interface preference order is defined below: currently COM -> POI -> JXL -> OXS -> UNO -> OCT + ## Interface preference order is defined below: currently COM -> JXL -> OXS -> UNO -> OCT -> POI ## ftype (file type) is conveyed depending on interface capabilities if ((! xlssupport) && xlsinterfaces.COM && (ftype != 5)) @@ -326,10 +326,6 @@ function [ xls ] = xlsopen (filename, xw [ xls, xlssupport, lastintf ] = __COM_spsh_open__ (xls, xwrite, filename, xlssupport); endif - if ((! xlssupport) && xlsinterfaces.POI && (ftype <= 2)) - [ xls, xlssupport, lastintf ] = __POI_spsh_open__ (xls, xwrite, filename, xlssupport, ftype, xlsinterfaces); - endif - if ((! xlssupport) && xlsinterfaces.JXL && ftype == 1) [ xls, xlssupport, lastintf ] = __JXL_spsh_open__ (xls, xwrite, filename, xlssupport, ftype); endif @@ -351,6 +347,10 @@ function [ xls ] = xlsopen (filename, xw [ xls, xlssupport, lastintf ] = __OCT_spsh_open__ (xls, xwrite, filename, xlssupport, ftype); endif + if ((! xlssupport) && xlsinterfaces.POI && (ftype <= 2)) + [ xls, xlssupport, lastintf ] = __POI_spsh_open__ (xls, xwrite, filename, xlssupport, ftype, xlsinterfaces); + endif + ## if ## ---- other interfaces ## endif --- a/inst/private/getxlsinterfaces.m +++ b/inst/private/getxlsinterfaces.m @@ -161,32 +161,6 @@ function [xlsinterfaces] = getxlsinterfa endif endif - ## Try Java & Apache POI - if (isempty (xlsinterfaces.POI)) - xlsinterfaces.POI = 0; - ## Check basic .xls (BIFF8) support - entries = {{"apache-poi.", "poi-3"}, {"apache-poi-ooxml.", "poi-ooxml-3"}}; - ## Only under *nix we might use brute force: e.g., strfind (classname, classpath); - ## under Windows we need the following more subtle, platform-independent approach: - if (chk_jar_entries (jcp, entries) >= numel (entries)) - xlsinterfaces.POI = 1; - printf ("POI"); - endif - ## Check OOXML support - entries = {{"xbean", "xmlbean"}, {"apache-poi-ooxml-schemas", "poi-ooxml-schemas"}, "dom4j"}; - if (chk_jar_entries (jcp, entries) >= numel (entries)) - printf (" (& OOXML)"); - endif - if (xlsinterfaces.POI) - if (deflt) - printf ("; "); - else - printf ("*; "); - deflt = 1; - endif - endif - endif - ## Try Java & JExcelAPI if (isempty (xlsinterfaces.JXL)) xlsinterfaces.JXL = 0; @@ -259,6 +233,32 @@ function [xlsinterfaces] = getxlsinterfa endif endif + ## Try Java & Apache POI + if (isempty (xlsinterfaces.POI)) + xlsinterfaces.POI = 0; + ## Check basic .xls (BIFF8) support + entries = {{"apache-poi.", "poi-3"}, {"apache-poi-ooxml.", "poi-ooxml-3"}}; + ## Only under *nix we might use brute force: e.g., strfind (classname, classpath); + ## under Windows we need the following more subtle, platform-independent approach: + if (chk_jar_entries (jcp, entries) >= numel (entries)) + xlsinterfaces.POI = 1; + printf ("POI"); + endif + ## Check OOXML support + entries = {{"xbean", "xmlbean"}, {"apache-poi-ooxml-schemas", "poi-ooxml-schemas"}, "dom4j"}; + if (chk_jar_entries (jcp, entries) >= numel (entries)) + printf (" (& OOXML)"); + endif + if (xlsinterfaces.POI) + if (deflt) + printf ("; "); + else + printf ("*; "); + deflt = 1; + endif + endif + endif + ## ---- Other interfaces here, similar to the ones above if (deflt) debian/patches/series0000644000000000000000000000014312301404045012021 0ustar no-flexml.patch autoload-yes.patch low-priority-for-POI.patch uno.patch low-priority-for-UNO.patch debian/patches/low-priority-for-UNO.patch0000644000000000000000000001114712301411301015527 0ustar Description: Give low priority to UNO interface (below OCT) It does not work well in chroots, and is experimental. Author: Sébastien Villemot Forwarded: not-needed Last-Update: 2014-02-20 --- This patch header follows DEP-3: http://dep.debian.net/deps/dep3/ --- a/inst/odsopen.m +++ b/inst/odsopen.m @@ -285,6 +285,12 @@ function [ ods ] = odsopen (filename, rw __JOD_spsh_open__ (ods, rw, filename, odssupport); endif + if (odsinterfaces.OCT && ! odssupport && ... + (ftype == 2 || ftype == 3 || ftype == 5)) + [ ods, odssupport, lastintf ] = ... + __OCT_spsh_open__ (ods, rw, filename, odssupport, ftype); + endif + if (odsinterfaces.UNO && ! odssupport && ftype < 5) ## Warn for LO / OOo stubbornness if (ftype == 0 || ftype == 5 || ftype == 6) @@ -294,12 +300,6 @@ function [ ods ] = odsopen (filename, rw __UNO_spsh_open__ (ods, rw, filename, odssupport); endif - if (odsinterfaces.OCT && ! odssupport && ... - (ftype == 2 || ftype == 3 || ftype == 5)) - [ ods, odssupport, lastintf ] = ... - __OCT_spsh_open__ (ods, rw, filename, odssupport, ftype); - endif - ## if ## --- a/inst/private/getodsinterfaces.m +++ b/inst/private/getodsinterfaces.m @@ -188,6 +188,19 @@ function [odsinterfaces] = getodsinterfa endif endif + ## Native Octave + if (isempty (odsinterfaces.OCT)) + ## Nothing to check, always supported + odsinterfaces.OCT = 1; + printf ("OCT"); + if (deflt) + printf ("; "); + else + printf ("*; "); + deflt = 1; + endif + endif + ## Try Java & UNO if (isempty (odsinterfaces.UNO)) odsinterfaces.UNO = 0; @@ -208,19 +221,6 @@ function [odsinterfaces] = getodsinterfa endif endif - ## Native Octave - if (isempty (odsinterfaces.OCT)) - ## Nothing to check, always supported - odsinterfaces.OCT = 1; - printf ("OCT"); - if (deflt) - printf ("; "); - else - printf ("*; "); - deflt = 1; - endif - endif - ## ---- Other interfaces here, similar to the ones above if (deflt) --- a/inst/private/getxlsinterfaces.m +++ b/inst/private/getxlsinterfaces.m @@ -202,6 +202,19 @@ function [xlsinterfaces] = getxlsinterfa endif endif + ## Native Octave + if (isempty (xlsinterfaces.OCT)) + ## Nothing to check, always supported + xlsinterfaces.OCT = 1; + printf ("OCT"); + if (deflt) + printf ("; "); + else + printf ("*; "); + deflt = 1; + endif + endif + ## Try Java & UNO if (isempty (xlsinterfaces.UNO)) xlsinterfaces.UNO = 0; @@ -220,19 +233,6 @@ function [xlsinterfaces] = getxlsinterfa endif endif - ## Native Octave - if (isempty (xlsinterfaces.OCT)) - ## Nothing to check, always supported - xlsinterfaces.OCT = 1; - printf ("OCT"); - if (deflt) - printf ("; "); - else - printf ("*; "); - deflt = 1; - endif - endif - ## Try Java & Apache POI if (isempty (xlsinterfaces.POI)) xlsinterfaces.POI = 0; --- a/inst/xlsopen.m +++ b/inst/xlsopen.m @@ -318,7 +318,7 @@ function [ xls ] = xlsopen (filename, xw ## Keep track of which interface is selected xlssupport = 0; - ## Interface preference order is defined below: currently COM -> JXL -> OXS -> UNO -> OCT -> POI + ## Interface preference order is defined below: currently COM -> JXL -> OXS -> OCT -> UNO -> POI ## ftype (file type) is conveyed depending on interface capabilities if ((! xlssupport) && xlsinterfaces.COM && (ftype != 5)) @@ -334,6 +334,11 @@ function [ xls ] = xlsopen (filename, xw [ xls, xlssupport, lastintf ] = __OXS_spsh_open__ (xls, xwrite, filename, xlssupport, ftype); endif + if ((! xlssupport) && xlsinterfaces.OCT && ... + (ftype == 2 || ftype == 3 || ftype == 5)) + [ xls, xlssupport, lastintf ] = __OCT_spsh_open__ (xls, xwrite, filename, xlssupport, ftype); + endif + if ((! xlssupport) && xlsinterfaces.UNO && (ftype != 5)) ## Warn for LO / OOo stubbornness if (ftype == 0 || ftype == 5 || ftype == 6) @@ -342,11 +347,6 @@ function [ xls ] = xlsopen (filename, xw [ xls, xlssupport, lastintf ] = __UNO_spsh_open__ (xls, xwrite, filename, xlssupport); endif - if ((! xlssupport) && xlsinterfaces.OCT && ... - (ftype == 2 || ftype == 3 || ftype == 5)) - [ xls, xlssupport, lastintf ] = __OCT_spsh_open__ (xls, xwrite, filename, xlssupport, ftype); - endif - if ((! xlssupport) && xlsinterfaces.POI && (ftype <= 2)) [ xls, xlssupport, lastintf ] = __POI_spsh_open__ (xls, xwrite, filename, xlssupport, ftype, xlsinterfaces); endif debian/README.Debian0000644000000000000000000000240212301355417011226 0ustar Status of spreadsheet support in IO package for Octave ====================================================== This package provides support for reading Excel (XLS, XLSX), OpenDocument (ODS) and Gnumeric spreadsheet files from Octave. If you installed the packages recommended by octave-io, the following interfaces should already be functional: * JExcelAPI (JXL): for reading and writing XLS files; * LibreOffice (UNO): for reading and writing ODS, XLS, XLSX, SXC, CSV and any other file format supported by LibreOffice Calc; * Apache POI with OOXML (POI): for reading and writing XLS and XLSX files. Note that the UNO interface is still experimental. It interacts with running LibreOffice processes. There is also a built-in pure Octave interface (OCT) for reading (but not writing) XLSX, ODS and gnumeric files. Other interfaces (OpenXLS, ODF Toolkit, JOpenDocument) are not available in Debian. You can still manually download and install the corresponding JARs in /usr/local/share/java, they should be autodetected. The chk_spreadsheet_support function can help you diagnose problems if any. More information on spreadsheet support can be found in READ-XLS.html and READ-ODS.html. -- Sébastien Villemot , Sat, 16 Nov 2013 15:08:26 +0100 debian/control0000644000000000000000000000262512303331672010576 0ustar Source: octave-io Section: math Priority: optional Maintainer: Debian Octave Group Uploaders: Thomas Weber , Sébastien Villemot Build-Depends: debhelper (>= 9), cdbs, octave-pkg-dev (>= 1.1), libreoffice-java-common [!arm64 !ppc64el], libreoffice-core (>= 3.5) [!arm64 !ppc64el], libjexcelapi-java, libapache-poi-java (>= 3.9-1~), unzip Standards-Version: 3.9.5 Homepage: http://octave.sourceforge.net/io Vcs-Git: git://anonscm.debian.org/pkg-octave/octave-io.git Vcs-Browser: http://anonscm.debian.org/gitweb/?p=pkg-octave/octave-io.git Package: octave-io Architecture: any Depends: ${misc:Depends}, ${shlibs:Depends}, ${octave:Depends} Recommends: libreoffice-java-common [!arm64 !ppc64el], libreoffice-core (>= 3.5) [!arm64 !ppc64el], libjexcelapi-java, libapache-poi-java (>= 3.9-1~), unzip Description: input/output data functions for Octave This package provides functions to input/output data in different formats in Octave, a numerical computation software. It contains functions to add variables to existing save files (append_save), read and write matrixes to a text file (dlmwrite, csvread, csvwrite) and read Excel spreadsheet (xlsread) and OpenDocument spreadsheet (odsread). . This Octave add-on package is part of the Octave-Forge project. debian/rules0000755000000000000000000000012512236442231010243 0ustar #!/usr/bin/make -f # -*- makefile -*- include /usr/share/cdbs/1/class/octave-pkg.mk debian/source/0000755000000000000000000000000012301361610010457 5ustar debian/source/include-binaries0000644000000000000000000000010612301361564013624 0ustar debian/test.gnumeric debian/test.xls debian/test.xlsx debian/test.ods debian/source/format0000644000000000000000000000001412236442231011673 0ustar 3.0 (quilt) debian/test.xls0000644000000000000000000017100012301362345010673 0ustar ࡱ; vs  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqruwRoot Entry  \pCalc Ba==@ 8@"1Arial1Arial1Arial1Arial GENERAL 0.00E+000                + ) , *    `Sheet1!!TZR3  @@  dydx j cc   dMbP?_%*+# &C&"Times New Roman,Normal"&12&A(%&C&"Times New Roman,Normal"&12Page &P&333333?'333333?(-؂-?)-؂-?" d,,333333?333333?U }         #os>Ch6D8In8|^׈dQ'?$oUo=1ּ>mNKԷ?רƉe%|\of*n秔5sx2dBq#? %E2 Ƅ Oj? 5gdm ?(޷ I>KE z6=q W+x뛿 tk? l&fj?ո veL'C%sxz]aI"?\u?,)DK'8Qo?2 ,kik͉?i?3tUwq*8 hn+zr?$;}?y R^ ;rA[?69i?F١[6gpQ#EQ?1 9NthPu10҂ !"#$%&'()*+,-./0123456789:;<=>? DJt? =D硤s!9X?!@7?"cŠI"akth?#55>n#j6/i?$r<?$At%WBu%`3e&Nj?&&A"'K'j (qM*{?()6@)k' e*,Xx?*L(Wv?+(%Yt?+lr,oȂ,M%a-L?-;o.up?.aq/$v/02O0HۀZ'1vNRU?1^rX2ڄg2%w^|?3Ւ5p?3fq(Ԅ4LFrR0{4mai5ݑ[L56fXBq?6A=*Ӷ7"Oxb?7M6l?8t3EF?8p-p?94C?9xb:jn۰?:?VQA?;Rm;xcȓ?<o¡??<X)-?=֧Ez=nɱ?>Dm~?>} 2FG??̒l??Yj8?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_@5c04d?@2h6?ANsq?AK2e?B%ag?QDqYֈ?Rޞ_$NlRfeSWSVpT[c& ZlT{se?UV]j?UX:?VwgV3 4Ӆ?We;-?W%{?XRyajX@ No2}?Yʘ ?Y/$M?Zֶ?Zj*dfr[Ēhz?[)_?\9;V?\spGX]K.?]S8&e^O@b?^n]D_otqa?_"LF}`abcdefghijklmnopqrstuvwxyz{|}~`HqTFr`aCOWZaaa8V X?ba?baJcD?W"l?c7pIg?dx; ?d`Oڄe+lk,&T~eaf|]s@?fWi?g| 2G~gE؞h|Fx4;Vhp+]iOp:?i1"{F}?jw閍bG?jo?ksW\m?kҲl 1 l-"Hp?mt#ƐmlAЁ?n8BJ~?nC f!fo 4kj}?o\٪p,.]t:pʕDmPq>d,bq2~r&Uc)\r޼&XRvs1}sڳ;A~t,۩t !ҙyulB!u À7Y?vk秅v޹B߁w)߮u?wK)\MxBUx>r?yJsyY|"|?zkb?zE H{ |Bp?{-i|6ut|i?%aro&Ɏus=|B\Q":U=h?sd'1?-72bDe0*%.mRfLcnh {?YѲu?U36y?أ!ye;U?Yy{9Gr[g~w?U!J>/T€ ?p?-&t)?( ?L0G?x|ro@|,jր?`!F{q}!r?Jzvv?l5 0~?  O̾}:Gpe?a:,zК?2\cQO,bGr;ru4xBŎ=${F_:Yj?I}?rq K?:ZJuhDƺZe$axz z&5}3?S刿^Չ?.ٖꐿ4.D?D*o[?K5?f?bTt?ns>%}TD<-zɟ?Z=Mq1ZTZ[8Z8?Ժ\^k${i2ml?*0Wx%"ϧakܹ5~ݢpTX) r}<WO?ϻt=dmelFFy7y&3C"ceh0Mhݩq?6c.l?0֬?"Zڎ?K}9nf[!sۨN?R,~T K3RxZ?[~3xin>ێ8Aěo]2*dή:& 9d?-T?V]b?XЬS? 4C7~9a?^`?ҳ/?RΖᔿĥyE?հcL?u@td?abƕdj%PS?c%q?vmk젋ǩ̪x Kp? (d Ajp*s!ђė?!@B"xPcA?"ωZr#uLuy?#Fs}?$vF酿$=!Av%W>n%a<?&i&k?&/S$Ɣ?',k.ȥ1'V?.Y=~?/sM/d(VF]r?0dk؏]0HSks?1iH$fD>h#u??ba9?KDY@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_@ZHEFt?@a?AήUPu?A@#LP?Bĭn48BC8a*?C :_CX]?D{C* sD 8r?EP7ڄE?FąYT4?FI GΑG:?GO}ZpHz~wzH-a~?I$K:J?Ix`ҭ?J`xO{?JjȾ?KXۯcGKiA?L$Hx?L+#*?MMUՔ?MF.o?N@PNw0^OoOlO CJ?P/6pPa;V{4>?QgaC?Q'<?RfzU?R!Zr?S_pdS&QuF?TZDeT.i?Um%u?U"cVrV%&yVUFyW_BW蚆?%>X>?XY"Qىv?YjjYcz?Z۞?Zqu~?[w_D[6\kk}T?\F)u]pD(k]BMш^sU\?^݃|iFi?_[q_3H_QK?`abcdefghijklmnopqrstuvwxyz{|}~`fUst?`Ï~uau a59hbҙ7+?b Dc!R۟?c,3d0gdd@ђeaD]e˧jj0]?f2z?fO݅g上+jg1E`?hDŽJ?h ɩm(?iwZb?i=O?jBI0j6w%uz?xy~'BxkY?yJto1fyf?zM@nzS{{}?{9P~Ű?|`1Gs|>x>q}@?}G)?~X~P ?~vIg\nEn׵~??"I3:(T|?d#4,?p?6CΔ ]?vӧzM? aliZI CH :F^B< Qp?Nzu?U{'D J?El? .D`?\u?8.I ޵VD?dEyK}[?8}?Ha?? :o?x?%fegMp~j?6'Qs9V5sikU*pk;Ļ?Q=k͐o}Tlj}am?7R$zݛ,;cZhtre~R{?G kIT !|=,iJ=r?I0q}zY(l?.cSo|7 p%.fFt]wF)X5FSmYl?\3\Lƪg \?YЉXxHE?PkDwi֯? K?վk?ɸӟs?ӁKHih"yu?'nYe@wPnm?ǥM?s\:K5ar,?_p?1@nf MZ4  V? (?YÎ?HgW:;T?Tgv?@ҝ?P f?"!&R?fsѬr nD?;46t?-^x?nʛh? .OxJXic?VvIo?v:}?Xem?eIT?8 `Ax`$7"| {YC ?nQz/mCno?Ye{\|s?4گ$?ax?,L]>j8?u|cs?5a ?h=QMz?O?&K[,mJ;i$|NvlOh[: d:?DW*;c}ʫ :?Y3?ݚ?s'Z0V?ˠ[aZK'D?"0*7?~p<d2mc9? m#K)^EQ`XA?vpG-|?m/Q)p ja_M3X7`ZT r?JЅ?zxJ~lt18qksp{yC.yayx?٤IZltxjLjB)?@jJ\GO^>dtEhָO?t ?ȃ+T?fR_lHtt?~=C^-|{~=md(?Snu4k?/7?GO,N&T{eyjIO::?mɭ~?`˜LIx"v?] W炿Gīs?5 ?9?$6o'{sŠcosD]z)?j{t ?П'6q?a|5}tpˁ??V},t?io?;N.e݉v?i$kޥk}G ?mjKf7 q?Jaa`H]EzkVr?Ibd΅h!pČ?>5KqqnZffEX?zQw?⋘P?{i;iJ? 9NxBQ20~WZ~b˃?Jzvdx?':NKX"BQk/VDH@aI5揎>?UBH*!/~$SV?j?2+ijq1VϱjH\݁TzxېTDڛS9~}Z)t?9&t譹p?Jċ|#`? 5f<;:pe*+lW y)4>mP?!r B>YK?A֕ǁs^KNA?     i`H?+K?FסY?6$ ,]3\_ox=}%o?n? aw|l?"k? TWVr> Et?d[e?/O"?.O y 2oX #2Ep? $-}? Q{ ? Uk_Ղ %2Br?|o*4Aʈ#_]?WFfp?g~\?ܘW8? ,{簃?Q^^\? tY?=Azǀs3|?EJm~?Y5(8w#뉍U?iO{a!p?fQab/Yt~MF?~@1VǙߖZ?3:KЄ?nܖ?xEi?\$:?cq?GlG/0L"?6AРL{p8?$'=Dm? _?(:sƓJ f?Jϐ&?ֻ+?j? !"#$%&'()*+,-./0123456789:;<=>? TF(k? ޘ?!^䒩!n!"&?"4DD?"#;r?#&5~# FL A$Qd?$=;~y%9}%{lgx&".Ux?&Vʏt?'( ߆?'jzB?("Q*(:.i?)z7N_%J)kެG?*MG0?*o: +Top?+i,:tr,-UJ?-6{]?-$4\1?.^ {.1?/:k/B1 0AimAg0hPԍ1}= :?1:'6C?2zC8I_?2H?3rWw 3"tr4bce?4)[]?5@ 2~5[tz6= vTP?6! |?7kU7uռ[o8W6?8O$[q9ϔ')X9GT޴?:t?}?:|?LE?;MCZ;u^<[(oq?<e "b==J~RZp S?>RT?>V|;u????G9.@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_@?>~r@yݓhv?AdcE=jA%YE٘B"3?BZl?8CnA~{C^{<@qDUy}?D{kI%<E taEoY<'l?Fu n?Fg9?G͌w>G{?HN;?HAG2?1?I7ErITۚeJD"$?Jk~}KJ&lK`|yL%'_EPy?LXMPa3MW\~?NHi_N#+(?O:^xӆOnܜ?P?P5P6e؍{?QENe)~a?Q6pQ֏?R t=5XRo;?SIS?S& PqT؜ Rk?Ta5iU{J'BKUoVfVC$?VyW8fWvbyXI?[j)z?\ߌyl?\gB$?]mc5A] n?^Sʺ^[D?_Iy_Bzq[ϖ˼`?r+,:Jfrw!ʲ?s~avr-*?sx?Hٖ?t*'gtg}??u!su#]م?vK>vo=wjL}??wx?xv.Gxء?yls?yž \?z&+czP}7{Vd㻑?{1|BϥJ؁|$|u}=xt?}$k)+~}}~TͶ􅌿 t.,ρ6_in?ἆF^ Й6c4 A mmNp4 (~wO~?W_vHq+FSw?mv/cN~!q?0 ㉉ӡ1ep,yE/Su;A?֚ R ?¬>Q5x?0W ) 'G^ kΝLB r?Jf??>u?:o]}N)ɂFGR?ysm?sSB1+t 1e?bc?􏧭]O?׺]s(s$LW ? W2y?9eXtCL1?Y$!?8V{?Fo6$?}MS'Gі?L`@fT M[!?p^esa?s^%|?yr>%[-n? őc[?hI xA?C#P֍Ď?hߨh|8m Y^? '3g?Z=n?pB^e&~41OӅ?;D\~2~5~v ?)eOBs?<\ 7D?eI ׀R3@ ?k?4@?ʃ[r?__[% f?!OSW΃K!A_1e?#9;~)ViCX%B7wX_nX8BTs^ۙ?{2rN"Bdj@=b?[mĀ?RZu~s?_ev{GxS #{? H1?X ]o ;+i2"0ZpԌ}~yfOuvR?Gԯү?>X9?.ܠQ?Z]g{`Ù(9^?@Euct`? cļ? mOe\Geȭ0`|W]? -j?Lv}cpQeo%Y|?cg~< o*<3?*eOBe\BmŚ5} 1 T=?3e,wlӌWm5ZCٹ;?Hz\PƫBw?;T瓿Hp6_?Hbm1j?"lK w&?hjz?S@?!%_e?Sn!щ?sUH?/zJ_˅?mG,E_`Rv?Ҳf SU 6 SRS{~5㗿(yҒ'6e|cZWNOP񅒿^Aߋ?C[}F %C3 bދ?58'tt'I7y5t (mz@u?}1rv? |*YTj?讧@?`CE1<0?1v?%Ve?Uo櫎 D؍c *rnø?B6!ܸ?spV` tvF?9nΧT:{(Pz?g7j̐F7wBv V"ƈ\kY?A1ښ@w;2+֪k?=*_w? uyz?M-?V:snъ?`wN|w?!}tc! # ځ??mFkqS?J c1?n3?66?5F^?n";X?qAyCn?<|?.wu Ct8[׶@e?{/:ȋ?ٮδ{T:$?xWQ|Lof֖ RxYe?yY}6A)2RKmJ}Qs?u \'LPȋ^?Vc O`?CW>r:hךn?o.; ?g`AQI?:8> ?*ͺcۤQ?fhz$eb}V?HVBc}?ٹuy%W?!)߄$jt?     o@qo1S?-P4b֐?N]@K"?\{tjw?03#dAgpT^zKX}?sI?_CRFd h?`d{'qbIxEg?d,k Ҏ4?D?u8rPϽ式;?x7N.@?-VhBt?Ky[b?1NYQ)ӱH芿ӈuGhGʃ?Hc@v!0?0ethCp)?Nb=P{ck*IrE/aNjׂ/_?1?&x !"#$%&'()*+,-./0123456789:;<=>? z!~? ft?!és!y;k?"c >Ʉ"}Oݺy?#S:U?#k.{KO$q?.?$. Al?%Z|%ǑG~?&~A7?&uh?'.ᖰ'X-5n-y?(3MF?([/j?),Hd?)kΈ?*0VGc?*2Es?+<8NU+9B9c,rqR,?E4-*\E?-?@.m֩Z.֩/Ak?/p0ֹ# 01щA1pc]u?1b'ԃ2]4K?26S\3:wr3sж4;mFq4̡ 5dz5*{?63?̘a'?6L0@kg7 778؛\]?8|lf9q_hcu9`Tu?:?:]4?;R|?;oS?<]LUo<Gx=Ph828?=*I>iw> DK(S|VKAAHLΎLP;uaM(+'s?M55pS|?NpSuNEƙqOxV ?OvNCP_PB#?P:2Q0uQey80Rw??R^j So?tS5agT'GK㒿TfUyᦽ?U.Q,dVu7~?Vzo?WYM ?Wk ~ƐXyO@?X  UYT8YGt;u?Zӧʉ?Zmy}?[ZǼ405?[D}?\pPC!o\Sf ?]ݏkm pw?]wCM?^3p?^pa<ѕ?_+9D_tw雊?`abcdefghijklmnopqrstuvwxyz{|}~`IBp5?`cɠ?a,~zP?a?b 5"kb. pc _3Y݊?cUKcdx?dOKpxz?eOy$TeB2?fVe|f4_?gv5g箅?gs*{?hݪh=w?i1\x?iix.?jmoojW?kK< Ⱥ~kaڡ$wl)ðlv#+mp@?mW榓?n rnl?oAoeDMW?p1F?pc,Ol?qoFnoqlVyrtxa?r]4xs>`?sLf-n?t>ce?t?ubGTruWsv^f/vifOl?wq͍w^glOxn/M7?xj*?y7Ezc{yɐnr?z_NHO?zVaNKz{){g{Y$A|)HdǸ?| w&}z|}W@~()>z?~C+dO?pYkI՘Hlu8?]P&W0Bb6XcH?DPXNj@j?p aR?U QkZdJ q0g? cBdWɮ*L:r|eT{Rtfc83?@AGzKZ?1E?obdU?xޤq?Ij3Y`fz?@.h=(y?s}b6D`aȷez?K=d?*MpQy^i\vcy諾VD?y$z~?mfJ'`RHv8ܺ$!(Za?~ ,eC(u?*/*v?(i0yQʫ}?jiT?61hQսNRd?|ie?7׾6t?Nw͈FHT^f?coɆw?%枌kˊtNMdt@?u )v?$DQm?Mgdˤ?al{?<%؅Hqyww? KzO xVj䘄?gN'h2I,?@&i?d6oR?5u?Y?(݃$6k?jj>?8[$\-||>tgy?s] q?_M53똿)tJvP u?~:27?4K3p?1JA|dRN\?d?2,^\/fώCz65+Z'\|y#Kqdy.(5?>u܋?sowĕ?Ip?J^+p?wƻ6kVgQ?26]ċ/;xFҳvAERc?&5'|w0ϨӀ6>X_Ȃhblȇ?ƻ x?@k. q*m)E?u$ˣ?8~ضZ?!(kz?A/le3nM1<3{? hk?Cv+Ϭm_9Aք?#B:kӑ|]Gq?_j?s E[’(Dfw:s?p}?f̏ݥW {?%9v?FR?SU(q?Ǿ5ca =vÉY^rü?X͚>Orypf.I?DMEA({܎?8 khCqRBgUXr?cr?.ǔB|?B2\?Ϊ,+?XfkHpB?+iX51dBr?X:0?)qau?2̷>}T +|BpɆKրo8UsT턫Ļr85eI+?1 UqS~veXDgՠ:feǡktP?_XҊr?M1e5|S?}j? Td3?w{?"aa(Xfj?PH0(  >@gg  FMicrosoft Excel 97-TabelleBiff8Oh+'0HPh michel juillardSébastien Villemot2@@|J@qK0@ G-.՜.+,D՜.+,\Root EntryFt@WorkbookCompObjIOle SummaryInformation(DocumentSummaryInformation8tdebian/watch0000644000000000000000000000006012236442231010212 0ustar version=3 http://sf.net/octave/io-(.+)\.tar\.gz