


'''simple docstring'''






from typing import Dict, List, Optional, Union

import numpy as np

from ...image_processing_utils import BaseImageProcessor, BatchFeature, get_size_dict
from ...image_transforms import (
    center_crop,
    get_resize_output_image_size,
    normalize,
    rescale,
    resize,
    to_channel_dimension_format,
)
from ...image_utils import (
    IMAGENET_DEFAULT_MEAN,
    IMAGENET_DEFAULT_STD,
    ChannelDimension,
    ImageInput,
    PILImageResampling,
    make_list_of_images,
    to_numpy_array,
    valid_images,
)
from ...utils import TensorType, is_vision_available, logging


if is_vision_available():
 import PIL


a_					:    str          =    logging.get_logger(__name__)




class 			a     (     _SCREAMING_SNAKE_CASE       ):
 _lowerCAmelCase 					=	["""pixel_values"""]
 def __init__( self      ,				__magic_name__ = True      ,				__magic_name__ = None      ,				__magic_name__ = 0.9      ,				__magic_name__ = PILImageResampling.BICUBIC      ,				__magic_name__ = True      ,				__magic_name__ = None      ,				__magic_name__ = 1 / 2_55      ,				__magic_name__ = True      ,				__magic_name__ = True      ,				__magic_name__ = None      ,				__magic_name__ = None      ,				**__magic_name__      ,				)					->							None:
      super().__init__(**__magic_name__						)
      _a			      =							size if size is not None else {'shortest_edge': 2_24}
      _a			      =							get_size_dict(__magic_name__      ,				default_to_square=__magic_name__						)
      _a			      =							crop_size if crop_size is not None else {'height': 2_24, 'width': 2_24}
      _a			      =							get_size_dict(__magic_name__      ,				param_name='crop_size'						)

      _a			      =							do_resize
      _a			      =							size
      _a			      =							crop_pct
      _a			      =							resample
      _a			      =							do_center_crop
      _a			      =							crop_size
      _a			      =							do_rescale
      _a			      =							rescale_factor
      _a			      =							do_normalize
      _a			      =							image_mean if image_mean is not None else IMAGENET_DEFAULT_MEAN
      _a			      =							image_std if image_std is not None else IMAGENET_DEFAULT_STD
 def 							__UpperCAmelCase		( self      ,				__magic_name__      ,				__magic_name__      ,				__magic_name__ = None      ,				__magic_name__ = PILImageResampling.BICUBIC      ,				__magic_name__ = None      ,				**__magic_name__      ,				)					->							np.ndarray:
      _a			      =							get_size_dict(__magic_name__      ,				default_to_square=__magic_name__						)
      if "shortest_edge" not in size and ("height" not in size or "width" not in size):
           raise ValueError(f'size must contain \'height\' and \'width\' or \'shortest_edge\' as keys. Got {size.keys()}'						)
      if crop_pct is not None:
           if "shortest_edge" in size:
                _a			      =							int(size['shortest_edge'] / crop_pct						)
           elif "height" in size and "width" in size:
                if size["height"] == size["width"]:
                     _a			      =							int(size['height'] / crop_pct						)
                else:
                     _a			      =							(int(size['height'] / crop_pct						), int(size['width'] / crop_pct						))
           else:
                raise ValueError('Invalid size for resize: {}'.format(__magic_name__						)						)

           _a			      =							get_resize_output_image_size(__magic_name__      ,				size=__magic_name__      ,				default_to_square=__magic_name__						)
      else:
           if "shortest_edge" in size:
                _a			      =							get_resize_output_image_size(__magic_name__      ,				size=size['shortest_edge']      ,				default_to_square=__magic_name__						)
           elif "height" in size and "width" in size:
                _a			      =							(size['height'], size['width'])
           else:
                raise ValueError('Invalid size for resize: {}'.format(__magic_name__						)						)

      return resize(__magic_name__      ,				size=__magic_name__      ,				resample=__magic_name__      ,				data_format=__magic_name__      ,				**__magic_name__						)
 def 							__UpperCAmelCase		( self      ,				__magic_name__      ,				__magic_name__      ,				__magic_name__ = None      ,				**__magic_name__      ,				)					->							np.ndarray:
      _a			      =							get_size_dict(__magic_name__						)
      if "height" not in size or "width" not in size:
           raise ValueError(f'size must contain \'height\' and \'width\' as keys. Got {size.keys()}'						)
      return center_crop(__magic_name__      ,				size=(size['height'], size['width'])      ,				data_format=__magic_name__      ,				**__magic_name__						)
 def 							__UpperCAmelCase		( self      ,				__magic_name__      ,				__magic_name__      ,				__magic_name__ = None      ,				**__magic_name__      ,				)					->							int:
      return rescale(__magic_name__      ,				scale=__magic_name__      ,				data_format=__magic_name__      ,				**__magic_name__						)
 def 							__UpperCAmelCase		( self      ,				__magic_name__      ,				__magic_name__      ,				__magic_name__      ,				__magic_name__ = None      ,				**__magic_name__      ,				)					->							np.ndarray:
      return normalize(__magic_name__      ,				mean=__magic_name__      ,				std=__magic_name__      ,				data_format=__magic_name__      ,				**__magic_name__						)




 def 							__UpperCAmelCase		( self      ,				__magic_name__      ,				__magic_name__ = None      ,				__magic_name__ = None      ,				__magic_name__ = None      ,				__magic_name__ = None      ,				__magic_name__ = None      ,				__magic_name__ = None      ,				__magic_name__ = None      ,				__magic_name__ = None      ,				__magic_name__ = None      ,				__magic_name__ = None      ,				__magic_name__ = None      ,				__magic_name__ = None      ,				__magic_name__ = ChannelDimension.FIRST      ,				**__magic_name__      ,				)					->							PIL.Image.Image:
      _a			      =							do_resize if do_resize is not None else self.do_resize
      _a			      =							crop_pct if crop_pct is not None else self.crop_pct
      _a			      =							resample if resample is not None else self.resample
      _a			      =							do_center_crop if do_center_crop is not None else self.do_center_crop
      _a			      =							do_rescale if do_rescale is not None else self.do_rescale
      _a			      =							rescale_factor if rescale_factor is not None else self.rescale_factor
      _a			      =							do_normalize if do_normalize is not None else self.do_normalize
      _a			      =							image_mean if image_mean is not None else self.image_mean
      _a			      =							image_std if image_std is not None else self.image_std

      _a			      =							size if size is not None else self.size
      _a			      =							get_size_dict(__magic_name__      ,				default_to_square=__magic_name__						)
      _a			      =							crop_size if crop_size is not None else self.crop_size
      _a			      =							get_size_dict(__magic_name__      ,				param_name='crop_size'						)

      _a			      =							make_list_of_images(__magic_name__						)

      if not valid_images(__magic_name__						):
           raise ValueError(
               'Invalid image type. Must be of type PIL.Image.Image, numpy.ndarray, '
               'torch.Tensor, tf.Tensor or jax.ndarray.'						)

      if do_resize and size is None or resample is None:
           raise ValueError('Size and resample must be specified if do_resize is True.'						)

      if do_center_crop and crop_pct is None:
           raise ValueError('Crop_pct must be specified if do_center_crop is True.'						)

      if do_rescale and rescale_factor is None:
           raise ValueError('Rescale factor must be specified if do_rescale is True.'						)

      if do_normalize and (image_mean is None or image_std is None):
           raise ValueError('Image mean and std must be specified if do_normalize is True.'						)

      # All transformations expect numpy arrays.
      _a			      =							[to_numpy_array(__magic_name__						) for image in images]

      if do_resize:
           _a			      =							[self.resize(image=__magic_name__      ,				size=__magic_name__      ,				crop_pct=__magic_name__      ,				resample=__magic_name__						) for image in images]

      if do_center_crop:
           _a			      =							[self.center_crop(image=__magic_name__      ,				size=__magic_name__						) for image in images]

      if do_rescale:
           _a			      =							[self.rescale(image=__magic_name__      ,				scale=__magic_name__						) for image in images]

      if do_normalize:
           _a			      =							[self.normalize(image=__magic_name__      ,				mean=__magic_name__      ,				std=__magic_name__						) for image in images]

      _a			      =							[to_channel_dimension_format(__magic_name__      ,				__magic_name__						) for image in images]

      _a			      =							{'pixel_values': images}
      return BatchFeature(data=__magic_name__      ,				tensor_type=__magic_name__						)





