+
    Tj-                        ^ RI Ht ^ RIHtHt ^ RIHtHtHt ^ RI	H
t
Ht ^ RIHt  ! R R4      t ! R R	4      t ! R
 R4      t ! R R]4      t ! R R]4      t ! R R]4      t ! R R]4      t ! R R]4      t ! R R]4      t ! R R]4      t ! R R]4      t ! R R]]4      t ! R R]4      t ! R  R!]4      t ! R" R#]4      t ! R$ R%]4      t ! R& R']4      t ! R( R)]4      t ! R* R+]4      t  ! R, R-]]]4      t! ! R. R/]]]4      t" ! R0 R1]]]]4      t# ! R2 R3]]]]4      t$ ! R4 R5]]]]4      t% ! R6 R7]4      t& ! R8 R9]4      t' ! R: R;]4      t( ! R< R=]4      t)R># )?    NotSupportedError)FuncValue)	CharFieldIntegerField	TextField)CastCoalesce)	Transformc                   2   a a ] tR t^t oV 3R ltRtVtV ;t# )MySQLSHA2Mixinc                \   < \         SV `  ! VV3R RV P                  R,          ,          /VB # )templatezSHA2(%%(expressions)s, %s):   NN)superas_sqlfunctionselfcompiler
connectionextra_context	__class__s   &&&,T/var/www/idalgo/venv/lib/python3.14/site-packages/django/db/models/functions/text.pyas_mysqlMySQLSHA2Mixin.as_mysql	   s<    w~
 2DMM"4EE
 	
 	
     )__name__
__module____qualname____firstlineno__r   __static_attributes____classdictcell____classcell__r   __classdict__s   @@r   r   r      s     
 
r   r   c                   2   a a ] tR t^t oV 3R ltRtVtV ;t# )OracleHashMixinc                ,   < \         SV `  ! VV3R R/VB # )r   zcLOWER(RAWTOHEX(STANDARD_HASH(UTL_I18N.STRING_TO_RAW(%(expressions)s, 'AL32UTF8'), '%(function)s')))r   r   r   s   &&&,r   	as_oracleOracleHashMixin.as_oracle   s/    w~
B	
 
 	
r   r   )r    r!   r"   r#   r-   r$   r%   r&   r'   s   @@r   r*   r*      s     	
 	
r   r*   c                   2   a a ] tR t^t oV 3R ltRtVtV ;t# )PostgreSQLSHAMixinc                `   < \         SV `  ! VV3R RRV P                  P                  4       /VB # )r   z6ENCODE(DIGEST(%(expressions)s, '%(function)s'), 'hex')r   )r   r   r   lowerr   s   &&&,r   as_postgresql PostgreSQLSHAMixin.as_postgresql    sF    w~
 N
 ]]((*	

 
 	
r   r   )r    r!   r"   r#   r3   r$   r%   r&   r'   s   @@r   r0   r0      s     
 
r   r0   c                   `   a a ] tR t^*t oRtRt]! 4       tV 3R ltV 3R lt	V 3R lt
RtVtV ;t# )ChrCHRchrc                0   < \         SV `  ! VV3R RRR/VB # )r   CHARr   z)%(function)s(%(expressions)s USING utf16)r,   r   s   &&&,r   r   Chr.as_mysql/   s9    w~
 
 A	

 
 	
r   c                ,   < \         SV `  ! VV3R R/VB # )r   z,%(function)s(%(expressions)s USING NCHAR_CS)r,   r   s   &&&,r   r-   Chr.as_oracle8   s/    w~
 D
 	
 	
r   c                *   < \         SV `  ! W3R R/VB # )r   r:   r,   r   s   &&&,r   	as_sqliteChr.as_sqlite@   s    w~hUVU}UUr   r   )r    r!   r"   r#   r   lookup_namer   output_fieldr   r-   r?   r$   r%   r&   r'   s   @@r   r6   r6   *   s,     HK;L

V Vr   r6   c                   V   a a ] tR t^Dt oRtRtV 3R lt]tR tV 3R lt	R t
RtVtV ;t# )
ConcatPairz
Concatenate two arguments together. This is used by `Concat` because not
all backend databases support more than two arguments.
CONCATc                X   < V P                  4       p\        \        V`  ! VV3R RRR/VB # )r   z(%(expressions)s)
arg_joinerz || )coalescer   rD   r   )r   r   r   r   	coalescedr   s   &&&, r   pipes_concat_sqlConcatPair.pipes_concat_sqlL   sF    MMO	Z2
 )
 	

 
 	
r   c           
     $   V P                  4       pTP                  VP                  4        Uu. uF?  p\        VP                  \
        \        34      '       d   TM\        V\        4       4      NKA  	  up4       VP                  ! W3/ VB # u upi N)	copyset_source_expressionsget_source_expressions
isinstancerB   r   r	   r
   rJ   )r   r   r   r   c
expressions   &&&,  r   r3   ConcatPair.as_postgresqlX   s    IIK	   #$":":"< #=J "*"9"9Iy;QRR j)+67 #=		
 !!(H-HHs   ABc                0   < \         SV `  ! VV3R RRR/VB # )r   	CONCAT_WSr   z!%(function)s('', %(expressions)s)r,   r   s   &&&,r   r   ConcatPair.as_mysqlf   s8    w~
 !
 9	

 
 	
