Your IP : 18.117.232.108


Current Path : /opt/alt/python312/lib64/python3.12/__pycache__/
Upload File :
Current File : //opt/alt/python312/lib64/python3.12/__pycache__/locale.cpython-312.opt-1.pyc

�

�Q�f3��"�dZddlZddlZddlZddlZddlZddlmZddl	Z	gd�Z
d�Zd�Z	ddl
�de�vreZde�vreZeZiZe	j@e�d��Zd�Z!�d�d�Z"d�Z#ejHd�Z%�d�d�Z&�d�d�Z'�d�d�Z(�d�d�Z)d�Zd�Z*�d�d�Z+e,fd�Z-d �Z.d!�Z/eZ0d"�Z1d#�Z2d$�Z3d%�Z4d&�Z5�d�d'�Z6�d�d(�Z7efd)�Z8�d�d*�Zefd+�Z9	dd,l
m:Z:	e;�d�d.�Z<id0d1�d2d1�d3d4�d5d6�d7d6�d8d9�d:d;�d<d=�d>d?�d@dA�dBd4�dCdD�dEdF�dGdH�dId4�dJd4�dKd4�idLdM�dNdO�dPdQ�dRdS�dTdH�dUdV�dWdD�dXdY�dZd[�d\dF�d]d^�d_d`�dadb�dcdd�ded6�dfdg�dhdi��d9djdkdldmdndod=d?dAdp�
�Z>e?e>j���D])\ZAZBeAj�dqdr�ZAe>j�eAeB��+[A[Bidsdt�dudt�dvdt�dwdx�dydz�d{d|�d}d~�dd~�d�d��d�d��d�d��d�d��d�d��d�d��d�d��d�d��d�d��id�d��d�d��d�d��d�d��d�d��d�d��d�d��d�d��d�d��d�d��d�d��d�d��d�d��d�d��d�d��d�d��d�d���id�d��d�d��d�d��d�d��d�d��d�d��d�d��d�d��d�d��d�d��d�dÓd�dœd�dǓd�dɓd�dœd�dǓd�d͓�id�dϓd�dѓd�dӓd�dӓd�d֓d�dؓd�dړd�dܓd�dޓd�d�d�d�d�d�d�d�d�d�d�d�d�d�d�d��id�d�d�d�d�dӓd�d�d2d1�d�d�d�d1�d�d1�d�d��d�d��d�d1�d�d1�d�d��d�d���dd���d�d��d�d��i�d�d��dd���d�d	��d
d���d�d��d
�d��d�d��d�d��d�d��d�d��d�d��d�d��d�d��d�d��d�d��d�d ��d!�d"��i�d#�d"��d$�d��d%�d��d&�d��d'�d(��d)�d(��d*�d(��d+�d(��d,�d-��d.�d/��d0�d1��d2�d3��d4�d-��d5�d6��d7�d8��d9�d:��d;�d-��i�d<�d=��d>�d?��d@�dA��dB�dC��dD�dE��dF�dG��dH�dG��dI�dJ��dK�dL��dM�dN��dO�dL��dP�dQ�d3d���dR�dS��dT�dU��dV�dW��dX�dY��i�dZ�d[��d\�d]��d^�d_��d`�da��db�dc��dd�de��df�dg��dh�di��dj�dk��dl�dm��dn�do��dp�dq��dr�ds��dt�da��dud���dv�dw��dx�dy��i�dz�d{��d|�d}��d~�d��d��da��d��d���d�d���d��da��d�d���d�d1��d�d���d��d���d��d���d��d���d��d���d��d���d��d���d��d���i�d��d���d��d���d��d���d��d���d��d���d��d���d��d���d��d���d��d���d��d���d��d���d��d���d��d���d��d���d��d���d��d���d��d���i�d��d���d��d���d��d���d��dJ��d��d���d��d���d��d���dd���dÐdē�dŐdƓ�dǐdƓ�dȐdɓ�dʐd˓�d̐d͓�dΐd͓�dϐdГ�dѐdғ�i�dӐdԓ�dՐdԓ�d֐dד�dؐdٓ�d�d��dېdܓ�dݐdד�dސdߓ�d�dד�d�dד�d�dד�d�dܓ�d�dד�d�d��d�d��d�d��d�d��i�d�d��d�d��d�d��d�d��d�d��d�d-��d��d-��d��d3��d��d-��d��d���d��d���d��d��d��d��d��dL��d��d��d�d��d�d��i�d�d��d�d��d�d	��d
�d	��d�d	��d�d
��d�d
��d�d
��d�d��d�d��d�d��d�d��d�d��d�d��d�d��d�d��d�d��i�d�d��d�d��d �d!��d"�d#��d$�d%��d&�d'��d(�d)��d*�d+��d,�d+��d-�d.��d/�d0��d1�d+��d2�d+��d3�d)��d4�d)��d5d���d6�dw��i�d7d���d8�dw��d9d���d:�dw��d;�d<��d=�d>��d?�d<��d@�d<��dA�dB��dC�dB��dD�dB��dE�d	��dF�d	��dG�dH��dI�dJ��dK�dJ��dL�dJ��i�dM�dN��dO�dN��dP�dJ��dQ�dJ��dR�dJ��dS�dJ��dT�dJ��dU�dV��dW�dV��dX�dV��dY�dZ��d[�dV��d\�d]��d^�d_��d`�da��db�da��dc�dd��i�de�df��dg�df��dh�di��dj�di��dk�di��dl�dm��dn�di��do�di��dp�dq��dr�dq��ds�dt��du�dv��dw�dx��dy�dx��dz�d{��d|�d{��d}�d~��i�d�d���d��d���d��d���d��d���d��d���d��d���d��d���d��d���d��d���d��d���d��d���d��d���d��d���d��d���d��d���d��d���d��d���i�d��d���d��d���d��d���d��d���d��d���d��d���d��d���d��d���d��d���d��d���d��d���d��d���d��d���d��d���d��d���d��d���d��d���i�d��d���d��d���d��d���d��d���d��d���d��d���ddÓ�d�d��d�d��dƐdǓ�dȐdɓ�dʐd˓�d̐d͓�dΐdϓ�dАdѓ�dҐd?��dӐdԓ�i�dՐdA��d֐d?��dאdؓ�dِdؓ�dڐdۓ�dܐdݓ�dސdۓ�dߐdۓ�d�dۓ�d�dۓ�d�d��d�d��d�d��d�d��d�dݓ�d�dݓ�d�dؓ�i�d�d��d�d��d�d��d�d��d�d��d�d��d��d���d��d���d��d���d��d���d��d���d��d���d�d��d�d��d�d��d�d��d�d��i�d	�d��d
�d��d�d��d
�d��d�d��d�d��dd1��dd1��d�d��d�d��d�d��d�d��d�d��d�d��d�d��d�d��d �d!��i�d"�d!��d#�d!��d$�d%��d&�d%��d'�d(��d)�d!��d*�d+��d,�d-��d.�d-��d/�d0��d1�d2��d3�d4��d5�d6��d7�d6��d8�d9��d:�d;��d<�d=��i�d>�d?��d@�dA��dB�d?��dC�dD��dE�dF��dG�d��dH�dD��dI�d?��dJ�dK��dL�dM��dN�dO��dP�dO��dQ�dR��dS�dO��dT�dU��dV�dU��dW�dX��i�dY�dZ��d[�dX��d\�dU��d]�dX��d^�dX��d_�d`��da�db��dc�dd��de�df��dg�dh��di�dj��dk�dj��dl�d���dm�d���dn�do��dp�do��dq�dr��i�ds�dt��du�dt��dv�dw��dx�dy��dz�dD��d{�dw��d|�d}��d~�dt��d�d?��d��dD��d��d?��d��d���d��dD��d��dj��d��dj��d��d���d��dt��i�d��dt��d��dt��d��d���d��d���d��d���d��d���d��d���d��d���d��d���d��d���d��d���d��d���d��d���d��d���d��d���d��d���d��d���i�d��d���d��d���d��d���d��d���d��d���d��d���d��d���d��d���d��d���d��d���d��d���d��d���d��d���d��d���d��d���d��d���d��d���i�d��d���d��d���dd���dÐdē�dŐdƓ�dǐdȓ�dɐdʓ�dːdȓ�d̐d͓�dΐd͓�dϐdГ�dѐdГ�dҐdГ�dӐdԓ�dՐdȓ�d֐dד�dؐdٓ�i�dڐdٓ�dېdܓ�dݐdܓ�dސdߓ�d�d��d�d��d�d��d�d��d�d��d�d��d�d��d�d��d�d��d�d��d�d��d�d��d�d��i�d�d��d��d��d��d���d��d���d��d���d��d���d��d���d��d��d�d��d�d��d�d��d�d��d�d��d	�d
��d�d��d�d
��d�d���d�d�d�d�d�d�d�d�d�d�d�
�ZEi�d�d��d�d��d�d��d�d��d�d��d�d ��d!�d"��d#�d$��d%�d&��d'�d(��d)�d*��d+�d,��d-�d.��d/�d0��d1�d2��d3�d4��d5�d6�i�d7�d8��d9�d:��d;�d<��d=�d>��d?�d@��dA�dB��dC�dB��dD�dE��dF�dG��dH�dI��dJ�dK��dL�dM��dN�dM��dO�dP��dQ�dR��dS�dT�d�dU��i�dV�dW��dX�dY��dZ�d[��d\�d]��d^�d_��d`�da��db�dc��dd�de��df�dg��dh�di��dj�dk��dl�dm��dn�do��dp�dq��dr�ds��dt�du��dv�dw��i�dx�dy��dz�d{��d|�d}��d~�d��d��d���d��d���d��d���d��d���d��d���d��d���d��d���d��d���d��d���d��d���d��d���d��d���d��d���i�d��d���d��d���d��d���d��d���d��d���d��d���d��d���d��d���d��d���d��d���d��d���d��d���d��d���d��d���d��d���d��d���d��d���i�d��d���d��d���d��d���d��d“�dÐdē�dŐdƓ�dǐdȓ�dɐdʓ�dːdʓ�d̐d͓�dΐdϓ�dАdѓ�dҐdӓ�dԐdՓ�d֐dד�dؐdٓ�dڐdۓ�i�dܐdݓ�dސdߓ�d�d��d�d��d�d��d�d��d�d��d�d��d�d��d�d��d�d��d�d��d�d���d��d���d��d���d��d���d��d���i�d��d���d�d��d�d��d�d��d�d��d�d	��d
�d��d�d
��d�d��d�d��d�d��d�d��d�d��d�d��d�d��d�d��d�d��i�d �d!��d"�d#��d$�d%��d&�d'��d(�d)��d*�d+��d,�d-��d.�d/��d0�d1��d2�d3��d4�d5��d6�d7��d8�d9��d:�d;��d<�d=��d>�d;��d?�d=��i�d@�dA��dB�dC��dD�dE��dF�dG��dH�dI��dJ�dK��dL�dM��dN�dK��dO�dP��dQ�dR��dS�dT��dU�dV��dW�dX��dY�dZ��d[�d\��d]�d^��d_�d`��i�da�db��dc�dd��de�df��dg�dh��di�dj��dk�dl��dm�dn��do�dp��dq�dr��ds�dt��du�dv��dw�dx��dy�dz��d{�d|��d}�d~��d�d���d��d���i�d��d���d��d���d��d���d��d���d��d���d��d���d��d���d��d���d��d���d��d���d��d���d��d���d��d���d��d���d��d���d��d���d��d����d��d��d��d��d���ZF�d��ZG	ee
j��d��eI�d�k(r6eJ�d��eJ�eG�eJ�eJ�d��eJ�e/�yy#e$rdZd	Zd
ZdZdZdZd
ZdZeZd�Z�d�d�ZY���wxYw#e$rd-�Z:Y��YwxYw#e=$r	�d�d/�Z<Y��bwxYw#e=$rY��wxYw(�a�Locale support module.

The module provides low-level access to the C lib's locale APIs and adds high
level number formatting APIs as well as a locale aliasing engine to complement
these.

The aliasing engine includes support for many commonly used locale names and
maps them to values suitable for passing to the C lib's setlocale() function. It
also includes default encodings for all supported locale names.

�N)�str)�	getlocale�getdefaultlocale�getpreferredencoding�Error�	setlocale�resetlocale�
localeconv�strcoll�strxfrmr�atof�atoi�
format_string�currency�	normalize�LC_CTYPE�
LC_COLLATE�LC_TIME�LC_MONETARY�
LC_NUMERIC�LC_ALL�CHAR_MAX�getencodingc��||kD||kz
S)zZ strcoll(string,string) -> int.
        Compares two strings according to the locale.
    �)�a�bs  �-/opt/alt/python312/lib64/python3.12/locale.py�_strcollr!s��
