Ë
    ¦#ijx} ã                   óf  — d dl Z d dlZd dlZd dlmZ d dlmZ d dlmZ d dl	m
Z
 d dlZd dlmZ d dlmZ d dlmZ d d	lmZmZmZ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"m#Z#m$Z$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l0m1Z1m2Z2m3Z3m4Z4 d dl5m6Z6 d dl7m8Z8 d dl9m:Z: d dl;m<Z<m=Z= d dl>m?Z?m@Z@mAZAmBZBmCZC d dlDmEZEmFZF d dlGmHZH d dlImJZJ d dlKmLZLmMZM d dlNmOZP  G d„ d«      ZQ eQ«       ZRd„ ZSd„ ZT G d„ d eU«      ZV G d!„ d"«      ZW G d#„ d$«      ZX G d%„ d&eEeV¬'«      ZYd-d(„ZZd)„ Z[d*„ Z\d+„ Z]d,e]_^        y).é    N)Údefaultdict)Úpartialmethod)Úchain)Úsync_to_async)Úapps)Úsettings)Úchecks)ÚNON_FIELD_ERRORSÚFieldDoesNotExistÚ
FieldErrorÚMultipleObjectsReturnedÚObjectDoesNotExistÚObjectNotUpdatedÚValidationError)ÚDJANGO_VERSION_PICKLE_KEYÚDatabaseErrorÚ
connectionÚconnectionsÚrouterÚtransaction)ÚNOT_PROVIDEDÚExpressionWrapperÚIntegerFieldÚMaxÚValue©Ú
LOOKUP_SEP)ÚCASCADEÚ	Collector)ÚDatabaseDefault)ÚCompositePrimaryKey)ÚForeignObjectRelÚOneToOneFieldÚlazy_related_operationÚresolve_relation)ÚCoalesce)ÚManager)ÚOptions)ÚFÚQ)Úclass_preparedÚ	post_initÚ	post_saveÚpre_initÚpre_save)Ú
AltersDataÚmake_model_tuple)Ú	force_str)Úmake_hashable)ÚcapfirstÚget_text_list)Úgettext_lazyc                   ó   — e Zd Zd„ Zd„ Zy)ÚDeferredc                  ó   — y©Nz<Deferred field>© ©Úselfs    úO/var/www/html/office/venv/lib/python3.12/site-packages/django/db/models/base.pyÚ__repr__zDeferred.__repr__=   ó   € Ø!ó    c                  ó   — yr:   r;   r<   s    r>   Ú__str__zDeferred.__str__@   r@   rA   N)Ú__name__Ú
__module__Ú__qualname__r?   rC   r;   rA   r>   r8   r8   <   s   „ ò"ó"rA   r8   c                 ó@   — t        | |||j                  ›d| ›�dœ«      S )zï
    Create exception subclass. Used by ModelBase below.

    The exception is created in a way that allows it to be pickled, assuming
    that the returned exception class will be added as an attribute to the
    'attached_to' class.
    ú.)rE   rF   )ÚtyperF   )ÚnameÚbasesÚmoduleÚattached_tos       r>   Úsubclass_exceptionrN   G   s-   € ô ØØà Ø'2×'?Ó'?ÁÐFñ	
