"""simple docstring"""






def 						a_		(      lowerCamelCase      ,    lowerCamelCase      ,    lowerCamelCase      ,    lowerCamelCase ):






				if graph[path[curr_ind - 1]][next_ver] == 0:
								return False

				# 2. Validate that next vertex is not already in path
				return not any(vertex == next_ver for vertex in path )



def 						a_		(      lowerCamelCase      ,    lowerCamelCase      ,    lowerCamelCase ):






				if curr_ind == len(a__ ):
								# return whether path exists between current and starting vertices
								return graph[path[curr_ind - 1]][path[0]] == 1

				# Recursive Step
				for next_ver in range(0      ,    len(a__ ) ):
								if valid_connection(a__      ,    a__      ,    a__      ,    a__ ):
												# Insert current vertex  into path as next transition
												UpperCAmelCase__    =							next_ver
												# Validate created path
												if util_hamilton_cycle(a__      ,    a__      ,    curr_ind + 1 ):
																return True
												# Backtrack
												UpperCAmelCase__    =							-1
				return False







def 						a_		(      lowerCamelCase      ,    lowerCamelCase = 0 ):
				UpperCAmelCase__    =							[-1] * (len(a__ ) + 1)
				# initialize start and end of path with starting index
				UpperCAmelCase__    =							UpperCAmelCase__    =							start_index
				# evaluate and if we find answer return path either return empty array
				return path if util_hamilton_cycle(a__      ,    a__      ,    1 ) else []


"""simple docstring"""






from ...configuration_utils import PretrainedConfig
from ...utils import logging


lowerCAmelCase__						:						Any		  =			logging.get_logger(__name__)

lowerCAmelCase__						:						str		  =			{'ctrl': 'https://huggingface.co/ctrl/resolve/main/config.json'}
class        snake_case (				__UpperCAmelCase       ):




					"""simple docstring"""

					snake_case__       					=				"ctrl"
					snake_case__       					=				["past_key_values"]
					snake_case__       					=				{
					    "max_position_embeddings": "n_positions",
					    "hidden_size": "n_embd",
					    "num_attention_heads": "n_head",
					    "num_hidden_layers": "n_layer",
					}







					def __init__(       self     :			Any					,lowerCamelCase__     :			str=246_534					,lowerCamelCase__     :			List[str]=256					,lowerCamelCase__     :			Optional[int]=1_280					,lowerCamelCase__     :			Any=8_192					,lowerCamelCase__     :			int=48					,lowerCamelCase__     :			Optional[Any]=16					,lowerCamelCase__     :			Union[str, Any]=0.1					,lowerCamelCase__     :			Dict=0.1					,lowerCamelCase__     :			List[str]=1e-6					,lowerCamelCase__     :			List[str]=0.0_2					,lowerCamelCase__     :			Tuple=True					,**lowerCamelCase__     :			Optional[Any]					,):
									UpperCAmelCase__    =							vocab_size
									UpperCAmelCase__    =							n_positions
									UpperCAmelCase__    =							n_embd
									UpperCAmelCase__    =							n_layer
									UpperCAmelCase__    =							n_head
									UpperCAmelCase__    =							dff
									UpperCAmelCase__    =							resid_pdrop
									UpperCAmelCase__    =							embd_pdrop
									UpperCAmelCase__    =							layer_norm_epsilon
									UpperCAmelCase__    =							initializer_range

									UpperCAmelCase__    =							use_cache

									super().__init__(**lowerCamelCase__    )