��E�a�!�e���c��|S)z\ strxfrm(string) -> string.
        Returns a string that behaves for cmp locale-aware.
    r)�ss r�_strxfrmr#'s	��
�Hr )�*�������c�v�iddg�dd�dd�dd�dd�dg�d	d�d
d�dd�d
d�dd�dd�dd�dd�dd�dd�dd�ddi�S)zd localeconv() -> dict.
            Returns numeric and monetary locale-specific parameters.
        �groupingr%�currency_symbol��n_sign_posn�
p_cs_precedes�
n_cs_precedes�mon_grouping�n_sep_by_space�
decimal_point�.�
negative_sign�
positive_sign�p_sep_by_space�int_curr_symbol�p_sign_posn�
thousands_sep�mon_thousands_sep�frac_digits�mon_decimal_point�int_frac_digitsrrr rr
r
?s���
(�
�S�E�(�!�2�(��s�(� ��(� ��	(�
��(�!�#�
(� ��(� ��(� ��(�!�#�(�"�2�(��s�(� ��(�$�R�(��s�(� $�R�!(�""�3�#(�	(r c�"�|dvrtd��y)zd setlocale(integer,string=None) -> string.
            Activates/queries locale processing.
        )Nr/�Cz*_locale emulation only supports "C" localerB)r)�category�values  rrrWs����'��D�E�E�r rrc�P�t�}tr|jt�|S�N)�_localeconv�_override_localeconv�update)�ds rr
r
ls���
�A��	���%�&��Hr c#�pK�d}|D]+}|tk(ry|dk(r|�td��	|���|��|}�-y�w)Nrzinvalid grouping)r�
ValueError)r-�
last_interval�intervals   r�_grouping_intervalsrOzsQ�����M����x����q�=��$� �!3�4�4��#�#���� �
��s�46c���t�}||xrdxsd}||xrdxsd}|s|dfS|ddk(r!|j�}|t|�d}|}nd}d}g}t|�D],}	|r|dd	vr|}d}n|j	||	d�|d|	}�.|r|j	|�|j�||j
|�z|zt|�t|�d
z
zfS)Nr=r<r3r-r���� r/�
0123456789r*)r
�rstrip�lenrO�append�reverse�join)
r"�monetary�convr<r-�stripped�right_spaces�left_spaces�groupsrNs
          r�_groupr_�s���<�D���9�&9�L�_�M�M��H�/��=�:�>�H���1�v�
���u��|��8�8�:����X���(�������K�
�F�'��1���A�b�E��-��K��A���
�
�a��	�
�m�$�
�j��y�M��2�	��
�
�a��
�N�N���m�(�(��0�0�<�?��M��c�&�k�A�o�.��r c��d}|r||dk(r|dz
}|dz}|r	||dk(r�t|�dz
}|r||dk(r|dz}|dz}|r	||dk(r�|||dzS)NrrRr*)rU)r"�amount�lpos�rposs    r�_strip_paddingrd�s����D�
�Q�t�W��^���	���!����Q�t�W��^��q�6�A�:�D�
�Q�t�W��^���	���!����Q�t�W��^�
�T�$�q�&�>�r zG%(?:\((?P<key>.*?)\))?(?P<modifiers>[-#0-9 +*.hlL]*?)[eEfFgGdiouxXcrs%]c�P�|r
||f|zz}n||z}|ddvr
t|||�}|S)NrQ�	eEfFgGdiu��	_localize)�percentrDr-rY�
additional�	formatteds      r�_formatrl�s?�����x�*�4�5�	��e�O�	��r�{�k�!��i��8�<�	��r c��d|vrad}|jd�}|rt|d|��\|d<}t�|xrdxsd}|j|�}|rt	||�}|Sd}|rt||��\}}|rt	||�}|S)Nr6r�rYr?r5)�splitr_r
rXrd)rkr-rY�seps�partsr5s      rrhrh�s���
�i��������$���#�E�!�H�x�@�N�E�!�H�d�"��X�%E�2E�&A�1@�B�
�!�&�&�u�-�	��&�y�$�7�I������$�Y��B�O�I�t��&�y�$�7�I��r c
���ttj|��}tjd|�}t	|t
j�r]g}|D]U}|j�ddk(r|jd��+|jt|j�|||���Wn�t	|t�s|f}g}d}|D]�}|j�ddk(r|jd��+|jd�jd�}	|jt|j�||||g||dz|dz|	z����|d|	zz
}��t|�}||zS)aFormats a string in the same way that the % formatting would use,
    but takes the current locale into account.

    Grouping is applied if the third parameter is true.
    Conversion uses monetary thousands separator and grouping strings if
    forth parameter monetary is true.z%srQ�%r�	modifiersr$r*)�list�_percent_re�finditer�sub�
isinstance�_collections_abc�Mapping�grouprVrl�tuple�count)
�f�valr-rY�percents�new_f�new_val�perc�i�	starcounts
          rrr�sO���K�(�(��+�,�H��O�O�D�!�$�E��#�'�/�/�0����D��z�z�|�B���$����s�#����w�t�z�z�|�S�(�H�M�N�	��#�u�%��&�C���
���D��z�z�|�B���$����s�#� �J�J�{�3�9�9�#�>�	����w�t�z�z�|�&)�!�f�&.�&.� ?�(+�1�Q�3�q��s�9�}�'=�	 ?�@�
�a�)�m�$�����.�C��3�;�r c��t�}||xrdxsd}|dk(rtd��tt|�d|�d��|d��}d	|zd
z}|r_||xrdxsd}||d
kxrdxsd}||d
kxrdxsd}	|r||	xrdxsdz|z}n|r
|ddk(r|dd}||	xrdxsdz|z}||d
kxrdxsd}
||d
kxrdxsd}|
d
k(r	d|zdz}nK|
dk(r||z}n@|
dk(r||z}n5|
dk(r|j	d	|�}n|
dk(r|j	d
|�}n||z}|j	d	d�j	d
d�S) zIFormats val according to the currency settings
    in the current locale.r@r>r%z9Currency formatting is not possible using the 'C' locale.r6rTrn�<�>r:r.rr2r1r4r9rRr/rQNr0r;r7r8�(�)r*r+r'r))r
