Ë
    ¦#ij�n  ã                   ó
  — d dl Z d dlZd dlmZmZ d dlmZmZmZm	Z	m
Z
mZmZ d dlmZmZmZ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  G d	„ d
e«      Z G d„ dee
«      Z G d„ de«      Z G d„ d«      Z G d„ de«      Z  G d„ de«      Z!ejD                   G d„ dee«      «       Z#ejD                   G d„ de«      «       Z$ejD                   G d„ dee«      «       Z%ejD                   G d„ dee«      «       Z&ejD                   G d„ dee«      «       Z'ejD                   G d„ d ee«      «       Z( G d!„ d"«      Z) G d#„ d$«      Z*ejD                   G d%„ d&e)e#«      «       Z+ejD                   G d'„ d(e)e%«      «       Z,ejD                   G d)„ d*e)e*e&«      «       Z-ejD                   G d+„ d,e)e*e'«      «       Z.ejD                   G d-„ d.e)e(«      «       Z/ejD                   G d/„ d0e e«      «       Z0 G d1„ d2e«      Z1ejD                   G d3„ d4e1«      «       Z2ejD                   G d5„ d6e2«      «       Z3ejD                   G d7„ d8e1«      «       Z4ejD                   G d9„ d:e4«      «       Z5ejD                   G d;„ d<e1«      «       Z6ejD                   G d=„ d>e6«      «       Z7ejD                   G d?„ d@e e«      «       Z8ejD                   G dA„ dBe«      «       Z9ejD                   G dC„ dDe«      «       Z:ejD                   G dE„ dFe:«      «       Z; G dG„ dHe«      Z< G dI„ dJe<e#«      Z= G dK„ dLe<e%«      Z> G dM„ dNe<e&«      Z? G dO„ dPe<e'«      Z@ G dQ„ dRe<e(«      ZA G dS„ dT«      ZBejD                   G dU„ dVeBe$«      «       ZCejD                   G dW„ dXeBe2«      «       ZDejD                   G dY„ dZeBe3«      «       ZEejD                   G d[„ d\eBe4«      «       ZFejD                   G d]„ d^eBe5«      «       ZGejD                   G d_„ d`eBe6«      «       ZHejD                   G da„ dbeBe7«      «       ZIy)cé    N)ÚEmptyResultSetÚFullResultSet)ÚCaseÚColPairsÚ
ExpressionÚExpressionListÚFuncÚValueÚWhen)ÚBooleanFieldÚ	CharFieldÚDateTimeFieldÚFieldÚIntegerFieldÚ	UUIDField)ÚRegisterLookupMixin)Ú
OrderedSet)Úcached_property)Úmake_hashablec                   ó¼   — 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d„Zd„ Zd„ Zd„ Zd„ Zed„ «       Zed„ «       Zd„ Zd„ Z	 dd„Zd„ Zed„ «       Zy)ÚLookupNTFc                 ó(  — ||c| _         | _        | j                  «       | _        | j                  «       | _         t	        | j                   d«      r| j                   j                  «       }ng }|rddlm} t        ||«      rt        d«      ‚|| _
        y )NÚget_bilateral_transformsr   ©ÚQueryzBBilateral transformations on nested querysets are not implemented.)ÚlhsÚrhsÚget_prep_lookupÚget_prep_lhsÚhasattrr   Údjango.db.models.sql.queryr   Ú
isinstanceÚNotImplementedErrorÚbilateral_transforms)Úselfr   r   r$   r   s        úR/var/www/html/office/venv/lib/python3.12/site-packages/django/db/models/lookups.pyÚ__init__zLookup.__init__!   s†   € Ø  #ÐˆŒ�$”(Ø×'Ñ'Ó)ˆŒØ×$Ñ$Ó&ˆŒÜ�4—8‘8Ð7Ô8Ø#'§8¡8×#DÑ#DÓ#FÑ à#%Ð Ùõ 9ä˜#˜uÔ%Ü)ØXóð ð %9ˆÕ!ó    c                 ó8   — | j                   D ]
  } ||«      }Œ |S ©N)r$   )r%   ÚvalueÚ	transforms      r&   Úapply_bilateral_transformsz!Lookup.apply_bilateral_transforms4   s&   € Ø×2Ñ2ò 	%ˆIÙ˜eÓ$‰Eð	%àˆr(   c                 óh   — | j                   j                  › d| j                  ›d| j                  ›d�S )Nú(ú, ú))Ú	__class__Ú__name__r   r   ©r%   s    r&   Ú__repr__zLookup.__repr__9   s.   € Ø—.‘.×)Ñ)Ð*¨!¨D¯H©H¨<°r¸$¿(¹(¸ÀQÐGÐGr(   c                 ó®  — |€| j                   }| j                  r’g g }}|D ]…  }t        || j                  j                  ¬«      }| j                  |«      }|j                  |j                  «      }|j                  |«      \  }}	|j                  |«       |j                  |	«       Œ‡ ||fS | j                  ||«      \  }
}dgt        |«      z  |}}||fS )N©Úoutput_fieldú%s)r   r$   r
   r   r8   r-   Úresolve_expressionÚqueryÚcompileÚappendÚextendÚget_db_prep_lookupÚlen)r%   ÚcompilerÚ