óð rA   c                 óJ   — t        j                  | «       xr t        | d«      S )NÚcontribute_to_class)ÚinspectÚisclassÚhasattr)Úvalues    r>   Ú_has_contribute_to_classrU   Y   s!   € ä�‰˜uÓ%Ð%ÒO¬'°%Ð9NÓ*OÐOrA   c                   óN   ‡ — e Zd ZdZˆ fd„Zd„ Zd„ Zed„ «       Zed„ «       Z	ˆ xZ
S )Ú	ModelBasezMetaclass for all models.c                 óÚ  •— t         ‰'| �  }|D �cg c]  }t        |t        «      sŒ|‘Œ }}|s || |||«      S |j	                  d«      }d|i}	|j	                  dd «      }
|
�|
|	d<   |j	                  dd «      }i }|j                  «       D ]  \  }}t        |«      r|||<   Œ||	|<   Œ  || |||	fi |¤Ž}t        |dd«      }|xs t        |dd «      }t        |dd «      }d }t        j                  |«      }t        |dd «      €"|€|st        d|›d	|›d
�«      ‚|j                  }|j                  dt        ||«      «       |�s	|j                  dt        dt        d„ |D «       «      xs t         f||¬«      «       |j                  dt        dt        d„ |D «       «      xs t"        f||¬«      «       |j                  dt        dt        d„ |D «       «      xs t$        t&        f||¬«      «       |rZ|j(                  sNt+        |d«      s|j,                  |j.                  _        t+        |d«      s|j0                  |j.                  _        |j.                  j2                  }|r)|r'|j4                  rt7        |›d|j4                  ›d�«      ‚|j                  «       D ]  \  }}|j                  ||«       Œ t9        |j.                  j:                  |j.                  j<                  |j.                  j>                  «      }|D �ch c]  }|j@                  ’Œ }}|rïd }|D �cg c]  }t+        |d«      sŒ|‘Œ c}D ]|  }|j.                  j(                  r%|j.                  jB                  rt7        d|z  «      ‚Œ>|€|}ŒC|j.                  jD                  |j.                  jD                  usŒpt7        d|z  «      ‚ |€t7        d|z  «      ‚|j.                  jG                  |«       |j.                  jD                  |j.                  _"        n||j.                  _"        i }tI        |g|¢«      D ]œ  }t+        |d«      sŒ||k7  r|j.                  j(                  sŒ,|j.                  j:                  D ]X  }t        |tJ        «      sŒ|jL                  jN                  sŒ+tQ        ||jL                  jR                  «      }||tU        |«      <   ŒZ Œž tW        «       }|jY                  «       D �]K  }||vst+        |d«      s|j[                  |j\                  «       Œ0|j.                  j:                  |j.                  j<                  z   } |j.                  j(                  �s| D ]T  }|j@                  |v r)t_        d|j@                  ›d|›d|j`                  ›d	�«      ‚|jc                  |j@                  «       ŒV |j.                  jD                  }tU        |«      }!|!|v r||!   }ns|sod|j.                  jd                  z  }"tK        |tf        |"dd¬«      }|"|v rt_        d|"›d |›d!|j`                  ›d"�«      ‚t+        ||"«      s|j                  |"|«       nd }||j.                  jh                  |<   nè|j.                  jh                  jk                  «       }#| D ]š  }|j@                  |vsŒ|j@                  |j\                  vsŒ+|j@                  |vsŒ:tk        jl                  |«      }$|j                  |j@                  |$«       |jn                  sŒx|#j                  «       D ]  \  }}%||%k(  sŒ|$|#|<   Œ Œœ |j.                  jh                  j[                  |#«       |j.                  j>                  D ]Æ  }|j@                  |v r@|j.                  j(                  rŒ(t_        d|j@                  ›d|›d|j`                  ›d	�«      ‚|j@                  |j\                  vsŒj|j@                  |vsŒytk        jl                  |«      }|j.                  j(                  sd|_8        |j                  |j@                  |«       ŒÈ �ŒN |j.                  jr                  D �&cg c]  }&tk        jl                  |&«      ‘Œ c}&|j.                  _9        |rd|_        ||_:        |S |jw                  «        |j.                  j                  jy                  |j.                  jz                  |«       |S c c}w c c}w c c}w c c}&w )#NrE   Ú__classcell__ÚMetaÚabstractFÚ_metaÚ	app_labelzModel class rH   zU doesn't declare an explicit app_label and isn't in an application in INSTALLED_APPS.ÚDoesNotExistc              3   óx   K  — | ]2  }t        |d «      r$|j                  j                  s|j                  –— Œ4 y­w©r\   N)rS   r\   r[   r^   ©Ú.0Úxs     r>   ú	<genexpr>z$ModelBase.__new__.<locals>.<genexpr>—   s2   è ø€ ò àÜ" 1 gÔ.°q·w±w×7GÒ7Gð Ÿ�ñùó   ‚8:)rM   r   c              3   óx   K  — | ]2  }t        |d «      r$|j                  j                  s|j                  –— Œ4 y­wr`   )rS   r\   r[   r   ra   s     r>   rd   z$ModelBase.__new__.<locals>.<genexpr>¥   s4   è ø€ ò àÜ" 1 gÔ.°q·w±w×7GÒ7Gð ×1Õ1ñùre   Ú
NotUpdatedc              3   óx   K  — | ]2  }t        |d «      r$|j                  j                  s|j                  –— Œ4 y­wr`   )rS   r\   r[   rg   ra   s     r>   rd   z$ModelBase.__new__.<locals>.<genexpr>³   s2   è ø€ ò àÜ" 1 gÔ.°q·w±w×7GÒ7Gð Ÿ�ñùre   ÚorderingÚget_latest_byz! cannot proxy the swapped model 'ú'.zOAbstract base class containing model fields not permitted for proxy model '%s'.zAProxy model '%s' has more than one non-abstract model base class.z6Proxy model '%s' has no non-abstract model base class.zLocal field z
 in class z5 clashes with field of the same name from base class z%s_ptrT)Ú	on_deleterJ   Úauto_createdÚparent_linkzAuto-generated field 'z' in class z for parent_link to base class z. clashes with declared field of the same name.)>ÚsuperÚ__new__Ú
isinstancerW   ÚpopÚitemsrU   Úgetattrr   Úget_containing_app_configÚRuntimeErrorÚlabelÚadd_to_classr(   rN   Útupler   r   r   r   r[   rS   ri   r\   rj   ÚproxyÚswappedÚ	TypeErrorr   Úlocal_fieldsÚlocal_many_to_manyÚprivate_fieldsrJ   ÚfieldsÚconcrete_modelÚsetup_proxyÚreversedr#   Úremote_fieldrn   r%   Úmodelr1   ÚsetÚmroÚupdateÚ__dict__r   rD   ÚaddÚ
model_namer   ÚparentsÚcopyÚdeepcopyÚ
one_to_oneÚmti_inheritedÚindexesrZ   Ú_prepareÚregister_modelr]   )(ÚclsrJ   rK   ÚattrsÚkwargsÚ	super_newÚbrŒ   rL   Ú	new_attrsÚ	classcellÚ	attr_metaÚcontributable_attrsÚobj_nameÚobjÚ	new_classr[   ÚmetaÚ	base_metar]   Ú
app_configÚis_proxyÚ
new_fieldsÚfÚfield_namesÚbaseÚklsÚparentÚparent_linksÚfieldÚrelatedÚinherited_attributesÚparent_fieldsÚbase_keyÚ	attr_nameÚbase_parentsÚ	new_fieldrn   ÚidxÚ	__class__s(                                          €r>   rp   zModelBase.__new__a   sˆ  ø€ Ü‘G‘Oˆ	ð $Ö@˜¤z°!´YÕ'?’1Ð@ˆÐ@ÙÙ˜S $¨¨uÓ5Ð5ð —‘˜<Ó(ˆØ! 6Ð*ˆ	Ø—I‘I˜o¨tÓ4ˆ	ØÐ Ø)2ˆI�oÑ&Ø—I‘I˜f dÓ+ˆ	ð !ÐØ"Ÿ[™[›]ò 	*‰MˆH�cÜ'¨Ô,Ø03Ð# HÒ-à&)�	˜(Ò#ð		*ñ
 ˜c 4¨°	ÑD¸VÑDˆ	ä˜9 j°%Ó8ˆØÒ<œG I¨v°tÓ<ˆÜ˜I w°Ó5ˆ	àˆ	ô ×3Ñ3°FÓ;ˆ
ä�4˜ dÓ+Ð3ØÐ!ÙÝ&ò .4²Tð;óð ð '×,Ñ,�	à×Ñ˜w¬°°iÓ(@ÔAÚØ×"Ñ"ØÜ"Ø"Üñ à!(ôó ò -ô
 +Ð,ØØ )ô
ôð ×"Ñ"Ø)Ü"Ø-Üñ à!(ôó ò 2ô
 0Ð1ØØ )ô
ôð ×"Ñ"ØÜ"Ø Üñ à!(ôó ò 9ô )¬-Ð8ØØ )ôôñ"  ×!3Ò!3ô ˜t ZÔ0Ø/8×/AÑ/A�I—O‘OÔ,Ü˜t _Ô5Ø4=×4KÑ4K�I—O‘OÔ1à—?‘?×(Ñ(ˆñ ™	 i×&7Ò&7ÜÚ=AÀ9×CTÓCTÐUóð ð 1×6Ñ6Ó8ò 	2‰MˆH�cØ×"Ñ" 8¨SÕ1ð	2ô Ø�O‰O×(Ñ(Ø�O‰O×.Ñ.Ø�O‰O×*Ñ*ó
ˆ
ð
 (2Ö2 !�q—v“vÐ2ˆÐ2ñ ØˆDØ*1ÖK 3´W¸SÀ'Õ5Jš3ÒKò �Ø—<‘<×(Ò(Ø—|‘|×*Ò*Ü'ð>Ø@DñEóð ð
 !Ø�<Ø!‘DØ—\‘\×0Ñ0¸¿
¹
×8QÑ8QÒQÜ#ð!Ø#'ñ(óð ðð  ˆ|ÜØLÈtÑSóð ð �O‰O×'Ñ'¨Ô-Ø-1¯Z©Z×-FÑ-FˆI�O‰OÕ*à-6ˆI�O‰OÔ*ð ˆÜ˜iÐ2¨'Ð2Ó3ò 	DˆDä˜4 Ô)Øà�yÒ ¨¯©×)<Ò)<ØàŸ™×0Ñ0ò D�Ü˜e¤]Õ3¸×8JÑ8J×8VÓ8VÜ.¨y¸%×:LÑ:L×:RÑ:RÓS�GØ>C�LÔ!1°'Ó!:Ò;ñDð	Dô  #›uÐà—M‘M“Oó f	>ˆDØ˜7Ñ"¬'°$¸Ô*@ð %×+Ñ+¨D¯M©MÔ:Øà ŸJ™J×3Ñ3°d·j±j×6SÑ6SÑSˆMØ—:‘:×&Ó&ð +ò =�EØ—z‘z [Ñ0Ý(ð !&§
£
Ú $Ø $§£ðóð ð -×0Ñ0°·±Õ<ð=ð —z‘z×0Ñ0�Ü+¨DÓ1�Ø˜|Ñ+Ø(¨Ñ2‘EÙ!Ø (¨4¯:©:×+@Ñ+@Ñ @�IÜ)ØÜ")Ø&Ø%)Ø$(ô�Eð ! KÑ/Ý(ò
 !*Ú $Ø $§£ðó	ð 	ô # 9¨iÔ8Ø!×.Ñ.¨y¸%Õ@à �EØ05�	—‘×'Ñ'¨Ò-à#Ÿz™z×1Ñ1×6Ñ6Ó8�ð +ò E�EàŸ
™
¨+Ò5Ø!ŸJ™J¨i×.@Ñ.@Ò@Ø!ŸJ™JÐ.BÒBä$(§M¡M°%Ó$8˜	Ø!×.Ñ.¨u¯z©z¸9ÔEð !×+Ó+Ø7C×7IÑ7IÓ7Kò EÑ 3 ¨Ø#(¨KÓ#7Ø;D L°Ò$8ñEðEð  —‘×'Ñ'×.Ñ.¨|Ô<ð Ÿ™×2Ñ2ò >�Ø—:‘: Ñ,ØŸ:™:×.Ó.Ý(ð !&§
£
Ú $Ø $§£ðóð ð —J‘J i×&8Ñ&8Ò8ØŸ
™
Ð*>Ò>ä ŸM™M¨%Ó0�EØŸ:™:×.Ò.Ø.2˜Ô+Ø×*Ñ*¨5¯:©:°uÕ=ò'>ðgf	>ðV +4¯/©/×*AÑ*Aö#
Ø#&ŒD�M‰M˜#Õò#
ˆ	�‰Ôñ ð "'ˆIÔØ&ˆIŒNØÐà×ÑÔØ�‰×Ñ×+Ñ+¨I¯O©O×,EÑ,EÀyÔQØÐùò Aùòn 3ùò
 Lùòj#
s"   �c¦cÌcÌ#c#Ì5c#ác(c                 óZ   — t        |«      r|j                  | |«       y t        | ||«       y ©N)rU   rP   Úsetattr)r”   rJ   rT   s      r>   rx   zModelBase.add_to_class‡  s&   € Ü# EÔ*Ø×%Ñ% c¨4Õ0ä�C˜˜uÕ%rA   c                 ó²  — | j                   }|j                  | «       |j                  r�t        | j                  d¬«      | _        t        | j                  d¬«      | _        |j                  j                  r3|j                  }|j                  j                  }t        t        | |«       | j                  €7| j                  ›ddj                  d„ |j                  D «       «      ›d�| _        t        j                   j#                  |j$                  «      }|rt'        | d	|«       |j(                  sWt+        d
„ |j                  D «       «      rt-        d| j                  z  «      ‚t/        «       }d|_        | j3                  d|«       | j                   j4                  D ]   }|j6                  rŒ|j9                  | «       Œ" t;        j<                  | ¬«       y)z7Create some methods once self._meta has been populated.T)Úis_nextFNú(ú, c              3   ó4   K  — | ]  }|j                   –— Œ y ­wr¶   ©rJ   ©rb   r¥   s     r>   rd   z%ModelBase._prepare.<locals>.<genexpr>¨  s   è ø€ Ò6 Q˜!Ÿ&�&Ñ6ùó   ‚ú)Úget_absolute_urlc              3   ó:   K  — | ]  }|j                   d k(  –— Œ y­w)ÚobjectsNr½   r¾   s     r>   rd   z%ModelBase._prepare.<locals>.<genexpr>²  s   è ø€ Ò<¨1�1—6‘6˜YÕ&Ñ<ùs   ‚zOModel %s must specify a custom Manager, because it has a field named 'objects'.rÃ   )Úsender)r\   r’   Úorder_with_respect_tor   Ú_get_next_or_previous_in_orderÚget_next_in_orderÚget_previous_in_orderr„   r…   r$   Úmake_foreign_order_accessorsÚ__doc__rD   Újoinr€   r   ÚABSOLUTE_URL_OVERRIDESÚgetÚlabel_lowerr·   ÚmanagersÚanyÚ
ValueErrorr'   rm   rx   r‘   rJ   Úset_name_with_modelr+   Úsend)r”   ÚoptsÚwrtÚremoteÚget_absolute_url_overrideÚmanagerÚindexs          r>   r’   zModelBase._prepare�  s‹  € à�y‰yˆØ�‰�cÔà×%Ò%Ü$1Ø×2Ñ2¸Dô%ˆCÔ!ô )6Ø×2Ñ2¸Eô)ˆCÔ%ð ×)Ñ)×6Ò6Ø×0Ñ0�Ø×)Ñ)×/Ñ/�Ü&Ô'CÀSÈ&ÔQð �;‰;Ðà—“Ø—	‘	Ñ6¨$¯+©+Ô6Õ6ðˆCŒKô
 %-×$CÑ$C×$GÑ$GØ×Ñó%
Ð!ñ %Ü�CÐ+Ð-FÔGà�}Š}ÜÑ<°·±Ô<Ô<Ü ð-Ø/2¯|©|ñ<óð ô “iˆGØ#'ˆGÔ Ø×Ñ˜Y¨Ô0ð
 —Y‘Y×&Ñ&ò 	/ˆEØ—:“:Ø×)Ñ)¨#Õ.ð	/ô 	×Ñ 3Ö'rA   c                 ó.   — | j                   j                  S r¶   )r\   Úbase_manager©r”   s    r>   Ú_base_managerzModelBase._base_managerÄ  s   € à�y‰y×%Ñ%Ð%rA   c                 ó.   — | j                   j                  S r¶   )r\   Údefault_managerrÜ   s    r>   Ú_default_managerzModelBase._default_managerÈ  s   € à�y‰y×(Ñ(Ð(rA   )rD   rE   rF   rÊ   rp   rx   r’   ÚpropertyrÝ   rà   rY   ©r´   s   @r>   rW   rW   ^   s@   ø„ Ù#ôdòL	&ò5(ðn ñ&ó ð&ð ñ)ó ô)rA   rW   c                   ó   — e Zd Zdd„Zy)ÚModelStateFieldsCacheDescriptorNc                 ó    — |€| S i x}|_         |S r¶   )Úfields_cache)r=   Úinstancer”   Úress       r>   Ú__get__z'ModelStateFieldsCacheDescriptor.__get__Î  s   € ØÐØˆKØ&(Ð(ˆˆhÔ#Øˆ
rA   r¶   )rD   rE   rF   ré   r;   rA   r>   rä   rä   Í  s   „ ôrA   rä   c                   ó&   — e Zd ZdZdZdZ e«       Zy)Ú
ModelStatezStore model instance state.NT)rD   rE   rF   rÊ   ÚdbÚaddingrä   ræ   r;   rA   r>   rë   rë   Õ  s   „ Ù%à	€Bð
 €FÙ2Ó4�LrA   rë   c                   ó,  ‡ — e Zd Zˆ fd„Zed„ «       Zd„ Zd„ Zd„ Zd„ Z	d„ Z
d„ Zd	„ ZdFd„Zd„ Z eee«      ZdFd„Zd„ ZdGd„ZdGd„Zd„ Zddd
d
dœd„Zde_        ddd
d
dœd„Zde_        ed„ «       Z	 	 	 	 	 dHd„Zde_        	 dFd„Z	 	 	 	 	 	 dId„Zd„ Zd„ Zd„ ZdFd„Z dJd„Z!de!_        dJd „Z"de"_        d!„ Z#d"„ Z$d#„ Z%dFd$„Z&d%„ Z'd&„ Z(dFd'„Z)dJd(„Z*d)„ Z+d*„ Z,d+„ Z-d,„ Z.d-„ Z/dFd.„Z0dKd/„Z1dFd0„Z2ed1„ «       Z3ed2„ «       Z4ed3„ «       Z5ed4„ «       Z6ed5„ «       Z7ed6„ «       Z8ed7„ «       Z9ed8„ «       Z:ed9„ «       Z;ed:„ «       Z<ed;„ «       Z=ed<„ «       Z>ed=„ «       Z?ed>„ «       Z@ed?„ «       ZAed@„ «       ZBedA„ «       ZCedB„ «       ZDedC„ «       ZEedD„ «       ZFedE„ «       ZGˆ xZHS )LÚModelc                 ó´  •— | j                   }| j                  }t        }t        }|j                  rt        d«      ‚t        j                  |||¬«       t        «       | _	        t        |«      t        |j                  «      kD  rt        d«      ‚|sCt        |j                  «      }t        ||«      D ]  \  }}	||u rŒ || |	j                  |«       Œ  n�t        |j                   «      }t        ||«      D ]i  \  }}	||u rŒ || |	j                  |«       |j#                  |	j$                  t&        «      t&        usŒFt        |j(                  › d|	j$                  › d�«      ‚ |D ]º  }	d}
|	j*                  �|	j,                  rŒ|rVt/        |	j0                  t2        «      r	 |j#                  |	j$                  «      }d}
n-	 |j#                  |	j                  «      }n|	j7                  «       }|
r|usŒ� || |	j$                  |«       Œ¢|usŒ§ || |	j                  |«       Œ¼ |r�|j8                  }d}|j;                  «       D ]:  \  }}||v r||usŒ || ||«       Œ	 |j=                  |«       ||usŒ1 || ||«       Œ< |r2d	jA                  d
„ |D «       «      }t        |jB                  › d|› �«      ‚tD        ‰| ��  «        tI        j                  || ¬«       y # t4        $ r@ 	 |j#                  |	j                  «      }n# t4        $ r |	j7                  «       }Y nw xY wY �Œ6w xY w# t4        $ r |	j7                  «       }Y �ŒVw xY w# t>        $ r
 ||fz  }Y �Œw xY w)Nz'Abstract models cannot be instantiated.)rÄ   Úargsr–   z'Number of args exceeds number of fieldsz8() got both positional and keyword arguments for field 'rk   FTr;   r»   c              3   ó2   K  — | ]  }t        |«      –— Œ y ­wr¶   ©Úrepr)rb   Úns     r>   rd   z!Model.__init__.<locals>.<genexpr>M  s   è ø€ Ò,I¸¬T°!¯WÑ,Iùó   ‚z%() got unexpected keyword arguments: )rÄ   rç   )%r´   r\   r·   ÚDEFERREDr[   r|   r.   rÓ   rë   Ú_stateÚlenÚconcrete_fieldsÚ
IndexErrorÚiterÚzipÚattnamer€   rr   rJ   r   rF   ÚcolumnÚ	generatedrq   r„   r"   ÚKeyErrorÚget_defaultÚ_property_namesrs   Ú	get_fieldr   rË   rD   ro   Ú__init__r,   )r=   rñ   r–   r”   rÔ   Ú_setattrÚ	_DEFERREDÚfields_iterÚvalr«   Úis_related_objectÚrel_objÚproperty_namesÚ
unexpectedÚproprT   Úunexpected_namesr´   s                    €r>   r  zModel.__init__â  sQ  ø€ à�n‰nˆØ�z‰zˆÜˆÜˆ	Ø�=Š=ÜÐEÓFÐFä�‰˜S t°FÕ;ô !“lˆŒô ˆt‹9”s˜4×/Ñ/Ó0Ò0äÐFÓGÐGáÜ˜t×3Ñ3Ó4ˆKô
 " $¨Ó4ò 3‘
��UØ˜)Ñ#ØÙ˜˜uŸ}™}¨cÕ2ñ3ô ˜tŸ{™{Ó+ˆKÜ! $¨Ó4ò ‘
��UØ˜)Ñ#ØÙ˜˜uŸ}™}¨cÔ2Ø—:‘:˜eŸj™j¬,Ó7¼|ÒKÜ#Ø×+Ñ+Ð,ð -8Ø8=¿
¹
°|À2ðGóð ðð !ò '	7ˆEØ %Ðà�|‰|Ð# u§¢ØÙÜ˜e×0Ñ0Ô2BÔCð
6à"(§*¡*¨U¯Z©ZÓ"8˜Ø,0Ñ)ð2Ø$Ÿj™j¨¯©Ó7™ð ×'Ñ'Ó)�á ð
  )Ò+Ù˜T 5§:¡:¨wÕ7à˜iÒ'Ù˜T 5§=¡=°#Õ6ðO'	7ñR Ø!×1Ñ1ˆNØˆJØ%Ÿ|™|›~ò 8‘��eð ˜>Ñ)Ø IÒ-Ù   t¨UÕ3ð8ØŸ™ tÔ,ð !¨	Ò1Ù$ T¨4°Õ7ð8ñ Ø#'§9¡9Ñ,I¸jÔ,IÓ#IÐ ÜØ—|‘|�nÐ$IØ'Ð(ð*óð ô 	‰ÑÔÜ�‰˜c¨DÖ1øôm $ò 6ð6ð #)§*¡*¨U¯]©]Ó";™CøÜ'ò 6Ø"'×"3Ñ"3Ó"5šCð6ýð6ûô $ò 2ð
 $×/Ñ/Ó1›ð2ûô@ -ò .Ø" t gÑ-›
ð.úsZ   ÆKÆ>L$ÉMË	L!Ë"K>Ë=L!Ë>LÌL!ÌLÌL!Ì L!Ì$MÍ MÍMÍMc                 óJ  — t        |«      t        | j                  j                  «      k7  rKt        |«      }| j                  j                  D �cg c]!  }|j                  |v rt        |«      nt        ‘Œ# }} | |Ž }d|j                  _        ||j                  _	        |S c c}w ©NF)
rù   r\   rú   rü   rþ   Únextr÷   rø   rí   rì   )r”   rì   r¦   ÚvaluesÚvalues_iterr¥   Únews          r>   Úfrom_dbzModel.from_dbU  s�   € äˆv‹;œ#˜cŸi™i×7Ñ7Ó8Ò8Ü˜v›,ˆKð Ÿ™×2Ñ2öàð &'§Y¡Y°+Ñ%=”�[Ô!Ä8ÑKðˆFð ñ �6ˆlˆØ!ˆ�
‰
ÔØˆ�
‰
ŒØˆ
ùòs   Á&B c                 ó<   — d| j                   j                  ›d| ›d�S )Nú<z: ú>)r´   rD   r<   s    r>   r?   zModel.__repr__b  s   � Ø!Ÿ^™^×4Ó4²dÐ;Ð;rA   c                 óN   — | j                   j                  ›d| j                  ›d�S )Nz	 object (rÀ   )r´   rD   Úpkr<   s    r>   rC   zModel.__str__e  s   € Ø#'§>¡>×#:Ó#:¸D¿G»GÐDÐDrA   c                 óÌ   — t        |t        «      st        S | j                  j                  |j                  j                  k7  ry| j
                  }|€| |u S ||j
                  k(  S r  )rq   rï   ÚNotImplementedr\   r�   r  )r=   ÚotherÚmy_pks      r>   Ú__eq__zModel.__eq__h  sX   € Ü˜%¤Ô'Ü!Ð!Ø�:‰:×$Ñ$¨¯©×(BÑ(BÒBØØ—‘ˆØˆ=Ø˜5�=Ð Ø˜Ÿ™Ñ Ð rA   c                 ób   — | j                  «       st        d«      ‚t        | j                  «      S )Nz8Model instances without primary key value are unhashable)Ú
_is_pk_setr|   Úhashr  r<   s    r>   Ú__hash__zModel.__hash__r  s&   € Ø�‰Ô ÜÐVÓWÐWÜ�D—G‘G‹}ÐrA   c                 ó¼   — | j                  «       }t        j                  |t        <   | j                  j
                  | j                  j                  f}t        |f|fS r¶   )Ú__getstate__ÚdjangoÚ__version__r   r\   r]   Úobject_nameÚmodel_unpickle)r=   ÚdataÚclass_ids      r>   Ú
__reduce__zModel.__reduce__w  sN   € Ø× Ñ Ó"ˆÜ*0×*<Ñ*<ˆÔ&Ñ'Ø—:‘:×'Ñ'¨¯©×)?Ñ)?Ð?ˆÜ ˜{¨DÐ0Ð0rA   c                 óŒ  — | j                   j                  «       }t        j                  |d   «      |d<   |d   j                  j                  «       |d   _        g }|j                  «       D ]2  \  }}t	        |t
        «      sŒ|j                  |t        |«      f«       Œ4 |r ||d<   |D ]  \  }}|j                  |«       Œ |S )z0Hook to allow choosing the attributes to pickle.rø   Ú_memoryview_attrs)	r‰   r�   ræ   rs   rq   Ú
memoryviewÚappendÚbytesrr   )r=   Ústater/  ÚattrrT   s        r>   r&  zModel.__getstate__}  s¾   € à—‘×"Ñ"Ó$ˆÜŸ)™) E¨(¡OÓ4ˆˆh‰Ø',¨X¡×'CÑ'C×'HÑ'HÓ'Jˆˆh‰Ô$ð ÐØ Ÿ;™;›=ò 	?‰KˆD�%Ü˜%¤Õ,Ø!×(Ñ(¨$´°e³Ð)=Õ>ð	?ñ Ø):ˆEÐ%Ñ&Ø0ò  ‘��eØ—	‘	˜$•ð àˆrA   c                 ó€  — |j                  t        «      }|rE|t        j                  k7  rNt	        j
                  d|›dt        j                  ›d�t        d¬«       nt	        j
                  dt        d¬«       d|v r'|j                  d«      D ]  \  }}t        |«      ||<   Œ | j                  j                  |«       y )Nz(Pickled model instance's Django version z$ does not match the current version rH   é   )Ú
stacklevelz9Pickled model instance's Django version is not specified.r/  )rÍ   r   r'  r(  ÚwarningsÚwarnÚRuntimeWarningrr   r0  r‰   rˆ   )r=   r3  Úpickled_versionr4  rT   s        r>   Ú__setstate__zModel.__setstate__Ž  s¦   € ØŸ)™)Ô$=Ó>ˆÙØ¤&×"4Ñ"4Ò4Ü—’ò '¬×(:Ó(:ð<ô #Ø öô �M‰MØKÜØõð
  %Ñ'Ø$Ÿy™yÐ)<Ó=ò 0‘��eÜ(¨Ó/��d’ð0à�‰×Ñ˜UÕ#rA   Nc                 ób   — |xs | j                   }t        | |j                  j                  «      S r¶   )r\   rt   r  rþ   )r=   r    s     r>   Ú_get_pk_valzModel._get_pk_val¤  s%   € ØÒ!�t—z‘zˆÜ�t˜TŸW™WŸ_™_Ó-Ð-rA   c                 ó&  — | j                   j                  j                  «       D ]@  }|sŒ|| j                   j                  k7  sŒ t	        | |j
                  j                  |«       ŒB t	        | | j                   j                  j                  |«      S r¶   )r\   rŒ   r  r  r·   Útarget_fieldrþ   )r=   rT   rn   s      r>   Ú_set_pk_valzModel._set_pk_val¨  so   € ØŸ:™:×-Ñ-×4Ñ4Ó6ò 	GˆKÚ˜{¨d¯j©j¯m©mÓ;Ü˜˜k×6Ñ6×>Ñ>ÀÕFð	Gô �t˜TŸZ™ZŸ]™]×2Ñ2°EÓ:Ð:rA   c                 óz   — | j                  |«      }|d u xs$ t        |t        «      xr t        d„ |D «       «       S )Nc              3   ó$   K  — | ]  }|d u –— Œ
 y ­wr¶   r;   r¾   s     r>   rd   z#Model._is_pk_set.<locals>.<genexpr>´  s   è ø€ Ò1LÀ°!°t´)Ñ1Lùs   ‚)r>  rq   ry   rÐ   )r=   r    Úpk_vals      r>   r"  zModel._is_pk_set°  sC   € Ø×!Ñ! $Ó'ˆà�dˆNò NÜ˜6¤5Ó)ÒL¬cÑ1LÀVÔ1LÓ.Lð
ð 	
rA   c                 ó˜   — | j                   j                  D �ch c]&  }|j                  | j                  vr|j                  ’Œ( c}S c c}w )zU
        Return a set containing names of deferred fields for this instance.
        )r\   rú   rþ   r‰   )r=   r¥   s     r>   Úget_deferred_fieldszModel.get_deferred_fields·  sB   € ð —Z‘Z×/Ñ/ö
àØ�y‰y §¡Ñ-ð �I‹Iò
ð 	
ùò 
s   ™+Ac           	      óø  — |€i | _         nmt        | dd«      }t        |«      }|j                  «       D ]  }||v sŒ||= |j	                  |«       Œ |syt        d„ |D «       «      rt        dt        z  «      ‚|€,d| i}| j                  j                  j                  ||¬«      }n|�|j                  |«      }|j                  | j                  ¬«      }| j                  «       }|� |j                  |Ž }nK|rI |j                  | j                   j"                  D �	ch c]  }	|	j$                  |vr|	j$                  ’Œ c}	Ž }|j'                  «       }
|
j                  «       }| j                   j(                  D ]«  }|j$                  |v rŒ|j*                  r+t-        | |j$                  t        |
|j$                  «      «       |j.                  sŒV|j1                  |
«      r"|j3                  | |j5                  |
«      «       Œ‰|j1                  | «      sŒ›|j7                  | «       Œ­ | j                   j8                  D ]6  }|�|j:                  |v sŒ|j1                  | «      sŒ&|j7                  | «       Œ8 | j                   j<                  D ]C  }|�|j:                  |v sŒ|j.                  sŒ!|j1                  | «      sŒ3|j7                  | «       ŒE |
j>                  j@                  | j>                  _         yc c}	w )	aU  
        Reload field values from the database.

        By default, the reloading happens from the database this instance was
        loaded from, or by the read router if this instance wasn't loaded from
        any database. The using parameter will override the default.

        Fields can be used to specify which fields to reload. The fields
        should be an iterable of field attnames. If fields is None, then
        all non-deferred fields are reloaded.

        When accessing deferred fields of an instance, the deferred loading
        of the field will call this method.
        NÚ_prefetched_objects_cacher;   c              3   ó,   K  — | ]  }t         |v –— Œ y ­wr¶   r   r¾   s     r>   rd   z(Model.refresh_from_db.<locals>.<genexpr>Û  s   è ø€ Ò3 q”: ”?Ñ3ùs   ‚zRFound "%s" in fields argument. Relations and transforms are not allowed in fields.rç   )Úhints©r  )!rH  rt   r†   r�   ÚremoverÐ   rÑ   r   r´   rÝ   Ú
db_managerÚusingÚfilterr  rF  Úonlyr\   rú   rþ   rÍ   r€   Úconcreter·   Úis_relationÚ	is_cachedÚset_cached_valueÚget_cached_valueÚdelete_cached_valueÚrelated_objectsrJ   r   rø   rì   )r=   rN  r€   Úfrom_querysetÚprefetched_objects_cacher«   rJ  Údb_instance_qsÚdeferred_fieldsr¥   Údb_instanceÚnon_loaded_fieldsÚrels                r>   Úrefresh_from_dbzModel.refresh_from_dbÁ  sÀ  € ð ˆ>Ø-/ˆDÕ*ä'.¨tÐ5PÐRTÓ'UÐ$Ü˜“[ˆFØŸ™›ò )�ØÐ4Ò4Ø0°Ð7Ø—M‘M %Õ(ð)ñ ØÜÑ3¨FÔ3Ô3Ü ð1Ü3=ñ>óð ð
 Ð Ø Ð&ˆEØ ŸN™N×8Ñ8×CÑCÀEÐQVÐCÓW‰MØÐØ)×/Ñ/°Ó6ˆMà&×-Ñ-°·±Ð-Ó9ˆð ×2Ñ2Ó4ˆØÐØ0˜^×0Ñ0°&Ð9‰NÙØ0˜^×0Ñ0ð "ŸZ™Z×7Ñ7öàØ—y‘y¨Ñ7ð —I“IòðˆNð %×(Ñ(Ó*ˆØ'×;Ñ;Ó=ÐØ—Z‘Z×&Ñ&ò 	4ˆEØ�}‰}Ð 1Ñ1àØ�~Š~Ü˜˜eŸm™m¬W°[À%Ç-Á-Ó-PÔQà× Ó Ø—?‘? ;Ô/Ø×*Ñ*¨4°×1GÑ1GÈÓ1TÕUØ—_‘_ TÕ*Ø×-Ñ-¨dÕ3ð	4ð —:‘:×-Ñ-ò 	.ˆCØ� #§(¡(¨fÒ"4¸#¿-¹-ÈÕ:MØ×'Ñ'¨Õ-ð	.ð
 —Z‘Z×.Ñ.ò 	0ˆEà� 5§:¡:°Ò#7Ø×%Ó%Ø—O‘O DÕ)à×)Ñ)¨$Õ/ð	0ð %×+Ñ+×.Ñ.ˆ�‰�ùòIs   Ä!K7c              ƒ   óZ   K  —  t        | j                  «      |||¬«      ƒ d {  –—† S 7 Œ­w)N)rN  r€   rX  )r   r_  )r=   rN  r€   rX  s       r>   Úarefresh_from_dbzModel.arefresh_from_db  s1   è ø€ Ø8”] 4×#7Ñ#7Ó8Ø °mô
÷ 
ð 	
ð 
ús   ‚"+¤)¥+c                 óœ   — 	 | j                   j                  |«      }t        | |j                  «      S # t        $ r t        | |«      cY S w xY w)aÂ  
        Return the value of the field name for this instance. If the field is
        a foreign key, return the id value instead of the object. If there's
        no Field object with this name on the model, return the model
        attribute's value.

        Used to serialize a field's value (in the serializer, or form output,
        for example). Normally, you would just access the attribute directly
        and not use this method.
        )r\   r  r   rt   rþ   )r=   Ú
field_namer«   s      r>   Úserializable_valuezModel.serializable_value  sL   € ð	-Ø—J‘J×(Ñ(¨Ó4ˆEô �t˜UŸ]™]Ó+Ð+øô !ò 	-Ü˜4 Ó,Ò,ð	-ús   ‚3 ³AÁ
AF©Úforce_insertÚforce_updaterN  Úupdate_fieldsc                ó€  — | j                  d¬«       |xs! t        j                  | j                  | ¬«      }|r|s|rt	        d«      ‚| j
                  j                  D �ch c]4  }|j                  | j                  vr|j                  du r|j                  ’Œ6 }}|�T|syt        |«      }| j
                  j                  }|j                  |«      }|rÐt	        ddj                  |«      z  «      ‚|s±|r¯|| j                  j                  k(  r–| j!                  «       r†t#        «       }| j
                  j$                  }	| j
                  j                  D ]/  }
|
|	vsŒt'        |
d	«      rŒ|j)                  |
j                  «       Œ1 |j                  |«      }|rt        |«      }| j+                  ||||¬
«       yc c}w )aa  
        Save the current instance. Override this in a subclass if you want to
        control the saving process.

        The 'force_insert' and 'force_update' parameters can be used to insist
        that the "save" must be an SQL insert or update (or equivalent for
        non-SQL backends), respectively. Normally, they should not be set.
        Úsave)Úoperation_name©rç   z6Cannot force both insert and updating in model saving.FNzmThe following fields do not exist in this model, are m2m fields, primary keys, or are non-concrete fields: %sr»   Úthrough)rN  rf  rg  rh  )Ú _prepare_related_fields_for_saver   Údb_for_writer´   rÑ   r\   rú   rþ   r‰   r   Ú	frozensetÚ_non_pk_concrete_field_namesÚ
differencerË   rø   rì   r"  r†   Ú	pk_fieldsrS   rŠ   Ú	save_base)r=   rf  rg  rN  rh  r¥   Údeferred_non_generated_fieldsr¦   Únot_updatable_fieldsrs  r«   Úloaded_fieldss               r>   rj  z
Model.save+  s£  € ð" 	×-Ñ-¸VÐ-ÔDàÒKœ×,Ñ,¨T¯^©^ÀdÔKˆÙ™\©]ÜÐUÓVÐVð —Z‘Z×/Ñ/ö)
àØ�y‰y §¡Ñ-°!·+±+ÀÑ2Fð �I‹Ið)
Ð%ð )
ð
 Ð$ñ !Øä% mÓ4ˆMØŸ*™*×AÑAˆKØ#0×#;Ñ#;¸KÓ#HÐ á#Ü ðKà—i‘iÐ 4Ó5ñ6óð ñ Ù-Ø˜Ÿ™Ÿ™Ò'Ø—‘Ô!ä›%ˆKØŸ
™
×,Ñ,ˆIØŸ™×3Ñ3ò 3�Ø 	Ò)´'¸%ÀÕ2KØ—O‘O E§M¡MÕ2ð3ð (×2Ñ2Ð3PÓQˆMÙÜ )¨-Ó 8�à�‰ØØ%Ø%Ø'ð	 	õ 	
ùòQ)
s   Á!9F;Tc             ƒ   ó\   K  —  t        | j                  «      ||||¬«      ƒ d {  –—† S 7 Œ­w)Nre  )r   rj  )r=   rf  rg  rN  rh  s        r>   ÚasavezModel.asaves  s6   è ø€ ð .”] 4§9¡9Ó-Ø%Ø%ØØ'ô	
÷ 
ð 	
ð 
ús   ‚#,¥*¦,c                 ó  — |du ry|du r| fS t        |t        «      st        d«      ‚|D ]S  }t        |t        «      st        d|›d�«      ‚t	        | |«      rŒ/t        d|j
                  › d| j
                  › d�«      ‚ |S )	NFr;   Tz%force_insert must be a bool or tuple.zInvalid force_insert member. z must be a model subclass.z must be a base of rH   )rq   ry   r|   rW   Ú
issubclassrF   )r”   rf  Úmembers      r>   Ú_validate_force_insertzModel._validate_force_insert„  s­   € à˜5Ñ ØØ˜4ÑØ�6ˆMÜ˜,¬Ô.ÜÐCÓDÐDØ"ò 		ˆFÜ˜f¤iÔ0ÜØ3°F°:Ð=WÐXóð ô ˜c 6Õ*ÜØ3°F×4GÑ4GÐ3Hð IØ"×/Ñ/Ð0°ð3óð ð		ð ÐrA   c           	      ó   — |xs! t        j                  | j                  | ¬«      }|r|s|rJ ‚|�|sJ ‚| j                  x}}|j                  j                  r|j                  j
                  }|j                  }|j                  st        j                  || |||¬«       |j                  rt        j                  |d¬«      }	nt        j                  |¬«      }	|	5  d}
|s%| j                  |«      }| j                  ||||«      }
| j                  |||xs |
|||«      }ddd«       || j                   _        d| j                   _        |j                  st'        j                  ||  |||¬«       yy# 1 sw Y   ŒUxY w)av  
        Handle the parts of saving which should be done only once per save,
        yet need to be done in raw saves, too. This includes some sanity
        checks and signal sending.

        The 'raw' argument is telling save_base not to save any parent
        models and not to do any changes to the values before save. This
        is used by fixture loading.
        rl  N)rÄ   rç   ÚrawrN  rh  F)rN  Ú	savepoint)rN  )rÄ   rç   Úcreatedrh  r  rN  )r   ro  r´   r\   rz   r�   rm   r/   rÓ   rŒ   r   ÚatomicÚmark_for_rollback_on_errorr}  Ú_save_parentsÚ_save_tablerø   rì   rí   r-   )r=   r  rf  rg  rN  rh  r”   Úoriginr    Úcontext_managerÚparent_insertedÚupdateds               r>   rt  zModel.save_base˜  su  € ð" ÒKœ×,Ñ,¨T¯^©^ÀdÔKˆÙ ¡l±mÐEÐEØÐ$©Ð5Ð5Ø—~‘~Ð%ˆˆfà�9‰9�?Š?Ø—)‘)×*Ñ*ˆCØ�y‰yˆØ× Ò Ü�M‰MØØØØØ+õð �<Š<Ü)×0Ñ0°uÈÔN‰Oä)×DÑDÈ5ÔQˆOØñ 	Ø#ˆOÙà#×:Ñ:¸<ÓH�Ø"&×"4Ñ"4Ø˜ ¨|ó#�ð ×&Ñ&ØØØÒ/ ØØØóˆG÷	ð" ˆ�‰Œà"ˆ�‰Ôð × Ò Ü�N‰NØØØ$˜Ø+ØØöð !÷-	ð 	ús   ÃAE4Å4E=c           
      óÖ  — |j                   }d}|€i }|j                  j                  «       D �]8  \  }}	|	rt        | |j                   j                  j
                  «      €Ut        | |	j
                  «      �?t        | |j                   j                  j
                  t        | |	j
                  «      «       |j                  |«      x}
€C| j                  |||||¬«      }| j                  ||||xs t        ||«      ¬«      }|sd}|||<   n|
sd}|	sŒåt        | |	j
                  | j                  |j                   «      «       |	j                  | «      s�Œ(|	j                  | «       �Œ; |S )z3Save all the parents of cls using values from self.F)r”   rN  rh  rf  Úupdated_parents)r”   rN  rh  rf  T)r\   rŒ   rs   rt   r  rþ   r·   rÍ   r„  r…  r{  r>  rS  rV  )r=   r”   rN  rh  rf  r‹  r    Úinsertedr©   r«   Úparent_updatedrˆ  r‰  s                r>   r„  zModel._save_parentsà  s_  € ð �y‰yˆØˆØÐ"Ø ˆOØ!Ÿ\™\×/Ñ/Ó1ó $	4‰MˆF�Eñ Ü˜D &§,¡,§/¡/×"9Ñ"9Ó:ÐBÜ˜D %§-¡-Ó0Ð<ä˜˜fŸl™lŸo™o×5Ñ5´w¸tÀUÇ]Á]Ó7SÔTØ"1×"5Ñ"5°fÓ"=Ð=�ÐFØ"&×"4Ñ"4ØØØ"/Ø!-Ø$3ð #5ó #�ð ×*Ñ*ØØØ"/Ø!0Ò!T´J¸vÀ|Ó4Tð	 +ó �ñ Ø#�HØ*1� Ò'Ù#Ø�âÜ˜˜eŸm™m¨T×-=Ñ-=¸f¿l¹lÓ-KÔLð —?‘? 4Ö(Ø×-Ñ-¨dÖ3ðI$	4ðJ ˆrA   c           
      óž  — |j                   }|j                  }|j                  D �	cg c]  }	|	|vr|	j                  s|	‘Œ }
}	|r+|
D �	cg c]   }	|	j                  |v s|	j
                  |v r|	‘Œ" }
}	| j                  |«      s<|j                  j                  | «      }t        | |j                  j
                  |«       | j                  |«      }|s|s|rt        d«      ‚d}|s8|s6|s4| j                  j                  rt        d„ |j                  D «       «      rd}|�rI|�sF|j                  j                  |«      }|
D �	cg c]/  }	|	d|rt!        | |	j
                  «      n|	j#                  | d«      f‘Œ1 }}	|xs |}| j%                  |«      }|j                  D �	cg c]+  }	|	j                  r|	j&                  j)                  |
«      r|	‘Œ- }}	|D ]5  \  }}}|�|j                  |v sŒt+        |d«      sŒ%|j-                  |«       Œ7 | j/                  |||||||«      }t1        |«      x}r| j3                  |d   |«       n&|r| j5                  d«      ‚|r| j5                  d	«      ‚|�sË|j6                  r›|j6                  }|j9                  | «      } |j                  j                  |«      j:                  di |¤Žj=                  t?        tA        tC        d
«      tE        d«      z   tG        «       ¬«      tE        d«      «      ¬«      d   | _$        |j                  D �	cg c]   }	|	j                  s|s|	|jJ                  ur|	‘Œ" }}	tM        |jN                  «      }tP        |   jR                  jT                  }|D ]‚  }|rt!        | |j
                  «      n|j#                  | d¬«      }t+        |d«      r||vsŒ?|j-                  |«       ŒQ|jV                  sŒ^|rŒa|r||jJ                  u rŒr|jY                  |«       Œ„ | j[                  |j                  ||||«      }|r| j3                  |d   |«       |S c c}	w c c}	w c c}	w c c}	w c c}	w )zp
        Do the heavy-lifting involved in saving. Update or insert the data
        for a single table.
        z5Cannot force an update in save() with no primary key.Fc              3   ó`   K  — | ]&  }|j                  «       xs |j                  «       –— Œ( y ­wr¶   )Úhas_defaultÚhas_db_defaultr¾   s     r>   rd   z$Model._save_table.<locals>.<genexpr>8  s'   è ø€ ÒR¸a�A—M‘M“OÒ9 q×'7Ñ'7Ó'9Ó9ÑRùs   ‚,.TNÚresolve_expressionr   z&Forced update did not affect any rows.z0Save with update_fields did not affect any rows.Ú_orderé   )Úoutput_field)Ú_order__maxr–  )rŠ   r;   ).r\   rs  Úlocal_concrete_fieldsr   rJ   rþ   r"  r  Úget_pk_value_on_saver·   rÑ   rø   rí   ÚallrÝ   rN  rt   r/   r>  Úreferenced_fieldsÚintersectionrS   r1  Ú