r   c                    V P                  4       pTP                  VP                  4        Uu. uF  p\        V\	        R 4      4      NK  	  up4       V# u upi ) )rN   rO   rP   r   r   )r   rR   rS   s   &  r   rH   ConcatPair.coalescep   sZ     IIK	   #$":":"<"<J U2Y/"<	
 s   Ar   )r    r!   r"   r#   __doc__r   rJ   r?   r3   r   rH   r$   r%   r&   r'   s   @@r   rD   rD   D   s2     
 H
 !II

 
r   rD   c                   D   a a ] tR t^}t oRtRtRtV 3R ltR tRt	Vt
V ;t# )Concatz
Concatenate text fields together. Backends that result in an entire
null expression when any arguments are null will wrap each argument in
coalesce functions to ensure a non-null result.
Nz%(expressions)sc                   < \        V4      ^8  d   \        R4      hV P                  WP                  R4      R7      p\        SV `  ! V3/ VB  R# )   z)Concat must take at least two expressionsrB   rB   N)len
ValueError_pairedgetr   __init__)r   expressionsextrapairedr   s   &*, r   re   Concat.__init__   sG    {aHIIk		.8QR)5)r   c                    \        V4      ^8X  d   \        VRV/ # \        V^ ,          V P                  VR,          VR7      VR7      # )r_   rB   :   NNr`   )ra   rD   rc   )r   rf   rB   s   &&&r   rc   Concat._paired   sL     {q {FFFNLLR|LD%
 	
r   r   )r    r!   r"   r#   r[   r   r   re   rc   r$   r%   r&   r'   s   @@r   r]   r]   }   s%      H H*

 

r   r]   c                   Z   a a ] tR t^t oRt^t]! 4       tV 3R ltR t	R t
R tRtVtV ;t# )LeftLEFTc                r   < \        VR4      '       g   V^8  d   \        R4      h\        SV `  ! W3/ VB  R# )z
expression: the name of a field, or an expression returning a string
length: the number of characters to return from the start of the string
resolve_expressionz 'length' must be greater than 0.Nhasattrrb   r   re   )r   rS   lengthrg   r   s   &&&,r   re   Left.__init__   s8    
 v344z !CDD5u5r   c                r    \        V P                  ^ ,          \        ^4      V P                  ^,          4      # )r   Substrsource_expressionsr   r   s   &r   
get_substrLeft.get_substr   s,    d--a0%(D<S<STU<VWWr   c                D    V P                  4       P                  ! W3/ VB # rM   )r{   r-   r   r   r   r   s   &&&,r   r-   Left.as_oracle        **8Q=QQr   c                D    V P                  4       P                  ! W3/ VB # rM   )r{   r?   r~   s   &&&,r   r?   Left.as_sqlite   r   r   r   )r    r!   r"   r#   r   arityr   rB   re   r{   r-   r?   r$   r%   r&   r'   s   @@r   rn   rn      s3     HE;L6XRR Rr   rn   c                   L   a a ] tR t^t oRtRtRt]! 4       tV 3R lt	Rt
VtV ;t# )Lengthz2Return the number of characters in the expression.LENGTHrt   c                *   < \         SV `  ! W3R R/VB # )r   CHAR_LENGTHr,   r   s   &&&,r   r   Length.as_mysql   s'    w~
+8
<I
 	
r   r   )r    r!   r"   r#   r[   r   rA   r   rB   r   r$   r%   r&   r'   s   @@r   r   r      s#     <HK>L
 
