Ë
    ¹ûàg°  ã                   ó  — d dl mZ d dlmZmZ d dlmZ d dlmZm	Z	 d dl
mZ d dlmZ ddlmZmZmZmZmZ d	„ Z G d
„ de«      Z G d„ de«      Z G d„ de«      Z G d„ de«      Z G d„ de«      Z G d„ de«      Z G d„ de«      Z G d„ de«      Z G d„ de«      Z G d„ de«      Z G d„ de«      Z G d „ d!e«      Z  G d"„ d#e«      Z! G d$„ d%e«      Z" G d&„ d'e"«      Z# G d(„ d)e"«      Z$ G d*„ d+e"«      Z% G d,„ d-e"«      Z& G d.„ d/e"«      Z'y0)1é    )Úmodels)Ú	OperationÚOperationCategory)Ú
ModelState)Úfield_referencesÚresolve_relation)Únormalize_together)Úcached_propertyé   )ÚAddFieldÚ
AlterFieldÚFieldOperationÚRemoveFieldÚRenameFieldc                 ót   — t        «       }|D ])  }||v rt        d|›d| ›d�«      ‚|j                  |«       Œ+ y )NzFound duplicate value z in CreateModel z
 argument.)ÚsetÚ
ValueErrorÚadd)Úarg_nameÚobjsÚ	used_valsÚvals       úd/var/www/skyplay_api_hub/venv/lib/python3.12/site-packages/django/db/migrations/operations/models.pyÚ_check_for_duplicatesr      sC   € Ü“€IØò ˆØ�)ÑÝÚJMÊxÐXóð ð 	�‰�cÕñó    c                   ó@   ‡ — e Zd Zd„ Zed„ «       Zd„ Zˆ fd„Zd„ Zˆ xZ	S )ÚModelOperationc                 ó   — || _         y ©N©Úname)Úselfr!   s     r   Ú__init__zModelOperation.__init__   s	   € Øˆ�	r   c                 ó6   — | j                   j                  «       S r   )r!   Úlower©r"   s    r   Ú
name_lowerzModelOperation.name_lower   s   € à�y‰y�‰Ó Ð r   c                 ó<   — |j                  «       | j                  k(  S r   )r%   r'   ©r"   r!   Ú	app_labels      r   Úreferences_modelzModelOperation.references_model   s   € Ø�z‰z‹|˜tŸ™Ñ.Ð.r   c                 óL   •— t         ‰| �  ||«      xs | j                  ||«      S r   )ÚsuperÚreduceÚcan_reduce_through©r"   Ú	operationr*   Ú	__class__s      €r   r.   zModelOperation.reduce    s-   ø€ Ü‰w‰~˜i¨Ó3ò 
°t×7NÑ7NØ�yó8
ð 	
r   c                 ó<   — |j                  | j                  |«       S r   )r+   r!   )r"   r1   r*   s      r   r/   z!ModelOperation.can_reduce_through%   s   € Ø×-Ñ-¨d¯i©i¸ÓCÐCÐCr   )
Ú__name__Ú
__module__Ú__qualname__r#   r
   r'   r+   r.   r/   Ú__classcell__©r2   s   @r   r   r      s,   ø„ òð ñ!ó ð!ò/ô
ö
Dr   r   c                   ó‚   ‡ — e Zd ZdZej
                  Zg d¢Zdˆ fd„	Zd„ Z	d„ Z
d„ Zd„ Zd„ Zed	„ «       Zd
„ Zˆ fd„Zˆ xZS )ÚCreateModelzCreate a model's table.)ÚfieldsÚoptionsÚmanagersc                 ó@  •— || _         |xs i | _        |xs t        j                  f| _        |xs g | _        t        ‰| �  |«       t        dd„ | j                   D «       «       t        dd„ | j                  D «       «       t        dd„ | j
                  D «       «       y )Nr;   c              3   ó&   K  — | ]	  \  }}|–— Œ y ­wr   © ©Ú.0r!   Ú_s      r   ú	<genexpr>z'CreateModel.__init__.<locals>.<genexpr>7   s   è ø€ Ò(I±'°$¸¬Ñ(Iùó   ‚Úbasesc              3   ó¤   K  — | ]H  }t        |d «      r|j                  j                  n!t        |t        «      r|j                  «       n|–— ŒJ y­w)Ú_metaN)ÚhasattrrH   Úlabel_lowerÚ
isinstanceÚstrr%   )rB   Úbases     r   rD   z'CreateModel.__init__.<locals>.<genexpr>:   sJ   è ø€ ò ð ô ˜t WÔ-ð —J‘J×*Ò*ä)3°D¼#Ô)>˜Ÿ™œÀDóIñùs   ‚AAr=   c              3   ó&   K  — | ]	  \  }}|–— Œ y ­wr   r@   rA   s      r   rD   z'CreateModel.__init__.<locals>.<genexpr>C   s   è ø€ Ò*M±G°D¸!¬4Ñ*MùrE   )	r;   r<   r   ÚModelrF   r=   r-   r#   r   )r"   r!   r;   r<   rF   r=   r2   s         €r   r#   zCreateModel.__init__/   s‰   ø€ ØˆŒØ’} "ˆŒØÒ-œvŸ|™|˜oˆŒ
Ø š BˆŒÜ‰Ñ˜Ôô 	˜hÑ(I¸T¿[¹[Ô(IÔJÜØñð !ŸJ™Jôô
	
ô 	˜jÑ*M¸t¿}¹}Ô*MÕNr   c                 óŒ  — | j                   | j                  dœ}| j                  r| j                  |d<   | j                  r-| j                  t        j
                  fk7  r| j                  |d<   | j                  r3| j                  dt	        j                  «       fgk7  r| j                  |d<   | j                  j                  g |fS )N)r!   r;   r<   rF   Úobjectsr=   )
r!   r;   r<   rF   r   rO   r=   ÚManagerr2   r6   ©r"   Úkwargss     r   ÚdeconstructzCreateModel.deconstructE   s™   € à—I‘IØ—k‘kñ
ˆð �<Š<Ø $§¡ˆF�9ÑØ�:Š:˜$Ÿ*™*¬¯©¨Ò7Ø"Ÿj™jˆF�7‰OØ�=Š=˜TŸ]™]°	¼6¿>¹>Ó;KÐ/LÐ.MÒMØ!%§¡ˆF�:ÑØ—‘×+Ñ+¨R°Ð8Ð8r   c                 óî   — |j                  t        || j                  t        | j                  «      t        | j                  «      t        | j                  «      t        | j                  «      «      «       y r   )
Ú	add_modelr   r!   Úlistr;   Údictr<   ÚtuplerF   r=   ©r"   r*   Ústates      r   Ústate_forwardszCreateModel.state_forwardsR   sP   € Ø�‰ÜØØ—	‘	Ü�T—[‘[Ó!Ü�T—\‘\Ó"Ü�d—j‘jÓ!Ü�T—]‘]Ó#óõ		
r   c                 óh  — |j                   j                  || j                  «      }| j                  |j                  j
                  |«      rf|j                  |«       |j                  || j                  f   }|j                  j                  d«      x}r|j                  |t        «       |«       y y y )NÚindex_together)ÚappsÚ	get_modelr!   Úallow_migrate_modelÚ
