Ë
    XV.j©  ã                   óp   — d dl Zd dlmc mZ d dlZd dlmZ ddl	m
Z
mZ dZdededefd	„Z G d
„ de
«      Zy)é    N)Úascii_uppercaseé   )ÚBaseProviderÚElementsTypeTÚsÚweight_factorÚreturnc                 ó’   — dt         dt        fd„}d}t        | «      D ]&  \  }}||t        |«      k  r ||«      ||   z  ndz  }Œ( |S )zÚ
    multiply s(str) by weight_factor char by char
    e.g.
    input: s="ABCDE", weight_factor=[1, 2, 3, 4, 5]
    return: A*1 + B*2 + C*3 + D*4 + E*5

    will multiply 0 when len(weight_factor) less than len(s)
    Úcr	   c                 óÀ   — t        | «      dk  rt        | «      S t        | «      dk  rt        | «      dz
  S t        | «      dk  rt        | «      dz
  S t        | «      dz
  S )zTA=1, B=2, ...., I=9,
        J=1, K=2, ..., R=9,
        S=2, T=3, ..., Z=9
        é@   éI   éR   éQ   )ÚordÚint)r   s    úeC:\xampp\htdocs\tradingbinance\backend\.venv\Lib\site-packages\faker\providers\automotive\__init__.pyÚ_get_char_weightz2calculate_vin_str_weight.<locals>._get_char_weight   sX   € ô
 ˆq‹6�RŠ<Ü�q“6ˆMÜˆq‹6�RŠ<Ü�q“6˜B‘;ÐÜˆq‹6�RŠ<Ü�q“6˜B‘;Ðä�1‹v˜‰{Ðó    r   )Ústrr   Ú	enumerateÚlen)r   r   r   ÚresÚir   s         r   Úcalculate_vin_str_weightr   
   s\   € ðœCð ¤Có ð €CÜ˜!–‰ˆˆ1Ø¸¼SÀÓ=OÒ9OÑ Ó" ]°1Ñ%5Ò5ÐUVÑV‰ð à€Jr   c                   ó8   — e Zd ZU dZdZeed<   defd„Zdefd„Z	y)ÚProviderz0Implement default automotive provider for Faker.© Úlicense_formatsr	   c                 óŒ   ‡ — t        j                  dˆ fd„‰ j                  ‰ j                  «      «      }‰ j	                  |«      S )zGenerate a license plate.z\?c                 ó.   •— ‰j                  t        «      S )N)Úrandom_elementr   )ÚxÚselfs    €r   Ú<lambda>z(Provider.license_plate.<locals>.<lambda>1   s   ø€ �d×)Ñ)¬/Ô:r   )ÚreÚsubr"   r   Únumerify)r$   Útemps   ` r   Úlicense_platezProvider.license_plate-   s<   ø€ ä�v‰vØÛ:Ø×Ñ × 4Ñ 4Ó5ó
ˆð
 �}‰}˜TÓ"Ð"r   c                 óÎ   — d}| j                  d|¬«      }| j                  d|¬«      }t        |g d¢«      }t        |g d¢«      }||z   dz  }|dk(  rdn
t        |«      }||z   |z   S )	zGenerate vin number.Ú!1234567890ABCDEFGHJKLMNPRSTUVWXYZz????????)Úletters)é   é   é   é   é   é   r   é
   )é	   r.   r/   r0   r1   r2   r3   r   é   r4   ÚX)Úbothifyr   r   )r$   Ú	vin_charsÚ
front_partÚ	rear_partÚfront_part_weightÚrear_part_weightÚchecksumÚchecksum_chars           r   ÚvinzProvider.vin6   sx   € à7ˆ	Ø—\‘\ *°i�\Ó@ˆ
Ø—L‘L °Y�LÓ?ˆ	Ü4°ZÒAZÓ[ÐÜ3°IÒ?WÓXÐØ%Ð(8Ñ8¸BÑ>ˆØ'¨2š~™´3°x³=ˆØ˜MÑ)¨IÑ5Ð5r   N)
Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   r   Ú__annotations__r   r*   r@   r   r   r   r   r   (   s'   … Ù:à$&€O�\Ó&ð#˜só #ð	6�Sô 	6r   r   )ÚbuiltinsÚ@py_builtinsÚ_pytest.assertion.rewriteÚ	assertionÚrewriteÚ
@pytest_arr&   Ústringr   Ú r   r   Ú	localizedr   Úlistr   r   r   r   r   r   Ú<module>rP      s=   ðß  „ ƒ	å "ç )à€	ð ð °Dð ¸Só ô<6ˆ|õ 6r   