rLrh�abs�replace)r��symbolr-�
internationalrZ�digitsr"�smb�precedes�	separated�sign_pos�signs            rrr�s����<�D��-�5�$5�F��
G�F�
��}��+�,�	,�	�S��X�a��x�q�[�)�H�t�D�A��a��#�
�A�
��=�6�%6�K�:K�L����A��1�/�D�_�E����Q��3�#3�G�7G�H�	���y�(�S�.�B�/�!�3�A���R��C���#�2�h���Y�&�3�,�"�-��3�A��C��E�+�m�<�}�=�H���A��)�/�<�_�=�D��1�}��!�G�c�M��	�Q���1�H��	�Q��
��H��	�Q��
�I�I�c�4� ��	�Q��
�I�I�c�4� ��
�1�H���9�9�S�"��%�%�c�2�.�.r c��td|�S)z8Convert float to string, taking the locale into account.z%.12g)rl)r�s rrr)s���7�C� � r c�~�t�}|d}|r|j|d�}|d}|r|j|d�}|S)zHParses a string as a normalized number according to the locale settings.r<r/r5r6)r
r�)�stringrZ�ts�dds    r�
delocalizer�-sN���<�D�
�o�	�B�	�����B�'��
�o�	�B�	�����C�(���Mr c��t|||�S)zBParses a string as locale number according to the locale settings.rg)r�r-rYs   r�localizer�=s���V�X�x�0�0r c�$�|t|��S)z<Parses a string as a float according to the locale settings.)r�)r��funcs  rr
r
As���
�6�"�#�#r c�*�tt|��S)zAConverts a string to an integer according to the locale settings.)�intr�)r�s rrrEs���z�&�!�"�"r c��ttd�tddd�}t|dt	|��td�}t|dt
|��y)Nr/z%di�[r*�isg��Q�	@)rrr�printrrr
)�s1s r�_testr�IsC��
�f�b��	�t�Y�q�	)�B�	�"�d�D��H��	�T��B�	�"�d�D��H�r c��d|vr|d|jd�}n|}tj|�}tjjj	|j�|�}|}|j�}|tvr
t|}n5|jdd�}|jdd�}|tvr	t|}|dz|zS)Nr6�_r/�-)�index�	encodings�normalize_encoding�aliases�get�lower�locale_encoding_aliasr�)�code�encoding�langname�
norm_encodings    r�_replace_encodingr�[s���
�d�{��(����C��)�����0�0��:�M��%�%�-�-�1�1�-�2E�2E�2G�2?�A�M��H�!�'�'�)�M��-�-�(��7��%�-�-�c�2�6�
�%�-�-�c�2�6�
��1�1�,�]�;�H��c�>�H�$�$r c��|dk(r5d|vr|dzS|jd�\}}}|dvr|S|dk(rt|d�S|dz|zS)N�euror6z.ISO8859-15)�
ISO8859-15�UTF-8�	ISO8859-1r��@)�	partitionr�)r��modifierr�r�s    r�_append_modifierr�rsb���6���d�?��-�'�'�����,���1�h��.�.��K��{�"�$�T�<�8�8��#�:�� � r c��|j�}d|vr|jdd�}d|vr|jdd�\}}nd}d|vr|jd�dd\}}n|}d}|}|r,|jdd�}|jd	d�}|d|zz
}|}|r|d|zz
}tj	|d�}|�|S|rPtj	|d�}|�8d|vrt||�S|jdd�dj�|k(r|S|r�|}|r|d|zz
}tj	|d�}|�7d|vrt
||�S|jdd�\}}t
||�dz|zS|rntj	|d�}|�Vd|vrt
||�}t||�S|jdd�\}}|j�|k(rt
||�dz|zS|S)
a� Returns a normalized locale code for the given locale
        name.

        The returned locale code is formatted for use with
        setlocale().

        If normalization fails, the original name is returned
        unchanged.

        If the given encoding is not known, the function defaults to
        the default encoding for the locale code just like setlocale()
        does.

    �:r6r�r*r/Nr+r�r�)r�r�ro�locale_aliasr�r�r�)	�
localenamer�r�r�r��lang_encr��lookup_name�defmods	         rrr}s&��"����D�
�d�{��|�|�C��%��
�d�{����C��+���h���
�d�{�!�Z�Z��_�R�a�0���(������H�� �(�(��b�1�
�%�-�-�c�2�6�
��C�-�'�'���K���s�X�~�%�����K��.�D����������$�/�����$��'��h�7�7��z�z�#�q�!�!�$�*�*�,��8��������3��>�)�K�����T�2�����$��(��x�8�8�!�Z�Z��Q�/�N�D�(�$�T�8�4�s�:�X�E�E���#�#�H�d�3�D����d�?�,�T�8�<�D�+�D�(�;�;�#�z�z�#�q�1���f��<�<�>�X�-�,�T�8�<�s�B�V�K�K��r c���t|�}d|vr"|jdd�\}}|dk(rd|vr|dfSd|vrt|jd�dd�S|dk(ry	|d
k(rytd|z��)
a� Parses the locale code for localename and returns the
        result as tuple (language code, encoding).

        The localename is normalized and passed through the locale
        alias engine. A ValueError is raised in case the locale name
        cannot be parsed.

        The language code corresponds to RFC 1766.  code and encoding
        can be None in case the values cannot be determined or are
        unknown to this implementation.

    r�r*r�r6�iso-8859-15Nr+rB)NNr�)Nr�zunknown locale: %s)rror}rL)r�r�r�s   r�_parse_localenamer��s����Z� �D�
�d�{����C��+���h��v��#�T�/���&�&�
�d�{��T�Z�Z��_�R�a�(�)�)�	
����	
����
�)�J�6�
7�7r c�l�	|\}}|�d}|�|S|dz|zS#ttf$r
td�d�wxYw)z� Builds a locale code from the given tuple (language code,
        encoding).

        No aliasing or normalizing takes place.

    NrBr6zXLocale must be None, a string, or an iterable of two strings -- language code, encoding.)�	TypeErrorrL)�localetuple�languager�s   r�_build_localenamer��se��M�(���(����H����O��c�>�H�,�,���z�"�M��B�C�HL�	M�M�s���3c�H�ddl}|jddd��t|�S)a� Tries to determine the default locale settings and returns
        them as tuple (language code, encoding).

        According to POSIX, a program which has not called
        setlocale(LC_ALL, "") runs using the portable 'C' locale.
        Calling setlocale(LC_ALL, "") lets it use the default locale as
        defined by the LANG variable. Since we don't want to interfere
        with the current locale setting we thus emulate the behavior
        in the way described above.

        To maintain compatibility with other platforms, not only the
        LANG variable is tested, but a list of variables given as
        envvars parameter. The first found to be defined will be
        used. envvars defaults to the search path used in GNU gettext;
        it must always contain the variable name 'LANG'.

        Except for the code 'C', the language code corresponds to RFC
        1766.  code and encoding can be None in case the values cannot
        be determined.

    rNzlocale.getdefaultlocalezy{name!r} is deprecated and slated for removal in Python {remove}. Use setlocale(), getencoding() and getlocale() instead.)r'�)�remove)�warnings�_deprecated�_getdefaultlocale)�envvarsr�s  rrrs3��0����!�	B��	��
�W�%�%r c��	ddl}|j�\}}tjdk(r)|r'|dddk(rtjt
|d��}||fS#ttf$rYnwxYwddl	}|jj
}|D]2}||d�}|s�|dk(r|jd�d}t|�Sd}t|�S)Nr�win32r+�0x�LANGUAGEr�rB)
�_localer��sys�platform�windows_localer�r��ImportError�AttributeError�os�environror�)r�r�r�r�r��lookup�variabler�s        rr�r�(s���
�� �2�2�4���h�
�<�<�7�"�t��R�a��D�0@�!�%�%�c�$��l�3�D��X�~���
��(�
��
���
�Z�Z�^�^�F����H�T�*�
���:�%�'�-�-�c�2�1�5�
���Z�(�(���
��Z�(�(s�A�A+�*A+c�^�t|�}|tk(rd|vrtd��t|�S)ap Returns the current setting for the given locale category as
        tuple (language code, encoding).

        category may be one of the LC_* value except LC_ALL. It
        defaults to LC_CTYPE.

        Except for the code 'C', the language code corresponds to RFC
        1766.  code and encoding can be None in case the values cannot
        be determined.

    �;z category LC_ALL is not supported)�
_setlocalerr�r�)rCr�s  rrrFs4���H�%�J��6��c�Z�/��:�;�;��Z�(�(r c�f�|r$t|t�stt|��}t	||�S)a^ Set the locale for the given category.  The locale can be
        a string, an iterable of two strings (language code and encoding),
        or None.

        Iterables are converted to strings using the locale aliasing
        engine.  Locale strings are passed directly to the C lib.

        category may be given as one of the LC_* values.

    )ry�_builtin_strrr�r�)rC�locales  rrrXs-���j���6��,�V�4�5���h��'�'r c���ddl}|jdtd��|j�5|j	dt��t�}ddd�t