connectionÚaliasÚcreate_modelr   r'   r<   ÚgetÚalter_index_togetherr   )r"   r*   Úschema_editorÚ
from_stateÚto_stateÚmodelÚto_model_stater_   s           r   Údatabase_forwardszCreateModel.database_forwards^   s¡   € Ø—‘×'Ñ'¨	°4·9±9Ó=ˆØ×#Ñ# M×$<Ñ$<×$BÑ$BÀEÔJØ×&Ñ& uÔ-ð
 &Ÿ_™_¨Y¸¿¹Ð-GÑHˆNØ!/×!7Ñ!7×!;Ñ!;Ð<LÓ!MÐMˆ~ÐMØ×2Ñ2ØÜ“EØ"õð Nð Kr   c                 óÀ   — |j                   j                  || j                  «      }| j                  |j                  j
                  |«      r|j                  |«       y y r   ©r`   ra   r!   rb   rc   rd   Údelete_model©r"   r*   rh   ri   rj   rk   s         r   Údatabase_backwardszCreateModel.database_backwardsn   óL   € Ø—‘×)Ñ)¨)°T·Y±YÓ?ˆØ×#Ñ# M×$<Ñ$<×$BÑ$BÀEÔJØ×&Ñ& uÕ-ð Kr   c                 ób   — d| j                   j                  dd«      rdnd›d| j                  ›�S )NzCreate ÚproxyFzproxy Ú zmodel )r<   rf   r!   r&   s    r   ÚdescribezCreateModel.describes   s.   � àŸ™×(Ñ(¨°%Ô8‰H¸bÑ@Ø�IŠIð
ð 	
r   c                 ó   — | j                   S r   ©r'   r&   s    r   Úmigration_name_fragmentz#CreateModel.migration_name_fragmenty   s   € à�‰Ðr   c                 ój  — |j                  «       }|| j                  k(  ry||f}| j                  D ]Q  }|t        j                  usŒt        |t        j                  j                  t        f«      sŒAt        ||«      |k(  sŒQ y | j                  D ]   \  }}t        || j                  f||«      sŒ  y y)NTF)r%   r'   rF   r   rO   rK   rM   Ú	ModelBaserL   r   r;   r   )r"   r!   r*   r'   Úreference_model_tuplerM   Ú_nameÚfields           r   r+   zCreateModel.references_model}   s°   € Ø—Z‘Z“\ˆ
Ø˜Ÿ™Ò(Øð "+¨JÐ 7ÐØ—J‘Jò 	ˆDàœFŸL™LÒ(Ü˜t¤f§k¡k×&;Ñ&;¼SÐ%AÕBÜ$ T¨9Ó5Ð9NÓNáð	ð !ŸK™Kò 	‰LˆE�5ÜØ˜DŸO™OÐ,¨eÐ5Jõñ ð		ð
 r   c                 ó  •‡— t        ‰t        «      r7| j                  ‰j                  k(  r| j                  j	                  dd«      sg S t        ‰t
        «      r\| j                  ‰j                  k(  rCt        ‰j                  | j                  | j                  | j                  | j                  ¬«      gS t        ‰t        «      rž| j                  ‰j                  k(  r…i | j                  ¥‰j                  ¥}‰j                  D ]#  }|‰j                  vsŒ|j                  |d «       Œ% t        | j                  | j                  || j                  | j                  ¬«      gS t        ‰t         «      r\| j                  ‰j                  k(  rCt        | j                  | j                  | j                  | j                  ‰j                  ¬«      gS t        ‰t"        «      rv| j                  ‰j                  k(  r]t        | j                  | j                  i | j                  ¥‰j$                  ‰j&                  i¥| j                  | j                  ¬«      gS t        ‰t(        «      rl| j                  ‰j                  k(  rSt        | j                  | j                  i | j                  ¥d‰j*                  i¥| j                  | j                  ¬«      gS t        ‰t,        «      �r| j                  ‰j.                  k(  �rñt        ‰t0        «      r]t        | j                  | j                  ‰j                  ‰j2                  fgz   | j                  | j                  | j                  ¬«      gS t        ‰t4        «      rst        | j                  | j                  D ��cg c]$  \  }}||‰j                  k(  r‰j2                  n|f‘Œ& c}}| j                  | j                  | j                  ¬«      gS t        ‰t6        «      rî| j                  j9                  «       }dD ]A  }|j                  |d «      }|sŒt;        t=        t>        ˆfd„|D «       «      «      }|sŒ=|||<   ŒC |j	                  d«      }	|	‰j                  k(  r|d= t        | j                  | j                  D ��cg c]&  \  }}|jA                  «       ‰j                  k7  r||f‘Œ( c}}|| j                  | j                  ¬«      gS t        ‰tB        «      �rU| j                  j9                  «       }dD ];  }|j	                  |«      }|sŒ|D �
ch c]  }
tE        ˆfd„|
D «       «      ’Œ c}
||<   Œ= |j	                  d«      }	|	‰jF                  k(  r‰j                  |d<   t        | j                  | j                  D ��cg c]$  \  }}|‰jF                  k(  r‰j                  n||f‘Œ& c}}|| j                  | j                  ¬«      gS t        ‰tH        «      �rR| j                  ‰j.                  k(  �r8t        ‰tJ        «      rqt        | j                  | j                  i | j                  ¥dg | j                  j	                  dg «      ¢‰jL                  ‘i¥| j                  | j                  ¬«      gS t        ‰tN        «      r‹| j                  j	                  dg «      D �cg c]  }|j                  ‰j                  k7  r|‘Œ }}t        | j                  | j                  i | j                  ¥d|i¥| j                  | j                  ¬«      gS t        ‰tP        «      rqt        | j                  | j                  i | j                  ¥d	g | j                  j	                  d	g «      ¢‰jR                  ‘i¥| j                  | j                  ¬«      gS t        ‰tT        «      r‹| j                  j	                  d	g «      D �cg c]  }|j                  ‰j                  k7  r|‘Œ }}t        | j                  | j                  i | j                  ¥d	|i¥| j                  | j                  ¬«      gS tV        ‰| �±  ‰|«      S c c}}w c c}}w c c}
w c c}}w c c}w c c}w )
Nru   F)r;   r<   rF   r=   Úorder_with_respect_to)Úunique_togetherr_   c              3   óF   •K  — | ]  }t        ˆfd „|D «       «      –— Œ y­w)c              3   óB   •K  — | ]  }|‰j                   k7  sŒ|–— Œ y ­wr   ry   ©rB   Úfr1   s     €r   rD   z/CreateModel.reduce.<locals>.<genexpr>.<genexpr>
  s#   øè ø€ ò *&Ø./¸QÀ)×BVÑBVÓ=V¬ñ*&ùs   ƒ˜N)rZ   )rB   r;   r1   s     €r   rD   z%CreateModel.reduce.<locals>.<genexpr>	  s-   øè ø€ ò !"ð )/ô %*ó *&Ø39ô*&÷ %&ñ!"ùs   ƒ!c              3   óX   •K  — | ]!  }|‰j                   k(  r‰j                  n|–— Œ# y ­wr   ©Úold_nameÚnew_namer…   s     €r   rD   z%CreateModel.reduce.<locals>.<genexpr>)  s2   øè ø€ ò "à$%ð 78¸9×;MÑ;MÒ6M 	× 2Ò 2ÐSTÓ Tñ"ùs   ƒ'*ÚindexesÚconstraints)-rK   ÚDeleteModelr'   r<   rf   ÚRenameModelÚold_name_lowerr:   rŠ   r;   rF   r=   ÚAlterModelOptionsÚALTER_OPTION_KEYSÚpopr!   ÚAlterModelManagersÚAlterTogetherOptionOperationÚoption_nameÚoption_valueÚAlterOrderWithRespectTor�   r   Úmodel_name_lowerr   r   r   r   Úcopyr   ÚfilterÚboolr%   r   rZ   r‰   ÚIndexOperationÚAddIndexÚindexÚRemoveIndexÚAddConstraintÚ
constraintÚRemoveConstraintr-   r.   )r"   r1   r*   r<   ÚkeyÚnÚvr•   Úoptionr�   r;   rž   Úoptions_indexesr¡   Úoptions_constraintsr2   s    `             €r   r.   zCreateModel.reduce”   sá  ù€ ä�y¤+Ô.Ø—‘ 9×#7Ñ#7Ò7Ø—L‘L×$Ñ$ W¨eÔ4àˆIä�y¤+Ô.Ø—‘ 9×#;Ñ#;Ò;ô Ø×&Ñ&ØŸ;™;Ø ŸL™LØŸ*™*Ø!Ÿ]™]ôðð ô �yÔ"3Ô4Ø—‘ 9×#7Ñ#7Ò7à;˜Ÿ™Ð;¨×):Ñ):Ð;ˆGØ ×2Ñ2ò +�Ø˜i×/Ñ/Ò/Ø—K‘K  TÕ*ð+ô Ø—I‘IØŸ;™;Ø#ØŸ*™*Ø!Ÿ]™]ôðð ô �yÔ"4Ô5Ø—‘ 9×#7Ñ#7Ò7ô Ø—I‘IØŸ;™;Ø ŸL™LØŸ*™*Ø&×/Ñ/ôðð ô �yÔ">Ô?Ø—‘ 9×#7Ñ#7Ò7ô Ø—I‘IØŸ;™;ðØŸ,™,ðà$×0Ñ0°)×2HÑ2HÐIðð Ÿ*™*Ø!Ÿ]™]ô	ðð ô �yÔ"9Ô:Ø—‘ 9×#7Ñ#7Ò7ô Ø—I‘IØŸ;™;ðØŸ,™,ðà/°×1PÑ1Pñð Ÿ*™*Ø!Ÿ]™]ô	ðð ô �y¤.Õ1Ø—‘ 9×#=Ñ#=Ó=ä˜)¤XÔ.äØŸ	™	Ø#Ÿ{™{¨y¯~©~¸y¿¹Ð.OÐ-PÑPØ $§¡Ø"Ÿj™jØ!%§¡ôðð ô ˜I¤zÔ2äØŸ	™	ð )-¯©÷ á $  1ð °1¸	¿¹Ò3F 	§¢ÈAÒNó ð !%§¡Ø"Ÿj™jØ!%§¡ô	ðð ô ˜I¤{Ô3ØŸ,™,×+Ñ+Ó-�Ø#Hò :�KØ$Ÿ[™[¨°dÓ;�FÚÜ!$Ü"Ü $ó!"ð 39ô	!"óó
"˜ò "Ø39˜G KÒ0ð:ð  )0¯©Ð4KÓ(LÐ%Ø(¨I×,@Ñ,@Ò@ØÐ 7Ð8äØŸ	™	ð )-¯©÷ á $  1Ø Ÿw™w›y¨I×,@Ñ,@Ò@ð  šFó ð
 !(Ø"Ÿj™jØ!%§¡ô
ðð ô ˜I¤{Õ3ØŸ,™,×+Ñ+Ó-�Ø#Hò 	�KØ$Ÿ[™[¨Ó5�FÚð +1ö0ð
 !'ô	 "ó "à)/ô"õ ò0˜ Ò,ð	ð )0¯©Ð4KÓ(LÐ%Ø(¨I×,>Ñ,>Ò>Ø7@×7IÑ7I�GÐ3Ñ4äØŸ	™	ð )-¯©÷ á $  1ð 45¸	×8JÑ8JÒ3J˜Y×/Ò/ÐPQÐSTÒUó ð !(Ø"Ÿj™jØ!%§¡ô	ðð ô �y¤.Õ1Ø—‘ 9×#=Ñ#=Ó=ä˜)¤XÔ.äØŸ	™	Ø#Ÿ{™{ð!Ø"Ÿl™lð!à%ð (Ø!%§¡×!1Ñ!1°)¸RÓ!@ð(à )§¡ð(ñ!ð #Ÿj™jØ!%§¡ôðð ô ˜I¤{Ô3ð "&§¡×!1Ñ!1°)¸RÓ!@ö#àØ—z‘z Y§^¡^Ò3ò ð#�ð #ô  ØŸ	™	Ø#Ÿ{™{ð!Ø"Ÿl™lð!à% ñ!ð #Ÿj™jØ!%§¡ô	ðð ô ˜I¤}Ô5äØŸ	™	Ø#Ÿ{™{ð!Ø"Ÿl™lð!à)ð ,Ø!%§¡×!1Ñ!1°-ÀÓ!Dð,à )× 4Ñ 4ð,ñ!ð #Ÿj™jØ!%§¡ôðð ô ˜IÔ'7Ô8ð '+§l¡l×&6Ñ&6°}ÀbÓ&Iö'à"Ø!—‘¨)¯.©.Ò8ò ð'Ð#ð 'ô  ØŸ	™	Ø#Ÿ{™{ð!Ø"Ÿl™lð!à)Ð+>ñ!ð #Ÿj™jØ!%§¡ô	ðð ô ‰w‰~˜i¨Ó3Ð3ùó] ùóB ùò0ùó ùò<#ùòD's$   Î)a!Ò+a'Ô3a-Ö$)a2Û"a8ß$"a=)NNN)r4   r5   r6   Ú__doc__r   ÚADDITIONÚcategoryÚserialization_expand_argsr#   rU   r]   rm   rr   rw   Úpropertyrz   r+   r.   r7   r8   s   @r   r:   r:   )   s[   ø„ Ù!à ×)Ñ)€HÚ AÐõOò,9ò

òò .ò

ð ñó ðò÷.r4ð r4r   r:   c                   ó\   — e Zd ZdZej
                  Zd„ Zd„ Zd„ Z	d„ Z
d„ Zd„ Zed„ «       Zy	)
r�   zDrop a model's table.c                 óP   — d| j                   i}| j                  j                  g |fS ©Nr!   )r!   r2   r6   rS   s     r   rU   zDeleteModel.deconstructŽ  s+   € à�D—I‘Ið
ˆð —‘×+Ñ+¨R°Ð8Ð8r   c                 ó<   — |j                  || j                  «       y r   )Úremove_modelr'   r[   s      r   r]   zDeleteModel.state_forwards”  s   € Ø×Ñ˜9 d§o¡oÕ6r   c                 óÀ   — |j                   j                  || j                  «      }| j                  |j                  j
                  |«      r|j                  |«       y y r   ro   rq   s         r   rm   zDeleteModel.database_forwards—  rs   r   c                 óÀ   — |j                   j                  || j                  «      }| j                  |j                  j
                  |«      r|j                  |«       y y r   )r`   ra   r!   rb   rc   rd   re   rq   s         r   rr   zDeleteModel.database_backwardsœ  sL   € Ø—‘×'Ñ'¨	°4·9±9Ó=ˆØ×#Ñ# M×$<Ñ$<×$BÑ$BÀEÔJØ×&Ñ& uÕ-ð Kr   c                  ó   — y)NTr@   r)   s      r   r+   zDeleteModel.references_model¡  s   € ð r   c                 ó    — d| j                   z  S )NzDelete model %sr    r&   s    r   rw   zDeleteModel.describe¦  s   € Ø  4§9¡9Ñ,Ð,r   c                 ó    — d| j                   z  S )Nz	delete_%sry   r&   s    r   rz   z#DeleteModel.migration_name_fragment©  s   € à˜TŸ_™_Ñ,Ð,r   N)r4   r5   r6   r©   r   ÚREMOVALr«   rU   r]   rm   rr   r+   rw   r­   rz   r@   r   r   r�   r�   ‰  sB   „ Ùà ×(Ñ(€Hò9ò7ò.ò
.ò
ò
-ð ñ-ó ñ-r   r�   c                   ó˜   ‡ — e Zd ZdZej
                  Zˆ fd„Zed„ «       Z	ed„ «       Z
d„ Zd„ Zd„ Zd„ Zd	„ Zd
„ Zed„ «       Zˆ fd„Zˆ xZS )rŽ   zRename a model.c                 ó@   •— || _         || _        t        ‰| �  |«       y r   )r‰   rŠ   r-   r#   )r"   r‰   rŠ   r2   s      €r   r#   zRenameModel.__init__³  s   ø€ Ø ˆŒØ ˆŒÜ‰Ñ˜Õ"r   c                 ó6   — | j                   j                  «       S r   ©r‰   r%   r&   s    r   r�   zRenameModel.old_name_lower¸  ó   € à�}‰}×"Ñ"Ó$Ð$r   c                 ó6   — | j                   j                  «       S r   ©rŠ   r%   r&   s    r   Únew_name_lowerzRenameModel.new_name_lower¼  r½   r   c                 óf   — | j                   | j                  dœ}| j                  j                  g |fS )Nrˆ   )r‰   rŠ   r2   r6   rS   s     r   rU   zRenameModel.deconstructÀ  s0   € àŸ™ØŸ™ñ
ˆð —‘×+Ñ+¨R°Ð8Ð8r   c                 óR   — |j                  || j                  | j                  «       y r   )Úrename_modelr‰   rŠ   r[   s      r   r]   zRenameModel.state_forwardsÇ  s   € Ø×Ñ˜9 d§m¡m°T·]±]ÕCr   c                 ó~  — |j                   j                  || j                  «      }| j                  |j                  j
                  |«      �rð|j                   j                  || j                  «      }|j                  ||j                  j                  |j                  j                  «       |j                  j                  D ]Þ  }|j                  |k(  r|}|| j                  f}	nY|j                  j                  j                  |j                  j                  j                  f}	 |j                   j                  |	Ž } |j                   j                  |	Ž j                  j                  |j                   j"                  «      }
|j%                  ||j                   |
«       Œà t'        |j                  j(                  |j                  j(                  «      }|D ]^  \  }}|j*                  |j                  k(  s*|j,                  j.                  j                  j0                  sŒJ|j3                  |||d¬«       Œ` y y )NF)Ústrict)r`   ra   rŠ   rb   rc   rd   r‰   Úalter_db_tablerH   Údb_tableÚrelated_objectsÚrelated_modelrÀ   r*   Ú
model_nameÚ	get_fieldr   r!   Úalter_fieldÚzipÚlocal_many_to_manyrk   Úremote_fieldÚthroughÚauto_createdÚ_alter_many_to_many)r"   r*   rh   ri   rj   Ú	new_modelÚ	old_modelÚrelated_objectrk   Úrelated_keyÚto_fieldr;   Ú	old_fieldÚ	new_fields                 r   rm   zRenameModel.database_forwardsÊ  sí  € Ø—M‘M×+Ñ+¨I°t·}±}ÓEˆ	Ø×#Ñ# M×$<Ñ$<×$BÑ$BÀIÕNØ"Ÿ™×1Ñ1°)¸T¿]¹]ÓKˆIà×(Ñ(ØØ—‘×(Ñ(Ø—‘×(Ñ(ôð #,§/¡/×"AÑ"Aò �Ø!×/Ñ/°9Ò<Ø%�EØ#,¨d×.AÑ.AÐ"B‘Kð '×4Ñ4×:Ñ:×DÑDØ&×4Ñ4×:Ñ:×EÑEð#�Kð 4˜HŸM™M×3Ñ3°[ÐA�EØ2˜8Ÿ=™=×2Ñ2°KÐ@×FÑF×PÑPØ"×(Ñ(×-Ñ-ó�ð ×)Ñ)ØØ"×(Ñ(Øõðô& Ø—‘×2Ñ2°I·O±O×4VÑ4VóˆFð )/ò Ñ$�	˜9ð —O‘O y×'>Ñ'>Ò>Ø$×1Ñ1×9Ñ9×?Ñ?×LÒLàà×1Ñ1ØØØØ ð	 2õ ñð? Or   c                 óD  — | j                   | j                  c| _        | _         | j                  | j                  c| _        | _        | j	                  ||||«       | j                   | j                  c| _        | _         | j                  | j                  c| _        | _        y r   )r�   rÀ   r‰   rŠ   rm   ©r"   r*   rh   ri   rj   s        r   rr   zRenameModel.database_backwardsú  sŽ   € à×ÑØ×Ñð 	1ˆÔ˜TÔ0ð (,§}¡}°d·m±mÐ$ˆŒ�t”}à×Ñ˜y¨-¸ÀXÔNð ×ÑØ×Ñð 	1ˆÔ˜TÔ0ð (,§}¡}°d·m±mÐ$ˆŒ�t•}r   c                 óz   — |j                  «       | j                  k(  xs |j                  «       | j                  k(  S r   )r%   r�   rÀ   r)   s      r   r+   zRenameModel.references_model	  s1   € à�J‰J‹L˜D×/Ñ/Ñ/ÒV°4·:±:³<À4×CVÑCVÑ3Vð	
r   c                 ó:   — d| j                   ›d| j                  ›�S )NzRename model ú to rˆ   r&   s    r   rw   zRenameModel.describe  s   � Ø*.¯-«-¸¿ºÐGÐGr   c                 ó:   — d| j                   ›d| j                  ›�S ©NÚrename_rC   )r�   rÀ   r&   s    r   rz   z#RenameModel.migration_name_fragment  s   � à!%×!4Ó!4°d×6IÒ6IÐJÐJr   c                 óþ   •— t        |t        «      r:| j                  |j                  k(  r!t        | j                  |j
                  «      gS t        t        | �#  ||«      xs |j                  | j
                  |«       S r   )
rK   rŽ   rÀ   r�   r‰   rŠ   r-   r   r.   r+   r0   s      €r   r.   zRenameModel.reduce  s~   ø€ ä�y¤+Ô.Ø×#Ñ# y×'?Ñ'?Ò?ô Ø—M‘MØ×&Ñ&óðð ô ”^ TÑ1Ø�yó
ò Fà×+Ñ+¨D¯M©M¸9ÓEÐEð	Fr   )r4   r5   r6   r©   r   Ú
ALTERATIONr«   r#   r
   r�   rÀ   rU   r]   rm   rr   r+   rw   r­   rz   r.   r7   r8   s   @r   rŽ   rŽ   ®  s‚   ø„ Ùà ×+Ñ+€Hô#ð
 ñ%ó ð%ð ñ%ó ð%ò9òDò.ò`Dò
