§
    Ÿj% ã                   ó¦
  — d dl Z d dlZd dlZd dlmZ d dlmZ d dlmZ d dl	m
Z
 d dlmZ d dlmZ d dlmZmZmZ d d	lmZmZmZ d d
lmZ d dlmZ d dlmZ d dlmZ d dlm Z m!Z! d dl"m#Z# d dl$m%Z%  G d„ d¦  «        Z& G d„ d¦  «        Z' G d„ de¦  «        Z( G d„ d¦  «        Z)e G d„ de)e'¦  «        ¦   «         Z*d„ e'j+        e'j,        e'j-        e'j.        e'j/        fD ¦   «         d„ e'j+        e'j0        e'j,        e'j-        e'j.        e'j/        fD ¦   «         d„ e'j+        e'j0        e'j,        e'j-        e'j.        fD ¦   «         d„ e'j1        e'j2        e'j3        e'j4        e'j5        fD ¦   «         d„ e'j+        e'j0        e'j,        e'j-        e'j.        e'j/        fD ¦   «         e'j+        ej6        ej7        ej8        fej8        ej7        ej8        fej7        ej6        ej8        fej7        ej8        ej8        fej7        ej7        ej7        fej9        ej7        ej9        fej7        ej9        ej9        fgie'j0        ej6        ej7        ej8        fej8        ej7        ej8        fej6        ej6        ej7        fej6        ej8        ej7        fej8        ej6        ej7        fej8        ej8        ej7        fej7        ej7        ej7        fej9        ej7        ej9        fej9        ej9        ej7        fg	igZ: ee;¦  «        Z<d „ Z=e:D ]3Z>e> ?                    ¦   «         D ]\  Z@ZAeAD ]\  ZBZCZD e=eBe@eCeD¦  «         ŒŒŒ4 ejE        d!¬"¦  «        d#„ ¦   «         ZF G d$„ d%e&e*¦  «        ZG G d&„ d'eG¦  «        ZH G d(„ d)eG¦  «        ZI ed*¬+¦  «         G d,„ d-e'¦  «        ¦   «         ZJ G d.„ d/eJ¦  «        ZK G d0„ d1eJ¦  «        ZL G d2„ d3eJ¦  «        ZM ed4¬+¦  «         G d5„ d6e&e*¦  «        ¦   «         ZN ed7¬+¦  «         G d8„ d9e&e*¦  «        ¦   «         ZO G d:„ d;e*¦  «        ZP G d<„ d=e*¦  «        ZQ G d>„ d?e*¦  «        ZR G d@„ dAe*¦  «        ZS G dB„ dCe*¦  «        ZT G dD„ dEe*¦  «        ZU G dF„ dGeN¦  «        ZV G dH„ dIeV¦  «        ZW edJ¬+¦  «         G dK„ dLe&e*¦  «        ¦   «         ZX G dM„ dNeX¦  «        ZY edO¬+¦  «         G dP„ dQe*¦  «        ¦   «         ZZ edR¬+¦  «         G dS„ dTe&e*¦  «        ¦   «         Z[ G dU„ dVe)e'¦  «        Z\ G dW„ dXe\¦  «        Z] edY¬+¦  «         G dZ„ d[e*¦  «        ¦   «         Z^ G d\„ d]e&e*¦  «        Z_ G d^„ d_e¦  «        Z` G d`„ dae*¦  «        Za G db„ dcea¦  «        Zb G dd„ deea¦  «        ZcdS )fé    N)Údefaultdict©ÚDecimal)ÚEnum)Úchain©ÚNoneType)ÚUUID)ÚEmptyResultSetÚ
FieldErrorÚFullResultSet)ÚDatabaseErrorÚNotSupportedErrorÚ
connection)Úfields)Ú
LOOKUP_SEP)ÚQ)Údeconstructible)Úcached_propertyÚclassproperty)Úmake_hashable)Ú	signaturec                   ó   — e Zd ZdZd„ ZdS )ÚSQLiteNumericMixinzp
    Some expressions with output_field=DecimalField() must be cast to
    numeric to be properly filtered.
    c                 ó–   —  | j         ||fi |¤Ž\  }}	 | j                             ¦   «         dk    rd|z  }n# t          $ r Y nw xY w||fS )NÚDecimalFieldz(CAST(%s AS NUMERIC)))Úas_sqlÚoutput_fieldÚget_internal_typer   )ÚselfÚcompilerr   Úextra_contextÚsqlÚparamss         úi/var/www/finuniver-perm.ru/html/student/venv/lib/python3.11/site-packages/django/db/models/expressions.pyÚ	as_sqlitezSQLiteNumericMixin.as_sqlite   su   € Ø!�d”k (¨JÐHÐH¸-ÐHÐH‰ˆˆVð	ØÔ ×2Ò2Ñ4Ô4¸ÒFÐFØ-°Ñ3�øøÝð 	ð 	ð 	ØˆDð	øøøà�Fˆ{Ðs   ”"7 ·
AÁAN)Ú__name__Ú
__module__Ú__qualname__Ú__doc__r&   © ó    r%   r   r      s-   € € € € € ðð ð
ð ð ð ð r,   r   c                   óÚ   — e Zd ZdZdZdZdZdZdZdZ	dZ
d	Zd
ZdZdZd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z d„ Z!d „ Z"d!„ Z#d"„ Z$d#„ Z%d$„ Z&d%„ Z'd&„ Z(d'S )(Ú
Combinablezu
    Provide the ability to combine one or two objects with
    some connector. For example F('foo') + F('bar').
    ú+ú-Ú*ú/ú^z%%ú&ú|z<<z>>ú#c                 óˆ   — t          |d¦  «        st          |¦  «        }|rt          ||| ¦  «        S t          | ||¦  «        S )NÚresolve_expression)ÚhasattrÚValueÚCombinedExpression)r    ÚotherÚ	connectorÚreverseds       r%   Ú_combinezCombinable._combine?   sL   € Ý�uÐ2Ñ3Ô3ð 	!å˜%‘L”LˆEàð 	>Ý% e¨Y¸Ñ=Ô=Ð=Ý! $¨	°5Ñ9Ô9Ð9r,   c                 ó:   — |                       d| j        d¦  «        S )NéÿÿÿÿF©r?   ÚMUL©r    s    r%   Ú__neg__zCombinable.__neg__L   s   € Ø�}Š}˜R ¤¨5Ñ1Ô1Ð1r,   c                 ó:   — |                       || j        d¦  «        S ©NF©r?   ÚADD©r    r<   s     r%   Ú__add__zCombinable.__add__O   ó   € Ø�}Š}˜U D¤H¨eÑ4Ô4Ð4r,   c                 ó:   — |                       || j        d¦  «        S rG   ©r?   ÚSUBrJ   s     r%   Ú__sub__zCombinable.__sub__R   rL   r,   c                 ó:   — |                       || j        d¦  «        S rG   rB   rJ   s     r%   Ú__mul__zCombinable.__mul__U   rL   r,   c                 ó:   — |                       || j        d¦  «        S rG   ©r?   ÚDIVrJ   s     r%   Ú__truediv__zCombinable.__truediv__X   rL   r,   c                 ó:   — |                       || j        d¦  «        S rG   ©r?   ÚMODrJ   s     r%   Ú__mod__zCombinable.__mod__[   rL   r,   c                 ó:   — |                       || j        d¦  «        S rG   ©r?   ÚPOWrJ   s     r%   Ú__pow__zCombinable.__pow__^   rL   r,   c                 ó¢   — t          | dd¦  «        r0t          |dd¦  «        rt          | ¦  «        t          |¦  «        z  S t          d¦  «        ‚©NÚconditionalFúFUse .bitand(), .bitor(), and .bitxor() for bitwise logical operations.©Úgetattrr   ÚNotImplementedErrorrJ   s     r%   Ú__and__zCombinable.__and__a   óV   € Ý�4˜¨Ñ.Ô.ð 	&µ7¸5À-ÐQVÑ3WÔ3Wð 	&Ý�T‘7”7�Q˜u™XœXÑ%Ð%Ý!ØTñ
ô 
ð 	
r,   c                 ó:   — |                       || j        d¦  «        S rG   )r?   ÚBITANDrJ   s     r%   ÚbitandzCombinable.bitandh   ó   € Ø�}Š}˜U D¤K°Ñ7Ô7Ð7r,   c                 ó:   — |                       || j        d¦  «        S rG   )r?   ÚBITLEFTSHIFTrJ   s     r%   ÚbitleftshiftzCombinable.bitleftshiftk   s   € Ø�}Š}˜U DÔ$5°uÑ=Ô=Ð=r,   c                 ó:   — |                       || j        d¦  «        S rG   )r?   ÚBITRIGHTSHIFTrJ   s     r%   ÚbitrightshiftzCombinable.bitrightshiftn   s   € Ø�}Š}˜U DÔ$6¸Ñ>Ô>Ð>r,   c                 ó¢   — t          | dd¦  «        r0t          |dd¦  «        rt          | ¦  «        t          |¦  «        z  S t          d¦  «        ‚r`   rc   rJ   s     r%   Ú__xor__zCombinable.__xor__q   rg   r,   c                 ó:   — |                       || j        d¦  «        S rG   )r?   ÚBITXORrJ   s     r%   ÚbitxorzCombinable.bitxorx   rk   r,   c                 ó¢   — t          | dd¦  «        r0t          |dd¦  «        rt          | ¦  «        t          |¦  «        z  S t          d¦  «        ‚r`   rc   rJ   s     r%   Ú__or__zCombinable.__or__{   rg   r,   c                 ó:   — |                       || j        d¦  «        S rG   )r?   ÚBITORrJ   s     r%   ÚbitorzCombinable.bitor‚   s   € Ø�}Š}˜U D¤J°Ñ6Ô6Ð6r,   c                 ó:   — |                       || j        d¦  «        S ©NTrH   rJ   s     r%   Ú__radd__zCombinable.__radd__…   ó   € Ø�}Š}˜U D¤H¨dÑ3Ô3Ð3r,   c                 ó:   — |                       || j        d¦  «        S r}   rN   rJ   s     r%   Ú__rsub__zCombinable.__rsub__ˆ   r   r,   c                 ó:   — |                       || j        d¦  «        S r}   rB   rJ   s     r%   Ú__rmul__zCombinable.__rmul__‹   r   r,   c                 ó:   — |                       || j        d¦  «        S r}   rT   rJ   s     r%   Ú__rtruediv__zCombinable.__rtruediv__Ž   r   r,   c                 ó:   — |                       || j        d¦  «        S r}   rX   rJ   s     r%   Ú__rmod__zCombinable.__rmod__‘   r   r,   c                 ó:   — |                       || j        d¦  «        S r}   r\   rJ   s     r%   Ú__rpow__zCombinable.__rpow__”   r   r,   c                 ó    — t          d¦  «        ‚©Nrb   ©re   rJ   s     r%   Ú__rand__zCombinable.__rand__—   ó   € Ý!ØTñ
ô 
ð 	
r,   c                 ó    — t          d¦  «        ‚r‹   rŒ   rJ   s     r%   Ú__ror__zCombinable.__ror__œ   rŽ   r,   c                 ó    — t          d¦  «        ‚r‹   rŒ   rJ   s     r%   Ú__rxor__zCombinable.__rxor__¡   rŽ   r,   c                 ó    — t          | ¦  «        S ©N)ÚNegatedExpressionrD   s    r%   Ú
__invert__zCombinable.__invert__¦   s   € Ý  Ñ&Ô&Ð&r,   N))r'   r(   r)   r*   rI   rO   rC   rU   r]   rY   ri   rz   rm   rp   ru   r?   rE   rK   rP   rR   rV   rZ   r^   rf   rj   rn   rq   rs   rv   rx   r{   r~   r�   rƒ   r…   r‡   r‰   r�   r�   r’   r–   r+   r,   r%   r.   r.   &   sá  € € € € € ðð ð €CØ
€CØ
€CØ
€CØ
€Cð €Cð
 €FØ€EØ€LØ€MØ€Fð:ð :ð :ð2ð 2ð 2ð5ð 5ð 5ð5ð 5ð 5ð5ð 5ð 5ð5ð 5ð 5ð5ð 5ð 5ð5ð 5ð 5ð
ð 
ð 
ð8ð 8ð 8ð>ð >ð >ð?ð ?ð ?ð
ð 
ð 
ð8ð 8ð 8ð
ð 
ð 
ð7ð 7ð 7ð4ð 4ð 4ð4ð 4ð 4ð4ð 4ð 4ð4ð 4ð 4ð4ð 4ð 4ð4ð 4ð 4ð
ð 
ð 
ð

ð 
ð 
ð

ð 
ð 
ð
'ð 'ð 'ð 'ð 'r,   r.   c                   ó   — e Zd ZdS )ÚOutputFieldIsNoneErrorN)r'   r(   r)   r+   r,   r%   r˜   r˜   ª   s   € € € € € Ø€Dr,   r˜   c                   ó¤  — e Zd ZdZeZdZdZdZdZ	dZ
dZdZd'd„Zd„ Zd„ Zd„ Zd	„ Zd
„ Zd„ Zed„ ¦   «         Zed„ ¦   «         Zed„ ¦   «         Zed„ ¦   «         Z	 d(d„Zed„ ¦   «         Zed„ ¦   «         Zed„ ¦   «         Zed„ ¦   «         Zd„ Ze d„ ¦   «         Z!ed„ ¦   «         Z"d„ Z#d„ Z$d„ Z%d„ Z&d„ Z'd„ Z(d„ Z)d„ Z*d „ Z+d!„ Z,d"„ Z-d#„ Z.d$„ Z/d%„ Z0d&„ Z1dS ))ÚBaseExpressionz%Base class for all query expressions.FTNc                 ó   — |�	|| _         d S d S r”   ©r   ©r    r   s     r%   Ú__init__zBaseExpression.__init__Á   s   € ØÐ#Ø ,ˆDÔÐÐð $Ð#r,   c                 ód   — | j                              ¦   «         }|                     dd ¦  «         |S )NÚconvert_value)Ú__dict__ÚcopyÚpop)r    Ústates     r%   Ú__getstate__zBaseExpression.__getstate__Å   s.   € Ø”×"Ò"Ñ$Ô$ˆØ�	Š	�/ 4Ñ(Ô(Ð(Øˆr,   c                 óh   — | j         | j        u rg n| j         g| j                             |¦  «        z   S r”   )r    Ú_convert_value_noopr   Úget_db_converters©r    r   s     r%   r¨   z BaseExpression.get_db_convertersÊ   sC   € ð Ô! TÔ%=Ð=Ð=ð ˆBàÔ$Ð%ØÔ×/Ò/°
Ñ;Ô;ñ	<ð 	<r,   c                 ó   — g S r”   r+   rD   s    r%   Úget_source_expressionsz%BaseExpression.get_source_expressionsÑ   ó   € Øˆ	r,   c                 ó   — |rJ ‚d S r”   r+   ©r    Úexprss     r%   Úset_source_expressionsz%BaseExpression.set_source_expressionsÔ   s   € ØÐÐÐÐÐr,   c                 ó   — d„ |D ¦   «         S )Nc                 ó˜   — g | ]G}t          |d ¦  «        r|n2t          |t          ¦  «        rt          |¦  «        nt	          |¦  «        ‘ŒHS ©r8   )r9   Ú
isinstanceÚstrÚFr:   ©Ú.0Úargs     r%   ú
<listcomp>z5BaseExpression._parse_expressions.<locals>.<listcomp>Ø   sa   € ð 
ð 
ð 
ð õ ˜3Ð 4Ñ5Ô5ðF��å *¨3µÑ 4Ô 4ÐD•a˜‘f”f�f½%À¹*¼*ð	
ð 
ð 
r,   r+   )r    Úexpressionss     r%   Ú_parse_expressionsz!BaseExpression._parse_expressions×   s%   € ð
ð 
ð #ð
ñ 
ô 
ð 	
r,   c                 ó    — t          d¦  «        ‚)aÆ  
        Responsible for returning a (sql, [params]) tuple to be included
        in the current query.

        Different backends can provide their own implementation, by
        providing an `as_{vendor}` method and patching the Expression:

        ```
        def override_as_sql(self, compiler, connection):
            # custom logic
            return super().as_sql(compiler, connection)
        setattr(Expression, 'as_' + connection.vendor, override_as_sql)
        ```

        Arguments:
         * compiler: the query compiler responsible for generating the query.
           Must have a compile method, returning a (sql, [params]) tuple.
           Calling compiler(value) will return a quoted `value`.

         * connection: the database connection used for the current query.

        Return: (sql, params)
          Where `sql` is a string containing ordered sql parameters to be
          replaced with the elements of the list `params`.
        z"Subclasses must implement as_sql()rŒ   ©r    r!   r   s      r%   r   zBaseExpression.as_sqlá   s   € õ4 "Ð"FÑGÔGÐGr,   c                 óX   — t          d„ |                      ¦   «         D ¦   «         ¦  «        S )Nc              3   ó(   K  — | ]}|o|j         V — Œd S r”   )Úcontains_aggregate©r¸   Úexprs     r%   ú	<genexpr>z4BaseExpression.contains_aggregate.<locals>.<genexpr>ÿ   s;   è è € ð 
ð 
Ø15ˆDÐ,�TÔ,ð
ð 
ð 
ð 
ð 
ð 
r,   ©Úanyr«   rD   s    r%   rÁ   z!BaseExpression.contains_aggregateý   s<   € åð 
ð 
Ø9=×9TÒ9TÑ9VÔ9Vð
ñ 
ô 
ñ 
ô 
ð 	
r,   c                 óX   — t          d„ |                      ¦   «         D ¦   «         ¦  «        S )Nc              3   ó(   K  — | ]}|o|j         V — Œd S r”   )Úcontains_over_clauserÂ   s     r%   rÄ   z6BaseExpression.contains_over_clause.<locals>.<genexpr>  s;   è è € ð 
ð 
Ø37ˆDÐ.�TÔ.ð
ð 
ð 
ð 
ð 
ð 
r,   rÅ   rD   s    r%   rÉ   z#BaseExpression.contains_over_clause  s<   € åð 
ð 
Ø;?×;VÒ;VÑ;XÔ;Xð
ñ 
ô 
ñ 
ô 
ð 	
r,   c                 óX   — t          d„ |                      ¦   «         D ¦   «         ¦  «        S )Nc              3   ó(   K  — | ]}|o|j         V — Œd S r”   )Úcontains_column_referencesrÂ   s     r%   rÄ   z<BaseExpression.contains_column_references.<locals>.<genexpr>  s>   è è € ð 
ð 
àð Ð4�TÔ4ð
ð 
ð 
ð 
ð 
ð 
r,   rÅ   rD   s    r%   rÌ   z)BaseExpression.contains_column_references	  ó<   € åð 
ð 
à×3Ò3Ñ5Ô5ð
ñ 
ô 
ñ 
ô 
ð 	
r,   c                 óX   — t          d„ |                      ¦   «         D ¦   «         ¦  «        S )Nc              3   óJ   K  — | ]}|ot          |d d¦  «        p|j        V — ŒdS )ÚsubqueryFN)rd   Úcontains_subqueryrÂ   s     r%   rÄ   z3BaseExpression.contains_subquery.<locals>.<genexpr>  sO   è è € ð 
ð 
àð ÐQ•g˜d J°Ñ6Ô6ÐP¸$Ô:Pð
ð 
ð 
ð 
ð 
ð 
r,   rÅ   rD   s    r%   rÑ   z BaseExpression.contains_subquery  rÍ   r,   c                 ó0  ‡‡‡‡‡— |                       ¦   «         }‰|_        ˆˆˆˆˆfd„|                     ¦   «         D ¦   «         }| j        s5t	          d„ |D ¦   «         ¦  «        rt          | j        j        › d�¦  «        ‚|                     |¦  «         |S )a
  
        Provide the chance to do any preprocessing or validation before being
        added to the query.

        Arguments:
         * query: the backend query implementation
         * allow_joins: boolean allowing or denying use of joins
           in this query
         * reuse: a set of reusable joins for multijoins
         * summarize: a terminal aggregate clause
         * for_save: whether this expression about to be used in a save or update

        Return: an Expression to be added to the query.
        c           	      óJ   •— g | ]}|�|                      ‰‰‰‰‰¦  «        nd ‘Œ S r”   r³   )r¸   rÃ   Úallow_joinsÚfor_saveÚqueryÚreuseÚ	summarizes     €€€€€r%   rº   z5BaseExpression.resolve_expression.<locals>.<listcomp>*  sO   ø€ ð 