_do_updateÚboolÚ_assign_returned_valuesrg   rÅ   Úget_filter_kwargs_for_objectrO  Ú	aggregater&   r   r   r   r   r“  Ú
auto_fieldÚlistÚdb_returning_fieldsr   ÚfeaturesÚcan_return_columns_from_insertÚdb_returningrL  Ú
_do_insert)r=   r  r”   rf  rg  rN  rh  r    rs  r¥   Únon_pks_non_generatedrD  Úpk_setr‰  Úbase_qsr  Úforced_updateÚreturning_fieldsr«   Ú_modelrT   ÚresultsÚfilter_argsÚinsert_fieldsr¥  s                            r>   r…  zModel._save_table  sz  € ð �y‰yˆØ—N‘Nˆ	ð ×/Ñ/ö!
àØ˜	Ñ!¨!¯+ª+ò ð!
Ðð !
ñ ð /ö%àØ—6‘6˜]Ñ*¨a¯i©i¸=Ñ.Hò ð%Ð!ð %ð �‰˜tÔ$Ø—W‘W×1Ñ1°$Ó7ˆFÜ�D˜$Ÿ'™'Ÿ/™/¨6Ô2Ø—‘ Ó&ˆÙ™<©=ÜÐTÓUÐUØˆñ Ù Ù Ø—‘×"Ò"ÜÑRÀ4Ç>Á>ÔRÔRàˆLò š,Ø×'Ñ'×-Ñ-¨eÓ4ˆGð /öð ð	 ØÙ14”W˜T 1§9¡9Ô-¸!¿*¹*ÀTÈ5Ó:QòðˆFð ð *Ò9¨\ˆMØ×%Ñ% dÓ+ˆFð ×3Ñ3ö àà—K’KØ×+Ñ+×8Ñ8Ð9NÔOò	 ð Ðð  ð )/ò 3Ñ$��v˜uØ!Ð)¨U¯Z©Z¸=Ò-HÌgØÐ/õOð %×+Ñ+¨EÕ2ð	3ð
 —o‘oØØØØØØØ óˆGô ˜w›-Ð'ˆwÐ'Ø×,Ñ,¨W°Q©ZÐ9IÕJÙØ—o‘oÐ&NÓOÐOÙØ—o‘oØFóð ò Ø×)Ò)ð ×2Ñ2�Ø#×@Ñ@ÀÓF�ð�C×%Ñ%×+Ñ+¨EÓ2ß‘Vñ+Ø)ñ+ç‘YÜ$,Ü-Ü # H£´°a³Ñ 8Ä|Ã~ôô " !›Hó	%ð ó ð $ñ	%ð ”ð ×3Ñ3öàØ—{’{©°!¸4¿?¹?Ñ2Jò ðˆMð ô
  $ D×$<Ñ$<Ó=ÐÜ-8Øñ.ç‰h×5Ñ5ð +ð 'ò 3�ñ ô ˜D %§-¡-Ô0àŸ™¨°$˜Ó7ð ô
 ˜5Ð"6Ô7ØÐ$4Ò4Ø(×/Ñ/°Õ6à×&Ó&Ú:Ù#¨°·±Ò(@à$×+Ñ+¨EÕ2ð3ð —o‘oØ×!Ñ! 5¨-Ð9IÈ3óˆGñ Ø×,Ñ,¨W°Q©ZÐ9IÔJØˆùòq!