ò
Hð ñKó ðK÷Fð Fr   rŽ   c                   ó6   ‡ — e Zd Zej                  Zˆ fd„Zˆ xZS )ÚModelOptionOperationc                 ó”   •— t        || j                  t        f«      r| j                  |j                  k(  r|gS t        ‰| �  ||«      S r   )rK   r2   r�   r'   r-   r.   r0   s      €r   r.   zModelOptionOperation.reduce*  sA   ø€ ä�y 4§>¡>´;Ð"?Ô@Ø—‘ 9×#7Ñ#7Ò7à�;ÐÜ‰w‰~˜i¨Ó3Ð3r   )r4   r5   r6   r   rã   r«   r.   r7   r8   s   @r   rå   rå   '  s   ø„ Ø ×+Ñ+€H÷4ð 4r   rå   c                   óP   ‡ — e Zd ZdZˆ fd„Zd„ Zd„ Zd„ Zd„ Zd„ Z	e
d„ «       Zˆ xZS )	ÚAlterModelTablezRename a model's table.c                 ó2   •— || _         t        ‰| �	  |«       y r   )Útabler-   r#   )r"   r!   rê   r2   s      €r   r#   zAlterModelTable.__init__6  s   ø€ ØˆŒ
Ü‰Ñ˜Õr   c                 óf   — | j                   | j                  dœ}| j                  j                  g |fS )N©r!   rê   )r!   rê   r2   r6   rS   s     r   rU   zAlterModelTable.deconstruct:  s0   € à—I‘IØ—Z‘Zñ
ˆð —‘×+Ñ+¨R°Ð8Ð8r   c                 óV   — |j                  || j                  d| j                  i«       y )NrÇ   )Úalter_model_optionsr'   rê   r[   s      r   r]   zAlterModelTable.state_forwardsA  s!   € Ø×!Ñ! )¨T¯_©_¸zÈ4Ï:É:Ð>VÕWr   c                 ó  — |j                   j                  || j                  «      }| j                  |j                  j
                  |«      �r@|j                   j                  || j                  «      }|j                  ||j                  j                  |j                  j                  «       t        |j                  j                  |j                  j                  «      D ]§  \  }}|j                  j                  j                  j                  sŒ1|j                  |j                  j                  |j                  j                  j                  j                  |j                  j                  j                  j                  «       Œ© y y r   )r`   ra   r!   rb   rc   rd   rÆ   rH   rÇ   rÍ   rÎ   rÏ   rÐ   rÑ   )	r"   r*   rh   ri   rj   rÓ   rÔ   rØ   rÙ   s	            r   rm   z!AlterModelTable.database_forwardsD  s'  € Ø—M‘M×+Ñ+¨I°t·y±yÓAˆ	Ø×#Ñ# M×$<Ñ$<×$BÑ$BÀIÕNØ"Ÿ™×1Ñ1°)¸T¿Y¹YÓGˆIØ×(Ñ(ØØ—‘×(Ñ(Ø—‘×(Ñ(ôô ),Ø—‘×2Ñ2°I·O±O×4VÑ4Vó)ò Ñ$�	˜9ð ×)Ñ)×1Ñ1×7Ñ7×DÓDØ!×0Ñ0Ø!×.Ñ.×6Ñ6Ø!×.Ñ.×6Ñ6×<Ñ<×EÑEØ!×.Ñ.×6Ñ6×<Ñ<×EÑEõñ	ð Or   c                 ó*   — | j                  ||||«      S r   ©rm   rÛ   s        r   rr   z"AlterModelTable.database_backwardsX  ó   € Ø×%Ñ% i°À
ÈHÓUÐUr   c                 óZ   — d| j                   ›d| j                  �| j                  ›�S d›�S )NzRename table for rÞ   z	(default)rì   r&   s    r   rw   zAlterModelTable.describe[  s6   � à�I‹IØŸ*™*Ð0ˆD�J‰JÐAð
ð 	
à6AÐAð
ð 	
r   c                 ó    — d| j                   z  S )Nzalter_%s_tablery   r&   s    r   rz   z'AlterModelTable.migration_name_fragmenta  s   € à $§/¡/Ñ1Ð1r   )r4   r5   r6   r©   r#   rU   r]   rm   rr   rw   r­   rz   r7   r8   s   @r   rè   rè   3  s:   ø„ Ù!ôò9òXòò(Vò
ð ñ2ó ô2r   rè   c                   óL   ‡ — e Zd Zˆ fd„Zd„ Zd„ Zd„ Zd„ Zd„ Ze	d„ «       Z
ˆ xZS )ÚAlterModelTableCommentc                 ó2   •— || _         t        ‰| �	  |«       y r   )Útable_commentr-   r#   )r"   r!   rø   r2   s      €r   r#   zAlterModelTableComment.__init__g  s   ø€ Ø*ˆÔÜ‰Ñ˜Õr   c                 óf   — | j                   | j                  dœ}| j                  j                  g |fS )N)r!   rø   )r!   rø   r2   r6   rS   s     r   rU   z"AlterModelTableComment.deconstructk  s2   € à—I‘IØ!×/Ñ/ñ
ˆð —‘×+Ñ+¨R°Ð8Ð8r   c                 óV   — |j                  || j                  d| j                  i«       y )NÚdb_table_comment)rî   r'   rø   r[   s      r   r]   z%AlterModelTableComment.state_forwardsr  s'   € Ø×!Ñ!Ø�t—‘Ð);¸T×=OÑ=OÐ(Põ	
r   c                 ó`  — |j                   j                  || j                  «      }| j                  |j                  j
                  |«      rb|j                   j                  || j                  «      }|j                  ||j                  j                  |j                  j                  «       y y r   )	r`   ra   r!   rb   rc   rd   Úalter_db_table_commentrH   rû   )r"   r*   rh   ri   rj   rÓ   rÔ   s          r   rm   z(AlterModelTableComment.database_forwardsw  sƒ   € Ø—M‘M×+Ñ+¨I°t·y±yÓAˆ	Ø×#Ñ# M×$<Ñ$<×$BÑ$BÀIÔNØ"Ÿ™×1Ñ1°)¸T¿Y¹YÓGˆIØ×0Ñ0ØØ—‘×0Ñ0Ø—‘×0Ñ0õð Or   c                 ó*   — | j                  ||||«      S r   rñ   rÛ   s        r   rr   z)AlterModelTableComment.database_backwards�  rò   r   c                 ó"   — d| j                   › d�S )NúAlter z table commentr    r&   s    r   rw   zAlterModelTableComment.describe„  s   € Ø˜Ÿ	™	�{ .Ð1Ð1r   c                 ó"   — d| j                   › d�S )NÚalter_Ú_table_commentry   r&   s    r   rz   z.AlterModelTableComment.migration_name_fragment‡  s   € à˜Ÿ™Ð(¨Ð7Ð7r   )r4   r5   r6   r#   rU   r]   rm   rr   rw   r­   rz   r7   r8   s   @r   rö   rö   f  s6   ø„ ôò9ò
ò
òVò2ð ñ8ó ô8r   rö   c                   óp   ‡ — e Zd ZdZˆ fd„Zed„ «       Zd„ Zd„ Zd„ Z	d„ Z
d„ Zd	„ Zed
„ «       Zˆ fd„Zˆ xZS )r”   Nc                 ó~   •— |rt        t        |«      «      }t        | | j                  |«       t        ‰| �  |«       y r   )r   r	   Úsetattrr•   r-   r#   )r"   r!   r–   r2   s      €r   r#   z%AlterTogetherOptionOperation.__init__�  s5   ø€ ÙÜÔ1°,Ó?Ó@ˆLÜ��d×&Ñ&¨Ô5Ü‰Ñ˜Õr   c                 ó.   — t        | | j                  «      S r   )Úgetattrr•   r&   s    r   r–   z)AlterTogetherOptionOperation.option_value•  s   € ä�t˜T×-Ñ-Ó.Ð.r   c                 ó|   — d| j                   | j                  | j                  i}| j                  j                  g |fS r°   )r!   r•   r–   r2   r6   rS   s     r   rU   z(AlterTogetherOptionOperation.deconstruct™  s<   € à�D—I‘IØ×Ñ˜d×/Ñ/ð
ˆð —‘×+Ñ+¨R°Ð8Ð8r   c                 ój   — |j                  || j                  | j                  | j                  i«       y r   )rî   r'   r•   r–   r[   s      r   r]   z+AlterTogetherOptionOperation.state_forwards   s.   € Ø×!Ñ!ØØ�O‰OØ×Ñ˜t×0Ñ0Ð1õ	
r   c                 ó  — |j                   j                  || j                  «      }| j                  |j                  j
                  |«      r¸|j                  || j                  f   }|j                  || j                  f   }t        |d| j                  z  «      } |||j                  j                  | j                  «      xs
 t        «       |j                  j                  | j                  «      xs
 t        «       «       y y )Nzalter_%s)r`   ra   r!   rb   rc   rd   r   r'   r  r•   r<   rf   r   )	r"   r*   rh   ri   rj   rÓ   Úfrom_model_staterl   Úalter_togethers	            r   rm   z.AlterTogetherOptionOperation.database_forwards§  sÓ   € Ø—M‘M×+Ñ+¨I°t·y±yÓAˆ	Ø×#Ñ# M×$<Ñ$<×$BÑ$BÀIÔNØ)×0Ñ0°¸D¿O¹OÐ1KÑLÐØ%Ÿ_™_¨Y¸¿¹Ð-GÑHˆNÜ$ ]°JÀ×AQÑAQÑ4QÓRˆNÙØØ ×(Ñ(×,Ñ,¨T×-=Ñ-=Ó>ÒGÄ#Ã%Ø×&Ñ&×*Ñ*¨4×+;Ñ+;Ó<ÒEÄÃõð	 Or   c                 ó*   — | j                  ||||«      S r   rñ   rÛ   s        r   rr   z/AlterTogetherOptionOperation.database_backwards³  rò   r   c                 ó†   ‡— | j                  ||«      xr- | j                   xs t        ˆfd„| j                  D «       «      S )Nc              3   ó&   •K  — | ]  }‰|v –— Œ
 y ­wr   r@   )rB   r;   r!   s     €r   rD   z@AlterTogetherOptionOperation.references_field.<locals>.<genexpr>¹  s   øè ø€ ÒD¨�D˜F”NÑDùs   ƒ)r+   r–   Úany©r"   rÊ   r!   r*   s     ` r   Úreferences_fieldz-AlterTogetherOptionOperation.references_field¶  sC   ø€ Ø×$Ñ$ Z°Ó;ò 
