Coverage for sqlmodel/main.py: 93%

353 statements  

« prev     ^ index     » next       coverage.py v7.6.12, created at 2025-03-07 05:42 +0000

1import ipaddress 1gabcdef

2import uuid 1gabcdef

3import weakref 1gabcdef

4from datetime import date, datetime, time, timedelta 1gabcdef

5from decimal import Decimal 1gabcdef

6from enum import Enum 1gabcdef

7from pathlib import Path 1gabcdef

8from typing import ( 1gabcdef

9 TYPE_CHECKING, 

10 AbstractSet, 

11 Any, 

12 Callable, 

13 ClassVar, 

14 Dict, 

15 List, 

16 Mapping, 

17 Optional, 

18 Sequence, 

19 Set, 

20 Tuple, 

21 Type, 

22 TypeVar, 

23 Union, 

24 cast, 

25 overload, 

26) 

27 

28from pydantic import BaseModel, EmailStr 1gabcdef

29from pydantic.fields import FieldInfo as PydanticFieldInfo 1gabcdef

30from sqlalchemy import ( 1gabcdef

31 Boolean, 

32 Column, 

33 Date, 

34 DateTime, 

35 Float, 

36 ForeignKey, 

37 Integer, 

38 Interval, 

39 Numeric, 

40 inspect, 

41) 

42from sqlalchemy import Enum as sa_Enum 1gabcdef

43from sqlalchemy.orm import ( 1gabcdef

44 Mapped, 

45 RelationshipProperty, 

46 declared_attr, 

47 registry, 

48 relationship, 

49) 

50from sqlalchemy.orm.attributes import set_attribute 1gabcdef

51from sqlalchemy.orm.decl_api import DeclarativeMeta 1gabcdef

52from sqlalchemy.orm.instrumentation import is_instrumented 1gabcdef

53from sqlalchemy.sql.schema import MetaData 1gabcdef

54from sqlalchemy.sql.sqltypes import LargeBinary, Time, Uuid 1gabcdef

55from typing_extensions import Literal, TypeAlias, deprecated, get_origin 1gabcdef

56 

57from ._compat import ( # type: ignore[attr-defined] 1gabcdef

58 IS_PYDANTIC_V2, 

59 PYDANTIC_MINOR_VERSION, 

60 BaseConfig, 

61 ModelField, 

62 ModelMetaclass, 

63 Representation, 

64 SQLModelConfig, 

65 Undefined, 

66 UndefinedType, 

67 _calculate_keys, 

68 finish_init, 

69 get_annotations, 

70 get_config_value, 

71 get_field_metadata, 

72 get_model_fields, 

73 get_relationship_to, 

74 get_sa_type_from_field, 

75 init_pydantic_private_attrs, 

76 is_field_noneable, 

77 is_table_model_class, 

78 post_init_field_info, 

79 set_config_value, 

80 sqlmodel_init, 

81 sqlmodel_validate, 

82) 

83from .sql.sqltypes import AutoString 1gabcdef

84 

85if TYPE_CHECKING: 1gabcdef

86 from pydantic._internal._model_construction import ModelMetaclass as ModelMetaclass 

87 from pydantic._internal._repr import Representation as Representation 

88 from pydantic_core import PydanticUndefined as Undefined 

89 from pydantic_core import PydanticUndefinedType as UndefinedType 

90 

91_T = TypeVar("_T") 1gabcdef

92NoArgAnyCallable = Callable[[], Any] 1gabcdef

93IncEx: TypeAlias = Union[ 1gabcdef

94 Set[int], 

95 Set[str], 

96 Mapping[int, Union["IncEx", bool]], 

97 Mapping[str, Union["IncEx", bool]], 

98] 

99OnDeleteType = Literal["CASCADE", "SET NULL", "RESTRICT"] 1gabcdef

100 

101 

102def __dataclass_transform__( 1abcdef

103 *, 

104 eq_default: bool = True, 

105 order_default: bool = False, 

106 kw_only_default: bool = False, 

107 field_descriptors: Tuple[Union[type, Callable[..., Any]], ...] = (()), 

108) -> Callable[[_T], _T]: 

109 return lambda a: a 1gabcdef

110 

111 

112class FieldInfo(PydanticFieldInfo): 1gabcdef

113 def __init__(self, default: Any = Undefined, **kwargs: Any) -> None: 1gabcdef

114 primary_key = kwargs.pop("primary_key", False) 2g 2fwfxfwm*m+msnHn!m6oor~ovrJrCrZo[o*nLoEoloxmmo4dymzmAm1nvmrnInSo5dnooopoBm2n3n!n,k-kudvdXm3f4f5f6f7f8f9f!fFnGn.k/k7g'k(k)k*k*b8g9g+k+bufvf:k;kCmDmEm=k?k@k[k,b^ od]kFm^k_k`k{k|k}kGmBdpdXdwdxdqdydrdsdtdzdAd~kalblcldlelflglhliljlklllmlnlolplqlrla te~daeylYmZm,mtnRm7oprapwrKrDr0o]o#nMoFo;nzl=nRdAlBlClJnsl#munToYd?n@n+nDlKnLn4n!g#g-b.bHmuevewexeyezeAeBe|m}m$g%gyf?f@f[f]fw #fzfXgx 6d7d'g(gElFlGl)g*g+g,gy h _ -gHl.g/g:g;g=g?gIl~c` Cd/b:b{ ;b| ( } =b?b@g[g]g^g_g`g{g|g}g~gahbhchdhehfhghhhihb CebeceJl0m1m-mvnSm8oqrbpxrLrEr1o^o$nNoGo[nKl]nSdLlMlNlMntl$mwnUoZd^n_n,nOlNnOn5njhkh@b[b]b^bImDeEeFeGeHeIeJeKe~manlhmh.mAfBf^f_f`f{f|f}f~fagz A $f%fCfDfYgB C 8d9d!d#dnhohPlQlRlphqhrhshD E i j ~ abthSluhvhwhxhyhzhTladbdbbcbDdEd_b`b{b|bdbeb}b~bfbgb) * hbibacbcccdcAhBhChDhEhFhGhHhIhJhKhLhMhNhOhPhQhRhShc LeMedeeefegeUl2m3m/mxnTm9orrcpyrMrFr2o_o%nOoHo`nVl{nTdWlXlYlPnul%mynVo0d|n}n-nZlQnRn6nThUhVhWhecfcgchcicjcJmKmNeOePeQeReSeTeUeVeWeXeYeZe0e1e2ebncndnenXhYhZh0h:m;mEfFfGfbgcgdgegfggghgigjgkglgmgF G H 'f(f)fHfIfJfZg0gI J K $d%d'd(d)d*d1h2h3h4h0l1l2l3l4l5l5h6h7h8h9h!h#h$hL M N k l m jbkblb%h'h6l7l(h)h*h+h,h-h.h/h:h;h=h?h8l9lcdddedmbnbobFdGdHdkclcmcncocpcpbqbrbqcrcscsbtbub+ , - vbwbxbtcucvcwcxcyc@h[h]h^h_h`h{h|h}h~haibicidieifigihiiijikiliminioipiqirisitiuiviwixiyiziAiBid 3e4eheiejeke!l4m5m=mznUm!osrdpzrNrGr3o`o'nPoIo~n#laoUd$l%l'lSnvl'mAnWo1dboco.n(lTnUn7nCiDiEiFizcAcBcCcDcEcLmMm5e6e7e8e9e!e#e$e%e'e(e)e*e+e,e-efngnhninGiHiIiJi?m@mKfLfMfngogpgqgrgsgtgugvgwgxgygO P Q *f+f,fNfOfPf1g2gR S T +d,d-d.d/d:dKiLiMiNi)l*l+l,l-l.lOiPiQiRiSiTiUiViU V W n o p ybzbAbWiXi/l:lYiZi0i1i2i3i4i5i6i7i8i9i;l=lfdgdhdBbCbDbIdJdKdFcGcHcIcJcKcEbFbGbLcMcNcHbIbJb. / : KbLbMbOcPcQcRcScTc!i#i$i%i'i(i)i*i+i,i-i.i/i:i;i=i?i@i[i]i^i_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkje .e/elemeneoe?l6m7m[mBnVm#otrepArOrHr4o{o(nQoJodo@leoVd[l]l^lVnwl(mCnXo2dfogo/n_lWnXn8nljmjnjojUcVcWcXcYcZcNmOm:e;e=e?e@e[e]e^e_e`e{e|e}e~eafbfjnknlnmnpjqjrjsj]m^mQfRfSfzgAgBgCgDgEgFgGgHgIgJgKgX Y Z -f.f/fTfUfVf3g4g0 1 2 ;d=d?d@d[d]dtjujvjwj`l{l|l}l~lamxjyjzjAjBjCjDjEj3 4 5 q r s NbObPbFjGjbmcmHjIjJjKjLjMjNjOjPjQjRjSjdmemidjdkdQbRbSbLdMdNd0c1c2c3c4c5cTbUbVb6c7c8cWbXbYb; = ? Zb0b1b9c!c#c$c%c'cTjUjVjWjXjYjZj0j1j2j3j4j5j6j7j8j9j!j#j$j%j'j(j)j*j+j,j-j.j/j:j;j=j?j@j[j]j^jf cfdfpeqeresefm8m9m_mDnWm$ourfpBrPrIr5o|o)nRoKohogmioWdhmimjmYnxl)mEnYo3djoko:nkmZn0n9n_j`j{j|j(c)c*c+c,c-cPmQmefffgfhfifjfkflfmfnfofpfqfrfsftfnnonpnqn}j~jakbk`m{mWfXfYfLgMgNgOgPgQgRgSgTgUgVgWg6 7 8 :f;f=fZf0f1f5g6g9 ! # ^d_d`d{d|d}dckdkekfklmmmnmompmqmgkhkikjkkklkmknk$ % ' t u v 2b3b4bokpkrmsmqkrksktkukvkwkxkykzkAkBktmumldmdnd5b6b7bOdPdQd.c/c:c;c=c?c8b9b!b@c[c]c#b$b%b@ [ ] 'b(b)b^c_c`c{c|c}cCkDkEkFkGkHkIkJkKkLkMkNkOkPkQkRkSkTkUkVkWkXkYkZk0k1k2k3k4k5k6k7k8k9k!k#k$k%k

115 nullable = kwargs.pop("nullable", Undefined) 2g 2fwfxfwm*m+msnHn!m6oor~ovrJrCrZo[o*nLoEoloxmmo4dymzmAm1nvmrnInSo5dnooopoBm2n3n!n,k-kudvdXm3f4f5f6f7f8f9f!fFnGn.k/k7g'k(k)k*k*b8g9g+k+bufvf:k;kCmDmEm=k?k@k[k,b^ od]kFm^k_k`k{k|k}kGmBdpdXdwdxdqdydrdsdtdzdAd~kalblcldlelflglhliljlklllmlnlolplqlrla te~daeylYmZm,mtnRm7oprapwrKrDr0o]o#nMoFo;nzl=nRdAlBlClJnsl#munToYd?n@n+nDlKnLn4n!g#g-b.bHmuevewexeyezeAeBe|m}m$g%gyf?f@f[f]fw #fzfXgx 6d7d'g(gElFlGl)g*g+g,gy h _ -gHl.g/g:g;g=g?gIl~c` Cd/b:b{ ;b| ( } =b?b@g[g]g^g_g`g{g|g}g~gahbhchdhehfhghhhihb CebeceJl0m1m-mvnSm8oqrbpxrLrEr1o^o$nNoGo[nKl]nSdLlMlNlMntl$mwnUoZd^n_n,nOlNnOn5njhkh@b[b]b^bImDeEeFeGeHeIeJeKe~manlhmh.mAfBf^f_f`f{f|f}f~fagz A $f%fCfDfYgB C 8d9d!d#dnhohPlQlRlphqhrhshD E i j ~ abthSluhvhwhxhyhzhTladbdbbcbDdEd_b`b{b|bdbeb}b~bfbgb) * hbibacbcccdcAhBhChDhEhFhGhHhIhJhKhLhMhNhOhPhQhRhShc LeMedeeefegeUl2m3m/mxnTm9orrcpyrMrFr2o_o%nOoHo`nVl{nTdWlXlYlPnul%mynVo0d|n}n-nZlQnRn6nThUhVhWhecfcgchcicjcJmKmNeOePeQeReSeTeUeVeWeXeYeZe0e1e2ebncndnenXhYhZh0h:m;mEfFfGfbgcgdgegfggghgigjgkglgmgF G H 'f(f)fHfIfJfZg0gI J K $d%d'd(d)d*d1h2h3h4h0l1l2l3l4l5l5h6h7h8h9h!h#h$hL M N k l m jbkblb%h'h6l7l(h)h*h+h,h-h.h/h:h;h=h?h8l9lcdddedmbnbobFdGdHdkclcmcncocpcpbqbrbqcrcscsbtbub+ , - vbwbxbtcucvcwcxcyc@h[h]h^h_h`h{h|h}h~haibicidieifigihiiijikiliminioipiqirisitiuiviwixiyiziAiBid 3e4eheiejeke!l4m5m=mznUm!osrdpzrNrGr3o`o'nPoIo~n#laoUd$l%l'lSnvl'mAnWo1dboco.n(lTnUn7nCiDiEiFizcAcBcCcDcEcLmMm5e6e7e8e9e!e#e$e%e'e(e)e*e+e,e-efngnhninGiHiIiJi?m@mKfLfMfngogpgqgrgsgtgugvgwgxgygO P Q *f+f,fNfOfPf1g2gR S T +d,d-d.d/d:dKiLiMiNi)l*l+l,l-l.lOiPiQiRiSiTiUiViU V W n o p ybzbAbWiXi/l:lYiZi0i1i2i3i4i5i6i7i8i9i;l=lfdgdhdBbCbDbIdJdKdFcGcHcIcJcKcEbFbGbLcMcNcHbIbJb. / : KbLbMbOcPcQcRcScTc!i#i$i%i'i(i)i*i+i,i-i.i/i:i;i=i?i@i[i]i^i_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkje .e/elemeneoe?l6m7m[mBnVm#otrepArOrHr4o{o(nQoJodo@leoVd[l]l^lVnwl(mCnXo2dfogo/n_lWnXn8nljmjnjojUcVcWcXcYcZcNmOm:e;e=e?e@e[e]e^e_e`e{e|e}e~eafbfjnknlnmnpjqjrjsj]m^mQfRfSfzgAgBgCgDgEgFgGgHgIgJgKgX Y Z -f.f/fTfUfVf3g4g0 1 2 ;d=d?d@d[d]dtjujvjwj`l{l|l}l~lamxjyjzjAjBjCjDjEj3 4 5 q r s NbObPbFjGjbmcmHjIjJjKjLjMjNjOjPjQjRjSjdmemidjdkdQbRbSbLdMdNd0c1c2c3c4c5cTbUbVb6c7c8cWbXbYb; = ? Zb0b1b9c!c#c$c%c'cTjUjVjWjXjYjZj0j1j2j3j4j5j6j7j8j9j!j#j$j%j'j(j)j*j+j,j-j.j/j:j;j=j?j@j[j]j^jf cfdfpeqeresefm8m9m_mDnWm$ourfpBrPrIr5o|o)nRoKohogmioWdhmimjmYnxl)mEnYo3djoko:nkmZn0n9n_j`j{j|j(c)c*c+c,c-cPmQmefffgfhfifjfkflfmfnfofpfqfrfsftfnnonpnqn}j~jakbk`m{mWfXfYfLgMgNgOgPgQgRgSgTgUgVgWg6 7 8 :f;f=fZf0f1f5g6g9 ! # ^d_d`d{d|d}dckdkekfklmmmnmompmqmgkhkikjkkklkmknk$ % ' t u v 2b3b4bokpkrmsmqkrksktkukvkwkxkykzkAkBktmumldmdnd5b6b7bOdPdQd.c/c:c;c=c?c8b9b!b@c[c]c#b$b%b@ [ ] 'b(b)b^c_c`c{c|c}cCkDkEkFkGkHkIkJkKkLkMkNkOkPkQkRkSkTkUkVkWkXkYkZk0k1k2k3k4k5k6k7k8k9k!k#k$k%k

116 foreign_key = kwargs.pop("foreign_key", Undefined) 2g 2fwfxfwm*m+msnHn!m6oor~ovrJrCrZo[o*nLoEoloxmmo4dymzmAm1nvmrnInSo5dnooopoBm2n3n!n,k-kudvdXm3f4f5f6f7f8f9f!fFnGn.k/k7g'k(k)k*k*b8g9g+k+bufvf:k;kCmDmEm=k?k@k[k,b^ od]kFm^k_k`k{k|k}kGmBdpdXdwdxdqdydrdsdtdzdAd~kalblcldlelflglhliljlklllmlnlolplqlrla te~daeylYmZm,mtnRm7oprapwrKrDr0o]o#nMoFo;nzl=nRdAlBlClJnsl#munToYd?n@n+nDlKnLn4n!g#g-b.bHmuevewexeyezeAeBe|m}m$g%gyf?f@f[f]fw #fzfXgx 6d7d'g(gElFlGl)g*g+g,gy h _ -gHl.g/g:g;g=g?gIl~c` Cd/b:b{ ;b| ( } =b?b@g[g]g^g_g`g{g|g}g~gahbhchdhehfhghhhihb CebeceJl0m1m-mvnSm8oqrbpxrLrEr1o^o$nNoGo[nKl]nSdLlMlNlMntl$mwnUoZd^n_n,nOlNnOn5njhkh@b[b]b^bImDeEeFeGeHeIeJeKe~manlhmh.mAfBf^f_f`f{f|f}f~fagz A $f%fCfDfYgB C 8d9d!d#dnhohPlQlRlphqhrhshD E i j ~ abthSluhvhwhxhyhzhTladbdbbcbDdEd_b`b{b|bdbeb}b~bfbgb) * hbibacbcccdcAhBhChDhEhFhGhHhIhJhKhLhMhNhOhPhQhRhShc LeMedeeefegeUl2m3m/mxnTm9orrcpyrMrFr2o_o%nOoHo`nVl{nTdWlXlYlPnul%mynVo0d|n}n-nZlQnRn6nThUhVhWhecfcgchcicjcJmKmNeOePeQeReSeTeUeVeWeXeYeZe0e1e2ebncndnenXhYhZh0h:m;mEfFfGfbgcgdgegfggghgigjgkglgmgF G H 'f(f)fHfIfJfZg0gI J K $d%d'd(d)d*d1h2h3h4h0l1l2l3l4l5l5h6h7h8h9h!h#h$hL M N k l m jbkblb%h'h6l7l(h)h*h+h,h-h.h/h:h;h=h?h8l9lcdddedmbnbobFdGdHdkclcmcncocpcpbqbrbqcrcscsbtbub+ , - vbwbxbtcucvcwcxcyc@h[h]h^h_h`h{h|h}h~haibicidieifigihiiijikiliminioipiqirisitiuiviwixiyiziAiBid 3e4eheiejeke!l4m5m=mznUm!osrdpzrNrGr3o`o'nPoIo~n#laoUd$l%l'lSnvl'mAnWo1dboco.n(lTnUn7nCiDiEiFizcAcBcCcDcEcLmMm5e6e7e8e9e!e#e$e%e'e(e)e*e+e,e-efngnhninGiHiIiJi?m@mKfLfMfngogpgqgrgsgtgugvgwgxgygO P Q *f+f,fNfOfPf1g2gR S T +d,d-d.d/d:dKiLiMiNi)l*l+l,l-l.lOiPiQiRiSiTiUiViU V W n o p ybzbAbWiXi/l:lYiZi0i1i2i3i4i5i6i7i8i9i;l=lfdgdhdBbCbDbIdJdKdFcGcHcIcJcKcEbFbGbLcMcNcHbIbJb. / : KbLbMbOcPcQcRcScTc!i#i$i%i'i(i)i*i+i,i-i.i/i:i;i=i?i@i[i]i^i_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkje .e/elemeneoe?l6m7m[mBnVm#otrepArOrHr4o{o(nQoJodo@leoVd[l]l^lVnwl(mCnXo2dfogo/n_lWnXn8nljmjnjojUcVcWcXcYcZcNmOm:e;e=e?e@e[e]e^e_e`e{e|e}e~eafbfjnknlnmnpjqjrjsj]m^mQfRfSfzgAgBgCgDgEgFgGgHgIgJgKgX Y Z -f.f/fTfUfVf3g4g0 1 2 ;d=d?d@d[d]dtjujvjwj`l{l|l}l~lamxjyjzjAjBjCjDjEj3 4 5 q r s NbObPbFjGjbmcmHjIjJjKjLjMjNjOjPjQjRjSjdmemidjdkdQbRbSbLdMdNd0c1c2c3c4c5cTbUbVb6c7c8cWbXbYb; = ? Zb0b1b9c!c#c$c%c'cTjUjVjWjXjYjZj0j1j2j3j4j5j6j7j8j9j!j#j$j%j'j(j)j*j+j,j-j.j/j:j;j=j?j@j[j]j^jf cfdfpeqeresefm8m9m_mDnWm$ourfpBrPrIr5o|o)nRoKohogmioWdhmimjmYnxl)mEnYo3djoko:nkmZn0n9n_j`j{j|j(c)c*c+c,c-cPmQmefffgfhfifjfkflfmfnfofpfqfrfsftfnnonpnqn}j~jakbk`m{mWfXfYfLgMgNgOgPgQgRgSgTgUgVgWg6 7 8 :f;f=fZf0f1f5g6g9 ! # ^d_d`d{d|d}dckdkekfklmmmnmompmqmgkhkikjkkklkmknk$ % ' t u v 2b3b4bokpkrmsmqkrksktkukvkwkxkykzkAkBktmumldmdnd5b6b7bOdPdQd.c/c:c;c=c?c8b9b!b@c[c]c#b$b%b@ [ ] 'b(b)b^c_c`c{c|c}cCkDkEkFkGkHkIkJkKkLkMkNkOkPkQkRkSkTkUkVkWkXkYkZk0k1k2k3k4k5k6k7k8k9k!k#k$k%k

117 ondelete = kwargs.pop("ondelete", Undefined) 2g 2fwfxfwm*m+msnHn!m6oor~ovrJrCrZo[o*nLoEoloxmmo4dymzmAm1nvmrnInSo5dnooopoBm2n3n!n,k-kudvdXm3f4f5f6f7f8f9f!fFnGn.k/k7g'k(k)k*k*b8g9g+k+bufvf:k;kCmDmEm=k?k@k[k,b^ od]kFm^k_k`k{k|k}kGmBdpdXdwdxdqdydrdsdtdzdAd~kalblcldlelflglhliljlklllmlnlolplqlrla te~daeylYmZm,mtnRm7oprapwrKrDr0o]o#nMoFo;nzl=nRdAlBlClJnsl#munToYd?n@n+nDlKnLn4n!g#g-b.bHmuevewexeyezeAeBe|m}m$g%gyf?f@f[f]fw #fzfXgx 6d7d'g(gElFlGl)g*g+g,gy h _ -gHl.g/g:g;g=g?gIl~c` Cd/b:b{ ;b| ( } =b?b@g[g]g^g_g`g{g|g}g~gahbhchdhehfhghhhihb CebeceJl0m1m-mvnSm8oqrbpxrLrEr1o^o$nNoGo[nKl]nSdLlMlNlMntl$mwnUoZd^n_n,nOlNnOn5njhkh@b[b]b^bImDeEeFeGeHeIeJeKe~manlhmh.mAfBf^f_f`f{f|f}f~fagz A $f%fCfDfYgB C 8d9d!d#dnhohPlQlRlphqhrhshD E i j ~ abthSluhvhwhxhyhzhTladbdbbcbDdEd_b`b{b|bdbeb}b~bfbgb) * hbibacbcccdcAhBhChDhEhFhGhHhIhJhKhLhMhNhOhPhQhRhShc LeMedeeefegeUl2m3m/mxnTm9orrcpyrMrFr2o_o%nOoHo`nVl{nTdWlXlYlPnul%mynVo0d|n}n-nZlQnRn6nThUhVhWhecfcgchcicjcJmKmNeOePeQeReSeTeUeVeWeXeYeZe0e1e2ebncndnenXhYhZh0h:m;mEfFfGfbgcgdgegfggghgigjgkglgmgF G H 'f(f)fHfIfJfZg0gI J K $d%d'd(d)d*d1h2h3h4h0l1l2l3l4l5l5h6h7h8h9h!h#h$hL M N k l m jbkblb%h'h6l7l(h)h*h+h,h-h.h/h:h;h=h?h8l9lcdddedmbnbobFdGdHdkclcmcncocpcpbqbrbqcrcscsbtbub+ , - vbwbxbtcucvcwcxcyc@h[h]h^h_h`h{h|h}h~haibicidieifigihiiijikiliminioipiqirisitiuiviwixiyiziAiBid 3e4eheiejeke!l4m5m=mznUm!osrdpzrNrGr3o`o'nPoIo~n#laoUd$l%l'lSnvl'mAnWo1dboco.n(lTnUn7nCiDiEiFizcAcBcCcDcEcLmMm5e6e7e8e9e!e#e$e%e'e(e)e*e+e,e-efngnhninGiHiIiJi?m@mKfLfMfngogpgqgrgsgtgugvgwgxgygO P Q *f+f,fNfOfPf1g2gR S T +d,d-d.d/d:dKiLiMiNi)l*l+l,l-l.lOiPiQiRiSiTiUiViU V W n o p ybzbAbWiXi/l:lYiZi0i1i2i3i4i5i6i7i8i9i;l=lfdgdhdBbCbDbIdJdKdFcGcHcIcJcKcEbFbGbLcMcNcHbIbJb. / : KbLbMbOcPcQcRcScTc!i#i$i%i'i(i)i*i+i,i-i.i/i:i;i=i?i@i[i]i^i_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkje .e/elemeneoe?l6m7m[mBnVm#otrepArOrHr4o{o(nQoJodo@leoVd[l]l^lVnwl(mCnXo2dfogo/n_lWnXn8nljmjnjojUcVcWcXcYcZcNmOm:e;e=e?e@e[e]e^e_e`e{e|e}e~eafbfjnknlnmnpjqjrjsj]m^mQfRfSfzgAgBgCgDgEgFgGgHgIgJgKgX Y Z -f.f/fTfUfVf3g4g0 1 2 ;d=d?d@d[d]dtjujvjwj`l{l|l}l~lamxjyjzjAjBjCjDjEj3 4 5 q r s NbObPbFjGjbmcmHjIjJjKjLjMjNjOjPjQjRjSjdmemidjdkdQbRbSbLdMdNd0c1c2c3c4c5cTbUbVb6c7c8cWbXbYb; = ? Zb0b1b9c!c#c$c%c'cTjUjVjWjXjYjZj0j1j2j3j4j5j6j7j8j9j!j#j$j%j'j(j)j*j+j,j-j.j/j:j;j=j?j@j[j]j^jf cfdfpeqeresefm8m9m_mDnWm$ourfpBrPrIr5o|o)nRoKohogmioWdhmimjmYnxl)mEnYo3djoko:nkmZn0n9n_j`j{j|j(c)c*c+c,c-cPmQmefffgfhfifjfkflfmfnfofpfqfrfsftfnnonpnqn}j~jakbk`m{mWfXfYfLgMgNgOgPgQgRgSgTgUgVgWg6 7 8 :f;f=fZf0f1f5g6g9 ! # ^d_d`d{d|d}dckdkekfklmmmnmompmqmgkhkikjkkklkmknk$ % ' t u v 2b3b4bokpkrmsmqkrksktkukvkwkxkykzkAkBktmumldmdnd5b6b7bOdPdQd.c/c:c;c=c?c8b9b!b@c[c]c#b$b%b@ [ ] 'b(b)b^c_c`c{c|c}cCkDkEkFkGkHkIkJkKkLkMkNkOkPkQkRkSkTkUkVkWkXkYkZk0k1k2k3k4k5k6k7k8k9k!k#k$k%k

118 unique = kwargs.pop("unique", False) 2g 2fwfxfwm*m+msnHn!m6oor~ovrJrCrZo[o*nLoEoloxmmo4dymzmAm1nvmrnInSo5dnooopoBm2n3n!n,k-kudvdXm3f4f5f6f7f8f9f!fFnGn.k/k7g'k(k)k*k*b8g9g+k+bufvf:k;kCmDmEm=k?k@k[k,b^ od]kFm^k_k`k{k|k}kGmBdpdXdwdxdqdydrdsdtdzdAd~kalblcldlelflglhliljlklllmlnlolplqlrla te~daeylYmZm,mtnRm7oprapwrKrDr0o]o#nMoFo;nzl=nRdAlBlClJnsl#munToYd?n@n+nDlKnLn4n!g#g-b.bHmuevewexeyezeAeBe|m}m$g%gyf?f@f[f]fw #fzfXgx 6d7d'g(gElFlGl)g*g+g,gy h _ -gHl.g/g:g;g=g?gIl~c` Cd/b:b{ ;b| ( } =b?b@g[g]g^g_g`g{g|g}g~gahbhchdhehfhghhhihb CebeceJl0m1m-mvnSm8oqrbpxrLrEr1o^o$nNoGo[nKl]nSdLlMlNlMntl$mwnUoZd^n_n,nOlNnOn5njhkh@b[b]b^bImDeEeFeGeHeIeJeKe~manlhmh.mAfBf^f_f`f{f|f}f~fagz A $f%fCfDfYgB C 8d9d!d#dnhohPlQlRlphqhrhshD E i j ~ abthSluhvhwhxhyhzhTladbdbbcbDdEd_b`b{b|bdbeb}b~bfbgb) * hbibacbcccdcAhBhChDhEhFhGhHhIhJhKhLhMhNhOhPhQhRhShc LeMedeeefegeUl2m3m/mxnTm9orrcpyrMrFr2o_o%nOoHo`nVl{nTdWlXlYlPnul%mynVo0d|n}n-nZlQnRn6nThUhVhWhecfcgchcicjcJmKmNeOePeQeReSeTeUeVeWeXeYeZe0e1e2ebncndnenXhYhZh0h:m;mEfFfGfbgcgdgegfggghgigjgkglgmgF G H 'f(f)fHfIfJfZg0gI J K $d%d'd(d)d*d1h2h3h4h0l1l2l3l4l5l5h6h7h8h9h!h#h$hL M N k l m jbkblb%h'h6l7l(h)h*h+h,h-h.h/h:h;h=h?h8l9lcdddedmbnbobFdGdHdkclcmcncocpcpbqbrbqcrcscsbtbub+ , - vbwbxbtcucvcwcxcyc@h[h]h^h_h`h{h|h}h~haibicidieifigihiiijikiliminioipiqirisitiuiviwixiyiziAiBid 3e4eheiejeke!l4m5m=mznUm!osrdpzrNrGr3o`o'nPoIo~n#laoUd$l%l'lSnvl'mAnWo1dboco.n(lTnUn7nCiDiEiFizcAcBcCcDcEcLmMm5e6e7e8e9e!e#e$e%e'e(e)e*e+e,e-efngnhninGiHiIiJi?m@mKfLfMfngogpgqgrgsgtgugvgwgxgygO P Q *f+f,fNfOfPf1g2gR S T +d,d-d.d/d:dKiLiMiNi)l*l+l,l-l.lOiPiQiRiSiTiUiViU V W n o p ybzbAbWiXi/l:lYiZi0i1i2i3i4i5i6i7i8i9i;l=lfdgdhdBbCbDbIdJdKdFcGcHcIcJcKcEbFbGbLcMcNcHbIbJb. / : KbLbMbOcPcQcRcScTc!i#i$i%i'i(i)i*i+i,i-i.i/i:i;i=i?i@i[i]i^i_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkje .e/elemeneoe?l6m7m[mBnVm#otrepArOrHr4o{o(nQoJodo@leoVd[l]l^lVnwl(mCnXo2dfogo/n_lWnXn8nljmjnjojUcVcWcXcYcZcNmOm:e;e=e?e@e[e]e^e_e`e{e|e}e~eafbfjnknlnmnpjqjrjsj]m^mQfRfSfzgAgBgCgDgEgFgGgHgIgJgKgX Y Z -f.f/fTfUfVf3g4g0 1 2 ;d=d?d@d[d]dtjujvjwj`l{l|l}l~lamxjyjzjAjBjCjDjEj3 4 5 q r s NbObPbFjGjbmcmHjIjJjKjLjMjNjOjPjQjRjSjdmemidjdkdQbRbSbLdMdNd0c1c2c3c4c5cTbUbVb6c7c8cWbXbYb; = ? Zb0b1b9c!c#c$c%c'cTjUjVjWjXjYjZj0j1j2j3j4j5j6j7j8j9j!j#j$j%j'j(j)j*j+j,j-j.j/j:j;j=j?j@j[j]j^jf cfdfpeqeresefm8m9m_mDnWm$ourfpBrPrIr5o|o)nRoKohogmioWdhmimjmYnxl)mEnYo3djoko:nkmZn0n9n_j`j{j|j(c)c*c+c,c-cPmQmefffgfhfifjfkflfmfnfofpfqfrfsftfnnonpnqn}j~jakbk`m{mWfXfYfLgMgNgOgPgQgRgSgTgUgVgWg6 7 8 :f;f=fZf0f1f5g6g9 ! # ^d_d`d{d|d}dckdkekfklmmmnmompmqmgkhkikjkkklkmknk$ % ' t u v 2b3b4bokpkrmsmqkrksktkukvkwkxkykzkAkBktmumldmdnd5b6b7bOdPdQd.c/c:c;c=c?c8b9b!b@c[c]c#b$b%b@ [ ] 'b(b)b^c_c`c{c|c}cCkDkEkFkGkHkIkJkKkLkMkNkOkPkQkRkSkTkUkVkWkXkYkZk0k1k2k3k4k5k6k7k8k9k!k#k$k%k

119 index = kwargs.pop("index", Undefined) 2g 2fwfxfwm*m+msnHn!m6oor~ovrJrCrZo[o*nLoEoloxmmo4dymzmAm1nvmrnInSo5dnooopoBm2n3n!n,k-kudvdXm3f4f5f6f7f8f9f!fFnGn.k/k7g'k(k)k*k*b8g9g+k+bufvf:k;kCmDmEm=k?k@k[k,b^ od]kFm^k_k`k{k|k}kGmBdpdXdwdxdqdydrdsdtdzdAd~kalblcldlelflglhliljlklllmlnlolplqlrla te~daeylYmZm,mtnRm7oprapwrKrDr0o]o#nMoFo;nzl=nRdAlBlClJnsl#munToYd?n@n+nDlKnLn4n!g#g-b.bHmuevewexeyezeAeBe|m}m$g%gyf?f@f[f]fw #fzfXgx 6d7d'g(gElFlGl)g*g+g,gy h _ -gHl.g/g:g;g=g?gIl~c` Cd/b:b{ ;b| ( } =b?b@g[g]g^g_g`g{g|g}g~gahbhchdhehfhghhhihb CebeceJl0m1m-mvnSm8oqrbpxrLrEr1o^o$nNoGo[nKl]nSdLlMlNlMntl$mwnUoZd^n_n,nOlNnOn5njhkh@b[b]b^bImDeEeFeGeHeIeJeKe~manlhmh.mAfBf^f_f`f{f|f}f~fagz A $f%fCfDfYgB C 8d9d!d#dnhohPlQlRlphqhrhshD E i j ~ abthSluhvhwhxhyhzhTladbdbbcbDdEd_b`b{b|bdbeb}b~bfbgb) * hbibacbcccdcAhBhChDhEhFhGhHhIhJhKhLhMhNhOhPhQhRhShc LeMedeeefegeUl2m3m/mxnTm9orrcpyrMrFr2o_o%nOoHo`nVl{nTdWlXlYlPnul%mynVo0d|n}n-nZlQnRn6nThUhVhWhecfcgchcicjcJmKmNeOePeQeReSeTeUeVeWeXeYeZe0e1e2ebncndnenXhYhZh0h:m;mEfFfGfbgcgdgegfggghgigjgkglgmgF G H 'f(f)fHfIfJfZg0gI J K $d%d'd(d)d*d1h2h3h4h0l1l2l3l4l5l5h6h7h8h9h!h#h$hL M N k l m jbkblb%h'h6l7l(h)h*h+h,h-h.h/h:h;h=h?h8l9lcdddedmbnbobFdGdHdkclcmcncocpcpbqbrbqcrcscsbtbub+ , - vbwbxbtcucvcwcxcyc@h[h]h^h_h`h{h|h}h~haibicidieifigihiiijikiliminioipiqirisitiuiviwixiyiziAiBid 3e4eheiejeke!l4m5m=mznUm!osrdpzrNrGr3o`o'nPoIo~n#laoUd$l%l'lSnvl'mAnWo1dboco.n(lTnUn7nCiDiEiFizcAcBcCcDcEcLmMm5e6e7e8e9e!e#e$e%e'e(e)e*e+e,e-efngnhninGiHiIiJi?m@mKfLfMfngogpgqgrgsgtgugvgwgxgygO P Q *f+f,fNfOfPf1g2gR S T +d,d-d.d/d:dKiLiMiNi)l*l+l,l-l.lOiPiQiRiSiTiUiViU V W n o p ybzbAbWiXi/l:lYiZi0i1i2i3i4i5i6i7i8i9i;l=lfdgdhdBbCbDbIdJdKdFcGcHcIcJcKcEbFbGbLcMcNcHbIbJb. / : KbLbMbOcPcQcRcScTc!i#i$i%i'i(i)i*i+i,i-i.i/i:i;i=i?i@i[i]i^i_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkje .e/elemeneoe?l6m7m[mBnVm#otrepArOrHr4o{o(nQoJodo@leoVd[l]l^lVnwl(mCnXo2dfogo/n_lWnXn8nljmjnjojUcVcWcXcYcZcNmOm:e;e=e?e@e[e]e^e_e`e{e|e}e~eafbfjnknlnmnpjqjrjsj]m^mQfRfSfzgAgBgCgDgEgFgGgHgIgJgKgX Y Z -f.f/fTfUfVf3g4g0 1 2 ;d=d?d@d[d]dtjujvjwj`l{l|l}l~lamxjyjzjAjBjCjDjEj3 4 5 q r s NbObPbFjGjbmcmHjIjJjKjLjMjNjOjPjQjRjSjdmemidjdkdQbRbSbLdMdNd0c1c2c3c4c5cTbUbVb6c7c8cWbXbYb; = ? Zb0b1b9c!c#c$c%c'cTjUjVjWjXjYjZj0j1j2j3j4j5j6j7j8j9j!j#j$j%j'j(j)j*j+j,j-j.j/j:j;j=j?j@j[j]j^jf cfdfpeqeresefm8m9m_mDnWm$ourfpBrPrIr5o|o)nRoKohogmioWdhmimjmYnxl)mEnYo3djoko:nkmZn0n9n_j`j{j|j(c)c*c+c,c-cPmQmefffgfhfifjfkflfmfnfofpfqfrfsftfnnonpnqn}j~jakbk`m{mWfXfYfLgMgNgOgPgQgRgSgTgUgVgWg6 7 8 :f;f=fZf0f1f5g6g9 ! # ^d_d`d{d|d}dckdkekfklmmmnmompmqmgkhkikjkkklkmknk$ % ' t u v 2b3b4bokpkrmsmqkrksktkukvkwkxkykzkAkBktmumldmdnd5b6b7bOdPdQd.c/c:c;c=c?c8b9b!b@c[c]c#b$b%b@ [ ] 'b(b)b^c_c`c{c|c}cCkDkEkFkGkHkIkJkKkLkMkNkOkPkQkRkSkTkUkVkWkXkYkZk0k1k2k3k4k5k6k7k8k9k!k#k$k%k

120 sa_type = kwargs.pop("sa_type", Undefined) 2g 2fwfxfwm*m+msnHn!m6oor~ovrJrCrZo[o*nLoEoloxmmo4dymzmAm1nvmrnInSo5dnooopoBm2n3n!n,k-kudvdXm3f4f5f6f7f8f9f!fFnGn.k/k7g'k(k)k*k*b8g9g+k+bufvf:k;kCmDmEm=k?k@k[k,b^ od]kFm^k_k`k{k|k}kGmBdpdXdwdxdqdydrdsdtdzdAd~kalblcldlelflglhliljlklllmlnlolplqlrla te~daeylYmZm,mtnRm7oprapwrKrDr0o]o#nMoFo;nzl=nRdAlBlClJnsl#munToYd?n@n+nDlKnLn4n!g#g-b.bHmuevewexeyezeAeBe|m}m$g%gyf?f@f[f]fw #fzfXgx 6d7d'g(gElFlGl)g*g+g,gy h _ -gHl.g/g:g;g=g?gIl~c` Cd/b:b{ ;b| ( } =b?b@g[g]g^g_g`g{g|g}g~gahbhchdhehfhghhhihb CebeceJl0m1m-mvnSm8oqrbpxrLrEr1o^o$nNoGo[nKl]nSdLlMlNlMntl$mwnUoZd^n_n,nOlNnOn5njhkh@b[b]b^bImDeEeFeGeHeIeJeKe~manlhmh.mAfBf^f_f`f{f|f}f~fagz A $f%fCfDfYgB C 8d9d!d#dnhohPlQlRlphqhrhshD E i j ~ abthSluhvhwhxhyhzhTladbdbbcbDdEd_b`b{b|bdbeb}b~bfbgb) * hbibacbcccdcAhBhChDhEhFhGhHhIhJhKhLhMhNhOhPhQhRhShc LeMedeeefegeUl2m3m/mxnTm9orrcpyrMrFr2o_o%nOoHo`nVl{nTdWlXlYlPnul%mynVo0d|n}n-nZlQnRn6nThUhVhWhecfcgchcicjcJmKmNeOePeQeReSeTeUeVeWeXeYeZe0e1e2ebncndnenXhYhZh0h:m;mEfFfGfbgcgdgegfggghgigjgkglgmgF G H 'f(f)fHfIfJfZg0gI J K $d%d'd(d)d*d1h2h3h4h0l1l2l3l4l5l5h6h7h8h9h!h#h$hL M N k l m jbkblb%h'h6l7l(h)h*h+h,h-h.h/h:h;h=h?h8l9lcdddedmbnbobFdGdHdkclcmcncocpcpbqbrbqcrcscsbtbub+ , - vbwbxbtcucvcwcxcyc@h[h]h^h_h`h{h|h}h~haibicidieifigihiiijikiliminioipiqirisitiuiviwixiyiziAiBid 3e4eheiejeke!l4m5m=mznUm!osrdpzrNrGr3o`o'nPoIo~n#laoUd$l%l'lSnvl'mAnWo1dboco.n(lTnUn7nCiDiEiFizcAcBcCcDcEcLmMm5e6e7e8e9e!e#e$e%e'e(e)e*e+e,e-efngnhninGiHiIiJi?m@mKfLfMfngogpgqgrgsgtgugvgwgxgygO P Q *f+f,fNfOfPf1g2gR S T +d,d-d.d/d:dKiLiMiNi)l*l+l,l-l.lOiPiQiRiSiTiUiViU V W n o p ybzbAbWiXi/l:lYiZi0i1i2i3i4i5i6i7i8i9i;l=lfdgdhdBbCbDbIdJdKdFcGcHcIcJcKcEbFbGbLcMcNcHbIbJb. / : KbLbMbOcPcQcRcScTc!i#i$i%i'i(i)i*i+i,i-i.i/i:i;i=i?i@i[i]i^i_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkje .e/elemeneoe?l6m7m[mBnVm#otrepArOrHr4o{o(nQoJodo@leoVd[l]l^lVnwl(mCnXo2dfogo/n_lWnXn8nljmjnjojUcVcWcXcYcZcNmOm:e;e=e?e@e[e]e^e_e`e{e|e}e~eafbfjnknlnmnpjqjrjsj]m^mQfRfSfzgAgBgCgDgEgFgGgHgIgJgKgX Y Z -f.f/fTfUfVf3g4g0 1 2 ;d=d?d@d[d]dtjujvjwj`l{l|l}l~lamxjyjzjAjBjCjDjEj3 4 5 q r s NbObPbFjGjbmcmHjIjJjKjLjMjNjOjPjQjRjSjdmemidjdkdQbRbSbLdMdNd0c1c2c3c4c5cTbUbVb6c7c8cWbXbYb; = ? Zb0b1b9c!c#c$c%c'cTjUjVjWjXjYjZj0j1j2j3j4j5j6j7j8j9j!j#j$j%j'j(j)j*j+j,j-j.j/j:j;j=j?j@j[j]j^jf cfdfpeqeresefm8m9m_mDnWm$ourfpBrPrIr5o|o)nRoKohogmioWdhmimjmYnxl)mEnYo3djoko:nkmZn0n9n_j`j{j|j(c)c*c+c,c-cPmQmefffgfhfifjfkflfmfnfofpfqfrfsftfnnonpnqn}j~jakbk`m{mWfXfYfLgMgNgOgPgQgRgSgTgUgVgWg6 7 8 :f;f=fZf0f1f5g6g9 ! # ^d_d`d{d|d}dckdkekfklmmmnmompmqmgkhkikjkkklkmknk$ % ' t u v 2b3b4bokpkrmsmqkrksktkukvkwkxkykzkAkBktmumldmdnd5b6b7bOdPdQd.c/c:c;c=c?c8b9b!b@c[c]c#b$b%b@ [ ] 'b(b)b^c_c`c{c|c}cCkDkEkFkGkHkIkJkKkLkMkNkOkPkQkRkSkTkUkVkWkXkYkZk0k1k2k3k4k5k6k7k8k9k!k#k$k%k

121 sa_column = kwargs.pop("sa_column", Undefined) 2g 2fwfxfwm*m+msnHn!m6oor~ovrJrCrZo[o*nLoEoloxmmo4dymzmAm1nvmrnInSo5dnooopoBm2n3n!n,k-kudvdXm3f4f5f6f7f8f9f!fFnGn.k/k7g'k(k)k*k*b8g9g+k+bufvf:k;kCmDmEm=k?k@k[k,b^ od]kFm^k_k`k{k|k}kGmBdpdXdwdxdqdydrdsdtdzdAd~kalblcldlelflglhliljlklllmlnlolplqlrla te~daeylYmZm,mtnRm7oprapwrKrDr0o]o#nMoFo;nzl=nRdAlBlClJnsl#munToYd?n@n+nDlKnLn4n!g#g-b.bHmuevewexeyezeAeBe|m}m$g%gyf?f@f[f]fw #fzfXgx 6d7d'g(gElFlGl)g*g+g,gy h _ -gHl.g/g:g;g=g?gIl~c` Cd/b:b{ ;b| ( } =b?b@g[g]g^g_g`g{g|g}g~gahbhchdhehfhghhhihb CebeceJl0m1m-mvnSm8oqrbpxrLrEr1o^o$nNoGo[nKl]nSdLlMlNlMntl$mwnUoZd^n_n,nOlNnOn5njhkh@b[b]b^bImDeEeFeGeHeIeJeKe~manlhmh.mAfBf^f_f`f{f|f}f~fagz A $f%fCfDfYgB C 8d9d!d#dnhohPlQlRlphqhrhshD E i j ~ abthSluhvhwhxhyhzhTladbdbbcbDdEd_b`b{b|bdbeb}b~bfbgb) * hbibacbcccdcAhBhChDhEhFhGhHhIhJhKhLhMhNhOhPhQhRhShc LeMedeeefegeUl2m3m/mxnTm9orrcpyrMrFr2o_o%nOoHo`nVl{nTdWlXlYlPnul%mynVo0d|n}n-nZlQnRn6nThUhVhWhecfcgchcicjcJmKmNeOePeQeReSeTeUeVeWeXeYeZe0e1e2ebncndnenXhYhZh0h:m;mEfFfGfbgcgdgegfggghgigjgkglgmgF G H 'f(f)fHfIfJfZg0gI J K $d%d'd(d)d*d1h2h3h4h0l1l2l3l4l5l5h6h7h8h9h!h#h$hL M N k l m jbkblb%h'h6l7l(h)h*h+h,h-h.h/h:h;h=h?h8l9lcdddedmbnbobFdGdHdkclcmcncocpcpbqbrbqcrcscsbtbub+ , - vbwbxbtcucvcwcxcyc@h[h]h^h_h`h{h|h}h~haibicidieifigihiiijikiliminioipiqirisitiuiviwixiyiziAiBid 3e4eheiejeke!l4m5m=mznUm!osrdpzrNrGr3o`o'nPoIo~n#laoUd$l%l'lSnvl'mAnWo1dboco.n(lTnUn7nCiDiEiFizcAcBcCcDcEcLmMm5e6e7e8e9e!e#e$e%e'e(e)e*e+e,e-efngnhninGiHiIiJi?m@mKfLfMfngogpgqgrgsgtgugvgwgxgygO P Q *f+f,fNfOfPf1g2gR S T +d,d-d.d/d:dKiLiMiNi)l*l+l,l-l.lOiPiQiRiSiTiUiViU V W n o p ybzbAbWiXi/l:lYiZi0i1i2i3i4i5i6i7i8i9i;l=lfdgdhdBbCbDbIdJdKdFcGcHcIcJcKcEbFbGbLcMcNcHbIbJb. / : KbLbMbOcPcQcRcScTc!i#i$i%i'i(i)i*i+i,i-i.i/i:i;i=i?i@i[i]i^i_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkje .e/elemeneoe?l6m7m[mBnVm#otrepArOrHr4o{o(nQoJodo@leoVd[l]l^lVnwl(mCnXo2dfogo/n_lWnXn8nljmjnjojUcVcWcXcYcZcNmOm:e;e=e?e@e[e]e^e_e`e{e|e}e~eafbfjnknlnmnpjqjrjsj]m^mQfRfSfzgAgBgCgDgEgFgGgHgIgJgKgX Y Z -f.f/fTfUfVf3g4g0 1 2 ;d=d?d@d[d]dtjujvjwj`l{l|l}l~lamxjyjzjAjBjCjDjEj3 4 5 q r s NbObPbFjGjbmcmHjIjJjKjLjMjNjOjPjQjRjSjdmemidjdkdQbRbSbLdMdNd0c1c2c3c4c5cTbUbVb6c7c8cWbXbYb; = ? Zb0b1b9c!c#c$c%c'cTjUjVjWjXjYjZj0j1j2j3j4j5j6j7j8j9j!j#j$j%j'j(j)j*j+j,j-j.j/j:j;j=j?j@j[j]j^jf cfdfpeqeresefm8m9m_mDnWm$ourfpBrPrIr5o|o)nRoKohogmioWdhmimjmYnxl)mEnYo3djoko:nkmZn0n9n_j`j{j|j(c)c*c+c,c-cPmQmefffgfhfifjfkflfmfnfofpfqfrfsftfnnonpnqn}j~jakbk`m{mWfXfYfLgMgNgOgPgQgRgSgTgUgVgWg6 7 8 :f;f=fZf0f1f5g6g9 ! # ^d_d`d{d|d}dckdkekfklmmmnmompmqmgkhkikjkkklkmknk$ % ' t u v 2b3b4bokpkrmsmqkrksktkukvkwkxkykzkAkBktmumldmdnd5b6b7bOdPdQd.c/c:c;c=c?c8b9b!b@c[c]c#b$b%b@ [ ] 'b(b)b^c_c`c{c|c}cCkDkEkFkGkHkIkJkKkLkMkNkOkPkQkRkSkTkUkVkWkXkYkZk0k1k2k3k4k5k6k7k8k9k!k#k$k%k

122 sa_column_args = kwargs.pop("sa_column_args", Undefined) 2g 2fwfxfwm*m+msnHn!m6oor~ovrJrCrZo[o*nLoEoloxmmo4dymzmAm1nvmrnInSo5dnooopoBm2n3n!n,k-kudvdXm3f4f5f6f7f8f9f!fFnGn.k/k7g'k(k)k*k*b8g9g+k+bufvf:k;kCmDmEm=k?k@k[k,b^ od]kFm^k_k`k{k|k}kGmBdpdXdwdxdqdydrdsdtdzdAd~kalblcldlelflglhliljlklllmlnlolplqlrla te~daeylYmZm,mtnRm7oprapwrKrDr0o]o#nMoFo;nzl=nRdAlBlClJnsl#munToYd?n@n+nDlKnLn4n!g#g-b.bHmuevewexeyezeAeBe|m}m$g%gyf?f@f[f]fw #fzfXgx 6d7d'g(gElFlGl)g*g+g,gy h _ -gHl.g/g:g;g=g?gIl~c` Cd/b:b{ ;b| ( } =b?b@g[g]g^g_g`g{g|g}g~gahbhchdhehfhghhhihb CebeceJl0m1m-mvnSm8oqrbpxrLrEr1o^o$nNoGo[nKl]nSdLlMlNlMntl$mwnUoZd^n_n,nOlNnOn5njhkh@b[b]b^bImDeEeFeGeHeIeJeKe~manlhmh.mAfBf^f_f`f{f|f}f~fagz A $f%fCfDfYgB C 8d9d!d#dnhohPlQlRlphqhrhshD E i j ~ abthSluhvhwhxhyhzhTladbdbbcbDdEd_b`b{b|bdbeb}b~bfbgb) * hbibacbcccdcAhBhChDhEhFhGhHhIhJhKhLhMhNhOhPhQhRhShc LeMedeeefegeUl2m3m/mxnTm9orrcpyrMrFr2o_o%nOoHo`nVl{nTdWlXlYlPnul%mynVo0d|n}n-nZlQnRn6nThUhVhWhecfcgchcicjcJmKmNeOePeQeReSeTeUeVeWeXeYeZe0e1e2ebncndnenXhYhZh0h:m;mEfFfGfbgcgdgegfggghgigjgkglgmgF G H 'f(f)fHfIfJfZg0gI J K $d%d'd(d)d*d1h2h3h4h0l1l2l3l4l5l5h6h7h8h9h!h#h$hL M N k l m jbkblb%h'h6l7l(h)h*h+h,h-h.h/h:h;h=h?h8l9lcdddedmbnbobFdGdHdkclcmcncocpcpbqbrbqcrcscsbtbub+ , - vbwbxbtcucvcwcxcyc@h[h]h^h_h`h{h|h}h~haibicidieifigihiiijikiliminioipiqirisitiuiviwixiyiziAiBid 3e4eheiejeke!l4m5m=mznUm!osrdpzrNrGr3o`o'nPoIo~n#laoUd$l%l'lSnvl'mAnWo1dboco.n(lTnUn7nCiDiEiFizcAcBcCcDcEcLmMm5e6e7e8e9e!e#e$e%e'e(e)e*e+e,e-efngnhninGiHiIiJi?m@mKfLfMfngogpgqgrgsgtgugvgwgxgygO P Q *f+f,fNfOfPf1g2gR S T +d,d-d.d/d:dKiLiMiNi)l*l+l,l-l.lOiPiQiRiSiTiUiViU V W n o p ybzbAbWiXi/l:lYiZi0i1i2i3i4i5i6i7i8i9i;l=lfdgdhdBbCbDbIdJdKdFcGcHcIcJcKcEbFbGbLcMcNcHbIbJb. / : KbLbMbOcPcQcRcScTc!i#i$i%i'i(i)i*i+i,i-i.i/i:i;i=i?i@i[i]i^i_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkje .e/elemeneoe?l6m7m[mBnVm#otrepArOrHr4o{o(nQoJodo@leoVd[l]l^lVnwl(mCnXo2dfogo/n_lWnXn8nljmjnjojUcVcWcXcYcZcNmOm:e;e=e?e@e[e]e^e_e`e{e|e}e~eafbfjnknlnmnpjqjrjsj]m^mQfRfSfzgAgBgCgDgEgFgGgHgIgJgKgX Y Z -f.f/fTfUfVf3g4g0 1 2 ;d=d?d@d[d]dtjujvjwj`l{l|l}l~lamxjyjzjAjBjCjDjEj3 4 5 q r s NbObPbFjGjbmcmHjIjJjKjLjMjNjOjPjQjRjSjdmemidjdkdQbRbSbLdMdNd0c1c2c3c4c5cTbUbVb6c7c8cWbXbYb; = ? Zb0b1b9c!c#c$c%c'cTjUjVjWjXjYjZj0j1j2j3j4j5j6j7j8j9j!j#j$j%j'j(j)j*j+j,j-j.j/j:j;j=j?j@j[j]j^jf cfdfpeqeresefm8m9m_mDnWm$ourfpBrPrIr5o|o)nRoKohogmioWdhmimjmYnxl)mEnYo3djoko:nkmZn0n9n_j`j{j|j(c)c*c+c,c-cPmQmefffgfhfifjfkflfmfnfofpfqfrfsftfnnonpnqn}j~jakbk`m{mWfXfYfLgMgNgOgPgQgRgSgTgUgVgWg6 7 8 :f;f=fZf0f1f5g6g9 ! # ^d_d`d{d|d}dckdkekfklmmmnmompmqmgkhkikjkkklkmknk$ % ' t u v 2b3b4bokpkrmsmqkrksktkukvkwkxkykzkAkBktmumldmdnd5b6b7bOdPdQd.c/c:c;c=c?c8b9b!b@c[c]c#b$b%b@ [ ] 'b(b)b^c_c`c{c|c}cCkDkEkFkGkHkIkJkKkLkMkNkOkPkQkRkSkTkUkVkWkXkYkZk0k1k2k3k4k5k6k7k8k9k!k#k$k%k

123 sa_column_kwargs = kwargs.pop("sa_column_kwargs", Undefined) 2g 2fwfxfwm*m+msnHn!m6oor~ovrJrCrZo[o*nLoEoloxmmo4dymzmAm1nvmrnInSo5dnooopoBm2n3n!n,k-kudvdXm3f4f5f6f7f8f9f!fFnGn.k/k7g'k(k)k*k*b8g9g+k+bufvf:k;kCmDmEm=k?k@k[k,b^ od]kFm^k_k`k{k|k}kGmBdpdXdwdxdqdydrdsdtdzdAd~kalblcldlelflglhliljlklllmlnlolplqlrla te~daeylYmZm,mtnRm7oprapwrKrDr0o]o#nMoFo;nzl=nRdAlBlClJnsl#munToYd?n@n+nDlKnLn4n!g#g-b.bHmuevewexeyezeAeBe|m}m$g%gyf?f@f[f]fw #fzfXgx 6d7d'g(gElFlGl)g*g+g,gy h _ -gHl.g/g:g;g=g?gIl~c` Cd/b:b{ ;b| ( } =b?b@g[g]g^g_g`g{g|g}g~gahbhchdhehfhghhhihb CebeceJl0m1m-mvnSm8oqrbpxrLrEr1o^o$nNoGo[nKl]nSdLlMlNlMntl$mwnUoZd^n_n,nOlNnOn5njhkh@b[b]b^bImDeEeFeGeHeIeJeKe~manlhmh.mAfBf^f_f`f{f|f}f~fagz A $f%fCfDfYgB C 8d9d!d#dnhohPlQlRlphqhrhshD E i j ~ abthSluhvhwhxhyhzhTladbdbbcbDdEd_b`b{b|bdbeb}b~bfbgb) * hbibacbcccdcAhBhChDhEhFhGhHhIhJhKhLhMhNhOhPhQhRhShc LeMedeeefegeUl2m3m/mxnTm9orrcpyrMrFr2o_o%nOoHo`nVl{nTdWlXlYlPnul%mynVo0d|n}n-nZlQnRn6nThUhVhWhecfcgchcicjcJmKmNeOePeQeReSeTeUeVeWeXeYeZe0e1e2ebncndnenXhYhZh0h:m;mEfFfGfbgcgdgegfggghgigjgkglgmgF G H 'f(f)fHfIfJfZg0gI J K $d%d'd(d)d*d1h2h3h4h0l1l2l3l4l5l5h6h7h8h9h!h#h$hL M N k l m jbkblb%h'h6l7l(h)h*h+h,h-h.h/h:h;h=h?h8l9lcdddedmbnbobFdGdHdkclcmcncocpcpbqbrbqcrcscsbtbub+ , - vbwbxbtcucvcwcxcyc@h[h]h^h_h`h{h|h}h~haibicidieifigihiiijikiliminioipiqirisitiuiviwixiyiziAiBid 3e4eheiejeke!l4m5m=mznUm!osrdpzrNrGr3o`o'nPoIo~n#laoUd$l%l'lSnvl'mAnWo1dboco.n(lTnUn7nCiDiEiFizcAcBcCcDcEcLmMm5e6e7e8e9e!e#e$e%e'e(e)e*e+e,e-efngnhninGiHiIiJi?m@mKfLfMfngogpgqgrgsgtgugvgwgxgygO P Q *f+f,fNfOfPf1g2gR S T +d,d-d.d/d:dKiLiMiNi)l*l+l,l-l.lOiPiQiRiSiTiUiViU V W n o p ybzbAbWiXi/l:lYiZi0i1i2i3i4i5i6i7i8i9i;l=lfdgdhdBbCbDbIdJdKdFcGcHcIcJcKcEbFbGbLcMcNcHbIbJb. / : KbLbMbOcPcQcRcScTc!i#i$i%i'i(i)i*i+i,i-i.i/i:i;i=i?i@i[i]i^i_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkje .e/elemeneoe?l6m7m[mBnVm#otrepArOrHr4o{o(nQoJodo@leoVd[l]l^lVnwl(mCnXo2dfogo/n_lWnXn8nljmjnjojUcVcWcXcYcZcNmOm:e;e=e?e@e[e]e^e_e`e{e|e}e~eafbfjnknlnmnpjqjrjsj]m^mQfRfSfzgAgBgCgDgEgFgGgHgIgJgKgX Y Z -f.f/fTfUfVf3g4g0 1 2 ;d=d?d@d[d]dtjujvjwj`l{l|l}l~lamxjyjzjAjBjCjDjEj3 4 5 q r s NbObPbFjGjbmcmHjIjJjKjLjMjNjOjPjQjRjSjdmemidjdkdQbRbSbLdMdNd0c1c2c3c4c5cTbUbVb6c7c8cWbXbYb; = ? Zb0b1b9c!c#c$c%c'cTjUjVjWjXjYjZj0j1j2j3j4j5j6j7j8j9j!j#j$j%j'j(j)j*j+j,j-j.j/j:j;j=j?j@j[j]j^jf cfdfpeqeresefm8m9m_mDnWm$ourfpBrPrIr5o|o)nRoKohogmioWdhmimjmYnxl)mEnYo3djoko:nkmZn0n9n_j`j{j|j(c)c*c+c,c-cPmQmefffgfhfifjfkflfmfnfofpfqfrfsftfnnonpnqn}j~jakbk`m{mWfXfYfLgMgNgOgPgQgRgSgTgUgVgWg6 7 8 :f;f=fZf0f1f5g6g9 ! # ^d_d`d{d|d}dckdkekfklmmmnmompmqmgkhkikjkkklkmknk$ % ' t u v 2b3b4bokpkrmsmqkrksktkukvkwkxkykzkAkBktmumldmdnd5b6b7bOdPdQd.c/c:c;c=c?c8b9b!b@c[c]c#b$b%b@ [ ] 'b(b)b^c_c`c{c|c}cCkDkEkFkGkHkIkJkKkLkMkNkOkPkQkRkSkTkUkVkWkXkYkZk0k1k2k3k4k5k6k7k8k9k!k#k$k%k

124 if sa_column is not Undefined: 2g 2fwfxfwm*m+msnHn!m6oor~ovrJrCrZo[o*nLoEoloxmmo4dymzmAm1nvmrnInSo5dnooopoBm2n3n!n,k-kudvdXm3f4f5f6f7f8f9f!fFnGn.k/k7g'k(k)k*k*b8g9g+k+bufvf:k;kCmDmEm=k?k@k[k,b^ od]kFm^k_k`k{k|k}kGmBdpdXdwdxdqdydrdsdtdzdAd~kalblcldlelflglhliljlklllmlnlolplqlrla te~daeylYmZm,mtnRm7oprapwrKrDr0o]o#nMoFo;nzl=nRdAlBlClJnsl#munToYd?n@n+nDlKnLn4n!g#g-b.bHmuevewexeyezeAeBe|m}m$g%gyf?f@f[f]fw #fzfXgx 6d7d'g(gElFlGl)g*g+g,gy h _ -gHl.g/g:g;g=g?gIl~c` Cd/b:b{ ;b| ( } =b?b@g[g]g^g_g`g{g|g}g~gahbhchdhehfhghhhihb CebeceJl0m1m-mvnSm8oqrbpxrLrEr1o^o$nNoGo[nKl]nSdLlMlNlMntl$mwnUoZd^n_n,nOlNnOn5njhkh@b[b]b^bImDeEeFeGeHeIeJeKe~manlhmh.mAfBf^f_f`f{f|f}f~fagz A $f%fCfDfYgB C 8d9d!d#dnhohPlQlRlphqhrhshD E i j ~ abthSluhvhwhxhyhzhTladbdbbcbDdEd_b`b{b|bdbeb}b~bfbgb) * hbibacbcccdcAhBhChDhEhFhGhHhIhJhKhLhMhNhOhPhQhRhShc LeMedeeefegeUl2m3m/mxnTm9orrcpyrMrFr2o_o%nOoHo`nVl{nTdWlXlYlPnul%mynVo0d|n}n-nZlQnRn6nThUhVhWhecfcgchcicjcJmKmNeOePeQeReSeTeUeVeWeXeYeZe0e1e2ebncndnenXhYhZh0h:m;mEfFfGfbgcgdgegfggghgigjgkglgmgF G H 'f(f)fHfIfJfZg0gI J K $d%d'd(d)d*d1h2h3h4h0l1l2l3l4l5l5h6h7h8h9h!h#h$hL M N k l m jbkblb%h'h6l7l(h)h*h+h,h-h.h/h:h;h=h?h8l9lcdddedmbnbobFdGdHdkclcmcncocpcpbqbrbqcrcscsbtbub+ , - vbwbxbtcucvcwcxcyc@h[h]h^h_h`h{h|h}h~haibicidieifigihiiijikiliminioipiqirisitiuiviwixiyiziAiBid 3e4eheiejeke!l4m5m=mznUm!osrdpzrNrGr3o`o'nPoIo~n#laoUd$l%l'lSnvl'mAnWo1dboco.n(lTnUn7nCiDiEiFizcAcBcCcDcEcLmMm5e6e7e8e9e!e#e$e%e'e(e)e*e+e,e-efngnhninGiHiIiJi?m@mKfLfMfngogpgqgrgsgtgugvgwgxgygO P Q *f+f,fNfOfPf1g2gR S T +d,d-d.d/d:dKiLiMiNi)l*l+l,l-l.lOiPiQiRiSiTiUiViU V W n o p ybzbAbWiXi/l:lYiZi0i1i2i3i4i5i6i7i8i9i;l=lfdgdhdBbCbDbIdJdKdFcGcHcIcJcKcEbFbGbLcMcNcHbIbJb. / : KbLbMbOcPcQcRcScTc!i#i$i%i'i(i)i*i+i,i-i.i/i:i;i=i?i@i[i]i^i_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkje .e/elemeneoe?l6m7m[mBnVm#otrepArOrHr4o{o(nQoJodo@leoVd[l]l^lVnwl(mCnXo2dfogo/n_lWnXn8nljmjnjojUcVcWcXcYcZcNmOm:e;e=e?e@e[e]e^e_e`e{e|e}e~eafbfjnknlnmnpjqjrjsj]m^mQfRfSfzgAgBgCgDgEgFgGgHgIgJgKgX Y Z -f.f/fTfUfVf3g4g0 1 2 ;d=d?d@d[d]dtjujvjwj`l{l|l}l~lamxjyjzjAjBjCjDjEj3 4 5 q r s NbObPbFjGjbmcmHjIjJjKjLjMjNjOjPjQjRjSjdmemidjdkdQbRbSbLdMdNd0c1c2c3c4c5cTbUbVb6c7c8cWbXbYb; = ? Zb0b1b9c!c#c$c%c'cTjUjVjWjXjYjZj0j1j2j3j4j5j6j7j8j9j!j#j$j%j'j(j)j*j+j,j-j.j/j:j;j=j?j@j[j]j^jf cfdfpeqeresefm8m9m_mDnWm$ourfpBrPrIr5o|o)nRoKohogmioWdhmimjmYnxl)mEnYo3djoko:nkmZn0n9n_j`j{j|j(c)c*c+c,c-cPmQmefffgfhfifjfkflfmfnfofpfqfrfsftfnnonpnqn}j~jakbk`m{mWfXfYfLgMgNgOgPgQgRgSgTgUgVgWg6 7 8 :f;f=fZf0f1f5g6g9 ! # ^d_d`d{d|d}dckdkekfklmmmnmompmqmgkhkikjkkklkmknk$ % ' t u v 2b3b4bokpkrmsmqkrksktkukvkwkxkykzkAkBktmumldmdnd5b6b7bOdPdQd.c/c:c;c=c?c8b9b!b@c[c]c#b$b%b@ [ ] 'b(b)b^c_c`c{c|c}cCkDkEkFkGkHkIkJkKkLkMkNkOkPkQkRkSkTkUkVkWkXkYkZk0k1k2k3k4k5k6k7k8k9k!k#k$k%k

125 if sa_column_args is not Undefined: 2!m6oor~ovrJrCrZo[o*nRm7oprapwrKrDr0o]o#nSm8oqrbpxrLrEr1o^o$nTm9orrcpyrMrFr2o_o%nUm!osrdpzrNrGr3o`o'nVm#otrepArOrHr4o{o(nWm$ourfpBrPrIr5o|o)n

126 raise RuntimeError( 2JrKrLrMrNrOrPr

127 "Passing sa_column_args is not supported when " 

128 "also passing a sa_column" 

129 ) 

130 if sa_column_kwargs is not Undefined: 2!m6oor~ovrCrZo[o*nRm7oprapwrDr0o]o#nSm8oqrbpxrEr1o^o$nTm9orrcpyrFr2o_o%nUm!osrdpzrGr3o`o'nVm#otrepArHr4o{o(nWm$ourfpBrIr5o|o)n

131 raise RuntimeError( 2CrDrErFrGrHrIr

132 "Passing sa_column_kwargs is not supported when " 

133 "also passing a sa_column" 

134 ) 

135 if primary_key is not Undefined: 2!m6oor~ovrZo[o*nRm7oprapwr0o]o#nSm8oqrbpxr1o^o$nTm9orrcpyr2o_o%nUm!osrdpzr3o`o'nVm#otrepAr4o{o(nWm$ourfpBr5o|o)n

136 raise RuntimeError( 2vrwrxryrzrArBr

137 "Passing primary_key is not supported when also passing a sa_column" 

138 ) 

139 if nullable is not Undefined: 2!m6oor~oZo[o*nRm7oprap0o]o#nSm8oqrbp1o^o$nTm9orrcp2o_o%nUm!osrdp3o`o'nVm#otrep4o{o(nWm$ourfp5o|o)n

140 raise RuntimeError( 2orprqrrrsrtrur

141 "Passing nullable is not supported when also passing a sa_column" 

142 ) 

143 if foreign_key is not Undefined: 2!m6o~oZo[o*nRm7oap0o]o#nSm8obp1o^o$nTm9ocp2o_o%nUm!odp3o`o'nVm#oep4o{o(nWm$ofp5o|o)n

144 raise RuntimeError( 2!mRmSmTmUmVmWm

145 "Passing foreign_key is not supported when also passing a sa_column" 

146 ) 

147 if ondelete is not Undefined: 26o~oZo[o*n7oap0o]o#n8obp1o^o$n9ocp2o_o%n!odp3o`o'n#oep4o{o(n$ofp5o|o)n

148 raise RuntimeError( 2~oapbpcpdpepfp

149 "Passing ondelete is not supported when also passing a sa_column" 

150 ) 

151 if unique is not Undefined: 26oZo[o*n7o0o]o#n8o1o^o$n9o2o_o%n!o3o`o'n#o4o{o(n$o5o|o)n

152 raise RuntimeError( 2[o]o^o_o`o{o|o

153 "Passing unique is not supported when also passing a sa_column" 

154 ) 

155 if index is not Undefined: 26oZo*n7o0o#n8o1o$n9o2o%n!o3o'n#o4o(n$o5o)n

156 raise RuntimeError( 26o7o8o9o!o#o$o

157 "Passing index is not supported when also passing a sa_column" 

158 ) 

159 if sa_type is not Undefined: 2Zo*n0o#n1o$n2o%n3o'n4o(n5o)n

160 raise RuntimeError( 2Zo0o1o2o3o4o5o

161 "Passing sa_type is not supported when also passing a sa_column" 

162 ) 

163 if ondelete is not Undefined: 2g 2fwfxfwm*m+msnHn!m*nLoEoloxmmo4dymzmAm1nvmrnInSo5dnooopoBm2n3n!n,k-kudvdXm3f4f5f6f7f8f9f!fFnGn.k/k7g'k(k)k*k*b8g9g+k+bufvf:k;kCmDmEm=k?k@k[k,b^ od]kFm^k_k`k{k|k}kGmBdpdXdwdxdqdydrdsdtdzdAd~kalblcldlelflglhliljlklllmlnlolplqlrla te~daeylYmZm,mtnRm#nMoFo;nzl=nRdAlBlClJnsl#munToYd?n@n+nDlKnLn4n!g#g-b.bHmuevewexeyezeAeBe|m}m$g%gyf?f@f[f]fw #fzfXgx 6d7d'g(gElFlGl)g*g+g,gy h _ -gHl.g/g:g;g=g?gIl~c` Cd/b:b{ ;b| ( } =b?b@g[g]g^g_g`g{g|g}g~gahbhchdhehfhghhhihb CebeceJl0m1m-mvnSm$nNoGo[nKl]nSdLlMlNlMntl$mwnUoZd^n_n,nOlNnOn5njhkh@b[b]b^bImDeEeFeGeHeIeJeKe~manlhmh.mAfBf^f_f`f{f|f}f~fagz A $f%fCfDfYgB C 8d9d!d#dnhohPlQlRlphqhrhshD E i j ~ abthSluhvhwhxhyhzhTladbdbbcbDdEd_b`b{b|bdbeb}b~bfbgb) * hbibacbcccdcAhBhChDhEhFhGhHhIhJhKhLhMhNhOhPhQhRhShc LeMedeeefegeUl2m3m/mxnTm%nOoHo`nVl{nTdWlXlYlPnul%mynVo0d|n}n-nZlQnRn6nThUhVhWhecfcgchcicjcJmKmNeOePeQeReSeTeUeVeWeXeYeZe0e1e2ebncndnenXhYhZh0h:m;mEfFfGfbgcgdgegfggghgigjgkglgmgF G H 'f(f)fHfIfJfZg0gI J K $d%d'd(d)d*d1h2h3h4h0l1l2l3l4l5l5h6h7h8h9h!h#h$hL M N k l m jbkblb%h'h6l7l(h)h*h+h,h-h.h/h:h;h=h?h8l9lcdddedmbnbobFdGdHdkclcmcncocpcpbqbrbqcrcscsbtbub+ , - vbwbxbtcucvcwcxcyc@h[h]h^h_h`h{h|h}h~haibicidieifigihiiijikiliminioipiqirisitiuiviwixiyiziAiBid 3e4eheiejeke!l4m5m=mznUm'nPoIo~n#laoUd$l%l'lSnvl'mAnWo1dboco.n(lTnUn7nCiDiEiFizcAcBcCcDcEcLmMm5e6e7e8e9e!e#e$e%e'e(e)e*e+e,e-efngnhninGiHiIiJi?m@mKfLfMfngogpgqgrgsgtgugvgwgxgygO P Q *f+f,fNfOfPf1g2gR S T +d,d-d.d/d:dKiLiMiNi)l*l+l,l-l.lOiPiQiRiSiTiUiViU V W n o p ybzbAbWiXi/l:lYiZi0i1i2i3i4i5i6i7i8i9i;l=lfdgdhdBbCbDbIdJdKdFcGcHcIcJcKcEbFbGbLcMcNcHbIbJb. / : KbLbMbOcPcQcRcScTc!i#i$i%i'i(i)i*i+i,i-i.i/i:i;i=i?i@i[i]i^i_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkje .e/elemeneoe?l6m7m[mBnVm(nQoJodo@leoVd[l]l^lVnwl(mCnXo2dfogo/n_lWnXn8nljmjnjojUcVcWcXcYcZcNmOm:e;e=e?e@e[e]e^e_e`e{e|e}e~eafbfjnknlnmnpjqjrjsj]m^mQfRfSfzgAgBgCgDgEgFgGgHgIgJgKgX Y Z -f.f/fTfUfVf3g4g0 1 2 ;d=d?d@d[d]dtjujvjwj`l{l|l}l~lamxjyjzjAjBjCjDjEj3 4 5 q r s NbObPbFjGjbmcmHjIjJjKjLjMjNjOjPjQjRjSjdmemidjdkdQbRbSbLdMdNd0c1c2c3c4c5cTbUbVb6c7c8cWbXbYb; = ? Zb0b1b9c!c#c$c%c'cTjUjVjWjXjYjZj0j1j2j3j4j5j6j7j8j9j!j#j$j%j'j(j)j*j+j,j-j.j/j:j;j=j?j@j[j]j^jf cfdfpeqeresefm8m9m_mDnWm)nRoKohogmioWdhmimjmYnxl)mEnYo3djoko:nkmZn0n9n_j`j{j|j(c)c*c+c,c-cPmQmefffgfhfifjfkflfmfnfofpfqfrfsftfnnonpnqn}j~jakbk`m{mWfXfYfLgMgNgOgPgQgRgSgTgUgVgWg6 7 8 :f;f=fZf0f1f5g6g9 ! # ^d_d`d{d|d}dckdkekfklmmmnmompmqmgkhkikjkkklkmknk$ % ' t u v 2b3b4bokpkrmsmqkrksktkukvkwkxkykzkAkBktmumldmdnd5b6b7bOdPdQd.c/c:c;c=c?c8b9b!b@c[c]c#b$b%b@ [ ] 'b(b)b^c_c`c{c|c}cCkDkEkFkGkHkIkJkKkLkMkNkOkPkQkRkSkTkUkVkWkXkYkZk0k1k2k3k4k5k6k7k8k9k!k#k$k%k

164 if foreign_key is Undefined: 2So5dqdydrdsdtdToYd{ ;b| ( } UoZddbeb}b~bfbgb) * hbibVo0dpbqbrbqcrcscsbtbub+ , - vbwbxbWo1dEbFbGbLcMcNcHbIbJb. / : KbLbMbXo2dTbUbVb6c7c8cWbXbYb; = ? Zb0b1bYo3d8b9b!b@c[c]c#b$b%b@ [ ] 'b(b)b

165 raise RuntimeError("ondelete can only be used with foreign_key") 2SoToUoVoWoXoYo

166 super().__init__(default=default, **kwargs) 2g 2fwfxfwm*m+msnHn!m*nLoEoloxmmo4dymzmAm1nvmrnInSo5dnooopoBm2n3n!n,k-kudvdXm3f4f5f6f7f8f9f!fFnGn.k/k7g'k(k)k*k*b8g9g+k+bufvf:k;kCmDmEm=k?k@k[k,b^ od]kFm^k_k`k{k|k}kGmBdpdXdwdxdqdydrdsdtdzdAd~kalblcldlelflglhliljlklllmlnlolplqlrla te~daeylYmZm,mtnRm#nMoFo;nzl=nRdAlBlClJnsl#munToYd?n@n+nDlKnLn4n!g#g-b.bHmuevewexeyezeAeBe|m}m$g%gyf?f@f[f]fw #fzfXgx 6d7d'g(gElFlGl)g*g+g,gy h _ -gHl.g/g:g;g=g?gIl~c` Cd/b:b{ ;b| ( } =b?b@g[g]g^g_g`g{g|g}g~gahbhchdhehfhghhhihb CebeceJl0m1m-mvnSm$nNoGo[nKl]nSdLlMlNlMntl$mwnUoZd^n_n,nOlNnOn5njhkh@b[b]b^bImDeEeFeGeHeIeJeKe~manlhmh.mAfBf^f_f`f{f|f}f~fagz A $f%fCfDfYgB C 8d9d!d#dnhohPlQlRlphqhrhshD E i j ~ abthSluhvhwhxhyhzhTladbdbbcbDdEd_b`b{b|bdbeb}b~bfbgb) * hbibacbcccdcAhBhChDhEhFhGhHhIhJhKhLhMhNhOhPhQhRhShc LeMedeeefegeUl2m3m/mxnTm%nOoHo`nVl{nTdWlXlYlPnul%mynVo0d|n}n-nZlQnRn6nThUhVhWhecfcgchcicjcJmKmNeOePeQeReSeTeUeVeWeXeYeZe0e1e2ebncndnenXhYhZh0h:m;mEfFfGfbgcgdgegfggghgigjgkglgmgF G H 'f(f)fHfIfJfZg0gI J K $d%d'd(d)d*d1h2h3h4h0l1l2l3l4l5l5h6h7h8h9h!h#h$hL M N k l m jbkblb%h'h6l7l(h)h*h+h,h-h.h/h:h;h=h?h8l9lcdddedmbnbobFdGdHdkclcmcncocpcpbqbrbqcrcscsbtbub+ , - vbwbxbtcucvcwcxcyc@h[h]h^h_h`h{h|h}h~haibicidieifigihiiijikiliminioipiqirisitiuiviwixiyiziAiBid 3e4eheiejeke!l4m5m=mznUm'nPoIo~n#laoUd$l%l'lSnvl'mAnWo1dboco.n(lTnUn7nCiDiEiFizcAcBcCcDcEcLmMm5e6e7e8e9e!e#e$e%e'e(e)e*e+e,e-efngnhninGiHiIiJi?m@mKfLfMfngogpgqgrgsgtgugvgwgxgygO P Q *f+f,fNfOfPf1g2gR S T +d,d-d.d/d:dKiLiMiNi)l*l+l,l-l.lOiPiQiRiSiTiUiViU V W n o p ybzbAbWiXi/l:lYiZi0i1i2i3i4i5i6i7i8i9i;l=lfdgdhdBbCbDbIdJdKdFcGcHcIcJcKcEbFbGbLcMcNcHbIbJb. / : KbLbMbOcPcQcRcScTc!i#i$i%i'i(i)i*i+i,i-i.i/i:i;i=i?i@i[i]i^i_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkje .e/elemeneoe?l6m7m[mBnVm(nQoJodo@leoVd[l]l^lVnwl(mCnXo2dfogo/n_lWnXn8nljmjnjojUcVcWcXcYcZcNmOm:e;e=e?e@e[e]e^e_e`e{e|e}e~eafbfjnknlnmnpjqjrjsj]m^mQfRfSfzgAgBgCgDgEgFgGgHgIgJgKgX Y Z -f.f/fTfUfVf3g4g0 1 2 ;d=d?d@d[d]dtjujvjwj`l{l|l}l~lamxjyjzjAjBjCjDjEj3 4 5 q r s NbObPbFjGjbmcmHjIjJjKjLjMjNjOjPjQjRjSjdmemidjdkdQbRbSbLdMdNd0c1c2c3c4c5cTbUbVb6c7c8cWbXbYb; = ? Zb0b1b9c!c#c$c%c'cTjUjVjWjXjYjZj0j1j2j3j4j5j6j7j8j9j!j#j$j%j'j(j)j*j+j,j-j.j/j:j;j=j?j@j[j]j^jf cfdfpeqeresefm8m9m_mDnWm)nRoKohogmioWdhmimjmYnxl)mEnYo3djoko:nkmZn0n9n_j`j{j|j(c)c*c+c,c-cPmQmefffgfhfifjfkflfmfnfofpfqfrfsftfnnonpnqn}j~jakbk`m{mWfXfYfLgMgNgOgPgQgRgSgTgUgVgWg6 7 8 :f;f=fZf0f1f5g6g9 ! # ^d_d`d{d|d}dckdkekfklmmmnmompmqmgkhkikjkkklkmknk$ % ' t u v 2b3b4bokpkrmsmqkrksktkukvkwkxkykzkAkBktmumldmdnd5b6b7bOdPdQd.c/c:c;c=c?c8b9b!b@c[c]c#b$b%b@ [ ] 'b(b)b^c_c`c{c|c}cCkDkEkFkGkHkIkJkKkLkMkNkOkPkQkRkSkTkUkVkWkXkYkZk0k1k2k3k4k5k6k7k8k9k!k#k$k%k

167 self.primary_key = primary_key 2g 2fwfxfwm*m+msnHn!m*nLoEoloxmmo4dymzmAm1nvmrnInSo5dnooopoBm2n3n!n,k-kudvdXm3f4f5f6f7f8f9f!fFnGn.k/k7g'k(k)k*k*b8g9g+k+bufvf:k;kCmDmEm=k?k@k[k,b^ od]kFm^k_k`k{k|k}kGmBdpdXdwdxdqdydrdsdtdzdAd~kalblcldlelflglhliljlklllmlnlolplqlrla te~daeylYmZm,mtnRm#nMoFo;nzl=nRdAlBlClJnsl#munToYd?n@n+nDlKnLn4n!g#g-b.bHmuevewexeyezeAeBe|m}m$g%gyf?f@f[f]fw #fzfXgx 6d7d'g(gElFlGl)g*g+g,gy h _ -gHl.g/g:g;g=g?gIl~c` Cd/b:b{ ;b| ( } =b?b@g[g]g^g_g`g{g|g}g~gahbhchdhehfhghhhihb CebeceJl0m1m-mvnSm$nNoGo[nKl]nSdLlMlNlMntl$mwnUoZd^n_n,nOlNnOn5njhkh@b[b]b^bImDeEeFeGeHeIeJeKe~manlhmh.mAfBf^f_f`f{f|f}f~fagz A $f%fCfDfYgB C 8d9d!d#dnhohPlQlRlphqhrhshD E i j ~ abthSluhvhwhxhyhzhTladbdbbcbDdEd_b`b{b|bdbeb}b~bfbgb) * hbibacbcccdcAhBhChDhEhFhGhHhIhJhKhLhMhNhOhPhQhRhShc LeMedeeefegeUl2m3m/mxnTm%nOoHo`nVl{nTdWlXlYlPnul%mynVo0d|n}n-nZlQnRn6nThUhVhWhecfcgchcicjcJmKmNeOePeQeReSeTeUeVeWeXeYeZe0e1e2ebncndnenXhYhZh0h:m;mEfFfGfbgcgdgegfggghgigjgkglgmgF G H 'f(f)fHfIfJfZg0gI J K $d%d'd(d)d*d1h2h3h4h0l1l2l3l4l5l5h6h7h8h9h!h#h$hL M N k l m jbkblb%h'h6l7l(h)h*h+h,h-h.h/h:h;h=h?h8l9lcdddedmbnbobFdGdHdkclcmcncocpcpbqbrbqcrcscsbtbub+ , - vbwbxbtcucvcwcxcyc@h[h]h^h_h`h{h|h}h~haibicidieifigihiiijikiliminioipiqirisitiuiviwixiyiziAiBid 3e4eheiejeke!l4m5m=mznUm'nPoIo~n#laoUd$l%l'lSnvl'mAnWo1dboco.n(lTnUn7nCiDiEiFizcAcBcCcDcEcLmMm5e6e7e8e9e!e#e$e%e'e(e)e*e+e,e-efngnhninGiHiIiJi?m@mKfLfMfngogpgqgrgsgtgugvgwgxgygO P Q *f+f,fNfOfPf1g2gR S T +d,d-d.d/d:dKiLiMiNi)l*l+l,l-l.lOiPiQiRiSiTiUiViU V W n o p ybzbAbWiXi/l:lYiZi0i1i2i3i4i5i6i7i8i9i;l=lfdgdhdBbCbDbIdJdKdFcGcHcIcJcKcEbFbGbLcMcNcHbIbJb. / : KbLbMbOcPcQcRcScTc!i#i$i%i'i(i)i*i+i,i-i.i/i:i;i=i?i@i[i]i^i_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkje .e/elemeneoe?l6m7m[mBnVm(nQoJodo@leoVd[l]l^lVnwl(mCnXo2dfogo/n_lWnXn8nljmjnjojUcVcWcXcYcZcNmOm:e;e=e?e@e[e]e^e_e`e{e|e}e~eafbfjnknlnmnpjqjrjsj]m^mQfRfSfzgAgBgCgDgEgFgGgHgIgJgKgX Y Z -f.f/fTfUfVf3g4g0 1 2 ;d=d?d@d[d]dtjujvjwj`l{l|l}l~lamxjyjzjAjBjCjDjEj3 4 5 q r s NbObPbFjGjbmcmHjIjJjKjLjMjNjOjPjQjRjSjdmemidjdkdQbRbSbLdMdNd0c1c2c3c4c5cTbUbVb6c7c8cWbXbYb; = ? Zb0b1b9c!c#c$c%c'cTjUjVjWjXjYjZj0j1j2j3j4j5j6j7j8j9j!j#j$j%j'j(j)j*j+j,j-j.j/j:j;j=j?j@j[j]j^jf cfdfpeqeresefm8m9m_mDnWm)nRoKohogmioWdhmimjmYnxl)mEnYo3djoko:nkmZn0n9n_j`j{j|j(c)c*c+c,c-cPmQmefffgfhfifjfkflfmfnfofpfqfrfsftfnnonpnqn}j~jakbk`m{mWfXfYfLgMgNgOgPgQgRgSgTgUgVgWg6 7 8 :f;f=fZf0f1f5g6g9 ! # ^d_d`d{d|d}dckdkekfklmmmnmompmqmgkhkikjkkklkmknk$ % ' t u v 2b3b4bokpkrmsmqkrksktkukvkwkxkykzkAkBktmumldmdnd5b6b7bOdPdQd.c/c:c;c=c?c8b9b!b@c[c]c#b$b%b@ [ ] 'b(b)b^c_c`c{c|c}cCkDkEkFkGkHkIkJkKkLkMkNkOkPkQkRkSkTkUkVkWkXkYkZk0k1k2k3k4k5k6k7k8k9k!k#k$k%k

168 self.nullable = nullable 2g 2fwfxfwm*m+msnHn!m*nLoEoloxmmo4dymzmAm1nvmrnInSo5dnooopoBm2n3n!n,k-kudvdXm3f4f5f6f7f8f9f!fFnGn.k/k7g'k(k)k*k*b8g9g+k+bufvf:k;kCmDmEm=k?k@k[k,b^ od]kFm^k_k`k{k|k}kGmBdpdXdwdxdqdydrdsdtdzdAd~kalblcldlelflglhliljlklllmlnlolplqlrla te~daeylYmZm,mtnRm#nMoFo;nzl=nRdAlBlClJnsl#munToYd?n@n+nDlKnLn4n!g#g-b.bHmuevewexeyezeAeBe|m}m$g%gyf?f@f[f]fw #fzfXgx 6d7d'g(gElFlGl)g*g+g,gy h _ -gHl.g/g:g;g=g?gIl~c` Cd/b:b{ ;b| ( } =b?b@g[g]g^g_g`g{g|g}g~gahbhchdhehfhghhhihb CebeceJl0m1m-mvnSm$nNoGo[nKl]nSdLlMlNlMntl$mwnUoZd^n_n,nOlNnOn5njhkh@b[b]b^bImDeEeFeGeHeIeJeKe~manlhmh.mAfBf^f_f`f{f|f}f~fagz A $f%fCfDfYgB C 8d9d!d#dnhohPlQlRlphqhrhshD E i j ~ abthSluhvhwhxhyhzhTladbdbbcbDdEd_b`b{b|bdbeb}b~bfbgb) * hbibacbcccdcAhBhChDhEhFhGhHhIhJhKhLhMhNhOhPhQhRhShc LeMedeeefegeUl2m3m/mxnTm%nOoHo`nVl{nTdWlXlYlPnul%mynVo0d|n}n-nZlQnRn6nThUhVhWhecfcgchcicjcJmKmNeOePeQeReSeTeUeVeWeXeYeZe0e1e2ebncndnenXhYhZh0h:m;mEfFfGfbgcgdgegfggghgigjgkglgmgF G H 'f(f)fHfIfJfZg0gI J K $d%d'd(d)d*d1h2h3h4h0l1l2l3l4l5l5h6h7h8h9h!h#h$hL M N k l m jbkblb%h'h6l7l(h)h*h+h,h-h.h/h:h;h=h?h8l9lcdddedmbnbobFdGdHdkclcmcncocpcpbqbrbqcrcscsbtbub+ , - vbwbxbtcucvcwcxcyc@h[h]h^h_h`h{h|h}h~haibicidieifigihiiijikiliminioipiqirisitiuiviwixiyiziAiBid 3e4eheiejeke!l4m5m=mznUm'nPoIo~n#laoUd$l%l'lSnvl'mAnWo1dboco.n(lTnUn7nCiDiEiFizcAcBcCcDcEcLmMm5e6e7e8e9e!e#e$e%e'e(e)e*e+e,e-efngnhninGiHiIiJi?m@mKfLfMfngogpgqgrgsgtgugvgwgxgygO P Q *f+f,fNfOfPf1g2gR S T +d,d-d.d/d:dKiLiMiNi)l*l+l,l-l.lOiPiQiRiSiTiUiViU V W n o p ybzbAbWiXi/l:lYiZi0i1i2i3i4i5i6i7i8i9i;l=lfdgdhdBbCbDbIdJdKdFcGcHcIcJcKcEbFbGbLcMcNcHbIbJb. / : KbLbMbOcPcQcRcScTc!i#i$i%i'i(i)i*i+i,i-i.i/i:i;i=i?i@i[i]i^i_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkje .e/elemeneoe?l6m7m[mBnVm(nQoJodo@leoVd[l]l^lVnwl(mCnXo2dfogo/n_lWnXn8nljmjnjojUcVcWcXcYcZcNmOm:e;e=e?e@e[e]e^e_e`e{e|e}e~eafbfjnknlnmnpjqjrjsj]m^mQfRfSfzgAgBgCgDgEgFgGgHgIgJgKgX Y Z -f.f/fTfUfVf3g4g0 1 2 ;d=d?d@d[d]dtjujvjwj`l{l|l}l~lamxjyjzjAjBjCjDjEj3 4 5 q r s NbObPbFjGjbmcmHjIjJjKjLjMjNjOjPjQjRjSjdmemidjdkdQbRbSbLdMdNd0c1c2c3c4c5cTbUbVb6c7c8cWbXbYb; = ? Zb0b1b9c!c#c$c%c'cTjUjVjWjXjYjZj0j1j2j3j4j5j6j7j8j9j!j#j$j%j'j(j)j*j+j,j-j.j/j:j;j=j?j@j[j]j^jf cfdfpeqeresefm8m9m_mDnWm)nRoKohogmioWdhmimjmYnxl)mEnYo3djoko:nkmZn0n9n_j`j{j|j(c)c*c+c,c-cPmQmefffgfhfifjfkflfmfnfofpfqfrfsftfnnonpnqn}j~jakbk`m{mWfXfYfLgMgNgOgPgQgRgSgTgUgVgWg6 7 8 :f;f=fZf0f1f5g6g9 ! # ^d_d`d{d|d}dckdkekfklmmmnmompmqmgkhkikjkkklkmknk$ % ' t u v 2b3b4bokpkrmsmqkrksktkukvkwkxkykzkAkBktmumldmdnd5b6b7bOdPdQd.c/c:c;c=c?c8b9b!b@c[c]c#b$b%b@ [ ] 'b(b)b^c_c`c{c|c}cCkDkEkFkGkHkIkJkKkLkMkNkOkPkQkRkSkTkUkVkWkXkYkZk0k1k2k3k4k5k6k7k8k9k!k#k$k%k

169 self.foreign_key = foreign_key 2g 2fwfxfwm*m+msnHn!m*nLoEoloxmmo4dymzmAm1nvmrnInSo5dnooopoBm2n3n!n,k-kudvdXm3f4f5f6f7f8f9f!fFnGn.k/k7g'k(k)k*k*b8g9g+k+bufvf:k;kCmDmEm=k?k@k[k,b^ od]kFm^k_k`k{k|k}kGmBdpdXdwdxdqdydrdsdtdzdAd~kalblcldlelflglhliljlklllmlnlolplqlrla te~daeylYmZm,mtnRm#nMoFo;nzl=nRdAlBlClJnsl#munToYd?n@n+nDlKnLn4n!g#g-b.bHmuevewexeyezeAeBe|m}m$g%gyf?f@f[f]fw #fzfXgx 6d7d'g(gElFlGl)g*g+g,gy h _ -gHl.g/g:g;g=g?gIl~c` Cd/b:b{ ;b| ( } =b?b@g[g]g^g_g`g{g|g}g~gahbhchdhehfhghhhihb CebeceJl0m1m-mvnSm$nNoGo[nKl]nSdLlMlNlMntl$mwnUoZd^n_n,nOlNnOn5njhkh@b[b]b^bImDeEeFeGeHeIeJeKe~manlhmh.mAfBf^f_f`f{f|f}f~fagz A $f%fCfDfYgB C 8d9d!d#dnhohPlQlRlphqhrhshD E i j ~ abthSluhvhwhxhyhzhTladbdbbcbDdEd_b`b{b|bdbeb}b~bfbgb) * hbibacbcccdcAhBhChDhEhFhGhHhIhJhKhLhMhNhOhPhQhRhShc LeMedeeefegeUl2m3m/mxnTm%nOoHo`nVl{nTdWlXlYlPnul%mynVo0d|n}n-nZlQnRn6nThUhVhWhecfcgchcicjcJmKmNeOePeQeReSeTeUeVeWeXeYeZe0e1e2ebncndnenXhYhZh0h:m;mEfFfGfbgcgdgegfggghgigjgkglgmgF G H 'f(f)fHfIfJfZg0gI J K $d%d'd(d)d*d1h2h3h4h0l1l2l3l4l5l5h6h7h8h9h!h#h$hL M N k l m jbkblb%h'h6l7l(h)h*h+h,h-h.h/h:h;h=h?h8l9lcdddedmbnbobFdGdHdkclcmcncocpcpbqbrbqcrcscsbtbub+ , - vbwbxbtcucvcwcxcyc@h[h]h^h_h`h{h|h}h~haibicidieifigihiiijikiliminioipiqirisitiuiviwixiyiziAiBid 3e4eheiejeke!l4m5m=mznUm'nPoIo~n#laoUd$l%l'lSnvl'mAnWo1dboco.n(lTnUn7nCiDiEiFizcAcBcCcDcEcLmMm5e6e7e8e9e!e#e$e%e'e(e)e*e+e,e-efngnhninGiHiIiJi?m@mKfLfMfngogpgqgrgsgtgugvgwgxgygO P Q *f+f,fNfOfPf1g2gR S T +d,d-d.d/d:dKiLiMiNi)l*l+l,l-l.lOiPiQiRiSiTiUiViU V W n o p ybzbAbWiXi/l:lYiZi0i1i2i3i4i5i6i7i8i9i;l=lfdgdhdBbCbDbIdJdKdFcGcHcIcJcKcEbFbGbLcMcNcHbIbJb. / : KbLbMbOcPcQcRcScTc!i#i$i%i'i(i)i*i+i,i-i.i/i:i;i=i?i@i[i]i^i_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkje .e/elemeneoe?l6m7m[mBnVm(nQoJodo@leoVd[l]l^lVnwl(mCnXo2dfogo/n_lWnXn8nljmjnjojUcVcWcXcYcZcNmOm:e;e=e?e@e[e]e^e_e`e{e|e}e~eafbfjnknlnmnpjqjrjsj]m^mQfRfSfzgAgBgCgDgEgFgGgHgIgJgKgX Y Z -f.f/fTfUfVf3g4g0 1 2 ;d=d?d@d[d]dtjujvjwj`l{l|l}l~lamxjyjzjAjBjCjDjEj3 4 5 q r s NbObPbFjGjbmcmHjIjJjKjLjMjNjOjPjQjRjSjdmemidjdkdQbRbSbLdMdNd0c1c2c3c4c5cTbUbVb6c7c8cWbXbYb; = ? Zb0b1b9c!c#c$c%c'cTjUjVjWjXjYjZj0j1j2j3j4j5j6j7j8j9j!j#j$j%j'j(j)j*j+j,j-j.j/j:j;j=j?j@j[j]j^jf cfdfpeqeresefm8m9m_mDnWm)nRoKohogmioWdhmimjmYnxl)mEnYo3djoko:nkmZn0n9n_j`j{j|j(c)c*c+c,c-cPmQmefffgfhfifjfkflfmfnfofpfqfrfsftfnnonpnqn}j~jakbk`m{mWfXfYfLgMgNgOgPgQgRgSgTgUgVgWg6 7 8 :f;f=fZf0f1f5g6g9 ! # ^d_d`d{d|d}dckdkekfklmmmnmompmqmgkhkikjkkklkmknk$ % ' t u v 2b3b4bokpkrmsmqkrksktkukvkwkxkykzkAkBktmumldmdnd5b6b7bOdPdQd.c/c:c;c=c?c8b9b!b@c[c]c#b$b%b@ [ ] 'b(b)b^c_c`c{c|c}cCkDkEkFkGkHkIkJkKkLkMkNkOkPkQkRkSkTkUkVkWkXkYkZk0k1k2k3k4k5k6k7k8k9k!k#k$k%k

170 self.ondelete = ondelete 2g 2fwfxfwm*m+msnHn!m*nLoEoloxmmo4dymzmAm1nvmrnInSo5dnooopoBm2n3n!n,k-kudvdXm3f4f5f6f7f8f9f!fFnGn.k/k7g'k(k)k*k*b8g9g+k+bufvf:k;kCmDmEm=k?k@k[k,b^ od]kFm^k_k`k{k|k}kGmBdpdXdwdxdqdydrdsdtdzdAd~kalblcldlelflglhliljlklllmlnlolplqlrla te~daeylYmZm,mtnRm#nMoFo;nzl=nRdAlBlClJnsl#munToYd?n@n+nDlKnLn4n!g#g-b.bHmuevewexeyezeAeBe|m}m$g%gyf?f@f[f]fw #fzfXgx 6d7d'g(gElFlGl)g*g+g,gy h _ -gHl.g/g:g;g=g?gIl~c` Cd/b:b{ ;b| ( } =b?b@g[g]g^g_g`g{g|g}g~gahbhchdhehfhghhhihb CebeceJl0m1m-mvnSm$nNoGo[nKl]nSdLlMlNlMntl$mwnUoZd^n_n,nOlNnOn5njhkh@b[b]b^bImDeEeFeGeHeIeJeKe~manlhmh.mAfBf^f_f`f{f|f}f~fagz A $f%fCfDfYgB C 8d9d!d#dnhohPlQlRlphqhrhshD E i j ~ abthSluhvhwhxhyhzhTladbdbbcbDdEd_b`b{b|bdbeb}b~bfbgb) * hbibacbcccdcAhBhChDhEhFhGhHhIhJhKhLhMhNhOhPhQhRhShc LeMedeeefegeUl2m3m/mxnTm%nOoHo`nVl{nTdWlXlYlPnul%mynVo0d|n}n-nZlQnRn6nThUhVhWhecfcgchcicjcJmKmNeOePeQeReSeTeUeVeWeXeYeZe0e1e2ebncndnenXhYhZh0h:m;mEfFfGfbgcgdgegfggghgigjgkglgmgF G H 'f(f)fHfIfJfZg0gI J K $d%d'd(d)d*d1h2h3h4h0l1l2l3l4l5l5h6h7h8h9h!h#h$hL M N k l m jbkblb%h'h6l7l(h)h*h+h,h-h.h/h:h;h=h?h8l9lcdddedmbnbobFdGdHdkclcmcncocpcpbqbrbqcrcscsbtbub+ , - vbwbxbtcucvcwcxcyc@h[h]h^h_h`h{h|h}h~haibicidieifigihiiijikiliminioipiqirisitiuiviwixiyiziAiBid 3e4eheiejeke!l4m5m=mznUm'nPoIo~n#laoUd$l%l'lSnvl'mAnWo1dboco.n(lTnUn7nCiDiEiFizcAcBcCcDcEcLmMm5e6e7e8e9e!e#e$e%e'e(e)e*e+e,e-efngnhninGiHiIiJi?m@mKfLfMfngogpgqgrgsgtgugvgwgxgygO P Q *f+f,fNfOfPf1g2gR S T +d,d-d.d/d:dKiLiMiNi)l*l+l,l-l.lOiPiQiRiSiTiUiViU V W n o p ybzbAbWiXi/l:lYiZi0i1i2i3i4i5i6i7i8i9i;l=lfdgdhdBbCbDbIdJdKdFcGcHcIcJcKcEbFbGbLcMcNcHbIbJb. / : KbLbMbOcPcQcRcScTc!i#i$i%i'i(i)i*i+i,i-i.i/i:i;i=i?i@i[i]i^i_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkje .e/elemeneoe?l6m7m[mBnVm(nQoJodo@leoVd[l]l^lVnwl(mCnXo2dfogo/n_lWnXn8nljmjnjojUcVcWcXcYcZcNmOm:e;e=e?e@e[e]e^e_e`e{e|e}e~eafbfjnknlnmnpjqjrjsj]m^mQfRfSfzgAgBgCgDgEgFgGgHgIgJgKgX Y Z -f.f/fTfUfVf3g4g0 1 2 ;d=d?d@d[d]dtjujvjwj`l{l|l}l~lamxjyjzjAjBjCjDjEj3 4 5 q r s NbObPbFjGjbmcmHjIjJjKjLjMjNjOjPjQjRjSjdmemidjdkdQbRbSbLdMdNd0c1c2c3c4c5cTbUbVb6c7c8cWbXbYb; = ? Zb0b1b9c!c#c$c%c'cTjUjVjWjXjYjZj0j1j2j3j4j5j6j7j8j9j!j#j$j%j'j(j)j*j+j,j-j.j/j:j;j=j?j@j[j]j^jf cfdfpeqeresefm8m9m_mDnWm)nRoKohogmioWdhmimjmYnxl)mEnYo3djoko:nkmZn0n9n_j`j{j|j(c)c*c+c,c-cPmQmefffgfhfifjfkflfmfnfofpfqfrfsftfnnonpnqn}j~jakbk`m{mWfXfYfLgMgNgOgPgQgRgSgTgUgVgWg6 7 8 :f;f=fZf0f1f5g6g9 ! # ^d_d`d{d|d}dckdkekfklmmmnmompmqmgkhkikjkkklkmknk$ % ' t u v 2b3b4bokpkrmsmqkrksktkukvkwkxkykzkAkBktmumldmdnd5b6b7bOdPdQd.c/c:c;c=c?c8b9b!b@c[c]c#b$b%b@ [ ] 'b(b)b^c_c`c{c|c}cCkDkEkFkGkHkIkJkKkLkMkNkOkPkQkRkSkTkUkVkWkXkYkZk0k1k2k3k4k5k6k7k8k9k!k#k$k%k

171 self.unique = unique 2g 2fwfxfwm*m+msnHn!m*nLoEoloxmmo4dymzmAm1nvmrnInSo5dnooopoBm2n3n!n,k-kudvdXm3f4f5f6f7f8f9f!fFnGn.k/k7g'k(k)k*k*b8g9g+k+bufvf:k;kCmDmEm=k?k@k[k,b^ od]kFm^k_k`k{k|k}kGmBdpdXdwdxdqdydrdsdtdzdAd~kalblcldlelflglhliljlklllmlnlolplqlrla te~daeylYmZm,mtnRm#nMoFo;nzl=nRdAlBlClJnsl#munToYd?n@n+nDlKnLn4n!g#g-b.bHmuevewexeyezeAeBe|m}m$g%gyf?f@f[f]fw #fzfXgx 6d7d'g(gElFlGl)g*g+g,gy h _ -gHl.g/g:g;g=g?gIl~c` Cd/b:b{ ;b| ( } =b?b@g[g]g^g_g`g{g|g}g~gahbhchdhehfhghhhihb CebeceJl0m1m-mvnSm$nNoGo[nKl]nSdLlMlNlMntl$mwnUoZd^n_n,nOlNnOn5njhkh@b[b]b^bImDeEeFeGeHeIeJeKe~manlhmh.mAfBf^f_f`f{f|f}f~fagz A $f%fCfDfYgB C 8d9d!d#dnhohPlQlRlphqhrhshD E i j ~ abthSluhvhwhxhyhzhTladbdbbcbDdEd_b`b{b|bdbeb}b~bfbgb) * hbibacbcccdcAhBhChDhEhFhGhHhIhJhKhLhMhNhOhPhQhRhShc LeMedeeefegeUl2m3m/mxnTm%nOoHo`nVl{nTdWlXlYlPnul%mynVo0d|n}n-nZlQnRn6nThUhVhWhecfcgchcicjcJmKmNeOePeQeReSeTeUeVeWeXeYeZe0e1e2ebncndnenXhYhZh0h:m;mEfFfGfbgcgdgegfggghgigjgkglgmgF G H 'f(f)fHfIfJfZg0gI J K $d%d'd(d)d*d1h2h3h4h0l1l2l3l4l5l5h6h7h8h9h!h#h$hL M N k l m jbkblb%h'h6l7l(h)h*h+h,h-h.h/h:h;h=h?h8l9lcdddedmbnbobFdGdHdkclcmcncocpcpbqbrbqcrcscsbtbub+ , - vbwbxbtcucvcwcxcyc@h[h]h^h_h`h{h|h}h~haibicidieifigihiiijikiliminioipiqirisitiuiviwixiyiziAiBid 3e4eheiejeke!l4m5m=mznUm'nPoIo~n#laoUd$l%l'lSnvl'mAnWo1dboco.n(lTnUn7nCiDiEiFizcAcBcCcDcEcLmMm5e6e7e8e9e!e#e$e%e'e(e)e*e+e,e-efngnhninGiHiIiJi?m@mKfLfMfngogpgqgrgsgtgugvgwgxgygO P Q *f+f,fNfOfPf1g2gR S T +d,d-d.d/d:dKiLiMiNi)l*l+l,l-l.lOiPiQiRiSiTiUiViU V W n o p ybzbAbWiXi/l:lYiZi0i1i2i3i4i5i6i7i8i9i;l=lfdgdhdBbCbDbIdJdKdFcGcHcIcJcKcEbFbGbLcMcNcHbIbJb. / : KbLbMbOcPcQcRcScTc!i#i$i%i'i(i)i*i+i,i-i.i/i:i;i=i?i@i[i]i^i_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkje .e/elemeneoe?l6m7m[mBnVm(nQoJodo@leoVd[l]l^lVnwl(mCnXo2dfogo/n_lWnXn8nljmjnjojUcVcWcXcYcZcNmOm:e;e=e?e@e[e]e^e_e`e{e|e}e~eafbfjnknlnmnpjqjrjsj]m^mQfRfSfzgAgBgCgDgEgFgGgHgIgJgKgX Y Z -f.f/fTfUfVf3g4g0 1 2 ;d=d?d@d[d]dtjujvjwj`l{l|l}l~lamxjyjzjAjBjCjDjEj3 4 5 q r s NbObPbFjGjbmcmHjIjJjKjLjMjNjOjPjQjRjSjdmemidjdkdQbRbSbLdMdNd0c1c2c3c4c5cTbUbVb6c7c8cWbXbYb; = ? Zb0b1b9c!c#c$c%c'cTjUjVjWjXjYjZj0j1j2j3j4j5j6j7j8j9j!j#j$j%j'j(j)j*j+j,j-j.j/j:j;j=j?j@j[j]j^jf cfdfpeqeresefm8m9m_mDnWm)nRoKohogmioWdhmimjmYnxl)mEnYo3djoko:nkmZn0n9n_j`j{j|j(c)c*c+c,c-cPmQmefffgfhfifjfkflfmfnfofpfqfrfsftfnnonpnqn}j~jakbk`m{mWfXfYfLgMgNgOgPgQgRgSgTgUgVgWg6 7 8 :f;f=fZf0f1f5g6g9 ! # ^d_d`d{d|d}dckdkekfklmmmnmompmqmgkhkikjkkklkmknk$ % ' t u v 2b3b4bokpkrmsmqkrksktkukvkwkxkykzkAkBktmumldmdnd5b6b7bOdPdQd.c/c:c;c=c?c8b9b!b@c[c]c#b$b%b@ [ ] 'b(b)b^c_c`c{c|c}cCkDkEkFkGkHkIkJkKkLkMkNkOkPkQkRkSkTkUkVkWkXkYkZk0k1k2k3k4k5k6k7k8k9k!k#k$k%k

172 self.index = index 2g 2fwfxfwm*m+msnHn!m*nLoEoloxmmo4dymzmAm1nvmrnInSo5dnooopoBm2n3n!n,k-kudvdXm3f4f5f6f7f8f9f!fFnGn.k/k7g'k(k)k*k*b8g9g+k+bufvf:k;kCmDmEm=k?k@k[k,b^ od]kFm^k_k`k{k|k}kGmBdpdXdwdxdqdydrdsdtdzdAd~kalblcldlelflglhliljlklllmlnlolplqlrla te~daeylYmZm,mtnRm#nMoFo;nzl=nRdAlBlClJnsl#munToYd?n@n+nDlKnLn4n!g#g-b.bHmuevewexeyezeAeBe|m}m$g%gyf?f@f[f]fw #fzfXgx 6d7d'g(gElFlGl)g*g+g,gy h _ -gHl.g/g:g;g=g?gIl~c` Cd/b:b{ ;b| ( } =b?b@g[g]g^g_g`g{g|g}g~gahbhchdhehfhghhhihb CebeceJl0m1m-mvnSm$nNoGo[nKl]nSdLlMlNlMntl$mwnUoZd^n_n,nOlNnOn5njhkh@b[b]b^bImDeEeFeGeHeIeJeKe~manlhmh.mAfBf^f_f`f{f|f}f~fagz A $f%fCfDfYgB C 8d9d!d#dnhohPlQlRlphqhrhshD E i j ~ abthSluhvhwhxhyhzhTladbdbbcbDdEd_b`b{b|bdbeb}b~bfbgb) * hbibacbcccdcAhBhChDhEhFhGhHhIhJhKhLhMhNhOhPhQhRhShc LeMedeeefegeUl2m3m/mxnTm%nOoHo`nVl{nTdWlXlYlPnul%mynVo0d|n}n-nZlQnRn6nThUhVhWhecfcgchcicjcJmKmNeOePeQeReSeTeUeVeWeXeYeZe0e1e2ebncndnenXhYhZh0h:m;mEfFfGfbgcgdgegfggghgigjgkglgmgF G H 'f(f)fHfIfJfZg0gI J K $d%d'd(d)d*d1h2h3h4h0l1l2l3l4l5l5h6h7h8h9h!h#h$hL M N k l m jbkblb%h'h6l7l(h)h*h+h,h-h.h/h:h;h=h?h8l9lcdddedmbnbobFdGdHdkclcmcncocpcpbqbrbqcrcscsbtbub+ , - vbwbxbtcucvcwcxcyc@h[h]h^h_h`h{h|h}h~haibicidieifigihiiijikiliminioipiqirisitiuiviwixiyiziAiBid 3e4eheiejeke!l4m5m=mznUm'nPoIo~n#laoUd$l%l'lSnvl'mAnWo1dboco.n(lTnUn7nCiDiEiFizcAcBcCcDcEcLmMm5e6e7e8e9e!e#e$e%e'e(e)e*e+e,e-efngnhninGiHiIiJi?m@mKfLfMfngogpgqgrgsgtgugvgwgxgygO P Q *f+f,fNfOfPf1g2gR S T +d,d-d.d/d:dKiLiMiNi)l*l+l,l-l.lOiPiQiRiSiTiUiViU V W n o p ybzbAbWiXi/l:lYiZi0i1i2i3i4i5i6i7i8i9i;l=lfdgdhdBbCbDbIdJdKdFcGcHcIcJcKcEbFbGbLcMcNcHbIbJb. / : KbLbMbOcPcQcRcScTc!i#i$i%i'i(i)i*i+i,i-i.i/i:i;i=i?i@i[i]i^i_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkje .e/elemeneoe?l6m7m[mBnVm(nQoJodo@leoVd[l]l^lVnwl(mCnXo2dfogo/n_lWnXn8nljmjnjojUcVcWcXcYcZcNmOm:e;e=e?e@e[e]e^e_e`e{e|e}e~eafbfjnknlnmnpjqjrjsj]m^mQfRfSfzgAgBgCgDgEgFgGgHgIgJgKgX Y Z -f.f/fTfUfVf3g4g0 1 2 ;d=d?d@d[d]dtjujvjwj`l{l|l}l~lamxjyjzjAjBjCjDjEj3 4 5 q r s NbObPbFjGjbmcmHjIjJjKjLjMjNjOjPjQjRjSjdmemidjdkdQbRbSbLdMdNd0c1c2c3c4c5cTbUbVb6c7c8cWbXbYb; = ? Zb0b1b9c!c#c$c%c'cTjUjVjWjXjYjZj0j1j2j3j4j5j6j7j8j9j!j#j$j%j'j(j)j*j+j,j-j.j/j:j;j=j?j@j[j]j^jf cfdfpeqeresefm8m9m_mDnWm)nRoKohogmioWdhmimjmYnxl)mEnYo3djoko:nkmZn0n9n_j`j{j|j(c)c*c+c,c-cPmQmefffgfhfifjfkflfmfnfofpfqfrfsftfnnonpnqn}j~jakbk`m{mWfXfYfLgMgNgOgPgQgRgSgTgUgVgWg6 7 8 :f;f=fZf0f1f5g6g9 ! # ^d_d`d{d|d}dckdkekfklmmmnmompmqmgkhkikjkkklkmknk$ % ' t u v 2b3b4bokpkrmsmqkrksktkukvkwkxkykzkAkBktmumldmdnd5b6b7bOdPdQd.c/c:c;c=c?c8b9b!b@c[c]c#b$b%b@ [ ] 'b(b)b^c_c`c{c|c}cCkDkEkFkGkHkIkJkKkLkMkNkOkPkQkRkSkTkUkVkWkXkYkZk0k1k2k3k4k5k6k7k8k9k!k#k$k%k

173 self.sa_type = sa_type 2g 2fwfxfwm*m+msnHn!m*nLoEoloxmmo4dymzmAm1nvmrnInSo5dnooopoBm2n3n!n,k-kudvdXm3f4f5f6f7f8f9f!fFnGn.k/k7g'k(k)k*k*b8g9g+k+bufvf:k;kCmDmEm=k?k@k[k,b^ od]kFm^k_k`k{k|k}kGmBdpdXdwdxdqdydrdsdtdzdAd~kalblcldlelflglhliljlklllmlnlolplqlrla te~daeylYmZm,mtnRm#nMoFo;nzl=nRdAlBlClJnsl#munToYd?n@n+nDlKnLn4n!g#g-b.bHmuevewexeyezeAeBe|m}m$g%gyf?f@f[f]fw #fzfXgx 6d7d'g(gElFlGl)g*g+g,gy h _ -gHl.g/g:g;g=g?gIl~c` Cd/b:b{ ;b| ( } =b?b@g[g]g^g_g`g{g|g}g~gahbhchdhehfhghhhihb CebeceJl0m1m-mvnSm$nNoGo[nKl]nSdLlMlNlMntl$mwnUoZd^n_n,nOlNnOn5njhkh@b[b]b^bImDeEeFeGeHeIeJeKe~manlhmh.mAfBf^f_f`f{f|f}f~fagz A $f%fCfDfYgB C 8d9d!d#dnhohPlQlRlphqhrhshD E i j ~ abthSluhvhwhxhyhzhTladbdbbcbDdEd_b`b{b|bdbeb}b~bfbgb) * hbibacbcccdcAhBhChDhEhFhGhHhIhJhKhLhMhNhOhPhQhRhShc LeMedeeefegeUl2m3m/mxnTm%nOoHo`nVl{nTdWlXlYlPnul%mynVo0d|n}n-nZlQnRn6nThUhVhWhecfcgchcicjcJmKmNeOePeQeReSeTeUeVeWeXeYeZe0e1e2ebncndnenXhYhZh0h:m;mEfFfGfbgcgdgegfggghgigjgkglgmgF G H 'f(f)fHfIfJfZg0gI J K $d%d'd(d)d*d1h2h3h4h0l1l2l3l4l5l5h6h7h8h9h!h#h$hL M N k l m jbkblb%h'h6l7l(h)h*h+h,h-h.h/h:h;h=h?h8l9lcdddedmbnbobFdGdHdkclcmcncocpcpbqbrbqcrcscsbtbub+ , - vbwbxbtcucvcwcxcyc@h[h]h^h_h`h{h|h}h~haibicidieifigihiiijikiliminioipiqirisitiuiviwixiyiziAiBid 3e4eheiejeke!l4m5m=mznUm'nPoIo~n#laoUd$l%l'lSnvl'mAnWo1dboco.n(lTnUn7nCiDiEiFizcAcBcCcDcEcLmMm5e6e7e8e9e!e#e$e%e'e(e)e*e+e,e-efngnhninGiHiIiJi?m@mKfLfMfngogpgqgrgsgtgugvgwgxgygO P Q *f+f,fNfOfPf1g2gR S T +d,d-d.d/d:dKiLiMiNi)l*l+l,l-l.lOiPiQiRiSiTiUiViU V W n o p ybzbAbWiXi/l:lYiZi0i1i2i3i4i5i6i7i8i9i;l=lfdgdhdBbCbDbIdJdKdFcGcHcIcJcKcEbFbGbLcMcNcHbIbJb. / : KbLbMbOcPcQcRcScTc!i#i$i%i'i(i)i*i+i,i-i.i/i:i;i=i?i@i[i]i^i_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkje .e/elemeneoe?l6m7m[mBnVm(nQoJodo@leoVd[l]l^lVnwl(mCnXo2dfogo/n_lWnXn8nljmjnjojUcVcWcXcYcZcNmOm:e;e=e?e@e[e]e^e_e`e{e|e}e~eafbfjnknlnmnpjqjrjsj]m^mQfRfSfzgAgBgCgDgEgFgGgHgIgJgKgX Y Z -f.f/fTfUfVf3g4g0 1 2 ;d=d?d@d[d]dtjujvjwj`l{l|l}l~lamxjyjzjAjBjCjDjEj3 4 5 q r s NbObPbFjGjbmcmHjIjJjKjLjMjNjOjPjQjRjSjdmemidjdkdQbRbSbLdMdNd0c1c2c3c4c5cTbUbVb6c7c8cWbXbYb; = ? Zb0b1b9c!c#c$c%c'cTjUjVjWjXjYjZj0j1j2j3j4j5j6j7j8j9j!j#j$j%j'j(j)j*j+j,j-j.j/j:j;j=j?j@j[j]j^jf cfdfpeqeresefm8m9m_mDnWm)nRoKohogmioWdhmimjmYnxl)mEnYo3djoko:nkmZn0n9n_j`j{j|j(c)c*c+c,c-cPmQmefffgfhfifjfkflfmfnfofpfqfrfsftfnnonpnqn}j~jakbk`m{mWfXfYfLgMgNgOgPgQgRgSgTgUgVgWg6 7 8 :f;f=fZf0f1f5g6g9 ! # ^d_d`d{d|d}dckdkekfklmmmnmompmqmgkhkikjkkklkmknk$ % ' t u v 2b3b4bokpkrmsmqkrksktkukvkwkxkykzkAkBktmumldmdnd5b6b7bOdPdQd.c/c:c;c=c?c8b9b!b@c[c]c#b$b%b@ [ ] 'b(b)b^c_c`c{c|c}cCkDkEkFkGkHkIkJkKkLkMkNkOkPkQkRkSkTkUkVkWkXkYkZk0k1k2k3k4k5k6k7k8k9k!k#k$k%k

174 self.sa_column = sa_column 2g 2fwfxfwm*m+msnHn!m*nLoEoloxmmo4dymzmAm1nvmrnInSo5dnooopoBm2n3n!n,k-kudvdXm3f4f5f6f7f8f9f!fFnGn.k/k7g'k(k)k*k*b8g9g+k+bufvf:k;kCmDmEm=k?k@k[k,b^ od]kFm^k_k`k{k|k}kGmBdpdXdwdxdqdydrdsdtdzdAd~kalblcldlelflglhliljlklllmlnlolplqlrla te~daeylYmZm,mtnRm#nMoFo;nzl=nRdAlBlClJnsl#munToYd?n@n+nDlKnLn4n!g#g-b.bHmuevewexeyezeAeBe|m}m$g%gyf?f@f[f]fw #fzfXgx 6d7d'g(gElFlGl)g*g+g,gy h _ -gHl.g/g:g;g=g?gIl~c` Cd/b:b{ ;b| ( } =b?b@g[g]g^g_g`g{g|g}g~gahbhchdhehfhghhhihb CebeceJl0m1m-mvnSm$nNoGo[nKl]nSdLlMlNlMntl$mwnUoZd^n_n,nOlNnOn5njhkh@b[b]b^bImDeEeFeGeHeIeJeKe~manlhmh.mAfBf^f_f`f{f|f}f~fagz A $f%fCfDfYgB C 8d9d!d#dnhohPlQlRlphqhrhshD E i j ~ abthSluhvhwhxhyhzhTladbdbbcbDdEd_b`b{b|bdbeb}b~bfbgb) * hbibacbcccdcAhBhChDhEhFhGhHhIhJhKhLhMhNhOhPhQhRhShc LeMedeeefegeUl2m3m/mxnTm%nOoHo`nVl{nTdWlXlYlPnul%mynVo0d|n}n-nZlQnRn6nThUhVhWhecfcgchcicjcJmKmNeOePeQeReSeTeUeVeWeXeYeZe0e1e2ebncndnenXhYhZh0h:m;mEfFfGfbgcgdgegfggghgigjgkglgmgF G H 'f(f)fHfIfJfZg0gI J K $d%d'd(d)d*d1h2h3h4h0l1l2l3l4l5l5h6h7h8h9h!h#h$hL M N k l m jbkblb%h'h6l7l(h)h*h+h,h-h.h/h:h;h=h?h8l9lcdddedmbnbobFdGdHdkclcmcncocpcpbqbrbqcrcscsbtbub+ , - vbwbxbtcucvcwcxcyc@h[h]h^h_h`h{h|h}h~haibicidieifigihiiijikiliminioipiqirisitiuiviwixiyiziAiBid 3e4eheiejeke!l4m5m=mznUm'nPoIo~n#laoUd$l%l'lSnvl'mAnWo1dboco.n(lTnUn7nCiDiEiFizcAcBcCcDcEcLmMm5e6e7e8e9e!e#e$e%e'e(e)e*e+e,e-efngnhninGiHiIiJi?m@mKfLfMfngogpgqgrgsgtgugvgwgxgygO P Q *f+f,fNfOfPf1g2gR S T +d,d-d.d/d:dKiLiMiNi)l*l+l,l-l.lOiPiQiRiSiTiUiViU V W n o p ybzbAbWiXi/l:lYiZi0i1i2i3i4i5i6i7i8i9i;l=lfdgdhdBbCbDbIdJdKdFcGcHcIcJcKcEbFbGbLcMcNcHbIbJb. / : KbLbMbOcPcQcRcScTc!i#i$i%i'i(i)i*i+i,i-i.i/i:i;i=i?i@i[i]i^i_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkje .e/elemeneoe?l6m7m[mBnVm(nQoJodo@leoVd[l]l^lVnwl(mCnXo2dfogo/n_lWnXn8nljmjnjojUcVcWcXcYcZcNmOm:e;e=e?e@e[e]e^e_e`e{e|e}e~eafbfjnknlnmnpjqjrjsj]m^mQfRfSfzgAgBgCgDgEgFgGgHgIgJgKgX Y Z -f.f/fTfUfVf3g4g0 1 2 ;d=d?d@d[d]dtjujvjwj`l{l|l}l~lamxjyjzjAjBjCjDjEj3 4 5 q r s NbObPbFjGjbmcmHjIjJjKjLjMjNjOjPjQjRjSjdmemidjdkdQbRbSbLdMdNd0c1c2c3c4c5cTbUbVb6c7c8cWbXbYb; = ? Zb0b1b9c!c#c$c%c'cTjUjVjWjXjYjZj0j1j2j3j4j5j6j7j8j9j!j#j$j%j'j(j)j*j+j,j-j.j/j:j;j=j?j@j[j]j^jf cfdfpeqeresefm8m9m_mDnWm)nRoKohogmioWdhmimjmYnxl)mEnYo3djoko:nkmZn0n9n_j`j{j|j(c)c*c+c,c-cPmQmefffgfhfifjfkflfmfnfofpfqfrfsftfnnonpnqn}j~jakbk`m{mWfXfYfLgMgNgOgPgQgRgSgTgUgVgWg6 7 8 :f;f=fZf0f1f5g6g9 ! # ^d_d`d{d|d}dckdkekfklmmmnmompmqmgkhkikjkkklkmknk$ % ' t u v 2b3b4bokpkrmsmqkrksktkukvkwkxkykzkAkBktmumldmdnd5b6b7bOdPdQd.c/c:c;c=c?c8b9b!b@c[c]c#b$b%b@ [ ] 'b(b)b^c_c`c{c|c}cCkDkEkFkGkHkIkJkKkLkMkNkOkPkQkRkSkTkUkVkWkXkYkZk0k1k2k3k4k5k6k7k8k9k!k#k$k%k

175 self.sa_column_args = sa_column_args 2g 2fwfxfwm*m+msnHn!m*nLoEoloxmmo4dymzmAm1nvmrnInSo5dnooopoBm2n3n!n,k-kudvdXm3f4f5f6f7f8f9f!fFnGn.k/k7g'k(k)k*k*b8g9g+k+bufvf:k;kCmDmEm=k?k@k[k,b^ od]kFm^k_k`k{k|k}kGmBdpdXdwdxdqdydrdsdtdzdAd~kalblcldlelflglhliljlklllmlnlolplqlrla te~daeylYmZm,mtnRm#nMoFo;nzl=nRdAlBlClJnsl#munToYd?n@n+nDlKnLn4n!g#g-b.bHmuevewexeyezeAeBe|m}m$g%gyf?f@f[f]fw #fzfXgx 6d7d'g(gElFlGl)g*g+g,gy h _ -gHl.g/g:g;g=g?gIl~c` Cd/b:b{ ;b| ( } =b?b@g[g]g^g_g`g{g|g}g~gahbhchdhehfhghhhihb CebeceJl0m1m-mvnSm$nNoGo[nKl]nSdLlMlNlMntl$mwnUoZd^n_n,nOlNnOn5njhkh@b[b]b^bImDeEeFeGeHeIeJeKe~manlhmh.mAfBf^f_f`f{f|f}f~fagz A $f%fCfDfYgB C 8d9d!d#dnhohPlQlRlphqhrhshD E i j ~ abthSluhvhwhxhyhzhTladbdbbcbDdEd_b`b{b|bdbeb}b~bfbgb) * hbibacbcccdcAhBhChDhEhFhGhHhIhJhKhLhMhNhOhPhQhRhShc LeMedeeefegeUl2m3m/mxnTm%nOoHo`nVl{nTdWlXlYlPnul%mynVo0d|n}n-nZlQnRn6nThUhVhWhecfcgchcicjcJmKmNeOePeQeReSeTeUeVeWeXeYeZe0e1e2ebncndnenXhYhZh0h:m;mEfFfGfbgcgdgegfggghgigjgkglgmgF G H 'f(f)fHfIfJfZg0gI J K $d%d'd(d)d*d1h2h3h4h0l1l2l3l4l5l5h6h7h8h9h!h#h$hL M N k l m jbkblb%h'h6l7l(h)h*h+h,h-h.h/h:h;h=h?h8l9lcdddedmbnbobFdGdHdkclcmcncocpcpbqbrbqcrcscsbtbub+ , - vbwbxbtcucvcwcxcyc@h[h]h^h_h`h{h|h}h~haibicidieifigihiiijikiliminioipiqirisitiuiviwixiyiziAiBid 3e4eheiejeke!l4m5m=mznUm'nPoIo~n#laoUd$l%l'lSnvl'mAnWo1dboco.n(lTnUn7nCiDiEiFizcAcBcCcDcEcLmMm5e6e7e8e9e!e#e$e%e'e(e)e*e+e,e-efngnhninGiHiIiJi?m@mKfLfMfngogpgqgrgsgtgugvgwgxgygO P Q *f+f,fNfOfPf1g2gR S T +d,d-d.d/d:dKiLiMiNi)l*l+l,l-l.lOiPiQiRiSiTiUiViU V W n o p ybzbAbWiXi/l:lYiZi0i1i2i3i4i5i6i7i8i9i;l=lfdgdhdBbCbDbIdJdKdFcGcHcIcJcKcEbFbGbLcMcNcHbIbJb. / : KbLbMbOcPcQcRcScTc!i#i$i%i'i(i)i*i+i,i-i.i/i:i;i=i?i@i[i]i^i_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkje .e/elemeneoe?l6m7m[mBnVm(nQoJodo@leoVd[l]l^lVnwl(mCnXo2dfogo/n_lWnXn8nljmjnjojUcVcWcXcYcZcNmOm:e;e=e?e@e[e]e^e_e`e{e|e}e~eafbfjnknlnmnpjqjrjsj]m^mQfRfSfzgAgBgCgDgEgFgGgHgIgJgKgX Y Z -f.f/fTfUfVf3g4g0 1 2 ;d=d?d@d[d]dtjujvjwj`l{l|l}l~lamxjyjzjAjBjCjDjEj3 4 5 q r s NbObPbFjGjbmcmHjIjJjKjLjMjNjOjPjQjRjSjdmemidjdkdQbRbSbLdMdNd0c1c2c3c4c5cTbUbVb6c7c8cWbXbYb; = ? Zb0b1b9c!c#c$c%c'cTjUjVjWjXjYjZj0j1j2j3j4j5j6j7j8j9j!j#j$j%j'j(j)j*j+j,j-j.j/j:j;j=j?j@j[j]j^jf cfdfpeqeresefm8m9m_mDnWm)nRoKohogmioWdhmimjmYnxl)mEnYo3djoko:nkmZn0n9n_j`j{j|j(c)c*c+c,c-cPmQmefffgfhfifjfkflfmfnfofpfqfrfsftfnnonpnqn}j~jakbk`m{mWfXfYfLgMgNgOgPgQgRgSgTgUgVgWg6 7 8 :f;f=fZf0f1f5g6g9 ! # ^d_d`d{d|d}dckdkekfklmmmnmompmqmgkhkikjkkklkmknk$ % ' t u v 2b3b4bokpkrmsmqkrksktkukvkwkxkykzkAkBktmumldmdnd5b6b7bOdPdQd.c/c:c;c=c?c8b9b!b@c[c]c#b$b%b@ [ ] 'b(b)b^c_c`c{c|c}cCkDkEkFkGkHkIkJkKkLkMkNkOkPkQkRkSkTkUkVkWkXkYkZk0k1k2k3k4k5k6k7k8k9k!k#k$k%k

176 self.sa_column_kwargs = sa_column_kwargs 2g 2fwfxfwm*m+msnHn!m*nLoEoloxmmo4dymzmAm1nvmrnInSo5dnooopoBm2n3n!n,k-kudvdXm3f4f5f6f7f8f9f!fFnGn.k/k7g'k(k)k*k*b8g9g+k+bufvf:k;kCmDmEm=k?k@k[k,b^ od]kFm^k_k`k{k|k}kGmBdpdXdwdxdqdydrdsdtdzdAd~kalblcldlelflglhliljlklllmlnlolplqlrla te~daeylYmZm,mtnRm#nMoFo;nzl=nRdAlBlClJnsl#munToYd?n@n+nDlKnLn4n!g#g-b.bHmuevewexeyezeAeBe|m}m$g%gyf?f@f[f]fw #fzfXgx 6d7d'g(gElFlGl)g*g+g,gy h _ -gHl.g/g:g;g=g?gIl~c` Cd/b:b{ ;b| ( } =b?b@g[g]g^g_g`g{g|g}g~gahbhchdhehfhghhhihb CebeceJl0m1m-mvnSm$nNoGo[nKl]nSdLlMlNlMntl$mwnUoZd^n_n,nOlNnOn5njhkh@b[b]b^bImDeEeFeGeHeIeJeKe~manlhmh.mAfBf^f_f`f{f|f}f~fagz A $f%fCfDfYgB C 8d9d!d#dnhohPlQlRlphqhrhshD E i j ~ abthSluhvhwhxhyhzhTladbdbbcbDdEd_b`b{b|bdbeb}b~bfbgb) * hbibacbcccdcAhBhChDhEhFhGhHhIhJhKhLhMhNhOhPhQhRhShc LeMedeeefegeUl2m3m/mxnTm%nOoHo`nVl{nTdWlXlYlPnul%mynVo0d|n}n-nZlQnRn6nThUhVhWhecfcgchcicjcJmKmNeOePeQeReSeTeUeVeWeXeYeZe0e1e2ebncndnenXhYhZh0h:m;mEfFfGfbgcgdgegfggghgigjgkglgmgF G H 'f(f)fHfIfJfZg0gI J K $d%d'd(d)d*d1h2h3h4h0l1l2l3l4l5l5h6h7h8h9h!h#h$hL M N k l m jbkblb%h'h6l7l(h)h*h+h,h-h.h/h:h;h=h?h8l9lcdddedmbnbobFdGdHdkclcmcncocpcpbqbrbqcrcscsbtbub+ , - vbwbxbtcucvcwcxcyc@h[h]h^h_h`h{h|h}h~haibicidieifigihiiijikiliminioipiqirisitiuiviwixiyiziAiBid 3e4eheiejeke!l4m5m=mznUm'nPoIo~n#laoUd$l%l'lSnvl'mAnWo1dboco.n(lTnUn7nCiDiEiFizcAcBcCcDcEcLmMm5e6e7e8e9e!e#e$e%e'e(e)e*e+e,e-efngnhninGiHiIiJi?m@mKfLfMfngogpgqgrgsgtgugvgwgxgygO P Q *f+f,fNfOfPf1g2gR S T +d,d-d.d/d:dKiLiMiNi)l*l+l,l-l.lOiPiQiRiSiTiUiViU V W n o p ybzbAbWiXi/l:lYiZi0i1i2i3i4i5i6i7i8i9i;l=lfdgdhdBbCbDbIdJdKdFcGcHcIcJcKcEbFbGbLcMcNcHbIbJb. / : KbLbMbOcPcQcRcScTc!i#i$i%i'i(i)i*i+i,i-i.i/i:i;i=i?i@i[i]i^i_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkje .e/elemeneoe?l6m7m[mBnVm(nQoJodo@leoVd[l]l^lVnwl(mCnXo2dfogo/n_lWnXn8nljmjnjojUcVcWcXcYcZcNmOm:e;e=e?e@e[e]e^e_e`e{e|e}e~eafbfjnknlnmnpjqjrjsj]m^mQfRfSfzgAgBgCgDgEgFgGgHgIgJgKgX Y Z -f.f/fTfUfVf3g4g0 1 2 ;d=d?d@d[d]dtjujvjwj`l{l|l}l~lamxjyjzjAjBjCjDjEj3 4 5 q r s NbObPbFjGjbmcmHjIjJjKjLjMjNjOjPjQjRjSjdmemidjdkdQbRbSbLdMdNd0c1c2c3c4c5cTbUbVb6c7c8cWbXbYb; = ? Zb0b1b9c!c#c$c%c'cTjUjVjWjXjYjZj0j1j2j3j4j5j6j7j8j9j!j#j$j%j'j(j)j*j+j,j-j.j/j:j;j=j?j@j[j]j^jf cfdfpeqeresefm8m9m_mDnWm)nRoKohogmioWdhmimjmYnxl)mEnYo3djoko:nkmZn0n9n_j`j{j|j(c)c*c+c,c-cPmQmefffgfhfifjfkflfmfnfofpfqfrfsftfnnonpnqn}j~jakbk`m{mWfXfYfLgMgNgOgPgQgRgSgTgUgVgWg6 7 8 :f;f=fZf0f1f5g6g9 ! # ^d_d`d{d|d}dckdkekfklmmmnmompmqmgkhkikjkkklkmknk$ % ' t u v 2b3b4bokpkrmsmqkrksktkukvkwkxkykzkAkBktmumldmdnd5b6b7bOdPdQd.c/c:c;c=c?c8b9b!b@c[c]c#b$b%b@ [ ] 'b(b)b^c_c`c{c|c}cCkDkEkFkGkHkIkJkKkLkMkNkOkPkQkRkSkTkUkVkWkXkYkZk0k1k2k3k4k5k6k7k8k9k!k#k$k%k

177 

178 

179class RelationshipInfo(Representation): 1gabcdef

180 def __init__( 1abcdef

181 self, 

182 *, 

183 back_populates: Optional[str] = None, 

184 cascade_delete: Optional[bool] = False, 

185 passive_deletes: Optional[Union[bool, Literal["all"]]] = False, 

186 link_model: Optional[Any] = None, 

187 sa_relationship: Optional[RelationshipProperty] = None, # type: ignore 

188 sa_relationship_args: Optional[Sequence[Any]] = None, 

189 sa_relationship_kwargs: Optional[Mapping[str, Any]] = None, 

190 ) -> None: 

191 if sa_relationship is not None: 2LoEo4d5dudvd*b+b,b^ odBdpdXdwdxdqdydrdsdtdzdAdMoFoRdYd-b.bw x y h _ ~c` Cd/b:b{ ;b| ( } =b?bNoGoSdZd@b[b]b^bz A B C D E i j ~ abadbdbbcbDdEd_b`b{b|bdbeb}b~bfbgb) * hbibacbcccdcOoHoTd0decfcgchcicjcF G H I J K L M N k l m jbkblbcdddedmbnbobFdGdHdkclcmcncocpcpbqbrbqcrcscsbtbub+ , - vbwbxbtcucvcwcxcycPoIoUd1dzcAcBcCcDcEcO P Q R S T U V W n o p ybzbAbfdgdhdBbCbDbIdJdKdFcGcHcIcJcKcEbFbGbLcMcNcHbIbJb. / : KbLbMbOcPcQcRcScTcQoJoVd2dUcVcWcXcYcZcX Y Z 0 1 2 3 4 5 q r s NbObPbidjdkdQbRbSbLdMdNd0c1c2c3c4c5cTbUbVb6c7c8cWbXbYb; = ? Zb0b1b9c!c#c$c%c'cRoKoWd3d(c)c*c+c,c-c6 7 8 9 ! # $ % ' t u v 2b3b4bldmdnd5b6b7bOdPdQd.c/c:c;c=c?c8b9b!b@c[c]c#b$b%b@ [ ] 'b(b)b^c_c`c{c|c}c

192 if sa_relationship_args is not None: 2LoEo4dMoFoRdNoGoSdOoHoTdPoIoUdQoJoVdRoKoWd

193 raise RuntimeError( 2LoMoNoOoPoQoRo

194 "Passing sa_relationship_args is not supported when " 

195 "also passing a sa_relationship" 

196 ) 

197 if sa_relationship_kwargs is not None: 2Eo4dFoRdGoSdHoTdIoUdJoVdKoWd

198 raise RuntimeError( 2EoFoGoHoIoJoKo

199 "Passing sa_relationship_kwargs is not supported when " 

200 "also passing a sa_relationship" 

201 ) 

202 self.back_populates = back_populates 24d5dudvd*b+b,b^ odBdpdXdwdxdqdydrdsdtdzdAdRdYd-b.bw x y h _ ~c` Cd/b:b{ ;b| ( } =b?bSdZd@b[b]b^bz A B C D E i j ~ abadbdbbcbDdEd_b`b{b|bdbeb}b~bfbgb) * hbibacbcccdcTd0decfcgchcicjcF G H I J K L M N k l m jbkblbcdddedmbnbobFdGdHdkclcmcncocpcpbqbrbqcrcscsbtbub+ , - vbwbxbtcucvcwcxcycUd1dzcAcBcCcDcEcO P Q R S T U V W n o p ybzbAbfdgdhdBbCbDbIdJdKdFcGcHcIcJcKcEbFbGbLcMcNcHbIbJb. / : KbLbMbOcPcQcRcScTcVd2dUcVcWcXcYcZcX Y Z 0 1 2 3 4 5 q r s NbObPbidjdkdQbRbSbLdMdNd0c1c2c3c4c5cTbUbVb6c7c8cWbXbYb; = ? Zb0b1b9c!c#c$c%c'cWd3d(c)c*c+c,c-c6 7 8 9 ! # $ % ' t u v 2b3b4bldmdnd5b6b7bOdPdQd.c/c:c;c=c?c8b9b!b@c[c]c#b$b%b@ [ ] 'b(b)b^c_c`c{c|c}c

203 self.cascade_delete = cascade_delete 24d5dudvd*b+b,b^ odBdpdXdwdxdqdydrdsdtdzdAdRdYd-b.bw x y h _ ~c` Cd/b:b{ ;b| ( } =b?bSdZd@b[b]b^bz A B C D E i j ~ abadbdbbcbDdEd_b`b{b|bdbeb}b~bfbgb) * hbibacbcccdcTd0decfcgchcicjcF G H I J K L M N k l m jbkblbcdddedmbnbobFdGdHdkclcmcncocpcpbqbrbqcrcscsbtbub+ , - vbwbxbtcucvcwcxcycUd1dzcAcBcCcDcEcO P Q R S T U V W n o p ybzbAbfdgdhdBbCbDbIdJdKdFcGcHcIcJcKcEbFbGbLcMcNcHbIbJb. / : KbLbMbOcPcQcRcScTcVd2dUcVcWcXcYcZcX Y Z 0 1 2 3 4 5 q r s NbObPbidjdkdQbRbSbLdMdNd0c1c2c3c4c5cTbUbVb6c7c8cWbXbYb; = ? Zb0b1b9c!c#c$c%c'cWd3d(c)c*c+c,c-c6 7 8 9 ! # $ % ' t u v 2b3b4bldmdnd5b6b7bOdPdQd.c/c:c;c=c?c8b9b!b@c[c]c#b$b%b@ [ ] 'b(b)b^c_c`c{c|c}c

204 self.passive_deletes = passive_deletes 24d5dudvd*b+b,b^ odBdpdXdwdxdqdydrdsdtdzdAdRdYd-b.bw x y h _ ~c` Cd/b:b{ ;b| ( } =b?bSdZd@b[b]b^bz A B C D E i j ~ abadbdbbcbDdEd_b`b{b|bdbeb}b~bfbgb) * hbibacbcccdcTd0decfcgchcicjcF G H I J K L M N k l m jbkblbcdddedmbnbobFdGdHdkclcmcncocpcpbqbrbqcrcscsbtbub+ , - vbwbxbtcucvcwcxcycUd1dzcAcBcCcDcEcO P Q R S T U V W n o p ybzbAbfdgdhdBbCbDbIdJdKdFcGcHcIcJcKcEbFbGbLcMcNcHbIbJb. / : KbLbMbOcPcQcRcScTcVd2dUcVcWcXcYcZcX Y Z 0 1 2 3 4 5 q r s NbObPbidjdkdQbRbSbLdMdNd0c1c2c3c4c5cTbUbVb6c7c8cWbXbYb; = ? Zb0b1b9c!c#c$c%c'cWd3d(c)c*c+c,c-c6 7 8 9 ! # $ % ' t u v 2b3b4bldmdnd5b6b7bOdPdQd.c/c:c;c=c?c8b9b!b@c[c]c#b$b%b@ [ ] 'b(b)b^c_c`c{c|c}c

205 self.link_model = link_model 24d5dudvd*b+b,b^ odBdpdXdwdxdqdydrdsdtdzdAdRdYd-b.bw x y h _ ~c` Cd/b:b{ ;b| ( } =b?bSdZd@b[b]b^bz A B C D E i j ~ abadbdbbcbDdEd_b`b{b|bdbeb}b~bfbgb) * hbibacbcccdcTd0decfcgchcicjcF G H I J K L M N k l m jbkblbcdddedmbnbobFdGdHdkclcmcncocpcpbqbrbqcrcscsbtbub+ , - vbwbxbtcucvcwcxcycUd1dzcAcBcCcDcEcO P Q R S T U V W n o p ybzbAbfdgdhdBbCbDbIdJdKdFcGcHcIcJcKcEbFbGbLcMcNcHbIbJb. / : KbLbMbOcPcQcRcScTcVd2dUcVcWcXcYcZcX Y Z 0 1 2 3 4 5 q r s NbObPbidjdkdQbRbSbLdMdNd0c1c2c3c4c5cTbUbVb6c7c8cWbXbYb; = ? Zb0b1b9c!c#c$c%c'cWd3d(c)c*c+c,c-c6 7 8 9 ! # $ % ' t u v 2b3b4bldmdnd5b6b7bOdPdQd.c/c:c;c=c?c8b9b!b@c[c]c#b$b%b@ [ ] 'b(b)b^c_c`c{c|c}c

206 self.sa_relationship = sa_relationship 24d5dudvd*b+b,b^ odBdpdXdwdxdqdydrdsdtdzdAdRdYd-b.bw x y h _ ~c` Cd/b:b{ ;b| ( } =b?bSdZd@b[b]b^bz A B C D E i j ~ abadbdbbcbDdEd_b`b{b|bdbeb}b~bfbgb) * hbibacbcccdcTd0decfcgchcicjcF G H I J K L M N k l m jbkblbcdddedmbnbobFdGdHdkclcmcncocpcpbqbrbqcrcscsbtbub+ , - vbwbxbtcucvcwcxcycUd1dzcAcBcCcDcEcO P Q R S T U V W n o p ybzbAbfdgdhdBbCbDbIdJdKdFcGcHcIcJcKcEbFbGbLcMcNcHbIbJb. / : KbLbMbOcPcQcRcScTcVd2dUcVcWcXcYcZcX Y Z 0 1 2 3 4 5 q r s NbObPbidjdkdQbRbSbLdMdNd0c1c2c3c4c5cTbUbVb6c7c8cWbXbYb; = ? Zb0b1b9c!c#c$c%c'cWd3d(c)c*c+c,c-c6 7 8 9 ! # $ % ' t u v 2b3b4bldmdnd5b6b7bOdPdQd.c/c:c;c=c?c8b9b!b@c[c]c#b$b%b@ [ ] 'b(b)b^c_c`c{c|c}c

207 self.sa_relationship_args = sa_relationship_args 24d5dudvd*b+b,b^ odBdpdXdwdxdqdydrdsdtdzdAdRdYd-b.bw x y h _ ~c` Cd/b:b{ ;b| ( } =b?bSdZd@b[b]b^bz A B C D E i j ~ abadbdbbcbDdEd_b`b{b|bdbeb}b~bfbgb) * hbibacbcccdcTd0decfcgchcicjcF G H I J K L M N k l m jbkblbcdddedmbnbobFdGdHdkclcmcncocpcpbqbrbqcrcscsbtbub+ , - vbwbxbtcucvcwcxcycUd1dzcAcBcCcDcEcO P Q R S T U V W n o p ybzbAbfdgdhdBbCbDbIdJdKdFcGcHcIcJcKcEbFbGbLcMcNcHbIbJb. / : KbLbMbOcPcQcRcScTcVd2dUcVcWcXcYcZcX Y Z 0 1 2 3 4 5 q r s NbObPbidjdkdQbRbSbLdMdNd0c1c2c3c4c5cTbUbVb6c7c8cWbXbYb; = ? Zb0b1b9c!c#c$c%c'cWd3d(c)c*c+c,c-c6 7 8 9 ! # $ % ' t u v 2b3b4bldmdnd5b6b7bOdPdQd.c/c:c;c=c?c8b9b!b@c[c]c#b$b%b@ [ ] 'b(b)b^c_c`c{c|c}c

208 self.sa_relationship_kwargs = sa_relationship_kwargs 24d5dudvd*b+b,b^ odBdpdXdwdxdqdydrdsdtdzdAdRdYd-b.bw x y h _ ~c` Cd/b:b{ ;b| ( } =b?bSdZd@b[b]b^bz A B C D E i j ~ abadbdbbcbDdEd_b`b{b|bdbeb}b~bfbgb) * hbibacbcccdcTd0decfcgchcicjcF G H I J K L M N k l m jbkblbcdddedmbnbobFdGdHdkclcmcncocpcpbqbrbqcrcscsbtbub+ , - vbwbxbtcucvcwcxcycUd1dzcAcBcCcDcEcO P Q R S T U V W n o p ybzbAbfdgdhdBbCbDbIdJdKdFcGcHcIcJcKcEbFbGbLcMcNcHbIbJb. / : KbLbMbOcPcQcRcScTcVd2dUcVcWcXcYcZcX Y Z 0 1 2 3 4 5 q r s NbObPbidjdkdQbRbSbLdMdNd0c1c2c3c4c5cTbUbVb6c7c8cWbXbYb; = ? Zb0b1b9c!c#c$c%c'cWd3d(c)c*c+c,c-c6 7 8 9 ! # $ % ' t u v 2b3b4bldmdnd5b6b7bOdPdQd.c/c:c;c=c?c8b9b!b@c[c]c#b$b%b@ [ ] 'b(b)b^c_c`c{c|c}c

209 

210 

211# include sa_type, sa_column_args, sa_column_kwargs 

212@overload 1gabcdef

213def Field( 1abcdef

214 default: Any = Undefined, 1gabcdef

215 *, 

216 default_factory: Optional[NoArgAnyCallable] = None, 1gabcdef

217 alias: Optional[str] = None, 1gabcdef

218 title: Optional[str] = None, 1gabcdef

219 description: Optional[str] = None, 1gabcdef

220 exclude: Union[ 1abcdef

221 AbstractSet[Union[int, str]], Mapping[Union[int, str], Any], Any 1abcdef

222 ] = None, 1gabcdef

223 include: Union[ 1abcdef

224 AbstractSet[Union[int, str]], Mapping[Union[int, str], Any], Any 1abcdef

225 ] = None, 1gabcdef

226 const: Optional[bool] = None, 1gabcdef

227 gt: Optional[float] = None, 1gabcdef

228 ge: Optional[float] = None, 1gabcdef

229 lt: Optional[float] = None, 1gabcdef

230 le: Optional[float] = None, 1gabcdef

231 multiple_of: Optional[float] = None, 1gabcdef

232 max_digits: Optional[int] = None, 1gabcdef

233 decimal_places: Optional[int] = None, 1gabcdef

234 min_items: Optional[int] = None, 1gabcdef

235 max_items: Optional[int] = None, 1gabcdef

236 unique_items: Optional[bool] = None, 1gabcdef

237 min_length: Optional[int] = None, 1gabcdef

238 max_length: Optional[int] = None, 1gabcdef

239 allow_mutation: bool = True, 1gabcdef

240 regex: Optional[str] = None, 1gabcdef

241 discriminator: Optional[str] = None, 1gabcdef

242 repr: bool = True, 1gabcdef

243 primary_key: Union[bool, UndefinedType] = Undefined, 1gabcdef

244 foreign_key: Any = Undefined, 1gabcdef

245 unique: Union[bool, UndefinedType] = Undefined, 1gabcdef

246 nullable: Union[bool, UndefinedType] = Undefined, 1gabcdef

247 index: Union[bool, UndefinedType] = Undefined, 1gabcdef

248 sa_type: Union[Type[Any], UndefinedType] = Undefined, 1gabcdef

249 sa_column_args: Union[Sequence[Any], UndefinedType] = Undefined, 1gabcdef

250 sa_column_kwargs: Union[Mapping[str, Any], UndefinedType] = Undefined, 1gabcdef

251 schema_extra: Optional[Dict[str, Any]] = None, 1gabcdef

252) -> Any: ... 1gabcdef

253 

254 

255# When foreign_key is str, include ondelete 

256# include sa_type, sa_column_args, sa_column_kwargs 

257@overload 1gabcdef

258def Field( 1abcdef

259 default: Any = Undefined, 1gabcdef

260 *, 

261 default_factory: Optional[NoArgAnyCallable] = None, 1gabcdef

262 alias: Optional[str] = None, 1gabcdef

263 title: Optional[str] = None, 1gabcdef

264 description: Optional[str] = None, 1gabcdef

265 exclude: Union[ 1abcdef

266 AbstractSet[Union[int, str]], Mapping[Union[int, str], Any], Any 1abcdef

267 ] = None, 1gabcdef

268 include: Union[ 1abcdef

269 AbstractSet[Union[int, str]], Mapping[Union[int, str], Any], Any 1abcdef

270 ] = None, 1gabcdef

271 const: Optional[bool] = None, 1gabcdef

272 gt: Optional[float] = None, 1gabcdef

273 ge: Optional[float] = None, 1gabcdef

274 lt: Optional[float] = None, 1gabcdef

275 le: Optional[float] = None, 1gabcdef

276 multiple_of: Optional[float] = None, 1gabcdef

277 max_digits: Optional[int] = None, 1gabcdef

278 decimal_places: Optional[int] = None, 1gabcdef

279 min_items: Optional[int] = None, 1gabcdef

280 max_items: Optional[int] = None, 1gabcdef

281 unique_items: Optional[bool] = None, 1gabcdef

282 min_length: Optional[int] = None, 1gabcdef

283 max_length: Optional[int] = None, 1gabcdef

284 allow_mutation: bool = True, 1gabcdef

285 regex: Optional[str] = None, 1gabcdef

286 discriminator: Optional[str] = None, 1gabcdef

287 repr: bool = True, 1gabcdef

288 primary_key: Union[bool, UndefinedType] = Undefined, 1gabcdef

289 foreign_key: str, 1abcdef

290 ondelete: Union[OnDeleteType, UndefinedType] = Undefined, 1gabcdef

291 unique: Union[bool, UndefinedType] = Undefined, 1gabcdef

292 nullable: Union[bool, UndefinedType] = Undefined, 1gabcdef

293 index: Union[bool, UndefinedType] = Undefined, 1gabcdef

294 sa_type: Union[Type[Any], UndefinedType] = Undefined, 1gabcdef

295 sa_column_args: Union[Sequence[Any], UndefinedType] = Undefined, 1gabcdef

296 sa_column_kwargs: Union[Mapping[str, Any], UndefinedType] = Undefined, 1gabcdef

297 schema_extra: Optional[Dict[str, Any]] = None, 1gabcdef

298) -> Any: ... 1gabcdef

299 

300 

301# Include sa_column, don't include 

302# primary_key 

303# foreign_key 

304# ondelete 

305# unique 

306# nullable 

307# index 

308# sa_type 

309# sa_column_args 

310# sa_column_kwargs 

311@overload 1gabcdef

312def Field( 1abcdef

313 default: Any = Undefined, 1gabcdef

314 *, 

315 default_factory: Optional[NoArgAnyCallable] = None, 1gabcdef

316 alias: Optional[str] = None, 1gabcdef

317 title: Optional[str] = None, 1gabcdef

318 description: Optional[str] = None, 1gabcdef

319 exclude: Union[ 1abcdef

320 AbstractSet[Union[int, str]], Mapping[Union[int, str], Any], Any 1abcdef

321 ] = None, 1gabcdef

322 include: Union[ 1abcdef

323 AbstractSet[Union[int, str]], Mapping[Union[int, str], Any], Any 1abcdef

324 ] = None, 1gabcdef

325 const: Optional[bool] = None, 1gabcdef

326 gt: Optional[float] = None, 1gabcdef

327 ge: Optional[float] = None, 1gabcdef

328 lt: Optional[float] = None, 1gabcdef

329 le: Optional[float] = None, 1gabcdef

330 multiple_of: Optional[float] = None, 1gabcdef

331 max_digits: Optional[int] = None, 1gabcdef

332 decimal_places: Optional[int] = None, 1gabcdef

333 min_items: Optional[int] = None, 1gabcdef

334 max_items: Optional[int] = None, 1gabcdef

335 unique_items: Optional[bool] = None, 1gabcdef

336 min_length: Optional[int] = None, 1gabcdef

337 max_length: Optional[int] = None, 1gabcdef

338 allow_mutation: bool = True, 1gabcdef

339 regex: Optional[str] = None, 1gabcdef

340 discriminator: Optional[str] = None, 1gabcdef

341 repr: bool = True, 1gabcdef

342 sa_column: Union[Column[Any], UndefinedType] = Undefined, 1gabcdef

343 schema_extra: Optional[Dict[str, Any]] = None, 1gabcdef

344) -> Any: ... 1gabcdef

345 

346 

347def Field( 1abcdef

348 default: Any = Undefined, 

349 *, 

350 default_factory: Optional[NoArgAnyCallable] = None, 

351 alias: Optional[str] = None, 

352 title: Optional[str] = None, 

353 description: Optional[str] = None, 

354 exclude: Union[ 

355 AbstractSet[Union[int, str]], Mapping[Union[int, str], Any], Any 

356 ] = None, 

357 include: Union[ 

358 AbstractSet[Union[int, str]], Mapping[Union[int, str], Any], Any 

359 ] = None, 

360 const: Optional[bool] = None, 

361 gt: Optional[float] = None, 

362 ge: Optional[float] = None, 

363 lt: Optional[float] = None, 

364 le: Optional[float] = None, 

365 multiple_of: Optional[float] = None, 

366 max_digits: Optional[int] = None, 

367 decimal_places: Optional[int] = None, 

368 min_items: Optional[int] = None, 

369 max_items: Optional[int] = None, 

370 unique_items: Optional[bool] = None, 

371 min_length: Optional[int] = None, 

372 max_length: Optional[int] = None, 

373 allow_mutation: bool = True, 

374 regex: Optional[str] = None, 

375 discriminator: Optional[str] = None, 

376 repr: bool = True, 

377 primary_key: Union[bool, UndefinedType] = Undefined, 

378 foreign_key: Any = Undefined, 

379 ondelete: Union[OnDeleteType, UndefinedType] = Undefined, 

380 unique: Union[bool, UndefinedType] = Undefined, 

381 nullable: Union[bool, UndefinedType] = Undefined, 

382 index: Union[bool, UndefinedType] = Undefined, 

383 sa_type: Union[Type[Any], UndefinedType] = Undefined, 

384 sa_column: Union[Column, UndefinedType] = Undefined, # type: ignore 

385 sa_column_args: Union[Sequence[Any], UndefinedType] = Undefined, 

386 sa_column_kwargs: Union[Mapping[str, Any], UndefinedType] = Undefined, 

387 schema_extra: Optional[Dict[str, Any]] = None, 

388) -> Any: 

389 current_schema_extra = schema_extra or {} 2g 2fwfxfwm*m+msnHn!m6oor~ovrJrCrZo[o*nLoEoloxmmo4dymzmAm1nvmrnInSo5dnooopoBm2n3n!n,k-kudvdXm3f4f5f6f7f8f9f!fFnGn.k/k7g'k(k)k*k*b8g9g+k+bufvf:k;kCmDmEm=k?k@k[k,b^ od]kFm^k_k`k{k|k}kGmBdpdXdwdxdqdydrdsdtdzdAd~kalblcldlelflglhliljlklllmlnlolplqlrla te~daeylYmZm,mtnRm7oprapwrKrDr0o]o#nMoFo;nzl=nRdAlBlClJnsl#munToYd?n@n+nDlKnLn4n!g#g-b.bHmuevewexeyezeAeBe|m}m$g%gyf?f@f[f]fw #fzfXgx 6d7d'g(gElFlGl)g*g+g,gy h _ -gHl.g/g:g;g=g?gIl~c` Cd/b:b{ ;b| ( } =b?b@g[g]g^g_g`g{g|g}g~gahbhchdhehfhghhhihb CebeceJl0m1m-mvnSm8oqrbpxrLrEr1o^o$nNoGo[nKl]nSdLlMlNlMntl$mwnUoZd^n_n,nOlNnOn5njhkh@b[b]b^bImDeEeFeGeHeIeJeKe~manlhmh.mAfBf^f_f`f{f|f}f~fagz A $f%fCfDfYgB C 8d9d!d#dnhohPlQlRlphqhrhshD E i j ~ abthSluhvhwhxhyhzhTladbdbbcbDdEd_b`b{b|bdbeb}b~bfbgb) * hbibacbcccdcAhBhChDhEhFhGhHhIhJhKhLhMhNhOhPhQhRhShc LeMedeeefegeUl2m3m/mxnTm9orrcpyrMrFr2o_o%nOoHo`nVl{nTdWlXlYlPnul%mynVo0d|n}n-nZlQnRn6nThUhVhWhecfcgchcicjcJmKmNeOePeQeReSeTeUeVeWeXeYeZe0e1e2ebncndnenXhYhZh0h:m;mEfFfGfbgcgdgegfggghgigjgkglgmgF G H 'f(f)fHfIfJfZg0gI J K $d%d'd(d)d*d1h2h3h4h0l1l2l3l4l5l5h6h7h8h9h!h#h$hL M N k l m jbkblb%h'h6l7l(h)h*h+h,h-h.h/h:h;h=h?h8l9lcdddedmbnbobFdGdHdkclcmcncocpcpbqbrbqcrcscsbtbub+ , - vbwbxbtcucvcwcxcyc@h[h]h^h_h`h{h|h}h~haibicidieifigihiiijikiliminioipiqirisitiuiviwixiyiziAiBid 3e4eheiejeke!l4m5m=mznUm!osrdpzrNrGr3o`o'nPoIo~n#laoUd$l%l'lSnvl'mAnWo1dboco.n(lTnUn7nCiDiEiFizcAcBcCcDcEcLmMm5e6e7e8e9e!e#e$e%e'e(e)e*e+e,e-efngnhninGiHiIiJi?m@mKfLfMfngogpgqgrgsgtgugvgwgxgygO P Q *f+f,fNfOfPf1g2gR S T +d,d-d.d/d:dKiLiMiNi)l*l+l,l-l.lOiPiQiRiSiTiUiViU V W n o p ybzbAbWiXi/l:lYiZi0i1i2i3i4i5i6i7i8i9i;l=lfdgdhdBbCbDbIdJdKdFcGcHcIcJcKcEbFbGbLcMcNcHbIbJb. / : KbLbMbOcPcQcRcScTc!i#i$i%i'i(i)i*i+i,i-i.i/i:i;i=i?i@i[i]i^i_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkje .e/elemeneoe?l6m7m[mBnVm#otrepArOrHr4o{o(nQoJodo@leoVd[l]l^lVnwl(mCnXo2dfogo/n_lWnXn8nljmjnjojUcVcWcXcYcZcNmOm:e;e=e?e@e[e]e^e_e`e{e|e}e~eafbfjnknlnmnpjqjrjsj]m^mQfRfSfzgAgBgCgDgEgFgGgHgIgJgKgX Y Z -f.f/fTfUfVf3g4g0 1 2 ;d=d?d@d[d]dtjujvjwj`l{l|l}l~lamxjyjzjAjBjCjDjEj3 4 5 q r s NbObPbFjGjbmcmHjIjJjKjLjMjNjOjPjQjRjSjdmemidjdkdQbRbSbLdMdNd0c1c2c3c4c5cTbUbVb6c7c8cWbXbYb; = ? Zb0b1b9c!c#c$c%c'cTjUjVjWjXjYjZj0j1j2j3j4j5j6j7j8j9j!j#j$j%j'j(j)j*j+j,j-j.j/j:j;j=j?j@j[j]j^jf cfdfpeqeresefm8m9m_mDnWm$ourfpBrPrIr5o|o)nRoKohogmioWdhmimjmYnxl)mEnYo3djoko:nkmZn0n9n_j`j{j|j(c)c*c+c,c-cPmQmefffgfhfifjfkflfmfnfofpfqfrfsftfnnonpnqn}j~jakbk`m{mWfXfYfLgMgNgOgPgQgRgSgTgUgVgWg6 7 8 :f;f=fZf0f1f5g6g9 ! # ^d_d`d{d|d}dckdkekfklmmmnmompmqmgkhkikjkkklkmknk$ % ' t u v 2b3b4bokpkrmsmqkrksktkukvkwkxkykzkAkBktmumldmdnd5b6b7bOdPdQd.c/c:c;c=c?c8b9b!b@c[c]c#b$b%b@ [ ] 'b(b)b^c_c`c{c|c}cCkDkEkFkGkHkIkJkKkLkMkNkOkPkQkRkSkTkUkVkWkXkYkZk0k1k2k3k4k5k6k7k8k9k!k#k$k%k

390 field_info = FieldInfo( 2g 2fwfxfwm*m+msnHn!m6oor~ovrJrCrZo[o*nLoEoloxmmo4dymzmAm1nvmrnInSo5dnooopoBm2n3n!n,k-kudvdXm3f4f5f6f7f8f9f!fFnGn.k/k7g'k(k)k*k*b8g9g+k+bufvf:k;kCmDmEm=k?k@k[k,b^ od]kFm^k_k`k{k|k}kGmBdpdXdwdxdqdydrdsdtdzdAd~kalblcldlelflglhliljlklllmlnlolplqlrla te~daeylYmZm,mtnRm7oprapwrKrDr0o]o#nMoFo;nzl=nRdAlBlClJnsl#munToYd?n@n+nDlKnLn4n!g#g-b.bHmuevewexeyezeAeBe|m}m$g%gyf?f@f[f]fw #fzfXgx 6d7d'g(gElFlGl)g*g+g,gy h _ -gHl.g/g:g;g=g?gIl~c` Cd/b:b{ ;b| ( } =b?b@g[g]g^g_g`g{g|g}g~gahbhchdhehfhghhhihb CebeceJl0m1m-mvnSm8oqrbpxrLrEr1o^o$nNoGo[nKl]nSdLlMlNlMntl$mwnUoZd^n_n,nOlNnOn5njhkh@b[b]b^bImDeEeFeGeHeIeJeKe~manlhmh.mAfBf^f_f`f{f|f}f~fagz A $f%fCfDfYgB C 8d9d!d#dnhohPlQlRlphqhrhshD E i j ~ abthSluhvhwhxhyhzhTladbdbbcbDdEd_b`b{b|bdbeb}b~bfbgb) * hbibacbcccdcAhBhChDhEhFhGhHhIhJhKhLhMhNhOhPhQhRhShc LeMedeeefegeUl2m3m/mxnTm9orrcpyrMrFr2o_o%nOoHo`nVl{nTdWlXlYlPnul%mynVo0d|n}n-nZlQnRn6nThUhVhWhecfcgchcicjcJmKmNeOePeQeReSeTeUeVeWeXeYeZe0e1e2ebncndnenXhYhZh0h:m;mEfFfGfbgcgdgegfggghgigjgkglgmgF G H 'f(f)fHfIfJfZg0gI J K $d%d'd(d)d*d1h2h3h4h0l1l2l3l4l5l5h6h7h8h9h!h#h$hL M N k l m jbkblb%h'h6l7l(h)h*h+h,h-h.h/h:h;h=h?h8l9lcdddedmbnbobFdGdHdkclcmcncocpcpbqbrbqcrcscsbtbub+ , - vbwbxbtcucvcwcxcyc@h[h]h^h_h`h{h|h}h~haibicidieifigihiiijikiliminioipiqirisitiuiviwixiyiziAiBid 3e4eheiejeke!l4m5m=mznUm!osrdpzrNrGr3o`o'nPoIo~n#laoUd$l%l'lSnvl'mAnWo1dboco.n(lTnUn7nCiDiEiFizcAcBcCcDcEcLmMm5e6e7e8e9e!e#e$e%e'e(e)e*e+e,e-efngnhninGiHiIiJi?m@mKfLfMfngogpgqgrgsgtgugvgwgxgygO P Q *f+f,fNfOfPf1g2gR S T +d,d-d.d/d:dKiLiMiNi)l*l+l,l-l.lOiPiQiRiSiTiUiViU V W n o p ybzbAbWiXi/l:lYiZi0i1i2i3i4i5i6i7i8i9i;l=lfdgdhdBbCbDbIdJdKdFcGcHcIcJcKcEbFbGbLcMcNcHbIbJb. / : KbLbMbOcPcQcRcScTc!i#i$i%i'i(i)i*i+i,i-i.i/i:i;i=i?i@i[i]i^i_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkje .e/elemeneoe?l6m7m[mBnVm#otrepArOrHr4o{o(nQoJodo@leoVd[l]l^lVnwl(mCnXo2dfogo/n_lWnXn8nljmjnjojUcVcWcXcYcZcNmOm:e;e=e?e@e[e]e^e_e`e{e|e}e~eafbfjnknlnmnpjqjrjsj]m^mQfRfSfzgAgBgCgDgEgFgGgHgIgJgKgX Y Z -f.f/fTfUfVf3g4g0 1 2 ;d=d?d@d[d]dtjujvjwj`l{l|l}l~lamxjyjzjAjBjCjDjEj3 4 5 q r s NbObPbFjGjbmcmHjIjJjKjLjMjNjOjPjQjRjSjdmemidjdkdQbRbSbLdMdNd0c1c2c3c4c5cTbUbVb6c7c8cWbXbYb; = ? Zb0b1b9c!c#c$c%c'cTjUjVjWjXjYjZj0j1j2j3j4j5j6j7j8j9j!j#j$j%j'j(j)j*j+j,j-j.j/j:j;j=j?j@j[j]j^jf cfdfpeqeresefm8m9m_mDnWm$ourfpBrPrIr5o|o)nRoKohogmioWdhmimjmYnxl)mEnYo3djoko:nkmZn0n9n_j`j{j|j(c)c*c+c,c-cPmQmefffgfhfifjfkflfmfnfofpfqfrfsftfnnonpnqn}j~jakbk`m{mWfXfYfLgMgNgOgPgQgRgSgTgUgVgWg6 7 8 :f;f=fZf0f1f5g6g9 ! # ^d_d`d{d|d}dckdkekfklmmmnmompmqmgkhkikjkkklkmknk$ % ' t u v 2b3b4bokpkrmsmqkrksktkukvkwkxkykzkAkBktmumldmdnd5b6b7bOdPdQd.c/c:c;c=c?c8b9b!b@c[c]c#b$b%b@ [ ] 'b(b)b^c_c`c{c|c}cCkDkEkFkGkHkIkJkKkLkMkNkOkPkQkRkSkTkUkVkWkXkYkZk0k1k2k3k4k5k6k7k8k9k!k#k$k%k

391 default, 

392 default_factory=default_factory, 

393 alias=alias, 

394 title=title, 

395 description=description, 

396 exclude=exclude, 

397 include=include, 

398 const=const, 

399 gt=gt, 

400 ge=ge, 

401 lt=lt, 

402 le=le, 

403 multiple_of=multiple_of, 

404 max_digits=max_digits, 

405 decimal_places=decimal_places, 

406 min_items=min_items, 

407 max_items=max_items, 

408 unique_items=unique_items, 

409 min_length=min_length, 

410 max_length=max_length, 

411 allow_mutation=allow_mutation, 

412 regex=regex, 

413 discriminator=discriminator, 

414 repr=repr, 

415 primary_key=primary_key, 

416 foreign_key=foreign_key, 

417 ondelete=ondelete, 

418 unique=unique, 

419 nullable=nullable, 

420 index=index, 

421 sa_type=sa_type, 

422 sa_column=sa_column, 

423 sa_column_args=sa_column_args, 

424 sa_column_kwargs=sa_column_kwargs, 

425 **current_schema_extra, 

426 ) 

427 post_init_field_info(field_info) 2g 2fwfxfwm*m+msnHn!m*nLoEoloxmmo4dymzmAm1nvmrnInSo5dnooopoBm2n3n!n,k-kudvdXm3f4f5f6f7f8f9f!fFnGn.k/k7g'k(k)k*k*b8g9g+k+bufvf:k;kCmDmEm=k?k@k[k,b^ od]kFm^k_k`k{k|k}kGmBdpdXdwdxdqdydrdsdtdzdAd~kalblcldlelflglhliljlklllmlnlolplqlrla te~daeylYmZm,mtnRm#nMoFo;nzl=nRdAlBlClJnsl#munToYd?n@n+nDlKnLn4n!g#g-b.bHmuevewexeyezeAeBe|m}m$g%gyf?f@f[f]fw #fzfXgx 6d7d'g(gElFlGl)g*g+g,gy h _ -gHl.g/g:g;g=g?gIl~c` Cd/b:b{ ;b| ( } =b?b@g[g]g^g_g`g{g|g}g~gahbhchdhehfhghhhihb CebeceJl0m1m-mvnSm$nNoGo[nKl]nSdLlMlNlMntl$mwnUoZd^n_n,nOlNnOn5njhkh@b[b]b^bImDeEeFeGeHeIeJeKe~manlhmh.mAfBf^f_f`f{f|f}f~fagz A $f%fCfDfYgB C 8d9d!d#dnhohPlQlRlphqhrhshD E i j ~ abthSluhvhwhxhyhzhTladbdbbcbDdEd_b`b{b|bdbeb}b~bfbgb) * hbibacbcccdcAhBhChDhEhFhGhHhIhJhKhLhMhNhOhPhQhRhShc LeMedeeefegeUl2m3m/mxnTm%nOoHo`nVl{nTdWlXlYlPnul%mynVo0d|n}n-nZlQnRn6nThUhVhWhecfcgchcicjcJmKmNeOePeQeReSeTeUeVeWeXeYeZe0e1e2ebncndnenXhYhZh0h:m;mEfFfGfbgcgdgegfggghgigjgkglgmgF G H 'f(f)fHfIfJfZg0gI J K $d%d'd(d)d*d1h2h3h4h0l1l2l3l4l5l5h6h7h8h9h!h#h$hL M N k l m jbkblb%h'h6l7l(h)h*h+h,h-h.h/h:h;h=h?h8l9lcdddedmbnbobFdGdHdkclcmcncocpcpbqbrbqcrcscsbtbub+ , - vbwbxbtcucvcwcxcyc@h[h]h^h_h`h{h|h}h~haibicidieifigihiiijikiliminioipiqirisitiuiviwixiyiziAiBid 3e4eheiejeke!l4m5m=mznUm'nPoIo~n#laoUd$l%l'lSnvl'mAnWo1dboco.n(lTnUn7nCiDiEiFizcAcBcCcDcEcLmMm5e6e7e8e9e!e#e$e%e'e(e)e*e+e,e-efngnhninGiHiIiJi?m@mKfLfMfngogpgqgrgsgtgugvgwgxgygO P Q *f+f,fNfOfPf1g2gR S T +d,d-d.d/d:dKiLiMiNi)l*l+l,l-l.lOiPiQiRiSiTiUiViU V W n o p ybzbAbWiXi/l:lYiZi0i1i2i3i4i5i6i7i8i9i;l=lfdgdhdBbCbDbIdJdKdFcGcHcIcJcKcEbFbGbLcMcNcHbIbJb. / : KbLbMbOcPcQcRcScTc!i#i$i%i'i(i)i*i+i,i-i.i/i:i;i=i?i@i[i]i^i_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkje .e/elemeneoe?l6m7m[mBnVm(nQoJodo@leoVd[l]l^lVnwl(mCnXo2dfogo/n_lWnXn8nljmjnjojUcVcWcXcYcZcNmOm:e;e=e?e@e[e]e^e_e`e{e|e}e~eafbfjnknlnmnpjqjrjsj]m^mQfRfSfzgAgBgCgDgEgFgGgHgIgJgKgX Y Z -f.f/fTfUfVf3g4g0 1 2 ;d=d?d@d[d]dtjujvjwj`l{l|l}l~lamxjyjzjAjBjCjDjEj3 4 5 q r s NbObPbFjGjbmcmHjIjJjKjLjMjNjOjPjQjRjSjdmemidjdkdQbRbSbLdMdNd0c1c2c3c4c5cTbUbVb6c7c8cWbXbYb; = ? Zb0b1b9c!c#c$c%c'cTjUjVjWjXjYjZj0j1j2j3j4j5j6j7j8j9j!j#j$j%j'j(j)j*j+j,j-j.j/j:j;j=j?j@j[j]j^jf cfdfpeqeresefm8m9m_mDnWm)nRoKohogmioWdhmimjmYnxl)mEnYo3djoko:nkmZn0n9n_j`j{j|j(c)c*c+c,c-cPmQmefffgfhfifjfkflfmfnfofpfqfrfsftfnnonpnqn}j~jakbk`m{mWfXfYfLgMgNgOgPgQgRgSgTgUgVgWg6 7 8 :f;f=fZf0f1f5g6g9 ! # ^d_d`d{d|d}dckdkekfklmmmnmompmqmgkhkikjkkklkmknk$ % ' t u v 2b3b4bokpkrmsmqkrksktkukvkwkxkykzkAkBktmumldmdnd5b6b7bOdPdQd.c/c:c;c=c?c8b9b!b@c[c]c#b$b%b@ [ ] 'b(b)b^c_c`c{c|c}cCkDkEkFkGkHkIkJkKkLkMkNkOkPkQkRkSkTkUkVkWkXkYkZk0k1k2k3k4k5k6k7k8k9k!k#k$k%k

428 return field_info 2g 2fwfxfwm*m+msnHn!m*nLoEoloxmmo4dymzmAm1nvmrnInSo5dnooopoBm2n3n!n,k-kudvdXm3f4f5f6f7f8f9f!fFnGn.k/k7g'k(k)k*k*b8g9g+k+bufvf:k;kCmDmEm=k?k@k[k,b^ od]kFm^k_k`k{k|k}kGmBdpdXdwdxdqdydrdsdtdzdAd~kalblcldlelflglhliljlklllmlnlolplqlrla te~daeylYmZm,mtnRm#nMoFo;nzl=nRdAlBlClJnsl#munToYd?n@n+nDlKnLn4n!g#g-b.bHmuevewexeyezeAeBe|m}m$g%gyf?f@f[f]fw #fzfXgx 6d7d'g(gElFlGl)g*g+g,gy h _ -gHl.g/g:g;g=g?gIl~c` Cd/b:b{ ;b| ( } =b?b@g[g]g^g_g`g{g|g}g~gahbhchdhehfhghhhihb CebeceJl0m1m-mvnSm$nNoGo[nKl]nSdLlMlNlMntl$mwnUoZd^n_n,nOlNnOn5njhkh@b[b]b^bImDeEeFeGeHeIeJeKe~manlhmh.mAfBf^f_f`f{f|f}f~fagz A $f%fCfDfYgB C 8d9d!d#dnhohPlQlRlphqhrhshD E i j ~ abthSluhvhwhxhyhzhTladbdbbcbDdEd_b`b{b|bdbeb}b~bfbgb) * hbibacbcccdcAhBhChDhEhFhGhHhIhJhKhLhMhNhOhPhQhRhShc LeMedeeefegeUl2m3m/mxnTm%nOoHo`nVl{nTdWlXlYlPnul%mynVo0d|n}n-nZlQnRn6nThUhVhWhecfcgchcicjcJmKmNeOePeQeReSeTeUeVeWeXeYeZe0e1e2ebncndnenXhYhZh0h:m;mEfFfGfbgcgdgegfggghgigjgkglgmgF G H 'f(f)fHfIfJfZg0gI J K $d%d'd(d)d*d1h2h3h4h0l1l2l3l4l5l5h6h7h8h9h!h#h$hL M N k l m jbkblb%h'h6l7l(h)h*h+h,h-h.h/h:h;h=h?h8l9lcdddedmbnbobFdGdHdkclcmcncocpcpbqbrbqcrcscsbtbub+ , - vbwbxbtcucvcwcxcyc@h[h]h^h_h`h{h|h}h~haibicidieifigihiiijikiliminioipiqirisitiuiviwixiyiziAiBid 3e4eheiejeke!l4m5m=mznUm'nPoIo~n#laoUd$l%l'lSnvl'mAnWo1dboco.n(lTnUn7nCiDiEiFizcAcBcCcDcEcLmMm5e6e7e8e9e!e#e$e%e'e(e)e*e+e,e-efngnhninGiHiIiJi?m@mKfLfMfngogpgqgrgsgtgugvgwgxgygO P Q *f+f,fNfOfPf1g2gR S T +d,d-d.d/d:dKiLiMiNi)l*l+l,l-l.lOiPiQiRiSiTiUiViU V W n o p ybzbAbWiXi/l:lYiZi0i1i2i3i4i5i6i7i8i9i;l=lfdgdhdBbCbDbIdJdKdFcGcHcIcJcKcEbFbGbLcMcNcHbIbJb. / : KbLbMbOcPcQcRcScTc!i#i$i%i'i(i)i*i+i,i-i.i/i:i;i=i?i@i[i]i^i_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkje .e/elemeneoe?l6m7m[mBnVm(nQoJodo@leoVd[l]l^lVnwl(mCnXo2dfogo/n_lWnXn8nljmjnjojUcVcWcXcYcZcNmOm:e;e=e?e@e[e]e^e_e`e{e|e}e~eafbfjnknlnmnpjqjrjsj]m^mQfRfSfzgAgBgCgDgEgFgGgHgIgJgKgX Y Z -f.f/fTfUfVf3g4g0 1 2 ;d=d?d@d[d]dtjujvjwj`l{l|l}l~lamxjyjzjAjBjCjDjEj3 4 5 q r s NbObPbFjGjbmcmHjIjJjKjLjMjNjOjPjQjRjSjdmemidjdkdQbRbSbLdMdNd0c1c2c3c4c5cTbUbVb6c7c8cWbXbYb; = ? Zb0b1b9c!c#c$c%c'cTjUjVjWjXjYjZj0j1j2j3j4j5j6j7j8j9j!j#j$j%j'j(j)j*j+j,j-j.j/j:j;j=j?j@j[j]j^jf cfdfpeqeresefm8m9m_mDnWm)nRoKohogmioWdhmimjmYnxl)mEnYo3djoko:nkmZn0n9n_j`j{j|j(c)c*c+c,c-cPmQmefffgfhfifjfkflfmfnfofpfqfrfsftfnnonpnqn}j~jakbk`m{mWfXfYfLgMgNgOgPgQgRgSgTgUgVgWg6 7 8 :f;f=fZf0f1f5g6g9 ! # ^d_d`d{d|d}dckdkekfklmmmnmompmqmgkhkikjkkklkmknk$ % ' t u v 2b3b4bokpkrmsmqkrksktkukvkwkxkykzkAkBktmumldmdnd5b6b7bOdPdQd.c/c:c;c=c?c8b9b!b@c[c]c#b$b%b@ [ ] 'b(b)b^c_c`c{c|c}cCkDkEkFkGkHkIkJkKkLkMkNkOkPkQkRkSkTkUkVkWkXkYkZk0k1k2k3k4k5k6k7k8k9k!k#k$k%k

429 

430 

431@overload 1gabcdef

432def Relationship( 1abcdef

433 *, 

434 back_populates: Optional[str] = None, 1gabcdef

435 cascade_delete: Optional[bool] = False, 1gabcdef

436 passive_deletes: Optional[Union[bool, Literal["all"]]] = False, 1gabcdef

437 link_model: Optional[Any] = None, 1gabcdef

438 sa_relationship_args: Optional[Sequence[Any]] = None, 1gabcdef

439 sa_relationship_kwargs: Optional[Mapping[str, Any]] = None, 1gabcdef

440) -> Any: ... 1gabcdef

441 

442 

443@overload 1gabcdef

444def Relationship( 1abcdef

445 *, 

446 back_populates: Optional[str] = None, 1gabcdef

447 cascade_delete: Optional[bool] = False, 1gabcdef

448 passive_deletes: Optional[Union[bool, Literal["all"]]] = False, 1gabcdef

449 link_model: Optional[Any] = None, 1gabcdef

450 sa_relationship: Optional[RelationshipProperty[Any]] = None, 1gabcdef

451) -> Any: ... 1gabcdef

452 

453 

454def Relationship( 1abcdef

455 *, 

456 back_populates: Optional[str] = None, 

457 cascade_delete: Optional[bool] = False, 

458 passive_deletes: Optional[Union[bool, Literal["all"]]] = False, 

459 link_model: Optional[Any] = None, 

460 sa_relationship: Optional[RelationshipProperty[Any]] = None, 

461 sa_relationship_args: Optional[Sequence[Any]] = None, 

462 sa_relationship_kwargs: Optional[Mapping[str, Any]] = None, 

463) -> Any: 

464 relationship_info = RelationshipInfo( 2LoEo4d5dudvd*b+b,b^ odBdpdXdwdxdqdydrdsdtdzdAdMoFoRdYd-b.bw x y h _ ~c` Cd/b:b{ ;b| ( } =b?bNoGoSdZd@b[b]b^bz A B C D E i j ~ abadbdbbcbDdEd_b`b{b|bdbeb}b~bfbgb) * hbibacbcccdcOoHoTd0decfcgchcicjcF G H I J K L M N k l m jbkblbcdddedmbnbobFdGdHdkclcmcncocpcpbqbrbqcrcscsbtbub+ , - vbwbxbtcucvcwcxcycPoIoUd1dzcAcBcCcDcEcO P Q R S T U V W n o p ybzbAbfdgdhdBbCbDbIdJdKdFcGcHcIcJcKcEbFbGbLcMcNcHbIbJb. / : KbLbMbOcPcQcRcScTcQoJoVd2dUcVcWcXcYcZcX Y Z 0 1 2 3 4 5 q r s NbObPbidjdkdQbRbSbLdMdNd0c1c2c3c4c5cTbUbVb6c7c8cWbXbYb; = ? Zb0b1b9c!c#c$c%c'cRoKoWd3d(c)c*c+c,c-c6 7 8 9 ! # $ % ' t u v 2b3b4bldmdnd5b6b7bOdPdQd.c/c:c;c=c?c8b9b!b@c[c]c#b$b%b@ [ ] 'b(b)b^c_c`c{c|c}c

465 back_populates=back_populates, 

466 cascade_delete=cascade_delete, 

467 passive_deletes=passive_deletes, 

468 link_model=link_model, 

469 sa_relationship=sa_relationship, 

470 sa_relationship_args=sa_relationship_args, 

471 sa_relationship_kwargs=sa_relationship_kwargs, 

472 ) 

473 return relationship_info 24d5dudvd*b+b,b^ odBdpdXdwdxdqdydrdsdtdzdAdRdYd-b.bw x y h _ ~c` Cd/b:b{ ;b| ( } =b?bSdZd@b[b]b^bz A B C D E i j ~ abadbdbbcbDdEd_b`b{b|bdbeb}b~bfbgb) * hbibacbcccdcTd0decfcgchcicjcF G H I J K L M N k l m jbkblbcdddedmbnbobFdGdHdkclcmcncocpcpbqbrbqcrcscsbtbub+ , - vbwbxbtcucvcwcxcycUd1dzcAcBcCcDcEcO P Q R S T U V W n o p ybzbAbfdgdhdBbCbDbIdJdKdFcGcHcIcJcKcEbFbGbLcMcNcHbIbJb. / : KbLbMbOcPcQcRcScTcVd2dUcVcWcXcYcZcX Y Z 0 1 2 3 4 5 q r s NbObPbidjdkdQbRbSbLdMdNd0c1c2c3c4c5cTbUbVb6c7c8cWbXbYb; = ? Zb0b1b9c!c#c$c%c'cWd3d(c)c*c+c,c-c6 7 8 9 ! # $ % ' t u v 2b3b4bldmdnd5b6b7bOdPdQd.c/c:c;c=c?c8b9b!b@c[c]c#b$b%b@ [ ] 'b(b)b^c_c`c{c|c}c

474 

475 

476@__dataclass_transform__(kw_only_default=True, field_descriptors=(Field, FieldInfo)) 1gabcdef

477class SQLModelMetaclass(ModelMetaclass, DeclarativeMeta): 1gabcdef

478 __sqlmodel_relationships__: Dict[str, RelationshipInfo] 1gabcdef

479 model_config: SQLModelConfig 1gabcdef

480 model_fields: Dict[str, FieldInfo] # type: ignore[assignment] 1gabcdef

481 __config__: Type[SQLModelConfig] 1gabcdef

482 __fields__: Dict[str, ModelField] # type: ignore[assignment] 1gabcdef

483 

484 # Replicate SQLAlchemy 

485 def __setattr__(cls, name: str, value: Any) -> None: 1gabcdef

486 if is_table_model_class(cls): 2g 2fwfxfwm*m+msnHn!m*nloxmmo4dymzmAm1nvmrnIn5dnooopoBm2n3n!n,k-kudvdXm3f4f5f6f7f8f9f!fFnGn.k/k7g'k(k)k*k*b8g9g+k+bufvf:k;kCmDmEm=k?k@k[k,b^ od]kFm^k_k`k{k|k}kGmBdpdXdwdxdqdydrdsdtdzdAd~kalblcldlelflglhliljlklllmlnlolplqlrlDowoa te~daeylYmZm,mtnRm#n;nzl=nRdAlBlClJnsl#munYd?n@n+nDlKnLn4n!g#g-b.bHmuevewexeyezeAeBe|m}m$g%gyf?f@f[f]fw #fzfXgx 6d7d'g(gElFlGl)g*g+g,gy h _ -gHl.g/g:g;g=g?gIl~c` Cd/b:b{ ;b| ( } =b?b@g[g]g^g_g`g{g|g}g~gahbhchdhehfhghhhihxoqob CebeceJl0m1m-mvnSm$n[nKl]nSdLlMlNlMntl$mwnZd^n_n,nOlNnOn5njhkh@b[b]b^bImDeEeFeGeHeIeJeKe~manlhmh.mAfBf^f_f`f{f|f}f~fagz A $f%fCfDfYgB C 8d9d!d#dnhohPlQlRlphqhrhshD E i j ~ abthSluhvhwhxhyhzhTladbdbbcbDdEd_b`b{b|bdbeb}b~bfbgb) * hbibacbcccdcAhBhChDhEhFhGhHhIhJhKhLhMhNhOhPhQhRhShyoroc LeMedeeefegeUl2m3m/mxnTm%n`nVl{nTdWlXlYlPnul%myn0d|n}n-nZlQnRn6nThUhVhWhecfcgchcicjcJmKmNeOePeQeReSeTeUeVeWeXeYeZe0e1e2ebncndnenXhYhZh0h:m;mEfFfGfbgcgdgegfggghgigjgkglgmgF G H 'f(f)fHfIfJfZg0gI J K $d%d'd(d)d*d1h2h3h4h0l1l2l3l4l5l5h6h7h8h9h!h#h$hL M N k l m jbkblb%h'h6l7l(h)h*h+h,h-h.h/h:h;h=h?h8l9lcdddedmbnbobFdGdHdkclcmcncocpcpbqbrbqcrcscsbtbub+ , - vbwbxbtcucvcwcxcyc@h[h]h^h_h`h{h|h}h~haibicidieifigihiiijikiliminioipiqirisitiuiviwixiyiziAiBizosod 3e4eheiejeke!l4m5m=mznUm'n~n#laoUd$l%l'lSnvl'mAn1dboco.n(lTnUn7nCiDiEiFizcAcBcCcDcEcLmMm5e6e7e8e9e!e#e$e%e'e(e)e*e+e,e-efngnhninGiHiIiJi?m@mKfLfMfngogpgqgrgsgtgugvgwgxgygO P Q *f+f,fNfOfPf1g2gR S T +d,d-d.d/d:dKiLiMiNi)l*l+l,l-l.lOiPiQiRiSiTiUiViU V W n o p ybzbAbWiXi/l:lYiZi0i1i2i3i4i5i6i7i8i9i;l=lfdgdhdBbCbDbIdJdKdFcGcHcIcJcKcEbFbGbLcMcNcHbIbJb. / : KbLbMbOcPcQcRcScTc!i#i$i%i'i(i)i*i+i,i-i.i/i:i;i=i?i@i[i]i^i_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkjAotoe .e/elemeneoe?l6m7m[mBnVm(ndo@leoVd[l]l^lVnwl(mCn2dfogo/n_lWnXn8nljmjnjojUcVcWcXcYcZcNmOm:e;e=e?e@e[e]e^e_e`e{e|e}e~eafbfjnknlnmnpjqjrjsj]m^mQfRfSfzgAgBgCgDgEgFgGgHgIgJgKgX Y Z -f.f/fTfUfVf3g4g0 1 2 ;d=d?d@d[d]dtjujvjwj`l{l|l}l~lamxjyjzjAjBjCjDjEj3 4 5 q r s NbObPbFjGjbmcmHjIjJjKjLjMjNjOjPjQjRjSjdmemidjdkdQbRbSbLdMdNd0c1c2c3c4c5cTbUbVb6c7c8cWbXbYb; = ? Zb0b1b9c!c#c$c%c'cTjUjVjWjXjYjZj0j1j2j3j4j5j6j7j8j9j!j#j$j%j'j(j)j*j+j,j-j.j/j:j;j=j?j@j[j]j^jBouof cfdfpeqeresefm8m9m_mDnWm)nhogmioWdhmimjmYnxl)mEn3djoko:nkmZn0n9n_j`j{j|j(c)c*c+c,c-cPmQmefffgfhfifjfkflfmfnfofpfqfrfsftfnnonpnqn}j~jakbk`m{mWfXfYfLgMgNgOgPgQgRgSgTgUgVgWg6 7 8 :f;f=fZf0f1f5g6g9 ! # ^d_d`d{d|d}dckdkekfklmmmnmompmqmgkhkikjkkklkmknk$ % ' t u v 2b3b4bokpkrmsmqkrksktkukvkwkxkykzkAkBktmumldmdnd5b6b7bOdPdQd.c/c:c;c=c?c8b9b!b@c[c]c#b$b%b@ [ ] 'b(b)b^c_c`c{c|c}cCkDkEkFkGkHkIkJkKkLkMkNkOkPkQkRkSkTkUkVkWkXkYkZk0k1k2k3k4k5k6k7k8k9k!k#k$k%kCovo

487 DeclarativeMeta.__setattr__(cls, name, value) 2g 2fwfxfwm*m+msnHn!m*nxm4dymzmAm1nvmrnIn5dBm2n3n!n,k-kudvdXm3f4f5f6f7f8f9f!fFnGn.k/k7g'k(k)k*k*b8g9g+k+bufvf:k;kCmDmEm=k?k@k[k,b^ od]kFm^k_k`k{k|k}kGmBdpdXdwdxdqdydrdsdtdzdAd~kalblcldlelflglhliljlklllmlnlolplqlrla te~daeylYmZm,mtnRm#nzlRdAlBlClJnsl#munYdDlKnLn4n!g#g-b.bHmuevewexeyezeAeBe|m}m$g%gyf?f@f[f]fw #fzfXgx 6d7d'g(gElFlGl)g*g+g,gy h _ -gHl.g/g:g;g=g?gIl~c` Cd/b:b{ ;b| ( } =b?b@g[g]g^g_g`g{g|g}g~gahbhchdhehfhghhhihb CebeceJl0m1m-mvnSm$nKlSdLlMlNlMntl$mwnZdOlNnOn5njhkh@b[b]b^bImDeEeFeGeHeIeJeKe~manlhmh.mAfBf^f_f`f{f|f}f~fagz A $f%fCfDfYgB C 8d9d!d#dnhohPlQlRlphqhrhshD E i j ~ abthSluhvhwhxhyhzhTladbdbbcbDdEd_b`b{b|bdbeb}b~bfbgb) * hbibacbcccdcAhBhChDhEhFhGhHhIhJhKhLhMhNhOhPhQhRhShc LeMedeeefegeUl2m3m/mxnTm%nVlTdWlXlYlPnul%myn0dZlQnRn6nThUhVhWhecfcgchcicjcJmKmNeOePeQeReSeTeUeVeWeXeYeZe0e1e2ebncndnenXhYhZh0h:m;mEfFfGfbgcgdgegfggghgigjgkglgmgF G H 'f(f)fHfIfJfZg0gI J K $d%d'd(d)d*d1h2h3h4h0l1l2l3l4l5l5h6h7h8h9h!h#h$hL M N k l m jbkblb%h'h6l7l(h)h*h+h,h-h.h/h:h;h=h?h8l9lcdddedmbnbobFdGdHdkclcmcncocpcpbqbrbqcrcscsbtbub+ , - vbwbxbtcucvcwcxcyc@h[h]h^h_h`h{h|h}h~haibicidieifigihiiijikiliminioipiqirisitiuiviwixiyiziAiBid 3e4eheiejeke!l4m5m=mznUm'n#lUd$l%l'lSnvl'mAn1d(lTnUn7nCiDiEiFizcAcBcCcDcEcLmMm5e6e7e8e9e!e#e$e%e'e(e)e*e+e,e-efngnhninGiHiIiJi?m@mKfLfMfngogpgqgrgsgtgugvgwgxgygO P Q *f+f,fNfOfPf1g2gR S T +d,d-d.d/d:dKiLiMiNi)l*l+l,l-l.lOiPiQiRiSiTiUiViU V W n o p ybzbAbWiXi/l:lYiZi0i1i2i3i4i5i6i7i8i9i;l=lfdgdhdBbCbDbIdJdKdFcGcHcIcJcKcEbFbGbLcMcNcHbIbJb. / : KbLbMbOcPcQcRcScTc!i#i$i%i'i(i)i*i+i,i-i.i/i:i;i=i?i@i[i]i^i_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkje .e/elemeneoe?l6m7m[mBnVm(n@lVd[l]l^lVnwl(mCn2d_lWnXn8nljmjnjojUcVcWcXcYcZcNmOm:e;e=e?e@e[e]e^e_e`e{e|e}e~eafbfjnknlnmnpjqjrjsj]m^mQfRfSfzgAgBgCgDgEgFgGgHgIgJgKgX Y Z -f.f/fTfUfVf3g4g0 1 2 ;d=d?d@d[d]dtjujvjwj`l{l|l}l~lamxjyjzjAjBjCjDjEj3 4 5 q r s NbObPbFjGjbmcmHjIjJjKjLjMjNjOjPjQjRjSjdmemidjdkdQbRbSbLdMdNd0c1c2c3c4c5cTbUbVb6c7c8cWbXbYb; = ? Zb0b1b9c!c#c$c%c'cTjUjVjWjXjYjZj0j1j2j3j4j5j6j7j8j9j!j#j$j%j'j(j)j*j+j,j-j.j/j:j;j=j?j@j[j]j^jf cfdfpeqeresefm8m9m_mDnWm)ngmWdhmimjmYnxl)mEn3dkmZn0n9n_j`j{j|j(c)c*c+c,c-cPmQmefffgfhfifjfkflfmfnfofpfqfrfsftfnnonpnqn}j~jakbk`m{mWfXfYfLgMgNgOgPgQgRgSgTgUgVgWg6 7 8 :f;f=fZf0f1f5g6g9 ! # ^d_d`d{d|d}dckdkekfklmmmnmompmqmgkhkikjkkklkmknk$ % ' t u v 2b3b4bokpkrmsmqkrksktkukvkwkxkykzkAkBktmumldmdnd5b6b7bOdPdQd.c/c:c;c=c?c8b9b!b@c[c]c#b$b%b@ [ ] 'b(b)b^c_c`c{c|c}cCkDkEkFkGkHkIkJkKkLkMkNkOkPkQkRkSkTkUkVkWkXkYkZk0k1k2k3k4k5k6k7k8k9k!k#k$k%k

488 else: 

489 super().__setattr__(name, value) 2g 2fwfxfwm*m+msnHn!m*nloxmmo4dymzmAm1nvmrnIn5dnooopoBm2n3n!n,k-kudvdXm3f4f5f6f7f8f9f!fFnGn.k/k7g'k(k)k*k*b8g9g+k+bufvf:k;kCmDmEm=k?k@k[k,b^ od]kFm^k_k`k{k|k}kGmBdpdXdwdxdqdydrdsdtdzdAd~kalblcldlelflglhliljlklllmlnlolplqlrlDowoa te~daeylYmZm,mtnRm#n;nzl=nRdAlBlClJnsl#munYd?n@n+nDlKnLn4n!g#g-b.bHmuevewexeyezeAeBe|m}m$g%gyf?f@f[f]fw #fzfXgx 6d7d'g(gElFlGl)g*g+g,gy h _ -gHl.g/g:g;g=g?gIl~c` Cd/b:b{ ;b| ( } =b?b@g[g]g^g_g`g{g|g}g~gahbhchdhehfhghhhihxoqob CebeceJl0m1m-mvnSm$n[nKl]nSdLlMlNlMntl$mwnZd^n_n,nOlNnOn5njhkh@b[b]b^bImDeEeFeGeHeIeJeKe~manlhmh.mAfBf^f_f`f{f|f}f~fagz A $f%fCfDfYgB C 8d9d!d#dnhohPlQlRlphqhrhshD E i j ~ abthSluhvhwhxhyhzhTladbdbbcbDdEd_b`b{b|bdbeb}b~bfbgb) * hbibacbcccdcAhBhChDhEhFhGhHhIhJhKhLhMhNhOhPhQhRhShyoroc LeMedeeefegeUl2m3m/mxnTm%n`nVl{nTdWlXlYlPnul%myn0d|n}n-nZlQnRn6nThUhVhWhecfcgchcicjcJmKmNeOePeQeReSeTeUeVeWeXeYeZe0e1e2ebncndnenXhYhZh0h:m;mEfFfGfbgcgdgegfggghgigjgkglgmgF G H 'f(f)fHfIfJfZg0gI J K $d%d'd(d)d*d1h2h3h4h0l1l2l3l4l5l5h6h7h8h9h!h#h$hL M N k l m jbkblb%h'h6l7l(h)h*h+h,h-h.h/h:h;h=h?h8l9lcdddedmbnbobFdGdHdkclcmcncocpcpbqbrbqcrcscsbtbub+ , - vbwbxbtcucvcwcxcyc@h[h]h^h_h`h{h|h}h~haibicidieifigihiiijikiliminioipiqirisitiuiviwixiyiziAiBizosod 3e4eheiejeke!l4m5m=mznUm'n~n#laoUd$l%l'lSnvl'mAn1dboco.n(lTnUn7nCiDiEiFizcAcBcCcDcEcLmMm5e6e7e8e9e!e#e$e%e'e(e)e*e+e,e-efngnhninGiHiIiJi?m@mKfLfMfngogpgqgrgsgtgugvgwgxgygO P Q *f+f,fNfOfPf1g2gR S T +d,d-d.d/d:dKiLiMiNi)l*l+l,l-l.lOiPiQiRiSiTiUiViU V W n o p ybzbAbWiXi/l:lYiZi0i1i2i3i4i5i6i7i8i9i;l=lfdgdhdBbCbDbIdJdKdFcGcHcIcJcKcEbFbGbLcMcNcHbIbJb. / : KbLbMbOcPcQcRcScTc!i#i$i%i'i(i)i*i+i,i-i.i/i:i;i=i?i@i[i]i^i_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkjAotoe .e/elemeneoe?l6m7m[mBnVm(ndo@leoVd[l]l^lVnwl(mCn2dfogo/n_lWnXn8nljmjnjojUcVcWcXcYcZcNmOm:e;e=e?e@e[e]e^e_e`e{e|e}e~eafbfjnknlnmnpjqjrjsj]m^mQfRfSfzgAgBgCgDgEgFgGgHgIgJgKgX Y Z -f.f/fTfUfVf3g4g0 1 2 ;d=d?d@d[d]dtjujvjwj`l{l|l}l~lamxjyjzjAjBjCjDjEj3 4 5 q r s NbObPbFjGjbmcmHjIjJjKjLjMjNjOjPjQjRjSjdmemidjdkdQbRbSbLdMdNd0c1c2c3c4c5cTbUbVb6c7c8cWbXbYb; = ? Zb0b1b9c!c#c$c%c'cTjUjVjWjXjYjZj0j1j2j3j4j5j6j7j8j9j!j#j$j%j'j(j)j*j+j,j-j.j/j:j;j=j?j@j[j]j^jBouof cfdfpeqeresefm8m9m_mDnWm)nhogmioWdhmimjmYnxl)mEn3djoko:nkmZn0n9n_j`j{j|j(c)c*c+c,c-cPmQmefffgfhfifjfkflfmfnfofpfqfrfsftfnnonpnqn}j~jakbk`m{mWfXfYfLgMgNgOgPgQgRgSgTgUgVgWg6 7 8 :f;f=fZf0f1f5g6g9 ! # ^d_d`d{d|d}dckdkekfklmmmnmompmqmgkhkikjkkklkmknk$ % ' t u v 2b3b4bokpkrmsmqkrksktkukvkwkxkykzkAkBktmumldmdnd5b6b7bOdPdQd.c/c:c;c=c?c8b9b!b@c[c]c#b$b%b@ [ ] 'b(b)b^c_c`c{c|c}cCkDkEkFkGkHkIkJkKkLkMkNkOkPkQkRkSkTkUkVkWkXkYkZk0k1k2k3k4k5k6k7k8k9k!k#k$k%kCovo

490 

491 def __delattr__(cls, name: str) -> None: 1gabcdef

492 if is_table_model_class(cls): 2g 2fwfxfwm*m+msnHn!m*nloxmmo4dymzmAm1nvmrnIn5dnooopoBm2n3n!n,k-kudvdXm3f4f5f6f7f8f9f!fFnGn.k/k7g'k(k)k*k*b8g9g+k+bufvf:k;kCmDmEm=k?k@k[k,b^ od]kFm^k_k`k{k|k}kGmBdpdXdwdxdqdydrdsdtdzdAd~kalblcldlelflglhliljlklllmlnlolplqlrlwoa te~daeylYmZm,mtnRm#n;nzl=nRdAlBlClJnsl#munYd?n@n+nDlKnLn4n!g#g-b.bHmuevewexeyezeAeBe|m}m$g%gyf?f@f[f]fw #fzfXgx 6d7d'g(gElFlGl)g*g+g,gy h _ -gHl.g/g:g;g=g?gIl~c` Cd/b:b{ ;b| ( } =b?b@g[g]g^g_g`g{g|g}g~gahbhchdhehfhghhhihqob CebeceJl0m1m-mvnSm$n[nKl]nSdLlMlNlMntl$mwnZd^n_n,nOlNnOn5njhkh@b[b]b^bImDeEeFeGeHeIeJeKe~manlhmh.mAfBf^f_f`f{f|f}f~fagz A $f%fCfDfYgB C 8d9d!d#dnhohPlQlRlphqhrhshD E i j ~ abthSluhvhwhxhyhzhTladbdbbcbDdEd_b`b{b|bdbeb}b~bfbgb) * hbibacbcccdcAhBhChDhEhFhGhHhIhJhKhLhMhNhOhPhQhRhShroc LeMedeeefegeUl2m3m/mxnTm%n`nVl{nTdWlXlYlPnul%myn0d|n}n-nZlQnRn6nThUhVhWhecfcgchcicjcJmKmNeOePeQeReSeTeUeVeWeXeYeZe0e1e2ebncndnenXhYhZh0h:m;mEfFfGfbgcgdgegfggghgigjgkglgmgF G H 'f(f)fHfIfJfZg0gI J K $d%d'd(d)d*d1h2h3h4h0l1l2l3l4l5l5h6h7h8h9h!h#h$hL M N k l m jbkblb%h'h6l7l(h)h*h+h,h-h.h/h:h;h=h?h8l9lcdddedmbnbobFdGdHdkclcmcncocpcpbqbrbqcrcscsbtbub+ , - vbwbxbtcucvcwcxcyc@h[h]h^h_h`h{h|h}h~haibicidieifigihiiijikiliminioipiqirisitiuiviwixiyiziAiBisod 3e4eheiejeke!l4m5m=mznUm'n~n#laoUd$l%l'lSnvl'mAn1dboco.n(lTnUn7nCiDiEiFizcAcBcCcDcEcLmMm5e6e7e8e9e!e#e$e%e'e(e)e*e+e,e-efngnhninGiHiIiJi?m@mKfLfMfngogpgqgrgsgtgugvgwgxgygO P Q *f+f,fNfOfPf1g2gR S T +d,d-d.d/d:dKiLiMiNi)l*l+l,l-l.lOiPiQiRiSiTiUiViU V W n o p ybzbAbWiXi/l:lYiZi0i1i2i3i4i5i6i7i8i9i;l=lfdgdhdBbCbDbIdJdKdFcGcHcIcJcKcEbFbGbLcMcNcHbIbJb. / : KbLbMbOcPcQcRcScTc!i#i$i%i'i(i)i*i+i,i-i.i/i:i;i=i?i@i[i]i^i_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkjtoe .e/elemeneoe?l6m7m[mBnVm(ndo@leoVd[l]l^lVnwl(mCn2dfogo/n_lWnXn8nljmjnjojUcVcWcXcYcZcNmOm:e;e=e?e@e[e]e^e_e`e{e|e}e~eafbfjnknlnmnpjqjrjsj]m^mQfRfSfzgAgBgCgDgEgFgGgHgIgJgKgX Y Z -f.f/fTfUfVf3g4g0 1 2 ;d=d?d@d[d]dtjujvjwj`l{l|l}l~lamxjyjzjAjBjCjDjEj3 4 5 q r s NbObPbFjGjbmcmHjIjJjKjLjMjNjOjPjQjRjSjdmemidjdkdQbRbSbLdMdNd0c1c2c3c4c5cTbUbVb6c7c8cWbXbYb; = ? Zb0b1b9c!c#c$c%c'cTjUjVjWjXjYjZj0j1j2j3j4j5j6j7j8j9j!j#j$j%j'j(j)j*j+j,j-j.j/j:j;j=j?j@j[j]j^juof cfdfpeqeresefm8m9m_mDnWm)nhogmioWdhmimjmYnxl)mEn3djoko:nkmZn0n9n_j`j{j|j(c)c*c+c,c-cPmQmefffgfhfifjfkflfmfnfofpfqfrfsftfnnonpnqn}j~jakbk`m{mWfXfYfLgMgNgOgPgQgRgSgTgUgVgWg6 7 8 :f;f=fZf0f1f5g6g9 ! # ^d_d`d{d|d}dckdkekfklmmmnmompmqmgkhkikjkkklkmknk$ % ' t u v 2b3b4bokpkrmsmqkrksktkukvkwkxkykzkAkBktmumldmdnd5b6b7bOdPdQd.c/c:c;c=c?c8b9b!b@c[c]c#b$b%b@ [ ] 'b(b)b^c_c`c{c|c}cCkDkEkFkGkHkIkJkKkLkMkNkOkPkQkRkSkTkUkVkWkXkYkZk0k1k2k3k4k5k6k7k8k9k!k#k$k%kvo

493 DeclarativeMeta.__delattr__(cls, name) 1gabcdef

494 else: 

495 super().__delattr__(name) 2g 2fwfxfwm*m+msnHn!m*nloxmmo4dymzmAm1nvmrnIn5dnooopoBm2n3n!n,k-kudvdXm3f4f5f6f7f8f9f!fFnGn.k/k7g'k(k)k*k*b8g9g+k+bufvf:k;kCmDmEm=k?k@k[k,b^ od]kFm^k_k`k{k|k}kGmBdpdXdwdxdqdydrdsdtdzdAd~kalblcldlelflglhliljlklllmlnlolplqlrlwoa te~daeylYmZm,mtnRm#n;nzl=nRdAlBlClJnsl#munYd?n@n+nDlKnLn4n!g#g-b.bHmuevewexeyezeAeBe|m}m$g%gyf?f@f[f]fw #fzfXgx 6d7d'g(gElFlGl)g*g+g,gy h _ -gHl.g/g:g;g=g?gIl~c` Cd/b:b{ ;b| ( } =b?b@g[g]g^g_g`g{g|g}g~gahbhchdhehfhghhhihqob CebeceJl0m1m-mvnSm$n[nKl]nSdLlMlNlMntl$mwnZd^n_n,nOlNnOn5njhkh@b[b]b^bImDeEeFeGeHeIeJeKe~manlhmh.mAfBf^f_f`f{f|f}f~fagz A $f%fCfDfYgB C 8d9d!d#dnhohPlQlRlphqhrhshD E i j ~ abthSluhvhwhxhyhzhTladbdbbcbDdEd_b`b{b|bdbeb}b~bfbgb) * hbibacbcccdcAhBhChDhEhFhGhHhIhJhKhLhMhNhOhPhQhRhShroc LeMedeeefegeUl2m3m/mxnTm%n`nVl{nTdWlXlYlPnul%myn0d|n}n-nZlQnRn6nThUhVhWhecfcgchcicjcJmKmNeOePeQeReSeTeUeVeWeXeYeZe0e1e2ebncndnenXhYhZh0h:m;mEfFfGfbgcgdgegfggghgigjgkglgmgF G H 'f(f)fHfIfJfZg0gI J K $d%d'd(d)d*d1h2h3h4h0l1l2l3l4l5l5h6h7h8h9h!h#h$hL M N k l m jbkblb%h'h6l7l(h)h*h+h,h-h.h/h:h;h=h?h8l9lcdddedmbnbobFdGdHdkclcmcncocpcpbqbrbqcrcscsbtbub+ , - vbwbxbtcucvcwcxcyc@h[h]h^h_h`h{h|h}h~haibicidieifigihiiijikiliminioipiqirisitiuiviwixiyiziAiBisod 3e4eheiejeke!l4m5m=mznUm'n~n#laoUd$l%l'lSnvl'mAn1dboco.n(lTnUn7nCiDiEiFizcAcBcCcDcEcLmMm5e6e7e8e9e!e#e$e%e'e(e)e*e+e,e-efngnhninGiHiIiJi?m@mKfLfMfngogpgqgrgsgtgugvgwgxgygO P Q *f+f,fNfOfPf1g2gR S T +d,d-d.d/d:dKiLiMiNi)l*l+l,l-l.lOiPiQiRiSiTiUiViU V W n o p ybzbAbWiXi/l:lYiZi0i1i2i3i4i5i6i7i8i9i;l=lfdgdhdBbCbDbIdJdKdFcGcHcIcJcKcEbFbGbLcMcNcHbIbJb. / : KbLbMbOcPcQcRcScTc!i#i$i%i'i(i)i*i+i,i-i.i/i:i;i=i?i@i[i]i^i_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkjtoe .e/elemeneoe?l6m7m[mBnVm(ndo@leoVd[l]l^lVnwl(mCn2dfogo/n_lWnXn8nljmjnjojUcVcWcXcYcZcNmOm:e;e=e?e@e[e]e^e_e`e{e|e}e~eafbfjnknlnmnpjqjrjsj]m^mQfRfSfzgAgBgCgDgEgFgGgHgIgJgKgX Y Z -f.f/fTfUfVf3g4g0 1 2 ;d=d?d@d[d]dtjujvjwj`l{l|l}l~lamxjyjzjAjBjCjDjEj3 4 5 q r s NbObPbFjGjbmcmHjIjJjKjLjMjNjOjPjQjRjSjdmemidjdkdQbRbSbLdMdNd0c1c2c3c4c5cTbUbVb6c7c8cWbXbYb; = ? Zb0b1b9c!c#c$c%c'cTjUjVjWjXjYjZj0j1j2j3j4j5j6j7j8j9j!j#j$j%j'j(j)j*j+j,j-j.j/j:j;j=j?j@j[j]j^juof cfdfpeqeresefm8m9m_mDnWm)nhogmioWdhmimjmYnxl)mEn3djoko:nkmZn0n9n_j`j{j|j(c)c*c+c,c-cPmQmefffgfhfifjfkflfmfnfofpfqfrfsftfnnonpnqn}j~jakbk`m{mWfXfYfLgMgNgOgPgQgRgSgTgUgVgWg6 7 8 :f;f=fZf0f1f5g6g9 ! # ^d_d`d{d|d}dckdkekfklmmmnmompmqmgkhkikjkkklkmknk$ % ' t u v 2b3b4bokpkrmsmqkrksktkukvkwkxkykzkAkBktmumldmdnd5b6b7bOdPdQd.c/c:c;c=c?c8b9b!b@c[c]c#b$b%b@ [ ] 'b(b)b^c_c`c{c|c}cCkDkEkFkGkHkIkJkKkLkMkNkOkPkQkRkSkTkUkVkWkXkYkZk0k1k2k3k4k5k6k7k8k9k!k#k$k%kvo

496 

497 # From Pydantic 

498 def __new__( 1abcdef

499 cls, 

500 name: str, 

501 bases: Tuple[Type[Any], ...], 

502 class_dict: Dict[str, Any], 

503 **kwargs: Any, 

504 ) -> Any: 

505 relationships: Dict[str, RelationshipInfo] = {} 2g 2fwfxfwm*m+msnHn!m*nloxmmo4dymzmAm1nvmrnIn5dnooopoBm2n3n!n,k-kudvdXm3f4f5f6f7f8f9f!fFnGn.k/k7g'k(k)k*k*b8g9g+k+bufvf:k;kCmDmEm=k?k@k[k,b^ od]kFm^k_k`k{k|k}kGmBdpdXdwdxdqdydrdsdtdzdAd~kalblcldlelflglhliljlklllmlnlolplqlrlDowoa te~daeylYmZm,mtnRm#n;nzl=nRdAlBlClJnsl#munYd?n@n+nDlKnLn4n!g#g-b.bHmuevewexeyezeAeBe|m}m$g%gyf?f@f[f]fw #fzfXgx 6d7d'g(gElFlGl)g*g+g,gy h _ -gHl.g/g:g;g=g?gIl~c` Cd/b:b{ ;b| ( } =b?b@g[g]g^g_g`g{g|g}g~gahbhchdhehfhghhhihxoqob CebeceJl0m1m-mvnSm$n[nKl]nSdLlMlNlMntl$mwnZd^n_n,nOlNnOn5njhkh@b[b]b^bImDeEeFeGeHeIeJeKe~manlhmh.mAfBf^f_f`f{f|f}f~fagz A $f%fCfDfYgB C 8d9d!d#dnhohPlQlRlphqhrhshD E i j ~ abthSluhvhwhxhyhzhTladbdbbcbDdEd_b`b{b|bdbeb}b~bfbgb) * hbibacbcccdcAhBhChDhEhFhGhHhIhJhKhLhMhNhOhPhQhRhShyoroc LeMedeeefegeUl2m3m/mxnTm%n`nVl{nTdWlXlYlPnul%myn0d|n}n-nZlQnRn6nThUhVhWhecfcgchcicjcJmKmNeOePeQeReSeTeUeVeWeXeYeZe0e1e2ebncndnenXhYhZh0h:m;mEfFfGfbgcgdgegfggghgigjgkglgmgF G H 'f(f)fHfIfJfZg0gI J K $d%d'd(d)d*d1h2h3h4h0l1l2l3l4l5l5h6h7h8h9h!h#h$hL M N k l m jbkblb%h'h6l7l(h)h*h+h,h-h.h/h:h;h=h?h8l9lcdddedmbnbobFdGdHdkclcmcncocpcpbqbrbqcrcscsbtbub+ , - vbwbxbtcucvcwcxcyc@h[h]h^h_h`h{h|h}h~haibicidieifigihiiijikiliminioipiqirisitiuiviwixiyiziAiBizosod 3e4eheiejeke!l4m5m=mznUm'n~n#laoUd$l%l'lSnvl'mAn1dboco.n(lTnUn7nCiDiEiFizcAcBcCcDcEcLmMm5e6e7e8e9e!e#e$e%e'e(e)e*e+e,e-efngnhninGiHiIiJi?m@mKfLfMfngogpgqgrgsgtgugvgwgxgygO P Q *f+f,fNfOfPf1g2gR S T +d,d-d.d/d:dKiLiMiNi)l*l+l,l-l.lOiPiQiRiSiTiUiViU V W n o p ybzbAbWiXi/l:lYiZi0i1i2i3i4i5i6i7i8i9i;l=lfdgdhdBbCbDbIdJdKdFcGcHcIcJcKcEbFbGbLcMcNcHbIbJb. / : KbLbMbOcPcQcRcScTc!i#i$i%i'i(i)i*i+i,i-i.i/i:i;i=i?i@i[i]i^i_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkjAotoe .e/elemeneoe?l6m7m[mBnVm(ndo@leoVd[l]l^lVnwl(mCn2dfogo/n_lWnXn8nljmjnjojUcVcWcXcYcZcNmOm:e;e=e?e@e[e]e^e_e`e{e|e}e~eafbfjnknlnmnpjqjrjsj]m^mQfRfSfzgAgBgCgDgEgFgGgHgIgJgKgX Y Z -f.f/fTfUfVf3g4g0 1 2 ;d=d?d@d[d]dtjujvjwj`l{l|l}l~lamxjyjzjAjBjCjDjEj3 4 5 q r s NbObPbFjGjbmcmHjIjJjKjLjMjNjOjPjQjRjSjdmemidjdkdQbRbSbLdMdNd0c1c2c3c4c5cTbUbVb6c7c8cWbXbYb; = ? Zb0b1b9c!c#c$c%c'cTjUjVjWjXjYjZj0j1j2j3j4j5j6j7j8j9j!j#j$j%j'j(j)j*j+j,j-j.j/j:j;j=j?j@j[j]j^jBouof cfdfpeqeresefm8m9m_mDnWm)nhogmioWdhmimjmYnxl)mEn3djoko:nkmZn0n9n_j`j{j|j(c)c*c+c,c-cPmQmefffgfhfifjfkflfmfnfofpfqfrfsftfnnonpnqn}j~jakbk`m{mWfXfYfLgMgNgOgPgQgRgSgTgUgVgWg6 7 8 :f;f=fZf0f1f5g6g9 ! # ^d_d`d{d|d}dckdkekfklmmmnmompmqmgkhkikjkkklkmknk$ % ' t u v 2b3b4bokpkrmsmqkrksktkukvkwkxkykzkAkBktmumldmdnd5b6b7bOdPdQd.c/c:c;c=c?c8b9b!b@c[c]c#b$b%b@ [ ] 'b(b)b^c_c`c{c|c}cCkDkEkFkGkHkIkJkKkLkMkNkOkPkQkRkSkTkUkVkWkXkYkZk0k1k2k3k4k5k6k7k8k9k!k#k$k%kCovo

506 dict_for_pydantic = {} 2g 2fwfxfwm*m+msnHn!m*nloxmmo4dymzmAm1nvmrnIn5dnooopoBm2n3n!n,k-kudvdXm3f4f5f6f7f8f9f!fFnGn.k/k7g'k(k)k*k*b8g9g+k+bufvf:k;kCmDmEm=k?k@k[k,b^ od]kFm^k_k`k{k|k}kGmBdpdXdwdxdqdydrdsdtdzdAd~kalblcldlelflglhliljlklllmlnlolplqlrlDowoa te~daeylYmZm,mtnRm#n;nzl=nRdAlBlClJnsl#munYd?n@n+nDlKnLn4n!g#g-b.bHmuevewexeyezeAeBe|m}m$g%gyf?f@f[f]fw #fzfXgx 6d7d'g(gElFlGl)g*g+g,gy h _ -gHl.g/g:g;g=g?gIl~c` Cd/b:b{ ;b| ( } =b?b@g[g]g^g_g`g{g|g}g~gahbhchdhehfhghhhihxoqob CebeceJl0m1m-mvnSm$n[nKl]nSdLlMlNlMntl$mwnZd^n_n,nOlNnOn5njhkh@b[b]b^bImDeEeFeGeHeIeJeKe~manlhmh.mAfBf^f_f`f{f|f}f~fagz A $f%fCfDfYgB C 8d9d!d#dnhohPlQlRlphqhrhshD E i j ~ abthSluhvhwhxhyhzhTladbdbbcbDdEd_b`b{b|bdbeb}b~bfbgb) * hbibacbcccdcAhBhChDhEhFhGhHhIhJhKhLhMhNhOhPhQhRhShyoroc LeMedeeefegeUl2m3m/mxnTm%n`nVl{nTdWlXlYlPnul%myn0d|n}n-nZlQnRn6nThUhVhWhecfcgchcicjcJmKmNeOePeQeReSeTeUeVeWeXeYeZe0e1e2ebncndnenXhYhZh0h:m;mEfFfGfbgcgdgegfggghgigjgkglgmgF G H 'f(f)fHfIfJfZg0gI J K $d%d'd(d)d*d1h2h3h4h0l1l2l3l4l5l5h6h7h8h9h!h#h$hL M N k l m jbkblb%h'h6l7l(h)h*h+h,h-h.h/h:h;h=h?h8l9lcdddedmbnbobFdGdHdkclcmcncocpcpbqbrbqcrcscsbtbub+ , - vbwbxbtcucvcwcxcyc@h[h]h^h_h`h{h|h}h~haibicidieifigihiiijikiliminioipiqirisitiuiviwixiyiziAiBizosod 3e4eheiejeke!l4m5m=mznUm'n~n#laoUd$l%l'lSnvl'mAn1dboco.n(lTnUn7nCiDiEiFizcAcBcCcDcEcLmMm5e6e7e8e9e!e#e$e%e'e(e)e*e+e,e-efngnhninGiHiIiJi?m@mKfLfMfngogpgqgrgsgtgugvgwgxgygO P Q *f+f,fNfOfPf1g2gR S T +d,d-d.d/d:dKiLiMiNi)l*l+l,l-l.lOiPiQiRiSiTiUiViU V W n o p ybzbAbWiXi/l:lYiZi0i1i2i3i4i5i6i7i8i9i;l=lfdgdhdBbCbDbIdJdKdFcGcHcIcJcKcEbFbGbLcMcNcHbIbJb. / : KbLbMbOcPcQcRcScTc!i#i$i%i'i(i)i*i+i,i-i.i/i:i;i=i?i@i[i]i^i_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkjAotoe .e/elemeneoe?l6m7m[mBnVm(ndo@leoVd[l]l^lVnwl(mCn2dfogo/n_lWnXn8nljmjnjojUcVcWcXcYcZcNmOm:e;e=e?e@e[e]e^e_e`e{e|e}e~eafbfjnknlnmnpjqjrjsj]m^mQfRfSfzgAgBgCgDgEgFgGgHgIgJgKgX Y Z -f.f/fTfUfVf3g4g0 1 2 ;d=d?d@d[d]dtjujvjwj`l{l|l}l~lamxjyjzjAjBjCjDjEj3 4 5 q r s NbObPbFjGjbmcmHjIjJjKjLjMjNjOjPjQjRjSjdmemidjdkdQbRbSbLdMdNd0c1c2c3c4c5cTbUbVb6c7c8cWbXbYb; = ? Zb0b1b9c!c#c$c%c'cTjUjVjWjXjYjZj0j1j2j3j4j5j6j7j8j9j!j#j$j%j'j(j)j*j+j,j-j.j/j:j;j=j?j@j[j]j^jBouof cfdfpeqeresefm8m9m_mDnWm)nhogmioWdhmimjmYnxl)mEn3djoko:nkmZn0n9n_j`j{j|j(c)c*c+c,c-cPmQmefffgfhfifjfkflfmfnfofpfqfrfsftfnnonpnqn}j~jakbk`m{mWfXfYfLgMgNgOgPgQgRgSgTgUgVgWg6 7 8 :f;f=fZf0f1f5g6g9 ! # ^d_d`d{d|d}dckdkekfklmmmnmompmqmgkhkikjkkklkmknk$ % ' t u v 2b3b4bokpkrmsmqkrksktkukvkwkxkykzkAkBktmumldmdnd5b6b7bOdPdQd.c/c:c;c=c?c8b9b!b@c[c]c#b$b%b@ [ ] 'b(b)b^c_c`c{c|c}cCkDkEkFkGkHkIkJkKkLkMkNkOkPkQkRkSkTkUkVkWkXkYkZk0k1k2k3k4k5k6k7k8k9k!k#k$k%kCovo

507 original_annotations = get_annotations(class_dict) 2g 2fwfxfwm*m+msnHn!m*nloxmmo4dymzmAm1nvmrnIn5dnooopoBm2n3n!n,k-kudvdXm3f4f5f6f7f8f9f!fFnGn.k/k7g'k(k)k*k*b8g9g+k+bufvf:k;kCmDmEm=k?k@k[k,b^ od]kFm^k_k`k{k|k}kGmBdpdXdwdxdqdydrdsdtdzdAd~kalblcldlelflglhliljlklllmlnlolplqlrlDowoa te~daeylYmZm,mtnRm#n;nzl=nRdAlBlClJnsl#munYd?n@n+nDlKnLn4n!g#g-b.bHmuevewexeyezeAeBe|m}m$g%gyf?f@f[f]fw #fzfXgx 6d7d'g(gElFlGl)g*g+g,gy h _ -gHl.g/g:g;g=g?gIl~c` Cd/b:b{ ;b| ( } =b?b@g[g]g^g_g`g{g|g}g~gahbhchdhehfhghhhihxoqob CebeceJl0m1m-mvnSm$n[nKl]nSdLlMlNlMntl$mwnZd^n_n,nOlNnOn5njhkh@b[b]b^bImDeEeFeGeHeIeJeKe~manlhmh.mAfBf^f_f`f{f|f}f~fagz A $f%fCfDfYgB C 8d9d!d#dnhohPlQlRlphqhrhshD E i j ~ abthSluhvhwhxhyhzhTladbdbbcbDdEd_b`b{b|bdbeb}b~bfbgb) * hbibacbcccdcAhBhChDhEhFhGhHhIhJhKhLhMhNhOhPhQhRhShyoroc LeMedeeefegeUl2m3m/mxnTm%n`nVl{nTdWlXlYlPnul%myn0d|n}n-nZlQnRn6nThUhVhWhecfcgchcicjcJmKmNeOePeQeReSeTeUeVeWeXeYeZe0e1e2ebncndnenXhYhZh0h:m;mEfFfGfbgcgdgegfggghgigjgkglgmgF G H 'f(f)fHfIfJfZg0gI J K $d%d'd(d)d*d1h2h3h4h0l1l2l3l4l5l5h6h7h8h9h!h#h$hL M N k l m jbkblb%h'h6l7l(h)h*h+h,h-h.h/h:h;h=h?h8l9lcdddedmbnbobFdGdHdkclcmcncocpcpbqbrbqcrcscsbtbub+ , - vbwbxbtcucvcwcxcyc@h[h]h^h_h`h{h|h}h~haibicidieifigihiiijikiliminioipiqirisitiuiviwixiyiziAiBizosod 3e4eheiejeke!l4m5m=mznUm'n~n#laoUd$l%l'lSnvl'mAn1dboco.n(lTnUn7nCiDiEiFizcAcBcCcDcEcLmMm5e6e7e8e9e!e#e$e%e'e(e)e*e+e,e-efngnhninGiHiIiJi?m@mKfLfMfngogpgqgrgsgtgugvgwgxgygO P Q *f+f,fNfOfPf1g2gR S T +d,d-d.d/d:dKiLiMiNi)l*l+l,l-l.lOiPiQiRiSiTiUiViU V W n o p ybzbAbWiXi/l:lYiZi0i1i2i3i4i5i6i7i8i9i;l=lfdgdhdBbCbDbIdJdKdFcGcHcIcJcKcEbFbGbLcMcNcHbIbJb. / : KbLbMbOcPcQcRcScTc!i#i$i%i'i(i)i*i+i,i-i.i/i:i;i=i?i@i[i]i^i_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkjAotoe .e/elemeneoe?l6m7m[mBnVm(ndo@leoVd[l]l^lVnwl(mCn2dfogo/n_lWnXn8nljmjnjojUcVcWcXcYcZcNmOm:e;e=e?e@e[e]e^e_e`e{e|e}e~eafbfjnknlnmnpjqjrjsj]m^mQfRfSfzgAgBgCgDgEgFgGgHgIgJgKgX Y Z -f.f/fTfUfVf3g4g0 1 2 ;d=d?d@d[d]dtjujvjwj`l{l|l}l~lamxjyjzjAjBjCjDjEj3 4 5 q r s NbObPbFjGjbmcmHjIjJjKjLjMjNjOjPjQjRjSjdmemidjdkdQbRbSbLdMdNd0c1c2c3c4c5cTbUbVb6c7c8cWbXbYb; = ? Zb0b1b9c!c#c$c%c'cTjUjVjWjXjYjZj0j1j2j3j4j5j6j7j8j9j!j#j$j%j'j(j)j*j+j,j-j.j/j:j;j=j?j@j[j]j^jBouof cfdfpeqeresefm8m9m_mDnWm)nhogmioWdhmimjmYnxl)mEn3djoko:nkmZn0n9n_j`j{j|j(c)c*c+c,c-cPmQmefffgfhfifjfkflfmfnfofpfqfrfsftfnnonpnqn}j~jakbk`m{mWfXfYfLgMgNgOgPgQgRgSgTgUgVgWg6 7 8 :f;f=fZf0f1f5g6g9 ! # ^d_d`d{d|d}dckdkekfklmmmnmompmqmgkhkikjkkklkmknk$ % ' t u v 2b3b4bokpkrmsmqkrksktkukvkwkxkykzkAkBktmumldmdnd5b6b7bOdPdQd.c/c:c;c=c?c8b9b!b@c[c]c#b$b%b@ [ ] 'b(b)b^c_c`c{c|c}cCkDkEkFkGkHkIkJkKkLkMkNkOkPkQkRkSkTkUkVkWkXkYkZk0k1k2k3k4k5k6k7k8k9k!k#k$k%kCovo

508 pydantic_annotations = {} 2g 2fwfxfwm*m+msnHn!m*nloxmmo4dymzmAm1nvmrnIn5dnooopoBm2n3n!n,k-kudvdXm3f4f5f6f7f8f9f!fFnGn.k/k7g'k(k)k*k*b8g9g+k+bufvf:k;kCmDmEm=k?k@k[k,b^ od]kFm^k_k`k{k|k}kGmBdpdXdwdxdqdydrdsdtdzdAd~kalblcldlelflglhliljlklllmlnlolplqlrlDowoa te~daeylYmZm,mtnRm#n;nzl=nRdAlBlClJnsl#munYd?n@n+nDlKnLn4n!g#g-b.bHmuevewexeyezeAeBe|m}m$g%gyf?f@f[f]fw #fzfXgx 6d7d'g(gElFlGl)g*g+g,gy h _ -gHl.g/g:g;g=g?gIl~c` Cd/b:b{ ;b| ( } =b?b@g[g]g^g_g`g{g|g}g~gahbhchdhehfhghhhihxoqob CebeceJl0m1m-mvnSm$n[nKl]nSdLlMlNlMntl$mwnZd^n_n,nOlNnOn5njhkh@b[b]b^bImDeEeFeGeHeIeJeKe~manlhmh.mAfBf^f_f`f{f|f}f~fagz A $f%fCfDfYgB C 8d9d!d#dnhohPlQlRlphqhrhshD E i j ~ abthSluhvhwhxhyhzhTladbdbbcbDdEd_b`b{b|bdbeb}b~bfbgb) * hbibacbcccdcAhBhChDhEhFhGhHhIhJhKhLhMhNhOhPhQhRhShyoroc LeMedeeefegeUl2m3m/mxnTm%n`nVl{nTdWlXlYlPnul%myn0d|n}n-nZlQnRn6nThUhVhWhecfcgchcicjcJmKmNeOePeQeReSeTeUeVeWeXeYeZe0e1e2ebncndnenXhYhZh0h:m;mEfFfGfbgcgdgegfggghgigjgkglgmgF G H 'f(f)fHfIfJfZg0gI J K $d%d'd(d)d*d1h2h3h4h0l1l2l3l4l5l5h6h7h8h9h!h#h$hL M N k l m jbkblb%h'h6l7l(h)h*h+h,h-h.h/h:h;h=h?h8l9lcdddedmbnbobFdGdHdkclcmcncocpcpbqbrbqcrcscsbtbub+ , - vbwbxbtcucvcwcxcyc@h[h]h^h_h`h{h|h}h~haibicidieifigihiiijikiliminioipiqirisitiuiviwixiyiziAiBizosod 3e4eheiejeke!l4m5m=mznUm'n~n#laoUd$l%l'lSnvl'mAn1dboco.n(lTnUn7nCiDiEiFizcAcBcCcDcEcLmMm5e6e7e8e9e!e#e$e%e'e(e)e*e+e,e-efngnhninGiHiIiJi?m@mKfLfMfngogpgqgrgsgtgugvgwgxgygO P Q *f+f,fNfOfPf1g2gR S T +d,d-d.d/d:dKiLiMiNi)l*l+l,l-l.lOiPiQiRiSiTiUiViU V W n o p ybzbAbWiXi/l:lYiZi0i1i2i3i4i5i6i7i8i9i;l=lfdgdhdBbCbDbIdJdKdFcGcHcIcJcKcEbFbGbLcMcNcHbIbJb. / : KbLbMbOcPcQcRcScTc!i#i$i%i'i(i)i*i+i,i-i.i/i:i;i=i?i@i[i]i^i_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkjAotoe .e/elemeneoe?l6m7m[mBnVm(ndo@leoVd[l]l^lVnwl(mCn2dfogo/n_lWnXn8nljmjnjojUcVcWcXcYcZcNmOm:e;e=e?e@e[e]e^e_e`e{e|e}e~eafbfjnknlnmnpjqjrjsj]m^mQfRfSfzgAgBgCgDgEgFgGgHgIgJgKgX Y Z -f.f/fTfUfVf3g4g0 1 2 ;d=d?d@d[d]dtjujvjwj`l{l|l}l~lamxjyjzjAjBjCjDjEj3 4 5 q r s NbObPbFjGjbmcmHjIjJjKjLjMjNjOjPjQjRjSjdmemidjdkdQbRbSbLdMdNd0c1c2c3c4c5cTbUbVb6c7c8cWbXbYb; = ? Zb0b1b9c!c#c$c%c'cTjUjVjWjXjYjZj0j1j2j3j4j5j6j7j8j9j!j#j$j%j'j(j)j*j+j,j-j.j/j:j;j=j?j@j[j]j^jBouof cfdfpeqeresefm8m9m_mDnWm)nhogmioWdhmimjmYnxl)mEn3djoko:nkmZn0n9n_j`j{j|j(c)c*c+c,c-cPmQmefffgfhfifjfkflfmfnfofpfqfrfsftfnnonpnqn}j~jakbk`m{mWfXfYfLgMgNgOgPgQgRgSgTgUgVgWg6 7 8 :f;f=fZf0f1f5g6g9 ! # ^d_d`d{d|d}dckdkekfklmmmnmompmqmgkhkikjkkklkmknk$ % ' t u v 2b3b4bokpkrmsmqkrksktkukvkwkxkykzkAkBktmumldmdnd5b6b7bOdPdQd.c/c:c;c=c?c8b9b!b@c[c]c#b$b%b@ [ ] 'b(b)b^c_c`c{c|c}cCkDkEkFkGkHkIkJkKkLkMkNkOkPkQkRkSkTkUkVkWkXkYkZk0k1k2k3k4k5k6k7k8k9k!k#k$k%kCovo

509 relationship_annotations = {} 2g 2fwfxfwm*m+msnHn!m*nloxmmo4dymzmAm1nvmrnIn5dnooopoBm2n3n!n,k-kudvdXm3f4f5f6f7f8f9f!fFnGn.k/k7g'k(k)k*k*b8g9g+k+bufvf:k;kCmDmEm=k?k@k[k,b^ od]kFm^k_k`k{k|k}kGmBdpdXdwdxdqdydrdsdtdzdAd~kalblcldlelflglhliljlklllmlnlolplqlrlDowoa te~daeylYmZm,mtnRm#n;nzl=nRdAlBlClJnsl#munYd?n@n+nDlKnLn4n!g#g-b.bHmuevewexeyezeAeBe|m}m$g%gyf?f@f[f]fw #fzfXgx 6d7d'g(gElFlGl)g*g+g,gy h _ -gHl.g/g:g;g=g?gIl~c` Cd/b:b{ ;b| ( } =b?b@g[g]g^g_g`g{g|g}g~gahbhchdhehfhghhhihxoqob CebeceJl0m1m-mvnSm$n[nKl]nSdLlMlNlMntl$mwnZd^n_n,nOlNnOn5njhkh@b[b]b^bImDeEeFeGeHeIeJeKe~manlhmh.mAfBf^f_f`f{f|f}f~fagz A $f%fCfDfYgB C 8d9d!d#dnhohPlQlRlphqhrhshD E i j ~ abthSluhvhwhxhyhzhTladbdbbcbDdEd_b`b{b|bdbeb}b~bfbgb) * hbibacbcccdcAhBhChDhEhFhGhHhIhJhKhLhMhNhOhPhQhRhShyoroc LeMedeeefegeUl2m3m/mxnTm%n`nVl{nTdWlXlYlPnul%myn0d|n}n-nZlQnRn6nThUhVhWhecfcgchcicjcJmKmNeOePeQeReSeTeUeVeWeXeYeZe0e1e2ebncndnenXhYhZh0h:m;mEfFfGfbgcgdgegfggghgigjgkglgmgF G H 'f(f)fHfIfJfZg0gI J K $d%d'd(d)d*d1h2h3h4h0l1l2l3l4l5l5h6h7h8h9h!h#h$hL M N k l m jbkblb%h'h6l7l(h)h*h+h,h-h.h/h:h;h=h?h8l9lcdddedmbnbobFdGdHdkclcmcncocpcpbqbrbqcrcscsbtbub+ , - vbwbxbtcucvcwcxcyc@h[h]h^h_h`h{h|h}h~haibicidieifigihiiijikiliminioipiqirisitiuiviwixiyiziAiBizosod 3e4eheiejeke!l4m5m=mznUm'n~n#laoUd$l%l'lSnvl'mAn1dboco.n(lTnUn7nCiDiEiFizcAcBcCcDcEcLmMm5e6e7e8e9e!e#e$e%e'e(e)e*e+e,e-efngnhninGiHiIiJi?m@mKfLfMfngogpgqgrgsgtgugvgwgxgygO P Q *f+f,fNfOfPf1g2gR S T +d,d-d.d/d:dKiLiMiNi)l*l+l,l-l.lOiPiQiRiSiTiUiViU V W n o p ybzbAbWiXi/l:lYiZi0i1i2i3i4i5i6i7i8i9i;l=lfdgdhdBbCbDbIdJdKdFcGcHcIcJcKcEbFbGbLcMcNcHbIbJb. / : KbLbMbOcPcQcRcScTc!i#i$i%i'i(i)i*i+i,i-i.i/i:i;i=i?i@i[i]i^i_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkjAotoe .e/elemeneoe?l6m7m[mBnVm(ndo@leoVd[l]l^lVnwl(mCn2dfogo/n_lWnXn8nljmjnjojUcVcWcXcYcZcNmOm:e;e=e?e@e[e]e^e_e`e{e|e}e~eafbfjnknlnmnpjqjrjsj]m^mQfRfSfzgAgBgCgDgEgFgGgHgIgJgKgX Y Z -f.f/fTfUfVf3g4g0 1 2 ;d=d?d@d[d]dtjujvjwj`l{l|l}l~lamxjyjzjAjBjCjDjEj3 4 5 q r s NbObPbFjGjbmcmHjIjJjKjLjMjNjOjPjQjRjSjdmemidjdkdQbRbSbLdMdNd0c1c2c3c4c5cTbUbVb6c7c8cWbXbYb; = ? Zb0b1b9c!c#c$c%c'cTjUjVjWjXjYjZj0j1j2j3j4j5j6j7j8j9j!j#j$j%j'j(j)j*j+j,j-j.j/j:j;j=j?j@j[j]j^jBouof cfdfpeqeresefm8m9m_mDnWm)nhogmioWdhmimjmYnxl)mEn3djoko:nkmZn0n9n_j`j{j|j(c)c*c+c,c-cPmQmefffgfhfifjfkflfmfnfofpfqfrfsftfnnonpnqn}j~jakbk`m{mWfXfYfLgMgNgOgPgQgRgSgTgUgVgWg6 7 8 :f;f=fZf0f1f5g6g9 ! # ^d_d`d{d|d}dckdkekfklmmmnmompmqmgkhkikjkkklkmknk$ % ' t u v 2b3b4bokpkrmsmqkrksktkukvkwkxkykzkAkBktmumldmdnd5b6b7bOdPdQd.c/c:c;c=c?c8b9b!b@c[c]c#b$b%b@ [ ] 'b(b)b^c_c`c{c|c}cCkDkEkFkGkHkIkJkKkLkMkNkOkPkQkRkSkTkUkVkWkXkYkZk0k1k2k3k4k5k6k7k8k9k!k#k$k%kCovo

510 for k, v in class_dict.items(): 2g 2fwfxfwm*m+msnHn!m*nloxmmo4dymzmAm1nvmrnIn5dnooopoBm2n3n!n,k-kudvdXm3f4f5f6f7f8f9f!fFnGn.k/k7g'k(k)k*k*b8g9g+k+bufvf:k;kCmDmEm=k?k@k[k,b^ od]kFm^k_k`k{k|k}kGmBdpdXdwdxdqdydrdsdtdzdAd~kalblcldlelflglhliljlklllmlnlolplqlrlDowoa te~daeylYmZm,mtnRm#n;nzl=nRdAlBlClJnsl#munYd?n@n+nDlKnLn4n!g#g-b.bHmuevewexeyezeAeBe|m}m$g%gyf?f@f[f]fw #fzfXgx 6d7d'g(gElFlGl)g*g+g,gy h _ -gHl.g/g:g;g=g?gIl~c` Cd/b:b{ ;b| ( } =b?b@g[g]g^g_g`g{g|g}g~gahbhchdhehfhghhhihxoqob CebeceJl0m1m-mvnSm$n[nKl]nSdLlMlNlMntl$mwnZd^n_n,nOlNnOn5njhkh@b[b]b^bImDeEeFeGeHeIeJeKe~manlhmh.mAfBf^f_f`f{f|f}f~fagz A $f%fCfDfYgB C 8d9d!d#dnhohPlQlRlphqhrhshD E i j ~ abthSluhvhwhxhyhzhTladbdbbcbDdEd_b`b{b|bdbeb}b~bfbgb) * hbibacbcccdcAhBhChDhEhFhGhHhIhJhKhLhMhNhOhPhQhRhShyoroc LeMedeeefegeUl2m3m/mxnTm%n`nVl{nTdWlXlYlPnul%myn0d|n}n-nZlQnRn6nThUhVhWhecfcgchcicjcJmKmNeOePeQeReSeTeUeVeWeXeYeZe0e1e2ebncndnenXhYhZh0h:m;mEfFfGfbgcgdgegfggghgigjgkglgmgF G H 'f(f)fHfIfJfZg0gI J K $d%d'd(d)d*d1h2h3h4h0l1l2l3l4l5l5h6h7h8h9h!h#h$hL M N k l m jbkblb%h'h6l7l(h)h*h+h,h-h.h/h:h;h=h?h8l9lcdddedmbnbobFdGdHdkclcmcncocpcpbqbrbqcrcscsbtbub+ , - vbwbxbtcucvcwcxcyc@h[h]h^h_h`h{h|h}h~haibicidieifigihiiijikiliminioipiqirisitiuiviwixiyiziAiBizosod 3e4eheiejeke!l4m5m=mznUm'n~n#laoUd$l%l'lSnvl'mAn1dboco.n(lTnUn7nCiDiEiFizcAcBcCcDcEcLmMm5e6e7e8e9e!e#e$e%e'e(e)e*e+e,e-efngnhninGiHiIiJi?m@mKfLfMfngogpgqgrgsgtgugvgwgxgygO P Q *f+f,fNfOfPf1g2gR S T +d,d-d.d/d:dKiLiMiNi)l*l+l,l-l.lOiPiQiRiSiTiUiViU V W n o p ybzbAbWiXi/l:lYiZi0i1i2i3i4i5i6i7i8i9i;l=lfdgdhdBbCbDbIdJdKdFcGcHcIcJcKcEbFbGbLcMcNcHbIbJb. / : KbLbMbOcPcQcRcScTc!i#i$i%i'i(i)i*i+i,i-i.i/i:i;i=i?i@i[i]i^i_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkjAotoe .e/elemeneoe?l6m7m[mBnVm(ndo@leoVd[l]l^lVnwl(mCn2dfogo/n_lWnXn8nljmjnjojUcVcWcXcYcZcNmOm:e;e=e?e@e[e]e^e_e`e{e|e}e~eafbfjnknlnmnpjqjrjsj]m^mQfRfSfzgAgBgCgDgEgFgGgHgIgJgKgX Y Z -f.f/fTfUfVf3g4g0 1 2 ;d=d?d@d[d]dtjujvjwj`l{l|l}l~lamxjyjzjAjBjCjDjEj3 4 5 q r s NbObPbFjGjbmcmHjIjJjKjLjMjNjOjPjQjRjSjdmemidjdkdQbRbSbLdMdNd0c1c2c3c4c5cTbUbVb6c7c8cWbXbYb; = ? Zb0b1b9c!c#c$c%c'cTjUjVjWjXjYjZj0j1j2j3j4j5j6j7j8j9j!j#j$j%j'j(j)j*j+j,j-j.j/j:j;j=j?j@j[j]j^jBouof cfdfpeqeresefm8m9m_mDnWm)nhogmioWdhmimjmYnxl)mEn3djoko:nkmZn0n9n_j`j{j|j(c)c*c+c,c-cPmQmefffgfhfifjfkflfmfnfofpfqfrfsftfnnonpnqn}j~jakbk`m{mWfXfYfLgMgNgOgPgQgRgSgTgUgVgWg6 7 8 :f;f=fZf0f1f5g6g9 ! # ^d_d`d{d|d}dckdkekfklmmmnmompmqmgkhkikjkkklkmknk$ % ' t u v 2b3b4bokpkrmsmqkrksktkukvkwkxkykzkAkBktmumldmdnd5b6b7bOdPdQd.c/c:c;c=c?c8b9b!b@c[c]c#b$b%b@ [ ] 'b(b)b^c_c`c{c|c}cCkDkEkFkGkHkIkJkKkLkMkNkOkPkQkRkSkTkUkVkWkXkYkZk0k1k2k3k4k5k6k7k8k9k!k#k$k%kCovo

511 if isinstance(v, RelationshipInfo): 2g 2fwfxfwm*m+msnHn!m*nloxmmo4dymzmAm1nvmrnIn5dnooopoBm2n3n!n,k-kudvdXm3f4f5f6f7f8f9f!fFnGn.k/k7g'k(k)k*k*b8g9g+k+bufvf:k;kCmDmEm=k?k@k[k,b^ od]kFm^k_k`k{k|k}kGmBdpdXdwdxdqdydrdsdtdzdAd~kalblcldlelflglhliljlklllmlnlolplqlrlDowoa te~daeylYmZm,mtnRm#n;nzl=nRdAlBlClJnsl#munYd?n@n+nDlKnLn4n!g#g-b.bHmuevewexeyezeAeBe|m}m$g%gyf?f@f[f]fw #fzfXgx 6d7d'g(gElFlGl)g*g+g,gy h _ -gHl.g/g:g;g=g?gIl~c` Cd/b:b{ ;b| ( } =b?b@g[g]g^g_g`g{g|g}g~gahbhchdhehfhghhhihxoqob CebeceJl0m1m-mvnSm$n[nKl]nSdLlMlNlMntl$mwnZd^n_n,nOlNnOn5njhkh@b[b]b^bImDeEeFeGeHeIeJeKe~manlhmh.mAfBf^f_f`f{f|f}f~fagz A $f%fCfDfYgB C 8d9d!d#dnhohPlQlRlphqhrhshD E i j ~ abthSluhvhwhxhyhzhTladbdbbcbDdEd_b`b{b|bdbeb}b~bfbgb) * hbibacbcccdcAhBhChDhEhFhGhHhIhJhKhLhMhNhOhPhQhRhShyoroc LeMedeeefegeUl2m3m/mxnTm%n`nVl{nTdWlXlYlPnul%myn0d|n}n-nZlQnRn6nThUhVhWhecfcgchcicjcJmKmNeOePeQeReSeTeUeVeWeXeYeZe0e1e2ebncndnenXhYhZh0h:m;mEfFfGfbgcgdgegfggghgigjgkglgmgF G H 'f(f)fHfIfJfZg0gI J K $d%d'd(d)d*d1h2h3h4h0l1l2l3l4l5l5h6h7h8h9h!h#h$hL M N k l m jbkblb%h'h6l7l(h)h*h+h,h-h.h/h:h;h=h?h8l9lcdddedmbnbobFdGdHdkclcmcncocpcpbqbrbqcrcscsbtbub+ , - vbwbxbtcucvcwcxcyc@h[h]h^h_h`h{h|h}h~haibicidieifigihiiijikiliminioipiqirisitiuiviwixiyiziAiBizosod 3e4eheiejeke!l4m5m=mznUm'n~n#laoUd$l%l'lSnvl'mAn1dboco.n(lTnUn7nCiDiEiFizcAcBcCcDcEcLmMm5e6e7e8e9e!e#e$e%e'e(e)e*e+e,e-efngnhninGiHiIiJi?m@mKfLfMfngogpgqgrgsgtgugvgwgxgygO P Q *f+f,fNfOfPf1g2gR S T +d,d-d.d/d:dKiLiMiNi)l*l+l,l-l.lOiPiQiRiSiTiUiViU V W n o p ybzbAbWiXi/l:lYiZi0i1i2i3i4i5i6i7i8i9i;l=lfdgdhdBbCbDbIdJdKdFcGcHcIcJcKcEbFbGbLcMcNcHbIbJb. / : KbLbMbOcPcQcRcScTc!i#i$i%i'i(i)i*i+i,i-i.i/i:i;i=i?i@i[i]i^i_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkjAotoe .e/elemeneoe?l6m7m[mBnVm(ndo@leoVd[l]l^lVnwl(mCn2dfogo/n_lWnXn8nljmjnjojUcVcWcXcYcZcNmOm:e;e=e?e@e[e]e^e_e`e{e|e}e~eafbfjnknlnmnpjqjrjsj]m^mQfRfSfzgAgBgCgDgEgFgGgHgIgJgKgX Y Z -f.f/fTfUfVf3g4g0 1 2 ;d=d?d@d[d]dtjujvjwj`l{l|l}l~lamxjyjzjAjBjCjDjEj3 4 5 q r s NbObPbFjGjbmcmHjIjJjKjLjMjNjOjPjQjRjSjdmemidjdkdQbRbSbLdMdNd0c1c2c3c4c5cTbUbVb6c7c8cWbXbYb; = ? Zb0b1b9c!c#c$c%c'cTjUjVjWjXjYjZj0j1j2j3j4j5j6j7j8j9j!j#j$j%j'j(j)j*j+j,j-j.j/j:j;j=j?j@j[j]j^jBouof cfdfpeqeresefm8m9m_mDnWm)nhogmioWdhmimjmYnxl)mEn3djoko:nkmZn0n9n_j`j{j|j(c)c*c+c,c-cPmQmefffgfhfifjfkflfmfnfofpfqfrfsftfnnonpnqn}j~jakbk`m{mWfXfYfLgMgNgOgPgQgRgSgTgUgVgWg6 7 8 :f;f=fZf0f1f5g6g9 ! # ^d_d`d{d|d}dckdkekfklmmmnmompmqmgkhkikjkkklkmknk$ % ' t u v 2b3b4bokpkrmsmqkrksktkukvkwkxkykzkAkBktmumldmdnd5b6b7bOdPdQd.c/c:c;c=c?c8b9b!b@c[c]c#b$b%b@ [ ] 'b(b)b^c_c`c{c|c}cCkDkEkFkGkHkIkJkKkLkMkNkOkPkQkRkSkTkUkVkWkXkYkZk0k1k2k3k4k5k6k7k8k9k!k#k$k%kCovo

512 relationships[k] = v 24d5dudvd*b+b,b^ odBdpdXdwdxdqdydrdsdtdzdAdRdYd-b.bw x y h _ ~c` Cd/b:b{ ;b| ( } =b?bSdZd@b[b]b^bz A B C D E i j ~ abadbdbbcbDdEd_b`b{b|bdbeb}b~bfbgb) * hbibacbcccdcTd0decfcgchcicjcF G H I J K L M N k l m jbkblbcdddedmbnbobFdGdHdkclcmcncocpcpbqbrbqcrcscsbtbub+ , - vbwbxbtcucvcwcxcycUd1dzcAcBcCcDcEcO P Q R S T U V W n o p ybzbAbfdgdhdBbCbDbIdJdKdFcGcHcIcJcKcEbFbGbLcMcNcHbIbJb. / : KbLbMbOcPcQcRcScTcVd2dUcVcWcXcYcZcX Y Z 0 1 2 3 4 5 q r s NbObPbidjdkdQbRbSbLdMdNd0c1c2c3c4c5cTbUbVb6c7c8cWbXbYb; = ? Zb0b1b9c!c#c$c%c'cWd3d(c)c*c+c,c-c6 7 8 9 ! # $ % ' t u v 2b3b4bldmdnd5b6b7bOdPdQd.c/c:c;c=c?c8b9b!b@c[c]c#b$b%b@ [ ] 'b(b)b^c_c`c{c|c}c

513 else: 

514 dict_for_pydantic[k] = v 2g 2fwfxfwm*m+msnHn!m*nloxmmo4dymzmAm1nvmrnIn5dnooopoBm2n3n!n,k-kudvdXm3f4f5f6f7f8f9f!fFnGn.k/k7g'k(k)k*k*b8g9g+k+bufvf:k;kCmDmEm=k?k@k[k,b^ od]kFm^k_k`k{k|k}kGmBdpdXdwdxdqdydrdsdtdzdAd~kalblcldlelflglhliljlklllmlnlolplqlrlDowoa te~daeylYmZm,mtnRm#n;nzl=nRdAlBlClJnsl#munYd?n@n+nDlKnLn4n!g#g-b.bHmuevewexeyezeAeBe|m}m$g%gyf?f@f[f]fw #fzfXgx 6d7d'g(gElFlGl)g*g+g,gy h _ -gHl.g/g:g;g=g?gIl~c` Cd/b:b{ ;b| ( } =b?b@g[g]g^g_g`g{g|g}g~gahbhchdhehfhghhhihxoqob CebeceJl0m1m-mvnSm$n[nKl]nSdLlMlNlMntl$mwnZd^n_n,nOlNnOn5njhkh@b[b]b^bImDeEeFeGeHeIeJeKe~manlhmh.mAfBf^f_f`f{f|f}f~fagz A $f%fCfDfYgB C 8d9d!d#dnhohPlQlRlphqhrhshD E i j ~ abthSluhvhwhxhyhzhTladbdbbcbDdEd_b`b{b|bdbeb}b~bfbgb) * hbibacbcccdcAhBhChDhEhFhGhHhIhJhKhLhMhNhOhPhQhRhShyoroc LeMedeeefegeUl2m3m/mxnTm%n`nVl{nTdWlXlYlPnul%myn0d|n}n-nZlQnRn6nThUhVhWhecfcgchcicjcJmKmNeOePeQeReSeTeUeVeWeXeYeZe0e1e2ebncndnenXhYhZh0h:m;mEfFfGfbgcgdgegfggghgigjgkglgmgF G H 'f(f)fHfIfJfZg0gI J K $d%d'd(d)d*d1h2h3h4h0l1l2l3l4l5l5h6h7h8h9h!h#h$hL M N k l m jbkblb%h'h6l7l(h)h*h+h,h-h.h/h:h;h=h?h8l9lcdddedmbnbobFdGdHdkclcmcncocpcpbqbrbqcrcscsbtbub+ , - vbwbxbtcucvcwcxcyc@h[h]h^h_h`h{h|h}h~haibicidieifigihiiijikiliminioipiqirisitiuiviwixiyiziAiBizosod 3e4eheiejeke!l4m5m=mznUm'n~n#laoUd$l%l'lSnvl'mAn1dboco.n(lTnUn7nCiDiEiFizcAcBcCcDcEcLmMm5e6e7e8e9e!e#e$e%e'e(e)e*e+e,e-efngnhninGiHiIiJi?m@mKfLfMfngogpgqgrgsgtgugvgwgxgygO P Q *f+f,fNfOfPf1g2gR S T +d,d-d.d/d:dKiLiMiNi)l*l+l,l-l.lOiPiQiRiSiTiUiViU V W n o p ybzbAbWiXi/l:lYiZi0i1i2i3i4i5i6i7i8i9i;l=lfdgdhdBbCbDbIdJdKdFcGcHcIcJcKcEbFbGbLcMcNcHbIbJb. / : KbLbMbOcPcQcRcScTc!i#i$i%i'i(i)i*i+i,i-i.i/i:i;i=i?i@i[i]i^i_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkjAotoe .e/elemeneoe?l6m7m[mBnVm(ndo@leoVd[l]l^lVnwl(mCn2dfogo/n_lWnXn8nljmjnjojUcVcWcXcYcZcNmOm:e;e=e?e@e[e]e^e_e`e{e|e}e~eafbfjnknlnmnpjqjrjsj]m^mQfRfSfzgAgBgCgDgEgFgGgHgIgJgKgX Y Z -f.f/fTfUfVf3g4g0 1 2 ;d=d?d@d[d]dtjujvjwj`l{l|l}l~lamxjyjzjAjBjCjDjEj3 4 5 q r s NbObPbFjGjbmcmHjIjJjKjLjMjNjOjPjQjRjSjdmemidjdkdQbRbSbLdMdNd0c1c2c3c4c5cTbUbVb6c7c8cWbXbYb; = ? Zb0b1b9c!c#c$c%c'cTjUjVjWjXjYjZj0j1j2j3j4j5j6j7j8j9j!j#j$j%j'j(j)j*j+j,j-j.j/j:j;j=j?j@j[j]j^jBouof cfdfpeqeresefm8m9m_mDnWm)nhogmioWdhmimjmYnxl)mEn3djoko:nkmZn0n9n_j`j{j|j(c)c*c+c,c-cPmQmefffgfhfifjfkflfmfnfofpfqfrfsftfnnonpnqn}j~jakbk`m{mWfXfYfLgMgNgOgPgQgRgSgTgUgVgWg6 7 8 :f;f=fZf0f1f5g6g9 ! # ^d_d`d{d|d}dckdkekfklmmmnmompmqmgkhkikjkkklkmknk$ % ' t u v 2b3b4bokpkrmsmqkrksktkukvkwkxkykzkAkBktmumldmdnd5b6b7bOdPdQd.c/c:c;c=c?c8b9b!b@c[c]c#b$b%b@ [ ] 'b(b)b^c_c`c{c|c}cCkDkEkFkGkHkIkJkKkLkMkNkOkPkQkRkSkTkUkVkWkXkYkZk0k1k2k3k4k5k6k7k8k9k!k#k$k%kCovo

515 for k, v in original_annotations.items(): 2g 2fwfxfwm*m+msnHn!m*nloxmmo4dymzmAm1nvmrnIn5dnooopoBm2n3n!n,k-kudvdXm3f4f5f6f7f8f9f!fFnGn.k/k7g'k(k)k*k*b8g9g+k+bufvf:k;kCmDmEm=k?k@k[k,b^ od]kFm^k_k`k{k|k}kGmBdpdXdwdxdqdydrdsdtdzdAd~kalblcldlelflglhliljlklllmlnlolplqlrlDowoa te~daeylYmZm,mtnRm#n;nzl=nRdAlBlClJnsl#munYd?n@n+nDlKnLn4n!g#g-b.bHmuevewexeyezeAeBe|m}m$g%gyf?f@f[f]fw #fzfXgx 6d7d'g(gElFlGl)g*g+g,gy h _ -gHl.g/g:g;g=g?gIl~c` Cd/b:b{ ;b| ( } =b?b@g[g]g^g_g`g{g|g}g~gahbhchdhehfhghhhihxoqob CebeceJl0m1m-mvnSm$n[nKl]nSdLlMlNlMntl$mwnZd^n_n,nOlNnOn5njhkh@b[b]b^bImDeEeFeGeHeIeJeKe~manlhmh.mAfBf^f_f`f{f|f}f~fagz A $f%fCfDfYgB C 8d9d!d#dnhohPlQlRlphqhrhshD E i j ~ abthSluhvhwhxhyhzhTladbdbbcbDdEd_b`b{b|bdbeb}b~bfbgb) * hbibacbcccdcAhBhChDhEhFhGhHhIhJhKhLhMhNhOhPhQhRhShyoroc LeMedeeefegeUl2m3m/mxnTm%n`nVl{nTdWlXlYlPnul%myn0d|n}n-nZlQnRn6nThUhVhWhecfcgchcicjcJmKmNeOePeQeReSeTeUeVeWeXeYeZe0e1e2ebncndnenXhYhZh0h:m;mEfFfGfbgcgdgegfggghgigjgkglgmgF G H 'f(f)fHfIfJfZg0gI J K $d%d'd(d)d*d1h2h3h4h0l1l2l3l4l5l5h6h7h8h9h!h#h$hL M N k l m jbkblb%h'h6l7l(h)h*h+h,h-h.h/h:h;h=h?h8l9lcdddedmbnbobFdGdHdkclcmcncocpcpbqbrbqcrcscsbtbub+ , - vbwbxbtcucvcwcxcyc@h[h]h^h_h`h{h|h}h~haibicidieifigihiiijikiliminioipiqirisitiuiviwixiyiziAiBizosod 3e4eheiejeke!l4m5m=mznUm'n~n#laoUd$l%l'lSnvl'mAn1dboco.n(lTnUn7nCiDiEiFizcAcBcCcDcEcLmMm5e6e7e8e9e!e#e$e%e'e(e)e*e+e,e-efngnhninGiHiIiJi?m@mKfLfMfngogpgqgrgsgtgugvgwgxgygO P Q *f+f,fNfOfPf1g2gR S T +d,d-d.d/d:dKiLiMiNi)l*l+l,l-l.lOiPiQiRiSiTiUiViU V W n o p ybzbAbWiXi/l:lYiZi0i1i2i3i4i5i6i7i8i9i;l=lfdgdhdBbCbDbIdJdKdFcGcHcIcJcKcEbFbGbLcMcNcHbIbJb. / : KbLbMbOcPcQcRcScTc!i#i$i%i'i(i)i*i+i,i-i.i/i:i;i=i?i@i[i]i^i_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkjAotoe .e/elemeneoe?l6m7m[mBnVm(ndo@leoVd[l]l^lVnwl(mCn2dfogo/n_lWnXn8nljmjnjojUcVcWcXcYcZcNmOm:e;e=e?e@e[e]e^e_e`e{e|e}e~eafbfjnknlnmnpjqjrjsj]m^mQfRfSfzgAgBgCgDgEgFgGgHgIgJgKgX Y Z -f.f/fTfUfVf3g4g0 1 2 ;d=d?d@d[d]dtjujvjwj`l{l|l}l~lamxjyjzjAjBjCjDjEj3 4 5 q r s NbObPbFjGjbmcmHjIjJjKjLjMjNjOjPjQjRjSjdmemidjdkdQbRbSbLdMdNd0c1c2c3c4c5cTbUbVb6c7c8cWbXbYb; = ? Zb0b1b9c!c#c$c%c'cTjUjVjWjXjYjZj0j1j2j3j4j5j6j7j8j9j!j#j$j%j'j(j)j*j+j,j-j.j/j:j;j=j?j@j[j]j^jBouof cfdfpeqeresefm8m9m_mDnWm)nhogmioWdhmimjmYnxl)mEn3djoko:nkmZn0n9n_j`j{j|j(c)c*c+c,c-cPmQmefffgfhfifjfkflfmfnfofpfqfrfsftfnnonpnqn}j~jakbk`m{mWfXfYfLgMgNgOgPgQgRgSgTgUgVgWg6 7 8 :f;f=fZf0f1f5g6g9 ! # ^d_d`d{d|d}dckdkekfklmmmnmompmqmgkhkikjkkklkmknk$ % ' t u v 2b3b4bokpkrmsmqkrksktkukvkwkxkykzkAkBktmumldmdnd5b6b7bOdPdQd.c/c:c;c=c?c8b9b!b@c[c]c#b$b%b@ [ ] 'b(b)b^c_c`c{c|c}cCkDkEkFkGkHkIkJkKkLkMkNkOkPkQkRkSkTkUkVkWkXkYkZk0k1k2k3k4k5k6k7k8k9k!k#k$k%kCovo

516 if k in relationships: 2g 2fwfxfwm*m+msnHn!m*nloxmmo4dymzmAm1nvmrnIn5dnooopoBm2n3n!n,k-kudvdXm3f4f5f6f7f8f9f!fFnGn.k/k7g'k(k)k*k*b8g9g+k+bufvf:k;kCmDmEm=k?k@k[k,b^ od]kFm^k_k`k{k|k}kGmBdpdXdwdxdqdydrdsdtdzdAd~kalblcldlelflglhliljlklllmlnlolplqlrlDowoa te~daeylYmZm,mtnRm#n;nzl=nRdAlBlClJnsl#munYd?n@n+nDlKnLn4n!g#g-b.bHmuevewexeyezeAeBe|m}m$g%gyf?f@f[f]fw #fzfXgx 6d7d'g(gElFlGl)g*g+g,gy h _ -gHl.g/g:g;g=g?gIl~c` Cd/b:b{ ;b| ( } =b?b@g[g]g^g_g`g{g|g}g~gahbhchdhehfhghhhihxoqob CebeceJl0m1m-mvnSm$n[nKl]nSdLlMlNlMntl$mwnZd^n_n,nOlNnOn5njhkh@b[b]b^bImDeEeFeGeHeIeJeKe~manlhmh.mAfBf^f_f`f{f|f}f~fagz A $f%fCfDfYgB C 8d9d!d#dnhohPlQlRlphqhrhshD E i j ~ abthSluhvhwhxhyhzhTladbdbbcbDdEd_b`b{b|bdbeb}b~bfbgb) * hbibacbcccdcAhBhChDhEhFhGhHhIhJhKhLhMhNhOhPhQhRhShyoroc LeMedeeefegeUl2m3m/mxnTm%n`nVl{nTdWlXlYlPnul%myn0d|n}n-nZlQnRn6nThUhVhWhecfcgchcicjcJmKmNeOePeQeReSeTeUeVeWeXeYeZe0e1e2ebncndnenXhYhZh0h:m;mEfFfGfbgcgdgegfggghgigjgkglgmgF G H 'f(f)fHfIfJfZg0gI J K $d%d'd(d)d*d1h2h3h4h0l1l2l3l4l5l5h6h7h8h9h!h#h$hL M N k l m jbkblb%h'h6l7l(h)h*h+h,h-h.h/h:h;h=h?h8l9lcdddedmbnbobFdGdHdkclcmcncocpcpbqbrbqcrcscsbtbub+ , - vbwbxbtcucvcwcxcyc@h[h]h^h_h`h{h|h}h~haibicidieifigihiiijikiliminioipiqirisitiuiviwixiyiziAiBizosod 3e4eheiejeke!l4m5m=mznUm'n~n#laoUd$l%l'lSnvl'mAn1dboco.n(lTnUn7nCiDiEiFizcAcBcCcDcEcLmMm5e6e7e8e9e!e#e$e%e'e(e)e*e+e,e-efngnhninGiHiIiJi?m@mKfLfMfngogpgqgrgsgtgugvgwgxgygO P Q *f+f,fNfOfPf1g2gR S T +d,d-d.d/d:dKiLiMiNi)l*l+l,l-l.lOiPiQiRiSiTiUiViU V W n o p ybzbAbWiXi/l:lYiZi0i1i2i3i4i5i6i7i8i9i;l=lfdgdhdBbCbDbIdJdKdFcGcHcIcJcKcEbFbGbLcMcNcHbIbJb. / : KbLbMbOcPcQcRcScTc!i#i$i%i'i(i)i*i+i,i-i.i/i:i;i=i?i@i[i]i^i_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkjAotoe .e/elemeneoe?l6m7m[mBnVm(ndo@leoVd[l]l^lVnwl(mCn2dfogo/n_lWnXn8nljmjnjojUcVcWcXcYcZcNmOm:e;e=e?e@e[e]e^e_e`e{e|e}e~eafbfjnknlnmnpjqjrjsj]m^mQfRfSfzgAgBgCgDgEgFgGgHgIgJgKgX Y Z -f.f/fTfUfVf3g4g0 1 2 ;d=d?d@d[d]dtjujvjwj`l{l|l}l~lamxjyjzjAjBjCjDjEj3 4 5 q r s NbObPbFjGjbmcmHjIjJjKjLjMjNjOjPjQjRjSjdmemidjdkdQbRbSbLdMdNd0c1c2c3c4c5cTbUbVb6c7c8cWbXbYb; = ? Zb0b1b9c!c#c$c%c'cTjUjVjWjXjYjZj0j1j2j3j4j5j6j7j8j9j!j#j$j%j'j(j)j*j+j,j-j.j/j:j;j=j?j@j[j]j^jBouof cfdfpeqeresefm8m9m_mDnWm)nhogmioWdhmimjmYnxl)mEn3djoko:nkmZn0n9n_j`j{j|j(c)c*c+c,c-cPmQmefffgfhfifjfkflfmfnfofpfqfrfsftfnnonpnqn}j~jakbk`m{mWfXfYfLgMgNgOgPgQgRgSgTgUgVgWg6 7 8 :f;f=fZf0f1f5g6g9 ! # ^d_d`d{d|d}dckdkekfklmmmnmompmqmgkhkikjkkklkmknk$ % ' t u v 2b3b4bokpkrmsmqkrksktkukvkwkxkykzkAkBktmumldmdnd5b6b7bOdPdQd.c/c:c;c=c?c8b9b!b@c[c]c#b$b%b@ [ ] 'b(b)b^c_c`c{c|c}cCkDkEkFkGkHkIkJkKkLkMkNkOkPkQkRkSkTkUkVkWkXkYkZk0k1k2k3k4k5k6k7k8k9k!k#k$k%kCovo

517 relationship_annotations[k] = v 24d5dudvd*b+b,b^ odBdpdXdwdxdqdydrdsdtdzdAdRdYd-b.bw x y h _ ~c` Cd/b:b{ ;b| ( } =b?bSdZd@b[b]b^bz A B C D E i j ~ abadbdbbcbDdEd_b`b{b|bdbeb}b~bfbgb) * hbibacbcccdcTd0decfcgchcicjcF G H I J K L M N k l m jbkblbcdddedmbnbobFdGdHdkclcmcncocpcpbqbrbqcrcscsbtbub+ , - vbwbxbtcucvcwcxcycUd1dzcAcBcCcDcEcO P Q R S T U V W n o p ybzbAbfdgdhdBbCbDbIdJdKdFcGcHcIcJcKcEbFbGbLcMcNcHbIbJb. / : KbLbMbOcPcQcRcScTcVd2dUcVcWcXcYcZcX Y Z 0 1 2 3 4 5 q r s NbObPbidjdkdQbRbSbLdMdNd0c1c2c3c4c5cTbUbVb6c7c8cWbXbYb; = ? Zb0b1b9c!c#c$c%c'cWd3d(c)c*c+c,c-c6 7 8 9 ! # $ % ' t u v 2b3b4bldmdnd5b6b7bOdPdQd.c/c:c;c=c?c8b9b!b@c[c]c#b$b%b@ [ ] 'b(b)b^c_c`c{c|c}c

518 else: 

519 pydantic_annotations[k] = v 2g 2fwfxfwm*m+msnHn!m*nloxmmo4dymzmAm1nvmrnIn5dnooopoBm2n3n!n,k-kudvdXm3f4f5f6f7f8f9f!fFnGn.k/k7g'k(k)k*k*b8g9g+k+bufvf:k;kCmDmEm=k?k@k[k,b^ od]kFm^k_k`k{k|k}kGmBdpdXdwdxdqdydrdsdtdzdAd~kalblcldlelflglhliljlklllmlnlolplqlrlDowoa te~daeylYmZm,mtnRm#n;nzl=nRdAlBlClJnsl#munYd?n@n+nDlKnLn4n!g#g-b.bHmuevewexeyezeAeBe|m}m$g%gyf?f@f[f]fw #fzfXgx 6d7d'g(gElFlGl)g*g+g,gy h _ -gHl.g/g:g;g=g?gIl~c` Cd/b:b{ ;b| ( } =b?b@g[g]g^g_g`g{g|g}g~gahbhchdhehfhghhhihxoqob CebeceJl0m1m-mvnSm$n[nKl]nSdLlMlNlMntl$mwnZd^n_n,nOlNnOn5njhkh@b[b]b^bImDeEeFeGeHeIeJeKe~manlhmh.mAfBf^f_f`f{f|f}f~fagz A $f%fCfDfYgB C 8d9d!d#dnhohPlQlRlphqhrhshD E i j ~ abthSluhvhwhxhyhzhTladbdbbcbDdEd_b`b{b|bdbeb}b~bfbgb) * hbibacbcccdcAhBhChDhEhFhGhHhIhJhKhLhMhNhOhPhQhRhShyoroc LeMedeeefegeUl2m3m/mxnTm%n`nVl{nTdWlXlYlPnul%myn0d|n}n-nZlQnRn6nThUhVhWhecfcgchcicjcJmKmNeOePeQeReSeTeUeVeWeXeYeZe0e1e2ebncndnenXhYhZh0h:m;mEfFfGfbgcgdgegfggghgigjgkglgmgF G H 'f(f)fHfIfJfZg0gI J K $d%d'd(d)d*d1h2h3h4h0l1l2l3l4l5l5h6h7h8h9h!h#h$hL M N k l m jbkblb%h'h6l7l(h)h*h+h,h-h.h/h:h;h=h?h8l9lcdddedmbnbobFdGdHdkclcmcncocpcpbqbrbqcrcscsbtbub+ , - vbwbxbtcucvcwcxcyc@h[h]h^h_h`h{h|h}h~haibicidieifigihiiijikiliminioipiqirisitiuiviwixiyiziAiBizosod 3e4eheiejeke!l4m5m=mznUm'n~n#laoUd$l%l'lSnvl'mAn1dboco.n(lTnUn7nCiDiEiFizcAcBcCcDcEcLmMm5e6e7e8e9e!e#e$e%e'e(e)e*e+e,e-efngnhninGiHiIiJi?m@mKfLfMfngogpgqgrgsgtgugvgwgxgygO P Q *f+f,fNfOfPf1g2gR S T +d,d-d.d/d:dKiLiMiNi)l*l+l,l-l.lOiPiQiRiSiTiUiViU V W n o p ybzbAbWiXi/l:lYiZi0i1i2i3i4i5i6i7i8i9i;l=lfdgdhdBbCbDbIdJdKdFcGcHcIcJcKcEbFbGbLcMcNcHbIbJb. / : KbLbMbOcPcQcRcScTc!i#i$i%i'i(i)i*i+i,i-i.i/i:i;i=i?i@i[i]i^i_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkjAotoe .e/elemeneoe?l6m7m[mBnVm(ndo@leoVd[l]l^lVnwl(mCn2dfogo/n_lWnXn8nljmjnjojUcVcWcXcYcZcNmOm:e;e=e?e@e[e]e^e_e`e{e|e}e~eafbfjnknlnmnpjqjrjsj]m^mQfRfSfzgAgBgCgDgEgFgGgHgIgJgKgX Y Z -f.f/fTfUfVf3g4g0 1 2 ;d=d?d@d[d]dtjujvjwj`l{l|l}l~lamxjyjzjAjBjCjDjEj3 4 5 q r s NbObPbFjGjbmcmHjIjJjKjLjMjNjOjPjQjRjSjdmemidjdkdQbRbSbLdMdNd0c1c2c3c4c5cTbUbVb6c7c8cWbXbYb; = ? Zb0b1b9c!c#c$c%c'cTjUjVjWjXjYjZj0j1j2j3j4j5j6j7j8j9j!j#j$j%j'j(j)j*j+j,j-j.j/j:j;j=j?j@j[j]j^jBouof cfdfpeqeresefm8m9m_mDnWm)nhogmioWdhmimjmYnxl)mEn3djoko:nkmZn0n9n_j`j{j|j(c)c*c+c,c-cPmQmefffgfhfifjfkflfmfnfofpfqfrfsftfnnonpnqn}j~jakbk`m{mWfXfYfLgMgNgOgPgQgRgSgTgUgVgWg6 7 8 :f;f=fZf0f1f5g6g9 ! # ^d_d`d{d|d}dckdkekfklmmmnmompmqmgkhkikjkkklkmknk$ % ' t u v 2b3b4bokpkrmsmqkrksktkukvkwkxkykzkAkBktmumldmdnd5b6b7bOdPdQd.c/c:c;c=c?c8b9b!b@c[c]c#b$b%b@ [ ] 'b(b)b^c_c`c{c|c}cCkDkEkFkGkHkIkJkKkLkMkNkOkPkQkRkSkTkUkVkWkXkYkZk0k1k2k3k4k5k6k7k8k9k!k#k$k%kCovo

520 dict_used = { 2a te~daeylYmZm,mtnRm#n;nzl=nRdAlBlClJnsl#munYd?n@n+nDlKnLn4n!g#g-b.bHmuevewexeyezeAeBe|m}m$g%gyf?f@f[f]fw #fzfXgx 6d7d'g(gElFlGl)g*g+g,gy h _ -gHl.g/g:g;g=g?gIl~c` Cd/b:b{ ;b| ( } =b?b@g[g]g^g_g`g{g|g}g~gahbhchdhehfhghhhihxoqob CebeceJl0m1m-mvnSm$n[nKl]nSdLlMlNlMntl$mwnZd^n_n,nOlNnOn5njhkh@b[b]b^bImDeEeFeGeHeIeJeKe~manlhmh.mAfBf^f_f`f{f|f}f~fagz A $f%fCfDfYgB C 8d9d!d#dnhohPlQlRlphqhrhshD E i j ~ abthSluhvhwhxhyhzhTladbdbbcbDdEd_b`b{b|bdbeb}b~bfbgb) * hbibacbcccdcAhBhChDhEhFhGhHhIhJhKhLhMhNhOhPhQhRhShyoroc LeMedeeefegeUl2m3m/mxnTm%n`nVl{nTdWlXlYlPnul%myn0d|n}n-nZlQnRn6nThUhVhWhecfcgchcicjcJmKmNeOePeQeReSeTeUeVeWeXeYeZe0e1e2ebncndnenXhYhZh0h:m;mEfFfGfbgcgdgegfggghgigjgkglgmgF G H 'f(f)fHfIfJfZg0gI J K $d%d'd(d)d*d1h2h3h4h0l1l2l3l4l5l5h6h7h8h9h!h#h$hL M N k l m jbkblb%h'h6l7l(h)h*h+h,h-h.h/h:h;h=h?h8l9lcdddedmbnbobFdGdHdkclcmcncocpcpbqbrbqcrcscsbtbub+ , - vbwbxbtcucvcwcxcyc@h[h]h^h_h`h{h|h}h~haibicidieifigihiiijikiliminioipiqirisitiuiviwixiyiziAiBizosod 3e4eheiejeke!l4m5m=mznUm'n~n#laoUd$l%l'lSnvl'mAn1dboco.n(lTnUn7nCiDiEiFizcAcBcCcDcEcLmMm5e6e7e8e9e!e#e$e%e'e(e)e*e+e,e-efngnhninGiHiIiJi?m@mKfLfMfngogpgqgrgsgtgugvgwgxgygO P Q *f+f,fNfOfPf1g2gR S T +d,d-d.d/d:dKiLiMiNi)l*l+l,l-l.lOiPiQiRiSiTiUiViU V W n o p ybzbAbWiXi/l:lYiZi0i1i2i3i4i5i6i7i8i9i;l=lfdgdhdBbCbDbIdJdKdFcGcHcIcJcKcEbFbGbLcMcNcHbIbJb. / : KbLbMbOcPcQcRcScTc!i#i$i%i'i(i)i*i+i,i-i.i/i:i;i=i?i@i[i]i^i_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkjAotoe .e/elemeneoe?l6m7m[mBnVm(ndo@leoVd[l]l^lVnwl(mCn2dfogo/n_lWnXn8nljmjnjojUcVcWcXcYcZcNmOm:e;e=e?e@e[e]e^e_e`e{e|e}e~eafbfjnknlnmnpjqjrjsj]m^mQfRfSfzgAgBgCgDgEgFgGgHgIgJgKgX Y Z -f.f/fTfUfVf3g4g0 1 2 ;d=d?d@d[d]dtjujvjwj`l{l|l}l~lamxjyjzjAjBjCjDjEj3 4 5 q r s NbObPbFjGjbmcmHjIjJjKjLjMjNjOjPjQjRjSjdmemidjdkdQbRbSbLdMdNd0c1c2c3c4c5cTbUbVb6c7c8cWbXbYb; = ? Zb0b1b9c!c#c$c%c'cTjUjVjWjXjYjZj0j1j2j3j4j5j6j7j8j9j!j#j$j%j'j(j)j*j+j,j-j.j/j:j;j=j?j@j[j]j^jBouof cfdfpeqeresefm8m9m_mDnWm)nhogmioWdhmimjmYnxl)mEn3djoko:nkmZn0n9n_j`j{j|j(c)c*c+c,c-cPmQmefffgfhfifjfkflfmfnfofpfqfrfsftfnnonpnqn}j~jakbk`m{mWfXfYfLgMgNgOgPgQgRgSgTgUgVgWg6 7 8 :f;f=fZf0f1f5g6g9 ! # ^d_d`d{d|d}dckdkekfklmmmnmompmqmgkhkikjkkklkmknk$ % ' t u v 2b3b4bokpkrmsmqkrksktkukvkwkxkykzkAkBktmumldmdnd5b6b7bOdPdQd.c/c:c;c=c?c8b9b!b@c[c]c#b$b%b@ [ ] 'b(b)b^c_c`c{c|c}cCkDkEkFkGkHkIkJkKkLkMkNkOkPkQkRkSkTkUkVkWkXkYkZk0k1k2k3k4k5k6k7k8k9k!k#k$k%kCovo

521 **dict_for_pydantic, 

522 "__weakref__": None, 

523 "__sqlmodel_relationships__": relationships, 

524 "__annotations__": pydantic_annotations, 

525 } 

526 # Duplicate logic from Pydantic to filter config kwargs because if they are 

527 # passed directly including the registry Pydantic will pass them over to the 

528 # superclass causing an error 

529 allowed_config_kwargs: Set[str] = { 2g 2fwfxfwm*m+msnHn!m*nloxmmo4dymzmAm1nvmrnIn5dnooopoBm2n3n!n,k-kudvdXm3f4f5f6f7f8f9f!fFnGn.k/k7g'k(k)k*k*b8g9g+k+bufvf:k;kCmDmEm=k?k@k[k,b^ od]kFm^k_k`k{k|k}kGmBdpdXdwdxdqdydrdsdtdzdAd~kalblcldlelflglhliljlklllmlnlolplqlrlDowoa te~daeylYmZm,mtnRm#n;nzl=nRdAlBlClJnsl#munYd?n@n+nDlKnLn4n!g#g-b.bHmuevewexeyezeAeBe|m}m$g%gyf?f@f[f]fw #fzfXgx 6d7d'g(gElFlGl)g*g+g,gy h _ -gHl.g/g:g;g=g?gIl~c` Cd/b:b{ ;b| ( } =b?b@g[g]g^g_g`g{g|g}g~gahbhchdhehfhghhhihxoqob CebeceJl0m1m-mvnSm$n[nKl]nSdLlMlNlMntl$mwnZd^n_n,nOlNnOn5njhkh@b[b]b^bImDeEeFeGeHeIeJeKe~manlhmh.mAfBf^f_f`f{f|f}f~fagz A $f%fCfDfYgB C 8d9d!d#dnhohPlQlRlphqhrhshD E i j ~ abthSluhvhwhxhyhzhTladbdbbcbDdEd_b`b{b|bdbeb}b~bfbgb) * hbibacbcccdcAhBhChDhEhFhGhHhIhJhKhLhMhNhOhPhQhRhShyoroc LeMedeeefegeUl2m3m/mxnTm%n`nVl{nTdWlXlYlPnul%myn0d|n}n-nZlQnRn6nThUhVhWhecfcgchcicjcJmKmNeOePeQeReSeTeUeVeWeXeYeZe0e1e2ebncndnenXhYhZh0h:m;mEfFfGfbgcgdgegfggghgigjgkglgmgF G H 'f(f)fHfIfJfZg0gI J K $d%d'd(d)d*d1h2h3h4h0l1l2l3l4l5l5h6h7h8h9h!h#h$hL M N k l m jbkblb%h'h6l7l(h)h*h+h,h-h.h/h:h;h=h?h8l9lcdddedmbnbobFdGdHdkclcmcncocpcpbqbrbqcrcscsbtbub+ , - vbwbxbtcucvcwcxcyc@h[h]h^h_h`h{h|h}h~haibicidieifigihiiijikiliminioipiqirisitiuiviwixiyiziAiBizosod 3e4eheiejeke!l4m5m=mznUm'n~n#laoUd$l%l'lSnvl'mAn1dboco.n(lTnUn7nCiDiEiFizcAcBcCcDcEcLmMm5e6e7e8e9e!e#e$e%e'e(e)e*e+e,e-efngnhninGiHiIiJi?m@mKfLfMfngogpgqgrgsgtgugvgwgxgygO P Q *f+f,fNfOfPf1g2gR S T +d,d-d.d/d:dKiLiMiNi)l*l+l,l-l.lOiPiQiRiSiTiUiViU V W n o p ybzbAbWiXi/l:lYiZi0i1i2i3i4i5i6i7i8i9i;l=lfdgdhdBbCbDbIdJdKdFcGcHcIcJcKcEbFbGbLcMcNcHbIbJb. / : KbLbMbOcPcQcRcScTc!i#i$i%i'i(i)i*i+i,i-i.i/i:i;i=i?i@i[i]i^i_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkjAotoe .e/elemeneoe?l6m7m[mBnVm(ndo@leoVd[l]l^lVnwl(mCn2dfogo/n_lWnXn8nljmjnjojUcVcWcXcYcZcNmOm:e;e=e?e@e[e]e^e_e`e{e|e}e~eafbfjnknlnmnpjqjrjsj]m^mQfRfSfzgAgBgCgDgEgFgGgHgIgJgKgX Y Z -f.f/fTfUfVf3g4g0 1 2 ;d=d?d@d[d]dtjujvjwj`l{l|l}l~lamxjyjzjAjBjCjDjEj3 4 5 q r s NbObPbFjGjbmcmHjIjJjKjLjMjNjOjPjQjRjSjdmemidjdkdQbRbSbLdMdNd0c1c2c3c4c5cTbUbVb6c7c8cWbXbYb; = ? Zb0b1b9c!c#c$c%c'cTjUjVjWjXjYjZj0j1j2j3j4j5j6j7j8j9j!j#j$j%j'j(j)j*j+j,j-j.j/j:j;j=j?j@j[j]j^jBouof cfdfpeqeresefm8m9m_mDnWm)nhogmioWdhmimjmYnxl)mEn3djoko:nkmZn0n9n_j`j{j|j(c)c*c+c,c-cPmQmefffgfhfifjfkflfmfnfofpfqfrfsftfnnonpnqn}j~jakbk`m{mWfXfYfLgMgNgOgPgQgRgSgTgUgVgWg6 7 8 :f;f=fZf0f1f5g6g9 ! # ^d_d`d{d|d}dckdkekfklmmmnmompmqmgkhkikjkkklkmknk$ % ' t u v 2b3b4bokpkrmsmqkrksktkukvkwkxkykzkAkBktmumldmdnd5b6b7bOdPdQd.c/c:c;c=c?c8b9b!b@c[c]c#b$b%b@ [ ] 'b(b)b^c_c`c{c|c}cCkDkEkFkGkHkIkJkKkLkMkNkOkPkQkRkSkTkUkVkWkXkYkZk0k1k2k3k4k5k6k7k8k9k!k#k$k%kCovo

530 key 

531 for key in dir(BaseConfig) 

532 if not ( 

533 key.startswith("__") and key.endswith("__") 

534 ) # skip dunder methods and attributes 

535 } 

536 config_kwargs = { 2g 2fwfxfwm*m+msnHn!m*nloxmmo4dymzmAm1nvmrnIn5dnooopoBm2n3n!n,k-kudvdXm3f4f5f6f7f8f9f!fFnGn.k/k7g'k(k)k*k*b8g9g+k+bufvf:k;kCmDmEm=k?k@k[k,b^ od]kFm^k_k`k{k|k}kGmBdpdXdwdxdqdydrdsdtdzdAd~kalblcldlelflglhliljlklllmlnlolplqlrlDowoa te~daeylYmZm,mtnRm#n;nzl=nRdAlBlClJnsl#munYd?n@n+nDlKnLn4n!g#g-b.bHmuevewexeyezeAeBe|m}m$g%gyf?f@f[f]fw #fzfXgx 6d7d'g(gElFlGl)g*g+g,gy h _ -gHl.g/g:g;g=g?gIl~c` Cd/b:b{ ;b| ( } =b?b@g[g]g^g_g`g{g|g}g~gahbhchdhehfhghhhihxoqob CebeceJl0m1m-mvnSm$n[nKl]nSdLlMlNlMntl$mwnZd^n_n,nOlNnOn5njhkh@b[b]b^bImDeEeFeGeHeIeJeKe~manlhmh.mAfBf^f_f`f{f|f}f~fagz A $f%fCfDfYgB C 8d9d!d#dnhohPlQlRlphqhrhshD E i j ~ abthSluhvhwhxhyhzhTladbdbbcbDdEd_b`b{b|bdbeb}b~bfbgb) * hbibacbcccdcAhBhChDhEhFhGhHhIhJhKhLhMhNhOhPhQhRhShyoroc LeMedeeefegeUl2m3m/mxnTm%n`nVl{nTdWlXlYlPnul%myn0d|n}n-nZlQnRn6nThUhVhWhecfcgchcicjcJmKmNeOePeQeReSeTeUeVeWeXeYeZe0e1e2ebncndnenXhYhZh0h:m;mEfFfGfbgcgdgegfggghgigjgkglgmgF G H 'f(f)fHfIfJfZg0gI J K $d%d'd(d)d*d1h2h3h4h0l1l2l3l4l5l5h6h7h8h9h!h#h$hL M N k l m jbkblb%h'h6l7l(h)h*h+h,h-h.h/h:h;h=h?h8l9lcdddedmbnbobFdGdHdkclcmcncocpcpbqbrbqcrcscsbtbub+ , - vbwbxbtcucvcwcxcyc@h[h]h^h_h`h{h|h}h~haibicidieifigihiiijikiliminioipiqirisitiuiviwixiyiziAiBizosod 3e4eheiejeke!l4m5m=mznUm'n~n#laoUd$l%l'lSnvl'mAn1dboco.n(lTnUn7nCiDiEiFizcAcBcCcDcEcLmMm5e6e7e8e9e!e#e$e%e'e(e)e*e+e,e-efngnhninGiHiIiJi?m@mKfLfMfngogpgqgrgsgtgugvgwgxgygO P Q *f+f,fNfOfPf1g2gR S T +d,d-d.d/d:dKiLiMiNi)l*l+l,l-l.lOiPiQiRiSiTiUiViU V W n o p ybzbAbWiXi/l:lYiZi0i1i2i3i4i5i6i7i8i9i;l=lfdgdhdBbCbDbIdJdKdFcGcHcIcJcKcEbFbGbLcMcNcHbIbJb. / : KbLbMbOcPcQcRcScTc!i#i$i%i'i(i)i*i+i,i-i.i/i:i;i=i?i@i[i]i^i_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkjAotoe .e/elemeneoe?l6m7m[mBnVm(ndo@leoVd[l]l^lVnwl(mCn2dfogo/n_lWnXn8nljmjnjojUcVcWcXcYcZcNmOm:e;e=e?e@e[e]e^e_e`e{e|e}e~eafbfjnknlnmnpjqjrjsj]m^mQfRfSfzgAgBgCgDgEgFgGgHgIgJgKgX Y Z -f.f/fTfUfVf3g4g0 1 2 ;d=d?d@d[d]dtjujvjwj`l{l|l}l~lamxjyjzjAjBjCjDjEj3 4 5 q r s NbObPbFjGjbmcmHjIjJjKjLjMjNjOjPjQjRjSjdmemidjdkdQbRbSbLdMdNd0c1c2c3c4c5cTbUbVb6c7c8cWbXbYb; = ? Zb0b1b9c!c#c$c%c'cTjUjVjWjXjYjZj0j1j2j3j4j5j6j7j8j9j!j#j$j%j'j(j)j*j+j,j-j.j/j:j;j=j?j@j[j]j^jBouof cfdfpeqeresefm8m9m_mDnWm)nhogmioWdhmimjmYnxl)mEn3djoko:nkmZn0n9n_j`j{j|j(c)c*c+c,c-cPmQmefffgfhfifjfkflfmfnfofpfqfrfsftfnnonpnqn}j~jakbk`m{mWfXfYfLgMgNgOgPgQgRgSgTgUgVgWg6 7 8 :f;f=fZf0f1f5g6g9 ! # ^d_d`d{d|d}dckdkekfklmmmnmompmqmgkhkikjkkklkmknk$ % ' t u v 2b3b4bokpkrmsmqkrksktkukvkwkxkykzkAkBktmumldmdnd5b6b7bOdPdQd.c/c:c;c=c?c8b9b!b@c[c]c#b$b%b@ [ ] 'b(b)b^c_c`c{c|c}cCkDkEkFkGkHkIkJkKkLkMkNkOkPkQkRkSkTkUkVkWkXkYkZk0k1k2k3k4k5k6k7k8k9k!k#k$k%kCovo

537 key: kwargs[key] for key in kwargs.keys() & allowed_config_kwargs 

538 } 

539 new_cls = super().__new__(cls, name, bases, dict_used, **config_kwargs) 2g 2fwfxfwm*m+msnHn!m*nloxmmo4dymzmAm1nvmrnIn5dnooopoBm2n3n!n,k-kudvdXm3f4f5f6f7f8f9f!fFnGn.k/k7g'k(k)k*k*b8g9g+k+bufvf:k;kCmDmEm=k?k@k[k,b^ od]kFm^k_k`k{k|k}kGmBdpdXdwdxdqdydrdsdtdzdAd~kalblcldlelflglhliljlklllmlnlolplqlrlDowoa te~daeylYmZm,mtnRm#n;nzl=nRdAlBlClJnsl#munYd?n@n+nDlKnLn4n!g#g-b.bHmuevewexeyezeAeBe|m}m$g%gyf?f@f[f]fw #fzfXgx 6d7d'g(gElFlGl)g*g+g,gy h _ -gHl.g/g:g;g=g?gIl~c` Cd/b:b{ ;b| ( } =b?b@g[g]g^g_g`g{g|g}g~gahbhchdhehfhghhhihxoqob CebeceJl0m1m-mvnSm$n[nKl]nSdLlMlNlMntl$mwnZd^n_n,nOlNnOn5njhkh@b[b]b^bImDeEeFeGeHeIeJeKe~manlhmh.mAfBf^f_f`f{f|f}f~fagz A $f%fCfDfYgB C 8d9d!d#dnhohPlQlRlphqhrhshD E i j ~ abthSluhvhwhxhyhzhTladbdbbcbDdEd_b`b{b|bdbeb}b~bfbgb) * hbibacbcccdcAhBhChDhEhFhGhHhIhJhKhLhMhNhOhPhQhRhShyoroc LeMedeeefegeUl2m3m/mxnTm%n`nVl{nTdWlXlYlPnul%myn0d|n}n-nZlQnRn6nThUhVhWhecfcgchcicjcJmKmNeOePeQeReSeTeUeVeWeXeYeZe0e1e2ebncndnenXhYhZh0h:m;mEfFfGfbgcgdgegfggghgigjgkglgmgF G H 'f(f)fHfIfJfZg0gI J K $d%d'd(d)d*d1h2h3h4h0l1l2l3l4l5l5h6h7h8h9h!h#h$hL M N k l m jbkblb%h'h6l7l(h)h*h+h,h-h.h/h:h;h=h?h8l9lcdddedmbnbobFdGdHdkclcmcncocpcpbqbrbqcrcscsbtbub+ , - vbwbxbtcucvcwcxcyc@h[h]h^h_h`h{h|h}h~haibicidieifigihiiijikiliminioipiqirisitiuiviwixiyiziAiBizosod 3e4eheiejeke!l4m5m=mznUm'n~n#laoUd$l%l'lSnvl'mAn1dboco.n(lTnUn7nCiDiEiFizcAcBcCcDcEcLmMm5e6e7e8e9e!e#e$e%e'e(e)e*e+e,e-efngnhninGiHiIiJi?m@mKfLfMfngogpgqgrgsgtgugvgwgxgygO P Q *f+f,fNfOfPf1g2gR S T +d,d-d.d/d:dKiLiMiNi)l*l+l,l-l.lOiPiQiRiSiTiUiViU V W n o p ybzbAbWiXi/l:lYiZi0i1i2i3i4i5i6i7i8i9i;l=lfdgdhdBbCbDbIdJdKdFcGcHcIcJcKcEbFbGbLcMcNcHbIbJb. / : KbLbMbOcPcQcRcScTc!i#i$i%i'i(i)i*i+i,i-i.i/i:i;i=i?i@i[i]i^i_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkjAotoe .e/elemeneoe?l6m7m[mBnVm(ndo@leoVd[l]l^lVnwl(mCn2dfogo/n_lWnXn8nljmjnjojUcVcWcXcYcZcNmOm:e;e=e?e@e[e]e^e_e`e{e|e}e~eafbfjnknlnmnpjqjrjsj]m^mQfRfSfzgAgBgCgDgEgFgGgHgIgJgKgX Y Z -f.f/fTfUfVf3g4g0 1 2 ;d=d?d@d[d]dtjujvjwj`l{l|l}l~lamxjyjzjAjBjCjDjEj3 4 5 q r s NbObPbFjGjbmcmHjIjJjKjLjMjNjOjPjQjRjSjdmemidjdkdQbRbSbLdMdNd0c1c2c3c4c5cTbUbVb6c7c8cWbXbYb; = ? Zb0b1b9c!c#c$c%c'cTjUjVjWjXjYjZj0j1j2j3j4j5j6j7j8j9j!j#j$j%j'j(j)j*j+j,j-j.j/j:j;j=j?j@j[j]j^jBouof cfdfpeqeresefm8m9m_mDnWm)nhogmioWdhmimjmYnxl)mEn3djoko:nkmZn0n9n_j`j{j|j(c)c*c+c,c-cPmQmefffgfhfifjfkflfmfnfofpfqfrfsftfnnonpnqn}j~jakbk`m{mWfXfYfLgMgNgOgPgQgRgSgTgUgVgWg6 7 8 :f;f=fZf0f1f5g6g9 ! # ^d_d`d{d|d}dckdkekfklmmmnmompmqmgkhkikjkkklkmknk$ % ' t u v 2b3b4bokpkrmsmqkrksktkukvkwkxkykzkAkBktmumldmdnd5b6b7bOdPdQd.c/c:c;c=c?c8b9b!b@c[c]c#b$b%b@ [ ] 'b(b)b^c_c`c{c|c}cCkDkEkFkGkHkIkJkKkLkMkNkOkPkQkRkSkTkUkVkWkXkYkZk0k1k2k3k4k5k6k7k8k9k!k#k$k%kCovo

540 new_cls.__annotations__ = { 2a te~daeylYmZm,mtnRm#n;nzl=nRdAlBlClJnsl#munYd?n@n+nDlKnLn4n!g#g-b.bHmuevewexeyezeAeBe|m}m$g%gyf?f@f[f]fw #fzfXgx 6d7d'g(gElFlGl)g*g+g,gy h _ -gHl.g/g:g;g=g?gIl~c` Cd/b:b{ ;b| ( } =b?b@g[g]g^g_g`g{g|g}g~gahbhchdhehfhghhhihxoqob CebeceJl0m1m-mvnSm$n[nKl]nSdLlMlNlMntl$mwnZd^n_n,nOlNnOn5njhkh@b[b]b^bImDeEeFeGeHeIeJeKe~manlhmh.mAfBf^f_f`f{f|f}f~fagz A $f%fCfDfYgB C 8d9d!d#dnhohPlQlRlphqhrhshD E i j ~ abthSluhvhwhxhyhzhTladbdbbcbDdEd_b`b{b|bdbeb}b~bfbgb) * hbibacbcccdcAhBhChDhEhFhGhHhIhJhKhLhMhNhOhPhQhRhShyoroc LeMedeeefegeUl2m3m/mxnTm%n`nVl{nTdWlXlYlPnul%myn0d|n}n-nZlQnRn6nThUhVhWhecfcgchcicjcJmKmNeOePeQeReSeTeUeVeWeXeYeZe0e1e2ebncndnenXhYhZh0h:m;mEfFfGfbgcgdgegfggghgigjgkglgmgF G H 'f(f)fHfIfJfZg0gI J K $d%d'd(d)d*d1h2h3h4h0l1l2l3l4l5l5h6h7h8h9h!h#h$hL M N k l m jbkblb%h'h6l7l(h)h*h+h,h-h.h/h:h;h=h?h8l9lcdddedmbnbobFdGdHdkclcmcncocpcpbqbrbqcrcscsbtbub+ , - vbwbxbtcucvcwcxcyc@h[h]h^h_h`h{h|h}h~haibicidieifigihiiijikiliminioipiqirisitiuiviwixiyiziAiBizosod 3e4eheiejeke!l4m5m=mznUm'n~n#laoUd$l%l'lSnvl'mAn1dboco.n(lTnUn7nCiDiEiFizcAcBcCcDcEcLmMm5e6e7e8e9e!e#e$e%e'e(e)e*e+e,e-efngnhninGiHiIiJi?m@mKfLfMfngogpgqgrgsgtgugvgwgxgygO P Q *f+f,fNfOfPf1g2gR S T +d,d-d.d/d:dKiLiMiNi)l*l+l,l-l.lOiPiQiRiSiTiUiViU V W n o p ybzbAbWiXi/l:lYiZi0i1i2i3i4i5i6i7i8i9i;l=lfdgdhdBbCbDbIdJdKdFcGcHcIcJcKcEbFbGbLcMcNcHbIbJb. / : KbLbMbOcPcQcRcScTc!i#i$i%i'i(i)i*i+i,i-i.i/i:i;i=i?i@i[i]i^i_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkjAotoe .e/elemeneoe?l6m7m[mBnVm(ndo@leoVd[l]l^lVnwl(mCn2dfogo/n_lWnXn8nljmjnjojUcVcWcXcYcZcNmOm:e;e=e?e@e[e]e^e_e`e{e|e}e~eafbfjnknlnmnpjqjrjsj]m^mQfRfSfzgAgBgCgDgEgFgGgHgIgJgKgX Y Z -f.f/fTfUfVf3g4g0 1 2 ;d=d?d@d[d]dtjujvjwj`l{l|l}l~lamxjyjzjAjBjCjDjEj3 4 5 q r s NbObPbFjGjbmcmHjIjJjKjLjMjNjOjPjQjRjSjdmemidjdkdQbRbSbLdMdNd0c1c2c3c4c5cTbUbVb6c7c8cWbXbYb; = ? Zb0b1b9c!c#c$c%c'cTjUjVjWjXjYjZj0j1j2j3j4j5j6j7j8j9j!j#j$j%j'j(j)j*j+j,j-j.j/j:j;j=j?j@j[j]j^jBouof cfdfpeqeresefm8m9m_mDnWm)nhogmioWdhmimjmYnxl)mEn3djoko:nkmZn0n9n_j`j{j|j(c)c*c+c,c-cPmQmefffgfhfifjfkflfmfnfofpfqfrfsftfnnonpnqn}j~jakbk`m{mWfXfYfLgMgNgOgPgQgRgSgTgUgVgWg6 7 8 :f;f=fZf0f1f5g6g9 ! # ^d_d`d{d|d}dckdkekfklmmmnmompmqmgkhkikjkkklkmknk$ % ' t u v 2b3b4bokpkrmsmqkrksktkukvkwkxkykzkAkBktmumldmdnd5b6b7bOdPdQd.c/c:c;c=c?c8b9b!b@c[c]c#b$b%b@ [ ] 'b(b)b^c_c`c{c|c}cCkDkEkFkGkHkIkJkKkLkMkNkOkPkQkRkSkTkUkVkWkXkYkZk0k1k2k3k4k5k6k7k8k9k!k#k$k%kCovo

541 **relationship_annotations, 

542 **pydantic_annotations, 

543 **new_cls.__annotations__, 

544 } 

545 

546 def get_config(name: str) -> Any: 2g 2fwfxfwm*m+msnHn!m*nloxmmo4dymzmAm1nvmrnIn5dnooopoBm2n3n!n,k-kudvdXm3f4f5f6f7f8f9f!fFnGn.k/k7g'k(k)k*k*b8g9g+k+bufvf:k;kCmDmEm=k?k@k[k,b^ od]kFm^k_k`k{k|k}kGmBdpdXdwdxdqdydrdsdtdzdAd~kalblcldlelflglhliljlklllmlnlolplqlrlDowoa te~daeylYmZm,mtnRm#n;nzl=nRdAlBlClJnsl#munYd?n@n+nDlKnLn4n!g#g-b.bHmuevewexeyezeAeBe|m}m$g%gyf?f@f[f]fw #fzfXgx 6d7d'g(gElFlGl)g*g+g,gy h _ -gHl.g/g:g;g=g?gIl~c` Cd/b:b{ ;b| ( } =b?b@g[g]g^g_g`g{g|g}g~gahbhchdhehfhghhhihxoqob CebeceJl0m1m-mvnSm$n[nKl]nSdLlMlNlMntl$mwnZd^n_n,nOlNnOn5njhkh@b[b]b^bImDeEeFeGeHeIeJeKe~manlhmh.mAfBf^f_f`f{f|f}f~fagz A $f%fCfDfYgB C 8d9d!d#dnhohPlQlRlphqhrhshD E i j ~ abthSluhvhwhxhyhzhTladbdbbcbDdEd_b`b{b|bdbeb}b~bfbgb) * hbibacbcccdcAhBhChDhEhFhGhHhIhJhKhLhMhNhOhPhQhRhShyoroc LeMedeeefegeUl2m3m/mxnTm%n`nVl{nTdWlXlYlPnul%myn0d|n}n-nZlQnRn6nThUhVhWhecfcgchcicjcJmKmNeOePeQeReSeTeUeVeWeXeYeZe0e1e2ebncndnenXhYhZh0h:m;mEfFfGfbgcgdgegfggghgigjgkglgmgF G H 'f(f)fHfIfJfZg0gI J K $d%d'd(d)d*d1h2h3h4h0l1l2l3l4l5l5h6h7h8h9h!h#h$hL M N k l m jbkblb%h'h6l7l(h)h*h+h,h-h.h/h:h;h=h?h8l9lcdddedmbnbobFdGdHdkclcmcncocpcpbqbrbqcrcscsbtbub+ , - vbwbxbtcucvcwcxcyc@h[h]h^h_h`h{h|h}h~haibicidieifigihiiijikiliminioipiqirisitiuiviwixiyiziAiBizosod 3e4eheiejeke!l4m5m=mznUm'n~n#laoUd$l%l'lSnvl'mAn1dboco.n(lTnUn7nCiDiEiFizcAcBcCcDcEcLmMm5e6e7e8e9e!e#e$e%e'e(e)e*e+e,e-efngnhninGiHiIiJi?m@mKfLfMfngogpgqgrgsgtgugvgwgxgygO P Q *f+f,fNfOfPf1g2gR S T +d,d-d.d/d:dKiLiMiNi)l*l+l,l-l.lOiPiQiRiSiTiUiViU V W n o p ybzbAbWiXi/l:lYiZi0i1i2i3i4i5i6i7i8i9i;l=lfdgdhdBbCbDbIdJdKdFcGcHcIcJcKcEbFbGbLcMcNcHbIbJb. / : KbLbMbOcPcQcRcScTc!i#i$i%i'i(i)i*i+i,i-i.i/i:i;i=i?i@i[i]i^i_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkjAotoe .e/elemeneoe?l6m7m[mBnVm(ndo@leoVd[l]l^lVnwl(mCn2dfogo/n_lWnXn8nljmjnjojUcVcWcXcYcZcNmOm:e;e=e?e@e[e]e^e_e`e{e|e}e~eafbfjnknlnmnpjqjrjsj]m^mQfRfSfzgAgBgCgDgEgFgGgHgIgJgKgX Y Z -f.f/fTfUfVf3g4g0 1 2 ;d=d?d@d[d]dtjujvjwj`l{l|l}l~lamxjyjzjAjBjCjDjEj3 4 5 q r s NbObPbFjGjbmcmHjIjJjKjLjMjNjOjPjQjRjSjdmemidjdkdQbRbSbLdMdNd0c1c2c3c4c5cTbUbVb6c7c8cWbXbYb; = ? Zb0b1b9c!c#c$c%c'cTjUjVjWjXjYjZj0j1j2j3j4j5j6j7j8j9j!j#j$j%j'j(j)j*j+j,j-j.j/j:j;j=j?j@j[j]j^jBouof cfdfpeqeresefm8m9m_mDnWm)nhogmioWdhmimjmYnxl)mEn3djoko:nkmZn0n9n_j`j{j|j(c)c*c+c,c-cPmQmefffgfhfifjfkflfmfnfofpfqfrfsftfnnonpnqn}j~jakbk`m{mWfXfYfLgMgNgOgPgQgRgSgTgUgVgWg6 7 8 :f;f=fZf0f1f5g6g9 ! # ^d_d`d{d|d}dckdkekfklmmmnmompmqmgkhkikjkkklkmknk$ % ' t u v 2b3b4bokpkrmsmqkrksktkukvkwkxkykzkAkBktmumldmdnd5b6b7bOdPdQd.c/c:c;c=c?c8b9b!b@c[c]c#b$b%b@ [ ] 'b(b)b^c_c`c{c|c}cCkDkEkFkGkHkIkJkKkLkMkNkOkPkQkRkSkTkUkVkWkXkYkZk0k1k2k3k4k5k6k7k8k9k!k#k$k%kCovo

547 config_class_value = get_config_value( 2g 2fwfxfwm*m+msnHn!m*nloxmmo4dymzmAm1nvmrnIn5dnooopoBm2n3n!n,k-kudvdXm3f4f5f6f7f8f9f!fFnGn.k/k7g'k(k)k*k*b8g9g+k+bufvf:k;kCmDmEm=k?k@k[k,b^ od]kFm^k_k`k{k|k}kGmBdpdXdwdxdqdydrdsdtdzdAd~kalblcldlelflglhliljlklllmlnlolplqlrlDowoa te~daeylYmZm,mtnRm#n;nzl=nRdAlBlClJnsl#munYd?n@n+nDlKnLn4n!g#g-b.bHmuevewexeyezeAeBe|m}m$g%gyf?f@f[f]fw #fzfXgx 6d7d'g(gElFlGl)g*g+g,gy h _ -gHl.g/g:g;g=g?gIl~c` Cd/b:b{ ;b| ( } =b?b@g[g]g^g_g`g{g|g}g~gahbhchdhehfhghhhihxoqob CebeceJl0m1m-mvnSm$n[nKl]nSdLlMlNlMntl$mwnZd^n_n,nOlNnOn5njhkh@b[b]b^bImDeEeFeGeHeIeJeKe~manlhmh.mAfBf^f_f`f{f|f}f~fagz A $f%fCfDfYgB C 8d9d!d#dnhohPlQlRlphqhrhshD E i j ~ abthSluhvhwhxhyhzhTladbdbbcbDdEd_b`b{b|bdbeb}b~bfbgb) * hbibacbcccdcAhBhChDhEhFhGhHhIhJhKhLhMhNhOhPhQhRhShyoroc LeMedeeefegeUl2m3m/mxnTm%n`nVl{nTdWlXlYlPnul%myn0d|n}n-nZlQnRn6nThUhVhWhecfcgchcicjcJmKmNeOePeQeReSeTeUeVeWeXeYeZe0e1e2ebncndnenXhYhZh0h:m;mEfFfGfbgcgdgegfggghgigjgkglgmgF G H 'f(f)fHfIfJfZg0gI J K $d%d'd(d)d*d1h2h3h4h0l1l2l3l4l5l5h6h7h8h9h!h#h$hL M N k l m jbkblb%h'h6l7l(h)h*h+h,h-h.h/h:h;h=h?h8l9lcdddedmbnbobFdGdHdkclcmcncocpcpbqbrbqcrcscsbtbub+ , - vbwbxbtcucvcwcxcyc@h[h]h^h_h`h{h|h}h~haibicidieifigihiiijikiliminioipiqirisitiuiviwixiyiziAiBizosod 3e4eheiejeke!l4m5m=mznUm'n~n#laoUd$l%l'lSnvl'mAn1dboco.n(lTnUn7nCiDiEiFizcAcBcCcDcEcLmMm5e6e7e8e9e!e#e$e%e'e(e)e*e+e,e-efngnhninGiHiIiJi?m@mKfLfMfngogpgqgrgsgtgugvgwgxgygO P Q *f+f,fNfOfPf1g2gR S T +d,d-d.d/d:dKiLiMiNi)l*l+l,l-l.lOiPiQiRiSiTiUiViU V W n o p ybzbAbWiXi/l:lYiZi0i1i2i3i4i5i6i7i8i9i;l=lfdgdhdBbCbDbIdJdKdFcGcHcIcJcKcEbFbGbLcMcNcHbIbJb. / : KbLbMbOcPcQcRcScTc!i#i$i%i'i(i)i*i+i,i-i.i/i:i;i=i?i@i[i]i^i_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkjAotoe .e/elemeneoe?l6m7m[mBnVm(ndo@leoVd[l]l^lVnwl(mCn2dfogo/n_lWnXn8nljmjnjojUcVcWcXcYcZcNmOm:e;e=e?e@e[e]e^e_e`e{e|e}e~eafbfjnknlnmnpjqjrjsj]m^mQfRfSfzgAgBgCgDgEgFgGgHgIgJgKgX Y Z -f.f/fTfUfVf3g4g0 1 2 ;d=d?d@d[d]dtjujvjwj`l{l|l}l~lamxjyjzjAjBjCjDjEj3 4 5 q r s NbObPbFjGjbmcmHjIjJjKjLjMjNjOjPjQjRjSjdmemidjdkdQbRbSbLdMdNd0c1c2c3c4c5cTbUbVb6c7c8cWbXbYb; = ? Zb0b1b9c!c#c$c%c'cTjUjVjWjXjYjZj0j1j2j3j4j5j6j7j8j9j!j#j$j%j'j(j)j*j+j,j-j.j/j:j;j=j?j@j[j]j^jBouof cfdfpeqeresefm8m9m_mDnWm)nhogmioWdhmimjmYnxl)mEn3djoko:nkmZn0n9n_j`j{j|j(c)c*c+c,c-cPmQmefffgfhfifjfkflfmfnfofpfqfrfsftfnnonpnqn}j~jakbk`m{mWfXfYfLgMgNgOgPgQgRgSgTgUgVgWg6 7 8 :f;f=fZf0f1f5g6g9 ! # ^d_d`d{d|d}dckdkekfklmmmnmompmqmgkhkikjkkklkmknk$ % ' t u v 2b3b4bokpkrmsmqkrksktkukvkwkxkykzkAkBktmumldmdnd5b6b7bOdPdQd.c/c:c;c=c?c8b9b!b@c[c]c#b$b%b@ [ ] 'b(b)b^c_c`c{c|c}cCkDkEkFkGkHkIkJkKkLkMkNkOkPkQkRkSkTkUkVkWkXkYkZk0k1k2k3k4k5k6k7k8k9k!k#k$k%kCovo

548 model=new_cls, parameter=name, default=Undefined 

549 ) 

550 if config_class_value is not Undefined: 2g 2fwfxfwm*m+msnHn!m*nloxmmo4dymzmAm1nvmrnIn5dnooopoBm2n3n!n,k-kudvdXm3f4f5f6f7f8f9f!fFnGn.k/k7g'k(k)k*k*b8g9g+k+bufvf:k;kCmDmEm=k?k@k[k,b^ od]kFm^k_k`k{k|k}kGmBdpdXdwdxdqdydrdsdtdzdAd~kalblcldlelflglhliljlklllmlnlolplqlrlDowoa te~daeylYmZm,mtnRm#n;nzl=nRdAlBlClJnsl#munYd?n@n+nDlKnLn4n!g#g-b.bHmuevewexeyezeAeBe|m}m$g%gyf?f@f[f]fw #fzfXgx 6d7d'g(gElFlGl)g*g+g,gy h _ -gHl.g/g:g;g=g?gIl~c` Cd/b:b{ ;b| ( } =b?b@g[g]g^g_g`g{g|g}g~gahbhchdhehfhghhhihxoqob CebeceJl0m1m-mvnSm$n[nKl]nSdLlMlNlMntl$mwnZd^n_n,nOlNnOn5njhkh@b[b]b^bImDeEeFeGeHeIeJeKe~manlhmh.mAfBf^f_f`f{f|f}f~fagz A $f%fCfDfYgB C 8d9d!d#dnhohPlQlRlphqhrhshD E i j ~ abthSluhvhwhxhyhzhTladbdbbcbDdEd_b`b{b|bdbeb}b~bfbgb) * hbibacbcccdcAhBhChDhEhFhGhHhIhJhKhLhMhNhOhPhQhRhShyoroc LeMedeeefegeUl2m3m/mxnTm%n`nVl{nTdWlXlYlPnul%myn0d|n}n-nZlQnRn6nThUhVhWhecfcgchcicjcJmKmNeOePeQeReSeTeUeVeWeXeYeZe0e1e2ebncndnenXhYhZh0h:m;mEfFfGfbgcgdgegfggghgigjgkglgmgF G H 'f(f)fHfIfJfZg0gI J K $d%d'd(d)d*d1h2h3h4h0l1l2l3l4l5l5h6h7h8h9h!h#h$hL M N k l m jbkblb%h'h6l7l(h)h*h+h,h-h.h/h:h;h=h?h8l9lcdddedmbnbobFdGdHdkclcmcncocpcpbqbrbqcrcscsbtbub+ , - vbwbxbtcucvcwcxcyc@h[h]h^h_h`h{h|h}h~haibicidieifigihiiijikiliminioipiqirisitiuiviwixiyiziAiBizosod 3e4eheiejeke!l4m5m=mznUm'n~n#laoUd$l%l'lSnvl'mAn1dboco.n(lTnUn7nCiDiEiFizcAcBcCcDcEcLmMm5e6e7e8e9e!e#e$e%e'e(e)e*e+e,e-efngnhninGiHiIiJi?m@mKfLfMfngogpgqgrgsgtgugvgwgxgygO P Q *f+f,fNfOfPf1g2gR S T +d,d-d.d/d:dKiLiMiNi)l*l+l,l-l.lOiPiQiRiSiTiUiViU V W n o p ybzbAbWiXi/l:lYiZi0i1i2i3i4i5i6i7i8i9i;l=lfdgdhdBbCbDbIdJdKdFcGcHcIcJcKcEbFbGbLcMcNcHbIbJb. / : KbLbMbOcPcQcRcScTc!i#i$i%i'i(i)i*i+i,i-i.i/i:i;i=i?i@i[i]i^i_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkjAotoe .e/elemeneoe?l6m7m[mBnVm(ndo@leoVd[l]l^lVnwl(mCn2dfogo/n_lWnXn8nljmjnjojUcVcWcXcYcZcNmOm:e;e=e?e@e[e]e^e_e`e{e|e}e~eafbfjnknlnmnpjqjrjsj]m^mQfRfSfzgAgBgCgDgEgFgGgHgIgJgKgX Y Z -f.f/fTfUfVf3g4g0 1 2 ;d=d?d@d[d]dtjujvjwj`l{l|l}l~lamxjyjzjAjBjCjDjEj3 4 5 q r s NbObPbFjGjbmcmHjIjJjKjLjMjNjOjPjQjRjSjdmemidjdkdQbRbSbLdMdNd0c1c2c3c4c5cTbUbVb6c7c8cWbXbYb; = ? Zb0b1b9c!c#c$c%c'cTjUjVjWjXjYjZj0j1j2j3j4j5j6j7j8j9j!j#j$j%j'j(j)j*j+j,j-j.j/j:j;j=j?j@j[j]j^jBouof cfdfpeqeresefm8m9m_mDnWm)nhogmioWdhmimjmYnxl)mEn3djoko:nkmZn0n9n_j`j{j|j(c)c*c+c,c-cPmQmefffgfhfifjfkflfmfnfofpfqfrfsftfnnonpnqn}j~jakbk`m{mWfXfYfLgMgNgOgPgQgRgSgTgUgVgWg6 7 8 :f;f=fZf0f1f5g6g9 ! # ^d_d`d{d|d}dckdkekfklmmmnmompmqmgkhkikjkkklkmknk$ % ' t u v 2b3b4bokpkrmsmqkrksktkukvkwkxkykzkAkBktmumldmdnd5b6b7bOdPdQd.c/c:c;c=c?c8b9b!b@c[c]c#b$b%b@ [ ] 'b(b)b^c_c`c{c|c}cCkDkEkFkGkHkIkJkKkLkMkNkOkPkQkRkSkTkUkVkWkXkYkZk0k1k2k3k4k5k6k7k8k9k!k#k$k%kCovo

551 return config_class_value 28g#f$f%f'f(f)f*f+f,f-f.f/f:f;f=f

552 kwarg_value = kwargs.get(name, Undefined) 2g 2fwfxfwm*m+msnHn!m*nloxmmo4dymzmAm1nvmrnIn5dnooopoBm2n3n!n,k-kudvdXm3f4f5f6f7f8f9f!fFnGn.k/k7g'k(k)k*k*b8g9g+k+bufvf:k;kCmDmEm=k?k@k[k,b^ od]kFm^k_k`k{k|k}kGmBdpdXdwdxdqdydrdsdtdzdAd~kalblcldlelflglhliljlklllmlnlolplqlrlDowoa te~daeylYmZm,mtnRm#n;nzl=nRdAlBlClJnsl#munYd?n@n+nDlKnLn4n!g#g-b.bHmuevewexeyezeAeBe|m}m$g%gyf?f@f[f]fw #fzfXgx 6d7d'g(gElFlGl)g*g+g,gy h _ -gHl.g/g:g;g=g?gIl~c` Cd/b:b{ ;b| ( } =b?b@g[g]g^g_g`g{g|g}g~gahbhchdhehfhghhhihxoqob CebeceJl0m1m-mvnSm$n[nKl]nSdLlMlNlMntl$mwnZd^n_n,nOlNnOn5njhkh@b[b]b^bImDeEeFeGeHeIeJeKe~manlhmh.mAfBf^f_f`f{f|f}f~fagz A $f%fCfDfYgB C 8d9d!d#dnhohPlQlRlphqhrhshD E i j ~ abthSluhvhwhxhyhzhTladbdbbcbDdEd_b`b{b|bdbeb}b~bfbgb) * hbibacbcccdcAhBhChDhEhFhGhHhIhJhKhLhMhNhOhPhQhRhShyoroc LeMedeeefegeUl2m3m/mxnTm%n`nVl{nTdWlXlYlPnul%myn0d|n}n-nZlQnRn6nThUhVhWhecfcgchcicjcJmKmNeOePeQeReSeTeUeVeWeXeYeZe0e1e2ebncndnenXhYhZh0h:m;mEfFfGfbgcgdgegfggghgigjgkglgmgF G H 'f(f)fHfIfJfZg0gI J K $d%d'd(d)d*d1h2h3h4h0l1l2l3l4l5l5h6h7h8h9h!h#h$hL M N k l m jbkblb%h'h6l7l(h)h*h+h,h-h.h/h:h;h=h?h8l9lcdddedmbnbobFdGdHdkclcmcncocpcpbqbrbqcrcscsbtbub+ , - vbwbxbtcucvcwcxcyc@h[h]h^h_h`h{h|h}h~haibicidieifigihiiijikiliminioipiqirisitiuiviwixiyiziAiBizosod 3e4eheiejeke!l4m5m=mznUm'n~n#laoUd$l%l'lSnvl'mAn1dboco.n(lTnUn7nCiDiEiFizcAcBcCcDcEcLmMm5e6e7e8e9e!e#e$e%e'e(e)e*e+e,e-efngnhninGiHiIiJi?m@mKfLfMfngogpgqgrgsgtgugvgwgxgygO P Q *f+f,fNfOfPf1g2gR S T +d,d-d.d/d:dKiLiMiNi)l*l+l,l-l.lOiPiQiRiSiTiUiViU V W n o p ybzbAbWiXi/l:lYiZi0i1i2i3i4i5i6i7i8i9i;l=lfdgdhdBbCbDbIdJdKdFcGcHcIcJcKcEbFbGbLcMcNcHbIbJb. / : KbLbMbOcPcQcRcScTc!i#i$i%i'i(i)i*i+i,i-i.i/i:i;i=i?i@i[i]i^i_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkjAotoe .e/elemeneoe?l6m7m[mBnVm(ndo@leoVd[l]l^lVnwl(mCn2dfogo/n_lWnXn8nljmjnjojUcVcWcXcYcZcNmOm:e;e=e?e@e[e]e^e_e`e{e|e}e~eafbfjnknlnmnpjqjrjsj]m^mQfRfSfzgAgBgCgDgEgFgGgHgIgJgKgX Y Z -f.f/fTfUfVf3g4g0 1 2 ;d=d?d@d[d]dtjujvjwj`l{l|l}l~lamxjyjzjAjBjCjDjEj3 4 5 q r s NbObPbFjGjbmcmHjIjJjKjLjMjNjOjPjQjRjSjdmemidjdkdQbRbSbLdMdNd0c1c2c3c4c5cTbUbVb6c7c8cWbXbYb; = ? Zb0b1b9c!c#c$c%c'cTjUjVjWjXjYjZj0j1j2j3j4j5j6j7j8j9j!j#j$j%j'j(j)j*j+j,j-j.j/j:j;j=j?j@j[j]j^jBouof cfdfpeqeresefm8m9m_mDnWm)nhogmioWdhmimjmYnxl)mEn3djoko:nkmZn0n9n_j`j{j|j(c)c*c+c,c-cPmQmefffgfhfifjfkflfmfnfofpfqfrfsftfnnonpnqn}j~jakbk`m{mWfXfYfLgMgNgOgPgQgRgSgTgUgVgWg6 7 8 :f;f=fZf0f1f5g6g9 ! # ^d_d`d{d|d}dckdkekfklmmmnmompmqmgkhkikjkkklkmknk$ % ' t u v 2b3b4bokpkrmsmqkrksktkukvkwkxkykzkAkBktmumldmdnd5b6b7bOdPdQd.c/c:c;c=c?c8b9b!b@c[c]c#b$b%b@ [ ] 'b(b)b^c_c`c{c|c}cCkDkEkFkGkHkIkJkKkLkMkNkOkPkQkRkSkTkUkVkWkXkYkZk0k1k2k3k4k5k6k7k8k9k!k#k$k%kCovo

553 if kwarg_value is not Undefined: 2g 2fwfxfwm*m+msnHn!m*nloxmmo4dymzmAm1nvmrnIn5dnooopoBm2n3n!n,k-kudvdXm3f4f5f6f7f8f9f!fFnGn.k/k7g'k(k)k*k*b8g9g+k+bufvf:k;kCmDmEm=k?k@k[k,b^ od]kFm^k_k`k{k|k}kGmBdpdXdwdxdqdydrdsdtdzdAd~kalblcldlelflglhliljlklllmlnlolplqlrlDowoa te~daeylYmZm,mtnRm#n;nzl=nRdAlBlClJnsl#munYd?n@n+nDlKnLn4n!g#g-b.bHmuevewexeyezeAeBe|m}m$g%gyf?f@f[f]fw #fzfXgx 6d7d'g(gElFlGl)g*g+g,gy h _ -gHl.g/g:g;g=g?gIl~c` Cd/b:b{ ;b| ( } =b?b@g[g]g^g_g`g{g|g}g~gahbhchdhehfhghhhihxoqob CebeceJl0m1m-mvnSm$n[nKl]nSdLlMlNlMntl$mwnZd^n_n,nOlNnOn5njhkh@b[b]b^bImDeEeFeGeHeIeJeKe~manlhmh.mAfBf^f_f`f{f|f}f~fagz A $f%fCfDfYgB C 8d9d!d#dnhohPlQlRlphqhrhshD E i j ~ abthSluhvhwhxhyhzhTladbdbbcbDdEd_b`b{b|bdbeb}b~bfbgb) * hbibacbcccdcAhBhChDhEhFhGhHhIhJhKhLhMhNhOhPhQhRhShyoroc LeMedeeefegeUl2m3m/mxnTm%n`nVl{nTdWlXlYlPnul%myn0d|n}n-nZlQnRn6nThUhVhWhecfcgchcicjcJmKmNeOePeQeReSeTeUeVeWeXeYeZe0e1e2ebncndnenXhYhZh0h:m;mEfFfGfbgcgdgegfggghgigjgkglgmgF G H 'f(f)fHfIfJfZg0gI J K $d%d'd(d)d*d1h2h3h4h0l1l2l3l4l5l5h6h7h8h9h!h#h$hL M N k l m jbkblb%h'h6l7l(h)h*h+h,h-h.h/h:h;h=h?h8l9lcdddedmbnbobFdGdHdkclcmcncocpcpbqbrbqcrcscsbtbub+ , - vbwbxbtcucvcwcxcyc@h[h]h^h_h`h{h|h}h~haibicidieifigihiiijikiliminioipiqirisitiuiviwixiyiziAiBizosod 3e4eheiejeke!l4m5m=mznUm'n~n#laoUd$l%l'lSnvl'mAn1dboco.n(lTnUn7nCiDiEiFizcAcBcCcDcEcLmMm5e6e7e8e9e!e#e$e%e'e(e)e*e+e,e-efngnhninGiHiIiJi?m@mKfLfMfngogpgqgrgsgtgugvgwgxgygO P Q *f+f,fNfOfPf1g2gR S T +d,d-d.d/d:dKiLiMiNi)l*l+l,l-l.lOiPiQiRiSiTiUiViU V W n o p ybzbAbWiXi/l:lYiZi0i1i2i3i4i5i6i7i8i9i;l=lfdgdhdBbCbDbIdJdKdFcGcHcIcJcKcEbFbGbLcMcNcHbIbJb. / : KbLbMbOcPcQcRcScTc!i#i$i%i'i(i)i*i+i,i-i.i/i:i;i=i?i@i[i]i^i_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkjAotoe .e/elemeneoe?l6m7m[mBnVm(ndo@leoVd[l]l^lVnwl(mCn2dfogo/n_lWnXn8nljmjnjojUcVcWcXcYcZcNmOm:e;e=e?e@e[e]e^e_e`e{e|e}e~eafbfjnknlnmnpjqjrjsj]m^mQfRfSfzgAgBgCgDgEgFgGgHgIgJgKgX Y Z -f.f/fTfUfVf3g4g0 1 2 ;d=d?d@d[d]dtjujvjwj`l{l|l}l~lamxjyjzjAjBjCjDjEj3 4 5 q r s NbObPbFjGjbmcmHjIjJjKjLjMjNjOjPjQjRjSjdmemidjdkdQbRbSbLdMdNd0c1c2c3c4c5cTbUbVb6c7c8cWbXbYb; = ? Zb0b1b9c!c#c$c%c'cTjUjVjWjXjYjZj0j1j2j3j4j5j6j7j8j9j!j#j$j%j'j(j)j*j+j,j-j.j/j:j;j=j?j@j[j]j^jBouof cfdfpeqeresefm8m9m_mDnWm)nhogmioWdhmimjmYnxl)mEn3djoko:nkmZn0n9n_j`j{j|j(c)c*c+c,c-cPmQmefffgfhfifjfkflfmfnfofpfqfrfsftfnnonpnqn}j~jakbk`m{mWfXfYfLgMgNgOgPgQgRgSgTgUgVgWg6 7 8 :f;f=fZf0f1f5g6g9 ! # ^d_d`d{d|d}dckdkekfklmmmnmompmqmgkhkikjkkklkmknk$ % ' t u v 2b3b4bokpkrmsmqkrksktkukvkwkxkykzkAkBktmumldmdnd5b6b7bOdPdQd.c/c:c;c=c?c8b9b!b@c[c]c#b$b%b@ [ ] 'b(b)b^c_c`c{c|c}cCkDkEkFkGkHkIkJkKkLkMkNkOkPkQkRkSkTkUkVkWkXkYkZk0k1k2k3k4k5k6k7k8k9k!k#k$k%kCovo

554 return kwarg_value 2g 2fwfxfwm*m+msnHn!m*nxm4dymzmAm1nvmrnIn5dBm2n3n!n,k-kudvdXm3f4f5f6f7f8f9f!fFnGn.k/k7g'k(k)k*k*b8g9g+k+bufvf:k;kCmDmEm=k?k@k[k,b^ od]kFm^k_k`k{k|k}kGmBdpdXdwdxdqdydrdsdtdzdAd~kalblcldlelflglhliljlklllmlnlolplqlrla te~daeylYmZm,mtnRm#nzlRdAlBlClJnsl#munYdDlKnLn4n!g#g-b.bHmuevewexeyezeAeBe|m}m$g%gyf?f@f[f]fw #fzfXgx 6d7d'g(gElFlGl)g*g+g,gy h _ -gHl.g/g:g;g=g?gIl~c` Cd/b:b{ ;b| ( } =b?b@g[g]g^g_g`g{g|g}g~gahbhchdhehfhghhhihb CebeceJl0m1m-mvnSm$nKlSdLlMlNlMntl$mwnZdOlNnOn5njhkh@b[b]b^bImDeEeFeGeHeIeJeKe~manlhmh.mAfBf^f_f`f{f|f}f~fagz A $f%fCfDfYgB C 8d9d!d#dnhohPlQlRlphqhrhshD E i j ~ abthSluhvhwhxhyhzhTladbdbbcbDdEd_b`b{b|bdbeb}b~bfbgb) * hbibacbcccdcAhBhChDhEhFhGhHhIhJhKhLhMhNhOhPhQhRhShc LeMedeeefegeUl2m3m/mxnTm%nVlTdWlXlYlPnul%myn0dZlQnRn6nThUhVhWhecfcgchcicjcJmKmNeOePeQeReSeTeUeVeWeXeYeZe0e1e2ebncndnenXhYhZh0h:m;mEfFfGfbgcgdgegfggghgigjgkglgmgF G H 'f(f)fHfIfJfZg0gI J K $d%d'd(d)d*d1h2h3h4h0l1l2l3l4l5l5h6h7h8h9h!h#h$hL M N k l m jbkblb%h'h6l7l(h)h*h+h,h-h.h/h:h;h=h?h8l9lcdddedmbnbobFdGdHdkclcmcncocpcpbqbrbqcrcscsbtbub+ , - vbwbxbtcucvcwcxcyc@h[h]h^h_h`h{h|h}h~haibicidieifigihiiijikiliminioipiqirisitiuiviwixiyiziAiBid 3e4eheiejeke!l4m5m=mznUm'n#lUd$l%l'lSnvl'mAn1d(lTnUn7nCiDiEiFizcAcBcCcDcEcLmMm5e6e7e8e9e!e#e$e%e'e(e)e*e+e,e-efngnhninGiHiIiJi?m@mKfLfMfngogpgqgrgsgtgugvgwgxgygO P Q *f+f,fNfOfPf1g2gR S T +d,d-d.d/d:dKiLiMiNi)l*l+l,l-l.lOiPiQiRiSiTiUiViU V W n o p ybzbAbWiXi/l:lYiZi0i1i2i3i4i5i6i7i8i9i;l=lfdgdhdBbCbDbIdJdKdFcGcHcIcJcKcEbFbGbLcMcNcHbIbJb. / : KbLbMbOcPcQcRcScTc!i#i$i%i'i(i)i*i+i,i-i.i/i:i;i=i?i@i[i]i^i_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkje .e/elemeneoe?l6m7m[mBnVm(n@lVd[l]l^lVnwl(mCn2d_lWnXn8nljmjnjojUcVcWcXcYcZcNmOm:e;e=e?e@e[e]e^e_e`e{e|e}e~eafbfjnknlnmnpjqjrjsj]m^mQfRfSfzgAgBgCgDgEgFgGgHgIgJgKgX Y Z -f.f/fTfUfVf3g4g0 1 2 ;d=d?d@d[d]dtjujvjwj`l{l|l}l~lamxjyjzjAjBjCjDjEj3 4 5 q r s NbObPbFjGjbmcmHjIjJjKjLjMjNjOjPjQjRjSjdmemidjdkdQbRbSbLdMdNd0c1c2c3c4c5cTbUbVb6c7c8cWbXbYb; = ? Zb0b1b9c!c#c$c%c'cTjUjVjWjXjYjZj0j1j2j3j4j5j6j7j8j9j!j#j$j%j'j(j)j*j+j,j-j.j/j:j;j=j?j@j[j]j^jf cfdfpeqeresefm8m9m_mDnWm)ngmWdhmimjmYnxl)mEn3dkmZn0n9n_j`j{j|j(c)c*c+c,c-cPmQmefffgfhfifjfkflfmfnfofpfqfrfsftfnnonpnqn}j~jakbk`m{mWfXfYfLgMgNgOgPgQgRgSgTgUgVgWg6 7 8 :f;f=fZf0f1f5g6g9 ! # ^d_d`d{d|d}dckdkekfklmmmnmompmqmgkhkikjkkklkmknk$ % ' t u v 2b3b4bokpkrmsmqkrksktkukvkwkxkykzkAkBktmumldmdnd5b6b7bOdPdQd.c/c:c;c=c?c8b9b!b@c[c]c#b$b%b@ [ ] 'b(b)b^c_c`c{c|c}cCkDkEkFkGkHkIkJkKkLkMkNkOkPkQkRkSkTkUkVkWkXkYkZk0k1k2k3k4k5k6k7k8k9k!k#k$k%k

555 return Undefined 2g 2fwfxfwm*m+msnHn!m*nloxmmo4dymzmAmvmrnIn5dnooopoBm,k-kudvdXm3f4f5f6f7f8f9f!fFnGn.k/k7g'k(k)k*k*b8g9g+k+bufvf:k;kCmDmEm=k?k@k[k,b^ od]kFm^k_k`k{k|k}kGmBdpdXdwdxdqdydrdsdtdzdAd~kalblcldlelflglhliljlklllmlnlolplqlrlDowoa te~daeylYmZm,mtnRm#n;nzl=nRdAlBlClsl#munYd?n@n+nDl!g#g-b.bHmuevewexeyezeAeBe|m}m$g%gyf?f@f[f]fw #fzfXgx 6d7d'g(gElFlGl)g*g+g,gy h _ -gHl.g/g:g;g=g?gIl~c` Cd/b:b{ ;b| ( } =b?b@g[g]g^g_g`g{g|g}g~gahbhchdhehfhghhhihxoqob CebeceJl0m1m-mvnSm$n[nKl]nSdLlMlNltl$mwnZd^n_n,nOljhkh@b[b]b^bImDeEeFeGeHeIeJeKe~manlhmh.mAfBf^f_f`f{f|f}f~fagz A $f%fCfDfYgB C 8d9d!d#dnhohPlQlRlphqhrhshD E i j ~ abthSluhvhwhxhyhzhTladbdbbcbDdEd_b`b{b|bdbeb}b~bfbgb) * hbibacbcccdcAhBhChDhEhFhGhHhIhJhKhLhMhNhOhPhQhRhShyoroc LeMedeeefegeUl2m3m/mxnTm%n`nVl{nTdWlXlYlul%myn0d|n}n-nZlThUhVhWhecfcgchcicjcJmKmNeOePeQeReSeTeUeVeWeXeYeZe0e1e2ebncndnenXhYhZh0h:m;mEfFfGfbgcgdgegfggghgigjgkglgmgF G H 'f(f)fHfIfJfZg0gI J K $d%d'd(d)d*d1h2h3h4h0l1l2l3l4l5l5h6h7h8h9h!h#h$hL M N k l m jbkblb%h'h6l7l(h)h*h+h,h-h.h/h:h;h=h?h8l9lcdddedmbnbobFdGdHdkclcmcncocpcpbqbrbqcrcscsbtbub+ , - vbwbxbtcucvcwcxcyc@h[h]h^h_h`h{h|h}h~haibicidieifigihiiijikiliminioipiqirisitiuiviwixiyiziAiBizosod 3e4eheiejeke!l4m5m=mznUm'n~n#laoUd$l%l'lvl'mAn1dboco.n(lCiDiEiFizcAcBcCcDcEcLmMm5e6e7e8e9e!e#e$e%e'e(e)e*e+e,e-efngnhninGiHiIiJi?m@mKfLfMfngogpgqgrgsgtgugvgwgxgygO P Q *f+f,fNfOfPf1g2gR S T +d,d-d.d/d:dKiLiMiNi)l*l+l,l-l.lOiPiQiRiSiTiUiViU V W n o p ybzbAbWiXi/l:lYiZi0i1i2i3i4i5i6i7i8i9i;l=lfdgdhdBbCbDbIdJdKdFcGcHcIcJcKcEbFbGbLcMcNcHbIbJb. / : KbLbMbOcPcQcRcScTc!i#i$i%i'i(i)i*i+i,i-i.i/i:i;i=i?i@i[i]i^i_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkjAotoe .e/elemeneoe?l6m7m[mBnVm(ndo@leoVd[l]l^lwl(mCn2dfogo/n_lljmjnjojUcVcWcXcYcZcNmOm:e;e=e?e@e[e]e^e_e`e{e|e}e~eafbfjnknlnmnpjqjrjsj]m^mQfRfSfzgAgBgCgDgEgFgGgHgIgJgKgX Y Z -f.f/fTfUfVf3g4g0 1 2 ;d=d?d@d[d]dtjujvjwj`l{l|l}l~lamxjyjzjAjBjCjDjEj3 4 5 q r s NbObPbFjGjbmcmHjIjJjKjLjMjNjOjPjQjRjSjdmemidjdkdQbRbSbLdMdNd0c1c2c3c4c5cTbUbVb6c7c8cWbXbYb; = ? Zb0b1b9c!c#c$c%c'cTjUjVjWjXjYjZj0j1j2j3j4j5j6j7j8j9j!j#j$j%j'j(j)j*j+j,j-j.j/j:j;j=j?j@j[j]j^jBouof cfdfpeqeresefm8m9m_mDnWm)nhogmioWdhmimjmxl)mEn3djoko:nkm_j`j{j|j(c)c*c+c,c-cPmQmefffgfhfifjfkflfmfnfofpfqfrfsftfnnonpnqn}j~jakbk`m{mWfXfYfLgMgNgOgPgQgRgSgTgUgVgWg6 7 8 :f;f=fZf0f1f5g6g9 ! # ^d_d`d{d|d}dckdkekfklmmmnmompmqmgkhkikjkkklkmknk$ % ' t u v 2b3b4bokpkrmsmqkrksktkukvkwkxkykzkAkBktmumldmdnd5b6b7bOdPdQd.c/c:c;c=c?c8b9b!b@c[c]c#b$b%b@ [ ] 'b(b)b^c_c`c{c|c}cCkDkEkFkGkHkIkJkKkLkMkNkOkPkQkRkSkTkUkVkWkXkYkZk0k1k2k3k4k5k6k7k8k9k!k#k$k%kCovo

556 

557 config_table = get_config("table") 2g 2fwfxfwm*m+msnHn!m*nloxmmo4dymzmAm1nvmrnIn5dnooopoBm2n3n!n,k-kudvdXm3f4f5f6f7f8f9f!fFnGn.k/k7g'k(k)k*k*b8g9g+k+bufvf:k;kCmDmEm=k?k@k[k,b^ od]kFm^k_k`k{k|k}kGmBdpdXdwdxdqdydrdsdtdzdAd~kalblcldlelflglhliljlklllmlnlolplqlrlDowoa te~daeylYmZm,mtnRm#n;nzl=nRdAlBlClJnsl#munYd?n@n+nDlKnLn4n!g#g-b.bHmuevewexeyezeAeBe|m}m$g%gyf?f@f[f]fw #fzfXgx 6d7d'g(gElFlGl)g*g+g,gy h _ -gHl.g/g:g;g=g?gIl~c` Cd/b:b{ ;b| ( } =b?b@g[g]g^g_g`g{g|g}g~gahbhchdhehfhghhhihxoqob CebeceJl0m1m-mvnSm$n[nKl]nSdLlMlNlMntl$mwnZd^n_n,nOlNnOn5njhkh@b[b]b^bImDeEeFeGeHeIeJeKe~manlhmh.mAfBf^f_f`f{f|f}f~fagz A $f%fCfDfYgB C 8d9d!d#dnhohPlQlRlphqhrhshD E i j ~ abthSluhvhwhxhyhzhTladbdbbcbDdEd_b`b{b|bdbeb}b~bfbgb) * hbibacbcccdcAhBhChDhEhFhGhHhIhJhKhLhMhNhOhPhQhRhShyoroc LeMedeeefegeUl2m3m/mxnTm%n`nVl{nTdWlXlYlPnul%myn0d|n}n-nZlQnRn6nThUhVhWhecfcgchcicjcJmKmNeOePeQeReSeTeUeVeWeXeYeZe0e1e2ebncndnenXhYhZh0h:m;mEfFfGfbgcgdgegfggghgigjgkglgmgF G H 'f(f)fHfIfJfZg0gI J K $d%d'd(d)d*d1h2h3h4h0l1l2l3l4l5l5h6h7h8h9h!h#h$hL M N k l m jbkblb%h'h6l7l(h)h*h+h,h-h.h/h:h;h=h?h8l9lcdddedmbnbobFdGdHdkclcmcncocpcpbqbrbqcrcscsbtbub+ , - vbwbxbtcucvcwcxcyc@h[h]h^h_h`h{h|h}h~haibicidieifigihiiijikiliminioipiqirisitiuiviwixiyiziAiBizosod 3e4eheiejeke!l4m5m=mznUm'n~n#laoUd$l%l'lSnvl'mAn1dboco.n(lTnUn7nCiDiEiFizcAcBcCcDcEcLmMm5e6e7e8e9e!e#e$e%e'e(e)e*e+e,e-efngnhninGiHiIiJi?m@mKfLfMfngogpgqgrgsgtgugvgwgxgygO P Q *f+f,fNfOfPf1g2gR S T +d,d-d.d/d:dKiLiMiNi)l*l+l,l-l.lOiPiQiRiSiTiUiViU V W n o p ybzbAbWiXi/l:lYiZi0i1i2i3i4i5i6i7i8i9i;l=lfdgdhdBbCbDbIdJdKdFcGcHcIcJcKcEbFbGbLcMcNcHbIbJb. / : KbLbMbOcPcQcRcScTc!i#i$i%i'i(i)i*i+i,i-i.i/i:i;i=i?i@i[i]i^i_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkjAotoe .e/elemeneoe?l6m7m[mBnVm(ndo@leoVd[l]l^lVnwl(mCn2dfogo/n_lWnXn8nljmjnjojUcVcWcXcYcZcNmOm:e;e=e?e@e[e]e^e_e`e{e|e}e~eafbfjnknlnmnpjqjrjsj]m^mQfRfSfzgAgBgCgDgEgFgGgHgIgJgKgX Y Z -f.f/fTfUfVf3g4g0 1 2 ;d=d?d@d[d]dtjujvjwj`l{l|l}l~lamxjyjzjAjBjCjDjEj3 4 5 q r s NbObPbFjGjbmcmHjIjJjKjLjMjNjOjPjQjRjSjdmemidjdkdQbRbSbLdMdNd0c1c2c3c4c5cTbUbVb6c7c8cWbXbYb; = ? Zb0b1b9c!c#c$c%c'cTjUjVjWjXjYjZj0j1j2j3j4j5j6j7j8j9j!j#j$j%j'j(j)j*j+j,j-j.j/j:j;j=j?j@j[j]j^jBouof cfdfpeqeresefm8m9m_mDnWm)nhogmioWdhmimjmYnxl)mEn3djoko:nkmZn0n9n_j`j{j|j(c)c*c+c,c-cPmQmefffgfhfifjfkflfmfnfofpfqfrfsftfnnonpnqn}j~jakbk`m{mWfXfYfLgMgNgOgPgQgRgSgTgUgVgWg6 7 8 :f;f=fZf0f1f5g6g9 ! # ^d_d`d{d|d}dckdkekfklmmmnmompmqmgkhkikjkkklkmknk$ % ' t u v 2b3b4bokpkrmsmqkrksktkukvkwkxkykzkAkBktmumldmdnd5b6b7bOdPdQd.c/c:c;c=c?c8b9b!b@c[c]c#b$b%b@ [ ] 'b(b)b^c_c`c{c|c}cCkDkEkFkGkHkIkJkKkLkMkNkOkPkQkRkSkTkUkVkWkXkYkZk0k1k2k3k4k5k6k7k8k9k!k#k$k%kCovo

558 if config_table is True: 2g 2fwfxfwm*m+msnHn!m*nloxmmo4dymzmAm1nvmrnIn5dnooopoBm2n3n!n,k-kudvdXm3f4f5f6f7f8f9f!fFnGn.k/k7g'k(k)k*k*b8g9g+k+bufvf:k;kCmDmEm=k?k@k[k,b^ od]kFm^k_k`k{k|k}kGmBdpdXdwdxdqdydrdsdtdzdAd~kalblcldlelflglhliljlklllmlnlolplqlrlDowoa te~daeylYmZm,mtnRm#n;nzl=nRdAlBlClJnsl#munYd?n@n+nDlKnLn4n!g#g-b.bHmuevewexeyezeAeBe|m}m$g%gyf?f@f[f]fw #fzfXgx 6d7d'g(gElFlGl)g*g+g,gy h _ -gHl.g/g:g;g=g?gIl~c` Cd/b:b{ ;b| ( } =b?b@g[g]g^g_g`g{g|g}g~gahbhchdhehfhghhhihxoqob CebeceJl0m1m-mvnSm$n[nKl]nSdLlMlNlMntl$mwnZd^n_n,nOlNnOn5njhkh@b[b]b^bImDeEeFeGeHeIeJeKe~manlhmh.mAfBf^f_f`f{f|f}f~fagz A $f%fCfDfYgB C 8d9d!d#dnhohPlQlRlphqhrhshD E i j ~ abthSluhvhwhxhyhzhTladbdbbcbDdEd_b`b{b|bdbeb}b~bfbgb) * hbibacbcccdcAhBhChDhEhFhGhHhIhJhKhLhMhNhOhPhQhRhShyoroc LeMedeeefegeUl2m3m/mxnTm%n`nVl{nTdWlXlYlPnul%myn0d|n}n-nZlQnRn6nThUhVhWhecfcgchcicjcJmKmNeOePeQeReSeTeUeVeWeXeYeZe0e1e2ebncndnenXhYhZh0h:m;mEfFfGfbgcgdgegfggghgigjgkglgmgF G H 'f(f)fHfIfJfZg0gI J K $d%d'd(d)d*d1h2h3h4h0l1l2l3l4l5l5h6h7h8h9h!h#h$hL M N k l m jbkblb%h'h6l7l(h)h*h+h,h-h.h/h:h;h=h?h8l9lcdddedmbnbobFdGdHdkclcmcncocpcpbqbrbqcrcscsbtbub+ , - vbwbxbtcucvcwcxcyc@h[h]h^h_h`h{h|h}h~haibicidieifigihiiijikiliminioipiqirisitiuiviwixiyiziAiBizosod 3e4eheiejeke!l4m5m=mznUm'n~n#laoUd$l%l'lSnvl'mAn1dboco.n(lTnUn7nCiDiEiFizcAcBcCcDcEcLmMm5e6e7e8e9e!e#e$e%e'e(e)e*e+e,e-efngnhninGiHiIiJi?m@mKfLfMfngogpgqgrgsgtgugvgwgxgygO P Q *f+f,fNfOfPf1g2gR S T +d,d-d.d/d:dKiLiMiNi)l*l+l,l-l.lOiPiQiRiSiTiUiViU V W n o p ybzbAbWiXi/l:lYiZi0i1i2i3i4i5i6i7i8i9i;l=lfdgdhdBbCbDbIdJdKdFcGcHcIcJcKcEbFbGbLcMcNcHbIbJb. / : KbLbMbOcPcQcRcScTc!i#i$i%i'i(i)i*i+i,i-i.i/i:i;i=i?i@i[i]i^i_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkjAotoe .e/elemeneoe?l6m7m[mBnVm(ndo@leoVd[l]l^lVnwl(mCn2dfogo/n_lWnXn8nljmjnjojUcVcWcXcYcZcNmOm:e;e=e?e@e[e]e^e_e`e{e|e}e~eafbfjnknlnmnpjqjrjsj]m^mQfRfSfzgAgBgCgDgEgFgGgHgIgJgKgX Y Z -f.f/fTfUfVf3g4g0 1 2 ;d=d?d@d[d]dtjujvjwj`l{l|l}l~lamxjyjzjAjBjCjDjEj3 4 5 q r s NbObPbFjGjbmcmHjIjJjKjLjMjNjOjPjQjRjSjdmemidjdkdQbRbSbLdMdNd0c1c2c3c4c5cTbUbVb6c7c8cWbXbYb; = ? Zb0b1b9c!c#c$c%c'cTjUjVjWjXjYjZj0j1j2j3j4j5j6j7j8j9j!j#j$j%j'j(j)j*j+j,j-j.j/j:j;j=j?j@j[j]j^jBouof cfdfpeqeresefm8m9m_mDnWm)nhogmioWdhmimjmYnxl)mEn3djoko:nkmZn0n9n_j`j{j|j(c)c*c+c,c-cPmQmefffgfhfifjfkflfmfnfofpfqfrfsftfnnonpnqn}j~jakbk`m{mWfXfYfLgMgNgOgPgQgRgSgTgUgVgWg6 7 8 :f;f=fZf0f1f5g6g9 ! # ^d_d`d{d|d}dckdkekfklmmmnmompmqmgkhkikjkkklkmknk$ % ' t u v 2b3b4bokpkrmsmqkrksktkukvkwkxkykzkAkBktmumldmdnd5b6b7bOdPdQd.c/c:c;c=c?c8b9b!b@c[c]c#b$b%b@ [ ] 'b(b)b^c_c`c{c|c}cCkDkEkFkGkHkIkJkKkLkMkNkOkPkQkRkSkTkUkVkWkXkYkZk0k1k2k3k4k5k6k7k8k9k!k#k$k%kCovo

559 # If it was passed by kwargs, ensure it's also set in config 

560 set_config_value(model=new_cls, parameter="table", value=config_table) 2g 2fwfxfwm*m+msnHn!m*nxm4dymzmAm1nvmrnIn5dBm2n3n!n,k-kudvdXm3f4f5f6f7f8f9f!fFnGn.k/k7g'k(k)k*k*b8g9g+k+bufvf:k;kCmDmEm=k?k@k[k,b^ od]kFm^k_k`k{k|k}kGmBdpdXdwdxdqdydrdsdtdzdAd~kalblcldlelflglhliljlklllmlnlolplqlrla te~daeylYmZm,mtnRm#nzlRdAlBlClJnsl#munYdDlKnLn4n!g#g-b.bHmuevewexeyezeAeBe|m}m$g%gyf?f@f[f]fw #fzfXgx 6d7d'g(gElFlGl)g*g+g,gy h _ -gHl.g/g:g;g=g?gIl~c` Cd/b:b{ ;b| ( } =b?b@g[g]g^g_g`g{g|g}g~gahbhchdhehfhghhhihb CebeceJl0m1m-mvnSm$nKlSdLlMlNlMntl$mwnZdOlNnOn5njhkh@b[b]b^bImDeEeFeGeHeIeJeKe~manlhmh.mAfBf^f_f`f{f|f}f~fagz A $f%fCfDfYgB C 8d9d!d#dnhohPlQlRlphqhrhshD E i j ~ abthSluhvhwhxhyhzhTladbdbbcbDdEd_b`b{b|bdbeb}b~bfbgb) * hbibacbcccdcAhBhChDhEhFhGhHhIhJhKhLhMhNhOhPhQhRhShc LeMedeeefegeUl2m3m/mxnTm%nVlTdWlXlYlPnul%myn0dZlQnRn6nThUhVhWhecfcgchcicjcJmKmNeOePeQeReSeTeUeVeWeXeYeZe0e1e2ebncndnenXhYhZh0h:m;mEfFfGfbgcgdgegfggghgigjgkglgmgF G H 'f(f)fHfIfJfZg0gI J K $d%d'd(d)d*d1h2h3h4h0l1l2l3l4l5l5h6h7h8h9h!h#h$hL M N k l m jbkblb%h'h6l7l(h)h*h+h,h-h.h/h:h;h=h?h8l9lcdddedmbnbobFdGdHdkclcmcncocpcpbqbrbqcrcscsbtbub+ , - vbwbxbtcucvcwcxcyc@h[h]h^h_h`h{h|h}h~haibicidieifigihiiijikiliminioipiqirisitiuiviwixiyiziAiBid 3e4eheiejeke!l4m5m=mznUm'n#lUd$l%l'lSnvl'mAn1d(lTnUn7nCiDiEiFizcAcBcCcDcEcLmMm5e6e7e8e9e!e#e$e%e'e(e)e*e+e,e-efngnhninGiHiIiJi?m@mKfLfMfngogpgqgrgsgtgugvgwgxgygO P Q *f+f,fNfOfPf1g2gR S T +d,d-d.d/d:dKiLiMiNi)l*l+l,l-l.lOiPiQiRiSiTiUiViU V W n o p ybzbAbWiXi/l:lYiZi0i1i2i3i4i5i6i7i8i9i;l=lfdgdhdBbCbDbIdJdKdFcGcHcIcJcKcEbFbGbLcMcNcHbIbJb. / : KbLbMbOcPcQcRcScTc!i#i$i%i'i(i)i*i+i,i-i.i/i:i;i=i?i@i[i]i^i_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkje .e/elemeneoe?l6m7m[mBnVm(n@lVd[l]l^lVnwl(mCn2d_lWnXn8nljmjnjojUcVcWcXcYcZcNmOm:e;e=e?e@e[e]e^e_e`e{e|e}e~eafbfjnknlnmnpjqjrjsj]m^mQfRfSfzgAgBgCgDgEgFgGgHgIgJgKgX Y Z -f.f/fTfUfVf3g4g0 1 2 ;d=d?d@d[d]dtjujvjwj`l{l|l}l~lamxjyjzjAjBjCjDjEj3 4 5 q r s NbObPbFjGjbmcmHjIjJjKjLjMjNjOjPjQjRjSjdmemidjdkdQbRbSbLdMdNd0c1c2c3c4c5cTbUbVb6c7c8cWbXbYb; = ? Zb0b1b9c!c#c$c%c'cTjUjVjWjXjYjZj0j1j2j3j4j5j6j7j8j9j!j#j$j%j'j(j)j*j+j,j-j.j/j:j;j=j?j@j[j]j^jf cfdfpeqeresefm8m9m_mDnWm)ngmWdhmimjmYnxl)mEn3dkmZn0n9n_j`j{j|j(c)c*c+c,c-cPmQmefffgfhfifjfkflfmfnfofpfqfrfsftfnnonpnqn}j~jakbk`m{mWfXfYfLgMgNgOgPgQgRgSgTgUgVgWg6 7 8 :f;f=fZf0f1f5g6g9 ! # ^d_d`d{d|d}dckdkekfklmmmnmompmqmgkhkikjkkklkmknk$ % ' t u v 2b3b4bokpkrmsmqkrksktkukvkwkxkykzkAkBktmumldmdnd5b6b7bOdPdQd.c/c:c;c=c?c8b9b!b@c[c]c#b$b%b@ [ ] 'b(b)b^c_c`c{c|c}cCkDkEkFkGkHkIkJkKkLkMkNkOkPkQkRkSkTkUkVkWkXkYkZk0k1k2k3k4k5k6k7k8k9k!k#k$k%k

561 for k, v in get_model_fields(new_cls).items(): 2g 2fwfxfwm*m+msnHn!m*nxm4dymzmAm1nvmrnIn5dBm2n3n!n,k-kudvdXm3f4f5f6f7f8f9f!fFnGn.k/k7g'k(k)k*k*b8g9g+k+bufvf:k;kCmDmEm=k?k@k[k,b^ od]kFm^k_k`k{k|k}kGmBdpdXdwdxdqdydrdsdtdzdAd~kalblcldlelflglhliljlklllmlnlolplqlrla te~daeylYmZm,mtnRm#nzlRdAlBlClJnsl#munYdDlKnLn4n!g#g-b.bHmuevewexeyezeAeBe|m}m$g%gyf?f@f[f]fw #fzfXgx 6d7d'g(gElFlGl)g*g+g,gy h _ -gHl.g/g:g;g=g?gIl~c` Cd/b:b{ ;b| ( } =b?b@g[g]g^g_g`g{g|g}g~gahbhchdhehfhghhhihb CebeceJl0m1m-mvnSm$nKlSdLlMlNlMntl$mwnZdOlNnOn5njhkh@b[b]b^bImDeEeFeGeHeIeJeKe~manlhmh.mAfBf^f_f`f{f|f}f~fagz A $f%fCfDfYgB C 8d9d!d#dnhohPlQlRlphqhrhshD E i j ~ abthSluhvhwhxhyhzhTladbdbbcbDdEd_b`b{b|bdbeb}b~bfbgb) * hbibacbcccdcAhBhChDhEhFhGhHhIhJhKhLhMhNhOhPhQhRhShc LeMedeeefegeUl2m3m/mxnTm%nVlTdWlXlYlPnul%myn0dZlQnRn6nThUhVhWhecfcgchcicjcJmKmNeOePeQeReSeTeUeVeWeXeYeZe0e1e2ebncndnenXhYhZh0h:m;mEfFfGfbgcgdgegfggghgigjgkglgmgF G H 'f(f)fHfIfJfZg0gI J K $d%d'd(d)d*d1h2h3h4h0l1l2l3l4l5l5h6h7h8h9h!h#h$hL M N k l m jbkblb%h'h6l7l(h)h*h+h,h-h.h/h:h;h=h?h8l9lcdddedmbnbobFdGdHdkclcmcncocpcpbqbrbqcrcscsbtbub+ , - vbwbxbtcucvcwcxcyc@h[h]h^h_h`h{h|h}h~haibicidieifigihiiijikiliminioipiqirisitiuiviwixiyiziAiBid 3e4eheiejeke!l4m5m=mznUm'n#lUd$l%l'lSnvl'mAn1d(lTnUn7nCiDiEiFizcAcBcCcDcEcLmMm5e6e7e8e9e!e#e$e%e'e(e)e*e+e,e-efngnhninGiHiIiJi?m@mKfLfMfngogpgqgrgsgtgugvgwgxgygO P Q *f+f,fNfOfPf1g2gR S T +d,d-d.d/d:dKiLiMiNi)l*l+l,l-l.lOiPiQiRiSiTiUiViU V W n o p ybzbAbWiXi/l:lYiZi0i1i2i3i4i5i6i7i8i9i;l=lfdgdhdBbCbDbIdJdKdFcGcHcIcJcKcEbFbGbLcMcNcHbIbJb. / : KbLbMbOcPcQcRcScTc!i#i$i%i'i(i)i*i+i,i-i.i/i:i;i=i?i@i[i]i^i_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkje .e/elemeneoe?l6m7m[mBnVm(n@lVd[l]l^lVnwl(mCn2d_lWnXn8nljmjnjojUcVcWcXcYcZcNmOm:e;e=e?e@e[e]e^e_e`e{e|e}e~eafbfjnknlnmnpjqjrjsj]m^mQfRfSfzgAgBgCgDgEgFgGgHgIgJgKgX Y Z -f.f/fTfUfVf3g4g0 1 2 ;d=d?d@d[d]dtjujvjwj`l{l|l}l~lamxjyjzjAjBjCjDjEj3 4 5 q r s NbObPbFjGjbmcmHjIjJjKjLjMjNjOjPjQjRjSjdmemidjdkdQbRbSbLdMdNd0c1c2c3c4c5cTbUbVb6c7c8cWbXbYb; = ? Zb0b1b9c!c#c$c%c'cTjUjVjWjXjYjZj0j1j2j3j4j5j6j7j8j9j!j#j$j%j'j(j)j*j+j,j-j.j/j:j;j=j?j@j[j]j^jf cfdfpeqeresefm8m9m_mDnWm)ngmWdhmimjmYnxl)mEn3dkmZn0n9n_j`j{j|j(c)c*c+c,c-cPmQmefffgfhfifjfkflfmfnfofpfqfrfsftfnnonpnqn}j~jakbk`m{mWfXfYfLgMgNgOgPgQgRgSgTgUgVgWg6 7 8 :f;f=fZf0f1f5g6g9 ! # ^d_d`d{d|d}dckdkekfklmmmnmompmqmgkhkikjkkklkmknk$ % ' t u v 2b3b4bokpkrmsmqkrksktkukvkwkxkykzkAkBktmumldmdnd5b6b7bOdPdQd.c/c:c;c=c?c8b9b!b@c[c]c#b$b%b@ [ ] 'b(b)b^c_c`c{c|c}cCkDkEkFkGkHkIkJkKkLkMkNkOkPkQkRkSkTkUkVkWkXkYkZk0k1k2k3k4k5k6k7k8k9k!k#k$k%k

562 col = get_column_from_field(v) 2g 2fwfxfwm*m+msnHn!m*nxm4dymzmAm1nvmrnIn5dBm2n3n!n,k-kudvdXm3f4f5f6f7f8f9f!fFnGn.k/k7g'k(k)k*k*b8g9g+k+bufvf:k;kCmDmEm=k?k@k[k,b^ od]kFm^k_k`k{k|k}kGmBdpdXdwdxdqdydrdsdtdzdAd~kalblcldlelflglhliljlklllmlnlolplqlrla te~daeylYmZm,mtnRm#nzlRdAlBlClJnsl#munYdDlKnLn4n!g#g-b.bHmuevewexeyezeAeBe|m}m$g%gyf?f@f[f]fw #fzfXgx 6d7d'g(gElFlGl)g*g+g,gy h _ -gHl.g/g:g;g=g?gIl~c` Cd/b:b{ ;b| ( } =b?b@g[g]g^g_g`g{g|g}g~gahbhchdhehfhghhhihb CebeceJl0m1m-mvnSm$nKlSdLlMlNlMntl$mwnZdOlNnOn5njhkh@b[b]b^bImDeEeFeGeHeIeJeKe~manlhmh.mAfBf^f_f`f{f|f}f~fagz A $f%fCfDfYgB C 8d9d!d#dnhohPlQlRlphqhrhshD E i j ~ abthSluhvhwhxhyhzhTladbdbbcbDdEd_b`b{b|bdbeb}b~bfbgb) * hbibacbcccdcAhBhChDhEhFhGhHhIhJhKhLhMhNhOhPhQhRhShc LeMedeeefegeUl2m3m/mxnTm%nVlTdWlXlYlPnul%myn0dZlQnRn6nThUhVhWhecfcgchcicjcJmKmNeOePeQeReSeTeUeVeWeXeYeZe0e1e2ebncndnenXhYhZh0h:m;mEfFfGfbgcgdgegfggghgigjgkglgmgF G H 'f(f)fHfIfJfZg0gI J K $d%d'd(d)d*d1h2h3h4h0l1l2l3l4l5l5h6h7h8h9h!h#h$hL M N k l m jbkblb%h'h6l7l(h)h*h+h,h-h.h/h:h;h=h?h8l9lcdddedmbnbobFdGdHdkclcmcncocpcpbqbrbqcrcscsbtbub+ , - vbwbxbtcucvcwcxcyc@h[h]h^h_h`h{h|h}h~haibicidieifigihiiijikiliminioipiqirisitiuiviwixiyiziAiBid 3e4eheiejeke!l4m5m=mznUm'n#lUd$l%l'lSnvl'mAn1d(lTnUn7nCiDiEiFizcAcBcCcDcEcLmMm5e6e7e8e9e!e#e$e%e'e(e)e*e+e,e-efngnhninGiHiIiJi?m@mKfLfMfngogpgqgrgsgtgugvgwgxgygO P Q *f+f,fNfOfPf1g2gR S T +d,d-d.d/d:dKiLiMiNi)l*l+l,l-l.lOiPiQiRiSiTiUiViU V W n o p ybzbAbWiXi/l:lYiZi0i1i2i3i4i5i6i7i8i9i;l=lfdgdhdBbCbDbIdJdKdFcGcHcIcJcKcEbFbGbLcMcNcHbIbJb. / : KbLbMbOcPcQcRcScTc!i#i$i%i'i(i)i*i+i,i-i.i/i:i;i=i?i@i[i]i^i_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkje .e/elemeneoe?l6m7m[mBnVm(n@lVd[l]l^lVnwl(mCn2d_lWnXn8nljmjnjojUcVcWcXcYcZcNmOm:e;e=e?e@e[e]e^e_e`e{e|e}e~eafbfjnknlnmnpjqjrjsj]m^mQfRfSfzgAgBgCgDgEgFgGgHgIgJgKgX Y Z -f.f/fTfUfVf3g4g0 1 2 ;d=d?d@d[d]dtjujvjwj`l{l|l}l~lamxjyjzjAjBjCjDjEj3 4 5 q r s NbObPbFjGjbmcmHjIjJjKjLjMjNjOjPjQjRjSjdmemidjdkdQbRbSbLdMdNd0c1c2c3c4c5cTbUbVb6c7c8cWbXbYb; = ? Zb0b1b9c!c#c$c%c'cTjUjVjWjXjYjZj0j1j2j3j4j5j6j7j8j9j!j#j$j%j'j(j)j*j+j,j-j.j/j:j;j=j?j@j[j]j^jf cfdfpeqeresefm8m9m_mDnWm)ngmWdhmimjmYnxl)mEn3dkmZn0n9n_j`j{j|j(c)c*c+c,c-cPmQmefffgfhfifjfkflfmfnfofpfqfrfsftfnnonpnqn}j~jakbk`m{mWfXfYfLgMgNgOgPgQgRgSgTgUgVgWg6 7 8 :f;f=fZf0f1f5g6g9 ! # ^d_d`d{d|d}dckdkekfklmmmnmompmqmgkhkikjkkklkmknk$ % ' t u v 2b3b4bokpkrmsmqkrksktkukvkwkxkykzkAkBktmumldmdnd5b6b7bOdPdQd.c/c:c;c=c?c8b9b!b@c[c]c#b$b%b@ [ ] 'b(b)b^c_c`c{c|c}cCkDkEkFkGkHkIkJkKkLkMkNkOkPkQkRkSkTkUkVkWkXkYkZk0k1k2k3k4k5k6k7k8k9k!k#k$k%k

563 setattr(new_cls, k, col) 2g 2fwfxfwm*m+msnHn!m*nxm4dymzmAm1nvmrnIn5dBm2n3n!n,k-kudvdXm3f4f5f6f7f8f9f!fFnGn.k/k7g'k(k)k*k*b8g9g+k+bufvf:k;kCmDmEm=k?k@k[k,b^ od]kFm^k_k`k{k|k}kGmBdpdXdwdxdqdydrdsdtdzdAd~kalblcldlelflglhliljlklllmlnlolplqlrla te~daeylYmZm,mtnRm#nzlRdAlBlClJnsl#munYdDlKnLn4n!g#g-b.bHmuevewexeyezeAeBe|m}m$g%gyf?f@f[f]fw #fzfXgx 6d7d'g(gElFlGl)g*g+g,gy h _ -gHl.g/g:g;g=g?gIl~c` Cd/b:b{ ;b| ( } =b?b@g[g]g^g_g`g{g|g}g~gahbhchdhehfhghhhihb CebeceJl0m1m-mvnSm$nKlSdLlMlNlMntl$mwnZdOlNnOn5njhkh@b[b]b^bImDeEeFeGeHeIeJeKe~manlhmh.mAfBf^f_f`f{f|f}f~fagz A $f%fCfDfYgB C 8d9d!d#dnhohPlQlRlphqhrhshD E i j ~ abthSluhvhwhxhyhzhTladbdbbcbDdEd_b`b{b|bdbeb}b~bfbgb) * hbibacbcccdcAhBhChDhEhFhGhHhIhJhKhLhMhNhOhPhQhRhShc LeMedeeefegeUl2m3m/mxnTm%nVlTdWlXlYlPnul%myn0dZlQnRn6nThUhVhWhecfcgchcicjcJmKmNeOePeQeReSeTeUeVeWeXeYeZe0e1e2ebncndnenXhYhZh0h:m;mEfFfGfbgcgdgegfggghgigjgkglgmgF G H 'f(f)fHfIfJfZg0gI J K $d%d'd(d)d*d1h2h3h4h0l1l2l3l4l5l5h6h7h8h9h!h#h$hL M N k l m jbkblb%h'h6l7l(h)h*h+h,h-h.h/h:h;h=h?h8l9lcdddedmbnbobFdGdHdkclcmcncocpcpbqbrbqcrcscsbtbub+ , - vbwbxbtcucvcwcxcyc@h[h]h^h_h`h{h|h}h~haibicidieifigihiiijikiliminioipiqirisitiuiviwixiyiziAiBid 3e4eheiejeke!l4m5m=mznUm'n#lUd$l%l'lSnvl'mAn1d(lTnUn7nCiDiEiFizcAcBcCcDcEcLmMm5e6e7e8e9e!e#e$e%e'e(e)e*e+e,e-efngnhninGiHiIiJi?m@mKfLfMfngogpgqgrgsgtgugvgwgxgygO P Q *f+f,fNfOfPf1g2gR S T +d,d-d.d/d:dKiLiMiNi)l*l+l,l-l.lOiPiQiRiSiTiUiViU V W n o p ybzbAbWiXi/l:lYiZi0i1i2i3i4i5i6i7i8i9i;l=lfdgdhdBbCbDbIdJdKdFcGcHcIcJcKcEbFbGbLcMcNcHbIbJb. / : KbLbMbOcPcQcRcScTc!i#i$i%i'i(i)i*i+i,i-i.i/i:i;i=i?i@i[i]i^i_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkje .e/elemeneoe?l6m7m[mBnVm(n@lVd[l]l^lVnwl(mCn2d_lWnXn8nljmjnjojUcVcWcXcYcZcNmOm:e;e=e?e@e[e]e^e_e`e{e|e}e~eafbfjnknlnmnpjqjrjsj]m^mQfRfSfzgAgBgCgDgEgFgGgHgIgJgKgX Y Z -f.f/fTfUfVf3g4g0 1 2 ;d=d?d@d[d]dtjujvjwj`l{l|l}l~lamxjyjzjAjBjCjDjEj3 4 5 q r s NbObPbFjGjbmcmHjIjJjKjLjMjNjOjPjQjRjSjdmemidjdkdQbRbSbLdMdNd0c1c2c3c4c5cTbUbVb6c7c8cWbXbYb; = ? Zb0b1b9c!c#c$c%c'cTjUjVjWjXjYjZj0j1j2j3j4j5j6j7j8j9j!j#j$j%j'j(j)j*j+j,j-j.j/j:j;j=j?j@j[j]j^jf cfdfpeqeresefm8m9m_mDnWm)ngmWdhmimjmYnxl)mEn3dkmZn0n9n_j`j{j|j(c)c*c+c,c-cPmQmefffgfhfifjfkflfmfnfofpfqfrfsftfnnonpnqn}j~jakbk`m{mWfXfYfLgMgNgOgPgQgRgSgTgUgVgWg6 7 8 :f;f=fZf0f1f5g6g9 ! # ^d_d`d{d|d}dckdkekfklmmmnmompmqmgkhkikjkkklkmknk$ % ' t u v 2b3b4bokpkrmsmqkrksktkukvkwkxkykzkAkBktmumldmdnd5b6b7bOdPdQd.c/c:c;c=c?c8b9b!b@c[c]c#b$b%b@ [ ] 'b(b)b^c_c`c{c|c}cCkDkEkFkGkHkIkJkKkLkMkNkOkPkQkRkSkTkUkVkWkXkYkZk0k1k2k3k4k5k6k7k8k9k!k#k$k%k

564 # Set a config flag to tell FastAPI that this should be read with a field 

565 # in orm_mode instead of preemptively converting it to a dict. 

566 # This could be done by reading new_cls.model_config['table'] in FastAPI, but 

567 # that's very specific about SQLModel, so let's have another config that 

568 # other future tools based on Pydantic can use. 

569 set_config_value( 2g 2fwfxfwm*m+msnHn!m*nxm4dymzmAmvmrnIn5dBm,k-kudvdXm3f4f5f6f7f8f9f!fFnGn.k/k7g'k(k)k*k*b8g9g+k+bufvf:k;kCmDmEm=k?k@k[k,b^ od]kFm^k_k`k{k|k}kGmBdpdXdwdxdqdydrdsdtdzdAd~kalblcldlelflglhliljlklllmlnlolplqlrla te~daeylYmZm,mtnRm#nzlRdAlBlClsl#munYdDl!g#g-b.bHmuevewexeyezeAeBe|m}m$g%gyf?f@f[f]fw #fzfXgx 6d7d'g(gElFlGl)g*g+g,gy h _ -gHl.g/g:g;g=g?gIl~c` Cd/b:b{ ;b| ( } =b?b@g[g]g^g_g`g{g|g}g~gahbhchdhehfhghhhihb CebeceJl0m1m-mvnSm$nKlSdLlMlNltl$mwnZdOljhkh@b[b]b^bImDeEeFeGeHeIeJeKe~manlhmh.mAfBf^f_f`f{f|f}f~fagz A $f%fCfDfYgB C 8d9d!d#dnhohPlQlRlphqhrhshD E i j ~ abthSluhvhwhxhyhzhTladbdbbcbDdEd_b`b{b|bdbeb}b~bfbgb) * hbibacbcccdcAhBhChDhEhFhGhHhIhJhKhLhMhNhOhPhQhRhShc LeMedeeefegeUl2m3m/mxnTm%nVlTdWlXlYlul%myn0dZlThUhVhWhecfcgchcicjcJmKmNeOePeQeReSeTeUeVeWeXeYeZe0e1e2ebncndnenXhYhZh0h:m;mEfFfGfbgcgdgegfggghgigjgkglgmgF G H 'f(f)fHfIfJfZg0gI J K $d%d'd(d)d*d1h2h3h4h0l1l2l3l4l5l5h6h7h8h9h!h#h$hL M N k l m jbkblb%h'h6l7l(h)h*h+h,h-h.h/h:h;h=h?h8l9lcdddedmbnbobFdGdHdkclcmcncocpcpbqbrbqcrcscsbtbub+ , - vbwbxbtcucvcwcxcyc@h[h]h^h_h`h{h|h}h~haibicidieifigihiiijikiliminioipiqirisitiuiviwixiyiziAiBid 3e4eheiejeke!l4m5m=mznUm'n#lUd$l%l'lvl'mAn1d(lCiDiEiFizcAcBcCcDcEcLmMm5e6e7e8e9e!e#e$e%e'e(e)e*e+e,e-efngnhninGiHiIiJi?m@mKfLfMfngogpgqgrgsgtgugvgwgxgygO P Q *f+f,fNfOfPf1g2gR S T +d,d-d.d/d:dKiLiMiNi)l*l+l,l-l.lOiPiQiRiSiTiUiViU V W n o p ybzbAbWiXi/l:lYiZi0i1i2i3i4i5i6i7i8i9i;l=lfdgdhdBbCbDbIdJdKdFcGcHcIcJcKcEbFbGbLcMcNcHbIbJb. / : KbLbMbOcPcQcRcScTc!i#i$i%i'i(i)i*i+i,i-i.i/i:i;i=i?i@i[i]i^i_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkje .e/elemeneoe?l6m7m[mBnVm(n@lVd[l]l^lwl(mCn2d_lljmjnjojUcVcWcXcYcZcNmOm:e;e=e?e@e[e]e^e_e`e{e|e}e~eafbfjnknlnmnpjqjrjsj]m^mQfRfSfzgAgBgCgDgEgFgGgHgIgJgKgX Y Z -f.f/fTfUfVf3g4g0 1 2 ;d=d?d@d[d]dtjujvjwj`l{l|l}l~lamxjyjzjAjBjCjDjEj3 4 5 q r s NbObPbFjGjbmcmHjIjJjKjLjMjNjOjPjQjRjSjdmemidjdkdQbRbSbLdMdNd0c1c2c3c4c5cTbUbVb6c7c8cWbXbYb; = ? Zb0b1b9c!c#c$c%c'cTjUjVjWjXjYjZj0j1j2j3j4j5j6j7j8j9j!j#j$j%j'j(j)j*j+j,j-j.j/j:j;j=j?j@j[j]j^jf cfdfpeqeresefm8m9m_mDnWm)ngmWdhmimjmxl)mEn3dkm_j`j{j|j(c)c*c+c,c-cPmQmefffgfhfifjfkflfmfnfofpfqfrfsftfnnonpnqn}j~jakbk`m{mWfXfYfLgMgNgOgPgQgRgSgTgUgVgWg6 7 8 :f;f=fZf0f1f5g6g9 ! # ^d_d`d{d|d}dckdkekfklmmmnmompmqmgkhkikjkkklkmknk$ % ' t u v 2b3b4bokpkrmsmqkrksktkukvkwkxkykzkAkBktmumldmdnd5b6b7bOdPdQd.c/c:c;c=c?c8b9b!b@c[c]c#b$b%b@ [ ] 'b(b)b^c_c`c{c|c}cCkDkEkFkGkHkIkJkKkLkMkNkOkPkQkRkSkTkUkVkWkXkYkZk0k1k2k3k4k5k6k7k8k9k!k#k$k%k

570 model=new_cls, parameter="read_from_attributes", value=True 

571 ) 

572 # For compatibility with older versions 

573 # TODO: remove this in the future 

574 set_config_value(model=new_cls, parameter="read_with_orm_mode", value=True) 2g 2fwfxfwm*m+msnHn!m*nxm4dymzmAmvmrnIn5dBm,k-kudvdXm3f4f5f6f7f8f9f!fFnGn.k/k7g'k(k)k*k*b8g9g+k+bufvf:k;kCmDmEm=k?k@k[k,b^ od]kFm^k_k`k{k|k}kGmBdpdXdwdxdqdydrdsdtdzdAd~kalblcldlelflglhliljlklllmlnlolplqlrla te~daeylYmZm,mtnRm#nzlRdAlBlClsl#munYdDl!g#g-b.bHmuevewexeyezeAeBe|m}m$g%gyf?f@f[f]fw #fzfXgx 6d7d'g(gElFlGl)g*g+g,gy h _ -gHl.g/g:g;g=g?gIl~c` Cd/b:b{ ;b| ( } =b?b@g[g]g^g_g`g{g|g}g~gahbhchdhehfhghhhihb CebeceJl0m1m-mvnSm$nKlSdLlMlNltl$mwnZdOljhkh@b[b]b^bImDeEeFeGeHeIeJeKe~manlhmh.mAfBf^f_f`f{f|f}f~fagz A $f%fCfDfYgB C 8d9d!d#dnhohPlQlRlphqhrhshD E i j ~ abthSluhvhwhxhyhzhTladbdbbcbDdEd_b`b{b|bdbeb}b~bfbgb) * hbibacbcccdcAhBhChDhEhFhGhHhIhJhKhLhMhNhOhPhQhRhShc LeMedeeefegeUl2m3m/mxnTm%nVlTdWlXlYlul%myn0dZlThUhVhWhecfcgchcicjcJmKmNeOePeQeReSeTeUeVeWeXeYeZe0e1e2ebncndnenXhYhZh0h:m;mEfFfGfbgcgdgegfggghgigjgkglgmgF G H 'f(f)fHfIfJfZg0gI J K $d%d'd(d)d*d1h2h3h4h0l1l2l3l4l5l5h6h7h8h9h!h#h$hL M N k l m jbkblb%h'h6l7l(h)h*h+h,h-h.h/h:h;h=h?h8l9lcdddedmbnbobFdGdHdkclcmcncocpcpbqbrbqcrcscsbtbub+ , - vbwbxbtcucvcwcxcyc@h[h]h^h_h`h{h|h}h~haibicidieifigihiiijikiliminioipiqirisitiuiviwixiyiziAiBid 3e4eheiejeke!l4m5m=mznUm'n#lUd$l%l'lvl'mAn1d(lCiDiEiFizcAcBcCcDcEcLmMm5e6e7e8e9e!e#e$e%e'e(e)e*e+e,e-efngnhninGiHiIiJi?m@mKfLfMfngogpgqgrgsgtgugvgwgxgygO P Q *f+f,fNfOfPf1g2gR S T +d,d-d.d/d:dKiLiMiNi)l*l+l,l-l.lOiPiQiRiSiTiUiViU V W n o p ybzbAbWiXi/l:lYiZi0i1i2i3i4i5i6i7i8i9i;l=lfdgdhdBbCbDbIdJdKdFcGcHcIcJcKcEbFbGbLcMcNcHbIbJb. / : KbLbMbOcPcQcRcScTc!i#i$i%i'i(i)i*i+i,i-i.i/i:i;i=i?i@i[i]i^i_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkje .e/elemeneoe?l6m7m[mBnVm(n@lVd[l]l^lwl(mCn2d_lljmjnjojUcVcWcXcYcZcNmOm:e;e=e?e@e[e]e^e_e`e{e|e}e~eafbfjnknlnmnpjqjrjsj]m^mQfRfSfzgAgBgCgDgEgFgGgHgIgJgKgX Y Z -f.f/fTfUfVf3g4g0 1 2 ;d=d?d@d[d]dtjujvjwj`l{l|l}l~lamxjyjzjAjBjCjDjEj3 4 5 q r s NbObPbFjGjbmcmHjIjJjKjLjMjNjOjPjQjRjSjdmemidjdkdQbRbSbLdMdNd0c1c2c3c4c5cTbUbVb6c7c8cWbXbYb; = ? Zb0b1b9c!c#c$c%c'cTjUjVjWjXjYjZj0j1j2j3j4j5j6j7j8j9j!j#j$j%j'j(j)j*j+j,j-j.j/j:j;j=j?j@j[j]j^jf cfdfpeqeresefm8m9m_mDnWm)ngmWdhmimjmxl)mEn3dkm_j`j{j|j(c)c*c+c,c-cPmQmefffgfhfifjfkflfmfnfofpfqfrfsftfnnonpnqn}j~jakbk`m{mWfXfYfLgMgNgOgPgQgRgSgTgUgVgWg6 7 8 :f;f=fZf0f1f5g6g9 ! # ^d_d`d{d|d}dckdkekfklmmmnmompmqmgkhkikjkkklkmknk$ % ' t u v 2b3b4bokpkrmsmqkrksktkukvkwkxkykzkAkBktmumldmdnd5b6b7bOdPdQd.c/c:c;c=c?c8b9b!b@c[c]c#b$b%b@ [ ] 'b(b)b^c_c`c{c|c}cCkDkEkFkGkHkIkJkKkLkMkNkOkPkQkRkSkTkUkVkWkXkYkZk0k1k2k3k4k5k6k7k8k9k!k#k$k%k

575 

576 config_registry = get_config("registry") 2g 2fwfxfwm*m+msnHn!m*nloxmmo4dymzmAmvmrnIn5dnooopoBm,k-kudvdXm3f4f5f6f7f8f9f!fFnGn.k/k7g'k(k)k*k*b8g9g+k+bufvf:k;kCmDmEm=k?k@k[k,b^ od]kFm^k_k`k{k|k}kGmBdpdXdwdxdqdydrdsdtdzdAd~kalblcldlelflglhliljlklllmlnlolplqlrlDowoa te~daeylYmZm,mtnRm#n;nzl=nRdAlBlClsl#munYd?n@n+nDl!g#g-b.bHmuevewexeyezeAeBe|m}m$g%gyf?f@f[f]fw #fzfXgx 6d7d'g(gElFlGl)g*g+g,gy h _ -gHl.g/g:g;g=g?gIl~c` Cd/b:b{ ;b| ( } =b?b@g[g]g^g_g`g{g|g}g~gahbhchdhehfhghhhihxoqob CebeceJl0m1m-mvnSm$n[nKl]nSdLlMlNltl$mwnZd^n_n,nOljhkh@b[b]b^bImDeEeFeGeHeIeJeKe~manlhmh.mAfBf^f_f`f{f|f}f~fagz A $f%fCfDfYgB C 8d9d!d#dnhohPlQlRlphqhrhshD E i j ~ abthSluhvhwhxhyhzhTladbdbbcbDdEd_b`b{b|bdbeb}b~bfbgb) * hbibacbcccdcAhBhChDhEhFhGhHhIhJhKhLhMhNhOhPhQhRhShyoroc LeMedeeefegeUl2m3m/mxnTm%n`nVl{nTdWlXlYlul%myn0d|n}n-nZlThUhVhWhecfcgchcicjcJmKmNeOePeQeReSeTeUeVeWeXeYeZe0e1e2ebncndnenXhYhZh0h:m;mEfFfGfbgcgdgegfggghgigjgkglgmgF G H 'f(f)fHfIfJfZg0gI J K $d%d'd(d)d*d1h2h3h4h0l1l2l3l4l5l5h6h7h8h9h!h#h$hL M N k l m jbkblb%h'h6l7l(h)h*h+h,h-h.h/h:h;h=h?h8l9lcdddedmbnbobFdGdHdkclcmcncocpcpbqbrbqcrcscsbtbub+ , - vbwbxbtcucvcwcxcyc@h[h]h^h_h`h{h|h}h~haibicidieifigihiiijikiliminioipiqirisitiuiviwixiyiziAiBizosod 3e4eheiejeke!l4m5m=mznUm'n~n#laoUd$l%l'lvl'mAn1dboco.n(lCiDiEiFizcAcBcCcDcEcLmMm5e6e7e8e9e!e#e$e%e'e(e)e*e+e,e-efngnhninGiHiIiJi?m@mKfLfMfngogpgqgrgsgtgugvgwgxgygO P Q *f+f,fNfOfPf1g2gR S T +d,d-d.d/d:dKiLiMiNi)l*l+l,l-l.lOiPiQiRiSiTiUiViU V W n o p ybzbAbWiXi/l:lYiZi0i1i2i3i4i5i6i7i8i9i;l=lfdgdhdBbCbDbIdJdKdFcGcHcIcJcKcEbFbGbLcMcNcHbIbJb. / : KbLbMbOcPcQcRcScTc!i#i$i%i'i(i)i*i+i,i-i.i/i:i;i=i?i@i[i]i^i_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkjAotoe .e/elemeneoe?l6m7m[mBnVm(ndo@leoVd[l]l^lwl(mCn2dfogo/n_lljmjnjojUcVcWcXcYcZcNmOm:e;e=e?e@e[e]e^e_e`e{e|e}e~eafbfjnknlnmnpjqjrjsj]m^mQfRfSfzgAgBgCgDgEgFgGgHgIgJgKgX Y Z -f.f/fTfUfVf3g4g0 1 2 ;d=d?d@d[d]dtjujvjwj`l{l|l}l~lamxjyjzjAjBjCjDjEj3 4 5 q r s NbObPbFjGjbmcmHjIjJjKjLjMjNjOjPjQjRjSjdmemidjdkdQbRbSbLdMdNd0c1c2c3c4c5cTbUbVb6c7c8cWbXbYb; = ? Zb0b1b9c!c#c$c%c'cTjUjVjWjXjYjZj0j1j2j3j4j5j6j7j8j9j!j#j$j%j'j(j)j*j+j,j-j.j/j:j;j=j?j@j[j]j^jBouof cfdfpeqeresefm8m9m_mDnWm)nhogmioWdhmimjmxl)mEn3djoko:nkm_j`j{j|j(c)c*c+c,c-cPmQmefffgfhfifjfkflfmfnfofpfqfrfsftfnnonpnqn}j~jakbk`m{mWfXfYfLgMgNgOgPgQgRgSgTgUgVgWg6 7 8 :f;f=fZf0f1f5g6g9 ! # ^d_d`d{d|d}dckdkekfklmmmnmompmqmgkhkikjkkklkmknk$ % ' t u v 2b3b4bokpkrmsmqkrksktkukvkwkxkykzkAkBktmumldmdnd5b6b7bOdPdQd.c/c:c;c=c?c8b9b!b@c[c]c#b$b%b@ [ ] 'b(b)b^c_c`c{c|c}cCkDkEkFkGkHkIkJkKkLkMkNkOkPkQkRkSkTkUkVkWkXkYkZk0k1k2k3k4k5k6k7k8k9k!k#k$k%kCovo

577 if config_registry is not Undefined: 2g 2fwfxfwm*m+msnHn!m*nloxmmo4dymzmAmvmrnIn5dnooopoBm,k-kudvdXm3f4f5f6f7f8f9f!fFnGn.k/k7g'k(k)k*k*b8g9g+k+bufvf:k;kCmDmEm=k?k@k[k,b^ od]kFm^k_k`k{k|k}kGmBdpdXdwdxdqdydrdsdtdzdAd~kalblcldlelflglhliljlklllmlnlolplqlrlDowoa te~daeylYmZm,mtnRm#n;nzl=nRdAlBlClsl#munYd?n@n+nDl!g#g-b.bHmuevewexeyezeAeBe|m}m$g%gyf?f@f[f]fw #fzfXgx 6d7d'g(gElFlGl)g*g+g,gy h _ -gHl.g/g:g;g=g?gIl~c` Cd/b:b{ ;b| ( } =b?b@g[g]g^g_g`g{g|g}g~gahbhchdhehfhghhhihxoqob CebeceJl0m1m-mvnSm$n[nKl]nSdLlMlNltl$mwnZd^n_n,nOljhkh@b[b]b^bImDeEeFeGeHeIeJeKe~manlhmh.mAfBf^f_f`f{f|f}f~fagz A $f%fCfDfYgB C 8d9d!d#dnhohPlQlRlphqhrhshD E i j ~ abthSluhvhwhxhyhzhTladbdbbcbDdEd_b`b{b|bdbeb}b~bfbgb) * hbibacbcccdcAhBhChDhEhFhGhHhIhJhKhLhMhNhOhPhQhRhShyoroc LeMedeeefegeUl2m3m/mxnTm%n`nVl{nTdWlXlYlul%myn0d|n}n-nZlThUhVhWhecfcgchcicjcJmKmNeOePeQeReSeTeUeVeWeXeYeZe0e1e2ebncndnenXhYhZh0h:m;mEfFfGfbgcgdgegfggghgigjgkglgmgF G H 'f(f)fHfIfJfZg0gI J K $d%d'd(d)d*d1h2h3h4h0l1l2l3l4l5l5h6h7h8h9h!h#h$hL M N k l m jbkblb%h'h6l7l(h)h*h+h,h-h.h/h:h;h=h?h8l9lcdddedmbnbobFdGdHdkclcmcncocpcpbqbrbqcrcscsbtbub+ , - vbwbxbtcucvcwcxcyc@h[h]h^h_h`h{h|h}h~haibicidieifigihiiijikiliminioipiqirisitiuiviwixiyiziAiBizosod 3e4eheiejeke!l4m5m=mznUm'n~n#laoUd$l%l'lvl'mAn1dboco.n(lCiDiEiFizcAcBcCcDcEcLmMm5e6e7e8e9e!e#e$e%e'e(e)e*e+e,e-efngnhninGiHiIiJi?m@mKfLfMfngogpgqgrgsgtgugvgwgxgygO P Q *f+f,fNfOfPf1g2gR S T +d,d-d.d/d:dKiLiMiNi)l*l+l,l-l.lOiPiQiRiSiTiUiViU V W n o p ybzbAbWiXi/l:lYiZi0i1i2i3i4i5i6i7i8i9i;l=lfdgdhdBbCbDbIdJdKdFcGcHcIcJcKcEbFbGbLcMcNcHbIbJb. / : KbLbMbOcPcQcRcScTc!i#i$i%i'i(i)i*i+i,i-i.i/i:i;i=i?i@i[i]i^i_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkjAotoe .e/elemeneoe?l6m7m[mBnVm(ndo@leoVd[l]l^lwl(mCn2dfogo/n_lljmjnjojUcVcWcXcYcZcNmOm:e;e=e?e@e[e]e^e_e`e{e|e}e~eafbfjnknlnmnpjqjrjsj]m^mQfRfSfzgAgBgCgDgEgFgGgHgIgJgKgX Y Z -f.f/fTfUfVf3g4g0 1 2 ;d=d?d@d[d]dtjujvjwj`l{l|l}l~lamxjyjzjAjBjCjDjEj3 4 5 q r s NbObPbFjGjbmcmHjIjJjKjLjMjNjOjPjQjRjSjdmemidjdkdQbRbSbLdMdNd0c1c2c3c4c5cTbUbVb6c7c8cWbXbYb; = ? Zb0b1b9c!c#c$c%c'cTjUjVjWjXjYjZj0j1j2j3j4j5j6j7j8j9j!j#j$j%j'j(j)j*j+j,j-j.j/j:j;j=j?j@j[j]j^jBouof cfdfpeqeresefm8m9m_mDnWm)nhogmioWdhmimjmxl)mEn3djoko:nkm_j`j{j|j(c)c*c+c,c-cPmQmefffgfhfifjfkflfmfnfofpfqfrfsftfnnonpnqn}j~jakbk`m{mWfXfYfLgMgNgOgPgQgRgSgTgUgVgWg6 7 8 :f;f=fZf0f1f5g6g9 ! # ^d_d`d{d|d}dckdkekfklmmmnmompmqmgkhkikjkkklkmknk$ % ' t u v 2b3b4bokpkrmsmqkrksktkukvkwkxkykzkAkBktmumldmdnd5b6b7bOdPdQd.c/c:c;c=c?c8b9b!b@c[c]c#b$b%b@ [ ] 'b(b)b^c_c`c{c|c}cCkDkEkFkGkHkIkJkKkLkMkNkOkPkQkRkSkTkUkVkWkXkYkZk0k1k2k3k4k5k6k7k8k9k!k#k$k%kCovo

578 config_registry = cast(registry, config_registry) 1gabcdef

579 # If it was passed by kwargs, ensure it's also set in config 

580 set_config_value(model=new_cls, parameter="registry", value=config_table) 1gabcdef

581 setattr(new_cls, "_sa_registry", config_registry) # noqa: B010 1gabcdef

582 setattr(new_cls, "metadata", config_registry.metadata) # noqa: B010 1gabcdef

583 setattr(new_cls, "__abstract__", True) # noqa: B010 1gabcdef

584 return new_cls 2g 2fwfxfwm*m+msnHn!m*nloxmmo4dymzmAmvmrnIn5dnooopoBm,k-kudvdXm3f4f5f6f7f8f9f!fFnGn.k/k7g'k(k)k*k*b8g9g+k+bufvf:k;kCmDmEm=k?k@k[k,b^ od]kFm^k_k`k{k|k}kGmBdpdXdwdxdqdydrdsdtdzdAd~kalblcldlelflglhliljlklllmlnlolplqlrlDowoa te~daeylYmZm,mtnRm#n;nzl=nRdAlBlClsl#munYd?n@n+nDl!g#g-b.bHmuevewexeyezeAeBe|m}m$g%gyf?f@f[f]fw #fzfXgx 6d7d'g(gElFlGl)g*g+g,gy h _ -gHl.g/g:g;g=g?gIl~c` Cd/b:b{ ;b| ( } =b?b@g[g]g^g_g`g{g|g}g~gahbhchdhehfhghhhihxoqob CebeceJl0m1m-mvnSm$n[nKl]nSdLlMlNltl$mwnZd^n_n,nOljhkh@b[b]b^bImDeEeFeGeHeIeJeKe~manlhmh.mAfBf^f_f`f{f|f}f~fagz A $f%fCfDfYgB C 8d9d!d#dnhohPlQlRlphqhrhshD E i j ~ abthSluhvhwhxhyhzhTladbdbbcbDdEd_b`b{b|bdbeb}b~bfbgb) * hbibacbcccdcAhBhChDhEhFhGhHhIhJhKhLhMhNhOhPhQhRhShyoroc LeMedeeefegeUl2m3m/mxnTm%n`nVl{nTdWlXlYlul%myn0d|n}n-nZlThUhVhWhecfcgchcicjcJmKmNeOePeQeReSeTeUeVeWeXeYeZe0e1e2ebncndnenXhYhZh0h:m;mEfFfGfbgcgdgegfggghgigjgkglgmgF G H 'f(f)fHfIfJfZg0gI J K $d%d'd(d)d*d1h2h3h4h0l1l2l3l4l5l5h6h7h8h9h!h#h$hL M N k l m jbkblb%h'h6l7l(h)h*h+h,h-h.h/h:h;h=h?h8l9lcdddedmbnbobFdGdHdkclcmcncocpcpbqbrbqcrcscsbtbub+ , - vbwbxbtcucvcwcxcyc@h[h]h^h_h`h{h|h}h~haibicidieifigihiiijikiliminioipiqirisitiuiviwixiyiziAiBizosod 3e4eheiejeke!l4m5m=mznUm'n~n#laoUd$l%l'lvl'mAn1dboco.n(lCiDiEiFizcAcBcCcDcEcLmMm5e6e7e8e9e!e#e$e%e'e(e)e*e+e,e-efngnhninGiHiIiJi?m@mKfLfMfngogpgqgrgsgtgugvgwgxgygO P Q *f+f,fNfOfPf1g2gR S T +d,d-d.d/d:dKiLiMiNi)l*l+l,l-l.lOiPiQiRiSiTiUiViU V W n o p ybzbAbWiXi/l:lYiZi0i1i2i3i4i5i6i7i8i9i;l=lfdgdhdBbCbDbIdJdKdFcGcHcIcJcKcEbFbGbLcMcNcHbIbJb. / : KbLbMbOcPcQcRcScTc!i#i$i%i'i(i)i*i+i,i-i.i/i:i;i=i?i@i[i]i^i_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkjAotoe .e/elemeneoe?l6m7m[mBnVm(ndo@leoVd[l]l^lwl(mCn2dfogo/n_lljmjnjojUcVcWcXcYcZcNmOm:e;e=e?e@e[e]e^e_e`e{e|e}e~eafbfjnknlnmnpjqjrjsj]m^mQfRfSfzgAgBgCgDgEgFgGgHgIgJgKgX Y Z -f.f/fTfUfVf3g4g0 1 2 ;d=d?d@d[d]dtjujvjwj`l{l|l}l~lamxjyjzjAjBjCjDjEj3 4 5 q r s NbObPbFjGjbmcmHjIjJjKjLjMjNjOjPjQjRjSjdmemidjdkdQbRbSbLdMdNd0c1c2c3c4c5cTbUbVb6c7c8cWbXbYb; = ? Zb0b1b9c!c#c$c%c'cTjUjVjWjXjYjZj0j1j2j3j4j5j6j7j8j9j!j#j$j%j'j(j)j*j+j,j-j.j/j:j;j=j?j@j[j]j^jBouof cfdfpeqeresefm8m9m_mDnWm)nhogmioWdhmimjmxl)mEn3djoko:nkm_j`j{j|j(c)c*c+c,c-cPmQmefffgfhfifjfkflfmfnfofpfqfrfsftfnnonpnqn}j~jakbk`m{mWfXfYfLgMgNgOgPgQgRgSgTgUgVgWg6 7 8 :f;f=fZf0f1f5g6g9 ! # ^d_d`d{d|d}dckdkekfklmmmnmompmqmgkhkikjkkklkmknk$ % ' t u v 2b3b4bokpkrmsmqkrksktkukvkwkxkykzkAkBktmumldmdnd5b6b7bOdPdQd.c/c:c;c=c?c8b9b!b@c[c]c#b$b%b@ [ ] 'b(b)b^c_c`c{c|c}cCkDkEkFkGkHkIkJkKkLkMkNkOkPkQkRkSkTkUkVkWkXkYkZk0k1k2k3k4k5k6k7k8k9k!k#k$k%kCovo

585 

586 # Override SQLAlchemy, allow both SQLAlchemy and plain Pydantic models 

587 def __init__( 1abcdef

588 cls, classname: str, bases: Tuple[type, ...], dict_: Dict[str, Any], **kw: Any 

589 ) -> None: 

590 # Only one of the base classes (or the current one) should be a table model 

591 # this allows FastAPI cloning a SQLModel for the response_model without 

592 # trying to create a new SQLAlchemy, for a new table, with the same name, that 

593 # triggers an error 

594 base_is_table = any(is_table_model_class(base) for base in bases) 2g 2fwfxfwm*m+msnHn!m*nloxmmo4dymzmAmvmrnIn5dnooopoBm,k-kudvdXm3f4f5f6f7f8f9f!fFnGn.k/k7g'k(k)k*k*b8g9g+k+bufvf:k;kCmDmEm=k?k@k[k,b^ od]kFm^k_k`k{k|k}kGmBdpdXdwdxdqdydrdsdtdzdAd~kalblcldlelflglhliljlklllmlnlolplqlrlDowoa te~daeylYmZm,mtnRm#n;nzl=nRdAlBlClsl#munYd?n@n+nDl!g#g-b.bHmuevewexeyezeAeBe|m}m$g%gyf?f@f[f]fw #fzfXgx 6d7d'g(gElFlGl)g*g+g,gy h _ -gHl.g/g:g;g=g?gIl~c` Cd/b:b{ ;b| ( } =b?b@g[g]g^g_g`g{g|g}g~gahbhchdhehfhghhhihxoqob CebeceJl0m1m-mvnSm$n[nKl]nSdLlMlNltl$mwnZd^n_n,nOljhkh@b[b]b^bImDeEeFeGeHeIeJeKe~manlhmh.mAfBf^f_f`f{f|f}f~fagz A $f%fCfDfYgB C 8d9d!d#dnhohPlQlRlphqhrhshD E i j ~ abthSluhvhwhxhyhzhTladbdbbcbDdEd_b`b{b|bdbeb}b~bfbgb) * hbibacbcccdcAhBhChDhEhFhGhHhIhJhKhLhMhNhOhPhQhRhShyoroc LeMedeeefegeUl2m3m/mxnTm%n`nVl{nTdWlXlYlul%myn0d|n}n-nZlThUhVhWhecfcgchcicjcJmKmNeOePeQeReSeTeUeVeWeXeYeZe0e1e2ebncndnenXhYhZh0h:m;mEfFfGfbgcgdgegfggghgigjgkglgmgF G H 'f(f)fHfIfJfZg0gI J K $d%d'd(d)d*d1h2h3h4h0l1l2l3l4l5l5h6h7h8h9h!h#h$hL M N k l m jbkblb%h'h6l7l(h)h*h+h,h-h.h/h:h;h=h?h8l9lcdddedmbnbobFdGdHdkclcmcncocpcpbqbrbqcrcscsbtbub+ , - vbwbxbtcucvcwcxcyc@h[h]h^h_h`h{h|h}h~haibicidieifigihiiijikiliminioipiqirisitiuiviwixiyiziAiBizosod 3e4eheiejeke!l4m5m=mznUm'n~n#laoUd$l%l'lvl'mAn1dboco.n(lCiDiEiFizcAcBcCcDcEcLmMm5e6e7e8e9e!e#e$e%e'e(e)e*e+e,e-efngnhninGiHiIiJi?m@mKfLfMfngogpgqgrgsgtgugvgwgxgygO P Q *f+f,fNfOfPf1g2gR S T +d,d-d.d/d:dKiLiMiNi)l*l+l,l-l.lOiPiQiRiSiTiUiViU V W n o p ybzbAbWiXi/l:lYiZi0i1i2i3i4i5i6i7i8i9i;l=lfdgdhdBbCbDbIdJdKdFcGcHcIcJcKcEbFbGbLcMcNcHbIbJb. / : KbLbMbOcPcQcRcScTc!i#i$i%i'i(i)i*i+i,i-i.i/i:i;i=i?i@i[i]i^i_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkjAotoe .e/elemeneoe?l6m7m[mBnVm(ndo@leoVd[l]l^lwl(mCn2dfogo/n_lljmjnjojUcVcWcXcYcZcNmOm:e;e=e?e@e[e]e^e_e`e{e|e}e~eafbfjnknlnmnpjqjrjsj]m^mQfRfSfzgAgBgCgDgEgFgGgHgIgJgKgX Y Z -f.f/fTfUfVf3g4g0 1 2 ;d=d?d@d[d]dtjujvjwj`l{l|l}l~lamxjyjzjAjBjCjDjEj3 4 5 q r s NbObPbFjGjbmcmHjIjJjKjLjMjNjOjPjQjRjSjdmemidjdkdQbRbSbLdMdNd0c1c2c3c4c5cTbUbVb6c7c8cWbXbYb; = ? Zb0b1b9c!c#c$c%c'cTjUjVjWjXjYjZj0j1j2j3j4j5j6j7j8j9j!j#j$j%j'j(j)j*j+j,j-j.j/j:j;j=j?j@j[j]j^jBouof cfdfpeqeresefm8m9m_mDnWm)nhogmioWdhmimjmxl)mEn3djoko:nkm_j`j{j|j(c)c*c+c,c-cPmQmefffgfhfifjfkflfmfnfofpfqfrfsftfnnonpnqn}j~jakbk`m{mWfXfYfLgMgNgOgPgQgRgSgTgUgVgWg6 7 8 :f;f=fZf0f1f5g6g9 ! # ^d_d`d{d|d}dckdkekfklmmmnmompmqmgkhkikjkkklkmknk$ % ' t u v 2b3b4bokpkrmsmqkrksktkukvkwkxkykzkAkBktmumldmdnd5b6b7bOdPdQd.c/c:c;c=c?c8b9b!b@c[c]c#b$b%b@ [ ] 'b(b)b^c_c`c{c|c}cCkDkEkFkGkHkIkJkKkLkMkNkOkPkQkRkSkTkUkVkWkXkYkZk0k1k2k3k4k5k6k7k8k9k!k#k$k%kCovo

595 if is_table_model_class(cls) and not base_is_table: 2g 2fwfxfwm*m+msnHn!m*nloxmmo4dymzmAmvmrnIn5dnooopoBm,k-kudvdXm3f4f5f6f7f8f9f!fFnGn.k/k7g'k(k)k*k*b8g9g+k+bufvf:k;kCmDmEm=k?k@k[k,b^ od]kFm^k_k`k{k|k}kGmBdpdXdwdxdqdydrdsdtdzdAd~kalblcldlelflglhliljlklllmlnlolplqlrlDowoa te~daeylYmZm,mtnRm#n;nzl=nRdAlBlClsl#munYd?n@n+nDl!g#g-b.bHmuevewexeyezeAeBe|m}m$g%gyf?f@f[f]fw #fzfXgx 6d7d'g(gElFlGl)g*g+g,gy h _ -gHl.g/g:g;g=g?gIl~c` Cd/b:b{ ;b| ( } =b?b@g[g]g^g_g`g{g|g}g~gahbhchdhehfhghhhihxoqob CebeceJl0m1m-mvnSm$n[nKl]nSdLlMlNltl$mwnZd^n_n,nOljhkh@b[b]b^bImDeEeFeGeHeIeJeKe~manlhmh.mAfBf^f_f`f{f|f}f~fagz A $f%fCfDfYgB C 8d9d!d#dnhohPlQlRlphqhrhshD E i j ~ abthSluhvhwhxhyhzhTladbdbbcbDdEd_b`b{b|bdbeb}b~bfbgb) * hbibacbcccdcAhBhChDhEhFhGhHhIhJhKhLhMhNhOhPhQhRhShyoroc LeMedeeefegeUl2m3m/mxnTm%n`nVl{nTdWlXlYlul%myn0d|n}n-nZlThUhVhWhecfcgchcicjcJmKmNeOePeQeReSeTeUeVeWeXeYeZe0e1e2ebncndnenXhYhZh0h:m;mEfFfGfbgcgdgegfggghgigjgkglgmgF G H 'f(f)fHfIfJfZg0gI J K $d%d'd(d)d*d1h2h3h4h0l1l2l3l4l5l5h6h7h8h9h!h#h$hL M N k l m jbkblb%h'h6l7l(h)h*h+h,h-h.h/h:h;h=h?h8l9lcdddedmbnbobFdGdHdkclcmcncocpcpbqbrbqcrcscsbtbub+ , - vbwbxbtcucvcwcxcyc@h[h]h^h_h`h{h|h}h~haibicidieifigihiiijikiliminioipiqirisitiuiviwixiyiziAiBizosod 3e4eheiejeke!l4m5m=mznUm'n~n#laoUd$l%l'lvl'mAn1dboco.n(lCiDiEiFizcAcBcCcDcEcLmMm5e6e7e8e9e!e#e$e%e'e(e)e*e+e,e-efngnhninGiHiIiJi?m@mKfLfMfngogpgqgrgsgtgugvgwgxgygO P Q *f+f,fNfOfPf1g2gR S T +d,d-d.d/d:dKiLiMiNi)l*l+l,l-l.lOiPiQiRiSiTiUiViU V W n o p ybzbAbWiXi/l:lYiZi0i1i2i3i4i5i6i7i8i9i;l=lfdgdhdBbCbDbIdJdKdFcGcHcIcJcKcEbFbGbLcMcNcHbIbJb. / : KbLbMbOcPcQcRcScTc!i#i$i%i'i(i)i*i+i,i-i.i/i:i;i=i?i@i[i]i^i_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkjAotoe .e/elemeneoe?l6m7m[mBnVm(ndo@leoVd[l]l^lwl(mCn2dfogo/n_lljmjnjojUcVcWcXcYcZcNmOm:e;e=e?e@e[e]e^e_e`e{e|e}e~eafbfjnknlnmnpjqjrjsj]m^mQfRfSfzgAgBgCgDgEgFgGgHgIgJgKgX Y Z -f.f/fTfUfVf3g4g0 1 2 ;d=d?d@d[d]dtjujvjwj`l{l|l}l~lamxjyjzjAjBjCjDjEj3 4 5 q r s NbObPbFjGjbmcmHjIjJjKjLjMjNjOjPjQjRjSjdmemidjdkdQbRbSbLdMdNd0c1c2c3c4c5cTbUbVb6c7c8cWbXbYb; = ? Zb0b1b9c!c#c$c%c'cTjUjVjWjXjYjZj0j1j2j3j4j5j6j7j8j9j!j#j$j%j'j(j)j*j+j,j-j.j/j:j;j=j?j@j[j]j^jBouof cfdfpeqeresefm8m9m_mDnWm)nhogmioWdhmimjmxl)mEn3djoko:nkm_j`j{j|j(c)c*c+c,c-cPmQmefffgfhfifjfkflfmfnfofpfqfrfsftfnnonpnqn}j~jakbk`m{mWfXfYfLgMgNgOgPgQgRgSgTgUgVgWg6 7 8 :f;f=fZf0f1f5g6g9 ! # ^d_d`d{d|d}dckdkekfklmmmnmompmqmgkhkikjkkklkmknk$ % ' t u v 2b3b4bokpkrmsmqkrksktkukvkwkxkykzkAkBktmumldmdnd5b6b7bOdPdQd.c/c:c;c=c?c8b9b!b@c[c]c#b$b%b@ [ ] 'b(b)b^c_c`c{c|c}cCkDkEkFkGkHkIkJkKkLkMkNkOkPkQkRkSkTkUkVkWkXkYkZk0k1k2k3k4k5k6k7k8k9k!k#k$k%kCovo

596 for rel_name, rel_info in cls.__sqlmodel_relationships__.items(): 2g 2fwfxfwm*m+msnHn!m*nxm4dymzmAmvmrnIn5dBm,k-kudvdXm3f4f5f6f7f8f9f!fFnGn.k/k7g'k(k)k*k*b8g9g+k+bufvf:k;kCmDmEm=k?k@k[k,b^ od]kFm^k_k`k{k|k}kGmBdpdXdwdxdqdydrdsdtdzdAd~kalblcldlelflglhliljlklllmlnlolplqlrla te~daeylYmZm,mtnRm#nzlRdAlBlClsl#munYdDl!g#g-b.bHmuevewexeyezeAeBe|m}m$g%gyf?f@f[f]fw #fzfXgx 6d7d'g(gElFlGl)g*g+g,gy h _ -gHl.g/g:g;g=g?gIl~c` Cd/b:b{ ;b| ( } =b?b@g[g]g^g_g`g{g|g}g~gahbhchdhehfhghhhihb CebeceJl0m1m-mvnSm$nKlSdLlMlNltl$mwnZdOljhkh@b[b]b^bImDeEeFeGeHeIeJeKe~manlhmh.mAfBf^f_f`f{f|f}f~fagz A $f%fCfDfYgB C 8d9d!d#dnhohPlQlRlphqhrhshD E i j ~ abthSluhvhwhxhyhzhTladbdbbcbDdEd_b`b{b|bdbeb}b~bfbgb) * hbibacbcccdcAhBhChDhEhFhGhHhIhJhKhLhMhNhOhPhQhRhShc LeMedeeefegeUl2m3m/mxnTm%nVlTdWlXlYlul%myn0dZlThUhVhWhecfcgchcicjcJmKmNeOePeQeReSeTeUeVeWeXeYeZe0e1e2ebncndnenXhYhZh0h:m;mEfFfGfbgcgdgegfggghgigjgkglgmgF G H 'f(f)fHfIfJfZg0gI J K $d%d'd(d)d*d1h2h3h4h0l1l2l3l4l5l5h6h7h8h9h!h#h$hL M N k l m jbkblb%h'h6l7l(h)h*h+h,h-h.h/h:h;h=h?h8l9lcdddedmbnbobFdGdHdkclcmcncocpcpbqbrbqcrcscsbtbub+ , - vbwbxbtcucvcwcxcyc@h[h]h^h_h`h{h|h}h~haibicidieifigihiiijikiliminioipiqirisitiuiviwixiyiziAiBid 3e4eheiejeke!l4m5m=mznUm'n#lUd$l%l'lvl'mAn1d(lCiDiEiFizcAcBcCcDcEcLmMm5e6e7e8e9e!e#e$e%e'e(e)e*e+e,e-efngnhninGiHiIiJi?m@mKfLfMfngogpgqgrgsgtgugvgwgxgygO P Q *f+f,fNfOfPf1g2gR S T +d,d-d.d/d:dKiLiMiNi)l*l+l,l-l.lOiPiQiRiSiTiUiViU V W n o p ybzbAbWiXi/l:lYiZi0i1i2i3i4i5i6i7i8i9i;l=lfdgdhdBbCbDbIdJdKdFcGcHcIcJcKcEbFbGbLcMcNcHbIbJb. / : KbLbMbOcPcQcRcScTc!i#i$i%i'i(i)i*i+i,i-i.i/i:i;i=i?i@i[i]i^i_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkje .e/elemeneoe?l6m7m[mBnVm(n@lVd[l]l^lwl(mCn2d_lljmjnjojUcVcWcXcYcZcNmOm:e;e=e?e@e[e]e^e_e`e{e|e}e~eafbfjnknlnmnpjqjrjsj]m^mQfRfSfzgAgBgCgDgEgFgGgHgIgJgKgX Y Z -f.f/fTfUfVf3g4g0 1 2 ;d=d?d@d[d]dtjujvjwj`l{l|l}l~lamxjyjzjAjBjCjDjEj3 4 5 q r s NbObPbFjGjbmcmHjIjJjKjLjMjNjOjPjQjRjSjdmemidjdkdQbRbSbLdMdNd0c1c2c3c4c5cTbUbVb6c7c8cWbXbYb; = ? Zb0b1b9c!c#c$c%c'cTjUjVjWjXjYjZj0j1j2j3j4j5j6j7j8j9j!j#j$j%j'j(j)j*j+j,j-j.j/j:j;j=j?j@j[j]j^jf cfdfpeqeresefm8m9m_mDnWm)ngmWdhmimjmxl)mEn3dkm_j`j{j|j(c)c*c+c,c-cPmQmefffgfhfifjfkflfmfnfofpfqfrfsftfnnonpnqn}j~jakbk`m{mWfXfYfLgMgNgOgPgQgRgSgTgUgVgWg6 7 8 :f;f=fZf0f1f5g6g9 ! # ^d_d`d{d|d}dckdkekfklmmmnmompmqmgkhkikjkkklkmknk$ % ' t u v 2b3b4bokpkrmsmqkrksktkukvkwkxkykzkAkBktmumldmdnd5b6b7bOdPdQd.c/c:c;c=c?c8b9b!b@c[c]c#b$b%b@ [ ] 'b(b)b^c_c`c{c|c}cCkDkEkFkGkHkIkJkKkLkMkNkOkPkQkRkSkTkUkVkWkXkYkZk0k1k2k3k4k5k6k7k8k9k!k#k$k%k

597 if rel_info.sa_relationship: 24d5dudvd*b+b,b^ odBdpdXdwdxdqdydrdsdtdzdAdRdYd-b.bw x y h _ ~c` Cd/b:b{ ;b| ( } =b?bSdZd@b[b]b^bz A B C D E i j ~ abadbdbbcbDdEd_b`b{b|bdbeb}b~bfbgb) * hbibacbcccdcTd0decfcgchcicjcF G H I J K L M N k l m jbkblbcdddedmbnbobFdGdHdkclcmcncocpcpbqbrbqcrcscsbtbub+ , - vbwbxbtcucvcwcxcycUd1dzcAcBcCcDcEcO P Q R S T U V W n o p ybzbAbfdgdhdBbCbDbIdJdKdFcGcHcIcJcKcEbFbGbLcMcNcHbIbJb. / : KbLbMbOcPcQcRcScTcVd2dUcVcWcXcYcZcX Y Z 0 1 2 3 4 5 q r s NbObPbidjdkdQbRbSbLdMdNd0c1c2c3c4c5cTbUbVb6c7c8cWbXbYb; = ? Zb0b1b9c!c#c$c%c'cWd3d(c)c*c+c,c-c6 7 8 9 ! # $ % ' t u v 2b3b4bldmdnd5b6b7bOdPdQd.c/c:c;c=c?c8b9b!b@c[c]c#b$b%b@ [ ] 'b(b)b^c_c`c{c|c}c

598 # There's a SQLAlchemy relationship declared, that takes precedence 

599 # over anything else, use that and continue with the next attribute 

600 setattr(cls, rel_name, rel_info.sa_relationship) # Fix #315 24dRdSdTdUdVdWd

601 continue 24dRdSdTdUdVdWd

602 raw_ann = cls.__annotations__[rel_name] 25dudvd*b+b,b^ odBdpdXdwdxdqdydrdsdtdzdAdYd-b.bw x y h _ ~c` Cd/b:b{ ;b| ( } =b?bZd@b[b]b^bz A B C D E i j ~ abadbdbbcbDdEd_b`b{b|bdbeb}b~bfbgb) * hbibacbcccdc0decfcgchcicjcF G H I J K L M N k l m jbkblbcdddedmbnbobFdGdHdkclcmcncocpcpbqbrbqcrcscsbtbub+ , - vbwbxbtcucvcwcxcyc1dzcAcBcCcDcEcO P Q R S T U V W n o p ybzbAbfdgdhdBbCbDbIdJdKdFcGcHcIcJcKcEbFbGbLcMcNcHbIbJb. / : KbLbMbOcPcQcRcScTc2dUcVcWcXcYcZcX Y Z 0 1 2 3 4 5 q r s NbObPbidjdkdQbRbSbLdMdNd0c1c2c3c4c5cTbUbVb6c7c8cWbXbYb; = ? Zb0b1b9c!c#c$c%c'c3d(c)c*c+c,c-c6 7 8 9 ! # $ % ' t u v 2b3b4bldmdnd5b6b7bOdPdQd.c/c:c;c=c?c8b9b!b@c[c]c#b$b%b@ [ ] 'b(b)b^c_c`c{c|c}c

603 origin = get_origin(raw_ann) 25dudvd*b+b,b^ odBdpdXdwdxdqdydrdsdtdzdAdYd-b.bw x y h _ ~c` Cd/b:b{ ;b| ( } =b?bZd@b[b]b^bz A B C D E i j ~ abadbdbbcbDdEd_b`b{b|bdbeb}b~bfbgb) * hbibacbcccdc0decfcgchcicjcF G H I J K L M N k l m jbkblbcdddedmbnbobFdGdHdkclcmcncocpcpbqbrbqcrcscsbtbub+ , - vbwbxbtcucvcwcxcyc1dzcAcBcCcDcEcO P Q R S T U V W n o p ybzbAbfdgdhdBbCbDbIdJdKdFcGcHcIcJcKcEbFbGbLcMcNcHbIbJb. / : KbLbMbOcPcQcRcScTc2dUcVcWcXcYcZcX Y Z 0 1 2 3 4 5 q r s NbObPbidjdkdQbRbSbLdMdNd0c1c2c3c4c5cTbUbVb6c7c8cWbXbYb; = ? Zb0b1b9c!c#c$c%c'c3d(c)c*c+c,c-c6 7 8 9 ! # $ % ' t u v 2b3b4bldmdnd5b6b7bOdPdQd.c/c:c;c=c?c8b9b!b@c[c]c#b$b%b@ [ ] 'b(b)b^c_c`c{c|c}c

604 if origin is Mapped: 25dudvd*b+b,b^ odBdpdXdwdxdqdydrdsdtdzdAdYd-b.bw x y h _ ~c` Cd/b:b{ ;b| ( } =b?bZd@b[b]b^bz A B C D E i j ~ abadbdbbcbDdEd_b`b{b|bdbeb}b~bfbgb) * hbibacbcccdc0decfcgchcicjcF G H I J K L M N k l m jbkblbcdddedmbnbobFdGdHdkclcmcncocpcpbqbrbqcrcscsbtbub+ , - vbwbxbtcucvcwcxcyc1dzcAcBcCcDcEcO P Q R S T U V W n o p ybzbAbfdgdhdBbCbDbIdJdKdFcGcHcIcJcKcEbFbGbLcMcNcHbIbJb. / : KbLbMbOcPcQcRcScTc2dUcVcWcXcYcZcX Y Z 0 1 2 3 4 5 q r s NbObPbidjdkdQbRbSbLdMdNd0c1c2c3c4c5cTbUbVb6c7c8cWbXbYb; = ? Zb0b1b9c!c#c$c%c'c3d(c)c*c+c,c-c6 7 8 9 ! # $ % ' t u v 2b3b4bldmdnd5b6b7bOdPdQd.c/c:c;c=c?c8b9b!b@c[c]c#b$b%b@ [ ] 'b(b)b^c_c`c{c|c}c

605 ann = raw_ann.__args__[0] 

606 else: 

607 ann = raw_ann 25dudvd*b+b,b^ odBdpdXdwdxdqdydrdsdtdzdAdYd-b.bw x y h _ ~c` Cd/b:b{ ;b| ( } =b?bZd@b[b]b^bz A B C D E i j ~ abadbdbbcbDdEd_b`b{b|bdbeb}b~bfbgb) * hbibacbcccdc0decfcgchcicjcF G H I J K L M N k l m jbkblbcdddedmbnbobFdGdHdkclcmcncocpcpbqbrbqcrcscsbtbub+ , - vbwbxbtcucvcwcxcyc1dzcAcBcCcDcEcO P Q R S T U V W n o p ybzbAbfdgdhdBbCbDbIdJdKdFcGcHcIcJcKcEbFbGbLcMcNcHbIbJb. / : KbLbMbOcPcQcRcScTc2dUcVcWcXcYcZcX Y Z 0 1 2 3 4 5 q r s NbObPbidjdkdQbRbSbLdMdNd0c1c2c3c4c5cTbUbVb6c7c8cWbXbYb; = ? Zb0b1b9c!c#c$c%c'c3d(c)c*c+c,c-c6 7 8 9 ! # $ % ' t u v 2b3b4bldmdnd5b6b7bOdPdQd.c/c:c;c=c?c8b9b!b@c[c]c#b$b%b@ [ ] 'b(b)b^c_c`c{c|c}c

608 # Plain forward references, for models not yet defined, are not 

609 # handled well by SQLAlchemy without Mapped, so, wrap the 

610 # annotations in Mapped here 

611 cls.__annotations__[rel_name] = Mapped[ann] # type: ignore[valid-type] 25dudvd*b+b,b^ odBdpdXdwdxdqdydrdsdtdzdAdYd-b.bw x y h _ ~c` Cd/b:b{ ;b| ( } =b?bZd@b[b]b^bz A B C D E i j ~ abadbdbbcbDdEd_b`b{b|bdbeb}b~bfbgb) * hbibacbcccdc0decfcgchcicjcF G H I J K L M N k l m jbkblbcdddedmbnbobFdGdHdkclcmcncocpcpbqbrbqcrcscsbtbub+ , - vbwbxbtcucvcwcxcyc1dzcAcBcCcDcEcO P Q R S T U V W n o p ybzbAbfdgdhdBbCbDbIdJdKdFcGcHcIcJcKcEbFbGbLcMcNcHbIbJb. / : KbLbMbOcPcQcRcScTc2dUcVcWcXcYcZcX Y Z 0 1 2 3 4 5 q r s NbObPbidjdkdQbRbSbLdMdNd0c1c2c3c4c5cTbUbVb6c7c8cWbXbYb; = ? Zb0b1b9c!c#c$c%c'c3d(c)c*c+c,c-c6 7 8 9 ! # $ % ' t u v 2b3b4bldmdnd5b6b7bOdPdQd.c/c:c;c=c?c8b9b!b@c[c]c#b$b%b@ [ ] 'b(b)b^c_c`c{c|c}c

612 relationship_to = get_relationship_to( 25dudvd*b+b,b^ odBdpdXdwdxdqdydrdsdtdzdAdYd-b.bw x y h _ ~c` Cd/b:b{ ;b| ( } =b?bZd@b[b]b^bz A B C D E i j ~ abadbdbbcbDdEd_b`b{b|bdbeb}b~bfbgb) * hbibacbcccdc0decfcgchcicjcF G H I J K L M N k l m jbkblbcdddedmbnbobFdGdHdkclcmcncocpcpbqbrbqcrcscsbtbub+ , - vbwbxbtcucvcwcxcyc1dzcAcBcCcDcEcO P Q R S T U V W n o p ybzbAbfdgdhdBbCbDbIdJdKdFcGcHcIcJcKcEbFbGbLcMcNcHbIbJb. / : KbLbMbOcPcQcRcScTc2dUcVcWcXcYcZcX Y Z 0 1 2 3 4 5 q r s NbObPbidjdkdQbRbSbLdMdNd0c1c2c3c4c5cTbUbVb6c7c8cWbXbYb; = ? Zb0b1b9c!c#c$c%c'c3d(c)c*c+c,c-c6 7 8 9 ! # $ % ' t u v 2b3b4bldmdnd5b6b7bOdPdQd.c/c:c;c=c?c8b9b!b@c[c]c#b$b%b@ [ ] 'b(b)b^c_c`c{c|c}c

613 name=rel_name, rel_info=rel_info, annotation=ann 

614 ) 

615 rel_kwargs: Dict[str, Any] = {} 25dudvd*b+b,b^ odBdpdXdwdxdqdydrdsdtdzdAdYd-b.bw x y h _ ~c` Cd/b:b{ ;b| ( } =b?bZd@b[b]b^bz A B C D E i j ~ abadbdbbcbDdEd_b`b{b|bdbeb}b~bfbgb) * hbibacbcccdc0decfcgchcicjcF G H I J K L M N k l m jbkblbcdddedmbnbobFdGdHdkclcmcncocpcpbqbrbqcrcscsbtbub+ , - vbwbxbtcucvcwcxcyc1dzcAcBcCcDcEcO P Q R S T U V W n o p ybzbAbfdgdhdBbCbDbIdJdKdFcGcHcIcJcKcEbFbGbLcMcNcHbIbJb. / : KbLbMbOcPcQcRcScTc2dUcVcWcXcYcZcX Y Z 0 1 2 3 4 5 q r s NbObPbidjdkdQbRbSbLdMdNd0c1c2c3c4c5cTbUbVb6c7c8cWbXbYb; = ? Zb0b1b9c!c#c$c%c'c3d(c)c*c+c,c-c6 7 8 9 ! # $ % ' t u v 2b3b4bldmdnd5b6b7bOdPdQd.c/c:c;c=c?c8b9b!b@c[c]c#b$b%b@ [ ] 'b(b)b^c_c`c{c|c}c

616 if rel_info.back_populates: 25dudvd*b+b,b^ odBdpdXdwdxdqdydrdsdtdzdAdYd-b.bw x y h _ ~c` Cd/b:b{ ;b| ( } =b?bZd@b[b]b^bz A B C D E i j ~ abadbdbbcbDdEd_b`b{b|bdbeb}b~bfbgb) * hbibacbcccdc0decfcgchcicjcF G H I J K L M N k l m jbkblbcdddedmbnbobFdGdHdkclcmcncocpcpbqbrbqcrcscsbtbub+ , - vbwbxbtcucvcwcxcyc1dzcAcBcCcDcEcO P Q R S T U V W n o p ybzbAbfdgdhdBbCbDbIdJdKdFcGcHcIcJcKcEbFbGbLcMcNcHbIbJb. / : KbLbMbOcPcQcRcScTc2dUcVcWcXcYcZcX Y Z 0 1 2 3 4 5 q r s NbObPbidjdkdQbRbSbLdMdNd0c1c2c3c4c5cTbUbVb6c7c8cWbXbYb; = ? Zb0b1b9c!c#c$c%c'c3d(c)c*c+c,c-c6 7 8 9 ! # $ % ' t u v 2b3b4bldmdnd5b6b7bOdPdQd.c/c:c;c=c?c8b9b!b@c[c]c#b$b%b@ [ ] 'b(b)b^c_c`c{c|c}c

617 rel_kwargs["back_populates"] = rel_info.back_populates 25dudvd*b+b,b^ odpdXdwdxdqdydrdsdtdzdAdYd-b.bw x y h _ ` Cd/b:b{ ;b| ( } =b?bZd@b[b]b^bz A B C D E i j ~ abbbcbDdEd_b`b{b|bdbeb}b~bfbgb) * hbibacbcccdc0decfcgchcicjcF G H I J K L M N k l m jbkblbmbnbobFdGdHdkclcmcncocpcpbqbrbqcrcscsbtbub+ , - vbwbxbtcucvcwcxcyc1dzcAcBcCcDcEcO P Q R S T U V W n o p ybzbAbBbCbDbIdJdKdFcGcHcIcJcKcEbFbGbLcMcNcHbIbJb. / : KbLbMbOcPcQcRcScTc2dUcVcWcXcYcZcX Y Z 0 1 2 3 4 5 q r s NbObPbQbRbSbLdMdNd0c1c2c3c4c5cTbUbVb6c7c8cWbXbYb; = ? Zb0b1b9c!c#c$c%c'c3d(c)c*c+c,c-c6 7 8 9 ! # $ % ' t u v 2b3b4b5b6b7bOdPdQd.c/c:c;c=c?c8b9b!b@c[c]c#b$b%b@ [ ] 'b(b)b^c_c`c{c|c}c

618 if rel_info.cascade_delete: 25dudvd*b+b,b^ odBdpdXdwdxdqdydrdsdtdzdAdYd-b.bw x y h _ ~c` Cd/b:b{ ;b| ( } =b?bZd@b[b]b^bz A B C D E i j ~ abadbdbbcbDdEd_b`b{b|bdbeb}b~bfbgb) * hbibacbcccdc0decfcgchcicjcF G H I J K L M N k l m jbkblbcdddedmbnbobFdGdHdkclcmcncocpcpbqbrbqcrcscsbtbub+ , - vbwbxbtcucvcwcxcyc1dzcAcBcCcDcEcO P Q R S T U V W n o p ybzbAbfdgdhdBbCbDbIdJdKdFcGcHcIcJcKcEbFbGbLcMcNcHbIbJb. / : KbLbMbOcPcQcRcScTc2dUcVcWcXcYcZcX Y Z 0 1 2 3 4 5 q r s NbObPbidjdkdQbRbSbLdMdNd0c1c2c3c4c5cTbUbVb6c7c8cWbXbYb; = ? Zb0b1b9c!c#c$c%c'c3d(c)c*c+c,c-c6 7 8 9 ! # $ % ' t u v 2b3b4bldmdnd5b6b7bOdPdQd.c/c:c;c=c?c8b9b!b@c[c]c#b$b%b@ [ ] 'b(b)b^c_c`c{c|c}c

619 rel_kwargs["cascade"] = "all, delete-orphan" 2qd{ dbebpbqbrbEbFbGbTbUbVb8b9b!b

620 if rel_info.passive_deletes: 25dudvd*b+b,b^ odBdpdXdwdxdqdydrdsdtdzdAdYd-b.bw x y h _ ~c` Cd/b:b{ ;b| ( } =b?bZd@b[b]b^bz A B C D E i j ~ abadbdbbcbDdEd_b`b{b|bdbeb}b~bfbgb) * hbibacbcccdc0decfcgchcicjcF G H I J K L M N k l m jbkblbcdddedmbnbobFdGdHdkclcmcncocpcpbqbrbqcrcscsbtbub+ , - vbwbxbtcucvcwcxcyc1dzcAcBcCcDcEcO P Q R S T U V W n o p ybzbAbfdgdhdBbCbDbIdJdKdFcGcHcIcJcKcEbFbGbLcMcNcHbIbJb. / : KbLbMbOcPcQcRcScTc2dUcVcWcXcYcZcX Y Z 0 1 2 3 4 5 q r s NbObPbidjdkdQbRbSbLdMdNd0c1c2c3c4c5cTbUbVb6c7c8cWbXbYb; = ? Zb0b1b9c!c#c$c%c'c3d(c)c*c+c,c-c6 7 8 9 ! # $ % ' t u v 2b3b4bldmdnd5b6b7bOdPdQd.c/c:c;c=c?c8b9b!b@c[c]c#b$b%b@ [ ] 'b(b)b^c_c`c{c|c}c

621 rel_kwargs["passive_deletes"] = rel_info.passive_deletes 25drdsdtdYd| ( } Zdfbgb) * hbib0dsbtbub+ , - vbwbxb1dHbIbJb. / : KbLbMb2dWbXbYb; = ? Zb0b1b3d#b$b%b@ [ ] 'b(b)b

622 if rel_info.link_model: 25dudvd*b+b,b^ odBdpdXdwdxdqdydrdsdtdzdAdYd-b.bw x y h _ ~c` Cd/b:b{ ;b| ( } =b?bZd@b[b]b^bz A B C D E i j ~ abadbdbbcbDdEd_b`b{b|bdbeb}b~bfbgb) * hbibacbcccdc0decfcgchcicjcF G H I J K L M N k l m jbkblbcdddedmbnbobFdGdHdkclcmcncocpcpbqbrbqcrcscsbtbub+ , - vbwbxbtcucvcwcxcyc1dzcAcBcCcDcEcO P Q R S T U V W n o p ybzbAbfdgdhdBbCbDbIdJdKdFcGcHcIcJcKcEbFbGbLcMcNcHbIbJb. / : KbLbMbOcPcQcRcScTc2dUcVcWcXcYcZcX Y Z 0 1 2 3 4 5 q r s NbObPbidjdkdQbRbSbLdMdNd0c1c2c3c4c5cTbUbVb6c7c8cWbXbYb; = ? Zb0b1b9c!c#c$c%c'c3d(c)c*c+c,c-c6 7 8 9 ! # $ % ' t u v 2b3b4bldmdnd5b6b7bOdPdQd.c/c:c;c=c?c8b9b!b@c[c]c#b$b%b@ [ ] 'b(b)b^c_c`c{c|c}c

623 ins = inspect(rel_info.link_model) 2,b^ y h D E i j L M N k l m U V W n o p 3 4 5 q r s $ % ' t u v

624 local_table = getattr(ins, "local_table") # noqa: B009 2,b^ y h D E i j L M N k l m U V W n o p 3 4 5 q r s $ % ' t u v

625 if local_table is None: 2,b^ y h D E i j L M N k l m U V W n o p 3 4 5 q r s $ % ' t u v

626 raise RuntimeError( 

627 "Couldn't find the secondary table for " 

628 f"model {rel_info.link_model}" 

629 ) 

630 rel_kwargs["secondary"] = local_table 2,b^ y h D E i j L M N k l m U V W n o p 3 4 5 q r s $ % ' t u v

631 rel_args: List[Any] = [] 25dudvd*b+b,b^ odBdpdXdwdxdqdydrdsdtdzdAdYd-b.bw x y h _ ~c` Cd/b:b{ ;b| ( } =b?bZd@b[b]b^bz A B C D E i j ~ abadbdbbcbDdEd_b`b{b|bdbeb}b~bfbgb) * hbibacbcccdc0decfcgchcicjcF G H I J K L M N k l m jbkblbcdddedmbnbobFdGdHdkclcmcncocpcpbqbrbqcrcscsbtbub+ , - vbwbxbtcucvcwcxcyc1dzcAcBcCcDcEcO P Q R S T U V W n o p ybzbAbfdgdhdBbCbDbIdJdKdFcGcHcIcJcKcEbFbGbLcMcNcHbIbJb. / : KbLbMbOcPcQcRcScTc2dUcVcWcXcYcZcX Y Z 0 1 2 3 4 5 q r s NbObPbidjdkdQbRbSbLdMdNd0c1c2c3c4c5cTbUbVb6c7c8cWbXbYb; = ? Zb0b1b9c!c#c$c%c'c3d(c)c*c+c,c-c6 7 8 9 ! # $ % ' t u v 2b3b4bldmdnd5b6b7bOdPdQd.c/c:c;c=c?c8b9b!b@c[c]c#b$b%b@ [ ] 'b(b)b^c_c`c{c|c}c

632 if rel_info.sa_relationship_args: 25dudvd*b+b,b^ odBdpdXdwdxdqdydrdsdtdzdAdYd-b.bw x y h _ ~c` Cd/b:b{ ;b| ( } =b?bZd@b[b]b^bz A B C D E i j ~ abadbdbbcbDdEd_b`b{b|bdbeb}b~bfbgb) * hbibacbcccdc0decfcgchcicjcF G H I J K L M N k l m jbkblbcdddedmbnbobFdGdHdkclcmcncocpcpbqbrbqcrcscsbtbub+ , - vbwbxbtcucvcwcxcyc1dzcAcBcCcDcEcO P Q R S T U V W n o p ybzbAbfdgdhdBbCbDbIdJdKdFcGcHcIcJcKcEbFbGbLcMcNcHbIbJb. / : KbLbMbOcPcQcRcScTc2dUcVcWcXcYcZcX Y Z 0 1 2 3 4 5 q r s NbObPbidjdkdQbRbSbLdMdNd0c1c2c3c4c5cTbUbVb6c7c8cWbXbYb; = ? Zb0b1b9c!c#c$c%c'c3d(c)c*c+c,c-c6 7 8 9 ! # $ % ' t u v 2b3b4bldmdnd5b6b7bOdPdQd.c/c:c;c=c?c8b9b!b@c[c]c#b$b%b@ [ ] 'b(b)b^c_c`c{c|c}c

633 rel_args.extend(rel_info.sa_relationship_args) 

634 if rel_info.sa_relationship_kwargs: 25dudvd*b+b,b^ odBdpdXdwdxdqdydrdsdtdzdAdYd-b.bw x y h _ ~c` Cd/b:b{ ;b| ( } =b?bZd@b[b]b^bz A B C D E i j ~ abadbdbbcbDdEd_b`b{b|bdbeb}b~bfbgb) * hbibacbcccdc0decfcgchcicjcF G H I J K L M N k l m jbkblbcdddedmbnbobFdGdHdkclcmcncocpcpbqbrbqcrcscsbtbub+ , - vbwbxbtcucvcwcxcyc1dzcAcBcCcDcEcO P Q R S T U V W n o p ybzbAbfdgdhdBbCbDbIdJdKdFcGcHcIcJcKcEbFbGbLcMcNcHbIbJb. / : KbLbMbOcPcQcRcScTc2dUcVcWcXcYcZcX Y Z 0 1 2 3 4 5 q r s NbObPbidjdkdQbRbSbLdMdNd0c1c2c3c4c5cTbUbVb6c7c8cWbXbYb; = ? Zb0b1b9c!c#c$c%c'c3d(c)c*c+c,c-c6 7 8 9 ! # $ % ' t u v 2b3b4bldmdnd5b6b7bOdPdQd.c/c:c;c=c?c8b9b!b@c[c]c#b$b%b@ [ ] 'b(b)b^c_c`c{c|c}c

635 rel_kwargs.update(rel_info.sa_relationship_kwargs) 

636 rel_value = relationship(relationship_to, *rel_args, **rel_kwargs) 25dudvd*b+b,b^ odBdpdXdwdxdqdydrdsdtdzdAdYd-b.bw x y h _ ~c` Cd/b:b{ ;b| ( } =b?bZd@b[b]b^bz A B C D E i j ~ abadbdbbcbDdEd_b`b{b|bdbeb}b~bfbgb) * hbibacbcccdc0decfcgchcicjcF G H I J K L M N k l m jbkblbcdddedmbnbobFdGdHdkclcmcncocpcpbqbrbqcrcscsbtbub+ , - vbwbxbtcucvcwcxcyc1dzcAcBcCcDcEcO P Q R S T U V W n o p ybzbAbfdgdhdBbCbDbIdJdKdFcGcHcIcJcKcEbFbGbLcMcNcHbIbJb. / : KbLbMbOcPcQcRcScTc2dUcVcWcXcYcZcX Y Z 0 1 2 3 4 5 q r s NbObPbidjdkdQbRbSbLdMdNd0c1c2c3c4c5cTbUbVb6c7c8cWbXbYb; = ? Zb0b1b9c!c#c$c%c'c3d(c)c*c+c,c-c6 7 8 9 ! # $ % ' t u v 2b3b4bldmdnd5b6b7bOdPdQd.c/c:c;c=c?c8b9b!b@c[c]c#b$b%b@ [ ] 'b(b)b^c_c`c{c|c}c

637 setattr(cls, rel_name, rel_value) # Fix #315 25dudvd*b+b,b^ odBdpdXdwdxdqdydrdsdtdzdAdYd-b.bw x y h _ ~c` Cd/b:b{ ;b| ( } =b?bZd@b[b]b^bz A B C D E i j ~ abadbdbbcbDdEd_b`b{b|bdbeb}b~bfbgb) * hbibacbcccdc0decfcgchcicjcF G H I J K L M N k l m jbkblbcdddedmbnbobFdGdHdkclcmcncocpcpbqbrbqcrcscsbtbub+ , - vbwbxbtcucvcwcxcyc1dzcAcBcCcDcEcO P Q R S T U V W n o p ybzbAbfdgdhdBbCbDbIdJdKdFcGcHcIcJcKcEbFbGbLcMcNcHbIbJb. / : KbLbMbOcPcQcRcScTc2dUcVcWcXcYcZcX Y Z 0 1 2 3 4 5 q r s NbObPbidjdkdQbRbSbLdMdNd0c1c2c3c4c5cTbUbVb6c7c8cWbXbYb; = ? Zb0b1b9c!c#c$c%c'c3d(c)c*c+c,c-c6 7 8 9 ! # $ % ' t u v 2b3b4bldmdnd5b6b7bOdPdQd.c/c:c;c=c?c8b9b!b@c[c]c#b$b%b@ [ ] 'b(b)b^c_c`c{c|c}c

638 # SQLAlchemy no longer uses dict_ 

639 # Ref: https://github.com/sqlalchemy/sqlalchemy/commit/428ea01f00a9cc7f85e435018565eb6da7af1b77 

640 # Tag: 1.4.36 

641 DeclarativeMeta.__init__(cls, classname, bases, dict_, **kw) 2g 2fwfxfwm*m+msnHn!m*nxm4dymzmAmvmrnIn5dBm,k-kudvdXm3f4f5f6f7f8f9f!fFnGn.k/k7g'k(k)k*k*b8g9g+k+bufvf:k;kCmDmEm=k?k@k[k,b^ od]kFm^k_k`k{k|k}kGmBdpdXdwdxdqdydrdsdtdzdAd~kalblcldlelflglhliljlklllmlnlolplqlrla te~daeylYmZm,mtnRm#nzlRdAlBlClsl#munYdDl!g#g-b.bHmuevewexeyezeAeBe|m}m$g%gyf?f@f[f]fw #fzfXgx 6d7d'g(gElFlGl)g*g+g,gy h _ -gHl.g/g:g;g=g?gIl~c` Cd/b:b{ ;b| ( } =b?b@g[g]g^g_g`g{g|g}g~gahbhchdhehfhghhhihb CebeceJl0m1m-mvnSm$nKlSdLlMlNltl$mwnZdOljhkh@b[b]b^bImDeEeFeGeHeIeJeKe~manlhmh.mAfBf^f_f`f{f|f}f~fagz A $f%fCfDfYgB C 8d9d!d#dnhohPlQlRlphqhrhshD E i j ~ abthSluhvhwhxhyhzhTladbdbbcbDdEd_b`b{b|bdbeb}b~bfbgb) * hbibacbcccdcAhBhChDhEhFhGhHhIhJhKhLhMhNhOhPhQhRhShc LeMedeeefegeUl2m3m/mxnTm%nVlTdWlXlYlul%myn0dZlThUhVhWhecfcgchcicjcJmKmNeOePeQeReSeTeUeVeWeXeYeZe0e1e2ebncndnenXhYhZh0h:m;mEfFfGfbgcgdgegfggghgigjgkglgmgF G H 'f(f)fHfIfJfZg0gI J K $d%d'd(d)d*d1h2h3h4h0l1l2l3l4l5l5h6h7h8h9h!h#h$hL M N k l m jbkblb%h'h6l7l(h)h*h+h,h-h.h/h:h;h=h?h8l9lcdddedmbnbobFdGdHdkclcmcncocpcpbqbrbqcrcscsbtbub+ , - vbwbxbtcucvcwcxcyc@h[h]h^h_h`h{h|h}h~haibicidieifigihiiijikiliminioipiqirisitiuiviwixiyiziAiBid 3e4eheiejeke!l4m5m=mznUm'n#lUd$l%l'lvl'mAn1d(lCiDiEiFizcAcBcCcDcEcLmMm5e6e7e8e9e!e#e$e%e'e(e)e*e+e,e-efngnhninGiHiIiJi?m@mKfLfMfngogpgqgrgsgtgugvgwgxgygO P Q *f+f,fNfOfPf1g2gR S T +d,d-d.d/d:dKiLiMiNi)l*l+l,l-l.lOiPiQiRiSiTiUiViU V W n o p ybzbAbWiXi/l:lYiZi0i1i2i3i4i5i6i7i8i9i;l=lfdgdhdBbCbDbIdJdKdFcGcHcIcJcKcEbFbGbLcMcNcHbIbJb. / : KbLbMbOcPcQcRcScTc!i#i$i%i'i(i)i*i+i,i-i.i/i:i;i=i?i@i[i]i^i_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkje .e/elemeneoe?l6m7m[mBnVm(n@lVd[l]l^lwl(mCn2d_lljmjnjojUcVcWcXcYcZcNmOm:e;e=e?e@e[e]e^e_e`e{e|e}e~eafbfjnknlnmnpjqjrjsj]m^mQfRfSfzgAgBgCgDgEgFgGgHgIgJgKgX Y Z -f.f/fTfUfVf3g4g0 1 2 ;d=d?d@d[d]dtjujvjwj`l{l|l}l~lamxjyjzjAjBjCjDjEj3 4 5 q r s NbObPbFjGjbmcmHjIjJjKjLjMjNjOjPjQjRjSjdmemidjdkdQbRbSbLdMdNd0c1c2c3c4c5cTbUbVb6c7c8cWbXbYb; = ? Zb0b1b9c!c#c$c%c'cTjUjVjWjXjYjZj0j1j2j3j4j5j6j7j8j9j!j#j$j%j'j(j)j*j+j,j-j.j/j:j;j=j?j@j[j]j^jf cfdfpeqeresefm8m9m_mDnWm)ngmWdhmimjmxl)mEn3dkm_j`j{j|j(c)c*c+c,c-cPmQmefffgfhfifjfkflfmfnfofpfqfrfsftfnnonpnqn}j~jakbk`m{mWfXfYfLgMgNgOgPgQgRgSgTgUgVgWg6 7 8 :f;f=fZf0f1f5g6g9 ! # ^d_d`d{d|d}dckdkekfklmmmnmompmqmgkhkikjkkklkmknk$ % ' t u v 2b3b4bokpkrmsmqkrksktkukvkwkxkykzkAkBktmumldmdnd5b6b7bOdPdQd.c/c:c;c=c?c8b9b!b@c[c]c#b$b%b@ [ ] 'b(b)b^c_c`c{c|c}cCkDkEkFkGkHkIkJkKkLkMkNkOkPkQkRkSkTkUkVkWkXkYkZk0k1k2k3k4k5k6k7k8k9k!k#k$k%k

642 else: 

643 ModelMetaclass.__init__(cls, classname, bases, dict_, **kw) 2g *m+mlomonooopo7g'k(k)k*k*b8g9g+bufvfDowoa YmZm;n=n?n@n+nyf?f@f[f]fw #fzfx 6d7dxoqob 0m1m[n]n^n_n,n.mAfBf^f_f`f{f|f}f~fagz A $f%fCfDfB C 8d9d!d#dyoroc 2m3m`n{n|n}n-n:m;mEfFfGfbgcgdgegfggghgigjgkglgmgF G H 'f(f)fHfIfJfI J K $d%d'd(d)d*dzosod 4m5m~naoboco.n?m@mKfLfMfngogpgqgrgsgtgugvgwgxgygO P Q *f+f,fNfOfPfR S T +d,d-d.d/d:dAotoe 6m7mdoeofogo/n]m^mQfRfSfzgAgBgCgDgEgFgGgHgIgJgKgX Y Z -f.f/fTfUfVf0 1 2 ;d=d?d@d[d]dBouof 8m9mhoiojoko:n`m{mWfXfYfLgMgNgOgPgQgRgSgTgUgVgWg6 7 8 :f;f=fZf0f1f9 ! # ^d_d`d{d|d}dCovo

644 

645 

646def get_sqlalchemy_type(field: Any) -> Any: 1gabcdef

647 if IS_PYDANTIC_V2: 2g 2fwfxfwm*m+msnHn!mxm4dymzmAm1nvmrnIn5dBm2n3n!n,k-kudvdXm3f4f5f6f7f8f9f!fFnGn.k/k7g'k(k)k*k*b8g9g+k+bufvf:k;kCmDmEm=k?k@k[k,b^ od]kFm^k_k`k{k|k}kGmBdpdXdwdxdqdydrdsdtdzdAd~kalblcldlelflglhliljlklllmlnlolplqlrla te~daeylYmZm,mtnRmzlRdAlBlClJnsl#munYdDlKnLn4n!g#g-b.bHmuevewexeyezeAeBe|m}m$g%gyf?f@f[f]fw #fzfXgx 6d7d'g(gElFlGl)g*g+g,gy h _ -gHl.g/g:g;g=g?gIl~c` Cd/b:b{ ;b| ( } =b?b@g[g]g^g_g`g{g|g}g~gahbhchdhehfhghhhihb CebeceJl0m1m-mvnSmKlSdLlMlNlMntl$mwnZdOlNnOn5njhkh@b[b]b^bImDeEeFeGeHeIeJeKe~manlhmh.mAfBf^f_f`f{f|f}f~fagz A $f%fCfDfYgB C 8d9d!d#dnhohPlQlRlphqhrhshD E i j ~ abthSluhvhwhxhyhzhTladbdbbcbDdEd_b`b{b|bdbeb}b~bfbgb) * hbibacbcccdcAhBhChDhEhFhGhHhIhJhKhLhMhNhOhPhQhRhShc LeMedeeefegeUl2m3m/mxnTmVlTdWlXlYlPnul%myn0dZlQnRn6nThUhVhWhecfcgchcicjcJmKmNeOePeQeReSeTeUeVeWeXeYeZe0e1e2ebncndnenXhYhZh0h:m;mEfFfGfbgcgdgegfggghgigjgkglgmgF G H 'f(f)fHfIfJfZg0gI J K $d%d'd(d)d*d1h2h3h4h0l1l2l3l4l5l5h6h7h8h9h!h#h$hL M N k l m jbkblb%h'h6l7l(h)h*h+h,h-h.h/h:h;h=h?h8l9lcdddedmbnbobFdGdHdkclcmcncocpcpbqbrbqcrcscsbtbub+ , - vbwbxbtcucvcwcxcyc@h[h]h^h_h`h{h|h}h~haibicidieifigihiiijikiliminioipiqirisitiuiviwixiyiziAiBid 3e4eheiejeke!l4m5m=mznUm#lUd$l%l'lSnvl'mAn1d(lTnUn7nCiDiEiFizcAcBcCcDcEcLmMm5e6e7e8e9e!e#e$e%e'e(e)e*e+e,e-efngnhninGiHiIiJi?m@mKfLfMfngogpgqgrgsgtgugvgwgxgygO P Q *f+f,fNfOfPf1g2gR S T +d,d-d.d/d:dKiLiMiNi)l*l+l,l-l.lOiPiQiRiSiTiUiViU V W n o p ybzbAbWiXi/l:lYiZi0i1i2i3i4i5i6i7i8i9i;l=lfdgdhdBbCbDbIdJdKdFcGcHcIcJcKcEbFbGbLcMcNcHbIbJb. / : KbLbMbOcPcQcRcScTc!i#i$i%i'i(i)i*i+i,i-i.i/i:i;i=i?i@i[i]i^i_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkje .e/elemeneoe?l6m7m[mBnVm@lVd[l]l^lVnwl(mCn2d_lWnXn8nljmjnjojUcVcWcXcYcZcNmOm:e;e=e?e@e[e]e^e_e`e{e|e}e~eafbfjnknlnmnpjqjrjsj]m^mQfRfSfzgAgBgCgDgEgFgGgHgIgJgKgX Y Z -f.f/fTfUfVf3g4g0 1 2 ;d=d?d@d[d]dtjujvjwj`l{l|l}l~lamxjyjzjAjBjCjDjEj3 4 5 q r s NbObPbFjGjbmcmHjIjJjKjLjMjNjOjPjQjRjSjdmemidjdkdQbRbSbLdMdNd0c1c2c3c4c5cTbUbVb6c7c8cWbXbYb; = ? Zb0b1b9c!c#c$c%c'cTjUjVjWjXjYjZj0j1j2j3j4j5j6j7j8j9j!j#j$j%j'j(j)j*j+j,j-j.j/j:j;j=j?j@j[j]j^jf cfdfpeqeresefm8m9m_mDnWmgmWdhmimjmYnxl)mEn3dkmZn0n9n_j`j{j|j(c)c*c+c,c-cPmQmefffgfhfifjfkflfmfnfofpfqfrfsftfnnonpnqn}j~jakbk`m{mWfXfYfLgMgNgOgPgQgRgSgTgUgVgWg6 7 8 :f;f=fZf0f1f5g6g9 ! # ^d_d`d{d|d}dckdkekfklmmmnmompmqmgkhkikjkkklkmknk$ % ' t u v 2b3b4bokpkrmsmqkrksktkukvkwkxkykzkAkBktmumldmdnd5b6b7bOdPdQd.c/c:c;c=c?c8b9b!b@c[c]c#b$b%b@ [ ] 'b(b)b^c_c`c{c|c}cCkDkEkFkGkHkIkJkKkLkMkNkOkPkQkRkSkTkUkVkWkXkYkZk0k1k2k3k4k5k6k7k8k9k!k#k$k%k

648 field_info = field 2g 2fwfxfwm*m+msnHn!mxm4dymzmAm1nvmrnIn5dBm2n3n!n,k-kudvdXm3f4f5f6f7f8f9f!fFnGn.k/k7g'k(k)k*k*b8g9g+k+bufvf:k;kCmDmEm=k?k@k[k,b^ od]kFm^k_k`k{k|k}kGmBdpdXdwdxdqdydrdsdtdzdAd~kalblcldlelflglhliljlklllmlnlolplqlrla te~daeylYmZm,mtnRmzlRdAlBlClJnsl#munYdDlKnLn4n!g#g-b.bHmuevewexeyezeAeBe|m}m$g%gyf?f@f[f]fw #fzfXgx 6d7d'g(gElFlGl)g*g+g,gy h _ -gHl.g/g:g;g=g?gIl~c` Cd/b:b{ ;b| ( } =b?b@g[g]g^g_g`g{g|g}g~gahbhchdhehfhghhhihb CebeceJl0m1m-mvnSmKlSdLlMlNlMntl$mwnZdOlNnOn5njhkh@b[b]b^bImDeEeFeGeHeIeJeKe~manlhmh.mAfBf^f_f`f{f|f}f~fagz A $f%fCfDfYgB C 8d9d!d#dnhohPlQlRlphqhrhshD E i j ~ abthSluhvhwhxhyhzhTladbdbbcbDdEd_b`b{b|bdbeb}b~bfbgb) * hbibacbcccdcAhBhChDhEhFhGhHhIhJhKhLhMhNhOhPhQhRhShc LeMedeeefegeUl2m3m/mxnTmVlTdWlXlYlPnul%myn0dZlQnRn6nThUhVhWhecfcgchcicjcJmKmNeOePeQeReSeTeUeVeWeXeYeZe0e1e2ebncndnenXhYhZh0h:m;mEfFfGfbgcgdgegfggghgigjgkglgmgF G H 'f(f)fHfIfJfZg0gI J K $d%d'd(d)d*d1h2h3h4h0l1l2l3l4l5l5h6h7h8h9h!h#h$hL M N k l m jbkblb%h'h6l7l(h)h*h+h,h-h.h/h:h;h=h?h8l9lcdddedmbnbobFdGdHdkclcmcncocpcpbqbrbqcrcscsbtbub+ , - vbwbxbtcucvcwcxcyc@h[h]h^h_h`h{h|h}h~haibicidieifigihiiijikiliminioipiqirisitiuiviwixiyiziAiBid 3e4eheiejeke!l4m5m=mznUm#lUd$l%l'lSnvl'mAn1d(lTnUn7nCiDiEiFizcAcBcCcDcEcLmMm5e6e7e8e9e!e#e$e%e'e(e)e*e+e,e-efngnhninGiHiIiJi?m@mKfLfMfngogpgqgrgsgtgugvgwgxgygO P Q *f+f,fNfOfPf1g2gR S T +d,d-d.d/d:dKiLiMiNi)l*l+l,l-l.lOiPiQiRiSiTiUiViU V W n o p ybzbAbWiXi/l:lYiZi0i1i2i3i4i5i6i7i8i9i;l=lfdgdhdBbCbDbIdJdKdFcGcHcIcJcKcEbFbGbLcMcNcHbIbJb. / : KbLbMbOcPcQcRcScTc!i#i$i%i'i(i)i*i+i,i-i.i/i:i;i=i?i@i[i]i^i_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkje .e/elemeneoe?l6m7m[mBnVm@lVd[l]l^lVnwl(mCn2d_lWnXn8nljmjnjojUcVcWcXcYcZcNmOm:e;e=e?e@e[e]e^e_e`e{e|e}e~eafbfjnknlnmnpjqjrjsj]m^mQfRfSfzgAgBgCgDgEgFgGgHgIgJgKgX Y Z -f.f/fTfUfVf3g4g0 1 2 ;d=d?d@d[d]dtjujvjwj`l{l|l}l~lamxjyjzjAjBjCjDjEj3 4 5 q r s NbObPbFjGjbmcmHjIjJjKjLjMjNjOjPjQjRjSjdmemidjdkdQbRbSbLdMdNd0c1c2c3c4c5cTbUbVb6c7c8cWbXbYb; = ? Zb0b1b9c!c#c$c%c'cTjUjVjWjXjYjZj0j1j2j3j4j5j6j7j8j9j!j#j$j%j'j(j)j*j+j,j-j.j/j:j;j=j?j@j[j]j^jf cfdfpeqeresefm8m9m_mDnWmgmWdhmimjmYnxl)mEn3dkmZn0n9n_j`j{j|j(c)c*c+c,c-cPmQmefffgfhfifjfkflfmfnfofpfqfrfsftfnnonpnqn}j~jakbk`m{mWfXfYfLgMgNgOgPgQgRgSgTgUgVgWg6 7 8 :f;f=fZf0f1f5g6g9 ! # ^d_d`d{d|d}dckdkekfklmmmnmompmqmgkhkikjkkklkmknk$ % ' t u v 2b3b4bokpkrmsmqkrksktkukvkwkxkykzkAkBktmumldmdnd5b6b7bOdPdQd.c/c:c;c=c?c8b9b!b@c[c]c#b$b%b@ [ ] 'b(b)b^c_c`c{c|c}cCkDkEkFkGkHkIkJkKkLkMkNkOkPkQkRkSkTkUkVkWkXkYkZk0k1k2k3k4k5k6k7k8k9k!k#k$k%k

649 else: 

650 field_info = field.field_info 2g 2fwfxf*m+msnHn!mxm4dymzmAm1nvmrnIn5dBm2n3n!n,k-kudvdXm3f4f5f6f7f8f9f!fFnGn.k/k7g'k(k)k*k*b8g9g+k+bufvf:k;kCmDmEm=k?k@k[k,b^ od]kFm^k_k`k{k|k}kGmBdpdXdwdxdqdydrdsdtdzdAd~kalblcldlelflglhliljlklllmlnlolplqlrla te~daeYmZm,mtnRmzlRdAlBlClJnsl#munYdDlKnLn4n!g#g-b.bHmuevewexeyezeAeBe|m}m$g%gyf?f@f[f]fw #fzfXgx 6d7d'g(gElFlGl)g*g+g,gy h _ -gHl.g/g:g;g=g?gIl~c` Cd/b:b{ ;b| ( } =b?b@g[g]g^g_g`g{g|g}g~gahbhchdhehfhghhhihb Cebece0m1m-mvnSmKlSdLlMlNlMntl$mwnZdOlNnOn5njhkh@b[b]b^bImDeEeFeGeHeIeJeKe~manlhmh.mAfBf^f_f`f{f|f}f~fagz A $f%fCfDfYgB C 8d9d!d#dnhohPlQlRlphqhrhshD E i j ~ abthSluhvhwhxhyhzhTladbdbbcbDdEd_b`b{b|bdbeb}b~bfbgb) * hbibacbcccdcAhBhChDhEhFhGhHhIhJhKhLhMhNhOhPhQhRhShc LeMedeeefege2m3m/mxnTmVlTdWlXlYlPnul%myn0dZlQnRn6nThUhVhWhecfcgchcicjcJmKmNeOePeQeReSeTeUeVeWeXeYeZe0e1e2ebncndnenXhYhZh0h:m;mEfFfGfbgcgdgegfggghgigjgkglgmgF G H 'f(f)fHfIfJfZg0gI J K $d%d'd(d)d*d1h2h3h4h0l1l2l3l4l5l5h6h7h8h9h!h#h$hL M N k l m jbkblb%h'h6l7l(h)h*h+h,h-h.h/h:h;h=h?h8l9lcdddedmbnbobFdGdHdkclcmcncocpcpbqbrbqcrcscsbtbub+ , - vbwbxbtcucvcwcxcyc@h[h]h^h_h`h{h|h}h~haibicidieifigihiiijikiliminioipiqirisitiuiviwixiyiziAiBid 3e4eheiejeke4m5m=mznUm#lUd$l%l'lSnvl'mAn1d(lTnUn7nCiDiEiFizcAcBcCcDcEcLmMm5e6e7e8e9e!e#e$e%e'e(e)e*e+e,e-efngnhninGiHiIiJi?m@mKfLfMfngogpgqgrgsgtgugvgwgxgygO P Q *f+f,fNfOfPf1g2gR S T +d,d-d.d/d:dKiLiMiNi)l*l+l,l-l.lOiPiQiRiSiTiUiViU V W n o p ybzbAbWiXi/l:lYiZi0i1i2i3i4i5i6i7i8i9i;l=lfdgdhdBbCbDbIdJdKdFcGcHcIcJcKcEbFbGbLcMcNcHbIbJb. / : KbLbMbOcPcQcRcScTc!i#i$i%i'i(i)i*i+i,i-i.i/i:i;i=i?i@i[i]i^i_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkje .e/elemeneoe6m7m[mBnVm@lVd[l]l^lVnwl(mCn2d_lWnXn8nljmjnjojUcVcWcXcYcZcNmOm:e;e=e?e@e[e]e^e_e`e{e|e}e~eafbfjnknlnmnpjqjrjsj]m^mQfRfSfzgAgBgCgDgEgFgGgHgIgJgKgX Y Z -f.f/fTfUfVf3g4g0 1 2 ;d=d?d@d[d]dtjujvjwj`l{l|l}l~lamxjyjzjAjBjCjDjEj3 4 5 q r s NbObPbFjGjbmcmHjIjJjKjLjMjNjOjPjQjRjSjdmemidjdkdQbRbSbLdMdNd0c1c2c3c4c5cTbUbVb6c7c8cWbXbYb; = ? Zb0b1b9c!c#c$c%c'cTjUjVjWjXjYjZj0j1j2j3j4j5j6j7j8j9j!j#j$j%j'j(j)j*j+j,j-j.j/j:j;j=j?j@j[j]j^jf cfdfpeqerese8m9m_mDnWmgmWdhmimjmYnxl)mEn3dkmZn0n9n_j`j{j|j(c)c*c+c,c-cPmQmefffgfhfifjfkflfmfnfofpfqfrfsftfnnonpnqn}j~jakbk`m{mWfXfYfLgMgNgOgPgQgRgSgTgUgVgWg6 7 8 :f;f=fZf0f1f5g6g9 ! # ^d_d`d{d|d}dckdkekfklmmmnmompmqmgkhkikjkkklkmknk$ % ' t u v 2b3b4bokpkrmsmqkrksktkukvkwkxkykzkAkBktmumldmdnd5b6b7bOdPdQd.c/c:c;c=c?c8b9b!b@c[c]c#b$b%b@ [ ] 'b(b)b^c_c`c{c|c}cCkDkEkFkGkHkIkJkKkLkMkNkOkPkQkRkSkTkUkVkWkXkYkZk0k1k2k3k4k5k6k7k8k9k!k#k$k%k

651 sa_type = getattr(field_info, "sa_type", Undefined) # noqa: B009 2g 2fwfxfwm*m+msnHn!mxm4dymzmAm1nvmrnIn5dBm2n3n!n,k-kudvdXm3f4f5f6f7f8f9f!fFnGn.k/k7g'k(k)k*k*b8g9g+k+bufvf:k;kCmDmEm=k?k@k[k,b^ od]kFm^k_k`k{k|k}kGmBdpdXdwdxdqdydrdsdtdzdAd~kalblcldlelflglhliljlklllmlnlolplqlrla te~daeylYmZm,mtnRmzlRdAlBlClJnsl#munYdDlKnLn4n!g#g-b.bHmuevewexeyezeAeBe|m}m$g%gyf?f@f[f]fw #fzfXgx 6d7d'g(gElFlGl)g*g+g,gy h _ -gHl.g/g:g;g=g?gIl~c` Cd/b:b{ ;b| ( } =b?b@g[g]g^g_g`g{g|g}g~gahbhchdhehfhghhhihb CebeceJl0m1m-mvnSmKlSdLlMlNlMntl$mwnZdOlNnOn5njhkh@b[b]b^bImDeEeFeGeHeIeJeKe~manlhmh.mAfBf^f_f`f{f|f}f~fagz A $f%fCfDfYgB C 8d9d!d#dnhohPlQlRlphqhrhshD E i j ~ abthSluhvhwhxhyhzhTladbdbbcbDdEd_b`b{b|bdbeb}b~bfbgb) * hbibacbcccdcAhBhChDhEhFhGhHhIhJhKhLhMhNhOhPhQhRhShc LeMedeeefegeUl2m3m/mxnTmVlTdWlXlYlPnul%myn0dZlQnRn6nThUhVhWhecfcgchcicjcJmKmNeOePeQeReSeTeUeVeWeXeYeZe0e1e2ebncndnenXhYhZh0h:m;mEfFfGfbgcgdgegfggghgigjgkglgmgF G H 'f(f)fHfIfJfZg0gI J K $d%d'd(d)d*d1h2h3h4h0l1l2l3l4l5l5h6h7h8h9h!h#h$hL M N k l m jbkblb%h'h6l7l(h)h*h+h,h-h.h/h:h;h=h?h8l9lcdddedmbnbobFdGdHdkclcmcncocpcpbqbrbqcrcscsbtbub+ , - vbwbxbtcucvcwcxcyc@h[h]h^h_h`h{h|h}h~haibicidieifigihiiijikiliminioipiqirisitiuiviwixiyiziAiBid 3e4eheiejeke!l4m5m=mznUm#lUd$l%l'lSnvl'mAn1d(lTnUn7nCiDiEiFizcAcBcCcDcEcLmMm5e6e7e8e9e!e#e$e%e'e(e)e*e+e,e-efngnhninGiHiIiJi?m@mKfLfMfngogpgqgrgsgtgugvgwgxgygO P Q *f+f,fNfOfPf1g2gR S T +d,d-d.d/d:dKiLiMiNi)l*l+l,l-l.lOiPiQiRiSiTiUiViU V W n o p ybzbAbWiXi/l:lYiZi0i1i2i3i4i5i6i7i8i9i;l=lfdgdhdBbCbDbIdJdKdFcGcHcIcJcKcEbFbGbLcMcNcHbIbJb. / : KbLbMbOcPcQcRcScTc!i#i$i%i'i(i)i*i+i,i-i.i/i:i;i=i?i@i[i]i^i_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkje .e/elemeneoe?l6m7m[mBnVm@lVd[l]l^lVnwl(mCn2d_lWnXn8nljmjnjojUcVcWcXcYcZcNmOm:e;e=e?e@e[e]e^e_e`e{e|e}e~eafbfjnknlnmnpjqjrjsj]m^mQfRfSfzgAgBgCgDgEgFgGgHgIgJgKgX Y Z -f.f/fTfUfVf3g4g0 1 2 ;d=d?d@d[d]dtjujvjwj`l{l|l}l~lamxjyjzjAjBjCjDjEj3 4 5 q r s NbObPbFjGjbmcmHjIjJjKjLjMjNjOjPjQjRjSjdmemidjdkdQbRbSbLdMdNd0c1c2c3c4c5cTbUbVb6c7c8cWbXbYb; = ? Zb0b1b9c!c#c$c%c'cTjUjVjWjXjYjZj0j1j2j3j4j5j6j7j8j9j!j#j$j%j'j(j)j*j+j,j-j.j/j:j;j=j?j@j[j]j^jf cfdfpeqeresefm8m9m_mDnWmgmWdhmimjmYnxl)mEn3dkmZn0n9n_j`j{j|j(c)c*c+c,c-cPmQmefffgfhfifjfkflfmfnfofpfqfrfsftfnnonpnqn}j~jakbk`m{mWfXfYfLgMgNgOgPgQgRgSgTgUgVgWg6 7 8 :f;f=fZf0f1f5g6g9 ! # ^d_d`d{d|d}dckdkekfklmmmnmompmqmgkhkikjkkklkmknk$ % ' t u v 2b3b4bokpkrmsmqkrksktkukvkwkxkykzkAkBktmumldmdnd5b6b7bOdPdQd.c/c:c;c=c?c8b9b!b@c[c]c#b$b%b@ [ ] 'b(b)b^c_c`c{c|c}cCkDkEkFkGkHkIkJkKkLkMkNkOkPkQkRkSkTkUkVkWkXkYkZk0k1k2k3k4k5k6k7k8k9k!k#k$k%k

652 if sa_type is not Undefined: 2g 2fwfxfwm*m+msnHn!mxm4dymzmAm1nvmrnIn5dBm2n3n!n,k-kudvdXm3f4f5f6f7f8f9f!fFnGn.k/k7g'k(k)k*k*b8g9g+k+bufvf:k;kCmDmEm=k?k@k[k,b^ od]kFm^k_k`k{k|k}kGmBdpdXdwdxdqdydrdsdtdzdAd~kalblcldlelflglhliljlklllmlnlolplqlrla te~daeylYmZm,mtnRmzlRdAlBlClJnsl#munYdDlKnLn4n!g#g-b.bHmuevewexeyezeAeBe|m}m$g%gyf?f@f[f]fw #fzfXgx 6d7d'g(gElFlGl)g*g+g,gy h _ -gHl.g/g:g;g=g?gIl~c` Cd/b:b{ ;b| ( } =b?b@g[g]g^g_g`g{g|g}g~gahbhchdhehfhghhhihb CebeceJl0m1m-mvnSmKlSdLlMlNlMntl$mwnZdOlNnOn5njhkh@b[b]b^bImDeEeFeGeHeIeJeKe~manlhmh.mAfBf^f_f`f{f|f}f~fagz A $f%fCfDfYgB C 8d9d!d#dnhohPlQlRlphqhrhshD E i j ~ abthSluhvhwhxhyhzhTladbdbbcbDdEd_b`b{b|bdbeb}b~bfbgb) * hbibacbcccdcAhBhChDhEhFhGhHhIhJhKhLhMhNhOhPhQhRhShc LeMedeeefegeUl2m3m/mxnTmVlTdWlXlYlPnul%myn0dZlQnRn6nThUhVhWhecfcgchcicjcJmKmNeOePeQeReSeTeUeVeWeXeYeZe0e1e2ebncndnenXhYhZh0h:m;mEfFfGfbgcgdgegfggghgigjgkglgmgF G H 'f(f)fHfIfJfZg0gI J K $d%d'd(d)d*d1h2h3h4h0l1l2l3l4l5l5h6h7h8h9h!h#h$hL M N k l m jbkblb%h'h6l7l(h)h*h+h,h-h.h/h:h;h=h?h8l9lcdddedmbnbobFdGdHdkclcmcncocpcpbqbrbqcrcscsbtbub+ , - vbwbxbtcucvcwcxcyc@h[h]h^h_h`h{h|h}h~haibicidieifigihiiijikiliminioipiqirisitiuiviwixiyiziAiBid 3e4eheiejeke!l4m5m=mznUm#lUd$l%l'lSnvl'mAn1d(lTnUn7nCiDiEiFizcAcBcCcDcEcLmMm5e6e7e8e9e!e#e$e%e'e(e)e*e+e,e-efngnhninGiHiIiJi?m@mKfLfMfngogpgqgrgsgtgugvgwgxgygO P Q *f+f,fNfOfPf1g2gR S T +d,d-d.d/d:dKiLiMiNi)l*l+l,l-l.lOiPiQiRiSiTiUiViU V W n o p ybzbAbWiXi/l:lYiZi0i1i2i3i4i5i6i7i8i9i;l=lfdgdhdBbCbDbIdJdKdFcGcHcIcJcKcEbFbGbLcMcNcHbIbJb. / : KbLbMbOcPcQcRcScTc!i#i$i%i'i(i)i*i+i,i-i.i/i:i;i=i?i@i[i]i^i_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkje .e/elemeneoe?l6m7m[mBnVm@lVd[l]l^lVnwl(mCn2d_lWnXn8nljmjnjojUcVcWcXcYcZcNmOm:e;e=e?e@e[e]e^e_e`e{e|e}e~eafbfjnknlnmnpjqjrjsj]m^mQfRfSfzgAgBgCgDgEgFgGgHgIgJgKgX Y Z -f.f/fTfUfVf3g4g0 1 2 ;d=d?d@d[d]dtjujvjwj`l{l|l}l~lamxjyjzjAjBjCjDjEj3 4 5 q r s NbObPbFjGjbmcmHjIjJjKjLjMjNjOjPjQjRjSjdmemidjdkdQbRbSbLdMdNd0c1c2c3c4c5cTbUbVb6c7c8cWbXbYb; = ? Zb0b1b9c!c#c$c%c'cTjUjVjWjXjYjZj0j1j2j3j4j5j6j7j8j9j!j#j$j%j'j(j)j*j+j,j-j.j/j:j;j=j?j@j[j]j^jf cfdfpeqeresefm8m9m_mDnWmgmWdhmimjmYnxl)mEn3dkmZn0n9n_j`j{j|j(c)c*c+c,c-cPmQmefffgfhfifjfkflfmfnfofpfqfrfsftfnnonpnqn}j~jakbk`m{mWfXfYfLgMgNgOgPgQgRgSgTgUgVgWg6 7 8 :f;f=fZf0f1f5g6g9 ! # ^d_d`d{d|d}dckdkekfklmmmnmompmqmgkhkikjkkklkmknk$ % ' t u v 2b3b4bokpkrmsmqkrksktkukvkwkxkykzkAkBktmumldmdnd5b6b7bOdPdQd.c/c:c;c=c?c8b9b!b@c[c]c#b$b%b@ [ ] 'b(b)b^c_c`c{c|c}cCkDkEkFkGkHkIkJkKkLkMkNkOkPkQkRkSkTkUkVkWkXkYkZk0k1k2k3k4k5k6k7k8k9k!k#k$k%k

653 return sa_type 

654 

655 type_ = get_sa_type_from_field(field) 2g 2fwfxfwm*m+msnHn!mxm4dymzmAm1nvmrnIn5dBm2n3n!n,k-kudvdXm3f4f5f6f7f8f9f!fFnGn.k/k7g'k(k)k*k*b8g9g+k+bufvf:k;kCmDmEm=k?k@k[k,b^ od]kFm^k_k`k{k|k}kGmBdpdXdwdxdqdydrdsdtdzdAd~kalblcldlelflglhliljlklllmlnlolplqlrla te~daeylYmZm,mtnRmzlRdAlBlClJnsl#munYdDlKnLn4n!g#g-b.bHmuevewexeyezeAeBe|m}m$g%gyf?f@f[f]fw #fzfXgx 6d7d'g(gElFlGl)g*g+g,gy h _ -gHl.g/g:g;g=g?gIl~c` Cd/b:b{ ;b| ( } =b?b@g[g]g^g_g`g{g|g}g~gahbhchdhehfhghhhihb CebeceJl0m1m-mvnSmKlSdLlMlNlMntl$mwnZdOlNnOn5njhkh@b[b]b^bImDeEeFeGeHeIeJeKe~manlhmh.mAfBf^f_f`f{f|f}f~fagz A $f%fCfDfYgB C 8d9d!d#dnhohPlQlRlphqhrhshD E i j ~ abthSluhvhwhxhyhzhTladbdbbcbDdEd_b`b{b|bdbeb}b~bfbgb) * hbibacbcccdcAhBhChDhEhFhGhHhIhJhKhLhMhNhOhPhQhRhShc LeMedeeefegeUl2m3m/mxnTmVlTdWlXlYlPnul%myn0dZlQnRn6nThUhVhWhecfcgchcicjcJmKmNeOePeQeReSeTeUeVeWeXeYeZe0e1e2ebncndnenXhYhZh0h:m;mEfFfGfbgcgdgegfggghgigjgkglgmgF G H 'f(f)fHfIfJfZg0gI J K $d%d'd(d)d*d1h2h3h4h0l1l2l3l4l5l5h6h7h8h9h!h#h$hL M N k l m jbkblb%h'h6l7l(h)h*h+h,h-h.h/h:h;h=h?h8l9lcdddedmbnbobFdGdHdkclcmcncocpcpbqbrbqcrcscsbtbub+ , - vbwbxbtcucvcwcxcyc@h[h]h^h_h`h{h|h}h~haibicidieifigihiiijikiliminioipiqirisitiuiviwixiyiziAiBid 3e4eheiejeke!l4m5m=mznUm#lUd$l%l'lSnvl'mAn1d(lTnUn7nCiDiEiFizcAcBcCcDcEcLmMm5e6e7e8e9e!e#e$e%e'e(e)e*e+e,e-efngnhninGiHiIiJi?m@mKfLfMfngogpgqgrgsgtgugvgwgxgygO P Q *f+f,fNfOfPf1g2gR S T +d,d-d.d/d:dKiLiMiNi)l*l+l,l-l.lOiPiQiRiSiTiUiViU V W n o p ybzbAbWiXi/l:lYiZi0i1i2i3i4i5i6i7i8i9i;l=lfdgdhdBbCbDbIdJdKdFcGcHcIcJcKcEbFbGbLcMcNcHbIbJb. / : KbLbMbOcPcQcRcScTc!i#i$i%i'i(i)i*i+i,i-i.i/i:i;i=i?i@i[i]i^i_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkje .e/elemeneoe?l6m7m[mBnVm@lVd[l]l^lVnwl(mCn2d_lWnXn8nljmjnjojUcVcWcXcYcZcNmOm:e;e=e?e@e[e]e^e_e`e{e|e}e~eafbfjnknlnmnpjqjrjsj]m^mQfRfSfzgAgBgCgDgEgFgGgHgIgJgKgX Y Z -f.f/fTfUfVf3g4g0 1 2 ;d=d?d@d[d]dtjujvjwj`l{l|l}l~lamxjyjzjAjBjCjDjEj3 4 5 q r s NbObPbFjGjbmcmHjIjJjKjLjMjNjOjPjQjRjSjdmemidjdkdQbRbSbLdMdNd0c1c2c3c4c5cTbUbVb6c7c8cWbXbYb; = ? Zb0b1b9c!c#c$c%c'cTjUjVjWjXjYjZj0j1j2j3j4j5j6j7j8j9j!j#j$j%j'j(j)j*j+j,j-j.j/j:j;j=j?j@j[j]j^jf cfdfpeqeresefm8m9m_mDnWmgmWdhmimjmYnxl)mEn3dkmZn0n9n_j`j{j|j(c)c*c+c,c-cPmQmefffgfhfifjfkflfmfnfofpfqfrfsftfnnonpnqn}j~jakbk`m{mWfXfYfLgMgNgOgPgQgRgSgTgUgVgWg6 7 8 :f;f=fZf0f1f5g6g9 ! # ^d_d`d{d|d}dckdkekfklmmmnmompmqmgkhkikjkkklkmknk$ % ' t u v 2b3b4bokpkrmsmqkrksktkukvkwkxkykzkAkBktmumldmdnd5b6b7bOdPdQd.c/c:c;c=c?c8b9b!b@c[c]c#b$b%b@ [ ] 'b(b)b^c_c`c{c|c}cCkDkEkFkGkHkIkJkKkLkMkNkOkPkQkRkSkTkUkVkWkXkYkZk0k1k2k3k4k5k6k7k8k9k!k#k$k%k

656 metadata = get_field_metadata(field) 2g 2fwfxfwm*m+msnHn!mxm4dymzmAm1nvmrnIn5dBm2n3n!n,k-kudvdXm3f4f5f6f7f8f9f!fFnGn.k/k7g'k(k)k*k*b8g9g+k+bufvf:k;kCmDmEm=k?k@k[k,b^ od]kFm^k_k`k{k|k}kGmBdpdXdwdxdqdydrdsdtdzdAd~kalblcldlelflglhliljlklllmlnlolplqlrla te~daeylYmZm,mtnRmzlRdAlBlClJnsl#munYdDlKnLn4n!g#g-b.bHmuevewexeyezeAeBe|m}m$g%gyf?f@f[f]fw #fzfXgx 6d7d'g(gElFlGl)g*g+g,gy h _ -gHl.g/g:g;g=g?gIl~c` Cd/b:b{ ;b| ( } =b?b@g[g]g^g_g`g{g|g}g~gahbhchdhehfhghhhihb CebeceJl0m1m-mvnSmKlSdLlMlNlMntl$mwnZdOlNnOn5njhkh@b[b]b^bImDeEeFeGeHeIeJeKe~manlhmh.mAfBf^f_f`f{f|f}f~fagz A $f%fCfDfYgB C 8d9d!d#dnhohPlQlRlphqhrhshD E i j ~ abthSluhvhwhxhyhzhTladbdbbcbDdEd_b`b{b|bdbeb}b~bfbgb) * hbibacbcccdcAhBhChDhEhFhGhHhIhJhKhLhMhNhOhPhQhRhShc LeMedeeefegeUl2m3m/mxnTmVlTdWlXlYlPnul%myn0dZlQnRn6nThUhVhWhecfcgchcicjcJmKmNeOePeQeReSeTeUeVeWeXeYeZe0e1e2ebncndnenXhYhZh0h:m;mEfFfGfbgcgdgegfggghgigjgkglgmgF G H 'f(f)fHfIfJfZg0gI J K $d%d'd(d)d*d1h2h3h4h0l1l2l3l4l5l5h6h7h8h9h!h#h$hL M N k l m jbkblb%h'h6l7l(h)h*h+h,h-h.h/h:h;h=h?h8l9lcdddedmbnbobFdGdHdkclcmcncocpcpbqbrbqcrcscsbtbub+ , - vbwbxbtcucvcwcxcyc@h[h]h^h_h`h{h|h}h~haibicidieifigihiiijikiliminioipiqirisitiuiviwixiyiziAiBid 3e4eheiejeke!l4m5m=mznUm#lUd$l%l'lSnvl'mAn1d(lTnUn7nCiDiEiFizcAcBcCcDcEcLmMm5e6e7e8e9e!e#e$e%e'e(e)e*e+e,e-efngnhninGiHiIiJi?m@mKfLfMfngogpgqgrgsgtgugvgwgxgygO P Q *f+f,fNfOfPf1g2gR S T +d,d-d.d/d:dKiLiMiNi)l*l+l,l-l.lOiPiQiRiSiTiUiViU V W n o p ybzbAbWiXi/l:lYiZi0i1i2i3i4i5i6i7i8i9i;l=lfdgdhdBbCbDbIdJdKdFcGcHcIcJcKcEbFbGbLcMcNcHbIbJb. / : KbLbMbOcPcQcRcScTc!i#i$i%i'i(i)i*i+i,i-i.i/i:i;i=i?i@i[i]i^i_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkje .e/elemeneoe?l6m7m[mBnVm@lVd[l]l^lVnwl(mCn2d_lWnXn8nljmjnjojUcVcWcXcYcZcNmOm:e;e=e?e@e[e]e^e_e`e{e|e}e~eafbfjnknlnmnpjqjrjsj]m^mQfRfSfzgAgBgCgDgEgFgGgHgIgJgKgX Y Z -f.f/fTfUfVf3g4g0 1 2 ;d=d?d@d[d]dtjujvjwj`l{l|l}l~lamxjyjzjAjBjCjDjEj3 4 5 q r s NbObPbFjGjbmcmHjIjJjKjLjMjNjOjPjQjRjSjdmemidjdkdQbRbSbLdMdNd0c1c2c3c4c5cTbUbVb6c7c8cWbXbYb; = ? Zb0b1b9c!c#c$c%c'cTjUjVjWjXjYjZj0j1j2j3j4j5j6j7j8j9j!j#j$j%j'j(j)j*j+j,j-j.j/j:j;j=j?j@j[j]j^jf cfdfpeqeresefm8m9m_mDnWmgmWdhmimjmYnxl)mEn3dkmZn0n9n_j`j{j|j(c)c*c+c,c-cPmQmefffgfhfifjfkflfmfnfofpfqfrfsftfnnonpnqn}j~jakbk`m{mWfXfYfLgMgNgOgPgQgRgSgTgUgVgWg6 7 8 :f;f=fZf0f1f5g6g9 ! # ^d_d`d{d|d}dckdkekfklmmmnmompmqmgkhkikjkkklkmknk$ % ' t u v 2b3b4bokpkrmsmqkrksktkukvkwkxkykzkAkBktmumldmdnd5b6b7bOdPdQd.c/c:c;c=c?c8b9b!b@c[c]c#b$b%b@ [ ] 'b(b)b^c_c`c{c|c}cCkDkEkFkGkHkIkJkKkLkMkNkOkPkQkRkSkTkUkVkWkXkYkZk0k1k2k3k4k5k6k7k8k9k!k#k$k%k

657 

658 # Check enums first as an enum can also be a str, needed by Pydantic/FastAPI 

659 if issubclass(type_, Enum): 2g 2fwfxfwm*m+msnHn!mxm4dymzmAm1nvmrnIn5dBm2n3n!n,k-kudvdXm3f4f5f6f7f8f9f!fFnGn.k/k7g'k(k)k*k*b8g9g+k+bufvf:k;kCmDmEm=k?k@k[k,b^ od]kFm^k_k`k{k|k}kGmBdpdXdwdxdqdydrdsdtdzdAd~kalblcldlelflglhliljlklllmlnlolplqlrla te~daeylYmZm,mtnRmzlRdAlBlClJnsl#munYdDlKnLn4n!g#g-b.bHmuevewexeyezeAeBe|m}m$g%gyf?f@f[f]fw #fzfXgx 6d7d'g(gElFlGl)g*g+g,gy h _ -gHl.g/g:g;g=g?gIl~c` Cd/b:b{ ;b| ( } =b?b@g[g]g^g_g`g{g|g}g~gahbhchdhehfhghhhihb CebeceJl0m1m-mvnSmKlSdLlMlNlMntl$mwnZdOlNnOn5njhkh@b[b]b^bImDeEeFeGeHeIeJeKe~manlhmh.mAfBf^f_f`f{f|f}f~fagz A $f%fCfDfYgB C 8d9d!d#dnhohPlQlRlphqhrhshD E i j ~ abthSluhvhwhxhyhzhTladbdbbcbDdEd_b`b{b|bdbeb}b~bfbgb) * hbibacbcccdcAhBhChDhEhFhGhHhIhJhKhLhMhNhOhPhQhRhShc LeMedeeefegeUl2m3m/mxnTmVlTdWlXlYlPnul%myn0dZlQnRn6nThUhVhWhecfcgchcicjcJmKmNeOePeQeReSeTeUeVeWeXeYeZe0e1e2ebncndnenXhYhZh0h:m;mEfFfGfbgcgdgegfggghgigjgkglgmgF G H 'f(f)fHfIfJfZg0gI J K $d%d'd(d)d*d1h2h3h4h0l1l2l3l4l5l5h6h7h8h9h!h#h$hL M N k l m jbkblb%h'h6l7l(h)h*h+h,h-h.h/h:h;h=h?h8l9lcdddedmbnbobFdGdHdkclcmcncocpcpbqbrbqcrcscsbtbub+ , - vbwbxbtcucvcwcxcyc@h[h]h^h_h`h{h|h}h~haibicidieifigihiiijikiliminioipiqirisitiuiviwixiyiziAiBid 3e4eheiejeke!l4m5m=mznUm#lUd$l%l'lSnvl'mAn1d(lTnUn7nCiDiEiFizcAcBcCcDcEcLmMm5e6e7e8e9e!e#e$e%e'e(e)e*e+e,e-efngnhninGiHiIiJi?m@mKfLfMfngogpgqgrgsgtgugvgwgxgygO P Q *f+f,fNfOfPf1g2gR S T +d,d-d.d/d:dKiLiMiNi)l*l+l,l-l.lOiPiQiRiSiTiUiViU V W n o p ybzbAbWiXi/l:lYiZi0i1i2i3i4i5i6i7i8i9i;l=lfdgdhdBbCbDbIdJdKdFcGcHcIcJcKcEbFbGbLcMcNcHbIbJb. / : KbLbMbOcPcQcRcScTc!i#i$i%i'i(i)i*i+i,i-i.i/i:i;i=i?i@i[i]i^i_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkje .e/elemeneoe?l6m7m[mBnVm@lVd[l]l^lVnwl(mCn2d_lWnXn8nljmjnjojUcVcWcXcYcZcNmOm:e;e=e?e@e[e]e^e_e`e{e|e}e~eafbfjnknlnmnpjqjrjsj]m^mQfRfSfzgAgBgCgDgEgFgGgHgIgJgKgX Y Z -f.f/fTfUfVf3g4g0 1 2 ;d=d?d@d[d]dtjujvjwj`l{l|l}l~lamxjyjzjAjBjCjDjEj3 4 5 q r s NbObPbFjGjbmcmHjIjJjKjLjMjNjOjPjQjRjSjdmemidjdkdQbRbSbLdMdNd0c1c2c3c4c5cTbUbVb6c7c8cWbXbYb; = ? Zb0b1b9c!c#c$c%c'cTjUjVjWjXjYjZj0j1j2j3j4j5j6j7j8j9j!j#j$j%j'j(j)j*j+j,j-j.j/j:j;j=j?j@j[j]j^jf cfdfpeqeresefm8m9m_mDnWmgmWdhmimjmYnxl)mEn3dkmZn0n9n_j`j{j|j(c)c*c+c,c-cPmQmefffgfhfifjfkflfmfnfofpfqfrfsftfnnonpnqn}j~jakbk`m{mWfXfYfLgMgNgOgPgQgRgSgTgUgVgWg6 7 8 :f;f=fZf0f1f5g6g9 ! # ^d_d`d{d|d}dckdkekfklmmmnmompmqmgkhkikjkkklkmknk$ % ' t u v 2b3b4bokpkrmsmqkrksktkukvkwkxkykzkAkBktmumldmdnd5b6b7bOdPdQd.c/c:c;c=c?c8b9b!b@c[c]c#b$b%b@ [ ] 'b(b)b^c_c`c{c|c}cCkDkEkFkGkHkIkJkKkLkMkNkOkPkQkRkSkTkUkVkWkXkYkZk0k1k2k3k4k5k6k7k8k9k!k#k$k%k

660 return sa_Enum(type_) 2g *m+ma YmZmb 0m1mc 2m3md 4m5me 6m7mf 8m9m

661 if issubclass( 2g 2fwfxfwm*m+msnHn!mxm4dymzmAm1nvmrnIn5dBm2n3n!n,k-kudvdXm3f4f5f6f7f8f9f!fFnGn.k/k7g'k(k)k*k*b8g9g+k+bufvf:k;kCmDmEm=k?k@k[k,b^ od]kFm^k_k`k{k|k}kGmBdpdXdwdxdqdydrdsdtdzdAd~kalblcldlelflglhliljlklllmlnlolplqlrla te~daeylYmZm,mtnRmzlRdAlBlClJnsl#munYdDlKnLn4n!g#g-b.bHmuevewexeyezeAeBe|m}m$g%gyf?f@f[f]fw #fzfXgx 6d7d'g(gElFlGl)g*g+g,gy h _ -gHl.g/g:g;g=g?gIl~c` Cd/b:b{ ;b| ( } =b?b@g[g]g^g_g`g{g|g}g~gahbhchdhehfhghhhihb CebeceJl0m1m-mvnSmKlSdLlMlNlMntl$mwnZdOlNnOn5njhkh@b[b]b^bImDeEeFeGeHeIeJeKe~manlhmh.mAfBf^f_f`f{f|f}f~fagz A $f%fCfDfYgB C 8d9d!d#dnhohPlQlRlphqhrhshD E i j ~ abthSluhvhwhxhyhzhTladbdbbcbDdEd_b`b{b|bdbeb}b~bfbgb) * hbibacbcccdcAhBhChDhEhFhGhHhIhJhKhLhMhNhOhPhQhRhShc LeMedeeefegeUl2m3m/mxnTmVlTdWlXlYlPnul%myn0dZlQnRn6nThUhVhWhecfcgchcicjcJmKmNeOePeQeReSeTeUeVeWeXeYeZe0e1e2ebncndnenXhYhZh0h:m;mEfFfGfbgcgdgegfggghgigjgkglgmgF G H 'f(f)fHfIfJfZg0gI J K $d%d'd(d)d*d1h2h3h4h0l1l2l3l4l5l5h6h7h8h9h!h#h$hL M N k l m jbkblb%h'h6l7l(h)h*h+h,h-h.h/h:h;h=h?h8l9lcdddedmbnbobFdGdHdkclcmcncocpcpbqbrbqcrcscsbtbub+ , - vbwbxbtcucvcwcxcyc@h[h]h^h_h`h{h|h}h~haibicidieifigihiiijikiliminioipiqirisitiuiviwixiyiziAiBid 3e4eheiejeke!l4m5m=mznUm#lUd$l%l'lSnvl'mAn1d(lTnUn7nCiDiEiFizcAcBcCcDcEcLmMm5e6e7e8e9e!e#e$e%e'e(e)e*e+e,e-efngnhninGiHiIiJi?m@mKfLfMfngogpgqgrgsgtgugvgwgxgygO P Q *f+f,fNfOfPf1g2gR S T +d,d-d.d/d:dKiLiMiNi)l*l+l,l-l.lOiPiQiRiSiTiUiViU V W n o p ybzbAbWiXi/l:lYiZi0i1i2i3i4i5i6i7i8i9i;l=lfdgdhdBbCbDbIdJdKdFcGcHcIcJcKcEbFbGbLcMcNcHbIbJb. / : KbLbMbOcPcQcRcScTc!i#i$i%i'i(i)i*i+i,i-i.i/i:i;i=i?i@i[i]i^i_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkje .e/elemeneoe?l6m7m[mBnVm@lVd[l]l^lVnwl(mCn2d_lWnXn8nljmjnjojUcVcWcXcYcZcNmOm:e;e=e?e@e[e]e^e_e`e{e|e}e~eafbfjnknlnmnpjqjrjsj]m^mQfRfSfzgAgBgCgDgEgFgGgHgIgJgKgX Y Z -f.f/fTfUfVf3g4g0 1 2 ;d=d?d@d[d]dtjujvjwj`l{l|l}l~lamxjyjzjAjBjCjDjEj3 4 5 q r s NbObPbFjGjbmcmHjIjJjKjLjMjNjOjPjQjRjSjdmemidjdkdQbRbSbLdMdNd0c1c2c3c4c5cTbUbVb6c7c8cWbXbYb; = ? Zb0b1b9c!c#c$c%c'cTjUjVjWjXjYjZj0j1j2j3j4j5j6j7j8j9j!j#j$j%j'j(j)j*j+j,j-j.j/j:j;j=j?j@j[j]j^jf cfdfpeqeresefm8m9m_mDnWmgmWdhmimjmYnxl)mEn3dkmZn0n9n_j`j{j|j(c)c*c+c,c-cPmQmefffgfhfifjfkflfmfnfofpfqfrfsftfnnonpnqn}j~jakbk`m{mWfXfYfLgMgNgOgPgQgRgSgTgUgVgWg6 7 8 :f;f=fZf0f1f5g6g9 ! # ^d_d`d{d|d}dckdkekfklmmmnmompmqmgkhkikjkkklkmknk$ % ' t u v 2b3b4bokpkrmsmqkrksktkukvkwkxkykzkAkBktmumldmdnd5b6b7bOdPdQd.c/c:c;c=c?c8b9b!b@c[c]c#b$b%b@ [ ] 'b(b)b^c_c`c{c|c}cCkDkEkFkGkHkIkJkKkLkMkNkOkPkQkRkSkTkUkVkWkXkYkZk0k1k2k3k4k5k6k7k8k9k!k#k$k%k

662 type_, 

663 ( 

664 str, 

665 ipaddress.IPv4Address, 

666 ipaddress.IPv4Network, 

667 ipaddress.IPv6Address, 

668 ipaddress.IPv6Network, 

669 Path, 

670 EmailStr, 

671 ), 

672 ): 

673 max_length = getattr(metadata, "max_length", None) 2g 2fwfxfsn!mxm4dymzmAmvmrn5dBm,k-kudvdXm3f4f5f6f7f8f9f!fFnGn.k/k7g'k(k)k*k*b8g9g+k+bufvf:k;kCmDmEm=k?k@k[k,b^ od]kFm^k_k`k{k|k}kGmBdpdXdwdxdqdydrdsdtdzdAd~kalblcldlelflglhliljlklllmlnlolplqlrla te~dae,mRmzlRdAlBlClsl#mYdDl!g#g-b.bHmuevewexeyezeAeBe|m}m$g%gyf?f@f[f]fw #fzfXgx 6d7d'g(gElFlGl)g*g+g,gy h _ -gHl.g/g:g;g=g?gIl~c` Cd/b:b{ ;b| ( } =b?b@g[g]g^g_g`g{g|g}g~gahbhchdhehfhghhhihb Cebece-mSmKlSdLlMlNltl$mZdOljhkh@b[b]b^bImDeEeFeGeHeIeJeKe~manlhmh.mAfBf^f_f`f{f|f}f~fagz A $f%fCfDfYgB C 8d9d!d#dnhohPlQlRlphqhrhshD E i j ~ abthSluhvhwhxhyhzhTladbdbbcbDdEd_b`b{b|bdbeb}b~bfbgb) * hbibacbcccdcAhBhChDhEhFhGhHhIhJhKhLhMhNhOhPhQhRhShc LeMedeeefege/mTmVlTdWlXlYlul%m0dZlThUhVhWhecfcgchcicjcJmKmNeOePeQeReSeTeUeVeWeXeYeZe0e1e2ebncndnenXhYhZh0h:m;mEfFfGfbgcgdgegfggghgigjgkglgmgF G H 'f(f)fHfIfJfZg0gI J K $d%d'd(d)d*d1h2h3h4h0l1l2l3l4l5l5h6h7h8h9h!h#h$hL M N k l m jbkblb%h'h6l7l(h)h*h+h,h-h.h/h:h;h=h?h8l9lcdddedmbnbobFdGdHdkclcmcncocpcpbqbrbqcrcscsbtbub+ , - vbwbxbtcucvcwcxcyc@h[h]h^h_h`h{h|h}h~haibicidieifigihiiijikiliminioipiqirisitiuiviwixiyiziAiBid 3e4eheiejeke=mUm#lUd$l%l'lvl'm1d(lCiDiEiFizcAcBcCcDcEcLmMm5e6e7e8e9e!e#e$e%e'e(e)e*e+e,e-efngnhninGiHiIiJi?m@mKfLfMfngogpgqgrgsgtgugvgwgxgygO P Q *f+f,fNfOfPf1g2gR S T +d,d-d.d/d:dKiLiMiNi)l*l+l,l-l.lOiPiQiRiSiTiUiViU V W n o p ybzbAbWiXi/l:lYiZi0i1i2i3i4i5i6i7i8i9i;l=lfdgdhdBbCbDbIdJdKdFcGcHcIcJcKcEbFbGbLcMcNcHbIbJb. / : KbLbMbOcPcQcRcScTc!i#i$i%i'i(i)i*i+i,i-i.i/i:i;i=i?i@i[i]i^i_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkje .e/elemeneoe[mVm@lVd[l]l^lwl(m2d_lljmjnjojUcVcWcXcYcZcNmOm:e;e=e?e@e[e]e^e_e`e{e|e}e~eafbfjnknlnmnpjqjrjsj]m^mQfRfSfzgAgBgCgDgEgFgGgHgIgJgKgX Y Z -f.f/fTfUfVf3g4g0 1 2 ;d=d?d@d[d]dtjujvjwj`l{l|l}l~lamxjyjzjAjBjCjDjEj3 4 5 q r s NbObPbFjGjbmcmHjIjJjKjLjMjNjOjPjQjRjSjdmemidjdkdQbRbSbLdMdNd0c1c2c3c4c5cTbUbVb6c7c8cWbXbYb; = ? Zb0b1b9c!c#c$c%c'cTjUjVjWjXjYjZj0j1j2j3j4j5j6j7j8j9j!j#j$j%j'j(j)j*j+j,j-j.j/j:j;j=j?j@j[j]j^jf cfdfpeqerese_mWmgmWdhmimjmxl)m3dkm_j`j{j|j(c)c*c+c,c-cPmQmefffgfhfifjfkflfmfnfofpfqfrfsftfnnonpnqn}j~jakbk`m{mWfXfYfLgMgNgOgPgQgRgSgTgUgVgWg6 7 8 :f;f=fZf0f1f5g6g9 ! # ^d_d`d{d|d}dckdkekfklmmmnmompmqmgkhkikjkkklkmknk$ % ' t u v 2b3b4bokpkrmsmqkrksktkukvkwkxkykzkAkBktmumldmdnd5b6b7bOdPdQd.c/c:c;c=c?c8b9b!b@c[c]c#b$b%b@ [ ] 'b(b)b^c_c`c{c|c}cCkDkEkFkGkHkIkJkKkLkMkNkOkPkQkRkSkTkUkVkWkXkYkZk0k1k2k3k4k5k6k7k8k9k!k#k$k%k

674 if max_length: 2g 2fwfxfsn!mxm4dymzmAmvmrn5dBm,k-kudvdXm3f4f5f6f7f8f9f!fFnGn.k/k7g'k(k)k*k*b8g9g+k+bufvf:k;kCmDmEm=k?k@k[k,b^ od]kFm^k_k`k{k|k}kGmBdpdXdwdxdqdydrdsdtdzdAd~kalblcldlelflglhliljlklllmlnlolplqlrla te~dae,mRmzlRdAlBlClsl#mYdDl!g#g-b.bHmuevewexeyezeAeBe|m}m$g%gyf?f@f[f]fw #fzfXgx 6d7d'g(gElFlGl)g*g+g,gy h _ -gHl.g/g:g;g=g?gIl~c` Cd/b:b{ ;b| ( } =b?b@g[g]g^g_g`g{g|g}g~gahbhchdhehfhghhhihb Cebece-mSmKlSdLlMlNltl$mZdOljhkh@b[b]b^bImDeEeFeGeHeIeJeKe~manlhmh.mAfBf^f_f`f{f|f}f~fagz A $f%fCfDfYgB C 8d9d!d#dnhohPlQlRlphqhrhshD E i j ~ abthSluhvhwhxhyhzhTladbdbbcbDdEd_b`b{b|bdbeb}b~bfbgb) * hbibacbcccdcAhBhChDhEhFhGhHhIhJhKhLhMhNhOhPhQhRhShc LeMedeeefege/mTmVlTdWlXlYlul%m0dZlThUhVhWhecfcgchcicjcJmKmNeOePeQeReSeTeUeVeWeXeYeZe0e1e2ebncndnenXhYhZh0h:m;mEfFfGfbgcgdgegfggghgigjgkglgmgF G H 'f(f)fHfIfJfZg0gI J K $d%d'd(d)d*d1h2h3h4h0l1l2l3l4l5l5h6h7h8h9h!h#h$hL M N k l m jbkblb%h'h6l7l(h)h*h+h,h-h.h/h:h;h=h?h8l9lcdddedmbnbobFdGdHdkclcmcncocpcpbqbrbqcrcscsbtbub+ , - vbwbxbtcucvcwcxcyc@h[h]h^h_h`h{h|h}h~haibicidieifigihiiijikiliminioipiqirisitiuiviwixiyiziAiBid 3e4eheiejeke=mUm#lUd$l%l'lvl'm1d(lCiDiEiFizcAcBcCcDcEcLmMm5e6e7e8e9e!e#e$e%e'e(e)e*e+e,e-efngnhninGiHiIiJi?m@mKfLfMfngogpgqgrgsgtgugvgwgxgygO P Q *f+f,fNfOfPf1g2gR S T +d,d-d.d/d:dKiLiMiNi)l*l+l,l-l.lOiPiQiRiSiTiUiViU V W n o p ybzbAbWiXi/l:lYiZi0i1i2i3i4i5i6i7i8i9i;l=lfdgdhdBbCbDbIdJdKdFcGcHcIcJcKcEbFbGbLcMcNcHbIbJb. / : KbLbMbOcPcQcRcScTc!i#i$i%i'i(i)i*i+i,i-i.i/i:i;i=i?i@i[i]i^i_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkje .e/elemeneoe[mVm@lVd[l]l^lwl(m2d_lljmjnjojUcVcWcXcYcZcNmOm:e;e=e?e@e[e]e^e_e`e{e|e}e~eafbfjnknlnmnpjqjrjsj]m^mQfRfSfzgAgBgCgDgEgFgGgHgIgJgKgX Y Z -f.f/fTfUfVf3g4g0 1 2 ;d=d?d@d[d]dtjujvjwj`l{l|l}l~lamxjyjzjAjBjCjDjEj3 4 5 q r s NbObPbFjGjbmcmHjIjJjKjLjMjNjOjPjQjRjSjdmemidjdkdQbRbSbLdMdNd0c1c2c3c4c5cTbUbVb6c7c8cWbXbYb; = ? Zb0b1b9c!c#c$c%c'cTjUjVjWjXjYjZj0j1j2j3j4j5j6j7j8j9j!j#j$j%j'j(j)j*j+j,j-j.j/j:j;j=j?j@j[j]j^jf cfdfpeqerese_mWmgmWdhmimjmxl)m3dkm_j`j{j|j(c)c*c+c,c-cPmQmefffgfhfifjfkflfmfnfofpfqfrfsftfnnonpnqn}j~jakbk`m{mWfXfYfLgMgNgOgPgQgRgSgTgUgVgWg6 7 8 :f;f=fZf0f1f5g6g9 ! # ^d_d`d{d|d}dckdkekfklmmmnmompmqmgkhkikjkkklkmknk$ % ' t u v 2b3b4bokpkrmsmqkrksktkukvkwkxkykzkAkBktmumldmdnd5b6b7bOdPdQd.c/c:c;c=c?c8b9b!b@c[c]c#b$b%b@ [ ] 'b(b)b^c_c`c{c|c}cCkDkEkFkGkHkIkJkKkLkMkNkOkPkQkRkSkTkUkVkWkXkYkZk0k1k2k3k4k5k6k7k8k9k!k#k$k%k

675 return AutoString(length=max_length) 

676 return AutoString 2g 2fwfxfsn!mxm4dymzmAmvmrn5dBm,k-kudvdXm3f4f5f6f7f8f9f!fFnGn.k/k7g'k(k)k*k*b8g9g+k+bufvf:k;kCmDmEm=k?k@k[k,b^ od]kFm^k_k`k{k|k}kGmBdpdXdwdxdqdydrdsdtdzdAd~kalblcldlelflglhliljlklllmlnlolplqlrla te~dae,mRmzlRdAlBlClsl#mYdDl!g#g-b.bHmuevewexeyezeAeBe|m}m$g%gyf?f@f[f]fw #fzfXgx 6d7d'g(gElFlGl)g*g+g,gy h _ -gHl.g/g:g;g=g?gIl~c` Cd/b:b{ ;b| ( } =b?b@g[g]g^g_g`g{g|g}g~gahbhchdhehfhghhhihb Cebece-mSmKlSdLlMlNltl$mZdOljhkh@b[b]b^bImDeEeFeGeHeIeJeKe~manlhmh.mAfBf^f_f`f{f|f}f~fagz A $f%fCfDfYgB C 8d9d!d#dnhohPlQlRlphqhrhshD E i j ~ abthSluhvhwhxhyhzhTladbdbbcbDdEd_b`b{b|bdbeb}b~bfbgb) * hbibacbcccdcAhBhChDhEhFhGhHhIhJhKhLhMhNhOhPhQhRhShc LeMedeeefege/mTmVlTdWlXlYlul%m0dZlThUhVhWhecfcgchcicjcJmKmNeOePeQeReSeTeUeVeWeXeYeZe0e1e2ebncndnenXhYhZh0h:m;mEfFfGfbgcgdgegfggghgigjgkglgmgF G H 'f(f)fHfIfJfZg0gI J K $d%d'd(d)d*d1h2h3h4h0l1l2l3l4l5l5h6h7h8h9h!h#h$hL M N k l m jbkblb%h'h6l7l(h)h*h+h,h-h.h/h:h;h=h?h8l9lcdddedmbnbobFdGdHdkclcmcncocpcpbqbrbqcrcscsbtbub+ , - vbwbxbtcucvcwcxcyc@h[h]h^h_h`h{h|h}h~haibicidieifigihiiijikiliminioipiqirisitiuiviwixiyiziAiBid 3e4eheiejeke=mUm#lUd$l%l'lvl'm1d(lCiDiEiFizcAcBcCcDcEcLmMm5e6e7e8e9e!e#e$e%e'e(e)e*e+e,e-efngnhninGiHiIiJi?m@mKfLfMfngogpgqgrgsgtgugvgwgxgygO P Q *f+f,fNfOfPf1g2gR S T +d,d-d.d/d:dKiLiMiNi)l*l+l,l-l.lOiPiQiRiSiTiUiViU V W n o p ybzbAbWiXi/l:lYiZi0i1i2i3i4i5i6i7i8i9i;l=lfdgdhdBbCbDbIdJdKdFcGcHcIcJcKcEbFbGbLcMcNcHbIbJb. / : KbLbMbOcPcQcRcScTc!i#i$i%i'i(i)i*i+i,i-i.i/i:i;i=i?i@i[i]i^i_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkje .e/elemeneoe[mVm@lVd[l]l^lwl(m2d_lljmjnjojUcVcWcXcYcZcNmOm:e;e=e?e@e[e]e^e_e`e{e|e}e~eafbfjnknlnmnpjqjrjsj]m^mQfRfSfzgAgBgCgDgEgFgGgHgIgJgKgX Y Z -f.f/fTfUfVf3g4g0 1 2 ;d=d?d@d[d]dtjujvjwj`l{l|l}l~lamxjyjzjAjBjCjDjEj3 4 5 q r s NbObPbFjGjbmcmHjIjJjKjLjMjNjOjPjQjRjSjdmemidjdkdQbRbSbLdMdNd0c1c2c3c4c5cTbUbVb6c7c8cWbXbYb; = ? Zb0b1b9c!c#c$c%c'cTjUjVjWjXjYjZj0j1j2j3j4j5j6j7j8j9j!j#j$j%j'j(j)j*j+j,j-j.j/j:j;j=j?j@j[j]j^jf cfdfpeqerese_mWmgmWdhmimjmxl)m3dkm_j`j{j|j(c)c*c+c,c-cPmQmefffgfhfifjfkflfmfnfofpfqfrfsftfnnonpnqn}j~jakbk`m{mWfXfYfLgMgNgOgPgQgRgSgTgUgVgWg6 7 8 :f;f=fZf0f1f5g6g9 ! # ^d_d`d{d|d}dckdkekfklmmmnmompmqmgkhkikjkkklkmknk$ % ' t u v 2b3b4bokpkrmsmqkrksktkukvkwkxkykzkAkBktmumldmdnd5b6b7bOdPdQd.c/c:c;c=c?c8b9b!b@c[c]c#b$b%b@ [ ] 'b(b)b^c_c`c{c|c}cCkDkEkFkGkHkIkJkKkLkMkNkOkPkQkRkSkTkUkVkWkXkYkZk0k1k2k3k4k5k6k7k8k9k!k#k$k%k

677 if issubclass(type_, float): 2g 2fwfxfwm*m+msnHn!mxm4dymzmAm1nvmrnIn5dBm2n3n!n,k-kudvdXm3f4f5f6f7f8f9f!fFnGn.k/k7g'k(k)k*k*b8g9g+k+bufvf:k;kCmDmEm=k?k@k[k,b^ od]kFm^k_k`k{k|k}kGmBdpdXdwdxdqdydrdsdtdzdAd~kalblcldlelflglhliljlklllmlnlolplqlrla te~daeylYmZm,mtnRmzlRdAlBlClJnsl#munYdDlKnLn4n!g#g-b.bHmuevewexeyezeAeBe|m}m$g%gyf?f@f[f]fw #fzfXgx 6d7d'g(gElFlGl)g*g+g,gy h _ -gHl.g/g:g;g=g?gIl~c` Cd/b:b{ ;b| ( } =b?b@g[g]g^g_g`g{g|g}g~gahbhchdhehfhghhhihb CebeceJl0m1m-mvnSmKlSdLlMlNlMntl$mwnZdOlNnOn5njhkh@b[b]b^bImDeEeFeGeHeIeJeKe~manlhmh.mAfBf^f_f`f{f|f}f~fagz A $f%fCfDfYgB C 8d9d!d#dnhohPlQlRlphqhrhshD E i j ~ abthSluhvhwhxhyhzhTladbdbbcbDdEd_b`b{b|bdbeb}b~bfbgb) * hbibacbcccdcAhBhChDhEhFhGhHhIhJhKhLhMhNhOhPhQhRhShc LeMedeeefegeUl2m3m/mxnTmVlTdWlXlYlPnul%myn0dZlQnRn6nThUhVhWhecfcgchcicjcJmKmNeOePeQeReSeTeUeVeWeXeYeZe0e1e2ebncndnenXhYhZh0h:m;mEfFfGfbgcgdgegfggghgigjgkglgmgF G H 'f(f)fHfIfJfZg0gI J K $d%d'd(d)d*d1h2h3h4h0l1l2l3l4l5l5h6h7h8h9h!h#h$hL M N k l m jbkblb%h'h6l7l(h)h*h+h,h-h.h/h:h;h=h?h8l9lcdddedmbnbobFdGdHdkclcmcncocpcpbqbrbqcrcscsbtbub+ , - vbwbxbtcucvcwcxcyc@h[h]h^h_h`h{h|h}h~haibicidieifigihiiijikiliminioipiqirisitiuiviwixiyiziAiBid 3e4eheiejeke!l4m5m=mznUm#lUd$l%l'lSnvl'mAn1d(lTnUn7nCiDiEiFizcAcBcCcDcEcLmMm5e6e7e8e9e!e#e$e%e'e(e)e*e+e,e-efngnhninGiHiIiJi?m@mKfLfMfngogpgqgrgsgtgugvgwgxgygO P Q *f+f,fNfOfPf1g2gR S T +d,d-d.d/d:dKiLiMiNi)l*l+l,l-l.lOiPiQiRiSiTiUiViU V W n o p ybzbAbWiXi/l:lYiZi0i1i2i3i4i5i6i7i8i9i;l=lfdgdhdBbCbDbIdJdKdFcGcHcIcJcKcEbFbGbLcMcNcHbIbJb. / : KbLbMbOcPcQcRcScTc!i#i$i%i'i(i)i*i+i,i-i.i/i:i;i=i?i@i[i]i^i_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkje .e/elemeneoe?l6m7m[mBnVm@lVd[l]l^lVnwl(mCn2d_lWnXn8nljmjnjojUcVcWcXcYcZcNmOm:e;e=e?e@e[e]e^e_e`e{e|e}e~eafbfjnknlnmnpjqjrjsj]m^mQfRfSfzgAgBgCgDgEgFgGgHgIgJgKgX Y Z -f.f/fTfUfVf3g4g0 1 2 ;d=d?d@d[d]dtjujvjwj`l{l|l}l~lamxjyjzjAjBjCjDjEj3 4 5 q r s NbObPbFjGjbmcmHjIjJjKjLjMjNjOjPjQjRjSjdmemidjdkdQbRbSbLdMdNd0c1c2c3c4c5cTbUbVb6c7c8cWbXbYb; = ? Zb0b1b9c!c#c$c%c'cTjUjVjWjXjYjZj0j1j2j3j4j5j6j7j8j9j!j#j$j%j'j(j)j*j+j,j-j.j/j:j;j=j?j@j[j]j^jf cfdfpeqeresefm8m9m_mDnWmgmWdhmimjmYnxl)mEn3dkmZn0n9n_j`j{j|j(c)c*c+c,c-cPmQmefffgfhfifjfkflfmfnfofpfqfrfsftfnnonpnqn}j~jakbk`m{mWfXfYfLgMgNgOgPgQgRgSgTgUgVgWg6 7 8 :f;f=fZf0f1f5g6g9 ! # ^d_d`d{d|d}dckdkekfklmmmnmompmqmgkhkikjkkklkmknk$ % ' t u v 2b3b4bokpkrmsmqkrksktkukvkwkxkykzkAkBktmumldmdnd5b6b7bOdPdQd.c/c:c;c=c?c8b9b!b@c[c]c#b$b%b@ [ ] 'b(b)b^c_c`c{c|c}cCkDkEkFkGkHkIkJkKkLkMkNkOkPkQkRkSkTkUkVkWkXkYkZk0k1k2k3k4k5k6k7k8k9k!k#k$k%k

678 return Float 

679 if issubclass(type_, bool): 2g 2fwfxfwm*m+msnHn!mxm4dymzmAm1nvmrnIn5dBm2n3n!n,k-kudvdXm3f4f5f6f7f8f9f!fFnGn.k/k7g'k(k)k*k*b8g9g+k+bufvf:k;kCmDmEm=k?k@k[k,b^ od]kFm^k_k`k{k|k}kGmBdpdXdwdxdqdydrdsdtdzdAd~kalblcldlelflglhliljlklllmlnlolplqlrla te~daeylYmZm,mtnRmzlRdAlBlClJnsl#munYdDlKnLn4n!g#g-b.bHmuevewexeyezeAeBe|m}m$g%gyf?f@f[f]fw #fzfXgx 6d7d'g(gElFlGl)g*g+g,gy h _ -gHl.g/g:g;g=g?gIl~c` Cd/b:b{ ;b| ( } =b?b@g[g]g^g_g`g{g|g}g~gahbhchdhehfhghhhihb CebeceJl0m1m-mvnSmKlSdLlMlNlMntl$mwnZdOlNnOn5njhkh@b[b]b^bImDeEeFeGeHeIeJeKe~manlhmh.mAfBf^f_f`f{f|f}f~fagz A $f%fCfDfYgB C 8d9d!d#dnhohPlQlRlphqhrhshD E i j ~ abthSluhvhwhxhyhzhTladbdbbcbDdEd_b`b{b|bdbeb}b~bfbgb) * hbibacbcccdcAhBhChDhEhFhGhHhIhJhKhLhMhNhOhPhQhRhShc LeMedeeefegeUl2m3m/mxnTmVlTdWlXlYlPnul%myn0dZlQnRn6nThUhVhWhecfcgchcicjcJmKmNeOePeQeReSeTeUeVeWeXeYeZe0e1e2ebncndnenXhYhZh0h:m;mEfFfGfbgcgdgegfggghgigjgkglgmgF G H 'f(f)fHfIfJfZg0gI J K $d%d'd(d)d*d1h2h3h4h0l1l2l3l4l5l5h6h7h8h9h!h#h$hL M N k l m jbkblb%h'h6l7l(h)h*h+h,h-h.h/h:h;h=h?h8l9lcdddedmbnbobFdGdHdkclcmcncocpcpbqbrbqcrcscsbtbub+ , - vbwbxbtcucvcwcxcyc@h[h]h^h_h`h{h|h}h~haibicidieifigihiiijikiliminioipiqirisitiuiviwixiyiziAiBid 3e4eheiejeke!l4m5m=mznUm#lUd$l%l'lSnvl'mAn1d(lTnUn7nCiDiEiFizcAcBcCcDcEcLmMm5e6e7e8e9e!e#e$e%e'e(e)e*e+e,e-efngnhninGiHiIiJi?m@mKfLfMfngogpgqgrgsgtgugvgwgxgygO P Q *f+f,fNfOfPf1g2gR S T +d,d-d.d/d:dKiLiMiNi)l*l+l,l-l.lOiPiQiRiSiTiUiViU V W n o p ybzbAbWiXi/l:lYiZi0i1i2i3i4i5i6i7i8i9i;l=lfdgdhdBbCbDbIdJdKdFcGcHcIcJcKcEbFbGbLcMcNcHbIbJb. / : KbLbMbOcPcQcRcScTc!i#i$i%i'i(i)i*i+i,i-i.i/i:i;i=i?i@i[i]i^i_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkje .e/elemeneoe?l6m7m[mBnVm@lVd[l]l^lVnwl(mCn2d_lWnXn8nljmjnjojUcVcWcXcYcZcNmOm:e;e=e?e@e[e]e^e_e`e{e|e}e~eafbfjnknlnmnpjqjrjsj]m^mQfRfSfzgAgBgCgDgEgFgGgHgIgJgKgX Y Z -f.f/fTfUfVf3g4g0 1 2 ;d=d?d@d[d]dtjujvjwj`l{l|l}l~lamxjyjzjAjBjCjDjEj3 4 5 q r s NbObPbFjGjbmcmHjIjJjKjLjMjNjOjPjQjRjSjdmemidjdkdQbRbSbLdMdNd0c1c2c3c4c5cTbUbVb6c7c8cWbXbYb; = ? Zb0b1b9c!c#c$c%c'cTjUjVjWjXjYjZj0j1j2j3j4j5j6j7j8j9j!j#j$j%j'j(j)j*j+j,j-j.j/j:j;j=j?j@j[j]j^jf cfdfpeqeresefm8m9m_mDnWmgmWdhmimjmYnxl)mEn3dkmZn0n9n_j`j{j|j(c)c*c+c,c-cPmQmefffgfhfifjfkflfmfnfofpfqfrfsftfnnonpnqn}j~jakbk`m{mWfXfYfLgMgNgOgPgQgRgSgTgUgVgWg6 7 8 :f;f=fZf0f1f5g6g9 ! # ^d_d`d{d|d}dckdkekfklmmmnmompmqmgkhkikjkkklkmknk$ % ' t u v 2b3b4bokpkrmsmqkrksktkukvkwkxkykzkAkBktmumldmdnd5b6b7bOdPdQd.c/c:c;c=c?c8b9b!b@c[c]c#b$b%b@ [ ] 'b(b)b^c_c`c{c|c}cCkDkEkFkGkHkIkJkKkLkMkNkOkPkQkRkSkTkUkVkWkXkYkZk0k1k2k3k4k5k6k7k8k9k!k#k$k%k

680 return Boolean 2od_ ~ abjbkblbybzbAbNbObPb2b3b4b

681 if issubclass(type_, int): 2g 2fwfxfwm*m+msnHn!mxm4dymzmAm1nvmrnIn5dBm2n3n!n,k-kudvdXm3f4f5f6f7f8f9f!fFnGn.k/k7g'k(k)k*k*b8g9g+k+bufvf:k;kCmDmEm=k?k@k[k,b^ od]kFm^k_k`k{k|k}kGmBdpdXdwdxdqdydrdsdtdzdAd~kalblcldlelflglhliljlklllmlnlolplqlrla te~daeylYmZm,mtnRmzlRdAlBlClJnsl#munYdDlKnLn4n!g#g-b.bHmuevewexeyezeAeBe|m}m$g%gyf?f@f[f]fw #fzfXgx 6d7d'g(gElFlGl)g*g+g,gy h _ -gHl.g/g:g;g=g?gIl~c` Cd/b:b{ ;b| ( } =b?b@g[g]g^g_g`g{g|g}g~gahbhchdhehfhghhhihb CebeceJl0m1m-mvnSmKlSdLlMlNlMntl$mwnZdOlNnOn5njhkh@b[b]b^bImDeEeFeGeHeIeJeKe~manlhmh.mAfBf^f_f`f{f|f}f~fagz A $f%fCfDfYgB C 8d9d!d#dnhohPlQlRlphqhrhshD E i j ~ abthSluhvhwhxhyhzhTladbdbbcbDdEd_b`b{b|bdbeb}b~bfbgb) * hbibacbcccdcAhBhChDhEhFhGhHhIhJhKhLhMhNhOhPhQhRhShc LeMedeeefegeUl2m3m/mxnTmVlTdWlXlYlPnul%myn0dZlQnRn6nThUhVhWhecfcgchcicjcJmKmNeOePeQeReSeTeUeVeWeXeYeZe0e1e2ebncndnenXhYhZh0h:m;mEfFfGfbgcgdgegfggghgigjgkglgmgF G H 'f(f)fHfIfJfZg0gI J K $d%d'd(d)d*d1h2h3h4h0l1l2l3l4l5l5h6h7h8h9h!h#h$hL M N k l m jbkblb%h'h6l7l(h)h*h+h,h-h.h/h:h;h=h?h8l9lcdddedmbnbobFdGdHdkclcmcncocpcpbqbrbqcrcscsbtbub+ , - vbwbxbtcucvcwcxcyc@h[h]h^h_h`h{h|h}h~haibicidieifigihiiijikiliminioipiqirisitiuiviwixiyiziAiBid 3e4eheiejeke!l4m5m=mznUm#lUd$l%l'lSnvl'mAn1d(lTnUn7nCiDiEiFizcAcBcCcDcEcLmMm5e6e7e8e9e!e#e$e%e'e(e)e*e+e,e-efngnhninGiHiIiJi?m@mKfLfMfngogpgqgrgsgtgugvgwgxgygO P Q *f+f,fNfOfPf1g2gR S T +d,d-d.d/d:dKiLiMiNi)l*l+l,l-l.lOiPiQiRiSiTiUiViU V W n o p ybzbAbWiXi/l:lYiZi0i1i2i3i4i5i6i7i8i9i;l=lfdgdhdBbCbDbIdJdKdFcGcHcIcJcKcEbFbGbLcMcNcHbIbJb. / : KbLbMbOcPcQcRcScTc!i#i$i%i'i(i)i*i+i,i-i.i/i:i;i=i?i@i[i]i^i_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkje .e/elemeneoe?l6m7m[mBnVm@lVd[l]l^lVnwl(mCn2d_lWnXn8nljmjnjojUcVcWcXcYcZcNmOm:e;e=e?e@e[e]e^e_e`e{e|e}e~eafbfjnknlnmnpjqjrjsj]m^mQfRfSfzgAgBgCgDgEgFgGgHgIgJgKgX Y Z -f.f/fTfUfVf3g4g0 1 2 ;d=d?d@d[d]dtjujvjwj`l{l|l}l~lamxjyjzjAjBjCjDjEj3 4 5 q r s NbObPbFjGjbmcmHjIjJjKjLjMjNjOjPjQjRjSjdmemidjdkdQbRbSbLdMdNd0c1c2c3c4c5cTbUbVb6c7c8cWbXbYb; = ? Zb0b1b9c!c#c$c%c'cTjUjVjWjXjYjZj0j1j2j3j4j5j6j7j8j9j!j#j$j%j'j(j)j*j+j,j-j.j/j:j;j=j?j@j[j]j^jf cfdfpeqeresefm8m9m_mDnWmgmWdhmimjmYnxl)mEn3dkmZn0n9n_j`j{j|j(c)c*c+c,c-cPmQmefffgfhfifjfkflfmfnfofpfqfrfsftfnnonpnqn}j~jakbk`m{mWfXfYfLgMgNgOgPgQgRgSgTgUgVgWg6 7 8 :f;f=fZf0f1f5g6g9 ! # ^d_d`d{d|d}dckdkekfklmmmnmompmqmgkhkikjkkklkmknk$ % ' t u v 2b3b4bokpkrmsmqkrksktkukvkwkxkykzkAkBktmumldmdnd5b6b7bOdPdQd.c/c:c;c=c?c8b9b!b@c[c]c#b$b%b@ [ ] 'b(b)b^c_c`c{c|c}cCkDkEkFkGkHkIkJkKkLkMkNkOkPkQkRkSkTkUkVkWkXkYkZk0k1k2k3k4k5k6k7k8k9k!k#k$k%k

682 return Integer 2g 2fwfxfsnHn!mxm4dymzmAm1nvmrnIn5dBm2n3n!n,k-kudvdXm3f4f5f6f7f8f9f!fFnGn.k/k7g'k(k)k*k*b8g9g+k+bufvf:k;kCmDmEm=k?k@k[k,b^ od]kFm^k_k`k{k|k}kGmBdpdXdwdxdqdydrdsdtdzdAd~kalblcldlelflglhliljlklllmlnlolplqlrla te~dae,mtnRmzlRdAlBlClJnsl#munYdDlKnLn4n!g#g-b.bHmuevewexeyezeAeBe|m}m$g%gyf?f@f[f]fw #fzfXgx 6d7d'g(gElFlGl)g*g+g,gy h _ -gHl.g/g:g;g=g?gIl~c` Cd/b:b{ ;b| ( } =b?b@g[g]g^g_g`g{g|g}g~gahbhchdhehfhghhhihb Cebece-mvnSmKlSdLlMlNlMntl$mwnZdOlNnOn5njhkh@b[b]b^bImDeEeFeGeHeIeJeKe~manlhmh.mAfBf^f_f`f{f|f}f~fagz A $f%fCfDfYgB C 8d9d!d#dnhohPlQlRlphqhrhshD E i j ~ abthSluhvhwhxhyhzhTladbdbbcbDdEd_b`b{b|bdbeb}b~bfbgb) * hbibacbcccdcAhBhChDhEhFhGhHhIhJhKhLhMhNhOhPhQhRhShc LeMedeeefege/mxnTmVlTdWlXlYlPnul%myn0dZlQnRn6nThUhVhWhecfcgchcicjcJmKmNeOePeQeReSeTeUeVeWeXeYeZe0e1e2ebncndnenXhYhZh0h:m;mEfFfGfbgcgdgegfggghgigjgkglgmgF G H 'f(f)fHfIfJfZg0gI J K $d%d'd(d)d*d1h2h3h4h0l1l2l3l4l5l5h6h7h8h9h!h#h$hL M N k l m jbkblb%h'h6l7l(h)h*h+h,h-h.h/h:h;h=h?h8l9lcdddedmbnbobFdGdHdkclcmcncocpcpbqbrbqcrcscsbtbub+ , - vbwbxbtcucvcwcxcyc@h[h]h^h_h`h{h|h}h~haibicidieifigihiiijikiliminioipiqirisitiuiviwixiyiziAiBid 3e4eheiejeke=mznUm#lUd$l%l'lSnvl'mAn1d(lTnUn7nCiDiEiFizcAcBcCcDcEcLmMm5e6e7e8e9e!e#e$e%e'e(e)e*e+e,e-efngnhninGiHiIiJi?m@mKfLfMfngogpgqgrgsgtgugvgwgxgygO P Q *f+f,fNfOfPf1g2gR S T +d,d-d.d/d:dKiLiMiNi)l*l+l,l-l.lOiPiQiRiSiTiUiViU V W n o p ybzbAbWiXi/l:lYiZi0i1i2i3i4i5i6i7i8i9i;l=lfdgdhdBbCbDbIdJdKdFcGcHcIcJcKcEbFbGbLcMcNcHbIbJb. / : KbLbMbOcPcQcRcScTc!i#i$i%i'i(i)i*i+i,i-i.i/i:i;i=i?i@i[i]i^i_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkje .e/elemeneoe[mBnVm@lVd[l]l^lVnwl(mCn2d_lWnXn8nljmjnjojUcVcWcXcYcZcNmOm:e;e=e?e@e[e]e^e_e`e{e|e}e~eafbfjnknlnmnpjqjrjsj]m^mQfRfSfzgAgBgCgDgEgFgGgHgIgJgKgX Y Z -f.f/fTfUfVf3g4g0 1 2 ;d=d?d@d[d]dtjujvjwj`l{l|l}l~lamxjyjzjAjBjCjDjEj3 4 5 q r s NbObPbFjGjbmcmHjIjJjKjLjMjNjOjPjQjRjSjdmemidjdkdQbRbSbLdMdNd0c1c2c3c4c5cTbUbVb6c7c8cWbXbYb; = ? Zb0b1b9c!c#c$c%c'cTjUjVjWjXjYjZj0j1j2j3j4j5j6j7j8j9j!j#j$j%j'j(j)j*j+j,j-j.j/j:j;j=j?j@j[j]j^jf cfdfpeqerese_mDnWmgmWdhmimjmYnxl)mEn3dkmZn0n9n_j`j{j|j(c)c*c+c,c-cPmQmefffgfhfifjfkflfmfnfofpfqfrfsftfnnonpnqn}j~jakbk`m{mWfXfYfLgMgNgOgPgQgRgSgTgUgVgWg6 7 8 :f;f=fZf0f1f5g6g9 ! # ^d_d`d{d|d}dckdkekfklmmmnmompmqmgkhkikjkkklkmknk$ % ' t u v 2b3b4bokpkrmsmqkrksktkukvkwkxkykzkAkBktmumldmdnd5b6b7bOdPdQd.c/c:c;c=c?c8b9b!b@c[c]c#b$b%b@ [ ] 'b(b)b^c_c`c{c|c}cCkDkEkFkGkHkIkJkKkLkMkNkOkPkQkRkSkTkUkVkWkXkYkZk0k1k2k3k4k5k6k7k8k9k!k#k$k%k

683 if issubclass(type_, datetime): 2g 2fwfxfwm*m+m1n2n3na te~daeylYmZmJnKnLnb CebeceJl0m1mMnNnOnc LeMedeeefegeUl2m3mPnQnRnd 3e4eheiejeke!l4m5mSnTnUne .e/elemeneoe?l6m7mVnWnXnf cfdfpeqeresefm8m9mYnZn0n

684 return DateTime 

685 if issubclass(type_, date): 2g 2fwfxfwm*m+m1n2n3na te~daeylYmZmJnKnLnb CebeceJl0m1mMnNnOnc LeMedeeefegeUl2m3mPnQnRnd 3e4eheiejeke!l4m5mSnTnUne .e/elemeneoe?l6m7mVnWnXnf cfdfpeqeresefm8m9mYnZn0n

686 return Date 

687 if issubclass(type_, timedelta): 2g 2fwfxfwm*m+m1n2n3na te~daeylYmZmJnKnLnb CebeceJl0m1mMnNnOnc LeMedeeefegeUl2m3mPnQnRnd 3e4eheiejeke!l4m5mSnTnUne .e/elemeneoe?l6m7mVnWnXnf cfdfpeqeresefm8m9mYnZn0n

688 return Interval 

689 if issubclass(type_, time): 2g 2fwfxfwm*m+m1n2n3na te~daeylYmZmJnKnLnb CebeceJl0m1mMnNnOnc LeMedeeefegeUl2m3mPnQnRnd 3e4eheiejeke!l4m5mSnTnUne .e/elemeneoe?l6m7mVnWnXnf cfdfpeqeresefm8m9mYnZn0n

690 return Time 

691 if issubclass(type_, bytes): 2g 2fwfxfwm*m+m1n2n3na te~daeylYmZmJnKnLnb CebeceJl0m1mMnNnOnc LeMedeeefegeUl2m3mPnQnRnd 3e4eheiejeke!l4m5mSnTnUne .e/elemeneoe?l6m7mVnWnXnf cfdfpeqeresefm8m9mYnZn0n

692 return LargeBinary 

693 if issubclass(type_, Decimal): 2g 2fwfxfwm*m+m1n2n3na te~daeylYmZmJnKnLnb CebeceJl0m1mMnNnOnc LeMedeeefegeUl2m3mPnQnRnd 3e4eheiejeke!l4m5mSnTnUne .e/elemeneoe?l6m7mVnWnXnf cfdfpeqeresefm8m9mYnZn0n

694 return Numeric( 22fteCeLeMe3e4e.e/ecfdf

695 precision=getattr(metadata, "max_digits", None), 

696 scale=getattr(metadata, "decimal_places", None), 

697 ) 

698 if issubclass(type_, uuid.UUID): 2g wfxfwm*m+m1n2n3na ~daeylYmZmJnKnLnb beceJl0m1mMnNnOnc deeefegeUl2m3mPnQnRnd heiejeke!l4m5mSnTnUne lemeneoe?l6m7mVnWnXnf peqeresefm8m9mYnZn0n

699 return Uuid 2g wfxfwm*m+ma ~daeylYmZmb beceJl0m1mc deeefegeUl2m3md heiejeke!l4m5me lemeneoe?l6m7mf peqeresefm8m9m

700 raise ValueError(f"{type_} has no matching SQLAlchemy type") 21n2n3nJnKnLnMnNnOnPnQnRnSnTnUnVnWnXnYnZn0n

701 

702 

703def get_column_from_field(field: Any) -> Column: # type: ignore 1gabcdef

704 if IS_PYDANTIC_V2: 2g 2fwfxfwm*m+msnHn!m*nxm4dymzmAm1nvmrnIn5dBm2n3n!n,k-kudvdXm3f4f5f6f7f8f9f!fFnGn.k/k7g'k(k)k*k*b8g9g+k+bufvf:k;kCmDmEm=k?k@k[k,b^ od]kFm^k_k`k{k|k}kGmBdpdXdwdxdqdydrdsdtdzdAd~kalblcldlelflglhliljlklllmlnlolplqlrla te~daeylYmZm,mtnRm#nzlRdAlBlClJnsl#munYdDlKnLn4n!g#g-b.bHmuevewexeyezeAeBe|m}m$g%gyf?f@f[f]fw #fzfXgx 6d7d'g(gElFlGl)g*g+g,gy h _ -gHl.g/g:g;g=g?gIl~c` Cd/b:b{ ;b| ( } =b?b@g[g]g^g_g`g{g|g}g~gahbhchdhehfhghhhihb CebeceJl0m1m-mvnSm$nKlSdLlMlNlMntl$mwnZdOlNnOn5njhkh@b[b]b^bImDeEeFeGeHeIeJeKe~manlhmh.mAfBf^f_f`f{f|f}f~fagz A $f%fCfDfYgB C 8d9d!d#dnhohPlQlRlphqhrhshD E i j ~ abthSluhvhwhxhyhzhTladbdbbcbDdEd_b`b{b|bdbeb}b~bfbgb) * hbibacbcccdcAhBhChDhEhFhGhHhIhJhKhLhMhNhOhPhQhRhShc LeMedeeefegeUl2m3m/mxnTm%nVlTdWlXlYlPnul%myn0dZlQnRn6nThUhVhWhecfcgchcicjcJmKmNeOePeQeReSeTeUeVeWeXeYeZe0e1e2ebncndnenXhYhZh0h:m;mEfFfGfbgcgdgegfggghgigjgkglgmgF G H 'f(f)fHfIfJfZg0gI J K $d%d'd(d)d*d1h2h3h4h0l1l2l3l4l5l5h6h7h8h9h!h#h$hL M N k l m jbkblb%h'h6l7l(h)h*h+h,h-h.h/h:h;h=h?h8l9lcdddedmbnbobFdGdHdkclcmcncocpcpbqbrbqcrcscsbtbub+ , - vbwbxbtcucvcwcxcyc@h[h]h^h_h`h{h|h}h~haibicidieifigihiiijikiliminioipiqirisitiuiviwixiyiziAiBid 3e4eheiejeke!l4m5m=mznUm'n#lUd$l%l'lSnvl'mAn1d(lTnUn7nCiDiEiFizcAcBcCcDcEcLmMm5e6e7e8e9e!e#e$e%e'e(e)e*e+e,e-efngnhninGiHiIiJi?m@mKfLfMfngogpgqgrgsgtgugvgwgxgygO P Q *f+f,fNfOfPf1g2gR S T +d,d-d.d/d:dKiLiMiNi)l*l+l,l-l.lOiPiQiRiSiTiUiViU V W n o p ybzbAbWiXi/l:lYiZi0i1i2i3i4i5i6i7i8i9i;l=lfdgdhdBbCbDbIdJdKdFcGcHcIcJcKcEbFbGbLcMcNcHbIbJb. / : KbLbMbOcPcQcRcScTc!i#i$i%i'i(i)i*i+i,i-i.i/i:i;i=i?i@i[i]i^i_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkje .e/elemeneoe?l6m7m[mBnVm(n@lVd[l]l^lVnwl(mCn2d_lWnXn8nljmjnjojUcVcWcXcYcZcNmOm:e;e=e?e@e[e]e^e_e`e{e|e}e~eafbfjnknlnmnpjqjrjsj]m^mQfRfSfzgAgBgCgDgEgFgGgHgIgJgKgX Y Z -f.f/fTfUfVf3g4g0 1 2 ;d=d?d@d[d]dtjujvjwj`l{l|l}l~lamxjyjzjAjBjCjDjEj3 4 5 q r s NbObPbFjGjbmcmHjIjJjKjLjMjNjOjPjQjRjSjdmemidjdkdQbRbSbLdMdNd0c1c2c3c4c5cTbUbVb6c7c8cWbXbYb; = ? Zb0b1b9c!c#c$c%c'cTjUjVjWjXjYjZj0j1j2j3j4j5j6j7j8j9j!j#j$j%j'j(j)j*j+j,j-j.j/j:j;j=j?j@j[j]j^jf cfdfpeqeresefm8m9m_mDnWm)ngmWdhmimjmYnxl)mEn3dkmZn0n9n_j`j{j|j(c)c*c+c,c-cPmQmefffgfhfifjfkflfmfnfofpfqfrfsftfnnonpnqn}j~jakbk`m{mWfXfYfLgMgNgOgPgQgRgSgTgUgVgWg6 7 8 :f;f=fZf0f1f5g6g9 ! # ^d_d`d{d|d}dckdkekfklmmmnmompmqmgkhkikjkkklkmknk$ % ' t u v 2b3b4bokpkrmsmqkrksktkukvkwkxkykzkAkBktmumldmdnd5b6b7bOdPdQd.c/c:c;c=c?c8b9b!b@c[c]c#b$b%b@ [ ] 'b(b)b^c_c`c{c|c}cCkDkEkFkGkHkIkJkKkLkMkNkOkPkQkRkSkTkUkVkWkXkYkZk0k1k2k3k4k5k6k7k8k9k!k#k$k%k

705 field_info = field 2g 2fwfxfwm*m+msnHn!m*nxm4dymzmAm1nvmrnIn5dBm2n3n!n,k-kudvdXm3f4f5f6f7f8f9f!fFnGn.k/k7g'k(k)k*k*b8g9g+k+bufvf:k;kCmDmEm=k?k@k[k,b^ od]kFm^k_k`k{k|k}kGmBdpdXdwdxdqdydrdsdtdzdAd~kalblcldlelflglhliljlklllmlnlolplqlrla te~daeylYmZm,mtnRm#nzlRdAlBlClJnsl#munYdDlKnLn4n!g#g-b.bHmuevewexeyezeAeBe|m}m$g%gyf?f@f[f]fw #fzfXgx 6d7d'g(gElFlGl)g*g+g,gy h _ -gHl.g/g:g;g=g?gIl~c` Cd/b:b{ ;b| ( } =b?b@g[g]g^g_g`g{g|g}g~gahbhchdhehfhghhhihb CebeceJl0m1m-mvnSm$nKlSdLlMlNlMntl$mwnZdOlNnOn5njhkh@b[b]b^bImDeEeFeGeHeIeJeKe~manlhmh.mAfBf^f_f`f{f|f}f~fagz A $f%fCfDfYgB C 8d9d!d#dnhohPlQlRlphqhrhshD E i j ~ abthSluhvhwhxhyhzhTladbdbbcbDdEd_b`b{b|bdbeb}b~bfbgb) * hbibacbcccdcAhBhChDhEhFhGhHhIhJhKhLhMhNhOhPhQhRhShc LeMedeeefegeUl2m3m/mxnTm%nVlTdWlXlYlPnul%myn0dZlQnRn6nThUhVhWhecfcgchcicjcJmKmNeOePeQeReSeTeUeVeWeXeYeZe0e1e2ebncndnenXhYhZh0h:m;mEfFfGfbgcgdgegfggghgigjgkglgmgF G H 'f(f)fHfIfJfZg0gI J K $d%d'd(d)d*d1h2h3h4h0l1l2l3l4l5l5h6h7h8h9h!h#h$hL M N k l m jbkblb%h'h6l7l(h)h*h+h,h-h.h/h:h;h=h?h8l9lcdddedmbnbobFdGdHdkclcmcncocpcpbqbrbqcrcscsbtbub+ , - vbwbxbtcucvcwcxcyc@h[h]h^h_h`h{h|h}h~haibicidieifigihiiijikiliminioipiqirisitiuiviwixiyiziAiBid 3e4eheiejeke!l4m5m=mznUm'n#lUd$l%l'lSnvl'mAn1d(lTnUn7nCiDiEiFizcAcBcCcDcEcLmMm5e6e7e8e9e!e#e$e%e'e(e)e*e+e,e-efngnhninGiHiIiJi?m@mKfLfMfngogpgqgrgsgtgugvgwgxgygO P Q *f+f,fNfOfPf1g2gR S T +d,d-d.d/d:dKiLiMiNi)l*l+l,l-l.lOiPiQiRiSiTiUiViU V W n o p ybzbAbWiXi/l:lYiZi0i1i2i3i4i5i6i7i8i9i;l=lfdgdhdBbCbDbIdJdKdFcGcHcIcJcKcEbFbGbLcMcNcHbIbJb. / : KbLbMbOcPcQcRcScTc!i#i$i%i'i(i)i*i+i,i-i.i/i:i;i=i?i@i[i]i^i_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkje .e/elemeneoe?l6m7m[mBnVm(n@lVd[l]l^lVnwl(mCn2d_lWnXn8nljmjnjojUcVcWcXcYcZcNmOm:e;e=e?e@e[e]e^e_e`e{e|e}e~eafbfjnknlnmnpjqjrjsj]m^mQfRfSfzgAgBgCgDgEgFgGgHgIgJgKgX Y Z -f.f/fTfUfVf3g4g0 1 2 ;d=d?d@d[d]dtjujvjwj`l{l|l}l~lamxjyjzjAjBjCjDjEj3 4 5 q r s NbObPbFjGjbmcmHjIjJjKjLjMjNjOjPjQjRjSjdmemidjdkdQbRbSbLdMdNd0c1c2c3c4c5cTbUbVb6c7c8cWbXbYb; = ? Zb0b1b9c!c#c$c%c'cTjUjVjWjXjYjZj0j1j2j3j4j5j6j7j8j9j!j#j$j%j'j(j)j*j+j,j-j.j/j:j;j=j?j@j[j]j^jf cfdfpeqeresefm8m9m_mDnWm)ngmWdhmimjmYnxl)mEn3dkmZn0n9n_j`j{j|j(c)c*c+c,c-cPmQmefffgfhfifjfkflfmfnfofpfqfrfsftfnnonpnqn}j~jakbk`m{mWfXfYfLgMgNgOgPgQgRgSgTgUgVgWg6 7 8 :f;f=fZf0f1f5g6g9 ! # ^d_d`d{d|d}dckdkekfklmmmnmompmqmgkhkikjkkklkmknk$ % ' t u v 2b3b4bokpkrmsmqkrksktkukvkwkxkykzkAkBktmumldmdnd5b6b7bOdPdQd.c/c:c;c=c?c8b9b!b@c[c]c#b$b%b@ [ ] 'b(b)b^c_c`c{c|c}cCkDkEkFkGkHkIkJkKkLkMkNkOkPkQkRkSkTkUkVkWkXkYkZk0k1k2k3k4k5k6k7k8k9k!k#k$k%k

706 else: 

707 field_info = field.field_info 2g 2fwfxf*m+msnHn!m*nxm4dymzmAm1nvmrnIn5dBm2n3n!n,k-kudvdXm3f4f5f6f7f8f9f!fFnGn.k/k7g'k(k)k*k*b8g9g+k+bufvf:k;kCmDmEm=k?k@k[k,b^ od]kFm^k_k`k{k|k}kGmBdpdXdwdxdqdydrdsdtdzdAd~kalblcldlelflglhliljlklllmlnlolplqlrla te~daeYmZm,mtnRm#nzlRdAlBlClJnsl#munYdDlKnLn4n!g#g-b.bHmuevewexeyezeAeBe|m}m$g%gyf?f@f[f]fw #fzfXgx 6d7d'g(gElFlGl)g*g+g,gy h _ -gHl.g/g:g;g=g?gIl~c` Cd/b:b{ ;b| ( } =b?b@g[g]g^g_g`g{g|g}g~gahbhchdhehfhghhhihb Cebece0m1m-mvnSm$nKlSdLlMlNlMntl$mwnZdOlNnOn5njhkh@b[b]b^bImDeEeFeGeHeIeJeKe~manlhmh.mAfBf^f_f`f{f|f}f~fagz A $f%fCfDfYgB C 8d9d!d#dnhohPlQlRlphqhrhshD E i j ~ abthSluhvhwhxhyhzhTladbdbbcbDdEd_b`b{b|bdbeb}b~bfbgb) * hbibacbcccdcAhBhChDhEhFhGhHhIhJhKhLhMhNhOhPhQhRhShc LeMedeeefege2m3m/mxnTm%nVlTdWlXlYlPnul%myn0dZlQnRn6nThUhVhWhecfcgchcicjcJmKmNeOePeQeReSeTeUeVeWeXeYeZe0e1e2ebncndnenXhYhZh0h:m;mEfFfGfbgcgdgegfggghgigjgkglgmgF G H 'f(f)fHfIfJfZg0gI J K $d%d'd(d)d*d1h2h3h4h0l1l2l3l4l5l5h6h7h8h9h!h#h$hL M N k l m jbkblb%h'h6l7l(h)h*h+h,h-h.h/h:h;h=h?h8l9lcdddedmbnbobFdGdHdkclcmcncocpcpbqbrbqcrcscsbtbub+ , - vbwbxbtcucvcwcxcyc@h[h]h^h_h`h{h|h}h~haibicidieifigihiiijikiliminioipiqirisitiuiviwixiyiziAiBid 3e4eheiejeke4m5m=mznUm'n#lUd$l%l'lSnvl'mAn1d(lTnUn7nCiDiEiFizcAcBcCcDcEcLmMm5e6e7e8e9e!e#e$e%e'e(e)e*e+e,e-efngnhninGiHiIiJi?m@mKfLfMfngogpgqgrgsgtgugvgwgxgygO P Q *f+f,fNfOfPf1g2gR S T +d,d-d.d/d:dKiLiMiNi)l*l+l,l-l.lOiPiQiRiSiTiUiViU V W n o p ybzbAbWiXi/l:lYiZi0i1i2i3i4i5i6i7i8i9i;l=lfdgdhdBbCbDbIdJdKdFcGcHcIcJcKcEbFbGbLcMcNcHbIbJb. / : KbLbMbOcPcQcRcScTc!i#i$i%i'i(i)i*i+i,i-i.i/i:i;i=i?i@i[i]i^i_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkje .e/elemeneoe6m7m[mBnVm(n@lVd[l]l^lVnwl(mCn2d_lWnXn8nljmjnjojUcVcWcXcYcZcNmOm:e;e=e?e@e[e]e^e_e`e{e|e}e~eafbfjnknlnmnpjqjrjsj]m^mQfRfSfzgAgBgCgDgEgFgGgHgIgJgKgX Y Z -f.f/fTfUfVf3g4g0 1 2 ;d=d?d@d[d]dtjujvjwj`l{l|l}l~lamxjyjzjAjBjCjDjEj3 4 5 q r s NbObPbFjGjbmcmHjIjJjKjLjMjNjOjPjQjRjSjdmemidjdkdQbRbSbLdMdNd0c1c2c3c4c5cTbUbVb6c7c8cWbXbYb; = ? Zb0b1b9c!c#c$c%c'cTjUjVjWjXjYjZj0j1j2j3j4j5j6j7j8j9j!j#j$j%j'j(j)j*j+j,j-j.j/j:j;j=j?j@j[j]j^jf cfdfpeqerese8m9m_mDnWm)ngmWdhmimjmYnxl)mEn3dkmZn0n9n_j`j{j|j(c)c*c+c,c-cPmQmefffgfhfifjfkflfmfnfofpfqfrfsftfnnonpnqn}j~jakbk`m{mWfXfYfLgMgNgOgPgQgRgSgTgUgVgWg6 7 8 :f;f=fZf0f1f5g6g9 ! # ^d_d`d{d|d}dckdkekfklmmmnmompmqmgkhkikjkkklkmknk$ % ' t u v 2b3b4bokpkrmsmqkrksktkukvkwkxkykzkAkBktmumldmdnd5b6b7bOdPdQd.c/c:c;c=c?c8b9b!b@c[c]c#b$b%b@ [ ] 'b(b)b^c_c`c{c|c}cCkDkEkFkGkHkIkJkKkLkMkNkOkPkQkRkSkTkUkVkWkXkYkZk0k1k2k3k4k5k6k7k8k9k!k#k$k%k

708 sa_column = getattr(field_info, "sa_column", Undefined) 2g 2fwfxfwm*m+msnHn!m*nxm4dymzmAm1nvmrnIn5dBm2n3n!n,k-kudvdXm3f4f5f6f7f8f9f!fFnGn.k/k7g'k(k)k*k*b8g9g+k+bufvf:k;kCmDmEm=k?k@k[k,b^ od]kFm^k_k`k{k|k}kGmBdpdXdwdxdqdydrdsdtdzdAd~kalblcldlelflglhliljlklllmlnlolplqlrla te~daeylYmZm,mtnRm#nzlRdAlBlClJnsl#munYdDlKnLn4n!g#g-b.bHmuevewexeyezeAeBe|m}m$g%gyf?f@f[f]fw #fzfXgx 6d7d'g(gElFlGl)g*g+g,gy h _ -gHl.g/g:g;g=g?gIl~c` Cd/b:b{ ;b| ( } =b?b@g[g]g^g_g`g{g|g}g~gahbhchdhehfhghhhihb CebeceJl0m1m-mvnSm$nKlSdLlMlNlMntl$mwnZdOlNnOn5njhkh@b[b]b^bImDeEeFeGeHeIeJeKe~manlhmh.mAfBf^f_f`f{f|f}f~fagz A $f%fCfDfYgB C 8d9d!d#dnhohPlQlRlphqhrhshD E i j ~ abthSluhvhwhxhyhzhTladbdbbcbDdEd_b`b{b|bdbeb}b~bfbgb) * hbibacbcccdcAhBhChDhEhFhGhHhIhJhKhLhMhNhOhPhQhRhShc LeMedeeefegeUl2m3m/mxnTm%nVlTdWlXlYlPnul%myn0dZlQnRn6nThUhVhWhecfcgchcicjcJmKmNeOePeQeReSeTeUeVeWeXeYeZe0e1e2ebncndnenXhYhZh0h:m;mEfFfGfbgcgdgegfggghgigjgkglgmgF G H 'f(f)fHfIfJfZg0gI J K $d%d'd(d)d*d1h2h3h4h0l1l2l3l4l5l5h6h7h8h9h!h#h$hL M N k l m jbkblb%h'h6l7l(h)h*h+h,h-h.h/h:h;h=h?h8l9lcdddedmbnbobFdGdHdkclcmcncocpcpbqbrbqcrcscsbtbub+ , - vbwbxbtcucvcwcxcyc@h[h]h^h_h`h{h|h}h~haibicidieifigihiiijikiliminioipiqirisitiuiviwixiyiziAiBid 3e4eheiejeke!l4m5m=mznUm'n#lUd$l%l'lSnvl'mAn1d(lTnUn7nCiDiEiFizcAcBcCcDcEcLmMm5e6e7e8e9e!e#e$e%e'e(e)e*e+e,e-efngnhninGiHiIiJi?m@mKfLfMfngogpgqgrgsgtgugvgwgxgygO P Q *f+f,fNfOfPf1g2gR S T +d,d-d.d/d:dKiLiMiNi)l*l+l,l-l.lOiPiQiRiSiTiUiViU V W n o p ybzbAbWiXi/l:lYiZi0i1i2i3i4i5i6i7i8i9i;l=lfdgdhdBbCbDbIdJdKdFcGcHcIcJcKcEbFbGbLcMcNcHbIbJb. / : KbLbMbOcPcQcRcScTc!i#i$i%i'i(i)i*i+i,i-i.i/i:i;i=i?i@i[i]i^i_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkje .e/elemeneoe?l6m7m[mBnVm(n@lVd[l]l^lVnwl(mCn2d_lWnXn8nljmjnjojUcVcWcXcYcZcNmOm:e;e=e?e@e[e]e^e_e`e{e|e}e~eafbfjnknlnmnpjqjrjsj]m^mQfRfSfzgAgBgCgDgEgFgGgHgIgJgKgX Y Z -f.f/fTfUfVf3g4g0 1 2 ;d=d?d@d[d]dtjujvjwj`l{l|l}l~lamxjyjzjAjBjCjDjEj3 4 5 q r s NbObPbFjGjbmcmHjIjJjKjLjMjNjOjPjQjRjSjdmemidjdkdQbRbSbLdMdNd0c1c2c3c4c5cTbUbVb6c7c8cWbXbYb; = ? Zb0b1b9c!c#c$c%c'cTjUjVjWjXjYjZj0j1j2j3j4j5j6j7j8j9j!j#j$j%j'j(j)j*j+j,j-j.j/j:j;j=j?j@j[j]j^jf cfdfpeqeresefm8m9m_mDnWm)ngmWdhmimjmYnxl)mEn3dkmZn0n9n_j`j{j|j(c)c*c+c,c-cPmQmefffgfhfifjfkflfmfnfofpfqfrfsftfnnonpnqn}j~jakbk`m{mWfXfYfLgMgNgOgPgQgRgSgTgUgVgWg6 7 8 :f;f=fZf0f1f5g6g9 ! # ^d_d`d{d|d}dckdkekfklmmmnmompmqmgkhkikjkkklkmknk$ % ' t u v 2b3b4bokpkrmsmqkrksktkukvkwkxkykzkAkBktmumldmdnd5b6b7bOdPdQd.c/c:c;c=c?c8b9b!b@c[c]c#b$b%b@ [ ] 'b(b)b^c_c`c{c|c}cCkDkEkFkGkHkIkJkKkLkMkNkOkPkQkRkSkTkUkVkWkXkYkZk0k1k2k3k4k5k6k7k8k9k!k#k$k%k

709 if isinstance(sa_column, Column): 2g 2fwfxfwm*m+msnHn!m*nxm4dymzmAm1nvmrnIn5dBm2n3n!n,k-kudvdXm3f4f5f6f7f8f9f!fFnGn.k/k7g'k(k)k*k*b8g9g+k+bufvf:k;kCmDmEm=k?k@k[k,b^ od]kFm^k_k`k{k|k}kGmBdpdXdwdxdqdydrdsdtdzdAd~kalblcldlelflglhliljlklllmlnlolplqlrla te~daeylYmZm,mtnRm#nzlRdAlBlClJnsl#munYdDlKnLn4n!g#g-b.bHmuevewexeyezeAeBe|m}m$g%gyf?f@f[f]fw #fzfXgx 6d7d'g(gElFlGl)g*g+g,gy h _ -gHl.g/g:g;g=g?gIl~c` Cd/b:b{ ;b| ( } =b?b@g[g]g^g_g`g{g|g}g~gahbhchdhehfhghhhihb CebeceJl0m1m-mvnSm$nKlSdLlMlNlMntl$mwnZdOlNnOn5njhkh@b[b]b^bImDeEeFeGeHeIeJeKe~manlhmh.mAfBf^f_f`f{f|f}f~fagz A $f%fCfDfYgB C 8d9d!d#dnhohPlQlRlphqhrhshD E i j ~ abthSluhvhwhxhyhzhTladbdbbcbDdEd_b`b{b|bdbeb}b~bfbgb) * hbibacbcccdcAhBhChDhEhFhGhHhIhJhKhLhMhNhOhPhQhRhShc LeMedeeefegeUl2m3m/mxnTm%nVlTdWlXlYlPnul%myn0dZlQnRn6nThUhVhWhecfcgchcicjcJmKmNeOePeQeReSeTeUeVeWeXeYeZe0e1e2ebncndnenXhYhZh0h:m;mEfFfGfbgcgdgegfggghgigjgkglgmgF G H 'f(f)fHfIfJfZg0gI J K $d%d'd(d)d*d1h2h3h4h0l1l2l3l4l5l5h6h7h8h9h!h#h$hL M N k l m jbkblb%h'h6l7l(h)h*h+h,h-h.h/h:h;h=h?h8l9lcdddedmbnbobFdGdHdkclcmcncocpcpbqbrbqcrcscsbtbub+ , - vbwbxbtcucvcwcxcyc@h[h]h^h_h`h{h|h}h~haibicidieifigihiiijikiliminioipiqirisitiuiviwixiyiziAiBid 3e4eheiejeke!l4m5m=mznUm'n#lUd$l%l'lSnvl'mAn1d(lTnUn7nCiDiEiFizcAcBcCcDcEcLmMm5e6e7e8e9e!e#e$e%e'e(e)e*e+e,e-efngnhninGiHiIiJi?m@mKfLfMfngogpgqgrgsgtgugvgwgxgygO P Q *f+f,fNfOfPf1g2gR S T +d,d-d.d/d:dKiLiMiNi)l*l+l,l-l.lOiPiQiRiSiTiUiViU V W n o p ybzbAbWiXi/l:lYiZi0i1i2i3i4i5i6i7i8i9i;l=lfdgdhdBbCbDbIdJdKdFcGcHcIcJcKcEbFbGbLcMcNcHbIbJb. / : KbLbMbOcPcQcRcScTc!i#i$i%i'i(i)i*i+i,i-i.i/i:i;i=i?i@i[i]i^i_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkje .e/elemeneoe?l6m7m[mBnVm(n@lVd[l]l^lVnwl(mCn2d_lWnXn8nljmjnjojUcVcWcXcYcZcNmOm:e;e=e?e@e[e]e^e_e`e{e|e}e~eafbfjnknlnmnpjqjrjsj]m^mQfRfSfzgAgBgCgDgEgFgGgHgIgJgKgX Y Z -f.f/fTfUfVf3g4g0 1 2 ;d=d?d@d[d]dtjujvjwj`l{l|l}l~lamxjyjzjAjBjCjDjEj3 4 5 q r s NbObPbFjGjbmcmHjIjJjKjLjMjNjOjPjQjRjSjdmemidjdkdQbRbSbLdMdNd0c1c2c3c4c5cTbUbVb6c7c8cWbXbYb; = ? Zb0b1b9c!c#c$c%c'cTjUjVjWjXjYjZj0j1j2j3j4j5j6j7j8j9j!j#j$j%j'j(j)j*j+j,j-j.j/j:j;j=j?j@j[j]j^jf cfdfpeqeresefm8m9m_mDnWm)ngmWdhmimjmYnxl)mEn3dkmZn0n9n_j`j{j|j(c)c*c+c,c-cPmQmefffgfhfifjfkflfmfnfofpfqfrfsftfnnonpnqn}j~jakbk`m{mWfXfYfLgMgNgOgPgQgRgSgTgUgVgWg6 7 8 :f;f=fZf0f1f5g6g9 ! # ^d_d`d{d|d}dckdkekfklmmmnmompmqmgkhkikjkkklkmknk$ % ' t u v 2b3b4bokpkrmsmqkrksktkukvkwkxkykzkAkBktmumldmdnd5b6b7bOdPdQd.c/c:c;c=c?c8b9b!b@c[c]c#b$b%b@ [ ] 'b(b)b^c_c`c{c|c}cCkDkEkFkGkHkIkJkKkLkMkNkOkPkQkRkSkTkUkVkWkXkYkZk0k1k2k3k4k5k6k7k8k9k!k#k$k%k

710 return sa_column 2*n#n$n%n'n(n)n

711 sa_type = get_sqlalchemy_type(field) 2g 2fwfxfwm*m+msnHn!mxm4dymzmAm1nvmrnIn5dBm2n3n!n,k-kudvdXm3f4f5f6f7f8f9f!fFnGn.k/k7g'k(k)k*k*b8g9g+k+bufvf:k;kCmDmEm=k?k@k[k,b^ od]kFm^k_k`k{k|k}kGmBdpdXdwdxdqdydrdsdtdzdAd~kalblcldlelflglhliljlklllmlnlolplqlrla te~daeylYmZm,mtnRmzlRdAlBlClJnsl#munYdDlKnLn4n!g#g-b.bHmuevewexeyezeAeBe|m}m$g%gyf?f@f[f]fw #fzfXgx 6d7d'g(gElFlGl)g*g+g,gy h _ -gHl.g/g:g;g=g?gIl~c` Cd/b:b{ ;b| ( } =b?b@g[g]g^g_g`g{g|g}g~gahbhchdhehfhghhhihb CebeceJl0m1m-mvnSmKlSdLlMlNlMntl$mwnZdOlNnOn5njhkh@b[b]b^bImDeEeFeGeHeIeJeKe~manlhmh.mAfBf^f_f`f{f|f}f~fagz A $f%fCfDfYgB C 8d9d!d#dnhohPlQlRlphqhrhshD E i j ~ abthSluhvhwhxhyhzhTladbdbbcbDdEd_b`b{b|bdbeb}b~bfbgb) * hbibacbcccdcAhBhChDhEhFhGhHhIhJhKhLhMhNhOhPhQhRhShc LeMedeeefegeUl2m3m/mxnTmVlTdWlXlYlPnul%myn0dZlQnRn6nThUhVhWhecfcgchcicjcJmKmNeOePeQeReSeTeUeVeWeXeYeZe0e1e2ebncndnenXhYhZh0h:m;mEfFfGfbgcgdgegfggghgigjgkglgmgF G H 'f(f)fHfIfJfZg0gI J K $d%d'd(d)d*d1h2h3h4h0l1l2l3l4l5l5h6h7h8h9h!h#h$hL M N k l m jbkblb%h'h6l7l(h)h*h+h,h-h.h/h:h;h=h?h8l9lcdddedmbnbobFdGdHdkclcmcncocpcpbqbrbqcrcscsbtbub+ , - vbwbxbtcucvcwcxcyc@h[h]h^h_h`h{h|h}h~haibicidieifigihiiijikiliminioipiqirisitiuiviwixiyiziAiBid 3e4eheiejeke!l4m5m=mznUm#lUd$l%l'lSnvl'mAn1d(lTnUn7nCiDiEiFizcAcBcCcDcEcLmMm5e6e7e8e9e!e#e$e%e'e(e)e*e+e,e-efngnhninGiHiIiJi?m@mKfLfMfngogpgqgrgsgtgugvgwgxgygO P Q *f+f,fNfOfPf1g2gR S T +d,d-d.d/d:dKiLiMiNi)l*l+l,l-l.lOiPiQiRiSiTiUiViU V W n o p ybzbAbWiXi/l:lYiZi0i1i2i3i4i5i6i7i8i9i;l=lfdgdhdBbCbDbIdJdKdFcGcHcIcJcKcEbFbGbLcMcNcHbIbJb. / : KbLbMbOcPcQcRcScTc!i#i$i%i'i(i)i*i+i,i-i.i/i:i;i=i?i@i[i]i^i_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkje .e/elemeneoe?l6m7m[mBnVm@lVd[l]l^lVnwl(mCn2d_lWnXn8nljmjnjojUcVcWcXcYcZcNmOm:e;e=e?e@e[e]e^e_e`e{e|e}e~eafbfjnknlnmnpjqjrjsj]m^mQfRfSfzgAgBgCgDgEgFgGgHgIgJgKgX Y Z -f.f/fTfUfVf3g4g0 1 2 ;d=d?d@d[d]dtjujvjwj`l{l|l}l~lamxjyjzjAjBjCjDjEj3 4 5 q r s NbObPbFjGjbmcmHjIjJjKjLjMjNjOjPjQjRjSjdmemidjdkdQbRbSbLdMdNd0c1c2c3c4c5cTbUbVb6c7c8cWbXbYb; = ? Zb0b1b9c!c#c$c%c'cTjUjVjWjXjYjZj0j1j2j3j4j5j6j7j8j9j!j#j$j%j'j(j)j*j+j,j-j.j/j:j;j=j?j@j[j]j^jf cfdfpeqeresefm8m9m_mDnWmgmWdhmimjmYnxl)mEn3dkmZn0n9n_j`j{j|j(c)c*c+c,c-cPmQmefffgfhfifjfkflfmfnfofpfqfrfsftfnnonpnqn}j~jakbk`m{mWfXfYfLgMgNgOgPgQgRgSgTgUgVgWg6 7 8 :f;f=fZf0f1f5g6g9 ! # ^d_d`d{d|d}dckdkekfklmmmnmompmqmgkhkikjkkklkmknk$ % ' t u v 2b3b4bokpkrmsmqkrksktkukvkwkxkykzkAkBktmumldmdnd5b6b7bOdPdQd.c/c:c;c=c?c8b9b!b@c[c]c#b$b%b@ [ ] 'b(b)b^c_c`c{c|c}cCkDkEkFkGkHkIkJkKkLkMkNkOkPkQkRkSkTkUkVkWkXkYkZk0k1k2k3k4k5k6k7k8k9k!k#k$k%k

712 primary_key = getattr(field_info, "primary_key", Undefined) 2g 2fwfxfwm*m+msnHn!mxm4dymzmAm1nvmrnIn5dBm2n3n!n,k-kudvdXm3f4f5f6f7f8f9f!fFnGn.k/k7g'k(k)k*k*b8g9g+k+bufvf:k;kCmDmEm=k?k@k[k,b^ od]kFm^k_k`k{k|k}kGmBdpdXdwdxdqdydrdsdtdzdAd~kalblcldlelflglhliljlklllmlnlolplqlrla te~daeylYmZm,mtnRmzlRdAlBlClJnsl#munYdDlKnLn4n!g#g-b.bHmuevewexeyezeAeBe|m}m$g%gyf?f@f[f]fw #fzfXgx 6d7d'g(gElFlGl)g*g+g,gy h _ -gHl.g/g:g;g=g?gIl~c` Cd/b:b{ ;b| ( } =b?b@g[g]g^g_g`g{g|g}g~gahbhchdhehfhghhhihb CebeceJl0m1m-mvnSmKlSdLlMlNlMntl$mwnZdOlNnOn5njhkh@b[b]b^bImDeEeFeGeHeIeJeKe~manlhmh.mAfBf^f_f`f{f|f}f~fagz A $f%fCfDfYgB C 8d9d!d#dnhohPlQlRlphqhrhshD E i j ~ abthSluhvhwhxhyhzhTladbdbbcbDdEd_b`b{b|bdbeb}b~bfbgb) * hbibacbcccdcAhBhChDhEhFhGhHhIhJhKhLhMhNhOhPhQhRhShc LeMedeeefegeUl2m3m/mxnTmVlTdWlXlYlPnul%myn0dZlQnRn6nThUhVhWhecfcgchcicjcJmKmNeOePeQeReSeTeUeVeWeXeYeZe0e1e2ebncndnenXhYhZh0h:m;mEfFfGfbgcgdgegfggghgigjgkglgmgF G H 'f(f)fHfIfJfZg0gI J K $d%d'd(d)d*d1h2h3h4h0l1l2l3l4l5l5h6h7h8h9h!h#h$hL M N k l m jbkblb%h'h6l7l(h)h*h+h,h-h.h/h:h;h=h?h8l9lcdddedmbnbobFdGdHdkclcmcncocpcpbqbrbqcrcscsbtbub+ , - vbwbxbtcucvcwcxcyc@h[h]h^h_h`h{h|h}h~haibicidieifigihiiijikiliminioipiqirisitiuiviwixiyiziAiBid 3e4eheiejeke!l4m5m=mznUm#lUd$l%l'lSnvl'mAn1d(lTnUn7nCiDiEiFizcAcBcCcDcEcLmMm5e6e7e8e9e!e#e$e%e'e(e)e*e+e,e-efngnhninGiHiIiJi?m@mKfLfMfngogpgqgrgsgtgugvgwgxgygO P Q *f+f,fNfOfPf1g2gR S T +d,d-d.d/d:dKiLiMiNi)l*l+l,l-l.lOiPiQiRiSiTiUiViU V W n o p ybzbAbWiXi/l:lYiZi0i1i2i3i4i5i6i7i8i9i;l=lfdgdhdBbCbDbIdJdKdFcGcHcIcJcKcEbFbGbLcMcNcHbIbJb. / : KbLbMbOcPcQcRcScTc!i#i$i%i'i(i)i*i+i,i-i.i/i:i;i=i?i@i[i]i^i_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkje .e/elemeneoe?l6m7m[mBnVm@lVd[l]l^lVnwl(mCn2d_lWnXn8nljmjnjojUcVcWcXcYcZcNmOm:e;e=e?e@e[e]e^e_e`e{e|e}e~eafbfjnknlnmnpjqjrjsj]m^mQfRfSfzgAgBgCgDgEgFgGgHgIgJgKgX Y Z -f.f/fTfUfVf3g4g0 1 2 ;d=d?d@d[d]dtjujvjwj`l{l|l}l~lamxjyjzjAjBjCjDjEj3 4 5 q r s NbObPbFjGjbmcmHjIjJjKjLjMjNjOjPjQjRjSjdmemidjdkdQbRbSbLdMdNd0c1c2c3c4c5cTbUbVb6c7c8cWbXbYb; = ? Zb0b1b9c!c#c$c%c'cTjUjVjWjXjYjZj0j1j2j3j4j5j6j7j8j9j!j#j$j%j'j(j)j*j+j,j-j.j/j:j;j=j?j@j[j]j^jf cfdfpeqeresefm8m9m_mDnWmgmWdhmimjmYnxl)mEn3dkmZn0n9n_j`j{j|j(c)c*c+c,c-cPmQmefffgfhfifjfkflfmfnfofpfqfrfsftfnnonpnqn}j~jakbk`m{mWfXfYfLgMgNgOgPgQgRgSgTgUgVgWg6 7 8 :f;f=fZf0f1f5g6g9 ! # ^d_d`d{d|d}dckdkekfklmmmnmompmqmgkhkikjkkklkmknk$ % ' t u v 2b3b4bokpkrmsmqkrksktkukvkwkxkykzkAkBktmumldmdnd5b6b7bOdPdQd.c/c:c;c=c?c8b9b!b@c[c]c#b$b%b@ [ ] 'b(b)b^c_c`c{c|c}cCkDkEkFkGkHkIkJkKkLkMkNkOkPkQkRkSkTkUkVkWkXkYkZk0k1k2k3k4k5k6k7k8k9k!k#k$k%k

713 if primary_key is Undefined: 2g 2fwfxfwm*m+msnHn!mxm4dymzmAm1nvmrnIn5dBm2n3n!n,k-kudvdXm3f4f5f6f7f8f9f!fFnGn.k/k7g'k(k)k*k*b8g9g+k+bufvf:k;kCmDmEm=k?k@k[k,b^ od]kFm^k_k`k{k|k}kGmBdpdXdwdxdqdydrdsdtdzdAd~kalblcldlelflglhliljlklllmlnlolplqlrla te~daeylYmZm,mtnRmzlRdAlBlClJnsl#munYdDlKnLn4n!g#g-b.bHmuevewexeyezeAeBe|m}m$g%gyf?f@f[f]fw #fzfXgx 6d7d'g(gElFlGl)g*g+g,gy h _ -gHl.g/g:g;g=g?gIl~c` Cd/b:b{ ;b| ( } =b?b@g[g]g^g_g`g{g|g}g~gahbhchdhehfhghhhihb CebeceJl0m1m-mvnSmKlSdLlMlNlMntl$mwnZdOlNnOn5njhkh@b[b]b^bImDeEeFeGeHeIeJeKe~manlhmh.mAfBf^f_f`f{f|f}f~fagz A $f%fCfDfYgB C 8d9d!d#dnhohPlQlRlphqhrhshD E i j ~ abthSluhvhwhxhyhzhTladbdbbcbDdEd_b`b{b|bdbeb}b~bfbgb) * hbibacbcccdcAhBhChDhEhFhGhHhIhJhKhLhMhNhOhPhQhRhShc LeMedeeefegeUl2m3m/mxnTmVlTdWlXlYlPnul%myn0dZlQnRn6nThUhVhWhecfcgchcicjcJmKmNeOePeQeReSeTeUeVeWeXeYeZe0e1e2ebncndnenXhYhZh0h:m;mEfFfGfbgcgdgegfggghgigjgkglgmgF G H 'f(f)fHfIfJfZg0gI J K $d%d'd(d)d*d1h2h3h4h0l1l2l3l4l5l5h6h7h8h9h!h#h$hL M N k l m jbkblb%h'h6l7l(h)h*h+h,h-h.h/h:h;h=h?h8l9lcdddedmbnbobFdGdHdkclcmcncocpcpbqbrbqcrcscsbtbub+ , - vbwbxbtcucvcwcxcyc@h[h]h^h_h`h{h|h}h~haibicidieifigihiiijikiliminioipiqirisitiuiviwixiyiziAiBid 3e4eheiejeke!l4m5m=mznUm#lUd$l%l'lSnvl'mAn1d(lTnUn7nCiDiEiFizcAcBcCcDcEcLmMm5e6e7e8e9e!e#e$e%e'e(e)e*e+e,e-efngnhninGiHiIiJi?m@mKfLfMfngogpgqgrgsgtgugvgwgxgygO P Q *f+f,fNfOfPf1g2gR S T +d,d-d.d/d:dKiLiMiNi)l*l+l,l-l.lOiPiQiRiSiTiUiViU V W n o p ybzbAbWiXi/l:lYiZi0i1i2i3i4i5i6i7i8i9i;l=lfdgdhdBbCbDbIdJdKdFcGcHcIcJcKcEbFbGbLcMcNcHbIbJb. / : KbLbMbOcPcQcRcScTc!i#i$i%i'i(i)i*i+i,i-i.i/i:i;i=i?i@i[i]i^i_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkje .e/elemeneoe?l6m7m[mBnVm@lVd[l]l^lVnwl(mCn2d_lWnXn8nljmjnjojUcVcWcXcYcZcNmOm:e;e=e?e@e[e]e^e_e`e{e|e}e~eafbfjnknlnmnpjqjrjsj]m^mQfRfSfzgAgBgCgDgEgFgGgHgIgJgKgX Y Z -f.f/fTfUfVf3g4g0 1 2 ;d=d?d@d[d]dtjujvjwj`l{l|l}l~lamxjyjzjAjBjCjDjEj3 4 5 q r s NbObPbFjGjbmcmHjIjJjKjLjMjNjOjPjQjRjSjdmemidjdkdQbRbSbLdMdNd0c1c2c3c4c5cTbUbVb6c7c8cWbXbYb; = ? Zb0b1b9c!c#c$c%c'cTjUjVjWjXjYjZj0j1j2j3j4j5j6j7j8j9j!j#j$j%j'j(j)j*j+j,j-j.j/j:j;j=j?j@j[j]j^jf cfdfpeqeresefm8m9m_mDnWmgmWdhmimjmYnxl)mEn3dkmZn0n9n_j`j{j|j(c)c*c+c,c-cPmQmefffgfhfifjfkflfmfnfofpfqfrfsftfnnonpnqn}j~jakbk`m{mWfXfYfLgMgNgOgPgQgRgSgTgUgVgWg6 7 8 :f;f=fZf0f1f5g6g9 ! # ^d_d`d{d|d}dckdkekfklmmmnmompmqmgkhkikjkkklkmknk$ % ' t u v 2b3b4bokpkrmsmqkrksktkukvkwkxkykzkAkBktmumldmdnd5b6b7bOdPdQd.c/c:c;c=c?c8b9b!b@c[c]c#b$b%b@ [ ] 'b(b)b^c_c`c{c|c}cCkDkEkFkGkHkIkJkKkLkMkNkOkPkQkRkSkTkUkVkWkXkYkZk0k1k2k3k4k5k6k7k8k9k!k#k$k%k

714 primary_key = False 2g 2fwfxf*m+msnHn!mxm4dymzmAmvmrn5dBm,k-kudvdXm3f4f5f6f7f8f9f!fFnGn.k/k7g'k(k)k*k*b8g9g+k+bufvf:k;kCmDmEm=k?k@k[k,b^ od]kFm^k_k`k{k|k}kGmBdpdXdwdxdqdydrdsdtdzdAd~kalblcldlelflglhliljlklllmlnlolplqlrla te~daeYmZm,mtnRmzlRdAlBlClsl#mYdDl!g#g-b.bHmuevewexeyezeAeBe|m}m$g%gyf?f@f[f]fw #fzfXgx 6d7d'g(gElFlGl)g*g+g,gy h _ -gHl.g/g:g;g=g?gIl~c` Cd/b:b{ ;b| ( } =b?b@g[g]g^g_g`g{g|g}g~gahbhchdhehfhghhhihb Cebece0m1m-mvnSmKlSdLlMlNltl$mZdOljhkh@b[b]b^bImDeEeFeGeHeIeJeKe~manlhmh.mAfBf^f_f`f{f|f}f~fagz A $f%fCfDfYgB C 8d9d!d#dnhohPlQlRlphqhrhshD E i j ~ abthSluhvhwhxhyhzhTladbdbbcbDdEd_b`b{b|bdbeb}b~bfbgb) * hbibacbcccdcAhBhChDhEhFhGhHhIhJhKhLhMhNhOhPhQhRhShc LeMedeeefege2m3m/mxnTmVlTdWlXlYlul%m0dZlThUhVhWhecfcgchcicjcJmKmNeOePeQeReSeTeUeVeWeXeYeZe0e1e2ebncndnenXhYhZh0h:m;mEfFfGfbgcgdgegfggghgigjgkglgmgF G H 'f(f)fHfIfJfZg0gI J K $d%d'd(d)d*d1h2h3h4h0l1l2l3l4l5l5h6h7h8h9h!h#h$hL M N k l m jbkblb%h'h6l7l(h)h*h+h,h-h.h/h:h;h=h?h8l9lcdddedmbnbobFdGdHdkclcmcncocpcpbqbrbqcrcscsbtbub+ , - vbwbxbtcucvcwcxcyc@h[h]h^h_h`h{h|h}h~haibicidieifigihiiijikiliminioipiqirisitiuiviwixiyiziAiBid 3e4eheiejeke4m5m=mznUm#lUd$l%l'lvl'm1d(lCiDiEiFizcAcBcCcDcEcLmMm5e6e7e8e9e!e#e$e%e'e(e)e*e+e,e-efngnhninGiHiIiJi?m@mKfLfMfngogpgqgrgsgtgugvgwgxgygO P Q *f+f,fNfOfPf1g2gR S T +d,d-d.d/d:dKiLiMiNi)l*l+l,l-l.lOiPiQiRiSiTiUiViU V W n o p ybzbAbWiXi/l:lYiZi0i1i2i3i4i5i6i7i8i9i;l=lfdgdhdBbCbDbIdJdKdFcGcHcIcJcKcEbFbGbLcMcNcHbIbJb. / : KbLbMbOcPcQcRcScTc!i#i$i%i'i(i)i*i+i,i-i.i/i:i;i=i?i@i[i]i^i_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkje .e/elemeneoe6m7m[mBnVm@lVd[l]l^lwl(m2d_lljmjnjojUcVcWcXcYcZcNmOm:e;e=e?e@e[e]e^e_e`e{e|e}e~eafbfjnknlnmnpjqjrjsj]m^mQfRfSfzgAgBgCgDgEgFgGgHgIgJgKgX Y Z -f.f/fTfUfVf3g4g0 1 2 ;d=d?d@d[d]dtjujvjwj`l{l|l}l~lamxjyjzjAjBjCjDjEj3 4 5 q r s NbObPbFjGjbmcmHjIjJjKjLjMjNjOjPjQjRjSjdmemidjdkdQbRbSbLdMdNd0c1c2c3c4c5cTbUbVb6c7c8cWbXbYb; = ? Zb0b1b9c!c#c$c%c'cTjUjVjWjXjYjZj0j1j2j3j4j5j6j7j8j9j!j#j$j%j'j(j)j*j+j,j-j.j/j:j;j=j?j@j[j]j^jf cfdfpeqerese8m9m_mDnWmgmWdhmimjmxl)m3dkm_j`j{j|j(c)c*c+c,c-cPmQmefffgfhfifjfkflfmfnfofpfqfrfsftfnnonpnqn}j~jakbk`m{mWfXfYfLgMgNgOgPgQgRgSgTgUgVgWg6 7 8 :f;f=fZf0f1f5g6g9 ! # ^d_d`d{d|d}dckdkekfklmmmnmompmqmgkhkikjkkklkmknk$ % ' t u v 2b3b4bokpkrmsmqkrksktkukvkwkxkykzkAkBktmumldmdnd5b6b7bOdPdQd.c/c:c;c=c?c8b9b!b@c[c]c#b$b%b@ [ ] 'b(b)b^c_c`c{c|c}cCkDkEkFkGkHkIkJkKkLkMkNkOkPkQkRkSkTkUkVkWkXkYkZk0k1k2k3k4k5k6k7k8k9k!k#k$k%k

715 index = getattr(field_info, "index", Undefined) 2g 2fwfxfwm*m+msnHn!mxm4dymzmAm1nvmrnIn5dBm2n3n!n,k-kudvdXm3f4f5f6f7f8f9f!fFnGn.k/k7g'k(k)k*k*b8g9g+k+bufvf:k;kCmDmEm=k?k@k[k,b^ od]kFm^k_k`k{k|k}kGmBdpdXdwdxdqdydrdsdtdzdAd~kalblcldlelflglhliljlklllmlnlolplqlrla te~daeylYmZm,mtnRmzlRdAlBlClJnsl#munYdDlKnLn4n!g#g-b.bHmuevewexeyezeAeBe|m}m$g%gyf?f@f[f]fw #fzfXgx 6d7d'g(gElFlGl)g*g+g,gy h _ -gHl.g/g:g;g=g?gIl~c` Cd/b:b{ ;b| ( } =b?b@g[g]g^g_g`g{g|g}g~gahbhchdhehfhghhhihb CebeceJl0m1m-mvnSmKlSdLlMlNlMntl$mwnZdOlNnOn5njhkh@b[b]b^bImDeEeFeGeHeIeJeKe~manlhmh.mAfBf^f_f`f{f|f}f~fagz A $f%fCfDfYgB C 8d9d!d#dnhohPlQlRlphqhrhshD E i j ~ abthSluhvhwhxhyhzhTladbdbbcbDdEd_b`b{b|bdbeb}b~bfbgb) * hbibacbcccdcAhBhChDhEhFhGhHhIhJhKhLhMhNhOhPhQhRhShc LeMedeeefegeUl2m3m/mxnTmVlTdWlXlYlPnul%myn0dZlQnRn6nThUhVhWhecfcgchcicjcJmKmNeOePeQeReSeTeUeVeWeXeYeZe0e1e2ebncndnenXhYhZh0h:m;mEfFfGfbgcgdgegfggghgigjgkglgmgF G H 'f(f)fHfIfJfZg0gI J K $d%d'd(d)d*d1h2h3h4h0l1l2l3l4l5l5h6h7h8h9h!h#h$hL M N k l m jbkblb%h'h6l7l(h)h*h+h,h-h.h/h:h;h=h?h8l9lcdddedmbnbobFdGdHdkclcmcncocpcpbqbrbqcrcscsbtbub+ , - vbwbxbtcucvcwcxcyc@h[h]h^h_h`h{h|h}h~haibicidieifigihiiijikiliminioipiqirisitiuiviwixiyiziAiBid 3e4eheiejeke!l4m5m=mznUm#lUd$l%l'lSnvl'mAn1d(lTnUn7nCiDiEiFizcAcBcCcDcEcLmMm5e6e7e8e9e!e#e$e%e'e(e)e*e+e,e-efngnhninGiHiIiJi?m@mKfLfMfngogpgqgrgsgtgugvgwgxgygO P Q *f+f,fNfOfPf1g2gR S T +d,d-d.d/d:dKiLiMiNi)l*l+l,l-l.lOiPiQiRiSiTiUiViU V W n o p ybzbAbWiXi/l:lYiZi0i1i2i3i4i5i6i7i8i9i;l=lfdgdhdBbCbDbIdJdKdFcGcHcIcJcKcEbFbGbLcMcNcHbIbJb. / : KbLbMbOcPcQcRcScTc!i#i$i%i'i(i)i*i+i,i-i.i/i:i;i=i?i@i[i]i^i_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkje .e/elemeneoe?l6m7m[mBnVm@lVd[l]l^lVnwl(mCn2d_lWnXn8nljmjnjojUcVcWcXcYcZcNmOm:e;e=e?e@e[e]e^e_e`e{e|e}e~eafbfjnknlnmnpjqjrjsj]m^mQfRfSfzgAgBgCgDgEgFgGgHgIgJgKgX Y Z -f.f/fTfUfVf3g4g0 1 2 ;d=d?d@d[d]dtjujvjwj`l{l|l}l~lamxjyjzjAjBjCjDjEj3 4 5 q r s NbObPbFjGjbmcmHjIjJjKjLjMjNjOjPjQjRjSjdmemidjdkdQbRbSbLdMdNd0c1c2c3c4c5cTbUbVb6c7c8cWbXbYb; = ? Zb0b1b9c!c#c$c%c'cTjUjVjWjXjYjZj0j1j2j3j4j5j6j7j8j9j!j#j$j%j'j(j)j*j+j,j-j.j/j:j;j=j?j@j[j]j^jf cfdfpeqeresefm8m9m_mDnWmgmWdhmimjmYnxl)mEn3dkmZn0n9n_j`j{j|j(c)c*c+c,c-cPmQmefffgfhfifjfkflfmfnfofpfqfrfsftfnnonpnqn}j~jakbk`m{mWfXfYfLgMgNgOgPgQgRgSgTgUgVgWg6 7 8 :f;f=fZf0f1f5g6g9 ! # ^d_d`d{d|d}dckdkekfklmmmnmompmqmgkhkikjkkklkmknk$ % ' t u v 2b3b4bokpkrmsmqkrksktkukvkwkxkykzkAkBktmumldmdnd5b6b7bOdPdQd.c/c:c;c=c?c8b9b!b@c[c]c#b$b%b@ [ ] 'b(b)b^c_c`c{c|c}cCkDkEkFkGkHkIkJkKkLkMkNkOkPkQkRkSkTkUkVkWkXkYkZk0k1k2k3k4k5k6k7k8k9k!k#k$k%k

716 if index is Undefined: 2g 2fwfxfwm*m+msnHn!mxm4dymzmAm1nvmrnIn5dBm2n3n!n,k-kudvdXm3f4f5f6f7f8f9f!fFnGn.k/k7g'k(k)k*k*b8g9g+k+bufvf:k;kCmDmEm=k?k@k[k,b^ od]kFm^k_k`k{k|k}kGmBdpdXdwdxdqdydrdsdtdzdAd~kalblcldlelflglhliljlklllmlnlolplqlrla te~daeylYmZm,mtnRmzlRdAlBlClJnsl#munYdDlKnLn4n!g#g-b.bHmuevewexeyezeAeBe|m}m$g%gyf?f@f[f]fw #fzfXgx 6d7d'g(gElFlGl)g*g+g,gy h _ -gHl.g/g:g;g=g?gIl~c` Cd/b:b{ ;b| ( } =b?b@g[g]g^g_g`g{g|g}g~gahbhchdhehfhghhhihb CebeceJl0m1m-mvnSmKlSdLlMlNlMntl$mwnZdOlNnOn5njhkh@b[b]b^bImDeEeFeGeHeIeJeKe~manlhmh.mAfBf^f_f`f{f|f}f~fagz A $f%fCfDfYgB C 8d9d!d#dnhohPlQlRlphqhrhshD E i j ~ abthSluhvhwhxhyhzhTladbdbbcbDdEd_b`b{b|bdbeb}b~bfbgb) * hbibacbcccdcAhBhChDhEhFhGhHhIhJhKhLhMhNhOhPhQhRhShc LeMedeeefegeUl2m3m/mxnTmVlTdWlXlYlPnul%myn0dZlQnRn6nThUhVhWhecfcgchcicjcJmKmNeOePeQeReSeTeUeVeWeXeYeZe0e1e2ebncndnenXhYhZh0h:m;mEfFfGfbgcgdgegfggghgigjgkglgmgF G H 'f(f)fHfIfJfZg0gI J K $d%d'd(d)d*d1h2h3h4h0l1l2l3l4l5l5h6h7h8h9h!h#h$hL M N k l m jbkblb%h'h6l7l(h)h*h+h,h-h.h/h:h;h=h?h8l9lcdddedmbnbobFdGdHdkclcmcncocpcpbqbrbqcrcscsbtbub+ , - vbwbxbtcucvcwcxcyc@h[h]h^h_h`h{h|h}h~haibicidieifigihiiijikiliminioipiqirisitiuiviwixiyiziAiBid 3e4eheiejeke!l4m5m=mznUm#lUd$l%l'lSnvl'mAn1d(lTnUn7nCiDiEiFizcAcBcCcDcEcLmMm5e6e7e8e9e!e#e$e%e'e(e)e*e+e,e-efngnhninGiHiIiJi?m@mKfLfMfngogpgqgrgsgtgugvgwgxgygO P Q *f+f,fNfOfPf1g2gR S T +d,d-d.d/d:dKiLiMiNi)l*l+l,l-l.lOiPiQiRiSiTiUiViU V W n o p ybzbAbWiXi/l:lYiZi0i1i2i3i4i5i6i7i8i9i;l=lfdgdhdBbCbDbIdJdKdFcGcHcIcJcKcEbFbGbLcMcNcHbIbJb. / : KbLbMbOcPcQcRcScTc!i#i$i%i'i(i)i*i+i,i-i.i/i:i;i=i?i@i[i]i^i_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkje .e/elemeneoe?l6m7m[mBnVm@lVd[l]l^lVnwl(mCn2d_lWnXn8nljmjnjojUcVcWcXcYcZcNmOm:e;e=e?e@e[e]e^e_e`e{e|e}e~eafbfjnknlnmnpjqjrjsj]m^mQfRfSfzgAgBgCgDgEgFgGgHgIgJgKgX Y Z -f.f/fTfUfVf3g4g0 1 2 ;d=d?d@d[d]dtjujvjwj`l{l|l}l~lamxjyjzjAjBjCjDjEj3 4 5 q r s NbObPbFjGjbmcmHjIjJjKjLjMjNjOjPjQjRjSjdmemidjdkdQbRbSbLdMdNd0c1c2c3c4c5cTbUbVb6c7c8cWbXbYb; = ? Zb0b1b9c!c#c$c%c'cTjUjVjWjXjYjZj0j1j2j3j4j5j6j7j8j9j!j#j$j%j'j(j)j*j+j,j-j.j/j:j;j=j?j@j[j]j^jf cfdfpeqeresefm8m9m_mDnWmgmWdhmimjmYnxl)mEn3dkmZn0n9n_j`j{j|j(c)c*c+c,c-cPmQmefffgfhfifjfkflfmfnfofpfqfrfsftfnnonpnqn}j~jakbk`m{mWfXfYfLgMgNgOgPgQgRgSgTgUgVgWg6 7 8 :f;f=fZf0f1f5g6g9 ! # ^d_d`d{d|d}dckdkekfklmmmnmompmqmgkhkikjkkklkmknk$ % ' t u v 2b3b4bokpkrmsmqkrksktkukvkwkxkykzkAkBktmumldmdnd5b6b7bOdPdQd.c/c:c;c=c?c8b9b!b@c[c]c#b$b%b@ [ ] 'b(b)b^c_c`c{c|c}cCkDkEkFkGkHkIkJkKkLkMkNkOkPkQkRkSkTkUkVkWkXkYkZk0k1k2k3k4k5k6k7k8k9k!k#k$k%k

717 index = False 2g 2fwfxfwm*m+msnHn!mxm4dymzmAm1nvmrnIn5dBm2n3n!n,k-kudvdXm3f4f5f6f7f8f9f!fFnGn.k/k7g'k(k)k*k*b8g9g+k+bufvf:k;kCmDmEm=k?k@k[k,b^ od]kFm^k_k`k{k|k}kGmBdpdXdwdxdqdydrdsdtdzdAd~kalblcldlelflglhliljlklllmlnlolplqlrla te~daeylYmZm,mtnRmzlRdAlBlClJnsl#munYdDlKnLn4n!g#g-b.bHmuevewexeyezeAeBe|m}m$g%gyf?f@f[f]fw #fzfXgx 6d7d'g(gElFlGl)g*g+g,gy h _ -gHl.g/g:g;g=g?gIl~c` Cd/b:b{ ;b| ( } =b?b@g[g]g^g_g`g{g|g}g~gahbhchdhehfhghhhihb CebeceJl0m1m-mvnSmKlSdLlMlNlMntl$mwnZdOlNnOn5njhkh@b[b]b^bImDeEeFeGeHeIeJeKe~manlhmh.mAfBf^f_f`f{f|f}f~fagz A $f%fCfDfYgB C 8d9d!d#dnhohPlQlRlphqhrhshD E i j ~ abthSluhvhwhxhyhzhTladbdbbcbDdEd_b`b{b|bdbeb}b~bfbgb) * hbibacbcccdcAhBhChDhEhFhGhHhIhJhKhLhMhNhOhPhQhRhShc LeMedeeefegeUl2m3m/mxnTmVlTdWlXlYlPnul%myn0dZlQnRn6nThUhVhWhecfcgchcicjcJmKmNeOePeQeReSeTeUeVeWeXeYeZe0e1e2ebncndnenXhYhZh0h:m;mEfFfGfbgcgdgegfggghgigjgkglgmgF G H 'f(f)fHfIfJfZg0gI J K $d%d'd(d)d*d1h2h3h4h0l1l2l3l4l5l5h6h7h8h9h!h#h$hL M N k l m jbkblb%h'h6l7l(h)h*h+h,h-h.h/h:h;h=h?h8l9lcdddedmbnbobFdGdHdkclcmcncocpcpbqbrbqcrcscsbtbub+ , - vbwbxbtcucvcwcxcyc@h[h]h^h_h`h{h|h}h~haibicidieifigihiiijikiliminioipiqirisitiuiviwixiyiziAiBid 3e4eheiejeke!l4m5m=mznUm#lUd$l%l'lSnvl'mAn1d(lTnUn7nCiDiEiFizcAcBcCcDcEcLmMm5e6e7e8e9e!e#e$e%e'e(e)e*e+e,e-efngnhninGiHiIiJi?m@mKfLfMfngogpgqgrgsgtgugvgwgxgygO P Q *f+f,fNfOfPf1g2gR S T +d,d-d.d/d:dKiLiMiNi)l*l+l,l-l.lOiPiQiRiSiTiUiViU V W n o p ybzbAbWiXi/l:lYiZi0i1i2i3i4i5i6i7i8i9i;l=lfdgdhdBbCbDbIdJdKdFcGcHcIcJcKcEbFbGbLcMcNcHbIbJb. / : KbLbMbOcPcQcRcScTc!i#i$i%i'i(i)i*i+i,i-i.i/i:i;i=i?i@i[i]i^i_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkje .e/elemeneoe?l6m7m[mBnVm@lVd[l]l^lVnwl(mCn2d_lWnXn8nljmjnjojUcVcWcXcYcZcNmOm:e;e=e?e@e[e]e^e_e`e{e|e}e~eafbfjnknlnmnpjqjrjsj]m^mQfRfSfzgAgBgCgDgEgFgGgHgIgJgKgX Y Z -f.f/fTfUfVf3g4g0 1 2 ;d=d?d@d[d]dtjujvjwj`l{l|l}l~lamxjyjzjAjBjCjDjEj3 4 5 q r s NbObPbFjGjbmcmHjIjJjKjLjMjNjOjPjQjRjSjdmemidjdkdQbRbSbLdMdNd0c1c2c3c4c5cTbUbVb6c7c8cWbXbYb; = ? Zb0b1b9c!c#c$c%c'cTjUjVjWjXjYjZj0j1j2j3j4j5j6j7j8j9j!j#j$j%j'j(j)j*j+j,j-j.j/j:j;j=j?j@j[j]j^jf cfdfpeqeresefm8m9m_mDnWmgmWdhmimjmYnxl)mEn3dkmZn0n9n_j`j{j|j(c)c*c+c,c-cPmQmefffgfhfifjfkflfmfnfofpfqfrfsftfnnonpnqn}j~jakbk`m{mWfXfYfLgMgNgOgPgQgRgSgTgUgVgWg6 7 8 :f;f=fZf0f1f5g6g9 ! # ^d_d`d{d|d}dckdkekfklmmmnmompmqmgkhkikjkkklkmknk$ % ' t u v 2b3b4bokpkrmsmqkrksktkukvkwkxkykzkAkBktmumldmdnd5b6b7bOdPdQd.c/c:c;c=c?c8b9b!b@c[c]c#b$b%b@ [ ] 'b(b)b^c_c`c{c|c}cCkDkEkFkGkHkIkJkKkLkMkNkOkPkQkRkSkTkUkVkWkXkYkZk0k1k2k3k4k5k6k7k8k9k!k#k$k%k

718 nullable = not primary_key and is_field_noneable(field) 2g 2fwfxfwm*m+msnHn!mxm4dymzmAm1nvmrnIn5dBm2n3n!n,k-kudvdXm3f4f5f6f7f8f9f!fFnGn.k/k7g'k(k)k*k*b8g9g+k+bufvf:k;kCmDmEm=k?k@k[k,b^ od]kFm^k_k`k{k|k}kGmBdpdXdwdxdqdydrdsdtdzdAd~kalblcldlelflglhliljlklllmlnlolplqlrla te~daeylYmZm,mtnRmzlRdAlBlClJnsl#munYdDlKnLn4n!g#g-b.bHmuevewexeyezeAeBe|m}m$g%gyf?f@f[f]fw #fzfXgx 6d7d'g(gElFlGl)g*g+g,gy h _ -gHl.g/g:g;g=g?gIl~c` Cd/b:b{ ;b| ( } =b?b@g[g]g^g_g`g{g|g}g~gahbhchdhehfhghhhihb CebeceJl0m1m-mvnSmKlSdLlMlNlMntl$mwnZdOlNnOn5njhkh@b[b]b^bImDeEeFeGeHeIeJeKe~manlhmh.mAfBf^f_f`f{f|f}f~fagz A $f%fCfDfYgB C 8d9d!d#dnhohPlQlRlphqhrhshD E i j ~ abthSluhvhwhxhyhzhTladbdbbcbDdEd_b`b{b|bdbeb}b~bfbgb) * hbibacbcccdcAhBhChDhEhFhGhHhIhJhKhLhMhNhOhPhQhRhShc LeMedeeefegeUl2m3m/mxnTmVlTdWlXlYlPnul%myn0dZlQnRn6nThUhVhWhecfcgchcicjcJmKmNeOePeQeReSeTeUeVeWeXeYeZe0e1e2ebncndnenXhYhZh0h:m;mEfFfGfbgcgdgegfggghgigjgkglgmgF G H 'f(f)fHfIfJfZg0gI J K $d%d'd(d)d*d1h2h3h4h0l1l2l3l4l5l5h6h7h8h9h!h#h$hL M N k l m jbkblb%h'h6l7l(h)h*h+h,h-h.h/h:h;h=h?h8l9lcdddedmbnbobFdGdHdkclcmcncocpcpbqbrbqcrcscsbtbub+ , - vbwbxbtcucvcwcxcyc@h[h]h^h_h`h{h|h}h~haibicidieifigihiiijikiliminioipiqirisitiuiviwixiyiziAiBid 3e4eheiejeke!l4m5m=mznUm#lUd$l%l'lSnvl'mAn1d(lTnUn7nCiDiEiFizcAcBcCcDcEcLmMm5e6e7e8e9e!e#e$e%e'e(e)e*e+e,e-efngnhninGiHiIiJi?m@mKfLfMfngogpgqgrgsgtgugvgwgxgygO P Q *f+f,fNfOfPf1g2gR S T +d,d-d.d/d:dKiLiMiNi)l*l+l,l-l.lOiPiQiRiSiTiUiViU V W n o p ybzbAbWiXi/l:lYiZi0i1i2i3i4i5i6i7i8i9i;l=lfdgdhdBbCbDbIdJdKdFcGcHcIcJcKcEbFbGbLcMcNcHbIbJb. / : KbLbMbOcPcQcRcScTc!i#i$i%i'i(i)i*i+i,i-i.i/i:i;i=i?i@i[i]i^i_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkje .e/elemeneoe?l6m7m[mBnVm@lVd[l]l^lVnwl(mCn2d_lWnXn8nljmjnjojUcVcWcXcYcZcNmOm:e;e=e?e@e[e]e^e_e`e{e|e}e~eafbfjnknlnmnpjqjrjsj]m^mQfRfSfzgAgBgCgDgEgFgGgHgIgJgKgX Y Z -f.f/fTfUfVf3g4g0 1 2 ;d=d?d@d[d]dtjujvjwj`l{l|l}l~lamxjyjzjAjBjCjDjEj3 4 5 q r s NbObPbFjGjbmcmHjIjJjKjLjMjNjOjPjQjRjSjdmemidjdkdQbRbSbLdMdNd0c1c2c3c4c5cTbUbVb6c7c8cWbXbYb; = ? Zb0b1b9c!c#c$c%c'cTjUjVjWjXjYjZj0j1j2j3j4j5j6j7j8j9j!j#j$j%j'j(j)j*j+j,j-j.j/j:j;j=j?j@j[j]j^jf cfdfpeqeresefm8m9m_mDnWmgmWdhmimjmYnxl)mEn3dkmZn0n9n_j`j{j|j(c)c*c+c,c-cPmQmefffgfhfifjfkflfmfnfofpfqfrfsftfnnonpnqn}j~jakbk`m{mWfXfYfLgMgNgOgPgQgRgSgTgUgVgWg6 7 8 :f;f=fZf0f1f5g6g9 ! # ^d_d`d{d|d}dckdkekfklmmmnmompmqmgkhkikjkkklkmknk$ % ' t u v 2b3b4bokpkrmsmqkrksktkukvkwkxkykzkAkBktmumldmdnd5b6b7bOdPdQd.c/c:c;c=c?c8b9b!b@c[c]c#b$b%b@ [ ] 'b(b)b^c_c`c{c|c}cCkDkEkFkGkHkIkJkKkLkMkNkOkPkQkRkSkTkUkVkWkXkYkZk0k1k2k3k4k5k6k7k8k9k!k#k$k%k

719 # Override derived nullability if the nullable property is set explicitly 

720 # on the field 

721 field_nullable = getattr(field_info, "nullable", Undefined) # noqa: B009 2g 2fwfxfwm*m+msnHn!mxm4dymzmAm1nvmrnIn5dBm2n3n!n,k-kudvdXm3f4f5f6f7f8f9f!fFnGn.k/k7g'k(k)k*k*b8g9g+k+bufvf:k;kCmDmEm=k?k@k[k,b^ od]kFm^k_k`k{k|k}kGmBdpdXdwdxdqdydrdsdtdzdAd~kalblcldlelflglhliljlklllmlnlolplqlrla te~daeylYmZm,mtnRmzlRdAlBlClJnsl#munYdDlKnLn4n!g#g-b.bHmuevewexeyezeAeBe|m}m$g%gyf?f@f[f]fw #fzfXgx 6d7d'g(gElFlGl)g*g+g,gy h _ -gHl.g/g:g;g=g?gIl~c` Cd/b:b{ ;b| ( } =b?b@g[g]g^g_g`g{g|g}g~gahbhchdhehfhghhhihb CebeceJl0m1m-mvnSmKlSdLlMlNlMntl$mwnZdOlNnOn5njhkh@b[b]b^bImDeEeFeGeHeIeJeKe~manlhmh.mAfBf^f_f`f{f|f}f~fagz A $f%fCfDfYgB C 8d9d!d#dnhohPlQlRlphqhrhshD E i j ~ abthSluhvhwhxhyhzhTladbdbbcbDdEd_b`b{b|bdbeb}b~bfbgb) * hbibacbcccdcAhBhChDhEhFhGhHhIhJhKhLhMhNhOhPhQhRhShc LeMedeeefegeUl2m3m/mxnTmVlTdWlXlYlPnul%myn0dZlQnRn6nThUhVhWhecfcgchcicjcJmKmNeOePeQeReSeTeUeVeWeXeYeZe0e1e2ebncndnenXhYhZh0h:m;mEfFfGfbgcgdgegfggghgigjgkglgmgF G H 'f(f)fHfIfJfZg0gI J K $d%d'd(d)d*d1h2h3h4h0l1l2l3l4l5l5h6h7h8h9h!h#h$hL M N k l m jbkblb%h'h6l7l(h)h*h+h,h-h.h/h:h;h=h?h8l9lcdddedmbnbobFdGdHdkclcmcncocpcpbqbrbqcrcscsbtbub+ , - vbwbxbtcucvcwcxcyc@h[h]h^h_h`h{h|h}h~haibicidieifigihiiijikiliminioipiqirisitiuiviwixiyiziAiBid 3e4eheiejeke!l4m5m=mznUm#lUd$l%l'lSnvl'mAn1d(lTnUn7nCiDiEiFizcAcBcCcDcEcLmMm5e6e7e8e9e!e#e$e%e'e(e)e*e+e,e-efngnhninGiHiIiJi?m@mKfLfMfngogpgqgrgsgtgugvgwgxgygO P Q *f+f,fNfOfPf1g2gR S T +d,d-d.d/d:dKiLiMiNi)l*l+l,l-l.lOiPiQiRiSiTiUiViU V W n o p ybzbAbWiXi/l:lYiZi0i1i2i3i4i5i6i7i8i9i;l=lfdgdhdBbCbDbIdJdKdFcGcHcIcJcKcEbFbGbLcMcNcHbIbJb. / : KbLbMbOcPcQcRcScTc!i#i$i%i'i(i)i*i+i,i-i.i/i:i;i=i?i@i[i]i^i_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkje .e/elemeneoe?l6m7m[mBnVm@lVd[l]l^lVnwl(mCn2d_lWnXn8nljmjnjojUcVcWcXcYcZcNmOm:e;e=e?e@e[e]e^e_e`e{e|e}e~eafbfjnknlnmnpjqjrjsj]m^mQfRfSfzgAgBgCgDgEgFgGgHgIgJgKgX Y Z -f.f/fTfUfVf3g4g0 1 2 ;d=d?d@d[d]dtjujvjwj`l{l|l}l~lamxjyjzjAjBjCjDjEj3 4 5 q r s NbObPbFjGjbmcmHjIjJjKjLjMjNjOjPjQjRjSjdmemidjdkdQbRbSbLdMdNd0c1c2c3c4c5cTbUbVb6c7c8cWbXbYb; = ? Zb0b1b9c!c#c$c%c'cTjUjVjWjXjYjZj0j1j2j3j4j5j6j7j8j9j!j#j$j%j'j(j)j*j+j,j-j.j/j:j;j=j?j@j[j]j^jf cfdfpeqeresefm8m9m_mDnWmgmWdhmimjmYnxl)mEn3dkmZn0n9n_j`j{j|j(c)c*c+c,c-cPmQmefffgfhfifjfkflfmfnfofpfqfrfsftfnnonpnqn}j~jakbk`m{mWfXfYfLgMgNgOgPgQgRgSgTgUgVgWg6 7 8 :f;f=fZf0f1f5g6g9 ! # ^d_d`d{d|d}dckdkekfklmmmnmompmqmgkhkikjkkklkmknk$ % ' t u v 2b3b4bokpkrmsmqkrksktkukvkwkxkykzkAkBktmumldmdnd5b6b7bOdPdQd.c/c:c;c=c?c8b9b!b@c[c]c#b$b%b@ [ ] 'b(b)b^c_c`c{c|c}cCkDkEkFkGkHkIkJkKkLkMkNkOkPkQkRkSkTkUkVkWkXkYkZk0k1k2k3k4k5k6k7k8k9k!k#k$k%k

722 if field_nullable is not Undefined: 2g 2fwfxfwm*m+msnHn!mxm4dymzmAm1nvmrnIn5dBm2n3n!n,k-kudvdXm3f4f5f6f7f8f9f!fFnGn.k/k7g'k(k)k*k*b8g9g+k+bufvf:k;kCmDmEm=k?k@k[k,b^ od]kFm^k_k`k{k|k}kGmBdpdXdwdxdqdydrdsdtdzdAd~kalblcldlelflglhliljlklllmlnlolplqlrla te~daeylYmZm,mtnRmzlRdAlBlClJnsl#munYdDlKnLn4n!g#g-b.bHmuevewexeyezeAeBe|m}m$g%gyf?f@f[f]fw #fzfXgx 6d7d'g(gElFlGl)g*g+g,gy h _ -gHl.g/g:g;g=g?gIl~c` Cd/b:b{ ;b| ( } =b?b@g[g]g^g_g`g{g|g}g~gahbhchdhehfhghhhihb CebeceJl0m1m-mvnSmKlSdLlMlNlMntl$mwnZdOlNnOn5njhkh@b[b]b^bImDeEeFeGeHeIeJeKe~manlhmh.mAfBf^f_f`f{f|f}f~fagz A $f%fCfDfYgB C 8d9d!d#dnhohPlQlRlphqhrhshD E i j ~ abthSluhvhwhxhyhzhTladbdbbcbDdEd_b`b{b|bdbeb}b~bfbgb) * hbibacbcccdcAhBhChDhEhFhGhHhIhJhKhLhMhNhOhPhQhRhShc LeMedeeefegeUl2m3m/mxnTmVlTdWlXlYlPnul%myn0dZlQnRn6nThUhVhWhecfcgchcicjcJmKmNeOePeQeReSeTeUeVeWeXeYeZe0e1e2ebncndnenXhYhZh0h:m;mEfFfGfbgcgdgegfggghgigjgkglgmgF G H 'f(f)fHfIfJfZg0gI J K $d%d'd(d)d*d1h2h3h4h0l1l2l3l4l5l5h6h7h8h9h!h#h$hL M N k l m jbkblb%h'h6l7l(h)h*h+h,h-h.h/h:h;h=h?h8l9lcdddedmbnbobFdGdHdkclcmcncocpcpbqbrbqcrcscsbtbub+ , - vbwbxbtcucvcwcxcyc@h[h]h^h_h`h{h|h}h~haibicidieifigihiiijikiliminioipiqirisitiuiviwixiyiziAiBid 3e4eheiejeke!l4m5m=mznUm#lUd$l%l'lSnvl'mAn1d(lTnUn7nCiDiEiFizcAcBcCcDcEcLmMm5e6e7e8e9e!e#e$e%e'e(e)e*e+e,e-efngnhninGiHiIiJi?m@mKfLfMfngogpgqgrgsgtgugvgwgxgygO P Q *f+f,fNfOfPf1g2gR S T +d,d-d.d/d:dKiLiMiNi)l*l+l,l-l.lOiPiQiRiSiTiUiViU V W n o p ybzbAbWiXi/l:lYiZi0i1i2i3i4i5i6i7i8i9i;l=lfdgdhdBbCbDbIdJdKdFcGcHcIcJcKcEbFbGbLcMcNcHbIbJb. / : KbLbMbOcPcQcRcScTc!i#i$i%i'i(i)i*i+i,i-i.i/i:i;i=i?i@i[i]i^i_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkje .e/elemeneoe?l6m7m[mBnVm@lVd[l]l^lVnwl(mCn2d_lWnXn8nljmjnjojUcVcWcXcYcZcNmOm:e;e=e?e@e[e]e^e_e`e{e|e}e~eafbfjnknlnmnpjqjrjsj]m^mQfRfSfzgAgBgCgDgEgFgGgHgIgJgKgX Y Z -f.f/fTfUfVf3g4g0 1 2 ;d=d?d@d[d]dtjujvjwj`l{l|l}l~lamxjyjzjAjBjCjDjEj3 4 5 q r s NbObPbFjGjbmcmHjIjJjKjLjMjNjOjPjQjRjSjdmemidjdkdQbRbSbLdMdNd0c1c2c3c4c5cTbUbVb6c7c8cWbXbYb; = ? Zb0b1b9c!c#c$c%c'cTjUjVjWjXjYjZj0j1j2j3j4j5j6j7j8j9j!j#j$j%j'j(j)j*j+j,j-j.j/j:j;j=j?j@j[j]j^jf cfdfpeqeresefm8m9m_mDnWmgmWdhmimjmYnxl)mEn3dkmZn0n9n_j`j{j|j(c)c*c+c,c-cPmQmefffgfhfifjfkflfmfnfofpfqfrfsftfnnonpnqn}j~jakbk`m{mWfXfYfLgMgNgOgPgQgRgSgTgUgVgWg6 7 8 :f;f=fZf0f1f5g6g9 ! # ^d_d`d{d|d}dckdkekfklmmmnmompmqmgkhkikjkkklkmknk$ % ' t u v 2b3b4bokpkrmsmqkrksktkukvkwkxkykzkAkBktmumldmdnd5b6b7bOdPdQd.c/c:c;c=c?c8b9b!b@c[c]c#b$b%b@ [ ] 'b(b)b^c_c`c{c|c}cCkDkEkFkGkHkIkJkKkLkMkNkOkPkQkRkSkTkUkVkWkXkYkZk0k1k2k3k4k5k6k7k8k9k!k#k$k%k

723 assert not isinstance(field_nullable, UndefinedType) 2vmrnInsl#muntl$mwnul%mynvl'mAnwl(mCnxl)mEn

724 nullable = field_nullable 2vmrnInsl#muntl$mwnul%mynvl'mAnwl(mCnxl)mEn

725 args = [] 2g 2fwfxfwm*m+msnHn!mxm4dymzmAm1nvmrnIn5dBm2n3n!n,k-kudvdXm3f4f5f6f7f8f9f!fFnGn.k/k7g'k(k)k*k*b8g9g+k+bufvf:k;kCmDmEm=k?k@k[k,b^ od]kFm^k_k`k{k|k}kGmBdpdXdwdxdqdydrdsdtdzdAd~kalblcldlelflglhliljlklllmlnlolplqlrla te~daeylYmZm,mtnRmzlRdAlBlClJnsl#munYdDlKnLn4n!g#g-b.bHmuevewexeyezeAeBe|m}m$g%gyf?f@f[f]fw #fzfXgx 6d7d'g(gElFlGl)g*g+g,gy h _ -gHl.g/g:g;g=g?gIl~c` Cd/b:b{ ;b| ( } =b?b@g[g]g^g_g`g{g|g}g~gahbhchdhehfhghhhihb CebeceJl0m1m-mvnSmKlSdLlMlNlMntl$mwnZdOlNnOn5njhkh@b[b]b^bImDeEeFeGeHeIeJeKe~manlhmh.mAfBf^f_f`f{f|f}f~fagz A $f%fCfDfYgB C 8d9d!d#dnhohPlQlRlphqhrhshD E i j ~ abthSluhvhwhxhyhzhTladbdbbcbDdEd_b`b{b|bdbeb}b~bfbgb) * hbibacbcccdcAhBhChDhEhFhGhHhIhJhKhLhMhNhOhPhQhRhShc LeMedeeefegeUl2m3m/mxnTmVlTdWlXlYlPnul%myn0dZlQnRn6nThUhVhWhecfcgchcicjcJmKmNeOePeQeReSeTeUeVeWeXeYeZe0e1e2ebncndnenXhYhZh0h:m;mEfFfGfbgcgdgegfggghgigjgkglgmgF G H 'f(f)fHfIfJfZg0gI J K $d%d'd(d)d*d1h2h3h4h0l1l2l3l4l5l5h6h7h8h9h!h#h$hL M N k l m jbkblb%h'h6l7l(h)h*h+h,h-h.h/h:h;h=h?h8l9lcdddedmbnbobFdGdHdkclcmcncocpcpbqbrbqcrcscsbtbub+ , - vbwbxbtcucvcwcxcyc@h[h]h^h_h`h{h|h}h~haibicidieifigihiiijikiliminioipiqirisitiuiviwixiyiziAiBid 3e4eheiejeke!l4m5m=mznUm#lUd$l%l'lSnvl'mAn1d(lTnUn7nCiDiEiFizcAcBcCcDcEcLmMm5e6e7e8e9e!e#e$e%e'e(e)e*e+e,e-efngnhninGiHiIiJi?m@mKfLfMfngogpgqgrgsgtgugvgwgxgygO P Q *f+f,fNfOfPf1g2gR S T +d,d-d.d/d:dKiLiMiNi)l*l+l,l-l.lOiPiQiRiSiTiUiViU V W n o p ybzbAbWiXi/l:lYiZi0i1i2i3i4i5i6i7i8i9i;l=lfdgdhdBbCbDbIdJdKdFcGcHcIcJcKcEbFbGbLcMcNcHbIbJb. / : KbLbMbOcPcQcRcScTc!i#i$i%i'i(i)i*i+i,i-i.i/i:i;i=i?i@i[i]i^i_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkje .e/elemeneoe?l6m7m[mBnVm@lVd[l]l^lVnwl(mCn2d_lWnXn8nljmjnjojUcVcWcXcYcZcNmOm:e;e=e?e@e[e]e^e_e`e{e|e}e~eafbfjnknlnmnpjqjrjsj]m^mQfRfSfzgAgBgCgDgEgFgGgHgIgJgKgX Y Z -f.f/fTfUfVf3g4g0 1 2 ;d=d?d@d[d]dtjujvjwj`l{l|l}l~lamxjyjzjAjBjCjDjEj3 4 5 q r s NbObPbFjGjbmcmHjIjJjKjLjMjNjOjPjQjRjSjdmemidjdkdQbRbSbLdMdNd0c1c2c3c4c5cTbUbVb6c7c8cWbXbYb; = ? Zb0b1b9c!c#c$c%c'cTjUjVjWjXjYjZj0j1j2j3j4j5j6j7j8j9j!j#j$j%j'j(j)j*j+j,j-j.j/j:j;j=j?j@j[j]j^jf cfdfpeqeresefm8m9m_mDnWmgmWdhmimjmYnxl)mEn3dkmZn0n9n_j`j{j|j(c)c*c+c,c-cPmQmefffgfhfifjfkflfmfnfofpfqfrfsftfnnonpnqn}j~jakbk`m{mWfXfYfLgMgNgOgPgQgRgSgTgUgVgWg6 7 8 :f;f=fZf0f1f5g6g9 ! # ^d_d`d{d|d}dckdkekfklmmmnmompmqmgkhkikjkkklkmknk$ % ' t u v 2b3b4bokpkrmsmqkrksktkukvkwkxkykzkAkBktmumldmdnd5b6b7bOdPdQd.c/c:c;c=c?c8b9b!b@c[c]c#b$b%b@ [ ] 'b(b)b^c_c`c{c|c}cCkDkEkFkGkHkIkJkKkLkMkNkOkPkQkRkSkTkUkVkWkXkYkZk0k1k2k3k4k5k6k7k8k9k!k#k$k%k

726 foreign_key = getattr(field_info, "foreign_key", Undefined) 2g 2fwfxfwm*m+msnHn!mxm4dymzmAm1nvmrnIn5dBm2n3n!n,k-kudvdXm3f4f5f6f7f8f9f!fFnGn.k/k7g'k(k)k*k*b8g9g+k+bufvf:k;kCmDmEm=k?k@k[k,b^ od]kFm^k_k`k{k|k}kGmBdpdXdwdxdqdydrdsdtdzdAd~kalblcldlelflglhliljlklllmlnlolplqlrla te~daeylYmZm,mtnRmzlRdAlBlClJnsl#munYdDlKnLn4n!g#g-b.bHmuevewexeyezeAeBe|m}m$g%gyf?f@f[f]fw #fzfXgx 6d7d'g(gElFlGl)g*g+g,gy h _ -gHl.g/g:g;g=g?gIl~c` Cd/b:b{ ;b| ( } =b?b@g[g]g^g_g`g{g|g}g~gahbhchdhehfhghhhihb CebeceJl0m1m-mvnSmKlSdLlMlNlMntl$mwnZdOlNnOn5njhkh@b[b]b^bImDeEeFeGeHeIeJeKe~manlhmh.mAfBf^f_f`f{f|f}f~fagz A $f%fCfDfYgB C 8d9d!d#dnhohPlQlRlphqhrhshD E i j ~ abthSluhvhwhxhyhzhTladbdbbcbDdEd_b`b{b|bdbeb}b~bfbgb) * hbibacbcccdcAhBhChDhEhFhGhHhIhJhKhLhMhNhOhPhQhRhShc LeMedeeefegeUl2m3m/mxnTmVlTdWlXlYlPnul%myn0dZlQnRn6nThUhVhWhecfcgchcicjcJmKmNeOePeQeReSeTeUeVeWeXeYeZe0e1e2ebncndnenXhYhZh0h:m;mEfFfGfbgcgdgegfggghgigjgkglgmgF G H 'f(f)fHfIfJfZg0gI J K $d%d'd(d)d*d1h2h3h4h0l1l2l3l4l5l5h6h7h8h9h!h#h$hL M N k l m jbkblb%h'h6l7l(h)h*h+h,h-h.h/h:h;h=h?h8l9lcdddedmbnbobFdGdHdkclcmcncocpcpbqbrbqcrcscsbtbub+ , - vbwbxbtcucvcwcxcyc@h[h]h^h_h`h{h|h}h~haibicidieifigihiiijikiliminioipiqirisitiuiviwixiyiziAiBid 3e4eheiejeke!l4m5m=mznUm#lUd$l%l'lSnvl'mAn1d(lTnUn7nCiDiEiFizcAcBcCcDcEcLmMm5e6e7e8e9e!e#e$e%e'e(e)e*e+e,e-efngnhninGiHiIiJi?m@mKfLfMfngogpgqgrgsgtgugvgwgxgygO P Q *f+f,fNfOfPf1g2gR S T +d,d-d.d/d:dKiLiMiNi)l*l+l,l-l.lOiPiQiRiSiTiUiViU V W n o p ybzbAbWiXi/l:lYiZi0i1i2i3i4i5i6i7i8i9i;l=lfdgdhdBbCbDbIdJdKdFcGcHcIcJcKcEbFbGbLcMcNcHbIbJb. / : KbLbMbOcPcQcRcScTc!i#i$i%i'i(i)i*i+i,i-i.i/i:i;i=i?i@i[i]i^i_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkje .e/elemeneoe?l6m7m[mBnVm@lVd[l]l^lVnwl(mCn2d_lWnXn8nljmjnjojUcVcWcXcYcZcNmOm:e;e=e?e@e[e]e^e_e`e{e|e}e~eafbfjnknlnmnpjqjrjsj]m^mQfRfSfzgAgBgCgDgEgFgGgHgIgJgKgX Y Z -f.f/fTfUfVf3g4g0 1 2 ;d=d?d@d[d]dtjujvjwj`l{l|l}l~lamxjyjzjAjBjCjDjEj3 4 5 q r s NbObPbFjGjbmcmHjIjJjKjLjMjNjOjPjQjRjSjdmemidjdkdQbRbSbLdMdNd0c1c2c3c4c5cTbUbVb6c7c8cWbXbYb; = ? Zb0b1b9c!c#c$c%c'cTjUjVjWjXjYjZj0j1j2j3j4j5j6j7j8j9j!j#j$j%j'j(j)j*j+j,j-j.j/j:j;j=j?j@j[j]j^jf cfdfpeqeresefm8m9m_mDnWmgmWdhmimjmYnxl)mEn3dkmZn0n9n_j`j{j|j(c)c*c+c,c-cPmQmefffgfhfifjfkflfmfnfofpfqfrfsftfnnonpnqn}j~jakbk`m{mWfXfYfLgMgNgOgPgQgRgSgTgUgVgWg6 7 8 :f;f=fZf0f1f5g6g9 ! # ^d_d`d{d|d}dckdkekfklmmmnmompmqmgkhkikjkkklkmknk$ % ' t u v 2b3b4bokpkrmsmqkrksktkukvkwkxkykzkAkBktmumldmdnd5b6b7bOdPdQd.c/c:c;c=c?c8b9b!b@c[c]c#b$b%b@ [ ] 'b(b)b^c_c`c{c|c}cCkDkEkFkGkHkIkJkKkLkMkNkOkPkQkRkSkTkUkVkWkXkYkZk0k1k2k3k4k5k6k7k8k9k!k#k$k%k

727 if foreign_key is Undefined: 2g 2fwfxfwm*m+msnHn!mxm4dymzmAm1nvmrnIn5dBm2n3n!n,k-kudvdXm3f4f5f6f7f8f9f!fFnGn.k/k7g'k(k)k*k*b8g9g+k+bufvf:k;kCmDmEm=k?k@k[k,b^ od]kFm^k_k`k{k|k}kGmBdpdXdwdxdqdydrdsdtdzdAd~kalblcldlelflglhliljlklllmlnlolplqlrla te~daeylYmZm,mtnRmzlRdAlBlClJnsl#munYdDlKnLn4n!g#g-b.bHmuevewexeyezeAeBe|m}m$g%gyf?f@f[f]fw #fzfXgx 6d7d'g(gElFlGl)g*g+g,gy h _ -gHl.g/g:g;g=g?gIl~c` Cd/b:b{ ;b| ( } =b?b@g[g]g^g_g`g{g|g}g~gahbhchdhehfhghhhihb CebeceJl0m1m-mvnSmKlSdLlMlNlMntl$mwnZdOlNnOn5njhkh@b[b]b^bImDeEeFeGeHeIeJeKe~manlhmh.mAfBf^f_f`f{f|f}f~fagz A $f%fCfDfYgB C 8d9d!d#dnhohPlQlRlphqhrhshD E i j ~ abthSluhvhwhxhyhzhTladbdbbcbDdEd_b`b{b|bdbeb}b~bfbgb) * hbibacbcccdcAhBhChDhEhFhGhHhIhJhKhLhMhNhOhPhQhRhShc LeMedeeefegeUl2m3m/mxnTmVlTdWlXlYlPnul%myn0dZlQnRn6nThUhVhWhecfcgchcicjcJmKmNeOePeQeReSeTeUeVeWeXeYeZe0e1e2ebncndnenXhYhZh0h:m;mEfFfGfbgcgdgegfggghgigjgkglgmgF G H 'f(f)fHfIfJfZg0gI J K $d%d'd(d)d*d1h2h3h4h0l1l2l3l4l5l5h6h7h8h9h!h#h$hL M N k l m jbkblb%h'h6l7l(h)h*h+h,h-h.h/h:h;h=h?h8l9lcdddedmbnbobFdGdHdkclcmcncocpcpbqbrbqcrcscsbtbub+ , - vbwbxbtcucvcwcxcyc@h[h]h^h_h`h{h|h}h~haibicidieifigihiiijikiliminioipiqirisitiuiviwixiyiziAiBid 3e4eheiejeke!l4m5m=mznUm#lUd$l%l'lSnvl'mAn1d(lTnUn7nCiDiEiFizcAcBcCcDcEcLmMm5e6e7e8e9e!e#e$e%e'e(e)e*e+e,e-efngnhninGiHiIiJi?m@mKfLfMfngogpgqgrgsgtgugvgwgxgygO P Q *f+f,fNfOfPf1g2gR S T +d,d-d.d/d:dKiLiMiNi)l*l+l,l-l.lOiPiQiRiSiTiUiViU V W n o p ybzbAbWiXi/l:lYiZi0i1i2i3i4i5i6i7i8i9i;l=lfdgdhdBbCbDbIdJdKdFcGcHcIcJcKcEbFbGbLcMcNcHbIbJb. / : KbLbMbOcPcQcRcScTc!i#i$i%i'i(i)i*i+i,i-i.i/i:i;i=i?i@i[i]i^i_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkje .e/elemeneoe?l6m7m[mBnVm@lVd[l]l^lVnwl(mCn2d_lWnXn8nljmjnjojUcVcWcXcYcZcNmOm:e;e=e?e@e[e]e^e_e`e{e|e}e~eafbfjnknlnmnpjqjrjsj]m^mQfRfSfzgAgBgCgDgEgFgGgHgIgJgKgX Y Z -f.f/fTfUfVf3g4g0 1 2 ;d=d?d@d[d]dtjujvjwj`l{l|l}l~lamxjyjzjAjBjCjDjEj3 4 5 q r s NbObPbFjGjbmcmHjIjJjKjLjMjNjOjPjQjRjSjdmemidjdkdQbRbSbLdMdNd0c1c2c3c4c5cTbUbVb6c7c8cWbXbYb; = ? Zb0b1b9c!c#c$c%c'cTjUjVjWjXjYjZj0j1j2j3j4j5j6j7j8j9j!j#j$j%j'j(j)j*j+j,j-j.j/j:j;j=j?j@j[j]j^jf cfdfpeqeresefm8m9m_mDnWmgmWdhmimjmYnxl)mEn3dkmZn0n9n_j`j{j|j(c)c*c+c,c-cPmQmefffgfhfifjfkflfmfnfofpfqfrfsftfnnonpnqn}j~jakbk`m{mWfXfYfLgMgNgOgPgQgRgSgTgUgVgWg6 7 8 :f;f=fZf0f1f5g6g9 ! # ^d_d`d{d|d}dckdkekfklmmmnmompmqmgkhkikjkkklkmknk$ % ' t u v 2b3b4bokpkrmsmqkrksktkukvkwkxkykzkAkBktmumldmdnd5b6b7bOdPdQd.c/c:c;c=c?c8b9b!b@c[c]c#b$b%b@ [ ] 'b(b)b^c_c`c{c|c}cCkDkEkFkGkHkIkJkKkLkMkNkOkPkQkRkSkTkUkVkWkXkYkZk0k1k2k3k4k5k6k7k8k9k!k#k$k%k

728 foreign_key = None 2g 2fwfxfwm*m+msnHn!mxm4dymzmAm1nvmrnIn5dBm2n3n!n,k-kudvdXm3f4f5f6f7f8f9f!fFnGn.k/k7g'k(k)k*k*b8g9g+k+bufvf:k;kCmDmEm=k?k@k[k,b^ od]kFm^k_k`k{k|k}kGmBdpdXdwdxdqdydrdsdtdzdAd~kalblcldlelflglhliljlklllmlnlolplqlrla te~daeylYmZm,mtnRmzlRdAlBlClJnsl#munYdDlKnLn4n!g#g-b.bHmuevewexeyezeAeBe|m}m$g%gyf?f@f[f]fw #fzfXgx 6d7d'g(gElFlGl)g*g+g,gy h _ -gHl.g/g:g;g=g?gIl~c` Cd/b:b{ ;b| ( } =b?b@g[g]g^g_g`g{g|g}g~gahbhchdhehfhghhhihb CebeceJl0m1m-mvnSmKlSdLlMlNlMntl$mwnZdOlNnOn5njhkh@b[b]b^bImDeEeFeGeHeIeJeKe~manlhmh.mAfBf^f_f`f{f|f}f~fagz A $f%fCfDfYgB C 8d9d!d#dnhohPlQlRlphqhrhshD E i j ~ abthSluhvhwhxhyhzhTladbdbbcbDdEd_b`b{b|bdbeb}b~bfbgb) * hbibacbcccdcAhBhChDhEhFhGhHhIhJhKhLhMhNhOhPhQhRhShc LeMedeeefegeUl2m3m/mxnTmVlTdWlXlYlPnul%myn0dZlQnRn6nThUhVhWhecfcgchcicjcJmKmNeOePeQeReSeTeUeVeWeXeYeZe0e1e2ebncndnenXhYhZh0h:m;mEfFfGfbgcgdgegfggghgigjgkglgmgF G H 'f(f)fHfIfJfZg0gI J K $d%d'd(d)d*d1h2h3h4h0l1l2l3l4l5l5h6h7h8h9h!h#h$hL M N k l m jbkblb%h'h6l7l(h)h*h+h,h-h.h/h:h;h=h?h8l9lcdddedmbnbobFdGdHdkclcmcncocpcpbqbrbqcrcscsbtbub+ , - vbwbxbtcucvcwcxcyc@h[h]h^h_h`h{h|h}h~haibicidieifigihiiijikiliminioipiqirisitiuiviwixiyiziAiBid 3e4eheiejeke!l4m5m=mznUm#lUd$l%l'lSnvl'mAn1d(lTnUn7nCiDiEiFizcAcBcCcDcEcLmMm5e6e7e8e9e!e#e$e%e'e(e)e*e+e,e-efngnhninGiHiIiJi?m@mKfLfMfngogpgqgrgsgtgugvgwgxgygO P Q *f+f,fNfOfPf1g2gR S T +d,d-d.d/d:dKiLiMiNi)l*l+l,l-l.lOiPiQiRiSiTiUiViU V W n o p ybzbAbWiXi/l:lYiZi0i1i2i3i4i5i6i7i8i9i;l=lfdgdhdBbCbDbIdJdKdFcGcHcIcJcKcEbFbGbLcMcNcHbIbJb. / : KbLbMbOcPcQcRcScTc!i#i$i%i'i(i)i*i+i,i-i.i/i:i;i=i?i@i[i]i^i_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkje .e/elemeneoe?l6m7m[mBnVm@lVd[l]l^lVnwl(mCn2d_lWnXn8nljmjnjojUcVcWcXcYcZcNmOm:e;e=e?e@e[e]e^e_e`e{e|e}e~eafbfjnknlnmnpjqjrjsj]m^mQfRfSfzgAgBgCgDgEgFgGgHgIgJgKgX Y Z -f.f/fTfUfVf3g4g0 1 2 ;d=d?d@d[d]dtjujvjwj`l{l|l}l~lamxjyjzjAjBjCjDjEj3 4 5 q r s NbObPbFjGjbmcmHjIjJjKjLjMjNjOjPjQjRjSjdmemidjdkdQbRbSbLdMdNd0c1c2c3c4c5cTbUbVb6c7c8cWbXbYb; = ? Zb0b1b9c!c#c$c%c'cTjUjVjWjXjYjZj0j1j2j3j4j5j6j7j8j9j!j#j$j%j'j(j)j*j+j,j-j.j/j:j;j=j?j@j[j]j^jf cfdfpeqeresefm8m9m_mDnWmgmWdhmimjmYnxl)mEn3dkmZn0n9n_j`j{j|j(c)c*c+c,c-cPmQmefffgfhfifjfkflfmfnfofpfqfrfsftfnnonpnqn}j~jakbk`m{mWfXfYfLgMgNgOgPgQgRgSgTgUgVgWg6 7 8 :f;f=fZf0f1f5g6g9 ! # ^d_d`d{d|d}dckdkekfklmmmnmompmqmgkhkikjkkklkmknk$ % ' t u v 2b3b4bokpkrmsmqkrksktkukvkwkxkykzkAkBktmumldmdnd5b6b7bOdPdQd.c/c:c;c=c?c8b9b!b@c[c]c#b$b%b@ [ ] 'b(b)b^c_c`c{c|c}cCkDkEkFkGkHkIkJkKkLkMkNkOkPkQkRkSkTkUkVkWkXkYkZk0k1k2k3k4k5k6k7k8k9k!k#k$k%k

729 unique = getattr(field_info, "unique", Undefined) 2g 2fwfxfwm*m+msnHn!mxm4dymzmAm1nvmrnIn5dBm2n3n!n,k-kudvdXm3f4f5f6f7f8f9f!fFnGn.k/k7g'k(k)k*k*b8g9g+k+bufvf:k;kCmDmEm=k?k@k[k,b^ od]kFm^k_k`k{k|k}kGmBdpdXdwdxdqdydrdsdtdzdAd~kalblcldlelflglhliljlklllmlnlolplqlrla te~daeylYmZm,mtnRmzlRdAlBlClJnsl#munYdDlKnLn4n!g#g-b.bHmuevewexeyezeAeBe|m}m$g%gyf?f@f[f]fw #fzfXgx 6d7d'g(gElFlGl)g*g+g,gy h _ -gHl.g/g:g;g=g?gIl~c` Cd/b:b{ ;b| ( } =b?b@g[g]g^g_g`g{g|g}g~gahbhchdhehfhghhhihb CebeceJl0m1m-mvnSmKlSdLlMlNlMntl$mwnZdOlNnOn5njhkh@b[b]b^bImDeEeFeGeHeIeJeKe~manlhmh.mAfBf^f_f`f{f|f}f~fagz A $f%fCfDfYgB C 8d9d!d#dnhohPlQlRlphqhrhshD E i j ~ abthSluhvhwhxhyhzhTladbdbbcbDdEd_b`b{b|bdbeb}b~bfbgb) * hbibacbcccdcAhBhChDhEhFhGhHhIhJhKhLhMhNhOhPhQhRhShc LeMedeeefegeUl2m3m/mxnTmVlTdWlXlYlPnul%myn0dZlQnRn6nThUhVhWhecfcgchcicjcJmKmNeOePeQeReSeTeUeVeWeXeYeZe0e1e2ebncndnenXhYhZh0h:m;mEfFfGfbgcgdgegfggghgigjgkglgmgF G H 'f(f)fHfIfJfZg0gI J K $d%d'd(d)d*d1h2h3h4h0l1l2l3l4l5l5h6h7h8h9h!h#h$hL M N k l m jbkblb%h'h6l7l(h)h*h+h,h-h.h/h:h;h=h?h8l9lcdddedmbnbobFdGdHdkclcmcncocpcpbqbrbqcrcscsbtbub+ , - vbwbxbtcucvcwcxcyc@h[h]h^h_h`h{h|h}h~haibicidieifigihiiijikiliminioipiqirisitiuiviwixiyiziAiBid 3e4eheiejeke!l4m5m=mznUm#lUd$l%l'lSnvl'mAn1d(lTnUn7nCiDiEiFizcAcBcCcDcEcLmMm5e6e7e8e9e!e#e$e%e'e(e)e*e+e,e-efngnhninGiHiIiJi?m@mKfLfMfngogpgqgrgsgtgugvgwgxgygO P Q *f+f,fNfOfPf1g2gR S T +d,d-d.d/d:dKiLiMiNi)l*l+l,l-l.lOiPiQiRiSiTiUiViU V W n o p ybzbAbWiXi/l:lYiZi0i1i2i3i4i5i6i7i8i9i;l=lfdgdhdBbCbDbIdJdKdFcGcHcIcJcKcEbFbGbLcMcNcHbIbJb. / : KbLbMbOcPcQcRcScTc!i#i$i%i'i(i)i*i+i,i-i.i/i:i;i=i?i@i[i]i^i_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkje .e/elemeneoe?l6m7m[mBnVm@lVd[l]l^lVnwl(mCn2d_lWnXn8nljmjnjojUcVcWcXcYcZcNmOm:e;e=e?e@e[e]e^e_e`e{e|e}e~eafbfjnknlnmnpjqjrjsj]m^mQfRfSfzgAgBgCgDgEgFgGgHgIgJgKgX Y Z -f.f/fTfUfVf3g4g0 1 2 ;d=d?d@d[d]dtjujvjwj`l{l|l}l~lamxjyjzjAjBjCjDjEj3 4 5 q r s NbObPbFjGjbmcmHjIjJjKjLjMjNjOjPjQjRjSjdmemidjdkdQbRbSbLdMdNd0c1c2c3c4c5cTbUbVb6c7c8cWbXbYb; = ? Zb0b1b9c!c#c$c%c'cTjUjVjWjXjYjZj0j1j2j3j4j5j6j7j8j9j!j#j$j%j'j(j)j*j+j,j-j.j/j:j;j=j?j@j[j]j^jf cfdfpeqeresefm8m9m_mDnWmgmWdhmimjmYnxl)mEn3dkmZn0n9n_j`j{j|j(c)c*c+c,c-cPmQmefffgfhfifjfkflfmfnfofpfqfrfsftfnnonpnqn}j~jakbk`m{mWfXfYfLgMgNgOgPgQgRgSgTgUgVgWg6 7 8 :f;f=fZf0f1f5g6g9 ! # ^d_d`d{d|d}dckdkekfklmmmnmompmqmgkhkikjkkklkmknk$ % ' t u v 2b3b4bokpkrmsmqkrksktkukvkwkxkykzkAkBktmumldmdnd5b6b7bOdPdQd.c/c:c;c=c?c8b9b!b@c[c]c#b$b%b@ [ ] 'b(b)b^c_c`c{c|c}cCkDkEkFkGkHkIkJkKkLkMkNkOkPkQkRkSkTkUkVkWkXkYkZk0k1k2k3k4k5k6k7k8k9k!k#k$k%k

730 if unique is Undefined: 2g 2fwfxfwm*m+msnHn!mxm4dymzmAm1nvmrnIn5dBm2n3n!n,k-kudvdXm3f4f5f6f7f8f9f!fFnGn.k/k7g'k(k)k*k*b8g9g+k+bufvf:k;kCmDmEm=k?k@k[k,b^ od]kFm^k_k`k{k|k}kGmBdpdXdwdxdqdydrdsdtdzdAd~kalblcldlelflglhliljlklllmlnlolplqlrla te~daeylYmZm,mtnRmzlRdAlBlClJnsl#munYdDlKnLn4n!g#g-b.bHmuevewexeyezeAeBe|m}m$g%gyf?f@f[f]fw #fzfXgx 6d7d'g(gElFlGl)g*g+g,gy h _ -gHl.g/g:g;g=g?gIl~c` Cd/b:b{ ;b| ( } =b?b@g[g]g^g_g`g{g|g}g~gahbhchdhehfhghhhihb CebeceJl0m1m-mvnSmKlSdLlMlNlMntl$mwnZdOlNnOn5njhkh@b[b]b^bImDeEeFeGeHeIeJeKe~manlhmh.mAfBf^f_f`f{f|f}f~fagz A $f%fCfDfYgB C 8d9d!d#dnhohPlQlRlphqhrhshD E i j ~ abthSluhvhwhxhyhzhTladbdbbcbDdEd_b`b{b|bdbeb}b~bfbgb) * hbibacbcccdcAhBhChDhEhFhGhHhIhJhKhLhMhNhOhPhQhRhShc LeMedeeefegeUl2m3m/mxnTmVlTdWlXlYlPnul%myn0dZlQnRn6nThUhVhWhecfcgchcicjcJmKmNeOePeQeReSeTeUeVeWeXeYeZe0e1e2ebncndnenXhYhZh0h:m;mEfFfGfbgcgdgegfggghgigjgkglgmgF G H 'f(f)fHfIfJfZg0gI J K $d%d'd(d)d*d1h2h3h4h0l1l2l3l4l5l5h6h7h8h9h!h#h$hL M N k l m jbkblb%h'h6l7l(h)h*h+h,h-h.h/h:h;h=h?h8l9lcdddedmbnbobFdGdHdkclcmcncocpcpbqbrbqcrcscsbtbub+ , - vbwbxbtcucvcwcxcyc@h[h]h^h_h`h{h|h}h~haibicidieifigihiiijikiliminioipiqirisitiuiviwixiyiziAiBid 3e4eheiejeke!l4m5m=mznUm#lUd$l%l'lSnvl'mAn1d(lTnUn7nCiDiEiFizcAcBcCcDcEcLmMm5e6e7e8e9e!e#e$e%e'e(e)e*e+e,e-efngnhninGiHiIiJi?m@mKfLfMfngogpgqgrgsgtgugvgwgxgygO P Q *f+f,fNfOfPf1g2gR S T +d,d-d.d/d:dKiLiMiNi)l*l+l,l-l.lOiPiQiRiSiTiUiViU V W n o p ybzbAbWiXi/l:lYiZi0i1i2i3i4i5i6i7i8i9i;l=lfdgdhdBbCbDbIdJdKdFcGcHcIcJcKcEbFbGbLcMcNcHbIbJb. / : KbLbMbOcPcQcRcScTc!i#i$i%i'i(i)i*i+i,i-i.i/i:i;i=i?i@i[i]i^i_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkje .e/elemeneoe?l6m7m[mBnVm@lVd[l]l^lVnwl(mCn2d_lWnXn8nljmjnjojUcVcWcXcYcZcNmOm:e;e=e?e@e[e]e^e_e`e{e|e}e~eafbfjnknlnmnpjqjrjsj]m^mQfRfSfzgAgBgCgDgEgFgGgHgIgJgKgX Y Z -f.f/fTfUfVf3g4g0 1 2 ;d=d?d@d[d]dtjujvjwj`l{l|l}l~lamxjyjzjAjBjCjDjEj3 4 5 q r s NbObPbFjGjbmcmHjIjJjKjLjMjNjOjPjQjRjSjdmemidjdkdQbRbSbLdMdNd0c1c2c3c4c5cTbUbVb6c7c8cWbXbYb; = ? Zb0b1b9c!c#c$c%c'cTjUjVjWjXjYjZj0j1j2j3j4j5j6j7j8j9j!j#j$j%j'j(j)j*j+j,j-j.j/j:j;j=j?j@j[j]j^jf cfdfpeqeresefm8m9m_mDnWmgmWdhmimjmYnxl)mEn3dkmZn0n9n_j`j{j|j(c)c*c+c,c-cPmQmefffgfhfifjfkflfmfnfofpfqfrfsftfnnonpnqn}j~jakbk`m{mWfXfYfLgMgNgOgPgQgRgSgTgUgVgWg6 7 8 :f;f=fZf0f1f5g6g9 ! # ^d_d`d{d|d}dckdkekfklmmmnmompmqmgkhkikjkkklkmknk$ % ' t u v 2b3b4bokpkrmsmqkrksktkukvkwkxkykzkAkBktmumldmdnd5b6b7bOdPdQd.c/c:c;c=c?c8b9b!b@c[c]c#b$b%b@ [ ] 'b(b)b^c_c`c{c|c}cCkDkEkFkGkHkIkJkKkLkMkNkOkPkQkRkSkTkUkVkWkXkYkZk0k1k2k3k4k5k6k7k8k9k!k#k$k%k

731 unique = False 2g 2fwfxfwm*m+msnHn!mxm4dymzmAm1nvmrnIn5dBm2n3n!n,k-kudvdXm3f4f5f6f7f8f9f!fFnGn.k/k7g'k(k)k*k*b8g9g+k+bufvf:k;kCmDmEm=k?k@k[k,b^ od]kFm^k_k`k{k|k}kGmBdpdXdwdxdqdydrdsdtdzdAd~kalblcldlelflglhliljlklllmlnlolplqlrla te~daeylYmZm,mtnRmzlRdAlBlClJnsl#munYdDlKnLn4n!g#g-b.bHmuevewexeyezeAeBe|m}m$g%gyf?f@f[f]fw #fzfXgx 6d7d'g(gElFlGl)g*g+g,gy h _ -gHl.g/g:g;g=g?gIl~c` Cd/b:b{ ;b| ( } =b?b@g[g]g^g_g`g{g|g}g~gahbhchdhehfhghhhihb CebeceJl0m1m-mvnSmKlSdLlMlNlMntl$mwnZdOlNnOn5njhkh@b[b]b^bImDeEeFeGeHeIeJeKe~manlhmh.mAfBf^f_f`f{f|f}f~fagz A $f%fCfDfYgB C 8d9d!d#dnhohPlQlRlphqhrhshD E i j ~ abthSluhvhwhxhyhzhTladbdbbcbDdEd_b`b{b|bdbeb}b~bfbgb) * hbibacbcccdcAhBhChDhEhFhGhHhIhJhKhLhMhNhOhPhQhRhShc LeMedeeefegeUl2m3m/mxnTmVlTdWlXlYlPnul%myn0dZlQnRn6nThUhVhWhecfcgchcicjcJmKmNeOePeQeReSeTeUeVeWeXeYeZe0e1e2ebncndnenXhYhZh0h:m;mEfFfGfbgcgdgegfggghgigjgkglgmgF G H 'f(f)fHfIfJfZg0gI J K $d%d'd(d)d*d1h2h3h4h0l1l2l3l4l5l5h6h7h8h9h!h#h$hL M N k l m jbkblb%h'h6l7l(h)h*h+h,h-h.h/h:h;h=h?h8l9lcdddedmbnbobFdGdHdkclcmcncocpcpbqbrbqcrcscsbtbub+ , - vbwbxbtcucvcwcxcyc@h[h]h^h_h`h{h|h}h~haibicidieifigihiiijikiliminioipiqirisitiuiviwixiyiziAiBid 3e4eheiejeke!l4m5m=mznUm#lUd$l%l'lSnvl'mAn1d(lTnUn7nCiDiEiFizcAcBcCcDcEcLmMm5e6e7e8e9e!e#e$e%e'e(e)e*e+e,e-efngnhninGiHiIiJi?m@mKfLfMfngogpgqgrgsgtgugvgwgxgygO P Q *f+f,fNfOfPf1g2gR S T +d,d-d.d/d:dKiLiMiNi)l*l+l,l-l.lOiPiQiRiSiTiUiViU V W n o p ybzbAbWiXi/l:lYiZi0i1i2i3i4i5i6i7i8i9i;l=lfdgdhdBbCbDbIdJdKdFcGcHcIcJcKcEbFbGbLcMcNcHbIbJb. / : KbLbMbOcPcQcRcScTc!i#i$i%i'i(i)i*i+i,i-i.i/i:i;i=i?i@i[i]i^i_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkje .e/elemeneoe?l6m7m[mBnVm@lVd[l]l^lVnwl(mCn2d_lWnXn8nljmjnjojUcVcWcXcYcZcNmOm:e;e=e?e@e[e]e^e_e`e{e|e}e~eafbfjnknlnmnpjqjrjsj]m^mQfRfSfzgAgBgCgDgEgFgGgHgIgJgKgX Y Z -f.f/fTfUfVf3g4g0 1 2 ;d=d?d@d[d]dtjujvjwj`l{l|l}l~lamxjyjzjAjBjCjDjEj3 4 5 q r s NbObPbFjGjbmcmHjIjJjKjLjMjNjOjPjQjRjSjdmemidjdkdQbRbSbLdMdNd0c1c2c3c4c5cTbUbVb6c7c8cWbXbYb; = ? Zb0b1b9c!c#c$c%c'cTjUjVjWjXjYjZj0j1j2j3j4j5j6j7j8j9j!j#j$j%j'j(j)j*j+j,j-j.j/j:j;j=j?j@j[j]j^jf cfdfpeqeresefm8m9m_mDnWmgmWdhmimjmYnxl)mEn3dkmZn0n9n_j`j{j|j(c)c*c+c,c-cPmQmefffgfhfifjfkflfmfnfofpfqfrfsftfnnonpnqn}j~jakbk`m{mWfXfYfLgMgNgOgPgQgRgSgTgUgVgWg6 7 8 :f;f=fZf0f1f5g6g9 ! # ^d_d`d{d|d}dckdkekfklmmmnmompmqmgkhkikjkkklkmknk$ % ' t u v 2b3b4bokpkrmsmqkrksktkukvkwkxkykzkAkBktmumldmdnd5b6b7bOdPdQd.c/c:c;c=c?c8b9b!b@c[c]c#b$b%b@ [ ] 'b(b)b^c_c`c{c|c}cCkDkEkFkGkHkIkJkKkLkMkNkOkPkQkRkSkTkUkVkWkXkYkZk0k1k2k3k4k5k6k7k8k9k!k#k$k%k

732 if foreign_key: 2g 2fwfxfwm*m+msnHn!mxm4dymzmAm1nvmrnIn5dBm2n3n!n,k-kudvdXm3f4f5f6f7f8f9f!fFnGn.k/k7g'k(k)k*k*b8g9g+k+bufvf:k;kCmDmEm=k?k@k[k,b^ od]kFm^k_k`k{k|k}kGmBdpdXdwdxdqdydrdsdtdzdAd~kalblcldlelflglhliljlklllmlnlolplqlrla te~daeylYmZm,mtnRmzlRdAlBlClJnsl#munYdDlKnLn4n!g#g-b.bHmuevewexeyezeAeBe|m}m$g%gyf?f@f[f]fw #fzfXgx 6d7d'g(gElFlGl)g*g+g,gy h _ -gHl.g/g:g;g=g?gIl~c` Cd/b:b{ ;b| ( } =b?b@g[g]g^g_g`g{g|g}g~gahbhchdhehfhghhhihb CebeceJl0m1m-mvnSmKlSdLlMlNlMntl$mwnZdOlNnOn5njhkh@b[b]b^bImDeEeFeGeHeIeJeKe~manlhmh.mAfBf^f_f`f{f|f}f~fagz A $f%fCfDfYgB C 8d9d!d#dnhohPlQlRlphqhrhshD E i j ~ abthSluhvhwhxhyhzhTladbdbbcbDdEd_b`b{b|bdbeb}b~bfbgb) * hbibacbcccdcAhBhChDhEhFhGhHhIhJhKhLhMhNhOhPhQhRhShc LeMedeeefegeUl2m3m/mxnTmVlTdWlXlYlPnul%myn0dZlQnRn6nThUhVhWhecfcgchcicjcJmKmNeOePeQeReSeTeUeVeWeXeYeZe0e1e2ebncndnenXhYhZh0h:m;mEfFfGfbgcgdgegfggghgigjgkglgmgF G H 'f(f)fHfIfJfZg0gI J K $d%d'd(d)d*d1h2h3h4h0l1l2l3l4l5l5h6h7h8h9h!h#h$hL M N k l m jbkblb%h'h6l7l(h)h*h+h,h-h.h/h:h;h=h?h8l9lcdddedmbnbobFdGdHdkclcmcncocpcpbqbrbqcrcscsbtbub+ , - vbwbxbtcucvcwcxcyc@h[h]h^h_h`h{h|h}h~haibicidieifigihiiijikiliminioipiqirisitiuiviwixiyiziAiBid 3e4eheiejeke!l4m5m=mznUm#lUd$l%l'lSnvl'mAn1d(lTnUn7nCiDiEiFizcAcBcCcDcEcLmMm5e6e7e8e9e!e#e$e%e'e(e)e*e+e,e-efngnhninGiHiIiJi?m@mKfLfMfngogpgqgrgsgtgugvgwgxgygO P Q *f+f,fNfOfPf1g2gR S T +d,d-d.d/d:dKiLiMiNi)l*l+l,l-l.lOiPiQiRiSiTiUiViU V W n o p ybzbAbWiXi/l:lYiZi0i1i2i3i4i5i6i7i8i9i;l=lfdgdhdBbCbDbIdJdKdFcGcHcIcJcKcEbFbGbLcMcNcHbIbJb. / : KbLbMbOcPcQcRcScTc!i#i$i%i'i(i)i*i+i,i-i.i/i:i;i=i?i@i[i]i^i_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkje .e/elemeneoe?l6m7m[mBnVm@lVd[l]l^lVnwl(mCn2d_lWnXn8nljmjnjojUcVcWcXcYcZcNmOm:e;e=e?e@e[e]e^e_e`e{e|e}e~eafbfjnknlnmnpjqjrjsj]m^mQfRfSfzgAgBgCgDgEgFgGgHgIgJgKgX Y Z -f.f/fTfUfVf3g4g0 1 2 ;d=d?d@d[d]dtjujvjwj`l{l|l}l~lamxjyjzjAjBjCjDjEj3 4 5 q r s NbObPbFjGjbmcmHjIjJjKjLjMjNjOjPjQjRjSjdmemidjdkdQbRbSbLdMdNd0c1c2c3c4c5cTbUbVb6c7c8cWbXbYb; = ? Zb0b1b9c!c#c$c%c'cTjUjVjWjXjYjZj0j1j2j3j4j5j6j7j8j9j!j#j$j%j'j(j)j*j+j,j-j.j/j:j;j=j?j@j[j]j^jf cfdfpeqeresefm8m9m_mDnWmgmWdhmimjmYnxl)mEn3dkmZn0n9n_j`j{j|j(c)c*c+c,c-cPmQmefffgfhfifjfkflfmfnfofpfqfrfsftfnnonpnqn}j~jakbk`m{mWfXfYfLgMgNgOgPgQgRgSgTgUgVgWg6 7 8 :f;f=fZf0f1f5g6g9 ! # ^d_d`d{d|d}dckdkekfklmmmnmompmqmgkhkikjkkklkmknk$ % ' t u v 2b3b4bokpkrmsmqkrksktkukvkwkxkykzkAkBktmumldmdnd5b6b7bOdPdQd.c/c:c;c=c?c8b9b!b@c[c]c#b$b%b@ [ ] 'b(b)b^c_c`c{c|c}cCkDkEkFkGkHkIkJkKkLkMkNkOkPkQkRkSkTkUkVkWkXkYkZk0k1k2k3k4k5k6k7k8k9k!k#k$k%k

733 if field_info.ondelete == "SET NULL" and not nullable: 24d5dudvdXm3f4f5f6f7f8f9f!f*b+b,b^ odBdpdXdwdxdqdydrdsdtdzdAdRdYd-b.bHmuevewexeyezeAeBew x y h _ ~c` Cd/b:b{ ;b| ( } =b?bSdZd@b[b]b^bImDeEeFeGeHeIeJeKez A B C D E i j ~ abadbdbbcbDdEd_b`b{b|bdbeb}b~bfbgb) * hbibacbcccdcTd0decfcgchcicjcJmKmNeOePeQeReSeTeUeVeWeXeYeZe0e1e2eF G H I J K L M N k l m jbkblbcdddedmbnbobFdGdHdkclcmcncocpcpbqbrbqcrcscsbtbub+ , - vbwbxbtcucvcwcxcycUd1dzcAcBcCcDcEcLmMm5e6e7e8e9e!e#e$e%e'e(e)e*e+e,e-eO P Q R S T U V W n o p ybzbAbfdgdhdBbCbDbIdJdKdFcGcHcIcJcKcEbFbGbLcMcNcHbIbJb. / : KbLbMbOcPcQcRcScTcVd2dUcVcWcXcYcZcNmOm:e;e=e?e@e[e]e^e_e`e{e|e}e~eafbfX Y Z 0 1 2 3 4 5 q r s NbObPbidjdkdQbRbSbLdMdNd0c1c2c3c4c5cTbUbVb6c7c8cWbXbYb; = ? Zb0b1b9c!c#c$c%c'cWd3d(c)c*c+c,c-cPmQmefffgfhfifjfkflfmfnfofpfqfrfsftf6 7 8 9 ! # $ % ' t u v 2b3b4bldmdnd5b6b7bOdPdQd.c/c:c;c=c?c8b9b!b@c[c]c#b$b%b@ [ ] 'b(b)b^c_c`c{c|c}c

734 raise RuntimeError('ondelete="SET NULL" requires nullable=True') 25dYdZd0d1d2d3d

735 assert isinstance(foreign_key, str) 24dudvdXm3f4f5f6f7f8f9f!f*b+b,b^ odBdpdXdwdxdqdydrdsdtdzdAdRd-b.bHmuevewexeyezeAeBew x y h _ ~c` Cd/b:b{ ;b| ( } =b?bSd@b[b]b^bImDeEeFeGeHeIeJeKez A B C D E i j ~ abadbdbbcbDdEd_b`b{b|bdbeb}b~bfbgb) * hbibacbcccdcTdecfcgchcicjcJmKmNeOePeQeReSeTeUeVeWeXeYeZe0e1e2eF G H I J K L M N k l m jbkblbcdddedmbnbobFdGdHdkclcmcncocpcpbqbrbqcrcscsbtbub+ , - vbwbxbtcucvcwcxcycUdzcAcBcCcDcEcLmMm5e6e7e8e9e!e#e$e%e'e(e)e*e+e,e-eO P Q R S T U V W n o p ybzbAbfdgdhdBbCbDbIdJdKdFcGcHcIcJcKcEbFbGbLcMcNcHbIbJb. / : KbLbMbOcPcQcRcScTcVdUcVcWcXcYcZcNmOm:e;e=e?e@e[e]e^e_e`e{e|e}e~eafbfX Y Z 0 1 2 3 4 5 q r s NbObPbidjdkdQbRbSbLdMdNd0c1c2c3c4c5cTbUbVb6c7c8cWbXbYb; = ? Zb0b1b9c!c#c$c%c'cWd(c)c*c+c,c-cPmQmefffgfhfifjfkflfmfnfofpfqfrfsftf6 7 8 9 ! # $ % ' t u v 2b3b4bldmdnd5b6b7bOdPdQd.c/c:c;c=c?c8b9b!b@c[c]c#b$b%b@ [ ] 'b(b)b^c_c`c{c|c}c

736 ondelete = getattr(field_info, "ondelete", Undefined) 24dudvdXm3f4f5f6f7f8f9f!f*b+b,b^ odBdpdXdwdxdqdydrdsdtdzdAdRd-b.bHmuevewexeyezeAeBew x y h _ ~c` Cd/b:b{ ;b| ( } =b?bSd@b[b]b^bImDeEeFeGeHeIeJeKez A B C D E i j ~ abadbdbbcbDdEd_b`b{b|bdbeb}b~bfbgb) * hbibacbcccdcTdecfcgchcicjcJmKmNeOePeQeReSeTeUeVeWeXeYeZe0e1e2eF G H I J K L M N k l m jbkblbcdddedmbnbobFdGdHdkclcmcncocpcpbqbrbqcrcscsbtbub+ , - vbwbxbtcucvcwcxcycUdzcAcBcCcDcEcLmMm5e6e7e8e9e!e#e$e%e'e(e)e*e+e,e-eO P Q R S T U V W n o p ybzbAbfdgdhdBbCbDbIdJdKdFcGcHcIcJcKcEbFbGbLcMcNcHbIbJb. / : KbLbMbOcPcQcRcScTcVdUcVcWcXcYcZcNmOm:e;e=e?e@e[e]e^e_e`e{e|e}e~eafbfX Y Z 0 1 2 3 4 5 q r s NbObPbidjdkdQbRbSbLdMdNd0c1c2c3c4c5cTbUbVb6c7c8cWbXbYb; = ? Zb0b1b9c!c#c$c%c'cWd(c)c*c+c,c-cPmQmefffgfhfifjfkflfmfnfofpfqfrfsftf6 7 8 9 ! # $ % ' t u v 2b3b4bldmdnd5b6b7bOdPdQd.c/c:c;c=c?c8b9b!b@c[c]c#b$b%b@ [ ] 'b(b)b^c_c`c{c|c}c

737 if ondelete is Undefined: 24dudvdXm3f4f5f6f7f8f9f!f*b+b,b^ odBdpdXdwdxdqdydrdsdtdzdAdRd-b.bHmuevewexeyezeAeBew x y h _ ~c` Cd/b:b{ ;b| ( } =b?bSd@b[b]b^bImDeEeFeGeHeIeJeKez A B C D E i j ~ abadbdbbcbDdEd_b`b{b|bdbeb}b~bfbgb) * hbibacbcccdcTdecfcgchcicjcJmKmNeOePeQeReSeTeUeVeWeXeYeZe0e1e2eF G H I J K L M N k l m jbkblbcdddedmbnbobFdGdHdkclcmcncocpcpbqbrbqcrcscsbtbub+ , - vbwbxbtcucvcwcxcycUdzcAcBcCcDcEcLmMm5e6e7e8e9e!e#e$e%e'e(e)e*e+e,e-eO P Q R S T U V W n o p ybzbAbfdgdhdBbCbDbIdJdKdFcGcHcIcJcKcEbFbGbLcMcNcHbIbJb. / : KbLbMbOcPcQcRcScTcVdUcVcWcXcYcZcNmOm:e;e=e?e@e[e]e^e_e`e{e|e}e~eafbfX Y Z 0 1 2 3 4 5 q r s NbObPbidjdkdQbRbSbLdMdNd0c1c2c3c4c5cTbUbVb6c7c8cWbXbYb; = ? Zb0b1b9c!c#c$c%c'cWd(c)c*c+c,c-cPmQmefffgfhfifjfkflfmfnfofpfqfrfsftf6 7 8 9 ! # $ % ' t u v 2b3b4bldmdnd5b6b7bOdPdQd.c/c:c;c=c?c8b9b!b@c[c]c#b$b%b@ [ ] 'b(b)b^c_c`c{c|c}c

738 ondelete = None 24dudvdXm3f4f5f6f7f8f9f!f*b+b,b^ odBdpdXdwdxdzdAdRd-b.bHmuevewexeyezeAeBew x y h _ ~c` Cd/b:b=b?bSd@b[b]b^bImDeEeFeGeHeIeJeKez A B C D E i j ~ abadbdbbcbDdEd_b`b{b|bacbcccdcTdecfcgchcicjcJmKmNeOePeQeReSeTeUeVeWeXeYeZe0e1e2eF G H I J K L M N k l m jbkblbcdddedmbnbobFdGdHdkclcmcncocpctcucvcwcxcycUdzcAcBcCcDcEcLmMm5e6e7e8e9e!e#e$e%e'e(e)e*e+e,e-eO P Q R S T U V W n o p ybzbAbfdgdhdBbCbDbIdJdKdFcGcHcIcJcKcOcPcQcRcScTcVdUcVcWcXcYcZcNmOm:e;e=e?e@e[e]e^e_e`e{e|e}e~eafbfX Y Z 0 1 2 3 4 5 q r s NbObPbidjdkdQbRbSbLdMdNd0c1c2c3c4c5c9c!c#c$c%c'cWd(c)c*c+c,c-cPmQmefffgfhfifjfkflfmfnfofpfqfrfsftf6 7 8 9 ! # $ % ' t u v 2b3b4bldmdnd5b6b7bOdPdQd.c/c:c;c=c?c^c_c`c{c|c}c

739 assert isinstance(ondelete, (str, type(None))) # for typing 24dudvdXm3f4f5f6f7f8f9f!f*b+b,b^ odBdpdXdwdxdqdydrdsdtdzdAdRd-b.bHmuevewexeyezeAeBew x y h _ ~c` Cd/b:b{ ;b| ( } =b?bSd@b[b]b^bImDeEeFeGeHeIeJeKez A B C D E i j ~ abadbdbbcbDdEd_b`b{b|bdbeb}b~bfbgb) * hbibacbcccdcTdecfcgchcicjcJmKmNeOePeQeReSeTeUeVeWeXeYeZe0e1e2eF G H I J K L M N k l m jbkblbcdddedmbnbobFdGdHdkclcmcncocpcpbqbrbqcrcscsbtbub+ , - vbwbxbtcucvcwcxcycUdzcAcBcCcDcEcLmMm5e6e7e8e9e!e#e$e%e'e(e)e*e+e,e-eO P Q R S T U V W n o p ybzbAbfdgdhdBbCbDbIdJdKdFcGcHcIcJcKcEbFbGbLcMcNcHbIbJb. / : KbLbMbOcPcQcRcScTcVdUcVcWcXcYcZcNmOm:e;e=e?e@e[e]e^e_e`e{e|e}e~eafbfX Y Z 0 1 2 3 4 5 q r s NbObPbidjdkdQbRbSbLdMdNd0c1c2c3c4c5cTbUbVb6c7c8cWbXbYb; = ? Zb0b1b9c!c#c$c%c'cWd(c)c*c+c,c-cPmQmefffgfhfifjfkflfmfnfofpfqfrfsftf6 7 8 9 ! # $ % ' t u v 2b3b4bldmdnd5b6b7bOdPdQd.c/c:c;c=c?c8b9b!b@c[c]c#b$b%b@ [ ] 'b(b)b^c_c`c{c|c}c

740 args.append(ForeignKey(foreign_key, ondelete=ondelete)) 24dudvdXm3f4f5f6f7f8f9f!f*b+b,b^ odBdpdXdwdxdqdydrdsdtdzdAdRd-b.bHmuevewexeyezeAeBew x y h _ ~c` Cd/b:b{ ;b| ( } =b?bSd@b[b]b^bImDeEeFeGeHeIeJeKez A B C D E i j ~ abadbdbbcbDdEd_b`b{b|bdbeb}b~bfbgb) * hbibacbcccdcTdecfcgchcicjcJmKmNeOePeQeReSeTeUeVeWeXeYeZe0e1e2eF G H I J K L M N k l m jbkblbcdddedmbnbobFdGdHdkclcmcncocpcpbqbrbqcrcscsbtbub+ , - vbwbxbtcucvcwcxcycUdzcAcBcCcDcEcLmMm5e6e7e8e9e!e#e$e%e'e(e)e*e+e,e-eO P Q R S T U V W n o p ybzbAbfdgdhdBbCbDbIdJdKdFcGcHcIcJcKcEbFbGbLcMcNcHbIbJb. / : KbLbMbOcPcQcRcScTcVdUcVcWcXcYcZcNmOm:e;e=e?e@e[e]e^e_e`e{e|e}e~eafbfX Y Z 0 1 2 3 4 5 q r s NbObPbidjdkdQbRbSbLdMdNd0c1c2c3c4c5cTbUbVb6c7c8cWbXbYb; = ? Zb0b1b9c!c#c$c%c'cWd(c)c*c+c,c-cPmQmefffgfhfifjfkflfmfnfofpfqfrfsftf6 7 8 9 ! # $ % ' t u v 2b3b4bldmdnd5b6b7bOdPdQd.c/c:c;c=c?c8b9b!b@c[c]c#b$b%b@ [ ] 'b(b)b^c_c`c{c|c}c

741 kwargs = { 2a te~daeylYmZm,mtnRmzlRdAlBlClJnsl#munYdDlKnLn4n!g#g-b.bHmuevewexeyezeAeBe|m}m$g%gyf?f@f[f]fw #fzfXgx 6d7d'g(gElFlGl)g*g+g,gy h _ -gHl.g/g:g;g=g?gIl~c` Cd/b:b{ ;b| ( } =b?b@g[g]g^g_g`g{g|g}g~gahbhchdhehfhghhhihb CebeceJl0m1m-mvnSmKlSdLlMlNlMntl$mwnZdOlNnOn5njhkh@b[b]b^bImDeEeFeGeHeIeJeKe~manlhmh.mAfBf^f_f`f{f|f}f~fagz A $f%fCfDfYgB C 8d9d!d#dnhohPlQlRlphqhrhshD E i j ~ abthSluhvhwhxhyhzhTladbdbbcbDdEd_b`b{b|bdbeb}b~bfbgb) * hbibacbcccdcAhBhChDhEhFhGhHhIhJhKhLhMhNhOhPhQhRhShc LeMedeeefegeUl2m3m/mxnTmVlTdWlXlYlPnul%myn0dZlQnRn6nThUhVhWhecfcgchcicjcJmKmNeOePeQeReSeTeUeVeWeXeYeZe0e1e2ebncndnenXhYhZh0h:m;mEfFfGfbgcgdgegfggghgigjgkglgmgF G H 'f(f)fHfIfJfZg0gI J K $d%d'd(d)d*d1h2h3h4h0l1l2l3l4l5l5h6h7h8h9h!h#h$hL M N k l m jbkblb%h'h6l7l(h)h*h+h,h-h.h/h:h;h=h?h8l9lcdddedmbnbobFdGdHdkclcmcncocpcpbqbrbqcrcscsbtbub+ , - vbwbxbtcucvcwcxcyc@h[h]h^h_h`h{h|h}h~haibicidieifigihiiijikiliminioipiqirisitiuiviwixiyiziAiBid 3e4eheiejeke!l4m5m=mznUm#lUd$l%l'lSnvl'mAn1d(lTnUn7nCiDiEiFizcAcBcCcDcEcLmMm5e6e7e8e9e!e#e$e%e'e(e)e*e+e,e-efngnhninGiHiIiJi?m@mKfLfMfngogpgqgrgsgtgugvgwgxgygO P Q *f+f,fNfOfPf1g2gR S T +d,d-d.d/d:dKiLiMiNi)l*l+l,l-l.lOiPiQiRiSiTiUiViU V W n o p ybzbAbWiXi/l:lYiZi0i1i2i3i4i5i6i7i8i9i;l=lfdgdhdBbCbDbIdJdKdFcGcHcIcJcKcEbFbGbLcMcNcHbIbJb. / : KbLbMbOcPcQcRcScTc!i#i$i%i'i(i)i*i+i,i-i.i/i:i;i=i?i@i[i]i^i_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkje .e/elemeneoe?l6m7m[mBnVm@lVd[l]l^lVnwl(mCn2d_lWnXn8nljmjnjojUcVcWcXcYcZcNmOm:e;e=e?e@e[e]e^e_e`e{e|e}e~eafbfjnknlnmnpjqjrjsj]m^mQfRfSfzgAgBgCgDgEgFgGgHgIgJgKgX Y Z -f.f/fTfUfVf3g4g0 1 2 ;d=d?d@d[d]dtjujvjwj`l{l|l}l~lamxjyjzjAjBjCjDjEj3 4 5 q r s NbObPbFjGjbmcmHjIjJjKjLjMjNjOjPjQjRjSjdmemidjdkdQbRbSbLdMdNd0c1c2c3c4c5cTbUbVb6c7c8cWbXbYb; = ? Zb0b1b9c!c#c$c%c'cTjUjVjWjXjYjZj0j1j2j3j4j5j6j7j8j9j!j#j$j%j'j(j)j*j+j,j-j.j/j:j;j=j?j@j[j]j^jf cfdfpeqeresefm8m9m_mDnWmgmWdhmimjmYnxl)mEn3dkmZn0n9n_j`j{j|j(c)c*c+c,c-cPmQmefffgfhfifjfkflfmfnfofpfqfrfsftfnnonpnqn}j~jakbk`m{mWfXfYfLgMgNgOgPgQgRgSgTgUgVgWg6 7 8 :f;f=fZf0f1f5g6g9 ! # ^d_d`d{d|d}dckdkekfklmmmnmompmqmgkhkikjkkklkmknk$ % ' t u v 2b3b4bokpkrmsmqkrksktkukvkwkxkykzkAkBktmumldmdnd5b6b7bOdPdQd.c/c:c;c=c?c8b9b!b@c[c]c#b$b%b@ [ ] 'b(b)b^c_c`c{c|c}cCkDkEkFkGkHkIkJkKkLkMkNkOkPkQkRkSkTkUkVkWkXkYkZk0k1k2k3k4k5k6k7k8k9k!k#k$k%k

742 "primary_key": primary_key, 

743 "nullable": nullable, 

744 "index": index, 

745 "unique": unique, 

746 } 

747 sa_default = Undefined 2g 2fwfxfwm*m+msnHn!mxm4dymzmAm1nvmrnIn5dBm2n3n!n,k-kudvdXm3f4f5f6f7f8f9f!fFnGn.k/k7g'k(k)k*k*b8g9g+k+bufvf:k;kCmDmEm=k?k@k[k,b^ od]kFm^k_k`k{k|k}kGmBdpdXdwdxdqdydrdsdtdzdAd~kalblcldlelflglhliljlklllmlnlolplqlrla te~daeylYmZm,mtnRmzlRdAlBlClJnsl#munYdDlKnLn4n!g#g-b.bHmuevewexeyezeAeBe|m}m$g%gyf?f@f[f]fw #fzfXgx 6d7d'g(gElFlGl)g*g+g,gy h _ -gHl.g/g:g;g=g?gIl~c` Cd/b:b{ ;b| ( } =b?b@g[g]g^g_g`g{g|g}g~gahbhchdhehfhghhhihb CebeceJl0m1m-mvnSmKlSdLlMlNlMntl$mwnZdOlNnOn5njhkh@b[b]b^bImDeEeFeGeHeIeJeKe~manlhmh.mAfBf^f_f`f{f|f}f~fagz A $f%fCfDfYgB C 8d9d!d#dnhohPlQlRlphqhrhshD E i j ~ abthSluhvhwhxhyhzhTladbdbbcbDdEd_b`b{b|bdbeb}b~bfbgb) * hbibacbcccdcAhBhChDhEhFhGhHhIhJhKhLhMhNhOhPhQhRhShc LeMedeeefegeUl2m3m/mxnTmVlTdWlXlYlPnul%myn0dZlQnRn6nThUhVhWhecfcgchcicjcJmKmNeOePeQeReSeTeUeVeWeXeYeZe0e1e2ebncndnenXhYhZh0h:m;mEfFfGfbgcgdgegfggghgigjgkglgmgF G H 'f(f)fHfIfJfZg0gI J K $d%d'd(d)d*d1h2h3h4h0l1l2l3l4l5l5h6h7h8h9h!h#h$hL M N k l m jbkblb%h'h6l7l(h)h*h+h,h-h.h/h:h;h=h?h8l9lcdddedmbnbobFdGdHdkclcmcncocpcpbqbrbqcrcscsbtbub+ , - vbwbxbtcucvcwcxcyc@h[h]h^h_h`h{h|h}h~haibicidieifigihiiijikiliminioipiqirisitiuiviwixiyiziAiBid 3e4eheiejeke!l4m5m=mznUm#lUd$l%l'lSnvl'mAn1d(lTnUn7nCiDiEiFizcAcBcCcDcEcLmMm5e6e7e8e9e!e#e$e%e'e(e)e*e+e,e-efngnhninGiHiIiJi?m@mKfLfMfngogpgqgrgsgtgugvgwgxgygO P Q *f+f,fNfOfPf1g2gR S T +d,d-d.d/d:dKiLiMiNi)l*l+l,l-l.lOiPiQiRiSiTiUiViU V W n o p ybzbAbWiXi/l:lYiZi0i1i2i3i4i5i6i7i8i9i;l=lfdgdhdBbCbDbIdJdKdFcGcHcIcJcKcEbFbGbLcMcNcHbIbJb. / : KbLbMbOcPcQcRcScTc!i#i$i%i'i(i)i*i+i,i-i.i/i:i;i=i?i@i[i]i^i_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkje .e/elemeneoe?l6m7m[mBnVm@lVd[l]l^lVnwl(mCn2d_lWnXn8nljmjnjojUcVcWcXcYcZcNmOm:e;e=e?e@e[e]e^e_e`e{e|e}e~eafbfjnknlnmnpjqjrjsj]m^mQfRfSfzgAgBgCgDgEgFgGgHgIgJgKgX Y Z -f.f/fTfUfVf3g4g0 1 2 ;d=d?d@d[d]dtjujvjwj`l{l|l}l~lamxjyjzjAjBjCjDjEj3 4 5 q r s NbObPbFjGjbmcmHjIjJjKjLjMjNjOjPjQjRjSjdmemidjdkdQbRbSbLdMdNd0c1c2c3c4c5cTbUbVb6c7c8cWbXbYb; = ? Zb0b1b9c!c#c$c%c'cTjUjVjWjXjYjZj0j1j2j3j4j5j6j7j8j9j!j#j$j%j'j(j)j*j+j,j-j.j/j:j;j=j?j@j[j]j^jf cfdfpeqeresefm8m9m_mDnWmgmWdhmimjmYnxl)mEn3dkmZn0n9n_j`j{j|j(c)c*c+c,c-cPmQmefffgfhfifjfkflfmfnfofpfqfrfsftfnnonpnqn}j~jakbk`m{mWfXfYfLgMgNgOgPgQgRgSgTgUgVgWg6 7 8 :f;f=fZf0f1f5g6g9 ! # ^d_d`d{d|d}dckdkekfklmmmnmompmqmgkhkikjkkklkmknk$ % ' t u v 2b3b4bokpkrmsmqkrksktkukvkwkxkykzkAkBktmumldmdnd5b6b7bOdPdQd.c/c:c;c=c?c8b9b!b@c[c]c#b$b%b@ [ ] 'b(b)b^c_c`c{c|c}cCkDkEkFkGkHkIkJkKkLkMkNkOkPkQkRkSkTkUkVkWkXkYkZk0k1k2k3k4k5k6k7k8k9k!k#k$k%k

748 if field_info.default_factory: 2g 2fwfxfwm*m+msnHn!mxm4dymzmAm1nvmrnIn5dBm2n3n!n,k-kudvdXm3f4f5f6f7f8f9f!fFnGn.k/k7g'k(k)k*k*b8g9g+k+bufvf:k;kCmDmEm=k?k@k[k,b^ od]kFm^k_k`k{k|k}kGmBdpdXdwdxdqdydrdsdtdzdAd~kalblcldlelflglhliljlklllmlnlolplqlrla te~daeylYmZm,mtnRmzlRdAlBlClJnsl#munYdDlKnLn4n!g#g-b.bHmuevewexeyezeAeBe|m}m$g%gyf?f@f[f]fw #fzfXgx 6d7d'g(gElFlGl)g*g+g,gy h _ -gHl.g/g:g;g=g?gIl~c` Cd/b:b{ ;b| ( } =b?b@g[g]g^g_g`g{g|g}g~gahbhchdhehfhghhhihb CebeceJl0m1m-mvnSmKlSdLlMlNlMntl$mwnZdOlNnOn5njhkh@b[b]b^bImDeEeFeGeHeIeJeKe~manlhmh.mAfBf^f_f`f{f|f}f~fagz A $f%fCfDfYgB C 8d9d!d#dnhohPlQlRlphqhrhshD E i j ~ abthSluhvhwhxhyhzhTladbdbbcbDdEd_b`b{b|bdbeb}b~bfbgb) * hbibacbcccdcAhBhChDhEhFhGhHhIhJhKhLhMhNhOhPhQhRhShc LeMedeeefegeUl2m3m/mxnTmVlTdWlXlYlPnul%myn0dZlQnRn6nThUhVhWhecfcgchcicjcJmKmNeOePeQeReSeTeUeVeWeXeYeZe0e1e2ebncndnenXhYhZh0h:m;mEfFfGfbgcgdgegfggghgigjgkglgmgF G H 'f(f)fHfIfJfZg0gI J K $d%d'd(d)d*d1h2h3h4h0l1l2l3l4l5l5h6h7h8h9h!h#h$hL M N k l m jbkblb%h'h6l7l(h)h*h+h,h-h.h/h:h;h=h?h8l9lcdddedmbnbobFdGdHdkclcmcncocpcpbqbrbqcrcscsbtbub+ , - vbwbxbtcucvcwcxcyc@h[h]h^h_h`h{h|h}h~haibicidieifigihiiijikiliminioipiqirisitiuiviwixiyiziAiBid 3e4eheiejeke!l4m5m=mznUm#lUd$l%l'lSnvl'mAn1d(lTnUn7nCiDiEiFizcAcBcCcDcEcLmMm5e6e7e8e9e!e#e$e%e'e(e)e*e+e,e-efngnhninGiHiIiJi?m@mKfLfMfngogpgqgrgsgtgugvgwgxgygO P Q *f+f,fNfOfPf1g2gR S T +d,d-d.d/d:dKiLiMiNi)l*l+l,l-l.lOiPiQiRiSiTiUiViU V W n o p ybzbAbWiXi/l:lYiZi0i1i2i3i4i5i6i7i8i9i;l=lfdgdhdBbCbDbIdJdKdFcGcHcIcJcKcEbFbGbLcMcNcHbIbJb. / : KbLbMbOcPcQcRcScTc!i#i$i%i'i(i)i*i+i,i-i.i/i:i;i=i?i@i[i]i^i_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkje .e/elemeneoe?l6m7m[mBnVm@lVd[l]l^lVnwl(mCn2d_lWnXn8nljmjnjojUcVcWcXcYcZcNmOm:e;e=e?e@e[e]e^e_e`e{e|e}e~eafbfjnknlnmnpjqjrjsj]m^mQfRfSfzgAgBgCgDgEgFgGgHgIgJgKgX Y Z -f.f/fTfUfVf3g4g0 1 2 ;d=d?d@d[d]dtjujvjwj`l{l|l}l~lamxjyjzjAjBjCjDjEj3 4 5 q r s NbObPbFjGjbmcmHjIjJjKjLjMjNjOjPjQjRjSjdmemidjdkdQbRbSbLdMdNd0c1c2c3c4c5cTbUbVb6c7c8cWbXbYb; = ? Zb0b1b9c!c#c$c%c'cTjUjVjWjXjYjZj0j1j2j3j4j5j6j7j8j9j!j#j$j%j'j(j)j*j+j,j-j.j/j:j;j=j?j@j[j]j^jf cfdfpeqeresefm8m9m_mDnWmgmWdhmimjmYnxl)mEn3dkmZn0n9n_j`j{j|j(c)c*c+c,c-cPmQmefffgfhfifjfkflfmfnfofpfqfrfsftfnnonpnqn}j~jakbk`m{mWfXfYfLgMgNgOgPgQgRgSgTgUgVgWg6 7 8 :f;f=fZf0f1f5g6g9 ! # ^d_d`d{d|d}dckdkekfklmmmnmompmqmgkhkikjkkklkmknk$ % ' t u v 2b3b4bokpkrmsmqkrksktkukvkwkxkykzkAkBktmumldmdnd5b6b7bOdPdQd.c/c:c;c=c?c8b9b!b@c[c]c#b$b%b@ [ ] 'b(b)b^c_c`c{c|c}cCkDkEkFkGkHkIkJkKkLkMkNkOkPkQkRkSkTkUkVkWkXkYkZk0k1k2k3k4k5k6k7k8k9k!k#k$k%k

749 sa_default = field_info.default_factory 2wfxfwm~daeylbeceJldeeefegeUlheiejeke!llemeneoe?lpeqeresefm

750 elif field_info.default is not Undefined: 2g 2fwfxf*m+msnHn!mxm4dymzmAm1nvmrnIn5dBm2n3n!n,k-kudvdXm3f4f5f6f7f8f9f!fFnGn.k/k7g'k(k)k*k*b8g9g+k+bufvf:k;kCmDmEm=k?k@k[k,b^ od]kFm^k_k`k{k|k}kGmBdpdXdwdxdqdydrdsdtdzdAd~kalblcldlelflglhliljlklllmlnlolplqlrla te~daeYmZm,mtnRmzlRdAlBlClJnsl#munYdDlKnLn4n!g#g-b.bHmuevewexeyezeAeBe|m}m$g%gyf?f@f[f]fw #fzfXgx 6d7d'g(gElFlGl)g*g+g,gy h _ -gHl.g/g:g;g=g?gIl~c` Cd/b:b{ ;b| ( } =b?b@g[g]g^g_g`g{g|g}g~gahbhchdhehfhghhhihb Cebece0m1m-mvnSmKlSdLlMlNlMntl$mwnZdOlNnOn5njhkh@b[b]b^bImDeEeFeGeHeIeJeKe~manlhmh.mAfBf^f_f`f{f|f}f~fagz A $f%fCfDfYgB C 8d9d!d#dnhohPlQlRlphqhrhshD E i j ~ abthSluhvhwhxhyhzhTladbdbbcbDdEd_b`b{b|bdbeb}b~bfbgb) * hbibacbcccdcAhBhChDhEhFhGhHhIhJhKhLhMhNhOhPhQhRhShc LeMedeeefege2m3m/mxnTmVlTdWlXlYlPnul%myn0dZlQnRn6nThUhVhWhecfcgchcicjcJmKmNeOePeQeReSeTeUeVeWeXeYeZe0e1e2ebncndnenXhYhZh0h:m;mEfFfGfbgcgdgegfggghgigjgkglgmgF G H 'f(f)fHfIfJfZg0gI J K $d%d'd(d)d*d1h2h3h4h0l1l2l3l4l5l5h6h7h8h9h!h#h$hL M N k l m jbkblb%h'h6l7l(h)h*h+h,h-h.h/h:h;h=h?h8l9lcdddedmbnbobFdGdHdkclcmcncocpcpbqbrbqcrcscsbtbub+ , - vbwbxbtcucvcwcxcyc@h[h]h^h_h`h{h|h}h~haibicidieifigihiiijikiliminioipiqirisitiuiviwixiyiziAiBid 3e4eheiejeke4m5m=mznUm#lUd$l%l'lSnvl'mAn1d(lTnUn7nCiDiEiFizcAcBcCcDcEcLmMm5e6e7e8e9e!e#e$e%e'e(e)e*e+e,e-efngnhninGiHiIiJi?m@mKfLfMfngogpgqgrgsgtgugvgwgxgygO P Q *f+f,fNfOfPf1g2gR S T +d,d-d.d/d:dKiLiMiNi)l*l+l,l-l.lOiPiQiRiSiTiUiViU V W n o p ybzbAbWiXi/l:lYiZi0i1i2i3i4i5i6i7i8i9i;l=lfdgdhdBbCbDbIdJdKdFcGcHcIcJcKcEbFbGbLcMcNcHbIbJb. / : KbLbMbOcPcQcRcScTc!i#i$i%i'i(i)i*i+i,i-i.i/i:i;i=i?i@i[i]i^i_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkje .e/elemeneoe6m7m[mBnVm@lVd[l]l^lVnwl(mCn2d_lWnXn8nljmjnjojUcVcWcXcYcZcNmOm:e;e=e?e@e[e]e^e_e`e{e|e}e~eafbfjnknlnmnpjqjrjsj]m^mQfRfSfzgAgBgCgDgEgFgGgHgIgJgKgX Y Z -f.f/fTfUfVf3g4g0 1 2 ;d=d?d@d[d]dtjujvjwj`l{l|l}l~lamxjyjzjAjBjCjDjEj3 4 5 q r s NbObPbFjGjbmcmHjIjJjKjLjMjNjOjPjQjRjSjdmemidjdkdQbRbSbLdMdNd0c1c2c3c4c5cTbUbVb6c7c8cWbXbYb; = ? Zb0b1b9c!c#c$c%c'cTjUjVjWjXjYjZj0j1j2j3j4j5j6j7j8j9j!j#j$j%j'j(j)j*j+j,j-j.j/j:j;j=j?j@j[j]j^jf cfdfpeqerese8m9m_mDnWmgmWdhmimjmYnxl)mEn3dkmZn0n9n_j`j{j|j(c)c*c+c,c-cPmQmefffgfhfifjfkflfmfnfofpfqfrfsftfnnonpnqn}j~jakbk`m{mWfXfYfLgMgNgOgPgQgRgSgTgUgVgWg6 7 8 :f;f=fZf0f1f5g6g9 ! # ^d_d`d{d|d}dckdkekfklmmmnmompmqmgkhkikjkkklkmknk$ % ' t u v 2b3b4bokpkrmsmqkrksktkukvkwkxkykzkAkBktmumldmdnd5b6b7bOdPdQd.c/c:c;c=c?c8b9b!b@c[c]c#b$b%b@ [ ] 'b(b)b^c_c`c{c|c}cCkDkEkFkGkHkIkJkKkLkMkNkOkPkQkRkSkTkUkVkWkXkYkZk0k1k2k3k4k5k6k7k8k9k!k#k$k%k

751 sa_default = field_info.default 2g 2fwfxfsnHn!mxm4dymzmAm1nvmrnIn5dBm2n3n!n,k-kudvdXm3f4f5f6f7f8f9f!fFnGn.k/k7g'k(k)k*k*b8g9g+k+bufvf:k;kCmDmEm=k?k@k[k,b^ od]kFm^k_k`k{k|k}kGmBdpdXdwdxdqdydrdsdtdzdAd~kalblcldlelflglhliljlklllmlnlolplqlrla te~dae,mtnRmzlRdAlBlClJnsl#munYdDlKnLn4n!g#g-b.bHmuevewexeyezeAeBe|m}m$g%gyf?f@f[f]fw #fzfXgx 6d7d'g(gElFlGl)g*g+g,gy h _ -gHl.g/g:g;g=g?gIl~c` Cd/b:b{ ;b| ( } =b?b@g[g]g^g_g`g{g|g}g~gahbhchdhehfhghhhihb Cebece-mvnSmKlSdLlMlNlMntl$mwnZdOlNnOn5njhkh@b[b]b^bImDeEeFeGeHeIeJeKe~manlhmh.mAfBf^f_f`f{f|f}f~fagz A $f%fCfDfYgB C 8d9d!d#dnhohPlQlRlphqhrhshD E i j ~ abthSluhvhwhxhyhzhTladbdbbcbDdEd_b`b{b|bdbeb}b~bfbgb) * hbibacbcccdcAhBhChDhEhFhGhHhIhJhKhLhMhNhOhPhQhRhShc LeMedeeefege/mxnTmVlTdWlXlYlPnul%myn0dZlQnRn6nThUhVhWhecfcgchcicjcJmKmNeOePeQeReSeTeUeVeWeXeYeZe0e1e2ebncndnenXhYhZh0h:m;mEfFfGfbgcgdgegfggghgigjgkglgmgF G H 'f(f)fHfIfJfZg0gI J K $d%d'd(d)d*d1h2h3h4h0l1l2l3l4l5l5h6h7h8h9h!h#h$hL M N k l m jbkblb%h'h6l7l(h)h*h+h,h-h.h/h:h;h=h?h8l9lcdddedmbnbobFdGdHdkclcmcncocpcpbqbrbqcrcscsbtbub+ , - vbwbxbtcucvcwcxcyc@h[h]h^h_h`h{h|h}h~haibicidieifigihiiijikiliminioipiqirisitiuiviwixiyiziAiBid 3e4eheiejeke=mznUm#lUd$l%l'lSnvl'mAn1d(lTnUn7nCiDiEiFizcAcBcCcDcEcLmMm5e6e7e8e9e!e#e$e%e'e(e)e*e+e,e-efngnhninGiHiIiJi?m@mKfLfMfngogpgqgrgsgtgugvgwgxgygO P Q *f+f,fNfOfPf1g2gR S T +d,d-d.d/d:dKiLiMiNi)l*l+l,l-l.lOiPiQiRiSiTiUiViU V W n o p ybzbAbWiXi/l:lYiZi0i1i2i3i4i5i6i7i8i9i;l=lfdgdhdBbCbDbIdJdKdFcGcHcIcJcKcEbFbGbLcMcNcHbIbJb. / : KbLbMbOcPcQcRcScTc!i#i$i%i'i(i)i*i+i,i-i.i/i:i;i=i?i@i[i]i^i_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkje .e/elemeneoe[mBnVm@lVd[l]l^lVnwl(mCn2d_lWnXn8nljmjnjojUcVcWcXcYcZcNmOm:e;e=e?e@e[e]e^e_e`e{e|e}e~eafbfjnknlnmnpjqjrjsj]m^mQfRfSfzgAgBgCgDgEgFgGgHgIgJgKgX Y Z -f.f/fTfUfVf3g4g0 1 2 ;d=d?d@d[d]dtjujvjwj`l{l|l}l~lamxjyjzjAjBjCjDjEj3 4 5 q r s NbObPbFjGjbmcmHjIjJjKjLjMjNjOjPjQjRjSjdmemidjdkdQbRbSbLdMdNd0c1c2c3c4c5cTbUbVb6c7c8cWbXbYb; = ? Zb0b1b9c!c#c$c%c'cTjUjVjWjXjYjZj0j1j2j3j4j5j6j7j8j9j!j#j$j%j'j(j)j*j+j,j-j.j/j:j;j=j?j@j[j]j^jf cfdfpeqerese_mDnWmgmWdhmimjmYnxl)mEn3dkmZn0n9n_j`j{j|j(c)c*c+c,c-cPmQmefffgfhfifjfkflfmfnfofpfqfrfsftfnnonpnqn}j~jakbk`m{mWfXfYfLgMgNgOgPgQgRgSgTgUgVgWg6 7 8 :f;f=fZf0f1f5g6g9 ! # ^d_d`d{d|d}dckdkekfklmmmnmompmqmgkhkikjkkklkmknk$ % ' t u v 2b3b4bokpkrmsmqkrksktkukvkwkxkykzkAkBktmumldmdnd5b6b7bOdPdQd.c/c:c;c=c?c8b9b!b@c[c]c#b$b%b@ [ ] 'b(b)b^c_c`c{c|c}cCkDkEkFkGkHkIkJkKkLkMkNkOkPkQkRkSkTkUkVkWkXkYkZk0k1k2k3k4k5k6k7k8k9k!k#k$k%k

752 if sa_default is not Undefined: 2g 2fwfxfwm*m+msnHn!mxm4dymzmAm1nvmrnIn5dBm2n3n!n,k-kudvdXm3f4f5f6f7f8f9f!fFnGn.k/k7g'k(k)k*k*b8g9g+k+bufvf:k;kCmDmEm=k?k@k[k,b^ od]kFm^k_k`k{k|k}kGmBdpdXdwdxdqdydrdsdtdzdAd~kalblcldlelflglhliljlklllmlnlolplqlrla te~daeylYmZm,mtnRmzlRdAlBlClJnsl#munYdDlKnLn4n!g#g-b.bHmuevewexeyezeAeBe|m}m$g%gyf?f@f[f]fw #fzfXgx 6d7d'g(gElFlGl)g*g+g,gy h _ -gHl.g/g:g;g=g?gIl~c` Cd/b:b{ ;b| ( } =b?b@g[g]g^g_g`g{g|g}g~gahbhchdhehfhghhhihb CebeceJl0m1m-mvnSmKlSdLlMlNlMntl$mwnZdOlNnOn5njhkh@b[b]b^bImDeEeFeGeHeIeJeKe~manlhmh.mAfBf^f_f`f{f|f}f~fagz A $f%fCfDfYgB C 8d9d!d#dnhohPlQlRlphqhrhshD E i j ~ abthSluhvhwhxhyhzhTladbdbbcbDdEd_b`b{b|bdbeb}b~bfbgb) * hbibacbcccdcAhBhChDhEhFhGhHhIhJhKhLhMhNhOhPhQhRhShc LeMedeeefegeUl2m3m/mxnTmVlTdWlXlYlPnul%myn0dZlQnRn6nThUhVhWhecfcgchcicjcJmKmNeOePeQeReSeTeUeVeWeXeYeZe0e1e2ebncndnenXhYhZh0h:m;mEfFfGfbgcgdgegfggghgigjgkglgmgF G H 'f(f)fHfIfJfZg0gI J K $d%d'd(d)d*d1h2h3h4h0l1l2l3l4l5l5h6h7h8h9h!h#h$hL M N k l m jbkblb%h'h6l7l(h)h*h+h,h-h.h/h:h;h=h?h8l9lcdddedmbnbobFdGdHdkclcmcncocpcpbqbrbqcrcscsbtbub+ , - vbwbxbtcucvcwcxcyc@h[h]h^h_h`h{h|h}h~haibicidieifigihiiijikiliminioipiqirisitiuiviwixiyiziAiBid 3e4eheiejeke!l4m5m=mznUm#lUd$l%l'lSnvl'mAn1d(lTnUn7nCiDiEiFizcAcBcCcDcEcLmMm5e6e7e8e9e!e#e$e%e'e(e)e*e+e,e-efngnhninGiHiIiJi?m@mKfLfMfngogpgqgrgsgtgugvgwgxgygO P Q *f+f,fNfOfPf1g2gR S T +d,d-d.d/d:dKiLiMiNi)l*l+l,l-l.lOiPiQiRiSiTiUiViU V W n o p ybzbAbWiXi/l:lYiZi0i1i2i3i4i5i6i7i8i9i;l=lfdgdhdBbCbDbIdJdKdFcGcHcIcJcKcEbFbGbLcMcNcHbIbJb. / : KbLbMbOcPcQcRcScTc!i#i$i%i'i(i)i*i+i,i-i.i/i:i;i=i?i@i[i]i^i_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkje .e/elemeneoe?l6m7m[mBnVm@lVd[l]l^lVnwl(mCn2d_lWnXn8nljmjnjojUcVcWcXcYcZcNmOm:e;e=e?e@e[e]e^e_e`e{e|e}e~eafbfjnknlnmnpjqjrjsj]m^mQfRfSfzgAgBgCgDgEgFgGgHgIgJgKgX Y Z -f.f/fTfUfVf3g4g0 1 2 ;d=d?d@d[d]dtjujvjwj`l{l|l}l~lamxjyjzjAjBjCjDjEj3 4 5 q r s NbObPbFjGjbmcmHjIjJjKjLjMjNjOjPjQjRjSjdmemidjdkdQbRbSbLdMdNd0c1c2c3c4c5cTbUbVb6c7c8cWbXbYb; = ? Zb0b1b9c!c#c$c%c'cTjUjVjWjXjYjZj0j1j2j3j4j5j6j7j8j9j!j#j$j%j'j(j)j*j+j,j-j.j/j:j;j=j?j@j[j]j^jf cfdfpeqeresefm8m9m_mDnWmgmWdhmimjmYnxl)mEn3dkmZn0n9n_j`j{j|j(c)c*c+c,c-cPmQmefffgfhfifjfkflfmfnfofpfqfrfsftfnnonpnqn}j~jakbk`m{mWfXfYfLgMgNgOgPgQgRgSgTgUgVgWg6 7 8 :f;f=fZf0f1f5g6g9 ! # ^d_d`d{d|d}dckdkekfklmmmnmompmqmgkhkikjkkklkmknk$ % ' t u v 2b3b4bokpkrmsmqkrksktkukvkwkxkykzkAkBktmumldmdnd5b6b7bOdPdQd.c/c:c;c=c?c8b9b!b@c[c]c#b$b%b@ [ ] 'b(b)b^c_c`c{c|c}cCkDkEkFkGkHkIkJkKkLkMkNkOkPkQkRkSkTkUkVkWkXkYkZk0k1k2k3k4k5k6k7k8k9k!k#k$k%k

753 kwargs["default"] = sa_default 2g 2fwfxfwmsnHn!mxm4dymzmAm1nvmrnIn5dBm2n3n!n,k-kudvdXm3f4f5f6f7f8f9f!fFnGn.k/k7g'k(k)k*k*b8g9g+k+bufvf:k;kCmDmEm=k?k@k[k,b^ od]kFm^k_k`k{k|k}kGmBdpdXdwdxdqdydrdsdtdzdAd~kalblcldlelflglhliljlklllmlnlolplqlrla te~daeyl,mtnRmzlRdAlBlClJnsl#munYdDlKnLn4n!g#g-b.bHmuevewexeyezeAeBe|m}m$g%gyf?f@f[f]fw #fzfXgx 6d7d'g(gElFlGl)g*g+g,gy h _ -gHl.g/g:g;g=g?gIl~c` Cd/b:b{ ;b| ( } =b?b@g[g]g^g_g`g{g|g}g~gahbhchdhehfhghhhihb CebeceJl-mvnSmKlSdLlMlNlMntl$mwnZdOlNnOn5njhkh@b[b]b^bImDeEeFeGeHeIeJeKe~manlhmh.mAfBf^f_f`f{f|f}f~fagz A $f%fCfDfYgB C 8d9d!d#dnhohPlQlRlphqhrhshD E i j ~ abthSluhvhwhxhyhzhTladbdbbcbDdEd_b`b{b|bdbeb}b~bfbgb) * hbibacbcccdcAhBhChDhEhFhGhHhIhJhKhLhMhNhOhPhQhRhShc LeMedeeefegeUl/mxnTmVlTdWlXlYlPnul%myn0dZlQnRn6nThUhVhWhecfcgchcicjcJmKmNeOePeQeReSeTeUeVeWeXeYeZe0e1e2ebncndnenXhYhZh0h:m;mEfFfGfbgcgdgegfggghgigjgkglgmgF G H 'f(f)fHfIfJfZg0gI J K $d%d'd(d)d*d1h2h3h4h0l1l2l3l4l5l5h6h7h8h9h!h#h$hL M N k l m jbkblb%h'h6l7l(h)h*h+h,h-h.h/h:h;h=h?h8l9lcdddedmbnbobFdGdHdkclcmcncocpcpbqbrbqcrcscsbtbub+ , - vbwbxbtcucvcwcxcyc@h[h]h^h_h`h{h|h}h~haibicidieifigihiiijikiliminioipiqirisitiuiviwixiyiziAiBid 3e4eheiejeke!l=mznUm#lUd$l%l'lSnvl'mAn1d(lTnUn7nCiDiEiFizcAcBcCcDcEcLmMm5e6e7e8e9e!e#e$e%e'e(e)e*e+e,e-efngnhninGiHiIiJi?m@mKfLfMfngogpgqgrgsgtgugvgwgxgygO P Q *f+f,fNfOfPf1g2gR S T +d,d-d.d/d:dKiLiMiNi)l*l+l,l-l.lOiPiQiRiSiTiUiViU V W n o p ybzbAbWiXi/l:lYiZi0i1i2i3i4i5i6i7i8i9i;l=lfdgdhdBbCbDbIdJdKdFcGcHcIcJcKcEbFbGbLcMcNcHbIbJb. / : KbLbMbOcPcQcRcScTc!i#i$i%i'i(i)i*i+i,i-i.i/i:i;i=i?i@i[i]i^i_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkje .e/elemeneoe?l[mBnVm@lVd[l]l^lVnwl(mCn2d_lWnXn8nljmjnjojUcVcWcXcYcZcNmOm:e;e=e?e@e[e]e^e_e`e{e|e}e~eafbfjnknlnmnpjqjrjsj]m^mQfRfSfzgAgBgCgDgEgFgGgHgIgJgKgX Y Z -f.f/fTfUfVf3g4g0 1 2 ;d=d?d@d[d]dtjujvjwj`l{l|l}l~lamxjyjzjAjBjCjDjEj3 4 5 q r s NbObPbFjGjbmcmHjIjJjKjLjMjNjOjPjQjRjSjdmemidjdkdQbRbSbLdMdNd0c1c2c3c4c5cTbUbVb6c7c8cWbXbYb; = ? Zb0b1b9c!c#c$c%c'cTjUjVjWjXjYjZj0j1j2j3j4j5j6j7j8j9j!j#j$j%j'j(j)j*j+j,j-j.j/j:j;j=j?j@j[j]j^jf cfdfpeqeresefm_mDnWmgmWdhmimjmYnxl)mEn3dkmZn0n9n_j`j{j|j(c)c*c+c,c-cPmQmefffgfhfifjfkflfmfnfofpfqfrfsftfnnonpnqn}j~jakbk`m{mWfXfYfLgMgNgOgPgQgRgSgTgUgVgWg6 7 8 :f;f=fZf0f1f5g6g9 ! # ^d_d`d{d|d}dckdkekfklmmmnmompmqmgkhkikjkkklkmknk$ % ' t u v 2b3b4bokpkrmsmqkrksktkukvkwkxkykzkAkBktmumldmdnd5b6b7bOdPdQd.c/c:c;c=c?c8b9b!b@c[c]c#b$b%b@ [ ] 'b(b)b^c_c`c{c|c}cCkDkEkFkGkHkIkJkKkLkMkNkOkPkQkRkSkTkUkVkWkXkYkZk0k1k2k3k4k5k6k7k8k9k!k#k$k%k

754 sa_column_args = getattr(field_info, "sa_column_args", Undefined) 2g 2fwfxfwm*m+msnHn!mxm4dymzmAm1nvmrnIn5dBm2n3n!n,k-kudvdXm3f4f5f6f7f8f9f!fFnGn.k/k7g'k(k)k*k*b8g9g+k+bufvf:k;kCmDmEm=k?k@k[k,b^ od]kFm^k_k`k{k|k}kGmBdpdXdwdxdqdydrdsdtdzdAd~kalblcldlelflglhliljlklllmlnlolplqlrla te~daeylYmZm,mtnRmzlRdAlBlClJnsl#munYdDlKnLn4n!g#g-b.bHmuevewexeyezeAeBe|m}m$g%gyf?f@f[f]fw #fzfXgx 6d7d'g(gElFlGl)g*g+g,gy h _ -gHl.g/g:g;g=g?gIl~c` Cd/b:b{ ;b| ( } =b?b@g[g]g^g_g`g{g|g}g~gahbhchdhehfhghhhihb CebeceJl0m1m-mvnSmKlSdLlMlNlMntl$mwnZdOlNnOn5njhkh@b[b]b^bImDeEeFeGeHeIeJeKe~manlhmh.mAfBf^f_f`f{f|f}f~fagz A $f%fCfDfYgB C 8d9d!d#dnhohPlQlRlphqhrhshD E i j ~ abthSluhvhwhxhyhzhTladbdbbcbDdEd_b`b{b|bdbeb}b~bfbgb) * hbibacbcccdcAhBhChDhEhFhGhHhIhJhKhLhMhNhOhPhQhRhShc LeMedeeefegeUl2m3m/mxnTmVlTdWlXlYlPnul%myn0dZlQnRn6nThUhVhWhecfcgchcicjcJmKmNeOePeQeReSeTeUeVeWeXeYeZe0e1e2ebncndnenXhYhZh0h:m;mEfFfGfbgcgdgegfggghgigjgkglgmgF G H 'f(f)fHfIfJfZg0gI J K $d%d'd(d)d*d1h2h3h4h0l1l2l3l4l5l5h6h7h8h9h!h#h$hL M N k l m jbkblb%h'h6l7l(h)h*h+h,h-h.h/h:h;h=h?h8l9lcdddedmbnbobFdGdHdkclcmcncocpcpbqbrbqcrcscsbtbub+ , - vbwbxbtcucvcwcxcyc@h[h]h^h_h`h{h|h}h~haibicidieifigihiiijikiliminioipiqirisitiuiviwixiyiziAiBid 3e4eheiejeke!l4m5m=mznUm#lUd$l%l'lSnvl'mAn1d(lTnUn7nCiDiEiFizcAcBcCcDcEcLmMm5e6e7e8e9e!e#e$e%e'e(e)e*e+e,e-efngnhninGiHiIiJi?m@mKfLfMfngogpgqgrgsgtgugvgwgxgygO P Q *f+f,fNfOfPf1g2gR S T +d,d-d.d/d:dKiLiMiNi)l*l+l,l-l.lOiPiQiRiSiTiUiViU V W n o p ybzbAbWiXi/l:lYiZi0i1i2i3i4i5i6i7i8i9i;l=lfdgdhdBbCbDbIdJdKdFcGcHcIcJcKcEbFbGbLcMcNcHbIbJb. / : KbLbMbOcPcQcRcScTc!i#i$i%i'i(i)i*i+i,i-i.i/i:i;i=i?i@i[i]i^i_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkje .e/elemeneoe?l6m7m[mBnVm@lVd[l]l^lVnwl(mCn2d_lWnXn8nljmjnjojUcVcWcXcYcZcNmOm:e;e=e?e@e[e]e^e_e`e{e|e}e~eafbfjnknlnmnpjqjrjsj]m^mQfRfSfzgAgBgCgDgEgFgGgHgIgJgKgX Y Z -f.f/fTfUfVf3g4g0 1 2 ;d=d?d@d[d]dtjujvjwj`l{l|l}l~lamxjyjzjAjBjCjDjEj3 4 5 q r s NbObPbFjGjbmcmHjIjJjKjLjMjNjOjPjQjRjSjdmemidjdkdQbRbSbLdMdNd0c1c2c3c4c5cTbUbVb6c7c8cWbXbYb; = ? Zb0b1b9c!c#c$c%c'cTjUjVjWjXjYjZj0j1j2j3j4j5j6j7j8j9j!j#j$j%j'j(j)j*j+j,j-j.j/j:j;j=j?j@j[j]j^jf cfdfpeqeresefm8m9m_mDnWmgmWdhmimjmYnxl)mEn3dkmZn0n9n_j`j{j|j(c)c*c+c,c-cPmQmefffgfhfifjfkflfmfnfofpfqfrfsftfnnonpnqn}j~jakbk`m{mWfXfYfLgMgNgOgPgQgRgSgTgUgVgWg6 7 8 :f;f=fZf0f1f5g6g9 ! # ^d_d`d{d|d}dckdkekfklmmmnmompmqmgkhkikjkkklkmknk$ % ' t u v 2b3b4bokpkrmsmqkrksktkukvkwkxkykzkAkBktmumldmdnd5b6b7bOdPdQd.c/c:c;c=c?c8b9b!b@c[c]c#b$b%b@ [ ] 'b(b)b^c_c`c{c|c}cCkDkEkFkGkHkIkJkKkLkMkNkOkPkQkRkSkTkUkVkWkXkYkZk0k1k2k3k4k5k6k7k8k9k!k#k$k%k

755 if sa_column_args is not Undefined: 2g 2fwfxfwm*m+msnHn!mxm4dymzmAm1nvmrnIn5dBm2n3n!n,k-kudvdXm3f4f5f6f7f8f9f!fFnGn.k/k7g'k(k)k*k*b8g9g+k+bufvf:k;kCmDmEm=k?k@k[k,b^ od]kFm^k_k`k{k|k}kGmBdpdXdwdxdqdydrdsdtdzdAd~kalblcldlelflglhliljlklllmlnlolplqlrla te~daeylYmZm,mtnRmzlRdAlBlClJnsl#munYdDlKnLn4n!g#g-b.bHmuevewexeyezeAeBe|m}m$g%gyf?f@f[f]fw #fzfXgx 6d7d'g(gElFlGl)g*g+g,gy h _ -gHl.g/g:g;g=g?gIl~c` Cd/b:b{ ;b| ( } =b?b@g[g]g^g_g`g{g|g}g~gahbhchdhehfhghhhihb CebeceJl0m1m-mvnSmKlSdLlMlNlMntl$mwnZdOlNnOn5njhkh@b[b]b^bImDeEeFeGeHeIeJeKe~manlhmh.mAfBf^f_f`f{f|f}f~fagz A $f%fCfDfYgB C 8d9d!d#dnhohPlQlRlphqhrhshD E i j ~ abthSluhvhwhxhyhzhTladbdbbcbDdEd_b`b{b|bdbeb}b~bfbgb) * hbibacbcccdcAhBhChDhEhFhGhHhIhJhKhLhMhNhOhPhQhRhShc LeMedeeefegeUl2m3m/mxnTmVlTdWlXlYlPnul%myn0dZlQnRn6nThUhVhWhecfcgchcicjcJmKmNeOePeQeReSeTeUeVeWeXeYeZe0e1e2ebncndnenXhYhZh0h:m;mEfFfGfbgcgdgegfggghgigjgkglgmgF G H 'f(f)fHfIfJfZg0gI J K $d%d'd(d)d*d1h2h3h4h0l1l2l3l4l5l5h6h7h8h9h!h#h$hL M N k l m jbkblb%h'h6l7l(h)h*h+h,h-h.h/h:h;h=h?h8l9lcdddedmbnbobFdGdHdkclcmcncocpcpbqbrbqcrcscsbtbub+ , - vbwbxbtcucvcwcxcyc@h[h]h^h_h`h{h|h}h~haibicidieifigihiiijikiliminioipiqirisitiuiviwixiyiziAiBid 3e4eheiejeke!l4m5m=mznUm#lUd$l%l'lSnvl'mAn1d(lTnUn7nCiDiEiFizcAcBcCcDcEcLmMm5e6e7e8e9e!e#e$e%e'e(e)e*e+e,e-efngnhninGiHiIiJi?m@mKfLfMfngogpgqgrgsgtgugvgwgxgygO P Q *f+f,fNfOfPf1g2gR S T +d,d-d.d/d:dKiLiMiNi)l*l+l,l-l.lOiPiQiRiSiTiUiViU V W n o p ybzbAbWiXi/l:lYiZi0i1i2i3i4i5i6i7i8i9i;l=lfdgdhdBbCbDbIdJdKdFcGcHcIcJcKcEbFbGbLcMcNcHbIbJb. / : KbLbMbOcPcQcRcScTc!i#i$i%i'i(i)i*i+i,i-i.i/i:i;i=i?i@i[i]i^i_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkje .e/elemeneoe?l6m7m[mBnVm@lVd[l]l^lVnwl(mCn2d_lWnXn8nljmjnjojUcVcWcXcYcZcNmOm:e;e=e?e@e[e]e^e_e`e{e|e}e~eafbfjnknlnmnpjqjrjsj]m^mQfRfSfzgAgBgCgDgEgFgGgHgIgJgKgX Y Z -f.f/fTfUfVf3g4g0 1 2 ;d=d?d@d[d]dtjujvjwj`l{l|l}l~lamxjyjzjAjBjCjDjEj3 4 5 q r s NbObPbFjGjbmcmHjIjJjKjLjMjNjOjPjQjRjSjdmemidjdkdQbRbSbLdMdNd0c1c2c3c4c5cTbUbVb6c7c8cWbXbYb; = ? Zb0b1b9c!c#c$c%c'cTjUjVjWjXjYjZj0j1j2j3j4j5j6j7j8j9j!j#j$j%j'j(j)j*j+j,j-j.j/j:j;j=j?j@j[j]j^jf cfdfpeqeresefm8m9m_mDnWmgmWdhmimjmYnxl)mEn3dkmZn0n9n_j`j{j|j(c)c*c+c,c-cPmQmefffgfhfifjfkflfmfnfofpfqfrfsftfnnonpnqn}j~jakbk`m{mWfXfYfLgMgNgOgPgQgRgSgTgUgVgWg6 7 8 :f;f=fZf0f1f5g6g9 ! # ^d_d`d{d|d}dckdkekfklmmmnmompmqmgkhkikjkkklkmknk$ % ' t u v 2b3b4bokpkrmsmqkrksktkukvkwkxkykzkAkBktmumldmdnd5b6b7bOdPdQd.c/c:c;c=c?c8b9b!b@c[c]c#b$b%b@ [ ] 'b(b)b^c_c`c{c|c}cCkDkEkFkGkHkIkJkKkLkMkNkOkPkQkRkSkTkUkVkWkXkYkZk0k1k2k3k4k5k6k7k8k9k!k#k$k%k

756 args.extend(list(cast(Sequence[Any], sa_column_args))) 2sn,m-m/m=m[m_m

757 sa_column_kwargs = getattr(field_info, "sa_column_kwargs", Undefined) 2g 2fwfxfwm*m+msnHn!mxm4dymzmAm1nvmrnIn5dBm2n3n!n,k-kudvdXm3f4f5f6f7f8f9f!fFnGn.k/k7g'k(k)k*k*b8g9g+k+bufvf:k;kCmDmEm=k?k@k[k,b^ od]kFm^k_k`k{k|k}kGmBdpdXdwdxdqdydrdsdtdzdAd~kalblcldlelflglhliljlklllmlnlolplqlrla te~daeylYmZm,mtnRmzlRdAlBlClJnsl#munYdDlKnLn4n!g#g-b.bHmuevewexeyezeAeBe|m}m$g%gyf?f@f[f]fw #fzfXgx 6d7d'g(gElFlGl)g*g+g,gy h _ -gHl.g/g:g;g=g?gIl~c` Cd/b:b{ ;b| ( } =b?b@g[g]g^g_g`g{g|g}g~gahbhchdhehfhghhhihb CebeceJl0m1m-mvnSmKlSdLlMlNlMntl$mwnZdOlNnOn5njhkh@b[b]b^bImDeEeFeGeHeIeJeKe~manlhmh.mAfBf^f_f`f{f|f}f~fagz A $f%fCfDfYgB C 8d9d!d#dnhohPlQlRlphqhrhshD E i j ~ abthSluhvhwhxhyhzhTladbdbbcbDdEd_b`b{b|bdbeb}b~bfbgb) * hbibacbcccdcAhBhChDhEhFhGhHhIhJhKhLhMhNhOhPhQhRhShc LeMedeeefegeUl2m3m/mxnTmVlTdWlXlYlPnul%myn0dZlQnRn6nThUhVhWhecfcgchcicjcJmKmNeOePeQeReSeTeUeVeWeXeYeZe0e1e2ebncndnenXhYhZh0h:m;mEfFfGfbgcgdgegfggghgigjgkglgmgF G H 'f(f)fHfIfJfZg0gI J K $d%d'd(d)d*d1h2h3h4h0l1l2l3l4l5l5h6h7h8h9h!h#h$hL M N k l m jbkblb%h'h6l7l(h)h*h+h,h-h.h/h:h;h=h?h8l9lcdddedmbnbobFdGdHdkclcmcncocpcpbqbrbqcrcscsbtbub+ , - vbwbxbtcucvcwcxcyc@h[h]h^h_h`h{h|h}h~haibicidieifigihiiijikiliminioipiqirisitiuiviwixiyiziAiBid 3e4eheiejeke!l4m5m=mznUm#lUd$l%l'lSnvl'mAn1d(lTnUn7nCiDiEiFizcAcBcCcDcEcLmMm5e6e7e8e9e!e#e$e%e'e(e)e*e+e,e-efngnhninGiHiIiJi?m@mKfLfMfngogpgqgrgsgtgugvgwgxgygO P Q *f+f,fNfOfPf1g2gR S T +d,d-d.d/d:dKiLiMiNi)l*l+l,l-l.lOiPiQiRiSiTiUiViU V W n o p ybzbAbWiXi/l:lYiZi0i1i2i3i4i5i6i7i8i9i;l=lfdgdhdBbCbDbIdJdKdFcGcHcIcJcKcEbFbGbLcMcNcHbIbJb. / : KbLbMbOcPcQcRcScTc!i#i$i%i'i(i)i*i+i,i-i.i/i:i;i=i?i@i[i]i^i_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkje .e/elemeneoe?l6m7m[mBnVm@lVd[l]l^lVnwl(mCn2d_lWnXn8nljmjnjojUcVcWcXcYcZcNmOm:e;e=e?e@e[e]e^e_e`e{e|e}e~eafbfjnknlnmnpjqjrjsj]m^mQfRfSfzgAgBgCgDgEgFgGgHgIgJgKgX Y Z -f.f/fTfUfVf3g4g0 1 2 ;d=d?d@d[d]dtjujvjwj`l{l|l}l~lamxjyjzjAjBjCjDjEj3 4 5 q r s NbObPbFjGjbmcmHjIjJjKjLjMjNjOjPjQjRjSjdmemidjdkdQbRbSbLdMdNd0c1c2c3c4c5cTbUbVb6c7c8cWbXbYb; = ? Zb0b1b9c!c#c$c%c'cTjUjVjWjXjYjZj0j1j2j3j4j5j6j7j8j9j!j#j$j%j'j(j)j*j+j,j-j.j/j:j;j=j?j@j[j]j^jf cfdfpeqeresefm8m9m_mDnWmgmWdhmimjmYnxl)mEn3dkmZn0n9n_j`j{j|j(c)c*c+c,c-cPmQmefffgfhfifjfkflfmfnfofpfqfrfsftfnnonpnqn}j~jakbk`m{mWfXfYfLgMgNgOgPgQgRgSgTgUgVgWg6 7 8 :f;f=fZf0f1f5g6g9 ! # ^d_d`d{d|d}dckdkekfklmmmnmompmqmgkhkikjkkklkmknk$ % ' t u v 2b3b4bokpkrmsmqkrksktkukvkwkxkykzkAkBktmumldmdnd5b6b7bOdPdQd.c/c:c;c=c?c8b9b!b@c[c]c#b$b%b@ [ ] 'b(b)b^c_c`c{c|c}cCkDkEkFkGkHkIkJkKkLkMkNkOkPkQkRkSkTkUkVkWkXkYkZk0k1k2k3k4k5k6k7k8k9k!k#k$k%k

758 if sa_column_kwargs is not Undefined: 2g 2fwfxfwm*m+msnHn!mxm4dymzmAm1nvmrnIn5dBm2n3n!n,k-kudvdXm3f4f5f6f7f8f9f!fFnGn.k/k7g'k(k)k*k*b8g9g+k+bufvf:k;kCmDmEm=k?k@k[k,b^ od]kFm^k_k`k{k|k}kGmBdpdXdwdxdqdydrdsdtdzdAd~kalblcldlelflglhliljlklllmlnlolplqlrla te~daeylYmZm,mtnRmzlRdAlBlClJnsl#munYdDlKnLn4n!g#g-b.bHmuevewexeyezeAeBe|m}m$g%gyf?f@f[f]fw #fzfXgx 6d7d'g(gElFlGl)g*g+g,gy h _ -gHl.g/g:g;g=g?gIl~c` Cd/b:b{ ;b| ( } =b?b@g[g]g^g_g`g{g|g}g~gahbhchdhehfhghhhihb CebeceJl0m1m-mvnSmKlSdLlMlNlMntl$mwnZdOlNnOn5njhkh@b[b]b^bImDeEeFeGeHeIeJeKe~manlhmh.mAfBf^f_f`f{f|f}f~fagz A $f%fCfDfYgB C 8d9d!d#dnhohPlQlRlphqhrhshD E i j ~ abthSluhvhwhxhyhzhTladbdbbcbDdEd_b`b{b|bdbeb}b~bfbgb) * hbibacbcccdcAhBhChDhEhFhGhHhIhJhKhLhMhNhOhPhQhRhShc LeMedeeefegeUl2m3m/mxnTmVlTdWlXlYlPnul%myn0dZlQnRn6nThUhVhWhecfcgchcicjcJmKmNeOePeQeReSeTeUeVeWeXeYeZe0e1e2ebncndnenXhYhZh0h:m;mEfFfGfbgcgdgegfggghgigjgkglgmgF G H 'f(f)fHfIfJfZg0gI J K $d%d'd(d)d*d1h2h3h4h0l1l2l3l4l5l5h6h7h8h9h!h#h$hL M N k l m jbkblb%h'h6l7l(h)h*h+h,h-h.h/h:h;h=h?h8l9lcdddedmbnbobFdGdHdkclcmcncocpcpbqbrbqcrcscsbtbub+ , - vbwbxbtcucvcwcxcyc@h[h]h^h_h`h{h|h}h~haibicidieifigihiiijikiliminioipiqirisitiuiviwixiyiziAiBid 3e4eheiejeke!l4m5m=mznUm#lUd$l%l'lSnvl'mAn1d(lTnUn7nCiDiEiFizcAcBcCcDcEcLmMm5e6e7e8e9e!e#e$e%e'e(e)e*e+e,e-efngnhninGiHiIiJi?m@mKfLfMfngogpgqgrgsgtgugvgwgxgygO P Q *f+f,fNfOfPf1g2gR S T +d,d-d.d/d:dKiLiMiNi)l*l+l,l-l.lOiPiQiRiSiTiUiViU V W n o p ybzbAbWiXi/l:lYiZi0i1i2i3i4i5i6i7i8i9i;l=lfdgdhdBbCbDbIdJdKdFcGcHcIcJcKcEbFbGbLcMcNcHbIbJb. / : KbLbMbOcPcQcRcScTc!i#i$i%i'i(i)i*i+i,i-i.i/i:i;i=i?i@i[i]i^i_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkje .e/elemeneoe?l6m7m[mBnVm@lVd[l]l^lVnwl(mCn2d_lWnXn8nljmjnjojUcVcWcXcYcZcNmOm:e;e=e?e@e[e]e^e_e`e{e|e}e~eafbfjnknlnmnpjqjrjsj]m^mQfRfSfzgAgBgCgDgEgFgGgHgIgJgKgX Y Z -f.f/fTfUfVf3g4g0 1 2 ;d=d?d@d[d]dtjujvjwj`l{l|l}l~lamxjyjzjAjBjCjDjEj3 4 5 q r s NbObPbFjGjbmcmHjIjJjKjLjMjNjOjPjQjRjSjdmemidjdkdQbRbSbLdMdNd0c1c2c3c4c5cTbUbVb6c7c8cWbXbYb; = ? Zb0b1b9c!c#c$c%c'cTjUjVjWjXjYjZj0j1j2j3j4j5j6j7j8j9j!j#j$j%j'j(j)j*j+j,j-j.j/j:j;j=j?j@j[j]j^jf cfdfpeqeresefm8m9m_mDnWmgmWdhmimjmYnxl)mEn3dkmZn0n9n_j`j{j|j(c)c*c+c,c-cPmQmefffgfhfifjfkflfmfnfofpfqfrfsftfnnonpnqn}j~jakbk`m{mWfXfYfLgMgNgOgPgQgRgSgTgUgVgWg6 7 8 :f;f=fZf0f1f5g6g9 ! # ^d_d`d{d|d}dckdkekfklmmmnmompmqmgkhkikjkkklkmknk$ % ' t u v 2b3b4bokpkrmsmqkrksktkukvkwkxkykzkAkBktmumldmdnd5b6b7bOdPdQd.c/c:c;c=c?c8b9b!b@c[c]c#b$b%b@ [ ] 'b(b)b^c_c`c{c|c}cCkDkEkFkGkHkIkJkKkLkMkNkOkPkQkRkSkTkUkVkWkXkYkZk0k1k2k3k4k5k6k7k8k9k!k#k$k%k

759 kwargs.update(cast(Dict[Any, Any], sa_column_kwargs)) 2HntnvnxnznBnDn

760 return Column(sa_type, *args, **kwargs) # type: ignore 2g 2fwfxfwm*m+msnHn!mxm4dymzmAm1nvmrnIn5dBm2n3n!n,k-kudvdXm3f4f5f6f7f8f9f!fFnGn.k/k7g'k(k)k*k*b8g9g+k+bufvf:k;kCmDmEm=k?k@k[k,b^ od]kFm^k_k`k{k|k}kGmBdpdXdwdxdqdydrdsdtdzdAd~kalblcldlelflglhliljlklllmlnlolplqlrla te~daeylYmZm,mtnRmzlRdAlBlClJnsl#munYdDlKnLn4n!g#g-b.bHmuevewexeyezeAeBe|m}m$g%gyf?f@f[f]fw #fzfXgx 6d7d'g(gElFlGl)g*g+g,gy h _ -gHl.g/g:g;g=g?gIl~c` Cd/b:b{ ;b| ( } =b?b@g[g]g^g_g`g{g|g}g~gahbhchdhehfhghhhihb CebeceJl0m1m-mvnSmKlSdLlMlNlMntl$mwnZdOlNnOn5njhkh@b[b]b^bImDeEeFeGeHeIeJeKe~manlhmh.mAfBf^f_f`f{f|f}f~fagz A $f%fCfDfYgB C 8d9d!d#dnhohPlQlRlphqhrhshD E i j ~ abthSluhvhwhxhyhzhTladbdbbcbDdEd_b`b{b|bdbeb}b~bfbgb) * hbibacbcccdcAhBhChDhEhFhGhHhIhJhKhLhMhNhOhPhQhRhShc LeMedeeefegeUl2m3m/mxnTmVlTdWlXlYlPnul%myn0dZlQnRn6nThUhVhWhecfcgchcicjcJmKmNeOePeQeReSeTeUeVeWeXeYeZe0e1e2ebncndnenXhYhZh0h:m;mEfFfGfbgcgdgegfggghgigjgkglgmgF G H 'f(f)fHfIfJfZg0gI J K $d%d'd(d)d*d1h2h3h4h0l1l2l3l4l5l5h6h7h8h9h!h#h$hL M N k l m jbkblb%h'h6l7l(h)h*h+h,h-h.h/h:h;h=h?h8l9lcdddedmbnbobFdGdHdkclcmcncocpcpbqbrbqcrcscsbtbub+ , - vbwbxbtcucvcwcxcyc@h[h]h^h_h`h{h|h}h~haibicidieifigihiiijikiliminioipiqirisitiuiviwixiyiziAiBid 3e4eheiejeke!l4m5m=mznUm#lUd$l%l'lSnvl'mAn1d(lTnUn7nCiDiEiFizcAcBcCcDcEcLmMm5e6e7e8e9e!e#e$e%e'e(e)e*e+e,e-efngnhninGiHiIiJi?m@mKfLfMfngogpgqgrgsgtgugvgwgxgygO P Q *f+f,fNfOfPf1g2gR S T +d,d-d.d/d:dKiLiMiNi)l*l+l,l-l.lOiPiQiRiSiTiUiViU V W n o p ybzbAbWiXi/l:lYiZi0i1i2i3i4i5i6i7i8i9i;l=lfdgdhdBbCbDbIdJdKdFcGcHcIcJcKcEbFbGbLcMcNcHbIbJb. / : KbLbMbOcPcQcRcScTc!i#i$i%i'i(i)i*i+i,i-i.i/i:i;i=i?i@i[i]i^i_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkje .e/elemeneoe?l6m7m[mBnVm@lVd[l]l^lVnwl(mCn2d_lWnXn8nljmjnjojUcVcWcXcYcZcNmOm:e;e=e?e@e[e]e^e_e`e{e|e}e~eafbfjnknlnmnpjqjrjsj]m^mQfRfSfzgAgBgCgDgEgFgGgHgIgJgKgX Y Z -f.f/fTfUfVf3g4g0 1 2 ;d=d?d@d[d]dtjujvjwj`l{l|l}l~lamxjyjzjAjBjCjDjEj3 4 5 q r s NbObPbFjGjbmcmHjIjJjKjLjMjNjOjPjQjRjSjdmemidjdkdQbRbSbLdMdNd0c1c2c3c4c5cTbUbVb6c7c8cWbXbYb; = ? Zb0b1b9c!c#c$c%c'cTjUjVjWjXjYjZj0j1j2j3j4j5j6j7j8j9j!j#j$j%j'j(j)j*j+j,j-j.j/j:j;j=j?j@j[j]j^jf cfdfpeqeresefm8m9m_mDnWmgmWdhmimjmYnxl)mEn3dkmZn0n9n_j`j{j|j(c)c*c+c,c-cPmQmefffgfhfifjfkflfmfnfofpfqfrfsftfnnonpnqn}j~jakbk`m{mWfXfYfLgMgNgOgPgQgRgSgTgUgVgWg6 7 8 :f;f=fZf0f1f5g6g9 ! # ^d_d`d{d|d}dckdkekfklmmmnmompmqmgkhkikjkkklkmknk$ % ' t u v 2b3b4bokpkrmsmqkrksktkukvkwkxkykzkAkBktmumldmdnd5b6b7bOdPdQd.c/c:c;c=c?c8b9b!b@c[c]c#b$b%b@ [ ] 'b(b)b^c_c`c{c|c}cCkDkEkFkGkHkIkJkKkLkMkNkOkPkQkRkSkTkUkVkWkXkYkZk0k1k2k3k4k5k6k7k8k9k!k#k$k%k

761 

762 

763class_registry = weakref.WeakValueDictionary() # type: ignore 1gabcdef

764 

765default_registry = registry() 1gabcdef

766 

767_TSQLModel = TypeVar("_TSQLModel", bound="SQLModel") 1gabcdef

768 

769 

770class SQLModel(BaseModel, metaclass=SQLModelMetaclass, registry=default_registry): 1gabcdef

771 # SQLAlchemy needs to set weakref(s), Pydantic will set the other slots values 

772 __slots__ = ("__weakref__",) 1gabcdef

773 __tablename__: ClassVar[Union[str, Callable[..., str]]] 1gabcdef

774 __sqlmodel_relationships__: ClassVar[Dict[str, RelationshipProperty[Any]]] 1gabcdef

775 __name__: ClassVar[str] 1gabcdef

776 metadata: ClassVar[MetaData] 1gabcdef

777 __allow_unmapped__ = True # https://docs.sqlalchemy.org/en/20/changelog/migration_20.html#migration-20-step-six 1gabcdef

778 

779 if IS_PYDANTIC_V2: 1gabcdef

780 model_config = SQLModelConfig(from_attributes=True) 1gabcdef

781 else: 

782 

783 class Config: 1gabcdef

784 orm_mode = True 1gabcdef

785 

786 def __new__(cls, *args: Any, **kwargs: Any) -> Any: 1gabcdef

787 new_object = super().__new__(cls) 2@rgp[r]rWrhpip}ojpkplpmpnpop2fwfxfwmXr%r'rloxmmo4dymzmAmvmnooopoBm,k-kudvd3f4f5f6f7f8f9f!f.k/kppqprpsptpup7g'k(k)k*k*b8g9g+k+bufvf:k;kCmDmEm=k?k@k[k,b^ od]kFm^k_k`k{k|k}kGmBdpdwdxdqdydrdsdtdzdAd~kalblcldlelflglhliljlklllmlnlolplqlrlDowo^rvp_r`rYrwpxp%oypzpApBpCpDpte~daeylQr(r)r;nzl=nRdAlBlClsl?n@n+nDl!g#g-b.buevewexeyezeAeBe$g%gEpFpGpHpIpJpyf?f@f[f]fw #fzfXgx 6d7d'g(gElFlGl)g*g+g,gy h _ -gHl.g/g:g;g=g?gIl~c` /b:b{ ;b| ( } =b?b@g[g]g^g_g`g{g|g}g~gahbhchdhehfhghhhihxoqo{rKp|r}rZrLpMp'oNpOpPpQpRpSp~rTpasbs0rUpVp(oWpXpYpZp0p1pCebeceJlRr*r+r[nKl]nSdLlMlNltl^n_n,nOljhkh@b[b]b^bDeEeFeGeHeIeJeKelhmh2p3p4p5p6p7pAfBf^f_f`f{f|f}f~fagz A $f%fCfDfYgB C 8d9d!d#dnhohPlQlRlphqhrhshD E i j ~ abthSluhvhwhxhyhzhTladbdbbcb_b`b{b|bdbeb}b~bfbgb) * hbibacbcccdcAhBhChDhEhFhGhHhIhJhKhLhMhNhOhPhQhRhShyorocs8pdses1r9p!p)o#p$p%p'p(p)pfs*pgshs2r+p,p*o-p.p/p:p;p=pis?pjsks3r@p[p+o]p^p_p`p{p|pLeMedeeefegeUlSr,r-r`nVl{nTdWlXlYlul|n}n-nZlThUhVhWhecfcgchcicjcNeOePeQeReSeTeUeVeWeXeYeZe0e1e2eXhYhZh0h}p~paqbqcqdqEfFfGfbgcgdgegfggghgigjgkglgmgF G H 'f(f)fHfIfJfZg0gI J K $d%d'd(d)d*d1h2h3h4h0l1l2l3l4l5l5h6h7h8h9h!h#h$hL M N k l m jbkblb%h'h6l7l(h)h*h+h,h-h.h/h:h;h=h?h8l9lcdddedmbnbobkclcmcncocpcpbqbrbqcrcscsbtbub+ , - vbwbxbtcucvcwcxcyc@h[h]h^h_h`h{h|h}h~haibicidieifigihiiijikiliminioipiqirisitiuiviwixiyiziAiBizosolseqmsns4rfqgq,ohqiqjqkqlqmqosnqpsqs5roqpq-oqqrqsqtquqvqrswqssts6rxqyq.ozqAqBqCqDqEq3e4eheiejeke!lTr.r/r~n#laoUd$l%l'lvlboco.n(lCiDiEiFizcAcBcCcDcEc5e6e7e8e9e!e#e$e%e'e(e)e*e+e,e-eGiHiIiJiFqGqHqIqJqKqKfLfMfngogpgqgrgsgtgugvgwgxgygO P Q *f+f,fNfOfPf1g2gR S T +d,d-d.d/d:dKiLiMiNi)l*l+l,l-l.lOiPiQiRiSiTiUiViU V W n o p ybzbAbWiXi/l:lYiZi0i1i2i3i4i5i6i7i8i9i;l=lfdgdhdBbCbDbFcGcHcIcJcKcEbFbGbLcMcNcHbIbJb. / : KbLbMbOcPcQcRcScTc!i#i$i%i'i(i)i*i+i,i-i.i/i:i;i=i?i@i[i]i^i_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkjAotousLqvsws7rMqNq/oOqPqQqRqSqTqxsUqyszs8rVqWq:oXqYqZq0q1q2qAs3qBsCs9r4q5q;o6q7q8q9q!q#q.e/elemeneoe?lUr:r;rdo@leoVd[l]l^lwlfogo/n_lljmjnjojUcVcWcXcYcZc:e;e=e?e@e[e]e^e_e`e{e|e}e~eafbfpjqjrjsj$q%q'q(q)q*qQfRfSfzgAgBgCgDgEgFgGgHgIgJgKgX Y Z -f.f/fTfUfVf3g4g0 1 2 ;d=d?d@d[d]dtjujvjwj`l{l|l}l~lamxjyjzjAjBjCjDjEj3 4 5 q r s NbObPbFjGjbmcmHjIjJjKjLjMjNjOjPjQjRjSjdmemidjdkdQbRbSb0c1c2c3c4c5cTbUbVb6c7c8cWbXbYb; = ? Zb0b1b9c!c#c$c%c'cTjUjVjWjXjYjZj0j1j2j3j4j5j6j7j8j9j!j#j$j%j'j(j)j*j+j,j-j.j/j:j;j=j?j@j[j]j^jBouoDs+qEsFs!r,q-q=o.q/q:q;q=q?qGs@qHsIs#r[q]q?o^q_q`q{q|q}qJs~qKsLs$rarbr@ocrdrerfrgrhrcfdfpeqeresefmVr=r?rhogmioWdhmimjmxljoko:nkm_j`j{j|j(c)c*c+c,c-cefffgfhfifjfkflfmfnfofpfqfrfsftf}j~jakbkirjrkrlrmrnrWfXfYfLgMgNgOgPgQgRgSgTgUgVgWg6 7 8 :f;f=fZf0f1f5g6g9 ! # ^d_d`d{d|d}dckdkekfklmmmnmompmqmgkhkikjkkklkmknk$ % ' t u v 2b3b4bokpkrmsmqkrksktkukvkwkxkykzkAkBktmumldmdnd5b6b7b.c/c:c;c=c?c8b9b!b@c[c]c#b$b%b@ [ ] 'b(b)b^c_c`c{c|c}cCkDkEkFkGkHkIkJkKkLkMkNkOkPkQkRkSkTkUkVkWkXkYkZk0k1k2k3k4k5k6k7k8k9k!k#k$k%kCovo

788 # SQLAlchemy doesn't call __init__ on the base class when querying from DB 

789 # Ref: https://docs.sqlalchemy.org/en/14/orm/constructors.html 

790 # Set __fields_set__ here, that would have been set when calling __init__ 

791 # in the Pydantic model so that when SQLAlchemy sets attributes that are 

792 # added (e.g. when querying from DB) to the __fields_set__, this already exists 

793 init_pydantic_private_attrs(new_object) 2@rgp[r]rWrhpip}ojpkplpmpnpop2fwfxfwmXr%r'rloxmmo4dymzmAmvmnooopoBm,k-kudvd3f4f5f6f7f8f9f!f.k/kppqprpsptpup7g'k(k)k*k*b8g9g+k+bufvf:k;kCmDmEm=k?k@k[k,b^ od]kFm^k_k`k{k|k}kGmBdpdwdxdqdydrdsdtdzdAd~kalblcldlelflglhliljlklllmlnlolplqlrlDowo^rvp_r`rYrwpxp%oypzpApBpCpDpte~daeylQr(r)r;nzl=nRdAlBlClsl?n@n+nDl!g#g-b.buevewexeyezeAeBe$g%gEpFpGpHpIpJpyf?f@f[f]fw #fzfXgx 6d7d'g(gElFlGl)g*g+g,gy h _ -gHl.g/g:g;g=g?gIl~c` /b:b{ ;b| ( } =b?b@g[g]g^g_g`g{g|g}g~gahbhchdhehfhghhhihxoqo{rKp|r}rZrLpMp'oNpOpPpQpRpSp~rTpasbs0rUpVp(oWpXpYpZp0p1pCebeceJlRr*r+r[nKl]nSdLlMlNltl^n_n,nOljhkh@b[b]b^bDeEeFeGeHeIeJeKelhmh2p3p4p5p6p7pAfBf^f_f`f{f|f}f~fagz A $f%fCfDfYgB C 8d9d!d#dnhohPlQlRlphqhrhshD E i j ~ abthSluhvhwhxhyhzhTladbdbbcb_b`b{b|bdbeb}b~bfbgb) * hbibacbcccdcAhBhChDhEhFhGhHhIhJhKhLhMhNhOhPhQhRhShyorocs8pdses1r9p!p)o#p$p%p'p(p)pfs*pgshs2r+p,p*o-p.p/p:p;p=pis?pjsks3r@p[p+o]p^p_p`p{p|pLeMedeeefegeUlSr,r-r`nVl{nTdWlXlYlul|n}n-nZlThUhVhWhecfcgchcicjcNeOePeQeReSeTeUeVeWeXeYeZe0e1e2eXhYhZh0h}p~paqbqcqdqEfFfGfbgcgdgegfggghgigjgkglgmgF G H 'f(f)fHfIfJfZg0gI J K $d%d'd(d)d*d1h2h3h4h0l1l2l3l4l5l5h6h7h8h9h!h#h$hL M N k l m jbkblb%h'h6l7l(h)h*h+h,h-h.h/h:h;h=h?h8l9lcdddedmbnbobkclcmcncocpcpbqbrbqcrcscsbtbub+ , - vbwbxbtcucvcwcxcyc@h[h]h^h_h`h{h|h}h~haibicidieifigihiiijikiliminioipiqirisitiuiviwixiyiziAiBizosolseqmsns4rfqgq,ohqiqjqkqlqmqosnqpsqs5roqpq-oqqrqsqtquqvqrswqssts6rxqyq.ozqAqBqCqDqEq3e4eheiejeke!lTr.r/r~n#laoUd$l%l'lvlboco.n(lCiDiEiFizcAcBcCcDcEc5e6e7e8e9e!e#e$e%e'e(e)e*e+e,e-eGiHiIiJiFqGqHqIqJqKqKfLfMfngogpgqgrgsgtgugvgwgxgygO P Q *f+f,fNfOfPf1g2gR S T +d,d-d.d/d:dKiLiMiNi)l*l+l,l-l.lOiPiQiRiSiTiUiViU V W n o p ybzbAbWiXi/l:lYiZi0i1i2i3i4i5i6i7i8i9i;l=lfdgdhdBbCbDbFcGcHcIcJcKcEbFbGbLcMcNcHbIbJb. / : KbLbMbOcPcQcRcScTc!i#i$i%i'i(i)i*i+i,i-i.i/i:i;i=i?i@i[i]i^i_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkjAotousLqvsws7rMqNq/oOqPqQqRqSqTqxsUqyszs8rVqWq:oXqYqZq0q1q2qAs3qBsCs9r4q5q;o6q7q8q9q!q#q.e/elemeneoe?lUr:r;rdo@leoVd[l]l^lwlfogo/n_lljmjnjojUcVcWcXcYcZc:e;e=e?e@e[e]e^e_e`e{e|e}e~eafbfpjqjrjsj$q%q'q(q)q*qQfRfSfzgAgBgCgDgEgFgGgHgIgJgKgX Y Z -f.f/fTfUfVf3g4g0 1 2 ;d=d?d@d[d]dtjujvjwj`l{l|l}l~lamxjyjzjAjBjCjDjEj3 4 5 q r s NbObPbFjGjbmcmHjIjJjKjLjMjNjOjPjQjRjSjdmemidjdkdQbRbSb0c1c2c3c4c5cTbUbVb6c7c8cWbXbYb; = ? Zb0b1b9c!c#c$c%c'cTjUjVjWjXjYjZj0j1j2j3j4j5j6j7j8j9j!j#j$j%j'j(j)j*j+j,j-j.j/j:j;j=j?j@j[j]j^jBouoDs+qEsFs!r,q-q=o.q/q:q;q=q?qGs@qHsIs#r[q]q?o^q_q`q{q|q}qJs~qKsLs$rarbr@ocrdrerfrgrhrcfdfpeqeresefmVr=r?rhogmioWdhmimjmxljoko:nkm_j`j{j|j(c)c*c+c,c-cefffgfhfifjfkflfmfnfofpfqfrfsftf}j~jakbkirjrkrlrmrnrWfXfYfLgMgNgOgPgQgRgSgTgUgVgWg6 7 8 :f;f=fZf0f1f5g6g9 ! # ^d_d`d{d|d}dckdkekfklmmmnmompmqmgkhkikjkkklkmknk$ % ' t u v 2b3b4bokpkrmsmqkrksktkukvkwkxkykzkAkBktmumldmdnd5b6b7b.c/c:c;c=c?c8b9b!b@c[c]c#b$b%b@ [ ] 'b(b)b^c_c`c{c|c}cCkDkEkFkGkHkIkJkKkLkMkNkOkPkQkRkSkTkUkVkWkXkYkZk0k1k2k3k4k5k6k7k8k9k!k#k$k%kCovo

794 return new_object 2@rgp[r]rWrhpip}ojpkplpmpnpop2fwfxfwmXr%r'rloxmmo4dymzmAmvmnooopoBm,k-kudvd3f4f5f6f7f8f9f!f.k/kppqprpsptpup7g'k(k)k*k*b8g9g+k+bufvf:k;kCmDmEm=k?k@k[k,b^ od]kFm^k_k`k{k|k}kGmBdpdwdxdqdydrdsdtdzdAd~kalblcldlelflglhliljlklllmlnlolplqlrlDowo^rvp_r`rYrwpxp%oypzpApBpCpDpte~daeylQr(r)r;nzl=nRdAlBlClsl?n@n+nDl!g#g-b.buevewexeyezeAeBe$g%gEpFpGpHpIpJpyf?f@f[f]fw #fzfXgx 6d7d'g(gElFlGl)g*g+g,gy h _ -gHl.g/g:g;g=g?gIl~c` /b:b{ ;b| ( } =b?b@g[g]g^g_g`g{g|g}g~gahbhchdhehfhghhhihxoqo{rKp|r}rZrLpMp'oNpOpPpQpRpSp~rTpasbs0rUpVp(oWpXpYpZp0p1pCebeceJlRr*r+r[nKl]nSdLlMlNltl^n_n,nOljhkh@b[b]b^bDeEeFeGeHeIeJeKelhmh2p3p4p5p6p7pAfBf^f_f`f{f|f}f~fagz A $f%fCfDfYgB C 8d9d!d#dnhohPlQlRlphqhrhshD E i j ~ abthSluhvhwhxhyhzhTladbdbbcb_b`b{b|bdbeb}b~bfbgb) * hbibacbcccdcAhBhChDhEhFhGhHhIhJhKhLhMhNhOhPhQhRhShyorocs8pdses1r9p!p)o#p$p%p'p(p)pfs*pgshs2r+p,p*o-p.p/p:p;p=pis?pjsks3r@p[p+o]p^p_p`p{p|pLeMedeeefegeUlSr,r-r`nVl{nTdWlXlYlul|n}n-nZlThUhVhWhecfcgchcicjcNeOePeQeReSeTeUeVeWeXeYeZe0e1e2eXhYhZh0h}p~paqbqcqdqEfFfGfbgcgdgegfggghgigjgkglgmgF G H 'f(f)fHfIfJfZg0gI J K $d%d'd(d)d*d1h2h3h4h0l1l2l3l4l5l5h6h7h8h9h!h#h$hL M N k l m jbkblb%h'h6l7l(h)h*h+h,h-h.h/h:h;h=h?h8l9lcdddedmbnbobkclcmcncocpcpbqbrbqcrcscsbtbub+ , - vbwbxbtcucvcwcxcyc@h[h]h^h_h`h{h|h}h~haibicidieifigihiiijikiliminioipiqirisitiuiviwixiyiziAiBizosolseqmsns4rfqgq,ohqiqjqkqlqmqosnqpsqs5roqpq-oqqrqsqtquqvqrswqssts6rxqyq.ozqAqBqCqDqEq3e4eheiejeke!lTr.r/r~n#laoUd$l%l'lvlboco.n(lCiDiEiFizcAcBcCcDcEc5e6e7e8e9e!e#e$e%e'e(e)e*e+e,e-eGiHiIiJiFqGqHqIqJqKqKfLfMfngogpgqgrgsgtgugvgwgxgygO P Q *f+f,fNfOfPf1g2gR S T +d,d-d.d/d:dKiLiMiNi)l*l+l,l-l.lOiPiQiRiSiTiUiViU V W n o p ybzbAbWiXi/l:lYiZi0i1i2i3i4i5i6i7i8i9i;l=lfdgdhdBbCbDbFcGcHcIcJcKcEbFbGbLcMcNcHbIbJb. / : KbLbMbOcPcQcRcScTc!i#i$i%i'i(i)i*i+i,i-i.i/i:i;i=i?i@i[i]i^i_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkjAotousLqvsws7rMqNq/oOqPqQqRqSqTqxsUqyszs8rVqWq:oXqYqZq0q1q2qAs3qBsCs9r4q5q;o6q7q8q9q!q#q.e/elemeneoe?lUr:r;rdo@leoVd[l]l^lwlfogo/n_lljmjnjojUcVcWcXcYcZc:e;e=e?e@e[e]e^e_e`e{e|e}e~eafbfpjqjrjsj$q%q'q(q)q*qQfRfSfzgAgBgCgDgEgFgGgHgIgJgKgX Y Z -f.f/fTfUfVf3g4g0 1 2 ;d=d?d@d[d]dtjujvjwj`l{l|l}l~lamxjyjzjAjBjCjDjEj3 4 5 q r s NbObPbFjGjbmcmHjIjJjKjLjMjNjOjPjQjRjSjdmemidjdkdQbRbSb0c1c2c3c4c5cTbUbVb6c7c8cWbXbYb; = ? Zb0b1b9c!c#c$c%c'cTjUjVjWjXjYjZj0j1j2j3j4j5j6j7j8j9j!j#j$j%j'j(j)j*j+j,j-j.j/j:j;j=j?j@j[j]j^jBouoDs+qEsFs!r,q-q=o.q/q:q;q=q?qGs@qHsIs#r[q]q?o^q_q`q{q|q}qJs~qKsLs$rarbr@ocrdrerfrgrhrcfdfpeqeresefmVr=r?rhogmioWdhmimjmxljoko:nkm_j`j{j|j(c)c*c+c,c-cefffgfhfifjfkflfmfnfofpfqfrfsftf}j~jakbkirjrkrlrmrnrWfXfYfLgMgNgOgPgQgRgSgTgUgVgWg6 7 8 :f;f=fZf0f1f5g6g9 ! # ^d_d`d{d|d}dckdkekfklmmmnmompmqmgkhkikjkkklkmknk$ % ' t u v 2b3b4bokpkrmsmqkrksktkukvkwkxkykzkAkBktmumldmdnd5b6b7b.c/c:c;c=c?c8b9b!b@c[c]c#b$b%b@ [ ] 'b(b)b^c_c`c{c|c}cCkDkEkFkGkHkIkJkKkLkMkNkOkPkQkRkSkTkUkVkWkXkYkZk0k1k2k3k4k5k6k7k8k9k!k#k$k%kCovo

795 

796 def __init__(__pydantic_self__, **data: Any) -> None: 1gabcdef

797 # Uses something other than `self` the first arg to allow "self" as a 

798 # settable attribute 

799 

800 # SQLAlchemy does very dark black magic and modifies the __init__ method in 

801 # sqlalchemy.orm.instrumentation._generate_init() 

802 # so, to make SQLAlchemy work, it's needed to explicitly call __init__ to 

803 # trigger all the SQLAlchemy logic, it doesn't work using cls.__new__, setting 

804 # attributes obj.__dict__, etc. The __init__ method has to be called. But 

805 # there are cases where calling all the default logic is not ideal, e.g. 

806 # when calling Model.model_validate(), as the validation is done outside 

807 # of instance creation. 

808 # At the same time, __init__ is what users would normally call, by creating 

809 # a new instance, which should have validation and all the default logic. 

810 # So, to be able to set up the internal SQLAlchemy logic alone without 

811 # executing the rest, and support things like Model.model_validate(), we 

812 # use a contextvar to know if we should execute everything. 

813 if finish_init.get(): 2@rgp[r]rWrhpip}ojpkplpmpnpop2fwfxfwmXr%rloxmmo4dymzmAmvmnooopoBm,k-kudvd3f4f5f6f7f8f9f!f.k/kppqprpsptpup7g'k(k)k*k*b8g9g+k+bufvf:k;kCmDmEm=k?k@k[k,b^ od]kFm^k_k`k{k|k}kGmBdpdwdxdqdydrdsdtdzdAd~kalblcldlelflglhliljlklllmlnlolplqlrlDo^rvp_r`rYrwpxp%oypzpApBpCpDpte~daeylQr(r;nzl=nRdAlBlClsl?n@n+nDl!g#g-b.buevewexeyezeAeBe$g%gEpFpGpHpIpJpyf?f@f[f]fw #fzfXgx 6d7d'g(gElFlGl)g*g+g,gy h _ -gHl.g/g:g;g=g?gIl~c` /b:b{ ;b| ( } =b?b@g[g]g^g_g`g{g|g}g~gahbhchdhehfhghhhihxo{rKp|r}rZrLpMp'oNpOpPpQpRpSp~rTpasbs0rUpVp(oWpXpYpZp0p1pCebeceJlRr*r[nKl]nSdLlMlNltl^n_n,nOljhkh@b[b]b^bDeEeFeGeHeIeJeKelhmh2p3p4p5p6p7pAfBf^f_f`f{f|f}f~fagz A $f%fCfDfYgB C 8d9d!d#dnhohPlQlRlphqhrhshD E i j ~ abthSluhvhwhxhyhzhTladbdbbcb_b`b{b|bdbeb}b~bfbgb) * hbibacbcccdcAhBhChDhEhFhGhHhIhJhKhLhMhNhOhPhQhRhShyocs8pdses1r9p!p)o#p$p%p'p(p)pfs*pgshs2r+p,p*o-p.p/p:p;p=pis?pjsks3r@p[p+o]p^p_p`p{p|pLeMedeeefegeUlSr,r`nVl{nTdWlXlYlul|n}n-nZlThUhVhWhecfcgchcicjcNeOePeQeReSeTeUeVeWeXeYeZe0e1e2eXhYhZh0h}p~paqbqcqdqEfFfGfbgcgdgegfggghgigjgkglgmgF G H 'f(f)fHfIfJfZg0gI J K $d%d'd(d)d*d1h2h3h4h0l1l2l3l4l5l5h6h7h8h9h!h#h$hL M N k l m jbkblb%h'h6l7l(h)h*h+h,h-h.h/h:h;h=h?h8l9lcdddedmbnbobkclcmcncocpcpbqbrbqcrcscsbtbub+ , - vbwbxbtcucvcwcxcyc@h[h]h^h_h`h{h|h}h~haibicidieifigihiiijikiliminioipiqirisitiuiviwixiyiziAiBizolseqmsns4rfqgq,ohqiqjqkqlqmqosnqpsqs5roqpq-oqqrqsqtquqvqrswqssts6rxqyq.ozqAqBqCqDqEq3e4eheiejeke!lTr.r~n#laoUd$l%l'lvlboco.n(lCiDiEiFizcAcBcCcDcEc5e6e7e8e9e!e#e$e%e'e(e)e*e+e,e-eGiHiIiJiFqGqHqIqJqKqKfLfMfngogpgqgrgsgtgugvgwgxgygO P Q *f+f,fNfOfPf1g2gR S T +d,d-d.d/d:dKiLiMiNi)l*l+l,l-l.lOiPiQiRiSiTiUiViU V W n o p ybzbAbWiXi/l:lYiZi0i1i2i3i4i5i6i7i8i9i;l=lfdgdhdBbCbDbFcGcHcIcJcKcEbFbGbLcMcNcHbIbJb. / : KbLbMbOcPcQcRcScTc!i#i$i%i'i(i)i*i+i,i-i.i/i:i;i=i?i@i[i]i^i_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkjAousLqvsws7rMqNq/oOqPqQqRqSqTqxsUqyszs8rVqWq:oXqYqZq0q1q2qAs3qBsCs9r4q5q;o6q7q8q9q!q#q.e/elemeneoe?lUr:rdo@leoVd[l]l^lwlfogo/n_lljmjnjojUcVcWcXcYcZc:e;e=e?e@e[e]e^e_e`e{e|e}e~eafbfpjqjrjsj$q%q'q(q)q*qQfRfSfzgAgBgCgDgEgFgGgHgIgJgKgX Y Z -f.f/fTfUfVf3g4g0 1 2 ;d=d?d@d[d]dtjujvjwj`l{l|l}l~lamxjyjzjAjBjCjDjEj3 4 5 q r s NbObPbFjGjbmcmHjIjJjKjLjMjNjOjPjQjRjSjdmemidjdkdQbRbSb0c1c2c3c4c5cTbUbVb6c7c8cWbXbYb; = ? Zb0b1b9c!c#c$c%c'cTjUjVjWjXjYjZj0j1j2j3j4j5j6j7j8j9j!j#j$j%j'j(j)j*j+j,j-j.j/j:j;j=j?j@j[j]j^jBoDs+qEsFs!r,q-q=o.q/q:q;q=q?qGs@qHsIs#r[q]q?o^q_q`q{q|q}qJs~qKsLs$rarbr@ocrdrerfrgrhrcfdfpeqeresefmVr=rhogmioWdhmimjmxljoko:nkm_j`j{j|j(c)c*c+c,c-cefffgfhfifjfkflfmfnfofpfqfrfsftf}j~jakbkirjrkrlrmrnrWfXfYfLgMgNgOgPgQgRgSgTgUgVgWg6 7 8 :f;f=fZf0f1f5g6g9 ! # ^d_d`d{d|d}dckdkekfklmmmnmompmqmgkhkikjkkklkmknk$ % ' t u v 2b3b4bokpkrmsmqkrksktkukvkwkxkykzkAkBktmumldmdnd5b6b7b.c/c:c;c=c?c8b9b!b@c[c]c#b$b%b@ [ ] 'b(b)b^c_c`c{c|c}cCkDkEkFkGkHkIkJkKkLkMkNkOkPkQkRkSkTkUkVkWkXkYkZk0k1k2k3k4k5k6k7k8k9k!k#k$k%kCo

814 sqlmodel_init(self=__pydantic_self__, data=data) 2@rgp[r]rWrhpip}ojpkplpmpnpop2fwfxfwmXr%rloxmmo4dymzmAmvmnooopoBm,k-kudvd3f4f5f6f7f8f9f!f.k/kppqprpsptpup7g'k(k)k*k*b8g9g+k+bufvf:k;kCmDmEm=k?k@k[k,b^ od]kFm^k_k`k{k|k}kGmBdpdwdxdqdydrdsdtdzdAd~kalblcldlelflglhliljlklllmlnlolplqlrlDo^rvp_r`rYrwpxp%oypzpApBpCpDpte~daeylQr(r;nzl=nRdAlBlClsl?n@n+nDl!g#g-b.buevewexeyezeAeBe$g%gEpFpGpHpIpJpyf?f@f[f]fw #fzfXgx 6d7d'g(gElFlGl)g*g+g,gy h _ -gHl.g/g:g;g=g?gIl~c` /b:b{ ;b| ( } =b?b@g[g]g^g_g`g{g|g}g~gahbhchdhehfhghhhihxo{rKp|r}rZrLpMp'oNpOpPpQpRpSp~rTpasbs0rUpVp(oWpXpYpZp0p1pCebeceJlRr*r[nKl]nSdLlMlNltl^n_n,nOljhkh@b[b]b^bDeEeFeGeHeIeJeKelhmh2p3p4p5p6p7pAfBf^f_f`f{f|f}f~fagz A $f%fCfDfYgB C 8d9d!d#dnhohPlQlRlphqhrhshD E i j ~ abthSluhvhwhxhyhzhTladbdbbcb_b`b{b|bdbeb}b~bfbgb) * hbibacbcccdcAhBhChDhEhFhGhHhIhJhKhLhMhNhOhPhQhRhShyocs8pdses1r9p!p)o#p$p%p'p(p)pfs*pgshs2r+p,p*o-p.p/p:p;p=pis?pjsks3r@p[p+o]p^p_p`p{p|pLeMedeeefegeUlSr,r`nVl{nTdWlXlYlul|n}n-nZlThUhVhWhecfcgchcicjcNeOePeQeReSeTeUeVeWeXeYeZe0e1e2eXhYhZh0h}p~paqbqcqdqEfFfGfbgcgdgegfggghgigjgkglgmgF G H 'f(f)fHfIfJfZg0gI J K $d%d'd(d)d*d1h2h3h4h0l1l2l3l4l5l5h6h7h8h9h!h#h$hL M N k l m jbkblb%h'h6l7l(h)h*h+h,h-h.h/h:h;h=h?h8l9lcdddedmbnbobkclcmcncocpcpbqbrbqcrcscsbtbub+ , - vbwbxbtcucvcwcxcyc@h[h]h^h_h`h{h|h}h~haibicidieifigihiiijikiliminioipiqirisitiuiviwixiyiziAiBizolseqmsns4rfqgq,ohqiqjqkqlqmqosnqpsqs5roqpq-oqqrqsqtquqvqrswqssts6rxqyq.ozqAqBqCqDqEq3e4eheiejeke!lTr.r~n#laoUd$l%l'lvlboco.n(lCiDiEiFizcAcBcCcDcEc5e6e7e8e9e!e#e$e%e'e(e)e*e+e,e-eGiHiIiJiFqGqHqIqJqKqKfLfMfngogpgqgrgsgtgugvgwgxgygO P Q *f+f,fNfOfPf1g2gR S T +d,d-d.d/d:dKiLiMiNi)l*l+l,l-l.lOiPiQiRiSiTiUiViU V W n o p ybzbAbWiXi/l:lYiZi0i1i2i3i4i5i6i7i8i9i;l=lfdgdhdBbCbDbFcGcHcIcJcKcEbFbGbLcMcNcHbIbJb. / : KbLbMbOcPcQcRcScTc!i#i$i%i'i(i)i*i+i,i-i.i/i:i;i=i?i@i[i]i^i_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkjAousLqvsws7rMqNq/oOqPqQqRqSqTqxsUqyszs8rVqWq:oXqYqZq0q1q2qAs3qBsCs9r4q5q;o6q7q8q9q!q#q.e/elemeneoe?lUr:rdo@leoVd[l]l^lwlfogo/n_lljmjnjojUcVcWcXcYcZc:e;e=e?e@e[e]e^e_e`e{e|e}e~eafbfpjqjrjsj$q%q'q(q)q*qQfRfSfzgAgBgCgDgEgFgGgHgIgJgKgX Y Z -f.f/fTfUfVf3g4g0 1 2 ;d=d?d@d[d]dtjujvjwj`l{l|l}l~lamxjyjzjAjBjCjDjEj3 4 5 q r s NbObPbFjGjbmcmHjIjJjKjLjMjNjOjPjQjRjSjdmemidjdkdQbRbSb0c1c2c3c4c5cTbUbVb6c7c8cWbXbYb; = ? Zb0b1b9c!c#c$c%c'cTjUjVjWjXjYjZj0j1j2j3j4j5j6j7j8j9j!j#j$j%j'j(j)j*j+j,j-j.j/j:j;j=j?j@j[j]j^jBoDs+qEsFs!r,q-q=o.q/q:q;q=q?qGs@qHsIs#r[q]q?o^q_q`q{q|q}qJs~qKsLs$rarbr@ocrdrerfrgrhrcfdfpeqeresefmVr=rhogmioWdhmimjmxljoko:nkm_j`j{j|j(c)c*c+c,c-cefffgfhfifjfkflfmfnfofpfqfrfsftf}j~jakbkirjrkrlrmrnrWfXfYfLgMgNgOgPgQgRgSgTgUgVgWg6 7 8 :f;f=fZf0f1f5g6g9 ! # ^d_d`d{d|d}dckdkekfklmmmnmompmqmgkhkikjkkklkmknk$ % ' t u v 2b3b4bokpkrmsmqkrksktkukvkwkxkykzkAkBktmumldmdnd5b6b7b.c/c:c;c=c?c8b9b!b@c[c]c#b$b%b@ [ ] 'b(b)b^c_c`c{c|c}cCkDkEkFkGkHkIkJkKkLkMkNkOkPkQkRkSkTkUkVkWkXkYkZk0k1k2k3k4k5k6k7k8k9k!k#k$k%kCo

815 

816 def __setattr__(self, name: str, value: Any) -> None: 1gabcdef

817 if name in {"_sa_instance_state"}: 2gpWrhpip}ojpkplpmpnpop2fwfxfwm%r'rxm4dymzmAmvmBm,k-kudvd3f4f5f6f7f8f9f!f.k/kppqprpsptpup7g'k(k)k*k*b8g9g+k+bufvf:k;kCmDmEm=k?k@k[k,b^ od]kFm^k_k`k{k|k}kGmBdpdwdxdqdydrdsdtdzdAd~kalblcldlelflglhliljlklllmlnlolplqlrlwovpYrwpxp%oypzpApBpCpDpte~daeyl(r)rzlRdAlBlClslDl!g#g-b.buevewexeyezeAeBe$g%gEpFpGpHpIpJpyf?f@f[f]fw #fzfXgx 6d7d'g(gElFlGl)g*g+g,gy h _ -gHl.g/g:g;g=g?gIl~c` /b:b{ ;b| ( } =b?b@g[g]g^g_g`g{g|g}g~gahbhchdhehfhghhhihqoKpZrLpMp'oNpOpPpQpRpSpTp0rUpVp(oWpXpYpZp0p1pCebeceJl*r+rKlSdLlMlNltlOljhkh@b[b]b^bDeEeFeGeHeIeJeKelhmh2p3p4p5p6p7pAfBf^f_f`f{f|f}f~fagz A $f%fCfDfYgB C 8d9d!d#dnhohPlQlRlphqhrhshD E i j ~ abthSluhvhwhxhyhzhTladbdbbcb_b`b{b|bdbeb}b~bfbgb) * hbibacbcccdcAhBhChDhEhFhGhHhIhJhKhLhMhNhOhPhQhRhShro8p1r9p!p)o#p$p%p'p(p)p*p2r+p,p*o-p.p/p:p;p=p?p3r@p[p+o]p^p_p`p{p|pLeMedeeefegeUl,r-rVlTdWlXlYlulZlThUhVhWhecfcgchcicjcNeOePeQeReSeTeUeVeWeXeYeZe0e1e2eXhYhZh0h}p~paqbqcqdqEfFfGfbgcgdgegfggghgigjgkglgmgF G H 'f(f)fHfIfJfZg0gI J K $d%d'd(d)d*d1h2h3h4h0l1l2l3l4l5l5h6h7h8h9h!h#h$hL M N k l m jbkblb%h'h6l7l(h)h*h+h,h-h.h/h:h;h=h?h8l9lcdddedmbnbobkclcmcncocpcpbqbrbqcrcscsbtbub+ , - vbwbxbtcucvcwcxcyc@h[h]h^h_h`h{h|h}h~haibicidieifigihiiijikiliminioipiqirisitiuiviwixiyiziAiBisoeq4rfqgq,ohqiqjqkqlqmqnq5roqpq-oqqrqsqtquqvqwq6rxqyq.ozqAqBqCqDqEq3e4eheiejeke!l.r/r#lUd$l%l'lvl(lCiDiEiFizcAcBcCcDcEc5e6e7e8e9e!e#e$e%e'e(e)e*e+e,e-eGiHiIiJiFqGqHqIqJqKqKfLfMfngogpgqgrgsgtgugvgwgxgygO P Q *f+f,fNfOfPf1g2gR S T +d,d-d.d/d:dKiLiMiNi)l*l+l,l-l.lOiPiQiRiSiTiUiViU V W n o p ybzbAbWiXi/l:lYiZi0i1i2i3i4i5i6i7i8i9i;l=lfdgdhdBbCbDbFcGcHcIcJcKcEbFbGbLcMcNcHbIbJb. / : KbLbMbOcPcQcRcScTc!i#i$i%i'i(i)i*i+i,i-i.i/i:i;i=i?i@i[i]i^i_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkjtoLq7rMqNq/oOqPqQqRqSqTqUq8rVqWq:oXqYqZq0q1q2q3q9r4q5q;o6q7q8q9q!q#q.e/elemeneoe?l:r;r@lVd[l]l^lwl_lljmjnjojUcVcWcXcYcZc:e;e=e?e@e[e]e^e_e`e{e|e}e~eafbfpjqjrjsj$q%q'q(q)q*qQfRfSfzgAgBgCgDgEgFgGgHgIgJgKgX Y Z -f.f/fTfUfVf3g4g0 1 2 ;d=d?d@d[d]dtjujvjwj`l{l|l}l~lamxjyjzjAjBjCjDjEj3 4 5 q r s NbObPbFjGjbmcmHjIjJjKjLjMjNjOjPjQjRjSjdmemidjdkdQbRbSb0c1c2c3c4c5cTbUbVb6c7c8cWbXbYb; = ? Zb0b1b9c!c#c$c%c'cTjUjVjWjXjYjZj0j1j2j3j4j5j6j7j8j9j!j#j$j%j'j(j)j*j+j,j-j.j/j:j;j=j?j@j[j]j^juo+q!r,q-q=o.q/q:q;q=q?q@q#r[q]q?o^q_q`q{q|q}q~q$rarbr@ocrdrerfrgrhrcfdfpeqeresefm=r?rgmWdhmimjmxlkm_j`j{j|j(c)c*c+c,c-cefffgfhfifjfkflfmfnfofpfqfrfsftf}j~jakbkirjrkrlrmrnrWfXfYfLgMgNgOgPgQgRgSgTgUgVgWg6 7 8 :f;f=fZf0f1f5g6g9 ! # ^d_d`d{d|d}dckdkekfklmmmnmompmqmgkhkikjkkklkmknk$ % ' t u v 2b3b4bokpkrmsmqkrksktkukvkwkxkykzkAkBktmumldmdnd5b6b7b.c/c:c;c=c?c8b9b!b@c[c]c#b$b%b@ [ ] 'b(b)b^c_c`c{c|c}cCkDkEkFkGkHkIkJkKkLkMkNkOkPkQkRkSkTkUkVkWkXkYkZk0k1k2k3k4k5k6k7k8k9k!k#k$k%kvo

818 self.__dict__[name] = value 2gpWrhpip}ojpkplpmpnpop2fwfxfwmxm4dymzmAmvmBm,k-kudvd3f4f5f6f7f8f9f!f.k/kppqprpsptpup7g'k(k)k*k*b8g9g+k+bufvf:k;kCmDmEm=k?k@k[k,b^ od]kFm^k_k`k{k|k}kGmBdpdwdxdqdydrdsdtdzdAd~kalblcldlelflglhliljlklllmlnlolplqlrlvpYrwpxp%oypzpApBpCpDpte~daeylzlRdAlBlClslDl!g#g-b.buevewexeyezeAeBe$g%gEpFpGpHpIpJpyf?f@f[f]fw #fzfXgx 6d7d'g(gElFlGl)g*g+g,gy h _ -gHl.g/g:g;g=g?gIl~c` /b:b{ ;b| ( } =b?b@g[g]g^g_g`g{g|g}g~gahbhchdhehfhghhhihKpZrLpMp'oNpOpPpQpRpSpTp0rUpVp(oWpXpYpZp0p1pCebeceJlKlSdLlMlNltlOljhkh@b[b]b^bDeEeFeGeHeIeJeKelhmh2p3p4p5p6p7pAfBf^f_f`f{f|f}f~fagz A $f%fCfDfYgB C 8d9d!d#dnhohPlQlRlphqhrhshD E i j ~ abthSluhvhwhxhyhzhTladbdbbcb_b`b{b|bdbeb}b~bfbgb) * hbibacbcccdcAhBhChDhEhFhGhHhIhJhKhLhMhNhOhPhQhRhSh8p1r9p!p)o#p$p%p'p(p)p*p2r+p,p*o-p.p/p:p;p=p?p3r@p[p+o]p^p_p`p{p|pLeMedeeefegeUlVlTdWlXlYlulZlThUhVhWhecfcgchcicjcNeOePeQeReSeTeUeVeWeXeYeZe0e1e2eXhYhZh0h}p~paqbqcqdqEfFfGfbgcgdgegfggghgigjgkglgmgF G H 'f(f)fHfIfJfZg0gI J K $d%d'd(d)d*d1h2h3h4h0l1l2l3l4l5l5h6h7h8h9h!h#h$hL M N k l m jbkblb%h'h6l7l(h)h*h+h,h-h.h/h:h;h=h?h8l9lcdddedmbnbobkclcmcncocpcpbqbrbqcrcscsbtbub+ , - vbwbxbtcucvcwcxcyc@h[h]h^h_h`h{h|h}h~haibicidieifigihiiijikiliminioipiqirisitiuiviwixiyiziAiBieq4rfqgq,ohqiqjqkqlqmqnq5roqpq-oqqrqsqtquqvqwq6rxqyq.ozqAqBqCqDqEq3e4eheiejeke!l#lUd$l%l'lvl(lCiDiEiFizcAcBcCcDcEc5e6e7e8e9e!e#e$e%e'e(e)e*e+e,e-eGiHiIiJiFqGqHqIqJqKqKfLfMfngogpgqgrgsgtgugvgwgxgygO P Q *f+f,fNfOfPf1g2gR S T +d,d-d.d/d:dKiLiMiNi)l*l+l,l-l.lOiPiQiRiSiTiUiViU V W n o p ybzbAbWiXi/l:lYiZi0i1i2i3i4i5i6i7i8i9i;l=lfdgdhdBbCbDbFcGcHcIcJcKcEbFbGbLcMcNcHbIbJb. / : KbLbMbOcPcQcRcScTc!i#i$i%i'i(i)i*i+i,i-i.i/i:i;i=i?i@i[i]i^i_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkjLq7rMqNq/oOqPqQqRqSqTqUq8rVqWq:oXqYqZq0q1q2q3q9r4q5q;o6q7q8q9q!q#q.e/elemeneoe?l@lVd[l]l^lwl_lljmjnjojUcVcWcXcYcZc:e;e=e?e@e[e]e^e_e`e{e|e}e~eafbfpjqjrjsj$q%q'q(q)q*qQfRfSfzgAgBgCgDgEgFgGgHgIgJgKgX Y Z -f.f/fTfUfVf3g4g0 1 2 ;d=d?d@d[d]dtjujvjwj`l{l|l}l~lamxjyjzjAjBjCjDjEj3 4 5 q r s NbObPbFjGjbmcmHjIjJjKjLjMjNjOjPjQjRjSjdmemidjdkdQbRbSb0c1c2c3c4c5cTbUbVb6c7c8cWbXbYb; = ? Zb0b1b9c!c#c$c%c'cTjUjVjWjXjYjZj0j1j2j3j4j5j6j7j8j9j!j#j$j%j'j(j)j*j+j,j-j.j/j:j;j=j?j@j[j]j^j+q!r,q-q=o.q/q:q;q=q?q@q#r[q]q?o^q_q`q{q|q}q~q$rarbr@ocrdrerfrgrhrcfdfpeqeresefmgmWdhmimjmxlkm_j`j{j|j(c)c*c+c,c-cefffgfhfifjfkflfmfnfofpfqfrfsftf}j~jakbkirjrkrlrmrnrWfXfYfLgMgNgOgPgQgRgSgTgUgVgWg6 7 8 :f;f=fZf0f1f5g6g9 ! # ^d_d`d{d|d}dckdkekfklmmmnmompmqmgkhkikjkkklkmknk$ % ' t u v 2b3b4bokpkrmsmqkrksktkukvkwkxkykzkAkBktmumldmdnd5b6b7b.c/c:c;c=c?c8b9b!b@c[c]c#b$b%b@ [ ] 'b(b)b^c_c`c{c|c}cCkDkEkFkGkHkIkJkKkLkMkNkOkPkQkRkSkTkUkVkWkXkYkZk0k1k2k3k4k5k6k7k8k9k!k#k$k%k

819 return 2gpWrhpip}ojpkplpmpnpop2fwfxfwmxm4dymzmAmvmBm,k-kudvd3f4f5f6f7f8f9f!f.k/kppqprpsptpup7g'k(k)k*k*b8g9g+k+bufvf:k;kCmDmEm=k?k@k[k,b^ od]kFm^k_k`k{k|k}kGmBdpdwdxdqdydrdsdtdzdAd~kalblcldlelflglhliljlklllmlnlolplqlrlvpYrwpxp%oypzpApBpCpDpte~daeylzlRdAlBlClslDl!g#g-b.buevewexeyezeAeBe$g%gEpFpGpHpIpJpyf?f@f[f]fw #fzfXgx 6d7d'g(gElFlGl)g*g+g,gy h _ -gHl.g/g:g;g=g?gIl~c` /b:b{ ;b| ( } =b?b@g[g]g^g_g`g{g|g}g~gahbhchdhehfhghhhihKpZrLpMp'oNpOpPpQpRpSpTp0rUpVp(oWpXpYpZp0p1pCebeceJlKlSdLlMlNltlOljhkh@b[b]b^bDeEeFeGeHeIeJeKelhmh2p3p4p5p6p7pAfBf^f_f`f{f|f}f~fagz A $f%fCfDfYgB C 8d9d!d#dnhohPlQlRlphqhrhshD E i j ~ abthSluhvhwhxhyhzhTladbdbbcb_b`b{b|bdbeb}b~bfbgb) * hbibacbcccdcAhBhChDhEhFhGhHhIhJhKhLhMhNhOhPhQhRhSh8p1r9p!p)o#p$p%p'p(p)p*p2r+p,p*o-p.p/p:p;p=p?p3r@p[p+o]p^p_p`p{p|pLeMedeeefegeUlVlTdWlXlYlulZlThUhVhWhecfcgchcicjcNeOePeQeReSeTeUeVeWeXeYeZe0e1e2eXhYhZh0h}p~paqbqcqdqEfFfGfbgcgdgegfggghgigjgkglgmgF G H 'f(f)fHfIfJfZg0gI J K $d%d'd(d)d*d1h2h3h4h0l1l2l3l4l5l5h6h7h8h9h!h#h$hL M N k l m jbkblb%h'h6l7l(h)h*h+h,h-h.h/h:h;h=h?h8l9lcdddedmbnbobkclcmcncocpcpbqbrbqcrcscsbtbub+ , - vbwbxbtcucvcwcxcyc@h[h]h^h_h`h{h|h}h~haibicidieifigihiiijikiliminioipiqirisitiuiviwixiyiziAiBieq4rfqgq,ohqiqjqkqlqmqnq5roqpq-oqqrqsqtquqvqwq6rxqyq.ozqAqBqCqDqEq3e4eheiejeke!l#lUd$l%l'lvl(lCiDiEiFizcAcBcCcDcEc5e6e7e8e9e!e#e$e%e'e(e)e*e+e,e-eGiHiIiJiFqGqHqIqJqKqKfLfMfngogpgqgrgsgtgugvgwgxgygO P Q *f+f,fNfOfPf1g2gR S T +d,d-d.d/d:dKiLiMiNi)l*l+l,l-l.lOiPiQiRiSiTiUiViU V W n o p ybzbAbWiXi/l:lYiZi0i1i2i3i4i5i6i7i8i9i;l=lfdgdhdBbCbDbFcGcHcIcJcKcEbFbGbLcMcNcHbIbJb. / : KbLbMbOcPcQcRcScTc!i#i$i%i'i(i)i*i+i,i-i.i/i:i;i=i?i@i[i]i^i_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkjLq7rMqNq/oOqPqQqRqSqTqUq8rVqWq:oXqYqZq0q1q2q3q9r4q5q;o6q7q8q9q!q#q.e/elemeneoe?l@lVd[l]l^lwl_lljmjnjojUcVcWcXcYcZc:e;e=e?e@e[e]e^e_e`e{e|e}e~eafbfpjqjrjsj$q%q'q(q)q*qQfRfSfzgAgBgCgDgEgFgGgHgIgJgKgX Y Z -f.f/fTfUfVf3g4g0 1 2 ;d=d?d@d[d]dtjujvjwj`l{l|l}l~lamxjyjzjAjBjCjDjEj3 4 5 q r s NbObPbFjGjbmcmHjIjJjKjLjMjNjOjPjQjRjSjdmemidjdkdQbRbSb0c1c2c3c4c5cTbUbVb6c7c8cWbXbYb; = ? Zb0b1b9c!c#c$c%c'cTjUjVjWjXjYjZj0j1j2j3j4j5j6j7j8j9j!j#j$j%j'j(j)j*j+j,j-j.j/j:j;j=j?j@j[j]j^j+q!r,q-q=o.q/q:q;q=q?q@q#r[q]q?o^q_q`q{q|q}q~q$rarbr@ocrdrerfrgrhrcfdfpeqeresefmgmWdhmimjmxlkm_j`j{j|j(c)c*c+c,c-cefffgfhfifjfkflfmfnfofpfqfrfsftf}j~jakbkirjrkrlrmrnrWfXfYfLgMgNgOgPgQgRgSgTgUgVgWg6 7 8 :f;f=fZf0f1f5g6g9 ! # ^d_d`d{d|d}dckdkekfklmmmnmompmqmgkhkikjkkklkmknk$ % ' t u v 2b3b4bokpkrmsmqkrksktkukvkwkxkykzkAkBktmumldmdnd5b6b7b.c/c:c;c=c?c8b9b!b@c[c]c#b$b%b@ [ ] 'b(b)b^c_c`c{c|c}cCkDkEkFkGkHkIkJkKkLkMkNkOkPkQkRkSkTkUkVkWkXkYkZk0k1k2k3k4k5k6k7k8k9k!k#k$k%k

820 else: 

821 # Set in SQLAlchemy, before Pydantic to trigger events and updates 

822 if is_table_model_class(self.__class__) and is_instrumented(self, name): # type: ignore[no-untyped-call] 2gpWrhpip}ojpkplpmpnpop2fwfxfwm%r'rxm4dymzmAmvmBm,k-kudvd3f4f5f6f7f8f9f!f.k/kppqprpsptpup7g'k(k)k*k*b8g9g+k+bufvf:k;kCmDmEm=k?k@k[k,b^ od]kFm^k_k`k{k|k}kGmBdpdwdxdqdydrdsdtdzdAd~kalblcldlelflglhliljlklllmlnlolplqlrlwovpYrwpxp%oypzpApBpCpDpte~daeyl(r)rzlRdAlBlClslDl!g#g-b.buevewexeyezeAeBe$g%gEpFpGpHpIpJpyf?f@f[f]fw #fzfXgx 6d7d'g(gElFlGl)g*g+g,gy h _ -gHl.g/g:g;g=g?gIl~c` /b:b{ ;b| ( } =b?b@g[g]g^g_g`g{g|g}g~gahbhchdhehfhghhhihqoKpZrLpMp'oNpOpPpQpRpSpTp0rUpVp(oWpXpYpZp0p1pCebeceJl*r+rKlSdLlMlNltlOljhkh@b[b]b^bDeEeFeGeHeIeJeKelhmh2p3p4p5p6p7pAfBf^f_f`f{f|f}f~fagz A $f%fCfDfYgB C 8d9d!d#dnhohPlQlRlphqhrhshD E i j ~ abthSluhvhwhxhyhzhTladbdbbcb_b`b{b|bdbeb}b~bfbgb) * hbibacbcccdcAhBhChDhEhFhGhHhIhJhKhLhMhNhOhPhQhRhShro8p1r9p!p)o#p$p%p'p(p)p*p2r+p,p*o-p.p/p:p;p=p?p3r@p[p+o]p^p_p`p{p|pLeMedeeefegeUl,r-rVlTdWlXlYlulZlThUhVhWhecfcgchcicjcNeOePeQeReSeTeUeVeWeXeYeZe0e1e2eXhYhZh0h}p~paqbqcqdqEfFfGfbgcgdgegfggghgigjgkglgmgF G H 'f(f)fHfIfJfZg0gI J K $d%d'd(d)d*d1h2h3h4h0l1l2l3l4l5l5h6h7h8h9h!h#h$hL M N k l m jbkblb%h'h6l7l(h)h*h+h,h-h.h/h:h;h=h?h8l9lcdddedmbnbobkclcmcncocpcpbqbrbqcrcscsbtbub+ , - vbwbxbtcucvcwcxcyc@h[h]h^h_h`h{h|h}h~haibicidieifigihiiijikiliminioipiqirisitiuiviwixiyiziAiBisoeq4rfqgq,ohqiqjqkqlqmqnq5roqpq-oqqrqsqtquqvqwq6rxqyq.ozqAqBqCqDqEq3e4eheiejeke!l.r/r#lUd$l%l'lvl(lCiDiEiFizcAcBcCcDcEc5e6e7e8e9e!e#e$e%e'e(e)e*e+e,e-eGiHiIiJiFqGqHqIqJqKqKfLfMfngogpgqgrgsgtgugvgwgxgygO P Q *f+f,fNfOfPf1g2gR S T +d,d-d.d/d:dKiLiMiNi)l*l+l,l-l.lOiPiQiRiSiTiUiViU V W n o p ybzbAbWiXi/l:lYiZi0i1i2i3i4i5i6i7i8i9i;l=lfdgdhdBbCbDbFcGcHcIcJcKcEbFbGbLcMcNcHbIbJb. / : KbLbMbOcPcQcRcScTc!i#i$i%i'i(i)i*i+i,i-i.i/i:i;i=i?i@i[i]i^i_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkjtoLq7rMqNq/oOqPqQqRqSqTqUq8rVqWq:oXqYqZq0q1q2q3q9r4q5q;o6q7q8q9q!q#q.e/elemeneoe?l:r;r@lVd[l]l^lwl_lljmjnjojUcVcWcXcYcZc:e;e=e?e@e[e]e^e_e`e{e|e}e~eafbfpjqjrjsj$q%q'q(q)q*qQfRfSfzgAgBgCgDgEgFgGgHgIgJgKgX Y Z -f.f/fTfUfVf3g4g0 1 2 ;d=d?d@d[d]dtjujvjwj`l{l|l}l~lamxjyjzjAjBjCjDjEj3 4 5 q r s NbObPbFjGjbmcmHjIjJjKjLjMjNjOjPjQjRjSjdmemidjdkdQbRbSb0c1c2c3c4c5cTbUbVb6c7c8cWbXbYb; = ? Zb0b1b9c!c#c$c%c'cTjUjVjWjXjYjZj0j1j2j3j4j5j6j7j8j9j!j#j$j%j'j(j)j*j+j,j-j.j/j:j;j=j?j@j[j]j^juo+q!r,q-q=o.q/q:q;q=q?q@q#r[q]q?o^q_q`q{q|q}q~q$rarbr@ocrdrerfrgrhrcfdfpeqeresefm=r?rgmWdhmimjmxlkm_j`j{j|j(c)c*c+c,c-cefffgfhfifjfkflfmfnfofpfqfrfsftf}j~jakbkirjrkrlrmrnrWfXfYfLgMgNgOgPgQgRgSgTgUgVgWg6 7 8 :f;f=fZf0f1f5g6g9 ! # ^d_d`d{d|d}dckdkekfklmmmnmompmqmgkhkikjkkklkmknk$ % ' t u v 2b3b4bokpkrmsmqkrksktkukvkwkxkykzkAkBktmumldmdnd5b6b7b.c/c:c;c=c?c8b9b!b@c[c]c#b$b%b@ [ ] 'b(b)b^c_c`c{c|c}cCkDkEkFkGkHkIkJkKkLkMkNkOkPkQkRkSkTkUkVkWkXkYkZk0k1k2k3k4k5k6k7k8k9k!k#k$k%kvo

823 set_attribute(self, name, value) 2gpWrhpip}ojpkplpmpnpop2fwfxfwmxm4dymzmAmvmBm,k-kudvd3f4f5f6f7f8f9f!f.k/kppqprpsptpup7g'k(k)k*k*b8g9g+k+bufvf:k;kCmDmEm=k?k@k[k,b^ od]kFm^k_k`k{k|k}kGmBdpdwdxdqdydrdsdtdzdAd~kalblcldlelflglhliljlklllmlnlolplqlrlvpYrwpxp%oypzpApBpCpDpte~daeylzlRdAlBlClslDl!g#g-b.buevewexeyezeAeBe$g%gEpFpGpHpIpJpyf?f@f[f]fw #fzfXgx 6d7d'g(gElFlGl)g*g+g,gy h _ -gHl.g/g:g;g=g?gIl~c` /b:b{ ;b| ( } =b?b@g[g]g^g_g`g{g|g}g~gahbhchdhehfhghhhihKpZrLpMp'oNpOpPpQpRpSpTp0rUpVp(oWpXpYpZp0p1pCebeceJlKlSdLlMlNltlOljhkh@b[b]b^bDeEeFeGeHeIeJeKelhmh2p3p4p5p6p7pAfBf^f_f`f{f|f}f~fagz A $f%fCfDfYgB C 8d9d!d#dnhohPlQlRlphqhrhshD E i j ~ abthSluhvhwhxhyhzhTladbdbbcb_b`b{b|bdbeb}b~bfbgb) * hbibacbcccdcAhBhChDhEhFhGhHhIhJhKhLhMhNhOhPhQhRhSh8p1r9p!p)o#p$p%p'p(p)p*p2r+p,p*o-p.p/p:p;p=p?p3r@p[p+o]p^p_p`p{p|pLeMedeeefegeUlVlTdWlXlYlulZlThUhVhWhecfcgchcicjcNeOePeQeReSeTeUeVeWeXeYeZe0e1e2eXhYhZh0h}p~paqbqcqdqEfFfGfbgcgdgegfggghgigjgkglgmgF G H 'f(f)fHfIfJfZg0gI J K $d%d'd(d)d*d1h2h3h4h0l1l2l3l4l5l5h6h7h8h9h!h#h$hL M N k l m jbkblb%h'h6l7l(h)h*h+h,h-h.h/h:h;h=h?h8l9lcdddedmbnbobkclcmcncocpcpbqbrbqcrcscsbtbub+ , - vbwbxbtcucvcwcxcyc@h[h]h^h_h`h{h|h}h~haibicidieifigihiiijikiliminioipiqirisitiuiviwixiyiziAiBieq4rfqgq,ohqiqjqkqlqmqnq5roqpq-oqqrqsqtquqvqwq6rxqyq.ozqAqBqCqDqEq3e4eheiejeke!l#lUd$l%l'lvl(lCiDiEiFizcAcBcCcDcEc5e6e7e8e9e!e#e$e%e'e(e)e*e+e,e-eGiHiIiJiFqGqHqIqJqKqKfLfMfngogpgqgrgsgtgugvgwgxgygO P Q *f+f,fNfOfPf1g2gR S T +d,d-d.d/d:dKiLiMiNi)l*l+l,l-l.lOiPiQiRiSiTiUiViU V W n o p ybzbAbWiXi/l:lYiZi0i1i2i3i4i5i6i7i8i9i;l=lfdgdhdBbCbDbFcGcHcIcJcKcEbFbGbLcMcNcHbIbJb. / : KbLbMbOcPcQcRcScTc!i#i$i%i'i(i)i*i+i,i-i.i/i:i;i=i?i@i[i]i^i_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkjLq7rMqNq/oOqPqQqRqSqTqUq8rVqWq:oXqYqZq0q1q2q3q9r4q5q;o6q7q8q9q!q#q.e/elemeneoe?l@lVd[l]l^lwl_lljmjnjojUcVcWcXcYcZc:e;e=e?e@e[e]e^e_e`e{e|e}e~eafbfpjqjrjsj$q%q'q(q)q*qQfRfSfzgAgBgCgDgEgFgGgHgIgJgKgX Y Z -f.f/fTfUfVf3g4g0 1 2 ;d=d?d@d[d]dtjujvjwj`l{l|l}l~lamxjyjzjAjBjCjDjEj3 4 5 q r s NbObPbFjGjbmcmHjIjJjKjLjMjNjOjPjQjRjSjdmemidjdkdQbRbSb0c1c2c3c4c5cTbUbVb6c7c8cWbXbYb; = ? Zb0b1b9c!c#c$c%c'cTjUjVjWjXjYjZj0j1j2j3j4j5j6j7j8j9j!j#j$j%j'j(j)j*j+j,j-j.j/j:j;j=j?j@j[j]j^j+q!r,q-q=o.q/q:q;q=q?q@q#r[q]q?o^q_q`q{q|q}q~q$rarbr@ocrdrerfrgrhrcfdfpeqeresefmgmWdhmimjmxlkm_j`j{j|j(c)c*c+c,c-cefffgfhfifjfkflfmfnfofpfqfrfsftf}j~jakbkirjrkrlrmrnrWfXfYfLgMgNgOgPgQgRgSgTgUgVgWg6 7 8 :f;f=fZf0f1f5g6g9 ! # ^d_d`d{d|d}dckdkekfklmmmnmompmqmgkhkikjkkklkmknk$ % ' t u v 2b3b4bokpkrmsmqkrksktkukvkwkxkykzkAkBktmumldmdnd5b6b7b.c/c:c;c=c?c8b9b!b@c[c]c#b$b%b@ [ ] 'b(b)b^c_c`c{c|c}cCkDkEkFkGkHkIkJkKkLkMkNkOkPkQkRkSkTkUkVkWkXkYkZk0k1k2k3k4k5k6k7k8k9k!k#k$k%k

824 # Set in Pydantic model to trigger possible validation changes, only for 

825 # non relationship values 

826 if name not in self.__sqlmodel_relationships__: 2gpWrhpip}ojpkplpmpnpop2fwfxfwm%r'rxm4dymzmAmvmBm,k-kudvd3f4f5f6f7f8f9f!f.k/kppqprpsptpup7g'k(k)k*k*b8g9g+k+bufvf:k;kCmDmEm=k?k@k[k,b^ od]kFm^k_k`k{k|k}kGmBdpdwdxdqdydrdsdtdzdAd~kalblcldlelflglhliljlklllmlnlolplqlrlwovpYrwpxp%oypzpApBpCpDpte~daeyl(r)rzlRdAlBlClslDl!g#g-b.buevewexeyezeAeBe$g%gEpFpGpHpIpJpyf?f@f[f]fw #fzfXgx 6d7d'g(gElFlGl)g*g+g,gy h _ -gHl.g/g:g;g=g?gIl~c` /b:b{ ;b| ( } =b?b@g[g]g^g_g`g{g|g}g~gahbhchdhehfhghhhihqoKpZrLpMp'oNpOpPpQpRpSpTp0rUpVp(oWpXpYpZp0p1pCebeceJl*r+rKlSdLlMlNltlOljhkh@b[b]b^bDeEeFeGeHeIeJeKelhmh2p3p4p5p6p7pAfBf^f_f`f{f|f}f~fagz A $f%fCfDfYgB C 8d9d!d#dnhohPlQlRlphqhrhshD E i j ~ abthSluhvhwhxhyhzhTladbdbbcb_b`b{b|bdbeb}b~bfbgb) * hbibacbcccdcAhBhChDhEhFhGhHhIhJhKhLhMhNhOhPhQhRhShro8p1r9p!p)o#p$p%p'p(p)p*p2r+p,p*o-p.p/p:p;p=p?p3r@p[p+o]p^p_p`p{p|pLeMedeeefegeUl,r-rVlTdWlXlYlulZlThUhVhWhecfcgchcicjcNeOePeQeReSeTeUeVeWeXeYeZe0e1e2eXhYhZh0h}p~paqbqcqdqEfFfGfbgcgdgegfggghgigjgkglgmgF G H 'f(f)fHfIfJfZg0gI J K $d%d'd(d)d*d1h2h3h4h0l1l2l3l4l5l5h6h7h8h9h!h#h$hL M N k l m jbkblb%h'h6l7l(h)h*h+h,h-h.h/h:h;h=h?h8l9lcdddedmbnbobkclcmcncocpcpbqbrbqcrcscsbtbub+ , - vbwbxbtcucvcwcxcyc@h[h]h^h_h`h{h|h}h~haibicidieifigihiiijikiliminioipiqirisitiuiviwixiyiziAiBisoeq4rfqgq,ohqiqjqkqlqmqnq5roqpq-oqqrqsqtquqvqwq6rxqyq.ozqAqBqCqDqEq3e4eheiejeke!l.r/r#lUd$l%l'lvl(lCiDiEiFizcAcBcCcDcEc5e6e7e8e9e!e#e$e%e'e(e)e*e+e,e-eGiHiIiJiFqGqHqIqJqKqKfLfMfngogpgqgrgsgtgugvgwgxgygO P Q *f+f,fNfOfPf1g2gR S T +d,d-d.d/d:dKiLiMiNi)l*l+l,l-l.lOiPiQiRiSiTiUiViU V W n o p ybzbAbWiXi/l:lYiZi0i1i2i3i4i5i6i7i8i9i;l=lfdgdhdBbCbDbFcGcHcIcJcKcEbFbGbLcMcNcHbIbJb. / : KbLbMbOcPcQcRcScTc!i#i$i%i'i(i)i*i+i,i-i.i/i:i;i=i?i@i[i]i^i_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkjtoLq7rMqNq/oOqPqQqRqSqTqUq8rVqWq:oXqYqZq0q1q2q3q9r4q5q;o6q7q8q9q!q#q.e/elemeneoe?l:r;r@lVd[l]l^lwl_lljmjnjojUcVcWcXcYcZc:e;e=e?e@e[e]e^e_e`e{e|e}e~eafbfpjqjrjsj$q%q'q(q)q*qQfRfSfzgAgBgCgDgEgFgGgHgIgJgKgX Y Z -f.f/fTfUfVf3g4g0 1 2 ;d=d?d@d[d]dtjujvjwj`l{l|l}l~lamxjyjzjAjBjCjDjEj3 4 5 q r s NbObPbFjGjbmcmHjIjJjKjLjMjNjOjPjQjRjSjdmemidjdkdQbRbSb0c1c2c3c4c5cTbUbVb6c7c8cWbXbYb; = ? Zb0b1b9c!c#c$c%c'cTjUjVjWjXjYjZj0j1j2j3j4j5j6j7j8j9j!j#j$j%j'j(j)j*j+j,j-j.j/j:j;j=j?j@j[j]j^juo+q!r,q-q=o.q/q:q;q=q?q@q#r[q]q?o^q_q`q{q|q}q~q$rarbr@ocrdrerfrgrhrcfdfpeqeresefm=r?rgmWdhmimjmxlkm_j`j{j|j(c)c*c+c,c-cefffgfhfifjfkflfmfnfofpfqfrfsftf}j~jakbkirjrkrlrmrnrWfXfYfLgMgNgOgPgQgRgSgTgUgVgWg6 7 8 :f;f=fZf0f1f5g6g9 ! # ^d_d`d{d|d}dckdkekfklmmmnmompmqmgkhkikjkkklkmknk$ % ' t u v 2b3b4bokpkrmsmqkrksktkukvkwkxkykzkAkBktmumldmdnd5b6b7b.c/c:c;c=c?c8b9b!b@c[c]c#b$b%b@ [ ] 'b(b)b^c_c`c{c|c}cCkDkEkFkGkHkIkJkKkLkMkNkOkPkQkRkSkTkUkVkWkXkYkZk0k1k2k3k4k5k6k7k8k9k!k#k$k%kvo

827 super().__setattr__(name, value) 2gpWrhpip}ojpkplpmpnpop2fwfxfwm%r'rxm4dymzmAmvmBm,k-kudvd3f4f5f6f7f8f9f!f.k/kppqprpsptpup7g'k(k)k*k*b8g9g+k+bufvf:k;kCmDmEm=k?k@k[k,b^ od]kFm^k_k`k{k|k}kGmBdpdwdxdqdydrdsdtdzdAd~kalblcldlelflglhliljlklllmlnlolplqlrlwovpYrwpxp%oypzpApBpCpDpte~daeyl(r)rzlRdAlBlClslDl!g#g-b.buevewexeyezeAeBe$g%gEpFpGpHpIpJpyf?f@f[f]fw #fzfXgx 6d7d'g(gElFlGl)g*g+g,gy h _ -gHl.g/g:g;g=g?gIl~c` /b:b{ ;b| ( } =b?b@g[g]g^g_g`g{g|g}g~gahbhchdhehfhghhhihqoKpZrLpMp'oNpOpPpQpRpSpTp0rUpVp(oWpXpYpZp0p1pCebeceJl*r+rKlSdLlMlNltlOljhkh@b[b]b^bDeEeFeGeHeIeJeKelhmh2p3p4p5p6p7pAfBf^f_f`f{f|f}f~fagz A $f%fCfDfYgB C 8d9d!d#dnhohPlQlRlphqhrhshD E i j ~ abthSluhvhwhxhyhzhTladbdbbcb_b`b{b|bdbeb}b~bfbgb) * hbibacbcccdcAhBhChDhEhFhGhHhIhJhKhLhMhNhOhPhQhRhShro8p1r9p!p)o#p$p%p'p(p)p*p2r+p,p*o-p.p/p:p;p=p?p3r@p[p+o]p^p_p`p{p|pLeMedeeefegeUl,r-rVlTdWlXlYlulZlThUhVhWhecfcgchcicjcNeOePeQeReSeTeUeVeWeXeYeZe0e1e2eXhYhZh0h}p~paqbqcqdqEfFfGfbgcgdgegfggghgigjgkglgmgF G H 'f(f)fHfIfJfZg0gI J K $d%d'd(d)d*d1h2h3h4h0l1l2l3l4l5l5h6h7h8h9h!h#h$hL M N k l m jbkblb%h'h6l7l(h)h*h+h,h-h.h/h:h;h=h?h8l9lcdddedmbnbobkclcmcncocpcpbqbrbqcrcscsbtbub+ , - vbwbxbtcucvcwcxcyc@h[h]h^h_h`h{h|h}h~haibicidieifigihiiijikiliminioipiqirisitiuiviwixiyiziAiBisoeq4rfqgq,ohqiqjqkqlqmqnq5roqpq-oqqrqsqtquqvqwq6rxqyq.ozqAqBqCqDqEq3e4eheiejeke!l.r/r#lUd$l%l'lvl(lCiDiEiFizcAcBcCcDcEc5e6e7e8e9e!e#e$e%e'e(e)e*e+e,e-eGiHiIiJiFqGqHqIqJqKqKfLfMfngogpgqgrgsgtgugvgwgxgygO P Q *f+f,fNfOfPf1g2gR S T +d,d-d.d/d:dKiLiMiNi)l*l+l,l-l.lOiPiQiRiSiTiUiViU V W n o p ybzbAbWiXi/l:lYiZi0i1i2i3i4i5i6i7i8i9i;l=lfdgdhdBbCbDbFcGcHcIcJcKcEbFbGbLcMcNcHbIbJb. / : KbLbMbOcPcQcRcScTc!i#i$i%i'i(i)i*i+i,i-i.i/i:i;i=i?i@i[i]i^i_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkjtoLq7rMqNq/oOqPqQqRqSqTqUq8rVqWq:oXqYqZq0q1q2q3q9r4q5q;o6q7q8q9q!q#q.e/elemeneoe?l:r;r@lVd[l]l^lwl_lljmjnjojUcVcWcXcYcZc:e;e=e?e@e[e]e^e_e`e{e|e}e~eafbfpjqjrjsj$q%q'q(q)q*qQfRfSfzgAgBgCgDgEgFgGgHgIgJgKgX Y Z -f.f/fTfUfVf3g4g0 1 2 ;d=d?d@d[d]dtjujvjwj`l{l|l}l~lamxjyjzjAjBjCjDjEj3 4 5 q r s NbObPbFjGjbmcmHjIjJjKjLjMjNjOjPjQjRjSjdmemidjdkdQbRbSb0c1c2c3c4c5cTbUbVb6c7c8cWbXbYb; = ? Zb0b1b9c!c#c$c%c'cTjUjVjWjXjYjZj0j1j2j3j4j5j6j7j8j9j!j#j$j%j'j(j)j*j+j,j-j.j/j:j;j=j?j@j[j]j^juo+q!r,q-q=o.q/q:q;q=q?q@q#r[q]q?o^q_q`q{q|q}q~q$rarbr@ocrdrerfrgrhrcfdfpeqeresefm=r?rgmWdhmimjmxlkm_j`j{j|j(c)c*c+c,c-cefffgfhfifjfkflfmfnfofpfqfrfsftf}j~jakbkirjrkrlrmrnrWfXfYfLgMgNgOgPgQgRgSgTgUgVgWg6 7 8 :f;f=fZf0f1f5g6g9 ! # ^d_d`d{d|d}dckdkekfklmmmnmompmqmgkhkikjkkklkmknk$ % ' t u v 2b3b4bokpkrmsmqkrksktkukvkwkxkykzkAkBktmumldmdnd5b6b7b.c/c:c;c=c?c8b9b!b@c[c]c#b$b%b@ [ ] 'b(b)b^c_c`c{c|c}cCkDkEkFkGkHkIkJkKkLkMkNkOkPkQkRkSkTkUkVkWkXkYkZk0k1k2k3k4k5k6k7k8k9k!k#k$k%kvo

828 

829 def __repr_args__(self) -> Sequence[Tuple[Optional[str], Any]]: 1gabcdef

830 # Don't show SQLAlchemy private attributes 

831 return [ 2+n( ,n) * -n+ , - .n. / : /n; = ? :n@ [ ]

832 (k, v) 

833 for k, v in super().__repr_args__() 

834 if not (isinstance(k, str) and k.startswith("_sa_")) 

835 ] 

836 

837 @declared_attr # type: ignore 1gabcdef

838 def __tablename__(cls) -> str: 1gabcdef

839 return cls.__name__.lower() 2g Ms2fwfxfwm*m+msnHn!m*nxm4dymzmAmvmrnIn5dBm,k-kudvdXm3f4f5f6f7f8f9f!fFnGn.k/k7g'k(k)k*k*b8g9g+k+bufvf:k;kCmDmEm=k?k@k[k,b^ od]kFm^k_k`k{k|k}kGmBdpdXdwdxdqdydrdsdtdzdAd~kalblcldlelflglhliljlklllmlnlolplqlrla Nste~daeylYmZm,mtnRm#nzlRdAlBlClsl#munYdDl!g#g-b.bHmuevewexeyezeAeBe|m}m$g%gyf?f@f[f]fw #fzfXgx 6d7d'g(gElFlGl)g*g+g,gy h _ -gHl.g/g:g;g=g?gIl~c` Cd/b:b{ ;b| ( } =b?b@g[g]g^g_g`g{g|g}g~gahbhchdhehfhghhhihb OsPsCebeceJl0m1m-mvnSm$nKlSdLlMlNltl$mwnZdOljhkh@b[b]b^bImDeEeFeGeHeIeJeKe~manlhmh.mAfBf^f_f`f{f|f}f~fagz A $f%fCfDfYgB C 8d9d!d#dnhohPlQlRlphqhrhshD E i j ~ abthSluhvhwhxhyhzhTladbdbbcbDdEd_b`b{b|bdbeb}b~bfbgb) * hbibacbcccdcAhBhChDhEhFhGhHhIhJhKhLhMhNhOhPhQhRhShc QsRsSsLeMedeeefegeUl2m3m/mxnTm%nVlTdWlXlYlul%myn0dZlThUhVhWhecfcgchcicjcJmKmNeOePeQeReSeTeUeVeWeXeYeZe0e1e2ebncndnenXhYhZh0h:m;mEfFfGfbgcgdgegfggghgigjgkglgmgF G H 'f(f)fHfIfJfZg0gI J K $d%d'd(d)d*d1h2h3h4h0l1l2l3l4l5l5h6h7h8h9h!h#h$hL M N k l m jbkblb%h'h6l7l(h)h*h+h,h-h.h/h:h;h=h?h8l9lcdddedmbnbobFdGdHdkclcmcncocpcpbqbrbqcrcscsbtbub+ , - vbwbxbtcucvcwcxcyc@h[h]h^h_h`h{h|h}h~haibicidieifigihiiijikiliminioipiqirisitiuiviwixiyiziAiBid TsUsVs3e4eheiejeke!l4m5m=mznUm'n#lUd$l%l'lvl'mAn1d(lCiDiEiFizcAcBcCcDcEcLmMm5e6e7e8e9e!e#e$e%e'e(e)e*e+e,e-efngnhninGiHiIiJi?m@mKfLfMfngogpgqgrgsgtgugvgwgxgygO P Q *f+f,fNfOfPf1g2gR S T +d,d-d.d/d:dKiLiMiNi)l*l+l,l-l.lOiPiQiRiSiTiUiViU V W n o p ybzbAbWiXi/l:lYiZi0i1i2i3i4i5i6i7i8i9i;l=lfdgdhdBbCbDbIdJdKdFcGcHcIcJcKcEbFbGbLcMcNcHbIbJb. / : KbLbMbOcPcQcRcScTc!i#i$i%i'i(i)i*i+i,i-i.i/i:i;i=i?i@i[i]i^i_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkje WsXsYs.e/elemeneoe?l6m7m[mBnVm(n@lVd[l]l^lwl(mCn2d_lljmjnjojUcVcWcXcYcZcNmOm:e;e=e?e@e[e]e^e_e`e{e|e}e~eafbfjnknlnmnpjqjrjsj]m^mQfRfSfzgAgBgCgDgEgFgGgHgIgJgKgX Y Z -f.f/fTfUfVf3g4g0 1 2 ;d=d?d@d[d]dtjujvjwj`l{l|l}l~lamxjyjzjAjBjCjDjEj3 4 5 q r s NbObPbFjGjbmcmHjIjJjKjLjMjNjOjPjQjRjSjdmemidjdkdQbRbSbLdMdNd0c1c2c3c4c5cTbUbVb6c7c8cWbXbYb; = ? Zb0b1b9c!c#c$c%c'cTjUjVjWjXjYjZj0j1j2j3j4j5j6j7j8j9j!j#j$j%j'j(j)j*j+j,j-j.j/j:j;j=j?j@j[j]j^jf Zs0s1scfdfpeqeresefm8m9m_mDnWm)ngmWdhmimjmxl)mEn3dkm_j`j{j|j(c)c*c+c,c-cPmQmefffgfhfifjfkflfmfnfofpfqfrfsftfnnonpnqn}j~jakbk`m{mWfXfYfLgMgNgOgPgQgRgSgTgUgVgWg6 7 8 :f;f=fZf0f1f5g6g9 ! # ^d_d`d{d|d}dckdkekfklmmmnmompmqmgkhkikjkkklkmknk$ % ' t u v 2b3b4bokpkrmsmqkrksktkukvkwkxkykzkAkBktmumldmdnd5b6b7bOdPdQd.c/c:c;c=c?c8b9b!b@c[c]c#b$b%b@ [ ] 'b(b)b^c_c`c{c|c}cCkDkEkFkGkHkIkJkKkLkMkNkOkPkQkRkSkTkUkVkWkXkYkZk0k1k2k3k4k5k6k7k8k9k!k#k$k%k

840 

841 @classmethod 1gabcdef

842 def model_validate( 1abcdef

843 cls: Type[_TSQLModel], 

844 obj: Any, 

845 *, 

846 strict: Union[bool, None] = None, 

847 from_attributes: Union[bool, None] = None, 

848 context: Union[Dict[str, Any], None] = None, 

849 update: Union[Dict[str, Any], None] = None, 

850 ) -> _TSQLModel: 

851 return sqlmodel_validate( 2gphpip}ojpkplpmpnpop%r'rppqprpsptpup7g'k(k)k*k*b8g9g+bufvfwovpwpxp%oypzpApBpCpDp(r)rEpFpGpHpIpJpyf?f@f[f]fw #fzfx 6d7dqoKpLpMp'oNpOpPpQpRpSpTpUpVp(oWpXpYpZp0p1p*r+r2p3p4p5p6p7pAfBf^f_f`f{f|f}f~fagz A $f%fCfDfB C 8d9d!d#dro8p9p!p)o#p$p%p'p(p)p*p+p,p*o-p.p/p:p;p=p?p@p[p+o]p^p_p`p{p|p,r-r}p~paqbqcqdqEfFfGfbgcgdgegfggghgigjgkglgmgF G H 'f(f)fHfIfJfI J K $d%d'd(d)d*dsoeqfqgq,ohqiqjqkqlqmqnqoqpq-oqqrqsqtquqvqwqxqyq.ozqAqBqCqDqEq.r/rFqGqHqIqJqKqKfLfMfngogpgqgrgsgtgugvgwgxgygO P Q *f+f,fNfOfPfR S T +d,d-d.d/d:dtoLqMqNq/oOqPqQqRqSqTqUqVqWq:oXqYqZq0q1q2q3q4q5q;o6q7q8q9q!q#q:r;r$q%q'q(q)q*qQfRfSfzgAgBgCgDgEgFgGgHgIgJgKgX Y Z -f.f/fTfUfVf0 1 2 ;d=d?d@d[d]duo+q,q-q=o.q/q:q;q=q?q@q[q]q?o^q_q`q{q|q}q~qarbr@ocrdrerfrgrhr=r?rirjrkrlrmrnrWfXfYfLgMgNgOgPgQgRgSgTgUgVgWg6 7 8 :f;f=fZf0f1f9 ! # ^d_d`d{d|d}dvo

852 cls=cls, 

853 obj=obj, 

854 strict=strict, 

855 from_attributes=from_attributes, 

856 context=context, 

857 update=update, 

858 ) 

859 

860 def model_dump( 1abcdef

861 self, 

862 *, 

863 mode: Union[Literal["json", "python"], str] = "python", 

864 include: Union[IncEx, None] = None, 

865 exclude: Union[IncEx, None] = None, 

866 context: Union[Dict[str, Any], None] = None, 

867 by_alias: bool = False, 

868 exclude_unset: bool = False, 

869 exclude_defaults: bool = False, 

870 exclude_none: bool = False, 

871 round_trip: bool = False, 

872 warnings: Union[bool, Literal["none", "warn", "error"]] = True, 

873 serialize_as_any: bool = False, 

874 ) -> Dict[str, Any]: 

875 if PYDANTIC_MINOR_VERSION >= (2, 7): 2gphpip}ojpkplpmpnpop2fwfxfXr,k-kudvd3f4f5f6f7f8f9f!f.k/kppqprpsptpup7g'k(k)k*k*b8g9g+k+bufvf:k;k=k?k@k[k,b^ od]k^k_k`k{k|k}kBdpdwdxdqdydrdsdtdzdAd~kalblcldlelflglhliljlklllmlnlolplqlrlvpwpxp%oypzpApBpCpDpte~daeQr!g#g-b.buevewexeyezeAeBe$g%gEpFpGpHpIpJpyf?f@f[f]fw #fzfXgx 6d7d'g(g)g*g+g,gy h _ -g.g/g:g;g=g?g~c` /b:b{ ;b| ( } =b?b@g[g]g^g_g`g{g|g}g~gahbhchdhehfhghhhihKpLpMp'oNpOpPpQpRpSpTpUpVp(oWpXpYpZp0p1pCebeceRrjhkh@b[b]b^bDeEeFeGeHeIeJeKelhmh2p3p4p5p6p7pAfBf^f_f`f{f|f}f~fagz A $f%fCfDfYgB C 8d9d!d#dnhohphqhrhshD E i j ~ abthuhvhwhxhyhzhadbdbbcb_b`b{b|bdbeb}b~bfbgb) * hbibacbcccdcAhBhChDhEhFhGhHhIhJhKhLhMhNhOhPhQhRhSh8p9p!p)o#p$p%p'p(p)p*p+p,p*o-p.p/p:p;p=p?p@p[p+o]p^p_p`p{p|pLeMedeeefegeSrThUhVhWhecfcgchcicjcNeOePeQeReSeTeUeVeWeXeYeZe0e1e2eXhYhZh0h}p~paqbqcqdqEfFfGfbgcgdgegfggghgigjgkglgmgF G H 'f(f)fHfIfJfZg0gI J K $d%d'd(d)d*d1h2h3h4h5h6h7h8h9h!h#h$hL M N k l m jbkblb%h'h(h)h*h+h,h-h.h/h:h;h=h?hcdddedmbnbobkclcmcncocpcpbqbrbqcrcscsbtbub+ , - vbwbxbtcucvcwcxcyc@h[h]h^h_h`h{h|h}h~haibicidieifigihiiijikiliminioipiqirisitiuiviwixiyiziAiBieqfqgq,ohqiqjqkqlqmqnqoqpq-oqqrqsqtquqvqwqxqyq.ozqAqBqCqDqEq3e4eheiejekeTrCiDiEiFizcAcBcCcDcEc5e6e7e8e9e!e#e$e%e'e(e)e*e+e,e-eGiHiIiJiFqGqHqIqJqKqKfLfMfngogpgqgrgsgtgugvgwgxgygO P Q *f+f,fNfOfPf1g2gR S T +d,d-d.d/d:dKiLiMiNiOiPiQiRiSiTiUiViU V W n o p ybzbAbWiXiYiZi0i1i2i3i4i5i6i7i8i9ifdgdhdBbCbDbFcGcHcIcJcKcEbFbGbLcMcNcHbIbJb. / : KbLbMbOcPcQcRcScTc!i#i$i%i'i(i)i*i+i,i-i.i/i:i;i=i?i@i[i]i^i_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkjLqMqNq/oOqPqQqRqSqTqUqVqWq:oXqYqZq0q1q2q3q4q5q;o6q7q8q9q!q#q.e/elemeneoeUrljmjnjojUcVcWcXcYcZc:e;e=e?e@e[e]e^e_e`e{e|e}e~eafbfpjqjrjsj$q%q'q(q)q*qQfRfSfzgAgBgCgDgEgFgGgHgIgJgKgX Y Z -f.f/fTfUfVf3g4g0 1 2 ;d=d?d@d[d]dtjujvjwjxjyjzjAjBjCjDjEj3 4 5 q r s NbObPbFjGjHjIjJjKjLjMjNjOjPjQjRjSjidjdkdQbRbSb0c1c2c3c4c5cTbUbVb6c7c8cWbXbYb; = ? Zb0b1b9c!c#c$c%c'cTjUjVjWjXjYjZj0j1j2j3j4j5j6j7j8j9j!j#j$j%j'j(j)j*j+j,j-j.j/j:j;j=j?j@j[j]j^j+q,q-q=o.q/q:q;q=q?q@q[q]q?o^q_q`q{q|q}q~qarbr@ocrdrerfrgrhrcfdfpeqereseVr_j`j{j|j(c)c*c+c,c-cefffgfhfifjfkflfmfnfofpfqfrfsftf}j~jakbkirjrkrlrmrnrWfXfYfLgMgNgOgPgQgRgSgTgUgVgWg6 7 8 :f;f=fZf0f1f5g6g9 ! # ^d_d`d{d|d}dckdkekfkgkhkikjkkklkmknk$ % ' t u v 2b3b4bokpkqkrksktkukvkwkxkykzkAkBkldmdnd5b6b7b.c/c:c;c=c?c8b9b!b@c[c]c#b$b%b@ [ ] 'b(b)b^c_c`c{c|c}cCkDkEkFkGkHkIkJkKkLkMkNkOkPkQkRkSkTkUkVkWkXkYkZk0k1k2k3k4k5k6k7k8k9k!k#k$k%k

876 extra_kwargs: Dict[str, Any] = { 2%ote~daeQr!g#g-b.buevewexeyezeAeBe$g%gyfw zfXgx 6d7d'g(g)g*g+g,gy h _ -g.g/g:g;g=g?g~c` /b:b{ ;b| ( } =b?b@g[g]g^g_g`g{g|g}g~gahbhchdhehfhghhhih'o(oCebeceRrjhkh@b[b]b^bDeEeFeGeHeIeJeKelhmhAfBfz A CfDfYgB C 8d9d!d#dnhohphqhrhshD E i j ~ abthuhvhwhxhyhzhadbdbbcb_b`b{b|bdbeb}b~bfbgb) * hbibacbcccdcAhBhChDhEhFhGhHhIhJhKhLhMhNhOhPhQhRhSh)o*o+oLeMedeeefegeSrThUhVhWhecfcgchcicjcNeOePeQeReSeTeUeVeWeXeYeZe0e1e2eXhYhZh0hEfFfGfF G H HfIfJfZg0gI J K $d%d'd(d)d*d1h2h3h4h5h6h7h8h9h!h#h$hL M N k l m jbkblb%h'h(h)h*h+h,h-h.h/h:h;h=h?hcdddedmbnbobkclcmcncocpcpbqbrbqcrcscsbtbub+ , - vbwbxbtcucvcwcxcyc@h[h]h^h_h`h{h|h}h~haibicidieifigihiiijikiliminioipiqirisitiuiviwixiyiziAiBi,o-o.o3e4eheiejekeTrCiDiEiFizcAcBcCcDcEc5e6e7e8e9e!e#e$e%e'e(e)e*e+e,e-eGiHiIiJiKfLfMfO P Q NfOfPf1g2gR S T +d,d-d.d/d:dKiLiMiNiOiPiQiRiSiTiUiViU V W n o p ybzbAbWiXiYiZi0i1i2i3i4i5i6i7i8i9ifdgdhdBbCbDbFcGcHcIcJcKcEbFbGbLcMcNcHbIbJb. / : KbLbMbOcPcQcRcScTc!i#i$i%i'i(i)i*i+i,i-i.i/i:i;i=i?i@i[i]i^i_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkj/o:o;o.e/elemeneoeUrljmjnjojUcVcWcXcYcZc:e;e=e?e@e[e]e^e_e`e{e|e}e~eafbfpjqjrjsjQfRfSfX Y Z TfUfVf3g4g0 1 2 ;d=d?d@d[d]dtjujvjwjxjyjzjAjBjCjDjEj3 4 5 q r s NbObPbFjGjHjIjJjKjLjMjNjOjPjQjRjSjidjdkdQbRbSb0c1c2c3c4c5cTbUbVb6c7c8cWbXbYb; = ? Zb0b1b9c!c#c$c%c'cTjUjVjWjXjYjZj0j1j2j3j4j5j6j7j8j9j!j#j$j%j'j(j)j*j+j,j-j.j/j:j;j=j?j@j[j]j^j=o?o@ocfdfpeqereseVr_j`j{j|j(c)c*c+c,c-cefffgfhfifjfkflfmfnfofpfqfrfsftf}j~jakbkWfXfYf6 7 8 Zf0f1f5g6g9 ! # ^d_d`d{d|d}dckdkekfkgkhkikjkkklkmknk$ % ' t u v 2b3b4bokpkqkrksktkukvkwkxkykzkAkBkldmdnd5b6b7b.c/c:c;c=c?c8b9b!b@c[c]c#b$b%b@ [ ] 'b(b)b^c_c`c{c|c}cCkDkEkFkGkHkIkJkKkLkMkNkOkPkQkRkSkTkUkVkWkXkYkZk0k1k2k3k4k5k6k7k8k9k!k#k$k%k

877 "context": context, 

878 "serialize_as_any": serialize_as_any, 

879 } 

880 else: 

881 extra_kwargs = {} 2gphpip}ojpkplpmpnpop2fwfxfXr,k-kudvd3f4f5f6f7f8f9f!f.k/kppqprpsptpup7g'k(k)k*k*b8g9g+k+bufvf:k;k=k?k@k[k,b^ od]k^k_k`k{k|k}kBdpdwdxdqdydrdsdtdzdAd~kalblcldlelflglhliljlklllmlnlolplqlrlvpwpxp%oypzpApBpCpDpte~daeQr!g#g-b.buevewexeyezeAeBe$g%gEpFpGpHpIpJpyf?f@f[f]fw #fzfXgx 6d7d'g(g)g*g+g,gy h _ -g.g/g:g;g=g?g~c` /b:b{ ;b| ( } =b?b@g[g]g^g_g`g{g|g}g~gahbhchdhehfhghhhihKpLpMp'oNpOpPpQpRpSpTpUpVp(oWpXpYpZp0p1pCebeceRrjhkh@b[b]b^bDeEeFeGeHeIeJeKelhmh2p3p4p5p6p7pAfBf^f_f`f{f|f}f~fagz A $f%fCfDfYgB C 8d9d!d#dnhohphqhrhshD E i j ~ abthuhvhwhxhyhzhadbdbbcb_b`b{b|bdbeb}b~bfbgb) * hbibacbcccdcAhBhChDhEhFhGhHhIhJhKhLhMhNhOhPhQhRhSh8p9p!p)o#p$p%p'p(p)p*p+p,p*o-p.p/p:p;p=p?p@p[p+o]p^p_p`p{p|pLeMedeeefegeSrThUhVhWhecfcgchcicjcNeOePeQeReSeTeUeVeWeXeYeZe0e1e2eXhYhZh0h}p~paqbqcqdqEfFfGfbgcgdgegfggghgigjgkglgmgF G H 'f(f)fHfIfJfZg0gI J K $d%d'd(d)d*d1h2h3h4h5h6h7h8h9h!h#h$hL M N k l m jbkblb%h'h(h)h*h+h,h-h.h/h:h;h=h?hcdddedmbnbobkclcmcncocpcpbqbrbqcrcscsbtbub+ , - vbwbxbtcucvcwcxcyc@h[h]h^h_h`h{h|h}h~haibicidieifigihiiijikiliminioipiqirisitiuiviwixiyiziAiBieqfqgq,ohqiqjqkqlqmqnqoqpq-oqqrqsqtquqvqwqxqyq.ozqAqBqCqDqEq3e4eheiejekeTrCiDiEiFizcAcBcCcDcEc5e6e7e8e9e!e#e$e%e'e(e)e*e+e,e-eGiHiIiJiFqGqHqIqJqKqKfLfMfngogpgqgrgsgtgugvgwgxgygO P Q *f+f,fNfOfPf1g2gR S T +d,d-d.d/d:dKiLiMiNiOiPiQiRiSiTiUiViU V W n o p ybzbAbWiXiYiZi0i1i2i3i4i5i6i7i8i9ifdgdhdBbCbDbFcGcHcIcJcKcEbFbGbLcMcNcHbIbJb. / : KbLbMbOcPcQcRcScTc!i#i$i%i'i(i)i*i+i,i-i.i/i:i;i=i?i@i[i]i^i_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkjLqMqNq/oOqPqQqRqSqTqUqVqWq:oXqYqZq0q1q2q3q4q5q;o6q7q8q9q!q#q.e/elemeneoeUrljmjnjojUcVcWcXcYcZc:e;e=e?e@e[e]e^e_e`e{e|e}e~eafbfpjqjrjsj$q%q'q(q)q*qQfRfSfzgAgBgCgDgEgFgGgHgIgJgKgX Y Z -f.f/fTfUfVf3g4g0 1 2 ;d=d?d@d[d]dtjujvjwjxjyjzjAjBjCjDjEj3 4 5 q r s NbObPbFjGjHjIjJjKjLjMjNjOjPjQjRjSjidjdkdQbRbSb0c1c2c3c4c5cTbUbVb6c7c8cWbXbYb; = ? Zb0b1b9c!c#c$c%c'cTjUjVjWjXjYjZj0j1j2j3j4j5j6j7j8j9j!j#j$j%j'j(j)j*j+j,j-j.j/j:j;j=j?j@j[j]j^j+q,q-q=o.q/q:q;q=q?q@q[q]q?o^q_q`q{q|q}q~qarbr@ocrdrerfrgrhrcfdfpeqereseVr_j`j{j|j(c)c*c+c,c-cefffgfhfifjfkflfmfnfofpfqfrfsftf}j~jakbkirjrkrlrmrnrWfXfYfLgMgNgOgPgQgRgSgTgUgVgWg6 7 8 :f;f=fZf0f1f5g6g9 ! # ^d_d`d{d|d}dckdkekfkgkhkikjkkklkmknk$ % ' t u v 2b3b4bokpkqkrksktkukvkwkxkykzkAkBkldmdnd5b6b7b.c/c:c;c=c?c8b9b!b@c[c]c#b$b%b@ [ ] 'b(b)b^c_c`c{c|c}cCkDkEkFkGkHkIkJkKkLkMkNkOkPkQkRkSkTkUkVkWkXkYkZk0k1k2k3k4k5k6k7k8k9k!k#k$k%k

882 if IS_PYDANTIC_V2: 2gphpip}ojpkplpmpnpop2fwfxfXr,k-kudvd3f4f5f6f7f8f9f!f.k/kppqprpsptpup7g'k(k)k*k*b8g9g+k+bufvf:k;k=k?k@k[k,b^ od]k^k_k`k{k|k}kBdpdwdxdqdydrdsdtdzdAd~kalblcldlelflglhliljlklllmlnlolplqlrlvpwpxp%oypzpApBpCpDpte~daeQr!g#g-b.buevewexeyezeAeBe$g%gEpFpGpHpIpJpyf?f@f[f]fw #fzfXgx 6d7d'g(g)g*g+g,gy h _ -g.g/g:g;g=g?g~c` /b:b{ ;b| ( } =b?b@g[g]g^g_g`g{g|g}g~gahbhchdhehfhghhhihKpLpMp'oNpOpPpQpRpSpTpUpVp(oWpXpYpZp0p1pCebeceRrjhkh@b[b]b^bDeEeFeGeHeIeJeKelhmh2p3p4p5p6p7pAfBf^f_f`f{f|f}f~fagz A $f%fCfDfYgB C 8d9d!d#dnhohphqhrhshD E i j ~ abthuhvhwhxhyhzhadbdbbcb_b`b{b|bdbeb}b~bfbgb) * hbibacbcccdcAhBhChDhEhFhGhHhIhJhKhLhMhNhOhPhQhRhSh8p9p!p)o#p$p%p'p(p)p*p+p,p*o-p.p/p:p;p=p?p@p[p+o]p^p_p`p{p|pLeMedeeefegeSrThUhVhWhecfcgchcicjcNeOePeQeReSeTeUeVeWeXeYeZe0e1e2eXhYhZh0h}p~paqbqcqdqEfFfGfbgcgdgegfggghgigjgkglgmgF G H 'f(f)fHfIfJfZg0gI J K $d%d'd(d)d*d1h2h3h4h5h6h7h8h9h!h#h$hL M N k l m jbkblb%h'h(h)h*h+h,h-h.h/h:h;h=h?hcdddedmbnbobkclcmcncocpcpbqbrbqcrcscsbtbub+ , - vbwbxbtcucvcwcxcyc@h[h]h^h_h`h{h|h}h~haibicidieifigihiiijikiliminioipiqirisitiuiviwixiyiziAiBieqfqgq,ohqiqjqkqlqmqnqoqpq-oqqrqsqtquqvqwqxqyq.ozqAqBqCqDqEq3e4eheiejekeTrCiDiEiFizcAcBcCcDcEc5e6e7e8e9e!e#e$e%e'e(e)e*e+e,e-eGiHiIiJiFqGqHqIqJqKqKfLfMfngogpgqgrgsgtgugvgwgxgygO P Q *f+f,fNfOfPf1g2gR S T +d,d-d.d/d:dKiLiMiNiOiPiQiRiSiTiUiViU V W n o p ybzbAbWiXiYiZi0i1i2i3i4i5i6i7i8i9ifdgdhdBbCbDbFcGcHcIcJcKcEbFbGbLcMcNcHbIbJb. / : KbLbMbOcPcQcRcScTc!i#i$i%i'i(i)i*i+i,i-i.i/i:i;i=i?i@i[i]i^i_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkjLqMqNq/oOqPqQqRqSqTqUqVqWq:oXqYqZq0q1q2q3q4q5q;o6q7q8q9q!q#q.e/elemeneoeUrljmjnjojUcVcWcXcYcZc:e;e=e?e@e[e]e^e_e`e{e|e}e~eafbfpjqjrjsj$q%q'q(q)q*qQfRfSfzgAgBgCgDgEgFgGgHgIgJgKgX Y Z -f.f/fTfUfVf3g4g0 1 2 ;d=d?d@d[d]dtjujvjwjxjyjzjAjBjCjDjEj3 4 5 q r s NbObPbFjGjHjIjJjKjLjMjNjOjPjQjRjSjidjdkdQbRbSb0c1c2c3c4c5cTbUbVb6c7c8cWbXbYb; = ? Zb0b1b9c!c#c$c%c'cTjUjVjWjXjYjZj0j1j2j3j4j5j6j7j8j9j!j#j$j%j'j(j)j*j+j,j-j.j/j:j;j=j?j@j[j]j^j+q,q-q=o.q/q:q;q=q?q@q[q]q?o^q_q`q{q|q}q~qarbr@ocrdrerfrgrhrcfdfpeqereseVr_j`j{j|j(c)c*c+c,c-cefffgfhfifjfkflfmfnfofpfqfrfsftf}j~jakbkirjrkrlrmrnrWfXfYfLgMgNgOgPgQgRgSgTgUgVgWg6 7 8 :f;f=fZf0f1f5g6g9 ! # ^d_d`d{d|d}dckdkekfkgkhkikjkkklkmknk$ % ' t u v 2b3b4bokpkqkrksktkukvkwkxkykzkAkBkldmdnd5b6b7b.c/c:c;c=c?c8b9b!b@c[c]c#b$b%b@ [ ] 'b(b)b^c_c`c{c|c}cCkDkEkFkGkHkIkJkKkLkMkNkOkPkQkRkSkTkUkVkWkXkYkZk0k1k2k3k4k5k6k7k8k9k!k#k$k%k

883 return super().model_dump( 2}o2fwfxfXr,k-kudvd3f4f5f6f7f8f9f!f.k/k7g*b9g+k+bufvf:k;k=k?k@k[k,b^ od]k^k_k`k{k|k}kBdpdwdxdqdydrdsdtdzdAd~kalblcldlelflglhliljlklllmlnlolplqlrl%ote~daeQr!g#g-b.buevewexeyezeAeBe$g%gyfw zfXgx 6d7d'g(g)g*g+g,gy h _ -g.g/g:g;g=g?g~c` /b:b{ ;b| ( } =b?b@g[g]g^g_g`g{g|g}g~gahbhchdhehfhghhhih'o(oCebeceRrjhkh@b[b]b^bDeEeFeGeHeIeJeKelhmhAfBfz A CfDfYgB C 8d9d!d#dnhohphqhrhshD E i j ~ abthuhvhwhxhyhzhadbdbbcb_b`b{b|bdbeb}b~bfbgb) * hbibacbcccdcAhBhChDhEhFhGhHhIhJhKhLhMhNhOhPhQhRhSh)o*o+oLeMedeeefegeSrThUhVhWhecfcgchcicjcNeOePeQeReSeTeUeVeWeXeYeZe0e1e2eXhYhZh0hEfFfGfF G H HfIfJfZg0gI J K $d%d'd(d)d*d1h2h3h4h5h6h7h8h9h!h#h$hL M N k l m jbkblb%h'h(h)h*h+h,h-h.h/h:h;h=h?hcdddedmbnbobkclcmcncocpcpbqbrbqcrcscsbtbub+ , - vbwbxbtcucvcwcxcyc@h[h]h^h_h`h{h|h}h~haibicidieifigihiiijikiliminioipiqirisitiuiviwixiyiziAiBi,o-o.o3e4eheiejekeTrCiDiEiFizcAcBcCcDcEc5e6e7e8e9e!e#e$e%e'e(e)e*e+e,e-eGiHiIiJiKfLfMfO P Q NfOfPf1g2gR S T +d,d-d.d/d:dKiLiMiNiOiPiQiRiSiTiUiViU V W n o p ybzbAbWiXiYiZi0i1i2i3i4i5i6i7i8i9ifdgdhdBbCbDbFcGcHcIcJcKcEbFbGbLcMcNcHbIbJb. / : KbLbMbOcPcQcRcScTc!i#i$i%i'i(i)i*i+i,i-i.i/i:i;i=i?i@i[i]i^i_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkj/o:o;o.e/elemeneoeUrljmjnjojUcVcWcXcYcZc:e;e=e?e@e[e]e^e_e`e{e|e}e~eafbfpjqjrjsjQfRfSfX Y Z TfUfVf3g4g0 1 2 ;d=d?d@d[d]dtjujvjwjxjyjzjAjBjCjDjEj3 4 5 q r s NbObPbFjGjHjIjJjKjLjMjNjOjPjQjRjSjidjdkdQbRbSb0c1c2c3c4c5cTbUbVb6c7c8cWbXbYb; = ? Zb0b1b9c!c#c$c%c'cTjUjVjWjXjYjZj0j1j2j3j4j5j6j7j8j9j!j#j$j%j'j(j)j*j+j,j-j.j/j:j;j=j?j@j[j]j^j=o?o@ocfdfpeqereseVr_j`j{j|j(c)c*c+c,c-cefffgfhfifjfkflfmfnfofpfqfrfsftf}j~jakbkWfXfYf6 7 8 Zf0f1f5g6g9 ! # ^d_d`d{d|d}dckdkekfkgkhkikjkkklkmknk$ % ' t u v 2b3b4bokpkqkrksktkukvkwkxkykzkAkBkldmdnd5b6b7b.c/c:c;c=c?c8b9b!b@c[c]c#b$b%b@ [ ] 'b(b)b^c_c`c{c|c}cCkDkEkFkGkHkIkJkKkLkMkNkOkPkQkRkSkTkUkVkWkXkYkZk0k1k2k3k4k5k6k7k8k9k!k#k$k%k

884 mode=mode, 

885 include=include, 

886 exclude=exclude, 

887 by_alias=by_alias, 

888 exclude_unset=exclude_unset, 

889 exclude_defaults=exclude_defaults, 

890 exclude_none=exclude_none, 

891 round_trip=round_trip, 

892 warnings=warnings, 

893 **extra_kwargs, 

894 ) 

895 else: 

896 return super().dict( 2gphpip}ojpkplpmpnpop2fwfxfXr,k-kudvd3f4f5f6f7f8f9f!f.k/kppqprpsptpup7g'k(k)k*k*b8g9g+k+bufvf:k;k=k?k@k[k,b^ od]k^k_k`k{k|k}kBdpdwdxdqdydrdsdtdzdAd~kalblcldlelflglhliljlklllmlnlolplqlrlvpwpxp%oypzpApBpCpDpte~daeQr!g#g-b.buevewexeyezeAeBe$g%gEpFpGpHpIpJpyf?f@f[f]fw #fzfXgx 6d7d'g(g)g*g+g,gy h _ -g.g/g:g;g=g?g~c` /b:b{ ;b| ( } =b?b@g[g]g^g_g`g{g|g}g~gahbhchdhehfhghhhihKpLpMp'oNpOpPpQpRpSpTpUpVp(oWpXpYpZp0p1pCebeceRrjhkh@b[b]b^bDeEeFeGeHeIeJeKelhmh2p3p4p5p6p7pAfBf^f_f`f{f|f}f~fagz A $f%fCfDfYgB C 8d9d!d#dnhohphqhrhshD E i j ~ abthuhvhwhxhyhzhadbdbbcb_b`b{b|bdbeb}b~bfbgb) * hbibacbcccdcAhBhChDhEhFhGhHhIhJhKhLhMhNhOhPhQhRhSh8p9p!p)o#p$p%p'p(p)p*p+p,p*o-p.p/p:p;p=p?p@p[p+o]p^p_p`p{p|pLeMedeeefegeSrThUhVhWhecfcgchcicjcNeOePeQeReSeTeUeVeWeXeYeZe0e1e2eXhYhZh0h}p~paqbqcqdqEfFfGfbgcgdgegfggghgigjgkglgmgF G H 'f(f)fHfIfJfZg0gI J K $d%d'd(d)d*d1h2h3h4h5h6h7h8h9h!h#h$hL M N k l m jbkblb%h'h(h)h*h+h,h-h.h/h:h;h=h?hcdddedmbnbobkclcmcncocpcpbqbrbqcrcscsbtbub+ , - vbwbxbtcucvcwcxcyc@h[h]h^h_h`h{h|h}h~haibicidieifigihiiijikiliminioipiqirisitiuiviwixiyiziAiBieqfqgq,ohqiqjqkqlqmqnqoqpq-oqqrqsqtquqvqwqxqyq.ozqAqBqCqDqEq3e4eheiejekeTrCiDiEiFizcAcBcCcDcEc5e6e7e8e9e!e#e$e%e'e(e)e*e+e,e-eGiHiIiJiFqGqHqIqJqKqKfLfMfngogpgqgrgsgtgugvgwgxgygO P Q *f+f,fNfOfPf1g2gR S T +d,d-d.d/d:dKiLiMiNiOiPiQiRiSiTiUiViU V W n o p ybzbAbWiXiYiZi0i1i2i3i4i5i6i7i8i9ifdgdhdBbCbDbFcGcHcIcJcKcEbFbGbLcMcNcHbIbJb. / : KbLbMbOcPcQcRcScTc!i#i$i%i'i(i)i*i+i,i-i.i/i:i;i=i?i@i[i]i^i_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkjLqMqNq/oOqPqQqRqSqTqUqVqWq:oXqYqZq0q1q2q3q4q5q;o6q7q8q9q!q#q.e/elemeneoeUrljmjnjojUcVcWcXcYcZc:e;e=e?e@e[e]e^e_e`e{e|e}e~eafbfpjqjrjsj$q%q'q(q)q*qQfRfSfzgAgBgCgDgEgFgGgHgIgJgKgX Y Z -f.f/fTfUfVf3g4g0 1 2 ;d=d?d@d[d]dtjujvjwjxjyjzjAjBjCjDjEj3 4 5 q r s NbObPbFjGjHjIjJjKjLjMjNjOjPjQjRjSjidjdkdQbRbSb0c1c2c3c4c5cTbUbVb6c7c8cWbXbYb; = ? Zb0b1b9c!c#c$c%c'cTjUjVjWjXjYjZj0j1j2j3j4j5j6j7j8j9j!j#j$j%j'j(j)j*j+j,j-j.j/j:j;j=j?j@j[j]j^j+q,q-q=o.q/q:q;q=q?q@q[q]q?o^q_q`q{q|q}q~qarbr@ocrdrerfrgrhrcfdfpeqereseVr_j`j{j|j(c)c*c+c,c-cefffgfhfifjfkflfmfnfofpfqfrfsftf}j~jakbkirjrkrlrmrnrWfXfYfLgMgNgOgPgQgRgSgTgUgVgWg6 7 8 :f;f=fZf0f1f5g6g9 ! # ^d_d`d{d|d}dckdkekfkgkhkikjkkklkmknk$ % ' t u v 2b3b4bokpkqkrksktkukvkwkxkykzkAkBkldmdnd5b6b7b.c/c:c;c=c?c8b9b!b@c[c]c#b$b%b@ [ ] 'b(b)b^c_c`c{c|c}cCkDkEkFkGkHkIkJkKkLkMkNkOkPkQkRkSkTkUkVkWkXkYkZk0k1k2k3k4k5k6k7k8k9k!k#k$k%k

897 include=include, 

898 exclude=exclude, 

899 by_alias=by_alias, 

900 exclude_unset=exclude_unset, 

901 exclude_defaults=exclude_defaults, 

902 exclude_none=exclude_none, 

903 ) 

904 

905 @deprecated( 1gabcdef

906 """ 

907 🚨 `obj.dict()` was deprecated in SQLModel 0.0.14, you should 

908 instead use `obj.model_dump()`. 

909 """ 

910 ) 

911 def dict( 1abcdef

912 self, 

913 *, 

914 include: Union[IncEx, None] = None, 

915 exclude: Union[IncEx, None] = None, 

916 by_alias: bool = False, 

917 exclude_unset: bool = False, 

918 exclude_defaults: bool = False, 

919 exclude_none: bool = False, 

920 ) -> Dict[str, Any]: 

921 return self.model_dump( 2gphpip}ojpkplpmpnpopXrppqprpsptpup7g'k(k)k*k*b8g9g+k+bufvf^ pdvpwpxp%oypzpApBpCpDpQrEpFpGpHpIpJpyf?f@f[f]fw #fzfXgx 6d7dh ` KpLpMp'oNpOpPpQpRpSpTpUpVp(oWpXpYpZp0p1pRr2p3p4p5p6p7pAfBf^f_f`f{f|f}f~fagz A $f%fCfDfYgB C 8d9d!d#di j bbcb8p9p!p)o#p$p%p'p(p)p*p+p,p*o-p.p/p:p;p=p?p@p[p+o]p^p_p`p{p|pSr}p~paqbqcqdqEfFfGfbgcgdgegfggghgigjgkglgmgF G H 'f(f)fHfIfJfZg0gI J K $d%d'd(d)d*dk l m mbnbobeqfqgq,ohqiqjqkqlqmqnqoqpq-oqqrqsqtquqvqwqxqyq.ozqAqBqCqDqEqTrFqGqHqIqJqKqKfLfMfngogpgqgrgsgtgugvgwgxgygO P Q *f+f,fNfOfPf1g2gR S T +d,d-d.d/d:dn o p BbCbDbLqMqNq/oOqPqQqRqSqTqUqVqWq:oXqYqZq0q1q2q3q4q5q;o6q7q8q9q!q#qUr$q%q'q(q)q*qQfRfSfzgAgBgCgDgEgFgGgHgIgJgKgX Y Z -f.f/fTfUfVf3g4g0 1 2 ;d=d?d@d[d]dq r s QbRbSb+q,q-q=o.q/q:q;q=q?q@q[q]q?o^q_q`q{q|q}q~qarbr@ocrdrerfrgrhrVrirjrkrlrmrnrWfXfYfLgMgNgOgPgQgRgSgTgUgVgWg6 7 8 :f;f=fZf0f1f5g6g9 ! # ^d_d`d{d|d}dt u v 5b6b7b

922 include=include, 

923 exclude=exclude, 

924 by_alias=by_alias, 

925 exclude_unset=exclude_unset, 

926 exclude_defaults=exclude_defaults, 

927 exclude_none=exclude_none, 

928 ) 

929 

930 @classmethod 1gabcdef

931 @deprecated( 1gabcdef

932 """ 

933 🚨 `obj.from_orm(data)` was deprecated in SQLModel 0.0.14, you should 

934 instead use `obj.model_validate(data)`. 

935 """ 

936 ) 

937 def from_orm( 1abcdef

938 cls: Type[_TSQLModel], obj: Any, update: Optional[Dict[str, Any]] = None 

939 ) -> _TSQLModel: 

940 return cls.model_validate(obj, update=update) 2gphpip}ojpkplpmpnpop%rppqprpsptpup7g'k(k)k*k*b8g9g+bufvfvpwpxp%oypzpApBpCpDp(rEpFpGpHpIpJpyf?f@f[f]fw #fzfx 6d7dKpLpMp'oNpOpPpQpRpSpTpUpVp(oWpXpYpZp0p1p*r2p3p4p5p6p7pAfBf^f_f`f{f|f}f~fagz A $f%fCfDfB C 8d9d!d#d8p9p!p)o#p$p%p'p(p)p*p+p,p*o-p.p/p:p;p=p?p@p[p+o]p^p_p`p{p|p,r}p~paqbqcqdqEfFfGfbgcgdgegfggghgigjgkglgmgF G H 'f(f)fHfIfJfI J K $d%d'd(d)d*deqfqgq,ohqiqjqkqlqmqnqoqpq-oqqrqsqtquqvqwqxqyq.ozqAqBqCqDqEq.rFqGqHqIqJqKqKfLfMfngogpgqgrgsgtgugvgwgxgygO P Q *f+f,fNfOfPfR S T +d,d-d.d/d:dLqMqNq/oOqPqQqRqSqTqUqVqWq:oXqYqZq0q1q2q3q4q5q;o6q7q8q9q!q#q:r$q%q'q(q)q*qQfRfSfzgAgBgCgDgEgFgGgHgIgJgKgX Y Z -f.f/fTfUfVf0 1 2 ;d=d?d@d[d]d+q,q-q=o.q/q:q;q=q?q@q[q]q?o^q_q`q{q|q}q~qarbr@ocrdrerfrgrhr=rirjrkrlrmrnrWfXfYfLgMgNgOgPgQgRgSgTgUgVgWg6 7 8 :f;f=fZf0f1f9 ! # ^d_d`d{d|d}d

941 

942 @classmethod 1gabcdef

943 @deprecated( 1gabcdef

944 """ 

945 🚨 `obj.parse_obj(data)` was deprecated in SQLModel 0.0.14, you should 

946 instead use `obj.model_validate(data)`. 

947 """ 

948 ) 

949 def parse_obj( 1abcdef

950 cls: Type[_TSQLModel], obj: Any, update: Optional[Dict[str, Any]] = None 

951 ) -> _TSQLModel: 

952 if not IS_PYDANTIC_V2: 2'r)r+r-r/r;r?r

953 obj = cls._enforce_dict_if_root(obj) # type: ignore[attr-defined] # noqa 2'r)r+r-r/r;r?r

954 return cls.model_validate(obj, update=update) 2'r)r+r-r/r;r?r

955 

956 # From Pydantic, override to only show keys from fields, omit SQLAlchemy attributes 

957 @deprecated( 1gabcdef

958 """ 

959 🚨 You should not access `obj._calculate_keys()` directly. 

960 

961 It is only useful for Pydantic v1.X, you should probably upgrade to 

962 Pydantic v2.X. 

963 """, 

964 category=None, 

965 ) 

966 def _calculate_keys( 1abcdef

967 self, 

968 include: Optional[Mapping[Union[int, str], Any]], 

969 exclude: Optional[Mapping[Union[int, str], Any]], 

970 exclude_unset: bool, 

971 update: Optional[Dict[str, Any]] = None, 

972 ) -> Optional[AbstractSet[str]]: 

973 return _calculate_keys( 2gphpip}ojpkplpmpnpop2fwfxfXr,k-kudvd3f4f5f6f7f8f9f!f.k/kppqprpsptpup7g'k(k)k*k*b8g9g+k+bufvf:k;k=k?k@k[k,b^ od]k^k_k`k{k|k}kBdpdwdxdqdydrdsdtdzdAd~kalblcldlelflglhliljlklllmlnlolplqlrlvpwpxp%oypzpApBpCpDpte~daeQr!g#g-b.buevewexeyezeAeBe$g%gEpFpGpHpIpJpyf?f@f[f]fw #fzfXgx 6d7d'g(g)g*g+g,gy h _ -g.g/g:g;g=g?g~c` /b:b{ ;b| ( } =b?b@g[g]g^g_g`g{g|g}g~gahbhchdhehfhghhhihKpLpMp'oNpOpPpQpRpSpTpUpVp(oWpXpYpZp0p1pCebeceRrjhkh@b[b]b^bDeEeFeGeHeIeJeKelhmh2p3p4p5p6p7pAfBf^f_f`f{f|f}f~fagz A $f%fCfDfYgB C 8d9d!d#dnhohphqhrhshD E i j ~ abthuhvhwhxhyhzhadbdbbcb_b`b{b|bdbeb}b~bfbgb) * hbibacbcccdcAhBhChDhEhFhGhHhIhJhKhLhMhNhOhPhQhRhSh8p9p!p)o#p$p%p'p(p)p*p+p,p*o-p.p/p:p;p=p?p@p[p+o]p^p_p`p{p|pLeMedeeefegeSrThUhVhWhecfcgchcicjcNeOePeQeReSeTeUeVeWeXeYeZe0e1e2eXhYhZh0h}p~paqbqcqdqEfFfGfbgcgdgegfggghgigjgkglgmgF G H 'f(f)fHfIfJfZg0gI J K $d%d'd(d)d*d1h2h3h4h5h6h7h8h9h!h#h$hL M N k l m jbkblb%h'h(h)h*h+h,h-h.h/h:h;h=h?hcdddedmbnbobkclcmcncocpcpbqbrbqcrcscsbtbub+ , - vbwbxbtcucvcwcxcyc@h[h]h^h_h`h{h|h}h~haibicidieifigihiiijikiliminioipiqirisitiuiviwixiyiziAiBieqfqgq,ohqiqjqkqlqmqnqoqpq-oqqrqsqtquqvqwqxqyq.ozqAqBqCqDqEq3e4eheiejekeTrCiDiEiFizcAcBcCcDcEc5e6e7e8e9e!e#e$e%e'e(e)e*e+e,e-eGiHiIiJiFqGqHqIqJqKqKfLfMfngogpgqgrgsgtgugvgwgxgygO P Q *f+f,fNfOfPf1g2gR S T +d,d-d.d/d:dKiLiMiNiOiPiQiRiSiTiUiViU V W n o p ybzbAbWiXiYiZi0i1i2i3i4i5i6i7i8i9ifdgdhdBbCbDbFcGcHcIcJcKcEbFbGbLcMcNcHbIbJb. / : KbLbMbOcPcQcRcScTc!i#i$i%i'i(i)i*i+i,i-i.i/i:i;i=i?i@i[i]i^i_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkjLqMqNq/oOqPqQqRqSqTqUqVqWq:oXqYqZq0q1q2q3q4q5q;o6q7q8q9q!q#q.e/elemeneoeUrljmjnjojUcVcWcXcYcZc:e;e=e?e@e[e]e^e_e`e{e|e}e~eafbfpjqjrjsj$q%q'q(q)q*qQfRfSfzgAgBgCgDgEgFgGgHgIgJgKgX Y Z -f.f/fTfUfVf3g4g0 1 2 ;d=d?d@d[d]dtjujvjwjxjyjzjAjBjCjDjEj3 4 5 q r s NbObPbFjGjHjIjJjKjLjMjNjOjPjQjRjSjidjdkdQbRbSb0c1c2c3c4c5cTbUbVb6c7c8cWbXbYb; = ? Zb0b1b9c!c#c$c%c'cTjUjVjWjXjYjZj0j1j2j3j4j5j6j7j8j9j!j#j$j%j'j(j)j*j+j,j-j.j/j:j;j=j?j@j[j]j^j+q,q-q=o.q/q:q;q=q?q@q[q]q?o^q_q`q{q|q}q~qarbr@ocrdrerfrgrhrcfdfpeqereseVr_j`j{j|j(c)c*c+c,c-cefffgfhfifjfkflfmfnfofpfqfrfsftf}j~jakbkirjrkrlrmrnrWfXfYfLgMgNgOgPgQgRgSgTgUgVgWg6 7 8 :f;f=fZf0f1f5g6g9 ! # ^d_d`d{d|d}dckdkekfkgkhkikjkkklkmknk$ % ' t u v 2b3b4bokpkqkrksktkukvkwkxkykzkAkBkldmdnd5b6b7b.c/c:c;c=c?c8b9b!b@c[c]c#b$b%b@ [ ] 'b(b)b^c_c`c{c|c}cCkDkEkFkGkHkIkJkKkLkMkNkOkPkQkRkSkTkUkVkWkXkYkZk0k1k2k3k4k5k6k7k8k9k!k#k$k%k

974 self, 

975 include=include, 

976 exclude=exclude, 

977 exclude_unset=exclude_unset, 

978 update=update, 

979 ) 

980 

981 def sqlmodel_update( 1abcdef

982 self: _TSQLModel, 

983 obj: Union[Dict[str, Any], BaseModel], 

984 *, 

985 update: Union[Dict[str, Any], None] = None, 

986 ) -> _TSQLModel: 

987 use_update = (update or {}).copy() 2ufvf6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.d/d:d;d=d?d@d[d]d^d_d`d{d|d}d

988 if isinstance(obj, dict): 2ufvf6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.d/d:d;d=d?d@d[d]d^d_d`d{d|d}d

989 for key, value in {**obj, **use_update}.items(): 2ufvf6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.d/d:d;d=d?d@d[d]d^d_d`d{d|d}d

990 if key in get_model_fields(self): 2ufvf6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.d/d:d;d=d?d@d[d]d^d_d`d{d|d}d

991 setattr(self, key, value) 2ufvf6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.d/d:d;d=d?d@d[d]d^d_d`d{d|d}d

992 elif isinstance(obj, BaseModel): 

993 for key in get_model_fields(obj): 

994 if key in use_update: 

995 value = use_update.pop(key) 

996 else: 

997 value = getattr(obj, key) 

998 setattr(self, key, value) 

999 for remaining_key in use_update: 

1000 if remaining_key in get_model_fields(self): 

1001 value = use_update.pop(remaining_key) 

1002 setattr(self, remaining_key, value) 

1003 else: 

1004 raise ValueError( 

1005 "Can't use sqlmodel_update() with something that " 

1006 f"is not a dict or SQLModel or Pydantic model: {obj}" 

1007 ) 

1008 return self 2ufvf6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.d/d:d;d=d?d@d[d]d^d_d`d{d|d}d