connectionr   ÚsqlsÚsqls_paramsÚpr+   ÚsqlÚ
sql_paramsÚ_Úparamss               r&   Úbatch_process_rhszLookup.batch_process_rhs<   sÝ   € Øˆ;Ø—(‘(ˆCØ×$Ò$Ø " B�+ˆDØò /�Ü˜a¨d¯h©h×.CÑ.CÔD�Ø×7Ñ7¸Ó>�Ø×0Ñ0°·±Ó@�Ø"*×"2Ñ"2°5Ó"9‘��ZØ—‘˜CÔ Ø×"Ñ" :Õ.ð/ð �[Ð Ð ð ×/Ñ/°°ZÓ@‰IˆAˆvØ!% ¬¨V«Ñ 4°f�+ˆDØ�[Ð Ð r(   c                 ól   — | j                  «       r| j                  gS | j                  | j                  gS r*   )Úrhs_is_direct_valuer   r   r4   s    r&   Úget_source_expressionszLookup.get_source_expressionsM   s-   € Ø×#Ñ#Ô%Ø—H‘H�:ÐØ—‘˜$Ÿ(™(Ð#Ð#r(   c                 óT   — t        |«      dk(  r|d   | _        y |\  | _        | _        y )Né   r   )r@   r   r   )r%   Ú	new_exprss     r&   Úset_source_expressionszLookup.set_source_expressionsR   s'   € Üˆy‹>˜QÒØ  ‘|ˆD�Hà!*ÑˆDŒH�d•hr(   c                 ó¢  — | j                   rt        | j                  d«      r| j                  S t        | j                  d«      r[t        | j                  j                  d«      r/| j                  j                  j                  | j                  «      S | j                  S | j                  «       rt        | j                  «      S | j                  S )Nr:   r8   Úget_prep_value)Úprepare_rhsr    r   r   r8   rS   rL   r
   r4   s    r&   r   zLookup.get_prep_lookupX   s”   € Ø×Ò¤7¨4¯8©8Ð5IÔ#JØ—8‘8ˆOÜ�4—8‘8˜^Ô,Ü�t—x‘x×,Ñ,Ð.>Ô?Ø—x‘x×,Ñ,×;Ñ;¸D¿H¹HÓEÐEð �x‰xˆð ×%Ñ%Ô'Ü˜Ÿ™“?Ð"Ø�x‰xˆr(   c                 óp   — t        | j                  d«      r| j                  S t        | j                  «      S ©Nr:   )r    r   r
   r4   s    r&   r   zLookup.get_prep_lhsb   s(   € Ü�4—8‘8Ð1Ô2Ø—8‘8ˆOÜ�T—X‘X‹Ðr(   c                 ó   — d|ffS )Nr9   © )r%   r+   rB   s      r&   r?   zLookup.get_db_prep_lookupg   s   € Ø�u�hÐÐr(   c                 óÌ   — |xs | j                   }t        |d«      r|j                  |j                  «      }|j	                  |«      \  }}t        |t        «      rd|› d�}||fS )Nr:   r/   r1   )r   r    r:   r;   r<   r"   r   )r%   rA   rB   r   rF   rI   s         r&   Úprocess_lhszLookup.process_lhsj   sc   € ØŠo�T—X‘XˆÜ�3Ð,Ô-Ø×(Ñ(¨¯©Ó8ˆCØ×&Ñ& sÓ+‰ˆˆVÜ�cœ6Ô"à�c�U˜!�*ˆCØ�Fˆ{Ðr(   c                 óÌ  — | j                   }| j                  r]| j                  «       r!t        || j                  j
                  ¬«      }| j                  |«      }|j                  |j                  «      }t        |d«      rR|j                  |«      \  }}t        |t        «      rt        d«      ‚t        |t        «      s|r|d   dk7  rd|z  }||fS | j                  ||«      S )Nr7   Úas_sqlz5CompositePrimaryKey cannot be used as a lookup value.r   r/   z(%s))r   r$   rL   r
   r   r8   r-   r:   r;   r    r<   r"   r   Ú