Ø×!Ñ!Ð!ò EÜÓD°$×2CÑ2CÔDÓDð	
r   c           	      óp   — d| j                   ›d| j                  ›dt        | j                  xs d«      ›d�S )Nr   z for z (rv   z constraint(s)))r•   r!   Úlenr–   r&   s    r   rw   z%AlterTogetherOptionOperation.describe¼  s/   � à×ÓØ�I‹IÜ�×!Ñ!Ò' RÕ(ð
ð 	
r   c                 ó:   — d| j                   ›d| j                  ›�S )Nr  rC   )r'   r•   r&   s    r   rz   z4AlterTogetherOptionOperation.migration_name_fragmentÃ  s   � à $§£°×1AÒ1AÐBÐBr   c                 óx   •— t         ‰| �  ||«      xs( t        |t        «      xr t	        |«      t	        | «      uS r   )r-   r/   rK   r”   Útyper0   s      €r   r/   z/AlterTogetherOptionOperation.can_reduce_throughÇ  s<   ø€ Ü‰wÑ)¨)°YÓ?ò 
Ü�yÔ">Ó?ò 2Ü�Y“¤t¨D£zÐ1ð	
r   )r4   r5   r6   r•   r#   r
   r–   rU   r]   rm   rr   r  rw   r­   rz   r/   r7   r8   s   @r   r”   r”   Œ  s`   ø„ Ø€Kôð ñ/ó ð/ò9ò
ò
òVò
ò
ð ñCó ðC÷
ð 
r   r”   c                   ó&   ‡ — e Zd ZdZdZˆ fd„Zˆ xZS )ÚAlterUniqueTogetherz|
    Change the value of unique_together to the target one.
    Input value of unique_together must be a set of tuples.
    r‚   c                 ó&   •— t         ‰| �  ||«       y r   ©r-   r#   )r"   r!   r‚   r2   s      €r   r#   zAlterUniqueTogether.__init__Ö  s   ø€ Ü‰Ñ˜˜Õ/r   ©r4   r5   r6   r©   r•   r#   r7   r8   s   @r   r  r  Î  s   ø„ ñð
 $€K÷0ð 0r   r  c                   ó&   ‡ — e Zd ZdZdZˆ fd„Zˆ xZS )ÚAlterIndexTogetherzz
    Change the value of index_together to the target one.
    Input value of index_together must be a set of tuples.
    r_   c                 ó&   •— t         ‰| �  ||«       y r   r  )r"   r!   r_   r2   s      €r   r#   zAlterIndexTogether.__init__â  s   ø€ Ü‰Ñ˜˜~Õ.r   r  r8   s   @r   r  r  Ú  s   ø„ ñð
 #€K÷/ð /r   r  c                   óZ   ‡ — e Zd ZdZdZˆ fd„Zd„ Zd„ Zd„ Zd„ Z	d„ Z
d	„ Zed
„ «       Zˆ xZS )r—   z9Represent a change with the order_with_respect_to option.r�   c                 ó2   •— || _         t        ‰| �	  |«       y r   )r�   r-   r#   )r"   r!   r�   r2   s      €r   r#   z AlterOrderWithRespectTo.__init__ë  s   ø€ Ø%:ˆÔ"Ü‰Ñ˜Õr   c                 óf   — | j                   | j                  dœ}| j                  j                  g |fS )N©r!   r�   )r!   r�   r2   r6   rS   s     r   rU   z#AlterOrderWithRespectTo.deconstructï  s2   € à—I‘IØ%)×%?Ñ%?ñ
ˆð —‘×+Ñ+¨R°Ð8Ð8r   c                 ój   — |j                  || j                  | j                  | j                  i«       y r   )rî   r'   r•   r�   r[   s      r   r]   z&AlterOrderWithRespectTo.state_forwardsö  s.   € Ø×!Ñ!ØØ�O‰OØ×Ñ˜t×9Ñ9Ð:õ	
r   c                 ó~  — |j                   j                  || j                  «      }| j                  |j                  j
                  |«      rñ|j                   j                  || j                  «      }|j                  j                  rB|j                  j                  s,|j                  ||j                  j                  d«      «       y |j                  j                  r\|j                  j                  sE|j                  j                  d«      }|j                  «       sd|_        |j                  ||«       y y y y )NÚ_orderr   )r`   ra   r!   rb   rc   rd   rH   r�   Úremove_fieldrË   Úhas_defaultÚdefaultÚ	add_field)r"   r*   rh   ri   rj   Úto_modelÚ
