


'''simple docstring'''




import os
import sys
from contextlib import contextmanager


# Windows only
if os.name == "nt":
       import ctypes
       import msvcrt  # noqa

       class 		UpperCAmelCase_      (  ctypes.Structure		):
            # _fields is a specific attr expected by ctypes
            lowerCamelCase				:	List[Any]		=     [('''size''', ctypes.c_int), ('''visible''', ctypes.c_byte)]





def 	a_					( ):
   if os.name == "nt":
      lowerCAmelCase     =			CursorInfo()
      lowerCAmelCase     =			ctypes.windll.kernelaa.GetStdHandle(-11				)
      ctypes.windll.kernelaa.GetConsoleCursorInfo(lowerCamelCase	, ctypes.byref(lowerCamelCase				)				)
      lowerCAmelCase     =			False
      ctypes.windll.kernelaa.SetConsoleCursorInfo(lowerCamelCase	, ctypes.byref(lowerCamelCase				)				)
   elif os.name == "posix":
      sys.stdout.write('\033[?25l'				)
      sys.stdout.flush()





def 	a_					( ):
   if os.name == "nt":
      lowerCAmelCase     =			CursorInfo()
      lowerCAmelCase     =			ctypes.windll.kernelaa.GetStdHandle(-11				)
      ctypes.windll.kernelaa.GetConsoleCursorInfo(lowerCamelCase	, ctypes.byref(lowerCamelCase				)				)
      lowerCAmelCase     =			True
      ctypes.windll.kernelaa.SetConsoleCursorInfo(lowerCamelCase	, ctypes.byref(lowerCamelCase				)				)
   elif os.name == "posix":
      sys.stdout.write('\033[?25h'				)
      sys.stdout.flush()





@contextmanager
def 	a_					( ):
   try:
      hide_cursor()
      yield
   finally:
      show_cursor()









'''simple docstring'''




class 		UpperCAmelCase_      :





     def __init__( self       :      List[str]    ,      UpperCAmelCase__       :      list[int]    )				->  None:
        lowerCAmelCase     =			len(UpperCAmelCase__    )
        lowerCAmelCase     =			[0] * len_array

        if len_array > 0:
           lowerCAmelCase     =			array[0]

        for i in range(1    ,      UpperCAmelCase__    ):
           lowerCAmelCase     =			self.prefix_sum[i - 1] + array[i]





     def 							__UpperCAmelCase      ( self       :      Optional[Any]    ,      UpperCAmelCase__       :      int    ,      UpperCAmelCase__       :      int    )				->  int:
        if start == 0:
           return self.prefix_sum[end]

        return self.prefix_sum[end] - self.prefix_sum[start - 1]





     def 							__UpperCAmelCase      ( self       :      int    ,      UpperCAmelCase__       :      int    )				->  bool:
        lowerCAmelCase     =			{0}
        for sum_item in self.prefix_sum:
           if sum_item - target_sum in sums:
              return True

           sums.add(UpperCAmelCase__    )

        return False


if __name__ == "__main__":
       import doctest

       doctest.testmod()