r   r   c                       ] tR t^tRtRtRtR# )LowerLOWERr2   r   Nr    r!   r"   r#   r   rA   r$   r   r   r   r   r          HKr   r   c                   V   a a ] tR t^t oRt]! 4       t]! R4      3V 3R lltRt	Vt
V ;t# )LPadLPAD c                |   < \        VR 4      '       g   Ve   V^ 8  d   \        R4      h\        SV `  ! WV3/ VB  R# )rq   Nz''length' must be greater or equal to 0.rr   )r   rS   rt   	fill_textrg   r   s   &&&&,r   re   LPad.__init__   s>     455"
FGGY@%@r   r   )r    r!   r"   r#   r   r   rB   r   re   r$   r%   r&   r'   s   @@r   r   r      s$     H;L5:3Z A Ar   r   c                       ] tR t^tRtRtRtR# )LTrimLTRIMltrimr   Nr   r   r   r   r   r      r   r   r   c                       ] tR t^tR tRtRtR# )MD5md5r   Nr   r   r   r   r   r      s    HKr   r   c                   T   a a ] tR t^t oRtRt]! 4       tV 3R ltV 3R lt	Rt
VtV ;t# )OrdASCIIordc                *   < \         SV `  ! W3R R/VB # )r   ORDr,   r   s   &&&,r   r   Ord.as_mysql   s    w~hTUTmTTr   c                *   < \         SV `  ! W3R R/VB # )r   UNICODEr,   r   s   &&&,r   r?   Ord.as_sqlite   s    w~hXYX-XXr   r   )r    r!   r"   r#   r   rA   r   rB   r   r?   r$   r%   r&   r'   s   @@r   r   r      s(     HK>LUY Yr   r   c                   J   a a ] tR t^t oRt]! 4       tV 3R ltR tRt	Vt
V ;t# )RepeatREPEATc                z   < \        VR 4      '       g   Ve   V^ 8  d   \        R4      h\        SV `  ! W3/ VB  R# )rq   Nz''number' must be greater or equal to 0.rr   )r   rS   numberrg   r   s   &&&,r   re   Repeat.__init__   s<     455"
FGG5u5r   c                    V P                   w  rEVf   R M\        V4      V,          p\        WFV4      pVP                  ! W3/ VB # rM   )ry   r   RPadr   )r   r   r   r   rS   r   rt   rpads   &&&,    r   r-   Repeat.as_oracle   sE    !44
VJ-?&-HJ
3{{8A=AAr   r   )r    r!   r"   r#   r   r   rB   re   r-   r$   r%   r&   r'   s   @@r   r   r      s"     H;L6B Br   r   c                   H   a a ] tR t^t oRt]! R4      3V 3R lltRtVtV ;t	# )ReplaceREPLACErY   c                ,   < \         SV `  ! WV3/ VB  R # rM   )r   re   )r   rS   textreplacementrg   r   s   &&&&,r   re   Replace.__init__   s    ;@%@r   r   )
r    r!   r"   r#   r   r   re   r$   r%   r&   r'   s   @@r   r   r      s     H5:2Y A Ar   r   c                   :   a a ] tR tRt oRtRtV 3R ltRtVtV ;t	# )Reversei  REVERSEreversec                x   < VP                   P                  p\        SV `  ! VV3R RV R2/VB w  rVWV^,          3# )r   zk(SELECT LISTAGG(s) WITHIN GROUP (ORDER BY n DESC) FROM (SELECT LEVEL n, SUBSTR(%(expressions)s, LEVEL, 1) szG CONNECT BY LEVEL <= LENGTH(%(expressions)s)) GROUP BY %(expressions)s))featuresbare_select_suffixr   r   )r   r   r   r   suffixsqlparamsr   s   &&&,   r   r-   Reverse.as_oracle  s_     $$77gn

GGMh O,,	

 

 QJr   r   )