ùò%ùò4ùò ùò`s   §P6Á%P;Ä?4Q Æ0QÌ%Q
c                 ó&  — |j                  |¬«      }|s|€|j                  «       rdgS g S | j                  j                  r?|s=|j                  «       sg S |j	                  ||«      x}	r|	S |j                  «       rdgS g S |j	                  ||«      S )z�
        Try to update the model. Return True if the model was updated (if an
        update query was done and a matching row was found in the DB).
        rK  r;   )rO  Úexistsr\   Úselect_on_saveÚ_update)
r=   rª  rN  rD  r  rh  r«  r¬  Úfilteredr®  s
             r>   rœ  zModel._do_update˜  sœ   € ð —>‘> V�>Ó,ˆÙð Ð(¨H¯O©OÔ,=Ø�t�ØˆIØ�:‰:×$Ò$©]ð —?‘?Ô$Ø�	Ø"×*Ñ*¨6Ð3CÓDÐDˆwÐDØ�Ø#Ÿ?™?Ô,�B�4Ð4°"Ð4Ø×Ñ Ð(8Ó9Ð9rA   c                 ó0   — |j                  | g||||¬«      S )z‹
        Do an INSERT. If returning_fields is defined then this method should
        return the newly created data for the model.
        )r€   r¬  rN  r  )Ú_insert)r=   rØ   rN  r€   r¬  r  s         r>   r§  zModel._do_insert¿  s+   € ð
 �‰ØˆFØØ-ØØð ó 
ð 	
rA   c                 óÊ   — t        |«      }t        ||«      D ]  \  }}t        | |j                  |«       Œ |D ](  }| j                  j                  |j                  d «       Œ* y r¶   )rü   rý   r·   rþ   r‰   rr   )r=   Úreturned_valuesr¬  Úreturning_fields_iterrT   r«   s         r>   rž  zModel._assign_returned_valuesÌ  sb   € Ü $Ð%5Ó 6ÐÜ Ð1FÓGò 	0‰LˆE�5Ü�D˜%Ÿ-™-¨Õ/ð	0ð +ò 	3ˆEØ�M‰M×Ñ˜eŸm™m¨TÕ2ñ	3rA   c                 óš  — | j                   j                  D �]"  }|r||vrŒ|j                  sŒ|j                  | «      sŒ*t	        | |j
                  d «      }|sŒD|j                  «       sL|j                  j                  s|j                  j                  |«       t        |›d|j
                  ›d�«      ‚t	        | |j                  «      |j                  v rt        | |j
                  |«       t	        ||j                  j                  «      t	        | |j                  «      k7  s�Œ|j                  | «       �Œ% | j                   j                  D ]v  }|r||vrŒ
|j                  sŒ|j                  | «      sŒ)t!        |d«      sŒ6|j#                  | d ¬«      }|sŒL|j                  «       rŒ]t        |› d|j
                  › d�«      ‚ y )NzB() prohibited to prevent data loss due to unsaved related object 'rk   Úfk_field)Údefault)r\   rú   rR  rS  rt   rJ   r"  r„   ÚmultiplerV  rÑ   rþ   Úempty_valuesr·   r@  r   rS   rU  )r=   rk  r€   r«   rž   s        r>   rn  z&Model._prepare_related_fields_for_saveÕ  s¡  € ð
 —Z‘Z×/Ñ/ó  	4ˆEÙ˜% vÑ-Øð × Ó  U§_¡_°TÕ%:Ü˜d E§J¡J°Ó5�ÙØð —~‘~Ô'à ×-Ñ-×6Ò6Ø×*Ñ*×>Ñ>¸sÔCÜ$â2@À%Ç*Ã*ðNóð ô ˜T 5§=¡=Ó1°U×5GÑ5GÑGô ˜D %§*¡*¨cÔ2ô ˜3 × 2Ñ 2× :Ñ :Ó;¼wØ˜%Ÿ-™-ó@ô ð ×-Ñ-¨dÖ3ðA 	4ðD —Z‘Z×.Ñ.ò 	ˆEÙ˜% vÑ-Øà×!Ó!Ø—O‘O DÕ)Ü˜E :Õ.à×,Ñ,¨T¸4Ð,Ó@�Ú˜sŸ~™~Õ/Ü$Ø)Ð*ð +3Ø38·:±:°,¸bðBóð ñ	rA   c                 óT  — | j                  «       sCt        | j                  j                  ›d| j                  j                  j
                  ›d�«      ‚|xs! t        j                  | j                  | ¬«      }t        || ¬«      }|j                  | g|¬«       |j                  «       S )Nz% object can't be deleted because its z attribute is set to None.rl  )rN  r†  )Úkeep_parents)r"  rÑ   r\   r)  r  rþ   r   ro  r´   r   ÚcollectÚdelete)r=   rN  rÁ  Ú	collectors       r>   rÃ  zModel.delete  s‰   € Ø�‰Ô Üà"Ÿj™j×4Ó4°d·j±j·m±m×6KÓ6KðMóð ð ÒKœ×,Ñ,¨T¯^©^ÀdÔKˆÜ E°$Ô7ˆ	Ø×Ñ˜4˜&¨|ÐÔ<Ø×ÑÓ!Ð!rA   c              ƒ   óX   K  —  t        | j                  «      ||¬«      ƒ d {  –—† S 7 Œ­w)N)rN  rÁ  )r   rÃ  )r=   rN  rÁ  s      r>   ÚadeletezModel.adelete  s.   è ø€ Ø/”] 4§;¡;Ó/ØØ%ô
÷ 
ð 	
ð 
ús   ‚!*£(¤*c                 ó¶   — t        | |j                  «      }t        t        |j                  «      «      }t        |j                  t        |«      |«      d¬«      S )NT)Ústrings_only)rt   rþ   Údictr3   Úflatchoicesr2   rÍ   )r=   r«   rT   Úchoices_dicts       r>   Ú_get_FIELD_displayzModel._get_FIELD_display   sK   € Ü˜˜eŸm™mÓ,ˆÜœM¨%×*;Ñ*;Ó<Ó=ˆäØ×Ñœ]¨5Ó1°5Ó9Èô
ð 	
rA   c                 óì  — | j                  «       st        d«      ‚|rdnd}|rdnd}t        | |j                  «      }t	        j
                  |j                  |fd|› �| j                  fgt        j                  ¬«      }t	        j
                  ||j                  › d|› �|fgt        j                  ¬«      } | j                  j                  j                  | j                  j                  «      j                  di |¤Žj                  |«      j!                  |›|j                  ›�d	|z  «      }	 |d
   S # t"        $ r3 | j%                  d| j                  j&                  j(                  z  «      ‚w xY w)Nz8get_next/get_previous cannot be used on unsaved objects.ÚgtÚltÚ ú-Úpk__)Ú	connectorÚ__z%spkr   z!%s matching query does not exist.r;   )r"  rÑ   rt   rþ   r*   ÚcreaterJ   r  ÚANDÚORr´   rà   rN  rø   rì   rO  Úorder_byrû   r^   r\   r)  )	r=   r«   r¹   r–   ÚopÚorderÚparamÚqÚqss	            r>   Ú_get_next_or_previous_by_FIELDz$Model._get_next_or_previous_by_FIELD(  s=  € Ø�‰Ô ÜÐWÓXÐXÙ‰T $ˆÙ‘ 3ˆÜ˜˜eŸm™mÓ,ˆÜ�H‰H�u—z‘z 5Ð)¨d°2°$¨K¸¿¹Ð+AÐBÌaÏeÉeÔTˆÜ�H‰H�a˜UŸZ™Z˜L¨¨2¨$Ð/°Ð7Ð8ÄAÇDÁDÔIˆðˆD�N‰N×+Ñ+×1Ñ1°$·+±+·.±.ÓAß‰VñØñç‰V�A‹Yß‰X¡ u§z¢zÐ2°F¸U±NÓCð	 	ð	Ø�a‘5ˆLøÜò 	Ø×#Ñ#Ø3°d·n±n×6JÑ6J×6VÑ6VÑVóð ð	ús   Ä2D7 Ä7<E3c                 ó,  — d|z  }t        | |«      sø|rdnd}|rdnd}| j                  j                  }|j                  | «      }  | j                  j
                  j                  di |¤Žj                  di d|z   | j                  j
                  j                  d«      j                  di | j                  j                  j                  | j                  i¤Ži¤Žj                  |«      d d j                  «       }t        | ||«       t        | |«      S )	Nz__%s_order_cacherÎ  rÏ  r“  z-_orderz
_order__%sr”  r;   )rS   r\   rÅ   rŸ  r´   rà   rO  r  r  rJ   rØ  rÍ   r·   rt   )r=   r¹   Ú	cachenamerÙ  rÚ  Úorder_fieldr¯  rž   s           r>   rÆ   z$Model._get_next_or_previous_in_order=  s  € Ø&¨Ñ0ˆ	Ü�t˜YÔ'Ù ‘ dˆBÙ '‘H¨YˆEØŸ*™*×:Ñ:ˆKØ%×BÑBÀ4ÓHˆKðÐ6�—‘×/Ñ/×6Ñ6ÑE¸ÑEß‘ñð %ØñØU˜dŸn™n×=Ñ=×DÑDÀXÓN×UÑUñ Ø#Ÿz™zŸ}™}×1Ñ1°4·7±7Ð;ñðñ÷ ‘˜%“  !ð	%÷ ‘“ð ô �D˜) SÔ)Ü�t˜YÓ'Ð'rA   c                 óÎ  ‡ ‡— ‰€
t        «       Š|xs ‰ j                  }i }g }|j                  D �]  }|j                  ‰v rŒ|j                  r@t        ˆfd„‰ j                  |j                  «      D «       «      rŒM|j                  |«       Œ_t        |j                  t        «      r@||j                  vr2t        ˆ fd„|j                  D «       «      }t        |«      dk(  r*|d   }n$|j                   rt#        ‰ |j$                  «      }nŒÝ|rt'        |d«      st)        ||«      }|||j                  <   |||j$                  <   �Œ d‰vr#t)        ‰ j*                  |j*                  «      |d<   |ro|j-                  «       D ��ci c]  \  }}t/        |«      |“Œ }}}|D ]>  }	t1        |	j                  j3                  |«      |	j4                  «      ||	j                  <   Œ@ |S c c}}w )Nc              3   ó,   •K  — | ]  }|d    ‰v –— Œ y­w)r   Nr;   )rb   ÚrefÚexcludes     €r>   rd   z2Model._get_field_expression_map.<locals>.<genexpr>^  s"   øè ø€ ò àð ˜‘F˜gÔ%ñùs   ƒc              3   ó6   •K  — | ]  }t        ‰|«      –— Œ y ­wr¶   )rt   )rb   Ú
from_fieldr=   s     €r>   rd   z2Model._get_field_expression_map.<locals>.<genexpr>i  s   øè ø€ ò Ø2<”G˜D *×-ñùs   ƒr”  r   r’  r  )r†   r\   r}   rJ   r   rÐ   Ú_get_expr_referencesÚ
expressionr1  rq   r„   r"   r—  ry   Úfrom_fieldsrù   rQ  rt   rþ   rS   r   r  rs   r)   r   Úreplace_expressionsr•  )
r=   r    rå  Ú	field_mapÚgenerated_fieldsr«   rT   rJ   ÚreplacementsÚgenerated_fields
   ` `       r>   Ú_get_field_expression_mapzModel._get_field_expression_mapT  sÊ  ù€ Øˆ?Ü“eˆGØÒ!�t—z‘zˆØˆ	ØÐØ×&Ñ&ó 	-ˆEØ�z‰z˜WÑ$ØØ�ŠÜó à#×8Ñ8¸×9IÑ9IÓJôô ð Ø ×'Ñ'¨Ô.Øä˜5×-Ñ-Ô/?Ô@Ø ×!;Ñ!;Ñ;äó Ø@E×@QÑ@Qôó �ô �u“: ’?Ø! !™H‘EØ—’Ü  e§m¡mÓ4‘àÙ¤¨Ð/CÔ DÜ˜e UÓ+�Ø$)ˆI�e—j‘jÑ!Ø',ˆI�e—m‘mÓ$ð7	-ð8 �wÑÜ# D§G¡G¨T¯W©WÓ5ˆI�d‰OÙØ>G¿o¹oÓ>O×P©{¨t°UœA˜d›G U™NÐPˆLÑPØ#3ò �Ü2CØ#×.Ñ.×BÑBÀ<ÓPØ#×0Ñ0ó3�	˜/×.Ñ.Ò/ðð Ðùó Qs   ÆG!c                 óš   — | j                  «       st        d| z  «      ‚t        | |j                  j	                  «       j
                  «      S )Nz9Unsaved model instance %r cannot be used in an ORM query.)r"  rÑ   rt   r„   Úget_related_fieldrþ   )r=   r«   s     r>   Úprepare_database_savezModel.prepare_database_save‚  sE   € Ø�‰Ô ÜØKÈdÑRóð ô �t˜U×/Ñ/×AÑAÓC×KÑKÓLÐLrA   c                  ó   — y)aQ  
        Hook for doing any extra model-wide validation after clean() has been
        called on every field by self.clean_fields. Any ValidationError raised
        by this method will not be associated with a particular field; it will
        have a special-case association with the field defined by
        NON_FIELD_ERRORS.
        Nr;   r<   s    r>   ÚcleanzModel.clean‰  s   € ð 	rA   c                 óþ   — | j                  |¬«      \  }}| j                  |«      }| j                  |«      }|j                  «       D ]&  \  }}|j	                  |g «      j                  |«       Œ( |rt        |«      ‚y)zh
        Check unique constraints on the model and raise ValidationError if any
        failed.
        ©rå  N)Ú_get_unique_checksÚ_perform_unique_checksÚ_perform_date_checksrs   Ú
setdefaultÚextendr   )r=   rå  Úunique_checksÚdate_checksÚerrorsÚdate_errorsÚkÚvs           r>   Úvalidate_uniquezModel.validate_unique“  sˆ   € ð
 &*×%<Ñ%<ÀWÐ%<Ó%MÑ"ˆ�{à×,Ñ,¨]Ó;ˆØ×/Ñ/°Ó<ˆà×%Ñ%Ó'ò 	/‰DˆAˆqØ×Ñ˜a Ó$×+Ñ+¨AÕ.ð	/ñ Ü! &Ó)Ð)ð rA   c                 ój  ‡— ‰€
t        «       Šg }| j                  | j                  j                  fg}g }|r#| j                  | j                  j                  fg}| j                  j
                  D ]€  }|j                  j                  r'|j                  ||j                  j                  f«       |sŒC|j                  j                  sŒZ|j                  ||j                  j                  f«       Œ‚ |D ]=  \  }}|D ]3  }	t        ˆfd„|	D «       «      rŒ|j                  |t        |	«      f«       Œ5 Œ? |rM|D ]H  \  }}
|
D ]>  }t        ˆfd„|j                  D «       «      rŒ"|j                  ||j                  f«       Œ@ ŒJ g }| j                  | j                  j                  fg}| j                  j
                  D ])  }|j                  ||j                  j                  f«       Œ+ |D �]@  \  }}|D �]4  }|j                  }|‰v rŒt        |t        «      rAt        d„ |j                  D «       «      }‰j                  |«      r|j                  ||f«       Œf|j                  r|j                  ||ff«       |j                   r-|j                   ‰vr|j                  |d||j                   f«       |j"                  r-|j"                  ‰vr|j                  |d||j"                  f«       |j$                  s�Œ|j$                  ‰vs�Œ|j                  |d||j$                  f«       �Œ7 �ŒC ||fS )a{  
        Return a list of checks to perform. Since validate_unique() could be
        called from a ModelForm, some fields may have been excluded; we can't
        perform a unique check on a model that is missing fields involved
        in that check. Fields that did not validate should also be excluded,
        but they need to be passed in via the exclude argument.
        c              3   ó&   •K  — | ]  }|‰v –— Œ
 y ­wr¶   r;   ©rb   rJ   rå  s     €r>   rd   z+Model._get_unique_checks.<locals>.<genexpr>¿  s   øè ø€ Ò=¨t˜4 7œ?Ñ=ùó   ƒc              3   ó&   •K  — | ]  }|‰v –— Œ
 y ­wr¶   r;   r  s     €r>   rd   z+Model._get_unique_checks.<locals>.<genexpr>Æ  s   øè ø€ ÒM°4˜t wœÑMùr  c              3   ó4   K  — | ]  }|j                   –— Œ y ­wr¶   r½   ©rb   r«   s     r>   rd   z+Model._get_unique_checks.<locals>.<genexpr>Ù  s   è ø€ Ò!C° %§*¥*Ñ!Cùr¿   ÚdateÚyearÚmonth)r†   r´   r\   Úunique_togetherÚtotal_unique_constraintsÚall_parentsr1  rÐ   ry   r€   r}   rJ   rq   r!   Ú
isdisjointÚuniqueÚunique_for_dateÚunique_for_yearÚunique_for_month)r=   rå  Úinclude_meta_constraintsrý  Úunique_togethersÚconstraintsÚparent_classÚmodel_classr  ÚcheckÚmodel_constraintsÚ
constraintrþ  Úfields_with_classr€   r¥   rJ   Únamess    `                r>   rø  zModel._get_unique_checks£  s  ø€ ð ˆ?Ü“eˆGØˆà!Ÿ^™^¨T¯Z©Z×-GÑ-GÐHÐIÐØˆÙ#Ø ŸN™N¨D¯J©J×,OÑ,OÐPÐQˆKØ ŸJ™J×2Ñ2ò 	ˆLØ×!Ñ!×1Ò1Ø ×'Ñ'Ø! <×#5Ñ#5×#EÑ#EÐFôò (¨L×,>Ñ,>×,WÓ,WØ×"Ñ"Ø! <×#5Ñ#5×#NÑ#NÐOõð	ð -=ò 	FÑ(ˆK˜Ø(ò F�ÜÓ=°uÔ=Õ=à!×(Ñ(¨+´u¸U³|Ð)DÕEñFð	Fñ $Ø2=ò OÑ.�Ð.Ø"3ò O�JÜÓM¸:×;LÑ;LÔMÕMØ%×,Ñ,¨k¸:×;LÑ;LÐ-MÕNñOðOð ˆð
 #Ÿn™n¨d¯j©j×.EÑ.EÐFÐGÐØ ŸJ™J×2Ñ2ò 	VˆLØ×$Ñ$ l°L×4FÑ4F×4SÑ4SÐ%TÕUð	Vð $5ó 	YÑˆK˜Øó Y�Ø—v‘v�Ø˜7‘?ØÜ˜aÔ!4Ô5Ü!Ñ!C¸!¿(¹(Ô!CÓC�EØ×)Ñ)¨%Ô0Ø%×,Ñ,¨k¸5Ð-AÔBØØ—8’8Ø!×(Ñ(¨+¸°wÐ)?Ô@Ø×$Ò$¨×):Ñ):À'Ñ)IØ×&Ñ&¨°V¸TÀ1×CTÑCTÐ'UÔVØ×$Ò$¨×):Ñ):À'Ñ)IØ×&Ñ&¨°V¸TÀ1×CTÑCTÐ'UÔVØ×%Ô%¨!×*<Ñ*<ÀGÓ*KØ×&Ñ&¨°W¸dÀA×DVÑDVÐ'WÖXò!Yð	Yð$ ˜kÐ)Ð)rA   c                 ó2  — i }|D �]Ž  \  }}i }|D ]’  }| j                   j                  |«      }t        | |j                  «      }|�|dk(  rt        j
                  j                  rŒV||j                   j                  v r| j                  j                  sŒ…||t        |«      <   Œ” t        |«      t        |«      k7  rŒ¸ |j                  j                  di |¤Ž}	| j                  |j                   «      }
