code: def control_code(input_string):
      
      assert len(input_string) == 15
  
      # building conversion tables for even and odd characters positions
      even_controlcode = {}
  
      for idx, char in enumerate(string.digits):
          even_controlcode[char] = idx
  
      for idx, char in enumerate(string.ascii_uppercase):
          even_controlcode[char] = idx
  
      values = [ 1, 0, 5, 7, 9, 13, 15, 17, 19, 21, 2, 4, 18, 20, 11, 3, 6, 8,
                 12, 14, 16, 10, 22, 25, 24, 23 ]
  
      odd_controlcode = {}
  
      for idx, char in enumerate(string.digits):
          odd_controlcode[char] = values[idx]
  
      for idx, char in enumerate(string.ascii_uppercase):
          odd_controlcode[char] = values[idx]
  
      # computing the code
      code = 0
      for idx, char in enumerate(input_string):
          if idx % 2 == 0:
              code += odd_controlcode[char]
          else:
              code += even_controlcode[char]
      
      return string.ascii_uppercase[code % 26]
docs: ``control_code(input_string) -> int``
  
      Computes the control code for the given input_string string. The expected
      input_string is the first 15 characters of a fiscal code.
  
      eg: control_code('RCCMNL83S18D969') -> 'H'