'''simple docstring'''






from functools import reduce

a_					:    Any          =    (
    "73167176531330624919225119674426574742355349194934"
    "96983520312774506326239578318016984801869478851843"
    "85861560789112949495459501737958331952853208805511"
    "12540698747158523863050715693290963295227443043557"
    "66896648950445244523161731856403098711121722383113"
    "62229893423380308135336276614282806444486645238749"
    "30358907296290491560440772390713810515859307960866"
    "70172427121883998797908792274921901699720888093776"
    "65727333001053367881220235421809751254540594752243"
    "52584907711670556013604839586446706324415722155397"
    "53697817977846174064955149290862569321978468622482"
    "83972241375657056057490261407972968652414535100474"
    "82166370484403199890008895243450658541227588666881"
    "16427171479924442928230863465674813919123162824586"
    "17866458359124566529476545682848912883142607690042"
    "24219022671055626321111109370544217506941658960408"
    "07198403850962455444362981230987879927244284909188"
    "84580156166097919133875499200524063689912560717606"
    "05886116467109405077541002256983155200055935729725"
    "71636269561882670428252483600823257530420752963450"
)






def 	_A				(lowerCAmelCase__  :str = N		)   ->  int:




     '''simple docstring'''



     return max(
         # mypy cannot properly interpret reduce
         int(reduce(lambda lowerCAmelCase__				,						lowerCAmelCase__		: str(int(lowerCAmelCase__		) * int(lowerCAmelCase__		)		)				,						n[i : i + 13]		)		)
         for i in range(len(lowerCAmelCase__		) - 12		)		)


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

