



"""simple docstring"""


import flax.linen as nn
import jax
import jax.numpy as jnp







class       A_			(     nn.Module				):



						"""simple docstring"""
						__UpperCamelCase						=							42
						__UpperCamelCase						=							jnp.floataa






						def 	UpperCAmelCase__     (					self :str					)				->			Optional[Any]:
												UpperCAmelCase             = nn.Conv(
												    self.out_channels   ,  kernel_size=(3, 3)   ,  strides=(1, 1)   ,  padding=((1, 1), (1, 1))   ,  dtype=self.dtype   ,  )






						def __call__(					self :List[str]   ,  lowercase_ :Tuple					)				->			Any:
												UpperCAmelCase             = hidden_states.shape
												UpperCAmelCase             = jax.image.resize(
												    _lowerCamelCase   ,  shape=(batch, height * 2, width * 2, channels)   ,  method='nearest'   ,  )
												UpperCAmelCase             = self.conv(_lowerCamelCase					)
												return hidden_states







class       A_			(     nn.Module				):



						"""simple docstring"""
						__UpperCamelCase						=							42
						__UpperCamelCase						=							jnp.floataa






						def 	UpperCAmelCase__     (					self :int					)				->			Union[str, Any]:
												UpperCAmelCase             = nn.Conv(
												    self.out_channels   ,  kernel_size=(3, 3)   ,  strides=(2, 2)   ,  padding=((1, 1), (1, 1))   ,  dtype=self.dtype   ,  )






						def __call__(					self :Any   ,  lowercase_ :str					)				->			str:
												# pad = ((0, 0), (0, 1), (0, 1), (0, 0))  # pad height and width dim
												# hidden_states = jnp.pad(hidden_states, pad_width=pad)
												UpperCAmelCase             = self.conv(_lowerCamelCase					)
												return hidden_states







class       A_			(     nn.Module				):



						"""simple docstring"""
						__UpperCamelCase						=							42
						__UpperCamelCase						=							None
						__UpperCamelCase						=							0.0
						__UpperCamelCase						=							None
						__UpperCamelCase						=							jnp.floataa






						def 	UpperCAmelCase__     (					self :List[Any]					)				->			Optional[Any]:
												UpperCAmelCase             = self.in_channels if self.out_channels is None else self.out_channels

												UpperCAmelCase             = nn.GroupNorm(num_groups=32   ,  epsilon=1E-5					)
												UpperCAmelCase             = nn.Conv(
												    _lowerCamelCase   ,  kernel_size=(3, 3)   ,  strides=(1, 1)   ,  padding=((1, 1), (1, 1))   ,  dtype=self.dtype   ,  )

												UpperCAmelCase             = nn.Dense(_lowerCamelCase   ,  dtype=self.dtype					)

												UpperCAmelCase             = nn.GroupNorm(num_groups=32   ,  epsilon=1E-5					)
												UpperCAmelCase             = nn.Dropout(self.dropout_prob					)
												UpperCAmelCase             = nn.Conv(
												    _lowerCamelCase   ,  kernel_size=(3, 3)   ,  strides=(1, 1)   ,  padding=((1, 1), (1, 1))   ,  dtype=self.dtype   ,  )

												UpperCAmelCase             = self.in_channels != out_channels if self.use_nin_shortcut is None else self.use_nin_shortcut

												UpperCAmelCase             = None
												if use_nin_shortcut:
																		UpperCAmelCase             = nn.Conv(
																		    _lowerCamelCase   ,  kernel_size=(1, 1)   ,  strides=(1, 1)   ,  padding='VALID'   ,  dtype=self.dtype   ,  )






						def __call__(					self :Any   ,  lowercase_ :Tuple   ,  lowercase_ :Any   ,  lowercase_ :Optional[Any]=True					)				->			Tuple:
												UpperCAmelCase             = hidden_states
												UpperCAmelCase             = self.norma(_lowerCamelCase					)
												UpperCAmelCase             = nn.swish(_lowerCamelCase					)
												UpperCAmelCase             = self.conva(_lowerCamelCase					)

												UpperCAmelCase             = self.time_emb_proj(nn.swish(_lowerCamelCase					)					)
												UpperCAmelCase             = jnp.expand_dims(jnp.expand_dims(_lowerCamelCase   ,  1					)   ,  1					)
												UpperCAmelCase             = hidden_states + temb

												UpperCAmelCase             = self.norma(_lowerCamelCase					)
												UpperCAmelCase             = nn.swish(_lowerCamelCase					)
												UpperCAmelCase             = self.dropout(_lowerCamelCase   ,  _lowerCamelCase					)
												UpperCAmelCase             = self.conva(_lowerCamelCase					)

												if self.conv_shortcut is not None:
																		UpperCAmelCase             = self.conv_shortcut(_lowerCamelCase					)

												return hidden_states + residual









import sys

snake_case				:    int       				=     (
    '''73167176531330624919225119674426574742355349194934'''
    '''96983520312774506326239578318016984801869478851843'''
    '''85861560789112949495459501737958331952853208805511'''
    '''12540698747158523863050715693290963295227443043557'''
    '''66896648950445244523161731856403098711121722383113'''
    '''62229893423380308135336276614282806444486645238749'''
    '''30358907296290491560440772390713810515859307960866'''
    '''70172427121883998797908792274921901699720888093776'''
    '''65727333001053367881220235421809751254540594752243'''
    '''52584907711670556013604839586446706324415722155397'''
    '''53697817977846174064955149290862569321978468622482'''
    '''83972241375657056057490261407972968652414535100474'''
    '''82166370484403199890008895243450658541227588666881'''
    '''16427171479924442928230863465674813919123162824586'''
    '''17866458359124566529476545682848912883142607690042'''
    '''24219022671055626321111109370544217506941658960408'''
    '''07198403850962455444362981230987879927244284909188'''
    '''84580156166097919133875499200524063689912560717606'''
    '''05886116467109405077541002256983155200055935729725'''
    '''71636269561882670428252483600823257530420752963450'''
)
def 				__lowerCamelCase						( UpperCAmelCase_						:		str = N						):




      """simple docstring"""





      a						:Optional[Any] 							=       -sys.maxsize - 1
      for i in range(len(UpperCAmelCase_						) - 12						):
            a						:Dict 							=       1
            for j in range(13						):
                  product *= int(n[i + j]						)
            if product > largest_product:
                  a						:str 							=       product
      return largest_product


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