| j                  j                  s-| j                  |j                   «      r|	j!                  |
¬«      }	|	j#                  «       s�ŒDt        |«      dk(  r|d   }nt$        }|j'                  |g «      j)                  | j+                  ||«      «       �Œ‘ |S )NrÐ  rK  r”  r   r;   )r\   r  rt   rþ   r   r¤  Ú!interprets_empty_strings_as_nullsrs  rø   rí   Ústrrù   rà   rO  r>  r"  rå  r²  r
   rû  r1  Úunique_error_message)r=   rý  rÿ  r  Úunique_checkÚlookup_kwargsrc  r¥   Úlookup_valuerÝ  Úmodel_class_pkÚkeys               r>   rù  zModel._perform_unique_checksç  sx  € Øˆà)6ó *	Ñ%ˆK˜ð ˆMØ*ò >�
Ø—J‘J×(Ñ(¨Ó4�Ü& t¨Q¯Y©YÓ7�àÐ'Ø  BÒ&Ü"×+Ñ+×MÒMð Ø˜×)Ñ)×3Ñ3Ñ3¸D¿K¹K×<NÒ<NàØ1=�œc *›oÒ.ð>ô  �<Ó ¤C¨Ó$6Ò6Øà4�×-Ñ-×4Ñ4ÑE°}ÑEˆBð "×-Ñ-¨k×.?Ñ.?Ó@ˆNØ—;‘;×%Ò%¨$¯/©/¸+×:KÑ:KÔ*LØ—Z‘Z >�ZÓ2�Ø�y‰yŽ{Ü�|Ó$¨Ò)Ø& q™/‘Cä*�CØ×!Ñ! # rÓ*×1Ñ1Ø×-Ñ-¨k¸<ÓHöðQ*	ðX ˆrA   c                 óH  — i }|D �]  \  }}}}i }t        | |«      }|€Œ|dk(  r7|j                  |d|z  <   |j                  |d|z  <   |j                  |d|z  <   nt        ||«      ||›d|›�<   t        | |«      ||<    |j                  j
                  di |¤Ž}	| j                  j                  s,| j                  «       r|	j                  | j                  ¬«      }	|	j                  «       sŒè|j                  |g «      j                  | j                  |||«      «       �Œ |S )Nr  z%s__dayz	%s__monthz%s__yearrÔ  rK  r;   )rt   Údayr  r  rà   rO  rø   rí   r"  rå  r  r²  rû  r1  Údate_error_message)
r=   rþ  rÿ  r  Úlookup_typer«   Ú
unique_forr%  r  rÝ  s
             r>   rú  zModel._perform_date_checks  s,  € ØˆØ;Fó 	Ñ7ˆK˜ e¨ZØˆMô ˜4 Ó,ˆDØˆ|ØØ˜fÒ$Ø8<¿¹�˜i¨*Ñ4Ñ5Ø:>¿*¹*�˜k¨JÑ6Ñ7Ø9=¿¹�˜j¨:Ñ5Ò6äFMØ˜+óG�ª*±kÐBÑCô $+¨4°Ó#7ˆM˜%Ñ à4�×-Ñ-×4Ñ4ÑE°}ÑEˆBð —;‘;×%Ò%¨$¯/©/Ô*;Ø—Z‘Z 4§7¡7�ZÓ+�à�y‰y�{Ø×!Ñ! %¨Ó,×3Ñ3Ø×+Ñ+¨K¸À