from_modelr   s           r   rm   z)AlterOrderWithRespectTo.database_forwardsý  sý   € Ø—=‘=×*Ñ*¨9°d·i±iÓ@ˆØ×#Ñ# M×$<Ñ$<×$BÑ$BÀHÔMØ#Ÿ™×2Ñ2°9¸d¿i¹iÓHˆJð × Ñ ×6Ò6Ø Ÿ™×<Ò<à×*Ñ*Ø 
× 0Ñ 0× :Ñ :¸8Ó Dõð —‘×4Ò4Ø"×(Ñ(×>Ò>à Ÿ™×0Ñ0°Ó:�Ø×(Ñ(Ô*Ø$%�E”MØ×'Ñ'ØØõð ?ð 5ð Nr   c                 ó,   — | j                  ||||«       y r   rñ   rÛ   s        r   rr   z*AlterOrderWithRespectTo.database_backwards  s   € Ø×Ñ˜y¨-¸ÀXÕNr   c                 óh   — | j                  ||«      xr | j                  d u xs || j                  k(  S r   )r+   r�   r  s       r   r  z(AlterOrderWithRespectTo.references_field  s:   € Ø×$Ñ$ Z°Ó;ò 
Ø×&Ñ&¨$Ð.ÒT°$¸$×:TÑ:TÑ2Tð	
r   c                 ó:   — d| j                   ›d| j                  ›�S )NzSet order_with_respect_to on rÞ   r$  r&   s    r   rw   z AlterOrderWithRespectTo.describe  s   � à�I‹IØ×&Ò&ð
ð 	
r   c                 ó    — d| j                   z  S )Nzalter_%s_order_with_respect_tory   r&   s    r   rz   z/AlterOrderWithRespectTo.migration_name_fragment%  s   € à/°$·/±/ÑAÐAr   )r4   r5   r6   r©   r•   r#   rU   r]   rm   rr   r  rw   r­   rz   r7   r8   s   @r   r—   r—   æ  sE   ø„ ÙCà)€Kôò9ò
òò4Oò
ò

