

def 						lowerCamelCase__      ( __A    :int	,__A    :float	,__A    :float		):


       """simple docstring"""




       return round(float(moles / volume		) * nfactor		)







def 						lowerCamelCase__      ( __A    :float	,__A    :float	,__A    :float		):


       """simple docstring"""




       return round(float((moles * 0.0_821 * temperature) / (volume)		)		)







def 						lowerCamelCase__      ( __A    :float	,__A    :float	,__A    :float		):


       """simple docstring"""




       return round(float((moles * 0.0_821 * temperature) / (pressure)		)		)







def 						lowerCamelCase__      ( __A    :float	,__A    :float	,__A    :float		):


       """simple docstring"""




       return round(float((pressure * volume) / (0.0_821 * moles)		)		)


if __name__ == "__main__":
    import doctest

    doctest.testmod()




from __future__ import annotations

class     __snake_case    :
       """simple docstring"""







       def __init__(		self      , _UpperCamelCase      , _UpperCamelCase   )      ->							Tuple:






              """simple docstring"""


              __snake_case	,    __snake_case       	=							text, pattern
              __snake_case	,    __snake_case       	=							len(_UpperCamelCase   ), len(_UpperCamelCase   )


       def 			a		(		self      , _UpperCamelCase   )      ->							int:






              """simple docstring"""


              for i in range(self.patLen - 1      , -1      , -1   ):
                     if char == self.pattern[i]:
                            return i
              return -1


       def 			a		(		self      , _UpperCamelCase   )      ->							int:






              """simple docstring"""


              for i in range(self.patLen - 1      , -1      , -1   ):
                     if self.pattern[i] != self.text[current_pos + i]:
                            return current_pos + i
              return -1






       def 			a		(		self   )      ->							list[int]:






              """simple docstring"""


              __snake_case       	=							[]
              for i in range(self.textLen - self.patLen + 1   ):
                     __snake_case       	=							self.mismatch_in_text(_UpperCamelCase   )
                     if mismatch_index == -1:
                            positions.append(_UpperCamelCase   )
                     else:
                            __snake_case       	=							self.match_in_pattern(self.text[mismatch_index]   )
                            __snake_case       	=							(
                                mismatch_index - match_index
                            )  # shifting index lgtm [py/multiple-definition]
              return positions






UpperCamelCase__		 =     '''ABAABA'''
UpperCamelCase__		 =     '''AB'''
UpperCamelCase__		 =     BoyerMooreSearch(text, pattern)
UpperCamelCase__		 =     bms.bad_character_heuristic()

if len(positions) == 0:
    print('''No match found''')
else:
    print('''Pattern found in following positions: ''')
    print(positions)