ð 
ð 
ð ð Ð#ð ×'Ò'¨¨{¸EÀ9ÈhÑWÔWÐWàð	
ð 
ð 
r,   c              3   ó@   K  — | ]}t          |t          ¦  «        V — Œd S r”   )r´   ÚColPairsrÂ   s     r%   rÄ   z4BaseExpression.resolve_expression.<locals>.<genexpr>2  s=   è è € ð 9
ð 9
Ø+/�J�t�XÑ&Ô&ð9
ð 9
ð 9
ð 9
ð 9
ð 9
r,   z4 expression does not support composite primary keys.)	r¢   Ú
is_summaryr«   Úallows_composite_expressionsrÆ   Ú
ValueErrorÚ	__class__r'   r°   )r    rÖ   rÔ   r×   rØ   rÕ   ÚcÚsource_expressionss    `````  r%   r8   z!BaseExpression.resolve_expression  sé   øøøøø€ ð" �IŠI‰KŒKˆØ ˆŒð
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð ×0Ò0Ñ2Ô2ð
ñ 
ô 
Ðð Ô0ð 	µSð 9
ð 9
Ø3Eð9
ñ 9
ô 9
ñ 6
ô 6
ð 	õ Ø”>Ô*ð *ð *ð *ñô ð ð 	
× Ò Ð!3Ñ4Ô4Ð4Øˆr,   c                 ó@   — t          | j        t          j        ¦  «        S r”   )r´   r   r   ÚBooleanFieldrD   s    r%   ra   zBaseExpression.conditional<  s   € å˜$Ô+­VÔ-@ÑAÔAÐAr,   c                 ó   — | j         S r”   rœ   rD   s    r%   ÚfieldzBaseExpression.field@  s   € àÔ Ð r,   c                 óP   — |                       ¦   «         }|€t          d¦  «        ‚|S )z+Return the output type of this expressions.Nz4Cannot resolve expression type, unknown output_field)Ú_resolve_output_fieldr˜   r�   s     r%   r   zBaseExpression.output_fieldD  s8   € ð ×1Ò1Ñ3Ô3ˆØÐÝ(ØFñô ð ð Ðr,   c                 ó4   — 	 | j         S # t          $ r Y dS w xY w)z†
        Return the output field of this expression, or None if
        _resolve_output_field() didn't return an output type.
        N)r   r˜   rD   s    r%   Ú_output_field_or_nonez$BaseExpression._output_field_or_noneN  s2   € ð	ØÔ$Ð$øÝ%ð 	ð 	ð 	ØˆFˆFð	øøøs   ‚	 ‰
–c           	      óÚ   — d„ |                       ¦   «         D ¦   «         }|D ]I}|D ]A}t          ||j        ¦  «        s*t          d|j        j        ›d|j        j        ›d�¦  «        ‚ŒB|c S dS )a}  
        Attempt to infer the output type of the expression.

        As a guess, if the output fields of all source fields match then simply
        infer the same type here.

        If a source's output field resolves to None, exclude it from this check.
        If all sources are None, then an error is raised higher up the stack in
        the output_field property.
        c              3   ó   K  — | ]}|®|V — Œ	d S r”   r+   )r¸   Úsources     r%   rÄ   z7BaseExpression._resolve_output_field.<locals>.<genexpr>g  s0   è è € ð 
ð 
Ø¸VÐ=OˆFÐ=OÐ=OÐ=OÐ=Oð
ð 
r,   z!Expression contains mixed types: ú, ú. You must set output_field.N)Úget_source_fieldsr´   rÞ   r   r'   )r    Úsources_iterr   rë   s       r%   ræ   z$BaseExpression._resolve_output_fieldY  s·   € ð
ð 
Ø!%×!7Ò!7Ñ!9Ô!9ð
ñ 
ô 
ˆð )ð 	 ð 	 ˆLØ&ð 	ð 	�Ý! ,°Ô0@ÑAÔAð Ý$˜*ð )Ô2Ô;Ð;Ð;Ø"Ô,Ô5Ð5Ð5ð	ñô ð ðð  ÐÐÐð	 ð 	 r,   c                 ó   — | S r”   r+   ©ÚvalueÚ
expressionr   s      r%   r§   z"BaseExpression._convert_value_noopw  s   € àˆr,   c                 óš   — | j         }|                     ¦   «         }|dk    rd„ S |                     d¦  «        rd„ S |dk    rd„ S | j        S )zÑ
        Expressions provide their own converters because users have the option
        of manually specifying the output_field which may be a different type
        from the one the database returns.
        Ú
FloatFieldc                 ó(   — | €d nt          | ¦  «        S r”   )Úfloatrñ   s      r%   ú<lambda>z.BaseExpression.convert_value.<locals>.<lambda>…  s   € Ø˜��­5°©<¬<ð r,   ÚIntegerFieldc                 ó(   — | €d nt          | ¦  «        S r”   )Úintrñ   s      r%   rø   z.BaseExpression.convert_value.<locals>.<lambda>‰  s   € Ø˜��­3¨u©:¬:ð r,   r   c                 ó(   — | €d nt          | ¦  «        S r”   r   rñ   s      r%   rø   z.BaseExpression.convert_value.<locals>.<lambda>�  s   € Ø˜��­7°5©>¬>ð r,   )r   r   Úendswithr§   )r    rä   Úinternal_types      r%   r    zBaseExpression.convert_value{  s…   € ð Ô!ˆØ×/Ò/Ñ1Ô1ˆØ˜LÒ(Ð(ðð ð ð ×#Ò# NÑ3Ô3ð 	ðð ð ð ˜nÒ,Ð,ðð ð ð Ô'Ð'r,   c                 ó6   — | j                              |¦  «        S r”   )r   Ú
get_lookup)r    Úlookups     r%   r   zBaseExpression.get_lookup’  s   € ØÔ ×+Ò+¨FÑ3Ô3Ð3r,   c                 ó6   — | j                              |¦  «        S r”   )r   Úget_transform©r    Únames     r%   r  zBaseExpression.get_transform•  s   € ØÔ ×.Ò.¨tÑ4Ô4Ð4r,   c                 ó–   ‡— |                       ¦   «         }|                     ˆfd„|                      ¦   «         D ¦   «         ¦  «         |S )Nc                 óB   •— g | ]}|�|                      ‰¦  «        nd ‘ŒS r”   )Úrelabeled_clone)r¸   ÚeÚ
change_maps     €r%   rº   z2BaseExpression.relabeled_clone.<locals>.<listcomp>›  s@   ø€ ð ð ð àð 23°�×!Ò! *Ñ-Ô-Ð-ÀDðð ð r,   ©r¢   r°   r«   )r    r
  Úclones    ` r%   r  zBaseExpression.relabeled_clone˜  sa   ø€ Ø—	’	‘”ˆØ×$Ò$ðð ð ð à×4Ò4Ñ6Ô6ðñ ô ñ	
ô 	
ð 	
ð ˆr,   c                 óÜ   ‡— ‰s| S ‰                      | ¦  «        x}r|S |                      ¦   «         x}s| S |                      ¦   «         }|                     ˆfd„|D ¦   «         ¦  «         |S )Nc                 óB   •— g | ]}|€d n|                      ‰¦  «        ‘ŒS r”   )Úreplace_expressions)r¸   rÃ   Úreplacementss     €r%   rº   z6BaseExpression.replace_expressions.<locals>.<listcomp>«  s?   ø€ ð ð ð àð ˜��¨$×*BÒ*BÀ<Ñ*PÔ*Pðð ð r,   )Úgetr«   r¢   r°   )r    r  Úreplacementrà   r  s    `   r%   r  z"BaseExpression.replace_expressions¢  s¢   ø€ Øð 	ØˆKØ&×*Ò*¨4Ñ0Ô0Ð0ˆ;ð 	ØÐØ&*×&AÒ&AÑ&CÔ&CÐCÐ"ð 	ØˆKØ—	’	‘”ˆØ×$Ò$ðð ð ð à.ðñ ô ñ	
ô 	
ð 	
ð ˆr,   c                 ó„   — t          ¦   «         }|                      ¦   «         D ]}|€Œ||                     ¦   «         z  }Œ|S r”   )Úsetr«   Úget_refs)r    ÚrefsrÃ   s      r%   r  zBaseExpression.get_refs²  sG   € Ý‰uŒuˆØ×/Ò/Ñ1Ô1ð 	$ð 	$ˆDØˆ|ØØ�D—M’M‘O”OÑ#ˆDˆDØˆr,   c                 ó*   — t          j         | ¦  «        S r”   ©r¢   rD   s    r%   r¢   zBaseExpression.copyº  ó   € ÝŒy˜‰ŒÐr,   c                 ó–   ‡— |                       ¦   «         }|                     ˆfd„|                      ¦   «         D ¦   «         ¦  «         |S )Nc                 ó”   •— g | ]D}t          |t          ¦  «        rt          ‰› |j        › �¦  «        n|                     ‰¦  «        ‘ŒES r+   )r´   r¶   r  Úprefix_references)r¸   rÃ   Úprefixs     €r%   rº   z4BaseExpression.prefix_references.<locals>.<listcomp>À  se   ø€ ð ð ð ð õ " $­Ñ*Ô*ð8•A˜Ð, ¤Ð,Ð,Ñ-Ô-Ð-à×/Ò/°Ñ7Ô7ð	ð ð r,   r  )r    r  r  s    ` r%   r  z BaseExpression.prefix_references½  sc   ø€ Ø—	’	‘”ˆØ×$Ò$ðð ð ð ð !×7Ò7Ñ9Ô9ðñ ô ñ		
ô 		
ð 		
ð ˆr,   c                 óš   — | j         s| gS g }|                      ¦   «         D ])}|                     |                     ¦   «         ¦  «         Œ*|S r”   )rÁ   r«   ÚextendÚget_group_by_cols©r    Úcolsrë   s      r%   r   z BaseExpression.get_group_by_colsË  sZ   € ØÔ&ð 	Ø�6ˆMØˆØ×1Ò1Ñ3Ô3ð 	4ð 	4ˆFØ�KŠK˜×0Ò0Ñ2Ô2Ñ3Ô3Ð3Ð3Øˆr,   c                 ó>   — d„ |                       ¦   «         D ¦   «         S )z9Return the underlying field types used by this aggregate.c                 ó   — g | ]	}|j         ‘Œ
S r+   )rè   )r¸   r	  s     r%   rº   z4BaseExpression.get_source_fields.<locals>.<listcomp>Õ  s   € ÐOÐOÐO¨A�Ô'ÐOÐOÐOr,   )r«   rD   s    r%   rî   z BaseExpression.get_source_fieldsÓ  s"   € àOÐO°×1LÒ1LÑ1NÔ1NÐOÑOÔOÐOr,   c                 ó   — t          | fi |¤ŽS r”   ©ÚOrderBy©r    Úkwargss     r%   ÚasczBaseExpression.asc×  ó   € Ý�tÐ&Ð&˜vÐ&Ð&Ð&r,   c                 ó    — t          | fddi|¤ŽS ©NÚ
descendingTr&  r(  s     r%   ÚdesczBaseExpression.descÚ  ó   € Ý�tÐ7Ð7¨Ð7°Ð7Ð7Ð7r,   c                 ó   — | S r”   r+   rD   s    r%   Úreverse_orderingzBaseExpression.reverse_orderingÝ  ó   € Øˆr,   c              #   ó¢   K  — | V — |                       ¦   «         D ]3}|r/t          |d¦  «        r|                     ¦   «         E d{V —† Œ/|V — Œ4dS )zi
        Recursively yield this expression and all subexpressions, in
        depth-first order.
        ÚflattenN)r«   r9   r5  )r    rÃ   s     r%   r5  zBaseExpression.flattenà  s}   è è € ð
 ˆ
ˆ
ˆ
Ø×/Ò/Ñ1Ô1ð 	ð 	ˆDØð Ý˜4 Ñ+Ô+ð Ø#Ÿ|š|™~œ~Ð-Ð-Ð-Ð-Ð-Ð-Ð-Ð-à�J�J�Jøð	ð 	r,   c                 ól   — t          | j        d¦  «        r| j                             |||¦  «        S ||fS )z†
        Custom format for select clauses. For example, EXISTS expressions need
        to be wrapped in CASE WHEN on Oracle.
        Úselect_format)r9   r   r7  ©r    r!   r#   r$   s       r%   r7  zBaseExpression.select_formatí  s?   € õ
 �4Ô$ oÑ6Ô6ð 	JØÔ$×2Ò2°8¸SÀ&ÑIÔIÐIØ�Fˆ{Ðr,   c                 óž   — t          | dd¦  «        s;	 |                      ¦   «         \  }|S # t          $ r}t          d¦  «        |‚d }~ww xY w| S )NÚ constraint_validation_compatibleTzdExpressions with constraint_validation_compatible set to False must have only one source expression.)rd   r«   rÝ   )r    ró   r	  s      r%   Úget_expression_for_validationz,BaseExpression.get_expression_for_validationö  s{   € å�tÐ?ÀÑFÔFð 		"ð"Ø $× ;Ò ;Ñ =Ô =‘�ð "Ð!øõ ð ð ð Ý ð<ñô ð ðøøøøðøøøð ˆs   “+ «
A
µAÁA
r”   ©NTNFF)2r'   r(   r)   r*   ÚNotImplementedÚempty_result_set_valuerÛ   Ú
filterableÚwindow_compatibleÚallowed_defaultr:  Úset_returningrÜ   rž   r¥   r¨   r«   r°   r¼   r   r   rÁ   rÉ   rÌ   rÑ   r8   Úpropertyra   rä   r   rè   ræ   Ústaticmethodr§   r    r   r  r  r  r  r¢   r  r   rî   r*  r/  r2  r5  r7  r;  r+   r,   r%   rš   rš   ®   s×  € € € € € Ø/Ð/à+Ðà€Jà€JàÐà€Oà'+Ð$à€Mà#(Ð ð-ð -ð -ð -ðð ð ð
<ð <ð <ðð ð ðð ð ð
ð 
ð 
ðHð Hð Hð8 ð
ð 
ñ „_ð
ð
 ð
ð 
ñ „_ð
ð
 ð
ð 
ñ „_ð
ð ð
ð 
ñ „_ð
ð SXð#ð #ð #ð #ðJ ðBð Bñ „XðBð ð!ð !ñ „Xð!ð ðð ñ „_ðð ðð ñ „Xðð ð  ð  ð< ðð ñ „\ðð ð(ð (ñ „_ð(ð,4ð 4ð 4ð5ð 5ð 5ðð ð ðð ð ð ð ð ðð ð ðð ð ðð ð ðPð Pð Pð'ð 'ð 'ð8ð 8ð 8ðð ð ðð ð ðð ð ðð ð ð ð r,   rš   c                   óŽ   — e Zd ZdZe ej        d¬¦  «        d„ ¦   «         ¦   «         Zed„ ¦   «         Z	e
d„ ¦   «         Zd„ Zd„ Zd	S )
Ú
Expressionz:An expression that can be combined with other expressions.é€   ©Úmaxsizec                 ó*   — t          | j        ¦  «        S r”   )r   rž   )Úclss    r%   Ú_constructor_signaturez!Expression._constructor_signature	  s   € õ ˜œÑ&Ô&Ð&r,   c                 ó²  ‡ — t          |t          ¦  «        r"t          t          ‰ j        |¦  «        ¦  «        S t          |t          ¦  «        r-t          ˆ fd„|                     ¦   «         D ¦   «         ¦  «        S t          |t          j        ¦  «        r5|j        r|j	        r|j	        j
        j        |j        fS t          |¦  «        S t          |¦  «        S )Nc              3   óL   •K  — | ]\  }}|‰                      |¦  «        fV — Œd S r”   )Ú	_identity)r¸   ÚkeyÚvalrK  s      €r%   rÄ   z'Expression._identity.<locals>.<genexpr>  s8   øè è € ÐQÐQ±x°s¸C˜#˜sŸ}š}¨SÑ1Ô1Ð2ÐQÐQÐQÐQÐQÐQr,   )r´   ÚtupleÚmaprO  ÚdictÚitemsr   ÚFieldr  ÚmodelÚ_metaÚlabelÚtyper   )rK  rò   s   ` r%   rO  zExpression._identity  sÃ   ø€ å�e�UÑ#Ô#ð 	4Ý�˜Sœ]¨EÑ2Ô2Ñ3Ô3Ð3Ý�e�TÑ"Ô"ð 	RÝÐQÐQÐQÐQÀ5Ç;Â;Á=Ä=ÐQÑQÔQÑQÔQÐQÝ�e�Vœ\Ñ*Ô*ð 	ØŒzð ;˜eœkð ;Ø”{Ô(Ô.°´