ð ñBó ôBr   r—   c                   óX   ‡ — e Zd ZdZg d¢Zˆ fd„Zd„ Zd„ Zd„ Zd„ Z	d„ Z
ed	„ «       Zˆ xZS )
r�   z±
    Set new model options that don't directly affect the database schema
    (like verbose_name, permissions, ordering). Python code in migrations
    may still need them.
    )Úbase_manager_nameÚdefault_manager_nameÚdefault_related_nameÚget_latest_byÚmanagedÚorderingÚpermissionsÚdefault_permissionsÚselect_on_saveÚverbose_nameÚverbose_name_pluralc                 ó2   •— || _         t        ‰| �	  |«       y r   )r<   r-   r#   )r"   r!   r<   r2   s      €r   r#   zAlterModelOptions.__init__@  s   ø€ ØˆŒÜ‰Ñ˜Õr   c                 óf   — | j                   | j                  dœ}| j                  j                  g |fS )N)r!   r<   )r!   r<   r2   r6   rS   s     r   rU   zAlterModelOptions.deconstructD  s0   € à—I‘IØ—|‘|ñ
ˆð —‘×+Ñ+¨R°Ð8Ð8r   c                 óh   — |j                  || j                  | j                  | j                  «       y r   )rî   r'   r<   r‘   r[   s      r   r]   z AlterModelOptions.state_forwardsK  s*   € Ø×!Ñ!ØØ�O‰OØ�L‰LØ×"Ñ"õ		
r   c                  ó   — y r   r@   rÛ   s        r   rm   z#AlterModelOptions.database_forwardsS  ó   € Ør   c                  ó   — y r   r@   rÛ   s        r   rr   z$AlterModelOptions.database_backwardsV  rB  r   c                 ó    — d| j                   z  S )NzChange Meta options on %sr    r&   s    r   rw   zAlterModelOptions.describeY  s   € Ø*¨T¯Y©YÑ6Ð6r   c                 ó    — d| j                   z  S )Nzalter_%s_optionsry   r&   s    r   rz   z)AlterModelOptions.migration_name_fragment\  s   € à! D§O¡OÑ3Ð3r   )r4   r5   r6   r©   r‘   r#   rU   r]   rm   rr   rw   r­   rz   r7   r8   s   @r   r�   r�   *  sB   ø„ ñòÐôò9ò
òòò7ð ñ4ó ô4r   r�   c                   óV   ‡ — e Zd ZdZdgZˆ fd„Zd„ Zd„ Zd„ Zd„ Z	d„ Z
ed	„ «       Zˆ xZS )
r“   zAlter the model's managers.r=   c                 ó2   •— || _         t        ‰| �	  |«       y r   )r=   r-   r#   )r"   r!   r=   r2   s      €r   r#   zAlterModelManagers.__init__f  s   ø€ Ø ˆŒÜ‰Ñ˜Õr   c                 ó`   — | j                   j                  | j                  | j                  gi fS r   )r2   r6   r!   r=   r&   s    r   rU   zAlterModelManagers.deconstructj  s&   € Ø—‘×+Ñ+¨d¯i©i¸¿¹Ð-GÈÐLÐLr   c                 óR   — |j                  || j                  | j                  «       y r   )Úalter_model_managersr'   r=   r[   s      r   r]   z!AlterModelManagers.state_forwardsm  s   € Ø×"Ñ" 9¨d¯o©o¸t¿}¹}ÕMr   c                  ó   — y r   r@   rÛ   s        r   rm   z$AlterModelManagers.database_forwardsp  rB  r   c                  ó   — y r   r@   rÛ   s        r   rr   z%AlterModelManagers.database_backwardss  rB  r   c                 ó    — d| j                   z  S )NzChange managers on %sr    r&   s    r   rw   zAlterModelManagers.describev  s   € Ø&¨¯©Ñ2Ð2r   c                 ó    — d| j                   z  S )Nzalter_%s_managersry   r&   s    r   rz   z*AlterModelManagers.migration_name_fragmenty  s   € à" T§_¡_Ñ4Ð4r   )r4   r5   r6   r©   r¬   r#   rU   r]   rm   rr   rw   r­   rz   r7   r8   s   @r   r“   r“   a  sB   ø„ Ù%à!+ ÐôòMòNòòò3ð ñ5ó ô5r   r“   c                   ó    — e Zd ZdZed„ «       Zy)rœ   r‹   c                 ó6   — | j                   j                  «       S r   )rÊ   r%   r&   s    r   r˜   zIndexOperation.model_name_lower�  s   € à�‰×$Ñ$Ó&Ð&r   N)r4   r5   r6   r•   r
   r˜   r@   r   r   rœ   rœ   ~  s   „ Ø€Kàñ'ó ñ'r   rœ   c                   ón   ‡ — e Zd ZdZej
                  Zd„ Zd„ Zd„ Z	d„ Z
d„ Zd„ Zed„ «       Zˆ fd	„Zˆ xZS )
r�   zAdd an index on a model.c                 óT   — || _         |j                  st        d|z  «      ‚|| _        y )NzSIndexes passed to AddIndex operations require a name argument. %r doesn't have one.)rÊ   r!   r   rž   )r"   rÊ   rž   s      r   r#   zAddIndex.__init__‹  s3   € Ø$ˆŒØ�zŠzÜð1Ø38ñ9óð ð ˆ�
r   c                 óR   — |j                  || j                  | j                  «       y r   )Ú	add_indexr˜   rž   r[   s      r   r]   zAddIndex.state_forwards”  s   € Ø�‰˜	 4×#8Ñ#8¸$¿*¹*ÕEr   c                 óÖ   — |j                   j                  || j                  «      }| j                  |j                  j
                  |«      r|j                  || j                  «       y y r   )r`   ra   rÊ   rb   rc   rd   rT  rž   rq   s         r   rm   zAddIndex.database_forwards—  sR   € Ø—‘×'Ñ'¨	°4·?±?ÓCˆØ×#Ñ# M×$<Ñ$<×$BÑ$BÀEÔJØ×#Ñ# E¨4¯:©:Õ6ð Kr   c                 óÖ   — |j                   j                  || j                  «      }| j                  |j                  j
                  |«      r|j                  || j                  «       y y r   )r`   ra   rÊ   rb   rc   rd   Úremove_indexrž   rq   s         r   rr   zAddIndex.database_backwardsœ  sR   € Ø—‘×)Ñ)¨)°T·_±_ÓEˆØ×#Ñ# M×$<Ñ$<×$BÑ$BÀEÔJØ×&Ñ& u¨d¯j©jÕ9ð Kr   c                 óf   — | j                   | j                  dœ}| j                  j                  g |fS ©N)rÊ   rž   )rÊ   rž   r2   r6   rS   s     r   rU   zAddIndex.deconstruct¡  s6   € àŸ/™/Ø—Z‘Zñ
ˆð
 �N‰N×'Ñ'ØØð
ð 	
r   c                 ó–  — | j                   j                  rcd| j                   j                  ›ddj                  | j                   j                  D �cg c]  }t	        |«      ‘Œ c}«      ›d| j
                  ›�S d| j                   j                  ›ddj                  | j                   j                  «      ›d| j
                  ›�S c c}w )NzCreate index ú on ú, ú
 on model z on field(s) z
 of model )rž   Úexpressionsr!   ÚjoinrL   rÊ   r;   )r"   Ú
