mirage:p5-huffman raj$ python3 D2.py huck_finn.txt 
 {'*', 'D', '3', 'P', '"', 'i', 'd', 'X', '?', 'b', 'v', 'z', 'U', 'a', ']', 'x', 'H', '\ufeff', 'O', 'W', 'Y', '-', 'q', 'C', 'B', 'Q', '5', '\xa0', 'm', 'n', 'o', '%', '2', '@', 'L', 'u', ')', 'f', 'M', 'c', 'k', 'I', ' ', 'S', 'h', 'E', '!', 'A', '[', 'K', "'", '6', '(', 'T', 's', '$', 'R', ',', 'e', 'p', '9', ':', 'l', '1', ';', '0', '4', 'g', '7', 'G', 'r', '\n', '.', '_', 'V', 'J', 'j', 'w', 'N', '/', 'F', '&', '#', 't', '8', 'y'} 594263
   {':', '\ufeff', '*', ' ', 'l', 'S', '0', '3', 'f', '7', '5', '\xa0', '[', 'n', 'c', '_', '%', 'V', '2', '6', '@', '/', '&', '#', 'u', '$', 'L', 'a', ']', ','} 236279
     {' '} 104593
     {':', '\ufeff', '*', 'l', ',', 'S', '0', '3', '7', '5', '\xa0', 'a', '[', 'n', '_', '%', 'V', '2', '6', '@', '/', '&', '#', 'u', '$', 'L', 'f', ']', 'c'} 131686
       {':', '\ufeff', '*', 'S', '0', '3', '7', '5', '\xa0', '[', 'n', '_', '%', 'V', '2', '6', '@', '/', '&', '#', 'u', '$', 'L', 'f', ']'} 61694
         {':', '\ufeff', '*', 'S', '0', '3', '7', '5', '\xa0', '[', '_', '%', 'V', '2', '6', '@', '/', '&', '#', 'u', '$', 'L', 'f', ']'} 28911
           {'u'} 14026
           {':', '\ufeff', '*', 'S', '0', '3', '7', '5', '\xa0', '[', '_', '%', 'V', '2', '6', '@', '/', '&', '#', '$', 'L', 'f', ']'} 14885
             {':', '\ufeff', '*', 'S', '0', '3', '7', '5', '\xa0', '[', '_', '%', 'V', '2', '6', '@', '/', '&', '#', '$', 'L', ']'} 7064
               {'\xa0'} 3529
               {':', '\ufeff', '*', 'S', '0', '3', '7', '5', '[', '_', '%', 'V', '2', '6', '@', '/', '&', '#', '$', 'L', ']'} 3535
                 {'_'} 1648
                 {':', '\ufeff', '*', 'S', '0', '3', '7', '5', '[', '%', 'V', '2', '6', '@', '/', '&', '#', '$', 'L', ']'} 1887
                   {':', '\ufeff', '*', '0', '3', '7', '5', '[', '%', 'V', '2', '6', '@', '/', '&', '#', '$', 'L', ']'} 921
                     {':'} 450
                     {'\ufeff', '*', '0', '3', '7', '5', '[', '%', 'V', '2', '6', '@', '/', '&', '#', '$', 'L', ']'} 471
                       {'\ufeff', '*', '%', 'V', '2', '0', '6', '3', '@', '/', '&', '7', '#', '$', '5', '[', ']'} 214
                         {'\ufeff', '%', '2', '0', '6', '@', '/', '&', '7', '#', '$', '[', ']'} 99
                           {'\ufeff', '%', '@', '/', '&', '7', '#', '$', '[', ']'} 47
                             {'\ufeff', '%', '@', '&', '7', '#', '$', '[', ']'} 23
                               {'7'} 11
                               {'\ufeff', '%', '@', '&', '#', '$', '[', ']'} 12
                                 {'@', '%', '&', '#'} 5
                                   {'@'} 2
                                   {'%', '#', '&'} 3
                                     {'%'} 1
                                     {'&', '#'} 2
                                       {'#'} 1
                                       {'&'} 1
                                 {'\ufeff', '[', ']', '$'} 7
                                   {'$'} 3
                                   {'\ufeff', '[', ']'} 4
                                     {'\ufeff', '['} 2
                                       {'\ufeff'} 1
                                       {'['} 1
                                     {']'} 2
                             {'/'} 24
                           {'0', '2', '6'} 52
                             {'2', '6'} 26
                               {'6'} 12
                               {'2'} 14
                             {'0'} 26
                         {'*', '3', 'V', '5'} 115
                           {'*', '3', '5'} 56
                             {'3', '5'} 28
                               {'5'} 14
                               {'3'} 14
                             {'*'} 28
                           {'V'} 59
                       {'L'} 257
                   {'S'} 966
             {'f'} 7821
         {'n'} 32783
       {'c', ',', 'l', 'a'} 69992
         {'c', ',', 'l'} 33795
           {'c', ','} 16406
             {','} 8199
             {'c'} 8207
           {'l'} 17389
         {'a'} 36197
   {'I', 'D', 'h', 'E', '!', 'A', 'P', 'K', '"', "'", 'i', '(', 'd', 'T', 'X', '?', 's', 'v', 'b', 'U', 'R', 'z', 'x', 'H', 'e', 'p', '9', '1', ';', 'O', 'W', 'Y', '-', 'q', '4', 'C', 'B', 'g', 'Q', 'm', 'o', 'G', 'r', '\n', '.', 'J', 'j', 'w', 'N', 'F', 't', ')', 'M', '8', 'k', 'y'} 357984
     {'I', 'D', '1', 'O', 'W', 'Y', '4', 'C', 'B', 'g', '!', 'Q', 'm', 'o', 'G', 'r', 'K', '.', 'M', 'J', "'", 'j', '(', 'N', 'X', '9', 'F', '?', 't', 'v', 'R', ')', 'U', '8', 'k', 'y'} 160335
       {'I', '1', 'O', 'W', 'Y', '4', 'C', 'B', '!', 'Q', 'o', 'G', 'r', 'K', 'J', 'X', '9', 'R', '8', 'y'} 76001
         {'o'} 36755
         {'I', '1', 'O', 'W', 'Y', '4', 'C', 'B', 'y', '!', 'Q', 'G', 'r', 'K', 'J', 'X', 'R', '8', '9'} 39246
           {'I', '1', 'O', 'W', 'Y', '4', 'C', 'B', 'y', '!', 'Q', 'G', 'K', 'J', 'X', 'R', '8', '9'} 18955
             {'I', '1', 'O', 'W', 'Y', '4', 'C', 'B', '!', 'Q', 'G', 'K', 'J', 'X', 'R', '8', '9'} 8851
               {'I'} 4340
               {'K', 'J', '1', 'O', 'W', 'Y', '4', 'C', 'X', 'B', '!', 'Q', 'R', '8', 'G', '9'} 4511
                 {'K', 'J', '1', 'O', '4', 'X', '!', 'Q', 'R', '8', 'G', '9'} 2169
                   {'O', '!', 'G'} 1058
                     {'!'} 522
                     {'O', 'G'} 536
                       {'G'} 260
                       {'O'} 276
                   {'K', 'J', '1', '4', 'X', 'Q', 'R', '8', '9'} 1111
                     {'J'} 548
                     {'K', '1', '4', 'X', 'Q', 'R', '8', '9'} 563
                       {'R'} 281
                       {'K', '4', 'X', '1', 'Q', '8', '9'} 282
                         {'K', '4', '1', 'Q', '8', '9'} 141
                           {'1'} 60
                           {'9', 'K', 'Q', '8', '4'} 81
                             {'8', 'Q', '4', '9'} 39
                               {'8', '9'} 19
                                 {'9'} 9
                                 {'8'} 10
                               {'Q', '4'} 20
                                 {'Q'} 10
                                 {'4'} 10
                             {'K'} 42
                         {'X'} 141
                 {'W', 'Y', 'B', 'C'} 2342
                   {'W'} 1122
                   {'Y', 'B', 'C'} 1220
                     {'Y', 'C'} 582
                       {'C'} 282
                       {'Y'} 300
                     {'B'} 638
             {'y'} 10104
           {'r'} 20291
       {'D', 'g', 'm', '.', "'", 'j', '(', 'N', 'F', '?', 't', 'v', ')', 'U', 'M', 'k'} 84334
         {'t'} 41359
         {'.', 'D', "'", 'j', '(', 'N', 'F', 'g', '?', 'v', ')', 'U', 'm', 'M', 'k'} 42975
           {'m', 'g'} 20794
             {'m'} 10141
             {'g'} 10653
           {'.', 'D', "'", 'j', '(', 'N', 'F', '?', 'v', ')', 'U', 'M', 'k'} 22181
             {'.', "'"} 10739
               {'.'} 5315
               {"'"} 5424
             {'D', 'j', '(', 'N', 'F', '?', 'v', ')', 'U', 'M', 'k'} 11442
               {'D', 'j', '(', 'N', 'F', '?', 'v', ')', 'U', 'M'} 5721
                 {'D', 'j', '(', 'N', 'F', '?', ')', 'U', 'M'} 2787
                   {'M', 'D', 'j'} 1346
                     {'M', 'D'} 653
                       {'D'} 305
                       {'M'} 348
                     {'j'} 693
                   {'F', '?', ')', 'U', '(', 'N'} 1441
                     {'F', ')', 'U', '(', 'N'} 705
                       {'N'} 349
                       {'F', '(', ')', 'U'} 356
                         {'F'} 174
                         {'U', '(', ')'} 182
                           {'(', ')'} 86
                             {'('} 43
                             {')'} 43
                           {'U'} 96
                     {'?'} 736
                 {'v'} 2934
               {'k'} 5721
     {';', '-', 'q', 'h', 'E', 'A', 'P', 'x', '\n', '"', 'w', 'i', 'd', 'T', 's', 'b', 'z', 'H', 'e', 'p'} 197649
       {';', 'w', 'i', 'd', 'q', 'T', 'E', 's', 'z', 'A', 'P', 'H', 'x', 'p'} 96668
         {';', 'w', 'd', 'q', 'T', 'E', 'z', 'A', 'P', 'H', 'x', 'p'} 47793
           {'d'} 23612
           {';', 'w', 'q', 'T', 'E', 'z', 'A', 'P', 'H', 'x', 'p'} 24181
             {';', 'q', 'T', 'E', 'z', 'A', 'P', 'H', 'x', 'p'} 11876
               {'p'} 5722
               {';', 'q', 'T', 'E', 'z', 'A', 'H', 'P', 'x'} 6154
                 {'E', 'z', 'A', 'q', 'T'} 2987
                   {'T'} 1481
                   {'E', 'q', 'A', 'z'} 1506
                     {'E', 'q', 'z'} 741
                       {'E'} 367
                       {'q', 'z'} 374
                         {'q'} 186
                         {'z'} 188
                     {'A'} 765
                 {'P', 'x', 'H', ';'} 3167
                   {';'} 1562
                   {'P', 'x', 'H'} 1605
                     {'P', 'x'} 784
                       {'x'} 387
                       {'P'} 397
                     {'H'} 821
             {'w'} 12305
         {'i', 's'} 48875
           {'i'} 24314
           {'s'} 24561
       {'\n', '"', 'b', '-', 'e', 'h'} 100981
         {'e'} 49260
         {'\n', '"', 'b', '-', 'h'} 51721
           {'h'} 25855
           {'\n', '"', '-', 'b'} 25866
             {'\n'} 12361
             {'"', '-', 'b'} 13505
               {'"', '-'} 6627
                 {'"'} 3283
                 {'-'} 3344
               {'b'} 6878
Plain Text: Python is a fun language, but with some quirks!
Huffman(Python is a fun language, but with some quirks!) = 11001011101100101101011110100001010011010110110001110001001101000010100011010111010110110101000011110110111100110000011111110100010100011001111010101011110001101110001011001110001100101010100100011010100111011111110111001001000
Decode(11001011101100101101011110100001010011010110110001110001001101000010100011010111010110110101000011110110111100110000011111110100010100011001111010101011110001101110001011001110001100101010100100011010100111011111110111001001000) = Python is a fun language, but with some quirks!
Plain Text: exit;
Huffman(exit;) = 111011001011100110101010110010110
Decode(111011001011100110101010110010110) = exit;
Plain Text: q;
Huffman(q;) = 110010101010110010110
Decode(110010101010110010110) = q;
Plain Text: q
mirage:p5-huffman raj$