Ð:Ð:Ý˜‘;”;ÐÝ˜UÑ#Ô#Ð#r,   c                 ó`  — | j         \  }} | j        j        | g|¢R i |¤Ž} |j        ¦   «          t	          |j                             ¦   «         ¦  «        }t          |¦  «         | j        g}|D ]1\  }}|  	                    |¦  «        }| 
                    ||f¦  «         Œ2t          |¦  «        S r”   )Ú_constructor_argsrL  Úbind_partialÚapply_defaultsÚiterÚ	argumentsrU  ÚnextrÞ   rO  ÚappendrR  )r    Úargsr)  r   r`  Úidentityr¹   rò   s           r%   rd  zExpression.identity  sÀ   € àÔ-‰ˆˆfØ<�DÔ/Ô<¸TÐSÀDÐSÐSÐSÈFÐSÐSˆ	Ø ˆ	Ô Ñ"Ô"Ð"Ý˜Ô,×2Ò2Ñ4Ô4Ñ5Ô5ˆ	ÝˆY‰ŒˆØ”NÐ#ˆØ#ð 	*ð 	*‰JˆC�ð —N’N 5Ñ)Ô)ˆEØ�OŠO˜S %˜LÑ)Ô)Ð)Ð)Ý�X‰ŒÐr,   c                 óZ   — t          |t          ¦  «        st          S |j        | j        k    S r”   )r´   rF  r=  rd  rJ   s     r%   Ú__eq__zExpression.__eq__*  s)   € Ý˜%¥Ñ,Ô,ð 	"Ý!Ð!ØŒ~ ¤Ò.Ð.r,   c                 ó*   — t          | j        ¦  «        S r”   )Úhashrd  rD   s    r%   Ú__hash__zExpression.__hash__/  s   € Ý�D”MÑ"Ô"Ð"r,   N)r'   r(   r)   r*   r   Ú	functoolsÚ	lru_cacherL  ÚclassmethodrO  r   rd  rf  ri  r+   r,   r%   rF  rF    s¢   € € € € € àDÐDàØ€YÔ Ð%Ñ%Ô%ð'ð 'ñ &Ô%ñ „]ð'ð ð	$ð 	$ñ „[ð	$ð ðð ñ „_ðð/ð /ð /ð
#ð #ð #ð #ð #r,   rF  c                 óX   — i | ]'}|t           j        t           j        t           j        fg“Œ(S r+   )r   ÚPositiveIntegerField©r¸   r=   s     r%   ú
<dictcomp>rp  >  sF   € ð ð ð ð ð 	åÔ+ÝÔ+ÝÔ+ðð
ðð ð r,   c                 óà   — i | ]k}|t           j        t           j        t           j        ft           j        t           j        t           j        ft           j        t           j        t           j        fg“ŒlS r+   )r   rù   rõ   r   ro  s     r%   rp  rp  O  sh   € ð ð ð ð ð 	ÝÔ ¥&Ô"5µvÔ7JÐKÝÔ¥Ô 1µ6Ô3DÐEÝÔ ¥&Ô"5µvÔ7JÐKð
ðð ð r,   c           	      ó$  — i | ]�}|t           j        t           j        t           j        ft           j        t           j        t           j        ft           j        t           j        t           j        ft           j        t           j        t           j        fg“ŒŽS r+   )r   rù   r   rõ   ro  s     r%   rp  rp  a  s{   € ð ð ð ð ð 	ÝÔ ¥&Ô"5µvÔ7JÐKÝÔ ¥&Ô"5µvÔ7JÐKÝÔ ¥&Ô"3µVÔ5FÐGÝÔ¥Ô 3µVÔ5FÐGð	
ðð ð r,   c                 óX   — i | ]'}|t           j        t           j        t           j        fg“Œ(S r+   )r   rù   ro  s     r%   rp  rp  q  sB   € ð ð ð ð ð 	ÝÔ ¥&Ô"5µvÔ7JÐKð
ðð ð r,   c                 ó¨   — i | ]O}|t          t          j        d „ t          j        t          j        t          j        fD ¦   «         ¦  «        ¦  «        “ŒPS )c              3   ó>   K  — | ]}|t           |ft           ||fgV — Œd S r”   r   )r¸   Ú
field_types     r%   rÄ   z<dictcomp>.<genexpr>€  sI   è è € ð  ð  àð �h¨
Ð3µhÀ
ÈJÐ5WÐXð ð  ð  ð  ð  ð  r,   )Úlistr   Úfrom_iterabler   rù   r   rõ   ro  s     r%   rp  rp  ~  sx   € ð ð ð ð ð 	•4ÝÔð  ð  õ Ô'ÝÔ'ÝÔ%ð#ð ñ  ô  ñ ô ñ	
ô 	
ðð ð r,   c                 óL   — t           |                              | ||f¦  «         dS )zÂ
    Register combinable types:
        lhs <connector> rhs -> result
    e.g.
        register_combinable_fields(
            IntegerField, Combinable.ADD, FloatField, FloatField
        )
    N)Ú_connector_combinatorsrb  )Úlhsr=   ÚrhsÚresults       r%   Úregister_combinable_fieldsr~  ¶  s*   € õ ˜9Ô%×,Ò,¨c°3¸Ð-?Ñ@Ô@Ð@Ð@Ð@r,   rG  rH  c                 ó–   — t                                | d¦  «        }|D ]*\  }}}t          ||¦  «        rt          ||¦  «        r|c S Œ+d S )Nr+   )rz  r  Ú
issubclass)r=   Úlhs_typeÚrhs_typeÚcombinatorsÚcombinator_lhs_typeÚcombinator_rhs_typeÚcombined_types          r%   Ú_resolve_combined_typer‡  È  sr   € å(×,Ò,¨Y¸Ñ;Ô;€KØCNð !ð !Ñ?ÐÐ0°-Ý�hÐ 3Ñ4Ô4ð 	!½ØÐ)ñ:
ô :
ð 	!ð !Ð Ð Ð øð	!ð !r,   c                   óh   ‡ — e Zd Zdˆ fd„	Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z		 dˆ fd„	Z
ed„ ¦   «         Zˆ xZS )r;   Nc                 óv   •— t          ¦   «                              |¬¦  «         || _        || _        || _        d S ©Nrœ   )Úsuperrž   r=   r{  r|  )r    r{  r=   r|  r   rÞ   s        €r%   rž   zCombinedExpression.__init__Ó  s7   ø€ Ý‰Œ×Ò lÐÑ3Ô3Ð3Ø"ˆŒØˆŒØˆŒˆˆr,   c                 óB   — d                      | j        j        | ¦  «        S )Nz<{}: {}>)ÚformatrÞ   r'   rD   s    r%   Ú__repr__zCombinedExpression.__repr__Ù  s   € Ø× Ò  ¤Ô!8¸$Ñ?Ô?Ð?r,   c                 óN   — d                      | j        | j        | j        ¦  «        S )Nz{} {} {})r�  r{  r=   r|  rD   s    r%   Ú__str__zCombinedExpression.__str__Ü  s    € Ø× Ò  ¤¨4¬>¸4¼8ÑDÔDÐDr,   c                 ó   — | j         | j        gS r”   ©r{  r|  rD   s    r%   r«   z)CombinedExpression.get_source_expressionsß  s   € Ø”˜$œ(Ð#Ð#r,   c                 ó$   — |\  | _         | _        d S r”   r’  r®   s     r%   r°   z)CombinedExpression.set_source_expressionsâ  s   € Ø"ÑˆŒ�$”(�(�(r,   c           	      ó.  — t          | j        t          | j        j        ¦  «        t          | j        j        ¦  «        ¦  «        }|€Ft          d| j        ›d| j        j        j        j	        › d| j        j        j        j	        › d�¦  «        ‚ |¦   «         S )NzCannot infer type of z# expression involving these types: rì   rí   )
r‡  r=   rZ  r{  rè   r|  r   r   rÞ   r'   )r    r†  s     r%   ræ   z(CombinedExpression._resolve_output_fieldå  s¨   € õ /ØŒNÝ�”Ô/Ñ0Ô0Ý�”Ô/Ñ0Ô0ñ
ô 
ˆð
 Ð Ýð!¨¬ð !ð !Øœ(Ô/Ô9ÔBð!ð !à”8Ô(Ô2Ô;ð!ð !ð !ñô ð ð ˆ}‰ŒÐr,   c                 óx  — g }g }|                      | j        ¦  «        \  }}|                     |¦  «         |                     |¦  «         |                      | j        ¦  «        \  }}|                     |¦  «         |                     |¦  «         d}|j                             | j        |¦  «        }||z  |fS ©Nz(%s))Úcompiler{  rb  r  r|  ÚopsÚcombine_expressionr=   )r    r!   r   r»   Úexpression_paramsr#   r$   Úexpression_wrappers           r%   r   zCombinedExpression.as_sqlö  s¿   € ØˆØÐØ×&Ò& t¤xÑ0Ô0‰ˆˆVØ×Ò˜3ÑÔÐØ× Ò  Ñ(Ô(Ð(Ø×&Ò& t¤xÑ0Ô0‰ˆˆVØ×Ò˜3ÑÔÐØ× Ò  Ñ(Ô(Ð(à#ÐØŒn×/Ò/°´ÀÑLÔLˆØ! CÑ'Ð):Ð:Ð:r,   TFc                 ó6  •— t          ¦   «                              |||||¦  «        }t          | t          t          f¦  «        sÖ	 |j        j                             ¦   «         }n# t          t          f$ r d }Y nw xY w	 |j
        j                             ¦   «         }n# t          t          f$ r d }Y nw xY wd||hv r&||k    r t          |j        |j        |j
        ¦  «        S h d£}	| j        | j        k    r$||	v r ||k    rt	          |j        |j
        ¦  «        S |S )NÚDurationField>   Ú	DateFieldÚ	TimeFieldÚDateTimeField)r‹  r8   r´   ÚDurationExpressionÚTemporalSubtractionr{  r   r   ÚAttributeErrorr   r|  r=   rO   )r    rÖ   rÔ   r×   rØ   rÕ   Úresolvedr�  r‚  Údatetime_fieldsrÞ   s             €r%   r8   z%CombinedExpression.resolve_expression  s[  ø€ õ ‘7”7×-Ò-ØØØØØñ
ô 
ˆõ ˜$Õ!3Õ5HÐ IÑJÔJð 	Gð Ø#œ<Ô4×FÒFÑHÔH��øÝ"¥JÐ/ð  ð  ð  Ø���ð øøøð Ø#œ<Ô4×FÒFÑHÔH��øÝ"¥JÐ/ð  ð  ð  Ø���ð øøøà 8¨XÐ"6Ð6Ð6¸8ÀxÒ;OÐ;OÝ)Ø”L (Ô"4°h´lñô ð ð JÐIÐIˆOà” $¤(Ò*Ð*Ø Ð/Ð/Ø Ò(Ð(å*¨8¬<¸¼ÑFÔFÐFØˆs$   ÁA# Á#A9Á8A9Á=B ÂB2Â1B2c                 ó2   — | j         j        o| j        j        S r”   )r{  rA  r|  rD   s    r%   rA  z"CombinedExpression.allowed_default$  s   € àŒxÔ'ÐD¨D¬HÔ,DÐDr,   r”   r<  )r'   r(   r)   rž   rŽ  r�  r«   r°   ræ   r   r8   r   rA  Ú__classcell__©rÞ   s   @r%   r;   r;   Ò  så   ø€ € € € € ðð ð ð ð ð ð@ð @ð @ðEð Eð Eð$ð $ð $ð#ð #ð #ðð ð ð";ð ;ð ;ð SXðð ð ð ð ð ð@ ðEð Eñ „_ðEð Eð Eð Eð Er,   r;   c                   ó*   ‡ — e Zd Zd„ Zˆ fd„Zd„ Zˆ xZS )r¡  c                 óö   — 	 |j         }|                     ¦   «         dk    r4|                     |¦  «        \  }}|j                             |¦  «        |fS n# t
          $ r Y nw xY w|                     |¦  «        S )Nr�  )r   r   r—  r˜  Úformat_for_duration_arithmeticr   )r    Úsider!   r   Úoutputr#   r$   s          r%   r—  zDurationExpression.compile*  s˜   € ð	RØÔ&ˆFð ×'Ò'Ñ)Ô)¨_Ò<Ð<Ø&×.Ò.¨tÑ4Ô4‘��VØ!”~×DÒDÀSÑIÔIÈ6ÐQÐQð =øõ ð 	ð 	ð 	ØˆDð	øøøð ×Ò Ñ%Ô%Ð%s   ‚A Á
A#Á"A#c                 ó  •— |j         j        r"t          ¦   «                              ||¦  «        S |j                             | ¦  «         g }g }|                      | j        ||¦  «        \  }}|                     |¦  «         | 	                    |¦  «         |                      | j
        ||¦  «        \  }}|                     |¦  «         | 	                    |¦  «         d}|j                             | j        |¦  «        }||z  |fS r–  )ÚfeaturesÚhas_native_duration_fieldr‹  r   r˜  Úcheck_expression_supportr—  r{  rb  r  r|  Úcombine_duration_expressionr=   )	r    r!   r   r»   rš  r#   r$   r›  rÞ   s	           €r%   r   zDurationExpression.as_sql5  s   ø€ ØÔÔ8ð 	8Ý‘7”7—>’> (¨JÑ7Ô7Ð7ØŒ×/Ò/°Ñ5Ô5Ð5ØˆØÐØ—l’l 4¤8¨X°zÑBÔB‰ˆˆVØ×Ò˜3ÑÔÐØ× Ò  Ñ(Ô(Ð(Ø—l’l 4¤8¨X°zÑBÔB‰ˆˆVØ×Ò˜3ÑÔÐØ× Ò  Ñ(Ô(Ð(à#ÐØŒn×8Ò8¸¼ÈÑUÔUˆØ! CÑ'Ð):Ð:Ð:r,   c                 ó^  —  | j         ||fi |¤Ž\  }}| j        t          j        t          j        hv ry	 | j        j                             ¦   «         }| j        j                             ¦   «         }h d£}||vs||vrt          d| j        › d�¦  «        ‚n# t          t          f$ r Y nw xY w||fS )N>   rõ   r   rù   r�  zInvalid arguments for operator ú.)r   r=   r.   rC   rU   r{  r   r   r|  r   r£  r   )	r    r!   r   r"   r#   r$   r�  r‚  Úallowed_fieldss	            r%   r&   zDurationExpression.as_sqliteF  së   € Ø!�d”k (¨JÐHÐH¸-ÐHÐH‰ˆˆVØŒ>�jœn­j¬nÐ=Ð=Ð=ðØœ8Ô0×BÒBÑDÔD�Øœ8Ô0×BÒBÑDÔD�ð"ð "ð "�ð  >Ð1Ð1°XÀ^Ð5SÐ5SÝ'ØK¸$¼.ÐKÐKÐKñô ð ð 6Tøõ #¥JÐ/ð ð ð Ø�ðøøøð �Fˆ{Ðs   ³<B ÂB(Â'B()r'   r(   r)   r—  r   r&   r§  r¨  s   @r%   r¡  r¡  )  sV   ø€ € € € € ð	&ð 	&ð 	&ð;ð ;ð ;ð ;ð ;ð"ð ð ð ð ð ð r,   r¡  c                   óB   ‡ — e Zd Z ej        ¦   «         Zˆ fd„Zd„ Zˆ xZS )r¢  c                 óX   •— t          ¦   «                              || j        |¦  «         d S r”   )r‹  rž   rO   )r    r{  r|  rÞ   s      €r%   rž   zTemporalSubtraction.__init___  s'   ø€ Ý‰Œ×Ò˜˜dœh¨Ñ,Ô,Ð,Ð,Ð,r,   c                 ó  — |j                              | ¦  «         |                     | j        ¦  «        }|                     | j        ¦  «        }|j                              | j        j                             ¦   «         ||¦  «        S r”   )r˜  r±  r—  r{  r|  Úsubtract_temporalsr   r   )r    r!   r   r{  r|  s        r%   r   zTemporalSubtraction.as_sqlb  st   € ØŒ×/Ò/°Ñ5Ô5Ð5Ø×Ò˜tœxÑ(Ô(ˆØ×Ò˜tœxÑ(Ô(ˆØŒ~×0Ò0ØŒHÔ!×3Ò3Ñ5Ô5°s¸Cñ
ô 
ð 	
r,   )	r'   r(   r)   r   r�  r   rž   r   r§  r¨  s   @r%   r¢  r¢  \  sW   ø€ € € € € Ø'�6Ô'Ñ)Ô)€Lð-ð -ð -ð -ð -ð
ð 
ð 
ð 
ð 
ð 
ð 
r,   r¢  zdjango.db.models.F)Úpathc                   ó\   — e Zd ZdZdZd„ Zd„ Zd„ Zd„ Z	 dd	„Z	d
„ Z
d„ Zd„ Zd„ Zd„ Zd„ ZdS )r¶   zDAn object capable of resolving references to existing query objects.Fc                 ó   — || _         dS )z^
        Arguments:
         * name: the name of the field this expression references
        N)r  r  s     r%   rž   z
F.__init__q  s   € ð
 ˆŒ	ˆ	ˆ	r,   c                 óL   — d                      | j        j        | j        ¦  «        S ©Nú{}({}))r�  rÞ   r'   r  rD   s    r%   rŽ  z
F.__repr__x  s   € Ø�Š˜tœ~Ô6¸¼	ÑBÔBÐBr,   c                 ó"   — t          | |¦  «        S r”   )ÚSliced)r    Ú	subscripts     r%   Ú__getitem__zF.__getitem__{  s   € Ý�d˜IÑ&Ô&Ð&r,   c                 ó<   — t          d| j        j        › d�¦  «        ‚)Nzargument of type 'z' is not iterable)Ú	TypeErrorrÞ   r'   rJ   s     r%   Ú__contains__zF.__contains__~  s#   € õ ÐW¨T¬^Ô-DÐWÐWÐWÑXÔXÐXr,   NTc                 ó<   — |                      | j        |||¦  «        S r”   )Úresolve_refr  ©r    rÖ   rÔ   r×   rØ   rÕ   s         r%   r8   zF.resolve_expressionƒ  s    € ð × Ò  ¤¨K¸À	ÑJÔJÐJr,   c                 ó4  — |                      | ¦  «        x}�|S | j                             t          ¦  «        ^}}|s| S |                      t	          |¦  «        ¦  «        x}	 �|j        €| S |D ](}|                     |¦  «        }|€| c S  ||¦  «        }Œ)|S r”   )r  r  Úsplitr   r¶   rè   r  )r    r  r  Ú
field_nameÚ
transformsÚ	transformÚtransform_classs          r%   r  zF.replace_expressionsˆ  sÂ   € Ø'×+Ò+¨DÑ1Ô1Ð1ˆKÐ>ØÐØ"&¤)§/¢/µ*Ñ"=Ô"=Ðˆ
�Zð ð 	ØˆKà'×+Ò+­A¨j©M¬MÑ:Ô:Ð:ˆKØðà Ô6Ð>ØˆKØ#ð 	7ð 	7ˆIØ)×7Ò7¸	ÑBÔBˆOØÐ&Ø���Ø)˜/¨+Ñ6Ô6ˆKˆKØÐr,   c                 ó   — t          | fi |¤ŽS r”   r&  r(  s     r%   r*  zF.ascœ  r+  r,   c                 ó    — t          | fddi|¤ŽS r-  r&  r(  s     r%   r/  zF.descŸ  r0  r,   c                 óB   — | j         |j         k    o| j        |j        k    S r”   )rÞ   r  rJ   s     r%   rf  zF.__eq__¢  s   € ØŒ~ ¤Ò0ÐL°T´YÀ%Ä*Ò5LÐLr,   c                 ó*   — t          | j        ¦  «        S r”   )rh  r  rD   s    r%   ri  z
F.__hash__¥  s   € Ý�D”I‰ŒÐr,   c                 ó*   — t          j         | ¦  «        S r”   r  rD   s    r%   r¢   zF.copy¨  r  r,   r<  )r'   r(   r)   r*   rA  rž   rŽ  rÃ  rÆ  r8   r  r*  r/  rf  ri  r¢   r+   r,   r%   r¶   r¶   k  sÝ   € € € € € àNÐNà€Oðð ð ðCð Cð Cð'ð 'ð 'ðYð Yð Yð SXðKð Kð Kð Kð
ð ð ð('ð 'ð 'ð8ð 8ð 8ðMð Mð Mðð ð ðð ð ð ð r,   r¶   c                   ó<   ‡ — e Zd ZdZdZdZd„ Zˆ fd„Zd„ Zd„ Z	ˆ xZ
S )ÚResolvedOuterRefz¿
    An object that contains a reference to an outer query.

    In this case, the reference to the outer query has been resolved because
    the inner query has been used as a subquery.
    Fc                 ó    — t          d¦  «        ‚)NzXThis queryset contains a reference to an outer query and may only be used in a subquery.)rÝ   ©r    rc  r)  s      r%   r   zResolvedOuterRef.as_sql·  s   € Ýð*ñ
ô 
ð 	
r,   c                 óž   •—  t          ¦   «         j        |i |¤Ž}|j        rt          d| j        › d�¦  «        ‚t
          | j        v |_        |S )Nz<Referencing outer query window expression is not supported: r´  )r‹  r8   rÉ   r   r  r   Úpossibly_multivalued)r    rc  r)  ÚcolrÞ   s       €r%   r8   z#ResolvedOuterRef.resolve_expression½  sj   ø€ Ø(�e‰gŒgÔ(¨$Ð9°&Ð9Ð9ˆØÔ#ð 	Ý#ð Ø”9ð ð  ð  ñô ð õ $.°´Ð#:ˆÔ Øˆ
r,   c                 ó   — | S r”   r+   ©r    Úrelabelss     r%   r  z ResolvedOuterRef.relabeled_cloneÊ  r3  r,   c                 ó   — g S r”   r+   rD   s    r%   r   z"ResolvedOuterRef.get_group_by_colsÍ  r¬   r,   )r'   r(   r)   r*   rÁ   rÉ   r   r8   r  r   r§  r¨  s   @r%   rÖ  rÖ  ¬  s}   ø€ € € € € ðð ð ÐØ Ðð
ð 
ð 
ðð ð ð ð ðð ð ðð ð ð ð ð ð r,   rÖ  c                   ó"   — e Zd ZdZdZd„ Zd„ ZdS )ÚOuterRefFc                 ól   — t          | j        | j        ¦  «        r| j        S t          | j        ¦  «        S r”   )r´   r  rÞ   rÖ  rØ  s      r%   r8   zOuterRef.resolve_expressionÕ  s0   € Ý�d”i ¤Ñ0Ô0ð 	Ø”9ÐÝ ¤	Ñ*Ô*Ð*r,   c                 ó   — | S r”   r+   rÝ  s     r%   r  zOuterRef.relabeled_cloneÚ  r3  r,   N)r'   r(   r)   rÁ   rÉ   r8   r  r+   r,   r%   rá  rá  Ñ  s>   € € € € € ØÐØ Ðð+ð +ð +ð
ð ð ð ð r,   rá  c                   ó:   ‡ — e Zd ZdZˆ fd„Zd„ Z	 	 	 	 	 dd„Zˆ xZS )	rÁ  z¬
    An object that contains a slice of an F expression.

    Object resolves the column on which the slicing is applied, and then
    applies the slicing if possible.
    c                 óŒ  •— t          ¦   «                              |j        ¦  «         || _        t	          |t
          ¦  «        r(|dk     rt          d¦  «        ‚|dz   | _        d| _        d S t	          |t          ¦  «        r¶|j        �|j        dk     s|j
        �|j
        dk     rt          d¦  «        ‚|j        �t          d¦  «        ‚|j
        r&|j        r|j
        |j        k     rt          d¦  «        ‚|j        €dn	|j        dz   | _        |j
        €	d | _        d S |j
        |j        pdz
  | _        d S t          d¦  «        ‚)Nr   z#Negative indexing is not supported.é   zStep argument is not supported.z,Slice stop must be greater than slice start.z7Argument to slice must be either int or slice instance.)r‹  rž   r  Úobjr´   rû   rÝ   ÚstartÚlengthÚsliceÚstopÚsteprÅ  )r    rç  rÂ  rÞ   s      €r%   rž   zSliced.__init__æ  sL  ø€ Ý‰Œ×Ò˜œÑ"Ô"Ð"ØˆŒÝ�i¥Ñ%Ô%ð 	WØ˜1Š}ˆ}Ý Ð!FÑGÔGÐGØ" Q™ˆDŒJØˆDŒKˆKˆKÝ˜	¥5Ñ)Ô)ð 	WØ”Ð+°	´À!Ò0CÐ0CØ”Ð*¨y¬~ÀÒ/AÐ/Aå Ð!FÑGÔGÐGØŒ~Ð)Ý Ð!BÑCÔCÐCØŒ~ð Q )¤/ð Q°i´nÀyÄÒ6VÐ6VÝ Ð!OÑPÔPÐPØ'œoÐ5˜˜¸9¼?ÈQÑ;NˆDŒJØŒ~Ð%Ø"�”��à'œn°	´Ð0DÀ1ÑE�”��åÐUÑVÔVÐVr,   c                 ó�   — | j         dz
  }| j        €d n	|| j        z   }t          ||¦  «        }| j        j        › d| j        ›d|›d�S )Nræ  ú(rì   ú))rè  ré  rê  rÞ   r)   rç  )r    rè  rë  rÂ  s       r%   rŽ  zSliced.__repr__ÿ  sY   € Ø”
˜Q‘ˆØ”{Ð*ˆtˆt°¸¼Ñ0CˆÝ˜% Ñ&Ô&ˆ	Ø”.Ô-ÐLÐL°´ÐLÐL¸iÐLÐLÐLÐLr,   NTFc                 ó  — |                      | j        |||¦  «        }t          | j        t          | j        f¦  «        r| j                             |||||¦  «        }n|}|j                             || j	        | j
        ¦  «        S r”   )rÈ  r  r´   rç  rá  rÞ   r8   r   Úslice_expressionrè  ré  )r    rÖ   rÔ   r×   rØ   rÕ   r¤  rÃ   s           r%   r8   zSliced.resolve_expression  s„   € ð ×$Ò$ T¤Y°¸UÀIÑNÔNˆÝ�d”h¥¨4¬>Ð :Ñ;Ô;ð 	Ø”8×.Ò.Ø�{ E¨9°hñô ˆDˆDð ˆDØÔ$×5Ò5°d¸D¼JÈÌÑTÔTÐTr,   r<  )r'   r(   r)   r*   rž   rŽ  r8   r§  r¨  s   @r%   rÁ  rÁ  Þ  s†   ø€ € € € € ðð ðWð Wð Wð Wð Wð2Mð Mð Mð ØØØØðUð Uð Uð Uð Uð Uð Uð Ur,   rÁ  zdjango.db.models.Funcc                   ó~   ‡ — e Zd ZdZdZdZdZdZddœˆ fd„
Zd„ Z	d„ Z
d	„ Zd
„ Z	 	 	 dd„Zˆ fd„Zed„ ¦   «         Zˆ xZS )ÚFunczAn SQL function call.Nz%(function)s(%(expressions)s)rì   rœ   c                ó@  •— | j         �]t          |¦  «        | j         k    rEt          d| j        j        ›d| j         ›d| j         dk    rdnd›dt          |¦  «        ›d�	¦  «        ‚t          ¦   «                              |¬	¦  «          | j        |Ž | _        || _	        d S )
Nú'z' takes exactly ú ræ  Úargumentr`  z (z given)rœ   )
ÚarityÚlenrÅ  rÞ   r'   r‹  rž   r¼   rà   Úextra)r    r   r»   rú  rÞ   s       €r%   rž   zFunc.__init__   s³   ø€ ØŒ:Ð!¥c¨+Ñ&6Ô&6¸$¼*Ò&DÐ&DÝ�)ð ”NÔ+Ð+Ð+Ø”J�J�JØ"&¤*°¢/ /�J�J°{ÐBÐBÝ˜Ñ$Ô$Ð$Ð$ðñô ð õ 	‰Œ×Ò lÐÑ3Ô3Ð3Ø"9 $Ô"9¸;Ð"GˆÔØˆŒ
ˆ
ˆ
r,   c                 ó�  — | j                              d„ | j        D ¦   «         ¦  «        }i | j        ¥|                      ¦   «         ¥}|r_d                     d„ t          |                     ¦   «         ¦  «        D ¦   «         ¦  «        }d                     | j        j	        ||¦  «        S d                     | j        j	        |¦  «        S )Nc              3   ó4   K  — | ]}t          |¦  «        V — Œd S r”   ©rµ   r·   s     r%   rÄ   z Func.__repr__.<locals>.<genexpr>0  ó(   è è € Ð#PÐ#P°¥C¨¡H¤HÐ#PÐ#PÐ#PÐ#PÐ#PÐ#Pr,   rì   c              3   ó`   K  — | ])\  }}t          |¦  «        d z   t          |¦  «        z   V — Œ*dS )ú=Nrý  )r¸   rP  rQ  s      r%   rÄ   z Func.__repr__.<locals>.<genexpr>3  sL   è è € ð ð Ù.6¨c°3•�C‘”˜3‘¥ S¡¤Ñ)ðð ð ð ð ð r,   ú
{}({}, {})r¿  )
Ú
arg_joinerÚjoinrà   rú  Ú_get_repr_optionsÚsortedrU  r�  rÞ   r'   )r    rc  rú  s      r%   rŽ  zFunc.__repr__/  sÆ   € ØŒ×#Ò#Ð#PÐ#P¸Ô8OÐ#PÑ#PÔ#PÑPÔPˆØ:�4”:Ð: ×!7Ò!7Ñ!9Ô!9Ð:ˆØð 	MØ—I’Ið ð Ý:@ÀÇÂÁÄÑ:OÔ:Oðñ ô ñ ô ˆEð  ×&Ò& t¤~Ô'>ÀÀeÑLÔLÐLØ�Š˜tœ~Ô6¸Ñ=Ô=Ð=r,   c                 ó   — i S )zAReturn a dict of extra __init__() options to include in the repr.r+   rD   s    r%   r  zFunc._get_repr_options9  s   € àˆ	r,   c                 ó   — | j         S r”   ©rà   rD   s    r%   r«   zFunc.get_source_expressions=  s   € ØÔ&Ð&r,   c                 ó   — || _         d S r”   r  r®   s     r%   r°   zFunc.set_source_expressions@  s   € Ø"'ˆÔÐÐr,   c                 óü  — |j                              | ¦  «         g }g }| j        D ]Ë}		 |                     |	¦  «        \  }
}n…# t          $ rH t          |	dt          ¦  «        }|t          u r‚ |                     t          |¦  «        ¦  «        \  }
}Y n4t          $ r( |                     t          d¦  «        ¦  «        \  }
}Y nw xY w| 	                    |
¦  «         | 
                    |¦  «         ŒÌi | j        ¥|¥}|�||d<   n|                     d| j        ¦  «         |p|                     d| j        ¦  «        }|p|                     d| j        ¦  «        }|                     |¦  «        x|d<   |d<   ||z  |fS )Nr>  TÚfunctionÚtemplater  r»   rä   )r˜  r±  rà   r—  r   rd   r=  r:   r   rb  r  rú  Ú