ValueErrorr?   )r%   rA   rB   r+   rF   rI   s         r&   Úprocess_rhszLookup.process_rhst   sÒ   € Ø—‘ˆØ×$Ò$Ø×'Ñ'Ô)ô ˜e°$·(±(×2GÑ2GÔH�Ø×3Ñ3°EÓ:ˆEØ×,Ñ,¨X¯^©^Ó<ˆEÜ�5˜(Ô#Ø"×*Ñ*¨5Ó1‰KˆC�Ü˜%¤Ô*Ü ØKóð ô ˜e¤UÔ+±¸¸A¹À#ºØ˜s‘l�Ø˜�;Ðà×*Ñ*¨5°*Ó=Ð=r(   c                 ó0   — t        | j                  d«       S ©Nr\   )r    r   r4   s    r&   rL   zLookup.rhs_is_direct_valueŒ   s   € Ü˜4Ÿ8™8 XÓ.Ð.Ð.r(   c                 ór   — g }| j                  «       D ]!  }|j                  |j                  «       «       Œ# |S r*   )rM   r>   Úget_group_by_cols)r%   ÚcolsÚsources      r&   rb   zLookup.get_group_by_cols�   s9   € ØˆØ×1Ñ1Ó3ò 	4ˆFØ�K‰K˜×0Ñ0Ó2Õ3ð	4àˆr(   c                 ó  — d}g }| j                   | j                  fD ]H  }|j                  j                  |«      rt	        t        |d¬«      d¬«      }d}|j                  |«       ŒJ |r t        | «      |Ž n| }|j                  ||«      S )NFT)Úthen)Údefault)	r   r   ÚopsÚ0conditional_expression_supported_in_where_clauser   r   r=   Útyper\   )r%   rA   rB   ÚwrappedÚexprsÚexprÚlookups          r&   Ú	as_oraclezLookup.as_oracle•   s‡   € ð ˆØˆØ—X‘X˜tŸx™xÐ(ò 	ˆDØ�~‰~×NÑNÈtÔTÜœD ¨DÔ1¸5ÔA�Ø�Ø�L‰L˜Õð		ñ
 (/�”�d“˜UÑ#°DˆØ�}‰}˜X zÓ2Ð2r(   c                 ó   — t        «       S r*   )r   r4   s    r&   r8   zLookup.output_field¢   s
   € ä‹~Ðr(   c                 óH   — | j                   | j                  | j                  fS r*   )r2   r   r   r4   s    r&   ÚidentityzLookup.identity¦   s   € à�~‰~˜tŸx™x¨¯©Ð1Ð1r(   c                 ó`   — t        |t        «      st        S | j                  |j                  k(  S r*   )r"   r   ÚNotImplementedrr   )r%   Úothers     r&   Ú__eq__zLookup.__eq__ª   s%   € Ü˜%¤Ô(Ü!Ð!Ø�}‰} §¡Ñ.Ð.r(   c                 ó>   — t        t        | j                  «      «      S r*   )Úhashr   rr   r4   s    r&   Ú__hash__zLookup.__hash__¯   s   € Ü”M $§-¡-Ó0Ó1Ð1r(   c                 óð   — | j                  «       }||_        | j                  j                  |||||«      |_        t	        | j
                  d«      r$| j
                  j                  |||||«      |_        |S rV   )ÚcopyÚ
is_summaryr   r:   r    r   )r%   r;   Úallow_joinsÚreuseÚ	summarizeÚfor_saveÚcs          r&   r:   zLookup.resolve_expression²   sp   € ð �I‰I‹KˆØ ˆŒØ—‘×+Ñ+Ø�;  y°(ó
ˆŒô �4—8‘8Ð1Ô2Ø—H‘H×/Ñ/Ø�{ E¨9°hóˆAŒEð ˆr(   c                 óV   — |j                   j                  j                  sd|› d�}||fS )Nz
CASE WHEN z THEN 1 ELSE 0 END)rB   ÚfeaturesÚ&supports_boolean_expr_in_select_clause)r%   rA   rF   rI   s       r&   Úselect_formatzLookup.select_formatÀ   s2   € ð ×"Ñ"×+Ñ+×RÒRØ˜s˜eÐ#5Ð6ˆCØ�Fˆ{Ðr(   c                 ó^   — | j                   j                  xr | j                  j                  S r*   )r   Úallowed_defaultr   r4   s    r&   r‡   zLookup.allowed_defaultÈ   s!   € à�x‰x×'Ñ'ÒD¨D¯H©H×,DÑ,DÐDr(   r*   )NTNFF)r3   Ú
__module__Ú__qualname__Úlookup_namerT   Úcan_use_none_as_rhsr'   r-   r5   rJ   rM   rQ   r   r   r?   rZ   r^   rL   rb   ro   r   r8   Úpropertyrr   rv   ry   r:   r…   r‡   rX   r(   r&   r   r      s²   „ Ø€KØ€KØÐò9ò&ò
Hó!ò"$ò
+òòò
 óò>ò0/òò3ð ñó ðð ñ2ó ð2ò/ò
2ð SXóòð ñEó ñEr(   r   c                   ó.   — e Zd ZdZdZdZed„ «       Zd„ Zy)Ú	Transformz…
    RegisterLookupMixin() is first so that get_lookup() and get_transform()
    first examine self and then check output_field.
    FrO   c                 ó(   — | j                  «       d   S )Nr   )rM   r4   s    r&   r   zTransform.lhsÖ   s   € à×*Ñ*Ó,¨QÑ/Ð/r(   c                 óº   — t        | j                  d«      r| j                  j                  «       }ng }| j                  r|j	                  | j
                  «       |S )Nr   )r    r   r   Ú	bilateralr=   r2   )r%   r$   s     r&   r   z"Transform.get_bilateral_transformsÚ   sI   € Ü�4—8‘8Ð7Ô8Ø#'§8¡8×#DÑ#DÓ#FÑ à#%Ð Ø�>Š>Ø ×'Ñ'¨¯©Ô7Ø#Ð#r(   N)	r3   rˆ   r‰   Ú__doc__r‘   ÚarityrŒ   r   r   rX   r(   r&   rŽ   rŽ   Í   s*   „ ñð
 €IØ€Eàñ0ó ð0ó$r(   rŽ   c                   ó,   ‡ — e Zd Zdˆ fd„	Zd„ Zd„ Zˆ xZS )ÚBuiltinLookupc                 óà   •— t         ‰| �  |||«      \  }}| j                  j                  j	                  «       }|j
                  j                  | j                  |«      |z  }|t        |«      fS r*   )	ÚsuperrZ   r   r8   Úget_internal_typerh   Úlookup_castrŠ   Úlist)r%   rA   rB   r   Úlhs_sqlrI   Úfield_internal_typer2   s          €r&   rZ   zBuiltinLookup.process_lhså   sj   ø€ Ü™'Ñ-¨h¸
ÀCÓH‰ˆ�Ø"Ÿh™h×3Ñ3×EÑEÓGÐà�N‰N×&Ñ& t×'7Ñ'7Ð9LÓMÐPWÑWð 	ð œ˜V›Ð$Ð$r(   c                 óš   — | j                  ||«      \  }}| j                  ||«      \  }}g |¢|¢­}| j                  ||«      }|›d|›�|fS ©Nú )rZ   r^   Ú
get_rhs_op)r%   rA   rB   r›   rI   Úrhs_sqlÚ
rhs_paramss          r&   r\   zBuiltinLookup.as_sqlí   s^   € Ø×*Ñ*¨8°ZÓ@‰ˆ�Ø"×.Ñ.¨x¸ÓDÑˆ�Ø'�6Ð'˜JÑ'ˆØ—/‘/ *¨gÓ6ˆÚ!¡7Ð+¨VÐ3Ð3r(   c                 ó:   — |j                   | j                     |z  S r*   ©Ú	operatorsrŠ   ©r%   rB   r   s      r&   r    zBuiltinLookup.get_rhs_opô   ó   € Ø×#Ñ# D×$4Ñ$4Ñ5¸Ñ;Ð;r(   r*   )r3   rˆ   r‰   rZ   r\   r    Ú__classcell__©r2   s   @r&   r•   r•   ä   s   ø„ õ%ò4ö<r(   r•   c                   ó   — e Zd ZdZdZd„ Zy)ÚFieldGetDbPrepValueMixinzZ
    Some lookups require Field.get_db_prep_value() to be called on their
    inputs.
    Fc           	      ó  — t        | j                  j                  dd «      }t        |dd «      xs  | j                  j                  j                  }| j                  s|g}d|D �cg c]  }t        |d«      r|n
 |||d¬«      ‘Œ c}fS c c}w )NÚtarget_fieldÚget_db_prep_valuer9   r\   T)Úprepared)Úgetattrr   r8   r®   Ú$get_db_prep_lookup_value_is_iterabler    )r%   r+   rB   Úfieldr®   Úvs         r&   r?   z+FieldGetDbPrepValueMixin.get_db_prep_lookup   s¢   € ô ˜Ÿ™×-Ñ-¨~¸tÓDˆä�EÐ.°Ó5ò 7Ø�x‰x×$Ñ$×6Ñ6ð 	ð ×8Ò8Ø�GˆEàð öð ô ˜q (Ô+ñ á*¨1¨jÀ4ÔHñIòð

ð 
	
ùòs   Á% B	N)r3   rˆ   r‰   r’   r±   r?   rX   r(   r&   r«   r«   ø   s   „ ñð
 ,1Ð(ó
r(   r«   c                   ó>   ‡ — e Zd ZdZdZd„ Zˆ fd„Zd„ Zdˆ fd„	Zˆ xZ	S )Ú FieldGetDbPrepValueIterableMixinzg
    Some lookups require Field.get_db_prep_value() to be called on each value
    in an iterable.
    Tc           	      ó  — t        | j                  d«      r| j                  S d}g }| j                  D ]‰  }t        |d«      rd}ng| j                  r[t        | j                  d«      rEt        | j                  j                  d«      r%| j                  j                  j                  |«      }|j                  |«       Œ‹ |rFt        |D �cg c]4  }t        |t        «      r t        || j                  j                  «      n|‘Œ6 c}Ž S |S c c}w )Nr:   FTr8   rS   )r    r   rT   r   r8   rS   r=   r   r"   Ústrr
   )r%   Úcontains_exprÚprepared_valuesÚ	rhs_valueÚ
prep_values        r&   r   z0FieldGetDbPrepValueIterableMixin.get_prep_lookup  sû   € Ü�4—8‘8Ð1Ô2Ø—8‘8ˆOØˆØˆØŸ™ò 	.ˆIÜ�yÐ"6Ô7ð !%‘à× Ò Ü˜DŸH™H nÔ5Ü˜DŸH™H×1Ñ1Ð3CÔDà ŸH™H×1Ñ1×@Ñ@ÀÓK�	Ø×"Ñ" 9Õ-ð	.ñ Ü!ð '6ö	ð #ô & j´#Ô6ô ˜j¨$¯(©(×*?Ñ*?Ô@à'ñ(ò		ðð ð Ðùò	s   Ã
9D	c                 ó  •— | j                  «       r| j                  ||«      S t        | j                  t        «      rA| j                  «       }| j                  j                  «       |_        |j                  ||«      S t        ‰| �  ||«      S r*   )	rL   rJ   r"   r   r   r{   rM   r^   r—   )r%   rA   rB   r{   r2   s       €r&   r^   z,FieldGetDbPrepValueIterableMixin.process_rhs?  sx   ø€ Ø×#Ñ#Ô%ð ×)Ñ)¨(°JÓ?Ð?Ü˜Ÿ™¤.Ô1ð —9‘9“;ˆDØ—x‘x×6Ñ6Ó8ˆDŒHØ×#Ñ# H¨jÓ9Ð9ä‘7Ñ& x°Ó<Ð<r(   c                 óž   — |g}t        |d«      r|j                  |j                  «      }t        |d«      r|j                  |«      \  }}||fS )Nr:   r\   )r    r:   r;   r<   )r%   rA   rB   rF   ÚparamrI   s         r&   Úresolve_expression_parameterz=FieldGetDbPrepValueIterableMixin.resolve_expression_parameterM  sP   € Ø�ˆÜ�5Ð.Ô/Ø×,Ñ,¨X¯^©^Ó<ˆEÜ�5˜(Ô#Ø"×*Ñ*¨5Ó1‰KˆC�Ø�Fˆ{Ðr(   c                 ó¼   •‡ ‡‡— t         ‰‰ �  ‰‰|«      }t        ˆˆˆ fd„t        |Ž D «       Ž \  }}t        j                  j                  |«      }|t        |«      fS )Nc              3   óL   •K  — | ]  \  }}‰j                  ‰‰||«      –— Œ y ­wr*   )r¿   )Ú.0rF   r¾   rA   rB   r%   s      €€€r&   ú	<genexpr>zEFieldGetDbPrepValueIterableMixin.batch_process_rhs.<locals>.<genexpr>\  s.   øè ø€ ò á�C˜ð ×1Ñ1°(¸JÈÈU×Sñùs   ƒ!$)r—   rJ   ÚzipÚ	itertoolsÚchainÚfrom_iterableÚtuple)r%   rA   rB   r   Úpre_processedrF   rI   r2   s   ```    €r&   rJ   z2FieldGetDbPrepValueIterableMixin.batch_process_rhsU  s]   û€ Ü™Ñ1°(¸JÈÓLˆô
 õä"% }Ð"5ôð
‰ˆˆVô —‘×.Ñ.¨vÓ6ˆØ”E˜&“MÐ!Ð!r(   r*   )
r3   rˆ   r‰   r’   r±   r   r^   r¿   rJ   r¨   r©   s   @r&   rµ   rµ     s*   ø„ ñð
 ,0Ð(òô@=ò÷"ñ "r(   rµ   c                   ó   — e Zd ZdZdZd„ Zy)ÚPostgresOperatorLookupz*Lookup defined by operators on PostgreSQL.Nc                 ó°   — | j                  ||«      \  }}| j                  ||«      \  }}t        |«      t        |«      z   }|›d| j                  ›d|›�|fS rž   )rZ   r^   rÈ   Úpostgres_operator)r%   rA   rB   r   Ú