ÓKöð1	ð6 ˆrA   c                 ó  — | j                   }|j                  |«      }t        |j                  d   d| t	        |j
                  «      ||t	        |j
                  «      |t	        |j                  |«      j
                  «      dœ¬«      S )Nr  )r…   r‹   r,  r«   Úfield_labelÚ
date_fieldÚdate_field_label©ÚmessageÚcodeÚparams)r\   r  r   Úerror_messagesr4   Úverbose_name)r=   r,  rc  r-  rÔ   r«   s         r>   r+  zModel.date_error_message7  s|   € Ø�z‰zˆØ—‘˜zÓ*ˆÜØ×(Ñ(Ð):Ñ;Ø"àÜ& t×'8Ñ'8Ó9Ø*Ø#Ü'¨×(:Ñ(:Ó;Ø(Ü$,¨T¯^©^¸JÓ-G×-TÑ-TÓ$Uñô
ð 	
rA   c                 óÂ  — |j                   }| |t        |j                  «      |dœ}t        |«      dk(  rG|j	                  |d   «      }t        |j                  «      |d<   t        |j                  d   d|¬«      S |D �cg c]&  }t        |j	                  |«      j                  «      ‘Œ( }}t        |t        d«      «      |d<   t        t        d	«      d
|¬«      S c c}w )N)r…   r  r‹   r$  r”  r   r/  r  r2  ÚandÚfield_labelsz9%(model_name)s with this %(field_labels)s already exists.r  )	r\   r4   r7  rù   r  r   r6  r5   Ú_)r=   r  r$  rÔ   r5  r«   r¥   r:  s           r>   r#  zModel.unique_error_messageH  sî   € Ø× Ñ ˆð Ø&Ü" 4×#4Ñ#4Ó5Ø(ñ	
ˆô ˆ|Ó Ò!Ø—N‘N <°¡?Ó3ˆEÜ$,¨U×-?Ñ-?Ó$@ˆF�=Ñ!Ü"Ø×,Ñ,¨XÑ6ØØôð ð COöØ=>”˜Ÿ™¨Ó*×7Ñ7Õ8ðˆLð ô &3°<ÄÀ5ÃÓ%JˆF�>Ñ"Ü"ÜÐUÓVØ&Øôð ùò	s   Â +Cc                 óþ   — | j                   | j                  j                  fg}| j                  j                  D ]@  }|j                  j                  sŒ|j	                  ||j                  j                  f«       ŒB |S r¶   )r´   r\   r  r  r1  )r=   r  r  s      r>   Úget_constraintszModel.get_constraintsh  sn   € ØŸ™¨¯
©
×(>Ñ(>Ð?Ð@ˆØ ŸJ™J×2Ñ2ò 	SˆLØ×!Ñ!×-Ó-Ø×"Ñ" L°,×2DÑ2D×2PÑ2PÐ#QÕRð	Sð ÐrA   c                 óÎ  — | j                  «       }t        j                  | j                  | ¬«      }i }|D ]"  \  }}|D ]  }	 |j	                  || ||¬«       Œ Œ$ |rt        |«      ‚y # t
        $ rr}t        |dd «      dk(  rGt        |j                  «      dk(  r/|j                  |j                  d   g «      j                  |«       n|j                  |«      }Y d }~Œ¡d }~ww xY w)Nrl  )rå  rN  r4  r  r”  r   )r=  r   ro  r´   Úvalidater   rt   rù   r€   rû  r1  Úupdate_error_dict)	r=   rå  r  rN  rÿ  r  r  r  Úes	            r>   Úvalidate_constraintszModel.validate_constraintso  sî   € Ø×*Ñ*Ó,ˆÜ×#Ñ# D§N¡N¸TÔBˆàˆØ.9ò 	=Ñ*ˆKÐ*Ø/ò 
=�
ð	=Ø×'Ñ'¨°TÀ7ÐRWÐ'ÕXñ
=ð	=ñ Ü! &Ó)Ð)ð øô 'ò =ä  6¨4Ó0°HÒ<Ü 
× 1Ñ 1Ó2°aÒ7à×)Ñ)¨*×*;Ñ*;¸AÑ*>ÀÓC×JÑJÈ1ÕMà!"×!4Ñ!4°VÓ!<˜ÿøð=ús   ÁA)Á)	C$Á2A(CÃC$c                 óÂ  — i }|€t        «       }nt        |«      }	 | j                  |¬«       	 | j	                  «        |r:|D ]"  }|t
        k7  sŒ||vsŒ|j                  |«       Œ$ 	 | j                  |¬«       |r:|D ]"  }|t
        k7  sŒ||vsŒ|j                  |«       Œ$ 	 | j                  |¬«       |rt        |«      ‚y# t        $ r}|j                  |«      }Y d}~Œ¶d}~ww xY w# t        $ r}|j                  |«      }Y d}~ŒÌd}~ww xY w# t        $ r}|j                  |«      }Y d}~Œ·d}~ww xY w# t        $ r}|j                  |«      }Y d}~Œ¢d}~ww xY w)z®
        Call clean_fields(), clean(), validate_unique(), and
        validate_constraints() on the model. Raise a ValidationError for any
        errors that occur.
        Nr÷  )	r†   Úclean_fieldsr   r@  rõ  r
   rŠ   r  rB  )r=   rå  r  rB  rÿ  rA  rJ   s          r>   Ú
full_cleanzModel.full_cleanƒ  sh  € ð ˆØˆ?Ü“e‰Gä˜'“lˆGð	1Ø×Ñ gÐÔ.ð	1Ø�J‰JŒLñ
 Øò &�ØÔ+Ó+°¸GÒ0CØ—K‘K Õ%ð&ð5Ø×$Ñ$¨WÐ$Ô5ñ
  Øò &�ØÔ+Ó+°¸GÒ0CØ—K‘K Õ%ð&ð5Ø×)Ñ)°'Ð)Ô:ñ Ü! &Ó)Ð)ð øô= ò 	1Ø×(Ñ(¨Ó0�Fûð	1ûô ò 	1Ø×(Ñ(¨Ó0�Fûð	1ûô #ò 5Ø×,Ñ,¨VÓ4•ûð5ûô #ò 5Ø×,Ñ,¨VÓ4•ûð5ús^   œC ¯C, Á)D Â%D: Ã	C)ÃC$Ã$C)Ã,	DÃ5DÄDÄ	D7ÄD2Ä2D7Ä:	EÅEÅEc           	      óØ  — |€
t        «       }i }| j                  j                  D ]‡  }|j                  |v s|j                  rŒt        | |j                  «      }|j                  r||j                  v rŒOt        |t        «      rŒ`	 t        | |j                  |j                  || «      «       Œ‰ |rt        |«      ‚y# t        $ r#}|j                  ||j                  <   Y d}~Œ¿d}~ww xY w)z
        Clean all fields and raise a ValidationError containing a dict
        of all validation errors if any occur.
        N)r†   r\   r€   rJ   r   rt   rþ   Úblankr¿  rq   r    r·   rõ  r   Ú
error_list)r=   rå  rÿ  r¥   Ú	raw_valuerA  s         r>   rD  zModel.clean_fields²  sÏ   € ð
 ˆ?Ü“eˆGàˆØ—‘×"Ñ"ò 	.ˆAØ�v‰v˜Ñ  A§K¢KØô    a§i¡iÓ0ˆIØ�wŠw˜9¨¯©Ñ6Øä˜)¤_Ô5Øð.Ü˜˜aŸi™i¨¯©°¸DÓ)AÕBð	.ñ  Ü! &Ó)Ð)ð øô #ò .Ø!"§¡��q—v‘v–ûð.ús   Â'B=Â=	C)ÃC$Ã$C)c                 ó  — g | j                  «       ¢| j                  «       ¢ | j                  di |¤Ž¢}| j                  j                  �s:|j                  d«      xs g }|g  | j                  di |¤Ž¢| j                  «       ¢| j                  |«      ¢z  }g | j                  «       ¢| j                  «       ¢| j                  «       ¢| j                  «       ¢| j                  «       ¢­}|j                  |«       |s|j                  | j                  «       «       |g | j!                  «       ¢| j#                  |«      ¢| j%                  «       ¢| j'                  |«      ¢| j)                  |«      ¢| j+                  «       ¢z  }|S )NÚ	databasesr;   )Ú_check_swappableÚ_check_modelÚ_check_managersr\   r{   rÍ   Ú_check_fieldsÚ$_check_m2m_through_same_relationshipÚ_check_long_column_namesÚ_check_id_fieldÚ_check_field_name_clashesÚ#_check_model_name_db_lookup_clashesÚ3_check_property_name_related_field_accessor_clashesÚ_check_single_primary_keyrü  Ú_check_column_name_clashesÚ_check_unique_togetherÚ_check_indexesÚ_check_orderingÚ_check_constraintsÚ_check_db_table_commentÚ_check_composite_pk)r”   r–   rÿ  rK  Úclash_errorss        r>   r  zModel.checkÎ  sÈ  € ð
Ø×!Ñ!Ó#ð
à×ÑÓð
ð !ˆS× Ñ Ñ* 6Ñ*ð
ˆð
 �y‰y× Ó ØŸ
™
 ;Ó/Ò5°2ˆIØð Ø"�×"Ñ"Ñ, VÑ,ðà×9Ñ9Ó;ðð ×-Ñ-¨iÓ8ðñ ˆFð
Ø×$Ñ$Ó&ðà×.Ñ.Ó0ðð ×8Ñ8Ó:ðð ×HÑHÓJð	ð
 ×.Ñ.Ó0ñˆLð �M‰M˜,Ô'ñ  Ø—‘˜c×<Ñ<Ó>Ô?Øð Ø×+Ñ+Ó-ðà×#Ñ# IÓ.ðð ×$Ñ$Ó&ðð ×'Ñ'¨	Ó2ð	ð
 ×,Ñ,¨YÓ7ðð ×(Ñ(Ó*ðñ ˆFð ˆrA   c           
      ó&  — g }| j                   }|j                  }|j                  st        |t        «      s|S t        t        «      }|j                  D ]´  }d }	 |j                  |«      }|s|›d�}nh|j                  s|›d�}nV|j                  r|›d�}nD|j                  r|›d�}n2||j                  vr|›d�}n||j                     j                  |«       |sŒŠ|j                  t        j                   |›d�|| d¬«      «       Œ¶ |j#                  «       D ]a  \  }}	t%        |	«      d	kD  sŒ|	^}}
d
j'                  d„ |
D «       «      }|j                  t        j                   |› d�|› d|›d�| d¬«      «       Œc |S # t        $ r d }Y �Œ$w xY w)Nz is not a valid field.z field has no column.z field may not set 'null=True'.z field is a generated field.z field is not a local field.z1 cannot be included in the composite primary key.zmodels.E042©Úhintrž   Úidr”  r»   c              3   ó2   K  — | ]  }t        |«      –— Œ y ­wr¶   ró   r
  s     r>   rd   z,Model._check_composite_pk.<locals>.<genexpr>!  s   è ø€ Ò&E°u¤t¨E§{Ñ&Eùrö   z and z are the same fields.)r\   r  rz   rq   r!   r   r¢  r¦   r  r   rÿ   Únullr   r}   r1  r	   ÚErrorrs   rù   rË   )r”   rÿ  r    r  Úseen_columnsrc  ra  r«   rÿ   r¦   ÚrestÚ
duplicatess               r>   r]  zModel._check_composite_pkó  s¾  € àˆØ�y‰yˆØ�W‰Wˆà�:Š:œZ¨Ô,?Ô@ØˆMä"¤4Ó(ˆàŸ.™.ò 	ˆJØˆDðØŸ™ zÓ2�ñ Ø$˜Ð'=Ð>‘Ø—\’\Ø$˜Ð'<Ð=‘Ø—’Ø$˜Ð'FÐG‘Ø—’Ø$˜Ð'CÐD‘Ø˜d×/Ñ/Ñ/Ø$˜Ð'CÐD‘à˜UŸ\™\Ñ*×1Ñ1°*Ô=âØ—‘Ü—L‘LØ%˜.ð )ð à!ØØ(ôõð-	ð@ $0×#5Ñ#5Ó#7ò 	ÑˆF�KÜ�;Ó !Ó#Ø$/Ð!�
˜TØ!ŸY™YÑ&EÀÔ&EÓE�
Ø—‘Ü—L‘LØ%˜,ð 'ð à *˜|¨5°°Ð>SÐTØØ(ôõð		ð ˆøôS %ò Ø“ðús   ÁFÆFÆFc                 óP  — | j                   j                  sg S g }|D ]†  }t        j                  || «      sŒt        |   }|j
                  j                  rŒ:d| j                   j                  v rŒS|j                  t        j                  |j                  › d�| d¬«      «       Œˆ |S )NÚsupports_commentsz8 does not support comments on tables (db_table_comment).zmodels.W046©rž   rb  )r\   Údb_table_commentr   Úallow_migrate_modelr   r¤  rj  Úrequired_db_featuresr1  r	   ÚWarningÚdisplay_name)r”   rK  rÿ  rì   r   s        r>   r\  zModel._check_db_table_comment.  s    € à�y‰y×)Ò)ØˆIØˆØò 	ˆBÜ×-Ñ-¨b°#Ô6ØÜ$ R™ˆJà×#Ñ#×5Ó5Ø&¨#¯)©)×*HÑ*HÒHà—‘Ü—N‘NØ%×2Ñ2Ð3ð 45ð 6àØ(ô	õð	ð  ˆrA   c                 ó  — g }| j                   j                  r,	 t        j                  | j                   j                  «       |S |S # t        $ rA |j                  t        j                  d| j                   j                  z  d¬«      «       Y |S t        $ rp | j                   j                  j                  d«      \  }}|j                  t        j                  d| j                   j                  ›d|›d|›d�d¬«      «       Y |S w xY w)	z"Check if the swapped model exists.z-'%s' is not of the form 'app_label.app_name'.zmodels.E001©rb  rH   ú'z' references 'z0', which has not been installed, or is abstract.zmodels.E002)r\   r{   r   Ú	get_modelrÑ   r1  r	   re  Ú	swappableÚLookupErrorÚsplit)r”   rÿ  r]   r‹   s       r>   rL  zModel._check_swappableE  sê   € ð ˆØ�9‰9×ÒðÜ—‘˜sŸy™y×0Ñ0Ô1ð& ˆˆvˆøô% ò Ø—‘Ü—L‘LØGØŸ)™)×-Ñ-ñ.à(ôõð" ˆô ò 	Ø(+¯	©	×(9Ñ(9×(?Ñ(?ÀÓ(DÑ%�	˜:Ø—‘Ü—L’Lð Ÿ9™9×.Ó.²	º:ðGð )ô	õð ˆð	ús   š)A ÁADÂA4DÄDc                 óô   — g }| j                   j                  r_| j                   j                  s| j                   j                  r3|j	                  t        j                  d| j                  z  d¬«      «       |S )Nz'Proxy model '%s' contains model fields.zmodels.E017rr  )r\   rz   r}   r~   r1  r	   re  rD   ©r”   rÿ  s     r>   rM  zModel._check_model`  sY   € àˆØ�9‰9�?Š?Ø�y‰y×%Ò%¨¯©×)EÒ)EØ—‘Ü—L‘LØAÀCÇLÁLÑPØ(ôôð ˆrA   c                 ó‚   — g }| j                   j                  D ]#  }|j                   |j                  di |¤Ž«       Œ% |S )zPerform all manager checks.r;   )r\   rÏ   rü  r  )r”   r–   rÿ  rØ   s       r>   rN  zModel._check_managersm  sA   € ð ˆØ—y‘y×)Ñ)ò 	3ˆGØ�M‰M˜-˜'Ÿ-™-Ñ1¨&Ñ1Õ2ð	3àˆrA   c                 óþ   — g }| j                   j                  D ]#  }|j                   |j                  di |¤Ž«       Œ% | j                   j                  D ]%  }|j                   |j                  dd| i|¤Ž«       Œ' |S )zPerform all field checks.Ú