setdefaultr  r  r  r  r  )r    r!   r   r  r  r  r"   Ú	sql_partsr$   r¹   Úarg_sqlÚ
arg_paramsr>  Údatas                 r%   r   zFunc.as_sqlC  sÀ  € ð 	Œ×/Ò/°Ñ5Ô5Ð5Øˆ	ØˆØÔ*ð 	&ð 	&ˆCð
DØ&.×&6Ò&6°sÑ&;Ô&;Ñ#�˜˜øÝ!ð Vð Vð VÝ)0ØÐ1µ>ñ*ô *Ð&ð *­^Ð;Ð;ØØ&.×&6Ò&6µuÐ=SÑ7TÔ7TÑ&UÔ&UÑ#�˜˜˜Ý ð Dð Dð DØ&.×&6Ò&6µu¸T±{´{Ñ&CÔ&CÑ#�˜˜˜ðDøøøà×Ò˜WÑ%Ô%Ð%Ø�MŠM˜*Ñ%Ô%Ð%Ð%Ø.�$”*Ð. Ð.ˆð ÐØ'ˆD�ÑÐà�OŠO˜J¨¬Ñ6Ô6Ð6ØÐB˜tŸxšx¨
°D´MÑBÔBˆØÐJ 4§8¢8¨L¸$¼/Ñ#JÔ#Jˆ
Ø.8¯oªo¸iÑ.HÔ.HÐHˆˆ]Ñ˜d 7™mØ˜$‰ Ð&Ð&s   ©AÁACÂ.CÃCc                 ó¬   •— t          ¦   «                              ¦   «         }| j        d d …         |_        | j                             ¦   «         |_        |S r”   )r‹  r¢   rà   rú  )r    r¢   rÞ   s     €r%   r¢   z	Func.copyj  s@   ø€ Ý‰wŒw�|Š|‰~Œ~ˆØ"&Ô"9¸!¸!¸!Ô"<ˆÔØ”Z—_’_Ñ&Ô&ˆŒ
Øˆr,   c                 ó>   — t          d„ | j        D ¦   «         ¦  «        S )Nc              3   ó$   K  — | ]}|j         V — Œd S r”   ©rA  )r¸   ró   s     r%   rÄ   z'Func.allowed_default.<locals>.<genexpr>r  s%   è è € ÐXÐX°*�:Ô-ÐXÐXÐXÐXÐXÐXr,   )Úallrà   rD   s    r%   rA  zFunc.allowed_defaultp  s"   € åÐXÐXÀÔ@WÐXÑXÔXÑXÔXÐXr,   ©NNN)r'   r(   r)   r*   r  r  r  rø  rž   rŽ  r  r«   r°   r   r¢   r   rA  r§  r¨  s   @r%   ró  ró    sö   ø€ € € € € àÐà€HØ.€HØ€JØ€Eà26ð ð ð ð ð ð ð ð>ð >ð >ðð ð ð'ð 'ð 'ð(ð (ð (ð ØØð%'ð %'ð %'ð %'ðNð ð ð ð ð ðYð Yñ „_ðYð Yð Yð Yð Yr,   ró  zdjango.db.models.Valuec                   óh   ‡ — e Zd ZdZdZdZdˆ fd„	Zd„ Zd„ Z	 dˆ fd„	Z	d	„ Z
d
„ Zed„ ¦   «         Zˆ xZS )r:   z9Represent a wrapped value as a node within an expression.FTNc                 óZ   •— t          ¦   «                              |¬¦  «         || _        dS )a:  
        Arguments:
         * value: the value this expression represents. The value will be
           added into the sql parameter list and properly quoted.

         * output_field: an instance of the model field type that this
           expression will return, such as IntegerField() or CharField().
        rœ   N)r‹  rž   rò   )r    rò   r   rÞ   s      €r%   rž   zValue.__init__~  s+   ø€ õ 	‰Œ×Ò lÐÑ3Ô3Ð3ØˆŒ
ˆ
ˆ
r,   c                 ó0   — | j         j        › d| j        ›d�S )Nrî  rï  )rÞ   r'   rò   rD   s    r%   rŽ  zValue.__repr__Š  s    € Ø”.Ô)Ð;Ð;¨D¬JÐ;Ð;Ð;Ð;r,   c                 ó,  — |j                              | ¦  «         | j        }| j        }|�`| j        r|                     ||¬¦  «        }n|                     ||¬¦  «        }t          |d¦  «        r|                     |||¦  «        |gfS |€dg fS d|gfS )N)r   Úget_placeholderÚNULLz%s)	r˜  r±  rò   rè   rÕ   Úget_db_prep_saveÚget_db_prep_valuer9   r  )r    r!   r   rQ  r   s        r%   r   zValue.as_sql�  s¼   € ØŒ×/Ò/°Ñ5Ô5Ð5ØŒjˆØÔ1ˆØÐ#ØŒ}ð QØ"×3Ò3°CÀJÐ3ÑOÔO��à"×4Ò4°SÀZÐ4ÑPÔP�Ý�|Ð%6Ñ7Ô7ð VØ#×3Ò3°C¸À:ÑNÔNÐQTÐPUÐUÐUØˆ;ð ˜2�:ÐØ�c�Uˆ{Ðr,   c                 ó`   •— t          ¦   «                              |||||¦  «        }||_        |S r”   )r‹  r8   rÕ   ©r    rÖ   rÔ   r×   rØ   rÕ   rß   rÞ   s          €r%   r8   zValue.resolve_expressionŸ  s0   ø€ õ ‰GŒG×&Ò& u¨k¸5À)ÈXÑVÔVˆØˆŒ
Øˆr,   c                 ó   — g S r”   r+   rD   s    r%   r   zValue.get_group_by_cols¦  r¬   r,   c                 ó  — t          | j        t          ¦  «        rt          j        ¦   «         S t          | j        t
          ¦  «        rt          j        ¦   «         S t          | j        t          ¦  «        rt          j        ¦   «         S t          | j        t          ¦  «        rt          j
        ¦   «         S t          | j        t          j        ¦  «        rt          j        ¦   «         S t          | j        t          j        ¦  «        rt          j        ¦   «         S t          | j        t          j        ¦  «        rt          j        ¦   «         S t          | j        t          j        ¦  «        rt          j        ¦   «         S t          | j        t&          ¦  «        rt          j        ¦   «         S t          | j        t*          ¦  «        rt          j        ¦   «         S t          | j        t.          ¦  «        rt          j        ¦   «         S d S r”   )r´   rò   rµ   r   Ú	CharFieldÚboolrâ   rû   rù   r÷   rõ   Údatetimer   Údaterž  ÚtimerŸ  Ú	timedeltar�  r   r   ÚbytesÚBinaryFieldr
   Ú	UUIDFieldrD   s    r%   ræ   zValue._resolve_output_field©  s—  € Ý�d”j¥#Ñ&Ô&ð 	&ÝÔ#Ñ%Ô%Ð%Ý�d”j¥$Ñ'Ô'ð 	)ÝÔ&Ñ(Ô(Ð(Ý�d”j¥#Ñ&Ô&ð 	)ÝÔ&Ñ(Ô(Ð(Ý�d”j¥%Ñ(Ô(ð 	'ÝÔ$Ñ&Ô&Ð&Ý�d”j¥(Ô"3Ñ4Ô4ð 	*ÝÔ'Ñ)Ô)Ð)Ý�d”j¥(¤-Ñ0Ô0ð 	&ÝÔ#Ñ%Ô%Ð%Ý�d”j¥(¤-Ñ0Ô0ð 	&ÝÔ#Ñ%Ô%Ð%Ý�d”j¥(Ô"4Ñ5Ô5ð 	*ÝÔ'Ñ)Ô)Ð)Ý�d”j¥'Ñ*Ô*ð 	)ÝÔ&Ñ(Ô(Ð(Ý�d”j¥%Ñ(Ô(ð 	(ÝÔ%Ñ'Ô'Ð'Ý�d”j¥$Ñ'Ô'ð 	&ÝÔ#Ñ%Ô%Ð%ð	&ð 	&r,   c                 ó   — | j         S r”   )rò   rD   s    r%   r>  zValue.empty_result_set_valueÁ  s
   € àŒzÐr,   r”   r<  )r'   r(   r)   r*   rÕ   rA  rž   rŽ  r   r8   r   ræ   rC  r>  r§  r¨  s   @r%   r:   r:   u  sË   ø€ € € € € àCÐCð €HØ€Oð
