



"""simple docstring"""
class    SCREAMING_SNAKE_CASE__						:

   def __init__(     self   ,  _SCREAMING_SNAKE_CASE		)						->   Any:





    '''simple docstring'''




    UpperCAmelCase			:      List[Any]			=			n
    UpperCAmelCase			:      Any			=			[None] * self.n
    UpperCAmelCase			:      Dict			=			0  # index of the first element
    UpperCAmelCase			:      Optional[int]			=			0
    UpperCAmelCase			:      Any			=			0

   def __len__(     self		)						->   int:





    '''simple docstring'''




    return self.size

   def 			SCREAMING_SNAKE_CASE  (     self		)						->   bool:





    '''simple docstring'''




    return self.size == 0

   def 			SCREAMING_SNAKE_CASE  (     self		)						->   List[Any]:





    '''simple docstring'''




    return False if self.is_empty() else self.array[self.front]

   def 			SCREAMING_SNAKE_CASE  (     self   ,  _SCREAMING_SNAKE_CASE		)						->   Dict:





    '''simple docstring'''




    if self.size >= self.n:
     raise Exception("""QUEUE IS FULL"""		)

    UpperCAmelCase			:      Optional[int]			=			data
    UpperCAmelCase			:      Any			=			(self.rear + 1) % self.n
    self.size += 1
    return self




   def 			SCREAMING_SNAKE_CASE  (     self		)						->   Optional[int]:





    '''simple docstring'''




    if self.size == 0:
     raise Exception("""UNDERFLOW"""		)

    UpperCAmelCase			:      Tuple			=			self.array[self.front]
    UpperCAmelCase			:      Union[str, Any]			=			None
    UpperCAmelCase			:      List[Any]			=			(self.front + 1) % self.n
    self.size -= 1
    return temp





"""simple docstring"""
def    _snake_case		(		UpperCamelCase		:	int    ,	UpperCamelCase		:	int		):
 return 1 if input_a == input_a else 0

def    _snake_case		(		):
 assert xnor_gate(0    ,	0		) == 1
 assert xnor_gate(0    ,	1		) == 0
 assert xnor_gate(1    ,	0		) == 0
 assert xnor_gate(1    ,	1		) == 1


if __name__ == "__main__":
      print(xnor_gate(0, 0))
      print(xnor_gate(0, 1))
      print(xnor_gate(1, 0))
      print(xnor_gate(1, 1))