from_modelr;   )r\   r}   rü  r  r~   )r”   r–   rÿ  r«   s       r>   rO  zModel._check_fieldsu  s{   € ð ˆØ—Y‘Y×+Ñ+ò 	1ˆEØ�M‰M˜+˜%Ÿ+™+Ñ/¨Ñ/Õ0ð	1à—Y‘Y×1Ñ1ò 	AˆEØ�M‰M˜+˜%Ÿ+™+Ñ?°Ð?¸Ñ?Õ@ð	AàˆrA   c                 óÀ  — g }g }| j                   j                  }d„ |D «       }d„ |D «       }|D ]¬  }|j                  j                  | |j                  j                  |j                  j
                  f}||v rS|j                  t        j                  d|j                  j                  j                   j                  z  | d¬«      «       Œœ|j                  |«       Œ® |S )zT
        Check if no relationship model is used by more than one m2m field.
        c              3   ój   K  — | ]+  }t        |j                  j                  t        «      sŒ(|–— Œ- y ­wr¶   )rq   r„   r…   rW   r¾   s     r>   rd   z=Model._check_m2m_through_same_relationship.<locals>.<genexpr>‹  s#   è ø€ ÒS˜¤z°!·.±.×2FÑ2FÌ	Õ'R”!ÑSùó   ‚)3¬3c              3   ój   K  — | ]+  }t        |j                  j                  t        «      sŒ(|–— Œ- y ­wr¶   )rq   r„   rm  rW   r¾   s     r>   rd   z=Model._check_m2m_through_same_relationship.<locals>.<genexpr>Ž  s#   è ø€ ÒU˜¤z°!·.±.×2HÑ2HÌ)Õ'T”!ÑUùr  zWThe model has two identical many-to-many relations through the intermediate model '%s'.zmodels.E003rk  )
r\   r~   r„   r…   rm  Úthrough_fieldsr1  r	   re  rw   )r”   rÿ  Úseen_intermediary_signaturesr€   r¥   Ú	signatures         r>   rP  z*Model._check_m2m_through_same_relationship  sÝ   € ð ˆØ')Ð$à—‘×-Ñ-ˆñ T˜VÔSˆñ V˜VÔUˆàò 	?ˆAà—‘×$Ñ$ØØ—‘×&Ñ&Ø—‘×-Ñ-ð	ˆIð Ð8Ñ8Ø—‘Ü—L‘Lð?àŸ.™.×0Ñ0×6Ñ6×<Ñ<ñ=ð  Ø(ôõð -×3Ñ3°IÕ>ð%	?ð& ˆrA   c                 óD  — | j                   j                  D �cg c].  }|j                  dk(  sŒ|| j                   j                  k7  sŒ-|‘Œ0 }}|rK|d   j                  s<| j                   j                  j                  dk(  rt        j                  d| d¬«      gS g S c c}w )z%Check if `id` field is a primary key.rb  r   zP'id' can only be used as a field name if the field also sets 'primary_key=True'.zmodels.E004rk  )r\   r}   rJ   r  Úprimary_keyr	   re  )r”   r¥   r€   s      r>   rR  zModel._check_id_field¥  s”   € ð —y‘y×-Ñ-ö
Ø°·±¸4³ÀAÈÏÉÏÉÓDUŠAð
ˆð 
ñ ˜& ™)×/Ò/°C·I±I·L±L×4EÑ4EÈÒ4Mä—‘ð/àØ$ô	ðð ð ˆIùò
s   ™B®BÁBc                 ó
  — g }i }| j                   j                  D ]é  }|j                   j                  D ]Î  }|j                  |j                  «      xs |j                  |j
                  «      xs d}|rp|j                  t        j                  d|j                  ›d|j                  j                   ›d|j                  ›d|j                  j                   ›d�	| d¬«      «       |||j                  <   |||j
                  <   ŒÐ Œë | j                   j                  D ]5  }|j                   j                  «       D ]  }||vsŒ|||j                  <   Œ Œ7 | j                   j                  j                  «       D ]€  }|sŒ|j                  |j                  «      xs d}|sŒ(|j                  t        j                  d|j                  › d|j                  › d|j                  j                   › d�| d	¬«      «       Œ‚ | j                   j                  D ]î  }|j                  |j                  «      xs |j                  |j
                  «      xs d}|j                  d
k(  xr$ |xr  |j                  d
k(  xr |j                  | k(  }|r[|sY|j                  t        j                  d|j                  ›d|j                  ›d|j                  j                   ›d�|d	¬«      «       |||j                  <   |||j
                  <   Œð |S )z2Forbid field shadowing in multi-table inheritance.NzThe field 'z' from parent model 'z' clashes with the field 'rk   zmodels.E005rk  z' from model 'zmodels.E006rb  )r\   r  r}   rÍ   rJ   rþ   r1  r	   re  r…   Ú
get_fieldsrŒ   r  )r”   rÿ  Úused_fieldsr©   r¥   Úclashrn   Úid_conflicts           r>   rS  zModel._check_field_name_clashes¸  sŸ  € ð ˆØˆð —i‘i×+Ñ+ò 	+ˆFØ—\‘\×.Ñ.ò +�Ø#Ÿ™¨¯©Ó/ÒU°;·?±?À1Ç9Á9Ó3MÒUÐQU�ÙØ—M‘MÜŸšð  %Ÿz›z¨5¯;©;×+<Ó+<¸a¿f»fÀaÇgÁgÇmÃmðUð !$Ø,ôô	ð '(�˜AŸF™FÑ#Ø)*�˜AŸI™IÒ&ñ+ð	+ð( —i‘i×+Ñ+ò 	,ˆFØ—\‘\×,Ñ,Ó.ò ,�Ø˜KÒ'Ø*+�K §¡Ò'ñ,ð	,ð Ÿ9™9×,Ñ,×3Ñ3Ó5ò 	ˆKÙØØ—O‘O K×$4Ñ$4Ó5Ò=¸ˆEÚØ—‘Ü—L‘LØ% k×&6Ñ&6Ð%7ð 8Ø!ŸJ™J˜< ~°e·k±k×6GÑ6GÐ5HÈðLàØ(ô	õð	ð —‘×'Ñ'ò 	'ˆAØ—O‘O A§F¡FÓ+ÒQ¨{¯©¸q¿y¹yÓ/IÒQÈTˆEð —‘˜$‘ÒV 5ÒV¨U¯Z©Z¸4Ñ-?ÒVÀEÇKÁKÐSVÑDVð ñ ™[Ø—‘Ü—L’Là./¯f«f°e·j³jÀ%Ç+Á+×BSÓBSðUàØ(ô	ôð #$ˆK˜Ÿ™ÑØ%&ˆK˜Ÿ	™	Ò"ð'	'ð* ˆrA   c           
      óþ   — g }g }| j                   j                  D ]_  }|j                  }|r>||v r:|j                  t	        j
                  d|j                  ›d|›d�d| d¬«      «       ŒO|j                  |«       Œa |S )NzField 'z' has column name 'z ' that is used by another field.z$Specify a 'db_column' for the field.zmodels.E007r`  )r\   r}   rÿ   r1  r	   re  rJ   )r”   Úused_column_namesrÿ  r¥   Úcolumn_names        r>   rW  z Model._check_column_name_clashesþ  s…   € ð ÐØˆà—‘×'Ñ'ò 	6ˆAØŸ(™(ˆKñ ˜{Ð.?Ñ?Ø—‘Ü—L’Là,-¯F«F²KðAàCØØ(ôõð "×(Ñ(¨Õ5ð	6ð" ˆrA   c                 ó"  — g }| j                   }|j                  d«      s|j                  d«      r,|j                  t	        j
                  d|z  | d¬«      «       |S t        |v r*|j                  t	        j
                  d|z  | d¬«      «       |S )Nr;  zgThe model name '%s' cannot start or end with an underscore as it collides with the query lookup syntax.zmodels.E023rk  zbThe model name '%s' cannot contain double underscores as it collides with the query lookup syntax.zmodels.E024)rD   Ú
startswithÚendswithr1  r	   re  r   )r”   rÿ  r‹   s      r>   rT  z)Model._check_model_name_db_lookup_clashes  s�   € àˆØ—\‘\ˆ
Ø× Ñ  Ô%¨×)<Ñ)<¸SÔ)AØ�M‰MÜ—‘ðCØEOñPàØ$ô	ôð" ˆô ˜:Ñ%Ø�M‰MÜ—‘ð@ØBLñMàØ$ô	ôð ˆrA   c                 óè   — g }| j                   j                  }d„ | j                   j                  d¬«      D «       }|D ]1  }||v sŒ|j                  t	        j
                  d|z  | d¬«      «       Œ3 |S )Nc              3   ód   K  — | ](  }|j                   r|j                  �|j                  –— Œ* y ­wr¶   )rR  Úrelated_modelrþ   r¾   s     r>   rd   zLModel._check_property_name_related_field_accessor_clashes.<locals>.<genexpr>4  s,   è ø€ ò #
àØ�}Š} §¡Ð!<ð �I�Iñ#
ùs   ‚.0F©Úreversez8The property '%s' clashes with a related field accessor.zmodels.E025rk  )r\   r  Ú_get_fieldsr1  r	   re  )r”   rÿ  r  Úrelated_field_accessorsÚaccessors        r>   rU  z9Model._check_property_name_related_field_accessor_clashes0  sƒ   € àˆØŸ™×2Ñ2ˆñ#
à—Y‘Y×*Ñ*°5Ð*Ó9ô#
Ðð
 0ò 		ˆHØ˜>Ò)Ø—‘Ü—L‘Lð$Ø&.ñ/àØ(ô	õð		ð ˆrA   c                 óª   — g }t        d„ | j                  j                  D «       «      dkD  r'|j                  t	        j
                  d| d¬«      «       |S )Nc              3   ó:   K  — | ]  }|j                   sŒd –— Œ y­w)r”  N)r…  r¾   s     r>   rd   z2Model._check_single_primary_key.<locals>.<genexpr>H  s   è ø€ ÒB�Q°A·M³MŒqÑBùs   ‚”r”  zBThe model cannot have more than one field with 'primary_key=True'.zmodels.E026rk  )Úsumr\   r}   r1  r	   re  ry  s     r>   rV  zModel._check_single_primary_keyE  sN   € àˆÜÑB˜#Ÿ)™)×0Ñ0ÔBÓBÀQÒFØ�M‰MÜ—‘ð*àØ$ô	ôð ˆrA   c                 ó†  — t        | j                  j                  t        t        f«      st        j                  d| d¬«      gS t        d„ | j                  j                  D «       «      rt        j                  d| d¬«      gS g }| j                  j                  D ]#  }|j                  | j                  |d«      «       Œ% |S )z,Check the value of "unique_together" option.z*'unique_together' must be a list or tuple.zmodels.E010rk  c              3   óJ   K  — | ]  }t        |t        t        f«       –— Œ y ­wr¶   )rq   ry   r¢  )rb   r€   s     r>   rd   z/Model._check_unique_together.<locals>.<genexpr>_  s&   è ø€ ò 
àô ˜6¤E¬4 =Ó1Ô1ñ
ùs   ‚!#z7All 'unique_together' elements must be lists or tuples.zmodels.E011r  )
rq   r\   r  ry   r¢  r	   re  rÐ   rü  Ú_check_local_fields)r”   rÿ  r€   s      r>   rX  zModel._check_unique_togetherS  s¾   € ô ˜#Ÿ)™)×3Ñ3´e¼T°]ÔCä—‘Ø@ØØ$ôðð ô ñ 
àŸ)™)×3Ñ3ô
ô 
ô
 —‘ØMØØ$ôðð ð ˆFØŸ)™)×3Ñ3ò R�Ø—‘˜c×5Ñ5°fÐ>OÓPÕQðRàˆMrA   c                 óÐ   — g }|D ]^  }t        j                  || «      sŒt        |   }| j                  j                  D ]#  }|j                  |j                  | |«      «       Œ% Œ` |S r¶   )r   rm  r   r\   r‘   rü  r  )r”   rK  rÿ  rì   r   rÙ   s         r>   rY  zModel._check_indexesq  si   € àˆØò 	<ˆBÜ×-Ñ-¨b°#Ô6ØÜ$ R™ˆJØŸ™×*Ñ*ò <�Ø—‘˜eŸk™k¨#¨zÓ:Õ;ñ<ð		<ð ˆrA   c                 ó0  — ddl m} i }| j                  j                  d¬«      D ]-  }|||j                  <   t        |d«      sŒ|||j                  <   Œ/ g }|D �]{  }	 ||   }t        |j                  |j                  «      r2|j                  t        j                  d|›d|›d|›d	�| d
¬«      «       Œ\t        ||j                  «      r1|j                  t        j                  |›d|›d|›d�| d¬«      «       Œ£t        |j                  t        «      r_|| j                  j                  vrGt!        |j"                  «      dkD  r/|j                  t        j                  |›d|›d�| d¬«      «       �Œ|| j                  j$                  vs�Œ6|j                  t        j                  d|›d|›d| j                  j&                  ›d	�d| d¬«      «       �Œ~ |S # t(        $ r2 |j                  t        j                  d|›d|›d	�| d¬«      «       Y �Œ»w xY w)Nr   )ÚmodelsFr”  rþ   rs  z' refers to a ManyToManyField 'z.', but ManyToManyFields are not permitted in 'rk   zmodels.E013rk  z! refers to a CompositePrimaryKey z0, but CompositePrimaryKeys are not permitted in rH   zmodels.E048r”  z refers to a ForeignObject zE with multiple 'from_fields', which is not supported for that option.zmodels.E049z' refers to field 'z' which is not local to model 'z4This issue may be caused by multi-table inheritance.zmodels.E016r`  z#' refers to the nonexistent field 'zmodels.E012)Ú	django.dbr¡  r\   r–  rJ   rS   rþ   rq   r„   ÚManyToManyRelr1  r	   re  r!   r"   r—  rù   rê  r}   r)  r  )r”   r€   Úoptionr¡  Úforward_fields_mapr«   rÿ  rc  s           r>   rž  zModel._check_local_fields|  s  € å$ð  ÐØ—Y‘Y×*Ñ*°5Ð*Ó9ò 	:ˆEØ-2Ð˜uŸz™zÑ*Ü�u˜iÕ(Ø49Ð" 5§=¡=Ò1ð	:ð
 ˆØ ó ?	ˆJð>Ø*¨:Ñ6�ô ˜e×0Ñ0°&×2FÑ2FÔGØ—M‘MÜŸšò !'Ú *Ú &ðð !$Ø,ô
õô    v×'AÑ'AÔBØ—M‘MÜŸ™Ø%˜jÐ(IØ)˜nð -,Ø,2¨:°Qð8ð !$Ø,ôõô ˜u×1Ñ1Ô3CÔDØ S§Y¡Y×%DÑ%DÑDÜ˜E×-Ñ-Ó.°Ò2à—M‘MÜŸ™Ø%˜jÐ(CÀJÀ>ð R&ð &ð !$Ø,ôöð  #§)¡)×"8Ñ"8Ó8Ø—M‘MÜŸšâ'-ªz¸3¿9¹9×;PÓ;PðRà!WØ #Ø,ôöðo?	ð@ ˆøô{ ò Ø—‘Ü—L’Lò #Ú&ðð
  Ø(ô÷
ðús   ÁGÇ7HÈHc           
      óP  — | j                   j                  rt        j                  d| d¬«      gS | j                   j                  s| j                   j
                  sg S t        | j                   j
                  t        t        f«      st        j                  d| d¬«      gS g }| j                   j
                  }d„ |D «       }d„ |D «       }g }g }|D ]-  }t        |v r|j                  |«       Œ|j                  |«       Œ/ |}|D ]Š  }| }d}|j                  t        «      D ]l  }		 |	d	k(  r|j                   j                  }n|j                   j                  |	«      }|j                  r$|j                  d
   j                   j"                  }nd}Œn ŒŒ |D �ch c]
  }|d	k7  sŒ	|’Œ }}g }