ð 
ð 
ð 
ð 
ð 
ð<ð <ð <ðð ð ð& SXðð ð ð ð ð ðð ð ð&ð &ð &ð0 ðð ñ „Xðð ð ð ð r,   r:   c                   óD   ‡ — e Zd ZdZd	ˆ fd„	Zd„ Zd„ Zd„ Z	 d
ˆ fd„	Zˆ xZ	S )ÚRawSQLTNc                 ó”   •— |€t          j        ¦   «         }||c| _        | _        t	          ¦   «                              |¬¦  «         d S rŠ  )r   rV  r#   r$   r‹  rž   )r    r#   r$   r   rÞ   s       €r%   rž   zRawSQL.__init__É  sE   ø€ ØÐÝ!œ<™>œ>ˆLØ # VÐˆŒ�$”+Ý‰Œ×Ò lÐÑ3Ô3Ð3Ð3Ð3r,   c                 óX   — d                      | j        j        | j        | j        ¦  «        S ©Nr  )r�  rÞ   r'   r#   r$   rD   s    r%   rŽ  zRawSQL.__repr__Ï  s#   € Ø×"Ò" 4¤>Ô#:¸D¼HÀdÄkÑRÔRÐRr,   c                 ó$   — d| j         z  | j        fS r–  )r#   r$   r¾   s      r%   r   zRawSQL.as_sqlÒ  s   € Ø˜œÑ  $¤+Ð-Ð-r,   c                 ó   — | gS r”   r+   rD   s    r%   r   zRawSQL.get_group_by_colsÕ  ó	   € Øˆvˆr,   Fc                 óD  •— |j         rt|j         j        j        D ]b}|j        j        D ]S}|j                             ¦   «         | j                             ¦   «         v r|                     |j        |||¦  «          nŒTŒct          ¦   «          
                    |||||¦  «        S r”   )rW  rX  Úall_parentsÚlocal_fieldsÚcolumnÚlowerr#   rÈ  r  r‹  r8   )	r    rÖ   rÔ   r×   rØ   rÕ   ÚparentÚparent_fieldrÞ   s	           €r%   r8   zRawSQL.resolve_expressionØ  s»   ø€ ð Œ;ð 	Øœ+Ô+Ô7ð ð �Ø$*¤LÔ$=ð ð �LØ#Ô*×0Ò0Ñ2Ô2°d´h·n²nÑ6FÔ6FÐFÐFØ×)Ò)Ø(Ô-¨{¸EÀ9ñô ð ð ˜ð	 Gøõ
 ‰wŒw×)Ò)Ø�;  y°(ñ
ô 
ð 	
r,   r”   r<  )
r'   r(   r)   rA  rž   rŽ  r   r   r8   r§  r¨  s   @r%   r/  r/  Æ  s—   ø€ € € € € Ø€Oð4ð 4ð 4ð 4ð 4ð 4ðSð Sð Sð.ð .ð .ðð ð ð SXð
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
r,   r/  c                   ó   — e Zd Zd„ Zd„ ZdS )ÚStarc                 ó   — dS )Nz'*'r+   rD   s    r%   rŽ  zStar.__repr__ê  s   € Øˆur,   c                 ó
   — dg fS )Nr1   r+   r¾   s      r%   r   zStar.as_sqlí  s   € Ø�Bˆwˆr,   N)r'   r(   r)   rŽ  r   r+   r,   r%   r>  r>  é  s2   € € € € € ðð ð ðð ð ð ð r,   r>  c                   ó@   ‡ — e Zd ZdZd
ˆ fd„	Zd„ Zd„ Z	 dd„Zd	„ Zˆ xZ	S )ÚDatabaseDefaultz^
    Expression to use DEFAULT keyword during insert otherwise the underlying expression.
    Nc                 óX   •— t          ¦   «                              |¦  «         || _        d S r”   ©r‹  rž   ró   ©r    ró   r   rÞ   s      €r%   rž   zDatabaseDefault.__init__ö  s&   ø€ Ý‰Œ×Ò˜Ñ&Ô&Ð&Ø$ˆŒˆˆr,   c                 ó   — | j         gS r”   ©ró   rD   s    r%   r«   z&DatabaseDefault.get_source_expressionsú  ó   € Ø”Ð Ð r,   c                 ó   — |\  | _         d S r”   rG  r®   s     r%   r°   z&DatabaseDefault.set_source_expressionsý  s   € Ø"ÑˆŒˆˆr,   TFc                 ót   — | j                              |||||¬¦  «        }|s|S t          || j        ¬¦  «        S )N)rÖ   rÔ   r×   rØ   rÕ   rœ   )ró   r8   rB  rè   )r    rÖ   rÔ   r×   rØ   rÕ   Úresolved_expressions          r%   r8   z"DatabaseDefault.resolve_expression   s`   € ð #œo×@Ò@ØØ#ØØØð Añ 
ô 
Ðð ð 	'Ø&Ð&ÝØ¨dÔ.Hð
ñ 
ô 
ð 	
r,   c                 óV   — |j         j        s|                     | j        ¦  «        S dg fS )NÚDEFAULT)r¯  Ú"supports_default_keyword_in_insertr—  ró   r¾   s      r%   r   zDatabaseDefault.as_sql  s0   € ØÔ"ÔEð 	5Ø×#Ò# D¤OÑ4Ô4Ð4Ø˜"ˆ}Ðr,   r”   r<  )
r'   r(   r)   r*   rž   r«   r°   r8   r   r§  r¨  s   @r%   rB  rB  ñ  s�   ø€ € € € € ðð ð%ð %ð %ð %ð %ð %ð!ð !ð !ð#ð #ð #ð SXð
ð 
ð 
ð 
ð$ð ð ð ð ð ð r,   rB  c                   óF   ‡ — e Zd ZdZdZd
ˆ fd„	Zd„ Zd„ Zd„ Zd„ Z	d	„ Z
ˆ xZS )ÚColTFNc                 ór   •— |€|}t          ¦   «                              |¬¦  «         ||c| _        | _        d S rŠ  )r‹  rž   ÚaliasÚtarget)r    rR  rS  r   rÞ   s       €r%   rž   zCol.__init__  s=   ø€ ØÐØ!ˆLÝ‰Œ×Ò lÐÑ3Ô3Ð3Ø"'¨ÐˆŒ
�D”K�K�Kr,   c                 óÊ   — | j         | j        }}|r|t          |¦  «        fnt          |¦  «        f}d                     | j        j        d                     |¦  «        ¦  «        S )Nr¿  rì   )rR  rS  rµ   r�  rÞ   r'   r  )r    rR  rS  Úidentifierss       r%   rŽ  zCol.__repr__"  sV   € Øœ
 D¤KˆvˆØ.3ÐG�u�c &™kœkÐ*Ð*½#¸f¹+¼+¸ˆØ�Š˜tœ~Ô6¸¿	º	À+Ñ8NÔ8NÑOÔOÐOr,   c                 ó’   — | j         | j        j        }}|r||fn|f}d                     t	          |j        |¦  «        ¦  «        }|g fS ©Nr´  )rR  rS  r9  r  rS  Úquote_name_unless_alias)r    r!   r   rR  r9  rU  r#   s          r%   r   z
Col.as_sql'  sM   € Øœ
 D¤KÔ$6ˆvˆØ).Ð=�u˜f�o�o°V°IˆØ�hŠh•s˜8Ô;¸[ÑIÔIÑJÔJˆØ�Bˆwˆr,   c                 ó’   — | j         €| S |                      |                     | j         | j         ¦  «        | j        | j        ¦  «        S r”   )rR  rÞ   r  rS  r   rÝ  s     r%   r  zCol.relabeled_clone-  sC   € ØŒ:ÐØˆKØ�~Š~Ø�LŠL˜œ T¤ZÑ0Ô0°$´+¸tÔ?Pñ
ô 
ð 	
r,   c                 ó   — | gS r”   r+   rD   s    r%   r   zCol.get_group_by_cols4  r5  r,   c                 óÀ   — | j         | j        k    r| j                             |¦  «        S | j                             |¦  «        | j                              |¦  «        z   S r”   )rS  r   r¨   r©   s     r%   r¨   zCol.get_db_converters7  s_   € ØŒ;˜$Ô+Ò+Ð+ØÔ$×6Ò6°zÑBÔBÐBØÔ ×2Ò2Øñ
ô 
àŒK×)Ò)¨*Ñ5Ô5ñ6ð 	6r,   r”   )r'   r(   r)   rÌ   rÚ  rž   rŽ  r   r  r   r¨   r§  r¨  s   @r%   rP  rP    s—   ø€ € € € € Ø!%ÐØ Ðð0ð 0ð 0ð 0ð 0ð 0ðPð Pð Pð
ð ð ð
ð 
ð 
ðð ð ð6ð 6ð 6ð 6ð 6ð 6ð 6r,   rP  c                   óZ   ‡ — e Zd Zˆ fd„Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z	d„ Z
d	„ Zd
„ Zd„ Zˆ xZS )rÚ   c                 óv   •— t          ¦   «                              |¬¦  «         || _        || _        || _        d S rŠ  )r‹  rž   rR  ÚtargetsÚsources)r    rR  r^  r_  r   rÞ   s        €r%   rž   zColPairs.__init__@  s7   ø€ Ý‰Œ×Ò lÐÑ3Ô3Ð3ØˆŒ
ØˆŒØˆŒˆˆr,   c                 ó*   — t          | j        ¦  «        S r”   )rù  r^  rD   s    r%   Ú__len__zColPairs.__len__F  s   € Ý�4”<Ñ Ô Ð r,   c                 óD   — t          |                      ¦   «         ¦  «        S r”   )r_  Úget_colsrD   s    r%   Ú__iter__zColPairs.__iter__I  s   € Ý�D—M’M‘O”OÑ$Ô$Ð$r,   c           
      ó`   — | j         j        › d| j        ›d| j        ›d| j        ›d| j        ›d�
S )Nrî  rì   rï  )rÞ   r'   rR  r^  r_  r   rD   s    r%   rŽ  zColPairs.__repr__L  sY   € àŒ~Ô&ð 8ð 8¨¬ð 8ð 8¸¼ð 8ð 8ØŒ|ð8ð 8Ø!%Ô!2ð8ð 8ð 8ð	
r,   c                 óP   ‡ — ˆ fd„t          ‰ j        ‰ j        ¦  «        D ¦   «         S )Nc                 óB   •— g | ]\  }}t          ‰j        ||¦  «        ‘ŒS r+   )rP  rR  )r¸   rS  rë   r    s      €r%   rº   z%ColPairs.get_cols.<locals>.<listcomp>S  s;   ø€ ð 
ð 
ð 
á�˜õ �”
˜F FÑ+Ô+ð
ð 
ð 
r,   )Úzipr^  r_  rD   s   `r%   rc  zColPairs.get_colsR  s<   ø€ ð
ð 
ð 
ð 
å"% d¤l°D´LÑ"AÔ"Að
ñ 
ô 
ð 	
r,   c                 ó*   — |                       ¦   «         S r”   )rc  rD   s    r%   r«   zColPairs.get_source_expressionsX  s   € Ø�}Š}‰ŒÐr,   c                 ó†   ‡ — t          ˆ fd„|D ¦   «         ¦  «        sJ ‚d„ |D ¦   «         ‰ _        d„ |D ¦   «         ‰ _        d S )Nc              3   ób   •K  — | ])}t          |t          ¦  «        o|j        ‰j        k    V — Œ*d S r”   )r´   rP  rR  )r¸   rÃ   r    s     €r%   rÄ   z2ColPairs.set_source_expressions.<locals>.<genexpr>\  s;   øè è € ÐXÐXÈ$•:˜d¥CÑ(Ô(ÐE¨T¬Z¸4¼:Ò-EÐXÐXÐXÐXÐXÐXr,   c                 ó   — g | ]	}|j         ‘Œ
S r+   )rS  ©r¸   rÛ  s     r%   rº   z3ColPairs.set_source_expressions.<locals>.<listcomp>]  s   € Ð4Ð4Ð4 s˜œ
Ð4Ð4Ð4r,   c                 ó   — g | ]	}|j         ‘Œ
S r+   )rä   rm  s     r%   rº   z3ColPairs.set_source_expressions.<locals>.<listcomp>^  s   € Ð3Ð3Ð3 c˜œ	Ð3Ð3Ð3r,   )r  r^  r_  r®   s   ` r%   r°   zColPairs.set_source_expressions[  s[   ø€ ÝÐXÐXÐXÐXÐRWÐXÑXÔXÑXÔXÐXÐXÐXØ4Ð4¨eÐ4Ñ4Ô4ˆŒØ3Ð3¨UÐ3Ñ3Ô3ˆŒˆˆr,   c                 óð   — g }g }|                       ¦   «         }|D ]E}|                     ||¦  «        \  }}|                     |¦  «         |                     |¦  «         ŒFd                     |¦  «        |fS )Nrì   )rc  r   rb  r  r  )	r    r!   r   Úcols_sqlÚcols_paramsr"  rÛ  r#   r$   s	            r%   r   zColPairs.as_sql`  s   € ØˆØˆØ�}Š}‰Œˆàð 	'ð 	'ˆCØŸ*š* X¨zÑ:Ô:‰KˆC�Ø�OŠO˜CÑ Ô Ð Ø×Ò˜vÑ&Ô&Ð&Ð&à�yŠy˜Ñ"Ô" KÐ/Ð/r,   c                 óŒ   — |                       |                     | j        | j        ¦  «        | j        | j        | j        ¦  «        S r”   )rÞ   r  rR  r^  r_  rä   rÝ  s     r%   r  zColPairs.relabeled_clonel  s9   € Ø�~Š~Ø�LŠL˜œ T¤ZÑ0Ô0°$´,ÀÄÈdÌjñ
ô 
ð 	
r,   c                 ó   — | S r”   r+   rØ  s      r%   r8   zColPairs.resolve_expressionq  r3  r,   c                 ó
   — ||fS r”   r+   r8  s       r%   r7  zColPairs.select_formatt  s   € Ø�Fˆ{Ðr,   )r'   r(   r)   rž   ra  rd  rŽ  rc  r«   r°   r   r  r8   r7  r§  r¨  s   @r%   rÚ   rÚ   ?  sÎ   ø€ € € € € ðð ð ð ð ð!ð !ð !ð%ð %ð %ð
ð 
ð 
ð
ð 
ð 
ðð ð ð4ð 4ð 4ð

0ð 
0ð 
0ð
ð 
ð 
ð
ð ð ðð ð ð ð ð ð r,   rÚ   c                   óV   ‡ — e Zd ZdZˆ fd„Zd„ Zd„ Zd„ Z	 dd	„Zd
„ Z	d„ Z
d„ Zd„ Zˆ xZS )ÚRefz~
    Reference to column alias of the query. For example, Ref('sum_cost') in
    qs.annotate(sum_cost=Sum('cost')) query.
    c                 óf   •— t          ¦   «                              ¦   «          ||c| _        | _        d S r”   )r‹  rž   r  rë   )r    r  rë   rÞ   s      €r%   rž   zRef.__init__~  s-   ø€ Ý‰Œ×ÒÑÔÐØ!% vÐˆŒ	�4”;�;�;r,   c                 óX   — d                      | j        j        | j        | j        ¦  «        S r2  )r�  rÞ   r'   r  rë   rD   s    r%   rŽ  zRef.__repr__‚  s#   € Ø×"Ò" 4¤>Ô#:¸D¼IÀtÄ{ÑSÔSÐSr,   c                 ó   — | j         gS r”   ©rë   rD   s    r%   r«   zRef.get_source_expressions…  s   € Ø”ˆ}Ðr,   c                 ó   — |\  | _         d S r”   rz  r®   s     r%   r°   zRef.set_source_expressionsˆ  s   € Ø‰ˆŒˆˆr,   NTFc                 ó   — | S r”   r+   rÉ  s         r%   r8   zRef.resolve_expression‹  s	   € ð
 ˆr,   c                 ó   — | j         hS r”   )r  rD   s    r%   r  zRef.get_refs’  s   € Ø”	ˆ{Ðr,   c                 ól   — |                       ¦   «         }| j                             |¦  «        |_        |S r”   )r¢   rë   r  )r    rÞ  r  s      r%   r  zRef.relabeled_clone•  s+   € Ø—	’	‘”ˆØ”{×2Ò2°8Ñ<Ô<ˆŒØˆr,   c                 óD   — |j                              | j        ¦  «        g fS r”   )r˜  Ú
quote_namer  r¾   s      r%   r   z
Ref.as_sqlš  s   € ØŒ~×(Ò(¨¬Ñ3Ô3°RÐ7Ð7r,   c                 ó   — | gS r”   r+   rD   s    r%   r   zRef.get_group_by_cols�  r5  r,   r<  )r'   r(   r)   r*   rž   rŽ  r«   r°   r8   r  r  r   r   r§  r¨  s   @r%   rv  rv  x  sÉ   ø€ € € € € ðð ð
.ð .ð .ð .ð .ðTð Tð Tðð ð ðð ð ð SXðð ð ð ðð ð ðð ð ð
8ð 8ð 8ðð ð ð ð ð ð r,   rv  c                   ó8   ‡ — e Zd ZdZdZd„ Zˆ fd„Zd„ Zd„ Zˆ xZ	S )ÚExpressionListz¬
    An expression containing multiple expressions. Can be used to provide a
    list of expressions as an argument to another expression, like a partition
    clause.
    z%(expressions)sc                 óT   — | j                              d„ | j        D ¦   «         ¦  «        S )Nc              3   ó4   K  — | ]}t          |¦  «        V — Œd S r”   rý  r·   s     r%   rÄ   z)ExpressionList.__str__.<locals>.<genexpr>«  rþ  r,   )r  r  rà   rD   s    r%   r�  zExpressionList.__str__ª  s*   € ØŒ×#Ò#Ð#PÐ#P¸Ô8OÐ#PÑ#PÔ#PÑPÔPÐPr,   c                 óH   •— | j         sdS  t          ¦   «         j        |i |¤ŽS )N)Ú r+   )rà   r‹  r   )r    rc  r)  rÞ   s      €r%   r   zExpressionList.as_sql­  s.   ø€ ØÔ&ð 	Ø�6Ø�u‰wŒwŒ~˜tÐ. vÐ.Ð.Ð.r,   c                 ó    —  | j         ||fi |¤ŽS r”   )r   )r    r!   r   r"   s       r%   r&   zExpressionList.as_sqlite²  s   € àˆtŒ{˜8 ZÐAÐA°=ÐAÐAÐAr,   c                 ó†   — g }|                       ¦   «         D ])}|                     |                     ¦   «         ¦  «         Œ*|S r”   ©r«   r  r   )r    Úgroup_by_colsrÃ   s      r%   r   z ExpressionList.get_group_by_cols¶  sK   € ØˆØ×/Ò/Ñ1Ô1ð 	;ð 	;ˆDØ× Ò  ×!7Ò!7Ñ!9Ô!9Ñ:Ô:Ð:Ð:ØÐr,   )
