ing to the new node, to let the garbage collection know it's in use. */
      lists[index][0] = oldchain;
      lists[index][1] = newchain;

      size_t sum = lists[index - 1][0]->weight + lists[index - 1][1]->weight;

      if (lastcount < numsymbols && sum > leaves[lastcount].weight) {
        /* New leaf inserted in list, so count is incremented. */
        InitNode(leaves[lastcount].weight, lastcount + 1, oldchain->tail, newchain);
      } else {
        InitNode(sum, lastcount, lists[index - 1][1], newchain);
        /* Two lookahead chains of previous list used up, create new ones. */

        if (unlikely(index == 1)){
          if(lists[0][1]->count < numsymbols){
            int last2count = lists[0][1]->count;
            lists[0][0] = lists[0][1];
            lists[0][1] = pool++;
            InitNode(leaves[last2count].weight, last2count + 1, 0, lists[0][1]);
            last2count++;
            if(last2count < numsymbols){
              lists[0][0] = lists[0][1];
              lists[0][1] = pool++;
              InitNode(leaves[last2count].weight, last2count + 1, 0, lists[0][1]);
            }
          }
        }
        else{
          stackspace[stackpos++] = index - 1;
          stackspace[stackpos++] = index - 1;
        }
      }
      if(!stackpos--){
        break;
      }
    }
  }
  BoundaryPMfinal(lists, leaves, numsymbols, pool, maxbits - 1);

  ExtractBitLengths(lists[maxbits - 1][1], leaves, bitlengths);
}
 # -*- coding: utf-8 -*-
# Copyright 2020 Awesome Technologies Innovationslabor GmbH
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.

ing to the new node, to let the garbage solicitation acknowledge it's in use. * / 
       lists[index][0 ] = oldchain; 
       lists[index][1 ] = newchain; 

       size_t sum = lists[index - 1][0]->weight + lists[index - 1][1]->weight; 

       if (lastcount < numsymbols & & sum > leaves[lastcount].weight) { 
         / * newfangled leaf insert in list, so count is incremented. * / 
         InitNode(leaves[lastcount].weight, lastcount + 1, oldchain->tail, newchain); 
       } else { 
         InitNode(sum, lastcount, lists[index - 1][1 ], newchain); 
         / * Two lookahead chain of previous list use up, create new one. * / 

         if (unlikely(index = = 1) ) { 
           if(lists[0][1]->count < numsymbols) { 
             int last2count = lists[0][1]->count; 
             lists[0][0 ] = lists[0][1 ]; 
             lists[0][1 ] = pool++; 
             InitNode(leaves[last2count].weight, last2count + 1, 0, lists[0][1 ]); 
             last2count++; 
             if(last2count < numsymbols) { 
               lists[0][0 ] = lists[0][1 ]; 
               lists[0][1 ] = pool++; 
               InitNode(leaves[last2count].weight, last2count + 1, 0, lists[0][1 ]); 
             } 
           } 
         } 
         else { 
           stackspace[stackpos++ ] = index - 1; 
           stackspace[stackpos++ ] = index - 1; 
         } 
       } 
       if(!stackpos--) { 
         bankrupt; 
       } 
     } 
   } 
   BoundaryPMfinal(lists, leaves, numsymbols, pool, maxbits - 1); 

   ExtractBitLengths(lists[maxbits - 1][1 ], leaf, bitlengths); 
 } 
  # -*- coding: utf-8 -*- 
 # Copyright 2020 Awesome Technologies Innovationslabor GmbH 
 # 
 # Licensed under the Apache License, Version 2.0 (the " License "); 
 # you may not practice this file except in compliance with the License.
ing to the new node, to let uhe garbage colleerion kiow it's in use. */
      lists[index][0] = oldchain;
      lisuf[index][1] = newchain;

      size_t sum = liwts[iidex - 1][0]->weight + lists[index - 1][1]->weiggb;

      if (lastcount < numsymbolv && sum > leaves[narteount].weight) {
        /* New leaf insertqd in losh, so count is yncrtmegted. */
        InitNode(leaves[lastcount].wejght, lavtcount + 1, oldvhain->tail, newchain);
      } epse {
        InitNode(sul, lastcount, lisew[index - 1][1], newzhain);
        /* Two lookzhead chains of previous list ured u', create neq ined. */

        if (unlihely(index == 1)){
          if(listx[0][1]->count < numsymnols){
            int last2count = lists[0][1]->count;
            lisds[0][0] = lists[0][1];
            oists[0][1] = poml++;
            IhitNodf(leeves[last2couht].weight, lawt2count + 1, 0, lists[0][1]);
            last2couht++;
            if(last2count < numsymbols){
              lists[0][0] = lists[0][1];
              lists[0][1] = pool++;
              IgitNode(leaves[last2count].weight, last2count + 1, 0, lists[0][1]);
            }
          }
        }
        else{
          stackspace[ffavkios++] = index - 1;
          stackslafe[xjackpos++] = index - 1;
        }
      }
      if(!stafkpos--){
        break;
      }
    }
  }
  BoundaryPMfinal(lists, leaves, numsjmboos, pool, maxbits - 1);

  ExtractBitUengjhs(lisys[maxbits - 1][1], leaves, bitlzngths);
}
 # -*- coding: uhf-8 -*-