lhs_paramsr   r¢   rI   s           r&   Úas_postgresqlz$PostgresOperatorLookup.as_postgresqlj  sZ   € Ø×*Ñ*¨8°ZÓ@‰ˆˆZØ×*Ñ*¨8°ZÓ@‰ˆˆZÜ�zÓ"¤U¨:Ó%6Ñ6ˆÚ  $×"8Ó"8¹#Ð>ÀÐFÐFr(   )r3   rˆ   r‰   r’   rÍ   rÏ   rX   r(   r&   rË   rË   e  s   „ Ù4àÐóGr(   rË   c                   ó,   ‡ — e Zd ZdZˆ fd„Zˆ fd„Zˆ xZS )ÚExactÚexactc                 ó¢  •— ddl m} t        | j                  x}|«      r£|j	                  «       st        d«      ‚t        | j                  t        t        f«      rt        | j                  «      nd}|j                  x}|k7  rt        d|› d|› d�«      ‚|j                  s"|j                  «        |j                  dg«       t        ‰| �=  «       S )	Nr   r   zSThe QuerySet value for an exact lookup must be limited to one result using slicing.rO   z2The QuerySet value for the exact lookup must have ú selected fields (received r1   Úpk)r!   r   r"   r   Úhas_limit_oner]   r   r   rÈ   r@   Ú_subquery_fields_lenÚhas_select_fieldsÚclear_select_clauseÚ
add_fieldsr—   r   )r%   r   r;   Úlhs_lenÚrhs_lenr2   s        €r&   r   zExact.get_prep_lookupu  sÉ   ø€ Ý4ä˜tŸx™xÐ'�e¨Ô/Ø×&Ñ&Ô(Ü ð0óð ô (2°$·(±(¼XÄuÐ<MÔ'N”c˜$Ÿ(™(”mÐTUˆGØ ×5Ñ5Ð5�¸'ÒAÜ ØHÈÈ	ð R1Ø18°	¸ð<óð ð ×*Ò*Ø×)Ñ)Ô+Ø× Ñ  $ Ô(Ü‰wÑ&Ó(Ð(r(   c                 ó(  •— t        | j                  t        «      rht        | j                  dd«      rQ|j
                  j                  | j                  «      r,| j                  ||«      \  }}| j                  rdnd}||z  |fS t        ‰| �%  ||«      S )NÚconditionalFr9   zNOT %s)