expressions     r   rw   zAddIndex.describe¬  s�   € Ø�:‰:×!Ó!à—
‘
—“Ø—	‘	¸T¿Z¹Z×=SÑ=SÖT¨zœ3˜z�?ÒTÕUØ—’ðð ð "ð �J‰J�O‹OØ�I‰I�d—j‘j×'Ñ'Õ(Ø�OŠOð
ð 	
ùò Us   ÁCc                 óh   — | j                   ›d| j                  j                  j                  «       ›�S ©NrC   )r˜   rž   r!   r%   r&   s    r   rz   z AddIndex.migration_name_fragment¹  s$   € à×/Ó/°·±·±×1FÑ1FÔ1HÐIÐIr   c                 ón  •— t        |t        «      r%| j                  j                  |j                  k(  rg S t        |t        «      r`| j                  j                  |j
                  k(  r=|j                  | j                  _        t        | j                  | j                  ¬«      gS t        ‰| �)  ||«      S rY  )rK   rŸ   rž   r!   ÚRenameIndexr‰   rŠ   r�   rÊ   r-   r.   r0   s      €r   r.   zAddIndex.reduce½  s~   ø€ Ü�i¤Ô-°$·*±*·/±/ÀYÇ^Á^Ò2SØˆIÜ�i¤Ô-°$·*±*·/±/ÀY×EWÑEWÒ2WØ'×0Ñ0ˆD�J‰JŒOÜ¨¯©¸t¿z¹zÔJÐKÐKÜ‰w‰~˜i¨Ó3Ð3r   )r4   r5   r6   r©   r   rª   r«   r#   r]   rm   rr   rU   rw   r­   rz   r.   r7   r8   s   @r   r�   r�   †  sP   ø„ Ù"à ×)Ñ)€HòòFò7ò
:ò
	
ò
ð ñJó ðJ÷4ð 4r   r�   c                   ó\   — e Zd ZdZej
                  Zd„ Zd„ Zd„ Z	d„ Z
d„ Zd„ Zed„ «       Zy	)
rŸ   zRemove an index from a model.c                 ó    — || _         || _        y r   ©rÊ   r!   ©r"   rÊ   r!   s      r   r#   zRemoveIndex.__init__Ë  ó   € Ø$ˆŒØˆ�	r   c                 óR   — |j                  || j                  | j                  «       y r   )rW  r˜   r!   r[   s      r   r]   zRemoveIndex.state_forwardsÏ  s   € Ø×Ñ˜9 d×&;Ñ&;¸T¿Y¹YÕGr   c                 ó.  — |j                   j                  || j                  «      }| j                  |j                  j
                  |«      rI|j                  || j                  f   }|j                  | j                  «      }|j                  ||«       y y r   )r`   ra   rÊ   rb   rc   rd   r   r˜   Úget_index_by_namer!   rW  )r"   r*   rh   ri   rj   rk   r  rž   s           r   rm   zRemoveIndex.database_forwardsÒ  s~   € Ø—‘×)Ñ)¨)°T·_±_ÓEˆØ×#Ñ# M×$<Ñ$<×$BÑ$BÀEÔJØ)×0Ñ0°¸D×<QÑ<QÐ1QÑRÐØ$×6Ñ6°t·y±yÓAˆEØ×&Ñ& u¨eÕ4ð Kr   c                 ó.  — |j                   j                  || j                  «      }| j                  |j                  j
                  |«      rI|j                  || j                  f   }|j                  | j                  «      }|j                  ||«       y y r   )r`   ra   rÊ   rb   rc   rd   r   r˜   rl  r!   rT  )r"   r*   rh   ri   rj   rk   rl   rž   s           r   rr   zRemoveIndex.database_backwardsÙ  s{   € Ø—‘×'Ñ'¨	°4·?±?ÓCˆØ×#Ñ# M×$<Ñ$<×$BÑ$BÀEÔJØ%Ÿ_™_¨Y¸×8MÑ8MÐ-MÑNˆNØ"×4Ñ4°T·Y±YÓ?ˆEØ×#Ñ# E¨5Õ1ð Kr   c                 óf   — | j                   | j                  dœ}| j                  j                  g |fS ©Nrg  )rÊ   r!   r2   r6   rS   s     r   rU   zRemoveIndex.deconstructà  s6   € àŸ/™/Ø—I‘Iñ
ˆð
 �N‰N×'Ñ'ØØð
ð 	
r   c                 ó:   — d| j                   ›d| j                  ›�S )NzRemove index z from ©r!   rÊ   r&   s    r   rw   zRemoveIndex.describeë  s   � Ø,0¯I«I°t·²ÐGÐGr   c                 óV   — d| j                   ›d| j                  j                  «       ›�S ©NÚremove_rC   ©r˜   r!   r%   r&   s    r   rz   z#RemoveIndex.migration_name_fragmentî  ó   � à!%×!6Ó!6¸¿	¹	¿¹Ô8IÐJÐJr   N)r4   r5   r6   r©   r   r¸   r«   r#   r]   rm   rr   rU   rw   r­   rz   r@   r   r   rŸ   rŸ   Æ  sF   „ Ù'à ×(Ñ(€HòòHò5ò2ò	
òHð ñKó ñKr   rŸ   c                   ó�   ‡ — e Zd ZdZej
                  Zdd„Zed„ «       Z	ed„ «       Z
d„ Zd„ Zd„ Zd„ Zd	„ Zed
„ «       Zˆ fd„Zˆ xZS )rd  zRename an index.c                 óx   — |s|st        d«      ‚|r|rt        d«      ‚|| _        || _        || _        || _        y )NzHRenameIndex requires one of old_name and old_fields arguments to be set.z;RenameIndex.old_name and old_fields are mutually exclusive.)r   rÊ   rŠ   r‰   Ú
old_fields)r"   rÊ   rŠ   r‰   ry  s        r   r#   zRenameIndex.__init__ø  sN   € Ù¡
Üðóð ñ ™
ÜØMóð ð %ˆŒØ ˆŒØ ˆŒØ$ˆ�r   c                 ó6   — | j                   j                  «       S r   r¼   r&   s    r   r�   zRenameIndex.old_name_lower  r½   r   c                 ó6   — | j                   j                  «       S r   r¿   r&   s    r   rÀ   zRenameIndex.new_name_lower  r½   r   c                 óÒ   — | j                   | j                  dœ}| j                  r| j                  |d<   | j                  r| j                  |d<   | j                  j
                  g |fS )N)rÊ   rŠ   r‰   ry  )rÊ   rŠ   r‰   ry  r2   r6   rS   s     r   rU   zRenameIndex.deconstruct  sZ   € àŸ/™/ØŸ™ñ
ˆð �=Š=Ø!%§¡ˆF�:ÑØ�?Š?Ø#'§?¡?ˆF�<Ñ Ø—‘×+Ñ+¨R°Ð8Ð8r   c                 óz  — | j                   r}|j                  || j                  t        j                  | j                   | j
                  ¬«      «       |j                  || j                  t        j                  | j                   «       y |j                  || j                  | j                  | j
                  «       y )N©r;   r!   )ry  rT  r˜   r   ÚIndexrŠ   Úremove_model_optionsr  r•   Úrename_indexr‰   r[   s      r   r]   zRenameIndex.state_forwards  sŠ   € Ø�?Š?Ø�O‰OØØ×%Ñ%Ü—‘ D§O¡O¸$¿-¹-ÔHôð
 ×&Ñ&ØØ×%Ñ%Ü"×.Ñ.Ø—‘õ	ð ×ÑØ˜4×0Ñ0°$·-±-ÀÇÁõr   c           
      óÈ  — |j                   j                  || j                  «      }| j                  |j                  j
                  |«      sy | j                  rë|j                   j                  || j                  «      }| j                  D �cg c]'  }|j                  j                  |«      j                  ‘Œ) }}|j                  ||dd¬«      }	t        |	«      dk7  rAt        dt        |	«      ›d|j                  j                  ›ddj                  |«      ›d	�«      ‚t        j                   | j                  |	d
   ¬«      }
n6|j                  || j"                  f   }|j%                  | j&                  «      }
|
j(                  | j*                  k(  ry |j                  || j"                  f   }|j%                  | j*                  «      }|j-                  ||
|«       y c c}w )NTF)Úcolumn_namesrž   Úuniquer   zFound wrong number (z) of indexes for ú(r\  z).r   r~  )r`   ra   rÊ   rb   rc   rd   ry  rH   rË   ÚcolumnÚ_constraint_namesr  r   rÇ   r_  r   r  r˜   rl  r‰   r!   rŠ   r�  )r"   r*   rh   ri   rj   rk   r-  r   ÚcolumnsÚmatching_index_nameÚ	old_indexr  rl   Ú	new_indexs                 r   rm   zRenameIndex.database_forwards,  s¦  € Ø—‘×'Ñ'¨	°4·?±?ÓCˆØ×'Ñ'¨×(@Ñ(@×(FÑ(FÈÔNØà�?Š?Ø#Ÿ™×2Ñ2°9¸d¿o¹oÓNˆJàFJÇoÁoöØ=B�
× Ñ ×*Ñ*¨5Ó1×8Ó8ðˆGð ð #0×"AÑ"AØØ$ØØð	 #Bó #Ðô Ð&Ó'¨1Ò,Ý ô Ð/Õ0Ø"×(Ñ(×1Ó1ØŸ	™	 'Õ*ð	óð ô Ÿ™Ø—‘Ø(¨Ñ+ô‰Ið
  *×0Ñ0°¸D×<QÑ<QÐ1QÑRÐØ(×:Ñ:¸4¿=¹=ÓIˆIà�>‰>˜TŸ]™]Ò*Øà!Ÿ™¨°D×4IÑ4IÐ)IÑJˆØ"×4Ñ4°T·]±]ÓCˆ	Ø×"Ñ" 5¨)°YÕ?ùò?s   Â,Gc                 ó^  — | j                   ry | j                  | j                  c| _        | _        | j                  | j                  c| _        | _        | j                  ||||«       | j                  | j                  c| _        | _        | j                  | j                  c| _        | _        y r   )ry  r�   rÀ   r‰   rŠ   rm   rÛ   s        r   rr   zRenameIndex.database_backwardsT  sš   € Ø�?Š?àð ×ÑØ×Ñð 	1ˆÔ˜TÔ0ð (,§}¡}°d·m±mÐ$ˆŒ�t”}à×Ñ˜y¨-¸ÀXÔNð ×ÑØ×Ñð 	1ˆÔ˜TÔ0ð (,§}¡}°d·m±mÐ$ˆŒ�t•}r   c                 ó¾   — | j                   r)d| j                   › d| j                  › d| j                  › �S d| j                  › d| j                  › d| j                  › �S )NzRename index r[  rÞ   zRename unnamed index for )r‰   rÊ   rŠ   ry  r&   s    r   rw   zRenameIndex.describeg  s_   € Ø�=Š=à §¡˜¨d°4·?±?Ð2CÀ4ÈÏÉÀÐWðð (¨¯©Ð'8¸¸T¿_¹_Ð<MÈTØ�}‰}ˆoðð	