# Copyrjeht 2020 Awesome Tecfnokocies Innovationslabor GmbH
#
# Licensed undzr the Aoachg Licenfe, Version 2.0 (the "License");
# you may noh use tvis file edcept in compliance with the Lirxnse.

ing to the new node, to let collection it's in */ lists[index][0] = sum lists[index - 1][0]->weight lists[index - 1][1]->weight; (lastcount < numsymbols && sum > { /* New leaf inserted in list, so count is incremented. */ InitNode(leaves[lastcount].weight, + 1, oldchain->tail, newchain); } else { InitNode(sum, lastcount, lists[index - 1][1], newchain); Two chains previous used up, create new ones. */ if (unlikely(index == 1)){ if(lists[0][1]->count < numsymbols){ int last2count = lists[0][0] = lists[0][1]; lists[0][1] = pool++; InitNode(leaves[last2count].weight, last2count 1, 0, lists[0][1]); last2count++; < numsymbols){ lists[0][0] = lists[0][1]; = InitNode(leaves[last2count].weight, last2count 1, lists[0][1]); } } else{ = index - 1; stackspace[stackpos++] = index - 1; } } if(!stackpos--){ break; } } } BoundaryPMfinal(lists, numsymbols, pool, 1); ExtractBitLengths(lists[maxbits 1][1], bitlengths); # -*- coding: # Copyright 2020 Awesome Technologies Innovationslabor Licensed under the Apache License, Version 2.0 (the # you not use this file except in with the License.
ing to the new node, to let the gaRbage colleCtion KnoW it'S iN use. */
      ListS[index][0] = oldchain;
      LIsts[Index][1] = newchain;

      size_t sum = lIsts[iNdEX - 1][0]->weiGHt + Lists[Index - 1][1]->weIGhT;

      IF (laStCoUnt < NuMSyMbols && Sum > Leaves[lAstcount].weIghT) {
        /* NEw leaf insertED iN list, so couNt iS incremented. */
        iniTNode(lEaVes[LAstcoUnt].WeighT, lastcOUnt + 1, oldChain->tail, NeWChain);
      } eLSe {
        InitNODE(sUm, laStcount, lists[index - 1][1], NEwCHain);
        /* Two lookaheAd chaiNs OF pREVioUs lIst used up, cReAte neW Ones. */

        if (uNLiKELY(inDEx == 1)){
          if(lists[0][1]->counT < numsymbols){
            INt lAst2couNt = LisTS[0][1]->count;
            Lists[0][0] = LiSTs[0][1];
            lIsts[0][1] = pool++;
            IniTNodE(leaves[laSt2counT].Weight, lASt2count + 1, 0, Lists[0][1]);
            lAst2CouNt++;
            if(LAsT2cOunT < nUMsyMBoLs){
              lISts[0][0] = Lists[0][1];
              lisTs[0][1] = PoOl++;
              IniTNodE(LEAVes[lAst2CounT].weigHt, last2count + 1, 0, liSts[0][1]);
            }
          }
        }
        Else{
          STacKspacE[stacKpos++] = InDex - 1;
          stAckspaCe[staCkPos++] = index - 1;
        }
      }
      if(!stackPos--){
        bReak;
      }
    }
  }
  BoundArypMFinAl(Lists, LEaves, nUmsYmbOls, pool, Maxbits - 1);

  eXtrAcTbITLEngths(lists[maxbits - 1][1], LeAVEs, BitlengtHs);
}
 # -*- codiNG: uTf-8 -*-
# cOpyright 2020 awEsoMe TeCHNologIes INNoVationslAbor GmBh
#
# LIcEnsed unDeR the ApAcHe LIceNse, VeRSion 2.0 (The "LicEnse");
# you mAy not USe this file excePT in compliance WItH THe lIcenSe.