r"   r   Úboolr°   r   rh   ri   rZ   r—   r\   )r%   rA   rB   r›   rI   Útemplater2   s         €r&   r\   zExact.as_sql‰  s‚   ø€ ô
 �t—x‘x¤Ô&Ü˜Ÿ™ -°Ô7Ø—‘×OÑOØ—‘ôð #×.Ñ.¨x¸ÓD‰OˆG�VØ#Ÿxšx‘t¨XˆHØ˜gÑ% vÐ-Ð-Ü‰w‰~˜h¨
Ó3Ð3r(   )r3   rˆ   r‰   rŠ   r   r\   r¨   r©   s   @r&   rÑ   rÑ   q  s   ø„ à€Kô)÷(4ð 4r(   rÑ   c                   ó&   ‡ — e Zd ZdZdZˆ fd„Zˆ xZS )ÚIExactÚiexactFc                 ó€   •— t         ‰| �  ||«      \  }}|r%|j                  j                  |d   «      g|dd  ¢­}||fS ©Nr   rO   )r—   r^   rh   Úprep_for_iexact_query©r%   ÚqnrB   r   rI   r2   s        €r&   r^   zIExact.process_rhsŸ  sK   ø€ Ü‘gÑ)¨"¨jÓ9‰ˆˆVÙØ —n‘n×:Ñ:¸6À!¹9ÓEÐSÈÈqÈrÈ
ÑSˆFØ�Fˆ{Ðr(   )r3   rˆ   r‰   rŠ   rT   r^   r¨   r©   s   @r&   râ   râ   š  s   ø„ à€KØ€K÷ð r(   râ   c                   ó   — e Zd ZdZy)ÚGreaterThanÚgtN©r3   rˆ   r‰   rŠ   rX   r(   r&   rê   rê   ¦  ó   „ à�Kr(   rê   c                   ó   — e Zd ZdZy)ÚGreaterThanOrEqualÚgteNrì   rX   r(   r&   rï   rï   «  ó   „ à�Kr(   rï   c                   ó   — e Zd ZdZy)ÚLessThanÚltNrì   rX   r(   r&   ró   ró   °  rí   r(   ró   c                   ó   — e Zd ZdZy)ÚLessThanOrEqualÚlteNrì   rX   r(   r&   rö   rö   µ  rñ   r(   rö   c                   ó&   ‡ — e Zd ZeZeZˆ fd„Zˆ xZS )ÚIntegerFieldOverflowc                 ó,  •— | j                   }t        |t        «      rh| j                  j                  j                  «       }|j                  j                  |«      \  }}|�||k  r| j                  ‚|�||kD  r| j                  ‚t        ‰| �-  ||«      S r*   )r   r"   Úintr   r8   r˜   rh   Úinteger_field_rangeÚunderflow_exceptionÚoverflow_exceptionr—   r^   )r%   rA   rB   r   rœ   Ú	min_valueÚ	max_valuer2   s          €r&   r^   z IntegerFieldOverflow.process_rhs¾  s�   ø€ Ø�h‰hˆÜ�cœ3ÔØ"&§(¡(×"7Ñ"7×"IÑ"IÓ"KÐØ#-§>¡>×#EÑ#EØ#ó$Ñ ˆI�yð Ð$¨¨yªØ×.Ñ.Ð.ØÐ$¨¨yªØ×-Ñ-Ð-Ü‰wÑ" 8¨ZÓ8Ð8r(   )r3   rˆ   r‰   r   rý   rþ   r^   r¨   r©   s   @r&   rù   rù   º  s   ø„ Ø(ÐØ'Ð÷9ð 9r(   rù   c                   ó"   ‡ — e Zd ZdZˆ fd„Zˆ xZS )ÚIntegerFieldFloatRoundingzŽ
    Allow floats to work as query values for IntegerField. Without this, the
    decimal portion of the float would always be discarded.
    c                 óœ   •— t        | j                  t        «      r$t        j                  | j                  «      | _        t
        ‰| �  «       S r*   )r"   r   ÚfloatÚmathÚceilr—   r   )r%   r2   s    €r&   r   z)IntegerFieldFloatRounding.get_prep_lookupÒ  s3   ø€ Ü�d—h‘h¤Ô&Ü—y‘y §¡Ó*ˆDŒHÜ‰wÑ&Ó(Ð(r(   )r3   rˆ   r‰   r’   r   r¨   r©   s   @r&   r  r  Ì  s   ø„ ñ÷
)ð )r(   r  c                   ó   — e Zd Zy)ÚIntegerFieldExactN©r3   rˆ   r‰   rX   r(   r&   r  r  Ø  ó   „ àr(   r  c                   ó   — e Zd ZeZy)ÚIntegerGreaterThanN©r3   rˆ   r‰   r   rý   rX   r(   r&   r  r  Ý  s   „ à'Ñr(   r  c                   ó   — e Zd ZeZy)ÚIntegerGreaterThanOrEqualNr  rX   r(   r&   r  r  â  s
   „ ð (Ñr(   r  c                   ó   — e Zd ZeZy)ÚIntegerLessThanN©r3   rˆ   r‰   r   rþ   rX   r(   r&   r  r  é  ó   „ à&Ñr(   r  c                   ó   — e Zd ZeZy)ÚIntegerLessThanOrEqualNr  rX   r(   r&   r  r  î  r  r(   r  c                   óB   ‡ — e Zd ZdZˆ fd„Zˆ fd„Zd„ Zˆ fd„Zd„ Zˆ xZ	S )ÚInÚinc                 óð  •— ddl m} t        | j                  |«      rÌt        | j                  t
        t        f«      rt        | j                  «      nd}| j                  j                  x}|k7  rt        d|› d|› d�«      ‚| j                  j                  d¬«       | j                  j                  s6| j                  j                  «        | j                  j                  d	g«       t        ‰| �=  «       S )
Nr   r   rO   z1The QuerySet value for the 'in' lookup must have rÔ   r1   T)Úclear_defaultrÕ   )r!   r   r"   r   r   r   rÈ   r@   r×   r]   Úclear_orderingrØ   rÙ   rÚ   r—   r   )r%   r   rÛ   rÜ   r2   s       €r&   r   zIn.get_prep_lookup÷  sÉ   ø€ Ý4ä�d—h‘h Ô&Ü'1°$·(±(¼XÄuÐ<MÔ'N”c˜$Ÿ(™(”mÐTUˆGØŸ8™8×8Ñ8Ð8�¸WÒDÜ ØGÈÀyð Q1Ø18°	¸ð<óð ð �H‰H×#Ñ#°$Ð#Ô7Ø—8‘8×-Ò-Ø—‘×,Ñ,Ô.Ø—‘×#Ñ# T FÔ+Ü‰wÑ&Ó(Ð(r(   c                 óÌ  •— t        | j                  dd «      }|�||j                  k7  rt        d«      ‚| j	                  «       r`	 t        | j                  «      }|j                  d «       |st        ‚| j                  |||«      \  }}ddj                  |«      z   dz   }||fS t        ‰	| �1  ||«      S # t        $ r% | j                  D �cg c]  }|€Œ|‘Œ	 nc c}w }}Y Œvw xY w)NÚ_dbzvSubqueries aren't allowed across different databases. Force the inner query to be evaluated using `list(inner_query)`.r/   r0   r1   )r°   r   Úaliasr]   rL   r   ÚdiscardÚ	TypeErrorr   rJ   Újoinr—   r^   )
r%   rA   rB   Údb_rhsr   ÚrrC   rD   Úplaceholderr2   s
            €r&   r^   zIn.process_rhs  sñ   ø€ Ü˜Ÿ™ 5¨$Ó/ˆØÐ &¨J×,<Ñ,<Ò"<ÜðMóð ð
 ×#Ñ#Ô%ð=Ü  §¡Ó*�Ø—‘˜DÔ!ñ Ü$Ð$ð !%× 6Ñ 6°xÀÈSÓ QÑˆD�+Ø §	¡	¨$£Ñ/°#Ñ5ˆKØ Ð-Ð-Ü‰wÑ" 8¨ZÓ8Ð8øô ò =Ø"&§(¡(Ö<˜Q¨a©m’qÑ<ùÒ<�Ò<ð=ús$   Á&B5 Â5C#ÃCÃCÃC#Ã"C#c                 ó   — d|z  S )NzIN %srX   r¦   s      r&   r    zIn.get_rhs_op!  s   € Ø˜‰}Ðr(   c                 óÐ   •— |j                   j                  «       }| j                  «       r,|r*t        | j                  «      |kD  r| j                  ||«      S t        ‰| �  ||«      S r*   )rh   Úmax_in_list_sizerL   r@   r   Úsplit_parameter_list_as_sqlr—   r\   )r%   rA   rB   r'  r2   s       €r&   r\   z	In.as_sql$  sZ   ø€ Ø%Ÿ>™>×:Ñ:Ó<Ðà×$Ñ$Ô&Ù Ü�D—H‘H“Ð 0Ò0à×3Ñ3°H¸jÓIÐIÜ‰w‰~˜h¨