|t��y#1swY�xYw)z� Sets the locale for category to the default setting.

        The default setting is determined by calling
        getdefaultlocale(). category defaults to LC_ALL.

    rNz/Use locale.setlocale(locale.LC_ALL, "") insteadr+)�
stacklevel�ignore)rC)r��warn�DeprecationWarning�catch_warnings�simplefilterrr�r�)rCr��locs   rr	r	isj����M�M�9��q���

�	 �	 �	"����h�1C��D�� ��
#��x�*�3�/�0�	
#�	"�s�"A-�-A6)rc�J�ttd�ryt�d}|�d}|S)N�getandroidapilevel�utf-8r*)�hasattrr�r�)r�s rrr�s/���3�,�-��$�&�q�)�����H��r c�x�tjjrddl}|j	dt
d�tjjry|s
t�Stt�}		ttd�t�tt|�S#t$rY�%wxYw#tt|�wxYw)z`Return the charset that the user is likely using,
        according to the system configuration.rN�XUTF-8 Mode affects locale.getpreferredencoding(). Consider locale.getencoding() instead.r+r�r/)r��flags�warn_default_encodingr�r��EncodingWarning�	utf8_moderrrr)�do_setlocaler��old_locs   rrr�s����9�9�*�*���M�M�j���
$��9�9������=� ��H�%��	)�
��(�B�'��=��h��(��	�
��
��
�h��(�s*�.B�>	B'�	B$�!B'�#B$�$B'�'B9c��tjjrddl}|j	dt
d�tjjryt�S)z1Return the charset that the user is likely using.rNr�r+r�)r�r�r�r�r�r�r�r)r�r�s  rrr�s@���9�9�*�*���M�M�j���
$��9�9�����}�r �437rB�c�enr��jis�JIS7�jis7�ajec�eucJP�koi8czKOI8-C�microsoftcp1251�CP1251�microsoftcp1255�CP1255�microsoftcp1256�CP1256�88591�88592z	ISO8859-2�88595z	ISO8859-5�885915r��ascii�latin_1�	iso8859_1�
iso8859_10z
ISO8859-10�
iso8859_11z
ISO8859-11�
iso8859_13z
ISO8859-13�
iso8859_14z
ISO8859-14�
iso8859_15�
iso8859_16z
ISO8859-16�	iso8859_2�	iso8859_3z	ISO8859-3�	iso8859_4z	ISO8859-4�	iso8859_5�	iso8859_6z	ISO8859-6�	iso8859_7z	ISO8859-7�	iso8859_8z	ISO8859-8�	iso8859_9z	ISO8859-9�
iso2022_jp�	shift_jis�SJIS�tactis�TACTIS�eucKRr�zKOI8-RzKOI8-TzKOI8-U�RK1048)
�euc_jp�euc_kr�utf_8�koi8_r�koi8_t�koi8_u�kz1048�cp1251�cp1255�cp1256r�r/�a3zaz_AZ.KOI8-C�a3_azz
a3_az.koic�aa_djzaa_DJ.ISO8859-1�aa_erzaa_ER.UTF-8�aa_etzaa_ET.UTF-8�afzaf_ZA.ISO8859-1�af_za�agr_pezagr_PE.UTF-8�ak_ghzak_GH.UTF-8�amzam_ET.UTF-8�am_et�americanzen_US.ISO8859-1�an_eszan_ES.ISO8859-15�anp_inzanp_IN.UTF-8�arzar_AA.ISO8859-6�ar_aa�ar_aezar_AE.ISO8859-6�ar_bhzar_BH.ISO8859-6�ar_dzzar_DZ.ISO8859-6�ar_egzar_EG.ISO8859-6�ar_inzar_IN.UTF-8�ar_iqzar_IQ.ISO8859-6�ar_jozar_JO.ISO8859-6�ar_kwzar_KW.ISO8859-6�ar_lbzar_LB.ISO8859-6�ar_lyzar_LY.ISO8859-6�ar_mazar_MA.ISO8859-6�ar_omzar_OM.ISO8859-6�ar_qazar_QA.ISO8859-6�ar_sazar_SA.ISO8859-6�ar_sdzar_SD.ISO8859-6�ar_sszar_SS.UTF-8�ar_syzar_SY.ISO8859-6�ar_tnzar_TN.ISO8859-6�ar_yezar_YE.ISO8859-6�arabic�aszas_IN.UTF-8�as_in�ast_eszast_ES.ISO8859-15�ayc_pezayc_PE.UTF-8�azzaz_AZ.ISO8859-9E�az_azzaz_az.iso88599e�az_irzaz_IR.UTF-8�bezbe_BY.CP1251zbe@latinzbe_BY.UTF-8@latinz
be_bg.utf8zbg_BG.UTF-8�be_byzbe_by@latin�bem_zmzbem_ZM.UTF-8�ber_dzzber_DZ.UTF-8�ber_mazber_MA.UTF-8�bgzbg_BG.CP1251�bg_bgzbhb_in.utf8zbhb_IN.UTF-8�bho_inzbho_IN.UTF-8�bho_npzbho_NP.UTF-8�bi_vuzbi_VU.UTF-8�bn_bdzbn_BD.UTF-8�bn_inzbn_IN.UTF-8�bo_cnzbo_CN.UTF-8�bo_inzbo_IN.UTF-8�bokmalznb_NO.ISO8859-1ubokmål�brzbr_FR.ISO8859-1�br_fr�brx_inzbrx_IN.UTF-8�bszbs_BA.ISO8859-2�bs_ba�	bulgarian�byn_erzbyn_ER.UTF-8zc-frenchzfr_CA.ISO8859-1zc.asciizc.enz
c.iso88591zc.utf8zC.UTF-8�c_czc_c.c�cazca_ES.ISO8859-1�ca_adzca_AD.ISO8859-1�ca_eszca_es@valenciazca_ES.UTF-8@valencia�ca_frzca_FR.ISO8859-1�ca_itzca_IT.ISO8859-1�catalan�ce_ruzce_RU.UTF-8�cextendz	chinese-szzh_CN.eucCNz	chinese-tzzh_TW.eucTW�chr_uszchr_US.UTF-8�ckb_iqzckb_IQ.UTF-8�cmn_twzcmn_TW.UTF-8�crh_uazcrh_UA.UTF-8�croatianzhr_HR.ISO8859-2�cszcs_CZ.ISO8859-2�cs_cs�cs_cz�csb_plzcsb_PL.UTF-8�cv_ruzcv_RU.UTF-8�cyzcy_GB.ISO8859-1�cy_gb�cz�cz_cz�czech�dazda_DK.ISO8859-1�da_dk�danish�dansk�dezde_DE.ISO8859-1�de_atzde_AT.ISO8859-1�de_bezde_BE.ISO8859-1�de_chzde_CH.ISO8859-1�de_de�de_itzde_IT.ISO8859-1z
de_li.utf8zde_LI.UTF-8�de_luzde_LU.ISO8859-1�deutsch�doi_inzdoi_IN.UTF-8�dutchznl_NL.ISO8859-1zdutch.iso88591znl_BE.ISO8859-1�dv_mvzdv_MV.UTF-8�dz_btzdz_BT.UTF-8�eezee_EE.ISO8859-4�ee_ee�eestizet_EE.ISO8859-1�elzel_GR.ISO8859-7�el_cyzel_CY.ISO8859-7�el_grz
el_gr@eurozel_GR.ISO8859-15�en_agzen_AG.UTF-8�en_auzen_AU.ISO8859-1�en_bezen_BE.ISO8859-1�en_bwzen_BW.ISO8859-1�en_cazen_CA.ISO8859-1�en_dkzen_DK.ISO8859-1z
en_dl.utf8zen_DL.UTF-8�en_gbzen_GB.ISO8859-1�en_hkzen_HK.ISO8859-1�en_iezen_IE.ISO8859-1�en_ilzen_IL.UTF-8�en_inzen_IN.ISO8859-1�en_ngzen_NG.UTF-8�en_nzzen_NZ.ISO8859-1�en_phzen_PH.ISO8859-1z
en_sc.utf8zen_SC.UTF-8�en_sgzen_SG.ISO8859-1�en_uk�en_uszen_us@euro@eurozen_US.ISO8859-15�en_zazen_ZA.ISO8859-1�en_zmzen_ZM.UTF-8�en_zwzen_ZW.ISO8859-1z
en_zw.utf8zen_ZS.UTF-8�eng_gb�englishzen_EN.ISO8859-1zenglish.iso88591�
english_ukzenglish_united-stateszenglish_united-states.437�
english_us�eozeo_XX.ISO8859-3zeo.utf8zeo.UTF-8�eo_eozeo_EO.ISO8859-3z
eo_us.utf8zeo_US.UTF-8�eo_xx�eszes_ES.ISO8859-1�es_arzes_AR.ISO8859-1�es_bozes_BO.ISO8859-1�es_clzes_CL.ISO8859-1�es_cozes_CO.ISO8859-1�es_crzes_CR.ISO8859-1�es_cuzes_CU.UTF-8�es_dozes_DO.ISO8859-1�es_eczes_EC.ISO8859-1�es_es�es_gtzes_GT.ISO8859-1�es_hnzes_HN.ISO8859-1�es_mxzes_MX.ISO8859-1�es_nizes_NI.ISO8859-1�es_pazes_PA.ISO8859-1�es_pezes_PE.ISO8859-1�es_przes_PR.ISO8859-1�es_pyzes_PY.ISO8859-1�es_svzes_SV.ISO8859-1�es_uszes_US.ISO8859-1�es_uyzes_UY.ISO8859-1�es_vezes_VE.ISO8859-1�estonian�etzet_EE.ISO8859-15�et_ee�euzeu_ES.ISO8859-1�eu_es�eu_frzeu_FR.ISO8859-1�fazfa_IR.UTF-8�fa_irzfa_ir.isiri3342zfa_IR.ISIRI-3342�ff_snzff_SN.UTF-8�fizfi_FI.ISO8859-15�fi_fi�fil_phzfil_PH.UTF-8�finnishzfi_FI.ISO8859-1�fozfo_FO.ISO8859-1�fo_fo�frzfr_FR.ISO8859-1�fr_bezfr_BE.ISO8859-1�fr_ca�fr_chzfr_CH.ISO8859-1�fr_fr�fr_luzfr_LU.ISO8859-1u	français�fre_fr�frenchzfrench.iso88591�
french_france�fur_itzfur_IT.UTF-8�fy_dezfy_DE.UTF-8�fy_nlzfy_NL.UTF-8�gazga_IE.ISO8859-1�ga_ie�galegozgl_ES.ISO8859-1�galician�gdzgd_GB.ISO8859-1�gd_gb�ger_de�germanzgerman.iso88591�german_germany�gez_erzgez_ER.UTF-8�gez_etzgez_ET.UTF-8�gl�gl_es�greek�gu_inzgu_IN.UTF-8�gvzgv_GB.ISO8859-1�gv_gb�ha_ngzha_NG.UTF-8�hak_twzhak_TW.UTF-8�hezhe_IL.ISO8859-8�he_il�hebrew�hizhi_IN.ISCII-DEV�hi_inzhi_in.isciidev�hif_fjzhif_FJ.UTF-8�hnezhne_IN.UTF-8�hne_in�hr�hr_hr�hrvatski�hsb_dezhsb_DE.ISO8859-2�ht_htzht_HT.UTF-8�huzhu_HU.ISO8859-2�hu_hu�	hungarian�hy_amzhy_AM.UTF-8zhy_am.armscii8zhy_AM.ARMSCII_8�iazia.UTF-8�ia_frzia_FR.UTF-8�	icelandiczis_IS.ISO8859-1�idzid_ID.ISO8859-1�id_id�ig_ngzig_NG.UTF-8�ik_cazik_CA.UTF-8�in�in_idr��is_isz
iso-8859-1r�z	iso8859-1z
iso8859-15�
iso_8859_1�iso_8859_15�itzit_IT.ISO8859-1�it_chzit_CH.ISO8859-1�it_it�italian�iuziu_CA.NUNACOM-8�iu_caziu_ca.nunacom8�iw�iw_ilz
iw_il.utf8ziw_IL.UTF-8�jazja_JP.eucJP�ja_jpz	ja_jp.euczja_jp.mscodez
ja_JP.SJISz	ja_jp.pck�japan�japanesezjapanese-euczjapanese.euc�jp_jp�kazka_GE.GEORGIAN-ACADEMY�ka_gezka_ge.georgianacademyzka_ge.georgianpszka_GE.GEORGIAN-PSzka_ge.georgianrs�kab_dzzkab_DZ.UTF-8�kk_kzz
kk_KZ.ptcp154�klzkl_GL.ISO8859-1�kl_gl�km_khzkm_KH.UTF-8�knzkn_IN.UTF-8�kn_in�kozko_KR.eucKR�ko_krz	ko_kr.euc�kok_inzkok_IN.UTF-8�koreanz
korean.euc�kszks_IN.UTF-8�ks_inzks_in@devanagari.utf8zks_IN.UTF-8@devanagari�ku_trzku_TR.ISO8859-9�kwzkw_GB.ISO8859-1�kw_gb�kyzky_KG.UTF-8�ky_kg�lb_luzlb_LU.UTF-8�lg_ugzlg_UG.ISO8859-10�li_bezli_BE.UTF-8�li_nlzli_NL.UTF-8�lij_itzlij_IT.UTF-8�
lithuanianzlt_LT.ISO8859-13�ln_cdzln_CD.UTF-8�lozlo_LA.MULELAO-1�lo_lazlo_la.cp1133zlo_LA.IBM-CP1133zlo_la.ibmcp1133zlo_la.mulelao1�lt�lt_lt�lvzlv_LV.ISO8859-13�lv_lv�lzh_twzlzh_TW.UTF-8�mag_inzmag_IN.UTF-8�maizmai_IN.UTF-8�mai_in�mai_npzmai_NP.UTF-8�mfe_muzmfe_MU.UTF-8�mg_mgzmg_MG.ISO8859-15�mhr_ruzmhr_RU.UTF-8�mizmi_NZ.ISO8859-1�mi_nz�miq_nizmiq_NI.UTF-8�mjw_inzmjw_IN.UTF-8�mkzmk_MK.ISO8859-5�mk_mk�mlzml_IN.UTF-8�ml_in�mn_mnzmn_MN.UTF-8�mni_inzmni_IN.UTF-8�mrzmr_IN.UTF-8�mr_in�mszms_MY.ISO8859-1�ms_my�mtzmt_MT.ISO8859-3�mt_mt�my_mmzmy_MM.UTF-8�nan_twznan_TW.UTF-8�nb�nb_no�nds_deznds_DE.UTF-8�nds_nlznds_NL.UTF-8�ne_npzne_NP.UTF-8�nhn_mxznhn_MX.UTF-8�niu_nuzniu_NU.UTF-8�niu_nzzniu_NZ.UTF-8�nl�nl_awznl_AW.UTF-8�nl_be�nl_nl�nnznn_NO.ISO8859-1�nn_no�nozno_NO.ISO8859-1z
no@nynorskzny_NO.ISO8859-1�no_nozno_no.iso88591@bokmalzno_no.iso88591@nynorsk�	norwegian�nrznr_ZA.ISO8859-1�nr_za�nsoznso_ZA.ISO8859-15�nso_za�ny�ny_no�nynorsk�oczoc_FR.ISO8859-1�oc_fr�om_etzom_ET.UTF-8�om_kezom_KE.ISO8859-1�orzor_IN.UTF-8�or_in�os_ruzos_RU.UTF-8�pazpa_IN.UTF-8�pa_in�pa_pkzpa_PK.UTF-8�pap_anzpap_AN.UTF-8�pap_awzpap_AW.UTF-8�pap_cwzpap_CW.UTF-8�pdzpd_US.ISO8859-1�pd_dezpd_DE.ISO8859-1�pd_us�phzph_PH.ISO8859-1�ph_ph�plzpl_PL.ISO8859-2�pl_pl�polish�
portuguesezpt_PT.ISO8859-1�portuguese_brazilzpt_BR.ISO8859-1�posixz
posix-utf2�ppzpp_AN.ISO8859-1�pp_an�ps_afzps_AF.UTF-8�pt�pt_br�pt_pt�quz_pezquz_PE.UTF-8�raj_inzraj_IN.UTF-8�rozro_RO.ISO8859-2�ro_ro�romanian�ruzru_RU.UTF-8�ru_ru�ru_uazru_UA.KOI8-U�rumanian�russianzru_RU.KOI8-R�rwzrw_RW.ISO8859-1�rw_rw�sa_inzsa_IN.UTF-8�sat_inzsat_IN.UTF-8�sc_itzsc_IT.UTF-8�sdzsd_IN.UTF-8�sd_inzsd_in@devanagari.utf8zsd_IN.UTF-8@devanagari�sd_pkzsd_PK.UTF-8�se_nozse_NO.UTF-8�
serbocroatianzsr_RS.UTF-8@latin�sgs_ltzsgs_LT.UTF-8�shzsh_ba.iso88592@bosniazsr_CS.ISO8859-2�sh_hrzsh_HR.ISO8859-2zsh_hr.iso88592�sh_sp�sh_yu�shn_mmzshn_MM.UTF-8�shs_cazshs_CA.UTF-8�sizsi_LK.UTF-8�si_lk�sid_etzsid_ET.UTF-8�sinhala�skzsk_SK.ISO8859-2�sk_sk�slzsl_SI.ISO8859-2�sl_cszsl_CS.ISO8859-2�sl_si�slovak�slovene�	slovenian�sm_wszsm_WS.UTF-8�so_djzso_DJ.ISO8859-1�so_etzso_ET.UTF-8�so_kezso_KE.ISO8859-1�so_sozso_SO.ISO8859-1�spzsr_CS.ISO8859-5�sp_yu�spanish�
spanish_spain�sqzsq_AL.ISO8859-2�sq_al�sq_mkzsq_MK.UTF-8�srzsr_RS.UTF-8zsr@cyrilliczsr@latnzsr_CS.UTF-8@latin�sr_cszsr_CS.UTF-8zsr_cs.iso88592@latnz
sr_cs@latn�sr_mezsr_ME.UTF-8�sr_rsz
sr_rs@latn�sr_sp�sr_yuzsr_yu.cp1251@cyrilliczsr_CS.CP1251zsr_yu.iso88592zsr_yu.iso88595zsr_yu.iso88595@cyrilliczsr_yu.microsoftcp1251@cyrillicz
sr_yu.utf8zsr_yu.utf8@cyrilliczsr_yu@cyrillic�sszss_ZA.ISO8859-1�ss_za�stzst_ZA.ISO8859-1�st_za�svzsv_SE.ISO8859-1�sv_fizsv_FI.ISO8859-1�sv_se�sw_kezsw_KE.UTF-8�sw_tzzsw_TZ.UTF-8�swedish�szl_plzszl_PL.UTF-8�taz
ta_IN.TSCII-0�ta_inzta_in.tsciizta_in.tscii0�ta_lkzta_LK.UTF-8ztcy_in.utf8ztcy_IN.UTF-8�tezte_IN.UTF-8�te_in�tgztg_TJ.KOI8-C�tg_tj�thzth_TH.ISO8859-11�th_thzth_th.tactiszth_TH.TIS620zth_th.tis620�thai�the_npzthe_NP.UTF-8�ti_erzti_ER.UTF-8�ti_etzti_ET.UTF-8�tig_erztig_ER.UTF-8�tk_tmztk_TM.UTF-8�tlztl_PH.ISO8859-1�tl_ph�tnztn_ZA.ISO8859-15�tn_za�to_tozto_TO.UTF-8�tpi_pgztpi_PG.UTF-8�trztr_TR.ISO8859-9�tr_cyztr_CY.ISO8859-9�tr_trr�zts_ZA.ISO8859-1�ts_za�ttztt_RU.TATAR-CYR�tt_ruztt_ru.tatarcyrz
tt_ru@iqtelifztt_RU.UTF-8@iqtelif�turkish�ug_cnzug_CN.UTF-8�ukzuk_UA.KOI8-U�uk_ua�univz	en_US.utf�	universalzuniversal.utf8@ucs4zen_US.UTF-8�unm_uszunm_US.UTF-8�urzur_PK.CP1256�ur_inzur_IN.UTF-8�ur_pk�uzzuz_UZ.UTF-8�uz_uzzuz_uz@cyrillic�vezve_ZA.UTF-8�ve_za�viz
vi_VN.TCVN�vi_vnz
vi_vn.tcvnzvi_vn.tcvn5712zvi_vn.visciizvi_VN.VISCIIzvi_vn.viscii111�wazwa_BE.ISO8859-1�wa_be�wae_chzwae_CH.UTF-8�wal_etzwal_ET.UTF-8�wo_snzwo_SN.UTF-8�xhzxh_ZA.ISO8859-1�xh_za�yizyi_US.CP1255�yi_us�yo_ngzyo_NG.UTF-8�yue_hkzyue_HK.UTF-8�yuw_pgzyuw_PG.UTF-8�zh�zh_cnzzh_CN.gb2312z
zh_cn.big5z
zh_TW.big5zzh_HK.big5hkscszzh_SG.GB2312z	zh_SG.GBKzzu_ZA.ISO8859-1)
z	zh_cn.euc�zh_hkzzh_hk.big5hk�zh_sgz	zh_sg.gbk�zh_twz	zh_tw.euczzh_tw.euctw�zu�zu_zai6�af_ZAi�sq_ALi��gsw_FRi^�am_ETi�ar_SAi�ar_IQi�ar_EGi�ar_LYi�ar_DZi�ar_MAi�ar_TNi �ar_OMi$�ar_YEi(�ar_SYi,�ar_JOi0�ar_LBi4�ar_KWi8�ar_AEi<�ar_BHi@�ar_QAi+�hy_AMiM�as_INi,�az_AZi,im�ba_RUi-�eu_ESi#�be_BYiE�bn_INi �bs_BAii~�br_FRi�bg_BGi�ca_ES�zh_CHSi�zh_TWi�zh_CNi�zh_HKi�zh_SGi�zh_MOi|�zh_CHTi��co_FRi�hr_HRi�hr_BAi�cs_CZi�da_DKi��gbz_AFie�div_MVi�nl_NLi�nl_BEi	�en_USi	�en_GBi	�en_AUi	�en_CAi	�en_NZi	�en_IEi	�en_ZAi	 �en_JAi	$�en_CBi	(�en_BZi	,�en_TTi	0�en_ZWi	4�en_PHi	@�en_INi	D�en_MYi	Hi%�et_EEi8�fo_FOid�fil_PHi�fi_FIi�fr_FRi�fr_BEi�fr_CAi�fr_CHi�fr_LUi�fr_MCib�fy_NLiV�gl_ESi7�ka_GEi�de_DEi�de_CHi�de_ATi�de_LUi�de_LIi�el_GRio�kl_GLiG�gu_INih�ha_NGi
�he_ILi9�hi_INi�hu_HUi�is_ISi!�id_IDi]�iu_CAi]i<�ga_IEi�it_ITi�it_CHi�ja_JPiK�kn_INi?�kk_KZiS�kh_KHi��qut_GTi��rw_RWiW�kok_INi�ko_KRi@�ky_KGiT�lo_LAi&�lv_LVi'�lt_LTi.�dsb_DEin�lb_LUi/�mk_MKi>�ms_MYi>�ms_BNiL�ml_INi:�mt_MTi��mi_NZiz�arn_CLiN�mr_INi|�moh_CAiP�mn_MNiP�mn_CNia�ne_NPi�nb_NOi�nn_NOi��oc_FRiH�or_INic�ps_AFi)�fa_IRi�pl_PLi�pt_BRi�pt_PTiF�pa_INik�quz_BOik�quz_ECik�quz_PEi�ro_ROi�rm_CHi�ru_RUi;$�smn_FIi;�smj_NOi;�smj_SEi;�se_NOi;�se_SEi;�se_FIi; �sms_FIi;�sma_NOi;�sma_SEiO�sa_INi�sr_SPi�sr_BAiii[�si_LKil�ns_ZAi2�tn_ZAi�sk_SKi$�sl_SIi
�es_ESi
�es_MXi
i
�es_GTi
�es_CRi
�es_PAi
�es_DOi
 �es_VEi