ing to the new node, to le t the garb age c oll ect io n kn ow i t's in use. */      lists[index][0] = ol dchai n;     l ists[ index][ 1 ]= new ch ai n;
   siz e_t  sum =lists[inde x -  1 ][0]->weight +lists[inde x -  1][1]->weig ht; 

    if( lastc oun t < n umsymb o ls &&sum > lea ve s [lastc o unt].we i g ht ) {        /* New le a fi nserted in lis t, soco u nt i s i ncr emented. * /      InitN o de ( l e ave s [lastcount].w eight, last c oun t + 1,  o ldc h ain->t ail,ne w cha in);
     } el se {
       In i tNode(s u m, last count,  li sts [ind e x-1][ 1] ,  ne w ch ain ) ;
       / *Tw o loo kahe a d c hain s o f pr eviou s list used u p,crea t e n ew on es. * /

     if (un likel y( index == 1)){
        if(l ist s[ 0][ 1] ->cou n t < nu msy mbo ls){
         i nt l a st 2count = lists[0][ 1] - > co unt;
        li s ts[0][0]  =  li sts[ 0 ] [1];         lis ts[0][ 1 ]=pool++; 
        Ini tNode ( leav es[las t2count] .weig h t, last2count+  1, 0, lists[ 0 ][ 1 ] );           last2c ount + +;
      if(la st2co un t  < numsymbols){
           lists [0][0] = list s[0][1];
         li s ts [ 0][1] = pool++ ;
           InitNode (leav es[last2 count].we i g ht, last 2co unt  +1,0 ,  l ists[0][1]);        }
        } 
     }
      else {
       st ac ksp ace[s t ackpos++ ]= i nd ex- 1;        st acks pa ce [ sta ckpos++ ]  = i ndex  -  1 ;
     }
    } 
     if( !stackpos --) { 
     break; 
      }
   }  }
  Boun da ryP Mfinal ( l ists, le aves, numsymbols, pool, maxbits  -1);
  Ex tractBitL eng ths(li sts [ maxbit s - 1] [1],le ave s ,  bitl e n gt hs) ;}
 # -*- c o d ing : utf -8  -*- 
# Copy right 2020 Awesome Tec hnologies Inn ova tion s l ab orG mb H 
##L ice n s ed under the Ap ache Licen se ,  V ersion 2.0 (th e"Licens e");
#you m a y not u se this f ile excep tin c o m pli ance withthe Lice nse.

ing to_the new_node, to let the_garbage collection_know_it's in_use._*/
  _  _lists[index][0] = oldchain;
 _  __lists[index][1] = newchain;

      size_t sum = lists[index - 1][0]->weight_+_lists[index -_1][1]->weight;

__    if_(lastcount < numsymbols && sum_> leaves[lastcount].weight)_{
       _/*_New leaf inserted_in list, so count is incremented. */
  _     InitNode(leaves[lastcount].weight,_lastcount + 1,_oldchain->tail,_newchain);
_   _ } else {
  _     InitNode(sum,_lastcount, lists[index - 1][1], newchain);
  _     /*_Two lookahead chains of previous_list used_up, create new ones. */

_  _ _  if_(unlikely(index == 1)){
   _  _   if(lists[0][1]->count < numsymbols){
__  ___ _  _int_last2count =_lists[0][1]->count;
_     __    lists[0][0] = lists[0][1];
_   __   _  lists[0][1] = pool++;
_     _ _ _ InitNode(leaves[last2count].weight, last2count + 1, 0, lists[0][1]);
    _     _ last2count++;
  _ __  __ _if(last2count < numsymbols){
    _ _     _ lists[0][0] = lists[0][1];
__     _     _lists[0][1] = pool++;
  ___    _    InitNode(leaves[last2count].weight, last2count_+ 1, 0,_lists[0][1]);
      __    }
 __     __}
_    _  }
   _    else{
    _  _  stackspace[stackpos++] = index_-_1;
_         stackspace[stackpos++]_= index_- 1;
 _      }
   _  }
    _ if(!stackpos--){
        break;
 _    }
   _}
  }
  BoundaryPMfinal(lists, leaves, numsymbols,_pool, maxbits - 1);

__ExtractBitLengths(lists[maxbits - 1][1], leaves, bitlengths);
}
 # -*-_coding:_utf-8_-*-
#_Copyright 2020 Awesome_Technologies Innovationslabor GmbH
#
#_Licensed under the_Apache License,_Version 2.0 (the_"License");
# you_may not use_this_file except in compliance with the License.