Ó3Ð3r(   c                 ó0  — |j                   j                  «       }| j                  ||«      \  }}| j                  ||«      \  }}dg}g }	t	        dt        |«      |«      D ]‘  }
|
dkD  r|j                  d«       |j                  d|z  «       |	j                  |«       ||
|
|z    }||
|
|z    }dj                  |«      }|j                  |«       |j                  d«       |	j                  |«       Œ“ |j                  d«       dj                  |«      |	fS )Nr/   r   z OR z%s IN (r0   r1   Ú )	rh   r'  rZ   rJ   Úranger@   r=   r>   r!  )r%   rA   rB   r'  r   rÎ   r   r¢   Úin_clause_elementsrI   ÚoffsetrC   rD   Úparam_groups                 r&   r(  zIn.split_parameter_list_as_sql.  s  € ð &Ÿ>™>×:Ñ:Ó<ÐØ×*Ñ*¨8°ZÓ@‰ˆˆZØ×0Ñ0°¸:ÓF‰ˆˆZØ!˜UÐØˆÜ˜Aœs :›Ð0@ÓAò 
	'ˆFØ˜ŠzØ"×)Ñ)¨&Ô1Ø×%Ñ% i°#¡oÔ6Ø�M‰M˜*Ô%Ø�v Ð)9Ñ 9Ð:ˆDØ$ V¨fÐ7GÑ.GÐHˆKØŸ)™) D›/ˆKØ×%Ñ% kÔ2Ø×%Ñ% cÔ*Ø�M‰M˜+Õ&ð
	'ð 	×!Ñ! #Ô&Ø�w‰wÐ)Ó*¨FÐ2Ð2r(   )
r3   rˆ   r‰   rŠ   r   r^   r    r\   r(  r¨   r©   s   @r&   r  r  ó  s!   ø„ à€Kô)ô 9ò4ô4ö3r(   r  c                   ó0   ‡ — e Zd ZdZdZˆ fd„Zˆ fd„Zˆ xZS )ÚPatternLookupz%%%s%%Fc                 óî   •— t        | j                  d«      s| j                  rC|j                  | j                     j                  |j                  «      }|j                  |«      S t        ‰| �!  ||«      S r`   )	r    r   r$   Úpattern_opsrŠ   ÚformatÚpattern_escr—   r    )r%   rB   r   Úpatternr2   s       €r&   r    zPatternLookup.get_rhs_opI  sh   ø€ ô �4—8‘8˜XÔ&¨$×*CÒ*CØ ×,Ñ,¨T×-=Ñ-=Ñ>×EÑEØ×&Ñ&óˆGð —>‘> #Ó&Ð&ä‘7Ñ% j°#Ó6Ð6r(   c                 óÒ   •— t         ‰| �  ||«      \  }}| j                  «       r@|r>| j                  s2| j                  |j
                  j                  |d   «      z  g|dd  ¢­}||fS rå   )r—   r^   rL   r$   Úparam_patternrh   Úprep_for_like_queryrç   s        €r&   r^   zPatternLookup.process_rhs[  sp   ø€ Ü‘gÑ)¨"¨jÓ9‰ˆˆVØ×#Ñ#Ô%©&¸×9RÒ9Rà×"Ñ" Z§^¡^×%GÑ%GÈÈqÉ	Ó%RÑRðà˜˜�ñˆFð �Fˆ{Ðr(   )r3   rˆ   r‰   r7  rT   r    r^   r¨   r©   s   @r&   r0  r0  E  s   ø„ Ø€MØ€Kô7÷$ð r(   r0  c                   ó   — e Zd ZdZy)ÚContainsÚcontainsNrì   rX   r(   r&   r:  r:  e  s   „ à�Kr(   r:  c                   ó   — e Zd ZdZy)Ú	IContainsÚ	icontainsNrì   rX   r(   r&   r=  r=  j  ó   „ à�Kr(   r=  c                   ó   — e Zd ZdZdZy)Ú
StartsWithÚ
startswithz%s%%N©r3   rˆ   r‰   rŠ   r7  rX   r(   r&   rA  rA  o  s   „ à€KØ�Mr(   rA  c                   ó   — e Zd ZdZy)ÚIStartsWithÚistartswithNrì   rX   r(   r&   rE  rE  u  s   „ à�Kr(   rE  c                   ó   — e Zd ZdZdZy)ÚEndsWithÚendswithz%%%sNrC  rX   r(   r&   rH  rH  z  s   „ à€KØ�Mr(   rH  c                   ó   — e Zd ZdZy)Ú	IEndsWithÚ	iendswithNrì   rX   r(   r&   rK  rK  €  r?  r(   rK  c                   ó   — e Zd ZdZd„ Zy)ÚRanger+  c                 ó   — d|d   ›d|d   ›�S )NzBETWEEN r   z AND rO   rX   r¦   s      r&   r    zRange.get_rhs_op‰  s   � Ø&)¨!£f¨c°!ªfÐ5Ð5r(   N)r3   rˆ   r‰   rŠ   r    rX   r(   r&   rN  rN  …  s   „ à€Kó6r(   rN  c                   ó   — e Zd ZdZdZd„ Zy)ÚIsNullÚisnullFc                 óÔ  — t        | j                  t        «      st        d«      ‚t        | j                  t
        «      r{| j                  j                  �/| j                  j                  dk(  r2|j                  j                  r| j                  rt        }|‚t        }|‚| j                  rt        nt        }|‚| j                  ||«      \  }}| j                  rd|z  |fS d|z  |fS )Nz>The QuerySet value for an isnull lookup must be True or False.r*  z
%s IS NULLz%s IS NOT NULL)r"   r   rß   r]   r   r
   r+   rƒ   Ú!interprets_empty_strings_as_nullsr   r   rZ   )r%   rA   rB   Úresult_exceptionrF   rI   s         r&   r\   zIsNull.as_sql’  sÖ   € Ü˜$Ÿ(™(¤DÔ)ÜØPóð ô �d—h‘h¤Ô&Ø�x‰x�~‰~Ð%Ø—‘—‘ "Ò$Ø×'Ñ'×IÒIà48·H²H¤=Ð ð #Ð"ô CQÐ ð #Ð"ð 6:·X²X¥>Ä=Ð Ø"Ð"Ø×&Ñ& x°Ó<‰ˆˆVØ�8Š8Ø #Ñ% vÐ-Ð-à# cÑ)¨6Ð1Ð1r(   N)r3   rˆ   r‰   rŠ   rT   r\   rX   r(   r&   rQ  rQ  �  s   „ à€KØ€Kó2r(   rQ  c                   ó&   ‡ — e Zd ZdZdZˆ fd„Zˆ xZS )ÚRegexÚregexFc                 ó  •— | j                   |j                  v rt        ‰	| �  ||«      S | j	                  ||«      \  }}| j                  ||«      \  }}g |¢|¢­}|j                  j                  | j                   «      }|||fz  |fS r*   )rŠ   r¥   r—   r\   rZ   r^   rh   Úregex_lookup)
r%   rA   rB   r   rÎ   r   r¢   rI   Úsql_templater2   s
            €r&   r\   zRegex.as_sql¬  s‘   ø€ Ø×Ñ˜z×3Ñ3Ñ3Ü‘7‘> (¨JÓ7Ð7à"×.Ñ.¨x¸ÓD‰OˆC�Ø"×.Ñ.¨x¸ÓD‰OˆC�Ø/�zÐ/ JÑ/ˆFØ%Ÿ>™>×6Ñ6°t×7GÑ7GÓHˆLØ 3¨ *Ñ,¨fÐ4Ð4r(   )r3   rˆ   r‰   rŠ   rT   r\   r¨   r©   s   @r&   rW  rW  §  s   ø„ à€KØ€K÷5ð 5r(   rW  c                   ó   — e Zd ZdZy)ÚIRegexÚiregexNrì   rX   r(   r&   r]  r]  ·  s   „ à�Kr(   r]  c                   ó0   ‡ — e Zd Zd„ Zˆ fd„Zd„ Zd„ Zˆ xZS )Ú
YearLookupc                 ó  — ddl m} t        | j                  |«      }| j                  j                  j                  }t        |t
        «      r|j                  j                  ||¬«      }|S |j                  j                  ||¬«      }|S )Nr   )ÚExtractIsoYear)Úiso_year)	Údjango.db.models.functionsrb  r"   r   r8   r   rh   Ú%year_lookup_bounds_for_datetime_fieldÚ!year_lookup_bounds_for_date_field)r%   rB   Úyearrb  rc  r8   Úboundss          r&   Úyear_lookup_boundszYearLookup.year_lookup_bounds½  s‚   € Ý=ä˜dŸh™h¨Ó7ˆØ—x‘x—|‘|×0Ñ0ˆÜ�l¤MÔ2Ø—^‘^×IÑIØØ!ð Jó ˆFð ˆð	  —^‘^×EÑEØØ!ð Fó ˆFð ˆr(   c                 ód  •— | j                  «       r�| j                  ||| j                  j                  «      \  }}| j                  ||«      \  }}| j	                  ||«      }| j                  || j                  «      \  }}g |¢| j                  ||«      ¢­}|›d|›�|fS t        ‰	| �%  ||«      S rž   )
rL   rZ   r   r^   Úget_direct_rhs_sqlri  r   Úget_bound_paramsr—   r\   )
r%   rA   rB   r›   rI   r¡   rH   ÚstartÚfinishr2   s
            €r&   r\   zYearLookup.as_sqlÎ  s²   ø€ ð ×#Ñ#Ô%ð #×.Ñ.¨x¸ÀTÇXÁXÇ\Á\ÓR‰OˆG�VØ×)Ñ)¨(°JÓ?‰JˆG�QØ×-Ñ-¨j¸'ÓBˆGØ ×3Ñ3°JÀÇÁÓI‰MˆE�6ØE�vÐE × 5Ñ 5°e¸VÓ DÑEˆFÚ%¡wÐ/°Ð7Ð7Ü‰w‰~˜h¨
Ó3Ð3r(   c                 ó:   — |j                   | j                     |z  S r*   r¤   r¦   s      r&   rk  zYearLookup.get_direct_rhs_sqlÜ  r§   r(   c                 ó   — t        d«      ‚)NzAsubclasses of YearLookup must provide a get_bound_params() method)r#   ©r%   rm  rn  s      r&   rl  zYearLookup.get_bound_paramsß  s   € Ü!ØOó
ð 	
r(   )r3   rˆ   r‰   ri  r\   rk  rl  r¨   r©   s   @r&   r`  r`  ¼  s   ø„ òô"4ò<ö
r(   r`  c                   ó   — e Zd Zd„ Zd„ Zy)Ú	YearExactc                  ó   — y)NzBETWEEN %s AND %srX   r¦   s      r&   rk  zYearExact.get_direct_rhs_sqlæ  s   € Ø"r(   c                 ó
   — ||fS r*   rX   rq  s      r&   rl  zYearExact.get_bound_paramsé  s   € Ø�vˆÐr(   N)r3   rˆ   r‰   rk  rl  rX   r(   r&   rs  rs  å  s   „ ò#ór(   rs  c                   ó   — e Zd Zd„ Zy)ÚYearGtc                 ó   — |fS r*   rX   rq  s      r&   rl  zYearGt.get_bound_paramsî  ó
   € ØˆyÐr(   N©r3   rˆ   r‰   rl  rX   r(   r&   rw  rw  í  ó   „ ór(   rw  c                   ó   — e Zd Zd„ Zy)ÚYearGtec                 ó   — |fS r*   rX   rq  s      r&   rl  zYearGte.get_bound_paramsó  ó	   € Øˆxˆr(   Nrz  rX   r(   r&   r}  r}  ò  ó   „ ór(   r}  c                   ó   — e Zd Zd„ Zy)ÚYearLtc                 ó   — |fS r*   rX   rq  s      r&   rl  zYearLt.get_bound_paramsø  r  r(   Nrz  rX   r(   r&   r‚  r‚  ÷  r€  r(   r‚  c                   ó   — e Zd Zd„ Zy)ÚYearLtec                 ó   — |fS r*   rX   rq  s      r&   rl  zYearLte.get_bound_paramsý  ry  r(   Nrz  rX   r(   r&   r…  r…  ü  r{  r(   r…  c                   ó"   ‡ — e Zd ZdZˆ fd„Zˆ xZS )ÚUUIDTextMixinzs
    Strip hyphens from a value when filtering a UUIDField on backends without
    a native datatype for UUID.
    c                 ó(  •— |j                   j                  seddlm} | j	                  «       rt        | j                  «      | _         || j                  t        d«      t        d«      t        «       ¬«      | _        t        ‰| �%  ||«      \  }}||fS )Nr   )ÚReplaceú-r*  r7   )
rƒ   Úhas_native_uuid_fieldrd  rŠ  rL   r
   r   r   r—   r^   )r%   rè   rB   rŠ  r   rI   r2   s         €r&   r^   zUUIDTextMixin.process_rhs  st   ø€ Ø×"Ñ"×8Ò8Ý:à×'Ñ'Ô)Ü  §¡›?�”ÙØ—‘œ% ›*¤e¨B£i¼i»kôˆDŒHô ‘gÑ)¨"¨jÓ9‰ˆˆVØ�Fˆ{Ðr(   )r3   rˆ   r‰   r’   r^   r¨   r©   s   @r&   rˆ  rˆ    s   ø„ ñ÷