r    r!   r"   r#   r   rA   r-   r$   r%   r&   r'   s   @@r   r   r     s     HK r   r   c                   *   a  ] tR tRt o RtR tRtV tR# )Righti  RIGHTc                    \        V P                  ^ ,          V P                  ^,          \        R4      ,          V P                  ^,          4      # )r   rw   rz   s   &r   r{   Right.get_substr  sB    ##A&##A&r2##A&
 	
r   r   N)r    r!   r"   r#   r   r{   r$   r%   r(   s   @r   r   r     s     H
 
r   r   c                       ] tR tRtRtRtR# )r   i%  RPADr   N)r    r!   r"   r#   r   r$   r   r   r   r   r   %  s    Hr   r   c                       ] tR tRtRtRtRtR# )RTrimi)  RTRIMrtrimr   Nr   r   r   r   r   r   )  r   r   r   c                       ] tR tRtR tRtRtR# )SHA1i.  sha1r   Nr   r   r   r   r   r   .      HKr   r   c                   .   a  ] tR tRt o R tRtR tRtV tR# )SHA224i3  sha224c                    \        R 4      h)z"SHA224 is not supported on Oracle.r   r~   s   &&&,r   r-   SHA224.as_oracle7  s     DEEr   r   N)	r    r!   r"   r#   r   rA   r-   r$   r%   r   s   @r   r   r   3  s     HKF Fr   r   c                       ] tR tRtR tRtRtR# )SHA256i;  sha256r   Nr   r   r   r   r   r   ;      HKr   r   c                       ] tR tRtR tRtRtR# )SHA384i@  sha384r   Nr   r   r   r   r   r   @  r   r   r   c                       ] tR tRtR tRtRtR# )SHA512iE  sha512r   Nr   r   r   r   r   r   E  r   r   r   c                   L   a a ] tR tRt oRtRt^t]! 4       tV 3R lt	Rt
VtV ;t# )StrIndexiJ  z
Return a positive integer corresponding to the 1-indexed position of the
first occurrence of a substring inside another string, or 0 if the
substring is not found.
INSTRc                *   < \         SV `  ! W3R R/VB # )r   STRPOSr,   r   s   &&&,r   r3   StrIndex.as_postgresqlU      w~hWXWWWr   r   )r    r!   r"   r#   r[   r   r   r   rB   r3   r$   r%   r&   r'   s   @@r   r   r   J  s)      HE>LX Xr   r   c                   `   a a ] tR tRt oRt]! 4       tRV 3R lltV 3R ltV 3R lt	Rt
VtV ;t# )rx   iY  	SUBSTRINGc                   < \        VR4      '       g   V^8  d   \        R4      hW.pVe   VP                  V4       \        SV `  ! V/ VB  R# )z
expression: the name of a field, or an expression returning a string
pos: an integer > 0, or an expression returning an integer
length: an optional number of characters to return
rq   z'pos' must be greater than 0N)rs   rb   appendr   re   )r   rS   posrt   rg   rf   r   s   &&&&, r   re   Substr.__init__]  sT     s011Qw !?@@!'v&+//r   c                *   < \         SV `  ! W3R R/VB # r   SUBSTRr,   r   s   &&&,r   r?   Substr.as_sqlitek  r   r   c                *   < \         SV `  ! W3R R/VB # r   r,   r   s   &&&,r   r-   Substr.as_oraclen  r   r   r   rM   )r    r!   r"   r#   r   r   rB   re   r?   r-   r$   r%   r&   r'   s   @@r   rx   rx   Y  s(     H;L0XX Xr   rx   c                       ] tR tRtRtRtRtR# )Trimir  TRIMtrimr   Nr   r   r   r   r   r   r  r   r   r   c                       ] tR tRtRtRtRtR# )Upperiw  UPPERupperr   Nr   r   r   r   r   r   w  r   r   r   N)*	django.dbr   django.db.models.expressionsr   r   django.db.models.fieldsr   r   r	   django.db.models.functionsr
   r   django.db.models.lookupsr   r   r*   r0   r6   rD   r]   rn   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   rx   r   r   r   r   r   <module>r     s   ' 4 F F 5 .
 


 


 
V) V46 6r
T 
:R4 R2

Y 

I 
A4 AI 
/9 
	Y) 	YBT B(Ad Ai ,
D 
4 I 
?.	 
F^/ F^_.@) 
^_.@) 
^_.@) 
Xt XXT X29 
I r   