code: def H(g,i):
      
      g1 = g&(2**i)
      if i:
          n = Hwidth(i)
          i=i-1
          Hn = H(g,i)
          if g1:
              return Hn<<(2*n)           | Hn<<n     | Hn
          else:
              return int('1'*n,2)<<(2*n) | L(g,i)<<n | Hn
      else:
          if g1:
              return int('111',2)
          else:
              return int('101',2)
docs: recursively constructs H line for g; i = len(g)-1