$�es_COi
(�es_PEi
,�es_ARi
0�es_ECi
4�es_CLi
8�es_URi
<�es_PYi
@�es_BOi
D�es_SVi
H�es_HNi
L�es_NIi
P�es_PRi
T�es_USiA�sw_KEi�sv_SEi�sv_FIiZ�syr_SYi(�tg_TJi_�tmz_DZiI�ta_INiD�tt_RUiJ�te_INi�th_THiQ�bo_BTiQ�bo_CNi�tr_TRiB�tk_TMi��ug_CNi"�uk_UAi.�wen_DEi �ur_PKi �ur_INiC�uz_UZiCi*�vi_VNiR�cy_GBi��wo_SNi4�xh_ZA�sah_RU�ii_CN�yo_NG�zu_ZA)i�ixiji5c��i}|fd�}|�|d=td�td�t�\}}td|xsd�td|xsd�t�td�td�|j�D]I\}}t|d	�t|�\}}td
|xsd�td|xsd�t��Kt�td�td�t	�|j�D]I\}}t|d	�t|�\}}td
|xsd�td|xsd�t��K	ttd
�t�td�td�|j�D]I\}}t|d	�t|�\}}td
|xsd�td|xsd�t��Ky#td�td�td�YyxYw)z Test function.
    c�`�t�j�D]\}}|dddk(s�|||<�y)Nr'�LC_)�globals�items)�
categories�k�vs   r�_init_categoriesz'_print_locale.<locals>._init_categories�s/���9�?�?�$�C�A�a���!�u��~� !�
�1�
�%r rz4Locale defaults as determined by getdefaultlocale():zH------------------------------------------------------------------------z
Language: z(undefined)z
Encoding: zLocale settings on startup:z...z
   Language: z
   Encoding: z,Locale settings after calling resetlocale():r/z4Locale settings after calling setlocale(LC_ALL, ""):zNOTE:z9setlocale(LC_ALL, "") does not support the default localez&given in the OS environment variables.N)r�rr�rr	rr)r�r��lang�enc�namerCs      r�
_print_localer��s����J�$.�"����8��	�
@�A�	�&�M� �"�I�D�#�	�,��-�
�.�	�,��,�}�-�	�G�	�
'�(�	�&�M�#�)�)�+�
��X�
�d�E���h�'�	��c�
�o�t�4�}�5�
�o�s�3�m�4�
��,�
�G�	�
8�9�	�&�M��M�#�)�)�+�
��X�
�d�E���h�'�	��c�
�o�t�4�}�5�
�o�s�3�m�4�
��,���&�"��	��
�D�E�
�f�
�'�-�-�/�M�D���$���!�(�+�I�D�#��/�4�#8�=�9��/�3�#7�-�8��G�0��8�
�g��
�I�J�
�6�7�s�G%�%#H
�LC_MESSAGES�__main__zLocale aliasing:zNumber formatting:rF)F)FF)TFF))rr�LANGr�)T)K�__doc__r�r��encodings.aliases�rerz�builtinsrr��	functools�__all__rr#r�r�rrrrr�rrrrLrr
rr�rrrGrH�wrapsrOr_rd�compilervrlrhrrr�r��floatr
rr�r�r�r�rr�r�rr�rr	r�CODESETr�	NameErrorr��sortedr�r�r�r��
setdefaultr�r�r�rV�__name__r�rr r�<module>rs13��
����	��(��>���
�0��b
�G�I���G��G�I���G�����������
��
�
!� �>	��b�j�j�N�O����(#�J-/�^!�� 1��$�#�� �
�%�.	!�Q�f 8�DM�*&�B)�< �)�$(�" �1�*�#�&)��)�R4�
�C�4��C�	4�
	�K�4�
�F�
4��F�4��G�4��H�4��H�4��H�4��H�4��K�4��K�4��K�4� 
�L�!4�&�K�'4�(�K�)4�*�K�+4�,�L�-4�.�L�/4�0�L�14�2�L�34�4�L�54�6�L�74�8�K�94�:�K�;4�<�K�=4�>�K�?4�@�K�A4�B�K�C4�D�K�E4�F�K�G4�H�F�I4�J�F�K4�L
�H�M4�N%,�$+�$+�$,�$,�$,�$,�$,�$,�$,�a4��l
�(�.�.�0�1�D�A�q�	�	�	�#�r��A��$�$�Q��*�
2��q�xM	��N�M	��N�M	��N�M	��,=�	M	�
�M�M	��M�
M	�	�,=�M	��,=�M	�
�N�M	��M�M	�	�M�M	��M�M	��,=�M	��,>�M	�
�N�M	� 	�,=�!M	�"�,=�#M	�$�,=�%M	�&�,=�'M	�(�,=�)M	�*�,=�+M	�,�M�-M	�.�,=�/M	�0�,=�1M	�2�,=�3M	�4�,=�5M	�6�,=�7M	�8�,=�9M	�:�,=�;M	�<�,=�=M	�>�,=�?M	�@�,=�AM	�B�M�CM	�D�,=�EM	�F�,=�GM	�H�,=�IM	�J
�,=�KM	�L	�M�MM	�N�M�OM	�P
�,?�QM	�R
�N�SM	�T	�,>�UM	�V�,>�WM	�X�,>�YM	�Z�M�[M	�\	�N�]M	�^�,?�_M	�`�M�aM	�b�N�cM	�d�,?�eM	�f
�N�gM	�h
�N�iM	�j
�N�kM	�l	�N�mM	�n�N�oM	�p�N�qM	�r
�N�sM	�t
�N�uM	�v�M�wM	�x�M�yM	�z�M�{M	�|�M�}M	�~�M�M	�@
�,=�AM	�B�,=�CM	�D	�,=�EM	�F�,=�GM	�H
�N�IM	�J	�,=�KM	�L�,=�MM	�N�N�OM	�P
�N�QM	�R�C�SM	�T�,=�UM	�V�C�WM	�X�C�YM	�Z�,=�[M	�\
�I�]M	�^
�C�_M	�`�C�aM	�b	�,=�cM	�d�,=�eM	�f�,=�gM	�h�,B�iM	�j�,=�kM	�l�,=�mM	�n�,=�oM	�p�M�qM	�r�,=�sM	�t�M�uM	�v�M�wM	�x
�N�yM	�z
�N�{M	�|
�N�}M	�~
�N�M	�@�,=�AM	�B	�,=�CM	�D�,=�EM	�F�,=�GM	�H
�N�IM	�J�M�KM	�L	�,=�MM	�N�,=�OM	�P	�,=�QM	�R�,=�SM	�T�,=�UM	�V	�,=�WM	�X�,=�YM	�Z
�,=�[M	�\�,=�]M	�^	�,=�_M	�`�,=�aM	�b�,=�cM	�d�,=�eM	�f�,=�gM	�h�,=�iM	�j�M�kM	�l�,=�mM	�n�,=�oM	�p
�N�qM	�r�,=�sM	�t�,=�uM	�v�M�wM	�x�M�yM	�z	�,=�{M	�|�,=�}M	�~�,=�M	�@	�,=�AM	�B�,=�CM	�D�,=�EM	�F�,>�GM	�H	�,=�IM	�J�M�KM	�L�,=�MM	�N�,=�OM	�P�,=�QM	�R�,=�SM	�T�,=�UM	�V�M�WM	�X�,=�YM	�Z�,=�[M	�\�,=�]M	�^�M�_M	�`�,=�aM	�b�M�cM	�d�,=�eM	�f�,=�gM	�h�M�iM	�j�,=�kM	�l�,=�mM	�n�,=�oM	�p�,>�qM	�r�,=�sM	�t�M�uM	�v�,=�wM	�x�M�yM	�z
�,=�{M	�|�,=�}M	�~�,=�M	�@�,=�AM	�B�,=�CM	�D �C�EM	�F�,=�GM	�H	�,=�IM	�J�J�KM	�L�,=�MM	�N�M�OM	�P�,=�QM	�R	�,=�SM	�T�,=�UM	�V�,=�WM	�X�,=�YM	�Z�,=�[M	�\�,=�]M	�^�M�_M	�`�,=�aM	�b�,=�cM	�d�,=�eM	�f�,=�gM	�h�,=�iM	�j�,=�kM	�l�,=�mM	�n�,=�oM	�p�,=�qM	�r�,=�sM	�t�,=�uM	�v�,=�wM	�x�,=�yM	�z�,=�{M	�|�,=�}M	�~�,=�M	�@	�,>�AM	�B�,>�CM	�D	�,=�EM	�F�,=�GM	�H�,=�IM	�J	�M�KM	�L�M�MM	�N�,>�OM	�P�M�QM	�R	�,>�SM	�T�,>�UM	�V
�N�WM	�X�,=�YM	�Z	�,=�[M	�\�,=�]M	�^	�,=�_M	�`�,=�aM	�b�,=�cM	�d�,=�eM	�f�,=�gM	�h�,=�iM	�j�,=�kM	�l
�,=�mM	�n
�,=�oM	�p�,=�qM	�r�,=�sM	�t
�N�uM	�v�M�wM	�x�M�yM	�z	�,=�{M	�|�,=�}M	�~
�,=�M	�@�,=�AM	�B	�,=�CM	�D�,=�EM	�F
�,=�GM	�H
�,=�IM	�J�,=�KM	�L�,=�MM	�N
�N�OM	�P
�N�QM	�R	�,=�SM	�T�,=�UM	�V�,=�WM	�X�M�YM	�Z	�,=�[M	�\�,=�]M	�^�M�_M	�`
�N�aM	�b	�,=�cM	�d�,=�eM	�f
�,=�gM	�h	�,=�iM	�j�,=�kM	�l�,=�mM	�n
�N�oM	�p
�N�qM	�r
�N�sM	�t	�,=�uM	�v�,=�wM	�x�,=�yM	�z
�,>�{M	�|�M�}M	�~	�,=�M	�@�,=�AM	�B�,=�CM	�D�M�EM	�F�,=�GM	�H	�J�IM	�J�M�KM	�L�,=�MM	�N	�,=�OM	�P�,=�QM	�R�M�SM	�T�M�UM	�V	�,=�WM	�X�,=�YM	�Z	�,=�[M	�\�,=�]M	�^�,=�_M	�`�,>�aM	�b�,=�cM	�d�,>�eM	�f�,=�gM	�h�,>�iM	�j	�,=�kM	�l�,=�mM	�n�,=�oM	�p�,=�qM	�r	�,=�sM	�t�,=�uM	�v�,=�wM	�x	�,=�yM	�z�,=�{M	�|�M�}M	�~	�M�M	�@	�M�A	M	�B	�M�C	M	�D	�L�E	M	�F	�L�G	M	�H	�M�I	M	�J	�M�K	M	�L	�M�M	M	�N	�M�O	M	�P	�M�Q	M	�R		�,D�S	M	�T	�,D�U	M	�V	�,D�W	M	�X	�,?�Y	M	�Z	�,D�[	M	�\	
�N�]	M	�^	�O�_	M	�`		�,=�a	M	�b	�,=�c	M	�d	�M�e	M	�f		�M�g	M	�h	�M�i	M	�j		�M�k	M	�l	�M�m	M	�n	�M�o	M	�p	
�N�q	M	�r	
�M�s	M	�t	�M�u	M	�v		�M�w	M	�x	�M�y	M	�z	�,D�{	M	�|	�,=�}	M	�~		�,=�	M	�@
�,=�A
M	�B
	�M�C
