From 9be61e3ed4f6323f8ec7b462ea2eb1c2c5ff8e48 Mon Sep 17 00:00:00 2001 From: untypequicode Date: Thu, 14 Nov 2024 20:34:30 +0100 Subject: [PATCH] update huffman --- tp-huffman/hufftree.c | 68 +++++++++++++++++++++++++++++++-------- tp-huffman/hufftree.o | Bin 12456 -> 13696 bytes tp-huffman/main.o | Bin 29240 -> 26080 bytes tp-huffman/test.txt | 1 + tp-huffman/test.txt.huff | 0 tp-huffman/tp | Bin 65688 -> 66368 bytes 6 files changed, 56 insertions(+), 13 deletions(-) create mode 100644 tp-huffman/test.txt create mode 100644 tp-huffman/test.txt.huff diff --git a/tp-huffman/hufftree.c b/tp-huffman/hufftree.c index affed94..fc3a71f 100644 --- a/tp-huffman/hufftree.c +++ b/tp-huffman/hufftree.c @@ -1,4 +1,5 @@ #include "hufftree.h" +#include "binheap.h" #include "error.h" #include @@ -9,8 +10,8 @@ /* Création d'une feuille */ huffnode *create_huffleaf(int byte, int freq) { huffnode *h = malloc(sizeof(huffnode)); - h -> freq = 0; - h -> byte = 0; + h -> freq = freq; + h -> byte = byte; h -> leftchild = NULL; h -> rightchild = NULL; return h; @@ -83,27 +84,68 @@ bool compare_hufftree(void *p1, void *p2) { huffnode *datafile_to_hufftree(FILE *input) { /* Phase 1: création du tableau de fréquences */ - int *tab = malloc(256 * sizeof(int)); + int *tab = malloc(256 * sizeof(int)); + for (int i = 0; i < 256; i++) { + tab[i] = 0; + } + int c; + while ((c = fgetc(input)) != EOF) { + tab[c]++; + } - /* Phase 2: intialisation de la file de priorité à partir du tableau de - * fréquences */ + /* Phase 2: intialisation de la file de priorité à partir du tableau de + * fréquences */ - // À écrire + binheap *heap = create_binheap(compare_hufftree); + for (int i = 0; i < 256; i++) { + if (tab[i] > 0) { + huffnode *h = create_huffleaf(i, tab[i]); + push_binheap(heap, h); + } + } + free(tab); - /* Phase 3: création de l'arbre de Huffman à partir de la file de priorités */ + /* Phase 3: création de l'arbre de Huffman à partir de la file de priorités */ - // À écrire - - return NULL; + while (getsize_binheap(heap) > 1) { + huffnode *pl = popmin_binheap(heap); + huffnode *pr = popmin_binheap(heap); + huffnode *h = merge_hufftree(pl, pr); + push_binheap(heap, h); + } + huffnode *root = popmin_binheap(heap); + free(heap); + return root; } /* Écriture de l'arbre de Huffman dans le futur fichier compressé */ void save_hufftree(huffnode *p, FILE *f) { - // À écrire + if (isleaf_huffnode(p)) { + fputc('L', f); + fputc(p->byte, f); + } else { + fputc('N', f); + save_hufftree(p->leftchild, f); + save_hufftree(p->rightchild, f); + } } /* Lecture de l'arbre de Huffman dans le fichier compressé */ huffnode *read_hufftree(FILE *f) { - // À écrire - return NULL; + int c = fgetc(f); + if (c == EOF) { + ERROR("read_hufftree: fin de fichier inattendue\n"); + exit(1); + } + if (c == 'L') { + int byte = fgetc(f); + return create_huffleaf(byte, 0); + } else if (c == 'N') { + huffnode *pl = read_hufftree(f); + huffnode *pr = read_hufftree(f); + return merge_hufftree(pl, pr); + } else { + ERROR("read_hufftree: caractère inattendu\n"); + exit(1); + } } diff --git a/tp-huffman/hufftree.o b/tp-huffman/hufftree.o index 3dda15404218312bf0d42a0fa94b1bdd473c2407..fa9e825a236e9a49323eac6ca1c7d69651c008a6 100644 GIT binary patch literal 13696 zcmbuF30REV|G?iit+dDzVMr7jB_Uf`MuQeby0X+%)22<$v>xgu0bdFP!|5iHAj(o#|sE>hG? zs;h-5Mdgq0s+)_d=F|YHKV{DrRIy{~8G`V70ly}1An2-r-E0A?l`Uko3hiqIYT`=0 zV391Wv5UX!(-ORIreYRkcg2=AW zz5>)m-jFRpxF`s=&|HBXo6px2im+sE5+|h zz14q;yHT`)T7{Hpp=wIL#JMwYelm}e#d9QJ-703~01s5%P$4Uay^kHQ84H^rs9S8Q zvSL`LVpus+QQ|qXt&wJRa?duJjM27Sot8@d{MNAMB~7-us|#+ zUf&=LxYdBBq+KK0Sfc5WSQF2XJ)9-F6S`(ht5if99RQu@-P%IdbIBBl_kn;9Ew*Ck zV6*9gb|V{XcT12M`VIm?0geY2jjYE*8W#MfQbY+jqxZE71@v1{mjatRZ04 z#Dv#$(iWcp`1qHb23WAmt4 z*Um`z_raCifKgDMe0O(VAeYN@6*VcPcLx#~%UO1IHg+o+28?-pKUbcYzaK+4h@qz& zG*#D4pJAZHV0dtOE@3>b6IA!}cjHcF`1y1BZVY!W-^<5`%i!>MTt7Fyl9Jde^)KxD zaNT)7+4b_{aRdGSUv>k%JUsuo;eVJ1SAX9CPM|msFpX0g*7lZ`i~xTaFhB5Lk3W#h zaT5(*Y|P!ukKx8;xO=&JdT|38UVbRAT#4a-7$;%Zl@rKu<=r?L$nCNzHc3t_oJv$tb5D3$Sx!8##Os9aZ;H>=4X$Wzyqm6XFK9TjOmi#C z@S)up&BU4Be#@oa>+&q2r^u5*l9OPI0d8TQ*lT1UK*^i2~_1B&TrLi51 zvWHv5-E(YcY@TN9c}MfD-j`Y@>9#LRcRg`By=`WR)yVRz({i_K?#*A8U7o!{^@ecg z=BzO3@kWmo>zzH-YdE(QbMBsFIgh>(9JNwqn(SJwcG>oUy<~%pw<_h_UZnQ?5l^m8 zdq9o~y2|t5U^!8|M4qRnA4<1|40g7CIwL`EB2* z$=~0sN$xx4)p~i8FVYqd&2+{or>wyd%^wQ`Al{UFu&q&drcepfw~?PkS2*OL0j+TJHEjvXKM zg|{wMcj%#v6D-x|?fp-fKJ>4BI;~c(WRT-E@BK2PZ>Zh3wu;^zZ++N)h~89xKNW8K zvbi}Gm-Lyw&mSJGsmzE=8=ZO6>RI_Dt@5YoB|#Teu9*M6Gh<|K_I|0w8=Plf_w8Sz zIP>MPExSJ`?U@zL8qEq?|8-OCP1lEI(jSkdnH**IOTG~AF5@t@lDBVi;J_;lf``KL zV}~!+UCLy?jP{*SUCXb${@Lc`AK^NA?aSMSy}Ul9Vf~1rQm26)LdUD~6L!k&Vf^Jk zza;lVM3nIS&h)&rh~}Z!E&UJZXYEUyl0L!Nrm$FD>Fk);Df_i8WV|D%x6Hd$J7fFD zUK-4{cYN7m3$yVx<;(-o*Gv-T+yBw<@Y|vXi;Ak`w+;zE*0-s(tzww@wf!qRtTJq3 zwq)Af)ZMo-)781>%nWz?Pq6&gqLY4JIV)4%DS;O@zc4! zy^MvgE=4c?7+nw?W&4dcT1D3?&pM>w+@=vWMZK=B9dRtId0VoB{7ktI)h&Z|&zSX2 z-C8C0c$l4gh}Dfz(siciKlx=^=QVC^Rvr~TqqVZgcG?e}k6Y$8c&;lwJjMKAUc?t| zW$8=nv>B=EtRwIFB%Qj}`H4|DOR%Hl$%;AY$19#m*PZqWSF%gyWe=$jPrsuwTRq7# z;!yky7n7*3a#5kJuFE2}Z6O4H#>C8_tF<>P%QltnOl+<;ZynJ&jx{(o@v*a9wT`^LTHeEwEmu!my)scNUOx59Mcp;I zNml}+Rv&q&S86@`P0_b`E{`5+F7@4QWwO9=`RAF<+cw``?KyYtx%`uYtx4?hxAsk3 zZdUC5r`C&5jjZ0|Pt8w_Zm#K7-=6m3+Cf96UE(SA=oj}h^D}ZYgjcTQ)=fXk_nvZV zz_r4oTFz;Ozm3h=eZ6Yg8e)oLByKucS=5TP}!J6KV^6OJ}_?=Dp)^Ixg zMq<-rg9kD9S2iYluh%tjF2C&6r_Ek}Qs-`u{hDSA%1w@s11S@y4LxkdDWtMRFRQ3Q z+;G0_e#$q0SFZJYbIn+fl=bc@MFIgw@#P35GY#3Os*K>VOPghfUvHVjOJ2gOlzTVY zeDutg4G>Qo6|hQ#tte^ zZx7He=R02BUOvIOHv7BTp4o8;fA<+XJje9?9hL`N5w%~HG{1+HD*V<$_!3KqrPRW zMX1*CjV-$47Wqdet6QJ6R9t*ozrmxqkNg|2D*aJhE9qyUcB4K&sNQ-{y-uguzmIFQ zMN&}Kadq{5uGa%Q%zWZH6WY%-FCWEeafoVGu5*}ZHF7882*-AMj}q)%>zA7^oV8me=*X4h2A^#vuDZM_Y4(0=XZNK zr^ng}pV}xq9P;$R8jm6CcHbXA=gX+N7BL{uBRdSSV*q`hD}VMg7K) zoB7w9EmmR6Uu9(8KAn6dhxzQ8ng3a#{jej4zwK2qwf}M=fFIJ?^xltumATaS{M3N0 zs`tWIyM!gT{pS4c{FJu`wAT;USiDas^<1R3cIy1r(vSt6b()L!uHV7^F(|)~tL0I3 z;W48vddQ6{VP?h-(qC(5E}U|~Xzm*;N4L|Jo0jdV-|YwMvdMgZ8m#xr`Tkwcg zzCH%81TB|Hm9Y-<^-ER^te^h=g|K#-LGNiv!tyhTcM|6htS=jD+%(ZBL1D+M z69-qw4YX>0oRA;PC>Aa}yK-ODdH1i0X=7~jiaGT>(@bA8g{y4KY*XgP%E4!*t4{4Z zp=t8igw@p%$^lP%wW?a@Y`WdGemcaCaRw6&dIhua>zWnR82U{XKf+L_umM{R6mOE)g&w|M)N6jc?( z#t5e=e|8L^EauFa%Fwg0w%2DEO=M1B8ZjmqPMBzDYGg>k-}Mv&T<{SFB*61cDj#hL zK;XE68>A1l#cf%-*$u)g%);sBsd z4+W~oQcdva;-?}bS%uxZWJI&wovDDP6yR#;drBR34?x_I;3E)Ugt!KhH$Xgqke`Bh z9O8YDJiN(Jy=bkjstncrdlvV|P|CR4?Jh(0?$*W)8H(;rOy_``1}#6LH4E5caEVS@ z#bT0AM^J|5wo1>#1A1=q8^5yvW_`6cR+(3`6gAd9p2zE*iZm6FQ5`uVc+`vG}Js=RAjkr_X zP%j=7>VBH=^YMW@I8~9Hh)}Ra{d9)l#^G_?y?nS%Jb#)fu;q$_ck%M`8;Drns*l3XlC^+z1~g)w703>t@j)WCce zjnm__q}iv(xs1l?ak>(G9E#JM;BF|+5X8wiqiCES=TRD`$9a}!pB`s6jnm`2NpMRP z=Usy5pg3P3PR9A3#_4h5?;j{Xkd|i#@e;R6le#&Bj9yqgg8_iMB}D3`5`nOP2==^w4cU@(&R7D zI6ZIqG(Lj9_j0_k;Y-Fa30zTj@O?QI%9x#pu8JehkX!- zYV_yTKpLm7!!a~Yk8?VW)7Q@;8rPx4>HG^GLgV!H5Q#XM2k{^Jx}MKC4~aB+I9{BG zg9Oh(c{ok;OV7h)8mH$0zga2)+wj5#zd=F<--*{D`}qA9ax4RN`oj-UFvoAEaL>X5 z)!~?N8G|ZN9?L>Bp2neHf8=)#!7syPfHGfv6ZwVmYmpNhg6~7zp5T*_o#h0#MeC14 z@Y%?YH^KizarzT{ENbKTMmSy=rxTKoA>?t~@Xv>^VEJvx?{+bk@Jht@5L^eflL_vC z+Q$gqf#NwsaA}mEO9UT+{ALrp6txQpu7>QC5nLVleL`^5q}~#I9kSC*a9hNG5d0yE zQyKZe`5c7W0|}1zgD$~kQF{WxW07Aog3m_l2fzPdzp5x6{QiUaA;jGYJ5FdkK?EO; z+K~j0M0Vl{-hkpvBKQ%+PZ0c1WakpW;jcF&Ep(`GZ4qW`>|g<9{hI&%+Dfy zZ^F(B)D9u|?`XWS1fPyLe(%Eei;>)ZLcR=*H<#e1h+{o$XArXANXQo>{)6E8C~tD8 zAKQsTyf4A=x@QpF1=%$qcq+2vLhw2y??dno)D9)MDVi_5UvZo-k^NnSJpR3rO7Q;3 zP6ok!kexh&W50I@o{8G{y%EP#j<^)^gZXa6v46~caoz~|Hz*$b9K!N!B)^Q1zkuX@ z2tEt>jUYJQpD6_IhwNM=_%-A=7jd}!Aj0Pl^@RK>WaleQ9)^O?%{plu+8Ke~Z#2;z zj~CCQ4&vA^8@0U&`A^8NKOv9LRZ+;0|b<^5|#~ z$A1^)a}2@pd|49Q4cT8!@GKlZ;y7<|$nQl$9-o8#Ams6UDaeZx2;+pN@%iUy#IgNC zC;-Yhnmim5K9^fW$Qz>ZIui2ud@r1k$MI~Y$-{W?^ZGa;9|D5`!uR&tC4&l? ze|NxhbXZ1-Zz4O8b5VN?!SVbu369^Vu{~@*1nDV#1STis=#*L@@*X#SKxf8`p*J;pFA#?hj-{b&iWmAU7C@ zL1lyjIes2osM^JRy!^OW1^B~Nh@C`jaG34O^#iW`{CQj^_*11p5Rc=!8nr$A_{@Mn z{{U_vFAUk`dOEoWa(wYZ5U1xqe=>k3Oc~z4*pNA@kpBaM(u>8Y!Jr1eTFfOxTrr1- zTA=JehT+)-)J2aE(HSW0hx;9J^f-b@RKB6_P29$J(*HQn0d4+QeIuX?ZPND!Xi5^Y zm*~LHGm#AVmKu=Hcv*E;mg7sni@OuIK$MLTL ztf%;=ApbiFhgct|iHZ;S?8$#9^6!cCp?`QTh4rz2c#Z=_3~>jj!&0UyzT@AW;#QYF z4l53H^rX)~2W$Ae=2!arus#+*_iUt(f1l%S>=)k;BYoVD@6V7vZsR-F!|n5+0$*W> zWllXu`gs1ZJdq}<1av@~q`m??6b2=fa7gMG0hylWufjm2PAMRLIDarCtdHlfC*M#r z5-Nb=j2;Z|cMM!oq&{4eB`bZmW&>* zQ%KW^*|r`7O{T+anN6qdY+=iGVPMNZAV59a?xvktS{_TwYiAO67_tzcOkoI1cgp{t z^Z(M-vD1d`nen~n|IYV6&VSB5_na%A?%zM)G7Q1R5W7T0VpNDVw^r)Cvf3*ai$&s4 zc>1T|scY8sscX}vtIxGU(^YH^PxoIB&-7ovB)PKI>yZrrhA;K{9Q7uyzw|tt3s0ZA z8lEm)2F0s0O>n(DBaClN|NC=Dt#S~aIRwmuK6C-~%TP!Db+R>mN`?`h>Gg&GcDB@_ zXuVA+crRd2e_>ugqf?iSqwKy3+$*)|OVZg#W{W$*GbZx(Tv!g*@W&RR5T5=v*FLsM z0hgpTsr4M1SHVI+GrgX2|K8rgZD{$=cYuAoNe>&|wTC9n!_=wkq8OyC`ofg2a+aMk z)qi1}E!(i1<4jWqMzH_&u(a!i+v}oKN&UWe7q^^2ug{3B|JrzdmYl-~%aNi%#{r)% zy?(YLQY(0LmQ*R3Eaq)H7*}ZBPagX_>u~?j(BRNftIHZFW#h$kE^DnUSZh`mwyjL8 zwYusoYt$}|oGjW=RL|xT_BJb>lf^l9)7he( z&;Gyc=F_98n>T!u@y2swPtc{nmI611{w&{pURBiDR7a&|Z}Q#`zBI z)g9pmy6XXnf2a|{6owDmXuiJyqfY_ zBRn22s+RQ^JPDF)dk1~t@kz}kJ_u9@_p3`#)1w0RxMZ8hkZm59T(Md`CS(`%q@-FN zZTkUesro0|v2OmKG$WyUtT)4-_`ccgI}2gqN+!$=-tXXD37c!LL*1u@+ojN?ge_8N zRl-&&SW4I?g*8gpE`{|<*dc{2O4uodUM2KOA*_TwQaGrDJESnIggY012I4%fgn^dN zfsj%{SVldrgoqT1O1R5^8M-j3guiJ1ItceG;XvaHAe>Rcpzm3*Hl>8WY%4 z{WYMSRl?yV--MP&m2jl(H4vUq!ciH{(@Hp2`!wi$UJ22OA|Vir^N6~WBHe+#cAZNJ^B5qvAkj$3NU>VsZ-EVrdt4-L zK}Fz$Zeq34J+5d&H}I4KO}Wb%TE)KP0<*WK$r0HpbO*&a|8421TkKti-Eo~8c8~Xn zy{naQ&_B^F!i^M!f1*c3NI1R#)vthZZN+RY<_Ix4JDNm28t*`&vAx{MJ5h#WoL>m5 z1axvccT&heyQ?}jqR7A=Qta;46pajE1VB9i#AE;qMLjA>tLtuH^=V~w-72S5ty|K7 zWy(21;l#>e{f{zWS#M)Nj%$0>0N}O=i*bGlWCpU(&IVMxfvR}-D>AU7lARHO70MqB zS6&2qlyK0W5-mJh!jkrDs|*d64aqrD+ku^OojanWwMrTWGj;XU9|*BtxEr?lxBIvH zBY`b`;I9E-DOB91aQn7(8mh_F3J>%O;rH+IyJ1N%8->5q7YV?VxY%I;9v4#}>I)jX z+rY3=U)>f7EHs+Ey{#W^GoZEBFd_l0)O7+o1kU^$b!Q6zX@~?iwxQ?xRnlrh0I(gf zdNtm_{JqkA6GYCgBLUQ3=rP<4yE?u8PERDTta4*4ngh___p1aT5V&1>Y9R;y z?dDcLhQC8vUbN6y*%0u%JK8(2KTS*ET@Cs2VZN3?O5oN?NrHLRR!I%4jMyJe^zJt7 zMSHaq3}C@ZgCkMuEz47)X|QL%D-G_Dyt2wEimEC zkf>GBf%G18;cI67Ymb}FpEUy)&AN-GvCrJxZLWF4+>kT_NweA4i46;6!+X2U`YE&X zjJZ;{JjSruiMKOwan}sP)l-B^&9G_Ut!AeQbniv8=BuU`0An9sTs;BP|Ac9j%(Xo? zY@9OJh0NNErthn!->C_D;JwGJxo8GTru&Q;n1bt++5BD8SYh6}$!vUM%JfZ{EvQs9 zYw=cMuMJO_ZAo)c(lqWiySmLfcf%R1uIo09ubIntn{^)n5%z?J5sl`O$!JkTBZJYr z9ZN*Vi+M2?%VctK5sjx}>8!Z3|Bgd@qx;2JVKkbtC+v(Ur0=y+r;y6!iz6j?a}_dn zELqFb9(S_fWqBv!D6+y=)}=}bb**)(Tz*-=YgO4&ksG;1d;+%nGD zd`F{6IN(I1A_;qU2oz2-@rk0?d*G1O*E4K&_XK-_>#eS_Vkv9y9JRA{J{<=!mXD`) zPHx%UwRxk}HEMMY0;f<+>>SOOdM2%|WUO#98&BnP*<7j6Rm$Fz&L+Bwv5|~j5S7R< zAc_qVl*bT0CpepU zA_s78QBAfhmzWhfA^D&y+t4u0)`7_Wey}aOR}hf{1A{ox?#SgbmCnlXQGv_EV~5fS zJDP|UV<|wfu*YMGO(I&#mI`*FN5CYs^YGx=`B82BMq=?3rE&G-%sC_CiBmmE zC&%GQb=q=v(9u`ObuJ%FVcHXR5-L(t0{K$B7{zG-65Yy*QUSW7G}Ae_i@kk)+pINr z+9T;$me!rF?u~1yO6LK1`55;O31hO!XkXy<;W-UY81j?>ce(G{)6n#QtFOMsbr&#H z+YV^MA~$&D_PyoyBdS?!z&p2RWwW&XVQP;#+g(S>`sb-#ZlhV>b+p|6wRdR$F}2H0 zJL{jW_mvMH<9aELyxVqIT zz=5c$TfqKtp5hku^Pp&79?q-Uwt&>^$OE4V!hp+jKowifUF0*54%dy4RL8vZ51-yob1pf3PEUpy}n|909| z@>%(ZgnyCnMv$@m8vZaI{49cnar{(*IDQVn!nkwA;$2Q~1H3TQh9?N`Q?7Pbs_TXR zKB7IG_D0b+YI8PL^djO-fqWIt*`>{W?^o|TP!e-qR`b3_tM^USFMOF7`8@?{9{9uA z`sQ1zlw_;IadtEQ69j(;4Td z9DHY-ypHMl{JIto_xF;9|1-%iYdF7ienhw)=T9BDGtOoV1PbzT4Q9W~Z-56KIG&7| zpCTM@&it1gxHJE!HT*v)z6UhCh44oR*ZcLD19$cdwgR%?;kTCRc;givaa{FzJ;j)@ zAkK3W<;8e`!Z^Pvb(4OPpC%`R z8vY>Rhcvv7>>SqcKM)?%@IkWkHyVDG;>>CItt9h0&i#6p_){AH{UlFo_$l)Hu!iG@ zZ!Disw{jldOESM7*)P5~u{@=2Wquvmc}BxGk^B`6{~qyYHGCc6mo)r#>MzeDj_1FL z&wD+_PZ0l#W`{(<>n-ymG+uI|0g3Sr!t2N$<6k1bOEg^lVj{!}4d>^iTf>i$yi3FX ziu~@=@ShVttl>*39$s%b&W8!lYy2c7;4R0iz*Lk-8 z4Dmjt@&AkBc}c?`A^f`<{!5a7ui+1pUz6_acP-gjpy9lJ1vLB>vfHZRS4du|;k>`; z(eQ7O-`zS+@_r33(D+6*oc*5A@LA&XIB^DsPttFiKd>+`U@mG-DK8?@kiVtY~HsYr>9Dj?%Qqb)1x#b%g|I3Ol zUUcx$1fNTPrtx2)e*Mb9$2{;ks+o?=oQIt>f0h!?dEoQdZjI0JL>zpKhxeT+jej4- zpLg)lC7%O7q4C-N;|@OBKTG}kjK=>o*?-o-NBjJ~d{yJK{mTwM+8-zTKiBvJWdFAg zKHBH~L2Hd7a6Uhd#-J=Gob$>1s^c1eEAdZgd}T$5`!qg3rytdDey$0Y^PJzkXp7Ix z91q)HP8EzF_ocjVS*77olGkbYLnH?^ocBXL8vdUo^LvK zACL}excX-UAr5JH6D9=82h>gG4fAjd;oNVIb0y&kjlZ7ow1#gboYzYfasF_zsDhXi z@73_~{LyfphxcnZ&;KVhoS(Z{4d>_mvWD}z!TUpwlh-SY`o}o0hrJrk>*{e0=k-|x z3n$0m!#~`Md38^5EpKOH!J<7`6hZk5L2#r{5W##-39?oF*pkjBbHI^5yu?OE^7aJK zP??~7EISHcqMaCg_O@9C{BafGsFdM*$(Rkl4h6Hhq8)@^vf!5~`1Vgm>=bQ(`^DIF8J{ZMeCT(Jqi>ZL$wR^L18@#j-qpip>4kSKfhWj zu|CF+-z)U^KM0s^6E&}r|A)0kO%xg6&gcI!`M;kO&_AX`_mAg%q;Q;2mF1pBb$?5n zSnQwg4*_jH{RwmkWe*dTSneysj{-iQ{+IEi4-`vYD;L(|`;*Yb^$JUf*GS)qVO{6q z_in_rX(GN)`jeUh=MQaR`2zgSm;d8yWi$P=otnS+TL$a%^FN<&)I3NZs4h@o7!FPe mT_5L^Hbj5`5B?tp3xA(g(%k-IO!Mid)+voyR;0U@4)G`Z8pq!N diff --git a/tp-huffman/main.o b/tp-huffman/main.o index c1f81d2eda78d677f77d0ac753ac8be22cfd5f98..880baaa823f65d56c8dcdf64486a563f013bebe9 100644 GIT binary patch literal 26080 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 delta 21108 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