| j                   }t-        t/        j0                  d„ t/        |j2                  |j4                  «      D «       «      «      }|
j7                  ||z
  «       |
D ],  }|j                  t        j                  d|z  | d¬«      «       Œ. |S # t$        t&        f$ rR |�"|j)                  |	«      €;|j+                  |	«      €*|j                  t        j                  d|z  | d¬«      «       Y �Œ~w xY wc c}w )ze
        Check "ordering" option -- is it a list of strings and do all fields
        exist?
        z?'ordering' and 'order_with_respect_to' cannot be used together.zmodels.E021rk  zQ'ordering' must be a tuple or list (even if you want to order by only one field).zmodels.E014c              3   óN   K  — | ]  }t        |t        «      sŒ|d k7  sŒ|–— Œ y­w)ú?N)rq   r"  r¾   s     r>   rd   z(Model._check_ordering.<locals>.<genexpr>ë  s   è ø€ ÒG˜¤z°!´SÕ'9¸aÀ3»h”!ÑGùs   ‚%˜%ž%c              3   ó>   K  — | ]  }|j                  d «      –— Œ y­w)rÑ  N)Úremoveprefixr¾   s     r>   rd   z(Model._check_ordering.<locals>.<genexpr>î  s   è ø€ Ò6¨!�!—.‘. ×%Ñ6ùs   ‚Nr  éÿÿÿÿzJ'ordering' refers to the nonexistent field, related field, or lookup '%s'.zmodels.E015c              3   ó²   K  — | ]O  }|j                   r|j                  r|j                  |j                  fn|j                  j                  «       f–— ŒQ y ­wr¶   )rm   rQ  rJ   rþ   r«   Úrelated_query_namer¾   s     r>   rd   z(Model._check_ordering.<locals>.<genexpr>!	  sN   è ø€ ò  ð ð ŸNšN°1·:²:ð —V‘V˜QŸY™YÑ'àŸ'™'×4Ñ4Ó6Ð8ó9ñ ùs   ‚AA)r\   Ú_ordering_clashr	   re  rÅ   ri   rq   r¢  ry   r   r1  rw  r  r  rR  Ú
path_infosÚto_optsr…   r   ÚAttributeErrorÚget_transformÚ
get_lookupr†   r   Úfrom_iterabler€   rW  rü  )r”   rÿ  r€   Ú_fieldsÚrelated_fieldsr¥   r«   Ú_clsÚfldÚpartÚinvalid_fieldsrÔ   Úvalid_fieldsÚinvalid_fields                 r>   rZ  zModel._check_orderingË  sª  € ð �9‰9×$Ò$ä—‘ØUØØ$ôðð ð �9‰9×*Ò*°#·)±)×2DÒ2DØˆIä˜#Ÿ)™)×,Ñ,¬t´U¨mÔ<ä—‘ð'àØ$ô	ðð ð ˆØ—‘×#Ñ#ˆñ H˜VÔGˆñ 7¨vÔ6ˆð ˆØˆØò 	"ˆAÜ˜Q‰Ø×%Ñ% aÕ(à—‘˜qÕ!ð		"ð
 ˆð $ò 	ˆEØˆDØˆCØŸ™¤JÓ/ò �ðà˜t’|Ø"Ÿj™jŸm™m™à"Ÿj™j×2Ñ2°4Ó8˜Ø—’Ø"Ÿ~™~¨bÑ1×9Ñ9×?Ñ?™à#˜øñð	ð: $Ö1˜ q¨D£y’!Ð1ˆÐ1ð ˆð �y‰yˆÜÜ×Ññ  ô ˜tŸ{™{¨D×,@Ñ,@ÓAô ó ó	
ˆð 	×Ñ˜f |Ñ3Ô4à+ò 	ˆMØ�M‰MÜ—‘ð-Ø/<ñ=àØ$ô	õð	ð ˆøô[ *¬>Ð:ò Ø�{Ø×)Ñ)¨$Ó/Ð7¸C¿N¹NÈ4Ó<PÐ<XàŸ™Ü"ŸL™Lð!AØCHñ!Ià$'Ø#0ô	ôúð	üò 2s    Ä%A)H?Æ
J#Æ!J#È?AJ ÊJ c                 ó€  — |sg S g }d}d}|D ]f  }t        j                  || «      sŒt        |   }|j                  j	                  «       }|�|j
                  j                  rŒV|€|}|}Œ]||k  sŒc|}|}Œh |€|S | j                  j                  D ]_  }|j                  �Œ|j                  x}	€Œt        |	«      |kD  sŒ.|j                  t        j                  d|	›d|›d|›d�d| d¬«      «       Œa | j                  j                  D ]³  }t!        |j"                  j$                  t&        «      rŒ(|j"                  j$                  j                  j                  D ]_  }
|
j                  �Œ|
j                  x}€Œt        |«      |kD  sŒ.|j                  t        j                  d	|›d|›d|›d�d
| d¬«      «       Œa Œµ |S )z–
        Check that any auto-generated column names are shorter than the limits
        for each database in which the model will be created.
        Nz.Autogenerated column name too long for field "z". Maximum length is "z" for database "z".z/Set the column name manually using 'db_column'.zmodels.E018r`  z2Autogenerated column name too long for M2M field "z\Use 'through' to create a separate model for M2M and then set column_name using 'db_column'.zmodels.E019)r   rm  r   ÚopsÚmax_name_lengthr¤  Útruncates_namesr\   r}   Ú	db_columnrÿ   rù   r1  r	   re  r~   rq   r„   rm  r"  )r”   rK  rÿ  Úallowed_lenÚdb_aliasrì   r   r¿  r¥   r�  Úm2mÚrel_names               r>   rQ  zModel._check_long_column_names8	  sÍ  € ñ ØˆIØˆØˆØˆð ò 	"ˆBä×-Ñ-¨b°#Ô6ØÜ$ R™ˆJØ(Ÿn™n×<Ñ<Ó>ˆOØÐ&¨*×*=Ñ*=×*MÒ*MØàÐ&Ø"1�KØ!‘HØ$ {Ó2Ø"1�KØ!‘Hð	"ð  ÐØˆMà—‘×'Ñ'ò 	ˆAð —‘Ñ#Ø$%§H¡HÐ,�[Ñ9Ü˜Ó$ {Ó2à—‘Ü—L’Lò 'ª²Xð?ð OØØ(ôõ	ð	ð& —‘×-Ñ-ò 	ˆAä˜!Ÿ.™.×0Ñ0´#Ô6Øð —~‘~×-Ñ-×3Ñ3×@Ñ@ò �à—M‘MÑ)Ø%(§Z¡ZÐ/˜Ñ<Ü˜H›¨Ó3à—M‘MÜŸšò  (ª²hð@ð!Rð !$Ø,ô
õñð	ð6 ˆrA   c              #   ó  K  — t        |t        «      rz|j                  D ]j  }t        |t        «      r?|\  }}t        |j	                  t
        «      «      –— | j                  |«      E d {  –—†  ŒR| j                  |«      E d {  –—†  Œl y t        |t        «      r+t        |j                  j	                  t
        «      «      –— y t        |d«      r/|j                  «       D ]  }| j                  |«      E d {  –—†  Œ y y 7 Œ˜7 Œ€7 Œ­w)NÚget_source_expressions)rq   r*   Úchildrenry   rw  r   rè  r)   rJ   rS   rÇ  )r”   ÚexprÚchildÚlookuprT   Úsrc_exprs         r>   rè  zModel._get_expr_referencesˆ	  sá   è ø€ ä�dœAÔØŸ™ò ?�Ü˜e¤UÔ+Ø$)‘M�F˜EÜ §¡¬ZÓ 8Ó9Ò9Ø"×7Ñ7¸Ó>×>Ñ>à"×7Ñ7¸Ó>×>Ñ>ñ?ô ˜œaÔ Ü˜Ÿ	™	Ÿ™¬
Ó3Ó4Ó4Ü�TÐ3Ô4Ø ×7Ñ7Ó9ò >�Ø×3Ñ3°HÓ=×=Ñ=ñ>ð 5ð ?øà>øð
 >ús7   ‚A)D
Á+DÁ,D
ÂDÂA5D
Ã;DÃ<	D
ÄD
ÄD
c                 óÐ   — g }|D ]^  }t        j                  || «      sŒt        |   }| j                  j                  D ]#  }|j                  |j                  | |«      «       Œ% Œ` |S r¶   )r   rm  r   r\   r  rü  r  )r”   rK  rÿ  rì   r   r  s         r>   r[  zModel._check_constraints˜	  so   € àˆØò 	AˆBÜ×-Ñ-¨b°#Ô6ØÜ$ R™ˆJØ!Ÿi™i×3Ñ3ò A�
Ø—‘˜j×.Ñ.¨s°JÓ?Õ@ñAð		Að ˆrA   r¶   )NNN)FFFNN)FNFFNNr  )NTT)IrD   rE   rF   r  Úclassmethodr  r?   rC   r   r$  r-  r&  r<  r>  rA  rá   r  r"  rF  r_  ra  rd  rj  Úalters_datary  r}  rt  r„  r…  rœ  r§  rž  rn  rÃ  rÆ  rÌ  rÞ  rÆ   rð  ró  rõ  r  rø  rù  rú  r+  r#  r=  rB  rE  rD  r  r]  r\  rL  rM  rN  rO  rP  rR  rS  rW  rT  rU  rV  rX  rY  rž  rZ  rQ  rè  r[  rY   râ   s   @r>   rï   rï   á  sK  ø„ ôq2ðf ñ
ó ð
ò<òEò!òò
1òò"$ó,.ò;ñ 
�+˜{Ó	+€Bó
ò
óR/óh
ò
,ð( ØØØôD
ðL €DÔð
 ØØØô
ð €EÔàñó ðð* ØØØØóDðL !€IÔð HLó-ðb ØØØØØóGòR%:òN
ò3ó4ól	"ð €FÔó
ð €GÔò
òò*(ó.,ò\Mòó*ó B*òH/òbò>
ò"ò@ó*ó(-*ó^*ð8 ñ"ó ð"ðH ñ8ó ð8ðt ñó ðð, ñó ðð4 ñ
ó ð
ð ñó ðð ñó ðð ñ#ó ð#ðJ ñó ðð$ ñCó ðCðJ ñó ðð2 ñó ðð. ñó ðð( ñó ðð ñó ðð: ñó ðð ñLó ðLð\ ñjó ðjðX ñMó ðMð^ ñ>ó ð>ð ñó ôrA   rï   )Ú	metaclassc           
      ó  — |j                   j                  }|j                  | «      } |j                  j	                  |«      j
                  di |¤Žj                  t        |«      D ��cg c]  \  }} |||¬«      ‘Œ c}}dg«       y c c}}w )N)r  r“  r“  r;   )r\   rÅ   Úget_forward_related_filterrÃ   rM  rO  Úbulk_updateÚ	enumerate)r=   Úordered_objÚid_listrN  Ú	order_wrtr¯  rÚ  r  s           r>   Úmethod_set_orderrØ  «	  sx   € Ø×!Ñ!×7Ñ7€IØ×6Ñ6°tÓ<€KØ0€K×Ñ×"Ñ" 5Ó)×0Ñ0Ñ?°;Ñ?×KÑKÜ;DÀWÓ;M×N©i¨e°R‰˜ 5Ö	)ÓNØ	ˆ
õùÛNs   Á*B	
c                 óê   — |j                   j                  }|j                  | «      }|j                   j                  j                  } |j
                  j                  di |¤Žj                  |d¬«      S )NT)Úflatr;   )r\   rÅ   rÒ  r  rJ   rÃ   rO  Úvalues_list)r=   rÕ  r×  r¯  Úpk_names        r>   Úmethod_get_orderrÝ  ´	  sf   € Ø×!Ñ!×7Ñ7€IØ×6Ñ6°tÓ<€KØ×Ñ×"Ñ"×'Ñ'€GØ%ˆ;×Ñ×%Ñ%Ñ4¨Ñ4×@Ñ@ÀÈtÐ@ÓTÐTrA   c                 óÜ   — t        |d| j                  j                  «       z  t        t        | «      «       t        |d| j                  j                  «       z  t        t
        | «      «       y )Nzget_%s_orderzset_%s_order)r·   rD   Úlowerr   rÝ  rØ  )r…   r“  s     r>   rÉ   rÉ   »	  sZ   € ÜØØ˜Ÿ™×-Ñ-Ó/Ñ/ÜÔ&¨Ó.ôô
 ØØ˜Ÿ™×-Ñ-Ó/Ñ/ÜÔ&¨Ó.õrA   c                 ón   — t        | t        «      rt        j                  | Ž }n| }|j	                  |«      S )z7Used to unpickle Model subclasses with deferred fields.)rq   ry   r   rt  rp   )Úmodel_idr…   s     r>   r*  r*  Í	  s0   € ä�(œEÔ"Ü—‘ Ð)‰ð ˆØ�=‰=˜ÓÐrA   Tr¶   )_r�   rQ   r8  Úcollectionsr   Ú	functoolsr   Ú	itertoolsr   Úasgiref.syncr   r'  Údjango.appsr   Údjango.confr   Údjango.corer	   Údjango.core.exceptionsr
   r   r   r   r   r   r   r¢  r   r   r   r   r   r   Údjango.db.modelsr   r   r   r   r   Údjango.db.models.constantsr   Údjango.db.models.deletionr   r   Údjango.db.models.expressionsr    Ú!django.db.models.fields.compositer!   Údjango.db.models.fields.relatedr"   r#   r$   r%   Údjango.db.models.functionsr&   Údjango.db.models.managerr'   Údjango.db.models.optionsr(   Údjango.db.models.queryr)   r*   Údjango.db.models.signalsr+   r,   r-   r.   r/   Údjango.db.models.utilsr0   r1   Údjango.utils.encodingr2   Údjango.utils.hashabler3   Údjango.utils.textr4   r5   Údjango.utils.translationr6   r;  r8   r÷   rN   rU   rI   rW   rä   rë   rï   rØ  rÝ  rÉ   r*  Ú__safe_for_unpickle__r;   rA   r>   ú<module>rû     sù   ðÛ Û Û Ý #Ý #Ý å &ã Ý Ý  Ý ÷÷ ñ ÷÷ ÷ WÕ VÝ 1ß 8Ý 8Ý A÷ó õ 0Ý ,Ý ,ß '÷õ ÷ @Ý +Ý /ß 5Ý 6÷"ñ "ñ ‹:€òò$Pô
l)�ô l)÷^ñ ÷	5ñ 	5ô@ˆJ )õ @óT>òUò
ò$ ð (,€Õ $rA   