code: def draw(self):
          
          str_wires = [["-"]*7 * self.depth]
          str_wires[0][0] = "0"
          str_wires[0][1] = " o"
          str_spaces = []
  
          for i in range(1, self.dimension):
              str_wires.append(["-"]*7 * self.depth)
              str_spaces.append([" "]*7 * self.depth)
              str_wires[i][0] = str(i)
              str_wires[i][1] = " o"
          
          for index, level in enumerate(self):
              for wire1, wire2 in level:
                  str_wires[wire1][(index+1)*6] = "x"
                  str_wires[wire2][(index+1)*6] = "x"
                  for i in range(wire1, wire2):
                      str_spaces[i][(index+1)*6+1] = "|"
                  for i in range(wire1+1, wire2):
                      str_wires[i][(index+1)*6] = "|"
          
          network_draw = "".join(str_wires[0])
          for line, space in zip(str_wires[1:], str_spaces):
              network_draw += "\n"
              network_draw += "".join(space)
              network_draw += "\n"
              network_draw += "".join(line)
          return network_draw
docs: Return an ASCII representation of the network.