From c1ea162558548bb72e393ab49e09c556256f6a54 Mon Sep 17 00:00:00 2001 From: rhea Date: Mon, 13 Sep 2021 18:43:29 -0700 Subject: [PATCH 1/7] rebuilds dictionary almost fully --- bin/.gitignore | 4 ++++ bin/Decoder.class | Bin 1755 -> 2817 bytes decoded.txt | 1 - src/Decoder.java | 38 +++++++++++++++++++++++++++++++++++++- 4 files changed, 41 insertions(+), 2 deletions(-) create mode 100644 bin/.gitignore diff --git a/bin/.gitignore b/bin/.gitignore new file mode 100644 index 0000000..73a2dc5 --- /dev/null +++ b/bin/.gitignore @@ -0,0 +1,4 @@ +/Decoder.class +/Encoder$BitWriter.class +/Encoder.class +/Testing.class diff --git a/bin/Decoder.class b/bin/Decoder.class index 5069001e6aad8d4c8da2cfb8ea7f29c361c8596f..b74f085f359c84876a9b8346ccc7b0b97dbd268c 100644 GIT binary patch literal 2817 zcmZ`*S#uOs6#i~zxiganLc#zOkR@zc2m!%B5=2NyV003eATcbO&Pf46Cw_8tLGZQXGJZwHk_ z@F1wc2fx6gm}wb3xzRx*b4(vh8UmHER9sIU*E6Qt7ldAW*vtw9V+D6@G&QQ5mcY{5 zld)TFd+m&A4Yes(q0aMhBW;^0D=SecP~~Wusix?mxf6*c0?UdAU1rjVTIrlkD~3KA zz*2#7!&31jw%F(G5UQ|T;f@G|YwzY&VnvCg!^C3uWlUS8=RQI$I%?0IIb&puMDc7j zqb{B)5UxCcwe+8G@>}q~3d=)SiS-J^26`%hU{LNA1|C8+)=Sh1EOt!hY%|$(P|pr` z>*)|SAs9jf8YMOt6`XQKE!!9}G8(p^iA5dLlR4wi8I|2=T}hw?wYCtpVY|fr^GfdK zUYXdT^3zdzu}~KUpjjh%c99TFw7{;?Ji4T5D{)wml$t7tBwCB5b0Tm(wCBtu*%(5L z3bYCjYS@E^1T+>ju`iiyAGZzi$Xi=?vOS1>=#XfiAH;apHbynt{ z>XO4r!2uQQK^5%0EX@Vmg5?1`A|Tc%K;0U8aEL9Tr_+X&5NIroy>O{C(s?1#p}-Lh zN0q~XooY8NJu|NC9@FqBNO%g}8v;ve@3cb$kKu$w|LqLrC9++^NyTfKR-{c@ibkh3 zJg#IuN2Xj2XwWgpKFsC@vrely6uEo!0tpQU$fEK=2kfyF`E!rfi7ILgYcMgwybl@F z+gO^OdlNx%aX^7%2o_SzZ_==a>|tl*L<2a-awk$2r%pAp8f-OneDP!|%UR>qGee|9 z)m=u2K$#jZk-6gEHXS&DZX-sa1(_YUXW4Kx?cOi#Lf(||RE`~&AvL1>GYQ&F(VW9O zIju(CplK6s*-3I%#&emBlTT?G=WTbTWF&?fqE7RdSW#Y;qI0}ZDfV@lnXKJI8H+f7 z=#Hn0gSYig{JTqR)2*5tr7i1nux$?=F6g!O_*v$`nc@;-5*O6?c}v6FipC3zG#Lta;2SQ=5aL%IgBQyA)m#PsF5oVR zg;+$b3a*u@#mY?C&;0UK?3+PVe`RYqYg zkEhw|Y4%Mb(irwmqdx4rGL5ZyJkU4c6%#%Y_AM5;KKuI&TBzRE>TAejcdOsiEGKdB zTkKWxh(9d1PorxJ(aMMOh!ysSxy++CkG{>fB&Q<2Tbo$lgcM;J@!z;UoA)#aCvh&~ z3kSo&3T+^dCt5?1&@|%BQVA*IXSpLUkCZEUpfMaE0D%Cth8M@E&v>y%)GO$@F=EJ6*FU(W;E>uo( zWg0_wIc4nXe3WST?r@{JBTrwdYdWi^ahZ&EsMtM;(B{f_SkFFk@?BOfIZzR}KKqy2 zRRq4kq6T-B$m6}(X0BtZw7p-`kjE+QMmhmvOjS40^stu>vtT_e(ow#$$I!~)_M*=z z%NiE|K47BQrj&okq;TM17p^khWlk~{!1FIEB(^bBe+|v^F)GBcl`0Gk{(9duKKhEQ X(iT7EIB{Ft&-z{DxxlB6)@T0%U2crS delta 942 zcmZWo%T5zf82(PD)6s6r;TyQ{4HW-VG-%wM^IyOJ`_ARrxvyU3^UwE30QyjVtGr~a z+18}yl!5>}3L4R&B8)2xYEjo#MhzpmYw0BhXM1oy=|Kct98m_}y0)W549(0(vb!Zq z-&E0!nElPsIul19NAJHSR;s$QoFQkj9G;VW@Gc?vf3tN#Xnrme(l0pPC zXrbxbB4n5f{J5iHQpDt1OhoRgxMzQK=A4pdmh442RAB|;k!J8_Ep2&YLff9!a)!<^ z%`vYahZT-xhWb+#Y17j4dQpWgnAZJaN+jqA+{hDLR6!gC73_F!7* zDTu78VoUS~J*9H4RO_WijjEQ*MTUm|kIjDV3NXq3;>s$_4-OYy@l(5phbkRagc44v zSKdeB9XdZCFxTR2l4FPHIY6Repo*d2{wSGMj8$WZ}F0&@N#d)-M{3%?;)LR0U zpwJqstsYtxv_U1`izw>Q3m+CyPx|UmMkS10bm9y(44<$<7SrS@*v5U#fKl@UdOovo z5X2POb2K1|aXiF4oQNTbM_7PNprA`~9Mc3B$77C04nIeLV~K%+9`QT~k5gThFeKVj z75^c$j8J`m;KV+ZaKkF;oTXz~BR$5F&%Jm2U3fnCE1c~(u~w?s%!J7vnx&$#H-vN| z`Z7%cx`<6T$&HcJIGSm{L?5b?rYA6f5e(M!wh9LQNRiM5YLY4O1Vtj~rLQ1lI%<-< Tkbc0&5hp3GHcFSM*a7PoqLsNF diff --git a/decoded.txt b/decoded.txt index b5bb9c5..e69de29 100644 --- a/decoded.txt +++ b/decoded.txt @@ -1 +0,0 @@ -0000011000010000011000100000011000110001000000000001000000100001000000010001000000110001000001100001000001010001000010000001000001000001000010100001000001110001000010110001000010010001000011000001000011110001000011100001000100010001000011010001000100110001000100000001000101000001000100100001000101010001000110000001000101110001000110100001000101100001000111000001000110010001000111010001000110110001000111100001001000010001001000000001000110110000011001000000011001010000011001100000011001110001001000100001000111110001001010100001001010010001001011000001001000110000011000110001001001010001001001110001001011010001001010110001001011100001001100100001001101010001001101000001001101110001001100110001001110010001001101100001001110100001001110000001001110110001001111100001001111010001010000000001001111000001010000100001001111110001010000110001010000010001010001000001010001110001010001100001010010010001010001010001010010110001010010000000011000110000 \ No newline at end of file diff --git a/src/Decoder.java b/src/Decoder.java index aaea854..2c818b2 100644 --- a/src/Decoder.java +++ b/src/Decoder.java @@ -2,20 +2,47 @@ import java.io.*; public class Decoder { + //public static final int BITS = 12; public static void main(String[] args) throws IOException{ // TODO Auto-generated method stub FileInputStream in = new FileInputStream("encoded.txt");//reader PrintWriter out = new PrintWriter(new BufferedWriter(new FileWriter("decoded.txt"))); + HashMap decodeMap = new HashMap(); + int counter = 0; - StringBuilder ans = new StringBuilder(); + for (int i=0; i<256; i++) //initializing existing ascii values in hashmap + { + decodeMap.put(counter,String.valueOf((char)(i))); + counter++; + } + + StringBuilder binary = new StringBuilder(); byte[] bits = in.readAllBytes(); for(int i =0;i Date: Mon, 13 Sep 2021 21:58:10 -0700 Subject: [PATCH 2/7] commented reminders --- bin/Decoder.class | Bin 2817 -> 2928 bytes src/Decoder.java | 10 ++++++---- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/bin/Decoder.class b/bin/Decoder.class index b74f085f359c84876a9b8346ccc7b0b97dbd268c..5bb0377cd57b56f128d6c23ea78cfcad1d85b66b 100644 GIT binary patch delta 971 zcmZvb-)|IE6vsceyE`*G9bg05;#Oj0BXrws=`KaEKw>pDv2mfq652}8Zhuf(>K5vP zB50|iR{5olApWL`;l&4$WN0KY`s%BR34eg$Ng|KN==z<37ZM)k-0wa2oO{0CbMDMF z{MF$8`rnT~0h{>tihDb@b$}s{-INXKTxqg=xZFNfu8g<$4o{AaRJSzmau_jqg+igI zPqtWaF^qZaW!zsM&n@j_!ecv=hE=(qX1|=sxGtScdAvx)kHwpuCJuNUWX2zkcVwr+ z!$Tg2dD&o1jaA00`wX#MbB{|SM?7A=`b+$%={ROH?~>=7$9bMMEUivIIZ-Lk9OL99t(W!pR_I}|G;Jmm_dJoeRcE)x-yA?7qnidbMP8l zmJcs78n7>*FQ7lRF?pGTnM697PNuw}fc=}@jH`%^cIcE#=7GpxpQ#W1PFvbpq$Obb zXNs|Sz)ODKY1|O*0!kTACc663{u4w zOC2qyo#V_Aqs_GP25+inK~+u&C3sG^zs1`^L;O913pogt3xSgp>`|W zrJPGF%ilqo`lqE<;ZnbX`o0&lSTu^Y(uH1gf?hqH9i(`cm0H)ZlXYUhnE|@gm9Y5_ zD+ejBey(<)lrFxIbfd(__)=Z1izF{0_Ae=$qV!l<-LD@FAlcOcUoABUI(0JiRghvs^I@1?k*7^3g*4q19-#Xum4;LHn|Ganw)N=o+ z@x!G@h?%so#p-tlbw%8yjjdL#yIc>_Zqh-g_1aw%ju}MQZjz*1;q7WmCerN+SNW_) zogRfd-koeS2(Z&6Jy_`3r&jf895D!S(WIZ{im~bLB^}9@)Sk8JR7WzQb6KIP4651g zgsYAUDN`+SZEJ5zVoP$TbHOc>+uX4}dLQ`Sp^*=2v2{`#Y;eu<4bW5KDe@Kh{ASE% zbDdFQ4ADAIb4Z~iOw93lC3z07R~G3*RM;fmQ0;QtY_sm^0hO?Z^+{8^{Q2>R*;CJ` zFW6zz6t+n{6{Fl35<3Z4U-dP6;wOErLvuGAiJV z2skUudc0X`@M@gX7_Sk~2r30dStg@v%=w4bh-jRbLK$MqY( zMztvRmdX9{|4Wf3sVXUv`S4bFhPe4y(3qSGZ;oxwz2bN%6|$xi@>Sf;Ro(jw#O0#_ diff --git a/src/Decoder.java b/src/Decoder.java index 2c818b2..8b766bf 100644 --- a/src/Decoder.java +++ b/src/Decoder.java @@ -27,21 +27,23 @@ public static void main(String[] args) throws IOException{ binary.append(toBinary(bits[i])); } + System.out.println(binary); int currInt, nextInt; - - for(int i = 0; i< binary.length()-13; i+=12) + System.out.println(""+binaryToInt("000100000110")); + for(int i = 0; i< binary.length()-12; i+=12) { String currBin = binary.substring(i,i+12); currInt = binaryToInt(currBin); String nextBin = binary.substring(i+12, i+24); nextInt = binaryToInt(nextBin); - String currWFirstNext = decodeMap.get(nextInt).substring(0,1); + String currWFirstNext = decodeMap.get(nextInt).substring(0,1);// i = 72 and nextInt becomes 262 which doesnt exist yet decodeMap.put(counter++, "" + decodeMap.get(currInt) + currWFirstNext ); } + //000100000011 + //need to have a maximum size? - System.out.println("done"); /* while(true) From 93540c41d63ec33d66d89b87d7c2e514409432f5 Mon Sep 17 00:00:00 2001 From: rhea Date: Tue, 14 Sep 2021 14:47:02 -0700 Subject: [PATCH 3/7] Pretty Sure It Works! --- bin/.gitignore | 4 ---- bin/Decoder.class | Bin 2928 -> 3160 bytes src/Decoder.java | 28 ++++++++++++++++++++-------- 3 files changed, 20 insertions(+), 12 deletions(-) delete mode 100644 bin/.gitignore diff --git a/bin/.gitignore b/bin/.gitignore deleted file mode 100644 index 73a2dc5..0000000 --- a/bin/.gitignore +++ /dev/null @@ -1,4 +0,0 @@ -/Decoder.class -/Encoder$BitWriter.class -/Encoder.class -/Testing.class diff --git a/bin/Decoder.class b/bin/Decoder.class index 5bb0377cd57b56f128d6c23ea78cfcad1d85b66b..6fcea4d9cbacca0ef11af89465ff177c647f9d4d 100644 GIT binary patch delta 1274 zcmaKs%WoT16vlryV|&Ik0;#aM_sn;{bIx}j z_V1g2Y&5^W{>4{7Kc8MUH-{`t2FTkyLcv`Qr3}Ti%?yva{h^j!DIT+Nm{VA}Ij5AJ zcINNSFDeo(nVIaNY}ahoDRd1_%;a;W!PYU86i?U`nRnMhy^(`9w{yt77HaMsDHW%k z!k|eHc|YHx&66BaL}v3&p){q?T3Uxpnt00QY4?`!w?k&`V6m8YN<&Ubp*#77nx*Cy z4gbi!9$2AriVdH;rk!;kvD{Q-YWS$mNt1R?+q}mbp0dTon!mvZ5~16dx9A_| z{B{UUWks0?ku&Se`vE?(`IuGr=g3)8JC9C1s3rHfezn{%kv6qHYn6-1aKcJhaeLfj zGHoaA3R8W$4+V0Hyv8=Jv4bCEh(FQ7FSPQ9RD7KdWz(se=~CP2QN8R`chaW{Y*UB1Umal- zOX6H&liv%<9F;Fq6?sNtE1K09dw7mI+SGoI@jRMD8|DR$i-K-$<3+K;WyU1MOPnCg zxZ1+YoFqbydxK|PBrWrb5Ooo?z^h^zA}h&jf=5MEf6ZczFL_-slW+Ju@U^6*H#jAj zEk!NiiWL(C`Bv+q-lVMYmO$TOROuz6^R~{-I!!t$r65sd3&y`todKP9 zgI9^DOV6On!_?n^AhCUdPPs>JpBMWNo;=r>8^pf<&q$R0?2`(05#dSGHM#dTRd_e! zZ`KtC?^(s{Xn0??WwhNZb4K=JVLWcERDWytI1@K6a8rBDn)EoE=@2_JDx{ImB$5^^ z&ko4~V=}V`MfgL+Il!%QZ)aS7`xB&@WHLAKTuup+ZVJa%(lCZWV{7awxqglvdE zff(9f#Di)FBFz$C{)^VD=oX6fl1N*)!i7s>)dead0Xh?8@nyN#E=8Hg@iaEwt!HFOF&80sBVG)5rR}2lY}G?7H}NO zR~tUklD4#^-4a=!@GnK{O6 z_TjkcaJ^a20h@yq-8RvRht?9aijW* zRrM52HK;!Kw!XXbHtl!G_5H{Cnq9LDdW?8%@#qb;MsIL18A(JF(YW33vA4}iTEb}6 zJ}8iw+5nFwV?J&+C(KzIJ@(%t8wz`jx7qHTS-ZwRd*qY0n4tLD-l?dah$bT*rMNvf zQ=V?}IDAVM7se9nu*7YPc1}Jd#S=c{8Oxbt1!d}$L4!)NQgx70Tj^5U`IMOCTx7oA z6UR6%CrkD46<^E7Q)(R@Oj1RoYT*PY3DK;YIK^qXEyFUV#EY;)s(-_`;`Q@_GfZPl zGQg%FtmXPXz7wJr0UP*UJd;Oqfu9@|fuHjOXGMIOPJR?GCL+`PB%aOBBFGjg6#?f& zz%PPq!zi;FL-VU Date: Thu, 16 Sep 2021 14:54:25 -0700 Subject: [PATCH 4/7] Decoder Working except index out of bounds error --- bin/Decoder.class | Bin 3160 -> 3116 bytes decoded.txt | 41 ++++++++++++++++++++++ encoded.txt | Bin 21 -> 2723 bytes original.txt | 84 +++++++++++++++++++++++++++++++++++++++++++++- src/Decoder.java | 13 ++++--- 5 files changed, 133 insertions(+), 5 deletions(-) diff --git a/bin/Decoder.class b/bin/Decoder.class index 6fcea4d9cbacca0ef11af89465ff177c647f9d4d..d6f3e14089a48273a2706b420fb38c7807b5bcd2 100644 GIT binary patch delta 1207 zcmaKs?{8CO6vsc$+TNc}ONXiSP9r){wrjLA$z*F~knH4u*>L z2Z|u`*F`}sQEpOltFvi!u(R%K!B$zBF?Q_pP=lh)V{ho8$ ztJ#ID^Yh=Az6aJ*U39L+(iTrCaOk6;8KUTS#M_Nw%?P9ZU_57xY4$Mg9~bjk%|4#< zFU8jy6PkP3?_Z9$J}^+8950P+bm*br(883ajHgKK7k@cSd_Z%M8HKTLv@}-UqlmS& zZwsL>XkPqwb7Dq4e%R!gLkFicr`f7Vl_xfjmx_~z8rdz*C{%Y?<3MgeIDoV29 z=}9?@rKvE%=bA5=_igjMeHxP#s2Tqob5z~$XRS8B-^x~gT)r#s#CqK-H7}8IGj3WB z1w5VCp04psuNgYUB}X>$C%t6ox4JS`jaQx1F3WHnhY0z~C&VR5EeUHN zZUR31{}r)$f~_LY6cT}m6L|&K=>4caT)~TMe6)(wx%^{UtQ{QzXJuoihtk$u{g3c1 zZOyZ+qhXB%ob%7Rw^a(^WQ1Umw9I9NJnv>ye%xc^8D|rFqcylwD#1g1DicC(Y~nL% zw~~7sWP(R&irSnc_7~|$RG-l*WaUrfU$Wf-k(OcP5;f))#A=GRc$E>kC!#9h-~=N3 NGAmETml5o%e*ii^-b?@h delta 1246 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 Date: Thu, 16 Sep 2021 15:41:58 -0700 Subject: [PATCH 5/7] Fixed Code, Decoder class works --- bin/Decoder.class | Bin 3116 -> 3253 bytes decoded.txt | 44 +++++++++++++++++++++++++++++++++++++++++++- src/Decoder.java | 17 ++++++++++++----- 3 files changed, 55 insertions(+), 6 deletions(-) diff --git a/bin/Decoder.class b/bin/Decoder.class index d6f3e14089a48273a2706b420fb38c7807b5bcd2..83049558203611b0a197858efbf97a130499658c 100644 GIT binary patch delta 898 zcmaKrO-NKx6vuzJc{6Y3%^MlZNnd856zb$ynrWjIWl~7duAqppbQ~?4)J9XNrjN<& zQ|*ag?}8 z2b~H}S1b`vb|_qB<;@1AoHgm5)`CmbB-z5_?+ndoGw%;%uvPE}9Hr zDcs$?or&a|0=G-$>WSDuvavIvFk1V1dt(W^!ZWVo_Pl4_(2CK?0rk`#)nBFplYF(@ zp+G1QG+Q#9tT!!lmeaMm1PWR#cZPPY?HTzFBSbdpVE#$+mSR~b8?*dQsW%ex&JxaW zW`b}eq-S;FJyrF-cSMg_zFB%_Xtsh9T=6O6)w}zEml5l<|Rbz7XacoB2V6Uu;o| zY87CcDx^kLQLAd$p&Hq#4zf%2vs(?ZQH^s-P0)&8I%Zhy+!>d+EIUJuafK9$5;aH@ zS6M|^^>B^rxQM6(H%OzU*h(=sMY=hz_AUH9G5bN|jDj=dl#%R0#wN)bTGwQVt?t77G3c66OyUU4i8~=gG{A zki*%ZjgseZ;@LxLvL`F7tK}??T$adjazqhS|rhAa^{K{#*=;N zeu1m5zU@QM?Gk>gXEc?HC)2wVNr9P+PpF9Ju^3Z}o<+;`1d~z_6Kcks&)Bo%9CyGD z*k!Ui%gLB@WRBC#W`Wd{4#6T{;*=D4Z#3Y|5zcbv8R2NaEaHJLG{k(LXg%imawHdM zbF3@}vvkCKv-np_R?-}w%gAy*W<>+W)KNodg+k>5JN}i^<*OQ5nvO*Nze`QoGGIII zETd(z_ho)pB+G^OfPtmsWvWz*Z%?L{&xBZ_jvv&s%w~QP;WtrH%2wg0K~&Ks>Sz`n zw1^%yiV-@+I47{R${hZ}GjWki`eccu*3BTO5r^5!Bx?wZcCK(0msUK$HKug`ZB%nz zBR8E=RC0rx8g`4I@>}JZ7u?oYrnYj6I~sYl8HZ`^;?q|4uOQy=oqL+Ic+1zKn5_qS z#eL05J<2pQ8kO)s+mhPQij9ZbhSJOu-aL(XOdgq(o2)Yl2?2pTYTl|8Qhl==k0$bT zscySM9kLBmm^A36j@vb*e{msUAH{6-+HMh}YT0h8?kY^9d!M3=9xC*{iMal(eZ)wx PlL56|_KG3(RBreK{_ve~ diff --git a/decoded.txt b/decoded.txt index 1d2bdcf..20fb9d1 100644 --- a/decoded.txt +++ b/decoded.txt @@ -38,4 +38,46 @@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@&,,,,,,,,,&&&&&&&&&&&&&&&&&&&&&&#***, , , , ,, ,,,.. , , ,&&&&&&&&&&&&&, ,#&&&&&&&&#, &&&&&&&&&/,,,,,,,,,@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@&,,,,,,,&&&&&,,,,, ,&&&&&&&&&&, , , , ,, ,&&&&&&&&&&&&&&&&, (&&&&&&&&&&&&&, ,&&&&&&&&&&,,,,,,,,@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@&,,,,,&&&&&&&&&&, ,&&&&&&&*, , , , , , , *,. ,&&&&(,. .,(&% ,&, ,*&&&&&&, ,&&&&&&&&&&&&,,,,,,@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ -@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@&,,,/&&&,,,, , ,(*,, , . , , , , , , ,&&&&&&&* , ,&&&&&&&&/,&&&&&& \ No newline at end of file +@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@&,,,/&&&,,,, , ,(*,, , . , , , , , , ,&&&&&&&* , ,&&&&&&&&/,&&&&&&&&&&&&&&&&,,,,@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ +@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@&,,,&&&&&&# , , , . , ,(&&&&&&&&&,.,&&&&(, ,&&&&&&&&&&&&&&&&&&&&&&&&&&&&&,,,@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ +@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@&,,,&&&&&&&&%(,. , , , , ., ,(&&&&&&&&&&#, %&&&&&&&&&&&&&&&&&&&&&&&&&&&&&,,/@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ +@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@&,,,&&&&&&,, , ,, ,, , ,, ,& ., ,*&&&&&, ,&&&&&&&&&&&&&&&&&&&&&&&&&&&&&,,,&@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ +@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@/,,&&&&&,,,,, .,(&, (& &, ,, ,&,,&&, ,&&&,, ,&&&, ,*&&(, .&&&, ,&&&&&&&&&&&&&&&&&&&&,,,&@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ +@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@&,,,&&&(,&&&&&&&&&,,,,&&&/ ,&&,,&&,&&&&&&&&&&&&&&&&&&&&&&%*,,. , ,&&&&&&&&&&&&, ,, ,&&&&&&&&&&&&&&&&&&&&&&,,,@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ +@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@,,,&&&&&&&&&&&&&&&,,&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&%, ,&&&&&&&&&&&&, .&&&&&&&&&&&&&&&&&&&&&&,,,&@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ +@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@&,,,&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&,, .,,,,,,,,, ,&&&&&&&&&&&&, ,, ,&&&&&&&&&&&&&&&(,,,@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ +@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%,,,&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&, , .#&&&&&&&&&&, .,,, (&&&&&&&&&&&&&&,,,&@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ +@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@,,,#&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&,. , , ,(&&&&&&&* ,&&&&%&&&&&&&&&&&&&&&,,,&@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ +@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@&,,,&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&( . , ,&, ,,,, ,&&&&&&&&&&&&&&&&&&&&&,,,&@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ +@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@&,,,#&&&&&&&&&&&&&&&&&&&&&&&&&&&&&,,,(, ,&&&&, , ,&&&&&&#,. ,%&&&&&&&&&&&&&&&&&&&&&&&,,,&@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ +@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@&,,,,&&&&&&&&&&&&&&&&&&&&&&&&&&&&&,, ,,, , ,&&&&&&&& ,&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&,,,&@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ +@@@@@@@@@@@@@@@&&@@@@@@@@@@@@@@@@@@@@@@@@@@#,,,&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&,,&&, ,&&&&&&. ,&&&&, ,&&&&&&&&&&&&&&&&&&&&&&&&&&&&&(,,,&@@@@@@@@@@@@@@@@@@@@@@@@@&&@@@@@@@@@@@@@@ +@(&@@@@@@@@@@@@&,&@@@@@@@@@@@@@@@@@@@@@@@@@@&,,,&&&&&&&&&&&&&&&&&&&&&&&/,,,,%&&&&&&&&. ,&&&&, %, , ,/&&&#,&&&&&&&&&&&&&&&&&&&&,,,,&@@@@@@@@@@@@@@@@@@@@@@@@@&,&@@@@@@@@@@@@&/ +@&,,#&@@@@@@@@@@,,,&@@@@@@@@@@@@@@@@@@@@@@@@@&,,,,&&&&&&&&&&&&&&&&&&,,,,, ,&&&&&&, . #&&&, %&# ,, /. , ,,&&&&&&&&&&&&&&&&&&&*,,,&@@@@@@@@@@@@@@@@@@@@@@@@@&,,,@@@@@@@@@@&#,,& +@@(,,,,&@@@@@@@@&,,,,&@@@@@@@@@@@@@@@@@@@@@@@@@&,,,,&&&&&&&&&&&&&&&&&&&&,,, &,.&&&&,&&&&&,,&&,,&&,,%#&, ,,%&&&&&&&&&&&&&&&&&&&&,,,(@@@@@@@@@@@@@@@@@@@@@@@@@&,,,,&@@@@@@@@&,,,,(@ +@@&,,,,,,&@@@@@@&,,,,,,%&@@@@@@@@@@@@@@@@@@@@@@@@&,,,,&&&&&&&&&&&&&&&,, * ,&/&&&&&&&&&&&&&&&&&&&&&&, ,,&&&&&&&&&&&&&&&&&,,,,&@@@@@@@@@@@@@@@@@@@@@@@&%,,,,,,&@@@@@@&,,,,,,&@ +@@@#,,&&,,,,&@@@&,,,&&,,,,&&@@@@@@@@@@@@@@@@@@@@@@@&,,,,&&&&&&&&&&&&,,,, .,. ,, ,,.&&&&&&&&&&&&&&&#*,,,#&,. ,(&&&&&&&&&&&&&&&&&&#,,,,&@@@@@@@@@@@@@@@@@@@@@@&&,,,,&&,,,&@@@&,,,,&&,,/@@ +@@@&,,,& &,,,,#&&,,( &,,,,,(&@@@@@@@@@@@@@@@@@@@@@&,,,,&&&&&&&&&&&&&&&&, &, ,&,&&&&&&&&&&&&&&&,,,, ,,,,,,*&&&&&&&&&&&&&,,,,#&@@@@@@@@@@@@@@@@@@@@&#,,,,,& #,,&&(,,,,& &,,,&@@ +@@@@&,,,& &/,,,,,,& &(,,,,,,&&@@@@@@@@@@@@@@@@@&(,,,,&&&&&&&&&&&&,,,,,,,&&&&&,,,&&&&&&&&&&&&&&&&&&&&&*,, ,/&&&&&&&&&&&&&&/,,,,&@@@@@@@@@@@@@@@@@&&,,,,,,(& &,,,,,,/& &,,,&@@@ +@@@@@@/,,,* (&,,,& &&,,,,,,&@@@@@@@@@@@@@@@@&,,,,,&&&&&&&&&#,(&&&&&&&&&,&&&&&&&&&&&&&&&&&&&&&&,, , &&&&,,,&&&&&&&&&&&*,,,,&&@@@@@@@@@@@@@@@&,,,,,,&& &,,,&( *,,,*@@@@@ +@@@@@@@&,,,,& &,,,*&& &,,,&@@@@@@@@@@@@@@@@@&,,,,,(&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&,,,%&&&, ,&&&&&&&&&&&&&&&,,,,,&&@@@@@@@@@@@@@@@@&,,,& &&*,,,& &,,,,&@@@@@@ +@@@@@@@@@&(,,,/& &/&&&,,,,,,,,&& (&@@@@@@@@@@@@@@@@@@@@@&&,,,,,/&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&,,,&&&&&&&&&&&,,,,,,&@@@@@@@@@@@@@@@@@@@@@&& &&,,,,,,,,&&&/& &*,,,*&@@@@@@@@ +@@@@@@@@@@@@&(,,,,%& &,,,&, &&,,,,,&@@@@@@@@@@@@@@@@@@@@@@@@@@&&,,,,,,/&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&,,,,,,*&@@@@@@@@@@@@@@@@@@@@@@@@@@&,,,,,&& .&,,,& &#,,,,/&@@@@@@@@@@@ +@@@@@@@@@@@@@@@@&*,,,,, &,,,,,,&& &@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@&&,,,,,,,,%&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&,,,,,,,,*&&@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@& &&,,,,,,& ,,,,,*&@@@@@@@@@@@@@@@ +@@@@@@@@@@@@@@@@@@@@@&& (&*,,,,,,%&@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@&&,,,,,,,,,,,,,,,/#%&&&&#(,,,,,,,,,,,,,,,&&&@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@&%,,,,,,*&( &&@@@@@@@@@@@@@@@@@@@@ +@@@@@@@@@@@@@@@@@@@@@& &. .&(,,,,,,&&@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@&&&&%*,,,,,,,,,,,,,,,,(&&&&@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@&&,,,,,,(&, &@@@@@@@@@@@@@@@@@@@@ +@@@@@@@@@@@@@@@@@@@@& .& & %&,,,,,,&&@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@&&,,,,,,&% &&& &@@@@@@@@@@@@@@@@@@@ +@@@@@@@@@@@@@@@@@@@& *& &&% (&,,,,,*&@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@&*,,,,,&/ , & &&.&& &@@@@@@@@@@@@@@@@@@ +@@@@@@@@@@@@@@@@@@&& & & & , &&,,,,,%&@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@&%,,,,,&% .& & & & &&@@@@@@@@@@@@@@@@@ +@@@@@@@@@@@@@@@@@@,,,,,&* # #& & # &(,,,,,%&@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@&%,,,,,(& & & ,&,,,,,@@@@@@@@@@@@@@@@@ +@@@@@@@@@@@@@@@@@@@@&&,,,,,,/&( ( .& && &(,,,,,,&&@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@&&,,,,,,(& &&& (&/,,,,,,%&@@@@@@@@@@@@@@@@@@@ +@@@@@@@@@@@@@@@@@@@@@@@@@&&&,,,,,,,&( & / & %&*,,,,,,,%&&@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@&&%,,,,,,,*&% & %, % (&,,,,,,,&&&@@@@@@@@@@@@@@@@@@@@@@@@ +@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@&&,,,,,,%& ( % & & &&*,,,,,,,,,,,,(%&&&&&&@@@@@@@@@&&&&&&%(,,,,,,,,,,,,*&& %& #& &%& &%,,,,,,&&@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ +@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@&/,,,,,%& & && & .%&&&/*,,,,,,,,,,,,,,,,,,,,,,,,/&&&%. (. &% #& & &%,,,,,/&@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ +@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@&*,,,,,&* ,&( /& & && &&. *&,,,,,*&@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ +@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@&&,,,,,*&. &# & && %. %& & % %& & .&,,,,,,&&@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ +@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@&&,,,,,,&/ &&& & / &, && & && ,& & &# . .&&& (& ( /&,,,,,,&&@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ +@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@&&,,,,,,/&% %& & & #& &* & & &,& %&*,,,,,,&&@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ +@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@&&,,,,,,,,/&&# #&&/,,,,,,,,&&&@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ +@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@&&#,,,,,,,,,,,,,,,/#%&&&&&&&&&&&&&&&&&&&%#/,,,,,,,,,,,,,,,(&&@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ +@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@&&&&&%(*,,,,,,,,,,,,,,,,,,,,,,,*(%&&&&@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \ No newline at end of file diff --git a/src/Decoder.java b/src/Decoder.java index c56937c..7768137 100644 --- a/src/Decoder.java +++ b/src/Decoder.java @@ -30,15 +30,22 @@ public static void main(String[] args) throws IOException{ //start rebuilding dictionary int currentInt, nextInt;//currentInt = old, nextInt = new - String s,c; + String s,c, nextBin, currentBin; c = ""; - for(int i = 0; i< binary.length()-12; i+=12) + for(int i = 0; i<= binary.length()-12; i+=12) { - String currentBin = binary.substring(i,i+12); + + currentBin = binary.substring(i,i+12); currentInt = binaryToInt(currentBin); - String nextBin = binary.substring(i+12, i+24); - nextInt = binaryToInt(nextBin); + if(i+24 <= binary.length()-1) { + nextBin = binary.substring(i+12, i+24); + } + else { + nextBin = binary.substring(i+12, binary.length()); + } + nextInt = binaryToInt(nextBin); + if (!decodeMap.containsKey(nextInt)) { // if the key's value doesnt exist s = decodeMap.get(currentInt); //string/character of current binary From b9a39380907860c84fbde4d69dfb2794b9cfbaaa Mon Sep 17 00:00:00 2001 From: rhea Date: Thu, 16 Sep 2021 15:43:24 -0700 Subject: [PATCH 6/7] Tested All 3 Cases, Decoder works, Out of Bounds error = fixed --- decoded.txt | 84 +-------------------------------------------------- encoded.txt | Bin 2723 -> 119 bytes original.txt | 84 +-------------------------------------------------- 3 files changed, 2 insertions(+), 166 deletions(-) diff --git a/decoded.txt b/decoded.txt index 20fb9d1..7e75d29 100644 --- a/decoded.txt +++ b/decoded.txt @@ -1,83 +1 @@ -@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ -@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@&,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ -@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@&,,*##############################################################&############################################################&,,,@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ -@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@&,,*###########################################################&,,,/###########################################################&,,,@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ -@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@&,,*#########################################################&,,,,,,,&#########################################################&,,,@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ -@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@&,,*#################% &##################################&,,,,,,,,,,,&################################### &#################&,,,@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ -@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@&,,*################& .###############################&,,,,,,,,,,,,,,,&###############################& ################&,,,@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ -@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@&,,*################ &#############################(,,,,,,,&&&,,,,,,,,&############################# &###############&,,,@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ -@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@&,,*###############% %###########################&,,,,,,,&&&&&&&,,,,,,,*%########################### ################&,,,@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ -@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@&,,*################ &#########################&,,,,,,,%&&&&&&&&&&,,,,,,,&########################## &###############&,,,@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ -@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@&,,*#######% *###( ###% &###############&,,,,,,,,&&&&&&&&&&&&&&,,,,,,,&###############% *###% ###& &#######&,,,@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ -@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@&,,*###### &# &# &###########&,,,,,,,,&&&&&&&&&&&&&&&&&%,,,,,,,&############ &# &# &#####&,,,@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ -@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@&,,*###### *% (& &##########(,,,,,,,&&&&&&&&&&&&&&&&&&&&&*,,,,,,,&########## ,% /% &#####&,,,@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ -@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@&,,*#######.%######* %& % %###### %#########&,,,,,,,&&&&&&&&&&&&&&&&&&&&&&&&&,,,,,,,,%#########.%######( #& % %###### %######&,,,@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ -@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@&,,*################/ ## #&################&,,,,,,,%&&&&&&&&&&&&&&&&&&&&&&&&&&&&,,,,,,,%#################/ ## #&###############&,,,@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ -@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@&,,*################# #% %###############&,,,,,,,*&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&,,,,,,,&################ #% %################&,,,@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ -@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@&,,*###############* &, # %###########&,,,,,,,,&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&%,,,,,,,&############/ &, # %##############&,,,@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ -@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@&,,*############## %# # &########%/,,,,,,,&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&*,,,,,,,&######### %& #. &#############&,,,@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ -@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@&,,*#################% *###########&,,,,,,,&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&,,,,,,,,&##########& (#################&,,,@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ -@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@&,,*##############################&,,,,,,,%&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&,,,,,,,###############################&,,,@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ -@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@&,,*############################&,,,,,,,*&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&,,,,,,,&############################&,,,@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ -@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@&,,*##########################&,,,,,,,,&&&&&&&&&&&&&&&%(&&&&&&&&&, ,&&&&&%&&%/&&&&&&&&&&&&&%,,,,,,,&##########################&,,,@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ -@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@&,,*########################%/,,,,,,,&&&&&&&&&&&&&&&&&&, , ,, ,, , ,&&&&&&&&&&&&&&&*,,,,,,,&########################&,,,@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ -@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@&,,*##############&&&%#####&&,&,,,,&&&&&&&&&&&&&&&&&&&&&, ,&&&&&&&&&&&&, .&&&,,,,*///&######################&,,,@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ -@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@&,,*##############&,,,,,,&/,&,,,&%&&&&&&&&&&&&&&&&&&&&&&&,,,,,,,,,,,,,,,,,,,,,&&&&&&&&&&&, ,,,, ,*&#################&,,,@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ -@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@&,,*###############&, ,(, ,&&&&&&&&&&&&&&&&&&#,,,,, ,, ., , ,&&&&&#&&&, ,&###############&,,,@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ -@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@&,,*#############%&&&. %&&&&&&&&&&&&&&&&, ,,,,,, ,,,, , ,&&&&&&&&. ,,, ,&&&&,#&, ,&&/,,%&########&,,,@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ -@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@&,,*#########&,,,, ,#&&&&&&&&&&&&, ,&%. .,,. ,.., , ,&&&&&&&, ,&&&&,&*,,&, , ,&#########&,,,@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ -@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@&,,*#########&&&(, ,&&&&&&&&&&&, #&&&&&&,,,,, ,,, . ,&&&&&&&, ,,,, ,&&,,&, ,&##########&,,,@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ -@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@&,,*############&,&#, .%&&&&&&&&&&&/,, .,,,,..,, , ,, ,%&&&&&&&&&, ,, %&&&&*, ,%**%#######&,,,@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ -@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@&,,*##########&,,,&, . ,&&&&&&&&&&&&&&&&&,, .,, , , ,, ,,(,,&&&&, ,&,,,%&&&&&&&, ,&########&,,,@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ -@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@&,,*########&,/,,,,,. ,*&, ,/&&&&&(, , , , , , *&&&&, ., , ,&&&&&&&&&&&, ,&&########&,,,@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ -@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@&,,*######%*,,,,,*(&&&&&&&, , ,*&&&#, ,,, .,,,, ,. ,, , . ,&&&&&&&&, ,, , ,&&&&&&&# ,&,,,,&######&,,,@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ -@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@&,,*#####%,,,,,,,&&&&&&&, ,*( ,,..,, , , , , , . , ,&&&&(, ,,&&&, , ,,*. ,(,,,,,&####&,,,@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ -@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@&,,*###&,,,,,,,&&&&&&&&&&&&, .,, , , ., . , . , ,&, .,,&&&&&&&&&&* ., ,, ,&&&,,,,,,,*%##&,,,@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ -@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@&,,*#&,,,,,,,*&&&&&&&&&&&&&&&, ,*, , , ,, , , , , (&&&%&&&&&&&&&&&&&&&&,, ,, ,&&&&&&&&,,,,,,,%#&,,,@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ -@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@&,,,,,,,,,,,&&&&&&&&&&&&&&&&&&&&, , , ,, , , , , ,, , ,&&&&&&&&&&&&&&&%, ,,, ,. ,&&&&&&&&&,,,,,,,*,,,@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ -@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@&,,,,,,,,,&&&&&&&&&&&&&&&&&&&&&&#***, , , , ,, ,,,.. , , ,&&&&&&&&&&&&&, ,#&&&&&&&&#, &&&&&&&&&/,,,,,,,,,@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ -@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@&,,,,,,,&&&&&,,,,, ,&&&&&&&&&&, , , , ,, ,&&&&&&&&&&&&&&&&, (&&&&&&&&&&&&&, ,&&&&&&&&&&,,,,,,,,@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ -@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@&,,,,,&&&&&&&&&&, ,&&&&&&&*, , , , , , , *,. ,&&&&(,. .,(&% ,&, ,*&&&&&&, ,&&&&&&&&&&&&,,,,,,@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ -@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@&,,,/&&&,,,, , ,(*,, , . , , , , , , ,&&&&&&&* , ,&&&&&&&&/,&&&&&&&&&&&&&&&&,,,,@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ -@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@&,,,&&&&&&# , , , . , ,(&&&&&&&&&,.,&&&&(, ,&&&&&&&&&&&&&&&&&&&&&&&&&&&&&,,,@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ -@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@&,,,&&&&&&&&%(,. , , , , ., ,(&&&&&&&&&&#, %&&&&&&&&&&&&&&&&&&&&&&&&&&&&&,,/@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ -@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@&,,,&&&&&&,, , ,, ,, , ,, ,& ., ,*&&&&&, ,&&&&&&&&&&&&&&&&&&&&&&&&&&&&&,,,&@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ -@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@/,,&&&&&,,,,, .,(&, (& &, ,, ,&,,&&, ,&&&,, ,&&&, ,*&&(, .&&&, ,&&&&&&&&&&&&&&&&&&&&,,,&@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ -@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@&,,,&&&(,&&&&&&&&&,,,,&&&/ ,&&,,&&,&&&&&&&&&&&&&&&&&&&&&&%*,,. , ,&&&&&&&&&&&&, ,, ,&&&&&&&&&&&&&&&&&&&&&&,,,@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ -@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@,,,&&&&&&&&&&&&&&&,,&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&%, ,&&&&&&&&&&&&, .&&&&&&&&&&&&&&&&&&&&&&,,,&@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ -@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@&,,,&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&,, .,,,,,,,,, ,&&&&&&&&&&&&, ,, ,&&&&&&&&&&&&&&&(,,,@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ -@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%,,,&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&, , .#&&&&&&&&&&, .,,, (&&&&&&&&&&&&&&,,,&@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ -@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@,,,#&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&,. , , ,(&&&&&&&* ,&&&&%&&&&&&&&&&&&&&&,,,&@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ -@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@&,,,&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&( . , ,&, ,,,, ,&&&&&&&&&&&&&&&&&&&&&,,,&@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ -@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@&,,,#&&&&&&&&&&&&&&&&&&&&&&&&&&&&&,,,(, ,&&&&, , ,&&&&&&#,. ,%&&&&&&&&&&&&&&&&&&&&&&&,,,&@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ -@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@&,,,,&&&&&&&&&&&&&&&&&&&&&&&&&&&&&,, ,,, , ,&&&&&&&& ,&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&,,,&@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ -@@@@@@@@@@@@@@@&&@@@@@@@@@@@@@@@@@@@@@@@@@@#,,,&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&,,&&, ,&&&&&&. ,&&&&, ,&&&&&&&&&&&&&&&&&&&&&&&&&&&&&(,,,&@@@@@@@@@@@@@@@@@@@@@@@@@&&@@@@@@@@@@@@@@ -@(&@@@@@@@@@@@@&,&@@@@@@@@@@@@@@@@@@@@@@@@@@&,,,&&&&&&&&&&&&&&&&&&&&&&&/,,,,%&&&&&&&&. ,&&&&, %, , ,/&&&#,&&&&&&&&&&&&&&&&&&&&,,,,&@@@@@@@@@@@@@@@@@@@@@@@@@&,&@@@@@@@@@@@@&/ -@&,,#&@@@@@@@@@@,,,&@@@@@@@@@@@@@@@@@@@@@@@@@&,,,,&&&&&&&&&&&&&&&&&&,,,,, ,&&&&&&, . #&&&, %&# ,, /. , ,,&&&&&&&&&&&&&&&&&&&*,,,&@@@@@@@@@@@@@@@@@@@@@@@@@&,,,@@@@@@@@@@&#,,& -@@(,,,,&@@@@@@@@&,,,,&@@@@@@@@@@@@@@@@@@@@@@@@@&,,,,&&&&&&&&&&&&&&&&&&&&,,, &,.&&&&,&&&&&,,&&,,&&,,%#&, ,,%&&&&&&&&&&&&&&&&&&&&,,,(@@@@@@@@@@@@@@@@@@@@@@@@@&,,,,&@@@@@@@@&,,,,(@ -@@&,,,,,,&@@@@@@&,,,,,,%&@@@@@@@@@@@@@@@@@@@@@@@@&,,,,&&&&&&&&&&&&&&&,, * ,&/&&&&&&&&&&&&&&&&&&&&&&, ,,&&&&&&&&&&&&&&&&&,,,,&@@@@@@@@@@@@@@@@@@@@@@@&%,,,,,,&@@@@@@&,,,,,,&@ -@@@#,,&&,,,,&@@@&,,,&&,,,,&&@@@@@@@@@@@@@@@@@@@@@@@&,,,,&&&&&&&&&&&&,,,, .,. ,, ,,.&&&&&&&&&&&&&&&#*,,,#&,. ,(&&&&&&&&&&&&&&&&&&#,,,,&@@@@@@@@@@@@@@@@@@@@@@&&,,,,&&,,,&@@@&,,,,&&,,/@@ -@@@&,,,& &,,,,#&&,,( &,,,,,(&@@@@@@@@@@@@@@@@@@@@@&,,,,&&&&&&&&&&&&&&&&, &, ,&,&&&&&&&&&&&&&&&,,,, ,,,,,,*&&&&&&&&&&&&&,,,,#&@@@@@@@@@@@@@@@@@@@@&#,,,,,& #,,&&(,,,,& &,,,&@@ -@@@@&,,,& &/,,,,,,& &(,,,,,,&&@@@@@@@@@@@@@@@@@&(,,,,&&&&&&&&&&&&,,,,,,,&&&&&,,,&&&&&&&&&&&&&&&&&&&&&*,, ,/&&&&&&&&&&&&&&/,,,,&@@@@@@@@@@@@@@@@@&&,,,,,,(& &,,,,,,/& &,,,&@@@ -@@@@@@/,,,* (&,,,& &&,,,,,,&@@@@@@@@@@@@@@@@&,,,,,&&&&&&&&&#,(&&&&&&&&&,&&&&&&&&&&&&&&&&&&&&&&,, , &&&&,,,&&&&&&&&&&&*,,,,&&@@@@@@@@@@@@@@@&,,,,,,&& &,,,&( *,,,*@@@@@ -@@@@@@@&,,,,& &,,,*&& &,,,&@@@@@@@@@@@@@@@@@&,,,,,(&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&,,,%&&&, ,&&&&&&&&&&&&&&&,,,,,&&@@@@@@@@@@@@@@@@&,,,& &&*,,,& &,,,,&@@@@@@ -@@@@@@@@@&(,,,/& &/&&&,,,,,,,,&& (&@@@@@@@@@@@@@@@@@@@@@&&,,,,,/&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&,,,&&&&&&&&&&&,,,,,,&@@@@@@@@@@@@@@@@@@@@@&& &&,,,,,,,,&&&/& &*,,,*&@@@@@@@@ -@@@@@@@@@@@@&(,,,,%& &,,,&, &&,,,,,&@@@@@@@@@@@@@@@@@@@@@@@@@@&&,,,,,,/&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&,,,,,,*&@@@@@@@@@@@@@@@@@@@@@@@@@@&,,,,,&& .&,,,& &#,,,,/&@@@@@@@@@@@ -@@@@@@@@@@@@@@@@&*,,,,, &,,,,,,&& &@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@&&,,,,,,,,%&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&,,,,,,,,*&&@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@& &&,,,,,,& ,,,,,*&@@@@@@@@@@@@@@@ -@@@@@@@@@@@@@@@@@@@@@&& (&*,,,,,,%&@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@&&,,,,,,,,,,,,,,,/#%&&&&#(,,,,,,,,,,,,,,,&&&@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@&%,,,,,,*&( &&@@@@@@@@@@@@@@@@@@@@ -@@@@@@@@@@@@@@@@@@@@@& &. .&(,,,,,,&&@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@&&&&%*,,,,,,,,,,,,,,,,(&&&&@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@&&,,,,,,(&, &@@@@@@@@@@@@@@@@@@@@ -@@@@@@@@@@@@@@@@@@@@& .& & %&,,,,,,&&@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@&&,,,,,,&% &&& &@@@@@@@@@@@@@@@@@@@ -@@@@@@@@@@@@@@@@@@@& *& &&% (&,,,,,*&@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@&*,,,,,&/ , & &&.&& &@@@@@@@@@@@@@@@@@@ -@@@@@@@@@@@@@@@@@@&& & & & , &&,,,,,%&@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@&%,,,,,&% .& & & & &&@@@@@@@@@@@@@@@@@ -@@@@@@@@@@@@@@@@@@,,,,,&* # #& & # &(,,,,,%&@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@&%,,,,,(& & & ,&,,,,,@@@@@@@@@@@@@@@@@ -@@@@@@@@@@@@@@@@@@@@&&,,,,,,/&( ( .& && &(,,,,,,&&@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@&&,,,,,,(& &&& (&/,,,,,,%&@@@@@@@@@@@@@@@@@@@ -@@@@@@@@@@@@@@@@@@@@@@@@@&&&,,,,,,,&( & / & %&*,,,,,,,%&&@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@&&%,,,,,,,*&% & %, % (&,,,,,,,&&&@@@@@@@@@@@@@@@@@@@@@@@@ -@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@&&,,,,,,%& ( % & & &&*,,,,,,,,,,,,(%&&&&&&@@@@@@@@@&&&&&&%(,,,,,,,,,,,,*&& %& #& &%& &%,,,,,,&&@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ -@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@&/,,,,,%& & && & .%&&&/*,,,,,,,,,,,,,,,,,,,,,,,,/&&&%. (. &% #& & &%,,,,,/&@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ -@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@&*,,,,,&* ,&( /& & && &&. *&,,,,,*&@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ -@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@&&,,,,,*&. &# & && %. %& & % %& & .&,,,,,,&&@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ -@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@&&,,,,,,&/ &&& & / &, && & && ,& & &# . .&&& (& ( /&,,,,,,&&@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ -@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@&&,,,,,,/&% %& & & #& &* & & &,& %&*,,,,,,&&@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ -@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@&&,,,,,,,,/&&# #&&/,,,,,,,,&&&@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ -@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@&&#,,,,,,,,,,,,,,,/#%&&&&&&&&&&&&&&&&&&&%#/,,,,,,,,,,,,,,,(&&@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ -@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@&&&&&%(*,,,,,,,,,,,,,,,,,,,,,,,*(%&&&&@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \ No newline at end of file +abcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcdefgabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcdefgabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabc \ No newline at end of file diff --git a/encoded.txt b/encoded.txt index f567a8fc27a2f9b415e6ccc9b832ab4e12ff104d..6a576f39bf5be5eaa7694cc3c7f1e553912b9ec4 100644 GIT binary patch literal 119 zcmV--0Eqtv5Ml-~01zPo5HSW2Q3w!03J`G%5RnWJ@eUCY4G}RA5kV3WQ5X?%8WCX} z5s@7cu^ti;AQ7-+22f@OaUv1%DiV<_5-?*DQ7017D-z){6Hzo1aWfNr6cI!eaYhu8MHI0}1~6_B8*l&s literal 2723 zcmWO2d0bP60l;zdh*ZWk+jk1ocy`)dZbA)RKthv#slvfKZ*=8t~|vf4-j|m9hwg01&5w`Q@za@fN| zAP$15K#UJuO#<)?#HUAsMkH!NAq(=O1jTbu_i7Z=0)90@a?zj)ai^o6LK}1$Z-E2 zb?;_iOa{~ex-lAF#c($P;nxv=HN*c7az?`RH_^=POgEM3JdQZuqM7@clpdf}0(zuO zXeS$LMm@(^K?=+NF_lt}x*OS`m=X5C&Gtb{BHcxT_ zB+pJ~FA_?K^$C;(ad?k}VifrKyg(X?-vk0x2@y65*rfL5LcC3Uc8}P{8S7{#6{xnb{OtT^^>e<8`zc(wzbf^Pw_)s zNH76}hhcsaut1fEpGzW_WX`h+%UANyJLnlnvgH&!|Fal72oqdjAeIGOLy%-S@%B zF<3AQzMmqTR;X$uvgoaN;;(dJ23@%v30Etv>r`+MM~uWoigH>FOsC4*9;gDpu*)Qg zN`bsRS7_DA>|GMdQo>OJAqu5%E#9tH74S9It>AdR+%lJnUDP==TH#ChbX*dJk2*Su zaT7RhXSvE@q*51Cty*xTL`TvCePA~$0~7<^%e?uhZef$!E6_yWR@xaE!g7_1K`4`9 zn5G%36x=-K1K*cmucHo+L-g1J?B|2HrshnQ#+yYTvCk& zw92Jg$7#vghs^HV!nzO}`5J7OsjNq}(=MWaT4Vjr&^DuKT_Hmr&|5!HlUvp9gpAOX z{7#4bP*VJKiAH(OI8dEg`@-1M4z@RQ29yTuEuHWI=J*63|EF#`qIa!NBEQig{e((F zj3=8r5)JnM85bUd{V9f?6U6)jj{oyj;Q|wdO*h{()J9CM6Pb1MrfU|9zt32AMJzm! z+5L^^5vIFy%^Z~}#-s+vQ&VV~n4Z+bH?zi6s>3$e@-Sn}ZV`}x@`DUVP8NJWdoV7m zFiRQJLMUGYNB_A%&5IO`zAoSm#4T(Fp>_L;i%cSR7&PU|l%#1@&<+Wc)x*IyfD z&irBBxNSZ4ZD5j+b<_yzGjn zdg>dF$58%IR*`ihOxuu53JNACG>=QjnC_zf`^7}{hU|u7H)Yjzt*-vZ4Z%3a^^G|+ z`^L5tVC!+BQ&ZF#n~5#kD7;+o=+hLGy@}Ym+02FlpoumtrEM3ZEm^%M)^y*q-`#CM zXTcsBuHGho+y%9hkY6hdvmAn4yzt5fnpZzwp$$xMBdw|e#hSuP`K_S*`iIGjB^!H> z0?vH%(B*{eOPjBsE@{{oFLbG{?X%5%%&EJXbGIW0lnI>ML1*<=D4)|i#qr!ODVok2 z%Co{Pw#h>6!f1)*q)8LIv726qFDe~S>eCqVqZ8PIc%^IdoArhL%PkJXW>^ zIKt>?aYaL=Gid6!7Dop)jjk;%6lc%@2yH2?&*bz1Tbv?&I9%p@Pv2R_41gK)E7nPt zI*OG2pLf=l#S_@@S zt2?6Ho?X?Fmdf+X!FqOOY*(4!>!jh$N}p$2M{y390rQF*OD{pUhlScc!tzEfH>W9+a|5ia_L;d~j0=mxm z)=u}kJKQ5!>=$bF{z`8Wtp~=;aQ+#R@V=sxm_Z-g5e+H)k9M*B$sECxH8t$i=zZvYCHs~{_QrIuTMB9UYpZZaU-#| zKew!Ni-De7BfJco*C$gx)z7}hhQ3duHrH3Kso7wHo;=GpFXe~8ioWk_VaaaF#rml< zY>un&-`-PRP*eLvQYGhhrxF+9+&N^@>@Cq#pxD<~p}G!sJ%LTK^rFwfu_<`C(?CC4 z=WX7Jh3h5r=DFmGBM0Iob#mUyYa;${zX=t*WVf z$A!biQy({7fZX8`d^n?KTVrz2gAX&%4X#@4yK9TjHV6QTHc*Ft_sS{L-i9Hp+_qhs z&Af3-^HkUvZe|sGDv0HIPd5RvrH$B#ey*^gIQw<+qxuUco2#H|=RYcl`bLN6^{&5H zHO*8nS!i%dZBzP|$Geo$5=Yfz=*U-lln>$Ah#0!CFDOl!dr^OMS$x|a;LW4( Date: Fri, 17 Sep 2021 08:13:02 -0700 Subject: [PATCH 7/7] Update README.txt --- README.txt | 3 +++ 1 file changed, 3 insertions(+) diff --git a/README.txt b/README.txt index 3312d13..1579248 100644 --- a/README.txt +++ b/README.txt @@ -10,3 +10,6 @@ do the decoding algorithm. There's also a bunch of explanation about BitWriter, a writer class I made to write bits out, so you can look at the comments for that if you want. + + +UPDATE: Decoder works in conjunction with Encoder for all three test files. Modeled after GeekforGeeks algorithm. - Rhea