






"""simple docstring"""
import functools
import operator

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


snake_case : Tuple     		=		logging.get_logger(__name__)

snake_case : Dict     		=		{
    """microsoft/wavlm-base""": """https://huggingface.co/microsoft/wavlm-base/resolve/main/config.json""",
    # See all WavLM models at https://huggingface.co/models?filter=wavlm
}



class        UpperCamelCase__ (				a_):







    """simple docstring"""
    __UpperCAmelCase           = """wavlm"""







    def __init__(		self :	Optional[int]				,    UpperCamelCase_ :	List[Any]=3_2				,    UpperCamelCase_ :	Dict=7_6_8				,    UpperCamelCase_ :	List[Any]=1_2				,    UpperCamelCase_ :	Any=1_2				,    UpperCamelCase_ :	Dict=3_0_7_2				,    UpperCamelCase_ :	int="gelu"				,    UpperCamelCase_ :	Dict=0.1				,    UpperCamelCase_ :	List[str]=0.1				,    UpperCamelCase_ :	Union[str, Any]=0.1				,    UpperCamelCase_ :	Union[str, Any]=0.0				,    UpperCamelCase_ :	Union[str, Any]=0.1				,    UpperCamelCase_ :	str=0.1				,    UpperCamelCase_ :	List[str]=0.02				,    UpperCamelCase_ :	Union[str, Any]=1e-5				,    UpperCamelCase_ :	Union[str, Any]="group"				,    UpperCamelCase_ :	Union[str, Any]="gelu"				,    UpperCamelCase_ :	str=(5_1_2, 5_1_2, 5_1_2, 5_1_2, 5_1_2, 5_1_2, 5_1_2)				,    UpperCamelCase_ :	Optional[int]=(5, 2, 2, 2, 2, 2, 2)				,    UpperCamelCase_ :	Dict=(1_0, 3, 3, 3, 3, 2, 2)				,    UpperCamelCase_ :	Optional[int]=False				,    UpperCamelCase_ :	int=1_2_8				,    UpperCamelCase_ :	Dict=1_6				,    UpperCamelCase_ :	Optional[Any]=3_2_0				,    UpperCamelCase_ :	Any=8_0_0				,    UpperCamelCase_ :	List[Any]=False				,    UpperCamelCase_ :	Optional[int]=True				,    UpperCamelCase_ :	Any=0.05				,    UpperCamelCase_ :	Optional[int]=1_0				,    UpperCamelCase_ :	Optional[Any]=2				,    UpperCamelCase_ :	Dict=0.0				,    UpperCamelCase_ :	Tuple=1_0				,    UpperCamelCase_ :	Dict=3_2_0				,    UpperCamelCase_ :	str=2				,    UpperCamelCase_ :	int=0.1				,    UpperCamelCase_ :	Tuple=1_0_0				,    UpperCamelCase_ :	int=2_5_6				,    UpperCamelCase_ :	Tuple=2_5_6				,    UpperCamelCase_ :	Tuple=0.1				,    UpperCamelCase_ :	str="mean"				,    UpperCamelCase_ :	Any=False				,    UpperCamelCase_ :	Dict=False				,    UpperCamelCase_ :	Optional[int]=2_5_6				,    UpperCamelCase_ :	Optional[Any]=(5_1_2, 5_1_2, 5_1_2, 5_1_2, 1_5_0_0)				,    UpperCamelCase_ :	Any=(5, 3, 3, 1, 1)				,    UpperCamelCase_ :	List[Any]=(1, 2, 3, 1, 1)				,    UpperCamelCase_ :	Dict=5_1_2				,    UpperCamelCase_ :	Tuple=8_0				,    UpperCamelCase_ :	List[str]=0				,    UpperCamelCase_ :	Dict=1				,    UpperCamelCase_ :	str=2				,    UpperCamelCase_ :	str=False				,    UpperCamelCase_ :	str=3				,    UpperCamelCase_ :	Any=2				,    UpperCamelCase_ :	str=3				,    UpperCamelCase_ :	List[str]=None				,    **UpperCamelCase_ :	int				,    ):





           '''simple docstring'''

           super().__init__(**UpperCamelCase_				,    pad_token_id=UpperCamelCase_				,    bos_token_id=UpperCamelCase_				,    eos_token_id=UpperCamelCase_ )
           __magic_name__      				=    hidden_size
           __magic_name__      				=    feat_extract_norm
           __magic_name__      				=    feat_extract_activation
           __magic_name__      				=    list(UpperCamelCase_ )
           __magic_name__      				=    list(UpperCamelCase_ )
           __magic_name__      				=    list(UpperCamelCase_ )
           __magic_name__      				=    conv_bias
           __magic_name__      				=    num_buckets
           __magic_name__      				=    max_bucket_distance
           __magic_name__      				=    num_conv_pos_embeddings
           __magic_name__      				=    num_conv_pos_embedding_groups
           __magic_name__      				=    len(self.conv_dim )
           __magic_name__      				=    num_hidden_layers
           __magic_name__      				=    intermediate_size
           __magic_name__      				=    hidden_act
           __magic_name__      				=    num_attention_heads
           __magic_name__      				=    hidden_dropout
           __magic_name__      				=    attention_dropout
           __magic_name__      				=    activation_dropout
           __magic_name__      				=    feat_proj_dropout
           __magic_name__      				=    final_dropout
           __magic_name__      				=    layerdrop
           __magic_name__      				=    layer_norm_eps
           __magic_name__      				=    initializer_range
           __magic_name__      				=    num_ctc_classes
           __magic_name__      				=    vocab_size
           __magic_name__      				=    do_stable_layer_norm
           __magic_name__      				=    use_weighted_layer_sum
           __magic_name__      				=    classifier_proj_size

           if (
               (len(self.conv_stride ) != self.num_feat_extract_layers)
               or (len(self.conv_kernel ) != self.num_feat_extract_layers)
               or (len(self.conv_dim ) != self.num_feat_extract_layers)
           ):
                  raise ValueError(
                      'Configuration for convolutional layers is incorrect. It is required that `len(config.conv_dim)` =='
                      ' `len(config.conv_stride)` == `len(config.conv_kernel)`, but is `len(config.conv_dim) ='
                      f""" {len(self.conv_dim )}`, `len(config.conv_stride) = {len(self.conv_stride )}`,"""
                      f""" `len(config.conv_kernel) = {len(self.conv_kernel )}`.""" )

           # fine-tuning config parameters for SpecAugment: https://arxiv.org/abs/1904.08779
           __magic_name__      				=    apply_spec_augment
           __magic_name__      				=    mask_time_prob
           __magic_name__      				=    mask_time_length
           __magic_name__      				=    mask_time_min_masks
           __magic_name__      				=    mask_feature_prob
           __magic_name__      				=    mask_feature_length

           # parameters for pretraining with codevector quantized representations
           __magic_name__      				=    num_codevectors_per_group
           __magic_name__      				=    num_codevector_groups
           __magic_name__      				=    contrastive_logits_temperature
           __magic_name__      				=    num_negatives
           __magic_name__      				=    codevector_dim
           __magic_name__      				=    proj_codevector_dim
           __magic_name__      				=    diversity_loss_weight

           # ctc loss
           __magic_name__      				=    ctc_loss_reduction
           __magic_name__      				=    ctc_zero_infinity

           # adapter
           __magic_name__      				=    add_adapter
           __magic_name__      				=    adapter_kernel_size
           __magic_name__      				=    adapter_stride
           __magic_name__      				=    num_adapter_layers
           __magic_name__      				=    output_hidden_size or hidden_size

           # SequenceClassification-specific parameter. Feel free to ignore for other classes.
           __magic_name__      				=    classifier_proj_size

           # XVector-specific parameters. Feel free to ignore for other classes.
           __magic_name__      				=    list(UpperCamelCase_ )
           __magic_name__      				=    list(UpperCamelCase_ )
           __magic_name__      				=    list(UpperCamelCase_ )
           __magic_name__      				=    xvector_output_dim







    @property
    def 				a__			(		self :	List[str] ):





           '''simple docstring'''

           return functools.reduce(operator.mul				,    self.conv_stride				,    1 )







"""simple docstring"""
def 							A						(				__snake_case: int  )    ->		int:

       """simple docstring"""





       if divisor % 5 == 0 or divisor % 2 == 0:
              return 0
       __magic_name__      				=    1
       __magic_name__      				=    1
       while repunit:
              __magic_name__      				=    (1_0 * repunit + 1) % divisor
              repunit_index += 1
       return repunit_index


def 							A						(				__snake_case: int = 1_0_0_0_0_0_0  )    ->		int:

       """simple docstring"""





       __magic_name__      				=    limit - 1
       if divisor % 2 == 0:
              divisor += 1
       while least_divisible_repunit(__snake_case  ) <= limit:
              divisor += 2
       return divisor


if __name__ == "__main__":
 print(f"""{solution() = }""")