� F�g�D��f�ddlZddlZddlZddlZddlZddlZddlZddlZddlZddl Z ddl Z ddl Z ddl m Z ddlmZmZmZddlmZmZmZmZmZmZmZmZmZmZmZddlmZddl m!Z!m"Z"ddl#m$Z$dd l%m&Z&m'Z'm(Z(d Z)ee*d fZ+d j,Z-d j,Z.dZ/Gd�de!��Z0Gd�de!��Z1dS)�N)� defaultdict)� BaseCookie�Morsel� SimpleCookie) � DefaultDict�Dict�Iterable�Iterator�List�Mapping�Optional�Set�Tuple�Union�cast)�URL�)�AbstractCookieJar�ClearCookiePredicate)� is_ip_address)� LooseCookies�PathLike�StrOrURL)� CookieJar�DummyCookieJar� Morsel[str]z{}/{}z{1}.{0}�dc ���eZdZdZejd��Zejd��Zejd��Zejdej ��Z ejd��Z e e j j�e jj��������dz Z ejeje����n%#eef$rejd ��ZYn e$rd ZYnwxYwedz Zd d d d d�dededeeeed fde e!j"dd f �fd�Z#e$defd���Z%de&dd fd�Z'de&dd fd�Z(d1de e)dd fd�Z*de+dd fd�Z,d2d�Z-de fd�Z.d3d �Z/d!ee0e+e+e+fdd fd"�Z1d#e2de+d$e+d%e+dd f d&�Z3e4��fd'e5d(e4dd fd)�Z6e4��fd*e4dd+fd,�Z7e8de+d-e+defd.���Z9e:d/e+de e fd0���Z;�xZ<S)4rz/Implements cookie storage adhering to RFC 6265.z][\x09\x20-\x2F\x3B-\x40\x5B-\x60\x7B-\x7E]*(?P<token>[\x00-\x08\x0A-\x1F\d:a-zA-Z\x7F-\xFF]+)z(\d{1,2}):(\d{1,2}):(\d{1,2})z (\d{1,2})zG(jan)|(feb)|(mar)|(apr)|(may)|(jun)|(jul)|(aug)|(sep)|(oct)|(nov)|(dec)z (\d{2,4}))�tzinfor) i� � ���;r#�����r$r$i���FTN)�unsafe� quote_cookie�treat_as_secure_origin�loopr%r&r'r(�returnc���t���|���tt��|_tt ��|_t��|_||_ ||_ |�g}not|t��r|� ��g}nDt|t��r#t|��� ��g}n d�|D��}||_g|_i|_dS)N�r(c��g|]L}t|t��r!t|�����n|�����MS�)� isinstance�strr�origin)�.0�urls �a/home/asafur/pinokio/api/open-webui.git/app/env/lib/python3.11/site-packages/aiohttp/cookiejar.py� <listcomp>z&CookieJar.__init__.<locals>.<listcomp>psT��&�&�&��&0��S�%9�%9�K��C�����!�!�!�s�z�z�|�|�&�&�&�)�super�__init__rr�_cookies�dict� _morsel_cache�set�_host_only_cookies�_unsafe� _quote_cookier.rr0r/�_treat_as_secure_origin� _expire_heap� _expirations)�selfr%r&r'r(� __class__s �r3r7zCookieJar.__init__Ws��� �����d��#�#�#�DO� �E �E �� � �� � � ��9<������� �)��� !� )�%'� "� "� �.�� 4� 4� �&<�&C�&C�&E�&E�%F� "� "� �.�� 4� 4� �&)�*@�&A�&A�&H�&H�&J�&J�%K� "� "�&�&�1�&�&�&� "�(>��$�FH���?A����r5c��|jS�N)r>�rBs r3r&zCookieJar.quote_cookiexs ���!�!r5� file_pathc���tj|��}|�d���5}tj|j|tj��ddd��dS#1swxYwYdS)N�wb��mode)�pathlib�Path�open�pickle�dumpr8�HIGHEST_PROTOCOL�rBrG�fs r3�savezCookieJar.save|s����L��+�+� � �^�^��^� &� &� C�!� �K�� �q�&�*A� B� B� B� C� C� C� C� C� C� C� C� C� C� C� C���� C� C� C� C� C� Cs�&A�A"�%A"c��tj|��}|�d���5}tj|��|_ddd��dS#1swxYwYdS)N�rbrJ)rLrMrNrO�loadr8rRs r3rWzCookieJar.load�s����L��+�+� � �^�^��^� &� &� +�!�"�K��N�N�D�M� +� +� +� +� +� +� +� +� +� +� +� +���� +� +� +� +� +� +s�A�A�A� predicatec���������j����j����j����j����j���dSt j�������fd��j���D��}|r��|��dSdS)Nc���g|]N\\}}}|���D]1\}}|||fx�� jvr� j��ks �|���/���2�OSr-)�itemsrA) r1�domain�path�cookie�name�morsel�key�nowrXrBs ����r3r4z#CookieJar.clear.<locals>.<listcomp>�s����  �  �  �&����� &� � ���  �  ���f���t�,�,���1B�B�B��%�c�*�c�1�1��y�� � �2� � 2�1�1�1r5) r@�clearr8r:r<rA�timer[�_delete_cookies)rBrX�to_delrarbs`` @@r3rczCookieJar.clear�s������� � � � � #� #� %� %� %� �M� � � !� !� !� � � $� $� &� &� &� � #� )� )� +� +� +� � � #� #� %� %� %� �F��i�k�k��  �  �  �  �  �  �  �*.�-�*=�*=�*?�*?�  �  �  �� � )� � � �� (� (� (� (� (� )� )r5r\c�<�������fd���dS)Nc�<�����|d��S)Nr\)�_is_domain_match)�xr\rBs ��r3�<lambda>z(CookieJar.clear_domain.<locals>.<lambda>�s���T�2�2�6�1�X�;�G�G�r5)rc�rBr\s``r3� clear_domainzCookieJar.clear_domain�s)���� � � �G�G�G�G�G�H�H�H�H�Hr5�Iterator[Morsel[str]]c#�K�|���|j���D]}|���Ed{V���dSrE)�_do_expirationr8�values)rB�vals r3�__iter__zCookieJar.__iter__�sb���� �������=�'�'�)�)� $� $�C��z�z�|�|� #� #� #� #� #� #� #� #� $� $r5c�b�td�|j���D����S)zReturn number of cookies. This function does not iterate self to avoid unnecessary expiration checks. c3�XK�|]%}t|�����V��&dSrE)�lenrq)r1r^s r3� <genexpr>z$CookieJar.__len__.<locals>.<genexpr>�s2����M�M�F�3�v�}�}���'�'�M�M�M�M�M�Mr5)�sumr8rqrFs r3�__len__zCookieJar.__len__�s/�� �M�M�d�m�6J�6J�6L�6L�M�M�M�M�M�Mr5c�$��t�j��x}sdS|tkrL|t�j��dzkr1�fd��jD���_t j�j��t j��}g}�jrj�jd\}}||krnSt j�j���j�|��|kr|� |���j�j|r�� |��dSdS)zRemove expired cookies.N�c�h��g|].}�j�|d��|dk�,|��/S)rr)rA�get)r1�entryrBs �r3r4z,CookieJar._do_expiration.<locals>.<listcomp>�sG���!�!�!���$�(�(��q��2�2�e�A�h�>�>��>�>�>r5r) rvr@� _MIN_SCHEDULED_COOKIE_EXPIRATIONrA�heapq�heapifyrd�heappopr}�appendre)rB�expire_heap_lenrbrf�when� cookie_keys` r3rpzCookieJar._do_expiration�sC���#&�t�'8�#9�#9�9�� � �F� �>� >� >��#�d�&7�"8�"8�1�"<�<�<� !�!�!�!�!�.�!�!�!�D� � �M�$�+� ,� ,� ,��i�k�k��-/���� *�#�0��3� �D�*��c�z�z�� �M�$�+� ,� ,� ,� � �$�$�Z�0�0�D�8�8�� � �j�)�)�)��� *� � )� � � �� (� (� (� (� (� )� )r5rfc��|D]�\}}}|j�||f��|j||f�|d��|j||f�|d��|j�|||fd����dSrE)r<�discardr8�popr:rA)rBrfr\r]r_s r3rezCookieJar._delete_cookies�s���"(� >� >� �F�D�$� � #� +� +�V�T�N� ;� ;� ;� �M�6�4�.� )� -� -�d�D� 9� 9� 9� � ���~� .� 2� 2�4�� >� >� >� � � !� !�6�4��"6�� =� =� =� =�  >� >r5r�r]r_c��|||f}|j�|��|krdStj|j||f��||j|<dSrE)rAr}r��heappushr@)rBr�r\r]r_r�s r3�_expire_cookiezCookieJar._expire_cookie�s\���d�D�)� � � � � �� ,� ,�� 4� 4� �F� ��t�(�4��*<�=�=�=�(,���*�%�%�%r5�cookies� response_urlc��|j}|jst|��rdSt|t��r|���}|D�]&\}}t|t ��st��}|||<||}|d}|r|ddkrd}|d=|s%|�#|j� ||f��|x}|d<|r|ddkr|dd�}||d<|r|� ||��s��|d}|r |dd krD|j }|� d ��sd }n d |d|� d ���z}||d<|�d ��}|d x} rg t| ��} t!t#j��| z|j��} |�| |||��nT#t($rd|d <YnCwxYw|d x} r5|�| ��x} r|�| |||��nd|d <||f}|j|�|��|kr1||j||<|j|�|d����(|���dS) zUpdate cookies.Nr\r$�.�rrr]�/zmax-age�expires)�raw_hostr=rr.r r[rrr<�addrir]� startswith�rfind�rstrip�int�minrd�MAX_TIMEr�� ValueError� _parse_dater8r}r:r�rp)rBr�r��hostnamer_r^�tmpr\r]�max_age� delta_seconds�max_age_expirationr�� expire_timeras r3�update_cookieszCookieJar.update_cookies�s ���(���|� � �h� 7� 7� � �F� �g�w� '� '� &��m�m�o�o�G�#�; 8�; 8�L�D�&��f�f�-�-� #�"�n�n��"��D� ��T����H�%�F�� %�&��*��+�+����8�$�� 5�h�2��'�+�+�X�t�,<�=�=�=�,4�4����)�� *�&��)�s�*�*�������#)��x� �� �� 5� 5�f�h� G� G� ���&�>�D�� &�4��7�c�>�>�#�(�����s�+�+�;��D�D���a�$�*�*�S�/�/�&9�!:�:�D�!%��v���;�;�s�#�#�D� ��+�+�w� +�+�$'��L�L�M�),�T�Y�[�[�=�-H�$�-�)X�)X�&��'�'�(:�F�D�$�O�O�O�O��!�+�+�+�(*�F�9�%�%�%�+����#�9�-�-�� +�"&�"2�"2�7�";�";�;�;�+��'�'� �V�T�4�H�H�H�H�(*�F�9�%��4�.�C��}�S�!�%�%�d�+�+�v�5�5�,2�� �c�"�4�(��"�3�'�+�+�D�$�7�7�7�� �������s�3AG�G�G� request_url�BaseCookie[str]c ���|jrt��n t��}|js|S|���|js|St |��t ur;tjdt |����td���t |��}|j pd}|j dv}|rc|j r\t ��}tjt��5|���}ddd��n #1swxYwY||j v}|jd���D]}|j||j<�t)|��r |js|S|f}n:t-jt1|�d����t4��}t-j|j�d ��t8��}t-j||��} t=|j��} | D]�} |j| ���D]�\} } | d }|| f|j vr||kr�t=| d ��| kr�9|r | d r�D| |j!| vr|j!| | || <�jtEd | �#| jtI������}|�%| j| j| j&��||j!| | <||| <�ی�|S)z8Returns this jar's cookies filtered by their attributes.zQfilter_cookies expects yarl.URL instances only,and will stop working in 4.x, got r{)� stacklevelr�)�https�wssN)r�r�r�r�r\r]�securer)'r>rrr8rp�typer�warnings�warn�DeprecationWarningr��schemer?� contextlib�suppressr�r0rq�valuerarr=� itertools� accumulate�reversed�split�_FORMAT_DOMAIN_REVERSEDr]� _FORMAT_PATH�productrvr[r<r:rr}rr;� coded_value)rBr��filteredr�� is_not_secure�request_origin�c�domains�paths�pairs�path_len�pr_r^r\�mrsl_vals r3�filter_cookieszCookieJar.filter_cookies1sf��#�0� B�L�N�N�N�j�l�l� ��}� ��O� �������}� ��O� � � � �C� '� '� �M�I�59�+�5F�5F�I�I�"��  � � � � �k�*�*�K��'�-�2��#�*�2B�B� � � O�T�9� O� �U�U�N��$�Z�0�0� 6� 6�!,�!3�!3�!5�!5�� 6� 6� 6� 6� 6� 6� 6� 6� 6� 6� 6���� 6� 6� 6� 6�*�$�2N�N�M���x�(�/�/�1�1� &� &�A��g�H�Q�U�O�O� �� "� "� ��<� ���&.�[�G�G� �*������,�,�-�-�/F���G� �$�[�%5�%;�%;�C�%@�%@�,�O�O���!�'�5�1�1���{�'�(�(��� *� *�A� $� �a� 0� 6� 6� 8� 8� *� *� ��f���)���D�>�T�%<�<�<��8�AS�AS���v�f�~�&�&��1�1�� ��V�H�%5����4�-�a�0�0�0�%)�%7��%:�4�%@�H�T�N�� � �v�z�z�&�*�f�h�h�/O�/O�P�P��� � �V�Z���v�7I�J�J�J�.6��"�1�%�d�+�!)�����/ *�2�s�C>�>D�Dr�c��||krdS|�|��sdS|dt|�� �}|�d��sdSt|�� S)z0Implements domain matching adhering to RFC 6265.TFNr�)�endswithrvr)r\r�� non_matchings r3rizCookieJar._is_domain_matchsq�� �v� � ��4�� � ��(�(� ��5���3�v�;�;�,��/� ��$�$�S�)�)� ��5� ��*�*�*�*r5�date_strc ��|sdSd}d}d}d}dx}x}}d} d} d} |j�|��D�]} | �d��} |sA|j�| ��}|r%d}d�|���D��\}}}�[|s@|j�| ��}|r$d}t|�����} ��|s/|j�| ��}|rd}|j �J�|j } ��|s?|j �| ��}|r#d}t|�����} ��d| cxkrdkr nn| d z } nd| cxkrd krnn| d z } d||||fvrdSd | cxkrd ksndS| dks|dks |dks|dkrdStj | | | |||dddf ��S)z4Implements date string parsing adhering to RFC 6265.NFr�tokenTc3�4K�|]}t|��V��dSrE)r�)r1�ss r3rwz(CookieJar._parse_date.<locals>.<genexpr>�s(����+P�+P�q�C��F�F�+P�+P�+P�+P�+P�+Pr5�F�cil�Ei�rr!iAr"r#r$) �DATE_TOKENS_RE�finditer�group�DATE_HMS_TIME_RE�match�groups�DATE_DAY_OF_MONTH_REr�� DATE_MONTH_RE� lastindex� DATE_YEAR_RE�calendar�timegm)�clsr�� found_time� found_day� found_month� found_year�hour�minute�second�day�month�year� token_matchr�� time_match� day_match� month_match� year_matchs r3r�zCookieJar._parse_date�sg��� ��4�� �� �� �� �!"�"��"�v���������-�6�6�x�@�@� 3� 3�K��%�%�g�.�.�E�� � �1�7�7��>�>� ���!%�J�+P�+P�J�<M�<M�<O�<O�+P�+P�+P�(�D�&�&��� ��4�:�:�5�A�A� ��� $�I��i�o�o�/�/�0�0�C��� �!�/�5�5�e�<�<� ���"&�K�&�0�<�<�<�'�1�E��� 3� �-�3�3�E�:�:� ��3�!%�J��z�/�/�1�1�2�2�D�� �� � � � �� � � � � � �D�L�D�D� �$�_�_�_�_�"�_�_�_�_�_� �D�L�D� �Y� �Z��D� D� D��4��C�~�~�~�~�2�~�~�~�~��4� �$�;�;�$��)�)�v��{�{�f�r�k�k��4����e�S�$����B�PR�S�T�T�Tr5rE�r)rn)r)N)=�__name__� __module__� __qualname__�__doc__�re�compiler�r�r��Ir�r�r��datetime�max�replace�timezone�utc� timestampr�r�r�rd�gmtime�OSErrorr�� OverflowError� SUB_MAX_TIME�boolrrr r �asyncio�AbstractEventLoopr7�propertyr&rrTrWrrcr/rmrsryrprre�floatr�rrr�r�� staticmethodri� classmethodr�� __classcell__�rCs@r3rr2sT�������9�9��R�Z� >���N� "�r�z�"B�C�C��%�2�:�l�3�3���B�J�Q� ����M� �2�:�l�+�+�L� ��H� � !� )� )��1B�1F� )� G� G� Q� Q� S� S�T�T�WX�X� � ���� �� �H�-�-�.�.�.�.�� �Z� �K�K�K�#�8�?�#I�J�J���� �������������a�<�L� �!�HL�48� B�B�B��B�� B� !&�h��X���&D� E� B� �w�0�1� B� �B�B�B�B�B�B�B�"�d�"�"�"��X�"�C�h�C�4�C�C�C�C� +�h�+�4�+�+�+�+� )�)�x�(<�=�)��)�)�)�)�.I�3�I�4�I�I�I�I�$�$�$�$� N��N�N�N�N�))�))�))�))�V>�d�5��c�3��+?�&@�>�T�>�>�>�>�-�5�-�#�-�S�-��-�PT�-�-�-�-�IL����H�H�l�H�#�H�RV�H�H�H�H�T14����L�L�#�L�:K�L�L�L�L�\� +�� +�� +�� +� +� +��\� +��=U�3�=U�8�C�=�=U�=U�=U��[�=U�=U�=U�=U�=Us�'C�C(�C(�'C(rc����eZdZdZdd�deejddf�fd�Zdd�Zde fd �Z e de fd ���Z dd eeddfd �Zd eddfd�Ze��fdededdfd�Zdeddfd�Z�xZS)rzxImplements a dummy cookie storage. It can be used with the ClientSession when no cookie processing is needed. Nr+r(r)c�L��t���|���dS)Nr+)r6r7)rBr(rCs �r3r7zDummyCookieJar.__init__�s$��� �����d��#�#�#�#�#r5rnc#� K�dSrEr-rFs r3rszDummyCookieJar.__iter__�s���� � r5c��dS)Nrr-rFs r3ryzDummyCookieJar.__len__�s���qr5c��dS)NTr-rFs r3r&zDummyCookieJar.quote_cookie�s���tr5rXc��dSrEr-)rBrXs r3rczDummyCookieJar.clear���� �r5r\c��dSrEr-rls r3rmzDummyCookieJar.clear_domain�rr5r�r�c��dSrEr-)rBr�r�s r3r�zDummyCookieJar.update_cookies�rr5r�r�c��t��SrE)r)rBr�s r3r�zDummyCookieJar.filter_cookies�s ���~�~�r5r�rE)r�r�r�r�r rrr7rsr�ryrrr&rrcr/rmrrr�r�rrs@r3rr�sr��������� GK�$�$�$���)B� C�$�t�$�$�$�$�$�$�������������d�����X�� � �x�(<�=� �� � � � � �3� �4� � � � �IL���� � �l� �#� �RV� � � � ��#��2C��������r5r)2rr�r�r�r�r��osrLrOr�rdr�� collectionsr� http.cookiesrrr�typingrrr r r r r rrrr�yarlr�abcrr�helpersr�typedefsrrr�__all__r/� CookieItem�formatr�r�rrrr-r5r3�<module>rs&������������������ � � � ����� � � � ����� � � � � � � � � � � � �����#�#�#�#�#�#�9�9�9�9�9�9�9�9�9�9� � � � � � � � � � � � � � � � � � � � � � � � � � �������8�8�8�8�8�8�8�8�"�"�"�"�"�"�6�6�6�6�6�6�6�6�6�6� )���3� �%� &� ��~� �#�*�� $'� �[U�[U�[U�[U�[U�!�[U�[U�[U�| �����&�����r5
Memory