M	�D
�M�E
M	�F
�M�G
M	�H
�,>�I
M	�J
�M�K
M	�L
�M�M
M	�N

�N�O
M	�P
�,>�Q
M	�R
�M�S
M	�T
	�,=�U
M	�V
�,=�W
M	�X
�,>�Y
M	�Z
�,>�[
M	�\
�,=�]
M	�^
	�,>�_
M	�`
�,>�a
M	�b
	�,>�c
M	�d
�,>�e
M	�f

�N�g
M	�h

�N�i
M	�j

�N�k
M	�l

�N�m
M	�n

�N�o
M	�p

�N�q
M	�r
�,>�s
M	�t

�N�u
M	�v
	�,=�w
M	�x
�,=�y
M	�z

�N�{
M	�|

�N�}
M	�~
	�,=�
M	�@�,=�AM	�B	�M�CM	�D�M�EM	�F�M�GM	�H
�N�IM	�J	�M�KM	�L�M�MM	�N	�,=�OM	�P�,=�QM	�R	�,=�SM	�T�,=�UM	�V�M�WM	�X
�N�YM	�Z	�,=�[M	�\�,=�]M	�^
�N�_M	�`
�N�aM	�b�M�cM	�d
�N�eM	�f
�N�gM	�h
�N�iM	�j	�,=�kM	�l�M�mM	�n�,=�oM	�p�,=�qM	�r	�,=�sM	�t�,=�uM	�v	�,=�wM	�x�,=�yM	�z�,=�{M	�|�,=�}M	�~�,=�M	�@�,=�AM	�B	�,=�CM	�D�,=�EM	�F
�,?�GM	�H
�,?�IM	�J	�,=�KM	�L�,=�MM	�N�,=�OM	�P	�,=�QM	�R�,=�SM	�T�M�UM	�V�,=�WM	�X	�M�YM	�Z�M�[M	�\�M�]M	�^	�M�_M	�`�M�aM	�b�M�cM	�d
�N�eM	�f
�N�gM	�h
�N�iM	�j	�,=�kM	�l�,=�mM	�n�,=�oM	�p	�,=�qM	�r�,=�sM	�t	�,=�uM	�v�,=�wM	�x
�,=�yM	�z�,=�{M	�|�,=�}M	�~�C�M	�@
�C�A
M	�B
	�,=�C
M	�D
�,=�E
M	�F
�M�G
M	�H
	�,=�I
M	�J
�,=�K
M	�L
�,=�M
M	�N

�N�O
M	�P

�N�Q
M	�R
	�,=�S
M	�T
�,=�U
M	�V
�,=�W
M	�X
	�M�Y
M	�Z
�M�[
M	�\
�N�]
M	�^
�,=�_
M	�`
�N�a
M	�b
	�,=�c
