

from collections import OrderedDict
from typing import Mapping

from packaging import version

from ...configuration_utils import PretrainedConfig
from ...onnx import OnnxConfig
from ...utils import logging


_SCREAMING_SNAKE_CASE          = logging.get_logger(__name__)

_SCREAMING_SNAKE_CASE          = {
    '''apple/mobilevitv2-1.0''': '''https://huggingface.co/apple/mobilevitv2-1.0/resolve/main/config.json''',
}


class     lowerCamelCase_   ( _lowerCAmelCase):
 _lowerCAmelCase       		=  '''mobilevitv2'''




 def __init__( self     ,     _UpperCAmelCase=3     ,     _UpperCAmelCase=256     ,     _UpperCAmelCase=2     ,     _UpperCAmelCase=2.0     ,     _UpperCAmelCase="swish"     ,     _UpperCAmelCase=3     ,     _UpperCAmelCase=32     ,     _UpperCAmelCase=0.1     ,     _UpperCAmelCase=0.0_2     ,     _UpperCAmelCase=1E-5     ,     _UpperCAmelCase=512     ,     _UpperCAmelCase=[6, 12, 18]     ,     _UpperCAmelCase=0.1     ,     _UpperCAmelCase=255     ,     _UpperCAmelCase=[2, 4, 3]     ,     _UpperCAmelCase=[128, 192, 256]     ,     _UpperCAmelCase=1.0     ,     _UpperCAmelCase=2     ,     _UpperCAmelCase=0.0     ,     _UpperCAmelCase=0.0     ,     **_UpperCAmelCase     ,     ):
   super().__init__(**_UpperCAmelCase       )

   __UpperCAmelCase  :     str		=    num_channels
   __UpperCAmelCase  :     Optional[int]		=    image_size
   __UpperCAmelCase  :     str		=    patch_size
   __UpperCAmelCase  :     Any		=    expand_ratio
   __UpperCAmelCase  :     Dict		=    hidden_act
   __UpperCAmelCase  :     Optional[Any]		=    conv_kernel_size
   __UpperCAmelCase  :     Any		=    output_stride
   __UpperCAmelCase  :     Dict		=    initializer_range
   __UpperCAmelCase  :     Tuple		=    layer_norm_eps
   __UpperCAmelCase  :     Any		=    n_attn_blocks
   __UpperCAmelCase  :     str		=    base_attn_unit_dims
   __UpperCAmelCase  :     Tuple		=    width_multiplier
   __UpperCAmelCase  :     str		=    ffn_multiplier
   __UpperCAmelCase  :     List[str]		=    ffn_dropout
   __UpperCAmelCase  :     Optional[int]		=    attn_dropout
   __UpperCAmelCase  :     Optional[int]		=    classifier_dropout_prob

   # decode head attributes for semantic segmentation
   __UpperCAmelCase  :     List[str]		=    aspp_out_channels
   __UpperCAmelCase  :     int		=    atrous_rates
   __UpperCAmelCase  :     str		=    aspp_dropout_prob
   __UpperCAmelCase  :     Optional[Any]		=    semantic_loss_ignore_index



class     lowerCamelCase_   ( _lowerCAmelCase):
 _lowerCAmelCase       		=  version.parse('''1.11''')




 @property
 def 						a					( self       ):
   return OrderedDict([('pixel_values', {0: 'batch', 1: 'num_channels', 2: 'height', 3: 'width'})]       )




 @property
 def 						a					( self       ):
   if self.task == "image-classification":
     return OrderedDict([('logits', {0: 'batch'})]       )
   else:
     return OrderedDict([('last_hidden_state', {0: 'batch'}), ('pooler_output', {0: 'batch'})]       )




 @property
 def 						a					( self       ):
   return 1E-4








import math
from itertools import permutations





def    _snake_case		(snake_case_				:    int     )       ->		bool:

  if 1 < number < 4:
    # 2 and 3 are primes
    return True
  elif number < 2 or number % 2 == 0 or number % 3 == 0:
    # Negatives, 0, 1, all even numbers, all multiples of 3 are not primes
    return False

  # All primes number are in format of 6k +/- 1
  for i in range(5						,					int(math.sqrt(snake_case_     ) + 1     )						,					6     ):
    if number % i == 0 or number % (i + 2) == 0:
      return False
  return True





def    _snake_case		(snake_case_				:    int						,					snake_case_				:    list     )       ->		bool:
  __UpperCAmelCase, __UpperCAmelCase  :     Any		=    0, len(snake_case_     ) - 1
  while left <= right:
    __UpperCAmelCase  :     List[str]		=    (left + right) // 2
    if prime_list[middle] == target:
      return True
    elif prime_list[middle] < target:
      __UpperCAmelCase  :     Tuple		=    middle + 1
    else:
      __UpperCAmelCase  :     Tuple		=    middle - 1

  return False





def    _snake_case		()       ->		str:
  __UpperCAmelCase  :     List[Any]		=    [n for n in range(1001						,					1_0000						,					2     ) if is_prime(snake_case_     )]
  __UpperCAmelCase  :     Tuple		=    []

  for number in prime_list:
    __UpperCAmelCase  :     List[str]		=    []

    for prime_member in permutations(list(str(snake_case_     )     )     ):
      __UpperCAmelCase  :     Dict		=    int(''.join(snake_case_     )     )

      if prime % 2 == 0:
        continue

      if search(snake_case_						,					snake_case_     ):
        tmp_numbers.append(snake_case_     )

    tmp_numbers.sort()
    if len(snake_case_     ) >= 3:
      candidates.append(snake_case_     )

  __UpperCAmelCase  :     Optional[int]		=    []
  for candidate in candidates:
    __UpperCAmelCase  :     int		=    len(snake_case_     )
    __UpperCAmelCase  :     List[Any]		=    False

    for i in range(snake_case_     ):
      for j in range(i + 1						,					snake_case_     ):
        for k in range(j + 1						,					snake_case_     ):
          if (
              abs(candidate[i] - candidate[j]     )
              == abs(candidate[j] - candidate[k]     )
              and len({candidate[i], candidate[j], candidate[k]}     ) == 3
          ):
            passed.append(
                sorted([candidate[i], candidate[j], candidate[k]]     )     )
            __UpperCAmelCase  :     Any		=    True

          if found:
            break
        if found:
          break
      if found:
        break

  __UpperCAmelCase  :     Dict		=    set()
  for seq in passed:
    answer.add(''.join([str(snake_case_     ) for i in seq]     )     )

  return max(int(snake_case_     ) for x in answer     )


if __name__ == "__main__":
      print(solution())