r'   r(   r)   r*   r  r�  r   r&   r   r§  r¨  s   @r%   rƒ  rƒ  ¡  s|   ø€ € € € € ðð ð !€HðQð Qð Qð/ð /ð /ð /ð /ð
Bð Bð Bðð ð ð ð ð ð r,   rƒ  c                   ó&   ‡ — e Zd ZdZdZˆ fd„Zˆ xZS )ÚOrderByListFzORDER BY %(expressions)sc                 óR   •— d„ |D ¦   «         } t          ¦   «         j        |i |¤Ž d S )Nc              3   ó¨   K  — | ]M}t          |t          ¦  «        r2|d          dk    r&t          t          |dd…         ¦  «        d¬¦  «        n|V — ŒNdS )r   r0   ræ  NT©r.  )r´   rµ   r'  r¶   rÂ   s     r%   rÄ   z'OrderByList.__init__.<locals>.<genexpr>Â  sz   è è € ð 
ð 
ð õ ˜d¥CÑ(Ô(ðØ-1°!¬W¸ª^¨^õ �˜$˜q˜r˜rœ(™œ°Ð5Ñ5Ô5Ð5àð	
ð 
ð 
ð 
ð 
ð 
r,   )r‹  rž   )r    r»   rú  rÞ   s      €r%   rž   zOrderByList.__init__Á  sG   ø€ ð
ð 
ð $ð
ñ 
ô 
ˆð 	�‰ŒÔ˜+Ð/¨Ð/Ð/Ð/Ð/Ð/r,   )r'   r(   r)   rA  r  rž   r§  r¨  s   @r%   r�  r�  ½  sB   ø€ € € € € Ø€OØ)€Hð	0ð 	0ð 	0ð 	0ð 	0ð 	0ð 	0ð 	0ð 	0r,   r�  z"django.db.models.ExpressionWrapperc                   óZ   ‡ — e Zd ZdZˆ fd„Zd„ Zd„ Zˆ fd„Zd„ Zd„ Z	e
d„ ¦   «         Zˆ xZS )	ÚExpressionWrapperz”
    An expression that can wrap another expression so that it can provide
    extra context to the inner expression, such as the output_field.
    c                 óZ   •— t          ¦   «                              |¬¦  «         || _        d S rŠ  rD  rE  s      €r%   rž   zExpressionWrapper.__init__Ô  s)   ø€ Ý‰Œ×Ò lÐÑ3Ô3Ð3Ø$ˆŒˆˆr,   c                 ó    — |d         | _         d S ©Nr   rG  r®   s     r%   r°   z(ExpressionWrapper.set_source_expressionsØ  ó   € Ø œ(ˆŒˆˆr,   c                 ó   — | j         gS r”   rG  rD   s    r%   r«   z(ExpressionWrapper.get_source_expressionsÛ  rH  r,   c                 óê   •— t          | j        t          ¦  «        r9| j                             ¦   «         }| j        |_        |                     ¦   «         S t          ¦   «                              ¦   «         S r”   )r´   ró   rF  r¢   r   r   r‹  ©r    ró   rÞ   s     €r%   r   z#ExpressionWrapper.get_group_by_colsÞ  s_   ø€ Ý�d”o¥zÑ2Ô2ð 	2Øœ×-Ò-Ñ/Ô/ˆJØ&*Ô&7ˆJÔ#Ø×/Ò/Ñ1Ô1Ð1õ ‰wŒw×(Ò(Ñ*Ô*Ð*r,   c                 ó6   — |                      | j        ¦  «        S r”   )r—  ró   r¾   s      r%   r   zExpressionWrapper.as_sqlç  s   € Ø×Ò ¤Ñ0Ô0Ð0r,   c                 óL   — d                      | j        j        | j        ¦  «        S r¾  )r�  rÞ   r'   ró   rD   s    r%   rŽ  zExpressionWrapper.__repr__ê  s   € Ø�Š˜tœ~Ô6¸¼ÑHÔHÐHr,   c                 ó   — | j         j        S r”   )ró   rA  rD   s    r%   rA  z!ExpressionWrapper.allowed_defaultí  s   € àŒÔ.Ð.r,   )r'   r(   r)   r*   rž   r°   r«   r   r   rŽ  rC  rA  r§  r¨  s   @r%   r’  r’  Í  sµ   ø€ € € € € ðð ð
%ð %ð %ð %ð %ð#ð #ð #ð!ð !ð !ð+ð +ð +ð +ð +ð1ð 1ð 1ðIð Ið Ið ð/ð /ñ „Xð/ð /ð /ð /ð /r,   r’  c                   óF   ‡ — e Zd ZdZˆ fd„Zd„ Zˆ fd„Z	 d
ˆ fd„	Zd	„ Zˆ xZ	S )r•   z1The logical negation of a conditional expression.c                 óp   •— t          ¦   «                              |t          j        ¦   «         ¬¦  «         d S rŠ  )r‹  rž   r   râ   r™  s     €r%   rž   zNegatedExpression.__init__õ  s/   ø€ Ý‰Œ×Ò˜µ&Ô2EÑ2GÔ2GÐÑHÔHÐHÐHÐHr,   c                 ó4   — | j                              ¦   «         S r”   )ró   r¢   rD   s    r%   r–   zNegatedExpression.__invert__ø  s   € ØŒ×#Ò#Ñ%Ô%Ð%r,   c                 óL  •— 	 t          ¦   «                              ||¦  «        \  }}nH# t          $ r; |j        j        }|j        sY dS |                     t          d¦  «        ¦  «        cY S w xY w|j        j        }| 	                    | j
        ¦  «        sd|› d�|fS d|› �|fS )N)z1=1r+   Tz
CASE WHEN z = 0 THEN 1 ELSE 0 ENDzNOT )r‹  r   r   r   r¯  Ú&supports_boolean_expr_in_select_clauser—  r:   r˜  Ú0conditional_expression_supported_in_where_clauseró   )r    r!   r   r#   r$   r¯  r˜  rÞ   s          €r%   r   zNegatedExpression.as_sqlû  sÌ   ø€ ð	1Ý™'œ'Ÿ.š.¨°:Ñ>Ô>‰KˆC��øÝð 	1ð 	1ð 	1ØÔ*Ô3ˆHØÔBð !Ø �y�yØ×#Ò#¥E¨$¡K¤KÑ0Ô0Ð0Ð0Ð0ð		1øøøð
 Ô!Ô%ˆð ×CÒCÀDÄOÑTÔTð 	DØ; Ð;Ð;Ð;¸VÐCÐCØ�cˆ|ˆ|˜VÐ#Ð#s   ƒ%) ©A.Á	"A.Á-A.NTFc                 óœ   •— t          ¦   «                              |||||¦  «        }t          |j        dd¦  «        st	          d¦  «        ‚|S )Nra   Fz*Cannot negate non-conditional expressions.)r‹  r8   rd   ró   rÅ  )r    rÖ   rÔ   r×   rØ   rÕ   r¤  rÞ   s          €r%   r8   z$NegatedExpression.resolve_expression  sW   ø€ õ ‘7”7×-Ò-Ø�;  y°(ñ
ô 
ˆõ �xÔ*¨M¸5ÑAÔAð 	JÝÐHÑIÔIÐIØˆr,   c                 ó˜   — |j         j        j        }|j         j        j        s% || j        ¦  «        rd                     |¦  «        }||fS ©NzCASE WHEN {} THEN 1 ELSE 0 END)r   r˜  r¢  r¯  r¡  ró   r�  )r    r!   r#   r$   Ú$expression_supported_in_where_clauses        r%   r7  zNegatedExpression.select_format  s^   € ð
 ÔÔ#ÔTð 	-ð Ô#Ô,ÔSð	?ð 5Ð4°T´_ÑEÔEð	?ð
 3×9Ò9¸#Ñ>Ô>ˆCØ�Fˆ{Ðr,   r<  )
r'   r(   r)   r*   rž   r–   r   r8   r7  r§  r¨  s   @r%   r•   r•   ò  sŸ   ø€ € € € € Ø;Ð;ðIð Ið Ið Ið Ið&ð &ð &ð$ð $ð $ð $ð $ð" SXðð ð ð ð ð ðð ð ð ð ð ð r,   r•   zdjango.db.models.Whenc                   óx   ‡ — e Zd ZdZdZdˆ fd„	Zd„ Zd„ Zd„ Zd„ Z		 dˆ fd
„	Z
d„ Zdd„Zd„ Zed„ ¦   «         Zˆ xZS )ÚWhenz"WHEN %(condition)s THEN %(result)sFNc                 ó”  •— |r1|€t          di |¤Žd }}n t          |dd¦  «        rt          |fi |¤Žd }}|�t          |dd¦  «        r|rt          d¦  «        ‚t          |t           ¦  «        r|st	          d¦  «        ‚t          ¦   «                              d ¬¦  «         || _        |                      |¦  «        d         | _	        d S )Nra   FzLWhen() supports a Q object, a boolean expression, or lookups as a condition.z1An empty Q() can't be used as a When() condition.rœ   r   r+   )
r   rd   rÅ  r´   rÝ   r‹  rž   Ú	conditionr¼   r}  )r    rª  ÚthenÚlookupsrÞ   s       €r%   rž   zWhen.__init__+  sõ   ø€ Øð 	CØÐ Ý%& \ \¨ \ \°4˜7�	�	Ý˜ M°5Ñ9Ô9ð CÝ%& yÐ%<Ð%<°GÐ%<Ð%<¸d˜7�	ØÐ¥G¨I°}ÀeÑ$LÔ$LÐÐPWÐÝð"ñô ð õ �i¥Ñ#Ô#ð 	R¨Ið 	RÝÐPÑQÔQÐQÝ‰Œ×Ò dÐÑ+Ô+Ð+Ø"ˆŒØ×-Ò-¨dÑ3Ô3°AÔ6ˆŒˆˆr,   c                 ó&   — d| j         ›d| j        ›�S )NzWHEN z THEN ©rª  r}  rD   s    r%   r�  zWhen.__str__<  s   € € Ø$(¤N N N°D´K°KÐ@Ð@r,   c                 ó(   — d| j         j        ›d| ›d�S ©Nú<z: ú>©rÞ   r'   rD   s    r%   rŽ  zWhen.__repr__?  ó   € € Ø!œ^Ô4Ð4Ð4°d°d°dÐ;Ð;r,   c                 ó   — | j         | j        gS r”   r®  rD   s    r%   r«   zWhen.get_source_expressionsB  s   € Ø” ¤Ð,Ð,r,   c                 ó$   — |\  | _         | _        d S r”   r®  r®   s     r%   r°   zWhen.set_source_expressionsE  s   € Ø&+Ñ#ˆŒ˜œ˜˜r,   Tc                 ó¬   •— t          ¦   «                              |||||¦  «        }|r+|j        �$| j                             ||||d¬¦  «        |_        |S )NF)rÕ   )r‹  r8   rª  r!  s          €r%   r8   zWhen.resolve_expressionH  sc   ø€ õ ‰GŒG×&Ò& u¨k¸5À)ÈXÑVÔVˆØð 	˜œÐ/àœ.×;Ò;Ø�{ E¨9¸uð <ñ ô ˆAŒKð ˆr,   c                 ó   — | j         j        gS r”   )r}  rè   rD   s    r%   rî   zWhen.get_source_fieldsS  s   € à”Ô1Ð2Ð2r,   c                 óô   — |j                              | ¦  «         |}g }|                     | j        ¦  «        \  }}||d<   |                     | j        ¦  «        \  }	}
|	|d<   |p| j        }||z  g |¢|¢|
¢R fS )Nrª  r}  )r˜  r±  r—  rª  r}  r  )r    r!   r   r  r"   Útemplate_paramsÚ
sql_paramsÚcondition_sqlÚcondition_paramsÚ
result_sqlÚresult_paramss              r%   r   zWhen.as_sqlW  s­   € ØŒ×/Ò/°Ñ5Ô5Ð5Ø'ˆØˆ
Ø*2×*:Ò*:¸4¼>Ñ*JÔ*JÑ'ˆÐ'Ø'4ˆ˜Ñ$Ø$,×$4Ò$4°T´[Ñ$AÔ$AÑ!ˆ
�MØ$.ˆ˜Ñ!ØÐ,˜tœ}ˆØ˜/Ñ)ð ,
Øð,
àð,
ð ð,
ð ,
ð 
ð 	
r,   c                 ó†   — g }|                       ¦   «         D ])}|                     |                     ¦   «         ¦  «         Œ*|S r”   rŠ  r!  s      r%   r   zWhen.get_group_by_colsf  sH   € àˆØ×1Ò1Ñ3Ô3ð 	4ð 	4ˆFØ�KŠK˜×0Ò0Ñ2Ô2Ñ3Ô3Ð3Ð3Øˆr,   c                 ó2   — | j         j        o| j        j        S r”   )rª  rA  r}  rD   s    r%   rA  zWhen.allowed_defaultm  s   € àŒ~Ô-ÐM°$´+Ô2MÐMr,   ©NNr<  r”   )r'   r(   r)   r  ra   rž   r�  rŽ  r«   r°   r8   rî   r   r   r   rA  r§  r¨  s   @r%   r¨  r¨  %  sÿ   ø€ € € € € à3€Hà€Kð7ð 7ð 7ð 7ð 7ð 7ð"Að Að Að<ð <ð <ð-ð -ð -ð,ð ,ð ,ð SXð	ð 	ð 	ð 	ð 	ð 	ð3ð 3ð 3ð
ð 
ð 
ð 
ðð ð ð ðNð Nñ „_ðNð Nð Nð Nð Nr,   r¨  zdjango.db.models.Casec                   ó~   ‡ — e Zd ZdZdZdZdddœˆ fd„
Zd„ Zd„ Zd	„ Z	d
„ Z
ˆ fd„Z	 dd„Zˆ fd„Zed„ ¦   «         Zˆ xZS )ÚCasezÊ
    An SQL searched CASE expression:

        CASE
            WHEN n > 0
                THEN 'positive'
            WHEN n < 0
                THEN 'negative'
            ELSE 'zero'
        END
    z#CASE %(cases)s ELSE %(default)s ENDrö  N)Údefaultr   c                ó  •— t          d„ |D ¦   «         ¦  «        st          d¦  «        ‚t          ¦   «                              |¦  «         t	          |¦  «        | _        |                      |¦  «        d         | _        || _        d S )Nc              3   ó@   K  — | ]}t          |t          ¦  «        V — Œd S r”   )r´   r¨  )r¸   Úcases     r%   rÄ   z Case.__init__.<locals>.<genexpr>„  s,   è è € Ð<Ð<¨d•:˜d¥DÑ)Ô)Ð<Ð<Ð<Ð<Ð<Ð<r,   z.Positional arguments must all be When objects.r   )	r  rÅ  r‹  rž   rw  Úcasesr¼   rÅ  rú  )r    rÅ  r   rÉ  rú  rÞ   s        €r%   rž   zCase.__init__ƒ  s|   ø€ ÝÐ<Ð<°eÐ<Ñ<Ô<Ñ<Ô<ð 	NÝÐLÑMÔMÐMÝ‰Œ×Ò˜Ñ&Ô&Ð&Ý˜%‘[”[ˆŒ