M	�d
�,=�e
M	�f
�M�g
M	�h

�N�i
M	�j
�M�k
M	�l
	�M�m
M	�n
�M�o
M	�p
�,D�q
M	�r
�M�s
M	�t
�M�u
M	�v
�,?�w
M	�x

�N�y
M	�z
	�,?�{
M	�|
�,=�}
M	�~
�,=�
M	�@�,=�AM	�B�,=�CM	�D�,?�EM	�F
�N�GM	�H
�N�IM	�J	�M�KM	�L�M�MM	�N
�N�OM	�P�M�QM	�R	�,=�SM	�T�,=�UM	�V	�,=�WM	�X�,=�YM	�Z�,=�[M	�\
�,=�]M	�^�,=�_M	�`�,=�aM	�b�M�cM	�d�,=�eM	�f�M�gM	�h�,=�iM	�j�,=�kM	�l	�,=�mM	�n�,=�oM	�p�,=�qM	�r�,=�sM	�t	�,=�uM	�v�,=�wM	�x�M�yM	�z	�M�{M	�|�M�}M	�~�,?�M	�@�M�AM	�B�,=�CM	�D�,?�EM	�F�M�GM	�H�M�IM	�J�,?�KM	�L�,=�MM	�N�,?�OM	�P�N�QM	�R�,=�SM	�T�,=�UM	�V�,=�WM	�X%�N�YM	�Z�M�[M	�\�M�]M	�^�M�_M	�`	�,=�aM	�b�,=�cM	�d	�,=�eM	�f�,=�gM	�h	�,=�iM	�j�,=�kM	�l�,=�mM	�n�M�oM	�p�M�qM	�r�,=�sM	�t
�N�uM	�v	�O�wM	�x�O�yM	�z�O�{M	�|�O�}M	�~�M�M	�@�N�AM	�B	�M�CM	�D�M�EM	�F	�N�GM	�H�N�IM	�J	�,>�KM	�L�,>�MM	�N�N�OM	�P�N�QM	�R�,>�SM	�T
�N�UM	�V�M�WM	�X�M�YM	�Z
�N�[M	�\�M�]M	�^	�,=�_M	�`�,=�aM	�b	�,>�cM	�d�,>�eM	�f�M�gM	�h
�N�iM	�j	�,=�kM	�l�,=�mM	�n�,=�oM	�p	�,=�qM	�r�,=�sM	�t	�,=�uM	�v�,=�wM	�x�,=�yM	�z�,A�{M	�|�,=�}M	�~�M�M	�@	�N�AM	�B�N�CM	�D�K�EM	�F�K�GM	�H�M�IM	�J
�N�KM	�L	�N�MM	�N�M�OM	�P�N�QM	�R	�M�SM	�T�M�UM	�V�M�WM	�X	�M�YM	�Z�M�[M	�\	�L�]M	�^�L�_M	�`�L�aM	�b�L�cM	�d�N�eM	�f�N�gM	�h	�,=�iM	�j�,=�kM	�l
�N�mM	�n
�N�oM	�p�M�qM	�r	�,=�sM	�t�,=�uM	�v	�N�wM	�x�N�yM	�z�M�{M	�|
�N�}M	�~
�N�M	�@	�M�AM	�B�N�CM	�D�L�EM	�F-:�,=�,=�,:�,7�,8�,9�,9�,=�,=�YM	��zS�
�G�S�
�G�S��H�S��G�	S�
�G�S��G�
S��G�S��G�S��G�S��G�S��G�S��G�S��G�S��G�S��G�S� �G�!S�"�G�#S�$�G�%S�&�G�'S�(�G�)S�*�G�+S�,�G�-S�.�G�/S�0�G�1S�2�G�3S�4�G�5S�6�G�7S�8�G�9S�:�G�;S�<�G�=S�>�G�?S�@�G�AS�D�G�ES�F�H�GS�H�G�IS�J�G�KS�L�G�MS�N�G�OS�P�G�QS�R�H�SS�T�G�US�V�G�WS�X�G�YS�Z�G�[S�\�G�]S�^�H�_S�`�H�aS�b�G�cS�d�G�eS�f�G�gS�h�G�iS�j�G�kS�l�G�mS�n�G�oS�p�G�qS�r�G�sS�t�G�uS�v�G�wS�x�G�yS�z�G�{S�|�G�}S�~�G�S�@�G�AS�B�G�CS�D�G�ES�F�G�GS�H�G�IS�J�H�KS�L�G�MS�N�G�OS�P�G�QS�R�G�SS�T�G�US�V�G�WS�X�G�YS�Z�G�[S�\�G�]S�^�G�_S�`�G�aS�b�G�cS�d�G�eS�f�G�gS�h�G�iS�j�G�kS�l�G�mS�n�G�oS�p�G�qS�r�G�sS�t�G�uS�v�G�wS�x�G�yS�z�G�{S�|�G�}S�~�G�S�@�G�AS�B�G�CS�D�G�ES�F�G�GS�H�G�IS�J�G�KS�L�G�MS�N�H�OS�P�G�QS�R�H�SS�T�G�US�V�G�WS�X�G�YS�Z�G�[S�\�G�]S�^�H�_S�`�G�aS�b�G�cS�d�G�eS�f�G�gS�h�G�iS�j�G�kS�l�G�mS�n�H�oS�p�G�qS�r�H�sS�t�G�uS�v�G�wS�x�G�yS�z�G�{S�|�G�}S�~�G�S�@�G�AS�B�G�CS�D�G�ES�F�G�GS�H�G�IS�J�G�KS�L�G�MS�N�H�OS�P�H�QS�R�H�SS�T�G�US�V�G�WS�X�G�YS�Z�H�[S�\�H�]S�^�H�_S�`�G�aS�b�G�cS�d�G�eS�f�H�gS�h�H�iS�j�H�kS�l�G�mS�n�G�oS�p�G�qS�r�G�sS�t�G�uS�v�G�wS�x�G�yS�z�G�{S�|�G�}S�~�G�S�@�G�AS�B�G�CS�D�G�ES�F�G�GS�H�G�IS�J�G�KS�L�G�MS�N�G�OS�P�G�QS�R�G�SS�T�G�US�V�G�WS�X�G�YS�Z�G�[S�\�G�]S�^�G�_S�`�G�aS�b�G�cS�d�G�eS�f�G�gS�h�G�iS�l�G�mS�n�G�oS�p�G�qS�r�H�sS�t�G�uS�v�H�wS�x�G�yS�z�G�{S�|�G�}S�~�G�S�@�G�AS�B�G�CS�D�G�ES�F�G�GS�H�G�IS�J�G�KS�L�H�MS�N�G�OS�P�G�QS�R�G�SS�T�G�US�V�G�WS�X�G�YS�Z�G�[S�\�G�]S�^
����eS��j6�t"���N�N�=�!��Z��	�
��	�G��O�	�G�	�
��	�G�	�G���w5�,��H�
�F��J��H��K��K��J��G��E�(�0�M,��^�
�	�
���
�	�
��r"�	��	�s\�AD�AD)�AD8�B2AE	�DAD&�D%AD&�D)AD5�D4AD5�D8
AE�EAE�E	AE�EAE

?>