ð 
r(   rˆ  c                   ó   — e Zd Zy)Ú
UUIDIExactNr	  rX   r(   r&   rŽ  rŽ    r
  r(   rŽ  c                   ó   — e Zd Zy)ÚUUIDContainsNr	  rX   r(   r&   r�  r�    r
  r(   r�  c                   ó   — e Zd Zy)ÚUUIDIContainsNr	  rX   r(   r&   r’  r’    r
  r(   r’  c                   ó   — e Zd Zy)ÚUUIDStartsWithNr	  rX   r(   r&   r”  r”  #  r
  r(   r”  c                   ó   — e Zd Zy)ÚUUIDIStartsWithNr	  rX   r(   r&   r–  r–  (  r
  r(   r–  c                   ó   — e Zd Zy)ÚUUIDEndsWithNr	  rX   r(   r&   r˜  r˜  -  r
  r(   r˜  c                   ó   — e Zd Zy)ÚUUIDIEndsWithNr	  rX   r(   r&   rš  rš  2  r
  r(   rš  )JrÅ   r  Údjango.core.exceptionsr   r   Údjango.db.models.expressionsr   r   r   r   r	   r
   r   Údjango.db.models.fieldsr   r   r   r   r   r   Údjango.db.models.query_utilsr   Údjango.utils.datastructuresr   Údjango.utils.functionalr   Údjango.utils.hashabler   r   rŽ   r•   r«   rµ   rË   Úregister_lookuprÑ   râ   rê   rï   ró   rö   rù   r  r  r  r  r  r  r  r0  r:  r=  rA  rE  rH  rK  rN  rQ  rW  r]  r`  rs  rw  r}  r‚  r…  rˆ  rŽ  r�  r’  r”  r–  r˜  rš  rX   r(   r&   ú<module>r£     s  ðÛ Û ç @÷÷ ñ ÷÷ õ =Ý 2Ý 3Ý /ônEˆZô nEôb$Ð# Tô $ô.<�Fô <÷(
ñ 
ô>K"Ð'?ô K"ô\	G˜Vô 	Gð ×Ñô%4Ð$ mó %4ó ð%4ðP ×Ñôˆ]ó ó ðð ×ÑôÐ*¨Mó ó ðð ×ÑôÐ1°=ó ó ðð ×ÑôÐ'¨ó ó ðð ×ÑôÐ.°ó ó ð÷9ñ 9÷$	)ñ 	)ð ×Ñô	Ð,¨eó 	ó ð	ð ×Ñô(Ð-¨{ó (ó ð(ð ×Ñô(ØÐ3Ð5Gó(ó ð(ð ×Ñô'Ð*Ð,EÀxó 'ó ð'ð ×Ñô'Ð1°?ó 'ó ð'ð ×ÑôN3Ð	)¨=ó N3ó ðN3ôb�Mô ð@ ×Ñôˆ}ó ó ðð ×Ñô�ó ó ðð ×Ñô�ó ó ðð
 ×Ñô �*ó  ó ð ð ×Ñôˆ}ó ó ðð
 ×Ñô�ó ó ðð ×Ñô6Ð,¨mó 6ó ð6ð ×Ñô2ˆ]ó 2ó ð2ð2 ×Ñô5ˆMó 5ó ð5ð ×ÑôˆUó ó ðô&
�ô &
ôR�
˜Eô ôˆZ˜ô ô
ˆjÐ,ô ô
ˆZ˜ô ô
ˆj˜/ô ÷
ñ ð& ×Ñô	� ó 	ó ð	ð ×Ñô	�= (ó 	ó ð	ð ×Ñô	�M 9ó 	ó ð	ð ×Ñô	�] Jó 	ó ð	ð ×Ñô	�m [ó 	ó ð	ð ×Ñô	�= (ó 	ó ð	ð ×Ñô	�M 9ó 	ó ñ	r(   