r   c                 óÂ   — | j                   rd| j                  ›d| j                  ›�S d| j                  ›ddj	                  | j
                  «      ›d| j                  ›�S rà   )r‰   r�   rÀ   r˜   r_  ry  r&   s    r   rz   z#RenameIndex.migration_name_fragmentq  sS   € à�=‹=Ø%)×%8Ó%8¸$×:MÒ:MÐNÐNð ð ×!Ó!Ø�H‰H�T—_‘_Õ%Ø×Òð
ð 	
r   c                 ó0  •— t        |t        «      rv| j                  |j                  k(  r]|j                  rQ| j                  |j
                  k(  r8t        | j                  |j                  | j                  | j                  ¬«      gS t        ‰| �)  ||«      S )N)rŠ   r‰   ry  )rK   rd  r˜   r‰   rÀ   r�   rÊ   rŠ   ry  r-   r.   r0   s      €r   r.   zRenameIndex.reduce{  sƒ   ø€ ä�y¤+Ô.Ø×%Ñ%¨×)CÑ)CÒCØ×"Ò"Ø×#Ñ# y×'?Ñ'?Ò?ô Ø—O‘OØ&×/Ñ/Ø!Ÿ]™]Ø#Ÿ™ô	ðð ô ‰w‰~˜i¨Ó3Ð3r   )NN)r4   r5   r6   r©   r   rã   r«   r#   r
   r�   rÀ   rU   r]   rm   rr   rw   r­   rz   r.   r7   r8   s   @r   rd  rd  ó  sx   ø„ Ùà ×+Ñ+€Hó%ð ñ%ó ð%ð ñ%ó ð%ò	9òò$&@òPDò&
ð ñ
ó ð
÷4ð 4r   rd  c                   ón   ‡ — e Zd Zej                  ZdZd„ Zd„ Zd„ Z	d„ Z
d„ Zd„ Zed„ «       Zˆ fd	„Zˆ xZS )
r    rŒ   c                 ó    — || _         || _        y r   ©rÊ   r¡   )r"   rÊ   r¡   s      r   r#   zAddConstraint.__init__‘  s   € Ø$ˆŒØ$ˆ�r   c                 óR   — |j                  || j                  | j                  «       y r   )Úadd_constraintr˜   r¡   r[   s      r   r]   zAddConstraint.state_forwards•  s   € Ø×Ñ˜Y¨×(=Ñ(=¸t¿¹ÕOr   c                 óÖ   — |j                   j                  || j                  «      }| j                  |j                  j
                  |«      r|j                  || j                  «       y y r   )r`   ra   rÊ   rb   rc   rd   r”  r¡   rq   s         r   rm   zAddConstraint.database_forwards˜  sR   € Ø—‘×'Ñ'¨	°4·?±?ÓCˆØ×#Ñ# M×$<Ñ$<×$BÑ$BÀEÔJØ×(Ñ(¨°·±Õ@ð Kr   c                 óÖ   — |j                   j                  || j                  «      }| j                  |j                  j
                  |«      r|j                  || j                  «       y y r   )r`   ra   rÊ   rb   rc   rd   Úremove_constraintr¡   rq   s         r   rr   z AddConstraint.database_backwards�  sR   € Ø—‘×'Ñ'¨	°4·?±?ÓCˆØ×#Ñ# M×$<Ñ$<×$BÑ$BÀEÔJØ×+Ñ+¨E°4·?±?ÕCð Kr   c                 ób   — | j                   j                  g | j                  | j                  dœfS )Nr’  )r2   r4   rÊ   r¡   r&   s    r   rU   zAddConstraint.deconstruct¢  s/   € à�N‰N×#Ñ#Øà"Ÿo™oØ"Ÿo™oñð
ð 	
r   c                 óN   — d| j                   j                  ›d| j                  ›�S )NzCreate constraint r]  )r¡   r!   rÊ   r&   s    r   rw   zAddConstraint.describe¬  s    � à�O‰O× Ó Ø�OŠOð
ð 	
r   c                 óh   — | j                   ›d| j                  j                  j                  «       ›�S rb  )r˜   r¡   r!   r%   r&   s    r   rz   z%AddConstraint.migration_name_fragment²  s&   € à×/Ó/°·±×1EÑ1E×1KÑ1KÔ1MÐNÐNr   c                 óÀ   •— t        |t        «      r>| j                  |j                  k(  r%| j                  j                  |j                  k(  rg S t
        ‰| �  ||«      S r   )rK   r¢   r˜   r¡   r!   r-   r.   r0   s      €r   r.   zAddConstraint.reduce¶  sN   ø€ ä�yÔ"2Ô3Ø×%Ñ%¨×)CÑ)CÒCØ—‘×$Ñ$¨	¯©Ò6àˆIÜ‰w‰~˜i¨Ó3Ð3r   )r4   r5   r6   r   rª   r«   r•   r#   r]   rm   rr   rU   rw   r­   rz   r.   r7   r8   s   @r   r    r    �  sT   ø„ Ø ×)Ñ)€HØ€Kò%òPòAò
Dò

ò
ð ñOó ðO÷4ð 4r   r    c                   ó\   — e Zd Zej                  ZdZd„ Zd„ Zd„ Z	d„ Z
d„ Zd„ Zed„ «       Zy	)
r¢   rŒ   c                 ó    — || _         || _        y r   rg  rh  s      r   r#   zRemoveConstraint.__init__Ä  ri  r   c                 óR   — |j                  || j                  | j                  «       y r   )r—  r˜   r!   r[   s      r   r]   zRemoveConstraint.state_forwardsÈ  s   € Ø×Ñ 	¨4×+@Ñ+@À$Ç)Á)ÕLr   c                 ó.  — |j                   j                  || j                  «      }| j                  |j                  j
                  |«      rI|j                  || j                  f   }|j                  | j                  «      }|j                  ||«       y y r   )r`   ra   rÊ   rb   rc   rd   r   r˜   Úget_constraint_by_namer!   r—  )r"   r*   rh   ri   rj   rk   r  r¡   s           r   rm   z"RemoveConstraint.database_forwardsË  s~   € Ø—‘×'Ñ'¨	°4·?±?ÓCˆØ×#Ñ# M×$<Ñ$<×$BÑ$BÀEÔJØ)×0Ñ0°¸D×<QÑ<QÐ1QÑRÐØ)×@Ñ@ÀÇÁÓKˆJØ×+Ñ+¨E°:Õ>ð Kr   c                 ó.  — |j                   j                  || j                  «      }| j                  |j                  j
                  |«      rI|j                  || j                  f   }|j                  | j                  «      }|j                  ||«       y y r   )r`   ra   rÊ   rb   rc   rd   r   r˜   r   r!   r”  )r"   r*   rh   ri   rj   rk   rl   r¡   s           r   rr   z#RemoveConstraint.database_backwardsÒ  s{   € Ø—‘×'Ñ'¨	°4·?±?ÓCˆØ×#Ñ# M×$<Ñ$<×$BÑ$BÀEÔJØ%Ÿ_™_¨Y¸×8MÑ8MÐ-MÑNˆNØ'×>Ñ>¸t¿y¹yÓIˆJØ×(Ñ(¨°
Õ;ð Kr   c                 ób   — | j                   j                  g | j                  | j                  dœfS ro  )r2   r4   rÊ   r!   r&   s    r   rU   zRemoveConstraint.deconstructÙ  s/   € à�N‰N×#Ñ#Øà"Ÿo™oØŸ	™	ñð
ð 	
r   c                 ó:   — d| j                   ›d| j                  ›�S )NzRemove constraint z from model rq  r&   s    r   rw   zRemoveConstraint.describeã  s   � Ø7;·y³yÀ$Ç/Â/ÐRÐRr   c                 óV   — d| j                   ›d| j                  j                  «       ›�S rs  ru  r&   s    r   rz   z(RemoveConstraint.migration_name_fragmentæ  rv  r   N)r4   r5   r6   r   r¸   r«   r•   r#   r]   rm   rr   rU   rw   r­   rz   r@   r   r   r¢   r¢   À  sH   „ Ø ×(Ñ(€HØ€KòòMò?ò<ò
òSð ñKó ñKr   r¢   N)(Ú	django.dbr   Ú$django.db.migrations.operations.baser   r   Údjango.db.migrations.stater   Údjango.db.migrations.utilsr   r   Údjango.db.models.optionsr	   Údjango.utils.functionalr
   r;   r   r   r   r   r   r   r   r:   r�   rŽ   rå   rè   rö   r”   r  r  r—   r�   r“   rœ   r�   rŸ   rd  r    r¢   r@   r   r   ú<module>r«     s,  ðÝ ß MÝ 1ß IÝ 7Ý 3ç RÕ RòôD�Yô Dô(]4�.ô ]4ô@"-�.ô "-ôJvF�.ô vFôr	4˜>ô 	4ô02Ð*ô 02ôf#8Ð1ô #8ôL?
Ð#7ô ?
ôD	0Ð6ô 	0ô	/Ð5ô 	/ôABÐ2ô ABôH44Ð,ô 44ôn5Ð-ô 5ô:'�Yô 'ô=4ˆ~ô =4ô@*K�.ô *KôZW4�.ô W4ôt04�Nô 04ôf(K�~õ (Kr   