Ø×.Ò.¨wÑ7Ô7¸Ô:ˆŒØˆŒ
ˆ
ˆ
r,   c                 ó`   — dd                      d„ | j        D ¦   «         ¦  «        ›d| j        ›�S )NzCASE rì   c              3   ó4   K  — | ]}t          |¦  «        V — Œd S r”   rý  )r¸   rß   s     r%   rÄ   zCase.__str__.<locals>.<genexpr>�  s(   è è € Ð1Ð1 •c˜!‘f”fÐ1Ð1Ð1Ð1Ð1Ð1r,   z, ELSE )r  rÉ  rÅ  rD   s    r%   r�  zCase.__str__‹  s;   € € à�IŠIÐ1Ð1 d¤jÐ1Ñ1Ô1Ñ1Ô1Ð1Ð1ØŒLˆLð
ð 	
r,   c                 ó(   — d| j         j        ›d| ›d�S r°  r³  rD   s    r%   rŽ  zCase.__repr__‘  r´  r,   c                 ó"   — | j         | j        gz   S r”   ©rÉ  rÅ  rD   s    r%   r«   zCase.get_source_expressions”  s   € ØŒz˜Tœ\˜NÑ*Ð*r,   c                 ó$   — |�^ | _         | _        d S r”   rÎ  r®   s     r%   r°   zCase.set_source_expressions—  s   € Ø$)Ñ!ˆŒ�T”\�\�\r,   c                 óp   •— t          ¦   «                              ¦   «         }|j        d d …         |_        |S r”   )r‹  r¢   rÉ  )r    rß   rÞ   s     €r%   r¢   z	Case.copyš  s*   ø€ Ý‰GŒG�LŠL‰NŒNˆØ”'˜!˜!˜!”*ˆŒØˆr,   c                 óþ  — |j                              | ¦  «         | j        s|                     | j        ¦  «        S i | j        ¥|¥}g }g }| j        D ]}		 |                     |	¦  «        \  }
}n9# t          $ r Y Œ(t          $ r! |                     |	j        ¦  «        \  }}Y  nLw xY w| 	                    |
¦  «         | 
                    |¦  «         Œ€|                     | j        ¦  «        \  }}|s||fS |p| j        }|                     |¦  «        |d<   ||d<   | 
                    |¦  «         |p|                     d| j        ¦  «        }||z  }| j        �"|j                              | j        ¦  «        |z  }||fS )NrÉ  rÅ  r  )r˜  r±  rÉ  r—  rÅ  rú  r   r   r}  rb  r  Úcase_joinerr  r  r  rè   Úunification_cast_sqlr   )r    r!   r   r  rÒ  r"   rº  Ú
case_partsr»  rÈ  Úcase_sqlÚcase_paramsÚdefault_sqlÚdefault_paramsr#   s                  r%   r   zCase.as_sqlŸ  sÍ  € ð 	Œ×/Ò/°Ñ5Ô5Ð5ØŒzð 	2Ø×#Ò# D¤LÑ1Ô1Ð1Ø9˜TœZÐ9¨=Ð9ˆØˆ
Øˆ
Ø”Jð 	Ið 	IˆDðØ(0×(8Ò(8¸Ñ(>Ô(>Ñ%�˜+˜+øÝ!ð ð ð Ø�Ý ð ð ð Ø.6×.>Ò.>¸t¼{Ñ.KÔ.KÑ+�˜^Ø��ðøøøð ×Ò˜hÑ'Ô'Ð'Ø×Ò˜kÑ*Ô*Ð*Ð*à*2×*:Ò*:¸4¼<Ñ*HÔ*HÑ'ˆK˜Øð 	/Ø Ð.Ð.Ø!Ð5 TÔ%5ˆØ#.×#3Ò#3°JÑ#?Ô#?ˆ˜Ñ Ø%0ˆ˜	Ñ"Ø×Ò˜.Ñ)Ô)Ð)ØÐM˜×2Ò2°:¸t¼}ÑMÔMˆØ˜Ñ(ˆØÔ%Ð1Ø”.×5Ò5°dÔ6GÑHÔHÈ3ÑNˆCØ�JˆÐs   ÁA.Á.
B$Á:&B$Â#B$c                 ó„   •— | j         s| j                             ¦   «         S t          ¦   «                              ¦   «         S r”   )rÉ  rÅ  r   r‹  )r    rÞ   s    €r%   r   zCase.get_group_by_colsÀ  s7   ø€ ØŒzð 	4Ø”<×1Ò1Ñ3Ô3Ð3Ý‰wŒw×(Ò(Ñ*Ô*Ð*r,   c                 óV   — | j         j        ot          d„ | j        D ¦   «         ¦  «        S )Nc              3   ó$   K  — | ]}|j         V — Œd S r”   r  )r¸   Úcase_s     r%   rÄ   z'Case.allowed_default.<locals>.<genexpr>Ç  s6   è è € ð 4
ð 4
Ø&+ˆEÔ!ð4
ð 4
ð 4
ð 4
ð 4
ð 4
r,   )rÅ  rA  r  rÉ  rD   s    r%   rA  zCase.allowed_defaultÅ  s>   € àŒ|Ô+ð 
µð 4
ð 4
Ø/3¬zð4
ñ 4
ô 4
ñ 1
ô 1
ð 	
r,   rÂ  )r'   r(   r)   r*   r  rÒ  rž   r�  rŽ  r«   r°   r¢   r   r   r   rA  r§  r¨  s   @r%   rÄ  rÄ  r  s  ø€ € € € € ð
ð 
ð 5€HØ€Kà'+¸$ð ð ð ð ð ð ð ð
ð 
ð 
ð<ð <ð <ð+ð +ð +ð*ð *ð *ðð ð ð ð ð @Dðð ð ð ðB+ð +ð +ð +ð +ð
 ð
ð 
ñ „_ð
ð 
ð 
ð 
ð 
r,   rÄ  c                   óz   ‡ — e Zd ZdZdZdZdZdZdˆ fd„	Zd„ Z	d„ Z
d	„ Zˆ fd
„Zed„ ¦   «         Zd„ Zdd„Zd„ Zˆ xZS )ÚSubqueryz”
    An explicit subquery. It may contain OuterRef() references to the outer
    query which will be resolved when it is applied to that query.
    z(%(subquery)s)FNTc                 óÀ   •— t          |d|¦  «                             ¦   «         | _        d| j        _        || _        t          ¦   «                              |¦  «         d S )NrÖ   T)rd   r  rÖ   rÐ   rú  r‹  rž   )r    Úquerysetr   rú  rÞ   s       €r%   rž   zSubquery.__init__×  sQ   ø€ å˜X w°Ñ9Ô9×?Ò?ÑAÔAˆŒ
Ø"ˆŒ
ÔØˆŒ
Ý‰Œ×Ò˜Ñ&Ô&Ð&Ð&Ð&r,   c                 ó   — | j         gS r”   ©rÖ   rD   s    r%   r«   zSubquery.get_source_expressionsÞ  s   € Ø”
ˆ|Ðr,   c                 ó    — |d         | _         d S r•  râ  r®   s     r%   r°   zSubquery.set_source_expressionsá  s   € Ø˜1”XˆŒ
ˆ
ˆ
r,   c                 ó   — | j         j        S r”   )rÖ   r   rD   s    r%   ræ   zSubquery._resolve_output_fieldä  s   € ØŒzÔ&Ð&r,   c                 ó„   •— t          ¦   «                              ¦   «         }|j                             ¦   «         |_        |S r”   )r‹  r¢   rÖ   r  )r    r  rÞ   s     €r%   r¢   zSubquery.copyç  s.   ø€ Ý‘”—’‘”ˆØ”k×'Ò'Ñ)Ô)ˆŒØˆr,   c                 ó   — | j         j        S r”   )rÖ   Úexternal_aliasesrD   s    r%   rç  zSubquery.external_aliasesì  s   € àŒzÔ*Ð*r,   c                 ó4   — | j                              ¦   «         S r”   )rÖ   Úget_external_colsrD   s    r%   ré  zSubquery.get_external_colsð  s   € ØŒz×+Ò+Ñ-Ô-Ð-r,   c                 óî   — |j                              | ¦  «         i | j        ¥|¥}| j                             ||¦  «        \  }}|dd…         |d<   |p|                     d| j        ¦  «        }||z  }||fS )Nræ  rA   rÐ   r  )r˜  r±  rú  rÖ   r   r  r  )	r    r!   r   r  r"   rº  Úsubquery_sqlr»  r#   s	            r%   r   zSubquery.as_sqló  sˆ   € ØŒ×/Ò/°Ñ5Ô5Ð5Ø9˜TœZÐ9¨=Ð9ˆØ#'¤:×#4Ò#4°X¸zÑ#JÔ#JÑ ˆ�jØ&2°1°R°4Ô&8ˆ˜
Ñ#àÐM˜×2Ò2°:¸t¼}ÑMÔMˆØ˜Ñ(ˆØ�JˆÐr,   c                 ó8   — | j                              | ¬¦  «        S )N)Úwrapper)rÖ   r   rD   s    r%   r   zSubquery.get_group_by_colsý  s   € ØŒz×+Ò+°DÐ+Ñ9Ô9Ð9r,   r”   )r'   r(   r)   r*   r  rÁ   r>  rÐ   rž   r«   r°   ræ   r¢   rC  rç  ré  r   r   r§  r¨  s   @r%   rÞ  rÞ  Ì  sò   ø€ € € € € ðð ð
  €HØÐØ!ÐØ€Hð'ð 'ð 'ð 'ð 'ð 'ðð ð ðð ð ð'ð 'ð 'ðð ð ð ð ð
 ð+ð +ñ „Xð+ð.ð .ð .ðð ð ð ð:ð :ð :ð :ð :ð :ð :r,   rÞ  c                   óT   ‡ — e Zd ZdZ ej        ¦   «         ZdZˆ fd„Zd„ Z	ˆ fd„Z
ˆ xZS )ÚExistszEXISTS(%(subquery)s)Fc                 óx   •—  t          ¦   «         j        |fi |¤Ž | j                             ¦   «         | _        d S r”   )r‹  rž   rÖ   Úexists)r    rà  r)  rÞ   s      €r%   rž   zExists.__init__  s;   ø€ Ø�‰ŒÔ˜Ð,Ð, VÐ,Ð,Ð,Ø”Z×&Ò&Ñ(Ô(ˆŒ
ˆ
ˆ
r,   c                 óV   — |j         j        j        sd                     |¦  «        }||fS r¥  )r   r¯  r¡  r�  r8  s       r%   r7  zExists.select_format
  s2   € ð Ô"Ô+ÔRð 	?Ø2×9Ò9¸#Ñ>Ô>ˆCØ�Fˆ{Ðr,   c                 óÐ   •— 	  t          ¦   «         j        |g|¢R i |¤ŽS # t          $ r; |j        j        }|j        sY dS |                     t          d¦  «        ¦  «        cY S w xY w)N)z1=0r+   F)r‹  r   r   r   r¯  r¡  r—  r:   )r    r!   rc  r)  r¯  rÞ   s        €r%   r   zExists.as_sql  s†   ø€ ð	2Ø!•5‘7”7”> (Ð<¨TÐ<Ð<Ð<°VÐ<Ð<Ð<øÝð 	2ð 	2ð 	2ØÔ*Ô3ˆHØÔBð !Ø �y�yØ×#Ò#¥E¨%¡L¤LÑ1Ô1Ð1Ð1Ð1ð		2øøøs   ƒ   A%Á "A%Á$A%)r'   r(   r)   r  r   râ   r   r>  rž   r7  r   r§  r¨  s   @r%   rï  rï    s{   ø€ € € € € Ø%€HØ&�6Ô&Ñ(Ô(€LØ"Ðð)ð )ð )ð )ð )ðð ð ð2ð 2ð 2ð 2ð 2ð 2ð 2ð 2ð 2r,   rï  zdjango.db.models.OrderByc                   ó^   — e Zd ZdZdZdZdZdd„Zd„ Zd„ Z	d„ Z
dd	„Zd
„ Zd„ Zd„ Zd„ Zd„ ZdS )r'  z%(expression)s %(ordering)sFTNc                 óÐ   — |r|rt          d¦  «        ‚|du s|du rt          d¦  «        ‚|| _        || _        || _        t	          |d¦  «        st          d¦  «        ‚|| _        d S )Nz1nulls_first and nulls_last are mutually exclusiveFz7nulls_first and nulls_last values must be True or None.r8   z%expression must be an expression type)rÝ   Únulls_firstÚ
nulls_lastr.  r9   ró   )r    ró   r.  rö  r÷  s        r%   rž   zOrderBy.__init__#  sŠ   € Øð 	R˜:ð 	RÝÐPÑQÔQÐQØ˜%ÐÐ :°Ð#6Ð#6ÝÐVÑWÔWÐWØ&ˆÔØ$ˆŒØ$ˆŒÝ�zÐ#7Ñ8Ô8ð 	FÝÐDÑEÔEÐEØ$ˆŒˆˆr,   c                 óX   — d                      | j        j        | j        | j        ¦  «        S )Nz{}({}, descending={}))r�  rÞ   r'   ró   r.  rD   s    r%   rŽ  zOrderBy.__repr__/  s*   € Ø&×-Ò-ØŒNÔ# T¤_°d´oñ
ô 
ð 	
r,   c                 ó    — |d         | _         d S r•  rG  r®   s     r%   r°   zOrderBy.set_source_expressions4  r–  r,   c                 ó   — | j         gS r”   rG  rD   s    r%   r«   zOrderBy.get_source_expressions7  rH  r,   c                 ó>  — t          | j        t          ¦  «        ržg }g }| j                             ¦   «         D ]i}|                      ¦   «         } |j        |g¦  «         |                     |¦  «        \  }	}
|                     |	¦  «         |                     |
¦  «         Œjd 	                    |¦  «        |fS |p| j
        }|j        j        r| j        rd|z  }nL| j        rd|z  }n?| j        r| j        r|j        j        sd|z  }n| j        r| j        s|j        j        sd|z  }|j                             | ¦  «         |                     | j        ¦  «        \  }}|| j        rdnddœ|¥}||                     d	¦  «        z  }||z                       ¦   «         |fS )
Nrì   z%s NULLS LASTz%s NULLS FIRSTz%%(expression)s IS NULL, %sz%%(expression)s IS NOT NULL, %sÚDESCÚASC)ró   Úorderingz%(expression)s)r´   ró   rÚ   rc  r¢   r°   r—  rb  r  r  r  r¯  Ú supports_order_by_nulls_modifierr÷  rö  r.  Úorder_by_nulls_firstr˜  r±  ÚcountÚrstrip)r    r!   r   r  r"   r  r$   rÛ  r¢   r#   Ú
col_paramsÚexpression_sqlÚplaceholderss                r%   r   zOrderBy.as_sql:  sî  € Ý�d”o¥xÑ0Ô0ð 		0ØˆIØˆFØ”×/Ò/Ñ1Ô1ð *ð *�Ø—y’y‘{”{�Ø+�Ô+¨S¨EÑ2Ô2Ð2Ø"*×"2Ò"2°4Ñ"8Ô"8‘��ZØ× Ò  Ñ%Ô%Ð%Ø—’˜jÑ)Ô)Ð)Ð)Ø—9’9˜YÑ'Ô'¨Ð/Ð/ØÐ,˜tœ}ˆØÔÔ?ð 	HØŒð 7Ø*¨XÑ5��ØÔ!ð 7Ø+¨hÑ6�øàŒð HØ”ðHØ$.Ô$7Ô$LðHð 9¸8ÑC��ØÔ!ð HØ”OðHØ(2Ô(;Ô(PðHð =¸xÑG�ØŒ×/Ò/°Ñ5Ô5Ð5Ø!)×!1Ò!1°$´/Ñ!BÔ!BÑˆ˜à(Ø"&¤/Ð<˜˜°uð
ð 
ð ð
ˆð
 	�(—.’.Ð!1Ñ2Ô2Ñ2ˆØ˜<Ñ'×/Ò/Ñ1Ô1°6Ð9Ð9r,   c                 ó"  — |j         j        sn|j                             | j        ¦  «        rO|                      ¦   «         }t          t          | j        d¬¦  «        d¬¦  «        |_         |j        ||¦  «        S |                      ||¦  «        S )NT)r«  F)rÅ  )	r¯  r¡  r˜  r¢  ró   r¢   rÄ  r¨  r   )r    r!   r   r¢   s       r%   Ú	as_oraclezOrderBy.as_oracle^  s•   € ð Ô#ÔJð	5à”×OÒOØ”ñô ð	5ð —9’9‘;”;ˆDÝ"Ý�T”_¨4Ð0Ñ0Ô0Øðñ ô ˆDŒOð �4”;˜x¨Ñ4Ô4Ð4Ø�{Š{˜8 ZÑ0Ô0Ð0r,   c                 ó†   — g }|                       ¦   «         D ])}|                     |                     ¦   «         ¦  «         Œ*|S r”   rŠ  r!  s      r%   r   zOrderBy.get_group_by_colso  sH   € ØˆØ×1Ò1Ñ3Ô3ð 	4ð 	4ˆFØ�KŠK˜×0Ò0Ñ2Ô2Ñ3Ô3Ð3Ð3Øˆr,   c                 óv   — | j          | _         | j        rd| _        d | _        n| j        rd| _        d | _        | S r}   )r.  rö  r÷  rD   s    r%   r2  zOrderBy.reverse_orderingu  sI   € Ø"œoÐ-ˆŒØÔð 	#Ø"ˆDŒOØ#ˆDÔÐØŒ_ð 	#Ø#ˆDÔØ"ˆDŒOØˆr,   c                 ó   — d| _         d S rG   r�  rD   s    r%   r*  zOrderBy.asc  s   € ØˆŒˆˆr,   c                 ó   — d| _         d S r}   r�  rD   s    r%   r/  zOrderBy.desc‚  s   € ØˆŒˆˆr,   )FNNr”   )r'   r(   r)   r  ra   r:  rÜ   rž   rŽ  r°   r«   r   r  r   r2  r*  r/  r+   r,   r%   r'  r'    sË   € € € € € à,€HØ€KØ',Ð$Ø#'Ð ð
%ð 
%ð 
%ð 
%ð
ð 
ð 
ð
#ð #ð #ð!ð !ð !ð":ð ":ð ":ð ":ðH1ð 1ð 1ð"ð ð ðð ð ð ð  ð  ðð ð ð ð r,   r'  c                   ój   ‡ — e Zd ZdZdZdZ	 	 	 	 dˆ fd„	Zd„ Zd„ Zd„ Z	dd	„Z
ˆ fd
„Zd„ Zd„ Zd„ Zˆ xZS )ÚWindowz %(expression)s OVER (%(window)s)FTNc                 ó¬  •— || _         || _        || _        t          |dd¦  «        st	          d|j        j        z  ¦  «        ‚| j         �At          | j         t          t          f¦  «        s| j         f| _         t          | j         Ž | _         | j        �t          | j        t          t          f¦  «        rt          | j        Ž | _        nJt          | j        t          t          f¦  «        rt          | j        ¦  «        | _        nt	          d¦  «        ‚t          ¦   «                              |¬¦  «         |                      |¦  «        d         | _        d S )Nr@  Fz3Expression '%s' isn't compatible with OVER clauses.zhWindow.order_by must be either a string reference to a field, an expression, or a list or tuple of them.rœ   r   )Úpartition_byÚorder_byÚframerd   rÝ   rÞ   r'   r´   rR  rw  rƒ  r�  rš   rµ   r‹  rž   r¼   Úsource_expression)r    ró   r  r  r  r   rÞ   s         €r%   rž   zWindow.__init__Ž  sG  ø€ ð )ˆÔØ ˆŒØˆŒ
å�zÐ#6¸Ñ>Ô>ð 	ÝØEØÔ&Ô/ñ0ñô ð ð
 ÔÐ(Ý˜dÔ/µ%½°Ñ?Ô?ð 9Ø%)Ô%6Ð$8�Ô!Ý .°Ô0AÐ BˆDÔàŒ=Ð$Ý˜$œ-­$µ¨Ñ7Ô7ð Ý +¨T¬]Ð ;�”�Ý˜DœM­N½CÐ+@ÑAÔAð Ý +¨D¬MÑ :Ô :�”�å ðHñô ð õ 	‰Œ×Ò lÐÑ3Ô3Ð3Ø!%×!8Ò!8¸Ñ!DÔ!DÀQÔ!GˆÔÐÐr,   c                 ó   — | j         j        S r”   )r  r   rD   s    r%   ræ   zWindow._resolve_output_field²  s   € ØÔ%Ô2Ð2r,   c                 ó6   — | j         | j        | j        | j        gS r”   ©r  r  r  r  rD   s    r%   r«   zWindow.get_source_expressionsµ  s   € ØÔ&¨Ô(9¸4¼=È$Ì*ÐUÐUr,   c                 ó<   — |\  | _         | _        | _        | _        d S r”   r  r®   s     r%   r°   zWindow.set_source_expressions¸  s   € ØOTÑLˆÔ Ô 1°4´=À$Ä*À*À*r,   c                 óð  — |j                              | ¦  «         |j        j        st	          d¦  «        ‚|                     | j        ¦  «        \  }}g d}}| j        �G| j                             ||d¬¦  «        \  }}	| 	                    |¦  «         |t          |	¦  «        z  }| j        �D|                     | j        ¦  «        \  }
}| 	                    |
¦  «         |t          |¦  «        z  }| j        rD|                     | j        ¦  «        \  }}| 	                    |¦  «         |t          |¦  «        z  }|p| j        }||d                     |¦  «                             ¦   «         dœz  g |¢|¢R fS )Nz1This backend does not support window expressions.r+   zPARTITION BY %(expressions)s)r!   r   r  rö  )ró   Úwindow)r˜  r±  r¯  Úsupports_over_clauser   r—  r  r  r   rb  rR  r  r  r  r  Ústrip)r    r!   r   r  Úexpr_sqlr$   Ú
window_sqlÚwindow_paramsÚsql_exprr»  Ú	order_sqlÚorder_paramsÚ	frame_sqlÚframe_paramss                 r%   r   zWindow.as_sql»  s˜  € ØŒ×/Ò/°Ñ5Ô5Ð5ØÔ"Ô7ð 	YÝ#Ð$WÑXÔXÐXØ#×+Ò+¨DÔ,BÑCÔCÑˆ�&Ø$&¨�Mˆ
àÔÐ(Ø#'Ô#4×#;Ò#;Ø!Ø%Ø7ð $<ñ $ô $Ñ ˆH�jð
 ×Ò˜hÑ'Ô'Ð'Ø�U :Ñ.Ô.Ñ.ˆMàŒ=Ð$Ø&.×&6Ò&6°t´}Ñ&EÔ&EÑ#ˆI�|Ø×Ò˜iÑ(Ô(Ð(Ø�U <Ñ0Ô0Ñ0ˆMàŒ:ð 	1Ø&.×&6Ò&6°t´zÑ&BÔ&BÑ#ˆI�|Ø×Ò˜iÑ(Ô(Ð(Ø�U <Ñ0Ô0Ñ0ˆMàÐ,˜tœ}ˆð  h¸#¿(º(À:Ñ:NÔ:N×:TÒ:TÑ:VÔ:VÐWÐWÑWØ%ˆfÐ%�}Ð%Ð%ð
ð 	
r,   c                 ób  •— t          | j        t          j        ¦  «        rz|                      ¦   «         } |j        ¦   «         }t          j        ¦   «         |d         _         |j        |¦  «         t          t          |¦  «         
                    ||¦  «        S |                      ||¦  «        S r•  )r´   r   r   r   r¢   r«   rõ   r°   r‹  r  r&   r   )r    r!   r   r¢   rà   rÞ   s        €r%   r&   zWindow.as_sqliteÜ  s™   ø€ Ý�dÔ'­Ô)<Ñ=Ô=ð 	Gà—9’9‘;”;ˆDØ!< Ô!<Ñ!>Ô!>ÐÝ17Ô1BÑ1DÔ1DÐ˜qÔ!Ô.Ø'ˆDÔ'Ð(:Ñ;Ô;Ð;Ý� Ñ&Ô&×0Ò0°¸:ÑFÔFÐFØ�{Š{˜8 ZÑ0Ô0Ð0r,   c                 óâ   — d                      t          | j        ¦  «        | j        rdt          | j        ¦  «        z   ndt          | j        pd¦  «        t          | j        pd¦  «        ¦  «        S )Nz{} OVER ({}{}{})zPARTITION BY r‡  )r�  rµ   r  r  r  r  rD   s    r%   r�  zWindow.__str__æ  sl   € Ø!×(Ò(Ý�Ô&Ñ'Ô'Ø8<Ô8IÐQˆO�c $Ô"3Ñ4Ô4Ñ4Ð4ÈrÝ�”Ð# Ñ$Ô$Ý�”
Ð ˜bÑ!Ô!ñ	
ô 
ð 	
r,   c                 ó(   — d| j         j        ›d| ›d�S r°  r³  rD   s    r%   rŽ  zWindow.__repr__î  r´  r,   c                 óÖ   — g }| j         r,|                     | j                              ¦   «         ¦  «         | j        �,|                     | j                             ¦   «         ¦  «         |S r”   )r  r  r   r  )r    r‹  s     r%   r   zWindow.get_group_by_colsñ  sf   € ØˆØÔð 	HØ× Ò  Ô!2×!DÒ!DÑ!FÔ!FÑGÔGÐGØŒ=Ð$Ø× Ò  ¤×!@Ò!@Ñ!BÔ!BÑCÔCÐCØÐr,   )NNNNr”   )r'   r(   r)   r  rÁ   rÉ   rž   ræ   r«   r°   r   r&   r�  rŽ  r   r§  r¨  s   @r%   r  r  †  só   ø€ € € € € Ø1€Hð ÐØÐð
 ØØØð"Hð "Hð "Hð "Hð "Hð "HðH3ð 3ð 3ðVð Vð VðUð Uð Uð
ð 
ð 
ð 
ðB1ð 1ð 1ð 1ð 1ð
ð 
ð 
ð<ð <ð <ðð ð ð ð ð ð r,   r  c                   ó$   — e Zd ZdZdZdZdZd„ ZdS )ÚWindowFrameExclusionzCURRENT ROWÚGROUPÚTIESz	NO OTHERSc                 ó.   — | j         j        › d| j        › �S rW  )rÞ   r)   Ú_name_rD   s    r%   rŽ  zWindowFrameExclusion.__repr__   s   € Ø”.Ô-Ð=Ð=°´Ð=Ð=Ð=r,   N)r'   r(   r)   ÚCURRENT_ROWr)  r*  Ú	NO_OTHERSrŽ  r+   r,   r%   r(  r(  ú  s7   € € € € € Ø€KØ€EØ€DØ€Ið>ð >ð >ð >ð >r,   r(  c                   óN   — e Zd ZdZdZdd„Zd„ Zd„ Zd„ Zd„ Z	d	„ Z
d
„ Zd„ Zd„ ZdS )ÚWindowFrameaV  
    Model the frame clause in window expressions. There are two types of frame
    clauses which are subclasses, however, all processing and validation (by no
    means intended to be complete) is done here. Thus, providing an end for a
    frame is optional (the default is UNBOUNDED FOLLOWING, which is the last
    row in the frame).
    z7%(frame_type)s BETWEEN %(start)s AND %(end)s%(exclude)sNc                 óÔ   — t          |¦  «        | _        t          |¦  «        | _        t          |t          t
          f¦  «        st          | j        j        › d�¦  «        ‚|| _	        d S )Nz3.exclusion must be a WindowFrameExclusion instance.)
r:   rè  Úendr´   r	   r(  rÅ  rÞ   r)   Ú	exclusion)r    rè  r2  r3  s       r%   rž   zWindowFrame.__init__  sj   € Ý˜5‘\”\ˆŒ
Ý˜‘:”:ˆŒÝ˜)¥hÕ0DÐ%EÑFÔFð 	ÝØ”>Ô.ð 1ð 1ð 1ñô ð ð #ˆŒˆˆr,   c                 ó$   — |\  | _         | _        d S r”   ©rè  r2  r®   s     r%   r°   z"WindowFrame.set_source_expressions  s   € Ø$ÑˆŒ
�D”H�H�Hr,   c                 ó   — | j         | j        gS r”   r5  rD   s    r%   r«   z"WindowFrame.get_source_expressions  s   € Ø”
˜DœHÐ%Ð%r,   c                 ó2   — | j         €dS d| j         j        › �S )Nr‡  z	 EXCLUDE )r3  rò   rD   s    r%   Úget_exclusionzWindowFrame.get_exclusion  s"   € ØŒ>Ð!Ø�2Ø1˜4œ>Ô/Ð1Ð1Ð1r,   c                 ó&  — |j                              | ¦  «         |                      || j        j        | j        j        ¦  «        \  }}| j        r|j        j        st          d¦  «        ‚| j
        | j        |||                      ¦   «         dœz  g fS )Nz6This backend does not support window frame exclusions.©Ú
frame_typerè  r2  Úexclude)r˜  r±  Úwindow_frame_start_endrè  rò   r2  r3  r¯  Úsupports_frame_exclusionr   r  r;  r8  )r    r!   r   rè  r2  s        r%   r   zWindowFrame.as_sql$  s®   € ØŒ×/Ò/°Ñ5Ô5Ð5Ø×0Ò0Ø˜œ
Ô(¨$¬(¬.ñ
ô 
‰
ˆˆsð Œ>ð 	 *Ô"5Ô"Nð 	Ý#ØHñô ð ð ŒMà"œoØØØ×-Ò-Ñ/Ô/ð	ð ñð ð	
ð 		
r,   c                 ó(   — d| j         j        ›d| ›d�S r°  r³  rD   s    r%   rŽ  zWindowFrame.__repr__8  r´  r,   c                 ó   — g S r”   r+   rD   s    r%   r   zWindowFrame.get_group_by_cols;  r¬   r,   c                 óf  — | j         j        �>| j         j        dk     r.dt          | j         j        ¦  «        t          j        j        fz  }n|| j         j        �"| j         j        dk    rt          j        j        }nN| j         j        �1| j         j        dk    r!d| j         j        t          j        j        fz  }nt          j        j        }| j	        j        �1| j	        j        dk    r!d| j	        j        t          j        j        fz  }n‰| j	        j        �"| j	        j        dk    rt          j        j        }n[| j	        j        �>| j	        j        dk     r.dt          | j	        j        ¦  «        t          j        j        fz  }nt          j        j
        }| j        | j        |||                      ¦   «         dœz  S )Nr   z%d %sr:  )rè  rò   Úabsr   r˜  Ú	PRECEDINGr-  Ú	FOLLOWINGÚUNBOUNDED_PRECEDINGr2  ÚUNBOUNDED_FOLLOWINGr  r;  r8  )r    rè  r2  s      r%   r�  zWindowFrame.__str__>  sq  € ØŒ:ÔÐ'¨D¬JÔ,<¸qÒ,@Ð,@Ø�s 4¤:Ô#3Ñ4Ô4µj´nÔ6NÐOÑOˆEˆEØŒZÔÐ)¨d¬jÔ.>À!Ò.CÐ.CÝ”NÔ.ˆEˆEØŒZÔÐ)¨d¬jÔ.>ÀÒ.BÐ.BØ˜tœzÔ/µ´Ô1IÐJÑJˆEˆEå”NÔ6ˆEàŒ8Œ>Ð%¨$¬(¬.¸1Ò*<Ð*<Ø˜TœXœ^­Z¬^Ô-EÐFÑFˆCˆCØŒXŒ^Ð'¨D¬H¬N¸aÒ,?Ð,?Ý”.Ô,ˆCˆCØŒXŒ^Ð'¨D¬H¬N¸QÒ,>Ð,>Ø�S ¤¤Ñ0Ô0µ*´.Ô2JÐKÑKˆCˆCå”.Ô4ˆCØŒ}Øœ/ØØØ×)Ò)Ñ+Ô+ð	 
ð  
ñ 
ð 	
r,   c                 ó    — t          d¦  «        ‚)Nz3Subclasses must implement window_frame_start_end().rŒ   ©r    r   rè  r2  s       r%   r=  z"WindowFrame.window_frame_start_endW  s   € Ý!Ð"WÑXÔXÐXr,   r  )r'   r(   r)   r*   r  rž   r°   r«   r8  r   rŽ  r   r�  r=  r+   r,   r%   r0  r0    s·   € € € € € ðð ð I€Hð#ð #ð #ð #ð%ð %ð %ð&ð &ð &ð2ð 2ð 2ð

ð 
ð 
ð(<ð <ð <ðð ð ð
ð 
ð 
ð2Yð Yð Yð Yð Yr,   r0  c                   ó   — e Zd ZdZd„ ZdS )ÚRowRangeÚROWSc                 ó8   — |j                              ||¦  «        S r”   )r˜  Úwindow_frame_rows_start_endrH  s       r%   r=  zRowRange.window_frame_start_end^  s   € ØŒ~×9Ò9¸%ÀÑEÔEÐEr,   N©r'   r(   r)   r;  r=  r+   r,   r%   rJ  rJ  [  s-   € € € € € Ø€JðFð Fð Fð Fð Fr,   rJ  c                   ó   — e Zd ZdZd„ ZdS )Ú
ValueRangeÚRANGEc                 ó8   — |j                              ||¦  «        S r”   )r˜  Úwindow_frame_range_start_endrH  s       r%   r=  z!ValueRange.window_frame_start_ende  s   € ØŒ~×:Ò:¸5À#ÑFÔFÐFr,   NrN  r+   r,   r%   rP  rP  b  s-   € € € € € Ø€JðGð Gð Gð Gð Gr,   rP  )dr¢   r&  rj  Úcollectionsr   Údecimalr   Úenumr   Ú	itertoolsr   Útypesr	   Úuuidr
   Údjango.core.exceptionsr   r   r   Ú	django.dbr   r   r   Údjango.db.modelsr   Údjango.db.models.constantsr   Údjango.db.models.query_utilsr   Údjango.utils.deconstructr   Údjango.utils.functionalr   r   Údjango.utils.hashabler   Údjango.utils.inspectr   r   r.   r˜   rš   rF  rI   rC   rU   rY   r]   rO   ri   rz   rm   rp   ru   rž  r�  r   rŸ  Ú_connector_combinationsrw  rz  r~  ÚdrU  r=   Úfield_typesr{  r|  r}  rk  r‡  r;   r¡  r¢  r¶   rÖ  rá  rÁ  ró  r:   r/  r>  rB  rP  rÚ   rv  rƒ  r�  r’  r•   r¨  rÄ  rÞ  rï  r'  r  r(  r0  rJ  rP  r+   r,   r%   ú<module>rf     s´  ðØ €€€Ø €€€Ø Ð Ð Ð Ø #Ð #Ð #Ð #Ð #Ð #Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð à LÐ LÐ LÐ LÐ LÐ LÐ LÐ LÐ LÐ LØ BÐ BÐ BÐ BÐ BÐ BÐ BÐ BÐ BÐ BØ #Ð #Ð #Ð #Ð #Ð #Ø 1Ð 1Ð 1Ð 1Ð 1Ð 1Ø *Ð *Ð *Ð *Ð *Ð *Ø 4Ð 4Ð 4Ð 4Ð 4Ð 4Ø BÐ BÐ BÐ BÐ BÐ BÐ BÐ BØ /Ð /Ð /Ð /Ð /Ð /Ø *Ð *Ð *Ð *Ð *Ð *ðð ð ð ð ñ ô ð ð A'ð A'ð A'ð A'ð A'ñ A'ô A'ð A'ðH	ð 	ð 	ð 	ð 	˜Zñ 	ô 	ð 	ðTð Tð Tð Tð Tñ Tô Tð Tðn
 ð*#ð *#ð *#ð *#ð *#� ñ *#ô *#ñ „ð*#ðpð ð ŒNØŒNØŒNØŒNØŒNð
ðñ ô ð"ð ð ŒNØŒNØŒNð ŒNØŒNØŒNð	
ðñ ô ð$ð ð ŒNØŒNØŒNØŒNØŒNð
ðñ ô ð ð ð
 ÔØÔØÔ#ØÔ$ØÔð
ð	ñ ô ðð ð ŒNØŒNØŒNØŒNØŒNØŒNð
ðñ ô ð, 	ŒàÔ˜vÔ3°VÔ5IÐJØÔ! 6Ô#7¸Ô9MÐNØÔ! 6Ô#3°VÔ5IÐJØÔ! 6Ô#7¸Ô9MÐNàÔ! 6Ô#7¸Ô9MÐNàÔ˜vÔ3°VÔ5EÐFØÔ! 6Ô#3°VÔ5EÐFð
ðð 	ŒàÔ˜vÔ3°VÔ5IÐJØÔ! 6Ô#7¸Ô9MÐNØÔ˜vÔ/°Ô1EÐFØÔ˜vÔ3°VÔ5IÐJØÔ! 6Ô#3°VÔ5IÐJØÔ! 6Ô#7¸Ô9MÐNàÔ! 6Ô#7¸Ô9MÐNàÔ˜vÔ3°VÔ5EÐFØÔ˜vÔ/°Ô1EÐFð
ððOwÐ ðr %˜ TÑ*Ô*Ð ð	Að 	Að 	Að 
!ð Dð D€AØ"#§'¢'¡)¤)ð Dð DÑˆ	�;Ø +ð 	Dð 	DÑˆC��fØ&Ð& s¨I°s¸FÑCÔCÐCÐCð	DðDð
 €Ô˜SÐ!Ñ!Ô!ð!ð !ñ "Ô!ð!ðTEð TEð TEð TEð TEÐ+¨Zñ TEô TEð TEðn0ð 0ð 0ð 0ð 0Ð+ñ 0ô 0ð 0ðf
ð 
ð 
ð 
ð 
Ð,ñ 
ô 
ð 
ð €Ð*Ð+Ñ+Ô+ð=ð =ð =ð =ð =ˆ
ñ =ô =ñ ,Ô+ð=ð@"ð "ð "ð "ð "�qñ "ô "ð "ðJ
ð 
ð 
ð 
ð 
ˆqñ 
ô 
ð 
ð6Uð 6Uð 6Uð 6Uð 6UˆQñ 6Uô 6Uð 6Uðr €Ð-Ð.Ñ.Ô.ðZYð ZYð ZYð ZYð ZYÐ˜zñ ZYô ZYñ /Ô.ðZYðz €Ð.Ð/Ñ/Ô/ðMð Mð Mð Mð MÐ 
ñ Mô Mñ 0Ô/ðMð` 
ð  
ð  
ð  
ð  
ˆZñ  
ô  
ð  
ðFð ð ð ð ˆ:ñ ô ð ð$ð $ð $ð $ð $�jñ $ô $ð $ðN$6ð $6ð $6ð $6ð $6ˆ*ñ $6ô $6ð $6ðN6ð 6ð 6ð 6ð 6ˆzñ 6ô 6ð 6ðr&ð &ð &ð &ð &ˆ*ñ &ô &ð &ðRð ð ð ð �Tñ ô ð ð80ð 0ð 0ð 0ð 0�.ñ 0ô 0ð 0ð  €Ð:Ð;Ñ;Ô;ð!/ð !/ð !/ð !/ð !/Ð*¨Jñ !/ô !/ñ <Ô;ð!/ðH0ð 0ð 0ð 0ð 0Ð)ñ 0ô 0ð 0ðf €Ð-Ð.Ñ.Ô.ðINð INð INð INð INˆ:ñ INô INñ /Ô.ðINðX €Ð-Ð.Ñ.Ô.ðV
ð V
ð V
ð V
ð V
Ð˜zñ V
ô V
ñ /Ô.ðV
ðr2:ð 2:ð 2:ð 2:ð 2:ˆ~˜zñ 2:ô 2:ð 2:ðj2ð 2ð 2ð 2ð 2ˆXñ 2ô 2ð 2ð6 €Ð0Ð1Ñ1Ô1ðfð fð fð fð fˆjñ fô fñ 2Ô1ðfðRqð qð qð qð qÐ ñ qô qð qðh>ð >ð >ð >ð >˜4ñ >ô >ð >ðTYð TYð TYð TYð TY�*ñ TYô TYð TYðnFð Fð Fð Fð Fˆ{ñ Fô Fð FðGð Gð Gð Gð G�ñ Gô Gð Gð Gð Gr,   